@gravity-ui/uikit
Version:
Gravity UI base styling and components
44 lines (43 loc) • 1.66 kB
TypeScript
import * as React from 'react';
import type { PopupPlacement } from "../../../../Popup/index.js";
import type { TreeSelectProps } from "../../../../TreeSelect/types.js";
import type { TableColumnConfig } from "../../../Table.js";
import type { TableSetting } from "../withTableSettings.js";
import "./TableColumnSetup.css";
interface SwitcherProps {
onKeyDown: React.KeyboardEventHandler<HTMLElement>;
onClick: React.MouseEventHandler<HTMLElement>;
}
export type TableColumnSetupItem = TableSetting & {
title: React.ReactNode;
isRequired?: boolean;
sticky?: TableColumnConfig<unknown>['sticky'];
};
export type RenderControls = (params: {
DefaultApplyButton: React.ComponentType;
/**
* Is used to apply new settings and close the popup
*/
onApply: () => void;
}) => React.ReactNode;
export interface TableColumnSetupProps {
renderSwitcher?: (props: SwitcherProps) => React.JSX.Element;
items: TableColumnSetupItem[];
sortable?: boolean;
onUpdate: (newSettings: TableSetting[]) => void;
popupWidth?: TreeSelectProps<unknown>['popupWidth'];
popupPlacement?: PopupPlacement;
/**
* @deprecated
*/
renderControls?: RenderControls;
className?: string;
defaultItems?: TableColumnSetupItem[];
showResetButton?: boolean | ((currentItems: TableColumnSetupItem[]) => boolean);
filterable?: boolean;
filterPlaceholder?: string;
filterEmptyMessage?: string;
filterSettings?: (value: string, item: TableColumnSetupItem) => boolean;
}
export declare const TableColumnSetup: (props: TableColumnSetupProps) => import("react/jsx-runtime").JSX.Element;
export {};