@veeqo/ui 9.9.0 → 9.9.2

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 (101) hide show
  1. package/dist/components/DataGrid/DataGrid.cjs +60 -6
  2. package/dist/components/DataGrid/DataGrid.cjs.map +1 -1
  3. package/dist/components/DataGrid/DataGrid.d.ts +2 -2
  4. package/dist/components/DataGrid/DataGrid.js +60 -6
  5. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  6. package/dist/components/DataGrid/DataGrid.module.css.cjs +13 -0
  7. package/dist/components/DataGrid/DataGrid.module.css.cjs.map +1 -0
  8. package/dist/components/DataGrid/DataGrid.module.css.js +10 -0
  9. package/dist/components/DataGrid/DataGrid.module.css.js.map +1 -0
  10. package/dist/components/DataGrid/columns/SelectionColumnDefinition.cjs +36 -0
  11. package/dist/components/DataGrid/columns/SelectionColumnDefinition.cjs.map +1 -0
  12. package/dist/components/DataGrid/columns/SelectionColumnDefinition.d.ts +2 -0
  13. package/dist/components/DataGrid/columns/SelectionColumnDefinition.js +30 -0
  14. package/dist/components/DataGrid/columns/SelectionColumnDefinition.js.map +1 -0
  15. package/dist/components/DataGrid/columns/index.d.ts +1 -0
  16. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +4 -2
  17. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -1
  18. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +4 -2
  19. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -1
  20. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.cjs +3 -3
  21. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.cjs.map +1 -1
  22. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.js +3 -3
  23. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.js.map +1 -1
  24. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.cjs +3 -3
  25. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.cjs.map +1 -1
  26. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.js +3 -3
  27. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.js.map +1 -1
  28. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.cjs +10 -2
  29. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.cjs.map +1 -1
  30. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.js +10 -2
  31. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.js.map +1 -1
  32. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.cjs +3 -3
  33. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.cjs.map +1 -1
  34. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.js +3 -3
  35. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.js.map +1 -1
  36. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs +10 -5
  37. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs.map +1 -1
  38. package/dist/components/DataGrid/components/GridContainer/GridContainer.js +10 -5
  39. package/dist/components/DataGrid/components/GridContainer/GridContainer.js.map +1 -1
  40. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +29 -5
  41. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -1
  42. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +30 -6
  43. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -1
  44. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.cjs +9 -5
  45. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.cjs.map +1 -1
  46. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.js +8 -6
  47. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.js.map +1 -1
  48. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.cjs +29 -0
  49. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.cjs.map +1 -0
  50. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.d.ts +10 -0
  51. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.js +23 -0
  52. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.js.map +1 -0
  53. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/index.d.ts +1 -0
  54. package/dist/components/DataGrid/constants.cjs +2 -0
  55. package/dist/components/DataGrid/constants.cjs.map +1 -1
  56. package/dist/components/DataGrid/constants.d.ts +1 -0
  57. package/dist/components/DataGrid/constants.js +2 -1
  58. package/dist/components/DataGrid/constants.js.map +1 -1
  59. package/dist/components/DataGrid/hooks/index.d.ts +3 -0
  60. package/dist/components/DataGrid/hooks/usePinnedColumnLayout.cjs +39 -0
  61. package/dist/components/DataGrid/hooks/usePinnedColumnLayout.cjs.map +1 -0
  62. package/dist/components/DataGrid/hooks/usePinnedColumnLayout.d.ts +15 -0
  63. package/dist/components/DataGrid/hooks/usePinnedColumnLayout.js +37 -0
  64. package/dist/components/DataGrid/hooks/usePinnedColumnLayout.js.map +1 -0
  65. package/dist/components/DataGrid/hooks/usePinnedColumnStyles.cjs +22 -0
  66. package/dist/components/DataGrid/hooks/usePinnedColumnStyles.cjs.map +1 -0
  67. package/dist/components/DataGrid/hooks/usePinnedColumnStyles.d.ts +13 -0
  68. package/dist/components/DataGrid/hooks/usePinnedColumnStyles.js +20 -0
  69. package/dist/components/DataGrid/hooks/usePinnedColumnStyles.js.map +1 -0
  70. package/dist/components/DataGrid/hooks/useSelectionState.cjs +51 -0
  71. package/dist/components/DataGrid/hooks/useSelectionState.cjs.map +1 -0
  72. package/dist/components/DataGrid/hooks/useSelectionState.d.ts +18 -0
  73. package/dist/components/DataGrid/hooks/useSelectionState.js +49 -0
  74. package/dist/components/DataGrid/hooks/useSelectionState.js.map +1 -0
  75. package/dist/components/DataGrid/hooks/useSortingState.cjs +40 -0
  76. package/dist/components/DataGrid/hooks/useSortingState.cjs.map +1 -0
  77. package/dist/components/DataGrid/hooks/useSortingState.d.ts +23 -0
  78. package/dist/components/DataGrid/hooks/useSortingState.js +38 -0
  79. package/dist/components/DataGrid/hooks/useSortingState.js.map +1 -0
  80. package/dist/components/DataGrid/types/ColumnDefinition.d.ts +4 -2
  81. package/dist/components/DataGrid/types/DataGridProps.d.ts +33 -1
  82. package/dist/components/DataGrid/types/PinnedColumnState.d.ts +4 -0
  83. package/dist/components/DataGrid/types/SortState.d.ts +5 -0
  84. package/dist/components/DataGrid/types/enums.d.ts +2 -0
  85. package/dist/components/DataGrid/types/index.d.ts +3 -1
  86. package/dist/components/DataGrid/utils/ColumnMapper.cjs +1 -0
  87. package/dist/components/DataGrid/utils/ColumnMapper.cjs.map +1 -1
  88. package/dist/components/DataGrid/utils/ColumnMapper.js +1 -0
  89. package/dist/components/DataGrid/utils/ColumnMapper.js.map +1 -1
  90. package/dist/components/DataGrid/utils/index.d.ts +1 -0
  91. package/dist/components/DataGrid/utils/pinnedColumnUtils.cjs +33 -0
  92. package/dist/components/DataGrid/utils/pinnedColumnUtils.cjs.map +1 -0
  93. package/dist/components/DataGrid/utils/pinnedColumnUtils.d.ts +4 -0
  94. package/dist/components/DataGrid/utils/pinnedColumnUtils.js +30 -0
  95. package/dist/components/DataGrid/utils/pinnedColumnUtils.js.map +1 -0
  96. package/dist/components/Radio/Radio.cjs +2 -2
  97. package/dist/components/Radio/Radio.cjs.map +1 -1
  98. package/dist/components/Radio/Radio.d.ts +2 -2
  99. package/dist/components/Radio/Radio.js +2 -2
  100. package/dist/components/Radio/Radio.js.map +1 -1
  101. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BodyCell.module.css.cjs","sources":["../../../../../../src/components/DataGrid/components/Body/BodyCell/BodyCell.module.css"],"sourcesContent":[".bodyCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n background-color: white;\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-size: var(--text-body-small-font-size);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n}\n\n:global(.data-grid-row.striped:nth-of-type(odd)) > .bodyCell {\n background-color: var(--colors-neutral-grey-lightest);\n}\n\n:global(.data-grid-row.selected) > .bodyCell {\n background-color: var(--colors-brand-blue-lightest);\n}\n\n:global(.data-grid-row + .data-grid-row) > .bodyCell {\n border-top: 1px solid var(--colors-neutral-grey-base);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,64CAA64C,CAAC;AAC94C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,QAAQ,GAAG;;;;"}
1
+ {"version":3,"file":"BodyCell.module.css.cjs","sources":["../../../../../../src/components/DataGrid/components/Body/BodyCell/BodyCell.module.css"],"sourcesContent":[".bodyCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n background-color: white;\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-size: var(--text-body-small-font-size);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n}\n\n:global(.data-grid-row.striped:nth-of-type(odd)) > .bodyCell {\n background-color: var(--colors-neutral-grey-lightest);\n}\n\n:global(.data-grid-row.selected) > .bodyCell {\n background-color: var(--colors-brand-blue-lightest);\n}\n\n:global(.data-grid-row + .data-grid-row) > .bodyCell {\n border-top: 1px solid var(--colors-neutral-grey-base);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,ijDAAijD,CAAC;AACljD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,QAAQ,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
- const cssContents = `._baseCell_1w2bt_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._bodyCell_w9phy_1{background-color:#fff;color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-size:var(--text-body-small-font-size);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}.data-grid-row.striped:nth-of-type(odd)>._bodyCell_w9phy_1{background-color:var(--colors-neutral-grey-lightest)}.data-grid-row.selected>._bodyCell_w9phy_1{background-color:var(--colors-brand-blue-lightest)}.data-grid-row+.data-grid-row>._bodyCell_w9phy_1{border-top:1px solid var(--colors-neutral-grey-base)}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiQm9keUNlbGwubW9kdWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBQSxzQkFBQSxrQkFBQSx3QkFBQSwySEFBQSwwQkFBQSxDQUFBLEFDQUEsbUJBR0UscUJBQXVCLENBRXZCLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsMENBQTJDLENBQzNDLDhDQUErQyxDQUMvQyw4Q0FDRixDQUVBLDJEQUNFLG9EQUNGLENBRUEsMkNBQ0Usa0RBQ0YsQ0FFQSxpREFDRSxvREFDRiIsImZpbGUiOiJCb2R5Q2VsbC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIuYm9keUNlbGwge1xuICBjb21wb3NlczogYmFzZUNlbGwgZnJvbSAnLi4vLi4vLi4vRGF0YUdyaWQubW9kdWxlLmNzcyc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgY29sb3I6IHZhcigtLXRleHQtYm9keS1zbWFsbC1jb2xvcik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXh0LWJvZHktc21hbGwtZm9udC1mYW1pbHkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYm9keS1zbWFsbC1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbjpnbG9iYWwoLmRhdGEtZ3JpZC1yb3cuc3RyaXBlZDpudGgtb2YtdHlwZShvZGQpKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1uZXV0cmFsLWdyZXktbGlnaHRlc3QpO1xufVxuXG46Z2xvYmFsKC5kYXRhLWdyaWQtcm93LnNlbGVjdGVkKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1icmFuZC1ibHVlLWxpZ2h0ZXN0KTtcbn1cblxuOmdsb2JhbCguZGF0YS1ncmlkLXJvdyArIC5kYXRhLWdyaWQtcm93KSA+IC5ib2R5Q2VsbCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWJhc2UpO1xufVxuIl19 */`;
1
+ const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}._bodyCell_w9phy_1{background-color:#fff;color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-size:var(--text-body-small-font-size);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}.data-grid-row.striped:nth-of-type(odd)>._bodyCell_w9phy_1{background-color:var(--colors-neutral-grey-lightest)}.data-grid-row.selected>._bodyCell_w9phy_1{background-color:var(--colors-brand-blue-lightest)}.data-grid-row+.data-grid-row>._bodyCell_w9phy_1{border-top:1px solid var(--colors-neutral-grey-base)}
2
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiQm9keUNlbGwubW9kdWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBQSxzQkFBQSxrQkFBQSx3QkFBQSwySEFBQSwwQkFBQSxDQUFBLDRCQUFBLFFBQUEsWUFBQSxzQkFBQSxXQUFBLG9CQUFBLGtCQUFBLHNCQUFBLFdBQUEsQ0FBQSw0QkFBQSxRQUFBLGtEQUFBLHdCQUFBLDBCQUFBLENBQUEsNkJBQUEsUUFBQSxtREFBQSx1QkFBQSwyQkFBQSxDQUFBLEFDQUEsbUJBR0UscUJBQXVCLENBRXZCLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsMENBQTJDLENBQzNDLDhDQUErQyxDQUMvQyw4Q0FDRixDQUVBLDJEQUNFLG9EQUNGLENBRUEsMkNBQ0Usa0RBQ0YsQ0FFQSxpREFDRSxvREFDRiIsImZpbGUiOiJCb2R5Q2VsbC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIuYm9keUNlbGwge1xuICBjb21wb3NlczogYmFzZUNlbGwgZnJvbSAnLi4vLi4vLi4vRGF0YUdyaWQubW9kdWxlLmNzcyc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgY29sb3I6IHZhcigtLXRleHQtYm9keS1zbWFsbC1jb2xvcik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXh0LWJvZHktc21hbGwtZm9udC1mYW1pbHkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYm9keS1zbWFsbC1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbjpnbG9iYWwoLmRhdGEtZ3JpZC1yb3cuc3RyaXBlZDpudGgtb2YtdHlwZShvZGQpKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1uZXV0cmFsLWdyZXktbGlnaHRlc3QpO1xufVxuXG46Z2xvYmFsKC5kYXRhLWdyaWQtcm93LnNlbGVjdGVkKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1icmFuZC1ibHVlLWxpZ2h0ZXN0KTtcbn1cblxuOmdsb2JhbCguZGF0YS1ncmlkLXJvdyArIC5kYXRhLWdyaWQtcm93KSA+IC5ib2R5Q2VsbCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWJhc2UpO1xufVxuIl19 */`;
3
3
  const style = document.createElement('style');
4
4
  style.innerHTML = cssContents;
5
5
  document.head.appendChild(style);
6
- const bodyCell = '_bodyCell_w9phy_1 _baseCell_1w2bt_1';
6
+ const bodyCell = '_bodyCell_w9phy_1 _baseCell_13swz_1';
7
7
 
8
8
  export { bodyCell };
9
9
  //# sourceMappingURL=BodyCell.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BodyCell.module.css.js","sources":["../../../../../../src/components/DataGrid/components/Body/BodyCell/BodyCell.module.css"],"sourcesContent":[".bodyCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n background-color: white;\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-size: var(--text-body-small-font-size);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n}\n\n:global(.data-grid-row.striped:nth-of-type(odd)) > .bodyCell {\n background-color: var(--colors-neutral-grey-lightest);\n}\n\n:global(.data-grid-row.selected) > .bodyCell {\n background-color: var(--colors-brand-blue-lightest);\n}\n\n:global(.data-grid-row + .data-grid-row) > .bodyCell {\n border-top: 1px solid var(--colors-neutral-grey-base);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,64CAA64C,CAAC;AAC94C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,QAAQ,GAAG;;;;"}
1
+ {"version":3,"file":"BodyCell.module.css.js","sources":["../../../../../../src/components/DataGrid/components/Body/BodyCell/BodyCell.module.css"],"sourcesContent":[".bodyCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n background-color: white;\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-size: var(--text-body-small-font-size);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n}\n\n:global(.data-grid-row.striped:nth-of-type(odd)) > .bodyCell {\n background-color: var(--colors-neutral-grey-lightest);\n}\n\n:global(.data-grid-row.selected) > .bodyCell {\n background-color: var(--colors-brand-blue-lightest);\n}\n\n:global(.data-grid-row + .data-grid-row) > .bodyCell {\n border-top: 1px solid var(--colors-neutral-grey-base);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,ijDAAijD,CAAC;AACljD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,QAAQ,GAAG;;;;"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const cssContents = `._cellContent_16ovo_1{align-items:center;display:flex;gap:var(--sizes-small);padding:var(--density)}
4
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNlbGxDb250ZW50Lm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBR0Usa0JBQW1CLENBRm5CLFlBQWEsQ0FHYixzQkFBdUIsQ0FGdkIsc0JBR0YiLCJmaWxlIjoiQ2VsbENvbnRlbnQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZWxsQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IHZhcigtLWRlbnNpdHkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNpemVzLXNtYWxsKTtcbn1cbiJdfQ== */`;
3
+ const cssContents = `._cellContent_gaxlz_1{align-items:center;display:flex;gap:var(--sizes-sm);padding:var(--density)}
4
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNlbGxDb250ZW50Lm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBR0Usa0JBQW1CLENBRm5CLFlBQWEsQ0FHYixtQkFBb0IsQ0FGcEIsc0JBR0YiLCJmaWxlIjoiQ2VsbENvbnRlbnQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZWxsQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IHZhcigtLWRlbnNpdHkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNpemVzLXNtKTtcbn1cbiJdfQ== */`;
5
5
  const style = document.createElement('style');
6
6
  style.innerHTML = cssContents;
7
7
  document.head.appendChild(style);
8
- const cellContent = '_cellContent_16ovo_1';
8
+ const cellContent = '_cellContent_gaxlz_1';
9
9
 
10
10
  exports.cellContent = cellContent;
11
11
  //# sourceMappingURL=CellContent.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellContent.module.css.cjs","sources":["../../../../../src/components/DataGrid/components/CellContent/CellContent.module.css"],"sourcesContent":[".cellContent {\n display: flex;\n padding: var(--density);\n align-items: center;\n gap: var(--sizes-small);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,qcAAqc,CAAC;AACtc,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,WAAW,GAAG;;;;"}
1
+ {"version":3,"file":"CellContent.module.css.cjs","sources":["../../../../../src/components/DataGrid/components/CellContent/CellContent.module.css"],"sourcesContent":[".cellContent {\n display: flex;\n padding: var(--density);\n align-items: center;\n gap: var(--sizes-sm);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,icAAic,CAAC;AAClc,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,WAAW,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
- const cssContents = `._cellContent_16ovo_1{align-items:center;display:flex;gap:var(--sizes-small);padding:var(--density)}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNlbGxDb250ZW50Lm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBR0Usa0JBQW1CLENBRm5CLFlBQWEsQ0FHYixzQkFBdUIsQ0FGdkIsc0JBR0YiLCJmaWxlIjoiQ2VsbENvbnRlbnQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZWxsQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IHZhcigtLWRlbnNpdHkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNpemVzLXNtYWxsKTtcbn1cbiJdfQ== */`;
1
+ const cssContents = `._cellContent_gaxlz_1{align-items:center;display:flex;gap:var(--sizes-sm);padding:var(--density)}
2
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNlbGxDb250ZW50Lm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBR0Usa0JBQW1CLENBRm5CLFlBQWEsQ0FHYixtQkFBb0IsQ0FGcEIsc0JBR0YiLCJmaWxlIjoiQ2VsbENvbnRlbnQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZWxsQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IHZhcigtLWRlbnNpdHkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNpemVzLXNtKTtcbn1cbiJdfQ== */`;
3
3
  const style = document.createElement('style');
4
4
  style.innerHTML = cssContents;
5
5
  document.head.appendChild(style);
6
- const cellContent = '_cellContent_16ovo_1';
6
+ const cellContent = '_cellContent_gaxlz_1';
7
7
 
8
8
  export { cellContent };
9
9
  //# sourceMappingURL=CellContent.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellContent.module.css.js","sources":["../../../../../src/components/DataGrid/components/CellContent/CellContent.module.css"],"sourcesContent":[".cellContent {\n display: flex;\n padding: var(--density);\n align-items: center;\n gap: var(--sizes-small);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,qcAAqc,CAAC;AACtc,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,WAAW,GAAG;;;;"}
1
+ {"version":3,"file":"CellContent.module.css.js","sources":["../../../../../src/components/DataGrid/components/CellContent/CellContent.module.css"],"sourcesContent":[".cellContent {\n display: flex;\n padding: var(--density);\n align-items: center;\n gap: var(--sizes-sm);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,icAAic,CAAC;AAClc,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,WAAW,GAAG;;;;"}
@@ -4,6 +4,7 @@ var React = require('react');
4
4
  var reactTable = require('@tanstack/react-table');
5
5
  var buildClassnames = require('../../../../../utils/buildClassnames.cjs');
6
6
  require('uid/secure');
7
+ var usePinnedColumnStyles = require('../../../hooks/usePinnedColumnStyles.cjs');
7
8
  var CellContent = require('../../CellContent/CellContent.cjs');
8
9
  var FooterCell_module = require('./FooterCell.module.css.cjs');
9
10
 
@@ -11,13 +12,20 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
11
12
 
12
13
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
14
 
14
- const footerCellClassname = buildClassnames.buildClassnames([FooterCell_module.footerCell, 'data-grid-footer-cell']);
15
15
  /**
16
16
  * Renders a footer cell element, and its content, for a given column.
17
17
  */
18
18
  const FooterCell = ({ header, ariaRoles }) => {
19
19
  const { justifyContent, textAlign } = header.column.columnDef.meta;
20
- return (React__default.default.createElement("th", { scope: "row", role: ariaRoles.cell, "aria-colindex": header.column.getIndex() + 1, className: footerCellClassname },
20
+ const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles.usePinnedColumnStyles({
21
+ column: header.column,
22
+ });
23
+ const footerCellClassname = buildClassnames.buildClassnames([
24
+ FooterCell_module.footerCell,
25
+ pinnedCellClassName,
26
+ 'data-grid-footer-cell',
27
+ ]);
28
+ return (React__default.default.createElement("th", { scope: "row", role: ariaRoles.cell, "aria-colindex": header.column.getIndex() + 1, className: footerCellClassname, style: pinnedCellStyles },
21
29
  React__default.default.createElement(CellContent.CellContent, { contentStyle: { justifyContent, textAlign } }, reactTable.flexRender(header.column.columnDef.footer, header.getContext()))));
22
30
  };
23
31
 
@@ -1 +1 @@
1
- {"version":3,"file":"FooterCell.cjs","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { flexRender, Header } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\n\nimport { AriaRoles } from '../../../types';\nimport { CellContent } from '../../CellContent';\n\nimport { footerCell } from './FooterCell.module.css';\n\ntype FooterCellProps = {\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n};\n\nconst footerCellClassname = buildClassnames([footerCell, 'data-grid-footer-cell']);\n\n/**\n * Renders a footer cell element, and its content, for a given column.\n */\nexport const FooterCell = ({ header, ariaRoles }: FooterCellProps) => {\n const { justifyContent, textAlign } = header.column.columnDef.meta!;\n\n return (\n <th\n scope=\"row\"\n role={ariaRoles.cell}\n aria-colindex={header.column.getIndex() + 1}\n className={footerCellClassname}\n >\n <CellContent contentStyle={{ justifyContent, textAlign } as React.CSSProperties}>\n {flexRender(header.column.columnDef.footer, header.getContext())}\n </CellContent>\n </th>\n );\n};\n"],"names":["buildClassnames","footerCell","React","CellContent","flexRender"],"mappings":";;;;;;;;;;;;;AAuBA,MAAM,mBAAmB,GAAGA,+BAAe,CAAC,CAACC,4BAAU,EAAE,uBAAuB,CAAC,CAAC;AAElF;;AAEG;AACU,MAAA,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAmB,KAAI;AACnE,IAAA,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAK;IAEnE,QACEC,6CACE,KAAK,EAAC,KAAK,EACX,IAAI,EAAE,SAAS,CAAC,IAAI,mBACL,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAC3C,SAAS,EAAE,mBAAmB,EAAA;AAE9B,QAAAA,sBAAA,CAAA,aAAA,CAACC,uBAAW,EAAA,EAAC,YAAY,EAAE,EAAE,cAAc,EAAE,SAAS,EAAyB,EAAA,EAC5EC,qBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CACpD,CACX;AAET;;;;"}
1
+ {"version":3,"file":"FooterCell.cjs","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { flexRender, Header } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\n\nimport { usePinnedColumnStyles } from '../../../hooks/usePinnedColumnStyles';\n\nimport { AriaRoles } from '../../../types';\nimport { CellContent } from '../../CellContent';\n\nimport { footerCell } from './FooterCell.module.css';\n\ntype FooterCellProps = {\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n};\n\n/**\n * Renders a footer cell element, and its content, for a given column.\n */\nexport const FooterCell = ({ header, ariaRoles }: FooterCellProps) => {\n const { justifyContent, textAlign } = header.column.columnDef.meta!;\n\n const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles({\n column: header.column,\n });\n\n const footerCellClassname = buildClassnames([\n footerCell,\n pinnedCellClassName,\n 'data-grid-footer-cell',\n ]);\n\n return (\n <th\n scope=\"row\"\n role={ariaRoles.cell}\n aria-colindex={header.column.getIndex() + 1}\n className={footerCellClassname}\n style={pinnedCellStyles}\n >\n <CellContent contentStyle={{ justifyContent, textAlign } as React.CSSProperties}>\n {flexRender(header.column.columnDef.footer, header.getContext())}\n </CellContent>\n </th>\n );\n};\n"],"names":["usePinnedColumnStyles","buildClassnames","footerCell","React","CellContent","flexRender"],"mappings":";;;;;;;;;;;;;;AAyBA;;AAEG;AACU,MAAA,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAmB,KAAI;AACnE,IAAA,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAK;AAEnE,IAAA,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAGA,2CAAqB,CAAC;QACtE,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,KAAA,CAAC;IAEF,MAAM,mBAAmB,GAAGC,+BAAe,CAAC;QAC1CC,4BAAU;QACV,mBAAmB;QACnB,uBAAuB;AACxB,KAAA,CAAC;IAEF,QACEC,sBACE,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,KAAK,EAAC,KAAK,EACX,IAAI,EAAE,SAAS,CAAC,IAAI,EACL,eAAA,EAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAC3C,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,gBAAgB,EAAA;AAEvB,QAAAA,sBAAA,CAAA,aAAA,CAACC,uBAAW,EAAA,EAAC,YAAY,EAAE,EAAE,cAAc,EAAE,SAAS,EAAyB,EAAA,EAC5EC,qBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CACpD,CACX;AAET;;;;"}
@@ -2,16 +2,24 @@ import React__default from 'react';
2
2
  import { flexRender } from '@tanstack/react-table';
3
3
  import { buildClassnames } from '../../../../../utils/buildClassnames.js';
4
4
  import 'uid/secure';
5
+ import { usePinnedColumnStyles } from '../../../hooks/usePinnedColumnStyles.js';
5
6
  import { CellContent } from '../../CellContent/CellContent.js';
6
7
  import { footerCell } from './FooterCell.module.css.js';
7
8
 
8
- const footerCellClassname = buildClassnames([footerCell, 'data-grid-footer-cell']);
9
9
  /**
10
10
  * Renders a footer cell element, and its content, for a given column.
11
11
  */
12
12
  const FooterCell = ({ header, ariaRoles }) => {
13
13
  const { justifyContent, textAlign } = header.column.columnDef.meta;
14
- return (React__default.createElement("th", { scope: "row", role: ariaRoles.cell, "aria-colindex": header.column.getIndex() + 1, className: footerCellClassname },
14
+ const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles({
15
+ column: header.column,
16
+ });
17
+ const footerCellClassname = buildClassnames([
18
+ footerCell,
19
+ pinnedCellClassName,
20
+ 'data-grid-footer-cell',
21
+ ]);
22
+ return (React__default.createElement("th", { scope: "row", role: ariaRoles.cell, "aria-colindex": header.column.getIndex() + 1, className: footerCellClassname, style: pinnedCellStyles },
15
23
  React__default.createElement(CellContent, { contentStyle: { justifyContent, textAlign } }, flexRender(header.column.columnDef.footer, header.getContext()))));
16
24
  };
17
25
 
@@ -1 +1 @@
1
- {"version":3,"file":"FooterCell.js","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { flexRender, Header } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\n\nimport { AriaRoles } from '../../../types';\nimport { CellContent } from '../../CellContent';\n\nimport { footerCell } from './FooterCell.module.css';\n\ntype FooterCellProps = {\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n};\n\nconst footerCellClassname = buildClassnames([footerCell, 'data-grid-footer-cell']);\n\n/**\n * Renders a footer cell element, and its content, for a given column.\n */\nexport const FooterCell = ({ header, ariaRoles }: FooterCellProps) => {\n const { justifyContent, textAlign } = header.column.columnDef.meta!;\n\n return (\n <th\n scope=\"row\"\n role={ariaRoles.cell}\n aria-colindex={header.column.getIndex() + 1}\n className={footerCellClassname}\n >\n <CellContent contentStyle={{ justifyContent, textAlign } as React.CSSProperties}>\n {flexRender(header.column.columnDef.footer, header.getContext())}\n </CellContent>\n </th>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;AAuBA,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;AAElF;;AAEG;AACU,MAAA,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAmB,KAAI;AACnE,IAAA,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAK;IAEnE,QACEA,qCACE,KAAK,EAAC,KAAK,EACX,IAAI,EAAE,SAAS,CAAC,IAAI,mBACL,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAC3C,SAAS,EAAE,mBAAmB,EAAA;AAE9B,QAAAA,cAAA,CAAA,aAAA,CAAC,WAAW,EAAA,EAAC,YAAY,EAAE,EAAE,cAAc,EAAE,SAAS,EAAyB,EAAA,EAC5E,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CACpD,CACX;AAET;;;;"}
1
+ {"version":3,"file":"FooterCell.js","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { flexRender, Header } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\n\nimport { usePinnedColumnStyles } from '../../../hooks/usePinnedColumnStyles';\n\nimport { AriaRoles } from '../../../types';\nimport { CellContent } from '../../CellContent';\n\nimport { footerCell } from './FooterCell.module.css';\n\ntype FooterCellProps = {\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n};\n\n/**\n * Renders a footer cell element, and its content, for a given column.\n */\nexport const FooterCell = ({ header, ariaRoles }: FooterCellProps) => {\n const { justifyContent, textAlign } = header.column.columnDef.meta!;\n\n const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles({\n column: header.column,\n });\n\n const footerCellClassname = buildClassnames([\n footerCell,\n pinnedCellClassName,\n 'data-grid-footer-cell',\n ]);\n\n return (\n <th\n scope=\"row\"\n role={ariaRoles.cell}\n aria-colindex={header.column.getIndex() + 1}\n className={footerCellClassname}\n style={pinnedCellStyles}\n >\n <CellContent contentStyle={{ justifyContent, textAlign } as React.CSSProperties}>\n {flexRender(header.column.columnDef.footer, header.getContext())}\n </CellContent>\n </th>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;AAyBA;;AAEG;AACU,MAAA,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAmB,KAAI;AACnE,IAAA,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAK;AAEnE,IAAA,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,CAAC;QACtE,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,KAAA,CAAC;IAEF,MAAM,mBAAmB,GAAG,eAAe,CAAC;QAC1C,UAAU;QACV,mBAAmB;QACnB,uBAAuB;AACxB,KAAA,CAAC;IAEF,QACEA,cACE,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,KAAK,EAAC,KAAK,EACX,IAAI,EAAE,SAAS,CAAC,IAAI,EACL,eAAA,EAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAC3C,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,gBAAgB,EAAA;AAEvB,QAAAA,cAAA,CAAA,aAAA,CAAC,WAAW,EAAA,EAAC,YAAY,EAAE,EAAE,cAAc,EAAE,SAAS,EAAyB,EAAA,EAC5E,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CACpD,CACX;AAET;;;;"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const cssContents = `._baseCell_1w2bt_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._footerCell_1jfhd_1{background-color:var(--colors-neutral-grey-lightest);border-top:var(--sizes-line) solid var(--colors-secondary-blue-base);color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-style:var(--text-body-small-font-style);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}
4
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiRm9vdGVyQ2VsbC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFBLHNCQUFBLGtCQUFBLHdCQUFBLDJIQUFBLDBCQUFBLENBQUEsQUNBQSxxQkFVRSxvREFBcUQsQ0FEckQsb0VBQXFFLENBTnJFLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsNENBQTZDLENBQzdDLDhDQUErQyxDQUMvQyw4Q0FJRiIsImZpbGUiOiJGb290ZXJDZWxsLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIi5mb290ZXJDZWxsIHtcbiAgY29tcG9zZXM6IGJhc2VDZWxsIGZyb20gJy4uLy4uLy4uL0RhdGFHcmlkLm1vZHVsZS5jc3MnO1xuXG4gIGNvbG9yOiB2YXIoLS10ZXh0LWJvZHktc21hbGwtY29sb3IpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtZmFtaWx5KTtcbiAgZm9udC1zdHlsZTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtc3R5bGUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG5cbiAgYm9yZGVyLXRvcDogdmFyKC0tc2l6ZXMtbGluZSkgc29saWQgdmFyKC0tY29sb3JzLXNlY29uZGFyeS1ibHVlLWJhc2UpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWxpZ2h0ZXN0KTtcbn1cbiJdfQ== */`;
3
+ const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}._footerCell_1jfhd_1{background-color:var(--colors-neutral-grey-lightest);border-top:var(--sizes-line) solid var(--colors-secondary-blue-base);color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-style:var(--text-body-small-font-style);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}
4
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiRm9vdGVyQ2VsbC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFBLHNCQUFBLGtCQUFBLHdCQUFBLDJIQUFBLDBCQUFBLENBQUEsNEJBQUEsUUFBQSxZQUFBLHNCQUFBLFdBQUEsb0JBQUEsa0JBQUEsc0JBQUEsV0FBQSxDQUFBLDRCQUFBLFFBQUEsa0RBQUEsd0JBQUEsMEJBQUEsQ0FBQSw2QkFBQSxRQUFBLG1EQUFBLHVCQUFBLDJCQUFBLENBQUEsQUNBQSxxQkFVRSxvREFBcUQsQ0FEckQsb0VBQXFFLENBTnJFLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsNENBQTZDLENBQzdDLDhDQUErQyxDQUMvQyw4Q0FJRiIsImZpbGUiOiJGb290ZXJDZWxsLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIi5mb290ZXJDZWxsIHtcbiAgY29tcG9zZXM6IGJhc2VDZWxsIGZyb20gJy4uLy4uLy4uL0RhdGFHcmlkLm1vZHVsZS5jc3MnO1xuXG4gIGNvbG9yOiB2YXIoLS10ZXh0LWJvZHktc21hbGwtY29sb3IpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtZmFtaWx5KTtcbiAgZm9udC1zdHlsZTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtc3R5bGUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG5cbiAgYm9yZGVyLXRvcDogdmFyKC0tc2l6ZXMtbGluZSkgc29saWQgdmFyKC0tY29sb3JzLXNlY29uZGFyeS1ibHVlLWJhc2UpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWxpZ2h0ZXN0KTtcbn1cbiJdfQ== */`;
5
5
  const style = document.createElement('style');
6
6
  style.innerHTML = cssContents;
7
7
  document.head.appendChild(style);
8
- const footerCell = '_footerCell_1jfhd_1 _baseCell_1w2bt_1';
8
+ const footerCell = '_footerCell_1jfhd_1 _baseCell_13swz_1';
9
9
 
10
10
  exports.footerCell = footerCell;
11
11
  //# sourceMappingURL=FooterCell.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FooterCell.module.css.cjs","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css"],"sourcesContent":[".footerCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-style: var(--text-body-small-font-style);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n\n border-top: var(--sizes-line) solid var(--colors-secondary-blue-base);\n background-color: var(--colors-neutral-grey-lightest);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,yhCAAyhC,CAAC;AAC1hC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,UAAU,GAAG;;;;"}
1
+ {"version":3,"file":"FooterCell.module.css.cjs","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css"],"sourcesContent":[".footerCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-style: var(--text-body-small-font-style);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n\n border-top: var(--sizes-line) solid var(--colors-secondary-blue-base);\n background-color: var(--colors-neutral-grey-lightest);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,6rCAA6rC,CAAC;AAC9rC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,UAAU,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
- const cssContents = `._baseCell_1w2bt_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._footerCell_1jfhd_1{background-color:var(--colors-neutral-grey-lightest);border-top:var(--sizes-line) solid var(--colors-secondary-blue-base);color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-style:var(--text-body-small-font-style);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiRm9vdGVyQ2VsbC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFBLHNCQUFBLGtCQUFBLHdCQUFBLDJIQUFBLDBCQUFBLENBQUEsQUNBQSxxQkFVRSxvREFBcUQsQ0FEckQsb0VBQXFFLENBTnJFLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsNENBQTZDLENBQzdDLDhDQUErQyxDQUMvQyw4Q0FJRiIsImZpbGUiOiJGb290ZXJDZWxsLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIi5mb290ZXJDZWxsIHtcbiAgY29tcG9zZXM6IGJhc2VDZWxsIGZyb20gJy4uLy4uLy4uL0RhdGFHcmlkLm1vZHVsZS5jc3MnO1xuXG4gIGNvbG9yOiB2YXIoLS10ZXh0LWJvZHktc21hbGwtY29sb3IpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtZmFtaWx5KTtcbiAgZm9udC1zdHlsZTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtc3R5bGUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG5cbiAgYm9yZGVyLXRvcDogdmFyKC0tc2l6ZXMtbGluZSkgc29saWQgdmFyKC0tY29sb3JzLXNlY29uZGFyeS1ibHVlLWJhc2UpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWxpZ2h0ZXN0KTtcbn1cbiJdfQ== */`;
1
+ const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}._footerCell_1jfhd_1{background-color:var(--colors-neutral-grey-lightest);border-top:var(--sizes-line) solid var(--colors-secondary-blue-base);color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-style:var(--text-body-small-font-style);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}
2
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiRm9vdGVyQ2VsbC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFBLHNCQUFBLGtCQUFBLHdCQUFBLDJIQUFBLDBCQUFBLENBQUEsNEJBQUEsUUFBQSxZQUFBLHNCQUFBLFdBQUEsb0JBQUEsa0JBQUEsc0JBQUEsV0FBQSxDQUFBLDRCQUFBLFFBQUEsa0RBQUEsd0JBQUEsMEJBQUEsQ0FBQSw2QkFBQSxRQUFBLG1EQUFBLHVCQUFBLDJCQUFBLENBQUEsQUNBQSxxQkFVRSxvREFBcUQsQ0FEckQsb0VBQXFFLENBTnJFLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsNENBQTZDLENBQzdDLDhDQUErQyxDQUMvQyw4Q0FJRiIsImZpbGUiOiJGb290ZXJDZWxsLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIi5mb290ZXJDZWxsIHtcbiAgY29tcG9zZXM6IGJhc2VDZWxsIGZyb20gJy4uLy4uLy4uL0RhdGFHcmlkLm1vZHVsZS5jc3MnO1xuXG4gIGNvbG9yOiB2YXIoLS10ZXh0LWJvZHktc21hbGwtY29sb3IpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtZmFtaWx5KTtcbiAgZm9udC1zdHlsZTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtc3R5bGUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG5cbiAgYm9yZGVyLXRvcDogdmFyKC0tc2l6ZXMtbGluZSkgc29saWQgdmFyKC0tY29sb3JzLXNlY29uZGFyeS1ibHVlLWJhc2UpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWxpZ2h0ZXN0KTtcbn1cbiJdfQ== */`;
3
3
  const style = document.createElement('style');
4
4
  style.innerHTML = cssContents;
5
5
  document.head.appendChild(style);
6
- const footerCell = '_footerCell_1jfhd_1 _baseCell_1w2bt_1';
6
+ const footerCell = '_footerCell_1jfhd_1 _baseCell_13swz_1';
7
7
 
8
8
  export { footerCell };
9
9
  //# sourceMappingURL=FooterCell.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FooterCell.module.css.js","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css"],"sourcesContent":[".footerCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-style: var(--text-body-small-font-style);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n\n border-top: var(--sizes-line) solid var(--colors-secondary-blue-base);\n background-color: var(--colors-neutral-grey-lightest);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,yhCAAyhC,CAAC;AAC1hC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,UAAU,GAAG;;;;"}
1
+ {"version":3,"file":"FooterCell.module.css.js","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css"],"sourcesContent":[".footerCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-style: var(--text-body-small-font-style);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n\n border-top: var(--sizes-line) solid var(--colors-secondary-blue-base);\n background-color: var(--colors-neutral-grey-lightest);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,6rCAA6rC,CAAC;AAC9rC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,UAAU,GAAG;;;;"}
@@ -5,6 +5,7 @@ var index = require('../../../../theme/index.cjs');
5
5
  var buildClassnames = require('../../../../utils/buildClassnames.cjs');
6
6
  var Container = require('./Container/Container.cjs');
7
7
  var GridContainer_module = require('./GridContainer.module.css.cjs');
8
+ var usePinnedColumnLayout = require('../../hooks/usePinnedColumnLayout.cjs');
8
9
 
9
10
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
10
11
 
@@ -15,11 +16,15 @@ const gridContainerClassname = buildClassnames.buildClassnames([GridContainer_mo
15
16
  * The Grid container, which includes a wrapper and the table element itself. Controls table layout, applies
16
17
  * styling and sets table-specific CSS variables (such as density).
17
18
  */
18
- const GridContainer = ({ containerRef, tableRef, borderMode, containerStyles, ariaRoles, enableResizeableColumns, density, table, children, 'aria-label': ariaLabel, }) => (React__default.default.createElement(Container.Container, { ref: containerRef, borderMode: borderMode, style: containerStyles },
19
- React__default.default.createElement("table", { ref: tableRef, className: gridContainerClassname, role: ariaRoles.table, style: {
20
- tableLayout: enableResizeableColumns ? 'fixed' : 'auto',
21
- '--density': index.theme.sizes[density],
22
- }, "aria-colcount": table.getFlatHeaders().length, "aria-rowcount": table.getRowCount(), "aria-label": ariaLabel }, children)));
19
+ const GridContainer = ({ containerRef, tableRef, borderMode, containerStyles, ariaRoles, enableResizeableColumns, density, table, children, 'aria-label': ariaLabel, }) => {
20
+ const { pinnedColumnLayoutStyles } = usePinnedColumnLayout.usePinnedColumnLayout({ table });
21
+ return (React__default.default.createElement(Container.Container, { ref: containerRef, borderMode: borderMode, style: containerStyles },
22
+ React__default.default.createElement("table", { ref: tableRef, className: gridContainerClassname, role: ariaRoles.table, style: {
23
+ tableLayout: enableResizeableColumns ? 'fixed' : 'auto',
24
+ '--density': index.theme.sizes[density],
25
+ ...pinnedColumnLayoutStyles,
26
+ }, "aria-colcount": table.getFlatHeaders().length, "aria-rowcount": table.getRowCount(), "aria-label": ariaLabel }, children)));
27
+ };
23
28
 
24
29
  exports.GridContainer = GridContainer;
25
30
  //# sourceMappingURL=GridContainer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridContainer.cjs","sources":["../../../../../src/components/DataGrid/components/GridContainer/GridContainer.tsx"],"sourcesContent":["import React, { RefObject, CSSProperties, ReactNode, AriaAttributes } from 'react';\nimport { Table } from '@tanstack/react-table';\n\nimport { theme } from 'Theme';\nimport { SizeScale } from 'Theme/modules/sizes';\n\nimport { BorderMode } from '../../types/enums';\nimport { AriaRoles } from '../../types';\nimport { buildClassnames } from '../../../../utils/buildClassnames';\n\nimport { Container } from './Container';\n\nimport { dataGridStyle } from './GridContainer.module.css';\n\ntype GridContainerProps = Pick<AriaAttributes, 'aria-label'> & {\n /**\n * Reference to be used for the outer container element.\n */\n containerRef?: RefObject<HTMLDivElement>;\n\n /**\n * Reference to be used for the table element.\n */\n tableRef?: RefObject<HTMLTableElement>;\n\n /**\n * Border mode.\n */\n borderMode: BorderMode;\n\n /**\n * Additional container styles.\n */\n containerStyles?: CSSProperties;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n\n /**\n * Whether resizeable columns are enabled or not.\n */\n enableResizeableColumns: boolean;\n\n /**\n * Density of the grid.\n */\n density: keyof SizeScale;\n\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * Child elements (table contents).\n */\n children: ReactNode;\n};\n\nconst gridContainerClassname = buildClassnames([dataGridStyle, 'data-grid']);\n\n/**\n * The Grid container, which includes a wrapper and the table element itself. Controls table layout, applies\n * styling and sets table-specific CSS variables (such as density).\n */\nexport const GridContainer = ({\n containerRef,\n tableRef,\n borderMode,\n containerStyles,\n ariaRoles,\n enableResizeableColumns,\n density,\n table,\n children,\n 'aria-label': ariaLabel,\n}: GridContainerProps) => (\n <Container ref={containerRef} borderMode={borderMode} style={containerStyles}>\n <table\n ref={tableRef}\n className={gridContainerClassname}\n role={ariaRoles.table}\n style={\n {\n tableLayout: enableResizeableColumns ? 'fixed' : 'auto',\n '--density': theme.sizes[density],\n } as CSSProperties\n }\n aria-colcount={table.getFlatHeaders().length}\n aria-rowcount={table.getRowCount()}\n aria-label={ariaLabel}\n >\n {children}\n </table>\n </Container>\n);\n"],"names":["buildClassnames","dataGridStyle","React","Container","theme"],"mappings":";;;;;;;;;;;;AA6DA,MAAM,sBAAsB,GAAGA,+BAAe,CAAC,CAACC,kCAAa,EAAE,WAAW,CAAC,CAAC;AAE5E;;;AAGG;MACU,aAAa,GAAG,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EAAE,SAAS,GACJ,MACnBC,sBAAC,CAAA,aAAA,CAAAC,mBAAS,IAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAA;AAC1E,IAAAD,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,SAAS,CAAC,KAAK,EACrB,KAAK,EACH;YACE,WAAW,EAAE,uBAAuB,GAAG,OAAO,GAAG,MAAM;AACvD,YAAA,WAAW,EAAEE,WAAK,CAAC,KAAK,CAAC,OAAO,CAAC;AACjB,SAAA,EAAA,eAAA,EAEL,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,mBAC7B,KAAK,CAAC,WAAW,EAAE,gBACtB,SAAS,EAAA,EAEpB,QAAQ,CACH,CACE;;;;"}
1
+ {"version":3,"file":"GridContainer.cjs","sources":["../../../../../src/components/DataGrid/components/GridContainer/GridContainer.tsx"],"sourcesContent":["import React, { RefObject, CSSProperties, ReactNode, AriaAttributes } from 'react';\nimport { Table } from '@tanstack/react-table';\n\nimport { theme } from 'Theme';\nimport { SizeScale } from 'Theme/modules/sizes';\n\nimport { BorderMode } from '../../types/enums';\nimport { AriaRoles } from '../../types';\nimport { buildClassnames } from '../../../../utils/buildClassnames';\n\nimport { Container } from './Container';\n\nimport { dataGridStyle } from './GridContainer.module.css';\nimport { usePinnedColumnLayout } from '../../hooks';\n\ntype GridContainerProps = Pick<AriaAttributes, 'aria-label'> & {\n /**\n * Reference to be used for the outer container element.\n */\n containerRef?: RefObject<HTMLDivElement>;\n\n /**\n * Reference to be used for the table element.\n */\n tableRef?: RefObject<HTMLTableElement>;\n\n /**\n * Border mode.\n */\n borderMode: BorderMode;\n\n /**\n * Additional container styles.\n */\n containerStyles?: CSSProperties;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n\n /**\n * Whether resizeable columns are enabled or not.\n */\n enableResizeableColumns: boolean;\n\n /**\n * Density of the grid.\n */\n density: keyof SizeScale;\n\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * Child elements (table contents).\n */\n children: ReactNode;\n};\n\nconst gridContainerClassname = buildClassnames([dataGridStyle, 'data-grid']);\n\n/**\n * The Grid container, which includes a wrapper and the table element itself. Controls table layout, applies\n * styling and sets table-specific CSS variables (such as density).\n */\nexport const GridContainer = ({\n containerRef,\n tableRef,\n borderMode,\n containerStyles,\n ariaRoles,\n enableResizeableColumns,\n density,\n table,\n children,\n 'aria-label': ariaLabel,\n}: GridContainerProps) => {\n const { pinnedColumnLayoutStyles } = usePinnedColumnLayout({ table });\n\n return (\n <Container ref={containerRef} borderMode={borderMode} style={containerStyles}>\n <table\n ref={tableRef}\n className={gridContainerClassname}\n role={ariaRoles.table}\n style={\n {\n tableLayout: enableResizeableColumns ? 'fixed' : 'auto',\n '--density': theme.sizes[density],\n ...pinnedColumnLayoutStyles,\n } as CSSProperties\n }\n aria-colcount={table.getFlatHeaders().length}\n aria-rowcount={table.getRowCount()}\n aria-label={ariaLabel}\n >\n {children}\n </table>\n </Container>\n );\n};\n"],"names":["buildClassnames","dataGridStyle","usePinnedColumnLayout","React","Container","theme"],"mappings":";;;;;;;;;;;;;AA8DA,MAAM,sBAAsB,GAAGA,+BAAe,CAAC,CAACC,kCAAa,EAAE,WAAW,CAAC,CAAC;AAE5E;;;AAGG;AACI,MAAM,aAAa,GAAG,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EAAE,SAAS,GACJ,KAAI;IACvB,MAAM,EAAE,wBAAwB,EAAE,GAAGC,2CAAqB,CAAC,EAAE,KAAK,EAAE,CAAC;AAErE,IAAA,QACEC,sBAAA,CAAA,aAAA,CAACC,mBAAS,EAAA,EAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAA;AAC1E,QAAAD,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,SAAS,CAAC,KAAK,EACrB,KAAK,EACH;gBACE,WAAW,EAAE,uBAAuB,GAAG,OAAO,GAAG,MAAM;AACvD,gBAAA,WAAW,EAAEE,WAAK,CAAC,KAAK,CAAC,OAAO,CAAC;AACjC,gBAAA,GAAG,wBAAwB;AACX,aAAA,EAAA,eAAA,EAEL,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,mBAC7B,KAAK,CAAC,WAAW,EAAE,gBACtB,SAAS,EAAA,EAEpB,QAAQ,CACH,CACE;AAEhB;;;;"}
@@ -3,17 +3,22 @@ import { theme } from '../../../../theme/index.js';
3
3
  import { buildClassnames } from '../../../../utils/buildClassnames.js';
4
4
  import { Container } from './Container/Container.js';
5
5
  import { dataGridStyle } from './GridContainer.module.css.js';
6
+ import { usePinnedColumnLayout } from '../../hooks/usePinnedColumnLayout.js';
6
7
 
7
8
  const gridContainerClassname = buildClassnames([dataGridStyle, 'data-grid']);
8
9
  /**
9
10
  * The Grid container, which includes a wrapper and the table element itself. Controls table layout, applies
10
11
  * styling and sets table-specific CSS variables (such as density).
11
12
  */
12
- const GridContainer = ({ containerRef, tableRef, borderMode, containerStyles, ariaRoles, enableResizeableColumns, density, table, children, 'aria-label': ariaLabel, }) => (React__default.createElement(Container, { ref: containerRef, borderMode: borderMode, style: containerStyles },
13
- React__default.createElement("table", { ref: tableRef, className: gridContainerClassname, role: ariaRoles.table, style: {
14
- tableLayout: enableResizeableColumns ? 'fixed' : 'auto',
15
- '--density': theme.sizes[density],
16
- }, "aria-colcount": table.getFlatHeaders().length, "aria-rowcount": table.getRowCount(), "aria-label": ariaLabel }, children)));
13
+ const GridContainer = ({ containerRef, tableRef, borderMode, containerStyles, ariaRoles, enableResizeableColumns, density, table, children, 'aria-label': ariaLabel, }) => {
14
+ const { pinnedColumnLayoutStyles } = usePinnedColumnLayout({ table });
15
+ return (React__default.createElement(Container, { ref: containerRef, borderMode: borderMode, style: containerStyles },
16
+ React__default.createElement("table", { ref: tableRef, className: gridContainerClassname, role: ariaRoles.table, style: {
17
+ tableLayout: enableResizeableColumns ? 'fixed' : 'auto',
18
+ '--density': theme.sizes[density],
19
+ ...pinnedColumnLayoutStyles,
20
+ }, "aria-colcount": table.getFlatHeaders().length, "aria-rowcount": table.getRowCount(), "aria-label": ariaLabel }, children)));
21
+ };
17
22
 
18
23
  export { GridContainer };
19
24
  //# sourceMappingURL=GridContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridContainer.js","sources":["../../../../../src/components/DataGrid/components/GridContainer/GridContainer.tsx"],"sourcesContent":["import React, { RefObject, CSSProperties, ReactNode, AriaAttributes } from 'react';\nimport { Table } from '@tanstack/react-table';\n\nimport { theme } from 'Theme';\nimport { SizeScale } from 'Theme/modules/sizes';\n\nimport { BorderMode } from '../../types/enums';\nimport { AriaRoles } from '../../types';\nimport { buildClassnames } from '../../../../utils/buildClassnames';\n\nimport { Container } from './Container';\n\nimport { dataGridStyle } from './GridContainer.module.css';\n\ntype GridContainerProps = Pick<AriaAttributes, 'aria-label'> & {\n /**\n * Reference to be used for the outer container element.\n */\n containerRef?: RefObject<HTMLDivElement>;\n\n /**\n * Reference to be used for the table element.\n */\n tableRef?: RefObject<HTMLTableElement>;\n\n /**\n * Border mode.\n */\n borderMode: BorderMode;\n\n /**\n * Additional container styles.\n */\n containerStyles?: CSSProperties;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n\n /**\n * Whether resizeable columns are enabled or not.\n */\n enableResizeableColumns: boolean;\n\n /**\n * Density of the grid.\n */\n density: keyof SizeScale;\n\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * Child elements (table contents).\n */\n children: ReactNode;\n};\n\nconst gridContainerClassname = buildClassnames([dataGridStyle, 'data-grid']);\n\n/**\n * The Grid container, which includes a wrapper and the table element itself. Controls table layout, applies\n * styling and sets table-specific CSS variables (such as density).\n */\nexport const GridContainer = ({\n containerRef,\n tableRef,\n borderMode,\n containerStyles,\n ariaRoles,\n enableResizeableColumns,\n density,\n table,\n children,\n 'aria-label': ariaLabel,\n}: GridContainerProps) => (\n <Container ref={containerRef} borderMode={borderMode} style={containerStyles}>\n <table\n ref={tableRef}\n className={gridContainerClassname}\n role={ariaRoles.table}\n style={\n {\n tableLayout: enableResizeableColumns ? 'fixed' : 'auto',\n '--density': theme.sizes[density],\n } as CSSProperties\n }\n aria-colcount={table.getFlatHeaders().length}\n aria-rowcount={table.getRowCount()}\n aria-label={ariaLabel}\n >\n {children}\n </table>\n </Container>\n);\n"],"names":["React"],"mappings":";;;;;;AA6DA,MAAM,sBAAsB,GAAG,eAAe,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAE5E;;;AAGG;MACU,aAAa,GAAG,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EAAE,SAAS,GACJ,MACnBA,cAAC,CAAA,aAAA,CAAA,SAAS,IAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAA;AAC1E,IAAAA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,SAAS,CAAC,KAAK,EACrB,KAAK,EACH;YACE,WAAW,EAAE,uBAAuB,GAAG,OAAO,GAAG,MAAM;AACvD,YAAA,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;AACjB,SAAA,EAAA,eAAA,EAEL,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,mBAC7B,KAAK,CAAC,WAAW,EAAE,gBACtB,SAAS,EAAA,EAEpB,QAAQ,CACH,CACE;;;;"}
1
+ {"version":3,"file":"GridContainer.js","sources":["../../../../../src/components/DataGrid/components/GridContainer/GridContainer.tsx"],"sourcesContent":["import React, { RefObject, CSSProperties, ReactNode, AriaAttributes } from 'react';\nimport { Table } from '@tanstack/react-table';\n\nimport { theme } from 'Theme';\nimport { SizeScale } from 'Theme/modules/sizes';\n\nimport { BorderMode } from '../../types/enums';\nimport { AriaRoles } from '../../types';\nimport { buildClassnames } from '../../../../utils/buildClassnames';\n\nimport { Container } from './Container';\n\nimport { dataGridStyle } from './GridContainer.module.css';\nimport { usePinnedColumnLayout } from '../../hooks';\n\ntype GridContainerProps = Pick<AriaAttributes, 'aria-label'> & {\n /**\n * Reference to be used for the outer container element.\n */\n containerRef?: RefObject<HTMLDivElement>;\n\n /**\n * Reference to be used for the table element.\n */\n tableRef?: RefObject<HTMLTableElement>;\n\n /**\n * Border mode.\n */\n borderMode: BorderMode;\n\n /**\n * Additional container styles.\n */\n containerStyles?: CSSProperties;\n\n /**\n * ARIA roles used in the grid.\n */\n ariaRoles: AriaRoles;\n\n /**\n * Whether resizeable columns are enabled or not.\n */\n enableResizeableColumns: boolean;\n\n /**\n * Density of the grid.\n */\n density: keyof SizeScale;\n\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * Child elements (table contents).\n */\n children: ReactNode;\n};\n\nconst gridContainerClassname = buildClassnames([dataGridStyle, 'data-grid']);\n\n/**\n * The Grid container, which includes a wrapper and the table element itself. Controls table layout, applies\n * styling and sets table-specific CSS variables (such as density).\n */\nexport const GridContainer = ({\n containerRef,\n tableRef,\n borderMode,\n containerStyles,\n ariaRoles,\n enableResizeableColumns,\n density,\n table,\n children,\n 'aria-label': ariaLabel,\n}: GridContainerProps) => {\n const { pinnedColumnLayoutStyles } = usePinnedColumnLayout({ table });\n\n return (\n <Container ref={containerRef} borderMode={borderMode} style={containerStyles}>\n <table\n ref={tableRef}\n className={gridContainerClassname}\n role={ariaRoles.table}\n style={\n {\n tableLayout: enableResizeableColumns ? 'fixed' : 'auto',\n '--density': theme.sizes[density],\n ...pinnedColumnLayoutStyles,\n } as CSSProperties\n }\n aria-colcount={table.getFlatHeaders().length}\n aria-rowcount={table.getRowCount()}\n aria-label={ariaLabel}\n >\n {children}\n </table>\n </Container>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;AA8DA,MAAM,sBAAsB,GAAG,eAAe,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAE5E;;;AAGG;AACI,MAAM,aAAa,GAAG,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EAAE,SAAS,GACJ,KAAI;IACvB,MAAM,EAAE,wBAAwB,EAAE,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC;AAErE,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAA;AAC1E,QAAAA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,SAAS,CAAC,KAAK,EACrB,KAAK,EACH;gBACE,WAAW,EAAE,uBAAuB,GAAG,OAAO,GAAG,MAAM;AACvD,gBAAA,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;AACjC,gBAAA,GAAG,wBAAwB;AACX,aAAA,EAAA,eAAA,EAEL,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,mBAC7B,KAAK,CAAC,WAAW,EAAE,gBACtB,SAAS,EAAA,EAEpB,QAAQ,CACH,CACE;AAEhB;;;;"}
@@ -5,15 +5,21 @@ var reactTable = require('@tanstack/react-table');
5
5
  var buildClassnames = require('../../../../../utils/buildClassnames.cjs');
6
6
  require('uid/secure');
7
7
  var isLastColumn = require('../../../utils/isLastColumn.cjs');
8
+ var usePinnedColumnStyles = require('../../../hooks/usePinnedColumnStyles.cjs');
8
9
  var Resizer = require('../Resizer/Resizer.cjs');
9
10
  var HeaderCell_module = require('./HeaderCell.module.css.cjs');
11
+ var SortIcon = require('./SortIcon/SortIcon.cjs');
10
12
 
11
13
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
14
 
13
15
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
16
 
15
- const headerCellClassname = buildClassnames.buildClassnames([HeaderCell_module.headerCell, 'data-grid-row-header']);
16
- const headerContentClassname = buildClassnames.buildClassnames([HeaderCell_module.headerContent, 'data-grid-header-content']);
17
+ const getAriaSort = (sortDirection) => {
18
+ if (!sortDirection) {
19
+ return undefined;
20
+ }
21
+ return sortDirection === 'asc' ? 'ascending' : 'descending';
22
+ };
17
23
  /**
18
24
  * A header cell within the DataGrid component. Responsible for rendering the column header and resize bar,
19
25
  * if resizing is enabled.
@@ -21,16 +27,34 @@ const headerContentClassname = buildClassnames.buildClassnames([HeaderCell_modul
21
27
  const HeaderCell = ({ table, header, index }) => {
22
28
  const { justifyContent, textAlign, getAriaLabel } = header.column.columnDef.meta;
23
29
  const headerRenderer = header.column.columnDef.header;
30
+ const sortable = table.options.enableSorting && header.column.getCanSort();
31
+ const isSorted = header.column.getIsSorted();
32
+ const ariaSort = getAriaSort(isSorted);
24
33
  const resizeable = table.options.enableColumnResizing &&
25
34
  header.column.getCanResize() &&
26
35
  !isLastColumn.isLastColumn(table, header.column); // Last column can't be resized since it occupies all remaining space.
36
+ const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles.usePinnedColumnStyles({
37
+ column: header.column,
38
+ });
39
+ const headerCellClassname = buildClassnames.buildClassnames([
40
+ HeaderCell_module.headerCell,
41
+ pinnedCellClassName,
42
+ 'data-grid-header-cell',
43
+ ]);
44
+ const HeaderContents = reactTable.flexRender(headerRenderer, header.getContext());
45
+ const HeaderContentComponent = sortable ? 'button' : 'div';
46
+ const headerContentClassname = buildClassnames.buildClassnames([
47
+ sortable ? HeaderCell_module.clickableHeaderContent : HeaderCell_module.headerContent,
48
+ 'data-grid-header-content',
49
+ ]);
27
50
  const headerContentProps = {
28
51
  justifyContent,
29
52
  textAlign,
30
53
  };
31
- const HeaderContents = reactTable.flexRender(headerRenderer, header.getContext());
32
- return (React__default.default.createElement("th", { className: headerCellClassname, role: "columnheader", scope: "col", "aria-colindex": index + 1, "aria-label": getAriaLabel === null || getAriaLabel === undefined ? undefined : getAriaLabel() },
33
- React__default.default.createElement("div", { className: headerContentClassname, style: headerContentProps }, typeof headerRenderer === 'string' ? (React__default.default.createElement("span", { className: HeaderCell_module.headerOverflow }, HeaderContents)) : (HeaderContents)),
54
+ return (React__default.default.createElement("th", { className: headerCellClassname, role: "columnheader", scope: "col", "aria-colindex": index + 1, "aria-label": getAriaLabel === null || getAriaLabel === undefined ? undefined : getAriaLabel(), style: pinnedCellStyles, "aria-sort": ariaSort },
55
+ React__default.default.createElement(HeaderContentComponent, { className: headerContentClassname, style: headerContentProps, onClick: sortable ? header.column.getToggleSortingHandler() : undefined },
56
+ typeof headerRenderer === 'string' ? (React__default.default.createElement("span", { className: HeaderCell_module.headerOverflow }, HeaderContents)) : (HeaderContents),
57
+ sortable && React__default.default.createElement(SortIcon.SortIcon, { isSorted: isSorted })),
34
58
  resizeable && (React__default.default.createElement(Resizer.Resizer, { getIsResizing: header.column.getIsResizing, getResizeHandler: header.getResizeHandler(), resetSize: header.column.resetSize, deltaOffset: table.options.columnResizeMode === 'onChange'
35
59
  ? null
36
60
  : table.getState().columnSizingInfo.deltaOffset }))));
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderCell.cjs","sources":["../../../../../../src/components/DataGrid/components/Header/HeaderCell/HeaderCell.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { flexRender, Header, Table } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\nimport { isLastColumn } from '../../../utils';\n\nimport { Resizer } from '../Resizer';\nimport { headerCell, headerContent, headerOverflow } from './HeaderCell.module.css';\n\ntype HeaderCellProps = {\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * The index of this header in the grid.\n */\n index: number;\n};\n\nconst headerCellClassname = buildClassnames([headerCell, 'data-grid-row-header']);\nconst headerContentClassname = buildClassnames([headerContent, 'data-grid-header-content']);\n\n/**\n * A header cell within the DataGrid component. Responsible for rendering the column header and resize bar,\n * if resizing is enabled.\n */\nexport const HeaderCell = ({ table, header, index }: HeaderCellProps) => {\n const { justifyContent, textAlign, getAriaLabel } = header.column.columnDef.meta!;\n const headerRenderer = header.column.columnDef.header;\n\n const resizeable =\n table.options.enableColumnResizing &&\n header.column.getCanResize() &&\n !isLastColumn(table, header.column); // Last column can't be resized since it occupies all remaining space.\n\n const headerContentProps = {\n justifyContent,\n textAlign,\n } as CSSProperties;\n\n const HeaderContents = flexRender(headerRenderer, header.getContext());\n\n return (\n <th\n className={headerCellClassname}\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={index + 1}\n aria-label={getAriaLabel?.()}\n >\n {/* Header content */}\n <div className={headerContentClassname} style={headerContentProps}>\n {/* If we've been given just text to render, apply styles for text overflow */}\n {typeof headerRenderer === 'string' ? (\n <span className={headerOverflow}>{HeaderContents}</span>\n ) : (\n HeaderContents\n )}\n </div>\n\n {/* Column resizer */}\n {resizeable && (\n <Resizer\n getIsResizing={header.column.getIsResizing}\n getResizeHandler={header.getResizeHandler()}\n resetSize={header.column.resetSize}\n deltaOffset={\n table.options.columnResizeMode === 'onChange'\n ? null\n : table.getState().columnSizingInfo.deltaOffset\n }\n />\n )}\n </th>\n );\n};\n"],"names":["buildClassnames","headerCell","headerContent","isLastColumn","flexRender","React","headerOverflow","Resizer"],"mappings":";;;;;;;;;;;;;;AA2BA,MAAM,mBAAmB,GAAGA,+BAAe,CAAC,CAACC,4BAAU,EAAE,sBAAsB,CAAC,CAAC;AACjF,MAAM,sBAAsB,GAAGD,+BAAe,CAAC,CAACE,+BAAa,EAAE,0BAA0B,CAAC,CAAC;AAE3F;;;AAGG;AACI,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAmB,KAAI;AACtE,IAAA,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAK;IACjF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;AAErD,IAAA,MAAM,UAAU,GACd,KAAK,CAAC,OAAO,CAAC,oBAAoB;AAClC,QAAA,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;QAC5B,CAACC,yBAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtC,IAAA,MAAM,kBAAkB,GAAG;QACzB,cAAc;QACd,SAAS;KACO;IAElB,MAAM,cAAc,GAAGC,qBAAU,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IAEtE,QACEC,6CACE,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAC,cAAc,EACnB,KAAK,EAAC,KAAK,EAAA,eAAA,EACI,KAAK,GAAG,CAAC,EAAA,YAAA,EACZ,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,SAAA,GAAA,SAAA,GAAA,YAAY,EAAI,EAAA;AAG5B,QAAAA,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,sBAAsB,EAAE,KAAK,EAAE,kBAAkB,EAAA,EAE9D,OAAO,cAAc,KAAK,QAAQ,IACjCA,sBAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEC,gCAAc,EAAA,EAAG,cAAc,CAAQ,KAExD,cAAc,CACf,CACG;AAGL,QAAA,UAAU,KACTD,sBAAA,CAAA,aAAA,CAACE,eAAO,EAAA,EACN,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAC1C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,EAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAClC,WAAW,EACT,KAAK,CAAC,OAAO,CAAC,gBAAgB,KAAK;AACjC,kBAAE;AACF,kBAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAA,CAEnD,CACH,CACE;AAET;;;;"}
1
+ {"version":3,"file":"HeaderCell.cjs","sources":["../../../../../../src/components/DataGrid/components/Header/HeaderCell/HeaderCell.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { flexRender, Header, SortDirection, Table } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\nimport { isLastColumn } from '../../../utils';\n\nimport { usePinnedColumnStyles } from '../../../hooks';\n\nimport { Resizer } from '../Resizer';\nimport {\n headerCell,\n headerContent,\n headerOverflow,\n clickableHeaderContent,\n} from './HeaderCell.module.css';\n\nimport { SortIcon } from './SortIcon';\n\ntype HeaderCellProps = {\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * The index of this header in the grid.\n */\n index: number;\n};\n\nconst getAriaSort = (sortDirection: false | SortDirection) => {\n if (!sortDirection) {\n return undefined;\n }\n\n return sortDirection === 'asc' ? 'ascending' : 'descending';\n};\n\n/**\n * A header cell within the DataGrid component. Responsible for rendering the column header and resize bar,\n * if resizing is enabled.\n */\nexport const HeaderCell = ({ table, header, index }: HeaderCellProps) => {\n const { justifyContent, textAlign, getAriaLabel } = header.column.columnDef.meta!;\n const headerRenderer = header.column.columnDef.header;\n\n const sortable = table.options.enableSorting && header.column.getCanSort();\n const isSorted = header.column.getIsSorted();\n const ariaSort = getAriaSort(isSorted);\n\n const resizeable =\n table.options.enableColumnResizing &&\n header.column.getCanResize() &&\n !isLastColumn(table, header.column); // Last column can't be resized since it occupies all remaining space.\n\n const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles({\n column: header.column,\n });\n\n const headerCellClassname = buildClassnames([\n headerCell,\n pinnedCellClassName,\n 'data-grid-header-cell',\n ]);\n\n const HeaderContents = flexRender(headerRenderer, header.getContext());\n const HeaderContentComponent = sortable ? 'button' : 'div';\n const headerContentClassname = buildClassnames([\n sortable ? clickableHeaderContent : headerContent,\n 'data-grid-header-content',\n ]);\n const headerContentProps = {\n justifyContent,\n textAlign,\n } as CSSProperties;\n\n return (\n <th\n className={headerCellClassname}\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={index + 1}\n aria-label={getAriaLabel?.()}\n style={pinnedCellStyles}\n aria-sort={ariaSort}\n >\n {/* Header content */}\n <HeaderContentComponent\n className={headerContentClassname}\n style={headerContentProps}\n onClick={sortable ? header.column.getToggleSortingHandler() : undefined}\n >\n {/* If we've been given just text to render, apply styles for text overflow */}\n {typeof headerRenderer === 'string' ? (\n <span className={headerOverflow}>{HeaderContents}</span>\n ) : (\n HeaderContents\n )}\n\n {sortable && <SortIcon isSorted={isSorted} />}\n </HeaderContentComponent>\n\n {/* Column resizer */}\n {resizeable && (\n <Resizer\n getIsResizing={header.column.getIsResizing}\n getResizeHandler={header.getResizeHandler()}\n resetSize={header.column.resetSize}\n deltaOffset={\n table.options.columnResizeMode === 'onChange'\n ? null\n : table.getState().columnSizingInfo.deltaOffset\n }\n />\n )}\n </th>\n );\n};\n"],"names":["isLastColumn","usePinnedColumnStyles","buildClassnames","headerCell","flexRender","clickableHeaderContent","headerContent","React","headerOverflow","SortIcon","Resizer"],"mappings":"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"}
@@ -3,11 +3,17 @@ import { flexRender } from '@tanstack/react-table';
3
3
  import { buildClassnames } from '../../../../../utils/buildClassnames.js';
4
4
  import 'uid/secure';
5
5
  import { isLastColumn } from '../../../utils/isLastColumn.js';
6
+ import { usePinnedColumnStyles } from '../../../hooks/usePinnedColumnStyles.js';
6
7
  import { Resizer } from '../Resizer/Resizer.js';
7
- import { headerCell, headerContent, headerOverflow } from './HeaderCell.module.css.js';
8
+ import { headerCell, clickableHeaderContent, headerContent, headerOverflow } from './HeaderCell.module.css.js';
9
+ import { SortIcon } from './SortIcon/SortIcon.js';
8
10
 
9
- const headerCellClassname = buildClassnames([headerCell, 'data-grid-row-header']);
10
- const headerContentClassname = buildClassnames([headerContent, 'data-grid-header-content']);
11
+ const getAriaSort = (sortDirection) => {
12
+ if (!sortDirection) {
13
+ return undefined;
14
+ }
15
+ return sortDirection === 'asc' ? 'ascending' : 'descending';
16
+ };
11
17
  /**
12
18
  * A header cell within the DataGrid component. Responsible for rendering the column header and resize bar,
13
19
  * if resizing is enabled.
@@ -15,16 +21,34 @@ const headerContentClassname = buildClassnames([headerContent, 'data-grid-header
15
21
  const HeaderCell = ({ table, header, index }) => {
16
22
  const { justifyContent, textAlign, getAriaLabel } = header.column.columnDef.meta;
17
23
  const headerRenderer = header.column.columnDef.header;
24
+ const sortable = table.options.enableSorting && header.column.getCanSort();
25
+ const isSorted = header.column.getIsSorted();
26
+ const ariaSort = getAriaSort(isSorted);
18
27
  const resizeable = table.options.enableColumnResizing &&
19
28
  header.column.getCanResize() &&
20
29
  !isLastColumn(table, header.column); // Last column can't be resized since it occupies all remaining space.
30
+ const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles({
31
+ column: header.column,
32
+ });
33
+ const headerCellClassname = buildClassnames([
34
+ headerCell,
35
+ pinnedCellClassName,
36
+ 'data-grid-header-cell',
37
+ ]);
38
+ const HeaderContents = flexRender(headerRenderer, header.getContext());
39
+ const HeaderContentComponent = sortable ? 'button' : 'div';
40
+ const headerContentClassname = buildClassnames([
41
+ sortable ? clickableHeaderContent : headerContent,
42
+ 'data-grid-header-content',
43
+ ]);
21
44
  const headerContentProps = {
22
45
  justifyContent,
23
46
  textAlign,
24
47
  };
25
- const HeaderContents = flexRender(headerRenderer, header.getContext());
26
- return (React__default.createElement("th", { className: headerCellClassname, role: "columnheader", scope: "col", "aria-colindex": index + 1, "aria-label": getAriaLabel === null || getAriaLabel === undefined ? undefined : getAriaLabel() },
27
- React__default.createElement("div", { className: headerContentClassname, style: headerContentProps }, typeof headerRenderer === 'string' ? (React__default.createElement("span", { className: headerOverflow }, HeaderContents)) : (HeaderContents)),
48
+ return (React__default.createElement("th", { className: headerCellClassname, role: "columnheader", scope: "col", "aria-colindex": index + 1, "aria-label": getAriaLabel === null || getAriaLabel === undefined ? undefined : getAriaLabel(), style: pinnedCellStyles, "aria-sort": ariaSort },
49
+ React__default.createElement(HeaderContentComponent, { className: headerContentClassname, style: headerContentProps, onClick: sortable ? header.column.getToggleSortingHandler() : undefined },
50
+ typeof headerRenderer === 'string' ? (React__default.createElement("span", { className: headerOverflow }, HeaderContents)) : (HeaderContents),
51
+ sortable && React__default.createElement(SortIcon, { isSorted: isSorted })),
28
52
  resizeable && (React__default.createElement(Resizer, { getIsResizing: header.column.getIsResizing, getResizeHandler: header.getResizeHandler(), resetSize: header.column.resetSize, deltaOffset: table.options.columnResizeMode === 'onChange'
29
53
  ? null
30
54
  : table.getState().columnSizingInfo.deltaOffset }))));
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderCell.js","sources":["../../../../../../src/components/DataGrid/components/Header/HeaderCell/HeaderCell.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { flexRender, Header, Table } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\nimport { isLastColumn } from '../../../utils';\n\nimport { Resizer } from '../Resizer';\nimport { headerCell, headerContent, headerOverflow } from './HeaderCell.module.css';\n\ntype HeaderCellProps = {\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * The index of this header in the grid.\n */\n index: number;\n};\n\nconst headerCellClassname = buildClassnames([headerCell, 'data-grid-row-header']);\nconst headerContentClassname = buildClassnames([headerContent, 'data-grid-header-content']);\n\n/**\n * A header cell within the DataGrid component. Responsible for rendering the column header and resize bar,\n * if resizing is enabled.\n */\nexport const HeaderCell = ({ table, header, index }: HeaderCellProps) => {\n const { justifyContent, textAlign, getAriaLabel } = header.column.columnDef.meta!;\n const headerRenderer = header.column.columnDef.header;\n\n const resizeable =\n table.options.enableColumnResizing &&\n header.column.getCanResize() &&\n !isLastColumn(table, header.column); // Last column can't be resized since it occupies all remaining space.\n\n const headerContentProps = {\n justifyContent,\n textAlign,\n } as CSSProperties;\n\n const HeaderContents = flexRender(headerRenderer, header.getContext());\n\n return (\n <th\n className={headerCellClassname}\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={index + 1}\n aria-label={getAriaLabel?.()}\n >\n {/* Header content */}\n <div className={headerContentClassname} style={headerContentProps}>\n {/* If we've been given just text to render, apply styles for text overflow */}\n {typeof headerRenderer === 'string' ? (\n <span className={headerOverflow}>{HeaderContents}</span>\n ) : (\n HeaderContents\n )}\n </div>\n\n {/* Column resizer */}\n {resizeable && (\n <Resizer\n getIsResizing={header.column.getIsResizing}\n getResizeHandler={header.getResizeHandler()}\n resetSize={header.column.resetSize}\n deltaOffset={\n table.options.columnResizeMode === 'onChange'\n ? null\n : table.getState().columnSizingInfo.deltaOffset\n }\n />\n )}\n </th>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;AA2BA,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;AACjF,MAAM,sBAAsB,GAAG,eAAe,CAAC,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;AAE3F;;;AAGG;AACI,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAmB,KAAI;AACtE,IAAA,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAK;IACjF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;AAErD,IAAA,MAAM,UAAU,GACd,KAAK,CAAC,OAAO,CAAC,oBAAoB;AAClC,QAAA,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;QAC5B,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtC,IAAA,MAAM,kBAAkB,GAAG;QACzB,cAAc;QACd,SAAS;KACO;IAElB,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IAEtE,QACEA,qCACE,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAC,cAAc,EACnB,KAAK,EAAC,KAAK,EAAA,eAAA,EACI,KAAK,GAAG,CAAC,EAAA,YAAA,EACZ,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,SAAA,GAAA,SAAA,GAAA,YAAY,EAAI,EAAA;AAG5B,QAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,sBAAsB,EAAE,KAAK,EAAE,kBAAkB,EAAA,EAE9D,OAAO,cAAc,KAAK,QAAQ,IACjCA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,cAAc,EAAA,EAAG,cAAc,CAAQ,KAExD,cAAc,CACf,CACG;AAGL,QAAA,UAAU,KACTA,cAAA,CAAA,aAAA,CAAC,OAAO,EAAA,EACN,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAC1C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,EAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAClC,WAAW,EACT,KAAK,CAAC,OAAO,CAAC,gBAAgB,KAAK;AACjC,kBAAE;AACF,kBAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAA,CAEnD,CACH,CACE;AAET;;;;"}
1
+ {"version":3,"file":"HeaderCell.js","sources":["../../../../../../src/components/DataGrid/components/Header/HeaderCell/HeaderCell.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { flexRender, Header, SortDirection, Table } from '@tanstack/react-table';\n\nimport { buildClassnames } from '../../../../../utils';\nimport { isLastColumn } from '../../../utils';\n\nimport { usePinnedColumnStyles } from '../../../hooks';\n\nimport { Resizer } from '../Resizer';\nimport {\n headerCell,\n headerContent,\n headerOverflow,\n clickableHeaderContent,\n} from './HeaderCell.module.css';\n\nimport { SortIcon } from './SortIcon';\n\ntype HeaderCellProps = {\n /**\n * The TanStack Table instance.\n */\n table: Table<any>;\n\n /**\n * The Header within the TanStack Table instance.\n */\n header: Header<any, any>;\n\n /**\n * The index of this header in the grid.\n */\n index: number;\n};\n\nconst getAriaSort = (sortDirection: false | SortDirection) => {\n if (!sortDirection) {\n return undefined;\n }\n\n return sortDirection === 'asc' ? 'ascending' : 'descending';\n};\n\n/**\n * A header cell within the DataGrid component. Responsible for rendering the column header and resize bar,\n * if resizing is enabled.\n */\nexport const HeaderCell = ({ table, header, index }: HeaderCellProps) => {\n const { justifyContent, textAlign, getAriaLabel } = header.column.columnDef.meta!;\n const headerRenderer = header.column.columnDef.header;\n\n const sortable = table.options.enableSorting && header.column.getCanSort();\n const isSorted = header.column.getIsSorted();\n const ariaSort = getAriaSort(isSorted);\n\n const resizeable =\n table.options.enableColumnResizing &&\n header.column.getCanResize() &&\n !isLastColumn(table, header.column); // Last column can't be resized since it occupies all remaining space.\n\n const { pinnedCellClassName, pinnedCellStyles } = usePinnedColumnStyles({\n column: header.column,\n });\n\n const headerCellClassname = buildClassnames([\n headerCell,\n pinnedCellClassName,\n 'data-grid-header-cell',\n ]);\n\n const HeaderContents = flexRender(headerRenderer, header.getContext());\n const HeaderContentComponent = sortable ? 'button' : 'div';\n const headerContentClassname = buildClassnames([\n sortable ? clickableHeaderContent : headerContent,\n 'data-grid-header-content',\n ]);\n const headerContentProps = {\n justifyContent,\n textAlign,\n } as CSSProperties;\n\n return (\n <th\n className={headerCellClassname}\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={index + 1}\n aria-label={getAriaLabel?.()}\n style={pinnedCellStyles}\n aria-sort={ariaSort}\n >\n {/* Header content */}\n <HeaderContentComponent\n className={headerContentClassname}\n style={headerContentProps}\n onClick={sortable ? header.column.getToggleSortingHandler() : undefined}\n >\n {/* If we've been given just text to render, apply styles for text overflow */}\n {typeof headerRenderer === 'string' ? (\n <span className={headerOverflow}>{HeaderContents}</span>\n ) : (\n HeaderContents\n )}\n\n {sortable && <SortIcon isSorted={isSorted} />}\n </HeaderContentComponent>\n\n {/* Column resizer */}\n {resizeable && (\n <Resizer\n getIsResizing={header.column.getIsResizing}\n getResizeHandler={header.getResizeHandler()}\n resetSize={header.column.resetSize}\n deltaOffset={\n table.options.columnResizeMode === 'onChange'\n ? null\n : table.getState().columnSizingInfo.deltaOffset\n }\n />\n )}\n </th>\n );\n};\n"],"names":["React"],"mappings":"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"}
@@ -1,15 +1,19 @@
1
1
  'use strict';
2
2
 
3
- const cssContents = `._baseCell_1w2bt_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._headerCell_1khpx_1{background-color:#fff;border-bottom:var(--sizes-line) solid var(--colors-neutral-grey-base)}._headerContent_1khpx_8{align-items:center;color:var(--text-heading-table-color);display:flex;font-family:var(--text-heading-table-font-family);font-size:var(--text-heading-table-font-size);font-weight:var(--text-heading-table-font-weight);gap:var(--sizes-small);height:var(--sizes-6);line-height:var(--text-heading-table-line-height);padding:var(--density);white-space:nowrap}._headerOverflow_1khpx_24{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
4
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiSGVhZGVyQ2VsbC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFBLHNCQUFBLGtCQUFBLHdCQUFBLDJIQUFBLDBCQUFBLENBQUEsQUNBQSxxQkFHRSxxQkFBdUIsQ0FDdkIscUVBQ0YsQ0FFQSx3QkFHRSxrQkFBbUIsQ0FNbkIscUNBQXNDLENBUnRDLFlBQWEsQ0FTYixpREFBa0QsQ0FDbEQsNkNBQThDLENBQzlDLGlEQUFrRCxDQVJsRCxzQkFBdUIsQ0FGdkIscUJBQXNCLENBV3RCLGlEQUFrRCxDQU5sRCxzQkFBdUIsQ0FGdkIsa0JBU0YsQ0FFQSwwQkFDRSxlQUFnQixDQUNoQixzQkFBdUIsQ0FDdkIsa0JBQ0YiLCJmaWxlIjoiSGVhZGVyQ2VsbC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIuaGVhZGVyQ2VsbCB7XG4gIGNvbXBvc2VzOiBiYXNlQ2VsbCBmcm9tICcuLi8uLi8uLi9EYXRhR3JpZC5tb2R1bGUuY3NzJztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tc2l6ZXMtbGluZSkgc29saWQgdmFyKC0tY29sb3JzLW5ldXRyYWwtZ3JleS1iYXNlKTtcbn1cblxuLmhlYWRlckNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IHZhcigtLXNpemVzLTYpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNpemVzLXNtYWxsKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBwYWRkaW5nOiB2YXIoLS1kZW5zaXR5KTtcblxuICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nLXRhYmxlLWNvbG9yKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRleHQtaGVhZGluZy10YWJsZS1mb250LWZhbWlseSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1oZWFkaW5nLXRhYmxlLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10ZXh0LWhlYWRpbmctdGFibGUtZm9udC13ZWlnaHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tdGV4dC1oZWFkaW5nLXRhYmxlLWxpbmUtaGVpZ2h0KTtcbn1cblxuLmhlYWRlck92ZXJmbG93IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iXX0= */`;
3
+ const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}._headerCell_42pod_1{background-color:#fff;border-bottom:var(--sizes-line) solid var(--colors-neutral-grey-base)}._headerContent_42pod_8{align-items:center;color:var(--text-heading-table-color);display:flex;font-family:var(--text-heading-table-font-family);font-size:var(--text-heading-table-font-size);font-weight:var(--text-heading-table-font-weight);gap:var(--sizes-sm);height:var(--sizes-6);line-height:var(--text-heading-table-line-height);padding:var(--density);white-space:nowrap}._headerOverflow_42pod_24{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._clickableHeaderContent_42pod_30{appearance:none;background-color:transparent;border:var(--sizes-none);border-radius:var(--sizes-sm);cursor:pointer;width:100%;&:focus-visible{box-shadow:var(--sizes-none) var(--sizes-none) var(--sizes-none) 2px var(--colors-secondary-blue-light);outline:var(--sizes-none)}&:hover{._sortIcon_42pod_47{background-color:var(--colors-neutral-grey-light);color:var(--colors-neutral-ink-base)}}}._sortIcon_42pod_47{align-items:center;background-color:#fff;color:var(--colors-neutral-ink-lightest);display:flex;height:var(--sizes-4);justify-content:center;width:var(--sizes-4)}
4
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiSGVhZGVyQ2VsbC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFBLHNCQUFBLGtCQUFBLHdCQUFBLDJIQUFBLDBCQUFBLENBQUEsNEJBQUEsUUFBQSxZQUFBLHNCQUFBLFdBQUEsb0JBQUEsa0JBQUEsc0JBQUEsV0FBQSxDQUFBLDRCQUFBLFFBQUEsa0RBQUEsd0JBQUEsMEJBQUEsQ0FBQSw2QkFBQSxRQUFBLG1EQUFBLHVCQUFBLDJCQUFBLENBQUEsQUNBQSxxQkFHRSxxQkFBdUIsQ0FDdkIscUVBQ0YsQ0FFQSx3QkFHRSxrQkFBbUIsQ0FNbkIscUNBQXNDLENBUnRDLFlBQWEsQ0FTYixpREFBa0QsQ0FDbEQsNkNBQThDLENBQzlDLGlEQUFrRCxDQVJsRCxtQkFBb0IsQ0FGcEIscUJBQXNCLENBV3RCLGlEQUFrRCxDQU5sRCxzQkFBdUIsQ0FGdkIsa0JBU0YsQ0FFQSwwQkFDRSxlQUFnQixDQUNoQixzQkFBdUIsQ0FDdkIsa0JBQ0YsQ0FFQSxrQ0FHRSxlQUFnQixDQUNoQiw0QkFBNkIsQ0FHN0Isd0JBQXlCLENBQ3pCLDZCQUE4QixDQUg5QixjQUFlLENBSWYsVUFBVyxDQUVYLGdCQUVFLHVHQUF3RyxDQUR4Ryx5QkFFRixDQUVBLFFBQ0Usb0JBQ0UsaURBQWtELENBQ2xELG9DQUNGLENBQ0YsQ0FDRixDQUVBLG9CQUtFLGtCQUFtQixDQUduQixxQkFBdUIsQ0FDdkIsd0NBQXlDLENBTHpDLFlBQWEsQ0FGYixxQkFBc0IsQ0FJdEIsc0JBQXVCLENBTHZCLG9CQVNGIiwiZmlsZSI6IkhlYWRlckNlbGwubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiLmhlYWRlckNlbGwge1xuICBjb21wb3NlczogYmFzZUNlbGwgZnJvbSAnLi4vLi4vLi4vRGF0YUdyaWQubW9kdWxlLmNzcyc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IHZhcigtLXNpemVzLWxpbmUpIHNvbGlkIHZhcigtLWNvbG9ycy1uZXV0cmFsLWdyZXktYmFzZSk7XG59XG5cbi5oZWFkZXJDb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplcy02KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zaXplcy1zbSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgcGFkZGluZzogdmFyKC0tZGVuc2l0eSk7XG5cbiAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZy10YWJsZS1jb2xvcik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXh0LWhlYWRpbmctdGFibGUtZm9udC1mYW1pbHkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtaGVhZGluZy10YWJsZS1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1oZWFkaW5nLXRhYmxlLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtaGVhZGluZy10YWJsZS1saW5lLWhlaWdodCk7XG59XG5cbi5oZWFkZXJPdmVyZmxvdyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2xpY2thYmxlSGVhZGVyQ29udGVudCB7XG4gIGNvbXBvc2VzOiBoZWFkZXJDb250ZW50O1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgYm9yZGVyOiB2YXIoLS1zaXplcy1ub25lKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZXMtc20pO1xuICB3aWR0aDogMTAwJTtcblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IHZhcigtLXNpemVzLW5vbmUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNpemVzLW5vbmUpIHZhcigtLXNpemVzLW5vbmUpIHZhcigtLXNpemVzLW5vbmUpIDJweCB2YXIoLS1jb2xvcnMtc2Vjb25kYXJ5LWJsdWUtbGlnaHQpO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLnNvcnRJY29uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1uZXV0cmFsLWdyZXktbGlnaHQpO1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9ycy1uZXV0cmFsLWluay1iYXNlKTtcbiAgICB9XG4gIH1cbn1cblxuLnNvcnRJY29uIHtcbiAgd2lkdGg6IHZhcigtLXNpemVzLTQpO1xuICBoZWlnaHQ6IHZhcigtLXNpemVzLTQpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogdmFyKC0tY29sb3JzLW5ldXRyYWwtaW5rLWxpZ2h0ZXN0KTtcbn0iXX0= */`;
5
5
  const style = document.createElement('style');
6
6
  style.innerHTML = cssContents;
7
7
  document.head.appendChild(style);
8
- const headerCell = '_headerCell_1khpx_1 _baseCell_1w2bt_1';
9
- const headerContent = '_headerContent_1khpx_8';
10
- const headerOverflow = '_headerOverflow_1khpx_24';
8
+ const headerCell = '_headerCell_42pod_1 _baseCell_13swz_1';
9
+ const headerContent = '_headerContent_42pod_8';
10
+ const headerOverflow = '_headerOverflow_42pod_24';
11
+ const clickableHeaderContent = '_clickableHeaderContent_42pod_30 _headerContent_42pod_8';
12
+ const sortIcon = '_sortIcon_42pod_47';
11
13
 
14
+ exports.clickableHeaderContent = clickableHeaderContent;
12
15
  exports.headerCell = headerCell;
13
16
  exports.headerContent = headerContent;
14
17
  exports.headerOverflow = headerOverflow;
18
+ exports.sortIcon = sortIcon;
15
19
  //# sourceMappingURL=HeaderCell.module.css.cjs.map