squarified 0.4.0 → 0.4.2

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.
@@ -0,0 +1,520 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
+ type Any = any
3
+
4
+ type AnyObject = Record<keyof Any, Any>
5
+
6
+ type NonNull = NonNullable<unknown>
7
+
8
+ interface MatrixLoc {
9
+ a: number;
10
+ b: number;
11
+ c: number;
12
+ d: number;
13
+ e: number;
14
+ f: number;
15
+ }
16
+ declare class Matrix2D implements MatrixLoc {
17
+ a: number;
18
+ b: number;
19
+ c: number;
20
+ d: number;
21
+ e: number;
22
+ f: number;
23
+ constructor(loc?: Partial<MatrixLoc>);
24
+ create(loc: MatrixLoc): this;
25
+ transform(x: number, y: number, scaleX: number, scaleY: number, rotation: number, skewX: number, skewY: number): this;
26
+ translation(x: number, y: number): this;
27
+ scale(a: number, d: number): this;
28
+ private skew;
29
+ private roate;
30
+ }
31
+
32
+ declare const enum DisplayType {
33
+ Graph = "Graph",
34
+ Box = "Box",
35
+ Text = "Text",
36
+ RoundRect = "RoundRect",
37
+ Bitmap = "Bitmap"
38
+ }
39
+ declare abstract class Display {
40
+ parent: Display | null;
41
+ id: number;
42
+ matrix: Matrix2D;
43
+ abstract get __instanceOf__(): DisplayType;
44
+ constructor();
45
+ destory(): void;
46
+ }
47
+ interface GraphStyleSheet {
48
+ stroke: string;
49
+ opacity: number;
50
+ font: string;
51
+ lineWidth: number;
52
+ }
53
+ interface LocOptions {
54
+ width: number;
55
+ height: number;
56
+ x: number;
57
+ y: number;
58
+ scaleX: number;
59
+ scaleY: number;
60
+ rotation: number;
61
+ skewX: number;
62
+ skewY: number;
63
+ }
64
+ interface GraphOptions extends LocOptions {
65
+ [key: string]: unknown;
66
+ }
67
+ interface InstructionAssignMappings {
68
+ fillStyle: (arg: string) => void;
69
+ strokeStyle: (arg: string) => void;
70
+ font: (arg: string) => void;
71
+ lineWidth: (arg: number) => void;
72
+ textAlign: (arg: CanvasTextAlign) => void;
73
+ textBaseline: (arg: CanvasTextBaseline) => void;
74
+ }
75
+ interface InstructionWithFunctionCall extends CanvasDrawImage {
76
+ fillRect: (x: number, y: number, w: number, h: number) => void;
77
+ strokeRect: (x: number, y: number, w: number, h: number) => void;
78
+ fillText: (text: string, x: number, y: number, maxWidth?: number) => void;
79
+ beginPath: () => void;
80
+ moveTo: (x: number, y: number) => void;
81
+ arcTo: (x1: number, y1: number, x2: number, y2: number, radius: number) => void;
82
+ closePath: () => void;
83
+ fill: () => void;
84
+ stroke: () => void;
85
+ }
86
+ type Mod<T extends InstructionAssignMappings & InstructionWithFunctionCall = InstructionAssignMappings & InstructionWithFunctionCall, K extends keyof T = keyof T> = T[K] extends (...args: Any) => Any ? [K, Parameters<T[K]>] : never;
87
+ interface Instruction extends InstructionAssignMappings, InstructionWithFunctionCall {
88
+ mods: Array<{
89
+ mod: Mod;
90
+ type: number;
91
+ }>;
92
+ }
93
+ declare function createInstruction(): Instruction;
94
+ declare abstract class S extends Display {
95
+ width: number;
96
+ height: number;
97
+ x: number;
98
+ y: number;
99
+ scaleX: number;
100
+ scaleY: number;
101
+ rotation: number;
102
+ skewX: number;
103
+ skewY: number;
104
+ constructor(options?: Partial<LocOptions>);
105
+ }
106
+ declare abstract class Graph extends S {
107
+ instruction: ReturnType<typeof createInstruction>;
108
+ __options__: Partial<LocOptions>;
109
+ __widget__: Any;
110
+ abstract style: GraphStyleSheet;
111
+ constructor(options?: Partial<GraphOptions>);
112
+ abstract create(): void;
113
+ abstract clone(): Graph;
114
+ abstract get __shape__(): DisplayType;
115
+ render(ctx: CanvasRenderingContext2D): void;
116
+ get __instanceOf__(): DisplayType.Graph;
117
+ }
118
+
119
+ declare abstract class C extends Display {
120
+ elements: Display[];
121
+ constructor();
122
+ abstract get __instanceOf__(): DisplayType;
123
+ add(...elements: Display[]): void;
124
+ remove(...elements: Display[]): void;
125
+ destory(): void;
126
+ }
127
+ declare class Box extends C {
128
+ elements: Display[];
129
+ constructor();
130
+ add(...elements: Display[]): void;
131
+ remove(...elements: Display[]): void;
132
+ destory(): void;
133
+ get __instanceOf__(): DisplayType.Box;
134
+ clone(): Box;
135
+ }
136
+
137
+ interface RGBColor {
138
+ r: number;
139
+ g: number;
140
+ b: number;
141
+ a?: number;
142
+ }
143
+ interface HLSColor {
144
+ h: number;
145
+ l: number;
146
+ s: number;
147
+ a?: number;
148
+ }
149
+ interface ColorDecoratorResultHLS {
150
+ mode?: 'hsl';
151
+ desc: HLSColor;
152
+ }
153
+ interface ColorDecoratorResultRGB {
154
+ mode: 'rgb';
155
+ desc: RGBColor;
156
+ }
157
+ type ColorDecoratorResult = ColorDecoratorResultHLS | ColorDecoratorResultRGB;
158
+
159
+ type RectStyleOptions = GraphStyleSheet & {
160
+ fill: ColorDecoratorResult;
161
+ padding?: number;
162
+ };
163
+ type RectOptions = GraphOptions & {
164
+ style: Partial<RectStyleOptions>;
165
+ };
166
+ type RoundRectStyleOptions = RectStyleOptions & {
167
+ radius: number;
168
+ };
169
+ type RoundRectOptions = RectOptions & {
170
+ style: Partial<RoundRectStyleOptions>;
171
+ };
172
+ declare class RoundRect extends Graph {
173
+ style: Required<RoundRectStyleOptions>;
174
+ constructor(options?: Partial<RoundRectOptions>);
175
+ get __shape__(): DisplayType;
176
+ create(): void;
177
+ clone(): RoundRect;
178
+ }
179
+
180
+ interface TextOptions extends Omit<GraphOptions, 'style'> {
181
+ text: string;
182
+ style: Partial<GraphStyleSheet & {
183
+ font: string;
184
+ textAlign: CanvasTextAlign;
185
+ baseline: CanvasTextBaseline;
186
+ lineWidth: number;
187
+ fill: string;
188
+ }>;
189
+ }
190
+ declare class Text extends Graph {
191
+ text: string;
192
+ style: Required<TextOptions['style']>;
193
+ constructor(options?: Partial<TextOptions>);
194
+ create(): void;
195
+ clone(): Text;
196
+ get __shape__(): DisplayType;
197
+ }
198
+
199
+ type EventCallback<P = Any[]> = P extends Any[] ? (...args: P) => Any : never;
200
+ type DefaultEventDefinition = Record<string, EventCallback>;
201
+ type BindThisParameter<T, C = unknown> = T extends (...args: infer P) => infer R ? (this: C, ...args: P) => R : never;
202
+ interface EventCollectionData<EvtDefinition extends DefaultEventDefinition, C = unknown> {
203
+ name: string;
204
+ handler: BindThisParameter<EvtDefinition[keyof EvtDefinition], C>;
205
+ ctx: C;
206
+ silent: boolean;
207
+ }
208
+ type EventCollections<EvtDefinition extends DefaultEventDefinition> = Record<keyof EvtDefinition, EventCollectionData<EvtDefinition>[]>;
209
+ declare class Event<EvtDefinition extends DefaultEventDefinition = DefaultEventDefinition> {
210
+ eventCollections: EventCollections<EvtDefinition>;
211
+ constructor();
212
+ on<C, Evt extends keyof EvtDefinition>(evt: Evt, handler: BindThisParameter<EvtDefinition[Evt], unknown extends C ? this : C>, c?: C): void;
213
+ off(evt: keyof EvtDefinition, handler?: BindThisParameter<EvtDefinition[keyof EvtDefinition], unknown>): void;
214
+ silent(evt: keyof EvtDefinition, handler?: BindThisParameter<EvtDefinition[keyof EvtDefinition], unknown>): void;
215
+ active(evt: keyof EvtDefinition, handler?: BindThisParameter<EvtDefinition[keyof EvtDefinition], unknown>): void;
216
+ emit(evt: keyof EvtDefinition, ...args: Parameters<EvtDefinition[keyof EvtDefinition]>): void;
217
+ bindWithContext<C>(c: C): (evt: keyof EvtDefinition, handler: BindThisParameter<EvtDefinition[keyof EvtDefinition], unknown extends C ? this : C>) => void;
218
+ }
219
+
220
+ interface RenderViewportOptions {
221
+ width: number;
222
+ height: number;
223
+ devicePixelRatio: number;
224
+ shaow?: boolean;
225
+ }
226
+ declare class Render {
227
+ options: RenderViewportOptions;
228
+ private container;
229
+ constructor(to: HTMLElement, options: RenderViewportOptions);
230
+ clear(width: number, height: number): void;
231
+ get canvas(): HTMLCanvasElement;
232
+ get ctx(): CanvasRenderingContext2D;
233
+ initOptions(userOptions?: Partial<RenderViewportOptions>): void;
234
+ destory(): void;
235
+ }
236
+
237
+ type ApplyTo = string | HTMLElement;
238
+ declare class Schedule<D extends DefaultEventDefinition = DefaultEventDefinition> extends Box {
239
+ render: Render;
240
+ to: HTMLElement;
241
+ event: Event<D>;
242
+ constructor(to: ApplyTo, renderOptions?: Partial<RenderViewportOptions>);
243
+ update(): void;
244
+ execute(render: Render, graph?: Display): void;
245
+ }
246
+
247
+ type Series<T> = {
248
+ max: T;
249
+ min: T;
250
+ };
251
+ interface GraphicLayout {
252
+ rectRadius?: number;
253
+ rectGap?: number;
254
+ titleAreaHeight?: Series<number>;
255
+ }
256
+ interface GraphicFont {
257
+ color?: string;
258
+ fontSize?: Series<number>;
259
+ family?: string;
260
+ }
261
+ interface GraphicConfig {
262
+ layout?: GraphicLayout;
263
+ font?: GraphicFont;
264
+ }
265
+ /**
266
+ * @deprecated `TreemapInstanceAPI` don't provide methods anymore. (will be removed in the future versions)
267
+ * Keep it only for migration convenience
268
+ */
269
+ interface TreemapInstanceAPI {
270
+ /**
271
+ * @deprecated don't call this method anymore.
272
+ */
273
+ zoom: () => void;
274
+ }
275
+
276
+ declare function sortChildrenByKey<T extends AnyObject, K extends keyof T = 'weight'>(data: T[], ...keys: K[]): T[];
277
+ declare function c2m<T extends AnyObject & {
278
+ groups: Any[];
279
+ }, K extends keyof T>(data: T, key: K, modifier?: (data: T) => T): T & {
280
+ weight: number;
281
+ };
282
+ declare function flatten<T extends AnyObject & {
283
+ groups: T[];
284
+ }>(data: T[]): Omit<T, "groups">[];
285
+ type Module = ReturnType<typeof c2m>;
286
+ declare function bindParentForModule<T extends Module & {
287
+ parent: Module;
288
+ }>(modules: Module[], parent?: Module): T[];
289
+ type NativeModule = ReturnType<typeof bindParentForModule>[number] & {
290
+ id: string;
291
+ parent: NativeModule | null;
292
+ groups: NativeModule[];
293
+ };
294
+ declare function getNodeDepth(node: NativeModule): number;
295
+ declare function visit<T extends AnyObject>(data: T[], fn: (data: T) => boolean | void): T | null;
296
+ declare function findRelativeNode(p: {
297
+ x: number;
298
+ y: number;
299
+ }, layoutNodes: LayoutModule[]): LayoutModule | null;
300
+ declare function findRelativeNodeById(id: string, layoutNodes: LayoutModule[]): LayoutModule | null;
301
+
302
+ type Rect = {
303
+ w: number;
304
+ h: number;
305
+ x: number;
306
+ y: number;
307
+ };
308
+ type SquarifiedModule = NativeModule & {
309
+ parent: SquarifiedModule | null;
310
+ groups: SquarifiedModule[];
311
+ isCombinedNode?: boolean;
312
+ originalNodeCount?: number;
313
+ originalNodes?: SquarifiedModule[];
314
+ };
315
+ interface LayoutModule {
316
+ node: SquarifiedModule;
317
+ layout: [number, number, number, number];
318
+ children: LayoutModule[];
319
+ config: {
320
+ titleAreaHeight: number;
321
+ rectGap: number;
322
+ rectRadius: number;
323
+ };
324
+ }
325
+ declare function squarify(data: NativeModule[], rect: Rect, config: Required<GraphicLayout>, scale?: number): LayoutModule[];
326
+
327
+ declare function hashCode(str: string): number;
328
+ declare function perferNumeric(s: string | number): boolean;
329
+ declare function noop(): void;
330
+ declare function createRoundBlock(x: number, y: number, width: number, height: number, style?: Partial<RoundRectStyleOptions>): RoundRect;
331
+ declare function createTitleText(text: string, x: number, y: number, font: string, color: string): Text;
332
+ declare const raf: ((callback: FrameRequestCallback) => number) & typeof requestAnimationFrame;
333
+ declare function createCanvasElement(): HTMLCanvasElement;
334
+ declare function applyCanvasTransform(ctx: CanvasRenderingContext2D, matrix: Matrix2D, dpr: number): void;
335
+ interface InheritedCollections<T = object> {
336
+ name: string;
337
+ fn: (instance: T) => void;
338
+ }
339
+ type MixinHelp<T extends InheritedCollections[]> = T extends [infer L, ...infer R] ? L extends InheritedCollections ? R extends InheritedCollections[] ? {
340
+ [key in L['name']]: L['fn'];
341
+ } & MixinHelp<R> : Record<string, never> : Record<string, never> : Record<string, never>;
342
+ declare function mixin<T extends AnyObject, const I extends InheritedCollections<T>[]>(app: T, methods: I): T & MixinHelp<I>;
343
+ interface InheritedCollectionsWithParamter<T = Any> {
344
+ name: string;
345
+ fn: (instance: T) => (...args: Any[]) => Any;
346
+ }
347
+ type MixinHelpWithParamater<T extends InheritedCollectionsWithParamter[]> = T extends [infer L, ...infer R] ? L extends InheritedCollectionsWithParamter ? R extends InheritedCollectionsWithParamter[] ? {
348
+ [key in L['name']]: ReturnType<L['fn']>;
349
+ } & MixinHelpWithParamater<R> : Record<string, never> : Record<string, never> : Record<string, never>;
350
+ declare function mixinWithParams<T extends AnyObject, const M extends InheritedCollectionsWithParamter<T>[]>(app: T, methods: M): T & MixinHelpWithParamater<M>;
351
+ type Tail<T extends string[]> = T extends readonly [infer _, ...infer Rest] ? Rest : [];
352
+ type StrJoin<T extends string[], F extends string> = T extends readonly [] ? '' : T extends readonly [infer FF] ? FF : `${F}${StrJoin<Tail<T>, T[0]>}`;
353
+ declare function prettyStrJoin<T extends string[]>(...s: T): StrJoin<T, T[0]>;
354
+ declare function isMacOS(): boolean;
355
+ declare function typedForIn<T extends NonNullable<object>>(obj: T, callback: (key: keyof T, value: T[keyof T]) => void): void;
356
+ declare function stackMatrixTransform(graph: S, e: number, f: number, scale: number): void;
357
+ declare function stackMatrixTransformWithGraphAndLayer(graphs: Display[], e: number, f: number, scale: number): void;
358
+ interface EffectOptions {
359
+ duration: number;
360
+ onStop?: () => void;
361
+ deps?: Array<() => boolean>;
362
+ }
363
+ declare function smoothFrame(callback: (progress: number, cleanup: () => void) => void, opts: EffectOptions): void;
364
+ interface DuckE {
365
+ which: number;
366
+ }
367
+ declare function isScrollWheelOrRightButtonOnMouseupAndDown<E extends DuckE = DuckE>(e: E): boolean;
368
+ declare class DefaultMap<K, V> extends Map<K, V> {
369
+ private defaultFactory;
370
+ constructor(defaultFactory: () => V, entries?: readonly [K, V][] | null);
371
+ get(key: K): V;
372
+ getOrInsert(key: K, value?: V): V;
373
+ }
374
+
375
+ interface PluginContext {
376
+ resolveModuleById: (id: string) => LayoutModule | null;
377
+ getPluginMetadata: <M = Any>(pluginName: string) => M | null;
378
+ get instance(): Component;
379
+ }
380
+ interface OnModuleInitResult {
381
+ colorMappings?: ColorMappings;
382
+ }
383
+ interface PluginHooks {
384
+ onLoad?: (this: PluginContext, treemapContext: BasicTreemapInstance, domEvent: DOMEvent) => void | Record<string, Any>;
385
+ onModuleInit?: (this: PluginContext, modules: LayoutModule[]) => OnModuleInitResult | void;
386
+ onDOMEventTriggered?: <N extends DOMEventType>(this: PluginContext, name: N, event: DOMEventMetadata<N>, module: LayoutModule | null, domEvent: DOMEvent) => void;
387
+ onResize?: (this: PluginContext, domEvent: DOMEvent) => void;
388
+ onDispose?: (this: PluginContext) => void;
389
+ }
390
+ type BasicPluginHooks = Pick<PluginHooks, 'onLoad' | 'onDOMEventTriggered' | 'onResize' | 'onDispose'>;
391
+ type CascadedPluginHooks = Pick<PluginHooks, 'onModuleInit'>;
392
+ interface Plugin<T = string, M = Any> extends PluginHooks {
393
+ name: T;
394
+ meta?: M;
395
+ }
396
+ declare function definePlugin<T extends string = string, M = Any, P extends Plugin<T, M> = Plugin<T, M>>(plugin: P): P;
397
+ declare class PluginDriver<T extends Component> {
398
+ private plugins;
399
+ private pluginContext;
400
+ constructor(component: T);
401
+ use(plugin: Plugin): void;
402
+ runHook<K extends keyof BasicPluginHooks>(hookName: K, ...args: Parameters<NonNullable<BasicPluginHooks[K]>>): void;
403
+ cascadeHook<K extends keyof CascadedPluginHooks>(hookName: K, ...args: Parameters<NonNullable<CascadedPluginHooks[K]>>): ReturnType<NonNullable<CascadedPluginHooks[K]>>;
404
+ getPluginMetadata<M = Any>(pluginName: string): M | null;
405
+ }
406
+
407
+ type ColorMappings = Record<string, ColorDecoratorResult>;
408
+ declare class Component extends Schedule {
409
+ pluginDriver: PluginDriver<Component>;
410
+ data: NativeModule[];
411
+ colorMappings: ColorMappings;
412
+ rectLayer: Box;
413
+ textLayer: Box;
414
+ layoutNodes: LayoutModule[];
415
+ config: GraphicConfig;
416
+ caches: DefaultMap<string, number>;
417
+ constructor(config: GraphicConfig, ...args: ConstructorParameters<typeof Schedule>);
418
+ private drawBroundRect;
419
+ private drawText;
420
+ draw(flush?: boolean, update?: boolean): void;
421
+ cleanup(): void;
422
+ calculateLayoutNodes(data: NativeModule[], rect: Parameters<typeof squarify>[1], scale?: number): LayoutModule[];
423
+ }
424
+
425
+ declare const DOM_EVENTS: readonly ["click", "mousedown", "mousemove", "mouseup", "mouseover", "mouseout", "wheel", "contextmenu"];
426
+ type DOMEventType = typeof DOM_EVENTS[number];
427
+ interface DOMEventMetadata<T extends keyof HTMLElementEventMap = Any> {
428
+ native: HTMLElementEventMap[T];
429
+ readonly kind: T;
430
+ }
431
+ type DOMEventCallback<T extends DOMEventType> = (metadata: DOMEventMetadata<T>) => void;
432
+ interface PrimitiveEventMetadata<T extends keyof HTMLElementEventMap> {
433
+ native: HTMLElementEventMap[T];
434
+ module: LayoutModule | null;
435
+ }
436
+ type ExposedEventCallback<T extends DOMEventType> = (metadata: PrimitiveEventMetadata<T>) => void;
437
+ type ExposedEventDefinition = {
438
+ [K in DOMEventType]: BindThisParameter<ExposedEventCallback<K>, TreemapInstanceAPI>;
439
+ };
440
+ interface ExposedEventMethods<C = TreemapInstanceAPI, D = ExposedEventDefinition> {
441
+ on<Evt extends keyof D>(evt: Evt, handler: BindThisParameter<D[Evt], unknown extends C ? this : C>): void;
442
+ off<Evt extends keyof D>(evt: keyof D, handler?: BindThisParameter<D[Evt], unknown extends C ? this : C>): void;
443
+ }
444
+ type DOMEVEntDefinition<API = unknown> = {
445
+ [K in DOMEventType]: BindThisParameter<DOMEventCallback<K>, API>;
446
+ } & {
447
+ __exposed__: (type: DOMEventType, metadata: PrimitiveEventMetadata<DOMEventType>) => void;
448
+ };
449
+ declare const STATE_TRANSITION: {
450
+ readonly IDLE: "IDLE";
451
+ readonly PRESSED: "PRESSED";
452
+ readonly DRAGGING: "DRAGGING";
453
+ readonly CLICK_POTENTIAL: "CLICK_POTENTIAL";
454
+ readonly ZOOMING: "ZOOMING";
455
+ readonly MOVE: "MOVE";
456
+ readonly SCALING: "SCALING";
457
+ };
458
+ type StateTransition = typeof STATE_TRANSITION[keyof typeof STATE_TRANSITION];
459
+ declare class StateManager {
460
+ current: StateTransition;
461
+ constructor();
462
+ canTransition(to: StateTransition): boolean;
463
+ transition(to: StateTransition): boolean;
464
+ reset(): void;
465
+ isInState(state: StateTransition): boolean;
466
+ }
467
+ declare function isWheelEvent(metadata: DOMEventMetadata<DOMEventType>): metadata is DOMEventMetadata<'wheel'>;
468
+ declare function isMouseEvent(metadata: DOMEventMetadata<DOMEventType>): metadata is DOMEventMetadata<'mousedown' | 'mouseup' | 'mousemove'>;
469
+ declare function isClickEvent(metadata: DOMEventMetadata<DOMEventType>): metadata is DOMEventMetadata<'click'>;
470
+ declare function isContextMenuEvent(metadata: DOMEventMetadata<DOMEventType>): metadata is DOMEventMetadata<'contextmenu'>;
471
+ declare function bindDOMEvent(el: HTMLElement, evt: DOMEventType, dom: DOMEvent): {
472
+ evt: "click" | "mousedown" | "mousemove" | "mouseup" | "mouseover" | "mouseout" | "wheel" | "contextmenu";
473
+ handler: (e: unknown) => void;
474
+ };
475
+ declare class DOMEvent extends Event<DOMEVEntDefinition> {
476
+ domEvents: Array<ReturnType<typeof bindDOMEvent>>;
477
+ el: HTMLElement | null;
478
+ currentModule: LayoutModule | null;
479
+ component: Component;
480
+ matrix: Matrix2D;
481
+ stateManager: StateManager;
482
+ constructor(component: Component);
483
+ destory(): void;
484
+ private dispatch;
485
+ findRelativeNode(e: DOMEventMetadata): LayoutModule | null;
486
+ }
487
+
488
+ interface CreateTreemapOptions<P extends Plugin[]> {
489
+ plugins: P;
490
+ graphic?: GraphicConfig;
491
+ }
492
+ interface TreemapOptions {
493
+ data: Module[];
494
+ }
495
+ type UnionToIntersection<U> = (U extends Any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
496
+ type PluginMixins<P extends readonly Plugin[]> = UnionToIntersection<{
497
+ [K in keyof P]: P[K] extends {
498
+ onLoad?: (ctx: Any, component: Any) => infer R;
499
+ } ? R extends object ? R : NonNull : NonNull;
500
+ }[number]>;
501
+ interface BasicTreemapInstance {
502
+ init: (el: HTMLElement) => void;
503
+ dispose: () => void;
504
+ resize: () => void;
505
+ setOptions: (options: TreemapOptions) => void;
506
+ }
507
+ declare function createTreemap<const P extends readonly Plugin[]>(options?: CreateTreemapOptions<P>): ({
508
+ init: (el: HTMLElement) => void;
509
+ dispose: () => void;
510
+ resize: () => void;
511
+ setOptions: (options: TreemapOptions) => void;
512
+ } & {
513
+ on: () => (evt: string, handler: (this: TreemapInstanceAPI, ...args: any[]) => any) => void;
514
+ } & {
515
+ off: () => (evt: string, handler?: ((this: unknown, ...args: any[]) => any) | undefined) => void;
516
+ } & Record<string, never>) & BasicTreemapInstance & ExposedEventMethods & PluginMixins<P>;
517
+ type TreemapInstance<P extends readonly Plugin[]> = BasicTreemapInstance & ExposedEventMethods & PluginMixins<P>;
518
+
519
+ export { smoothFrame as $, perferNumeric as A, noop as F, createRoundBlock as H, createTitleText as I, raf as J, createCanvasElement as K, applyCanvasTransform as O, mixin as R, mixinWithParams as V, prettyStrJoin as W, isMacOS as X, typedForIn as Y, stackMatrixTransform as Z, stackMatrixTransformWithGraphAndLayer as _, isScrollWheelOrRightButtonOnMouseupAndDown as a0, DefaultMap as a1, DOMEvent as b, createTreemap as d, c2m as f, findRelativeNode as g, findRelativeNodeById as h, flatten as i, getNodeDepth as j, definePlugin as m, isClickEvent as q, isContextMenuEvent as r, sortChildrenByKey as s, isMouseEvent as t, isWheelEvent as u, visit as v, hashCode as z };
520
+ export type { BasicTreemapInstance as B, ColorMappings as C, DOMEventType as D, ExposedEventCallback as E, GraphicLayout as G, LayoutModule as L, Module as M, NativeModule as N, PluginContext as P, InheritedCollections as Q, Series as S, TreemapOptions as T, InheritedCollectionsWithParamter as U, DOMEventMetadata as a, CreateTreemapOptions as c, TreemapInstance as e, Plugin as k, PluginHooks as l, ExposedEventDefinition as n, ExposedEventMethods as o, PrimitiveEventMetadata as p, GraphicFont as w, GraphicConfig as x, TreemapInstanceAPI as y };