@plait/layouts 0.90.1 → 0.92.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.
package/index.d.ts CHANGED
@@ -1,5 +1,167 @@
1
+ import * as _plait_layouts from '@plait/layouts';
2
+
1
3
  /**
2
- * Generated bundle index. Do not edit.
4
+ * abstract layout node
3
5
  */
4
- /// <amd-module name="@plait/layouts" />
5
- export * from './public-api';
6
+ declare class LayoutNode {
7
+ x: number;
8
+ y: number;
9
+ vGap: number;
10
+ hGap: number;
11
+ origin: OriginNode;
12
+ blackNode?: LayoutBlockNode;
13
+ width: number;
14
+ height: number;
15
+ depth: number;
16
+ children: LayoutNode[];
17
+ parent?: LayoutNode;
18
+ left: boolean;
19
+ up: boolean;
20
+ layout: MindLayoutType;
21
+ verticalConnectingPosition?: ConnectingPosition;
22
+ constructor(origin: OriginNode, options: LayoutOptions, context: LayoutContext, parent?: LayoutNode);
23
+ isRoot(): boolean;
24
+ addGap(hGap: number, vGap: number): void;
25
+ eachNode(callback: (node: LayoutNode) => void): void;
26
+ getBoundingBox(): BoundingBox;
27
+ translate(tx?: number, ty?: number): void;
28
+ right2left(): void;
29
+ down2up(): void;
30
+ }
31
+ interface BoundingBox {
32
+ left: number;
33
+ top: number;
34
+ right: number;
35
+ bottom: number;
36
+ width: number;
37
+ height: number;
38
+ }
39
+ declare class LayoutBlockNode {
40
+ left: number;
41
+ right: number;
42
+ top: number;
43
+ bottom: number;
44
+ width: number;
45
+ height: number;
46
+ rootX: number;
47
+ rootY: number;
48
+ rootWidth: number;
49
+ rootHeight: number;
50
+ constructor(left: number, right: number, top: number, bottom: number, width: number, height: number, rootX: number, rootY: number, rootWidth: number, rootHeight: number);
51
+ }
52
+ declare function toHorizontal(black: LayoutBlockNode): LayoutBlockNode;
53
+ /**
54
+ * Connecting position, affecting horizontal layout
55
+ */
56
+ declare enum ConnectingPosition {
57
+ middle = "middle",
58
+ bottom = "bottom"
59
+ }
60
+
61
+ interface LayoutOptions {
62
+ getHeight: (node: OriginNode) => number;
63
+ getWidth: (node: OriginNode) => number;
64
+ getHorizontalGap: (node: OriginNode, parent?: LayoutNode) => number;
65
+ getVerticalGap: (node: OriginNode, parent?: LayoutNode) => number;
66
+ getVerticalConnectingPosition: (node: OriginNode, parent?: LayoutNode) => ConnectingPosition;
67
+ getExtendWidth?: (node: OriginNode) => number;
68
+ getExtendHeight: (node: OriginNode) => number;
69
+ getIndentedCrossLevelGap: () => number;
70
+ }
71
+ interface LayoutContext {
72
+ toLeft: boolean;
73
+ toTop: boolean;
74
+ rootLayoutType: MindLayoutType;
75
+ }
76
+ interface OriginNode {
77
+ children: OriginNode[];
78
+ isCollapsed?: boolean;
79
+ layout?: string;
80
+ rightNodeCount: number;
81
+ }
82
+ interface AbstractNode extends OriginNode {
83
+ start: number;
84
+ end: number;
85
+ }
86
+ declare const AbstractNode: {
87
+ isAbstract(value: any): value is AbstractNode;
88
+ };
89
+ declare enum MindLayoutType {
90
+ 'right' = "right",
91
+ 'left' = "left",
92
+ 'standard' = "standard",
93
+ 'upward' = "upward",
94
+ 'downward' = "downward",
95
+ 'rightBottomIndented' = "right-bottom-indented",
96
+ 'rightTopIndented' = "right-top-indented",
97
+ 'leftTopIndented' = "left-top-indented",
98
+ 'leftBottomIndented' = "left-bottom-indented"
99
+ }
100
+ declare enum LayoutType {
101
+ 'logic' = "logic",
102
+ 'indented' = "indented",
103
+ 'fishBone' = "fish-bone"
104
+ }
105
+
106
+ declare class GlobalLayout {
107
+ static layout(root: OriginNode, options: LayoutOptions, mindLayoutType: MindLayoutType): _plait_layouts.LayoutNode;
108
+ }
109
+
110
+ declare function findLayoutType(node: LayoutNode): MindLayoutType | null;
111
+ declare const isIndentedLayout: (layout: MindLayoutType) => layout is MindLayoutType.rightBottomIndented | MindLayoutType.rightTopIndented | MindLayoutType.leftTopIndented | MindLayoutType.leftBottomIndented;
112
+ declare const isLogicLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.left | MindLayoutType.upward | MindLayoutType.downward;
113
+ declare const isStandardLayout: (layout: MindLayoutType) => layout is MindLayoutType.standard;
114
+ declare const isHorizontalLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.left | MindLayoutType.standard | MindLayoutType.rightBottomIndented | MindLayoutType.rightTopIndented | MindLayoutType.leftTopIndented | MindLayoutType.leftBottomIndented;
115
+ declare const isHorizontalLogicLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.left | MindLayoutType.standard;
116
+ declare const isVerticalLogicLayout: (layout: MindLayoutType) => layout is MindLayoutType.upward | MindLayoutType.downward;
117
+ declare const isTopLayout: (layout: MindLayoutType) => layout is MindLayoutType.upward | MindLayoutType.rightTopIndented | MindLayoutType.leftTopIndented;
118
+ declare const isBottomLayout: (layout: MindLayoutType) => layout is MindLayoutType.downward | MindLayoutType.rightBottomIndented | MindLayoutType.leftBottomIndented;
119
+ declare const isLeftLayout: (layout: MindLayoutType) => layout is MindLayoutType.left | MindLayoutType.leftTopIndented | MindLayoutType.leftBottomIndented;
120
+ declare const isRightLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.rightBottomIndented | MindLayoutType.rightTopIndented;
121
+ declare const extractLayoutType: (mindLayoutType: MindLayoutType) => LayoutType;
122
+ declare const getAbstractLayout: (parentLayout: MindLayoutType) => MindLayoutType.right | MindLayoutType.left | MindLayoutType.standard | MindLayoutType.upward | MindLayoutType.downward;
123
+
124
+ /**
125
+ * abstract tree node for tree layout algorithm
126
+ */
127
+ declare class LayoutTreeNode {
128
+ width: number;
129
+ height: number;
130
+ y: number;
131
+ children: LayoutTreeNode[];
132
+ childrenCount: number;
133
+ x: number;
134
+ preliminary: number;
135
+ modifier: number;
136
+ shift: number;
137
+ change: number;
138
+ tl: any;
139
+ tr: any;
140
+ el: LayoutTreeNode | null;
141
+ er: LayoutTreeNode | null;
142
+ msel: number;
143
+ mser: number;
144
+ origin: LayoutNode;
145
+ constructor(width: number, height: number, y: number, children: LayoutTreeNode[], origin: LayoutNode);
146
+ }
147
+
148
+ declare const getNonAbstractChildren: <T extends {
149
+ children?: T[];
150
+ } = LayoutNode | LayoutTreeNode>(parentNode: T) => T[];
151
+ declare const findAbstractByEndNode: <T extends {
152
+ children: T[];
153
+ } = LayoutNode | LayoutTreeNode>(parentNode: T, endNode: T) => T | undefined;
154
+ declare const findAbstractByStartNode: <T extends {
155
+ children: T[];
156
+ } = LayoutNode | LayoutTreeNode>(parentNode: T, startNode: T) => T | undefined;
157
+ /**
158
+ * handle standard layout effect
159
+ * the abstract correct start and end should sub rightNodeCount when it is set on left area
160
+ */
161
+ declare const getCorrectStartEnd: (abstract: AbstractNode, parent: LayoutNode) => {
162
+ start: number;
163
+ end: number;
164
+ };
165
+
166
+ export { AbstractNode, ConnectingPosition, GlobalLayout, LayoutBlockNode, LayoutNode, LayoutType, MindLayoutType, extractLayoutType, findAbstractByEndNode, findAbstractByStartNode, findLayoutType, getAbstractLayout, getCorrectStartEnd, getNonAbstractChildren, isBottomLayout, isHorizontalLayout, isHorizontalLogicLayout, isIndentedLayout, isLeftLayout, isLogicLayout, isRightLayout, isStandardLayout, isTopLayout, isVerticalLogicLayout, toHorizontal };
167
+ export type { BoundingBox, LayoutContext, LayoutOptions, OriginNode };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plait/layouts",
3
- "version": "0.90.1",
3
+ "version": "0.92.0-next.0",
4
4
  "peerDependencies": {},
5
5
  "dependencies": {
6
6
  "tslib": "^2.3.0"
@@ -1,3 +0,0 @@
1
- import { LayoutTreeNode } from '../interfaces/layout-tree-node';
2
- declare function layout(treeNode: LayoutTreeNode): void;
3
- export { layout };
@@ -1,58 +0,0 @@
1
- import { LayoutContext, LayoutOptions, MindLayoutType, OriginNode } from './mind';
2
- /**
3
- * abstract layout node
4
- */
5
- export declare class LayoutNode {
6
- x: number;
7
- y: number;
8
- vGap: number;
9
- hGap: number;
10
- origin: OriginNode;
11
- blackNode?: LayoutBlockNode;
12
- width: number;
13
- height: number;
14
- depth: number;
15
- children: LayoutNode[];
16
- parent?: LayoutNode;
17
- left: boolean;
18
- up: boolean;
19
- layout: MindLayoutType;
20
- verticalConnectingPosition?: ConnectingPosition;
21
- constructor(origin: OriginNode, options: LayoutOptions, context: LayoutContext, parent?: LayoutNode);
22
- isRoot(): boolean;
23
- addGap(hGap: number, vGap: number): void;
24
- eachNode(callback: (node: LayoutNode) => void): void;
25
- getBoundingBox(): BoundingBox;
26
- translate(tx?: number, ty?: number): void;
27
- right2left(): void;
28
- down2up(): void;
29
- }
30
- export interface BoundingBox {
31
- left: number;
32
- top: number;
33
- right: number;
34
- bottom: number;
35
- width: number;
36
- height: number;
37
- }
38
- export declare class LayoutBlockNode {
39
- left: number;
40
- right: number;
41
- top: number;
42
- bottom: number;
43
- width: number;
44
- height: number;
45
- rootX: number;
46
- rootY: number;
47
- rootWidth: number;
48
- rootHeight: number;
49
- constructor(left: number, right: number, top: number, bottom: number, width: number, height: number, rootX: number, rootY: number, rootWidth: number, rootHeight: number);
50
- }
51
- export declare function toHorizontal(black: LayoutBlockNode): LayoutBlockNode;
52
- /**
53
- * Connecting position, affecting horizontal layout
54
- */
55
- export declare enum ConnectingPosition {
56
- middle = "middle",
57
- bottom = "bottom"
58
- }
@@ -1,24 +0,0 @@
1
- import { LayoutNode } from './layout-node';
2
- /**
3
- * abstract tree node for tree layout algorithm
4
- */
5
- export declare class LayoutTreeNode {
6
- width: number;
7
- height: number;
8
- y: number;
9
- children: LayoutTreeNode[];
10
- childrenCount: number;
11
- x: number;
12
- preliminary: number;
13
- modifier: number;
14
- shift: number;
15
- change: number;
16
- tl: any;
17
- tr: any;
18
- el: LayoutTreeNode | null;
19
- er: LayoutTreeNode | null;
20
- msel: number;
21
- mser: number;
22
- origin: LayoutNode;
23
- constructor(width: number, height: number, y: number, children: LayoutTreeNode[], origin: LayoutNode);
24
- }
@@ -1,45 +0,0 @@
1
- import { LayoutNode, ConnectingPosition } from './layout-node';
2
- export interface LayoutOptions {
3
- getHeight: (node: OriginNode) => number;
4
- getWidth: (node: OriginNode) => number;
5
- getHorizontalGap: (node: OriginNode, parent?: LayoutNode) => number;
6
- getVerticalGap: (node: OriginNode, parent?: LayoutNode) => number;
7
- getVerticalConnectingPosition: (node: OriginNode, parent?: LayoutNode) => ConnectingPosition;
8
- getExtendWidth?: (node: OriginNode) => number;
9
- getExtendHeight: (node: OriginNode) => number;
10
- getIndentedCrossLevelGap: () => number;
11
- }
12
- export interface LayoutContext {
13
- toLeft: boolean;
14
- toTop: boolean;
15
- rootLayoutType: MindLayoutType;
16
- }
17
- export interface OriginNode {
18
- children: OriginNode[];
19
- isCollapsed?: boolean;
20
- layout?: string;
21
- rightNodeCount: number;
22
- }
23
- export interface AbstractNode extends OriginNode {
24
- start: number;
25
- end: number;
26
- }
27
- export declare const AbstractNode: {
28
- isAbstract(value: any): value is AbstractNode;
29
- };
30
- export declare enum MindLayoutType {
31
- 'right' = "right",
32
- 'left' = "left",
33
- 'standard' = "standard",
34
- 'upward' = "upward",
35
- 'downward' = "downward",
36
- 'rightBottomIndented' = "right-bottom-indented",
37
- 'rightTopIndented' = "right-top-indented",
38
- 'leftTopIndented' = "left-top-indented",
39
- 'leftBottomIndented' = "left-bottom-indented"
40
- }
41
- export declare enum LayoutType {
42
- 'logic' = "logic",
43
- 'indented' = "indented",
44
- 'fishBone' = "fish-bone"
45
- }
@@ -1,7 +0,0 @@
1
- import { LayoutNode } from '../interfaces/layout-node';
2
- import { LayoutContext, LayoutOptions, OriginNode } from '../interfaces/mind';
3
- export declare class BaseLayout {
4
- constructor();
5
- layout(node: OriginNode, layoutType: string, options: LayoutOptions, context: LayoutContext, isHorizontal?: boolean, parent?: LayoutNode): LayoutNode;
6
- private buildLayoutNode;
7
- }
@@ -1,4 +0,0 @@
1
- import { LayoutOptions, MindLayoutType, OriginNode } from '../interfaces/mind';
2
- export declare class GlobalLayout {
3
- static layout(root: OriginNode, options: LayoutOptions, mindLayoutType: MindLayoutType): import("@plait/layouts").LayoutNode;
4
- }
@@ -1,4 +0,0 @@
1
- import { LayoutNode } from '../interfaces/layout-node';
2
- import { LayoutOptions } from '../interfaces/mind';
3
- export declare function separateXAxle(node: LayoutNode, d?: number): void;
4
- export declare function separateYAxle(root: LayoutNode, options: LayoutOptions): void;
@@ -1,5 +0,0 @@
1
- import { LayoutNode } from '../interfaces/layout-node';
2
- import { LayoutTreeNode } from '../interfaces/layout-tree-node';
3
- export declare function setLayoutTreeResult(tree: LayoutTreeNode, root: LayoutNode, isHorizontal: Boolean): void;
4
- export declare function separateYAxle(node: LayoutNode, isHorizontal: boolean, d?: number): void;
5
- export declare const buildLayoutTree: (root: LayoutNode, isHorizontal: boolean) => LayoutTreeNode;
package/public-api.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './layouts/global-layout';
2
- export * from './utils/layout';
3
- export * from './utils/abstract';
4
- export * from './interfaces/layout-node';
5
- export * from './interfaces/mind';
@@ -1,20 +0,0 @@
1
- import { LayoutNode } from '../interfaces/layout-node';
2
- import { LayoutTreeNode } from '../interfaces/layout-tree-node';
3
- import { AbstractNode } from '../interfaces/mind';
4
- export declare const getNonAbstractChildren: <T extends {
5
- children?: T[];
6
- } = LayoutNode | LayoutTreeNode>(parentNode: T) => T[];
7
- export declare const findAbstractByEndNode: <T extends {
8
- children: T[];
9
- } = LayoutNode | LayoutTreeNode>(parentNode: T, endNode: T) => T | undefined;
10
- export declare const findAbstractByStartNode: <T extends {
11
- children: T[];
12
- } = LayoutNode | LayoutTreeNode>(parentNode: T, startNode: T) => T | undefined;
13
- /**
14
- * handle standard layout effect
15
- * the abstract correct start and end should sub rightNodeCount when it is set on left area
16
- */
17
- export declare const getCorrectStartEnd: (abstract: AbstractNode, parent: LayoutNode) => {
18
- start: number;
19
- end: number;
20
- };
package/utils/layout.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import { LayoutNode } from '../interfaces/layout-node';
2
- import { LayoutType, MindLayoutType } from '../interfaces/mind';
3
- export declare function findLayoutType(node: LayoutNode): MindLayoutType | null;
4
- export declare const isIndentedLayout: (layout: MindLayoutType) => layout is MindLayoutType.rightBottomIndented | MindLayoutType.rightTopIndented | MindLayoutType.leftTopIndented | MindLayoutType.leftBottomIndented;
5
- export declare const isLogicLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.left | MindLayoutType.upward | MindLayoutType.downward;
6
- export declare const isStandardLayout: (layout: MindLayoutType) => layout is MindLayoutType.standard;
7
- export declare const isHorizontalLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.left | MindLayoutType.standard | MindLayoutType.rightBottomIndented | MindLayoutType.rightTopIndented | MindLayoutType.leftTopIndented | MindLayoutType.leftBottomIndented;
8
- export declare const isHorizontalLogicLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.left | MindLayoutType.standard;
9
- export declare const isVerticalLogicLayout: (layout: MindLayoutType) => layout is MindLayoutType.upward | MindLayoutType.downward;
10
- export declare const isTopLayout: (layout: MindLayoutType) => layout is MindLayoutType.upward | MindLayoutType.rightTopIndented | MindLayoutType.leftTopIndented;
11
- export declare const isBottomLayout: (layout: MindLayoutType) => layout is MindLayoutType.downward | MindLayoutType.rightBottomIndented | MindLayoutType.leftBottomIndented;
12
- export declare const isLeftLayout: (layout: MindLayoutType) => layout is MindLayoutType.left | MindLayoutType.leftTopIndented | MindLayoutType.leftBottomIndented;
13
- export declare const isRightLayout: (layout: MindLayoutType) => layout is MindLayoutType.right | MindLayoutType.rightBottomIndented | MindLayoutType.rightTopIndented;
14
- export declare const extractLayoutType: (mindLayoutType: MindLayoutType) => LayoutType;
15
- export declare const getAbstractLayout: (parentLayout: MindLayoutType) => MindLayoutType.right | MindLayoutType.left | MindLayoutType.standard | MindLayoutType.upward | MindLayoutType.downward;