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( "message--verbose" ), [ MessageTypes.Info ]: new ElementType( "message--info" ), [ MessageTypes.Warning ]: new ElementType( "message--warning" ), [ MessageTypes.Error ]: new ElementType( "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 ) ) ); } }