---
id: "packages/active-grid/api/config"
title: "Config"
description: "ActiveGridMenuConfig, ActiveGridUIConfig, GridAutoSizeConfig, GridBehaviorConfig and 11 more: generated from the source of active-grid."
url: "/packages/active-grid/api/config"
locale: "en"
revision: "g0mvjxwj5c-88bdbe1c:config"
---

# Config

Exported by `@workspace/active-grid`. Generated from the package source; part of [the index of every export](/packages/active-grid/api).

## Types

**ActiveGridMenuConfig**

```ts
interface ActiveGridMenuConfig {
  widthClass: string;
  itemClass?: string;
}
```

**ActiveGridUIConfig**

```ts
interface ActiveGridUIConfig {
  contextMenu: ActiveGridMenuConfig;
  headerMenu: ActiveGridMenuConfig;
  linkComponent?: GridLinkComponent;
}
```

**GridAutoSizeConfig**

```ts
interface GridAutoSizeConfig {
  colPadding: number;
  iconWidth: number;
  menuWidth: number;
  gap: number;
  lockIconWidth: number;
  headerInnerGap: number;
  menuAreaGap: number;
  safetyBuffer: number;
  sampleSize: number;
}
```

The measurement settings of automatic column width determination. Passed to
the measurement layer AS A WHOLE (`utils/auto-size/dom-measure-utils.ts`);
the fields only have meaning together, and the type therefore demands them
complete.

Three fields take no part in the calculation: `iconWidth`, `gap` and
`lockIconWidth`. The measurement reserves no space for elements that are
not rendered, and the slot width is absolutely positioned and does not
influence the content flow. They are therefore NOT a knob that changes
anything; the grounds are at `measureHeaderWidth`. Removing them is a
breaking type change and thereby a decision for a major.

**GridBehaviorConfig**

```ts
interface GridBehaviorConfig {
  debounceMs: number;
  virtualizationThreshold: number;
  overscan: number;
  maxPinnedRows: number;
  enableFuzzyFilter: boolean;
}
```

**GridColumnConfig**

```ts
interface GridColumnConfig {
  minWidth: number;
  maxWidth: number;
  autoSizeConfig: GridAutoSizeConfig;
}
```

**GridConfig**

```ts
interface GridConfig {
  layout: GridLayoutConfig;
  pagination: GridPaginationDefaults;
  behavior: GridBehaviorConfig;
  columns: GridColumnConfig;
  filtering: GridFilteringConfig;
  storage: GridStorageConfig;
  export: GridExportConfig;
  ui: ActiveGridUIConfig;
  features: GridFeaturesConfig;
}
```

**GridExportConfig**

```ts
interface GridExportConfig {
  defaultFilename: string;
  csvSeparator: CsvDelimiter;
  fonts?: GridExportFonts;
}
```

**GridFeaturesConfig**

```ts
interface GridFeaturesConfig {
  enableColumnReordering: boolean;
}
```

**GridFilteringConfig**

```ts
interface GridFilteringConfig {
  operatorPresets: Record<string, FilterOperator[]>;
}
```

**GridLayoutConfig**

```ts
interface GridLayoutConfig {
  rowHeight: number;
  headerHeight: number;
  groupHeaderHeight: number;
  filterBarHeight: number;
}
```

**GridLinkComponent**

```ts
type GridLinkComponent = React.ComponentType<GridLinkProps>;
```

A host's own link, for the grid's internal links (`LinkCell`): a router
link such as `next/link`, so navigation stays client-side. Without one the
grid renders a plain `<a href>` and the browser navigates.

**GridLinkProps**

```ts
interface GridLinkProps {
  href: string;
  className?: string;
  children: React.ReactNode;
}
```

What a host link component receives from {@link GridLinkComponent}'s
caller: the destination, the grid's class for the link and its text. The
grid passes nothing else.

**GridPaginationDefaults**

```ts
interface GridPaginationDefaults {
  pageSize: number;
  pageSizeOptions: number[];
}
```

**GridStorageConfig**

```ts
interface GridStorageConfig {
  keyPrefix: string;
  version: number;
}
```

**PartialGridConfig**

```ts
type PartialGridConfig = {
  [K in keyof GridConfig]?: Partial<GridConfig[K]>;
};
```
