UNPKG

@mai3/phaser-sdk

Version:

A UI component library based on the Phaser game engine

74 lines 2.63 kB
import Phaser from 'phaser'; import { TextBoxConfig } from '../types'; import { Container } from './Container'; import { BaseScene } from "../game"; import { Label } from './Label'; /** * A text input box component that supports text selection, cursor movement, and IME input */ export declare class TextBox<T extends TextBoxConfig = TextBoxConfig> extends Container<T> { protected _config?: T; label: Label; selection: Phaser.GameObjects.Rectangle; cursor: Phaser.GameObjects.Text; timerEvent?: Phaser.Time.TimerEvent; hiddenInput?: HTMLInputElement; private static measureCanvas; private static measureContext; private static activeTextBox; protected isFocus: boolean; protected charWidths: number[]; protected selectionStart?: number; protected selectionEnd?: number; protected isSelecting: boolean; protected maxWidth: number; protected isComposing: boolean; protected compositionText: string; protected placeholder: string; protected previousValue: string; constructor(scene: BaseScene, config: T); reDraw(config?: T): void; private clearPreviousElements; private initializeState; private createLabel; private updatePlaceholder; private createCursor; private createSelection; private setupEventHandlers; private setupKeyboardEvents; handleKeydown(event: KeyboardEvent): void; handleKeyup(event: KeyboardEvent): void; getCursorPosition(): number; private updateCharWidths; createHiddenInput(): void; private setupHiddenInputStyles; private setupHiddenInputEvents; handleInput(): void; handleCompositionEnd(): void; getTextWidth(text: string): number; private getOrCreateMeasureContext; updateSelectionAfterInput(): void; handleOver(): void; handleOut(): void; handlePointerDown(pointer: Phaser.Input.Pointer): void; private deactivateTextBox; private resetSelection; handlePointerMove(pointer: Phaser.Input.Pointer): void; handlePointerUp(): void; updateCursorPosition(): void; private resetCursorBlink; updateSelection(): void; private updateSelectionVisuals; handleMoveCursor(): void; setDomCursorPosition(): void; setNativeCursorPosition(): void; getCharacterIndexAtPosition(x: number): number; getCharacterWidths(): number[]; getCharacterXPosition(index: number): number; addTimerEvent(): void; getLabelWorldPoint(): Phaser.Math.Vector2; destroy(fromScene?: boolean): void; private removeEventListeners; private destroyComponents; } //# sourceMappingURL=TextBox.d.ts.map