@ukic/canary-web-components 2.0.0-canary.41 → 2.0.0-canary.42

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.
Files changed (38) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-data-table.cjs.entry.js +37 -15
  3. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-pagination_4.cjs.entry.js +10 -4
  5. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/components/ic-data-table/ic-data-table.js +37 -15
  8. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  9. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +8 -1
  10. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
  11. package/dist/collection/components/ic-data-table/story-data.js +32 -3
  12. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  13. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +23 -0
  14. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  15. package/dist/components/ic-data-table.js +37 -15
  16. package/dist/components/ic-data-table.js.map +1 -1
  17. package/dist/components/ic-text-field2.js +11 -4
  18. package/dist/components/ic-text-field2.js.map +1 -1
  19. package/dist/core/core.esm.js +1 -1
  20. package/dist/core/core.esm.js.map +1 -1
  21. package/dist/core/{p-61848e6b.entry.js → p-12f5911d.entry.js} +2 -2
  22. package/dist/core/p-12f5911d.entry.js.map +1 -0
  23. package/dist/core/p-4a89994a.entry.js +2 -0
  24. package/dist/core/p-4a89994a.entry.js.map +1 -0
  25. package/dist/esm/core.js +1 -1
  26. package/dist/esm/ic-data-table.entry.js +37 -15
  27. package/dist/esm/ic-data-table.entry.js.map +1 -1
  28. package/dist/esm/ic-pagination_4.entry.js +10 -4
  29. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  30. package/dist/esm/loader.js +1 -1
  31. package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -0
  32. package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +14 -8
  33. package/dist/types/components/ic-data-table/story-data.d.ts +1 -0
  34. package/hydrate/index.js +48 -19
  35. package/package.json +3 -3
  36. package/dist/core/p-3ebd4703.entry.js +0 -2
  37. package/dist/core/p-3ebd4703.entry.js.map +0 -1
  38. 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
- const elements = this.el.shadowRoot.querySelectorAll(".action-element");
309
- elements.forEach((element) => {
310
- const width = element.firstChild.getBoundingClientRect()
311
- .width;
312
- const gridWrapper = element.closest(".cell-grid-wrapper");
313
- gridWrapper.style.gridTemplateColumns = `auto calc(${width}px + var(--ic-space-xs))`;
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" }, this.createCellContent(columnProps, cell, cellSlotName, rowOptions, rowAlignment, hasIcon, currentRowHeight, cellValue, rowEmphasis), h("span", { class: "action-element", innerHTML: cellValue("actionElement"),
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 }))) : (this.createCellContent(columnProps, cell, cellSlotName, rowOptions, rowAlignment, hasIcon, currentRowHeight, cellValue, rowEmphasis))));
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
- const elements = this.el.shadowRoot.querySelectorAll(".data-type-element");
631
- elements.forEach((element) => {
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
- const actionElements = this.el.shadowRoot.querySelectorAll(".action-element");
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.fixCellTooltip(actionElement);
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
  };