@dfds-ui/experiences 2.2.0-alpha.8f6cde13 → 2.2.0-alpha.9b8e2d07

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 (145) hide show
  1. package/cjs/dynamic-table/Body/TableBody.d.ts +4 -0
  2. package/cjs/dynamic-table/Body/TableBody.js +49 -0
  3. package/cjs/dynamic-table/Body/TableBody.types.d.ts +11 -0
  4. package/cjs/dynamic-table/Body/TableBody.types.js +5 -0
  5. package/cjs/dynamic-table/Body/TableCell.d.ts +4 -0
  6. package/cjs/dynamic-table/Body/TableCell.js +22 -0
  7. package/cjs/dynamic-table/Body/TableCell.styles.d.ts +9 -0
  8. package/cjs/dynamic-table/Body/TableCell.styles.js +25 -0
  9. package/cjs/dynamic-table/Body/TableCell.types.d.ts +5 -0
  10. package/cjs/dynamic-table/Body/TableCell.types.js +5 -0
  11. package/cjs/dynamic-table/Body/TableRow.d.ts +4 -0
  12. package/cjs/dynamic-table/Body/TableRow.js +73 -0
  13. package/cjs/dynamic-table/Body/TableRow.styles.d.ts +11 -0
  14. package/cjs/dynamic-table/Body/TableRow.styles.js +37 -0
  15. package/cjs/dynamic-table/Body/TableRow.types.d.ts +18 -0
  16. package/cjs/dynamic-table/Body/TableRow.types.js +5 -0
  17. package/cjs/dynamic-table/Body/TableRowGroup.d.ts +4 -0
  18. package/cjs/dynamic-table/Body/TableRowGroup.js +52 -0
  19. package/cjs/dynamic-table/Body/TableRowGroup.types.d.ts +14 -0
  20. package/cjs/dynamic-table/Body/TableRowGroup.types.js +5 -0
  21. package/cjs/dynamic-table/DynamicTable.d.ts +4 -0
  22. package/cjs/dynamic-table/DynamicTable.js +78 -0
  23. package/cjs/dynamic-table/DynamicTable.styles.d.ts +6 -0
  24. package/cjs/dynamic-table/DynamicTable.styles.js +16 -0
  25. package/cjs/dynamic-table/DynamicTable.types.d.ts +36 -0
  26. package/cjs/dynamic-table/DynamicTable.types.js +5 -0
  27. package/cjs/dynamic-table/Head/TableHead.d.ts +4 -0
  28. package/cjs/dynamic-table/Head/TableHead.js +94 -0
  29. package/cjs/dynamic-table/Head/TableHead.styles.d.ts +5 -0
  30. package/cjs/dynamic-table/Head/TableHead.styles.js +70 -0
  31. package/cjs/dynamic-table/Head/TableHead.types.d.ts +36 -0
  32. package/cjs/dynamic-table/Head/TableHead.types.js +5 -0
  33. package/cjs/dynamic-table/Skeleton/SkeletonTable.styles.d.ts +1 -0
  34. package/cjs/dynamic-table/Skeleton/SkeletonTable.styles.js +16 -0
  35. package/cjs/dynamic-table/Skeleton/helpers/createSkeletonRows.d.ts +3 -0
  36. package/cjs/dynamic-table/Skeleton/helpers/createSkeletonRows.js +32 -0
  37. package/cjs/dynamic-table/helpers/getHeaderRow.d.ts +3 -0
  38. package/cjs/dynamic-table/helpers/getHeaderRow.js +21 -0
  39. package/cjs/dynamic-table/stories/headerRow.d.ts +3 -0
  40. package/cjs/dynamic-table/stories/headerRow.js +26 -0
  41. package/cjs/dynamic-table/stories/headerRowSortable.d.ts +3 -0
  42. package/cjs/dynamic-table/stories/headerRowSortable.js +28 -0
  43. package/cjs/dynamic-table/stories/tableRows.d.ts +3 -0
  44. package/cjs/dynamic-table/stories/tableRows.js +107 -0
  45. package/cjs/dynamic-table/stories/tableRowsExpandable.d.ts +3 -0
  46. package/cjs/dynamic-table/stories/tableRowsExpandable.js +109 -0
  47. package/cjs/footer/Footer.d.ts +23 -0
  48. package/cjs/footer/Footer.js +100 -0
  49. package/cjs/footer/FooterColumn.d.ts +11 -0
  50. package/cjs/footer/FooterColumn.js +36 -0
  51. package/cjs/footer/FooterColumnItem.d.ts +7 -0
  52. package/cjs/footer/FooterColumnItem.js +31 -0
  53. package/cjs/footer/FooterMetaLink.d.ts +7 -0
  54. package/cjs/footer/FooterMetaLink.js +33 -0
  55. package/cjs/footer/index.d.ts +4 -0
  56. package/cjs/footer/index.js +49 -0
  57. package/cjs/index.d.ts +5 -0
  58. package/cjs/index.js +60 -0
  59. package/cjs/internet-explorer-modal/IEModal.d.ts +69 -0
  60. package/cjs/internet-explorer-modal/IEModal.js +115 -0
  61. package/cjs/locale-selector/LocaleOption.d.ts +9 -0
  62. package/cjs/locale-selector/LocaleOption.js +41 -0
  63. package/cjs/locale-selector/LocaleSelector.d.ts +55 -0
  64. package/cjs/locale-selector/LocaleSelector.js +90 -0
  65. package/cjs/locale-selector/index.d.ts +1 -0
  66. package/cjs/locale-selector/index.js +16 -0
  67. package/cjs/swiper/Swiper.d.ts +6 -0
  68. package/cjs/swiper/Swiper.js +31 -0
  69. package/cjs/swiper/SwiperCard.d.ts +6 -0
  70. package/cjs/swiper/SwiperCard.js +31 -0
  71. package/cjs/swiper/index.d.ts +2 -0
  72. package/cjs/swiper/index.js +27 -0
  73. package/dynamic-table/Body/TableBody.d.ts +4 -0
  74. package/dynamic-table/Body/TableBody.js +48 -0
  75. package/dynamic-table/Body/TableBody.types.d.ts +11 -0
  76. package/dynamic-table/Body/TableBody.types.js +1 -0
  77. package/dynamic-table/Body/TableCell.d.ts +4 -0
  78. package/dynamic-table/Body/TableCell.js +16 -0
  79. package/dynamic-table/Body/TableCell.styles.d.ts +9 -0
  80. package/dynamic-table/Body/TableCell.styles.js +18 -0
  81. package/dynamic-table/Body/TableCell.types.d.ts +5 -0
  82. package/dynamic-table/Body/TableCell.types.js +1 -0
  83. package/dynamic-table/Body/TableRow.d.ts +4 -0
  84. package/dynamic-table/Body/TableRow.js +74 -0
  85. package/dynamic-table/Body/TableRow.styles.d.ts +11 -0
  86. package/dynamic-table/Body/TableRow.styles.js +20 -0
  87. package/dynamic-table/Body/TableRow.types.d.ts +18 -0
  88. package/dynamic-table/Body/TableRow.types.js +1 -0
  89. package/dynamic-table/Body/TableRowGroup.d.ts +4 -0
  90. package/dynamic-table/Body/TableRowGroup.js +55 -0
  91. package/dynamic-table/Body/TableRowGroup.types.d.ts +14 -0
  92. package/dynamic-table/Body/TableRowGroup.types.js +1 -0
  93. package/dynamic-table/DynamicTable.d.ts +4 -0
  94. package/dynamic-table/DynamicTable.js +93 -0
  95. package/dynamic-table/DynamicTable.styles.d.ts +6 -0
  96. package/dynamic-table/DynamicTable.styles.js +7 -0
  97. package/dynamic-table/DynamicTable.types.d.ts +36 -0
  98. package/dynamic-table/DynamicTable.types.js +1 -0
  99. package/dynamic-table/Head/TableHead.d.ts +4 -0
  100. package/dynamic-table/Head/TableHead.js +88 -0
  101. package/dynamic-table/Head/TableHead.styles.d.ts +5 -0
  102. package/dynamic-table/Head/TableHead.styles.js +48 -0
  103. package/dynamic-table/Head/TableHead.types.d.ts +36 -0
  104. package/dynamic-table/Head/TableHead.types.js +1 -0
  105. package/dynamic-table/Skeleton/SkeletonTable.styles.d.ts +1 -0
  106. package/dynamic-table/Skeleton/SkeletonTable.styles.js +10 -0
  107. package/dynamic-table/Skeleton/helpers/createSkeletonRows.d.ts +3 -0
  108. package/dynamic-table/Skeleton/helpers/createSkeletonRows.js +33 -0
  109. package/dynamic-table/helpers/getHeaderRow.d.ts +3 -0
  110. package/dynamic-table/helpers/getHeaderRow.js +15 -0
  111. package/dynamic-table/stories/headerRow.d.ts +3 -0
  112. package/dynamic-table/stories/headerRow.js +20 -0
  113. package/dynamic-table/stories/headerRowSortable.d.ts +3 -0
  114. package/dynamic-table/stories/headerRowSortable.js +22 -0
  115. package/dynamic-table/stories/tableRows.d.ts +3 -0
  116. package/dynamic-table/stories/tableRows.js +102 -0
  117. package/dynamic-table/stories/tableRowsExpandable.d.ts +3 -0
  118. package/dynamic-table/stories/tableRowsExpandable.js +104 -0
  119. package/footer/Footer.d.ts +23 -0
  120. package/footer/Footer.js +80 -0
  121. package/footer/FooterColumn.d.ts +11 -0
  122. package/footer/FooterColumn.js +36 -0
  123. package/footer/FooterColumnItem.d.ts +7 -0
  124. package/footer/FooterColumnItem.js +29 -0
  125. package/footer/FooterMetaLink.d.ts +7 -0
  126. package/footer/FooterMetaLink.js +35 -0
  127. package/footer/index.d.ts +4 -0
  128. package/footer/index.js +4 -0
  129. package/index.d.ts +5 -0
  130. package/index.js +5 -0
  131. package/internet-explorer-modal/IEModal.d.ts +69 -0
  132. package/internet-explorer-modal/IEModal.js +137 -0
  133. package/locale-selector/LocaleOption.d.ts +9 -0
  134. package/locale-selector/LocaleOption.js +32 -0
  135. package/locale-selector/LocaleSelector.d.ts +55 -0
  136. package/locale-selector/LocaleSelector.js +98 -0
  137. package/locale-selector/index.d.ts +1 -0
  138. package/locale-selector/index.js +1 -0
  139. package/package.json +10 -10
  140. package/swiper/Swiper.d.ts +6 -0
  141. package/swiper/Swiper.js +22 -0
  142. package/swiper/SwiperCard.d.ts +6 -0
  143. package/swiper/SwiperCard.js +22 -0
  144. package/swiper/index.d.ts +2 -0
  145. package/swiper/index.js +2 -0
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { tableCellStyles } from './TableCell.styles';
3
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
4
+ var TableCell = /*#__PURE__*/React.memo(function (_ref) {
5
+ var children = _ref.children,
6
+ headerCell = _ref.headerCell;
7
+ return _jsx("td", {
8
+ css: tableCellStyles({
9
+ align: headerCell === null || headerCell === void 0 ? void 0 : headerCell.textAlign,
10
+ customWidth: headerCell === null || headerCell === void 0 ? void 0 : headerCell.width
11
+ }),
12
+ "data-cy": "dynamic-table-cell-".concat(headerCell === null || headerCell === void 0 ? void 0 : headerCell.key),
13
+ children: children
14
+ });
15
+ });
16
+ export default TableCell;
@@ -0,0 +1,9 @@
1
+ export declare const genericTableCellStyles: import("@emotion/utils").SerializedStyles;
2
+ type TableCellProps = {
3
+ align?: 'center' | 'left' | 'right';
4
+ customWidth?: string;
5
+ };
6
+ export declare const tableCellStyles: ({ align, customWidth }: TableCellProps) => import("@emotion/utils").SerializedStyles;
7
+ export declare const tableCellExpanderStyles: (isExpandable: boolean) => import("@emotion/utils").SerializedStyles;
8
+ export declare const tableCellCheckboxStyles: import("@emotion/utils").SerializedStyles;
9
+ export {};
@@ -0,0 +1,18 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { theme } from '@dfds-ui/theme';
8
+ import { css } from '@emotion/react';
9
+ export var genericTableCellStyles = /*#__PURE__*/css("padding:0 ", theme.spacing.xs, ";&:first-of-type{padding-left:", theme.spacing.s, ";}&:last-of-type{padding-right:", theme.spacing.s, ";}" + (process.env.NODE_ENV === "production" ? "" : ";label:genericTableCellStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVDZWxsLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR3lDIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVDZWxsLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aGVtZSB9IGZyb20gJ0BkZmRzLXVpL3RoZW1lJ1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5cbmV4cG9ydCBjb25zdCBnZW5lcmljVGFibGVDZWxsU3R5bGVzID0gY3NzYFxuICBwYWRkaW5nOiAwICR7dGhlbWUuc3BhY2luZy54c307XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICR7dGhlbWUuc3BhY2luZy5zfTtcbiAgfVxuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3RoZW1lLnNwYWNpbmcuc307XG4gIH1cbmBcblxudHlwZSBUYWJsZUNlbGxQcm9wcyA9IHtcbiAgYWxpZ24/OiAnY2VudGVyJyB8ICdsZWZ0JyB8ICdyaWdodCdcbiAgY3VzdG9tV2lkdGg/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHRhYmxlQ2VsbFN0eWxlcyA9ICh7IGFsaWduLCBjdXN0b21XaWR0aCB9OiBUYWJsZUNlbGxQcm9wcykgPT4gY3NzYFxuICAke3sgLi4uZ2VuZXJpY1RhYmxlQ2VsbFN0eWxlcyB9fVxuXG4gIG1pbi13aWR0aDogJHtjdXN0b21XaWR0aCB8fCAnYXV0byd9O1xuICB0ZXh0LWFsaWduOiAke2FsaWduIHx8ICdsZWZ0J307XG4gIHdpZHRoOiAke2N1c3RvbVdpZHRoIHx8ICdhdXRvJ307XG5gXG5cbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxFeHBhbmRlclN0eWxlcyA9IChpc0V4cGFuZGFibGU6IGJvb2xlYW4pID0+IGNzc2BcbiAgJHt7IC4uLmdlbmVyaWNUYWJsZUNlbGxTdHlsZXMgfX1cblxuICBtYXgtd2lkdGg6IDQ4cHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogNDhweDtcblxuICAke2lzRXhwYW5kYWJsZSAmJlxuICBgXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICBgfTtcbmBcblxuZXhwb3J0IGNvbnN0IHRhYmxlQ2VsbENoZWNrYm94U3R5bGVzID0gY3NzYFxuICAke3sgLi4uZ2VuZXJpY1RhYmxlQ2VsbFN0eWxlcyB9fVxuXG4gIG1heC13aWR0aDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG5gXG4iXX0= */");
10
+ export var tableCellStyles = function tableCellStyles(_ref) {
11
+ var align = _ref.align,
12
+ customWidth = _ref.customWidth;
13
+ return /*#__PURE__*/css(_objectSpread({}, genericTableCellStyles), " min-width:", customWidth || 'auto', ";text-align:", align || 'left', ";width:", customWidth || 'auto', ";" + (process.env.NODE_ENV === "production" ? "" : ";label:tableCellStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVDZWxsLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0I4RSIsImZpbGUiOiIuLi8uLi8uLi9zcmMvZHluYW1pYy10YWJsZS9Cb2R5L1RhYmxlQ2VsbC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhlbWUgfSBmcm9tICdAZGZkcy11aS90aGVtZSdcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuXG5leHBvcnQgY29uc3QgZ2VuZXJpY1RhYmxlQ2VsbFN0eWxlcyA9IGNzc2BcbiAgcGFkZGluZzogMCAke3RoZW1lLnNwYWNpbmcueHN9O1xuXG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAke3RoZW1lLnNwYWNpbmcuc307XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZy1yaWdodDogJHt0aGVtZS5zcGFjaW5nLnN9O1xuICB9XG5gXG5cbnR5cGUgVGFibGVDZWxsUHJvcHMgPSB7XG4gIGFsaWduPzogJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnXG4gIGN1c3RvbVdpZHRoPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxTdHlsZXMgPSAoeyBhbGlnbiwgY3VzdG9tV2lkdGggfTogVGFibGVDZWxsUHJvcHMpID0+IGNzc2BcbiAgJHt7IC4uLmdlbmVyaWNUYWJsZUNlbGxTdHlsZXMgfX1cblxuICBtaW4td2lkdGg6ICR7Y3VzdG9tV2lkdGggfHwgJ2F1dG8nfTtcbiAgdGV4dC1hbGlnbjogJHthbGlnbiB8fCAnbGVmdCd9O1xuICB3aWR0aDogJHtjdXN0b21XaWR0aCB8fCAnYXV0byd9O1xuYFxuXG5leHBvcnQgY29uc3QgdGFibGVDZWxsRXhwYW5kZXJTdHlsZXMgPSAoaXNFeHBhbmRhYmxlOiBib29sZWFuKSA9PiBjc3NgXG4gICR7eyAuLi5nZW5lcmljVGFibGVDZWxsU3R5bGVzIH19XG5cbiAgbWF4LXdpZHRoOiA0OHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2lkdGg6IDQ4cHg7XG5cbiAgJHtpc0V4cGFuZGFibGUgJiZcbiAgYFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgYH07XG5gXG5cbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxDaGVja2JveFN0eWxlcyA9IGNzc2BcbiAgJHt7IC4uLmdlbmVyaWNUYWJsZUNlbGxTdHlsZXMgfX1cblxuICBtYXgtd2lkdGg6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuYFxuIl19 */");
14
+ };
15
+ export var tableCellExpanderStyles = function tableCellExpanderStyles(isExpandable) {
16
+ return /*#__PURE__*/css(_objectSpread({}, genericTableCellStyles), " max-width:48px;user-select:none;width:48px;", isExpandable && "\n cursor: pointer;\n ", ";" + (process.env.NODE_ENV === "production" ? "" : ";label:tableCellExpanderStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVDZWxsLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJxRSIsImZpbGUiOiIuLi8uLi8uLi9zcmMvZHluYW1pYy10YWJsZS9Cb2R5L1RhYmxlQ2VsbC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhlbWUgfSBmcm9tICdAZGZkcy11aS90aGVtZSdcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuXG5leHBvcnQgY29uc3QgZ2VuZXJpY1RhYmxlQ2VsbFN0eWxlcyA9IGNzc2BcbiAgcGFkZGluZzogMCAke3RoZW1lLnNwYWNpbmcueHN9O1xuXG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAke3RoZW1lLnNwYWNpbmcuc307XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZy1yaWdodDogJHt0aGVtZS5zcGFjaW5nLnN9O1xuICB9XG5gXG5cbnR5cGUgVGFibGVDZWxsUHJvcHMgPSB7XG4gIGFsaWduPzogJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnXG4gIGN1c3RvbVdpZHRoPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxTdHlsZXMgPSAoeyBhbGlnbiwgY3VzdG9tV2lkdGggfTogVGFibGVDZWxsUHJvcHMpID0+IGNzc2BcbiAgJHt7IC4uLmdlbmVyaWNUYWJsZUNlbGxTdHlsZXMgfX1cblxuICBtaW4td2lkdGg6ICR7Y3VzdG9tV2lkdGggfHwgJ2F1dG8nfTtcbiAgdGV4dC1hbGlnbjogJHthbGlnbiB8fCAnbGVmdCd9O1xuICB3aWR0aDogJHtjdXN0b21XaWR0aCB8fCAnYXV0byd9O1xuYFxuXG5leHBvcnQgY29uc3QgdGFibGVDZWxsRXhwYW5kZXJTdHlsZXMgPSAoaXNFeHBhbmRhYmxlOiBib29sZWFuKSA9PiBjc3NgXG4gICR7eyAuLi5nZW5lcmljVGFibGVDZWxsU3R5bGVzIH19XG5cbiAgbWF4LXdpZHRoOiA0OHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2lkdGg6IDQ4cHg7XG5cbiAgJHtpc0V4cGFuZGFibGUgJiZcbiAgYFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgYH07XG5gXG5cbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxDaGVja2JveFN0eWxlcyA9IGNzc2BcbiAgJHt7IC4uLmdlbmVyaWNUYWJsZUNlbGxTdHlsZXMgfX1cblxuICBtYXgtd2lkdGg6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuYFxuIl19 */");
17
+ };
18
+ export var tableCellCheckboxStyles = /*#__PURE__*/css(_objectSpread({}, genericTableCellStyles), " max-width:40px;width:40px;" + (process.env.NODE_ENV === "production" ? "" : ";label:tableCellCheckboxStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVDZWxsLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUMwQyIsImZpbGUiOiIuLi8uLi8uLi9zcmMvZHluYW1pYy10YWJsZS9Cb2R5L1RhYmxlQ2VsbC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhlbWUgfSBmcm9tICdAZGZkcy11aS90aGVtZSdcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuXG5leHBvcnQgY29uc3QgZ2VuZXJpY1RhYmxlQ2VsbFN0eWxlcyA9IGNzc2BcbiAgcGFkZGluZzogMCAke3RoZW1lLnNwYWNpbmcueHN9O1xuXG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAke3RoZW1lLnNwYWNpbmcuc307XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZy1yaWdodDogJHt0aGVtZS5zcGFjaW5nLnN9O1xuICB9XG5gXG5cbnR5cGUgVGFibGVDZWxsUHJvcHMgPSB7XG4gIGFsaWduPzogJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnXG4gIGN1c3RvbVdpZHRoPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxTdHlsZXMgPSAoeyBhbGlnbiwgY3VzdG9tV2lkdGggfTogVGFibGVDZWxsUHJvcHMpID0+IGNzc2BcbiAgJHt7IC4uLmdlbmVyaWNUYWJsZUNlbGxTdHlsZXMgfX1cblxuICBtaW4td2lkdGg6ICR7Y3VzdG9tV2lkdGggfHwgJ2F1dG8nfTtcbiAgdGV4dC1hbGlnbjogJHthbGlnbiB8fCAnbGVmdCd9O1xuICB3aWR0aDogJHtjdXN0b21XaWR0aCB8fCAnYXV0byd9O1xuYFxuXG5leHBvcnQgY29uc3QgdGFibGVDZWxsRXhwYW5kZXJTdHlsZXMgPSAoaXNFeHBhbmRhYmxlOiBib29sZWFuKSA9PiBjc3NgXG4gICR7eyAuLi5nZW5lcmljVGFibGVDZWxsU3R5bGVzIH19XG5cbiAgbWF4LXdpZHRoOiA0OHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2lkdGg6IDQ4cHg7XG5cbiAgJHtpc0V4cGFuZGFibGUgJiZcbiAgYFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgYH07XG5gXG5cbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxDaGVja2JveFN0eWxlcyA9IGNzc2BcbiAgJHt7IC4uLmdlbmVyaWNUYWJsZUNlbGxTdHlsZXMgfX1cblxuICBtYXgtd2lkdGg6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuYFxuIl19 */");
@@ -0,0 +1,5 @@
1
+ import { Header } from '../DynamicTable.types';
2
+ export type TableCellProps = {
3
+ children: React.ReactNode;
4
+ headerCell?: Header;
5
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TableRowProps } from './TableRow.types';
3
+ declare const TableRow: React.MemoExoticComponent<({ expandable, headerRow, isActive, isExpanded, isSubRow, onClickRow, onSelectRow, row, selectableRows, selectedRows, setIsExpanded, showExpander, }: TableRowProps) => React.JSX.Element>;
4
+ export default TableRow;
@@ -0,0 +1,74 @@
1
+ import React from 'react';
2
+ import { Checkbox } from '@dfds-ui/forms';
3
+ import TableCell from './TableCell';
4
+ import { tableCellCheckboxStyles, tableCellExpanderStyles } from './TableCell.styles';
5
+ import { chevronStyles, tableRowStyles } from './TableRow.styles';
6
+ import { ChevronRight } from '@dfds-ui/icons/system';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
8
+ var TableRow = /*#__PURE__*/React.memo(function (_ref) {
9
+ var _row$subRows;
10
+ var expandable = _ref.expandable,
11
+ headerRow = _ref.headerRow,
12
+ isActive = _ref.isActive,
13
+ isExpanded = _ref.isExpanded,
14
+ _ref$isSubRow = _ref.isSubRow,
15
+ isSubRow = _ref$isSubRow === void 0 ? false : _ref$isSubRow,
16
+ onClickRow = _ref.onClickRow,
17
+ onSelectRow = _ref.onSelectRow,
18
+ row = _ref.row,
19
+ selectableRows = _ref.selectableRows,
20
+ selectedRows = _ref.selectedRows,
21
+ setIsExpanded = _ref.setIsExpanded,
22
+ _ref$showExpander = _ref.showExpander,
23
+ showExpander = _ref$showExpander === void 0 ? false : _ref$showExpander;
24
+ var hasSubRows = (((_row$subRows = row.subRows) === null || _row$subRows === void 0 ? void 0 : _row$subRows.length) || 0) > 0;
25
+ return _jsxs("tr", {
26
+ css: tableRowStyles({
27
+ active: isActive,
28
+ expanded: isExpanded,
29
+ hoverColor: !!onClickRow,
30
+ subRow: !!isSubRow
31
+ }),
32
+ className: row.className,
33
+ "data-expanded": isExpanded,
34
+ "data-row-type": isSubRow ? 'sub-row' : 'row',
35
+ onClick: function onClick() {
36
+ return onClickRow && onClickRow(row.id ? String(row.id) : '');
37
+ },
38
+ children: [expandable && _jsx("td", {
39
+ css: tableCellExpanderStyles(showExpander),
40
+ onClick: function onClick(e) {
41
+ if (!showExpander) return;
42
+ e.stopPropagation();
43
+ setIsExpanded(function (prev) {
44
+ return !prev;
45
+ });
46
+ },
47
+ children: hasSubRows ? _jsx(ChevronRight, {
48
+ css: chevronStyles({
49
+ expanded: isExpanded
50
+ })
51
+ }) : null
52
+ }), selectableRows && row.id && _jsx("td", {
53
+ css: tableCellCheckboxStyles,
54
+ children: _jsx(Checkbox, {
55
+ checked: selectedRows.includes(row.id),
56
+ name: row.id,
57
+ onChange: function onChange() {
58
+ if (!row.id) return;
59
+ onSelectRow(row.id);
60
+ },
61
+ onLabelClick: function onLabelClick(e) {
62
+ e.stopPropagation();
63
+ },
64
+ visualSize: "small"
65
+ })
66
+ }), headerRow.map(function (headerCell, index) {
67
+ return _jsx(TableCell, {
68
+ headerCell: headerRow === null || headerRow === void 0 ? void 0 : headerRow[index],
69
+ children: row[headerCell.key] || '-'
70
+ }, index);
71
+ })]
72
+ });
73
+ });
74
+ export default TableRow;
@@ -0,0 +1,11 @@
1
+ import { ChevronProps } from './TableRow.types';
2
+ export declare const genericTableRowStyles: import("@emotion/utils").SerializedStyles;
3
+ type TableRowProps = {
4
+ active?: boolean;
5
+ expanded: boolean;
6
+ hoverColor: boolean;
7
+ subRow: boolean;
8
+ };
9
+ export declare const tableRowStyles: ({ active, expanded, hoverColor, subRow }: TableRowProps) => import("@emotion/utils").SerializedStyles;
10
+ export declare const chevronStyles: ({ expanded }: ChevronProps) => import("@emotion/utils").SerializedStyles;
11
+ export {};
@@ -0,0 +1,20 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { theme } from '@dfds-ui/theme';
8
+ import { css } from '@emotion/react';
9
+ export var genericTableRowStyles = /*#__PURE__*/css("border-bottom:1px solid ", theme.colors.divider.dark, ";border-collapse:collapse;height:48px;" + (process.env.NODE_ENV === "production" ? "" : ";label:genericTableRowStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVSb3cuc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJd0MiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL2R5bmFtaWMtdGFibGUvQm9keS9UYWJsZVJvdy5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhlbWUgfSBmcm9tICdAZGZkcy11aS90aGVtZSdcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblByb3BzIH0gZnJvbSAnLi9UYWJsZVJvdy50eXBlcydcblxuZXhwb3J0IGNvbnN0IGdlbmVyaWNUYWJsZVJvd1N0eWxlcyA9IGNzc2BcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7dGhlbWUuY29sb3JzLmRpdmlkZXIuZGFya307XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGhlaWdodDogNDhweDtcbmBcblxudHlwZSBUYWJsZVJvd1Byb3BzID0ge1xuICBhY3RpdmU/OiBib29sZWFuXG4gIGV4cGFuZGVkOiBib29sZWFuXG4gIGhvdmVyQ29sb3I6IGJvb2xlYW5cbiAgc3ViUm93OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCB0YWJsZVJvd1N0eWxlcyA9ICh7IGFjdGl2ZSwgZXhwYW5kZWQsIGhvdmVyQ29sb3IsIHN1YlJvdyB9OiBUYWJsZVJvd1Byb3BzKSA9PiBjc3NgXG4gICR7eyAuLi5nZW5lcmljVGFibGVSb3dTdHlsZXMgfX1cblxuICAmOmhvdmVyIHtcbiAgICAke2hvdmVyQ29sb3IgJiZcbiAgICBgXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLmNvbG9ycy5zdXJmYWNlLnNlY29uZGFyeX07XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYH07XG4gIH1cblxuICAke2V4cGFuZGVkICYmXG4gIGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLmNvbG9ycy5zdXJmYWNlLnNlY29uZGFyeX07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICR7XG4gICAgICAgIGhvdmVyQ29sb3IgJiZcbiAgICAgICAgYFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLmNvbG9ycy5kaXZpZGVyLmRhcmt9O1xuICAgICAgYFxuICAgICAgfTtcbiAgICB9XG4gIGB9O1xuXG4gICR7c3ViUm93ICYmXG4gICFleHBhbmRlZCAmJlxuICBgXG4gICAgZGlzcGxheTogbm9uZTtcbiAgYH07XG5cbiAgJHthY3RpdmUgJiZcbiAgYFxuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuY29sb3JzLmRpdmlkZXIuZGFya307XG4gIGB9O1xuYFxuXG5leHBvcnQgY29uc3QgY2hldnJvblN0eWxlcyA9ICh7IGV4cGFuZGVkIH06IENoZXZyb25Qcm9wcykgPT4gY3NzYFxuICBjb2xvcjogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5kYXJrfTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIHRyYW5zZm9ybTogJHtleHBhbmRlZCAmJiAncm90YXRlKDkwZGVnKSd9O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuYFxuIl19 */");
10
+ export var tableRowStyles = function tableRowStyles(_ref) {
11
+ var active = _ref.active,
12
+ expanded = _ref.expanded,
13
+ hoverColor = _ref.hoverColor,
14
+ subRow = _ref.subRow;
15
+ return /*#__PURE__*/css(_objectSpread({}, genericTableRowStyles), " &:hover{", hoverColor && "\n background-color: ".concat(theme.colors.surface.secondary, ";\n cursor: pointer;\n "), ";}", expanded && "\n background-color: ".concat(theme.colors.surface.secondary, ";\n\n &:hover {\n ").concat(hoverColor && "\n background-color: ".concat(theme.colors.divider.dark, ";\n "), ";\n }\n "), ";", subRow && !expanded && "\n display: none;\n ", ";", active && "\n background-color: ".concat(theme.colors.divider.dark, ";\n "), ";" + (process.env.NODE_ENV === "production" ? "" : ";label:tableRowStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVSb3cuc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQjhGIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVSb3cuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRoZW1lIH0gZnJvbSAnQGRmZHMtdWkvdGhlbWUnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENoZXZyb25Qcm9wcyB9IGZyb20gJy4vVGFibGVSb3cudHlwZXMnXG5cbmV4cG9ydCBjb25zdCBnZW5lcmljVGFibGVSb3dTdHlsZXMgPSBjc3NgXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5kaXZpZGVyLmRhcmt9O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBoZWlnaHQ6IDQ4cHg7XG5gXG5cbnR5cGUgVGFibGVSb3dQcm9wcyA9IHtcbiAgYWN0aXZlPzogYm9vbGVhblxuICBleHBhbmRlZDogYm9vbGVhblxuICBob3ZlckNvbG9yOiBib29sZWFuXG4gIHN1YlJvdzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdGFibGVSb3dTdHlsZXMgPSAoeyBhY3RpdmUsIGV4cGFuZGVkLCBob3ZlckNvbG9yLCBzdWJSb3cgfTogVGFibGVSb3dQcm9wcykgPT4gY3NzYFxuICAke3sgLi4uZ2VuZXJpY1RhYmxlUm93U3R5bGVzIH19XG5cbiAgJjpob3ZlciB7XG4gICAgJHtob3ZlckNvbG9yICYmXG4gICAgYFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnMuc3VyZmFjZS5zZWNvbmRhcnl9O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGB9O1xuICB9XG5cbiAgJHtleHBhbmRlZCAmJlxuICBgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnMuc3VyZmFjZS5zZWNvbmRhcnl9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAke1xuICAgICAgICBob3ZlckNvbG9yICYmXG4gICAgICAgIGBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnMuZGl2aWRlci5kYXJrfTtcbiAgICAgIGBcbiAgICAgIH07XG4gICAgfVxuICBgfTtcblxuICAke3N1YlJvdyAmJlxuICAhZXhwYW5kZWQgJiZcbiAgYFxuICAgIGRpc3BsYXk6IG5vbmU7XG4gIGB9O1xuXG4gICR7YWN0aXZlICYmXG4gIGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLmNvbG9ycy5kaXZpZGVyLmRhcmt9O1xuICBgfTtcbmBcblxuZXhwb3J0IGNvbnN0IGNoZXZyb25TdHlsZXMgPSAoeyBleHBhbmRlZCB9OiBDaGV2cm9uUHJvcHMpID0+IGNzc2BcbiAgY29sb3I6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuZGFya307XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICB0cmFuc2Zvcm06ICR7ZXhwYW5kZWQgJiYgJ3JvdGF0ZSg5MGRlZyknfTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbmBcbiJdfQ== */");
16
+ };
17
+ export var chevronStyles = function chevronStyles(_ref2) {
18
+ var expanded = _ref2.expanded;
19
+ return /*#__PURE__*/css("color:", theme.colors.primary.dark, ";font-size:1.5rem;transform:", expanded && 'rotate(90deg)', ";transition-duration:250ms;transition-property:transform;" + (process.env.NODE_ENV === "production" ? "" : ";label:chevronStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVSb3cuc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRGdFIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0JvZHkvVGFibGVSb3cuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRoZW1lIH0gZnJvbSAnQGRmZHMtdWkvdGhlbWUnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENoZXZyb25Qcm9wcyB9IGZyb20gJy4vVGFibGVSb3cudHlwZXMnXG5cbmV4cG9ydCBjb25zdCBnZW5lcmljVGFibGVSb3dTdHlsZXMgPSBjc3NgXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5kaXZpZGVyLmRhcmt9O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBoZWlnaHQ6IDQ4cHg7XG5gXG5cbnR5cGUgVGFibGVSb3dQcm9wcyA9IHtcbiAgYWN0aXZlPzogYm9vbGVhblxuICBleHBhbmRlZDogYm9vbGVhblxuICBob3ZlckNvbG9yOiBib29sZWFuXG4gIHN1YlJvdzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdGFibGVSb3dTdHlsZXMgPSAoeyBhY3RpdmUsIGV4cGFuZGVkLCBob3ZlckNvbG9yLCBzdWJSb3cgfTogVGFibGVSb3dQcm9wcykgPT4gY3NzYFxuICAke3sgLi4uZ2VuZXJpY1RhYmxlUm93U3R5bGVzIH19XG5cbiAgJjpob3ZlciB7XG4gICAgJHtob3ZlckNvbG9yICYmXG4gICAgYFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnMuc3VyZmFjZS5zZWNvbmRhcnl9O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGB9O1xuICB9XG5cbiAgJHtleHBhbmRlZCAmJlxuICBgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnMuc3VyZmFjZS5zZWNvbmRhcnl9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAke1xuICAgICAgICBob3ZlckNvbG9yICYmXG4gICAgICAgIGBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnMuZGl2aWRlci5kYXJrfTtcbiAgICAgIGBcbiAgICAgIH07XG4gICAgfVxuICBgfTtcblxuICAke3N1YlJvdyAmJlxuICAhZXhwYW5kZWQgJiZcbiAgYFxuICAgIGRpc3BsYXk6IG5vbmU7XG4gIGB9O1xuXG4gICR7YWN0aXZlICYmXG4gIGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLmNvbG9ycy5kaXZpZGVyLmRhcmt9O1xuICBgfTtcbmBcblxuZXhwb3J0IGNvbnN0IGNoZXZyb25TdHlsZXMgPSAoeyBleHBhbmRlZCB9OiBDaGV2cm9uUHJvcHMpID0+IGNzc2BcbiAgY29sb3I6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuZGFya307XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICB0cmFuc2Zvcm06ICR7ZXhwYW5kZWQgJiYgJ3JvdGF0ZSg5MGRlZyknfTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbmBcbiJdfQ== */");
20
+ };
@@ -0,0 +1,18 @@
1
+ import { Header, Row } from '../DynamicTable.types';
2
+ export type TableRowProps = {
3
+ expandable?: boolean;
4
+ headerRow: Header[];
5
+ isActive: boolean;
6
+ isExpanded: boolean;
7
+ isSubRow?: boolean;
8
+ onClickRow?: (id: string) => void;
9
+ onSelectRow: (id: string) => void;
10
+ row: Row;
11
+ selectableRows: boolean;
12
+ selectedRows: string[];
13
+ setIsExpanded: React.Dispatch<React.SetStateAction<boolean>>;
14
+ showExpander?: boolean;
15
+ };
16
+ export type ChevronProps = {
17
+ expanded: boolean;
18
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TableRowGroupProps } from './TableRowGroup.types';
3
+ declare const TableRowGroup: React.MemoExoticComponent<({ activeRow, expandable, headerRow, onClickRow, onSelectRow, row, selectableRows, selectedRows, }: TableRowGroupProps) => React.JSX.Element>;
4
+ export default TableRowGroup;
@@ -0,0 +1,55 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import React from 'react';
8
+ import TableRow from './TableRow';
9
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
10
+ var TableRowGroup = /*#__PURE__*/React.memo(function (_ref) {
11
+ var activeRow = _ref.activeRow,
12
+ expandable = _ref.expandable,
13
+ headerRow = _ref.headerRow,
14
+ onClickRow = _ref.onClickRow,
15
+ onSelectRow = _ref.onSelectRow,
16
+ row = _ref.row,
17
+ selectableRows = _ref.selectableRows,
18
+ selectedRows = _ref.selectedRows;
19
+ var _React$useState = React.useState(false),
20
+ _React$useState2 = _slicedToArray(_React$useState, 2),
21
+ isExpanded = _React$useState2[0],
22
+ setIsExpanded = _React$useState2[1];
23
+ var subRows = row.subRows || [];
24
+ var hasSubRows = subRows.length > 0;
25
+ return _jsxs(_Fragment, {
26
+ children: [_jsx(TableRow, {
27
+ expandable: expandable,
28
+ headerRow: headerRow,
29
+ isActive: activeRow ? row.id === activeRow : false,
30
+ isExpanded: isExpanded,
31
+ onClickRow: onClickRow,
32
+ onSelectRow: onSelectRow,
33
+ row: row,
34
+ selectableRows: selectableRows,
35
+ selectedRows: selectedRows,
36
+ setIsExpanded: setIsExpanded,
37
+ showExpander: hasSubRows
38
+ }), subRows.map(function (subRow) {
39
+ return _jsx(TableRow, {
40
+ expandable: expandable,
41
+ headerRow: headerRow,
42
+ isActive: activeRow ? subRow.id === activeRow : false,
43
+ isExpanded: isExpanded,
44
+ isSubRow: true,
45
+ onClickRow: onClickRow,
46
+ onSelectRow: onSelectRow,
47
+ row: subRow,
48
+ selectableRows: selectableRows,
49
+ selectedRows: selectedRows,
50
+ setIsExpanded: setIsExpanded
51
+ }, subRow.id);
52
+ })]
53
+ });
54
+ });
55
+ export default TableRowGroup;
@@ -0,0 +1,14 @@
1
+ import { Header, Row } from '../DynamicTable.types';
2
+ export type TableRowGroupProps = {
3
+ activeRow?: string;
4
+ expandable?: boolean;
5
+ headerRow: Header[];
6
+ onClickRow?: (id: string) => void;
7
+ onSelectRow: (id: string) => void;
8
+ row: Row;
9
+ selectableRows: boolean;
10
+ selectedRows: string[];
11
+ };
12
+ export type ChevronProps = {
13
+ expanded: boolean;
14
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { DynamicTableProps } from './DynamicTable.types';
3
+ declare const _default: React.NamedExoticComponent<DynamicTableProps>;
4
+ export default _default;
@@ -0,0 +1,93 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["activeRow", "descending", "expandable", "height", "headerRow", "isLoading", "onClickRow", "onSelectRow", "onSort", "rows", "selectedRows", "sortingBy", "stickyHeader"];
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
11
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
14
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
15
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
16
+ import React, { useEffect, useMemo, useState } from 'react';
17
+ import TableBody from './Body/TableBody';
18
+ import { tableStyles, tableWrapperStyles } from './DynamicTable.styles';
19
+ import TableHead from './Head/TableHead';
20
+ import createSkeletonRows from './Skeleton/helpers/createSkeletonRows';
21
+ import { fadeStyles } from './Skeleton/SkeletonTable.styles';
22
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
23
+ var DynamicTable = function DynamicTable(_ref) {
24
+ var activeRow = _ref.activeRow,
25
+ descending = _ref.descending,
26
+ expandable = _ref.expandable,
27
+ height = _ref.height,
28
+ headerRow = _ref.headerRow,
29
+ isLoading = _ref.isLoading,
30
+ onClickRow = _ref.onClickRow,
31
+ onSelectRow = _ref.onSelectRow,
32
+ onSort = _ref.onSort,
33
+ rows = _ref.rows,
34
+ _ref$selectedRows = _ref.selectedRows,
35
+ selectedRows = _ref$selectedRows === void 0 ? [] : _ref$selectedRows,
36
+ sortingBy = _ref.sortingBy,
37
+ stickyHeader = _ref.stickyHeader,
38
+ rest = _objectWithoutProperties(_ref, _excluded);
39
+ // states
40
+ var _useState = useState(sortingBy || ''),
41
+ _useState2 = _slicedToArray(_useState, 2),
42
+ sortByKeyValue = _useState2[0],
43
+ setSortByKeyValue = _useState2[1];
44
+ var _useState3 = useState(sortingBy && descending || false),
45
+ _useState4 = _slicedToArray(_useState3, 2),
46
+ sortDescending = _useState4[0],
47
+ setSortDescending = _useState4[1];
48
+ var selectableRows = !!onSelectRow;
49
+ var skeletonRows = useMemo(function () {
50
+ return createSkeletonRows(headerRow);
51
+ }, [headerRow]);
52
+ useEffect(function () {
53
+ if (onSort) {
54
+ onSort(sortByKeyValue, sortDescending);
55
+ }
56
+ }, [sortDescending, onSort, sortByKeyValue]);
57
+ return _jsxs("div", _objectSpread(_objectSpread({
58
+ css: tableWrapperStyles({
59
+ height: height
60
+ })
61
+ }, rest), {}, {
62
+ children: [_jsxs("table", {
63
+ css: tableStyles,
64
+ "data-cy": !isLoading ? "dynamic-table-isLoaded" : '',
65
+ children: [headerRow && _jsx(TableHead, {
66
+ expandable: expandable,
67
+ headerRow: headerRow,
68
+ onSelectRow: onSelectRow,
69
+ onSort: onSort,
70
+ rows: rows,
71
+ selectableRows: selectableRows,
72
+ selectedRows: selectedRows,
73
+ setSortDescending: setSortDescending,
74
+ setSortByKeyValue: setSortByKeyValue,
75
+ sortDescending: sortDescending,
76
+ sortByKeyValue: sortByKeyValue,
77
+ stickyHeader: stickyHeader
78
+ }), _jsx(TableBody, {
79
+ activeRow: activeRow,
80
+ expandable: expandable,
81
+ headerRow: headerRow,
82
+ onClickRow: onClickRow,
83
+ onSelectRow: onSelectRow,
84
+ rows: !isLoading ? rows : skeletonRows,
85
+ selectableRows: selectableRows,
86
+ selectedRows: selectedRows
87
+ })]
88
+ }), isLoading && _jsx("div", {
89
+ css: fadeStyles
90
+ })]
91
+ }));
92
+ };
93
+ export default /*#__PURE__*/React.memo(DynamicTable);
@@ -0,0 +1,6 @@
1
+ type TableWrapperProps = {
2
+ height?: string;
3
+ };
4
+ export declare const tableWrapperStyles: ({ height }: TableWrapperProps) => import("@emotion/utils").SerializedStyles;
5
+ export declare const tableStyles: import("@emotion/utils").SerializedStyles;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import { theme } from '@dfds-ui/theme';
2
+ import { css } from '@emotion/react';
3
+ export var tableWrapperStyles = function tableWrapperStyles(_ref) {
4
+ var height = _ref.height;
5
+ return /*#__PURE__*/css("color:", theme.colors.text.primary, ";display:flex;flex-direction:column;overflow-x:auto;width:100%;", height && "\n height: ".concat(height, ";\n overflow-y: auto;\n "), ";" + (process.env.NODE_ENV === "production" ? "" : ";label:tableWrapperStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0R5bmFtaWNUYWJsZS5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU93RSIsImZpbGUiOiIuLi8uLi9zcmMvZHluYW1pYy10YWJsZS9EeW5hbWljVGFibGUuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRoZW1lIH0gZnJvbSAnQGRmZHMtdWkvdGhlbWUnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcblxudHlwZSBUYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgaGVpZ2h0Pzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB0YWJsZVdyYXBwZXJTdHlsZXMgPSAoeyBoZWlnaHQgfTogVGFibGVXcmFwcGVyUHJvcHMpID0+IGNzc2BcbiAgY29sb3I6ICR7dGhlbWUuY29sb3JzLnRleHQucHJpbWFyeX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7aGVpZ2h0ICYmXG4gIGBcbiAgICBoZWlnaHQ6ICR7aGVpZ2h0fTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICBgfTtcbmBcblxuZXhwb3J0IGNvbnN0IHRhYmxlU3R5bGVzID0gY3NzYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLmNvbG9ycy5zdXJmYWNlLnByaW1hcnl9O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgd2lkdGg6IDEwMCU7XG5gXG4iXX0= */");
6
+ };
7
+ export var tableStyles = /*#__PURE__*/css("background-color:", theme.colors.surface.primary, ";font-family:Verdana,sans-serif;font-size:12px;line-height:16px;width:100%;" + (process.env.NODE_ENV === "production" ? "" : ";label:tableStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9keW5hbWljLXRhYmxlL0R5bmFtaWNUYWJsZS5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCOEIiLCJmaWxlIjoiLi4vLi4vc3JjL2R5bmFtaWMtdGFibGUvRHluYW1pY1RhYmxlLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aGVtZSB9IGZyb20gJ0BkZmRzLXVpL3RoZW1lJ1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5cbnR5cGUgVGFibGVXcmFwcGVyUHJvcHMgPSB7XG4gIGhlaWdodD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgdGFibGVXcmFwcGVyU3R5bGVzID0gKHsgaGVpZ2h0IH06IFRhYmxlV3JhcHBlclByb3BzKSA9PiBjc3NgXG4gIGNvbG9yOiAke3RoZW1lLmNvbG9ycy50ZXh0LnByaW1hcnl9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcblxuICAke2hlaWdodCAmJlxuICBgXG4gICAgaGVpZ2h0OiAke2hlaWdodH07XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgYH07XG5gXG5cbmV4cG9ydCBjb25zdCB0YWJsZVN0eWxlcyA9IGNzc2BcbiAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5jb2xvcnMuc3VyZmFjZS5wcmltYXJ5fTtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuYFxuIl19 */");
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ export type Header = {
3
+ displayName: string | React.ReactElement;
4
+ key: string;
5
+ sortKey?: string;
6
+ sortable?: boolean;
7
+ textAlign?: 'center' | 'left' | 'right';
8
+ width?: string;
9
+ };
10
+ export type SubRow = {
11
+ className?: string;
12
+ id?: string;
13
+ [name: string]: any;
14
+ };
15
+ export type Row = {
16
+ className?: string;
17
+ id?: string;
18
+ subRows?: SubRow[];
19
+ [name: string]: any;
20
+ };
21
+ export type DynamicTableProps = {
22
+ activeRow?: string;
23
+ descending?: boolean;
24
+ expandable?: boolean;
25
+ headerRow: Header[];
26
+ height?: string;
27
+ isLoading?: boolean;
28
+ onClickRow?: (id: string) => void;
29
+ onSelectRow?: (list: string[]) => void;
30
+ onSort?: (value: string, sortDescending: boolean) => void;
31
+ rows: Row[];
32
+ selectedRows?: string[];
33
+ sortingBy?: string;
34
+ stickyHeader?: boolean;
35
+ translate?: 'yes' | 'no';
36
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TableHeadProps } from './TableHead.types';
3
+ declare const TableHead: React.MemoExoticComponent<({ expandable, headerRow, onSelectRow, onSort, rows, selectableRows, selectedRows, setSortDescending, setSortByKeyValue, sortDescending, sortByKeyValue, stickyHeader, }: TableHeadProps) => React.JSX.Element>;
4
+ export default TableHead;
@@ -0,0 +1,88 @@
1
+ import React, { useCallback } from 'react';
2
+ import { ChevronDown } from '@dfds-ui/icons/system';
3
+ import { Checkbox } from '@dfds-ui/react-components';
4
+ import { chevronStyles, tableHeadCellCheckboxStyles, tableHeadCellExpanderStyles, tableHeadCellStyles } from './TableHead.styles';
5
+ import { genericTableRowStyles } from '../Body/TableRow.styles';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
7
+ var TableHead = /*#__PURE__*/React.memo(function (_ref) {
8
+ var expandable = _ref.expandable,
9
+ headerRow = _ref.headerRow,
10
+ onSelectRow = _ref.onSelectRow,
11
+ onSort = _ref.onSort,
12
+ rows = _ref.rows,
13
+ selectableRows = _ref.selectableRows,
14
+ selectedRows = _ref.selectedRows,
15
+ setSortDescending = _ref.setSortDescending,
16
+ setSortByKeyValue = _ref.setSortByKeyValue,
17
+ sortDescending = _ref.sortDescending,
18
+ sortByKeyValue = _ref.sortByKeyValue,
19
+ stickyHeader = _ref.stickyHeader;
20
+ var toggleAll = useCallback(function () {
21
+ if (!onSelectRow) return;
22
+ var newArray = [];
23
+ if (selectedRows.length === 0) {
24
+ for (var i = 0; i < rows.length; i++) {
25
+ newArray.push(rows[i].id || '');
26
+ }
27
+ }
28
+ onSelectRow(newArray);
29
+ }, [onSelectRow, rows, selectedRows]);
30
+ var sort = useCallback(function (oldKey, newKey) {
31
+ if (!onSort) return;
32
+ if (oldKey !== newKey) {
33
+ setSortByKeyValue(newKey);
34
+ setSortDescending(false);
35
+ } else {
36
+ setSortDescending(!sortDescending);
37
+ }
38
+ }, [onSort, setSortDescending, setSortByKeyValue, sortDescending]);
39
+ return _jsx("thead", {
40
+ children: _jsxs("tr", {
41
+ css: genericTableRowStyles,
42
+ children: [expandable && _jsx("th", {
43
+ css: tableHeadCellExpanderStyles({
44
+ stickyHeader: stickyHeader
45
+ })
46
+ }), selectableRows && _jsx("th", {
47
+ css: tableHeadCellCheckboxStyles({
48
+ stickyHeader: stickyHeader
49
+ }),
50
+ children: _jsx(Checkbox, {
51
+ checked: selectedRows.length > 0,
52
+ indeterminate: true,
53
+ name: "all",
54
+ onChange: toggleAll,
55
+ size: "small"
56
+ })
57
+ }), headerRow.map(function (headerCell, i) {
58
+ var sortKey = headerCell.sortKey || headerCell.key;
59
+ var clickHandler = function clickHandler() {
60
+ return headerCell.sortable && sort(sortByKeyValue, sortKey);
61
+ };
62
+ var showChevron = String(sortByKeyValue === sortKey);
63
+ return _jsx("th", {
64
+ align: headerCell.textAlign,
65
+ css: tableHeadCellStyles({
66
+ align: headerCell.textAlign,
67
+ customWidth: headerCell.width,
68
+ sortByKey: onSort,
69
+ sortable: headerCell.sortable,
70
+ stickyHeader: stickyHeader
71
+ }),
72
+ onClick: clickHandler,
73
+ children: _jsxs("div", {
74
+ children: [_jsx("span", {
75
+ children: headerCell.displayName
76
+ }), headerCell.sortable && onSort && _jsx(ChevronDown, {
77
+ css: chevronStyles({
78
+ descending: String(sortDescending),
79
+ show: showChevron
80
+ })
81
+ })]
82
+ })
83
+ }, i);
84
+ })]
85
+ })
86
+ });
87
+ });
88
+ export default TableHead;
@@ -0,0 +1,5 @@
1
+ import { ChevronProps, TableHeadCellCExpanderProps, TableHeadCellCheckboxProps, TableHeadCellProps } from './TableHead.types';
2
+ export declare const tableHeadCellStyles: ({ align, customWidth, sortable, sortByKey, stickyHeader, }: TableHeadCellProps) => import("@emotion/utils").SerializedStyles;
3
+ export declare const tableHeadCellExpanderStyles: ({ stickyHeader }: TableHeadCellCExpanderProps) => import("@emotion/utils").SerializedStyles;
4
+ export declare const tableHeadCellCheckboxStyles: ({ stickyHeader }: TableHeadCellCheckboxProps) => import("@emotion/utils").SerializedStyles;
5
+ export declare const chevronStyles: ({ descending, show }: ChevronProps) => import("@emotion/utils").SerializedStyles;