@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
41 lines • 5.39 kB
JavaScript
import { FormControl } from '@angular/forms';
import { debounceTime, filter, map } from 'rxjs/operators';
import { Component, Input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../search-service/search.service";
export class AbstractFulltextSearchComponent {
_searchService;
set disabled(value) {
if (value) {
this.fullTextFormControl.disable();
}
else {
this.fullTextFormControl.enable();
}
}
fullTextFormControl;
constructor(_searchService) {
this._searchService = _searchService;
this.fullTextFormControl = new FormControl();
this.fullTextFormControl.valueChanges.pipe(debounceTime(600), filter(newValue => typeof newValue === 'string'), map((newValue) => newValue.trim())).subscribe((fulltext) => {
if (fulltext.length === 0) {
this._searchService.clearFullTextFilter();
}
else {
this._searchService.setFullTextFilter(fulltext);
}
});
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractFulltextSearchComponent, deps: [{ token: i1.SearchService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractFulltextSearchComponent, selector: "ncc-abstract-fulltext-search", inputs: { disabled: "disabled" }, ngImport: i0, template: '', isInline: true });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractFulltextSearchComponent, decorators: [{
type: Component,
args: [{
selector: 'ncc-abstract-fulltext-search',
template: ''
}]
}], ctorParameters: () => [{ type: i1.SearchService }], propDecorators: { disabled: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZnVsbHRleHQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvc2VhcmNoL2Z1bGx0ZXh0LXNlYXJjaC1jb21wb25lbnQvYWJzdHJhY3QtZnVsbHRleHQtc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQU0vQyxNQUFNLE9BQWdCLCtCQUErQjtJQVlqQjtJQVRoQyxJQUFhLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBQ00sbUJBQW1CLENBQWM7SUFFeEMsWUFBZ0MsY0FBNkI7UUFBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFFN0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3RDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM3QyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNuRDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0ExQmlCLCtCQUErQjs0RkFBL0IsK0JBQStCLHNHQUZ2QyxFQUFFOzs0RkFFTSwrQkFBK0I7a0JBSnBELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7a0ZBSWdCLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2VhcmNoU2VydmljZX0gZnJvbSAnLi4vc2VhcmNoLXNlcnZpY2Uvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtZnVsbHRleHQtc2VhcmNoJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGdWxsdGV4dFNlYXJjaENvbXBvbmVudCB7XG5cblxuICAgIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZnVsbFRleHRGb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZ1bGxUZXh0Rm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIGZ1bGxUZXh0Rm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgICAgICB0aGlzLmZ1bGxUZXh0Rm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAgICAgICB0aGlzLmZ1bGxUZXh0Rm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNjAwKSxcbiAgICAgICAgICAgIGZpbHRlcihuZXdWYWx1ZSA9PiB0eXBlb2YgbmV3VmFsdWUgPT09ICdzdHJpbmcnKSxcbiAgICAgICAgICAgIG1hcCgobmV3VmFsdWU6IHN0cmluZykgPT4gbmV3VmFsdWUudHJpbSgpKVxuICAgICAgICApLnN1YnNjcmliZSgoZnVsbHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGZ1bGx0ZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFNlcnZpY2UuY2xlYXJGdWxsVGV4dEZpbHRlcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnNldEZ1bGxUZXh0RmlsdGVyKGZ1bGx0ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG59XG4iXX0=