mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
77 lines
1.6 KiB
TypeScript
77 lines
1.6 KiB
TypeScript
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
import { trigger } from '@angular/animations';
|
|
|
|
import { AlertType } from './alert-type';
|
|
import { fadeOutLeave, fadeOutState } from '../animations/fade';
|
|
|
|
/**
|
|
* This component allow to create div that uses the Bootstrap's Alerts component.
|
|
*/
|
|
@Component({
|
|
selector: 'ds-alert',
|
|
encapsulation: ViewEncapsulation.None,
|
|
animations: [
|
|
trigger('enterLeave', [
|
|
fadeOutLeave, fadeOutState,
|
|
])
|
|
],
|
|
templateUrl: './alert.component.html',
|
|
styleUrls: ['./alert.component.scss']
|
|
})
|
|
export class AlertComponent {
|
|
|
|
/**
|
|
* The alert content
|
|
*/
|
|
@Input() content: string;
|
|
|
|
/**
|
|
* A boolean representing if alert is dismissible
|
|
*/
|
|
@Input() dismissible = false;
|
|
|
|
/**
|
|
* The alert type
|
|
*/
|
|
@Input() type: AlertType;
|
|
|
|
/**
|
|
* An event fired when alert is dismissed.
|
|
*/
|
|
@Output() close: EventEmitter<any> = new EventEmitter<any>();
|
|
|
|
/**
|
|
* The initial animation name
|
|
*/
|
|
public animate = 'fadeIn';
|
|
|
|
/**
|
|
* A boolean representing if alert is dismissed or not
|
|
*/
|
|
public dismissed = false;
|
|
|
|
/**
|
|
* Initialize instance variables
|
|
*
|
|
* @param {ChangeDetectorRef} cdr
|
|
*/
|
|
constructor(private cdr: ChangeDetectorRef) {
|
|
}
|
|
|
|
/**
|
|
* Dismiss div with animation
|
|
*/
|
|
dismiss() {
|
|
if (this.dismissible) {
|
|
this.animate = 'fadeOut';
|
|
this.cdr.detectChanges();
|
|
setTimeout(() => {
|
|
this.dismissed = true;
|
|
this.close.emit();
|
|
this.cdr.detectChanges();
|
|
}, 300);
|
|
|
|
}
|
|
}
|
|
}
|