ngx-autohide
Version:
This library is used to automatically hide an Angular Component.
43 lines • 5.01 kB
JavaScript
import { animate, style } from '@angular/animations';
import { Directive, Input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/animations";
export class NgxAutohideDirective {
constructor(el, builder) {
this.el = el;
this.builder = builder;
this.timings = DEFAULT_TIME;
}
ngOnInit() {
// based on a time to hide the element
const factory = this.builder.build(this.fadeOut());
const player = factory.create(this.el.nativeElement);
player.onDone(() => {
// after the animation is done, the element is removed
this.el.nativeElement.remove();
});
player.play();
}
/**
* This is the fadeOut function that set the fade out effect for the AnimationBuilder
* @returns returns an AnimationMetadata array
*/
fadeOut() {
return [
style({ opacity: '*' }),
animate(this.timings + 'ms ease-in', style({ opacity: 0 })),
];
}
}
NgxAutohideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NgxAutohideDirective, deps: [{ token: i0.ElementRef }, { token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive });
NgxAutohideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: NgxAutohideDirective, selector: "[ngxAutohide]", inputs: { timings: "timings" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NgxAutohideDirective, decorators: [{
type: Directive,
args: [{
selector: '[ngxAutohide]'
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AnimationBuilder }]; }, propDecorators: { timings: [{
type: Input
}] } });
export const DEFAULT_TIME = 5000;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1dG9oaWRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXRvaGlkZS9zcmMvbGliL2RpcmVjdGl2ZXMvbmd4LWF1dG9oaWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUF1QyxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBS3JFLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFDVSxFQUFjLEVBQ2QsT0FBeUI7UUFEekIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBSjFCLFlBQU8sR0FBVyxZQUFZLENBQUM7SUFLcEMsQ0FBQztJQUVMLFFBQVE7UUFDTixzQ0FBc0M7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pCLHNEQUFzRDtZQUN0RCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztNQUdFO0lBQ00sT0FBTztRQUNiLE9BQU87WUFDTCxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzVELENBQUM7SUFDSixDQUFDOztpSEE3QlUsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7Z0lBR1UsT0FBTztzQkFBZixLQUFLOztBQStCUixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uQnVpbGRlciwgQW5pbWF0aW9uTWV0YWRhdGEsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25neEF1dG9oaWRlXSdcbn0pXG5leHBvcnQgY2xhc3MgTmd4QXV0b2hpZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRpbWluZ3M6IG51bWJlciA9IERFRkFVTFRfVElNRTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBcbiAgICBwcml2YXRlIGJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXJcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBiYXNlZCBvbiBhIHRpbWUgdG8gaGlkZSB0aGUgZWxlbWVudFxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmJ1aWxkZXIuYnVpbGQodGhpcy5mYWRlT3V0KCkpO1xuICAgIGNvbnN0IHBsYXllciA9IGZhY3RvcnkuY3JlYXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgcGxheWVyLm9uRG9uZSgoKSA9PiB7XG4gICAgICAvLyBhZnRlciB0aGUgYW5pbWF0aW9uIGlzIGRvbmUsIHRoZSBlbGVtZW50IGlzIHJlbW92ZWRcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcbiAgICB9KTtcbiAgICBwbGF5ZXIucGxheSgpO1xuICB9XG5cbiAgLyoqXG4gICogVGhpcyBpcyB0aGUgZmFkZU91dCBmdW5jdGlvbiB0aGF0IHNldCB0aGUgZmFkZSBvdXQgZWZmZWN0IGZvciB0aGUgQW5pbWF0aW9uQnVpbGRlclxuICAqIEByZXR1cm5zIHJldHVybnMgYW4gQW5pbWF0aW9uTWV0YWRhdGEgYXJyYXkgXG4gICovXG4gIHByaXZhdGUgZmFkZU91dCgpOiBBbmltYXRpb25NZXRhZGF0YVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgc3R5bGUoeyBvcGFjaXR5OiAnKicgfSksXG4gICAgICBhbmltYXRlKHRoaXMudGltaW5ncyArICdtcyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICBdO1xuICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRTogbnVtYmVyID0gNTAwMDsiXX0=