library-ts/browser/messages/MessageToHTML.ts

28 lines
991 B
TypeScript
Raw Permalink Normal View History

2025-03-08 12:22:18 +00:00
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 ) ) );
}
}