ngx-toast-notifications
Version:
Toast notifications for Angular applications
158 lines • 11.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: toast-container.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ApplicationRef, ComponentFactoryResolver, Inject, Injectable, Injector, RendererFactory2 } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { ToastContainerComponent } from './toast-container/toast-container.component';
/** @type {?} */
var TOAST_CONTAINER_CLASS_NAME = 'toast-container';
var ToastContainerService = /** @class */ (function () {
function ToastContainerService(rendererFactory, _document, _factoryResolver, _appRef, _injector) {
this._document = _document;
this._factoryResolver = _factoryResolver;
this._appRef = _appRef;
this._injector = _injector;
this._renderer = rendererFactory.createRenderer(null, null);
}
Object.defineProperty(ToastContainerService.prototype, "ref", {
get: /**
* @return {?}
*/
function () {
if (!this._componentRef) {
this._attach();
}
return this._componentRef;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ToastContainerService.prototype, "containerElement", {
get: /**
* @private
* @return {?}
*/
function () {
if (!this._containerElement) {
this._containerElement = this._renderer.createElement('div');
this._renderer.addClass(this._containerElement, TOAST_CONTAINER_CLASS_NAME);
this._renderer.appendChild(this._document.body, this._containerElement);
}
return this._containerElement;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
ToastContainerService.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this._detach();
this._destroyContainer();
};
/**
* @private
* @return {?}
*/
ToastContainerService.prototype._attach = /**
* @private
* @return {?}
*/
function () {
this._detach();
/** @type {?} */
var componentFactory = this._factoryResolver.resolveComponentFactory(ToastContainerComponent);
this._componentRef = componentFactory.create(this._injector);
/** @type {?} */
var hostView = (/** @type {?} */ (this._componentRef.hostView));
this._appRef.attachView(hostView);
/** @type {?} */
var rootNode = (/** @type {?} */ (hostView.rootNodes[0]));
this._renderer.appendChild(this.containerElement, rootNode);
};
/**
* @private
* @return {?}
*/
ToastContainerService.prototype._detach = /**
* @private
* @return {?}
*/
function () {
if (this._componentRef) {
this._appRef.detachView(this._componentRef.hostView);
this._componentRef.destroy();
this._componentRef = null;
}
};
/**
* @private
* @return {?}
*/
ToastContainerService.prototype._destroyContainer = /**
* @private
* @return {?}
*/
function () {
if (this._containerElement && this._containerElement.parentNode) {
this._renderer.removeChild(this._containerElement.parentNode, this._containerElement);
this._containerElement = null;
}
};
ToastContainerService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
ToastContainerService.ctorParameters = function () { return [
{ type: RendererFactory2 },
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: ComponentFactoryResolver },
{ type: ApplicationRef },
{ type: Injector }
]; };
return ToastContainerService;
}());
export { ToastContainerService };
if (false) {
/**
* @type {?}
* @private
*/
ToastContainerService.prototype._renderer;
/**
* @type {?}
* @private
*/
ToastContainerService.prototype._containerElement;
/**
* @type {?}
* @private
*/
ToastContainerService.prototype._componentRef;
/**
* @type {?}
* @private
*/
ToastContainerService.prototype._document;
/**
* @type {?}
* @private
*/
ToastContainerService.prototype._factoryResolver;
/**
* @type {?}
* @private
*/
ToastContainerService.prototype._appRef;
/**
* @type {?}
* @private
*/
ToastContainerService.prototype._injector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdG9hc3Qtbm90aWZpY2F0aW9ucy8iLCJzb3VyY2VzIjpbInRvYXN0LWNvbnRhaW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx3QkFBd0IsRUFHeEIsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBR1IsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7SUFFaEYsMEJBQTBCLEdBQUcsaUJBQWlCO0FBRXBEO0lBT0UsK0JBQ0UsZUFBaUMsRUFDUCxTQUFjLEVBQ2hDLGdCQUEwQyxFQUMxQyxPQUF1QixFQUN2QixTQUFtQjtRQUhELGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEwQjtRQUMxQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBRTNCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHNCQUFJLHNDQUFHOzs7O1FBQVA7WUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hCO1lBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7OztPQUFBO0lBRUQsc0JBQVksbURBQWdCOzs7OztRQUE1QjtZQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLDBCQUEwQixDQUFDLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3pFO1lBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDaEMsQ0FBQzs7O09BQUE7Ozs7SUFFRCwyQ0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7OztJQUVPLHVDQUFPOzs7O0lBQWY7UUFDRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7O1lBQ1QsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLHVCQUF1QixDQUFDO1FBQy9GLElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7WUFDdkQsUUFBUSxHQUFHLG1CQUFBLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUF3QjtRQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7WUFDNUIsUUFBUSxHQUFHLG1CQUFBLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQWU7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlELENBQUM7Ozs7O0lBRU8sdUNBQU87Ozs7SUFBZjtRQUNFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7OztJQUVPLGlEQUFpQjs7OztJQUF6QjtRQUNFLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7Z0JBN0RGLFVBQVU7Ozs7Z0JBUFQsZ0JBQWdCO2dEQWdCYixNQUFNLFNBQUMsUUFBUTtnQkF4QmxCLHdCQUF3QjtnQkFEeEIsY0FBYztnQkFNZCxRQUFROztJQXdFViw0QkFBQztDQUFBLEFBOURELElBOERDO1NBN0RZLHFCQUFxQjs7Ozs7O0lBRWhDLDBDQUE2Qjs7Ozs7SUFDN0Isa0RBQXVDOzs7OztJQUN2Qyw4Q0FBNkQ7Ozs7O0lBSTNELDBDQUF3Qzs7Ozs7SUFDeEMsaURBQWtEOzs7OztJQUNsRCx3Q0FBK0I7Ozs7O0lBQy9CLDBDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXBwbGljYXRpb25SZWYsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIEluamVjdGFibGUsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT25EZXN0cm95LFxyXG4gIFJlbmRlcmVyMixcclxuICBSZW5kZXJlckZhY3RvcnkyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVG9hc3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3RvYXN0LWNvbnRhaW5lci90b2FzdC1jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IFRPQVNUX0NPTlRBSU5FUl9DTEFTU19OQU1FID0gJ3RvYXN0LWNvbnRhaW5lcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUb2FzdENvbnRhaW5lclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyO1xyXG4gIHByaXZhdGUgX2NvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRvYXN0Q29udGFpbmVyQ29tcG9uZW50PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxyXG4gICAgcHJpdmF0ZSBfZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge1xyXG4gICAgdGhpcy5fcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVmKCk6IENvbXBvbmVudFJlZjxUb2FzdENvbnRhaW5lckNvbXBvbmVudD4ge1xyXG4gICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fYXR0YWNoKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgY29udGFpbmVyRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbnRhaW5lckVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9jb250YWluZXJFbGVtZW50LCBUT0FTVF9DT05UQUlORVJfQ0xBU1NfTkFNRSk7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmJvZHksIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX2RldGFjaCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveUNvbnRhaW5lcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXR0YWNoKCkge1xyXG4gICAgdGhpcy5fZGV0YWNoKCk7XHJcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5fZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRvYXN0Q29udGFpbmVyQ29tcG9uZW50KTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcclxuICAgIGNvbnN0IGhvc3RWaWV3ID0gdGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+O1xyXG4gICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcoaG9zdFZpZXcpO1xyXG4gICAgY29uc3Qgcm9vdE5vZGUgPSBob3N0Vmlldy5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lckVsZW1lbnQsIHJvb3ROb2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RldGFjaCgpIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Rlc3Ryb3lDb250YWluZXIoKSB7XHJcbiAgICBpZiAodGhpcy5fY29udGFpbmVyRWxlbWVudCAmJiB0aGlzLl9jb250YWluZXJFbGVtZW50LnBhcmVudE5vZGUpIHtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5fY29udGFpbmVyRWxlbWVudC5wYXJlbnROb2RlLCB0aGlzLl9jb250YWluZXJFbGVtZW50KTtcclxuICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==