@ukic/canary-web-components 2.0.0-canary.41 → 2.0.0-canary.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +1 -1
 - package/dist/cjs/ic-data-table.cjs.entry.js +37 -15
 - package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
 - package/dist/cjs/ic-pagination_4.cjs.entry.js +10 -4
 - package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
 - package/dist/cjs/loader.cjs.js +1 -1
 - package/dist/collection/components/ic-data-table/ic-data-table.js +37 -15
 - package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
 - package/dist/collection/components/ic-data-table/ic-data-table.stories.js +8 -1
 - package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
 - package/dist/collection/components/ic-data-table/story-data.js +32 -3
 - package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
 - package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +23 -0
 - package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
 - package/dist/components/ic-data-table.js +37 -15
 - package/dist/components/ic-data-table.js.map +1 -1
 - package/dist/components/ic-text-field2.js +11 -4
 - package/dist/components/ic-text-field2.js.map +1 -1
 - package/dist/core/core.esm.js +1 -1
 - package/dist/core/core.esm.js.map +1 -1
 - package/dist/core/{p-61848e6b.entry.js → p-12f5911d.entry.js} +2 -2
 - package/dist/core/p-12f5911d.entry.js.map +1 -0
 - package/dist/core/p-4a89994a.entry.js +2 -0
 - package/dist/core/p-4a89994a.entry.js.map +1 -0
 - package/dist/esm/core.js +1 -1
 - package/dist/esm/ic-data-table.entry.js +37 -15
 - package/dist/esm/ic-data-table.entry.js.map +1 -1
 - package/dist/esm/ic-pagination_4.entry.js +10 -4
 - package/dist/esm/ic-pagination_4.entry.js.map +1 -1
 - package/dist/esm/loader.js +1 -1
 - package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -0
 - package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +14 -8
 - package/dist/types/components/ic-data-table/story-data.d.ts +1 -0
 - package/hydrate/index.js +48 -19
 - package/package.json +3 -3
 - package/dist/core/p-3ebd4703.entry.js +0 -2
 - package/dist/core/p-3ebd4703.entry.js.map +0 -1
 - package/dist/core/p-61848e6b.entry.js.map +0 -1
 
| 
         @@ -23,6 +23,9 @@ const name5 = "Margaret Hale"; 
     | 
|
| 
       23 
23 
     | 
    
         
             
            const highlightedRowClass = "table-row-selected";
         
     | 
| 
       24 
24 
     | 
    
         
             
            const showBackgroundClass = "show-background";
         
     | 
| 
       25 
25 
     | 
    
         
             
            const customIcon = '<svg aria-labelledby="error-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000"><title id="error-title">Error</title><g id="close-octagon"><path id="Vector" d="M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41" /></g></svg>';
         
     | 
| 
      
 26 
     | 
    
         
            +
            const copyIconSVG = '<svg aria-label="copy-button" xmlns="http://www.w3.org/2000/svg"  width="24" height="24" viewBox="0 0 24 24" fill="#000000"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg>';
         
     | 
| 
      
 27 
     | 
    
         
            +
            const cellphoneIconSVG = '<svg aria-label="cellphone-button" xmlns="http://www.w3.org/2000/svg"  width="24" height="24" viewBox="0 0 24 24" fill="#000000"><path d="M17,19H7V5H17M17,1H7C5.89,1 5,1.89 5,3V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3C19,1.89 18.1,1 17,1Z"/></svg>';
         
     | 
| 
      
 28 
     | 
    
         
            +
            const downloadIconSVG = '<svg aria-label="download-button" xmlns="http://www.w3.org/2000/svg"  width="24" height="24" viewBox="0 0 24 24" fill="#000000"><path d="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"/></svg>';
         
     | 
| 
       26 
29 
     | 
    
         
             
            const columns = [
         
     | 
| 
       27 
30 
     | 
    
         
             
                { key: "name", title: "Name", dataType: "string" },
         
     | 
| 
       28 
31 
     | 
    
         
             
                { key: "age", title: "Age", dataType: "number" },
         
     | 
| 
         @@ -919,5 +922,25 @@ describe(icDataTable, () => { 
     | 
|
| 
       919 
922 
     | 
    
         
             
                    });
         
     | 
| 
       920 
923 
     | 
    
         
             
                    expect(page.root).toMatchSnapshot();
         
     | 
| 
       921 
924 
     | 
    
         
             
                });
         
     | 
| 
      
 925 
     | 
    
         
            +
                it("should test slotted action elements", async () => {
         
     | 
| 
      
 926 
     | 
    
         
            +
                    var _a;
         
     | 
| 
      
 927 
     | 
    
         
            +
                    const mockCallback = jest.fn((x) => x + 1);
         
     | 
| 
      
 928 
     | 
    
         
            +
                    const page = await newSpecPage({
         
     | 
| 
      
 929 
     | 
    
         
            +
                        components: [DataTable],
         
     | 
| 
      
 930 
     | 
    
         
            +
                        template: () => (h("ic-data-table", { caption: "test table", columns: columns, data: data }, h("div", { slot: "name-0-action-element", style: { display: "flex" } }, h("ic-button", { variant: "icon", size: "small", onClick: mockCallback(1), "aria-label": "Download data", id: "download-button", innerHTML: downloadIconSVG }), h("ic-button", { variant: "icon", size: "small", onClick: mockCallback(2), "aria-label": "Call phone", id: "cellphone-button", innerHTML: cellphoneIconSVG }), h("ic-button", { variant: "icon", size: "small", onClick: mockCallback(3), "aria-label": "Copy data", id: "copy-button", innerHTML: copyIconSVG })))),
         
     | 
| 
      
 931 
     | 
    
         
            +
                    });
         
     | 
| 
      
 932 
     | 
    
         
            +
                    expect(page.root).toMatchSnapshot();
         
     | 
| 
      
 933 
     | 
    
         
            +
                    const dataTable = document.querySelector(icDataTable);
         
     | 
| 
      
 934 
     | 
    
         
            +
                    const actionEl = (_a = dataTable === null || dataTable === void 0 ? void 0 : dataTable.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".action-element");
         
     | 
| 
      
 935 
     | 
    
         
            +
                    const downloadButton = actionEl === null || actionEl === void 0 ? void 0 : actionEl.querySelector("#download-button");
         
     | 
| 
      
 936 
     | 
    
         
            +
                    downloadButton === null || downloadButton === void 0 ? void 0 : downloadButton.click();
         
     | 
| 
      
 937 
     | 
    
         
            +
                    const cellphoneButton = actionEl === null || actionEl === void 0 ? void 0 : actionEl.querySelector("#cellphone-button");
         
     | 
| 
      
 938 
     | 
    
         
            +
                    cellphoneButton === null || cellphoneButton === void 0 ? void 0 : cellphoneButton.click();
         
     | 
| 
      
 939 
     | 
    
         
            +
                    const copyButton = actionEl === null || actionEl === void 0 ? void 0 : actionEl.querySelector("#copy-button");
         
     | 
| 
      
 940 
     | 
    
         
            +
                    copyButton === null || copyButton === void 0 ? void 0 : copyButton.click();
         
     | 
| 
      
 941 
     | 
    
         
            +
                    expect(mockCallback.mock.results[0].value).toEqual(2);
         
     | 
| 
      
 942 
     | 
    
         
            +
                    expect(mockCallback.mock.results[1].value).toEqual(3);
         
     | 
| 
      
 943 
     | 
    
         
            +
                    expect(mockCallback.mock.results[2].value).toEqual(4);
         
     | 
| 
      
 944 
     | 
    
         
            +
                });
         
     | 
| 
       922 
945 
     | 
    
         
             
            });
         
     | 
| 
       923 
946 
     | 
    
         
             
            //# sourceMappingURL=ic-data-table.spec.js.map
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"ic-data-table.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-data-table/test/basic/ic-data-table.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { IcButton } from \"@ukic/web-components/dist/components/ic-button\";\nimport { DataTable } from \"../../ic-data-table\";\nimport { IcPagination } from \"@ukic/web-components/dist/components/ic-pagination\";\nimport { PaginationBar } from \"../../../ic-pagination-bar/ic-pagination-bar\";\nimport { IcPaginationItem } from \"@ukic/web-components/dist/components/ic-pagination-item\";\nimport { h } from \"@stencil/core\";\nimport { IcDataTableColumnObject } from \"../../ic-data-table.types\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\nimport { IcEmptyState } from \"@ukic/web-components/dist/components/ic-empty-state\";\nimport { DataTableTitleBar } from \"../../../ic-data-table-title-bar/ic-data-table-title-bar\";\nimport { LONG_DATA_ELEMENTS_WITH_DESCRIPTIONS } from \"../../story-data\";\n\nbeforeAll(() => {\n  jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst icDataTable = \"ic-data-table\";\nconst icLoadingIndicator = \"ic-loading-indicator\";\nconst employeeNumber = \"Employee number\";\nconst name1 = \"John Smith\";\nconst name2 = \"Sally Jones\";\nconst name3 = \"Luke Fisher\";\nconst name4 = \"Jane Lock\";\nconst name5 = \"Margaret Hale\";\nconst highlightedRowClass = \"table-row-selected\";\nconst showBackgroundClass = \"show-background\";\nconst customIcon =\n  '<svg aria-labelledby=\"error-title\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#000000\"><title id=\"error-title\">Error</title><g id=\"close-octagon\"><path id=\"Vector\" d=\"M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41\" /></g></svg>';\n\nconst columns: IcDataTableColumnObject[] = [\n  { key: \"name\", title: \"Name\", dataType: \"string\" },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst columnsWithElements: IcDataTableColumnObject[] = [\n  { key: \"name\", title: \"Name\", dataType: \"string\" },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n  { key: \"actions\", title: \"Actions\", dataType: \"element\" },\n];\n\nconst columnsWithRowHeader: IcDataTableColumnObject[] = [\n  { key: \"header\", title: employeeNumber, dataType: \"number\" },\n  { key: \"name\", title: \"Name\", dataType: \"string\" },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n];\n\nconst columnsWithOverrides: IcDataTableColumnObject[] = [\n  { key: \"name\", title: \"Name\", dataType: \"string\", cellAlignment: \"middle\" },\n  {\n    key: \"age\",\n    title: \"Age\",\n    dataType: \"number\",\n    columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n  },\n  {\n    key: \"department\",\n    title: \"Department\",\n    dataType: \"string\",\n    emphasis: \"high\",\n  },\n  {\n    key: \"employeeNumber\",\n    title: employeeNumber,\n    dataType: \"number\",\n    emphasis: \"low\",\n  },\n];\n\nconst columnsWithIcons: IcDataTableColumnObject[] = [\n  {\n    key: \"name\",\n    title: \"Name\",\n    dataType: \"string\",\n    icon: {\n      icon: customIcon,\n    },\n  },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst columnsWithIconsOnAllCells: IcDataTableColumnObject[] = [\n  {\n    key: \"name\",\n    title: \"Name\",\n    dataType: \"string\",\n    icon: {\n      icon: customIcon,\n      onAllCells: true,\n    },\n  },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst columnsWithIconsHideOnHeader: IcDataTableColumnObject[] = [\n  {\n    key: \"name\",\n    title: \"Name\",\n    dataType: \"string\",\n    icon: {\n      icon: customIcon,\n      hideOnHeader: true,\n    },\n  },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst data = [\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 1 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 3 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n];\n\nconst dataWithElements = [\n  {\n    name: name1,\n    age: 36,\n    department: \"Accounts\",\n    employeeNumber: 1,\n    actions: \"\",\n  },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n    actions: \"\",\n  },\n  {\n    name: \"Tim Rayes\",\n    age: 41,\n    department: \"Sales\",\n    employeeNumber: 3,\n    actions: \"\",\n  },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n    actions: \"\",\n  },\n  {\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n    employeeNumber: 5,\n    actions: \"\",\n  },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6, actions: \"\" },\n];\n\nconst dataWithRowHeaders = [\n  { header: { title: 1 }, name: name1, age: 36, department: \"Accounts\" },\n  {\n    header: { title: 2 },\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n  },\n  { header: { title: 3 }, name: \"Tim Rayes\", age: 41, department: \"Sales\" },\n  {\n    header: { title: 4 },\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 5 },\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n  },\n  { header: { title: 6 }, name: name5, age: 45, department: \"HR\" },\n];\n\nconst dataWithRowOverrides = [\n  {\n    header: { title: 1, rowAlignment: \"middle\", emphasis: \"high\" },\n    name: name1,\n    age: 36,\n    department: \"Accounts\",\n  },\n  {\n    header: { title: 2, rowAlignment: \"top\", emphasis: \"low\" },\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 3, rowAlignment: \"bottom\", emphasis: \"high\" },\n    name: \"Tim Rayes\",\n    age: 41,\n    department: \"Sales\",\n  },\n  {\n    header: { title: 4, rowAlignment: \"middle\", emphasis: \"low\" },\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 5, rowAlignment: \"top\", emphasis: \"high\" },\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 6, rowAlignment: \"bottom\", emphasis: \"low\" },\n    name: name5,\n    age: 45,\n    department: \"HR\",\n  },\n];\n\nconst dataWithObjects = [\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 1 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  {\n    name: { data: \"Tim Rayes\" },\n    age: 41,\n    department: \"Sales\",\n    employeeNumber: 3,\n  },\n  {\n    name: { data: name3 },\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n];\n\nconst dataWithCellOverrides = [\n  {\n    name: {\n      data: name1,\n      columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n      emphasis: \"high\",\n    },\n    age: 36,\n    department: \"Accounts\",\n    employeeNumber: 1,\n  },\n  {\n    name: {\n      data: name2,\n      columnAlignment: { horizontal: \"top\", vertical: \"right\" },\n      emphasis: \"low\",\n    },\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  {\n    name: {\n      data: \"Tim Rayes\",\n      columnAlignment: { horizontal: \"bottom\", vertical: \"left\" },\n      emphasis: \"high\",\n    },\n    age: 41,\n    department: \"Sales\",\n    employeeNumber: 3,\n  },\n  {\n    name: {\n      data: name3,\n      columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n      emphasis: \"low\",\n    },\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  {\n    name: {\n      data: name4,\n      columnAlignment: { horizontal: \"top\", vertical: \"right\" },\n      emphasis: \"high\",\n    },\n    age: 34,\n    department: \"Engineering\",\n    employeeNumber: 5,\n  },\n  {\n    name: {\n      data: name5,\n      columnAlignment: { horizontal: \"bottom\", vertical: \"left\" },\n      emphasis: \"high\",\n    },\n    age: 45,\n    department: \"HR\",\n    employeeNumber: 6,\n  },\n];\n\nconst longData = [\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 1 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 3 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 7 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 8,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 9 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 10,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 11 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 12 },\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 13 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 14,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 15 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 16,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 17 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 18 },\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 19 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 20,\n  },\n];\n\nconst dataWithIcons = [\n  {\n    name: {\n      data: name1,\n      icon: '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.70687 6L8.29688 7.41L12.8769 12L8.29688 16.59L9.70687 18L15.7069 12L9.70687 6Z\" fill=\"currentColor\"/></svg>',\n    },\n    age: 36,\n    department: \"Accounts\",\n    employeeNumber: 1,\n  },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 3 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n];\n\nconst dataWithActionElement = [\n  {\n    header: { title: 1 },\n    name: {\n      data: name1,\n      actionElement: `<ic-button size=\"small\" variant=\"icon\"  aria-label=\"you can disable tooltips on icon buttons\"  disable-tooltip=\"true\">  <svg    xmlns=\"http://www.w3.org/2000/svg\"    width=\"24\"    height=\"24\"    viewBox=\"0 0 24 24\"    fill=\"#000000\"  >    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>    <path d=\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"></path>  </svg></ic-button>`,\n      actionOnClick: (event: Event) => {\n        event?.stopPropagation();\n        console.log(\"hello\");\n      },\n    },\n    age: 36,\n    department: \"Accounts\",\n  },\n  {\n    header: { title: 2 },\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n  },\n  { header: { title: 3 }, name: \"Tim Rayes\", age: 41, department: \"Sales\" },\n  {\n    header: { title: 4 },\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 5 },\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n  },\n  { header: { title: 6 }, name: name5, age: 45, department: \"HR\" },\n];\n\ndescribe(icDataTable, () => {\n  it(\"should render\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with row headers\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columnsWithRowHeader}\n          data={dataWithRowHeaders}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render embedded\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          embedded\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with column headers hidden\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          hide-column-headers\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with column header truncation\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          column-header-truncation\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    page.root.columnHeaderTruncation = false;\n    await page.waitForChanges();\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render sortable\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          sortable\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with pagination\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={longData}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with a slotted ic-data-table-title-bar\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"test table\" columns={columns} data={data}>\n          <ic-data-table-title-bar slot=\"title-bar\"></ic-data-table-title-bar>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with column overrides\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columnsWithOverrides}\n          data={data}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with row overrides\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columnsWithRowHeader}\n          data={dataWithRowOverrides}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with cell overrides\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithCellOverrides}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should correctly render a custom icon in the header when passed through the column prop\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithIcons}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should not render custom icon in header when hideOnHeader is set\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithIconsHideOnHeader}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render column icon on all column cells if onAllCells is true, except ones that already have a custom icon\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithIconsOnAllCells}\n          data={dataWithIcons}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render a slotted icon instead of an icon defined in data\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"Table\" columns={columns} data={dataWithIcons}>\n          <svg\n            slot=\"name-0-icon\"\n            focusable=\"false\"\n            aria-hidden=\"true\"\n            viewBox=\"0 0 24 24\"\n          >\n            <path d=\"M9 3 5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z\"></path>\n          </svg>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the empty state when data is null\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"test table\" columns={columns}></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the empty state when no data is passed through\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={[]}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should be able to slot a custom empty state into the data table\", async () => {\n    const page = await newSpecPage({\n      components: [IcButton, DataTable, IcEmptyState],\n      template: () => (\n        <ic-data-table caption=\"test table\" columns={columns} data={[]}>\n          <ic-empty-state\n            slot=\"empty-state\"\n            aligned=\"left\"\n            heading=\"Test heading\"\n            body=\"test body\"\n          >\n            <ic-button slot=\"actions\">Button</ic-button>\n          </ic-empty-state>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the loading state when the `loading` prop is passed through\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the updating state when the `updating` prop is passed through\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          updating={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should pass through the loadingOptions to the loading indicator\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loadingOptions={{\n            appearance: \"light\",\n          }}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should pass through the updatingOptions to the linear loading indicator\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          updatingOptions={{\n            progress: 30,\n          }}\n          updating={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should apply a background to the loading indicator if data is supplied to the table\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columns}\n          data={data}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.rootInstance.loadingOptions.showBackground).toBeTruthy();\n    const loadingIndicator =\n      page.root.shadowRoot.querySelector(icLoadingIndicator);\n    expect(loadingIndicator).toHaveClass(showBackgroundClass);\n  });\n\n  it(\"should not apply a background to the loading indicator if no data is supplied to the table, and apply one when data is provided later\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.rootInstance.loadingOptions.showBackground).toBeFalsy();\n    let loadingIndicator =\n      page.root.shadowRoot.querySelector(icLoadingIndicator);\n    expect(loadingIndicator).not.toHaveClass(showBackgroundClass);\n\n    page.root.data = data;\n    await page.waitForChanges();\n\n    expect(page.rootInstance.loadingOptions.showBackground).toBeTruthy();\n    loadingIndicator = page.root.shadowRoot.querySelector(icLoadingIndicator);\n    expect(loadingIndicator).toHaveClass(showBackgroundClass);\n    //delay to allow for 1 sec setTimeout in loading indicator, otherwise next test fails\n    await waitForTimeout(1100);\n  });\n\n  it(\"when loading is `true`, setting data should cancel the loading after 1 second from initial loading\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    await waitForTimeout(1100);\n    page.root.data = data;\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"when loading is `true`, if data is set before 1 second of loading it will wait 1 second before rendering the data\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    page.root.data = data;\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n\n    await waitForTimeout(1500);\n    await page.waitForChanges();\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should return correct alignment from getCellAlignment\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithCellOverrides}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    let cellAlignment = await page.rootInstance.getCellAlignment(\n      {\n        data: name1,\n        cellAlignment: { horizontal: \"middle\", vertical: \"center\" },\n        emphasis: \"high\",\n      },\n      \"vertical\"\n    );\n    expect(cellAlignment).toBe(\"center\");\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      {\n        data: name1,\n        cellAlignment: { horizontal: \"middle\", vertical: \"center\" },\n        emphasis: \"high\",\n      },\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBe(\"middle\");\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      {\n        data: name1,\n        columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n        emphasis: \"high\",\n      },\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBeUndefined;\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      name1,\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBeUndefined;\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      undefined,\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBeUndefined;\n  });\n\n  it(\"should change page when the pagination items are clicked\", async () => {\n    const page = await newSpecPage({\n      components: [\n        IcButton,\n        DataTable,\n        IcPagination,\n        PaginationBar,\n        IcPaginationItem,\n      ],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={longData}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    await page.waitForChanges();\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const paginationBar =\n      dataTable.shadowRoot.querySelector(\"ic-pagination-bar\");\n\n    const pagination = paginationBar.shadowRoot.querySelector(\"ic-pagination\");\n\n    const paginationItem =\n      pagination.shadowRoot.querySelector(\"ic-pagination-item\");\n\n    let currentPage =\n      paginationItem.shadowRoot.querySelector(\"ic-typography\").textContent;\n\n    const nextPageButton = pagination.shadowRoot.querySelector(\n      \"#next-page-button\"\n    ) as HTMLButtonElement;\n\n    expect(currentPage).toEqual(\"Page 1\");\n\n    nextPageButton.focus();\n\n    nextPageButton.click();\n\n    const icPageChangeEvent = new CustomEvent(\"icPageChange\", {\n      detail: { value: \"2\" },\n    });\n\n    dataTable.dispatchEvent(icPageChangeEvent);\n\n    currentPage = \"Page 2\";\n\n    page.rootInstance.updateScrollOffset();\n\n    await page.waitForChanges();\n\n    expect(currentPage).toEqual(\"Page 2\");\n  });\n\n  it(\"should change number of items per page when select dropdown is changed\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable, PaginationBar],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={longData}\n          show-pagination\n          paginationBarOptions={{\n            itemsPerPageOptions: [\n              { label: \"10\", value: \"10\" },\n              { label: \"25\", value: \"25\" },\n              { label: \"50\", value: \"50\" },\n            ],\n            rangeLabelType: \"data\",\n          }}\n        ></ic-data-table>\n      ),\n    });\n\n    await page.waitForChanges();\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const paginationBar =\n      dataTable.shadowRoot.querySelector(\"ic-pagination-bar\");\n\n    const itemsPerPageLabel = paginationBar.shadowRoot.querySelector(\n      \".item-pagination-label\"\n    );\n\n    page.rootInstance.rowsPerPage = 10;\n\n    expect(itemsPerPageLabel.textContent).toEqual(\"1 - 10 of 20 items\");\n\n    const icPageChangeEvent = new CustomEvent(\"icPageChange\", {\n      detail: { value: \"1\" },\n    });\n\n    const icItemsPerPageChangeEventUp = new CustomEvent(\n      \"icItemsPerPageChange\",\n      {\n        detail: { value: \"20\" },\n      }\n    );\n\n    const icItemsPerPageChangeEventDown = new CustomEvent(\n      \"icItemsPerPageChange\",\n      { detail: { value: \"10\" } }\n    );\n\n    dataTable.dispatchEvent(icItemsPerPageChangeEventUp);\n\n    page.rootInstance.rowsPerPage = 20;\n\n    dataTable.dispatchEvent(icPageChangeEvent);\n\n    page.rootInstance.toRow = 20;\n\n    await page.waitForChanges();\n\n    dataTable.dispatchEvent(icItemsPerPageChangeEventDown);\n\n    page.rootInstance.previousRowsPerPage = 20;\n\n    page.rootInstance.rowsPerPage = 10;\n\n    dataTable.dispatchEvent(icPageChangeEvent);\n\n    await page.waitForChanges();\n\n    expect(itemsPerPageLabel.textContent).toEqual(\"1 - 10 of 20 items\");\n  });\n\n  it(\"should sort data when the sort button is clicked\", async () => {\n    const page = await newSpecPage({\n      components: [IcButton, DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithObjects}\n          sortable\n        ></ic-data-table>\n      ),\n    });\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const sortButton = Array.from(\n      dataTable.shadowRoot.querySelectorAll(\".sort-button\")\n    ) as HTMLIcButtonElement[];\n\n    expect(page.root).toMatchSnapshot();\n\n    sortButton[0].click();\n\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n\n    sortButton[0].click();\n\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n\n    sortButton[1].click();\n\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should change the density of the element when it receives the icTableDensityUpdate event\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"Table\" columns={columns} data={data}>\n          <ic-data-table-title-bar slot=\"title-bar\"></ic-data-table-title-bar>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.rootInstance.density).toBe(\"default\");\n\n    let icDensityUpdateEvent = new CustomEvent(\"icTableDensityUpdate\", {\n      detail: { value: \"dense\" },\n    });\n    page.root.dispatchEvent(icDensityUpdateEvent);\n\n    await page.waitForChanges();\n    expect(page.rootInstance.density).toBe(\"dense\");\n\n    icDensityUpdateEvent = new CustomEvent(\"icTableDensityUpdate\", {\n      detail: { value: \"spacious\" },\n    });\n    page.root.dispatchEvent(icDensityUpdateEvent);\n\n    await page.waitForChanges();\n    expect(page.rootInstance.density).toBe(\"spacious\");\n  });\n\n  it(\"should pass the caption down to any slotted ic-data-table-title-bar\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable, DataTableTitleBar],\n      template: () => (\n        <ic-data-table caption=\"Table\" columns={columns} data={data}>\n          <ic-data-table-title-bar slot=\"title-bar\"></ic-data-table-title-bar>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should highlight the correct row when clicked\", async () => {\n    const page = await newSpecPage({\n      components: [IcButton, DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const rows = dataTable.shadowRoot.querySelectorAll(\"tr\");\n\n    rows[1].click();\n\n    await page.waitForChanges();\n\n    expect(rows[1]).toHaveClass(highlightedRowClass);\n\n    rows[2].click();\n\n    await page.waitForChanges();\n\n    expect(rows[1]).not.toHaveClass(highlightedRowClass);\n    expect(rows[2]).toHaveClass(highlightedRowClass);\n\n    page.win.dispatchEvent(\n      new MouseEvent(\"click\", {\n        bubbles: true,\n        cancelable: true,\n      })\n    );\n\n    await page.waitForChanges();\n\n    expect(rows[1]).not.toHaveClass(highlightedRowClass);\n    expect(rows[2]).not.toHaveClass(highlightedRowClass);\n  });\n\n  it(\"should apply a specified row height to all rows when globalRowHeight is set\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should apply a specified row height to specific rows when variableRowHeight is set, and any not included should use the default globalRowHeight\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? 200 : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should reset all rows to the default height when resetRowHeights is called\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? 200 : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    await (page.root as HTMLIcDataTableElement).resetRowHeights(40);\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should emit icRowHeightChange when globalRowHeight or variableRowHeight is changed\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? 200 : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    const eventSpy = jest.fn();\n\n    page.root.addEventListener(\"icRowHeightChange\", eventSpy);\n\n    const dataTable = page.root as HTMLIcDataTableElement;\n    dataTable.globalRowHeight = 50;\n    await page.waitForChanges();\n\n    expect(eventSpy).toHaveBeenCalledTimes(1);\n\n    dataTable.variableRowHeight = ({ index }) => (index % 2 === 0 ? 100 : null);\n    await page.waitForChanges();\n\n    expect(eventSpy).toHaveBeenCalledTimes(2);\n  });\n\n  it(\"should emit icSortChange when column sort button is clicked\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          sortable\n        ></ic-data-table>\n      ),\n    });\n\n    const eventSpy = jest.fn();\n\n    page.root.addEventListener(\"icSortChange\", eventSpy);\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const sortButton = Array.from(\n      dataTable.shadowRoot.querySelectorAll(\".sort-button\")\n    ) as HTMLIcButtonElement[];\n\n    sortButton[0].click();\n\n    await page.waitForChanges();\n\n    expect(eventSpy).toHaveBeenCalledWith(\n      expect.objectContaining({\n        detail: { columnName: \"name\", sorted: \"ascending\" },\n      })\n    );\n  });\n\n  it(\"should apply the correct density scaler to rowHeights when not using the default density\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n          density=\"dense\"\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    (page.root as HTMLIcDataTableElement).density = \"spacious\";\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should not override the height of rows if `globalRowHeight` is set to auto\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight=\"auto\"\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should not override the height of certain rows if `variableRowHeight` returns auto\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? \"auto\" : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should slot a custom element into a cell\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithElements}\n          data={dataWithElements}\n        >\n          {dataWithElements.map((_, index) => (\n            <ic-button key={index} slot={`actions-${index}`}>\n              Delete\n            </ic-button>\n          ))}\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render an action element if present in the data set\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithActionElement}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should add description text or sub-icon to cells of table\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithElements}\n          data={LONG_DATA_ELEMENTS_WITH_DESCRIPTIONS}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the loading indicator with an overlay above the table\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={[data[0]]}\n          loading={true}\n          loadingOptions={{\n            overlay: true,\n          }}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render updating in assertive aria-live div\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={[data[0]]}\n          updating={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n});\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"ic-data-table.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-data-table/test/basic/ic-data-table.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { IcButton } from \"@ukic/web-components/dist/components/ic-button\";\nimport { DataTable } from \"../../ic-data-table\";\nimport { IcPagination } from \"@ukic/web-components/dist/components/ic-pagination\";\nimport { PaginationBar } from \"../../../ic-pagination-bar/ic-pagination-bar\";\nimport { IcPaginationItem } from \"@ukic/web-components/dist/components/ic-pagination-item\";\nimport { h } from \"@stencil/core\";\nimport { IcDataTableColumnObject } from \"../../ic-data-table.types\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\nimport { IcEmptyState } from \"@ukic/web-components/dist/components/ic-empty-state\";\nimport { DataTableTitleBar } from \"../../../ic-data-table-title-bar/ic-data-table-title-bar\";\nimport { LONG_DATA_ELEMENTS_WITH_DESCRIPTIONS } from \"../../story-data\";\n\nbeforeAll(() => {\n  jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst icDataTable = \"ic-data-table\";\nconst icLoadingIndicator = \"ic-loading-indicator\";\nconst employeeNumber = \"Employee number\";\nconst name1 = \"John Smith\";\nconst name2 = \"Sally Jones\";\nconst name3 = \"Luke Fisher\";\nconst name4 = \"Jane Lock\";\nconst name5 = \"Margaret Hale\";\nconst highlightedRowClass = \"table-row-selected\";\nconst showBackgroundClass = \"show-background\";\nconst customIcon =\n  '<svg aria-labelledby=\"error-title\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#000000\"><title id=\"error-title\">Error</title><g id=\"close-octagon\"><path id=\"Vector\" d=\"M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41\" /></g></svg>';\nconst copyIconSVG =\n  '<svg aria-label=\"copy-button\" xmlns=\"http://www.w3.org/2000/svg\"  width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"#000000\"><path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"/></svg>';\nconst cellphoneIconSVG =\n  '<svg aria-label=\"cellphone-button\" xmlns=\"http://www.w3.org/2000/svg\"  width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"#000000\"><path d=\"M17,19H7V5H17M17,1H7C5.89,1 5,1.89 5,3V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3C19,1.89 18.1,1 17,1Z\"/></svg>';\nconst downloadIconSVG =\n  '<svg aria-label=\"download-button\" xmlns=\"http://www.w3.org/2000/svg\"  width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"#000000\"><path d=\"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"/></svg>';\n\nconst columns: IcDataTableColumnObject[] = [\n  { key: \"name\", title: \"Name\", dataType: \"string\" },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst columnsWithElements: IcDataTableColumnObject[] = [\n  { key: \"name\", title: \"Name\", dataType: \"string\" },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n  { key: \"actions\", title: \"Actions\", dataType: \"element\" },\n];\n\nconst columnsWithRowHeader: IcDataTableColumnObject[] = [\n  { key: \"header\", title: employeeNumber, dataType: \"number\" },\n  { key: \"name\", title: \"Name\", dataType: \"string\" },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n];\n\nconst columnsWithOverrides: IcDataTableColumnObject[] = [\n  { key: \"name\", title: \"Name\", dataType: \"string\", cellAlignment: \"middle\" },\n  {\n    key: \"age\",\n    title: \"Age\",\n    dataType: \"number\",\n    columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n  },\n  {\n    key: \"department\",\n    title: \"Department\",\n    dataType: \"string\",\n    emphasis: \"high\",\n  },\n  {\n    key: \"employeeNumber\",\n    title: employeeNumber,\n    dataType: \"number\",\n    emphasis: \"low\",\n  },\n];\n\nconst columnsWithIcons: IcDataTableColumnObject[] = [\n  {\n    key: \"name\",\n    title: \"Name\",\n    dataType: \"string\",\n    icon: {\n      icon: customIcon,\n    },\n  },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst columnsWithIconsOnAllCells: IcDataTableColumnObject[] = [\n  {\n    key: \"name\",\n    title: \"Name\",\n    dataType: \"string\",\n    icon: {\n      icon: customIcon,\n      onAllCells: true,\n    },\n  },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst columnsWithIconsHideOnHeader: IcDataTableColumnObject[] = [\n  {\n    key: \"name\",\n    title: \"Name\",\n    dataType: \"string\",\n    icon: {\n      icon: customIcon,\n      hideOnHeader: true,\n    },\n  },\n  { key: \"age\", title: \"Age\", dataType: \"number\" },\n  { key: \"department\", title: \"Department\", dataType: \"string\" },\n  { key: \"employeeNumber\", title: employeeNumber, dataType: \"number\" },\n];\n\nconst data = [\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 1 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 3 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n];\n\nconst dataWithElements = [\n  {\n    name: name1,\n    age: 36,\n    department: \"Accounts\",\n    employeeNumber: 1,\n    actions: \"\",\n  },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n    actions: \"\",\n  },\n  {\n    name: \"Tim Rayes\",\n    age: 41,\n    department: \"Sales\",\n    employeeNumber: 3,\n    actions: \"\",\n  },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n    actions: \"\",\n  },\n  {\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n    employeeNumber: 5,\n    actions: \"\",\n  },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6, actions: \"\" },\n];\n\nconst dataWithRowHeaders = [\n  { header: { title: 1 }, name: name1, age: 36, department: \"Accounts\" },\n  {\n    header: { title: 2 },\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n  },\n  { header: { title: 3 }, name: \"Tim Rayes\", age: 41, department: \"Sales\" },\n  {\n    header: { title: 4 },\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 5 },\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n  },\n  { header: { title: 6 }, name: name5, age: 45, department: \"HR\" },\n];\n\nconst dataWithRowOverrides = [\n  {\n    header: { title: 1, rowAlignment: \"middle\", emphasis: \"high\" },\n    name: name1,\n    age: 36,\n    department: \"Accounts\",\n  },\n  {\n    header: { title: 2, rowAlignment: \"top\", emphasis: \"low\" },\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 3, rowAlignment: \"bottom\", emphasis: \"high\" },\n    name: \"Tim Rayes\",\n    age: 41,\n    department: \"Sales\",\n  },\n  {\n    header: { title: 4, rowAlignment: \"middle\", emphasis: \"low\" },\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 5, rowAlignment: \"top\", emphasis: \"high\" },\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 6, rowAlignment: \"bottom\", emphasis: \"low\" },\n    name: name5,\n    age: 45,\n    department: \"HR\",\n  },\n];\n\nconst dataWithObjects = [\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 1 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  {\n    name: { data: \"Tim Rayes\" },\n    age: 41,\n    department: \"Sales\",\n    employeeNumber: 3,\n  },\n  {\n    name: { data: name3 },\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n];\n\nconst dataWithCellOverrides = [\n  {\n    name: {\n      data: name1,\n      columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n      emphasis: \"high\",\n    },\n    age: 36,\n    department: \"Accounts\",\n    employeeNumber: 1,\n  },\n  {\n    name: {\n      data: name2,\n      columnAlignment: { horizontal: \"top\", vertical: \"right\" },\n      emphasis: \"low\",\n    },\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  {\n    name: {\n      data: \"Tim Rayes\",\n      columnAlignment: { horizontal: \"bottom\", vertical: \"left\" },\n      emphasis: \"high\",\n    },\n    age: 41,\n    department: \"Sales\",\n    employeeNumber: 3,\n  },\n  {\n    name: {\n      data: name3,\n      columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n      emphasis: \"low\",\n    },\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  {\n    name: {\n      data: name4,\n      columnAlignment: { horizontal: \"top\", vertical: \"right\" },\n      emphasis: \"high\",\n    },\n    age: 34,\n    department: \"Engineering\",\n    employeeNumber: 5,\n  },\n  {\n    name: {\n      data: name5,\n      columnAlignment: { horizontal: \"bottom\", vertical: \"left\" },\n      emphasis: \"high\",\n    },\n    age: 45,\n    department: \"HR\",\n    employeeNumber: 6,\n  },\n];\n\nconst longData = [\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 1 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 3 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 7 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 8,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 9 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 10,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 11 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 12 },\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 13 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 14,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 15 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 16,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 17 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 18 },\n  { name: name1, age: 36, department: \"Accounts\", employeeNumber: 19 },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 20,\n  },\n];\n\nconst dataWithIcons = [\n  {\n    name: {\n      data: name1,\n      icon: '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.70687 6L8.29688 7.41L12.8769 12L8.29688 16.59L9.70687 18L15.7069 12L9.70687 6Z\" fill=\"currentColor\"/></svg>',\n    },\n    age: 36,\n    department: \"Accounts\",\n    employeeNumber: 1,\n  },\n  {\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n    employeeNumber: 2,\n  },\n  { name: \"Tim Rayes\", age: 41, department: \"Sales\", employeeNumber: 3 },\n  {\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n    employeeNumber: 4,\n  },\n  { name: name4, age: 34, department: \"Engineering\", employeeNumber: 5 },\n  { name: name5, age: 45, department: \"HR\", employeeNumber: 6 },\n];\n\nconst dataWithActionElement = [\n  {\n    header: { title: 1 },\n    name: {\n      data: name1,\n      actionElement: `<ic-button size=\"small\" variant=\"icon\"  aria-label=\"you can disable tooltips on icon buttons\"  disable-tooltip=\"true\">  <svg    xmlns=\"http://www.w3.org/2000/svg\"    width=\"24\"    height=\"24\"    viewBox=\"0 0 24 24\"    fill=\"#000000\"  >    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>    <path d=\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"></path>  </svg></ic-button>`,\n      actionOnClick: (event: Event) => {\n        event?.stopPropagation();\n        console.log(\"hello\");\n      },\n    },\n    age: 36,\n    department: \"Accounts\",\n  },\n  {\n    header: { title: 2 },\n    name: name2,\n    age: 32,\n    department: \"Engineering\",\n  },\n  { header: { title: 3 }, name: \"Tim Rayes\", age: 41, department: \"Sales\" },\n  {\n    header: { title: 4 },\n    name: name3,\n    age: \"23\",\n    department: \"Engineering\",\n  },\n  {\n    header: { title: 5 },\n    name: name4,\n    age: 34,\n    department: \"Engineering\",\n  },\n  { header: { title: 6 }, name: name5, age: 45, department: \"HR\" },\n];\n\ndescribe(icDataTable, () => {\n  it(\"should render\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with row headers\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columnsWithRowHeader}\n          data={dataWithRowHeaders}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render embedded\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          embedded\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with column headers hidden\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          hide-column-headers\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with column header truncation\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          column-header-truncation\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    page.root.columnHeaderTruncation = false;\n    await page.waitForChanges();\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render sortable\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          sortable\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with pagination\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={longData}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with a slotted ic-data-table-title-bar\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"test table\" columns={columns} data={data}>\n          <ic-data-table-title-bar slot=\"title-bar\"></ic-data-table-title-bar>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with column overrides\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columnsWithOverrides}\n          data={data}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with row overrides\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columnsWithRowHeader}\n          data={dataWithRowOverrides}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render with cell overrides\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithCellOverrides}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should correctly render a custom icon in the header when passed through the column prop\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithIcons}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should not render custom icon in header when hideOnHeader is set\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithIconsHideOnHeader}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render column icon on all column cells if onAllCells is true, except ones that already have a custom icon\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithIconsOnAllCells}\n          data={dataWithIcons}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render a slotted icon instead of an icon defined in data\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"Table\" columns={columns} data={dataWithIcons}>\n          <svg\n            slot=\"name-0-icon\"\n            focusable=\"false\"\n            aria-hidden=\"true\"\n            viewBox=\"0 0 24 24\"\n          >\n            <path d=\"M9 3 5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z\"></path>\n          </svg>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the empty state when data is null\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"test table\" columns={columns}></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the empty state when no data is passed through\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={[]}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should be able to slot a custom empty state into the data table\", async () => {\n    const page = await newSpecPage({\n      components: [IcButton, DataTable, IcEmptyState],\n      template: () => (\n        <ic-data-table caption=\"test table\" columns={columns} data={[]}>\n          <ic-empty-state\n            slot=\"empty-state\"\n            aligned=\"left\"\n            heading=\"Test heading\"\n            body=\"test body\"\n          >\n            <ic-button slot=\"actions\">Button</ic-button>\n          </ic-empty-state>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the loading state when the `loading` prop is passed through\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the updating state when the `updating` prop is passed through\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          updating={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should pass through the loadingOptions to the loading indicator\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loadingOptions={{\n            appearance: \"light\",\n          }}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should pass through the updatingOptions to the linear loading indicator\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          updatingOptions={{\n            progress: 30,\n          }}\n          updating={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should apply a background to the loading indicator if data is supplied to the table\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columns}\n          data={data}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.rootInstance.loadingOptions.showBackground).toBeTruthy();\n    const loadingIndicator =\n      page.root.shadowRoot.querySelector(icLoadingIndicator);\n    expect(loadingIndicator).toHaveClass(showBackgroundClass);\n  });\n\n  it(\"should not apply a background to the loading indicator if no data is supplied to the table, and apply one when data is provided later\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.rootInstance.loadingOptions.showBackground).toBeFalsy();\n    let loadingIndicator =\n      page.root.shadowRoot.querySelector(icLoadingIndicator);\n    expect(loadingIndicator).not.toHaveClass(showBackgroundClass);\n\n    page.root.data = data;\n    await page.waitForChanges();\n\n    expect(page.rootInstance.loadingOptions.showBackground).toBeTruthy();\n    loadingIndicator = page.root.shadowRoot.querySelector(icLoadingIndicator);\n    expect(loadingIndicator).toHaveClass(showBackgroundClass);\n    //delay to allow for 1 sec setTimeout in loading indicator, otherwise next test fails\n    await waitForTimeout(1100);\n  });\n\n  it(\"when loading is `true`, setting data should cancel the loading after 1 second from initial loading\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    await waitForTimeout(1100);\n    page.root.data = data;\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"when loading is `true`, if data is set before 1 second of loading it will wait 1 second before rendering the data\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          loading={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    page.root.data = data;\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n\n    await waitForTimeout(1500);\n    await page.waitForChanges();\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should return correct alignment from getCellAlignment\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithCellOverrides}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    let cellAlignment = await page.rootInstance.getCellAlignment(\n      {\n        data: name1,\n        cellAlignment: { horizontal: \"middle\", vertical: \"center\" },\n        emphasis: \"high\",\n      },\n      \"vertical\"\n    );\n    expect(cellAlignment).toBe(\"center\");\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      {\n        data: name1,\n        cellAlignment: { horizontal: \"middle\", vertical: \"center\" },\n        emphasis: \"high\",\n      },\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBe(\"middle\");\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      {\n        data: name1,\n        columnAlignment: { horizontal: \"middle\", vertical: \"center\" },\n        emphasis: \"high\",\n      },\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBeUndefined;\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      name1,\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBeUndefined;\n\n    cellAlignment = await page.rootInstance.getCellAlignment(\n      undefined,\n      \"horizontal\"\n    );\n    expect(cellAlignment).toBeUndefined;\n  });\n\n  it(\"should change page when the pagination items are clicked\", async () => {\n    const page = await newSpecPage({\n      components: [\n        IcButton,\n        DataTable,\n        IcPagination,\n        PaginationBar,\n        IcPaginationItem,\n      ],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={longData}\n          show-pagination\n        ></ic-data-table>\n      ),\n    });\n\n    await page.waitForChanges();\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const paginationBar =\n      dataTable.shadowRoot.querySelector(\"ic-pagination-bar\");\n\n    const pagination = paginationBar.shadowRoot.querySelector(\"ic-pagination\");\n\n    const paginationItem =\n      pagination.shadowRoot.querySelector(\"ic-pagination-item\");\n\n    let currentPage =\n      paginationItem.shadowRoot.querySelector(\"ic-typography\").textContent;\n\n    const nextPageButton = pagination.shadowRoot.querySelector(\n      \"#next-page-button\"\n    ) as HTMLButtonElement;\n\n    expect(currentPage).toEqual(\"Page 1\");\n\n    nextPageButton.focus();\n\n    nextPageButton.click();\n\n    const icPageChangeEvent = new CustomEvent(\"icPageChange\", {\n      detail: { value: \"2\" },\n    });\n\n    dataTable.dispatchEvent(icPageChangeEvent);\n\n    currentPage = \"Page 2\";\n\n    page.rootInstance.updateScrollOffset();\n\n    await page.waitForChanges();\n\n    expect(currentPage).toEqual(\"Page 2\");\n  });\n\n  it(\"should change number of items per page when select dropdown is changed\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable, PaginationBar],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={longData}\n          show-pagination\n          paginationBarOptions={{\n            itemsPerPageOptions: [\n              { label: \"10\", value: \"10\" },\n              { label: \"25\", value: \"25\" },\n              { label: \"50\", value: \"50\" },\n            ],\n            rangeLabelType: \"data\",\n          }}\n        ></ic-data-table>\n      ),\n    });\n\n    await page.waitForChanges();\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const paginationBar =\n      dataTable.shadowRoot.querySelector(\"ic-pagination-bar\");\n\n    const itemsPerPageLabel = paginationBar.shadowRoot.querySelector(\n      \".item-pagination-label\"\n    );\n\n    page.rootInstance.rowsPerPage = 10;\n\n    expect(itemsPerPageLabel.textContent).toEqual(\"1 - 10 of 20 items\");\n\n    const icPageChangeEvent = new CustomEvent(\"icPageChange\", {\n      detail: { value: \"1\" },\n    });\n\n    const icItemsPerPageChangeEventUp = new CustomEvent(\n      \"icItemsPerPageChange\",\n      {\n        detail: { value: \"20\" },\n      }\n    );\n\n    const icItemsPerPageChangeEventDown = new CustomEvent(\n      \"icItemsPerPageChange\",\n      { detail: { value: \"10\" } }\n    );\n\n    dataTable.dispatchEvent(icItemsPerPageChangeEventUp);\n\n    page.rootInstance.rowsPerPage = 20;\n\n    dataTable.dispatchEvent(icPageChangeEvent);\n\n    page.rootInstance.toRow = 20;\n\n    await page.waitForChanges();\n\n    dataTable.dispatchEvent(icItemsPerPageChangeEventDown);\n\n    page.rootInstance.previousRowsPerPage = 20;\n\n    page.rootInstance.rowsPerPage = 10;\n\n    dataTable.dispatchEvent(icPageChangeEvent);\n\n    await page.waitForChanges();\n\n    expect(itemsPerPageLabel.textContent).toEqual(\"1 - 10 of 20 items\");\n  });\n\n  it(\"should sort data when the sort button is clicked\", async () => {\n    const page = await newSpecPage({\n      components: [IcButton, DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithObjects}\n          sortable\n        ></ic-data-table>\n      ),\n    });\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const sortButton = Array.from(\n      dataTable.shadowRoot.querySelectorAll(\".sort-button\")\n    ) as HTMLIcButtonElement[];\n\n    expect(page.root).toMatchSnapshot();\n\n    sortButton[0].click();\n\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n\n    sortButton[0].click();\n\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n\n    sortButton[1].click();\n\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should change the density of the element when it receives the icTableDensityUpdate event\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"Table\" columns={columns} data={data}>\n          <ic-data-table-title-bar slot=\"title-bar\"></ic-data-table-title-bar>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.rootInstance.density).toBe(\"default\");\n\n    let icDensityUpdateEvent = new CustomEvent(\"icTableDensityUpdate\", {\n      detail: { value: \"dense\" },\n    });\n    page.root.dispatchEvent(icDensityUpdateEvent);\n\n    await page.waitForChanges();\n    expect(page.rootInstance.density).toBe(\"dense\");\n\n    icDensityUpdateEvent = new CustomEvent(\"icTableDensityUpdate\", {\n      detail: { value: \"spacious\" },\n    });\n    page.root.dispatchEvent(icDensityUpdateEvent);\n\n    await page.waitForChanges();\n    expect(page.rootInstance.density).toBe(\"spacious\");\n  });\n\n  it(\"should pass the caption down to any slotted ic-data-table-title-bar\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable, DataTableTitleBar],\n      template: () => (\n        <ic-data-table caption=\"Table\" columns={columns} data={data}>\n          <ic-data-table-title-bar slot=\"title-bar\"></ic-data-table-title-bar>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should highlight the correct row when clicked\", async () => {\n    const page = await newSpecPage({\n      components: [IcButton, DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n        ></ic-data-table>\n      ),\n    });\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const rows = dataTable.shadowRoot.querySelectorAll(\"tr\");\n\n    rows[1].click();\n\n    await page.waitForChanges();\n\n    expect(rows[1]).toHaveClass(highlightedRowClass);\n\n    rows[2].click();\n\n    await page.waitForChanges();\n\n    expect(rows[1]).not.toHaveClass(highlightedRowClass);\n    expect(rows[2]).toHaveClass(highlightedRowClass);\n\n    page.win.dispatchEvent(\n      new MouseEvent(\"click\", {\n        bubbles: true,\n        cancelable: true,\n      })\n    );\n\n    await page.waitForChanges();\n\n    expect(rows[1]).not.toHaveClass(highlightedRowClass);\n    expect(rows[2]).not.toHaveClass(highlightedRowClass);\n  });\n\n  it(\"should apply a specified row height to all rows when globalRowHeight is set\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should apply a specified row height to specific rows when variableRowHeight is set, and any not included should use the default globalRowHeight\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? 200 : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should reset all rows to the default height when resetRowHeights is called\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? 200 : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    await (page.root as HTMLIcDataTableElement).resetRowHeights(40);\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should emit icRowHeightChange when globalRowHeight or variableRowHeight is changed\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? 200 : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    const eventSpy = jest.fn();\n\n    page.root.addEventListener(\"icRowHeightChange\", eventSpy);\n\n    const dataTable = page.root as HTMLIcDataTableElement;\n    dataTable.globalRowHeight = 50;\n    await page.waitForChanges();\n\n    expect(eventSpy).toHaveBeenCalledTimes(1);\n\n    dataTable.variableRowHeight = ({ index }) => (index % 2 === 0 ? 100 : null);\n    await page.waitForChanges();\n\n    expect(eventSpy).toHaveBeenCalledTimes(2);\n  });\n\n  it(\"should emit icSortChange when column sort button is clicked\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          sortable\n        ></ic-data-table>\n      ),\n    });\n\n    const eventSpy = jest.fn();\n\n    page.root.addEventListener(\"icSortChange\", eventSpy);\n\n    const dataTable = document.querySelector(icDataTable);\n\n    const sortButton = Array.from(\n      dataTable.shadowRoot.querySelectorAll(\".sort-button\")\n    ) as HTMLIcButtonElement[];\n\n    sortButton[0].click();\n\n    await page.waitForChanges();\n\n    expect(eventSpy).toHaveBeenCalledWith(\n      expect.objectContaining({\n        detail: { columnName: \"name\", sorted: \"ascending\" },\n      })\n    );\n  });\n\n  it(\"should apply the correct density scaler to rowHeights when not using the default density\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight={80}\n          density=\"dense\"\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n\n    (page.root as HTMLIcDataTableElement).density = \"spacious\";\n    await page.waitForChanges();\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should not override the height of rows if `globalRowHeight` is set to auto\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          globalRowHeight=\"auto\"\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should not override the height of certain rows if `variableRowHeight` returns auto\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={data}\n          // eslint-disable-next-line react/jsx-no-bind\n          variableRowHeight={({ index }) => (index % 2 === 0 ? \"auto\" : null)}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should slot a custom element into a cell\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithElements}\n          data={dataWithElements}\n        >\n          {dataWithElements.map((_, index) => (\n            <ic-button key={index} slot={`actions-${index}`}>\n              Delete\n            </ic-button>\n          ))}\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render an action element if present in the data set\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={dataWithActionElement}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should add description text or sub-icon to cells of table\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"Table\"\n          columns={columnsWithElements}\n          data={LONG_DATA_ELEMENTS_WITH_DESCRIPTIONS}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render the loading indicator with an overlay above the table\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={[data[0]]}\n          loading={true}\n          loadingOptions={{\n            overlay: true,\n          }}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should render updating in assertive aria-live div\", async () => {\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table\n          caption=\"test table\"\n          columns={columns}\n          data={[data[0]]}\n          updating={true}\n        ></ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n  });\n\n  it(\"should test slotted action elements\", async () => {\n    const mockCallback = jest.fn((x) => x + 1);\n\n    const page = await newSpecPage({\n      components: [DataTable],\n      template: () => (\n        <ic-data-table caption=\"test table\" columns={columns} data={data}>\n          <div slot=\"name-0-action-element\" style={{ display: \"flex\" }}>\n            <ic-button\n              variant=\"icon\"\n              size=\"small\"\n              onClick={mockCallback(1)}\n              aria-label=\"Download data\"\n              id=\"download-button\"\n              innerHTML={downloadIconSVG}\n            ></ic-button>\n            <ic-button\n              variant=\"icon\"\n              size=\"small\"\n              onClick={mockCallback(2)}\n              aria-label=\"Call phone\"\n              id=\"cellphone-button\"\n              innerHTML={cellphoneIconSVG}\n            ></ic-button>\n            <ic-button\n              variant=\"icon\"\n              size=\"small\"\n              onClick={mockCallback(3)}\n              aria-label=\"Copy data\"\n              id=\"copy-button\"\n              innerHTML={copyIconSVG}\n            ></ic-button>\n          </div>\n        </ic-data-table>\n      ),\n    });\n\n    expect(page.root).toMatchSnapshot();\n    const dataTable = document.querySelector(icDataTable);\n    const actionEl = dataTable?.shadowRoot?.querySelector(\".action-element\");\n\n    const downloadButton =\n      actionEl?.querySelector<HTMLIcButtonElement>(\"#download-button\");\n    downloadButton?.click();\n\n    const cellphoneButton =\n      actionEl?.querySelector<HTMLIcButtonElement>(\"#cellphone-button\");\n    cellphoneButton?.click();\n\n    const copyButton =\n      actionEl?.querySelector<HTMLIcButtonElement>(\"#copy-button\");\n    copyButton?.click();\n\n    expect(mockCallback.mock.results[0].value).toEqual(2);\n    expect(mockCallback.mock.results[1].value).toEqual(3);\n    expect(mockCallback.mock.results[2].value).toEqual(4);\n  });\n});\n"]}
         
     | 
| 
         @@ -305,12 +305,24 @@ const DataTable = /*@__PURE__*/ proxyCustomElement(class DataTable extends HTMLE 
     | 
|
| 
       305 
305 
     | 
    
         
             
                        return {};
         
     | 
| 
       306 
306 
     | 
    
         
             
                    };
         
     | 
| 
       307 
307 
     | 
    
         
             
                    this.adjustWidthForActionElement = () => {
         
     | 
| 
       308 
     | 
    
         
            -
                         
     | 
| 
       309 
     | 
    
         
            -
                        elements. 
     | 
| 
       310 
     | 
    
         
            -
             
     | 
| 
       311 
     | 
    
         
            -
             
     | 
| 
       312 
     | 
    
         
            -
                            const  
     | 
| 
       313 
     | 
    
         
            -
                             
     | 
| 
      
 308 
     | 
    
         
            +
                        var _a;
         
     | 
| 
      
 309 
     | 
    
         
            +
                        const elements = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(".action-element");
         
     | 
| 
      
 310 
     | 
    
         
            +
                        elements === null || elements === void 0 ? void 0 : elements.forEach((actionElementSpan) => {
         
     | 
| 
      
 311 
     | 
    
         
            +
                            let width = 0;
         
     | 
| 
      
 312 
     | 
    
         
            +
                            const actionElement = actionElementSpan.firstChild;
         
     | 
| 
      
 313 
     | 
    
         
            +
                            if (actionElement.tagName.toLowerCase() === "slot") {
         
     | 
| 
      
 314 
     | 
    
         
            +
                                const slottedActionElement = this.getSlottedActionElement(actionElement);
         
     | 
| 
      
 315 
     | 
    
         
            +
                                if (slottedActionElement) {
         
     | 
| 
      
 316 
     | 
    
         
            +
                                    width = slottedActionElement.getBoundingClientRect().width;
         
     | 
| 
      
 317 
     | 
    
         
            +
                                }
         
     | 
| 
      
 318 
     | 
    
         
            +
                            }
         
     | 
| 
      
 319 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 320 
     | 
    
         
            +
                                width = actionElement.getBoundingClientRect().width;
         
     | 
| 
      
 321 
     | 
    
         
            +
                            }
         
     | 
| 
      
 322 
     | 
    
         
            +
                            const gridWrapper = actionElementSpan.closest(".cell-grid-wrapper");
         
     | 
| 
      
 323 
     | 
    
         
            +
                            if (gridWrapper) {
         
     | 
| 
      
 324 
     | 
    
         
            +
                                gridWrapper.style.gridTemplateColumns = `auto calc(${width}px + var(--ic-space-xs))`;
         
     | 
| 
      
 325 
     | 
    
         
            +
                            }
         
     | 
| 
       314 
326 
     | 
    
         
             
                        });
         
     | 
| 
       315 
327 
     | 
    
         
             
                    };
         
     | 
| 
       316 
328 
     | 
    
         
             
                    this.createCellContent = (columnProps, cell, cellSlotName, rowOptions, rowAlignment, hasIcon, currentRowHeight, cellValue, rowEmphasis) => {
         
     | 
| 
         @@ -371,6 +383,7 @@ const DataTable = /*@__PURE__*/ proxyCustomElement(class DataTable extends HTMLE 
     | 
|
| 
       371 
383 
     | 
    
         
             
                            const cellSlotName = `${columnProps === null || columnProps === void 0 ? void 0 : columnProps.key}-${rowIndex}`;
         
     | 
| 
       372 
384 
     | 
    
         
             
                            const hasIcon = this.isObject(cell) && Object.keys(cell).includes("icon");
         
     | 
| 
       373 
385 
     | 
    
         
             
                            const cellValue = (key) => this.getObjectValue(cell, key);
         
     | 
| 
      
 386 
     | 
    
         
            +
                            const CellContent = this.createCellContent(columnProps, cell, cellSlotName, rowOptions, rowAlignment, hasIcon, currentRowHeight, cellValue, rowEmphasis);
         
     | 
| 
       374 
387 
     | 
    
         
             
                            if (rowKeys[index] === "header") {
         
     | 
| 
       375 
388 
     | 
    
         
             
                                return (h("th", { scope: "row", colSpan: cellValue("colspan"), class: {
         
     | 
| 
       376 
389 
     | 
    
         
             
                                        ["row-header"]: true,
         
     | 
| 
         @@ -383,12 +396,12 @@ const DataTable = /*@__PURE__*/ proxyCustomElement(class DataTable extends HTMLE 
     | 
|
| 
       383 
396 
     | 
    
         
             
                                        ["table-cell"]: true,
         
     | 
| 
       384 
397 
     | 
    
         
             
                                        [`table-density-${this.density}`]: this.notDefaultDensity(),
         
     | 
| 
       385 
398 
     | 
    
         
             
                                        ["with-overflow"]: (columnProps === null || columnProps === void 0 ? void 0 : columnProps.dataType) === "element",
         
     | 
| 
       386 
     | 
    
         
            -
                                    }, style: Object.assign({}, this.getColumnWidth(columnProps.columnWidth)) }, this.isObject(cell) &&
         
     | 
| 
       387 
     | 
    
         
            -
                                    Object.keys(cell).includes("actionElement") ? (h("div", { class: "cell-grid-wrapper" },  
     | 
| 
      
 399 
     | 
    
         
            +
                                    }, style: Object.assign({}, this.getColumnWidth(columnProps.columnWidth)) }, isSlotUsed(this.el, `${cellSlotName}-action-element`) ? (h("div", { class: "cell-grid-wrapper" }, CellContent, h("span", { class: "action-element" }, h("slot", { name: `${cellSlotName}-action-element` })))) : this.isObject(cell) &&
         
     | 
| 
      
 400 
     | 
    
         
            +
                                    Object.keys(cell).includes("actionElement") ? (h("div", { class: "cell-grid-wrapper" }, CellContent, h("span", { class: "action-element", innerHTML: cellValue("actionElement"),
         
     | 
| 
       388 
401 
     | 
    
         
             
                                    // eslint-disable-next-line react/jsx-no-bind
         
     | 
| 
       389 
402 
     | 
    
         
             
                                    onClick: cell.actionOnClick
         
     | 
| 
       390 
403 
     | 
    
         
             
                                        ? (event) => this.handleClick(event, cell.actionOnClick)
         
     | 
| 
       391 
     | 
    
         
            -
                                        : undefined }))) : ( 
     | 
| 
      
 404 
     | 
    
         
            +
                                        : undefined }))) : (CellContent)));
         
     | 
| 
       392 
405 
     | 
    
         
             
                            }
         
     | 
| 
       393 
406 
     | 
    
         
             
                        });
         
     | 
| 
       394 
407 
     | 
    
         
             
                    };
         
     | 
| 
         @@ -465,6 +478,10 @@ const DataTable = /*@__PURE__*/ proxyCustomElement(class DataTable extends HTMLE 
     | 
|
| 
       465 
478 
     | 
    
         
             
                            }, this.createCells(row, index + paginationOffset)));
         
     | 
| 
       466 
479 
     | 
    
         
             
                        });
         
     | 
| 
       467 
480 
     | 
    
         
             
                    };
         
     | 
| 
      
 481 
     | 
    
         
            +
                    this.getSlottedActionElement = (actionElement) => {
         
     | 
| 
      
 482 
     | 
    
         
            +
                        const slotName = actionElement.getAttribute("name");
         
     | 
| 
      
 483 
     | 
    
         
            +
                        return this.el.querySelector(`[slot="${slotName}"]`);
         
     | 
| 
      
 484 
     | 
    
         
            +
                    };
         
     | 
| 
       468 
485 
     | 
    
         
             
                    this.getObjectValue = (cell, key) => Object.values(cell)[Object.keys(cell).indexOf(key)];
         
     | 
| 
       469 
486 
     | 
    
         
             
                    this.getSortButtonLabel = (key) => {
         
     | 
| 
       470 
487 
     | 
    
         
             
                        let label = "";
         
     | 
| 
         @@ -627,18 +644,23 @@ const DataTable = /*@__PURE__*/ proxyCustomElement(class DataTable extends HTMLE 
     | 
|
| 
       627 
644 
     | 
    
         
             
                        }
         
     | 
| 
       628 
645 
     | 
    
         
             
                    };
         
     | 
| 
       629 
646 
     | 
    
         
             
                    this.fixCellTooltips = () => {
         
     | 
| 
       630 
     | 
    
         
            -
                         
     | 
| 
       631 
     | 
    
         
            -
                         
     | 
| 
      
 647 
     | 
    
         
            +
                        var _a, _b, _c, _d;
         
     | 
| 
      
 648 
     | 
    
         
            +
                        (_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(".data-type-element")) === null || _b === void 0 ? void 0 : _b.forEach((element) => {
         
     | 
| 
       632 
649 
     | 
    
         
             
                            const slotElements = getSlotElements(element);
         
     | 
| 
       633 
650 
     | 
    
         
             
                            slotElements === null || slotElements === void 0 ? void 0 : slotElements.forEach((slottedEl) => {
         
     | 
| 
       634 
651 
     | 
    
         
             
                                this.fixCellTooltip(slottedEl);
         
     | 
| 
       635 
652 
     | 
    
         
             
                            });
         
     | 
| 
       636 
653 
     | 
    
         
             
                        });
         
     | 
| 
       637 
     | 
    
         
            -
                         
     | 
| 
       638 
     | 
    
         
            -
                        actionElements === null || actionElements === void 0 ? void 0 : actionElements.forEach((actionElementSpan) => {
         
     | 
| 
      
 654 
     | 
    
         
            +
                        (_d = (_c = this.el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelectorAll(".action-element")) === null || _d === void 0 ? void 0 : _d.forEach((actionElementSpan) => {
         
     | 
| 
       639 
655 
     | 
    
         
             
                            const actionElement = actionElementSpan.firstChild;
         
     | 
| 
       640 
     | 
    
         
            -
                            if (actionElement) {
         
     | 
| 
       641 
     | 
    
         
            -
                                this. 
     | 
| 
      
 656 
     | 
    
         
            +
                            if (actionElement.tagName.toLowerCase() === "slot") {
         
     | 
| 
      
 657 
     | 
    
         
            +
                                const slottedActionElement = this.getSlottedActionElement(actionElement);
         
     | 
| 
      
 658 
     | 
    
         
            +
                                if (slottedActionElement) {
         
     | 
| 
      
 659 
     | 
    
         
            +
                                    this.fixCellTooltip(slottedActionElement);
         
     | 
| 
      
 660 
     | 
    
         
            +
                                }
         
     | 
| 
      
 661 
     | 
    
         
            +
                            }
         
     | 
| 
      
 662 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 663 
     | 
    
         
            +
                                this.fixCellTooltip(actionElementSpan);
         
     | 
| 
       642 
664 
     | 
    
         
             
                            }
         
     | 
| 
       643 
665 
     | 
    
         
             
                        });
         
     | 
| 
       644 
666 
     | 
    
         
             
                    };
         
     |