UNPKG

asciitorium

Version:
45 lines (44 loc) 1.51 kB
import { Component, ComponentProps } from '../core/Component.js'; import type { State } from '../core/State.js'; import { SizeContext } from '../core/types.js'; export type TextAlignment = 'top-left' | 'top' | 'top-right' | 'left' | 'center' | 'right' | 'bottom-left' | 'bottom' | 'bottom-right'; export interface TextOptions extends Omit<ComponentProps, 'children'> { content?: string | State<any> | (string | State<any>)[]; textAlign?: TextAlignment; children?: (string | State<any>) | (string | State<any>)[]; scrollable?: boolean; wrap?: boolean; typewriter?: boolean; typewriterSpeed?: number; typewriterPauseFactor?: number; } export declare class Text extends Component { private source; private textAlign?; private scrollableViewport; private totalLines; private scrollOffset; private isScrollable; private shouldWrap; private stateUnsubscribers; private isTypewriter; private typewriterSpeed; private typewriterPauseFactor; private visibleCharCount; private typewriterIntervalId?; private fullContent; private isPaused; private pauseTimeoutId?; focusable: boolean; hasFocus: boolean; constructor(options: TextOptions); private startTypewriter; private stopTypewriter; private subscribeToStates; destroy(): void; handleEvent(event: string): boolean; resolveSize(context: SizeContext): void; getContentAsString(): string; draw(): string[][]; private wrapText; }