@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
145 lines (144 loc) • 11.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Subject } from 'rxjs';
import { Component, ViewContainerRef, HostBinding } from '@angular/core';
import * as nh from '../../../native-helper';
var AsiNotificationContainer = /** @class */ (function () {
function AsiNotificationContainer(viewContainerRef) {
this.viewContainerRef = viewContainerRef;
this.class = 'asi-component asi-notification-container';
this.subjectContainer = new Subject();
this.notifications = [];
}
/**
* @param {?} position
* @return {?}
*/
AsiNotificationContainer.prototype.setPosition = /**
* @param {?} position
* @return {?}
*/
function (position) {
this._position = position;
this.class += " " + this._position.toString();
};
/**
* @return {?}
*/
AsiNotificationContainer.prototype.getPosition = /**
* @return {?}
*/
function () {
return this._position;
};
/**
* @return {?}
*/
AsiNotificationContainer.prototype.onContainerEmpty = /**
* @return {?}
*/
function () {
return this.subjectContainer.asObservable();
};
/**
* @param {?} componentRef
* @param {?} config
* @return {?}
*/
AsiNotificationContainer.prototype.addNotification = /**
* @param {?} componentRef
* @param {?} config
* @return {?}
*/
function (componentRef, config) {
var _this = this;
this.notifications.unshift(componentRef);
setTimeout(function () {
_this.updatePosition();
}, 5);
if (config.delayInMs != null && config.delayInMs > 0) {
setTimeout(function () {
_this.removeNotification(componentRef);
}, config.delayInMs);
}
};
/**
* @param {?} componentRef
* @return {?}
*/
AsiNotificationContainer.prototype.removeNotification = /**
* @param {?} componentRef
* @return {?}
*/
function (componentRef) {
var _this = this;
componentRef.location.nativeElement.style.opacity = '0';
setTimeout(function () {
nh.remove(_this.notifications, function (notif) {
return notif.instance === componentRef.instance;
});
_this.updatePosition();
componentRef.destroy();
if (_this.notifications.length === 0) {
_this.subjectContainer.next(_this);
_this.subjectContainer.complete();
}
}, 300);
};
/**
* @return {?}
*/
AsiNotificationContainer.prototype.updatePosition = /**
* @return {?}
*/
function () {
/** @type {?} */
var top = this._position.value.startsWith('top');
/** @type {?} */
var position = 0;
/** @type {?} */
var notifHeight;
this.notifications.forEach(function (notification) {
notifHeight = notification.location.nativeElement.offsetHeight;
/** @type {?} */
var pos = (position * notifHeight + (5 * position)) + 'px';
if (top) {
notification.location.nativeElement.style.top = pos;
}
else {
notification.location.nativeElement.style.bottom = pos;
}
position++;
});
};
AsiNotificationContainer.decorators = [
{ type: Component, args: [{
selector: 'asi-notification-container',
template: "<div class=\"asi-notification-container-panel\"></div>"
}] }
];
/** @nocollapse */
AsiNotificationContainer.ctorParameters = function () { return [
{ type: ViewContainerRef }
]; };
AsiNotificationContainer.propDecorators = {
class: [{ type: HostBinding, args: ['class',] }]
};
return AsiNotificationContainer;
}());
export { AsiNotificationContainer };
if (false) {
/** @type {?} */
AsiNotificationContainer.prototype.class;
/** @type {?} */
AsiNotificationContainer.prototype._position;
/** @type {?} */
AsiNotificationContainer.prototype.subjectContainer;
/** @type {?} */
AsiNotificationContainer.prototype.notifications;
/** @type {?} */
AsiNotificationContainer.prototype.viewContainerRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLW5vdGlmaWNhdGlvbi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FzaS1ub3RpZmljYXRpb24vY29udGFpbmVyL2FzaS1ub3RpZmljYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFnQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7SUFlM0Msa0NBQW1CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO3FCQVB2QiwwQ0FBMEM7Z0NBR1YsSUFBSSxPQUFPLEVBQUU7NkJBRWhCLEVBQUU7S0FHNUQ7Ozs7O0lBRUQsOENBQVc7Ozs7SUFBWCxVQUFZLFFBQWlDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLElBQUksTUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBSSxDQUFDO0tBQy9DOzs7O0lBRUQsOENBQVc7OztJQUFYO1FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7S0FDdkI7Ozs7SUFFRCxtREFBZ0I7OztJQUFoQjtRQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7S0FDN0M7Ozs7OztJQUVELGtEQUFlOzs7OztJQUFmLFVBQWdCLFlBQWdELEVBQUUsTUFBNkI7UUFBL0YsaUJBVUM7UUFUQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUM7WUFDVCxLQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNOLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxVQUFVLENBQUM7Z0JBQ1QsS0FBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3ZDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3RCO0tBQ0Y7Ozs7O0lBRUQscURBQWtCOzs7O0lBQWxCLFVBQW1CLFlBQWdEO1FBQW5FLGlCQWVDO1FBZEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFFeEQsVUFBVSxDQUFDO1lBQ1QsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFJLENBQUMsYUFBYSxFQUFFLFVBQUMsS0FBSztnQkFDbEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQzthQUNqRCxDQUFDLENBQUM7WUFDSCxLQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNsQztTQUNGLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FFVDs7OztJQUVELGlEQUFjOzs7SUFBZDs7UUFDRSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7O1FBRWhELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQzs7UUFDakIsSUFBSSxXQUFXLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBQSxZQUFZO1lBQ3JDLFdBQVcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7O1lBQy9ELElBQUksR0FBRyxHQUFHLENBQUMsUUFBUSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMzRCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNSLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO2FBQ3JEO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7YUFDeEQ7WUFDRCxRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUMsQ0FBQTtLQUNIOztnQkF6RUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLGtFQUF3RDtpQkFDekQ7Ozs7Z0JBUG1CLGdCQUFnQjs7O3dCQVVqQyxXQUFXLFNBQUMsT0FBTzs7bUNBYnRCOztTQVdhLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXNpTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uL2FzaS1ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNpTm90aWZpY2F0aW9uUG9zaXRpb24sIEFzaU5vdGlmaWNhdGlvbkNvbmZpZyB9IGZyb20gJy4uL2FzaS1ub3RpZmljYXRpb24tY29uZmlnJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRSZWYsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBuaCBmcm9tICcuLi8uLi8uLi9uYXRpdmUtaGVscGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNpLW5vdGlmaWNhdGlvbi1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnYXNpLW5vdGlmaWNhdGlvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc2lOb3RpZmljYXRpb25Db250YWluZXIge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnYXNpLWNvbXBvbmVudCBhc2ktbm90aWZpY2F0aW9uLWNvbnRhaW5lcic7XHJcblxyXG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBBc2lOb3RpZmljYXRpb25Qb3NpdGlvbjtcclxuICBwcml2YXRlIHN1YmplY3RDb250YWluZXI6IFN1YmplY3Q8QXNpTm90aWZpY2F0aW9uQ29udGFpbmVyPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIG5vdGlmaWNhdGlvbnM6IEFycmF5PENvbXBvbmVudFJlZjxBc2lOb3RpZmljYXRpb248YW55Pj4+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihwb3NpdGlvbjogQXNpTm90aWZpY2F0aW9uUG9zaXRpb24pIHtcclxuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgICB0aGlzLmNsYXNzICs9IGAgJHt0aGlzLl9wb3NpdGlvbi50b1N0cmluZygpfWA7XHJcbiAgfVxyXG5cclxuICBnZXRQb3NpdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIG9uQ29udGFpbmVyRW1wdHkoKTogT2JzZXJ2YWJsZTxBc2lOb3RpZmljYXRpb25Db250YWluZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnN1YmplY3RDb250YWluZXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBhZGROb3RpZmljYXRpb24oY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8QXNpTm90aWZpY2F0aW9uPGFueT4+LCBjb25maWc6IEFzaU5vdGlmaWNhdGlvbkNvbmZpZykge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zLnVuc2hpZnQoY29tcG9uZW50UmVmKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICB9LCA1KTtcclxuICAgIGlmIChjb25maWcuZGVsYXlJbk1zICE9IG51bGwgJiYgY29uZmlnLmRlbGF5SW5NcyA+IDApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVOb3RpZmljYXRpb24oY29tcG9uZW50UmVmKTtcclxuICAgICAgfSwgY29uZmlnLmRlbGF5SW5Ncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVOb3RpZmljYXRpb24oY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8QXNpTm90aWZpY2F0aW9uPGFueT4+KSB7XHJcbiAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBuaC5yZW1vdmUodGhpcy5ub3RpZmljYXRpb25zLCAobm90aWYpID0+IHtcclxuICAgICAgICByZXR1cm4gbm90aWYuaW5zdGFuY2UgPT09IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcclxuICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLnN1YmplY3RDb250YWluZXIubmV4dCh0aGlzKTtcclxuICAgICAgICB0aGlzLnN1YmplY3RDb250YWluZXIuY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMzAwKTtcclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVQb3NpdGlvbigpIHtcclxuICAgIGxldCB0b3AgPSB0aGlzLl9wb3NpdGlvbi52YWx1ZS5zdGFydHNXaXRoKCd0b3AnKVxyXG5cclxuICAgIGxldCBwb3NpdGlvbiA9IDA7XHJcbiAgICBsZXQgbm90aWZIZWlnaHQ7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMuZm9yRWFjaChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICBub3RpZkhlaWdodCA9IG5vdGlmaWNhdGlvbi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgbGV0IHBvcyA9IChwb3NpdGlvbiAqIG5vdGlmSGVpZ2h0ICsgKDUgKiBwb3NpdGlvbikpICsgJ3B4JztcclxuICAgICAgaWYgKHRvcCkge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHBvcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBub3RpZmljYXRpb24ubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5ib3R0b20gPSBwb3M7XHJcbiAgICAgIH1cclxuICAgICAgcG9zaXRpb24rKztcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==