@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
JavaScript
/**
* @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=