import type { AttributeType, DataElement, RelationType } from "../data/elements"; import type { CheckboxSelection, FilterOperationType, Sort, TableRepresentation } from "../enums"; import type { ActionDefinition } from "../structural/actions"; import type { ButtonGroup } from "./buttons"; import type { VisualElement } from "./layout"; /** * Table column definition. * Maps to: ui:Column * * EMF Defaults: * - sort: NONE * - sortPrecedence: 0 * - formatValue: true */ export interface Column extends VisualElement { "@type": "Column"; /** Resolved reference to AttributeType */ attributeType?: AttributeType; format: string; /** Sort order for this column. @default NONE */ sort?: Sort; /** Sort precedence (for multi-column sorting). @default 0 */ sortPrecedence?: number; width?: string; /** Whether to format the column value. @default true */ formatValue?: boolean; /** Resolved reference to RelationType this column represents */ representsRelation?: RelationType; } /** * Table/Link filter definition. * Maps to: ui:Filter * * EMF Defaults: * - alwaysShown: false * - range: false * - multiValue: false */ export interface Filter extends VisualElement { "@type": "Filter"; /** Resolved reference to AttributeType */ attributeType?: AttributeType; /** Whether filter is always visible. @default false */ alwaysShown?: boolean; /** Whether filter is a range filter. @default false */ range?: boolean; /** Whether filter accepts multiple values. @default false */ multiValue?: boolean; defaultOperation?: FilterOperationType; } /** * Data table element. * Maps to: ui:Table * * EMF Defaults: * - crudOperationsDisplayed: 2 * - isSmallTable: false * - rowsPerPage: 10 * - isEager: false * - allowSelectMultiple: false * - transferOperationsDisplayed: 0 * - showTotalCount: false * - checkboxSelection: ENABLED * - representationComponent: TABLE */ export interface Table extends VisualElement { "@type": "Table"; columns: Column[]; filters: Filter[]; tableActionButtonGroup?: ButtonGroup; rowActionButtonGroup?: ButtonGroup; /** Resolved reference to DataElement (RelationType) */ dataElement: DataElement; relationName?: string; /** Whether table loads data eagerly in-memory. @default false */ isEager?: boolean; /** Whether multiple row selection is allowed. @default false */ allowSelectMultiple?: boolean; isInlineEditable?: boolean; /** Number of CRUD operations to display. @default 2 */ crudOperationsDisplayed?: number; /** Number of transfer operations to display. @default 0 */ transferOperationsDisplayed?: number; selectorRowsPerPage?: number; /** Number of rows per page. @default 10 */ rowsPerPage?: number; /** Whether to use compact table layout. @default false */ isSmallTable?: boolean; /** Whether to show total row count. @default false */ showTotalCount?: boolean; /** Checkbox selection mode. @default ENABLED */ checkboxSelection?: CheckboxSelection; /** Visual representation type. @default TABLE */ representationComponent?: TableRepresentation; actionColumnWidth?: number; /** Whether the filter panel is collapsible. @default true */ collapsibleFilters?: boolean; /** Maximum grid columns for the first (always-visible) filter row. @default 12 */ collapsibleFiltersMaxCols?: number; /** Resolved references to additional mask AttributeTypes */ additionalMaskAttributes?: AttributeType[]; /** Resolved references to additional mask RelationTypes */ additionalMaskRelations?: RelationType[]; autocompleteRangeActionDefinition?: ActionDefinition; autocompleteAddActionDefinition?: ActionDefinition; } //# sourceMappingURL=table.d.ts.map