/**
 * The text object is intended as character sequence manipulation interface. A text can be referenced by multiple labels
 * for rendering and interaction. E.g., a single text could be rendered multiple times at different locations or using
 * different font faces, alignments, etc. The text object will probably increase in complexity when additional features
 * such as text formatting (bold, italic, varying size), (multi)cursor, (multi)selection, etc. will be added.
 */ export class Text { static readonly DEFAULT_LINE_FEED = '\x0A' ; see text protected _text : string ; see lineFeed protected _lineFeed : string = Text . DEFAULT_LINE_FEED ; see altered protected _altered = false ; param text param lineFeed constructor ( text ? , lineFeed ? ) { this . _text = text ? text : '' ; this . _lineFeed = lineFeed !== undefined ? lineFeed : this . _lineFeed ; } /**
     * Length of the text, i.e., number of characters within the text.
     */ get length ( ) : number { return this . _text . length ; } param index returns charAt ( index ) { return this . _text . charAt ( index ) ; } param index returns charCodeAt ( index ) { return this . _text . charCodeAt ( index ) ; } /**
     * Text that is to be rendered.
     */ set text ( text ) { if ( this . _text === text ) { return ; } this . _altered = true ; this . _text = text ; } get text ( ) : string { return this . _text ; } /**
     * Character that is to be used for Line feed.
     */ set lineFeed ( lineFeed ) { if ( this . _lineFeed === lineFeed ) { return ; } this . _altered = true ; this . _lineFeed = lineFeed ; return ; } get lineFeed ( ) : string { return this . _lineFeed ; } /**
     * Intended for resetting alteration status.
     */ set altered ( altered ) { this . _altered = altered ; } get altered ( ) : boolean { return this . _altered ; } }