squarified 0.1.2 → 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.
- package/README.md +6 -11
- package/dist/index.d.mts +61 -63
- package/dist/index.d.ts +61 -63
- package/dist/index.js +440 -232
- package/dist/index.mjs +440 -232
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -4,20 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
import { createTreemap, presetDecorator } from 'squarified'
|
|
11
|
-
|
|
12
|
-
const root = document.querySelector('#app')
|
|
7
|
+
## Install
|
|
13
8
|
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
```shell
|
|
10
|
+
$ yarn add squarified
|
|
11
|
+
```
|
|
16
12
|
|
|
17
|
-
|
|
13
|
+
## Usage
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
```
|
|
15
|
+
See the dev directory for a minimal example.
|
|
21
16
|
|
|
22
17
|
### Auth
|
|
23
18
|
|
package/dist/index.d.mts
CHANGED
|
@@ -6,7 +6,7 @@ interface MatrixLoc {
|
|
|
6
6
|
e: number;
|
|
7
7
|
f: number;
|
|
8
8
|
}
|
|
9
|
-
declare class Matrix2D {
|
|
9
|
+
declare class Matrix2D implements MatrixLoc {
|
|
10
10
|
a: number;
|
|
11
11
|
b: number;
|
|
12
12
|
c: number;
|
|
@@ -26,7 +26,8 @@ declare const enum DisplayType {
|
|
|
26
26
|
Graph = "Graph",
|
|
27
27
|
Box = "Box",
|
|
28
28
|
Rect = "Rect",
|
|
29
|
-
Text = "Text"
|
|
29
|
+
Text = "Text",
|
|
30
|
+
Layer = "Layer"
|
|
30
31
|
}
|
|
31
32
|
declare abstract class Display {
|
|
32
33
|
parent: Display | null;
|
|
@@ -36,12 +37,6 @@ declare abstract class Display {
|
|
|
36
37
|
constructor();
|
|
37
38
|
destory(): void;
|
|
38
39
|
}
|
|
39
|
-
interface GraphStyleSheet {
|
|
40
|
-
stroke: string;
|
|
41
|
-
opacity: number;
|
|
42
|
-
font: string;
|
|
43
|
-
lineWidth: number;
|
|
44
|
-
}
|
|
45
40
|
interface LocOptions {
|
|
46
41
|
width: number;
|
|
47
42
|
height: number;
|
|
@@ -53,22 +48,6 @@ interface LocOptions {
|
|
|
53
48
|
skewX: number;
|
|
54
49
|
skewY: number;
|
|
55
50
|
}
|
|
56
|
-
interface GraphOptions extends LocOptions {
|
|
57
|
-
}
|
|
58
|
-
type Mod = [string, ...any[]];
|
|
59
|
-
interface Instruction {
|
|
60
|
-
mods: Mod[];
|
|
61
|
-
fillStyle(...args: any[]): void;
|
|
62
|
-
fillRect(...args: any[]): void;
|
|
63
|
-
strokeStyle(...args: any[]): void;
|
|
64
|
-
lineWidth(...args: any[]): void;
|
|
65
|
-
strokeRect(...args: any[]): void;
|
|
66
|
-
fillText(...args: any[]): void;
|
|
67
|
-
font(...args: any[]): void;
|
|
68
|
-
textBaseline(...args: any[]): void;
|
|
69
|
-
textAlign(...args: any[]): void;
|
|
70
|
-
}
|
|
71
|
-
declare function createInstruction(): Instruction;
|
|
72
51
|
declare abstract class S extends Display {
|
|
73
52
|
width: number;
|
|
74
53
|
height: number;
|
|
@@ -81,20 +60,16 @@ declare abstract class S extends Display {
|
|
|
81
60
|
skewY: number;
|
|
82
61
|
constructor(options?: Partial<LocOptions>);
|
|
83
62
|
}
|
|
84
|
-
declare abstract class Graph extends S {
|
|
85
|
-
instruction: ReturnType<typeof createInstruction>;
|
|
86
|
-
__refresh__: boolean;
|
|
87
|
-
__options__: Partial<LocOptions>;
|
|
88
|
-
abstract style: GraphStyleSheet;
|
|
89
|
-
constructor(options?: Partial<GraphOptions>);
|
|
90
|
-
abstract create(): void;
|
|
91
|
-
abstract clone(): Graph;
|
|
92
|
-
abstract get __shape__(): string;
|
|
93
|
-
render(ctx: CanvasRenderingContext2D): void;
|
|
94
|
-
get __instanceOf__(): DisplayType.Graph;
|
|
95
|
-
}
|
|
96
63
|
|
|
97
|
-
declare class
|
|
64
|
+
declare abstract class C extends Display {
|
|
65
|
+
elements: Display[];
|
|
66
|
+
constructor();
|
|
67
|
+
abstract get __instanceOf__(): string;
|
|
68
|
+
add(...elements: Display[]): void;
|
|
69
|
+
remove(...elements: Display[]): void;
|
|
70
|
+
destory(): void;
|
|
71
|
+
}
|
|
72
|
+
declare class Box extends C {
|
|
98
73
|
elements: Display[];
|
|
99
74
|
constructor();
|
|
100
75
|
add(...elements: Display[]): void;
|
|
@@ -104,6 +79,47 @@ declare class Box extends Display {
|
|
|
104
79
|
clone(): Box;
|
|
105
80
|
}
|
|
106
81
|
|
|
82
|
+
interface RenderViewportOptions {
|
|
83
|
+
width: number;
|
|
84
|
+
height: number;
|
|
85
|
+
devicePixelRatio: number;
|
|
86
|
+
shaow?: boolean;
|
|
87
|
+
}
|
|
88
|
+
declare class Render {
|
|
89
|
+
private c;
|
|
90
|
+
options: RenderViewportOptions;
|
|
91
|
+
constructor(to: Element, options: RenderViewportOptions);
|
|
92
|
+
clear(width: number, height: number): void;
|
|
93
|
+
get canvas(): HTMLCanvasElement;
|
|
94
|
+
get ctx(): CanvasRenderingContext2D;
|
|
95
|
+
initOptions(userOptions?: Partial<RenderViewportOptions>): void;
|
|
96
|
+
update(schedule: Schedule): void;
|
|
97
|
+
destory(): void;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
declare class Layer extends C implements S {
|
|
101
|
+
private c;
|
|
102
|
+
__refresh__: boolean;
|
|
103
|
+
options: RenderViewportOptions;
|
|
104
|
+
width: number;
|
|
105
|
+
height: number;
|
|
106
|
+
x: number;
|
|
107
|
+
y: number;
|
|
108
|
+
scaleX: number;
|
|
109
|
+
scaleY: number;
|
|
110
|
+
rotation: number;
|
|
111
|
+
skewX: number;
|
|
112
|
+
skewY: number;
|
|
113
|
+
constructor(options?: Partial<LocOptions>);
|
|
114
|
+
get __instanceOf__(): DisplayType.Layer;
|
|
115
|
+
setCanvasOptions(options?: Partial<RenderViewportOptions>): void;
|
|
116
|
+
setCacheSnapshot(c: HTMLCanvasElement): void;
|
|
117
|
+
initLoc(options?: Partial<LocOptions>): void;
|
|
118
|
+
draw(ctx: CanvasRenderingContext2D): void;
|
|
119
|
+
get canvas(): HTMLCanvasElement;
|
|
120
|
+
get ctx(): CanvasRenderingContext2D;
|
|
121
|
+
}
|
|
122
|
+
|
|
107
123
|
interface RGBColor {
|
|
108
124
|
r: number;
|
|
109
125
|
g: number;
|
|
@@ -144,36 +160,19 @@ declare class Event<EvtDefinition extends DefaultEventDefinition = DefaultEventD
|
|
|
144
160
|
bindWithContext<C>(c: C): (evt: keyof EvtDefinition, handler: BindThisParameter<EvtDefinition[keyof EvtDefinition], unknown extends C ? this : C>) => void;
|
|
145
161
|
}
|
|
146
162
|
|
|
147
|
-
interface RenderViewportOptions {
|
|
148
|
-
width: number;
|
|
149
|
-
height: number;
|
|
150
|
-
devicePixelRatio: number;
|
|
151
|
-
}
|
|
152
|
-
declare class Render {
|
|
153
|
-
canvas: HTMLCanvasElement;
|
|
154
|
-
ctx: CanvasRenderingContext2D;
|
|
155
|
-
options: RenderViewportOptions;
|
|
156
|
-
constructor(to: Element, options: RenderViewportOptions);
|
|
157
|
-
clear(width: number, height: number): void;
|
|
158
|
-
initOptions(userOptions?: Partial<RenderViewportOptions>): void;
|
|
159
|
-
update(schedule: Schedule$1): void;
|
|
160
|
-
destory(): void;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
163
|
type ApplyTo = string | Element;
|
|
164
|
-
declare class Schedule
|
|
164
|
+
declare class Schedule extends Box {
|
|
165
165
|
render: Render;
|
|
166
166
|
to: Element;
|
|
167
167
|
event: Event;
|
|
168
168
|
constructor(to: ApplyTo, renderOptions?: Partial<RenderViewportOptions>);
|
|
169
|
-
applyTransform(matrix: Matrix2D): void;
|
|
170
169
|
update(): void;
|
|
171
170
|
execute(render: Render, graph?: Display): void;
|
|
172
171
|
}
|
|
173
172
|
|
|
174
|
-
declare function traverse(graphs: Display[], handler: (graph:
|
|
173
|
+
declare function traverse(graphs: Display[], handler: (graph: S) => void): void;
|
|
175
174
|
declare const etoile: {
|
|
176
|
-
Schedule: typeof Schedule
|
|
175
|
+
Schedule: typeof Schedule;
|
|
177
176
|
traverse: typeof traverse;
|
|
178
177
|
};
|
|
179
178
|
|
|
@@ -290,23 +289,22 @@ interface App {
|
|
|
290
289
|
use: (using: Using, register: (app: TreemapLayout) => void) => void;
|
|
291
290
|
zoom: (id: string) => void;
|
|
292
291
|
}
|
|
293
|
-
declare class
|
|
294
|
-
}
|
|
295
|
-
declare class TreemapLayout extends Schedule {
|
|
292
|
+
declare class TreemapLayout extends etoile.Schedule {
|
|
296
293
|
data: NativeModule[];
|
|
297
294
|
layoutNodes: LayoutModule[];
|
|
298
295
|
decorator: RenderDecorator;
|
|
299
|
-
private
|
|
296
|
+
private bgLayer;
|
|
300
297
|
private fgBox;
|
|
301
298
|
fontsCaches: Record<string, number>;
|
|
302
299
|
ellispsisWidthCache: Record<string, number>;
|
|
303
|
-
constructor(...args: ConstructorParameters<typeof Schedule>);
|
|
300
|
+
constructor(...args: ConstructorParameters<typeof etoile.Schedule>);
|
|
304
301
|
drawBackgroundNode(node: LayoutModule): void;
|
|
305
302
|
drawForegroundNode(node: LayoutModule): void;
|
|
306
|
-
reset(): void;
|
|
303
|
+
reset(refresh?: boolean): void;
|
|
307
304
|
get api(): {
|
|
308
305
|
zoom: (node: LayoutModule) => void;
|
|
309
306
|
};
|
|
307
|
+
get backgroundLayer(): Layer;
|
|
310
308
|
}
|
|
311
309
|
declare function createTreemap(): App & EventMethods;
|
|
312
310
|
type TreemapInstanceAPI = TreemapLayout['api'];
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ interface MatrixLoc {
|
|
|
6
6
|
e: number;
|
|
7
7
|
f: number;
|
|
8
8
|
}
|
|
9
|
-
declare class Matrix2D {
|
|
9
|
+
declare class Matrix2D implements MatrixLoc {
|
|
10
10
|
a: number;
|
|
11
11
|
b: number;
|
|
12
12
|
c: number;
|
|
@@ -26,7 +26,8 @@ declare const enum DisplayType {
|
|
|
26
26
|
Graph = "Graph",
|
|
27
27
|
Box = "Box",
|
|
28
28
|
Rect = "Rect",
|
|
29
|
-
Text = "Text"
|
|
29
|
+
Text = "Text",
|
|
30
|
+
Layer = "Layer"
|
|
30
31
|
}
|
|
31
32
|
declare abstract class Display {
|
|
32
33
|
parent: Display | null;
|
|
@@ -36,12 +37,6 @@ declare abstract class Display {
|
|
|
36
37
|
constructor();
|
|
37
38
|
destory(): void;
|
|
38
39
|
}
|
|
39
|
-
interface GraphStyleSheet {
|
|
40
|
-
stroke: string;
|
|
41
|
-
opacity: number;
|
|
42
|
-
font: string;
|
|
43
|
-
lineWidth: number;
|
|
44
|
-
}
|
|
45
40
|
interface LocOptions {
|
|
46
41
|
width: number;
|
|
47
42
|
height: number;
|
|
@@ -53,22 +48,6 @@ interface LocOptions {
|
|
|
53
48
|
skewX: number;
|
|
54
49
|
skewY: number;
|
|
55
50
|
}
|
|
56
|
-
interface GraphOptions extends LocOptions {
|
|
57
|
-
}
|
|
58
|
-
type Mod = [string, ...any[]];
|
|
59
|
-
interface Instruction {
|
|
60
|
-
mods: Mod[];
|
|
61
|
-
fillStyle(...args: any[]): void;
|
|
62
|
-
fillRect(...args: any[]): void;
|
|
63
|
-
strokeStyle(...args: any[]): void;
|
|
64
|
-
lineWidth(...args: any[]): void;
|
|
65
|
-
strokeRect(...args: any[]): void;
|
|
66
|
-
fillText(...args: any[]): void;
|
|
67
|
-
font(...args: any[]): void;
|
|
68
|
-
textBaseline(...args: any[]): void;
|
|
69
|
-
textAlign(...args: any[]): void;
|
|
70
|
-
}
|
|
71
|
-
declare function createInstruction(): Instruction;
|
|
72
51
|
declare abstract class S extends Display {
|
|
73
52
|
width: number;
|
|
74
53
|
height: number;
|
|
@@ -81,20 +60,16 @@ declare abstract class S extends Display {
|
|
|
81
60
|
skewY: number;
|
|
82
61
|
constructor(options?: Partial<LocOptions>);
|
|
83
62
|
}
|
|
84
|
-
declare abstract class Graph extends S {
|
|
85
|
-
instruction: ReturnType<typeof createInstruction>;
|
|
86
|
-
__refresh__: boolean;
|
|
87
|
-
__options__: Partial<LocOptions>;
|
|
88
|
-
abstract style: GraphStyleSheet;
|
|
89
|
-
constructor(options?: Partial<GraphOptions>);
|
|
90
|
-
abstract create(): void;
|
|
91
|
-
abstract clone(): Graph;
|
|
92
|
-
abstract get __shape__(): string;
|
|
93
|
-
render(ctx: CanvasRenderingContext2D): void;
|
|
94
|
-
get __instanceOf__(): DisplayType.Graph;
|
|
95
|
-
}
|
|
96
63
|
|
|
97
|
-
declare class
|
|
64
|
+
declare abstract class C extends Display {
|
|
65
|
+
elements: Display[];
|
|
66
|
+
constructor();
|
|
67
|
+
abstract get __instanceOf__(): string;
|
|
68
|
+
add(...elements: Display[]): void;
|
|
69
|
+
remove(...elements: Display[]): void;
|
|
70
|
+
destory(): void;
|
|
71
|
+
}
|
|
72
|
+
declare class Box extends C {
|
|
98
73
|
elements: Display[];
|
|
99
74
|
constructor();
|
|
100
75
|
add(...elements: Display[]): void;
|
|
@@ -104,6 +79,47 @@ declare class Box extends Display {
|
|
|
104
79
|
clone(): Box;
|
|
105
80
|
}
|
|
106
81
|
|
|
82
|
+
interface RenderViewportOptions {
|
|
83
|
+
width: number;
|
|
84
|
+
height: number;
|
|
85
|
+
devicePixelRatio: number;
|
|
86
|
+
shaow?: boolean;
|
|
87
|
+
}
|
|
88
|
+
declare class Render {
|
|
89
|
+
private c;
|
|
90
|
+
options: RenderViewportOptions;
|
|
91
|
+
constructor(to: Element, options: RenderViewportOptions);
|
|
92
|
+
clear(width: number, height: number): void;
|
|
93
|
+
get canvas(): HTMLCanvasElement;
|
|
94
|
+
get ctx(): CanvasRenderingContext2D;
|
|
95
|
+
initOptions(userOptions?: Partial<RenderViewportOptions>): void;
|
|
96
|
+
update(schedule: Schedule): void;
|
|
97
|
+
destory(): void;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
declare class Layer extends C implements S {
|
|
101
|
+
private c;
|
|
102
|
+
__refresh__: boolean;
|
|
103
|
+
options: RenderViewportOptions;
|
|
104
|
+
width: number;
|
|
105
|
+
height: number;
|
|
106
|
+
x: number;
|
|
107
|
+
y: number;
|
|
108
|
+
scaleX: number;
|
|
109
|
+
scaleY: number;
|
|
110
|
+
rotation: number;
|
|
111
|
+
skewX: number;
|
|
112
|
+
skewY: number;
|
|
113
|
+
constructor(options?: Partial<LocOptions>);
|
|
114
|
+
get __instanceOf__(): DisplayType.Layer;
|
|
115
|
+
setCanvasOptions(options?: Partial<RenderViewportOptions>): void;
|
|
116
|
+
setCacheSnapshot(c: HTMLCanvasElement): void;
|
|
117
|
+
initLoc(options?: Partial<LocOptions>): void;
|
|
118
|
+
draw(ctx: CanvasRenderingContext2D): void;
|
|
119
|
+
get canvas(): HTMLCanvasElement;
|
|
120
|
+
get ctx(): CanvasRenderingContext2D;
|
|
121
|
+
}
|
|
122
|
+
|
|
107
123
|
interface RGBColor {
|
|
108
124
|
r: number;
|
|
109
125
|
g: number;
|
|
@@ -144,36 +160,19 @@ declare class Event<EvtDefinition extends DefaultEventDefinition = DefaultEventD
|
|
|
144
160
|
bindWithContext<C>(c: C): (evt: keyof EvtDefinition, handler: BindThisParameter<EvtDefinition[keyof EvtDefinition], unknown extends C ? this : C>) => void;
|
|
145
161
|
}
|
|
146
162
|
|
|
147
|
-
interface RenderViewportOptions {
|
|
148
|
-
width: number;
|
|
149
|
-
height: number;
|
|
150
|
-
devicePixelRatio: number;
|
|
151
|
-
}
|
|
152
|
-
declare class Render {
|
|
153
|
-
canvas: HTMLCanvasElement;
|
|
154
|
-
ctx: CanvasRenderingContext2D;
|
|
155
|
-
options: RenderViewportOptions;
|
|
156
|
-
constructor(to: Element, options: RenderViewportOptions);
|
|
157
|
-
clear(width: number, height: number): void;
|
|
158
|
-
initOptions(userOptions?: Partial<RenderViewportOptions>): void;
|
|
159
|
-
update(schedule: Schedule$1): void;
|
|
160
|
-
destory(): void;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
163
|
type ApplyTo = string | Element;
|
|
164
|
-
declare class Schedule
|
|
164
|
+
declare class Schedule extends Box {
|
|
165
165
|
render: Render;
|
|
166
166
|
to: Element;
|
|
167
167
|
event: Event;
|
|
168
168
|
constructor(to: ApplyTo, renderOptions?: Partial<RenderViewportOptions>);
|
|
169
|
-
applyTransform(matrix: Matrix2D): void;
|
|
170
169
|
update(): void;
|
|
171
170
|
execute(render: Render, graph?: Display): void;
|
|
172
171
|
}
|
|
173
172
|
|
|
174
|
-
declare function traverse(graphs: Display[], handler: (graph:
|
|
173
|
+
declare function traverse(graphs: Display[], handler: (graph: S) => void): void;
|
|
175
174
|
declare const etoile: {
|
|
176
|
-
Schedule: typeof Schedule
|
|
175
|
+
Schedule: typeof Schedule;
|
|
177
176
|
traverse: typeof traverse;
|
|
178
177
|
};
|
|
179
178
|
|
|
@@ -290,23 +289,22 @@ interface App {
|
|
|
290
289
|
use: (using: Using, register: (app: TreemapLayout) => void) => void;
|
|
291
290
|
zoom: (id: string) => void;
|
|
292
291
|
}
|
|
293
|
-
declare class
|
|
294
|
-
}
|
|
295
|
-
declare class TreemapLayout extends Schedule {
|
|
292
|
+
declare class TreemapLayout extends etoile.Schedule {
|
|
296
293
|
data: NativeModule[];
|
|
297
294
|
layoutNodes: LayoutModule[];
|
|
298
295
|
decorator: RenderDecorator;
|
|
299
|
-
private
|
|
296
|
+
private bgLayer;
|
|
300
297
|
private fgBox;
|
|
301
298
|
fontsCaches: Record<string, number>;
|
|
302
299
|
ellispsisWidthCache: Record<string, number>;
|
|
303
|
-
constructor(...args: ConstructorParameters<typeof Schedule>);
|
|
300
|
+
constructor(...args: ConstructorParameters<typeof etoile.Schedule>);
|
|
304
301
|
drawBackgroundNode(node: LayoutModule): void;
|
|
305
302
|
drawForegroundNode(node: LayoutModule): void;
|
|
306
|
-
reset(): void;
|
|
303
|
+
reset(refresh?: boolean): void;
|
|
307
304
|
get api(): {
|
|
308
305
|
zoom: (node: LayoutModule) => void;
|
|
309
306
|
};
|
|
307
|
+
get backgroundLayer(): Layer;
|
|
310
308
|
}
|
|
311
309
|
declare function createTreemap(): App & EventMethods;
|
|
312
310
|
type TreemapInstanceAPI = TreemapLayout['api'];
|