28 lines
991 B
TypeScript
28 lines
991 B
TypeScript
import { ClassFlag } from "../dom/ClassFlag";
|
|
import { ElementType } from "../dom/ElementType";
|
|
import { Message } from "./Message";
|
|
import { MessageTypes } from "./MessageType";
|
|
|
|
export class MessageToHTML
|
|
{
|
|
static readonly typeToColor = new ClassFlag( "message--type--to--color" );
|
|
static readonly typeToBackground = new ClassFlag( "message--type--to--background" );
|
|
|
|
static types =
|
|
{
|
|
[ MessageTypes.Verbose ]: new ElementType<HTMLElement>( "message--verbose" ),
|
|
[ MessageTypes.Info ]: new ElementType<HTMLElement>( "message--info" ),
|
|
[ MessageTypes.Warning ]: new ElementType<HTMLElement>( "message--warning" ),
|
|
[ MessageTypes.Error ]: new ElementType<HTMLElement>( "message--error" ),
|
|
}
|
|
|
|
static convert( message:Message ):HTMLElement
|
|
{
|
|
return MessageToHTML.types[ message.type ].create( message.content );
|
|
}
|
|
|
|
static addTo( target:Element, messages:Message[] )
|
|
{
|
|
messages.forEach( m => target.appendChild( MessageToHTML.convert( m ) ) );
|
|
}
|
|
} |