UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

95 lines (94 loc) 4.49 kB
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>; }