systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
41 lines • 4.86 kB
JavaScript
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
import { Subject } from 'rxjs';
import { debounceTime } from 'rxjs/operators';
import * as i0 from "@angular/core";
export class KeyupDebounceDirective {
constructor(el) {
this.el = el;
this.keyupDebounceTime = 350;
this.keyupDebounced = new EventEmitter();
this.debouncer = new Subject();
}
ngOnInit() {
this.subscription = this.debouncer
.pipe(debounceTime(this.keyupDebounceTime))
.subscribe(e => this.keyupDebounced.emit(e));
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
keyupEvent(event) {
event.preventDefault();
event.stopPropagation();
this.debouncer.next(event);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: KeyupDebounceDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: KeyupDebounceDirective, selector: "[keyup-debounce]", inputs: { keyupDebounceTime: "keyupDebounceTime" }, outputs: { keyupDebounced: "keyupDebounced" }, host: { listeners: { "keyup": "keyupEvent($event)" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: KeyupDebounceDirective, decorators: [{
type: Directive,
args: [{
selector: '[keyup-debounce]'
}]
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { keyupDebounceTime: [{
type: Input
}], keyupDebounced: [{
type: Output
}], keyupEvent: [{
type: HostListener,
args: ['keyup', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dXAtZGVib3VuY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMva2V5dXAtZGVib3VuY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyxzQkFBc0I7SUFNbEMsWUFBMkIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFKekIsc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUdsQyxDQUFDO0lBR00sUUFBUTtRQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVM7YUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUMxQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxXQUFXO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUdNLFVBQVUsQ0FBQyxLQUFLO1FBQ3RCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0F6Qlcsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtpQkFDNUI7K0VBR2dCLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFDVyxjQUFjO3NCQUE5QixNQUFNO2dCQWtCQSxVQUFVO3NCQURoQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2tleXVwLWRlYm91bmNlXSdcbn0pXG5leHBvcnQgY2xhc3MgS2V5dXBEZWJvdW5jZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuXHRASW5wdXQoKSBwdWJsaWMga2V5dXBEZWJvdW5jZVRpbWUgPSAzNTA7XG5cdEBPdXRwdXQoKSBwdWJsaWMga2V5dXBEZWJvdW5jZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdHByaXZhdGUgZGVib3VuY2VyID0gbmV3IFN1YmplY3QoKTtcblx0cHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcblx0fVxuXG5cblx0cHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5kZWJvdW5jZXJcblx0XHRcdC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmtleXVwRGVib3VuY2VUaW1lKSlcblx0XHRcdC5zdWJzY3JpYmUoZSA9PiB0aGlzLmtleXVwRGVib3VuY2VkLmVtaXQoZSkpO1xuXHR9XG5cblx0cHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG5cdHB1YmxpYyBrZXl1cEV2ZW50KGV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHR0aGlzLmRlYm91bmNlci5uZXh0KGV2ZW50KTtcblx0fVxuXG5cbn1cbiJdfQ==