UNPKG

@adaptabletools/adaptable

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

112 lines (111 loc) 3.64 kB
import { AlertDefinition } from '../AdaptableState/AlertState'; import { CustomSort } from '../AdaptableState/CustomSortState'; import { FlashingCellDefinition } from '../AdaptableState/FlashingCellState'; import { FormatColumn } from '../AdaptableState/FormatColumnState'; import { PlusMinusNudge } from '../AdaptableState/PlusMinusState'; import { Shortcut } from '../AdaptableState/ShortcutState'; import { StyledColumn } from '../AdaptableState/StyledColumnState'; import { BaseSchedule } from '../AdaptableState/Common/Schedule'; import { Layout } from '../AdaptableState/LayoutState'; import { AdaptableModule } from '../AdaptableState/Common/Types'; import { AdaptableObjectTag } from '../AdaptableState/Common/AdaptableObject'; import { BaseContext } from '../../types'; /** * Options for configuring Layouts; these manage Column visibility, order, sorting, grouping, width etc. * */ export interface LayoutOptions { /** * Set of options for how Layouts are displayed in Settings Panel */ layoutViewOptions?: LayoutViewOptions; /** * Set of options for leveraging Object Tags to extend Layouts */ layoutTagOptions?: LayoutTagOptions; /** * Columns to display in Table that opens when viewing Pivot Cell contents */ pivotPreviewColumns?: string[] | ((context: PivotPreviewColumnsContext) => string[]); } /** * Options for managing Tags in Layouts (used to enhance Layouts) */ export interface LayoutTagOptions { /** * Automatically generate an AdaptableObjectTag for each Layout * * @defaultValue false */ autoGenerateTagsForLayouts?: boolean | ((context: AutoGenerateTagsForLayoutsContext) => AdaptableObjectTag[]); /** * Automatically assumes that any `LayoutAssociatedObject` is available in the current Layout if it has a tag with the Layouts name (or no tags at all) * * @defaultValue false */ autoCheckTagsForLayouts?: boolean; /** * Checks if the provided Adaptable Object is available in the given Layout * * @defaultValue undefined */ isObjectAvailableInLayout?: (layoutAvailableContext: LayoutAvailableContext) => boolean; } /** * Customize how Layouts are displayed in Settings Panel */ export interface LayoutViewOptions { /** * How many Column Names to display in inline Layout preview * * @defaultValue 10 */ maxColumnsToDisplay?: number; } /** * Context for `LayoutOptions.isObjectAvailableInLayout` functions */ export interface LayoutAvailableContext extends BaseContext { /** * Object being checked */ adaptableObject: LayoutAssociatedObject; /** * Current Adaptable Module */ module: AdaptableModule; /** * Current Layout */ layout: Layout; } /** * Types of Adaptable Objects that can be associated with a Layout */ export type LayoutAssociatedObject = AlertDefinition | CustomSort | FlashingCellDefinition | FormatColumn | PlusMinusNudge | StyledColumn | Shortcut | BaseSchedule; /** * Context for `LayoutOptions.autoGenerateTagsForLayouts` method */ export interface AutoGenerateTagsForLayoutsContext extends BaseContext { /** * Layouts currently in Adaptable State */ layouts: Layout[]; /** * Object Tags provided in User Interface Options */ objectTags: AdaptableObjectTag[]; } /** * Context uses for pivotPreviewColumns function in Layout Options */ export interface PivotPreviewColumnsContext extends BaseContext { /** * Current Layout */ layout: Layout; /** * Column being opened */ columnId: string; }