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 CHANGED
@@ -4,20 +4,15 @@
4
4
 
5
5
  ![display](./data.gif)
6
6
 
7
- ## Usage
8
-
9
- ```ts
10
- import { createTreemap, presetDecorator } from 'squarified'
11
-
12
- const root = document.querySelector('#app')
7
+ ## Install
13
8
 
14
- const treemap = createTreemap()
15
- treemap.use('decorator', presetDecorator)
9
+ ```shell
10
+ $ yarn add squarified
11
+ ```
16
12
 
17
- treemap.init(root)
13
+ ## Usage
18
14
 
19
- treemap.setOptions({ data: [] })
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 Box extends Display {
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$1 extends Box {
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: Graph) => void): void;
173
+ declare function traverse(graphs: Display[], handler: (graph: S) => void): void;
175
174
  declare const etoile: {
176
- Schedule: typeof Schedule$1;
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 Schedule extends etoile.Schedule {
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 bgBox;
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 Box extends Display {
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$1 extends Box {
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: Graph) => void): void;
173
+ declare function traverse(graphs: Display[], handler: (graph: S) => void): void;
175
174
  declare const etoile: {
176
- Schedule: typeof Schedule$1;
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 Schedule extends etoile.Schedule {
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 bgBox;
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'];