@@ -3,7 +3,7 @@ import { MessageConfig } from "./message-config";
33import { ActiveMessage , SuiActiveMessage } from "./active-message" ;
44import { SuiMessage } from "./message" ;
55import { SuiComponentFactory } from "../util/component-factory.service" ;
6- import { MessageController } from "./message-controller" ;
6+ import { MessageController , IMessageController } from "./message-controller" ;
77
88@Component ( {
99 selector : "sui-message-container" ,
@@ -33,12 +33,6 @@ export class SuiMessageContainer {
3333 private _messages :ActiveMessage [ ] ;
3434 private _queue :ActiveMessage [ ] ;
3535
36- @Input ( )
37- public maxShown :number ;
38-
39- @Input ( )
40- public showNewestFirst :boolean ;
41-
4236 @Input ( )
4337 public set controller ( controller :MessageController ) {
4438 controller . registerContainer ( this ) ;
@@ -50,32 +44,29 @@ export class SuiMessageContainer {
5044 constructor ( private _componentFactory :SuiComponentFactory , private _element :ElementRef ) {
5145 this . _messages = [ ] ;
5246 this . _queue = [ ] ;
53-
54- this . maxShown = 7 ;
55- this . showNewestFirst = true ;
5647 }
5748
58- public show ( config :MessageConfig ) :SuiActiveMessage {
49+ public show ( config :MessageConfig , maxShown : number , showNewestFirst : boolean ) :SuiActiveMessage {
5950 const componentRef = this . _componentFactory . createComponent ( SuiMessage ) ;
6051 componentRef . instance . loadConfig ( config ) ;
6152
6253 const active = new ActiveMessage ( config , componentRef )
63- . onDismiss ( ( ) => this . onMessageClose ( active ) ) ;
54+ . onDismiss ( ( ) => this . onMessageClose ( active , showNewestFirst ) ) ;
6455
65- if ( this . _messages . length < this . maxShown ) {
66- this . open ( active ) ;
56+ if ( this . _messages . length < maxShown ) {
57+ this . open ( active , showNewestFirst ) ;
6758 } else {
6859 this . queue ( active ) ;
6960 }
7061
7162 return active ;
7263 }
7364
74- private open ( message :ActiveMessage ) :void {
65+ private open ( message :ActiveMessage , showNewestFirst : boolean ) :void {
7566 this . _messages . push ( message ) ;
7667
7768 this . _componentFactory . attachToView ( message . componentRef , this . containerSibling ) ;
78- if ( ! this . showNewestFirst ) {
69+ if ( ! showNewestFirst ) {
7970 this . _componentFactory . moveToElement ( message . componentRef , this . _element . nativeElement ) ;
8071 }
8172
@@ -91,13 +82,13 @@ export class SuiMessageContainer {
9182 this . _messages . forEach ( m => m . dismiss ( ) ) ;
9283 }
9384
94- private onMessageClose ( message :ActiveMessage ) :void {
85+ private onMessageClose ( message :ActiveMessage , showNewestFirst : boolean ) :void {
9586 this . _messages = this . _messages . filter ( m => m !== message ) ;
9687
9788 if ( this . _queue . length > 0 ) {
9889 const queued = this . _queue . shift ( ) ;
9990
100- this . open ( queued ) ;
91+ this . open ( queued , showNewestFirst ) ;
10192 }
10293 }
10394}
0 commit comments