import { ChangeDetectorRef, EventEmitter } from '@angular/core'; import { MatCheckboxChange } from '@angular/material/checkbox'; import { DataSet, Record as DataCoreRecord } from '@mtna/data-core-ui'; import { UpdateQueryParameters } from '@mtna/data-query-ui'; import { trackByCoreResource, Variable } from '@mtna/pojo-consumer-ui'; import { RdsResizeableTableComponent } from '../core/components/resizeable-table.component'; import { RdsCodeDisplayType } from '../core/models/code-display-type.model'; export declare const RDS_SELECT_TABLE_MIN_COL_WIDTH = 50; export declare const rdsEditableColumnFieldTypeIDs: readonly ["CHECK"]; export declare type RdsEditableColumnFieldType = typeof rdsEditableColumnFieldTypeIDs[number]; export declare class RdsSelectTableEditEvent { recordLayoutUri: string; update: UpdateQueryParameters; constructor(recordLayoutUri: string, update: UpdateQueryParameters); } /** * Custom mat-table used to display the results of a RDS select query * * @author Will Davis */ export declare class RdsSelectTableComponent extends RdsResizeableTableComponent { /** Display configuration for codes in the table. Defaults to ‘NAME’ */ codeDisplayType: RdsCodeDisplayType; /** The columns that have been used as a filter */ set columnsWithFilters(variables: Array); /** The result of the RDS select query to display in the table */ get dataSet(): DataSet; set dataSet(ds: DataSet); private _dataSet; /** * Whether ghost elements should be rendered to show a loading state. * A fake/empty data set should be provided so no values show in the table. */ ghost: boolean; /** Indicates which column is inspected */ inspectedVariable: Variable; /** Whether to show the columns that are used as primary keys, defaults to true */ get showPrimaryKeyColumns(): boolean; set showPrimaryKeyColumns(value: boolean); private _showPrimaryKeyColumns; /** * Whether the toggled columns represent the selected, or unselected. * For instance, if the user selects 100+ columns, and unselects 5, * the 'toggled' columns will be the 5 unselected & 'toggledAreSelected' will be false; * i.e. * user selects 95 out of 100 => toggledAreSelected: false, toggled.length: 5;; * user selects 5 out of 100 => toggledAreSelected: true, toggled.length: 5; */ toggledAreSelected: boolean; /** The columns that are toggled for including/excluding in packaging */ set toggledColumns(variables: Array); /** Emitted when record has been edited */ edit: EventEmitter; /** Emitted when a column is inspectected/clicked */ inspectVariable: EventEmitter; get areColumnsSet(): boolean; get minColWidth(): number; /** Map of variable uris applied as filters, used for decorators */ _appliedFilters: { [uri: string]: boolean; }; /** Map of primary key variable uris, used for decorators */ _keyColumns: { [uri: string]: boolean; }; /** Last locked variable */ _lastLockedVariable: string; /** Map of locked variable uris, used for decorators */ _lockedColumns: { [uri: string]: boolean; }; /** The non-editable variables */ _readOnlyVariables: Array; /** Map of toggled variable uris to indicate which have been included/excluded for packaging, used for decorators */ _toggledColumns: { [uri: string]: boolean; }; /** TrackBy function for the column for loop */ _trackByCr: typeof trackByCoreResource; /** Variables split up into table columns by type */ _editableColumns: Record; constructor(cdr: ChangeDetectorRef); handleCheckChange(event: MatCheckboxChange, record: DataCoreRecord, variable: Variable): void; handleInspectVariable(variable: Variable): void; protected getColumnWidth(id: string): number; protected getDefaultEditableColumns(): Record; /** * Initialize the displayed columns for the table. * Take into account whether priamry keys should be hidden. */ protected initializeDisplayedColumns(): void; protected initColumnWidths(dataset: DataSet): void; }