UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

122 lines (121 loc) 10.5 kB
/** * @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'; export class AsiNotificationContainer { /** * @param {?} viewContainerRef */ constructor(viewContainerRef) { this.viewContainerRef = viewContainerRef; this.class = 'asi-component asi-notification-container'; this.subjectContainer = new Subject(); this.notifications = []; } /** * @param {?} position * @return {?} */ setPosition(position) { this._position = position; this.class += ` ${this._position.toString()}`; } /** * @return {?} */ getPosition() { return this._position; } /** * @return {?} */ onContainerEmpty() { return this.subjectContainer.asObservable(); } /** * @param {?} componentRef * @param {?} config * @return {?} */ addNotification(componentRef, config) { this.notifications.unshift(componentRef); setTimeout(() => { this.updatePosition(); }, 5); if (config.delayInMs != null && config.delayInMs > 0) { setTimeout(() => { this.removeNotification(componentRef); }, config.delayInMs); } } /** * @param {?} componentRef * @return {?} */ removeNotification(componentRef) { componentRef.location.nativeElement.style.opacity = '0'; setTimeout(() => { nh.remove(this.notifications, (notif) => { return notif.instance === componentRef.instance; }); this.updatePosition(); componentRef.destroy(); if (this.notifications.length === 0) { this.subjectContainer.next(this); this.subjectContainer.complete(); } }, 300); } /** * @return {?} */ updatePosition() { /** @type {?} */ let top = this._position.value.startsWith('top'); /** @type {?} */ let position = 0; /** @type {?} */ let notifHeight; this.notifications.forEach(notification => { notifHeight = notification.location.nativeElement.offsetHeight; /** @type {?} */ let 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 = () => [ { type: ViewContainerRef } ]; AsiNotificationContainer.propDecorators = { class: [{ type: HostBinding, args: ['class',] }] }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLW5vdGlmaWNhdGlvbi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FzaS1ub3RpZmljYXRpb24vY29udGFpbmVyL2FzaS1ub3RpZmljYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFnQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU03QyxNQUFNOzs7O0lBU0osWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7cUJBUHZCLDBDQUEwQztnQ0FHVixJQUFJLE9BQU8sRUFBRTs2QkFFaEIsRUFBRTtLQUc1RDs7Ozs7SUFFRCxXQUFXLENBQUMsUUFBaUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztLQUMvQzs7OztJQUVELFdBQVc7UUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztLQUN2Qjs7OztJQUVELGdCQUFnQjtRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7S0FDN0M7Ozs7OztJQUVELGVBQWUsQ0FBQyxZQUFnRCxFQUFFLE1BQTZCO1FBQzdGLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNOLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN2QyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN0QjtLQUNGOzs7OztJQUVELGtCQUFrQixDQUFDLFlBQWdEO1FBQ2pFLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBRXhELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQzthQUNqRCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNsQztTQUNGLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FFVDs7OztJQUVELGNBQWM7O1FBQ1osSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBOztRQUVoRCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7O1FBQ2pCLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hDLFdBQVcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7O1lBQy9ELElBQUksR0FBRyxHQUFHLENBQUMsUUFBUSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMzRCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNSLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO2FBQ3JEO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7YUFDeEQ7WUFDRCxRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUMsQ0FBQTtLQUNIOzs7WUF6RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLGtFQUF3RDthQUN6RDs7OztZQVBtQixnQkFBZ0I7OztvQkFVakMsV0FBVyxTQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFzaU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL25vdGlmaWNhdGlvbi9hc2ktbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzaU5vdGlmaWNhdGlvblBvc2l0aW9uLCBBc2lOb3RpZmljYXRpb25Db25maWcgfSBmcm9tICcuLi9hc2ktbm90aWZpY2F0aW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50UmVmLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0ICogYXMgbmggZnJvbSAnLi4vLi4vLi4vbmF0aXZlLWhlbHBlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FzaS1ub3RpZmljYXRpb24tY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJ2FzaS1ub3RpZmljYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNpTm90aWZpY2F0aW9uQ29udGFpbmVyIHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ2FzaS1jb21wb25lbnQgYXNpLW5vdGlmaWNhdGlvbi1jb250YWluZXInO1xyXG5cclxuICBwcml2YXRlIF9wb3NpdGlvbjogQXNpTm90aWZpY2F0aW9uUG9zaXRpb247XHJcbiAgcHJpdmF0ZSBzdWJqZWN0Q29udGFpbmVyOiBTdWJqZWN0PEFzaU5vdGlmaWNhdGlvbkNvbnRhaW5lcj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBub3RpZmljYXRpb25zOiBBcnJheTxDb21wb25lbnRSZWY8QXNpTm90aWZpY2F0aW9uPGFueT4+PiA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24ocG9zaXRpb246IEFzaU5vdGlmaWNhdGlvblBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLl9wb3NpdGlvbiA9IHBvc2l0aW9uO1xyXG4gICAgdGhpcy5jbGFzcyArPSBgICR7dGhpcy5fcG9zaXRpb24udG9TdHJpbmcoKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0UG9zaXRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckVtcHR5KCk6IE9ic2VydmFibGU8QXNpTm90aWZpY2F0aW9uQ29udGFpbmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdWJqZWN0Q29udGFpbmVyLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgYWRkTm90aWZpY2F0aW9uKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEFzaU5vdGlmaWNhdGlvbjxhbnk+PiwgY29uZmlnOiBBc2lOb3RpZmljYXRpb25Db25maWcpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9ucy51bnNoaWZ0KGNvbXBvbmVudFJlZik7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgfSwgNSk7XHJcbiAgICBpZiAoY29uZmlnLmRlbGF5SW5NcyAhPSBudWxsICYmIGNvbmZpZy5kZWxheUluTXMgPiAwKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlTm90aWZpY2F0aW9uKGNvbXBvbmVudFJlZik7XHJcbiAgICAgIH0sIGNvbmZpZy5kZWxheUluTXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTm90aWZpY2F0aW9uKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEFzaU5vdGlmaWNhdGlvbjxhbnk+Pikge1xyXG4gICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3BhY2l0eSA9ICcwJztcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbmgucmVtb3ZlKHRoaXMubm90aWZpY2F0aW9ucywgKG5vdGlmKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5vdGlmLmluc3RhbmNlID09PSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zdWJqZWN0Q29udGFpbmVyLm5leHQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zdWJqZWN0Q29udGFpbmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDMwMCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUG9zaXRpb24oKSB7XHJcbiAgICBsZXQgdG9wID0gdGhpcy5fcG9zaXRpb24udmFsdWUuc3RhcnRzV2l0aCgndG9wJylcclxuXHJcbiAgICBsZXQgcG9zaXRpb24gPSAwO1xyXG4gICAgbGV0IG5vdGlmSGVpZ2h0O1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zLmZvckVhY2gobm90aWZpY2F0aW9uID0+IHtcclxuICAgICAgbm90aWZIZWlnaHQgPSBub3RpZmljYXRpb24ubG9jYXRpb24ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgIGxldCBwb3MgPSAocG9zaXRpb24gKiBub3RpZkhlaWdodCArICg1ICogcG9zaXRpb24pKSArICdweCc7XHJcbiAgICAgIGlmICh0b3ApIHtcclxuICAgICAgICBub3RpZmljYXRpb24ubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSBwb3M7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm90dG9tID0gcG9zO1xyXG4gICAgICB9XHJcbiAgICAgIHBvc2l0aW9uKys7XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=