import { Md5 } from 'ts-md5/dist/md5'; class Alert { private type: 'error' | 'notice' | 'success'; private message: any; private cssClass: string; private alertContainer: any; /** * @param type * @param message * @param cssClass */ constructor( type: 'error' | 'notice' | 'success', message: any, cssClass: string ) { this.type = type; this.message = message; this.cssClass = cssClass; this.alertContainer = jQuery( '#cfw-alert-container' ); } /** * @param {boolean} temporary */ addAlert( temporary = false ): void { const alertElement = this.getOrBuildAlert( this.type, this.message, this.cssClass ); alertElement.appendTo( this.alertContainer ); alertElement.toggleClass( 'cfw-alert-temporary', temporary ); // Scroll to the top of the alert container jQuery( 'html, body' ).stop().animate( { scrollTop: jQuery( this.alertContainer ).offset().top, }, 300 ); } private buildAlert( id: string, type: string, message: string, cssClass: string ): string { return `