UNPKG

ngx-ui-hero

Version:

Simple, fast and reliable utilities for Angular.

43 lines 5.41 kB
import { fromEvent } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core'; import * as i0 from "@angular/core"; export class DebounceDirective { constructor(elementRef) { this.elementRef = elementRef; this.delay = 500; this.callback = new EventEmitter(); this.arrowsCallback = new EventEmitter(); this._arrowKeyCodes = [13, 27, 37, 38, 39, 40]; } ngOnInit() { const event1 = fromEvent(this.elementRef.nativeElement, 'keyup') .pipe(debounceTime(this.delay)) .subscribe((input) => { if (this._arrowKeyCodes.indexOf(input.keyCode) < 0) { this.callback.emit(input); } }); const event2 = fromEvent(this.elementRef.nativeElement, 'keyup') .subscribe((input) => { if (this._arrowKeyCodes.indexOf(input.keyCode) >= 0) { this.arrowsCallback.emit(input); } }); } } DebounceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DebounceDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); DebounceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DebounceDirective, selector: "[debounce]", inputs: { delay: "delay" }, outputs: { callback: "callback", arrowsCallback: "arrowsCallback" }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DebounceDirective, decorators: [{ type: Directive, args: [{ selector: '[debounce]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { delay: [{ type: Input }], callback: [{ type: Output }], arrowsCallback: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXVpLWhlcm8vc3JjL2xpYi91aS9kaXJlY3RpdmVzL2RlYm91bmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0YsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFQdkIsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUNYLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUzQyxtQkFBYyxHQUFhLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUlwRCxDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7YUFDN0QsSUFBSSxDQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQ3pCO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQzthQUM3RCxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzsrR0E1QlUsaUJBQWlCO21HQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtpQkFDdkI7aUdBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZWJvdW5jZV0nXG59KVxuZXhwb3J0IGNsYXNzIERlYm91bmNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGVsYXkgPSA1MDA7XG4gIEBPdXRwdXQoKSBjYWxsYmFjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGFycm93c0NhbGxiYWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBfYXJyb3dLZXlDb2RlczogbnVtYmVyW10gPSBbMTMsMjcsMzcsMzgsMzksNDBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZXZlbnQxID0gZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlbGF5KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGlucHV0OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2Fycm93S2V5Q29kZXMuaW5kZXhPZihpbnB1dC5rZXlDb2RlKSA8IDApIHtcbiAgICAgICAgICB0aGlzLmNhbGxiYWNrLmVtaXQoaW5wdXQpO1xuICAgICAgICB9ICAgICAgICBcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZXZlbnQyID0gZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgLnN1YnNjcmliZSgoaW5wdXQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fYXJyb3dLZXlDb2Rlcy5pbmRleE9mKGlucHV0LmtleUNvZGUpID49IDApIHtcbiAgICAgICAgICB0aGlzLmFycm93c0NhbGxiYWNrLmVtaXQoaW5wdXQpO1xuICAgICAgICB9IFxuICAgICAgfSk7XG4gIH1cblxufVxuIl19