UNPKG

@wellwind/ngx-thanos

Version:

Use [Thanos](https://www.google.com/search?q=Thanos) snap to destory your DOM elements on Angular.

94 lines 5.82 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core'; import { ThanosSnapService } from './thanos-snap.service'; export class ThanosSnapDirective { /** * @param {?} elementRef * @param {?} thanosSnapService */ constructor(elementRef, thanosSnapService) { this.elementRef = elementRef; this.thanosSnapService = thanosSnapService; this.ngxThanosSnap = false; this.snapStarting = new EventEmitter(); this.snapEnded = new EventEmitter(); this.rewinded = new EventEmitter(); } /** * @return {?} */ get host() { return this.elementRef.nativeElement; } /** * @return {?} */ ngOnChanges() { if (this.ngxThanosSnap) { this.snap(); } else { this.rewind(); } } /** * @return {?} */ snap() { this.snapStarting.emit(); this.thanosSnapService.snap(this.host).subscribe((/** * @return {?} */ () => this.snapEnded.emit())); } /** * @return {?} */ rewind() { this.thanosSnapService.rewind(this.host).subscribe((/** * @return {?} */ () => this.rewinded.emit())); } } ThanosSnapDirective.decorators = [ { type: Directive, args: [{ selector: '[ngxThanosSnap]', exportAs: 'ngxThanosSnap' },] } ]; /** @nocollapse */ ThanosSnapDirective.ctorParameters = () => [ { type: ElementRef }, { type: ThanosSnapService } ]; ThanosSnapDirective.propDecorators = { ngxThanosSnap: [{ type: Input }], snapStarting: [{ type: Output }], snapEnded: [{ type: Output }], rewinded: [{ type: Output }] }; if (false) { /** @type {?} */ ThanosSnapDirective.prototype.ngxThanosSnap; /** @type {?} */ ThanosSnapDirective.prototype.snapStarting; /** @type {?} */ ThanosSnapDirective.prototype.snapEnded; /** @type {?} */ ThanosSnapDirective.prototype.rewinded; /** * @type {?} * @private */ ThanosSnapDirective.prototype.elementRef; /** * @type {?} * @private */ ThanosSnapDirective.prototype.thanosSnapService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhhbm9zLXNuYXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdlbGx3aW5kL25neC10aGFub3MvIiwic291cmNlcyI6WyJsaWIvdGhhbm9zLXNuYXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU0xRCxNQUFNLE9BQU8sbUJBQW1COzs7OztJQVk5QixZQUFvQixVQUFzQixFQUFVLGlCQUFvQztRQUFwRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVYvRSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUVyQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFNOEMsQ0FBQzs7OztJQUo3RixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFBO0lBQ3RDLENBQUM7Ozs7SUFJRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7U0FDZDtJQUNILENBQUM7Ozs7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFDLENBQUM7SUFDaEYsQ0FBQzs7OztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFDLENBQUM7SUFDakYsQ0FBQzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixRQUFRLEVBQUUsZUFBZTthQUMxQjs7OztZQU5tQixVQUFVO1lBQ3JCLGlCQUFpQjs7OzRCQVF2QixLQUFLOzJCQUVMLE1BQU07d0JBQ04sTUFBTTt1QkFDTixNQUFNOzs7O0lBSlAsNENBQStCOztJQUUvQiwyQ0FBa0Q7O0lBQ2xELHdDQUErQzs7SUFDL0MsdUNBQThDOzs7OztJQU1sQyx5Q0FBOEI7Ozs7O0lBQUUsZ0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaGFub3NTbmFwU2VydmljZSB9IGZyb20gJy4vdGhhbm9zLXNuYXAuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ3hUaGFub3NTbmFwXScsXHJcbiAgZXhwb3J0QXM6ICduZ3hUaGFub3NTbmFwJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhhbm9zU25hcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIG5neFRoYW5vc1NuYXAgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHNuYXBTdGFydGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc25hcEVuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSByZXdpbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGhvc3QoKTogSFRNTEVsZW1lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgdGhhbm9zU25hcFNlcnZpY2U6IFRoYW5vc1NuYXBTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5uZ3hUaGFub3NTbmFwKSB7XHJcbiAgICAgIHRoaXMuc25hcCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZXdpbmQoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc25hcCgpIHtcclxuICAgIHRoaXMuc25hcFN0YXJ0aW5nLmVtaXQoKTtcclxuICAgIHRoaXMudGhhbm9zU25hcFNlcnZpY2Uuc25hcCh0aGlzLmhvc3QpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNuYXBFbmRlZC5lbWl0KCkpO1xyXG4gIH1cclxuXHJcbiAgcmV3aW5kKCkge1xyXG4gICAgdGhpcy50aGFub3NTbmFwU2VydmljZS5yZXdpbmQodGhpcy5ob3N0KS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXdpbmRlZC5lbWl0KCkpO1xyXG4gIH1cclxufVxyXG4iXX0=