import { ChangeDetectorRef, OnInit } from '@angular/core'; import { MatDialogRef } from '@angular/material/dialog'; import { PageEvent } from '@angular/material/paginator'; import { MatSlideToggleChange } from '@angular/material/slide-toggle'; import { SortDirection } from '@angular/material/sort'; import { RelationalOperator } from '@mtna/data-core-ts'; import { CanDestroyNotify, CanDestroyNotifyCtor } from '@mtna/core-angular'; import { MtnaErrorService } from '@mtna/core-angular'; import { Code, Variable } from '@mtna/pojo-consumer-ts'; import { VariableSummary } from '@mtna/variable-service-core-ts'; import { RdsClassificationService } from '@rds/shared-api'; import { BehaviorSubject } from 'rxjs'; import { RdsDateFilter } from '../core/models/filter/date-filter.model'; import { RdsNullParameter } from '../core/models/filter/null-filter.model'; import { RdsNumericFilter } from '../numeric-filter/numeric-filter.model'; import { RdsTextFilter } from '../text-filter/text-filter.model'; import * as i0 from "@angular/core"; declare const _RdsFilterDialogComponentMixinBase: CanDestroyNotifyCtor; export interface RdsFilterDialogOutput { filters: Array; nullFilter: RdsNullParameter; excludeSelectedCodes: boolean; } export declare class RdsFilterDialogData { variable: V; appliedFilters: Array; appliedNullFilter: RdsNullParameter; multiSelect: boolean; contentStyles: { [key: string]: string; }; largeChips: boolean; supportedFilters: RelationalOperator[] | undefined; excludeSelectedCodes: 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 * @param supportedFilters the filter operators that the current data product supports * @param excludeSelectedCodes Whether to exclude the codes selected (for Code Filter only) */ constructor(variable: V, appliedFilters: Array, appliedNullFilter: RdsNullParameter, multiSelect: boolean, contentStyles: { [key: string]: string; }, largeChips: boolean, supportedFilters: RelationalOperator[] | undefined, excludeSelectedCodes?: boolean); } /** Subject to maintain current sort direction, with a quick Material Sort => Mtna Sort conversion */ declare class SortDirectionSubject extends BehaviorSubject { get valueMTNA(): 'ASC' | 'DESC' | undefined; } export declare class RdsFilterDialogComponent extends _RdsFilterDialogComponentMixinBase implements OnInit, CanDestroyNotify { private cdr; private classificationService; dialogRef: MatDialogRef; data: RdsFilterDialogData; private errorService; 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. Defaults to true, in order to hide the searchbox until it's needed. */ hasFewCodes: boolean; /** toggles the progress bar */ loadingCodes: boolean; /** codes the user selected */ excludeSelected$: BehaviorSubject; selectedCodes$: BehaviorSubject; sortDirection$: SortDirectionSubject; dateFilters$: BehaviorSubject; numericFilters$: BehaviorSubject; textFilters$: BehaviorSubject; get appliedFilters(): Code[] | RdsDateFilter[] | RdsNumericFilter[] | RdsTextFilter[]; constructor(cdr: ChangeDetectorRef, classificationService: RdsClassificationService, dialogRef: MatDialogRef, data: RdsFilterDialogData, errorService: MtnaErrorService); 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; handleCodeSort(direction: SortDirection): void; handleExcludeSelected(change: MatSlideToggleChange): 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; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};