# Free Text Column Technical Reference

Canonical page: https://www.adaptabletools.com/docs/technical-reference-freetext-column

## Free Text Column State

| Property | Type | Description |
| --- | --- | --- |
| [FreeTextColumns](https://www.adaptabletools.com/docs/reference/freetextcolumnstate.md#freetextcolumns) | [`FreeTextColumn`](https://www.adaptabletools.com/docs/reference/freetextcolumn.md)`[]` | Free Text Columns to add. `ColumnId` is the id of the column AdapTable creates. |

### Free Text Column

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [ColumnId](https://www.adaptabletools.com/docs/reference/freetextcolumn.md#columnid) | `string` | Id of the column AdapTable creates. It is not the id of a column already in the data source. |   |
| [DefaultValue](https://www.adaptabletools.com/docs/reference/freetextcolumn.md#defaultvalue) | `any` | Value shown for a data row that has no `FreeTextStoredValues` entry for its primary key. |   |
| [FreeTextColumnSettings](https://www.adaptabletools.com/docs/reference/freetextcolumn.md#freetextcolumnsettings) | [`FreeTextColumnSettings`](https://www.adaptabletools.com/docs/reference/freetextcolumnsettings.md) | Additional optional properties for Column (e.g. filterable, resizable) |   |
| [FreeTextStoredValues](https://www.adaptabletools.com/docs/reference/freetextcolumn.md#freetextstoredvalues) | [`FreeTextStoredValue`](https://www.adaptabletools.com/docs/reference/freetextstoredvalue.md)`[]` | Values stored for this column, keyed by the row primary key. A stored value is shown instead of `DefaultValue`. |   |
| [FriendlyName](https://www.adaptabletools.com/docs/reference/freetextcolumn.md#friendlyname) | `string` | Friendly Name to use to refer to Column; if unset `ColumnId` is used |   |
| [TextEditor](https://www.adaptabletools.com/docs/reference/freetextcolumn.md#texteditor) | `'Inline' \| 'Large'` | Editor for a string Free Text Column. `'Inline'` edits in the cell. `'Large'` opens AG Grid&#39;s large text editor. | &#39;Inline&#39; |
| [IsReadOnly](https://www.adaptabletools.com/docs/reference/freetextcolumn.md#isreadonly) | `boolean` | Sets Entity to ReadOnly (overwriting a Strategy Entitlement of &#39;Full&#39;) |   |

### Free Text Stored Value 

| Property | Type | Description |
| --- | --- | --- |
| [FreeText](https://www.adaptabletools.com/docs/reference/freetextstoredvalue.md#freetext) | `any` | Value to store in the cell |
| [PrimaryKey](https://www.adaptabletools.com/docs/reference/freetextstoredvalue.md#primarykey) | `any` | Primary Key Column value for the row |

Free Text Stored Values will typically be added by users at run-time, rather than set at design-time

### Free Text Column Settings

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [Aggregatable](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#aggregatable) | `boolean` | Whether Column can be used in an aggregation when grouping | false |
| [CellDataType](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#celldatatype) | `string` | Optional AG Grid `cellDataType` when it differs from `DataType`<br/>(e.g. app-registered `currency` / `percentage` from `dataTypeDefinitions`).<br/>When unset, the ColDef uses `DataType`. |   |
| [ColumnTypes](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#columntypes) | `string[]` | Custom column types added to AG Grid Column Types when object is created |   |
| [DataType](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#datatype) | [`AdaptableColumnDataType`](https://www.adaptabletools.com/docs/reference/adaptablecolumndatatype.md) | Expression&#39;s / column value DataType used by AdapTable (AQL, filters, etc.).<br/> Only mandatory property. |   |
| [Filterable](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#filterable) | `boolean` | Whether Column is filterable | false |
| [Groupable](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#groupable) | `boolean` | Whether Column can be grouped | false |
| [HeaderToolTip](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#headertooltip) | `string` | Tooltip to show in the Column Header (not cells) |   |
| [Pivotable](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#pivotable) | `boolean` | Whether Column can be used when grid is in pivot mode | false |
| [Resizable](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#resizable) | `boolean` | Whether Column can be resized (by dragging column header edges) | false |
| [Sortable](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#sortable) | `boolean` | Whether Column is sortable | false |
| [SuppressMenu](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#suppressmenu) | `boolean` | Whether if no menu should be shown for this Column header. | false |
| [SuppressMovable](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#suppressmovable) | `boolean` | Whether if this Column should be movable via dragging | false |
| [Width](https://www.adaptabletools.com/docs/reference/specialcolumnsettings.md#width) | `number` | Preferred (pixel) Column Width; if unset, calculated dynamically by AG Grid |   |

`DataType` is an [`AdaptableColumnDataType`](https://www.adaptabletools.com/docs/reference/adaptablecolumndatatype.md):

[See API: adaptablecolumndatatype](https://www.adaptabletools.com/docs/reference/adaptablecolumndatatype.md)

---------

## Free Text Column API

| Method | Returns | Description |
| --- | --- | --- |
| [addFreeTextColumn(freeTextColumn)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#addfreetextcolumn) | [`FreeTextColumn`](https://www.adaptabletools.com/docs/reference/freetextcolumn.md) | Adds new FreeTextColumn to Adaptable State |
| [deleteFreeTextColumn(columnId)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#deletefreetextcolumn) | `void` | Deletes FreeTextColumn with given ColumnId from Adaptable State |
| [editFreeTextColumn(freeTextColumn)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#editfreetextcolumn) | [`FreeTextColumn`](https://www.adaptabletools.com/docs/reference/freetextcolumn.md) | Edits existing FreeTextColumn in Adaptable State |
| [getFreeTextColumnById(id)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#getfreetextcolumnbyid) | [`FreeTextColumn`](https://www.adaptabletools.com/docs/reference/freetextcolumn.md)` \| undefined` | Retrieves FreeTextColumn by the technical ID (from `FreeTextColumnState`) |
| [getFreeTextColumnForColumnId(columnId)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#getfreetextcolumnforcolumnid) | [`FreeTextColumn`](https://www.adaptabletools.com/docs/reference/freetextcolumn.md)` \| undefined` | Gets FreeText Column, if any, for given ColumnId |
| [getFreeTextColumns()](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#getfreetextcolumns) | [`FreeTextColumn`](https://www.adaptabletools.com/docs/reference/freetextcolumn.md)`[]` | Gets all FreeTextColumns in Adaptable State |
| [getFreeTextColumnState()](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#getfreetextcolumnstate) | [`FreeTextColumnState`](https://www.adaptabletools.com/docs/reference/freetextcolumnstate.md) | Retrieves FreeTextColumn section of Adaptable State |
| [getFreeTextColumnValueForRowNode(freeTextColumn, rowNode)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#getfreetextcolumnvalueforrownode) | `any` | Retrieves a Free Text Column value for a given row node |
| [openFreeTextColumnSettingsPanel()](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#openfreetextcolumnsettingspanel) | `void` | Opens Settings Panel with Free Text Column section selected and visible |
| [setStoredValue(columnId, storedValue)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#setstoredvalue) | [`FreeTextColumn`](https://www.adaptabletools.com/docs/reference/freetextcolumn.md) | Sets FreeTextStoredValue for the FreeTextColumn with the given ColumnId (replaces existing one if exists) |
| [setStoredValues(columnId, storedValues, replaceAction)](https://www.adaptabletools.com/docs/reference/freetextcolumnapi.md#setstoredvalues) | `void` | Sets Stored Values to the FreeTextColumn with the given ColumnId |
