modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
95 lines (94 loc) • 4.49 kB
TypeScript
import type { Background, Display, Fill, Foreground, Outline, Shadow, Shape, Text } from 'modern-idoc';
import type { InputEvent, InputEventKey, Vector2Like } from '../../../core';
import type { Node, Rectangulable, RectangulableEvents, SceneTree } from '../../main';
import type { Node2DEvents, Node2DProperties } from '../Node2D';
import type { Element2DStyleProperties } from './Element2DStyle';
import { Aabb2D, Obb2D, Vector2 } from '../../../core';
import { ColorFilterEffect } from '../../effects';
import { Node2D } from '../Node2D';
import { Element2DBackground } from './Element2DBackground';
import { Element2DFill } from './Element2DFill';
import { Element2DForeground } from './Element2DForeground';
import { Element2DOutline } from './Element2DOutline';
import { Element2DShadow } from './Element2DShadow';
import { Element2DShape } from './Element2DShape';
import { Element2DStyle } from './Element2DStyle';
import { Element2DText } from './Element2DText';
import { Flexbox } from './Flexbox';
export interface BaseElement2DEvents extends Node2DEvents, RectangulableEvents {
updateStyleProperty: [key: string, value: any, oldValue: any];
}
export interface Element2D {
on: <K extends keyof BaseElement2DEvents & string>(event: K, listener: (...args: BaseElement2DEvents[K]) => void) => this;
once: <K extends keyof BaseElement2DEvents & string>(event: K, listener: (...args: BaseElement2DEvents[K]) => void) => this;
off: <K extends keyof BaseElement2DEvents & string>(event: K, listener: (...args: BaseElement2DEvents[K]) => void) => this;
emit: <K extends keyof BaseElement2DEvents & string>(event: K, ...args: BaseElement2DEvents[K]) => this;
}
export interface Element2DProperties extends Node2DProperties {
style: Partial<Element2DStyleProperties>;
background: Background;
shape: Shape;
fill: Fill;
outline: Outline;
foreground: Foreground;
text: Text;
shadow: Shadow;
}
export declare class Element2D extends Node2D implements Rectangulable {
protected _parentGlobalDisplay?: Display;
protected _globalDisplay?: Display;
get globalDisplay(): Display | undefined;
readonly flexbox: Flexbox;
readonly size: Vector2;
protected _allowPointerEvents: boolean;
protected _overflowHidden: boolean;
protected _style: Element2DStyle;
get style(): Element2DStyle;
set style(value: Element2DProperties['style']);
protected _background: Element2DBackground;
get background(): Element2DBackground;
set background(value: Element2DProperties['background']);
protected _shape: Element2DShape;
get shape(): Element2DShape;
set shape(value: Element2DProperties['shape']);
protected _fill: Element2DFill;
get fill(): Element2DFill;
set fill(value: Element2DProperties['fill']);
protected _outline: Element2DOutline;
get outline(): Element2DOutline;
set outline(value: Element2DProperties['outline']);
protected _foreground: Element2DForeground;
get foreground(): Element2DForeground;
set foreground(value: Element2DProperties['foreground']);
protected _text: Element2DText;
get text(): Element2DText;
set text(value: Element2DProperties['text']);
protected _shadow: Element2DShadow;
get shadow(): Element2DShadow;
set shadow(value: Element2DProperties['shadow']);
protected _styleFilter?: ColorFilterEffect;
constructor(properties?: Partial<Element2DProperties>, nodes?: Node[]);
protected _treeEnter(tree: SceneTree): void;
setProperties(properties?: Record<string, any>): this;
onUpdateStyleProperty(key: string, value: any, oldValue: any): void;
protected _updateStyleProperty(key: string, value: any, oldValue: any): void;
updateGlobalDisplay(): void;
requestLayout(): void;
protected _process(delta: number): void;
protected _getStyleFilter(): ColorFilterEffect;
protected _updateMaskImage(maskImage?: string): void;
updateGlobalTransform(): void;
protected _getPointArray(): Vector2Like[];
getRect(): Aabb2D;
getAabb(): Aabb2D;
getGlobalAabb(): Aabb2D;
getObb(): Obb2D;
getGlobalObb(): Obb2D;
protected _updateMask(): void;
protected _draw(): void;
protected _drawContent(): void;
input(event: InputEvent, key: InputEventKey): void;
protected _positionInput(localPos: Vector2Like, key: InputEventKey): boolean;
protected _input(event: InputEvent, key: InputEventKey): void;
toJSON(): Record<string, any>;
}