import { OnInit, OnChanges, OnDestroy, SimpleChange, EventEmitter } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { Router, ActivatedRoute } from '@angular/router'; /** * `Filterable` implements a concern to manage filters. */ export declare abstract class Filterable implements OnInit, OnChanges, OnDestroy { protected refreshPath: boolean; protected route: ActivatedRoute; protected router: Router; /** * Disable or enable all form controls. */ disabled: boolean; /** * An expression that is called when the form has been changed. */ filter: EventEmitter; /** * From group for filter object. */ form: FormGroup | null; /** * Debounce time to trigger filter event. */ protected debounceTime: number; /** * Last filters emitted. */ protected lastFilters: {}; /** * Check if filters has been save */ private saveFilters; /** * Route params subscription. */ private queryParamsSub; /** * Creates a new `Paginable` instance. * @param refreshPath Check if filters has been save * @param route ActivatedRoute * @param router Service to navigate */ constructor(refreshPath: boolean, route: ActivatedRoute, router: Router); /** * Implements on init method. */ ngOnInit(): void; /** * Implements on destroy method * * @author Lautaro Klein * @memberof ExternalUserComponent */ ngOnDestroy(): void; /** * Implements on changes method for input values. */ ngOnChanges(changes: { [propKey: string]: SimpleChange; }): void; /** * Create form group object */ protected abstract buildForm(): FormGroup; /** * Prepare filter to emit filter event. * @param data Form data */ protected abstract prepareFilters(data: any): T; /** * Handles disabled input changes */ protected abstract onChangeDisabled(): void; /** * Handles form data changes. * @param data New data */ protected onValueChanged(data: any): void; /** * Handles generic form control data changes. * @param data New data */ protected onGenericValueChanged(formControlName: string, value: any): void; /** * Bind value changes event. */ protected bindForm(): void; /** * Make filters. * @param data Filters */ protected onFilter(data: any): void; /** * Make partial filters. * @param data Partial filters */ protected onPartialFilter(data: any): void; /** * Prepare query prams * @param queryParams Current query params */ protected prepareQueryParams(queryParams: any): T; /** * Load query params filter * @param queryParamsFilters Current filters */ protected onFiltersQueryParams(_queryParamsFilters: any): void; /** * Init form */ protected initForm(): void; }