import "../../CommonImports"; import "../../Core/core.css"; import "./Table.css"; import { ObservableArray, ObservableValue } from '../../Core/Observable'; import { ExpandableButton } from '../../Button'; import { IMenuProps } from '../../Menu'; import * as React from "react"; import { IMeasurementStyle, ITableColumn, TableColumnLayout } from "./Table.Props"; /** * Standard widths for the more column */ export declare enum ColumnMoreWidths { compact = 2, default = 2.625 } /** * The ColumnMore class is used as a custom column within a Table. * * It renders a fixed width column with a button that is visible on focus and * hover that will show a contextual menu for the given item. The caller * should create a new instance of this for each table. The header for this * column is empty. * * When creating the column you must supply delegate that is used to get the * menuProps when the menu is opened. */ export declare class ColumnMore implements ITableColumn { private menuAvailable?; private menuProvider; private onActivate?; ariaLabel: string; columnLayout: TableColumnLayout; id: string; width: ObservableValue; widthStyle: IMeasurementStyle; private refs?; /** * Creates an instance of ColumnMore with the appropriate delegates. * * @param menuProvider Method that returns the menu props. This is called * with the item from the row the menu was activated on. * @param menuAvailable Optional method that is called when the row * is rendered. The MoreButton will be shown if no method is supplied * or if the method is supplied and it returns true. */ constructor(menuProvider: (listItem: T, rowIndex: number, buttonRef: React.RefObject) => IMenuProps, menuAvailable?: (listItem: T) => boolean, onActivate?: (rowIndex: number, columnIndex: number, event?: React.MouseEvent | React.KeyboardEvent) => void, width?: number, refs?: ObservableArray>); renderCell: (rowIndex: number, columnIndex: number, tableColumn: ITableColumn, listItem: T) => JSX.Element; renderHeaderCell: (columnIndex: number, tableColumn: ITableColumn) => JSX.Element; private onClick; private onKeyDown; }