/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { ExpandableColumnMenuItem } from "./column-menu-expandable-item.interface"; /** * Represents the settings for the column menu in the Grid component. * * Use this interface to configure the column menu options. * * @example * ```html * * * ``` */ export interface ColumnMenuSettings { /** * Specifies the interface of the column menu content. */ view?: 'list' | 'tabbed'; /** * Specifies if the columns can be sorted in the column menu. * If [sorting]({% slug api_grid_gridcomponent %}#toc-sortable) is enabled, defaults to `true`. */ sort?: boolean; /** * Specifies if the columns can be filtered in the column menu. * If [filtering]({% slug api_grid_gridcomponent %}#toc-filterable) is enabled, defaults to `true`. */ filter?: boolean | ExpandableColumnMenuItem; /** * Specifies if the item for column selection appears in the column menu. */ columnChooser?: boolean | ExpandableColumnMenuItem; /** * Specifies if the columns can be locked and unlocked from the column menu. * This option follows the prerequisites and limitations of the [locked columns]({% slug locked_columns_grid %}). */ lock?: boolean; /** * Specifies if the columns can be stuck and unstuck from the column menu. * This option follows the prerequisites and limitations of the [sticky columns]({% slug sticky_columns_grid %}). */ stick?: boolean; /** * Specifies whether the stick and lock items appear in an expandable sub-menu or as standalone root-level menu items. */ setColumnPosition?: boolean | ExpandableColumnMenuItem; /** * Applies the minimum possible width for the specified column, so that the whole text fits without wrapping. */ autoSizeColumn?: boolean; /** * Adjusts the width of all columns to fit their entire content, including headers, without wrapping. */ autoSizeAllColumns?: boolean; }