---
schema_version: "1"
id: 197988a2b77a4dc7e9fb3120eb00b7890101f1cb84aac5de8eb813cbac1db3fe
title: Datatable Lightning Web Component ReadMe Winter '20 (Managed Package)
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/os_datatable_lightning_web_component_readme_winter20.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.os_datatable_lightning_web_component_readme_winter20.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: c116338eb743fd1a70946ba3dcb71ecbc2636bea670e1194251f23995e5c3b15
description: For the managed package runtime, this page contains the DataTable LWC ReadMe as of the Vlocity Insurance and Health Winter '20 release.
products:
  - Omnistudio
release: "264"
---
# Datatable Lightning Web Component ReadMe Winter '20 (Managed Package)

For the managed package runtime, this page contains the DataTable LWC ReadMe as of the Vlocity Insurance and Health Winter '20 release.

![Managed Package app icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio_for_managed_packages-264-0-0-production-enus/aa2554ec-624a-4ee6-8da4-6435670e6e62/resources-global/_corporate/images/managedpackageicon.png) This information is for Omnistudio for Managed Packages. For Omnistudio on standard runtime, see [Omnistudio Help](https://help.salesforce.com/s/articleView?id=xcloud.os_omnistudio_standard.htm&language=en_US).

For the latest ReadMe, see [DataTable Lightning Web Component ReadMe (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_datatable_lightning_web_component_readme.htm&release=264.0.0&type=5 "For the managed package runtime, this page contains the DataTable LWC ReadMe as of the Summer '21 release.").

The _DataTable Lightning Web Component_ creates a tabular structure of the data provided. It supports grouping, search, pagination and sorting capabilities.

## Available c-data-table Attributes

IMPORTANT: The table reflects the order by which attributes must be set for _c-data-table_.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col>
          <col>
          <col>
          <col>
          <col>
          <col>
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e82">
              <p style="margin-bottom:0;">Attribute</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e88">
              <p style="margin-bottom:0;">Value</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e94">
              <p style="margin-bottom:0;">Type</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e100">
              <p style="margin-bottom:0;">Required</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e106">
              <p style="margin-bottom:0;">Description</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e113">&nbsp;</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">extraclass</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">&nbsp;</td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Adds a class to the table element. To add multiple classes, use a space to separate each class, such as 'classone classtwo'.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">issearchavailable</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">To make table searchable, set to true. Displays the search input field and filter dropdown.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">issortavailable</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">To make table sortable, set to true. This feature is not available on phones and smaller screens.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">theme</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">slds, nds (Default: slds)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Specifies which theme to use.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">icon-url</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">url</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Overrides the default URL of the svg resource. Used with Newport Design System (NDS) theme only.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">group-by</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">JSON</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">object</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">To group table based on a record field, set this attribute. To make field name the group header, set the field name as the value for this attribute. To add a group description with the group header, pass an object as a value for this attribute (see Available <em>groupBy</em> Attributes).</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">pagesize</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">&nbsp;</td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">number</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">If set, enables pagination.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">row-level-edit</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">To enable row-level editing, set to true. The <em>columns</em> JSON must have editable fields. See Available <em>columns</em> Attributes.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">user-selectable-column</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">true, false (Default: true)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Enables users to choose which columns are visible. If set to true, in the <em>columns</em> JSON, only those fields with <em>userSelectable</em> set to true will be visible. See Available <em>columns</em> Attributes.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">columns</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">JSON</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">array</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">
              <p style="margin-bottom:0;">yes</p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Contains heading names and specifies settings for each column. See Available <em>columns</em> Attributes.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">records</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">JSON</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">array</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">
              <p style="margin-bottom:0;">yes</p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Contains the data to populate the table.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">cell-level-edit</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">To enable cell-level editing, set to true. To make specific cells editable, see Available <em>columns</em> Attributes.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">group-order</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">asc, dsc</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Orders group in ascending or descending order.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">hide-table-header</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">To hide table header, set to true.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">pagelimit</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">(Default: 3)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">number</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Specifies how many page navigation links to add to pagination. The <em>pagesize</em> must be set.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">draggable</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">(Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Specifies whether rows should be draggable or not. whenever a drag happens and order is updated then onupdate event is fired. Inside event handler you can get the updated data inside event.detail.result.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e82 ">
              <p style="margin-bottom:0;">row-delete</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e88 ">
              <p style="margin-bottom:0;">(Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e94 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e100 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e106 ">
              <p style="margin-bottom:0;">Specifies whether each row includes a delete option or not. NOTE: if once deleted it gets removed from the table altogether. Whenever we delete ondelete event is fired. Inside event handler you can get the deleted data inside event.detail.result.</p>
            </td>

            <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e113 ">&nbsp;</td>

          </tr>
        </tbody>
      </table>

## Example c-data-table Component

```
<c-data-table extraclass="slds-table_bordered" issearchavailable="true" issortavailable="true" theme="{theme}" icon-url="{iconUrl}" group-by="company" pagesize="4" onupdate="{tableDataUpdated}" row-level-edit="true" user-selectable-column="true" columns="{columns}" records="{tableData}"
>
</c-data-table>
```

## Example data JSON

```
[{ "email": "jsolitas@motorsrus.com", "company": "Motors R Us", "age": "44", "balance": "$11,500", "address": "846 Livonia Avenue, Siglerville, Maryland, 5503", "isActive": true }, { "email": "robasanjo@treeline.org", "company": "TreeLine Group", "age": "32", "balance": "$9,678", "address": "902 Myrtle Avenue, Rockhill, Delaware, 3863", "isActive": true }, { "email": "n-daily@dailys.com", "company": "Daily Corp", "age": "57", "balance": "$22,888", "address": "408 Aster Court, Riceville, Indiana, 9646", "isActive": false }, { "email": "g-gomez@dailys.com", "company": "Daily Corp", "age": "44", "balance": "$6,983", "address": "856 Benson Avenue, Ballico, North Carolina, 4930", "isActive": true }
];
```

## Available columns Attributes

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col>
          <col>
          <col>
          <col>
          <col>
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e733">
              <p style="margin-bottom:0;">Attribute</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e739">
              <p style="margin-bottom:0;">Value</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e745">
              <p style="margin-bottom:0;">Type</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e751">
              <p style="margin-bottom:0;">Required</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e757">
              <p style="margin-bottom:0;">Description</p>
            </th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">editable</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">Specifies whether column is editable.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">fieldName</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">&nbsp;</td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">
              <p style="margin-bottom:0;">yes</p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">Gets the key for the column from the <em>data</em> JSON.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">label</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">&nbsp;</td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">
              <p style="margin-bottom:0;">yes</p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">Sets the visible name of the column heading.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">searchable</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">To enable the ability to search column values, set to true.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">sortable</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">To enable column sorting, set to true. On hover of column heading, a sorting icon displays next to the column name.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">type</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">
              <p style="margin-bottom:0;">number, text, email, textarea, checkbox (Default: text)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">Specifies the type of value column holds.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">userSelectable</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">
              <p style="margin-bottom:0;">true, false (Default: false)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">If set to true, enables user to choose if column is visible.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e733 ">
              <p style="margin-bottom:0;">visible</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e739 ">
              <p style="margin-bottom:0;">true, false (Default: true)</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e745 ">
              <p style="margin-bottom:0;">boolean</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e751 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e757 ">
              <p style="margin-bottom:0;">To hide column, set to false. If set to false and <em>userSelectable</em> is set to true, user can make column visible.</p>
            </td>

          </tr>
        </tbody>
      </table>

## Example columns JSON

```
 [{ "fieldName": "company", "label": "Company", "sortable": true, "searchable": true }, { "fieldName": "email", "label": "Email", "sortable": true, "searchable": true, "type": "email", "editable": true, "userSelectable": true }, { "fieldName": "age", "label": "Age", "sortable": true, "type": "number", "editable": true, "userSelectable": true }, { "fieldName": "balance", "label": "Balance", "sortable": true, "userSelectable": true }, { "fieldName": "address", "label": "Address", "sortable": false, "type": "textarea", "editable": true, "userSelectable": true }, { "fieldName": "isActive", "label": "Active", "sortable": false, "type": "checkbox", "editable": true } ];
```

## Available group-by Attributes

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col>
          <col>
          <col>
          <col>
          <col>
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e1037">
              <p style="margin-bottom:0;">Attribute</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e1043">
              <p style="margin-bottom:0;">Value</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e1049">
              <p style="margin-bottom:0;">Type</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e1055">
              <p style="margin-bottom:0;">Required</p>
            </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d71588e1061">
              <p style="margin-bottom:0;">Description</p>
            </th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1037 ">
              <p style="margin-bottom:0;">fields</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1043 ">
              <p style="margin-bottom:0;">list</p>
            </td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1049 ">
              <p style="margin-bottom:0;">array</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1055 ">&nbsp;</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1061 ">
              <p style="margin-bottom:0;">Sets group header description for every visible row after grouping. Each object takes a field name that has its own group desciption, which by default is the sum of all selected field from all the records. To get group description using a custom function, pass function to <em>methodToCalculateSummary</em>, which takes 'groupItems' as an argument. For example, <code>nameOfFunction(groupItems){}</code>.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1037 ">
              <p style="margin-bottom:0;">groupFieldName</p>
            </td>

            <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1043 ">&nbsp;</td>

            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1049 ">
              <p style="margin-bottom:0;">string</p>
            </td>

            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1055 ">
              <p style="margin-bottom:0;">yes</p>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d71588e1061 ">
              <p style="margin-bottom:0;">The reference key (field name) from the <em>data</em> JSON used to group the table.</p>
            </td>

          </tr>
        </tbody>
      </table>

## Example group-by JSON

```
 { "groupFieldName": "company", "fields": [ { "name": "balance", "methodToCalculateSummary": "" } ] };
```

## Available Event Listeners

onupdate

Triggers when table data changes.

ondelete

Triggers when a table row is deleted.

onrowclick

Triggers when a row is clicked and includes the record on which the click happens. Is inside `event.detail.result`.

## Adding Custom Column UI

To add a custom column specify each column inside data table:

```
<c-data-table extraclass="slds-table_bordered" issearchavailable="true" issortavailable="true" theme={theme} icon-url={iconUrl} draggable="true" columns={columns} records={tableData} onupdate={tableUpdateHandler} ondelete={tableUpdateHandler} row-delete="true"
> <c-customDataTableCell data-field-name="email" class="dataTableCell"> </c-customDataTableCell> <c-data-table-cell data-field-name="age" class="dataTableCell"> </c-data-table-cell> <c-data-table-cell data-field-name="balance" class="dataTableCell"> </c-data-table-cell> <c-data-table-cell data-field-name="address" class="dataTableCell"> </c-data-table-cell> <c-data-table-cell data-field-name="isActive" class="dataTableCell"> </c-data-table-cell> <c-data-table-cell data-field-name="phone" class="dataTableCell"> </c-data-table-cell>
</c-data-table>
```

As you can see how we create a data table is not changed at all, the only piece that is different is for each column you want to show, you have to write its relevant column inside data table element.

THE ELEMENT THAT IS SUPPORTED INSIDE DATA TABLE IS EITHER DATATABLECELL OR EXTENDED LWC OF DATA TABLE CELL.

Each column element should have two mandatory attributes: a) data-field-name : This is the same field name we specify inside columns array as mentioned before.

b) class : You should add a dataTableCell class for it to be treated a column UI.

INSIDE EXTENDED COMPONENT YOU WILL HAVE FOLLOWING DATA: a) cellData : This is that particular column cell data. For eg: if this column field name is "email". this variable will contain related data to that field name. You can read it by "cellData.value"

b) rowData: This contains complete row data as it is of one single record and can be used to show more data as well.

c) columnData: This contains metadata of what you pass inside columns json.

NOTE: Even if we just want to customize one column we have to specify all the columns inside data table. If you dont want to customize any column then keep inside of data table empty.

NOTE: For now custom column UI support is not supported in GROUP BY tables.

Examples of a custom column UI component. You can use it as a reference. Please look at above data table example.

## customDataTableCell

```
<template> <div if:true={cellData} class="tableRowCell"> <!--Start your custom content from here--> {cellData.value} : <br>{rowData.phone} <button onclick={toggleText}>Toggle</button> <div if:true={hiddenText}> {cellData.value} </div> </div>
</template>
```

```
import {track} from 'lwc';
import dataTableCell from "c/dataTableCell";
export default class DataTableCellExtended extends dataTableCell { @track hiddenText= false; toggleText(){ this.hiddenText = !this.hiddenText; }
}
```

```
.tableRowCell{ display: table-cell; padding: 0.25rem 0.5rem; white-space: nowrap; position: relative;
} .tableRowCell:first { border: 0;
}
```