@plait/mind 0.2.0-next.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 (125) hide show
  1. package/README.md +24 -0
  2. package/constants/default.d.ts +12 -0
  3. package/constants/index.d.ts +2 -0
  4. package/constants/node.d.ts +17 -0
  5. package/draw/abstract.d.ts +4 -0
  6. package/draw/indented-link.d.ts +3 -0
  7. package/draw/link/abstract-link.d.ts +3 -0
  8. package/draw/link/logic-link.d.ts +3 -0
  9. package/draw/link.d.ts +3 -0
  10. package/draw/richtext.d.ts +14 -0
  11. package/draw/shape.d.ts +3 -0
  12. package/esm2020/constants/default.mjs +13 -0
  13. package/esm2020/constants/index.mjs +3 -0
  14. package/esm2020/constants/node.mjs +19 -0
  15. package/esm2020/draw/abstract.mjs +48 -0
  16. package/esm2020/draw/indented-link.mjs +44 -0
  17. package/esm2020/draw/link/abstract-link.mjs +42 -0
  18. package/esm2020/draw/link/logic-link.mjs +51 -0
  19. package/esm2020/draw/link.mjs +158 -0
  20. package/esm2020/draw/richtext.mjs +35 -0
  21. package/esm2020/draw/shape.mjs +18 -0
  22. package/esm2020/interfaces/abstract.mjs +6 -0
  23. package/esm2020/interfaces/element-data.mjs +2 -0
  24. package/esm2020/interfaces/element.mjs +59 -0
  25. package/esm2020/interfaces/index.mjs +6 -0
  26. package/esm2020/interfaces/layout.mjs +19 -0
  27. package/esm2020/interfaces/node.mjs +23 -0
  28. package/esm2020/interfaces/types.mjs +13 -0
  29. package/esm2020/layout-option.mjs +72 -0
  30. package/esm2020/mind.component.mjs +50 -0
  31. package/esm2020/mind.module.mjs +21 -0
  32. package/esm2020/node.component.mjs +742 -0
  33. package/esm2020/plait-mind.mjs +5 -0
  34. package/esm2020/plugins/emoji/emoji-base.component.mjs +21 -0
  35. package/esm2020/plugins/emoji/emoji.drawer.mjs +79 -0
  36. package/esm2020/plugins/emoji/emoji.mjs +15 -0
  37. package/esm2020/plugins/emoji/index.mjs +4 -0
  38. package/esm2020/plugins/emoji/with-mind-emoji.mjs +8 -0
  39. package/esm2020/plugins/with-abstract.mjs +92 -0
  40. package/esm2020/plugins/with-dnd.mjs +276 -0
  41. package/esm2020/plugins/with-mind.mjs +183 -0
  42. package/esm2020/public-api.mjs +14 -0
  43. package/esm2020/queries/get-available-sublayouts-by-element.mjs +29 -0
  44. package/esm2020/queries/get-branch-mindmap-layouts-by-element.mjs +18 -0
  45. package/esm2020/queries/get-correct-layout-by-element.mjs +50 -0
  46. package/esm2020/queries/get-layout-by-element.mjs +16 -0
  47. package/esm2020/queries/get-layout-parent-by-element.mjs +17 -0
  48. package/esm2020/queries/index.mjs +13 -0
  49. package/esm2020/transforms/index.mjs +10 -0
  50. package/esm2020/transforms/layout.mjs +23 -0
  51. package/esm2020/transforms/node.mjs +44 -0
  52. package/esm2020/utils/abstract/common.mjs +25 -0
  53. package/esm2020/utils/abstract/resize.mjs +169 -0
  54. package/esm2020/utils/clipboard.mjs +71 -0
  55. package/esm2020/utils/colors.mjs +41 -0
  56. package/esm2020/utils/direction-corrector.mjs +54 -0
  57. package/esm2020/utils/direction-detector.mjs +56 -0
  58. package/esm2020/utils/draw-placeholder.mjs +311 -0
  59. package/esm2020/utils/drop-target-corrector.mjs +86 -0
  60. package/esm2020/utils/graph.mjs +24 -0
  61. package/esm2020/utils/index.mjs +14 -0
  62. package/esm2020/utils/is-virtual-key.mjs +13 -0
  63. package/esm2020/utils/layout.mjs +105 -0
  64. package/esm2020/utils/mindmap.mjs +295 -0
  65. package/esm2020/utils/node-space.mjs +72 -0
  66. package/esm2020/utils/node.mjs +6 -0
  67. package/esm2020/utils/path.mjs +11 -0
  68. package/esm2020/utils/point-placement.mjs +99 -0
  69. package/esm2020/utils/shape.mjs +17 -0
  70. package/esm2020/utils/weak-maps.mjs +3 -0
  71. package/fesm2015/plait-mind.mjs +3583 -0
  72. package/fesm2015/plait-mind.mjs.map +1 -0
  73. package/fesm2020/plait-mind.mjs +3595 -0
  74. package/fesm2020/plait-mind.mjs.map +1 -0
  75. package/index.d.ts +5 -0
  76. package/interfaces/abstract.d.ts +4 -0
  77. package/interfaces/element-data.d.ts +11 -0
  78. package/interfaces/element.d.ts +39 -0
  79. package/interfaces/index.d.ts +5 -0
  80. package/interfaces/layout.d.ts +10 -0
  81. package/interfaces/node.d.ts +33 -0
  82. package/interfaces/types.d.ts +11 -0
  83. package/layout-option.d.ts +2 -0
  84. package/mind.component.d.ts +16 -0
  85. package/mind.module.d.ts +11 -0
  86. package/node.component.d.ts +60 -0
  87. package/package.json +31 -0
  88. package/plugins/emoji/emoji-base.component.d.ts +12 -0
  89. package/plugins/emoji/emoji.d.ts +6 -0
  90. package/plugins/emoji/emoji.drawer.d.ts +22 -0
  91. package/plugins/emoji/index.d.ts +3 -0
  92. package/plugins/emoji/with-mind-emoji.d.ts +8 -0
  93. package/plugins/with-abstract.d.ts +2 -0
  94. package/plugins/with-dnd.d.ts +11 -0
  95. package/plugins/with-mind.d.ts +2 -0
  96. package/public-api.d.ts +10 -0
  97. package/queries/get-available-sublayouts-by-element.d.ts +8 -0
  98. package/queries/get-branch-mindmap-layouts-by-element.d.ts +3 -0
  99. package/queries/get-correct-layout-by-element.d.ts +9 -0
  100. package/queries/get-layout-by-element.d.ts +3 -0
  101. package/queries/get-layout-parent-by-element.d.ts +8 -0
  102. package/queries/index.d.ts +7 -0
  103. package/styles/styles.scss +99 -0
  104. package/transforms/index.d.ts +7 -0
  105. package/transforms/layout.d.ts +3 -0
  106. package/transforms/node.d.ts +8 -0
  107. package/utils/abstract/common.d.ts +5 -0
  108. package/utils/abstract/resize.d.ts +21 -0
  109. package/utils/clipboard.d.ts +7 -0
  110. package/utils/colors.d.ts +4 -0
  111. package/utils/direction-corrector.d.ts +3 -0
  112. package/utils/direction-detector.d.ts +9 -0
  113. package/utils/draw-placeholder.d.ts +42 -0
  114. package/utils/drop-target-corrector.d.ts +8 -0
  115. package/utils/graph.d.ts +5 -0
  116. package/utils/index.d.ts +13 -0
  117. package/utils/is-virtual-key.d.ts +1 -0
  118. package/utils/layout.d.ts +12 -0
  119. package/utils/mindmap.d.ts +33 -0
  120. package/utils/node-space.d.ts +9 -0
  121. package/utils/node.d.ts +2 -0
  122. package/utils/path.d.ts +4 -0
  123. package/utils/point-placement.d.ts +8 -0
  124. package/utils/shape.d.ts +3 -0
  125. package/utils/weak-maps.d.ts +5 -0
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@plait/mind" />
5
+ export * from './public-api';
@@ -0,0 +1,4 @@
1
+ export declare enum AbstractHandlePosition {
2
+ start = "start",
3
+ end = "end"
4
+ }
@@ -0,0 +1,11 @@
1
+ import { Element } from 'slate';
2
+ export interface EmojiItem {
3
+ name: string;
4
+ }
5
+ export interface BaseData {
6
+ topic: Element;
7
+ emojis?: EmojiItem[];
8
+ }
9
+ export interface EmojiData extends BaseData {
10
+ emojis: EmojiItem[];
11
+ }
@@ -0,0 +1,39 @@
1
+ import { MindmapNodeShape } from '../constants/node';
2
+ import { MindmapLayoutType } from '@plait/layouts';
3
+ import { PlaitBoard, PlaitElement, Point } from '@plait/core';
4
+ import { BaseData, EmojiData } from './element-data';
5
+ export interface MindElement<T = BaseData> extends PlaitElement {
6
+ data: T;
7
+ children: MindElement[];
8
+ rightNodeCount?: number;
9
+ width: number;
10
+ height: number;
11
+ isRoot?: boolean;
12
+ fill?: string;
13
+ strokeColor?: string;
14
+ strokeWidth?: number;
15
+ shape?: MindmapNodeShape;
16
+ linkLineColor?: string;
17
+ linkLineWidth?: number;
18
+ layout?: MindmapLayoutType;
19
+ isCollapsed?: boolean;
20
+ start?: number;
21
+ end?: number;
22
+ }
23
+ export interface PlaitMind extends MindElement {
24
+ type: 'mindmap';
25
+ points: Point[];
26
+ }
27
+ export declare const PlaitMind: {
28
+ isMind: (value: any) => value is PlaitMind;
29
+ };
30
+ export declare const MindElement: {
31
+ hasLayout(value: MindElement, layout: MindmapLayoutType): boolean;
32
+ isIndentedLayout(value: MindElement): boolean;
33
+ isMindElement(board: PlaitBoard, element: PlaitElement): element is MindElement<BaseData>;
34
+ getParent(node: MindElement): MindElement<BaseData>;
35
+ getRoot(board: PlaitBoard, element: MindElement): PlaitMind;
36
+ getNode(element: MindElement): import("@plait/mind").MindmapNode;
37
+ hasEmojis(element: MindElement): element is MindElement<EmojiData>;
38
+ getEmojis(element: MindElement<EmojiData>): import("./element-data").EmojiItem[];
39
+ };
@@ -0,0 +1,5 @@
1
+ export * from './element';
2
+ export * from './element-data';
3
+ export * from './node';
4
+ export * from './layout';
5
+ export * from './abstract';
@@ -0,0 +1,10 @@
1
+ export declare enum LayoutDirection {
2
+ 'top' = "top",
3
+ 'right' = "right",
4
+ 'bottom' = "bottom",
5
+ 'left' = "left"
6
+ }
7
+ export declare const LayoutDirectionsMap: LayoutDirectionMapType;
8
+ export type LayoutDirectionMapType = {
9
+ [key: string]: LayoutDirection[];
10
+ };
@@ -0,0 +1,33 @@
1
+ import { MindmapLayoutType } from '@plait/layouts';
2
+ import { Path } from '@plait/core';
3
+ import { MindElement } from './element';
4
+ export interface MindmapNode {
5
+ depth: number;
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ hGap: number;
11
+ vGap: number;
12
+ children: MindmapNode[];
13
+ origin: MindElement;
14
+ parent: MindmapNode;
15
+ left: boolean;
16
+ up: boolean;
17
+ }
18
+ export declare const MindmapNode: {
19
+ get(root: MindmapNode, path: Path): MindmapNode;
20
+ isEquals(node: MindmapNode, otherNode: MindmapNode): boolean;
21
+ };
22
+ export type ExtendLayoutType = Exclude<MindmapLayoutType, MindmapLayoutType.standard>;
23
+ export type CoordinateType = {
24
+ startX: number;
25
+ startY: number;
26
+ endX: number;
27
+ endY: number;
28
+ };
29
+ export type ExtendUnderlineCoordinateType = {
30
+ [key in ExtendLayoutType]: CoordinateType;
31
+ };
32
+ export type DetectResult = 'top' | 'bottom' | 'right' | 'left' | null;
33
+ export type RootBaseDirection = 'right' | 'left' | null;
@@ -0,0 +1,11 @@
1
+ export declare enum HorizontalPlacement {
2
+ left = "left",
3
+ center = "center",
4
+ right = "right"
5
+ }
6
+ export declare enum VerticalPlacement {
7
+ top = "top",
8
+ middle = "middle",
9
+ bottom = "bottom"
10
+ }
11
+ export type PointPlacement = [HorizontalPlacement, VerticalPlacement];
@@ -0,0 +1,2 @@
1
+ import { LayoutOptions } from "@plait/layouts";
2
+ export declare const getLayoutOptions: () => LayoutOptions;
@@ -0,0 +1,16 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { PlaitMind } from './interfaces/element';
3
+ import { MindmapNode } from './interfaces/node';
4
+ import { BeforeContextChange, PlaitPluginElementContext } from '@plait/core';
5
+ import { MindNodeComponent } from './node.component';
6
+ import * as i0 from "@angular/core";
7
+ export declare class PlaitMindComponent extends MindNodeComponent<PlaitMind> implements OnInit, BeforeContextChange<PlaitMind> {
8
+ root: MindmapNode;
9
+ rootG: SVGGElement;
10
+ ngOnInit(): void;
11
+ beforeContextChange(value: PlaitPluginElementContext<PlaitMind>): void;
12
+ updateMindmap(element?: PlaitMind): void;
13
+ updateMindmapLocation(element: PlaitMind): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<PlaitMindComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<PlaitMindComponent, "plait-mind", never, {}, {}, never, never, false, never>;
16
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./mind.component";
3
+ import * as i2 from "./node.component";
4
+ import * as i3 from "@angular/platform-browser";
5
+ import * as i4 from "@plait/richtext";
6
+ import * as i5 from "@plait/core";
7
+ export declare class MindModule {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<MindModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MindModule, [typeof i1.PlaitMindComponent, typeof i2.MindNodeComponent], [typeof i3.BrowserModule, typeof i4.RichtextModule, typeof i5.PlaitModule], [typeof i1.PlaitMindComponent, typeof i2.MindNodeComponent]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<MindModule>;
11
+ }
@@ -0,0 +1,60 @@
1
+ import { ChangeDetectorRef, ComponentRef, OnDestroy, OnInit, Renderer2, ViewContainerRef } from '@angular/core';
2
+ import { PlaitPluginElementComponent, PlaitPluginElementContext, OnContextChanged } from '@plait/core';
3
+ import { PlaitRichtextComponent } from '@plait/richtext';
4
+ import { RoughSVG } from 'roughjs/bin/svg';
5
+ import { Subject } from 'rxjs';
6
+ import { MindElement } from './interfaces/element';
7
+ import { MindmapNode } from './interfaces/node';
8
+ import { EmojisDrawer } from './plugins/emoji/emoji.drawer';
9
+ import { AbstractHandlePosition } from './interfaces';
10
+ import * as i0 from "@angular/core";
11
+ export declare class MindNodeComponent<T extends MindElement = MindElement> extends PlaitPluginElementComponent<T> implements OnInit, OnDestroy, OnContextChanged<T> {
12
+ private viewContainerRef;
13
+ protected cdr: ChangeDetectorRef;
14
+ private render2;
15
+ isEditable: boolean;
16
+ roughSVG: RoughSVG;
17
+ node: MindmapNode;
18
+ parent: MindmapNode;
19
+ index: number;
20
+ abstractIncludedOutlineG?: SVGGElement;
21
+ parentG: SVGGElement;
22
+ activeG: SVGGElement[];
23
+ shapeG: SVGGElement | null;
24
+ linkG?: SVGGElement;
25
+ richtextG?: SVGGElement;
26
+ foreignObject?: SVGForeignObjectElement;
27
+ extendG?: SVGGElement;
28
+ maskG: SVGGElement;
29
+ richtextComponentRef?: ComponentRef<PlaitRichtextComponent>;
30
+ destroy$: Subject<void>;
31
+ emojisDrawer: EmojisDrawer;
32
+ get handActive(): boolean;
33
+ constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef, render2: Renderer2);
34
+ ngOnInit(): void;
35
+ onContextChanged(value: PlaitPluginElementContext<T>, previous: PlaitPluginElementContext<T>): void;
36
+ drawShape(): void;
37
+ drawEmojis(): void;
38
+ destroyShape(): void;
39
+ drawLink(): void;
40
+ destroyLine(): void;
41
+ drawMaskG(): void;
42
+ destroyMaskG(): void;
43
+ enableMaskG(): void;
44
+ disabledMaskG(): void;
45
+ drawActiveG(): void;
46
+ destroyActiveG(): void;
47
+ updateActiveClass(): void;
48
+ drawRichtext(): void;
49
+ private drawQuickInsert;
50
+ drawExtend(): void;
51
+ destroyExtend(): void;
52
+ destroyRichtext(): void;
53
+ updateAbstractIncludedOutline(resizingLocation?: number, handlePosition?: AbstractHandlePosition): void;
54
+ updateRichtext(): void;
55
+ startEditText(isEnd: boolean, isClear: boolean): void;
56
+ trackBy: (index: number, node: MindmapNode) => string;
57
+ ngOnDestroy(): void;
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<MindNodeComponent<any>, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<MindNodeComponent<any>, "plait-mindmap-node", never, {}, {}, never, never, false, never>;
60
+ }
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@plait/mind",
3
+ "version": "0.2.0-next.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^13.3.0",
6
+ "@angular/core": "^13.3.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "module": "fesm2015/plait-mind.mjs",
12
+ "es2020": "fesm2020/plait-mind.mjs",
13
+ "esm2020": "esm2020/plait-mind.mjs",
14
+ "fesm2020": "fesm2020/plait-mind.mjs",
15
+ "fesm2015": "fesm2015/plait-mind.mjs",
16
+ "typings": "index.d.ts",
17
+ "exports": {
18
+ "./package.json": {
19
+ "default": "./package.json"
20
+ },
21
+ ".": {
22
+ "types": "./index.d.ts",
23
+ "esm2020": "./esm2020/plait-mind.mjs",
24
+ "es2020": "./fesm2020/plait-mind.mjs",
25
+ "es2015": "./fesm2015/plait-mind.mjs",
26
+ "node": "./fesm2015/plait-mind.mjs",
27
+ "default": "./fesm2020/plait-mind.mjs"
28
+ }
29
+ },
30
+ "sideEffects": false
31
+ }
@@ -0,0 +1,12 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { EmojiItem } from '../../interfaces/element-data';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MindEmojiBaseComponent {
5
+ protected elementRef: ElementRef<HTMLElement>;
6
+ fontSize: number;
7
+ emojiItem: EmojiItem;
8
+ get nativeElement(): HTMLElement;
9
+ constructor(elementRef: ElementRef<HTMLElement>);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<MindEmojiBaseComponent, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MindEmojiBaseComponent, never, never, { "fontSize": "fontSize"; "emojiItem": "emojiItem"; }, {}, never, never, false, never>;
12
+ }
@@ -0,0 +1,6 @@
1
+ import { EmojiData, MindElement } from '../../interfaces';
2
+ export declare function getEmojisRectangle(element: MindElement<EmojiData>): {
3
+ width: number;
4
+ height: number;
5
+ };
6
+ export declare function getEmojiFontSize(element: MindElement<EmojiData>): 14 | 18;
@@ -0,0 +1,22 @@
1
+ import { ComponentRef, ViewContainerRef } from '@angular/core';
2
+ import { EmojiItem, MindElement } from '../../interfaces';
3
+ import { MindEmojiBaseComponent } from './emoji-base.component';
4
+ import { PlaitMindEmojiBoard } from './with-mind-emoji';
5
+ export declare class EmojiDrawer {
6
+ private board;
7
+ private viewContainerRef;
8
+ componentRef: ComponentRef<MindEmojiBaseComponent> | null;
9
+ constructor(board: PlaitMindEmojiBoard, viewContainerRef: ViewContainerRef);
10
+ draw(emoji: EmojiItem, element: MindElement): void;
11
+ get nativeElement(): HTMLElement | null;
12
+ destroy(): void;
13
+ }
14
+ export declare class EmojisDrawer {
15
+ private board;
16
+ private viewContainerRef;
17
+ emojiDrawers: EmojiDrawer[];
18
+ g?: SVGGElement;
19
+ constructor(board: PlaitMindEmojiBoard, viewContainerRef: ViewContainerRef);
20
+ drawEmojis(element: MindElement): SVGGElement | undefined;
21
+ destroy(): void;
22
+ }
@@ -0,0 +1,3 @@
1
+ export * from './with-mind-emoji';
2
+ export * from './emoji';
3
+ export * from './emoji-base.component';
@@ -0,0 +1,8 @@
1
+ import { ComponentType, PlaitBoard } from '@plait/core';
2
+ import { MindElement } from '../../interfaces/element';
3
+ import { EmojiItem } from '../../interfaces/element-data';
4
+ import { MindEmojiBaseComponent } from './emoji-base.component';
5
+ export interface PlaitMindEmojiBoard extends PlaitBoard {
6
+ drawEmoji: (emoji: EmojiItem, element: MindElement) => ComponentType<MindEmojiBaseComponent>;
7
+ }
8
+ export declare const withEmoji: (board: PlaitBoard) => PlaitBoard & PlaitMindEmojiBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitPlugin } from '@plait/core';
2
+ export declare const withAbstract: PlaitPlugin;
@@ -0,0 +1,11 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ import { MindElement } from '../interfaces/element';
3
+ import { DetectResult } from '../interfaces/node';
4
+ import { MindNodeComponent } from '../node.component';
5
+ export declare const withDnd: (board: PlaitBoard) => PlaitBoard;
6
+ export declare const isValidTarget: (origin: MindElement, target: MindElement) => boolean;
7
+ export declare const addActiveOnDragOrigin: (activeElement: MindElement, isOrigin?: boolean) => void;
8
+ export declare const removeActiveOnDragOrigin: (activeElement: MindElement, isOrigin?: boolean) => void;
9
+ export declare const updateRightNodeCount: (board: PlaitBoard, activeComponent: MindNodeComponent, targetComponent: MindNodeComponent, detectResult: DetectResult) => void;
10
+ export declare const isDragging: (board: PlaitBoard) => boolean;
11
+ export declare const setIsDragging: (board: PlaitBoard, state: boolean) => void;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withMind: (board: PlaitBoard) => PlaitBoard & import("./emoji/with-mind-emoji").PlaitMindEmojiBoard;
@@ -0,0 +1,10 @@
1
+ export * from './mind.component';
2
+ export * from './node.component';
3
+ export * from './mind.module';
4
+ export * from './utils';
5
+ export * from './interfaces';
6
+ export * from './plugins/with-mind';
7
+ export * from './constants';
8
+ export * from './queries/index';
9
+ export * from './transforms/index';
10
+ export * from './plugins/emoji';
@@ -0,0 +1,8 @@
1
+ import { MindElement } from '../interfaces';
2
+ import { MindmapLayoutType } from '@plait/layouts';
3
+ /**
4
+ * get available sub layouts by element
5
+ * @param element
6
+ * @returns MindmapLayoutType[]
7
+ */
8
+ export declare const getAvailableSubLayoutsByElement: (element: MindElement) => MindmapLayoutType[] | undefined;
@@ -0,0 +1,3 @@
1
+ import { MindElement } from '../interfaces';
2
+ import { MindmapLayoutType } from '@plait/layouts';
3
+ export declare const getBranchMindmapLayouts: (element: MindElement) => MindmapLayoutType[];
@@ -0,0 +1,9 @@
1
+ import { MindElement } from '../interfaces';
2
+ import { MindmapLayoutType } from '@plait/layouts';
3
+ /**
4
+ * get correctly layout:
5
+ * 1. root is standard -> left or right
6
+ * 2. correct layout by incorrect layout direction
7
+ * @param element
8
+ */
9
+ export declare const getCorrectLayoutByElement: (element: MindElement) => MindmapLayoutType;
@@ -0,0 +1,3 @@
1
+ import { MindElement } from '../interfaces';
2
+ import { MindmapLayoutType } from '@plait/layouts';
3
+ export declare const getLayoutByElement: (element: MindElement) => MindmapLayoutType;
@@ -0,0 +1,8 @@
1
+ import { MindElement } from '../interfaces';
2
+ import { MindmapLayoutType } from '@plait/layouts';
3
+ /**
4
+ * 获取父节点布局类型
5
+ * @param element
6
+ * @returns MindmapLayoutType
7
+ */
8
+ export declare const getLayoutParentByElement: (element: MindElement) => MindmapLayoutType;
@@ -0,0 +1,7 @@
1
+ export declare const MindmapQueries: {
2
+ getAvailableSubLayoutsByElement: (element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>) => import("@plait/layouts").MindmapLayoutType[] | undefined;
3
+ getLayoutParentByElement: (element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>) => import("@plait/layouts").MindmapLayoutType;
4
+ getBranchMindmapLayouts: (element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>) => import("@plait/layouts").MindmapLayoutType[];
5
+ getLayoutByElement: (element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>) => import("@plait/layouts").MindmapLayoutType;
6
+ getCorrectLayoutByElement: (element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>) => import("@plait/layouts").MindmapLayoutType;
7
+ };
@@ -0,0 +1,99 @@
1
+ $primary: #4e8afa;
2
+
3
+ g[plait-mindmap='true'] {
4
+ .plait-richtext-container {
5
+ cursor: default;
6
+ min-width: 5px;
7
+ &[readonly='false'] {
8
+ cursor: text;
9
+ max-width: 34em;
10
+ }
11
+ }
12
+
13
+ .extend {
14
+ opacity: 0;
15
+ cursor: default;
16
+ }
17
+
18
+ .collapsed {
19
+ .extend {
20
+ opacity: 1;
21
+ }
22
+ }
23
+
24
+ .dragging-origin,
25
+ .dragging-child {
26
+ opacity: 0.6;
27
+ }
28
+
29
+ .node-emojis-container {
30
+ display: flex;
31
+ ::-moz-selection {
32
+ /* Code for Firefox */
33
+ background: none;
34
+ }
35
+ ::selection {
36
+ background: none;
37
+ }
38
+ }
39
+ }
40
+ .plait-board-container.focused:not(.selection-moving):not(.element-moving) {
41
+ .extend {
42
+ cursor: pointer;
43
+ &:hover {
44
+ opacity: 1;
45
+ }
46
+ }
47
+
48
+ g[plait-mindmap='true'] {
49
+ .hovered {
50
+ .extend {
51
+ opacity: 1;
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ .plait-board-container.hand {
58
+ svg {
59
+ cursor: grab;
60
+ }
61
+ .zoom-toolbar {
62
+ svg {
63
+ cursor: pointer;
64
+ }
65
+ }
66
+ .collapsed {
67
+ .extend:hover {
68
+ cursor: grab;
69
+ }
70
+ }
71
+ :not(.collapsed) > .extend {
72
+ display: none;
73
+ }
74
+ }
75
+ .plait-board-container.readonly {
76
+ .collapsed {
77
+ .extend:hover {
78
+ cursor: pointer;
79
+ }
80
+ }
81
+ :not(.collapsed) > .extend {
82
+ display: block;
83
+ .quick-insert {
84
+ display: none;
85
+ }
86
+ }
87
+ }
88
+ .plait-board-container.viewport-moving {
89
+ svg {
90
+ cursor: grabbing;
91
+ }
92
+ }
93
+
94
+ .fake-node {
95
+ .dragging {
96
+ cursor: pointer;
97
+ opacity: 0.6;
98
+ }
99
+ }
@@ -0,0 +1,7 @@
1
+ export declare const MindTransforms: {
2
+ setLayout: (board: import("@plait/core").PlaitBoard, layout: import("@plait/layouts").MindmapLayoutType, path: import("@plait/core").Path) => void;
3
+ setTopic: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>, topic: import("slate").BaseElement, width: number, height: number) => void;
4
+ setTopicSize: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>, width: number, height: number) => void;
5
+ addEmoji: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>, emojiItem: import("@plait/mind").EmojiItem) => void;
6
+ removeEmoji: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").EmojiData>, emojiItem: import("@plait/mind").EmojiItem) => void;
7
+ };
@@ -0,0 +1,3 @@
1
+ import { PlaitBoard, Path } from '@plait/core';
2
+ import { MindmapLayoutType } from '@plait/layouts';
3
+ export declare const setLayout: (board: PlaitBoard, layout: MindmapLayoutType, path: Path) => void;
@@ -0,0 +1,8 @@
1
+ import { Element } from 'slate';
2
+ import { MindElement } from '../interfaces/element';
3
+ import { PlaitBoard } from '@plait/core';
4
+ import { EmojiData, EmojiItem } from '../interfaces/element-data';
5
+ export declare const setTopic: (board: PlaitBoard, element: MindElement, topic: Element, width: number, height: number) => void;
6
+ export declare const setTopicSize: (board: PlaitBoard, element: MindElement, width: number, height: number) => void;
7
+ export declare const addEmoji: (board: PlaitBoard, element: MindElement, emojiItem: EmojiItem) => void;
8
+ export declare const removeEmoji: (board: PlaitBoard, element: MindElement<EmojiData>, emojiItem: EmojiItem) => void;
@@ -0,0 +1,5 @@
1
+ import { MindElement } from '../../interfaces/element';
2
+ export declare const separateChildren: (parentElement: MindElement) => {
3
+ leftChildren: MindElement<import("@plait/mind").BaseData>[];
4
+ rightChildren: MindElement<import("@plait/mind").BaseData>[];
5
+ };
@@ -0,0 +1,21 @@
1
+ import { PlaitBoard, Point, RectangleClient } from '@plait/core';
2
+ import { AbstractHandlePosition, MindElement } from '../../interfaces';
3
+ import { LayoutNode } from '@plait/layouts';
4
+ export declare const getRectangleByResizingLocation: (abstractRectangle: RectangleClient, location: number, handlePosition: AbstractHandlePosition, isHorizontal: boolean) => {
5
+ y: number;
6
+ height: number;
7
+ x: number;
8
+ width: number;
9
+ };
10
+ export declare const getLocationScope: (board: PlaitBoard, handlePosition: AbstractHandlePosition, parentChildren: MindElement[], element: MindElement, parent: LayoutNode, isHorizontal: boolean) => {
11
+ max: number;
12
+ min: number;
13
+ };
14
+ export declare const getHitAbstractHandle: (board: PlaitBoard, element: MindElement, point: Point) => AbstractHandlePosition | null;
15
+ export declare const getAbstractHandleRectangle: (rectangle: RectangleClient, isHorizontal: boolean, position: AbstractHandlePosition) => {
16
+ y: number;
17
+ height: number;
18
+ x: number;
19
+ width: number;
20
+ };
21
+ export declare function findLocationLeftIndex(board: PlaitBoard, parentChildren: MindElement[], location: number, isHorizontal: boolean): number;
@@ -0,0 +1,7 @@
1
+ import { PlaitBoard, PlaitElement, Point } from '@plait/core';
2
+ import { MindElement } from '../interfaces';
3
+ export declare const buildClipboardData: (board: PlaitBoard, selectedElements: MindElement[]) => MindElement<import("../interfaces").BaseData>[];
4
+ export declare const setClipboardData: (data: DataTransfer | null, elements: MindElement[]) => void;
5
+ export declare const getDataFromClipboard: (data: DataTransfer | null) => PlaitElement[];
6
+ export declare const insertClipboardData: (board: PlaitBoard, elements: PlaitElement[], targetPoint: Point) => void;
7
+ export declare const insertClipboardText: (board: PlaitBoard, parentElement: PlaitElement, text: string, width: number, height: number) => void;
@@ -0,0 +1,4 @@
1
+ import { MindElement } from '../interfaces';
2
+ export declare const getStrokeByMindmapElement: (element: MindElement) => string;
3
+ export declare const getLinkLineColorByMindmapElement: (element: MindElement) => string;
4
+ export declare const getRootLinkLineColorByMindmapElement: (root: MindElement) => string;
@@ -0,0 +1,3 @@
1
+ import { DetectResult, MindmapNode } from '../interfaces';
2
+ export declare const directionCorrector: (node: MindmapNode, detectResults: DetectResult[]) => DetectResult[] | null;
3
+ export declare const getAllowedDirection: (detectResults: DetectResult[], illegalDirections: DetectResult[]) => DetectResult[] | null;
@@ -0,0 +1,9 @@
1
+ import { Point } from '@plait/core';
2
+ import { DetectResult, MindmapNode } from '../interfaces';
3
+ /**
4
+ *
5
+ * @param targetNode
6
+ * @param centerPoint
7
+ * @returns DetectResult[] | null
8
+ */
9
+ export declare const directionDetector: (targetNode: MindmapNode, centerPoint: Point) => DetectResult[] | null;
@@ -0,0 +1,42 @@
1
+ import { RoughSVG } from 'roughjs/bin/svg';
2
+ import { DetectResult, MindElement, MindmapNode } from '../interfaces';
3
+ import { MindNodeComponent } from '../node.component';
4
+ import { MindmapLayoutType } from '@plait/layouts';
5
+ export declare const drawPlaceholderDropNodeG: (dropTarget: {
6
+ target: MindElement;
7
+ detectResult: DetectResult;
8
+ }, roughSVG: RoughSVG, fakeDropNodeG: SVGGElement | undefined) => void;
9
+ export declare const drawCurvePlaceholderDropNodeG: (targetRect: {
10
+ x: number;
11
+ y: number;
12
+ width: number;
13
+ height: number;
14
+ }, detectResult: DetectResult, targetIndex: number, targetComponent: MindNodeComponent, roughSVG: RoughSVG, parentComponent: MindNodeComponent, fakeDropNodeG: SVGGElement | undefined) => void;
15
+ export declare const drawStraightDropNodeG: (targetRect: {
16
+ x: number;
17
+ y: number;
18
+ width: number;
19
+ height: number;
20
+ }, detectResult: DetectResult, targetComponent: MindNodeComponent, roughSVG: RoughSVG, fakeDropNodeG: SVGGElement | undefined) => void;
21
+ export declare const getHorizontalFakeY: (detectResult: 'top' | 'bottom', targetIndex: number, parentNode: MindmapNode, targetRect: {
22
+ x: number;
23
+ y: number;
24
+ width: number;
25
+ height: number;
26
+ }, layout: MindmapLayoutType, fakeY: number) => number;
27
+ export declare const getIndentedFakePoint: (layout: MindmapLayoutType, pointOptions: {
28
+ fakeX: number;
29
+ fakeY: number;
30
+ x: number;
31
+ y: number;
32
+ width: number;
33
+ height: number;
34
+ strokeWidth: number;
35
+ }) => {
36
+ fakeX: number;
37
+ fakeY: number;
38
+ };
39
+ export declare const drawIndentNodeG: (fakeDropNodeG: SVGGElement, roughSVG: RoughSVG, fakePoint: {
40
+ fakeX: number;
41
+ fakeY: number;
42
+ }, node: MindmapNode) => void;
@@ -0,0 +1,8 @@
1
+ import { DetectResult, MindElement } from '../interfaces';
2
+ export declare const readjustmentDropTarget: (dropTarget: {
3
+ target: MindElement;
4
+ detectResult: DetectResult;
5
+ }) => {
6
+ target: MindElement;
7
+ detectResult: DetectResult;
8
+ };
@@ -0,0 +1,5 @@
1
+ import { MindmapNode } from '../interfaces/node';
2
+ import { PlaitBoard, Point, RectangleClient } from '@plait/core';
3
+ import { MindElement } from '../interfaces';
4
+ export declare function getRectangleByNode(node: MindmapNode): RectangleClient;
5
+ export declare function hitMindmapElement(board: PlaitBoard, point: Point, element: MindElement): boolean;