UNPKG

@addapptables/notifier

Version:
93 lines 6.88 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Subject } from 'rxjs'; import { filter, take } from 'rxjs/operators'; export class NotifierRef { /** * @param {?} component * @param {?} portal * @param {?} document * @param {?} id */ constructor(component, portal, document, id) { this._afterClose = new Subject(); this._component = component; this._portal = portal; this._component._id = id; this._document = document; this._component._close.subscribe(this.close.bind(this)); } /** * @return {?} */ get component() { return this._component; } /** * @return {?} */ afterClosed() { return this._afterClose.asObservable(); } /** * @return {?} */ close() { this._component._animationStateChanged.pipe(filter((/** * @param {?} x * @return {?} */ x => x.phaseName === 'done')), take(1)) .subscribe((/** * @return {?} */ () => { this._afterClose.next(this._component._id); this._afterClose.complete(); this._destroyPortal(); })); this._component.startExitAnimation(); } /** * @param {?} style * @return {?} */ changedStyle(style) { this._component._style = style; } /** * @private * @return {?} */ _destroyPortal() { /** @type {?} */ const componentContainer = this._document.getElementById(this._component._id); this._portal.detach(); componentContainer && componentContainer.parentNode.removeChild(componentContainer); } } if (false) { /** * @type {?} * @private */ NotifierRef.prototype._component; /** * @type {?} * @private */ NotifierRef.prototype._portal; /** * @type {?} * @private */ NotifierRef.prototype._document; /** * @type {?} * @private */ NotifierRef.prototype._afterClose; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpZXItcmVmLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFkZGFwcHRhYmxlcy9ub3RpZmllci8iLCJzb3VyY2VzIjpbImxpYi9ub3RpZmllci1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxNQUFNLE9BQU8sV0FBVzs7Ozs7OztJQVVwQixZQUNJLFNBQTRCLEVBQzVCLE1BQXVCLEVBQ3ZCLFFBQXNCLEVBQ3RCLEVBQVU7UUFORyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFRakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQzs7OztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7OztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FDdkMsTUFBTTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUMsRUFDbkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNWO2FBQ0ksU0FBUzs7O1FBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs7OztJQUVPLGNBQWM7O2NBQ1osa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEYsQ0FBQztDQUVKOzs7Ozs7SUFwREcsaUNBQStDOzs7OztJQUUvQyw4QkFBMEM7Ozs7O0lBRTFDLGdDQUF5Qzs7Ozs7SUFFekMsa0NBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm90aWZpZXJDb21wb25lbnQgfSBmcm9tICcuL25vdGlmaWVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvbVBvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmllclJlZiB7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50OiBOb3RpZmllckNvbXBvbmVudDtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wb3J0YWw6IERvbVBvcnRhbE91dGxldDtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudDogSFRNTERvY3VtZW50O1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQ2xvc2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgY29tcG9uZW50OiBOb3RpZmllckNvbXBvbmVudCxcclxuICAgICAgICBwb3J0YWw6IERvbVBvcnRhbE91dGxldCxcclxuICAgICAgICBkb2N1bWVudDogSFRNTERvY3VtZW50LFxyXG4gICAgICAgIGlkOiBzdHJpbmdcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudCA9IGNvbXBvbmVudDtcclxuICAgICAgICB0aGlzLl9wb3J0YWwgPSBwb3J0YWw7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Ll9pZCA9IGlkO1xyXG4gICAgICAgIHRoaXMuX2RvY3VtZW50ID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Ll9jbG9zZS5zdWJzY3JpYmUodGhpcy5jbG9zZS5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29tcG9uZW50KCk6IE5vdGlmaWVyQ29tcG9uZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGFmdGVyQ2xvc2VkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FmdGVyQ2xvc2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2UoKSB7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Ll9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKHggPT4geC5waGFzZU5hbWUgPT09ICdkb25lJyksXHJcbiAgICAgICAgICAgIHRha2UoMSlcclxuICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWZ0ZXJDbG9zZS5uZXh0KHRoaXMuX2NvbXBvbmVudC5faWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWZ0ZXJDbG9zZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVzdHJveVBvcnRhbCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9jb21wb25lbnQuc3RhcnRFeGl0QW5pbWF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlZFN0eWxlKHN0eWxlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9jb21wb25lbnQuX3N0eWxlID0gc3R5bGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZGVzdHJveVBvcnRhbCgpIHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRDb250YWluZXIgPSB0aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLl9jb21wb25lbnQuX2lkKTtcclxuICAgICAgICB0aGlzLl9wb3J0YWwuZGV0YWNoKCk7XHJcbiAgICAgICAgY29tcG9uZW50Q29udGFpbmVyICYmIGNvbXBvbmVudENvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvbXBvbmVudENvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==