com.phloxui
Version:
PhloxUI Ng2+ Framework
1,109 lines (1,108 loc) • 106 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, Output, EventEmitter } from '@angular/core';
import { AbstractHasData } from './AbstractHasData';
import { Notification } from './model/Notification';
import { CLOSE_NOTIFICATION_EVENT, CLOSE_DONE_NOTIFICATION_EVENT, CLICK_EVENT, SHOW_ACTION_BAR_NOTIFICATION_EVENT, HIDE_ACTION_BAR_NOTIFICATION_EVENT, SHOW_CONTENT_NOTIFICATION_EVENT, HIDE_CONTENT_NOTIFICATION_EVENT } from '../share/CustomEventType';
import { UISystemClock } from '../service/UISystemClock.service';
import { DateTimeUtils } from '../share/utils/DateTimeUtils';
import { Option } from '../decorator/Option.decorator';
import { EventUtils } from '../share/utils/EventUtils';
const /** @type {?} */ TYPE_NAME = "phx-toast-notification";
export class ToastNotification extends AbstractHasData {
/**
* @param {?} uiSystemClock
* @param {?} elementRef
*/
constructor(uiSystemClock, elementRef) {
super(elementRef);
this.closeEvent = new EventEmitter();
this.closeDoneEvent = new EventEmitter();
this.showContentEvent = new EventEmitter();
this.showContentDoneEvent = new EventEmitter();
this.hideContentEvent = new EventEmitter();
this.hideContentDoneEvent = new EventEmitter();
this.showActionBarEvent = new EventEmitter();
this.showActionBarDoneEvent = new EventEmitter();
this.hideActionBarEvent = new EventEmitter();
this.hideActionBarDoneEvent = new EventEmitter();
this.uiSystemClock = uiSystemClock;
this.isClose = false;
this._showBody = false;
this._showActionBar = false;
this.closeStampTime = null;
this.showBodyTimeStamp = null;
this.HOVER_SHOW_ACTION_BAR_INTERVAL = 750;
this.MOUSE_LEAVE_HIDE_BAR_INTERVAL = 3000;
}
/**
* @return {?}
*/
ngOnInit() {
super.ngOnInit();
}
/**
* @return {?}
*/
close() {
this.clearHoverCountTimer();
if (this.isClose) {
return;
}
this._currentRowHeight = this.getRowHeight(true);
this._defaultRowHeight = this.getDefaultRowHeight(true);
// add class
this.isClose = true;
this.closeStampTime = new Date();
let /** @type {?} */ data = {
data: this.data,
model: this.model
};
let /** @type {?} */ ev = EventUtils.newCustomEvent(CLOSE_NOTIFICATION_EVENT, this, data, null);
this.closeEvent.emit(ev);
// delay and remove event
if (this.removeDelayTimer !== null && typeof this.removeDelayTimer !== 'undefined') {
clearTimeout(this.removeDelayTimer);
this.removeDelayTimer = null;
}
this.removeDelayTimer = setTimeout(() => {
let /** @type {?} */ data = {
data: this.data,
model: this.model
};
let /** @type {?} */ ev2 = EventUtils.newCustomEvent(CLOSE_DONE_NOTIFICATION_EVENT, this, data, null);
this.closeDoneEvent.emit(ev2);
}, ToastNotification.ANIMATE_OUT_INTERVAL + ToastNotification.ANIMATE_REMOVE_INTERVAL);
}
/**
* @param {?} isShow
* @return {?}
*/
setShowActionBar(isShow) {
if (this.isClose) {
// this block to disable show when closing
return;
}
this._showActionBar = isShow;
if (this._showActionBar) {
let /** @type {?} */ ev = this.getDefaultCustomEvent(SHOW_ACTION_BAR_NOTIFICATION_EVENT);
this.showActionBarEvent.emit(ev);
// after animated
if (this.showActionBarDoneTimer !== null && typeof this.showActionBarDoneTimer !== 'undefined') {
clearTimeout(this.showActionBarDoneTimer);
this.showActionBarDoneTimer = null;
}
this.showActionBarDoneTimer = setTimeout(() => {
this._currentRowHeight = this.getRowHeight(true);
this._defaultRowHeight = this.getDefaultRowHeight(true);
this.showActionBarDoneEvent.emit(ev);
}, ToastNotification.ANIMATE_SHOW_ACTION_BAR_INTERVAL);
}
else {
let /** @type {?} */ ev = this.getDefaultCustomEvent(HIDE_ACTION_BAR_NOTIFICATION_EVENT);
this.hideActionBarEvent.emit(ev);
// after animated
if (this.hideActionBarDoneTimer !== null && typeof this.hideActionBarDoneTimer !== 'undefined') {
clearTimeout(this.hideActionBarDoneTimer);
this.hideActionBarDoneTimer = null;
}
this.hideActionBarDoneTimer = setTimeout(() => {
this._currentRowHeight = this.getRowHeight(true);
this._defaultRowHeight = this.getDefaultRowHeight(true);
this.hideActionBarDoneEvent.emit(ev);
}, ToastNotification.ANIMATE_SHOW_ACTION_BAR_INTERVAL);
}
}
/**
* @return {?}
*/
clearHoverCountTimer() {
if (this.hoverCountTimer !== null && typeof this.hoverCountTimer !== 'undefined') {
clearTimeout(this.hoverCountTimer);
this.hoverCountTimer = null;
}
}
/**
* @return {?}
*/
clearMouseLeaveTimer() {
if (this.mouseLeaveTimer !== null && typeof this.mouseLeaveTimer !== 'undefined') {
clearTimeout(this.mouseLeaveTimer);
this.mouseLeaveTimer = null;
}
}
/**
* @param {?} eventName
* @return {?}
*/
getDefaultCustomEvent(eventName) {
let /** @type {?} */ data = {
data: this.data,
model: this.model,
instance: this
};
let /** @type {?} */ ev = EventUtils.newCustomEvent(eventName, this, data, null);
return ev;
}
/**
* @param {?} includePadding
* @return {?}
*/
getDefaultRowHeight(includePadding) {
let /** @type {?} */ firsRowHeight = 0;
let /** @type {?} */ firstRow = $(this.elementRef.nativeElement).find('.row');
if (typeof firstRow !== 'undefined' && typeof firstRow.first() !== 'undefined') {
firsRowHeight = firstRow.first().height();
}
let /** @type {?} */ padding = 0;
if (includePadding !== null && typeof includePadding !== 'undefined') {
let /** @type {?} */ pd = $(this.elementRef.nativeElement).css('padding-bottom');
if (pd !== null && typeof pd !== 'undefined') {
padding = parseFloat(pd);
}
}
let /** @type {?} */ finalHeight = firsRowHeight + padding;
return finalHeight;
}
/**
* @param {?} includePadding
* @return {?}
*/
getRowHeight(includePadding) {
// check height and override
let /** @type {?} */ contentBodyHeight = 0;
let /** @type {?} */ contentBody = $(this.elementRef.nativeElement).find('.row.content');
if (typeof contentBody !== 'undefined') {
contentBodyHeight = contentBody.height();
}
let /** @type {?} */ actionBarHeight = 0;
let /** @type {?} */ actionBar = $(this.elementRef.nativeElement).find('.row.action-bar');
if (typeof contentBody !== 'undefined') {
actionBarHeight = actionBar.height();
}
let /** @type {?} */ firsRowHeight = 0;
let /** @type {?} */ firstRow = $(this.elementRef.nativeElement).find('.row');
if (typeof firstRow !== 'undefined' && typeof firstRow.first() !== 'undefined') {
firsRowHeight = firstRow.first().height();
}
let /** @type {?} */ padding = 0;
if (includePadding !== null && typeof includePadding !== 'undefined') {
let /** @type {?} */ pd = $(this.elementRef.nativeElement).css('padding-bottom');
if (pd !== null && typeof pd !== 'undefined') {
padding = parseFloat(pd);
}
}
let /** @type {?} */ finalHeight = firsRowHeight + contentBodyHeight + actionBarHeight + padding;
return finalHeight;
}
/**
* @return {?}
*/
hasActions() {
let /** @type {?} */ firstBtn = this._getFirstActionBtn();
if (firstBtn !== null && typeof firstBtn !== 'undefined') {
return true;
}
return false;
}
/**
* @return {?}
*/
hasBody() {
// open
if (this.model !== null && typeof this.model !== 'undefined') {
let /** @type {?} */ bodyType = this.model.bodyComponent;
if (bodyType !== null && typeof bodyType !== 'undefined') {
return true;
}
}
return false;
}
/**
* @return {?}
*/
_isBodyAnimating() {
if (this.uiSystemClock !== null && this.showBodyTimeStamp !== null) {
return (this.uiSystemClock.getCurrentClockTime() - this.showBodyTimeStamp.getTime()) < ToastNotification.ANIMATE_SHOW_BODY_INTERVAL;
}
return false;
}
/**
* @return {?}
*/
_isExpandDefaultBtn() {
let /** @type {?} */ secondBtn = this._getSecondActionBtn();
if (secondBtn === null || typeof secondBtn === 'undefined') {
return true;
}
return false;
}
/**
* @return {?}
*/
_showActionsBarBtn() {
let /** @type {?} */ isHasACT = this.hasActions();
if (!this._showBody) {
return isHasACT;
}
else {
let /** @type {?} */ isHasBody = this.hasBody();
if (!isHasBody) {
return isHasACT;
}
}
return false;
}
/**
* @return {?}
*/
_getSecondActionBtn() {
if (this.model !== null && typeof this.model !== 'undefined') {
let /** @type {?} */ actionArrays = this.model.getActions();
if (actionArrays !== null && typeof actionArrays !== 'undefined' && actionArrays.length >= 2) {
return actionArrays[1];
}
}
return null;
}
/**
* @return {?}
*/
_getFirstActionBtn() {
if (this.model !== null && typeof this.model !== 'undefined') {
let /** @type {?} */ actionArrays = this.model.getActions();
if (actionArrays !== null && typeof actionArrays !== 'undefined' && actionArrays.length >= 1) {
return actionArrays[0];
}
}
return null;
}
/**
* @return {?}
*/
_getRowMarginTop() {
let /** @type {?} */ isRemoving = this._isAnimateRemove();
if (!isRemoving) {
return null;
}
if (!this.isClose) {
if (this._defaultRowHeight === null || typeof this._defaultRowHeight === 'undefined') {
this._defaultRowHeight = this.getDefaultRowHeight(true);
}
return -(this._defaultRowHeight) + "px";
}
if (this._currentRowHeight === null || typeof this._currentRowHeight === 'undefined') {
this._currentRowHeight = this.getRowHeight(true);
}
return -(this._currentRowHeight) + "px";
}
/**
* @return {?}
*/
_isAnimateIn() {
if (this.isClose) {
return false;
}
let /** @type {?} */ createdTime = null;
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model.createdTime !== null && typeof this.model.createdTime !== 'undefined') {
createdTime = this.model.createdTime;
}
}
if (this.uiSystemClock !== null && createdTime !== null) {
return (this.uiSystemClock.getCurrentClockTime() - createdTime.getTime()) < ToastNotification.ANIMATE_IN_INTERVAL;
}
return true;
}
/**
* @return {?}
*/
_isAnimateOut() {
if (!this.isClose) {
if (this._showBody || this._showActionBar) {
return false;
}
}
let /** @type {?} */ createdTime = null;
let /** @type {?} */ timeout = 0;
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model.createdTime !== null && typeof this.model.createdTime !== 'undefined') {
createdTime = this.model.createdTime;
}
if (this.model.timeout !== null && typeof this.model.timeout !== 'undefined') {
timeout = this.model.timeout;
}
}
// if close return true
if (this.isClose) {
return true;
}
if (this.uiSystemClock !== null && createdTime !== null) {
return (this.uiSystemClock.getCurrentClockTime() > (createdTime.getTime() + timeout - (ToastNotification.ANIMATE_OUT_INTERVAL + ToastNotification.ANIMATE_REMOVE_INTERVAL)));
}
return false;
}
/**
* @return {?}
*/
_isAnimateRemove() {
if (!this.isClose) {
if (this._showBody || this._showActionBar) {
return false;
}
}
let /** @type {?} */ createdTime = null;
let /** @type {?} */ timeout = 0;
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model.createdTime !== null && typeof this.model.createdTime !== 'undefined') {
createdTime = this.model.createdTime;
}
if (this.model.timeout !== null && typeof this.model.timeout !== 'undefined') {
timeout = this.model.timeout;
}
}
if (this.uiSystemClock !== null && createdTime !== null) {
if (this.isClose) {
return (this.uiSystemClock.getCurrentClockTime() > (this.closeStampTime.getTime() + ToastNotification.ANIMATE_OUT_INTERVAL));
}
return (this.uiSystemClock.getCurrentClockTime() > (createdTime.getTime() + timeout - (ToastNotification.ANIMATE_REMOVE_INTERVAL)));
}
return false;
}
/**
* @param {?} date
* @return {?}
*/
_getTimeMessage(date) {
if (date === null || typeof date === 'undefined') {
return "";
}
if (this.uiSystemClock !== null && typeof this.uiSystemClock !== 'undefined') {
let /** @type {?} */ currentTime = this.uiSystemClock.getCurrentClockDateTime();
return DateTimeUtils.getCompareTimeMessage(date, currentTime);
}
return "";
}
/**
* @return {?}
*/
_isShowActionBar() {
return this._showActionBar;
}
/**
* @return {?}
*/
_isShowIcon() {
if (this.model !== null && this.model !== undefined) {
let /** @type {?} */ url = this._getIconUrl();
if (url !== null && url !== undefined && url !== '') {
return true;
}
}
return false;
}
/**
* @return {?}
*/
_getIconUrl() {
if (this.model !== null && this.model !== undefined) {
if (this.model.iconURL !== null && this.model.iconURL !== undefined) {
return this.model.iconURL;
}
}
return null;
}
/**
* @return {?}
*/
_getLabel() {
if (this.model !== null && this.model !== undefined) {
if (this.model.label !== null && this.model.label !== undefined) {
return this.model.label;
}
}
return "";
}
/**
* @param {?} $event
* @return {?}
*/
onSecondButtonClicked($event) {
let /** @type {?} */ secondBtn = this._getSecondActionBtn();
if (secondBtn !== null && typeof secondBtn !== 'undefined') {
if (secondBtn.handler !== null && typeof secondBtn.handler === 'function') {
let /** @type {?} */ custEV = this.getDefaultCustomEvent(CLICK_EVENT);
secondBtn.handler.call(null, custEV);
if (secondBtn.closeNotification !== null && typeof secondBtn.closeNotification !== 'undefined') {
if (secondBtn.closeNotification) {
this.close();
}
}
}
}
}
/**
* @param {?} $event
* @return {?}
*/
onFirstButtonClicked($event) {
let /** @type {?} */ firstBtn = this._getFirstActionBtn();
if (firstBtn !== null && typeof firstBtn !== 'undefined') {
if (firstBtn.handler !== null && typeof firstBtn.handler === 'function') {
let /** @type {?} */ custEV = this.getDefaultCustomEvent(CLICK_EVENT);
firstBtn.handler.call(null, custEV);
if (firstBtn.closeNotification !== null && typeof firstBtn.closeNotification !== 'undefined') {
if (firstBtn.closeNotification) {
this.close();
}
}
}
}
}
/**
* @return {?}
*/
onRowBodyHover() {
if (this._showActionBar) {
this.clearHoverCountTimer();
return;
}
if (this.hoverCountTimer === null || typeof this.hoverCountTimer === 'undefined') {
this.hoverCountTimer = setTimeout(() => {
if (!this._showActionBar) {
this.setShowActionBar(true);
}
}, this.HOVER_SHOW_ACTION_BAR_INTERVAL);
}
this.clearMouseLeaveTimer();
}
/**
* @return {?}
*/
onRowBodyLeave() {
this.clearHoverCountTimer();
/** open if u want to mouse leave and hide actionbar **/
if (!this._showBody && this._showActionBar) {
if (this.mouseLeaveTimer !== null && typeof this.mouseLeaveTimer !== 'undefined') {
clearTimeout(this.mouseLeaveTimer);
this.mouseLeaveTimer = null;
}
this.mouseLeaveTimer = setTimeout(() => {
if (!this._showBody && !this.isClose) {
this.setShowActionBar(false);
}
}, this.MOUSE_LEAVE_HIDE_BAR_INTERVAL);
}
}
/**
* @param {?} $event
* @return {?}
*/
onCloseBtnClicked($event) {
if ($event !== null && typeof $event !== 'undefined') {
$event.stopPropagation();
$event.cancelBubble = true;
}
this.close();
}
/**
* @param {?} $event
* @return {?}
*/
onBodyClicked($event) {
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model.clickHandler !== null && typeof this.model.clickHandler === 'function') {
let /** @type {?} */ custEV = this.getDefaultCustomEvent(CLICK_EVENT);
this.model.clickHandler.call(null, custEV);
this.close();
}
}
}
/**
* @return {?}
*/
showBody() {
if (this.isClose) {
// this block to disable show when closing
return;
}
if (!this._showBody) {
this.showBodyTimeStamp = new Date();
this._showBody = true;
let /** @type {?} */ ev = this.getDefaultCustomEvent(SHOW_CONTENT_NOTIFICATION_EVENT);
this.showContentEvent.emit(ev);
// after animated
if (this.showContentDoneTimer !== null && typeof this.showContentDoneTimer !== 'undefined') {
clearTimeout(this.showContentDoneTimer);
this.showContentDoneTimer = null;
}
this.showContentDoneTimer = setTimeout(() => {
this._currentRowHeight = this.getRowHeight(true);
this._defaultRowHeight = this.getDefaultRowHeight(true);
this.showContentDoneEvent.emit(ev);
}, ToastNotification.ANIMATE_SHOW_BODY_INTERVAL);
}
}
/**
* @return {?}
*/
hideBody() {
if (this.isClose) {
// this block to disable show when closing
return;
}
if (this._showBody) {
this.showBodyTimeStamp = null;
this._showBody = false;
let /** @type {?} */ ev = this.getDefaultCustomEvent(HIDE_CONTENT_NOTIFICATION_EVENT);
this.hideContentEvent.emit(ev);
// after animated
if (this.hideContentDoneTimer !== null && typeof this.hideContentDoneTimer !== 'undefined') {
clearTimeout(this.hideContentDoneTimer);
this.hideContentDoneTimer = null;
}
this.hideContentDoneTimer = setTimeout(() => {
this._currentRowHeight = this.getRowHeight(true);
this._defaultRowHeight = this.getDefaultRowHeight(true);
this.hideContentDoneEvent.emit(ev);
}, ToastNotification.ANIMATE_SHOW_BODY_INTERVAL);
}
}
/**
* @return {?}
*/
isShowBody() {
return this._showBody;
}
/**
* @return {?}
*/
getModel() {
return this.model;
}
/**
* @param {?} model
* @return {?}
*/
setModel(model) {
this.model = model;
}
/**
* @return {?}
*/
isSelfDataDirty() {
return false;
}
/**
* @param {?} data
* @return {?}
*/
selfSaveData(data) {
}
/**
* @return {?}
*/
selfResetData() {
}
/**
* @return {?}
*/
getCloseEvent() {
return this.closeEvent;
}
/**
* @param {?} event
* @return {?}
*/
setCloseEvent(event) {
this.closeEvent = event;
}
/**
* @return {?}
*/
getCloseDoneEvent() {
return this.closeDoneEvent;
}
/**
* @param {?} event
* @return {?}
*/
setCloseDoneEvent(event) {
this.closeDoneEvent = event;
}
/**
* @return {?}
*/
getShowContentEvent() {
return this.showContentEvent;
}
/**
* @param {?} event
* @return {?}
*/
setShowContentEvent(event) {
this.showContentEvent = event;
}
/**
* @return {?}
*/
getShowContentDoneEvent() {
return this.showContentDoneEvent;
}
/**
* @param {?} event
* @return {?}
*/
setShowContentDoneEvent(event) {
this.showContentDoneEvent = event;
}
/**
* @return {?}
*/
getHideContentEvent() {
return this.hideContentEvent;
}
/**
* @param {?} event
* @return {?}
*/
setHideContentEvent(event) {
this.hideContentEvent = event;
}
/**
* @return {?}
*/
getHideContentDoneEvent() {
return this.hideContentDoneEvent;
}
/**
* @param {?} event
* @return {?}
*/
setHideContentDoneEvent(event) {
this.hideContentDoneEvent = event;
}
/**
* @return {?}
*/
getShowActionBarEvent() {
return this.showActionBarEvent;
}
/**
* @param {?} event
* @return {?}
*/
setShowActionBarEvent(event) {
this.showActionBarEvent = event;
}
/**
* @return {?}
*/
getShowActionBarDoneEvent() {
return this.showActionBarDoneEvent;
}
/**
* @param {?} event
* @return {?}
*/
setShowActionBarDoneEvent(event) {
this.showActionBarDoneEvent = event;
}
/**
* @return {?}
*/
getHideActionBarEvent() {
return this.hideActionBarEvent;
}
/**
* @param {?} event
* @return {?}
*/
setHideActionBarEvent(event) {
this.hideActionBarEvent = event;
}
/**
* @return {?}
*/
getHideActionBarDoneEvent() {
return this.hideActionBarDoneEvent;
}
/**
* @param {?} event
* @return {?}
*/
setHideActionBarDoneEvent(event) {
this.hideActionBarDoneEvent = event;
}
/**
* @return {?}
*/
doPreload() { return new Promise((resolve, reject) => { resolve(null); }); }
/**
* @return {?}
*/
doLoaded() {
}
}
ToastNotification.TYPE_NAME = TYPE_NAME;
ToastNotification.ANIMATE_IN_INTERVAL = 50;
ToastNotification.ANIMATE_OUT_INTERVAL = 600;
ToastNotification.ANIMATE_REMOVE_INTERVAL = 200;
ToastNotification.ANIMATE_SHOW_BODY_INTERVAL = 600;
ToastNotification.ANIMATE_SHOW_ACTION_BAR_INTERVAL = 600;
ToastNotification.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: `<div class="phx-toast-notification" [style.margin-top]="_getRowMarginTop()" [class.animateIn]="_isAnimateIn()" [class.animateOut]="_isAnimateOut()"
[class.animateRemove]="_isAnimateRemove()" (mouseover)="onRowBodyHover()" (mouseleave)="onRowBodyLeave()">
<div class="row-container">
<div class="row" (click)="onBodyClicked($event)">
<div class=left>
<div class="wrapper">
<div class="textCircle" *ngIf="!_isShowIcon()">
<div class="text-container flex-center">
{{_getLabel()}}
</div>
</div>
<div *ngIf="_isShowIcon()" class="icon-container flex-center">
<img src="{{_getIconUrl()}}">
</div>
</div>
</div>
<div class="center">
<div class="wrapper">
<div class="title-label">
<div class="table-wrapper fluid">
<div class="table-row-wrapper">
<div class="table-cell-wrapper middle">{{getModel().title}}</div>
</div>
</div>
</div>
<div class="description-label">{{getModel().description}}</div>
<div class="time-label">
<div>
<div class="table-wrapper fluid">
<div class="table-row-wrapper">
<div class="table-cell-wrapper middle">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve" class="clock">
<g>
<g>
<path style="fill:#CCCCCC;" d="M15.026,1c3.725,0,7.096,1.516,9.545,3.952c2.439,2.452,3.955,5.823,3.955,9.548
c0,3.725-1.516,7.099-3.955,9.548C22.122,26.487,18.751,28,15.026,28c-3.726,0-7.097-1.513-9.535-3.952
C3.039,21.6,1.536,18.225,1.536,14.5c0-3.726,1.504-7.097,3.952-9.548C7.93,2.516,11.301,1,15.026,1L15.026,1z M21.906,13.762
c0.405,0,0.727,0.332,0.727,0.738c0,0.405-0.322,0.737-0.727,0.737h-6.879c-0.271,0-0.507-0.157-0.633-0.373l-0.012-0.01
l-0.01-0.022v-0.01l-0.01-0.022l-0.012-0.02v-0.012l-0.01-0.02l-0.01-0.009v-0.023l-0.009-0.019v-0.013l-0.013-0.019v-0.042
l-0.01-0.013V5.712c0-0.405,0.323-0.728,0.728-0.728c0.402,0,0.734,0.323,0.734,0.728v8.05H21.906z M23.533,5.992
c-2.177-2.18-5.188-3.517-8.507-3.517c-3.32,0-6.33,1.337-8.51,3.517C4.348,8.169,2.998,11.18,2.998,14.5
c0,3.32,1.35,6.33,3.518,8.51c2.18,2.177,5.19,3.517,8.51,3.517c3.32,0,6.33-1.34,8.507-3.517c2.18-2.18,3.53-5.188,3.53-8.51
C27.064,11.18,25.714,8.169,23.533,5.992L23.533,5.992z M23.533,5.992"/>
</g>
</g>
</svg>
</div>
</div>
</div>
</div>
<div>
<div class="table-wrapper fluid">
<div class="table-row-wrapper">
<div class="table-cell-wrapper middle">
{{_getTimeMessage(getModel().createdTime)}}</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="right"> <div class="cross-icon" (click)="onCloseBtnClicked($event)"></div> </div>
</div>
<div class="row action-bar" [class.show]="_isShowActionBar()">
<div class="left">
<!-- nothing here -->
</div>
<div class="center">
<div class="wrapper">
<div class="left" [class.hide]="_isExpandDefaultBtn()">
<div class="table-wrapper fluid">
<div class="table-row-wrapper">
<div class="table-cell-wrapper middle">
<div class="notification-action-btn" [class.fadeout]="!_showActionsBarBtn()" *ngIf="_getSecondActionBtn() !== null" (click)="onSecondButtonClicked($event)">
<div class="table-wrapper fluid">
<div class="table-row-wrapper">
<div class="table-cell-wrapper middle">
{{_getSecondActionBtn().title}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="right" [class.expand]="_isExpandDefaultBtn()">
<div class="table-wrapper fluid">
<div class="table-row-wrapper">
<div class="table-cell-wrapper middle">
<div class="notification-action-btn first" [class.fadeout]="!_showActionsBarBtn()" *ngIf="_getFirstActionBtn() !== null" (click)="onFirstButtonClicked($event)">
<div class="table-wrapper fluid">
<div class="table-row-wrapper">
<div class="table-cell-wrapper middle">
{{_getFirstActionBtn().title}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="right">
<!-- nothing here -->
</div>
</div>
<div class="row content" [class.show]="!_showActionsBarBtn()" [class.animating]="_isBodyAnimating()">
<div class="wrapper">
<phx-component-wrapper [type]="getModel().bodyComponent" [data]="this"></phx-component-wrapper>
</div>
</div>
</div>
</div>
`
},] },
];
/** @nocollapse */
ToastNotification.ctorParameters = () => [
{ type: UISystemClock, },
{ type: ElementRef, },
];
ToastNotification.propDecorators = {
"dataParent": [{ type: Input },],
"ignoreParentData": [{ type: Input },],
"data": [{ type: Input },],
"ignoreParentDisabled": [{ type: Input },],
"delegateHistory": [{ type: Input },],
"onDisabled": [{ type: Input },],
"onEnabled": [{ type: Input },],
"loadingEnabled": [{ type: Input },],
"i18nKey": [{ type: Input },],
"bypass": [{ type: Input, args: ['i18nBypass',] },],
"options": [{ type: Input },],
"disabled": [{ type: Input },],
"model": [{ type: Input },],
"loadEvent": [{ type: Output, args: ['phxLoad',] },],
"closeEvent": [{ type: Output, args: ['phxClose',] },],
"closeDoneEvent": [{ type: Output, args: ['phxCloseDone',] },],
"showContentEvent": [{ type: Output, args: ['phxShowContent',] },],
"showContentDoneEvent": [{ type: Output, args: ['phxShowContentDone',] },],
"hideContentEvent": [{ type: Output, args: ['phxHideContent',] },],
"hideContentDoneEvent": [{ type: Output, args: ['phxHideContentDone',] },],
"showActionBarEvent": [{ type: Output, args: ['phxShowActionBar',] },],
"showActionBarDoneEvent": [{ type: Output, args: ['phxShowActionBarDone',] },],
"hideActionBarEvent": [{ type: Output, args: ['phxHideActionBar',] },],
"hideActionBarDoneEvent": [{ type: Output, args: ['phxHideActionBarDone',] },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], ToastNotification.prototype, "dataParent", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], ToastNotification.prototype, "ignoreParentData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], ToastNotification.prototype, "data", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], ToastNotification.prototype, "ignoreParentDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], ToastNotification.prototype, "delegateHistory", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], ToastNotification.prototype, "onDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], ToastNotification.prototype, "onEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], ToastNotification.prototype, "loadingEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], ToastNotification.prototype, "i18nKey", void 0);
tslib_1.__decorate([
Option('i18nBypass'),
tslib_1.__metadata("design:type", Boolean)
], ToastNotification.prototype, "bypass", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], ToastNotification.prototype, "disabled", void 0);
tslib_1.__decorate([
Option('load'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "loadEvent", void 0);
tslib_1.__decorate([
Option('close'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "closeEvent", void 0);
tslib_1.__decorate([
Option('closeDone'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "closeDoneEvent", void 0);
tslib_1.__decorate([
Option('showContent'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "showContentEvent", void 0);
tslib_1.__decorate([
Option('showContentDone'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "showContentDoneEvent", void 0);
tslib_1.__decorate([
Option('hideContent'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "hideContentEvent", void 0);
tslib_1.__decorate([
Option('hideContentDone'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "hideContentDoneEvent", void 0);
tslib_1.__decorate([
Option('showActionBar'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "showActionBarEvent", void 0);
tslib_1.__decorate([
Option('showActionBarDone'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "showActionBarDoneEvent", void 0);
tslib_1.__decorate([
Option('hideActionBar'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "hideActionBarEvent", void 0);
tslib_1.__decorate([
Option('hideActionBarDone'),
tslib_1.__metadata("design:type", EventEmitter)
], ToastNotification.prototype, "hideActionBarDoneEvent", void 0);
function ToastNotification_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
ToastNotification.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
ToastNotification.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
ToastNotification.propDecorators;
/** @type {?} */
ToastNotification.TYPE_NAME;
/** @type {?} */
ToastNotification.ANIMATE_IN_INTERVAL;
/** @type {?} */
ToastNotification.ANIMATE_OUT_INTERVAL;
/** @type {?} */
ToastNotification.ANIMATE_REMOVE_INTERVAL;
/** @type {?} */
ToastNotification.ANIMATE_SHOW_BODY_INTERVAL;
/** @type {?} */
ToastNotification.ANIMATE_SHOW_ACTION_BAR_INTERVAL;
/** @type {?} */
ToastNotification.prototype.dataParent;
/** @type {?} */
ToastNotification.prototype.ignoreParentData;
/** @type {?} */
ToastNotification.prototype.data;
/** @type {?} */
ToastNotification.prototype.ignoreParentDisabled;
/** @type {?} */
ToastNotification.prototype.delegateHistory;
/** @type {?} */
ToastNotification.prototype.onDisabled;
/** @type {?} */
ToastNotification.prototype.onEnabled;
/** @type {?} */
ToastNotification.prototype.loadingEnabled;
/** @type {?} */
ToastNotification.prototype.i18nKey;
/** @type {?} */
ToastNotification.prototype.bypass;
/** @type {?} */
ToastNotification.prototype.options;
/** @type {?} */
ToastNotification.prototype.disabled;
/** @type {?} */
ToastNotification.prototype.model;
/** @type {?} */
ToastNotification.prototype.loadEvent;
/** @type {?} */
ToastNotification.prototype.closeEvent;
/** @type {?} */
ToastNotification.prototype.closeDoneEvent;
/** @type {?} */
ToastNotification.prototype.showContentEvent;
/** @type {?} */
ToastNotification.prototype.showContentDoneEvent;
/** @type {?} */
ToastNotification.prototype.hideContentEvent;
/** @type {?} */
ToastNotification.prototype.hideContentDoneEvent;
/** @type {?} */
ToastNotification.prototype.showActionBarEvent;
/** @type {?} */
ToastNotification.prototype.showActionBarDoneEvent;
/** @type {?} */
ToastNotification.prototype.hideActionBarEvent;
/** @type {?} */
ToastNotification.prototype.hideActionBarDoneEvent;
/** @type {?} */
ToastNotification.prototype.removeDelayTimer;
/** @type {?} */
ToastNotification.prototype.hideDelayTimer;
/** @type {?} */
ToastNotification.prototype.hoverCountTimer;
/** @type {?} */
ToastNotification.prototype.mouseLeaveTimer;
/** @type {?} */
ToastNotification.prototype.uiDelayTimer;
/** @type {?} */
ToastNotification.prototype.showActionBarDoneTimer;
/** @type {?} */
ToastNotification.prototype.hideActionBarDoneTimer;
/** @type {?} */
ToastNotification.prototype.showContentDoneTimer;
/** @type {?} */
ToastNotification.prototype.hideContentDoneTimer;
/** @type {?} */
ToastNotification.prototype.uiSystemClock;
/** @type {?} */
ToastNotification.prototype.isClose;
/** @type {?} */
ToastNotification.prototype.closeStampTime;
/** @type {?} */
ToastNotification.prototype._showBody;
/** @type {?} */
ToastNotification.prototype._showActionBar;
/** @type {?} */
ToastNotification.prototype._currentRowHeight;
/** @type {?} */
ToastNotification.prototype._defaultRowHeight;
/** @type {?} */
ToastNotification.prototype.showBodyTimeStamp;
/** @type {?} */
ToastNotification.prototype.HOVER_SHOW_ACTION_BAR_INTERVAL;
/** @type {?} */
ToastNotification.prototype.MOUSE_LEAVE_HIDE_BAR_INTERVAL;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9hc3ROb3RpZmljYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L1RvYXN0Tm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsT0FBTyxFQUNMLHdCQUF3QixFQUFFLDZCQUE2QixFQUFFLFdBQVcsRUFBRSxrQ0FBa0MsRUFDeEcsa0NBQWtDLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCLEVBQ3JHLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBS3ZELHVCQUFNLFNBQVMsR0FBVyx3QkFBd0IsQ0FBQztBQTRIbkQsTUFBTSx3QkFBeUIsU0FBUSxlQUFlOzs7OztJQTRHcEQsWUFBWSxhQUE0QixFQUFFLFVBQXNCO1FBQzlELEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzND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