import { LiveAnnouncer } from '@angular/cdk/a11y'; import { BooleanInput } from '@angular/cdk/coercion'; import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { RelationalOperator } from '@mtna/data-core-ts'; import { MtnaPopoverConfig } from '@mtna/core-angular'; import { Variable } from '@mtna/pojo-consumer-ts'; import { VariableSummary } from '@mtna/variable-service-core-ts'; import { BehaviorSubject, ReplaySubject, Subscription } from 'rxjs'; import { BaseFilter } from '../core/models/filter/base-filter.model'; import { MeasureOptionType } from '../measure-select/measure-option.model'; import { MeasureSelection } from '../measure-select/measure-selection.model'; import * as i0 from "@angular/core"; export interface RdsTabulationDimensionsForm { columns?: Array | null; filters?: Array> | null; rows: Array; weights?: Array | null; measures?: MeasureSelection[] | null; } export declare class RdsDimensionSelectionComponent implements OnDestroy, OnInit { private cdr; private fb; private liveAnnouncer; static ngAcceptInputType_supportedOperators: RelationalOperator[] | null | undefined; static ngAcceptInputType_tabulating: BooleanInput; /** Selected column dimensions */ get columns(): Array; set columns(columns: Array); private _columns; /** Popover config for column selection */ columnsConfig: MtnaPopoverConfig; /** * NgStyle config for the dialog content's filter component, defaults to `{ height: '300px' }` * @example * { 'maxHeight': '300px' } */ dialogFilterStyles: { [key: string]: string; }; /** Optional filter dialog min-width */ dialogMinWidth?: string; /** Optional filter */ get filters(): Array>; set filters(filters: Array>); private _filters; /** Popover config for filter select */ filterConfig: MtnaPopoverConfig; /** Maximum number of column dimensions */ maxColumns: number; /** Maximum number of row dimensions */ maxRows: number; /** Selected meausre */ get measures(): MeasureSelection[]; set measures(measures: MeasureSelection[]); private _measures; /** Popover config for measure select */ measureConfig: MtnaPopoverConfig; /** Optional array of measure variables to choose from */ get measureVariables(): Array | null | undefined; set measureVariables(variables: Array | null | undefined); private _measureVariables; /** Whether the user can select multiple filter codes */ multiFilterCodes: boolean; /** Whether the user can select multiple filter variables */ multiFilterVariables: boolean; /** Selected row dimensions */ get rows(): Array; set rows(rows: Array); private _rows; /** Popover config for row selecttion */ rowsConfig: MtnaPopoverConfig; /** The supported `RelationalOperator`s. i.e. what operaters does the current data product support. */ set supportedOperators(operators: RelationalOperator[] | undefined); get supportedOperators(): RelationalOperator[] | undefined; private _supportedOperators; /** Whether currently tabulating */ get tabulating(): boolean; set tabulating(tabulating: boolean); private _tabulating; /** List of variables available to select */ get variables(): Array; set variables(variables: Array); private _variables; /** Selected variable weights */ get weights(): Array | null | undefined; set weights(weights: Array | null | undefined); private _weights; /** Popover config for weight select */ weightsConfig: MtnaPopoverConfig; /** Optional array of weighted variables to choose from */ get weightedVariables(): Array | null | undefined; set weightedVariables(variables: Array | null | undefined); private _weightedVariables; /** The selected TabulationDimensions to be tabulated */ tabulate: EventEmitter>; disabledColumnOptions$: BehaviorSubject; disabledRowOptions$: BehaviorSubject; form: FormGroup | undefined; formValueChangeSub: Subscription; /** * Subject that emits the latest selected variables accross all dimension controls. * Used to prevent variables from being selected multiple times. */ selectedVariables$: ReplaySubject; _allMeasureTypes: ("PERCENT" | "COUNT" | "SUM" | "AVG" | "MIN" | "MAX")[]; _countAndPercentMeasureTypes: Array; /** Whether a form is empty or not. */ _isFormEmpty: boolean; /** Placeholders for chipsAriaLabel in row */ _selectedRowPlaceholder: string; _selectedRowsPlaceholder: string; /** Placeholders for selectPlaceholder in row */ _selectARowPlaceholder: string; _selectRowsPlaceholder: string; /** Placeholders for selectLabel in row */ _rowLabelPlaceholder: string; _rowsLabelPlaceholder: string; /** Placeholders for chipsAriaLabel in column */ _selectedColumnPlaceholder: string; _selectedColumnsPlaceholder: string; /** Placeholders for selectLabel in column */ _columnPlaceholder: string; _columnsPlaceholder: string; /** Placeholders for selectPlaceholder in column */ _selectAColumnPlaceholder: string; _selectColumnsPlaceholder: string; constructor(cdr: ChangeDetectorRef, fb: FormBuilder, liveAnnouncer: LiveAnnouncer); determineIfFormIsEmpty(): void; ngOnDestroy(): void; ngOnInit(): void; resetForm(): void; submitForm(): void; /** * Get all the selected variable IDs and put them in the selected array * to disable these from being selected multiple times. * exclude filter and weights */ private _emitSelectedVariables; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }