modern-canvas 0.14.5 → 0.14.7

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.
@@ -1,12 +1,12 @@
1
- import type { InputEvent, InputEventKey, Vector2Data, WheelInputEvent } from '../../core';
1
+ import type { InputEvent, InputEventKey, Vector2Like, WheelInputEvent } from '../../core';
2
2
  import type { Node, SceneTree } from '../main';
3
3
  import type { Node2DEvents, Node2DProperties } from './Node2D';
4
4
  import { Transform2D, Vector2 } from '../../core';
5
5
  import { Node2D } from './Node2D';
6
6
  export interface Camera2DProperties extends Node2DProperties {
7
- zoom?: Vector2Data;
8
- minZoom?: Vector2Data;
9
- maxZoom?: Vector2Data;
7
+ zoom?: Vector2Like;
8
+ minZoom?: Vector2Like;
9
+ maxZoom?: Vector2Like;
10
10
  }
11
11
  export interface Camera2DEvents extends Node2DEvents {
12
12
  updateCanvasTransform: [];
@@ -27,13 +27,13 @@ export declare class Camera2D extends Node2D {
27
27
  };
28
28
  protected _zoom: Vector2;
29
29
  get zoom(): Vector2;
30
- set zoom(val: Vector2Data);
30
+ set zoom(val: Vector2Like);
31
31
  protected _minZoom: Vector2;
32
32
  get minZoom(): Vector2;
33
- set minZoom(val: Vector2Data);
33
+ set minZoom(val: Vector2Like);
34
34
  protected _maxZoom: Vector2;
35
35
  get maxZoom(): Vector2;
36
- set maxZoom(val: Vector2Data);
36
+ set maxZoom(val: Vector2Like);
37
37
  constructor(properties?: Partial<Camera2DProperties>, nodes?: Node[]);
38
38
  setProperties(properties?: Record<string, any>): this;
39
39
  addZoom(x: number, y?: number): this;
@@ -45,7 +45,7 @@ export declare class Camera2D extends Node2D {
45
45
  updateCanvasTransform(): void;
46
46
  syncCanvasTransform(): void;
47
47
  protected _treeEnter(tree: SceneTree): void;
48
- toGlobal<P extends Vector2Data = Vector2>(screenPos: Vector2Data, newPos?: P): P;
49
- toScreen<P extends Vector2Data = Vector2>(globalPos: Vector2Data, newPos?: P): P;
48
+ toGlobal<P extends Vector2Like = Vector2>(screenPos: Vector2Like, newPos?: P): P;
49
+ toScreen<P extends Vector2Like = Vector2>(globalPos: Vector2Like, newPos?: P): P;
50
50
  toJSON(): Record<string, any>;
51
51
  }
@@ -1,6 +1,5 @@
1
1
  import type { Node as YogaNode } from 'yoga-layout/load';
2
- import type { Element2DStyle } from './element';
3
- import type { Element2D } from './Element2D';
2
+ import type { Element2D, Element2DStyle } from './element';
4
3
  export declare const edgeMap: {
5
4
  left: number;
6
5
  top: number;
@@ -1,4 +1,4 @@
1
- import type { Vector2Data } from '../../core';
1
+ import type { Vector2Like } from '../../core';
2
2
  import type { CanvasBatchable, CanvasItemEvents, CanvasItemProperties, Node } from '../main';
3
3
  import { Transform2D, Vector2 } from '../../core';
4
4
  import { CanvasItem } from '../main';
@@ -33,6 +33,6 @@ export declare class Node2D extends CanvasItem {
33
33
  protected _transformVertices(batchable: CanvasBatchable): Float32Array;
34
34
  protected _relayout(batchables: CanvasBatchable[]): CanvasBatchable[];
35
35
  protected _process(delta: number): void;
36
- toLocal<P extends Vector2Data = Vector2>(globalPos: Vector2Data, newPos?: P): P;
37
- toGlobal<P extends Vector2Data = Vector2>(localPos: Vector2Data, newPos?: P): P;
36
+ toLocal<P extends Vector2Like = Vector2>(globalPos: Vector2Like, newPos?: P): P;
37
+ toGlobal<P extends Vector2Like = Vector2>(localPos: Vector2Like, newPos?: P): P;
38
38
  }
@@ -1,7 +1,7 @@
1
1
  import type { Node } from '../main';
2
2
  import type { Texture2D } from '../resources';
3
- import type { Element2DProperties } from './Element2D';
4
- import { Element2D } from './Element2D';
3
+ import type { Element2DProperties } from './element';
4
+ import { Element2D } from './element';
5
5
  export interface TextureRect2DProperties extends Element2DProperties {
6
6
  }
7
7
  export declare class TextureRect2D<T extends Texture2D = Texture2D> extends Element2D {
@@ -1,7 +1,7 @@
1
1
  import type { Node } from '../main';
2
- import type { BaseElement2DProperties } from './element';
3
- import { Element2D } from './Element2D';
4
- export interface TransformRect2DProperties extends BaseElement2DProperties {
2
+ import type { Element2DProperties } from './element';
3
+ import { Element2D } from './element';
4
+ export interface TransformRect2DProperties extends Element2DProperties {
5
5
  }
6
6
  export declare class TransformRect2D extends Element2D {
7
7
  handleSize: number;
@@ -1,9 +1,11 @@
1
- import type { Background, Fill, Foreground, Outline, Shadow, Shape, Style, Text } from 'modern-idoc';
2
- import type { InputEvent, InputEventKey, Vector2Data } from '../../../core';
1
+ import type { Background, Fill, Foreground, Outline, Shadow, Shape, Text } from 'modern-idoc';
2
+ import type { InputEvent, InputEventKey, Vector2Like } from '../../../core';
3
3
  import type { Node, Rectangulable, RectangulableEvents, SceneTree } from '../../main';
4
4
  import type { Node2DEvents, Node2DProperties } from '../Node2D';
5
- import { Rectangle, Vector2 } from '../../../core';
5
+ import type { Element2DStyleProperties } from './Element2DStyle';
6
+ import { Aabb2D, Obb2D, Vector2 } from '../../../core';
6
7
  import { ColorFilterEffect } from '../../effects';
8
+ import { directionMap, FlexLayout } from '../FlexLayout';
7
9
  import { Node2D } from '../Node2D';
8
10
  import { Element2DBackground } from './Element2DBackground';
9
11
  import { Element2DFill } from './Element2DFill';
@@ -16,14 +18,14 @@ import { Element2DText } from './Element2DText';
16
18
  export interface BaseElement2DEvents extends Node2DEvents, RectangulableEvents {
17
19
  updateStyleProperty: [key: string, value: any, oldValue: any];
18
20
  }
19
- export interface BaseElement2D {
21
+ export interface Element2D {
20
22
  on: <K extends keyof BaseElement2DEvents & string>(event: K, listener: (...args: BaseElement2DEvents[K]) => void) => this;
21
23
  once: <K extends keyof BaseElement2DEvents & string>(event: K, listener: (...args: BaseElement2DEvents[K]) => void) => this;
22
24
  off: <K extends keyof BaseElement2DEvents & string>(event: K, listener: (...args: BaseElement2DEvents[K]) => void) => this;
23
25
  emit: <K extends keyof BaseElement2DEvents & string>(event: K, ...args: BaseElement2DEvents[K]) => this;
24
26
  }
25
- export interface BaseElement2DProperties extends Node2DProperties {
26
- style: Style;
27
+ export interface Element2DProperties extends Node2DProperties {
28
+ style: Partial<Element2DStyleProperties>;
27
29
  background: Background;
28
30
  shape: Shape;
29
31
  fill: Fill;
@@ -31,62 +33,65 @@ export interface BaseElement2DProperties extends Node2DProperties {
31
33
  foreground: Foreground;
32
34
  text: Text;
33
35
  shadow: Shadow;
36
+ layoutMode: LayoutMode;
34
37
  }
35
- export declare class BaseElement2D extends Node2D implements Rectangulable {
38
+ export type LayoutMode = 'inherit' | 'absolute' | 'flex';
39
+ export declare class Element2D extends Node2D implements Rectangulable {
40
+ layoutMode: LayoutMode;
41
+ _flex: FlexLayout;
36
42
  readonly size: Vector2;
37
43
  protected _allowPointerEvents: boolean;
38
44
  protected _overflowHidden: boolean;
39
45
  protected _style: Element2DStyle;
40
46
  get style(): Element2DStyle;
41
- set style(value: BaseElement2DProperties['style']);
47
+ set style(value: Element2DProperties['style']);
42
48
  protected _background: Element2DBackground;
43
49
  get background(): Element2DBackground;
44
- set background(value: BaseElement2DProperties['background']);
50
+ set background(value: Element2DProperties['background']);
45
51
  protected _shape: Element2DShape;
46
52
  get shape(): Element2DShape;
47
- set shape(value: BaseElement2DProperties['shape']);
53
+ set shape(value: Element2DProperties['shape']);
48
54
  protected _fill: Element2DFill;
49
55
  get fill(): Element2DFill;
50
- set fill(value: BaseElement2DProperties['fill']);
56
+ set fill(value: Element2DProperties['fill']);
51
57
  protected _outline: Element2DOutline;
52
58
  get outline(): Element2DOutline;
53
- set outline(value: BaseElement2DProperties['outline']);
59
+ set outline(value: Element2DProperties['outline']);
54
60
  protected _foreground: Element2DForeground;
55
61
  get foreground(): Element2DForeground;
56
- set foreground(value: BaseElement2DProperties['foreground']);
62
+ set foreground(value: Element2DProperties['foreground']);
57
63
  protected _text: Element2DText;
58
64
  get text(): Element2DText;
59
- set text(value: BaseElement2DProperties['text']);
65
+ set text(value: Element2DProperties['text']);
60
66
  protected _shadow: Element2DShadow;
61
67
  get shadow(): Element2DShadow;
62
- set shadow(value: BaseElement2DProperties['shadow']);
68
+ set shadow(value: Element2DProperties['shadow']);
63
69
  protected _styleFilter?: ColorFilterEffect;
64
- constructor(properties?: Partial<BaseElement2DProperties>, nodes?: Node[]);
70
+ constructor(properties?: Partial<Element2DProperties>, nodes?: Node[]);
65
71
  protected _treeEnter(tree: SceneTree): void;
72
+ protected _parented(parent: Node): void;
73
+ protected _unparented(oldParent: Node): void;
66
74
  setProperties(properties?: Record<string, any>): this;
67
75
  onUpdateStyleProperty(key: string, value: any, oldValue: any): void;
68
76
  protected _updateStyleProperty(key: string, value: any, oldValue: any): void;
69
77
  protected _process(delta: number): void;
78
+ getGlobalLayoutMode(): Omit<LayoutMode, 'inherit'>;
79
+ updateLayout(): void;
80
+ calculateLayout(width?: number | 'auto', height?: number | 'auto', direction?: typeof directionMap[keyof typeof directionMap]): void;
70
81
  protected _getStyleFilter(): ColorFilterEffect;
71
82
  protected _updateMaskImage(maskImage?: string): void;
72
83
  updateGlobalTransform(): void;
73
- getRect(): Rectangle;
74
- protected _getPointArray(): Vector2Data[];
75
- getAabb(): Rectangle;
76
- getGlobalAabb(): Rectangle;
77
- getObb(): {
78
- rect: Rectangle;
79
- rotation: number;
80
- };
81
- getGlobalObb(): {
82
- rect: Rectangle;
83
- rotation: number;
84
- };
84
+ getRect(): Aabb2D;
85
+ protected _getPointArray(): Vector2Like[];
86
+ getAabb(): Aabb2D;
87
+ getGlobalAabb(): Aabb2D;
88
+ getObb(): Obb2D;
89
+ getGlobalObb(): Obb2D;
85
90
  protected _updateMask(): void;
86
91
  protected _draw(): void;
87
92
  protected _drawContent(): void;
88
93
  input(event: InputEvent, key: InputEventKey): void;
89
- protected _positionInput(localPos: Vector2Data, key: InputEventKey): boolean;
94
+ protected _positionInput(localPos: Vector2Like, key: InputEventKey): boolean;
90
95
  protected _input(event: InputEvent, key: InputEventKey): void;
91
96
  toJSON(): Record<string, any>;
92
97
  }
@@ -1,11 +1,11 @@
1
1
  import type { Fill, NormalizedFill } from 'modern-idoc';
2
2
  import type { AnimatedTexture, Texture2D } from '../../resources';
3
- import type { BaseElement2D } from './BaseElement2D';
3
+ import type { Element2D } from './Element2D';
4
4
  import { CoreObject } from '../../../core';
5
5
  export interface Element2DFill extends NormalizedFill {
6
6
  }
7
7
  export declare class Element2DFill extends CoreObject {
8
- parent: BaseElement2D;
8
+ parent: Element2D;
9
9
  enabled: boolean;
10
10
  color?: NormalizedFill['color'];
11
11
  image?: NormalizedFill['image'];
@@ -19,7 +19,7 @@ export declare class Element2DFill extends CoreObject {
19
19
  opacity?: NormalizedFill['opacity'];
20
20
  texture?: Texture2D;
21
21
  animatedTexture?: AnimatedTexture;
22
- constructor(parent: BaseElement2D);
22
+ constructor(parent: Element2D);
23
23
  protected _setProperties(properties?: NormalizedFill): this;
24
24
  setProperties(properties?: Fill): this;
25
25
  protected _updateProperty(key: string, value: any, oldValue: any): void;
@@ -1,14 +1,14 @@
1
1
  import type { NormalizedShadow, Shadow } from 'modern-idoc';
2
- import type { BaseElement2D } from './BaseElement2D';
2
+ import type { Element2D } from './Element2D';
3
3
  import { CoreObject } from '../../../core';
4
4
  export declare class Element2DShadow extends CoreObject {
5
- parent: BaseElement2D;
5
+ parent: Element2D;
6
6
  enabled: boolean;
7
7
  color: NormalizedShadow['color'];
8
8
  blur: NormalizedShadow['blur'];
9
9
  offsetY: NormalizedShadow['offsetX'];
10
10
  offsetX: NormalizedShadow['offsetY'];
11
- constructor(parent: BaseElement2D);
11
+ constructor(parent: Element2D);
12
12
  setProperties(properties?: Shadow): this;
13
13
  protected _updateProperty(key: string, value: any, oldValue: any): void;
14
14
  updateEffect(): void;
@@ -1,16 +1,16 @@
1
1
  import type { NormalizedShape, Shape } from 'modern-idoc';
2
- import type { BaseElement2D } from './BaseElement2D';
2
+ import type { Element2D } from './Element2D';
3
3
  import { Path2DSet } from 'modern-path2d';
4
4
  import { CoreObject } from '../../../core';
5
5
  export declare class Element2DShape extends CoreObject {
6
- parent: BaseElement2D;
6
+ parent: Element2D;
7
7
  enabled: boolean;
8
8
  preset: NormalizedShape['preset'];
9
9
  svg: NormalizedShape['svg'];
10
10
  viewBox: NormalizedShape['viewBox'];
11
11
  paths: NormalizedShape['paths'];
12
12
  protected _path2DSet: Path2DSet;
13
- constructor(parent: BaseElement2D);
13
+ constructor(parent: Element2D);
14
14
  setProperties(properties?: Shape): this;
15
15
  protected _updateProperty(key: string, value: any, oldValue: any): void;
16
16
  protected _updatePath2DSet(): void;
@@ -4,14 +4,14 @@ import type { MeasureResult } from 'modern-text';
4
4
  import type { RectangleLike } from '../../../core';
5
5
  import type { CanvasContext, TransformVertex } from '../../main';
6
6
  import type { Texture2D } from '../../resources';
7
- import type { BaseElement2D } from './BaseElement2D';
7
+ import type { Element2D } from './Element2D';
8
8
  import { BoundingBox } from 'modern-path2d';
9
9
  import { Text } from 'modern-text';
10
10
  import { CoreObject } from '../../../core';
11
11
  import { CanvasTexture } from '../../resources';
12
12
  export type TextDrawMode = 'auto' | 'texture' | 'path';
13
13
  export declare class Element2DText extends CoreObject {
14
- parent: BaseElement2D;
14
+ parent: Element2D;
15
15
  enabled: boolean;
16
16
  content: NormalizedText['content'];
17
17
  style: NormalizedText['style'];
@@ -29,7 +29,7 @@ export declare class Element2DText extends CoreObject {
29
29
  texture: Texture2D | undefined;
30
30
  box: RectangleLike;
31
31
  }>;
32
- constructor(parent: BaseElement2D);
32
+ constructor(parent: Element2D);
33
33
  setProperties(properties?: TextProperties): this;
34
34
  protected _updateProperty(key: string, value: any, oldValue: any): void;
35
35
  update(): void;
@@ -1,4 +1,4 @@
1
- export * from './BaseElement2D';
1
+ export * from './Element2D';
2
2
  export * from './Element2DBackground';
3
3
  export * from './Element2DFill';
4
4
  export * from './Element2DForeground';
@@ -1,6 +1,5 @@
1
1
  export * from './Camera2D';
2
2
  export * from './element';
3
- export * from './Element2D';
4
3
  export * from './FlexLayout';
5
4
  export * from './Lottie2D';
6
5
  export * from './Node2D';
@@ -4,12 +4,12 @@ import type { Texture2D } from '../resources';
4
4
  import { Effect } from '../main/Effect';
5
5
  import { Material } from '../resources';
6
6
  export interface MaskEffectProperties extends EffectProperties {
7
- src?: string;
7
+ image?: string;
8
8
  }
9
9
  export declare class MaskEffect extends Effect {
10
10
  static material: Material;
11
11
  texture?: Texture2D<ImageBitmap>;
12
- src: string;
12
+ image: string;
13
13
  constructor(properties?: Partial<MaskEffectProperties>, children?: Node[]);
14
14
  load(): Promise<void>;
15
15
  protected _updateProperty(key: string, value: any, oldValue: any): void;
@@ -1,8 +1,10 @@
1
1
  import type { GlRenderer, RectangleLike } from '../../core';
2
2
  import type { Material } from '../resources';
3
+ import type { Rectangulable } from './interfaces';
3
4
  import type { Node } from './Node';
4
5
  import type { SceneTree } from './SceneTree';
5
- import type { TimelineNodeProperties } from './TimelineNode';
6
+ import type { TimelineNodeEvents, TimelineNodeProperties } from './TimelineNode';
7
+ import { Aabb2D } from '../../core';
6
8
  import { TimelineNode } from './TimelineNode';
7
9
  import { Viewport } from './Viewport';
8
10
  export type EffectMode = 'before' | 'parent' | 'children' | 'transition';
@@ -20,7 +22,16 @@ export interface EffectContext {
20
22
  from?: Viewport;
21
23
  to?: Viewport;
22
24
  }
23
- export declare class Effect extends TimelineNode {
25
+ export interface EffectEvents extends TimelineNodeEvents {
26
+ updateRect: [];
27
+ }
28
+ export interface Effect {
29
+ on: <K extends keyof EffectEvents & string>(event: K, listener: (...args: EffectEvents[K]) => void) => this;
30
+ once: <K extends keyof EffectEvents & string>(event: K, listener: (...args: EffectEvents[K]) => void) => this;
31
+ off: <K extends keyof EffectEvents & string>(event: K, listener: (...args: EffectEvents[K]) => void) => this;
32
+ emit: <K extends keyof EffectEvents & string>(event: K, ...args: EffectEvents[K]) => this;
33
+ }
34
+ export declare class Effect extends TimelineNode implements Rectangulable {
24
35
  material?: Material;
25
36
  effectMode?: EffectMode;
26
37
  glsl?: string;
@@ -36,13 +47,15 @@ export declare class Effect extends TimelineNode {
36
47
  /** Temporary nodes for transition */
37
48
  protected _previousSibling?: Node;
38
49
  protected _nextSibling?: Node;
50
+ protected _rect: RectangleLike;
39
51
  constructor(properties?: Partial<EffectProperties>, children?: Node[]);
52
+ requestRender(): void;
40
53
  protected _updateProperty(key: string, value: any, oldValue: any): void;
41
54
  protected _treeEnter(tree: SceneTree): void;
42
55
  protected _treeExit(oldTree: SceneTree): void;
43
56
  protected _onProcessing(): void;
44
57
  protected _onNodeProcessed(node: Node): void;
45
- protected _rect: RectangleLike;
58
+ getRect(): Aabb2D;
46
59
  protected _processParent(): void;
47
60
  protected _processChildren(): void;
48
61
  _onProcess(delta?: number): void;
@@ -1,8 +1,8 @@
1
- import type { GlRenderer, RectangleLike, Vector2, Vector2Data } from '../../core';
1
+ import type { GlRenderer, RectangleLike, Vector2, Vector2Like } from '../../core';
2
2
  import type { Texture2D } from '../resources';
3
3
  import type { Rectangulable, RectangulableEvents } from './interfaces';
4
4
  import type { NodeEvents } from './Node';
5
- import { Rectangle, Transform2D } from '../../core';
5
+ import { Aabb2D, Transform2D } from '../../core';
6
6
  import { RenderTarget } from '../resources';
7
7
  import { Node } from './Node';
8
8
  export interface ViewportEvents extends NodeEvents, RectangulableEvents {
@@ -37,7 +37,7 @@ export declare class Viewport extends Node implements Rectangulable {
37
37
  renderStart(renderer: GlRenderer, frame?: RectangleLike): void;
38
38
  renderEnd(renderer: GlRenderer, oldViewport: Viewport | undefined): void;
39
39
  render(renderer: GlRenderer, next?: () => void): void;
40
- getRect(): Rectangle;
41
- toCanvasGlobal<P extends Vector2Data = Vector2>(screenPos: Vector2Data, newPos?: P): P;
42
- toCanvasScreen<P extends Vector2Data = Vector2>(globalPos: Vector2Data, newPos?: P): P;
40
+ getRect(): Aabb2D;
41
+ toCanvasGlobal<P extends Vector2Like = Vector2>(screenPos: Vector2Like, newPos?: P): P;
42
+ toCanvasScreen<P extends Vector2Like = Vector2>(globalPos: Vector2Like, newPos?: P): P;
43
43
  }
@@ -1,4 +1,4 @@
1
- import type { Rectangle } from '../../../core';
1
+ import type { Aabb2D } from '../../../core';
2
2
  export interface RectangulableEvents {
3
3
  updateRect: [];
4
4
  }
@@ -9,5 +9,5 @@ export interface Rectangulable {
9
9
  emit: <K extends keyof RectangulableEvents & string>(event: K, ...args: RectangulableEvents[K]) => this;
10
10
  }
11
11
  export interface Rectangulable {
12
- getRect: () => Rectangle;
12
+ getRect: () => Aabb2D;
13
13
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-canvas",
3
3
  "type": "module",
4
- "version": "0.14.5",
4
+ "version": "0.14.7",
5
5
  "packageManager": "pnpm@10.19.0",
6
6
  "description": "A JavaScript WebGL rendering engine. only the ESM.",
7
7
  "author": "wxm",
@@ -65,8 +65,8 @@
65
65
  "earcut": "^3.0.2",
66
66
  "modern-font": "^0.4.4",
67
67
  "modern-idoc": "^0.10.6",
68
- "modern-path2d": "^1.4.14",
69
- "modern-text": "^1.10.4"
68
+ "modern-path2d": "^1.4.15",
69
+ "modern-text": "^1.10.5"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "lottie-web": "^5",
@@ -85,9 +85,9 @@
85
85
  }
86
86
  },
87
87
  "devDependencies": {
88
- "@antfu/eslint-config": "^6.5.1",
88
+ "@antfu/eslint-config": "^6.6.1",
89
89
  "@types/earcut": "^3.0.0",
90
- "@types/node": "^24.10.1",
90
+ "@types/node": "^24.10.2",
91
91
  "bumpp": "^10.3.2",
92
92
  "conventional-changelog-cli": "^5.0.0",
93
93
  "eslint": "^9.39.1",
@@ -1,28 +0,0 @@
1
- import type { Node } from '../main';
2
- import type { BaseElement2DEvents, BaseElement2DProperties, Element2DStyleProperties } from './element';
3
- import { BaseElement2D } from './element';
4
- import { directionMap, FlexLayout } from './FlexLayout';
5
- export type LayoutMode = 'inherit' | 'absolute' | 'flex';
6
- export interface Element2DEvents extends BaseElement2DEvents {
7
- }
8
- export interface Element2D {
9
- on: <K extends keyof Element2DEvents & string>(event: K, listener: (...args: Element2DEvents[K]) => void) => this;
10
- once: <K extends keyof Element2DEvents & string>(event: K, listener: (...args: Element2DEvents[K]) => void) => this;
11
- off: <K extends keyof Element2DEvents & string>(event: K, listener: (...args: Element2DEvents[K]) => void) => this;
12
- emit: <K extends keyof Element2DEvents & string>(event: K, ...args: Element2DEvents[K]) => this;
13
- }
14
- export interface Element2DProperties extends BaseElement2DProperties {
15
- style: Partial<Element2DStyleProperties>;
16
- layoutMode: LayoutMode;
17
- }
18
- export declare class Element2D extends BaseElement2D {
19
- layoutMode: LayoutMode;
20
- _flex: FlexLayout;
21
- constructor(properties?: Partial<Element2DProperties>, nodes?: Node[]);
22
- getGlobalLayoutMode(): Omit<LayoutMode, 'inherit'>;
23
- protected _updateStyleProperty(key: string, value: any, oldValue: any): void;
24
- protected _parented(parent: Node): void;
25
- protected _unparented(oldParent: Node): void;
26
- updateLayout(): void;
27
- calculateLayout(width?: number | 'auto', height?: number | 'auto', direction?: typeof directionMap[keyof typeof directionMap]): void;
28
- }