import { ChangeDetectorRef, OnInit } from '@angular/core'; import { MatDialogRef } from '@angular/material/dialog'; import { PageEvent } from '@angular/material/paginator'; import { BehaviorSubject } from 'rxjs'; import { MtnaErrorService } from '@mtna/lib-ui'; import { Code, Variable, VariableSummary } from '@mtna/pojo-consumer-ui'; import { RdsDateFilter } from '../core/models/filter/date-filter.model'; import { RdsNullParameter } from '../core/models/filter/null-filter.model'; import { RdsMetadataService } from '../core/services/rds-metadata.service'; import { RdsNumericFilter } from '../numeric-filter/numeric-filter.model'; import { RdsTextFilter } from '../text-filter/text-filter.model'; declare const _RdsFilterDialogComponentMixinBase: (new (...args: any[]) => { destroyed$: import("rxjs").Subject; ngOnDestroy(): void; }) & import("@angular/material/core/common-behaviors/constructor").Constructor<{}>; export interface RdsFilterDialogOutput { filters: Array; nullFilter: RdsNullParameter; } export declare class RdsFilterDialogData { variable: V; appliedFilters: Array; appliedNullFilter: RdsNullParameter; multiSelect: boolean; contentStyles: { [key: string]: string; }; largeChips: boolean; /** * @param variable variable to use as a filter * @param appliedFilters already applied filters, optional * @param appliedNullFilter already applied null filter, optional * @param multiSelect whether to allow multiple code selection, defaults to true * @param contentStyles custom styles for the dialog content's filter component * @param largeChips whether the chips that represent filters should use the large style variant, defaults to true */ constructor(variable: V, appliedFilters?: Array, appliedNullFilter?: RdsNullParameter, multiSelect?: boolean, contentStyles?: { [key: string]: string; }, largeChips?: boolean); } export declare class RdsFilterDialogComponent extends _RdsFilterDialogComponentMixinBase implements OnInit { private cdr; dialogRef: MatDialogRef; data: RdsFilterDialogData; private errorService; private metadataService; filterType: 'CODE' | 'DATE' | 'TEXT' | 'NUMERIC' | null; nullFilter: RdsNullParameter; disableApply$: BehaviorSubject; /** page index * page size */ codeOffset: number; /** page size for paginating/slicing codes */ codePageSize: number; /** Codes from search result */ codes: Array; /** Text for code search */ codeSearchText: string; /** Number of codes found for the latest code search */ foundCodes: number; /** if classification contains 20 or less codes */ hasFewCodes: boolean; /** toggles the progress bar */ loadingCodes: boolean; /** codes the user selected */ selectedCodes$: BehaviorSubject; dateFilters$: BehaviorSubject; numericFilters$: BehaviorSubject; textFilters$: BehaviorSubject; get appliedFilters(): Code[] | RdsDateFilter[] | RdsNumericFilter[] | RdsTextFilter[]; constructor(cdr: ChangeDetectorRef, dialogRef: MatDialogRef, data: RdsFilterDialogData, errorService: MtnaErrorService, metadataService: RdsMetadataService); determineApplyButtonDisableState(): void; handleAddCodeFilter(code: Code): void; handleAddDateFilter(dateFilter: RdsDateFilter): void; handleAddNumericFilter(numericFilter: RdsNumericFilter): void; handleAddTextFilter(textFilter: RdsTextFilter): void; /** Close the dialog with the selected filters */ handleApplyFilter(): void; handleClearCodeFilters(): void; /** * Display the next/previous codes when user paginates * @param page PageEvent */ handleCodePageChange(page: PageEvent): void; handleCodeSearch(searchText: string): void; handleRemoveCodeFilter(code: Code): void; handleRemoveDateFilter(dateFilter: RdsDateFilter): void; handleRemoveNumericFilter(numericFilter: RdsNumericFilter): void; handleRemoveTextFilter(textFilter: RdsTextFilter): void; ngOnInit(): void; /** Call the code search api */ private _searchCodes; private _handleCodeSearchResponse; private _handleCodeSearchError; } export {};