@popsure/dirty-swan 0.66.12 → 0.66.13

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 (48) hide show
  1. package/dist/cjs/index.js +49 -34
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/lib/components/table/Table.d.ts +3 -1
  4. package/dist/cjs/lib/components/table/Table.stories.d.ts +10 -2
  5. package/dist/cjs/lib/components/table/components/TableCell/TableCell.d.ts +3 -1
  6. package/dist/cjs/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
  7. package/dist/cjs/lib/components/table/components/TableSection/TableSection.d.ts +2 -1
  8. package/dist/cjs/lib/models/styles.d.ts +1 -1
  9. package/dist/esm/{TableSection-CEhD4eoy.js → TableSection-Cm50RX-V.js} +28 -9
  10. package/dist/esm/TableSection-Cm50RX-V.js.map +1 -0
  11. package/dist/esm/components/table/Table.js +10 -10
  12. package/dist/esm/components/table/Table.js.map +1 -1
  13. package/dist/esm/components/table/Table.stories.js +79 -4
  14. package/dist/esm/components/table/Table.stories.js.map +1 -1
  15. package/dist/esm/components/table/Table.test.js +7 -1
  16. package/dist/esm/components/table/Table.test.js.map +1 -1
  17. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js +1 -1
  18. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js.map +1 -1
  19. package/dist/esm/components/table/components/TableCell/TableCell.js +6 -4
  20. package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
  21. package/dist/esm/components/table/components/TableContents/TableContents.js +9 -15
  22. package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -1
  23. package/dist/esm/components/table/components/TableContents/TableContents.test.js +14 -2
  24. package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -1
  25. package/dist/esm/components/table/components/TableSection/TableSection.js +1 -1
  26. package/dist/esm/components/table/components/TableSection/TableSection.test.js +1 -1
  27. package/dist/esm/index.js +1 -1
  28. package/dist/esm/lib/components/table/Table.d.ts +3 -1
  29. package/dist/esm/lib/components/table/Table.stories.d.ts +10 -2
  30. package/dist/esm/lib/components/table/components/TableCell/TableCell.d.ts +3 -1
  31. package/dist/esm/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
  32. package/dist/esm/lib/components/table/components/TableSection/TableSection.d.ts +2 -1
  33. package/dist/esm/lib/models/styles.d.ts +1 -1
  34. package/package.json +1 -1
  35. package/src/lib/components/table/Table.module.scss +3 -0
  36. package/src/lib/components/table/Table.stories.tsx +92 -0
  37. package/src/lib/components/table/Table.test.tsx +15 -0
  38. package/src/lib/components/table/Table.tsx +27 -20
  39. package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx +1 -1
  40. package/src/lib/components/table/components/TableCell/TableCell.module.scss +9 -3
  41. package/src/lib/components/table/components/TableCell/TableCell.tsx +7 -1
  42. package/src/lib/components/table/components/TableContents/TableContents.module.scss +23 -24
  43. package/src/lib/components/table/components/TableContents/TableContents.test.tsx +22 -1
  44. package/src/lib/components/table/components/TableContents/TableContents.tsx +40 -31
  45. package/src/lib/components/table/components/TableSection/TableSection.module.scss +7 -0
  46. package/src/lib/components/table/components/TableSection/TableSection.tsx +32 -3
  47. package/src/lib/models/styles.ts +1 -0
  48. package/dist/esm/TableSection-CEhD4eoy.js.map +0 -1
@@ -24,6 +24,8 @@ export interface TableProps {
24
24
  title: string;
25
25
  activeSection?: number;
26
26
  hideTableNavigation?: boolean;
27
+ hideStickyHeader?: boolean;
28
+ showSelectedColumn?: boolean;
27
29
  }
28
- declare const Table: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, }: TableProps) => JSX.Element;
30
+ declare const Table: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, hideStickyHeader, showSelectedColumn, }: TableProps) => JSX.Element;
29
31
  export { Table };
@@ -2,7 +2,7 @@ import { TableProps } from './Table';
2
2
  import { TableData } from './types';
3
3
  declare const story: {
4
4
  title: string;
5
- component: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, }: TableProps) => JSX.Element;
5
+ component: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, hideStickyHeader, showSelectedColumn, }: TableProps) => JSX.Element;
6
6
  argTypes: {
7
7
  tableData: {
8
8
  subContent: string;
@@ -22,6 +22,9 @@ declare const story: {
22
22
  hideDetails: {
23
23
  subContent: string;
24
24
  };
25
+ hideStickyHeader: {
26
+ subContent: string;
27
+ };
25
28
  stickyHeaderTopOffset: {
26
29
  subContent: string;
27
30
  };
@@ -69,10 +72,15 @@ declare const story: {
69
72
  hideColumns: never[];
70
73
  hideRows: never[];
71
74
  hideTableNavigation: boolean;
75
+ showSelectedColumn: boolean;
72
76
  };
73
77
  };
74
78
  export declare const TableStory: {
75
- render: ({ collapsibleSections, scrollOnOpen, scrollTopOffset, tableData, hideColumns, hideDetails, hideRows, stickyHeaderTopOffset, textOverrides, title, activeSection, hideTableNavigation, }: TableProps) => JSX.Element;
79
+ render: ({ collapsibleSections, scrollOnOpen, scrollTopOffset, tableData, hideColumns, hideDetails, hideRows, stickyHeaderTopOffset, textOverrides, title, activeSection, hideTableNavigation, showSelectedColumn, }: TableProps) => JSX.Element;
80
+ name: string;
81
+ };
82
+ export declare const SinglePlanQuoteTable: {
83
+ render: () => JSX.Element;
76
84
  name: string;
77
85
  };
78
86
  export declare const TableDataType: () => JSX.Element;
@@ -5,9 +5,11 @@ type ExtraTableCellProps = {
5
5
  isFirstCellInRow?: boolean;
6
6
  isTopLeftCell?: boolean;
7
7
  isNavigation?: boolean;
8
+ isSelectedColumn?: boolean;
9
+ selectedColumnPosition?: 'top' | 'bottom' | 'middle';
8
10
  imageComponent?: (args: any) => JSX.Element;
9
11
  isBelowDesktop?: boolean;
10
12
  };
11
13
  export type TableCellProps = TableCellData & ExtraTableCellProps;
12
- declare const TableCell: React.MemoExoticComponent<({ isFirstCellInRow, isHeader, isNavigation, isTopLeftCell, colSpan, isBelowDesktop, ...cellProps }: TableCellProps) => JSX.Element>;
14
+ declare const TableCell: React.MemoExoticComponent<({ isFirstCellInRow, isHeader, isNavigation, isSelectedColumn, selectedColumnPosition, isTopLeftCell, colSpan, isBelowDesktop, ...cellProps }: TableCellProps) => JSX.Element>;
13
15
  export { TableCell };
@@ -16,6 +16,7 @@ export interface TableContentsProps {
16
16
  title: string;
17
17
  cellReplacements?: CellReplacements;
18
18
  imageComponent?: (args: any) => JSX.Element;
19
+ selectedColumn?: number;
19
20
  }
20
- declare const TableContents: ({ className, collapsibleSections, scrollOnOpen, scrollTopOffset, stickyHeaderRef, tableData, hideColumns, hideDetails, hideRows, isMobile, openModal, shouldHideDetails, title, cellReplacements, imageComponent, }: TableContentsProps) => JSX.Element;
21
+ declare const TableContents: ({ className, collapsibleSections, scrollOnOpen, scrollTopOffset, stickyHeaderRef, tableData, hideColumns, hideDetails, hideRows, isMobile, openModal, shouldHideDetails, title, cellReplacements, imageComponent, selectedColumn, }: TableContentsProps) => JSX.Element;
21
22
  export { TableContents };
@@ -10,6 +10,7 @@ export interface TableSectionProps {
10
10
  width?: number | string;
11
11
  cellReplacements?: CellReplacements;
12
12
  imageComponent?: (args: any) => JSX.Element;
13
+ selectedColumn?: number;
13
14
  }
14
- declare const TableSection: ({ className, tableCellRows, hideColumns, hideRows, hideHeader, openModal, title, width, cellReplacements, imageComponent, }: TableSectionProps) => JSX.Element;
15
+ declare const TableSection: ({ className, tableCellRows, hideColumns, hideRows, hideHeader, openModal, title, width, cellReplacements, imageComponent, selectedColumn, }: TableSectionProps) => JSX.Element;
15
16
  export { TableSection };
@@ -1,2 +1,2 @@
1
- export type Color = 'transparent' | 'blue-100' | 'blue-300' | 'blue-500' | 'blue-700' | 'blue-900' | 'purple-50' | 'purple-100' | 'purple-200' | 'purple-300' | 'purple-400' | 'purple-500' | 'purple-600' | 'purple-700' | 'purple-800' | 'purple-900' | 'red-100' | 'red-300' | 'red-500' | 'red-700' | 'red-900' | 'neutral-50' | 'neutral-100' | 'neutral-300' | 'neutral-400' | 'neutral-600' | 'neutral-700' | 'neutral-800' | 'neutral-900' | 'green-100' | 'green-300' | 'green-500' | 'green-700' | 'green-900' | 'yellow-100' | 'yellow-300' | 'yellow-500' | 'yellow-700' | 'yellow-900';
1
+ export type Color = 'transparent' | 'blue-100' | 'blue-300' | 'blue-500' | 'blue-700' | 'blue-900' | 'purple-50' | 'purple-100' | 'purple-200' | 'purple-300' | 'purple-400' | 'purple-500' | 'purple-600' | 'purple-700' | 'purple-800' | 'purple-900' | 'red-100' | 'red-300' | 'red-500' | 'red-700' | 'red-900' | 'neutral-50' | 'neutral-100' | 'neutral-300' | 'neutral-400' | 'neutral-500' | 'neutral-600' | 'neutral-700' | 'neutral-800' | 'neutral-900' | 'green-100' | 'green-300' | 'green-500' | 'green-700' | 'green-900' | 'yellow-100' | 'yellow-300' | 'yellow-500' | 'yellow-700' | 'yellow-900';
2
2
  export type Size = 0 | 4 | 8 | 12 | 14 | 16 | 20 | 24 | 28 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 | 96;
@@ -6,8 +6,8 @@ import { TableCell } from './components/table/components/TableCell/TableCell.js'
6
6
  import { useCallback } from 'react';
7
7
  import { u as useMediaQuery } from './useMediaQuery-BlEUymPA.js';
8
8
 
9
- var css_248z = ".TableSection-module_table__sNbDq {\n border-collapse: collapse;\n table-layout: fixed;\n}\n@media (min-width: 34rem) {\n .TableSection-module_table__sNbDq {\n min-width: 845px;\n }\n}\n\n.TableSection-module_tr__UbkbE {\n min-height: 72px;\n}";
10
- var styles = {"table":"TableSection-module_table__sNbDq","tr":"TableSection-module_tr__UbkbE"};
9
+ var css_248z = ".TableSection-module_table__sNbDq {\n border-collapse: collapse;\n table-layout: fixed;\n}\n\n@media (min-width: 34rem) {\n .TableSection-module_tableMultiplePlans__gaWQS {\n min-width: 845px;\n }\n}\n\n.TableSection-module_tr__UbkbE {\n min-height: 72px;\n border-bottom: 1px solid #e7e7ed;\n}\n.TableSection-module_tr__UbkbE:last-child {\n border-bottom: none;\n}";
10
+ var styles = {"table":"TableSection-module_table__sNbDq","tableMultiplePlans":"TableSection-module_tableMultiplePlans__gaWQS","tr":"TableSection-module_tr__UbkbE"};
11
11
  styleInject(css_248z);
12
12
 
13
13
  var isBaseCell = function (tableCellData) {
@@ -15,9 +15,15 @@ var isBaseCell = function (tableCellData) {
15
15
  };
16
16
 
17
17
  var TableSection = function (_a) {
18
- var className = _a.className, tableCellRows = _a.tableCellRows, _b = _a.hideColumns, hideColumns = _b === void 0 ? [] : _b, _c = _a.hideRows, hideRows = _c === void 0 ? [] : _c, hideHeader = _a.hideHeader, openModal = _a.openModal, title = _a.title, width = _a.width, cellReplacements = _a.cellReplacements, imageComponent = _a.imageComponent;
18
+ var _b;
19
+ var _c;
20
+ var className = _a.className, tableCellRows = _a.tableCellRows, _d = _a.hideColumns, hideColumns = _d === void 0 ? [] : _d, _e = _a.hideRows, hideRows = _e === void 0 ? [] : _e, hideHeader = _a.hideHeader, openModal = _a.openModal, title = _a.title, width = _a.width, cellReplacements = _a.cellReplacements, imageComponent = _a.imageComponent, selectedColumn = _a.selectedColumn;
19
21
  var headerRow = tableCellRows === null || tableCellRows === void 0 ? void 0 : tableCellRows[0];
20
22
  var isBelowDesktop = useMediaQuery('BELOW_DESKTOP');
23
+ var firstVisibleBodyRowIndex = tableCellRows.findIndex(function (_, index) { return index > 0 && !hideRows.includes(index); });
24
+ var lastVisibleRowIndex = tableCellRows.reduce(function (last, row, index) {
25
+ return index > 0 && !hideRows.includes(index) && row.length > 1 ? index : last;
26
+ }, -1);
21
27
  var getModalTitleFromColumnHeader = function (cellIndex) {
22
28
  var _a;
23
29
  var firstCellInColumn = (_a = tableCellRows === null || tableCellRows === void 0 ? void 0 : tableCellRows[0]) === null || _a === void 0 ? void 0 : _a[cellIndex];
@@ -42,7 +48,10 @@ var TableSection = function (_a) {
42
48
  };
43
49
  var isVisibleColumn = useCallback(function (cellIndex) { return !hideColumns.includes(cellIndex); }, [hideColumns]);
44
50
  var isVisibleRow = useCallback(function (rowIndex) { return !hideRows.includes(rowIndex); }, [hideRows]);
45
- return (jsxs("table", { className: classNames(className, 'w100', styles.table), width: width, children: [jsx("caption", { className: "sr-only", children: title }), headerRow && (jsx("thead", { className: hideHeader ? 'sr-only' : '', children: jsx("tr", { children: headerRow.map(function (tableCellData, cellIndex) {
51
+ var visibleColumnsLength = (_c = headerRow === null || headerRow === void 0 ? void 0 : headerRow.filter(function (_, cellIndex) { return isVisibleColumn(cellIndex); }).length) !== null && _c !== void 0 ? _c : 0;
52
+ return (jsxs("table", { className: classNames(className, 'w100', styles.table, (_b = {},
53
+ _b[styles.tableMultiplePlans] = visibleColumnsLength > 2,
54
+ _b)), width: width, children: [jsx("caption", { className: "sr-only", children: title }), headerRow && (jsx("thead", { className: hideHeader ? 'sr-only' : '', children: jsx("tr", { children: headerRow.map(function (tableCellData, cellIndex) {
46
55
  var isFirstCellInRow = cellIndex === 0;
47
56
  var cellReplacementData = (tableCellData.cellId &&
48
57
  (cellReplacements === null || cellReplacements === void 0 ? void 0 : cellReplacements[tableCellData.cellId])) ||
@@ -51,26 +60,36 @@ var TableSection = function (_a) {
51
60
  openModal: openModal,
52
61
  modalTitle: (isBaseCell(tableCellData) && tableCellData.text) ||
53
62
  getModalTitleFromColumnHeader(cellIndex),
54
- align: isFirstCellInRow ? 'left' : 'center',
63
+ align: 'left',
55
64
  });
56
- return (isVisibleColumn(cellIndex) && (jsx(TableCell, __assign({ isBelowDesktop: isBelowDesktop, isHeader: true, isFirstCellInRow: isFirstCellInRow, isTopLeftCell: isFirstCellInRow }, cellProps, { imageComponent: imageComponent }), cellIndex)));
65
+ return (isVisibleColumn(cellIndex) && (jsx(TableCell, __assign({ isBelowDesktop: isBelowDesktop, isHeader: true, isFirstCellInRow: isFirstCellInRow, isTopLeftCell: isFirstCellInRow, isSelectedColumn: selectedColumn === cellIndex, selectedColumnPosition: selectedColumn === cellIndex ? 'top' : undefined }, cellProps, { imageComponent: imageComponent }), cellIndex)));
57
66
  }) }) })), jsx("tbody", { children: tableCellRows.map(function (row, rowIndex) {
58
67
  return rowIndex > 0 && isVisibleRow(rowIndex) && (jsx("tr", { className: styles.tr, children: row.map(function (tableCellData, cellIndex) {
59
68
  var key = "".concat(rowIndex, "-").concat(cellIndex);
60
69
  var isFirstCellInRow = cellIndex === 0;
61
70
  var titleFromRow = getModalTitleFromRowHeader(row);
71
+ var isSelected = selectedColumn === cellIndex;
72
+ var getSelectedColumnPosition = function () {
73
+ if (!isSelected)
74
+ return undefined;
75
+ if (rowIndex === lastVisibleRowIndex)
76
+ return 'bottom';
77
+ if (hideHeader && rowIndex === firstVisibleBodyRowIndex)
78
+ return 'top';
79
+ return 'middle';
80
+ };
62
81
  var cellReplacementData = (tableCellData.cellId &&
63
82
  (cellReplacements === null || cellReplacements === void 0 ? void 0 : cellReplacements[tableCellData.cellId])) ||
64
83
  {};
65
84
  var cellProps = __assign(__assign(__assign({}, tableCellData), cellReplacementData), {
66
85
  openModal: openModal,
67
86
  modalTitle: (tableCellData === null || tableCellData === void 0 ? void 0 : tableCellData.modalTitle) || titleFromRow,
68
- align: isFirstCellInRow ? 'left' : 'center',
87
+ align: 'left',
69
88
  });
70
- return (!hideColumns.includes(cellIndex) && (jsx(TableCell, __assign({ isBelowDesktop: isBelowDesktop, isFirstCellInRow: isFirstCellInRow }, cellProps, { imageComponent: imageComponent }), key)));
89
+ return (!hideColumns.includes(cellIndex) && (jsx(TableCell, __assign({ isBelowDesktop: isBelowDesktop, isFirstCellInRow: isFirstCellInRow, isSelectedColumn: isSelected, selectedColumnPosition: getSelectedColumnPosition() }, cellProps, { imageComponent: imageComponent }), key)));
71
90
  }) }, rowIndex));
72
91
  }) })] }));
73
92
  };
74
93
 
75
94
  export { TableSection as T, isBaseCell as i };
76
- //# sourceMappingURL=TableSection-CEhD4eoy.js.map
95
+ //# sourceMappingURL=TableSection-Cm50RX-V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSection-Cm50RX-V.js","sources":["../../../src/lib/components/table/types.ts","../../../src/lib/components/table/components/TableSection/TableSection.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { BaseCellProps } from './components/TableCell/BaseCell/BaseCell';\nimport { CTACellProps } from './components/TableCell/CTACell/CTACell';\nimport { ButtonCellProps } from './components/TableCell/ButtonCell/ButtonCell';\nimport { CardCellProps } from './components/TableCell/CardCell/CardCell';\n\ntype DefaultCellProps = {\n cellId?: string;\n colSpan?: number;\n modalTitle?: ReactNode;\n};\n\ntype BaseCellData = BaseCellProps & { type?: undefined } & DefaultCellProps;\ntype CTACellData = CTACellProps & { type: 'CTA' } & DefaultCellProps;\ntype ButtonCellData = ButtonCellProps & { type: 'BUTTON' } & DefaultCellProps;\ntype CardCellData = CardCellProps & { type: 'CARD' } & DefaultCellProps;\n\nexport type TableCellData =\n | BaseCellData\n | CTACellData\n | ButtonCellData\n | CardCellData;\n\nexport const isBaseCell = (\n tableCellData: TableCellData\n): tableCellData is BaseCellData => {\n return !tableCellData.type;\n};\n\nexport type TableSectionType = {\n title?: string;\n icon?: ReactNode;\n};\n\nexport type ModalData = {\n title?: ReactNode;\n body?: ReactNode;\n};\n\nexport type TableCellRowData = TableCellData[];\n\nexport type TableSectionData = {\n section?: TableSectionType;\n rows: TableCellRowData[];\n};\n\nexport type TableData = TableSectionData[];\n\nexport type ModalFunction = (modalData: ModalData) => void;\n\nexport type CellReplacements = Record<string, Partial<TableCellData>>;\n","import classNames from 'classnames';\n\nimport styles from './TableSection.module.scss';\nimport { TableCell } from '../TableCell/TableCell';\nimport {\n CellReplacements,\n isBaseCell,\n ModalFunction,\n TableCellData,\n TableCellRowData,\n} from '../../types';\nimport { useCallback } from 'react';\nimport { useMediaQuery } from '../../../../hooks/useMediaQuery';\n\nexport interface TableSectionProps {\n className?: string;\n tableCellRows: TableCellRowData[];\n hideColumns?: number[];\n hideRows?: number[];\n hideHeader?: boolean;\n openModal?: ModalFunction;\n title: string;\n width?: number | string;\n cellReplacements?: CellReplacements;\n imageComponent?: (args: any) => JSX.Element;\n selectedColumn?: number;\n}\n\nconst TableSection = ({\n className,\n tableCellRows,\n hideColumns = [],\n hideRows = [],\n hideHeader,\n openModal,\n title,\n width,\n cellReplacements,\n imageComponent,\n selectedColumn,\n}: TableSectionProps) => {\n const headerRow = tableCellRows?.[0];\n const isBelowDesktop = useMediaQuery('BELOW_DESKTOP');\n\n const firstVisibleBodyRowIndex = tableCellRows.findIndex(\n (_, index) => index > 0 && !hideRows.includes(index)\n );\n\n const lastVisibleRowIndex = tableCellRows.reduce(\n (last, row, index) =>\n index > 0 && !hideRows.includes(index) && row.length > 1 ? index : last,\n -1\n );\n\n const getModalTitleFromColumnHeader = (cellIndex: number) => {\n const firstCellInColumn = tableCellRows?.[0]?.[cellIndex];\n let titleFromColumn;\n\n switch (firstCellInColumn.type) {\n case 'BUTTON':\n titleFromColumn = firstCellInColumn.buttonCaption;\n break;\n case 'CTA':\n titleFromColumn = firstCellInColumn.title;\n break;\n case undefined:\n titleFromColumn = firstCellInColumn.text || '';\n break;\n }\n\n return titleFromColumn;\n };\n\n const getModalTitleFromRowHeader = (currentRow: TableCellRowData) => {\n const firstCellInRow = currentRow?.[0];\n const titleFromRow =\n (isBaseCell(firstCellInRow) && firstCellInRow.text) || '';\n\n return titleFromRow;\n };\n\n const isVisibleColumn = useCallback(\n (cellIndex: number) => !hideColumns.includes(cellIndex),\n [hideColumns]\n );\n\n const isVisibleRow = useCallback(\n (rowIndex: number) => !hideRows.includes(rowIndex),\n [hideRows]\n );\n\n const visibleColumnsLength =\n headerRow?.filter((_, cellIndex) => isVisibleColumn(cellIndex)).length ?? 0;\n\n return (\n <table\n className={classNames(className, 'w100', styles.table, {\n [styles.tableMultiplePlans]: visibleColumnsLength > 2,\n })}\n width={width}\n >\n <caption className=\"sr-only\">{title}</caption>\n\n {headerRow && (\n <thead className={hideHeader ? 'sr-only' : ''}>\n <tr>\n {headerRow.map((tableCellData, cellIndex) => {\n const isFirstCellInRow = cellIndex === 0;\n const cellReplacementData =\n (tableCellData.cellId &&\n cellReplacements?.[tableCellData.cellId]) ||\n {};\n\n const cellProps = {\n ...tableCellData,\n ...cellReplacementData,\n ...{\n openModal,\n modalTitle:\n (isBaseCell(tableCellData) && tableCellData.text) ||\n getModalTitleFromColumnHeader(cellIndex),\n align: 'left',\n },\n } as TableCellData;\n\n return (\n isVisibleColumn(cellIndex) && (\n <TableCell\n key={cellIndex}\n isBelowDesktop={isBelowDesktop}\n isHeader\n isFirstCellInRow={isFirstCellInRow}\n isTopLeftCell={isFirstCellInRow}\n isSelectedColumn={selectedColumn === cellIndex}\n selectedColumnPosition={selectedColumn === cellIndex ? 'top' : undefined}\n {...cellProps}\n imageComponent={imageComponent}\n />\n )\n );\n })}\n </tr>\n </thead>\n )}\n\n <tbody>\n {tableCellRows.map(\n (row, rowIndex) =>\n rowIndex > 0 && isVisibleRow(rowIndex) && (\n <tr key={rowIndex} className={styles.tr}>\n {row.map((tableCellData, cellIndex) => {\n const key = `${rowIndex}-${cellIndex}`;\n const isFirstCellInRow = cellIndex === 0;\n const titleFromRow = getModalTitleFromRowHeader(row);\n const isSelected = selectedColumn === cellIndex;\n\n const getSelectedColumnPosition = () => {\n if (!isSelected) return undefined;\n if (rowIndex === lastVisibleRowIndex) return 'bottom';\n if (hideHeader && rowIndex === firstVisibleBodyRowIndex) return 'top';\n return 'middle';\n };\n\n const cellReplacementData =\n (tableCellData.cellId &&\n cellReplacements?.[tableCellData.cellId]) ||\n {};\n\n const cellProps = {\n ...tableCellData,\n ...cellReplacementData,\n ...{\n openModal,\n modalTitle: tableCellData?.modalTitle || titleFromRow,\n align: 'left',\n },\n } as TableCellData;\n\n return (\n !hideColumns.includes(cellIndex) && (\n <TableCell\n isBelowDesktop={isBelowDesktop}\n isFirstCellInRow={isFirstCellInRow}\n isSelectedColumn={isSelected}\n selectedColumnPosition={getSelectedColumnPosition()}\n key={key}\n {...cellProps}\n imageComponent={imageComponent}\n />\n )\n );\n })}\n </tr>\n )\n )}\n </tbody>\n </table>\n );\n};\n\nexport { TableSection };\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -13,7 +13,7 @@ import { u as useMediaQuery } from '../../useMediaQuery-BlEUymPA.js';
13
13
  import { TableContents } from './components/TableContents/TableContents.js';
14
14
  import { u as useTableNavigation } from '../../useTableNavigation-CrxoXTVd.js';
15
15
  import { TableControls } from './components/TableControls/TableControls.js';
16
- import { i as isBaseCell, T as TableSection } from '../../TableSection-CEhD4eoy.js';
16
+ import { i as isBaseCell, T as TableSection } from '../../TableSection-Cm50RX-V.js';
17
17
  import { u as useScrollSync } from '../../useScrollSync-C5UXYPIB.js';
18
18
  import './components/TableCell/BaseCell/BaseCell.js';
19
19
  import '../icon/icons/CheckThick.js';
@@ -42,7 +42,7 @@ import '../modal/regularModal/index.js';
42
42
  import './components/TableContents/Collapsible.js';
43
43
  import '../icon/icons/ChevronLeft.js';
44
44
 
45
- var css_248z = ".Table-module_wrapper__2MMNq {\n position: relative;\n}\n\n.Table-module_container__3VFLP {\n overflow-x: auto;\n overflow-y: hidden;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n -webkit-overflow-scrolling: touch;\n scroll-snap-type: x mandatory;\n}\n.Table-module_container__3VFLP::-webkit-scrollbar {\n display: none;\n}\n@media (min-width: 34rem) {\n .Table-module_container__3VFLP {\n scroll-snap-type: unset;\n }\n}\n\n.Table-module_cardButton__3aMuL div {\n background-color: #FAF8F5;\n}\n.Table-module_cardButton__3aMuL:hover div {\n border-color: transparent !important;\n outline-color: transparent !important;\n box-shadow: none !important;\n background-color: #FCF7EF !important;\n}\n.Table-module_cardButton__3aMuL:focus-visible div {\n background-color: #FCF7EF !important;\n}\n\n.Table-module_stickyHeader__2uEpP {\n display: flex;\n position: sticky;\n z-index: 9;\n}\n\n@media (max-width: 34rem) {\n .Table-module_modalContent__1PNgv {\n min-width: initial;\n }\n}";
45
+ var css_248z = ".Table-module_wrapper__2MMNq {\n position: relative;\n border: 1px solid #f2f2f8;\n border-radius: 12px;\n padding: 24px 24px 0;\n}\n\n.Table-module_container__3VFLP {\n overflow-x: auto;\n overflow-y: hidden;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n -webkit-overflow-scrolling: touch;\n scroll-snap-type: x mandatory;\n}\n.Table-module_container__3VFLP::-webkit-scrollbar {\n display: none;\n}\n@media (min-width: 34rem) {\n .Table-module_container__3VFLP {\n scroll-snap-type: unset;\n }\n}\n\n.Table-module_cardButton__3aMuL div {\n background-color: #FAF8F5;\n}\n.Table-module_cardButton__3aMuL:hover div {\n border-color: transparent !important;\n outline-color: transparent !important;\n box-shadow: none !important;\n background-color: #FCF7EF !important;\n}\n.Table-module_cardButton__3aMuL:focus-visible div {\n background-color: #FCF7EF !important;\n}\n\n.Table-module_stickyHeader__2uEpP {\n display: flex;\n position: sticky;\n z-index: 9;\n}\n\n@media (max-width: 34rem) {\n .Table-module_modalContent__1PNgv {\n min-width: initial;\n }\n}";
46
46
  var styles = {"wrapper":"Table-module_wrapper__2MMNq","container":"Table-module_container__3VFLP","cardButton":"Table-module_cardButton__3aMuL","stickyHeader":"Table-module_stickyHeader__2uEpP","modalContent":"Table-module_modalContent__1PNgv"};
47
47
  styleInject(css_248z);
48
48
 
@@ -52,24 +52,24 @@ var defaultTextOverrides = {
52
52
  };
53
53
  var Table = function (_a) {
54
54
  var _b, _c, _d, _e, _f, _g, _h, _j;
55
- var cellReplacements = _a.cellReplacements, className = _a.className, collapsibleSections = _a.collapsibleSections, _k = _a.hideColumns, hideColumns = _k === void 0 ? [] : _k, hideDetails = _a.hideDetails, _l = _a.hideRows, hideRows = _l === void 0 ? [] : _l, imageComponent = _a.imageComponent, modalContentRenderer = _a.modalContentRenderer, onModalOpen = _a.onModalOpen, onSelectionChanged = _a.onSelectionChanged, scrollOnOpen = _a.scrollOnOpen, _m = _a.scrollTopOffset, scrollTopOffset = _m === void 0 ? 0 : _m, _o = _a.stickyHeaderTopOffset, stickyHeaderTopOffset = _o === void 0 ? 0 : _o, tableData = _a.tableData, definedTextOverrides = _a.textOverrides, title = _a.title, externalActiveSection = _a.activeSection, _p = _a.hideTableNavigation, hideTableNavigation = _p === void 0 ? false : _p;
55
+ var cellReplacements = _a.cellReplacements, className = _a.className, collapsibleSections = _a.collapsibleSections, _k = _a.hideColumns, hideColumns = _k === void 0 ? [] : _k, hideDetails = _a.hideDetails, _l = _a.hideRows, hideRows = _l === void 0 ? [] : _l, imageComponent = _a.imageComponent, modalContentRenderer = _a.modalContentRenderer, onModalOpen = _a.onModalOpen, onSelectionChanged = _a.onSelectionChanged, scrollOnOpen = _a.scrollOnOpen, _m = _a.scrollTopOffset, scrollTopOffset = _m === void 0 ? 0 : _m, _o = _a.stickyHeaderTopOffset, stickyHeaderTopOffset = _o === void 0 ? 0 : _o, tableData = _a.tableData, definedTextOverrides = _a.textOverrides, title = _a.title, externalActiveSection = _a.activeSection, _p = _a.hideTableNavigation, hideTableNavigation = _p === void 0 ? false : _p, _q = _a.hideStickyHeader, hideStickyHeader = _q === void 0 ? false : _q, _r = _a.showSelectedColumn, showSelectedColumn = _r === void 0 ? false : _r;
56
56
  var textOverrides = __assign(__assign({}, defaultTextOverrides), definedTextOverrides);
57
57
  var isMobile = useMediaQuery('BELOW_MOBILE');
58
- var _q = useState(null), infoModalData = _q[0], setInfoModalData = _q[1];
59
- var _r = useState(true), shouldHideDetails = _r[0], setShouldHideDetails = _r[1];
58
+ var _s = useState(null), infoModalData = _s[0], setInfoModalData = _s[1];
59
+ var _t = useState(true), shouldHideDetails = _t[0], setShouldHideDetails = _t[1];
60
60
  var containerRef = useRef(null);
61
61
  var headerRef = useRef(null);
62
62
  var stickyHeaderRef = useRef(null);
63
63
  var columnsLength = tableData[0].rows[0].length;
64
64
  useScrollSync(headerRef, containerRef, !isMobile);
65
- var _s = useTableNavigation({
65
+ var _u = useTableNavigation({
66
66
  enabled: isMobile,
67
67
  containerRef: containerRef,
68
68
  onSelectionChanged: onSelectionChanged,
69
- }), activeSection = _s.activeSection, navigateTable = _s.navigateTable, setActiveSection = _s.setActiveSection;
69
+ }), activeSection = _u.activeSection, navigateTable = _u.navigateTable, setActiveSection = _u.setActiveSection;
70
70
  var titleCell = __assign({ text: '' }, (((_d = (_c = (_b = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _b === void 0 ? void 0 : _b.rows) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d[0]) || {}));
71
71
  var currentActiveSection = (_g = (_f = (_e = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _e === void 0 ? void 0 : _e.rows) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g[activeSection];
72
- var currentActiveSectionReplacements = (currentActiveSection.cellId &&
72
+ var currentActiveSectionReplacements = ((currentActiveSection === null || currentActiveSection === void 0 ? void 0 : currentActiveSection.cellId) &&
73
73
  (cellReplacements === null || cellReplacements === void 0 ? void 0 : cellReplacements[currentActiveSection.cellId])) ||
74
74
  {};
75
75
  var activeCellProps = __assign(__assign({}, currentActiveSection), currentActiveSectionReplacements);
@@ -83,7 +83,7 @@ var Table = function (_a) {
83
83
  setActiveSection(externalActiveSection - 1);
84
84
  }
85
85
  }, [externalActiveSection]);
86
- return (jsxs("div", { className: classNames(styles.wrapper, 'bg-white'), children: [isMobile ? (jsxs(Fragment, { children: [(titleCell === null || titleCell === void 0 ? void 0 : titleCell.text) && (jsx(TableCell, __assign({}, titleCell, { align: "left", isNavigation: true, isTopLeftCell: true, type: undefined }))), !hideTableNavigation && (jsx(TableControls, { activeSection: activeSection, columnsLength: columnsLength, navigateTable: navigateTable, stickyHeaderTopOffset: stickyHeaderTopOffset, children: jsx(TableCell, __assign({}, (isBaseCell(currentActiveSection)
86
+ return (jsxs("div", { className: classNames(styles.wrapper, 'bg-white'), children: [isMobile ? (jsxs(Fragment, { children: [(titleCell === null || titleCell === void 0 ? void 0 : titleCell.text) && (jsx(TableCell, __assign({}, titleCell, { align: "left", isNavigation: true, isTopLeftCell: true, type: undefined }))), !hideTableNavigation && currentActiveSection && (jsx(TableControls, { activeSection: activeSection, columnsLength: columnsLength, navigateTable: navigateTable, stickyHeaderTopOffset: stickyHeaderTopOffset, children: jsx(TableCell, __assign({}, (isBaseCell(currentActiveSection)
87
87
  ? {
88
88
  openModal: function (body) {
89
89
  return handleOpenModal({
@@ -92,7 +92,7 @@ var Table = function (_a) {
92
92
  });
93
93
  },
94
94
  }
95
- : {}), activeCellProps, { imageComponent: imageComponent, isNavigation: true })) }))] })) : (jsx("div", { ref: stickyHeaderRef, "aria-hidden": true, className: styles.stickyHeader, style: { top: "".concat(stickyHeaderTopOffset, "px") }, children: jsx("div", { className: styles.container, ref: headerRef, children: jsx(TableSection, { cellReplacements: cellReplacements, className: className, hideColumns: hideColumns, hideRows: hideRows, openModal: handleOpenModal, tableCellRows: [(_j = (_h = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _h === void 0 ? void 0 : _h.rows) === null || _j === void 0 ? void 0 : _j[0]], title: title, imageComponent: imageComponent }) }) })), jsx("div", { ref: containerRef, className: classNames(styles.container, 'pb8'), children: jsx(TableContents, { tableData: tableData, title: title, className: className, collapsibleSections: collapsibleSections, scrollOnOpen: scrollOnOpen, scrollTopOffset: scrollTopOffset, stickyHeaderRef: stickyHeaderRef, hideColumns: hideColumns, hideDetails: hideDetails, hideRows: hideRows, isMobile: isMobile, shouldHideDetails: shouldHideDetails, openModal: handleOpenModal, cellReplacements: cellReplacements, imageComponent: imageComponent }) }), (tableData === null || tableData === void 0 ? void 0 : tableData.length) > 1 && hideDetails && (jsx(Card, { "data-testid": "show-hide-details", classNames: {
95
+ : {}), activeCellProps, { imageComponent: imageComponent, isNavigation: true })) }))] })) : (!hideStickyHeader && (jsx("div", { ref: stickyHeaderRef, "aria-hidden": true, className: styles.stickyHeader, style: { top: "".concat(stickyHeaderTopOffset, "px") }, children: jsx("div", { className: styles.container, ref: headerRef, children: jsx(TableSection, { cellReplacements: cellReplacements, className: className, hideColumns: hideColumns, hideRows: hideRows, openModal: handleOpenModal, tableCellRows: [(_j = (_h = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _h === void 0 ? void 0 : _h.rows) === null || _j === void 0 ? void 0 : _j[0]], title: title, imageComponent: imageComponent }) }) }))), jsx("div", { ref: containerRef, className: classNames(styles.container, 'pb8'), children: jsx(TableContents, { tableData: tableData, title: title, className: className, collapsibleSections: collapsibleSections, scrollOnOpen: scrollOnOpen, scrollTopOffset: scrollTopOffset, stickyHeaderRef: stickyHeaderRef, hideColumns: hideColumns, hideDetails: hideDetails, hideRows: hideRows, isMobile: isMobile, shouldHideDetails: shouldHideDetails, openModal: handleOpenModal, cellReplacements: cellReplacements, imageComponent: imageComponent, selectedColumn: showSelectedColumn ? activeSection : undefined }) }), (tableData === null || tableData === void 0 ? void 0 : tableData.length) > 1 && hideDetails && (jsx(Card, { "data-testid": "show-hide-details", classNames: {
96
96
  buttonWrapper: classNames(styles.cardButton, 'm8 mt32'),
97
97
  title: 'd-flex gap8 ai-center jc-center fw-bold',
98
98
  }, title: jsxs(Fragment, { children: [shouldHideDetails
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../src/lib/components/table/Table.tsx"],"sourcesContent":["import { TableCell } from './components/TableCell/TableCell';\nimport { BottomOrRegularModal } from '../modal';\nimport { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { ChevronDownIcon, ChevronUpIcon } from '../icon';\nimport { Card } from '../cards/card';\n\nimport styles from './Table.module.scss';\nimport { useMediaQuery } from '../../hooks/useMediaQuery';\nimport { TableContents } from './components/TableContents/TableContents';\nimport classNames from 'classnames';\nimport { useTableNavigation } from './utils/useTableNavigation/useTableNavigation';\nimport { TableControls } from './components/TableControls/TableControls';\nimport { TableSection } from './components/TableSection/TableSection';\nimport { useScrollSync } from './utils/useScrollSync/useScrollSync';\nimport {\n CellReplacements,\n isBaseCell,\n ModalData,\n ModalFunction,\n TableCellData,\n TableData,\n} from './types';\n\nexport type { TableData } from './types';\n\ntype TextOverrides = {\n showDetails?: string;\n hideDetails?: string;\n};\n\nexport interface TableProps {\n cellReplacements?: CellReplacements;\n className?: string;\n collapsibleSections?: boolean;\n hideColumns?: number[];\n hideDetails?: boolean;\n hideRows?: number[];\n imageComponent?: (args: any) => JSX.Element;\n modalContentRenderer?: (content: ReactNode) => ReactNode;\n onModalOpen?: ModalFunction;\n onSelectionChanged?: (index: number) => void;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n stickyHeaderTopOffset?: number;\n tableData: TableData;\n textOverrides?: TextOverrides;\n title: string;\n activeSection?: number;\n hideTableNavigation?: boolean;\n}\n\nconst defaultTextOverrides = {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n};\n\nconst Table = ({\n cellReplacements,\n className,\n collapsibleSections,\n hideColumns = [],\n hideDetails,\n hideRows = [],\n imageComponent,\n modalContentRenderer,\n onModalOpen,\n onSelectionChanged,\n scrollOnOpen,\n scrollTopOffset = 0,\n stickyHeaderTopOffset = 0,\n tableData,\n textOverrides: definedTextOverrides,\n title,\n activeSection: externalActiveSection,\n hideTableNavigation = false,\n}: TableProps) => {\n const textOverrides = { ...defaultTextOverrides, ...definedTextOverrides };\n const isMobile = useMediaQuery('BELOW_MOBILE');\n const [infoModalData, setInfoModalData] = useState<ModalData | null>(null);\n const [shouldHideDetails, setShouldHideDetails] = useState(true);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const stickyHeaderRef = useRef<HTMLDivElement | null>(null);\n const columnsLength = tableData[0].rows[0].length;\n\n useScrollSync(headerRef, containerRef, !isMobile);\n\n const { activeSection, navigateTable, setActiveSection } = useTableNavigation(\n {\n enabled: isMobile,\n containerRef,\n onSelectionChanged,\n }\n );\n\n const titleCell = {\n text: '',\n ...(tableData?.[0]?.rows?.[0]?.[0] || {}),\n };\n const currentActiveSection = tableData?.[0]?.rows?.[0]?.[activeSection];\n const currentActiveSectionReplacements =\n (currentActiveSection.cellId &&\n cellReplacements?.[currentActiveSection.cellId]) ||\n {};\n\n const activeCellProps = {\n ...currentActiveSection,\n ...currentActiveSectionReplacements,\n } as TableCellData;\n\n const handleOpenModal: ModalFunction = useCallback(({ body, title }) => {\n onModalOpen?.({ body, title });\n setInfoModalData({ body, title });\n }, []);\n\n useEffect(() => {\n if (externalActiveSection && externalActiveSection !== activeSection) {\n setActiveSection(externalActiveSection - 1);\n }\n }, [externalActiveSection]);\n\n return (\n <div className={classNames(styles.wrapper, 'bg-white')}>\n {isMobile ? (\n <>\n {titleCell?.text && (\n <TableCell\n {...titleCell}\n align=\"left\"\n isNavigation\n isTopLeftCell\n type={undefined}\n />\n )}\n\n {!hideTableNavigation && (\n <TableControls\n activeSection={activeSection}\n columnsLength={columnsLength}\n navigateTable={navigateTable}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n >\n <TableCell\n {...(isBaseCell(currentActiveSection)\n ? {\n openModal: (body: ReactNode) =>\n handleOpenModal({\n body,\n title: currentActiveSection?.text,\n }),\n }\n : {})}\n {...activeCellProps}\n imageComponent={imageComponent}\n isNavigation\n />\n </TableControls>\n )}\n </>\n ) : (\n <div\n ref={stickyHeaderRef}\n aria-hidden\n className={styles.stickyHeader}\n style={{ top: `${stickyHeaderTopOffset}px` }}\n >\n <div className={styles.container} ref={headerRef}>\n <TableSection\n cellReplacements={cellReplacements}\n className={className}\n hideColumns={hideColumns}\n hideRows={hideRows}\n openModal={handleOpenModal}\n tableCellRows={[tableData?.[0]?.rows?.[0]]}\n title={title}\n imageComponent={imageComponent}\n />\n </div>\n </div>\n )}\n\n <div ref={containerRef} className={classNames(styles.container, 'pb8')}>\n <TableContents\n tableData={tableData}\n title={title}\n className={className}\n collapsibleSections={collapsibleSections}\n scrollOnOpen={scrollOnOpen}\n scrollTopOffset={scrollTopOffset}\n stickyHeaderRef={stickyHeaderRef}\n hideColumns={hideColumns}\n hideDetails={hideDetails}\n hideRows={hideRows}\n isMobile={isMobile}\n shouldHideDetails={shouldHideDetails}\n openModal={handleOpenModal}\n cellReplacements={cellReplacements}\n imageComponent={imageComponent}\n />\n </div>\n\n {tableData?.length > 1 && hideDetails && (\n <Card\n data-testid=\"show-hide-details\"\n classNames={{\n buttonWrapper: classNames(styles.cardButton, 'm8 mt32'),\n title: 'd-flex gap8 ai-center jc-center fw-bold',\n }}\n title={\n <>\n {shouldHideDetails\n ? textOverrides.showDetails\n : textOverrides.hideDetails}\n {shouldHideDetails ? (\n <ChevronDownIcon size={20} />\n ) : (\n <ChevronUpIcon size={20} />\n )}\n </>\n }\n actionIcon={null}\n dropShadow={false}\n titleVariant=\"small\"\n density=\"xsmall\"\n onClick={() => setShouldHideDetails((current) => !current)}\n />\n )}\n\n <BottomOrRegularModal\n isOpen={infoModalData?.body ? true : false}\n title={infoModalData?.title}\n onClose={() => setInfoModalData(null)}\n >\n <div className={classNames(styles.modalContent, 'pt8 p24 wmn6')}>\n {modalContentRenderer\n ? modalContentRenderer(infoModalData?.body)\n : infoModalData?.body}\n </div>\n </BottomOrRegularModal>\n </div>\n );\n};\n\nexport { Table };\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../src/lib/components/table/Table.tsx"],"sourcesContent":["import { TableCell } from './components/TableCell/TableCell';\nimport { BottomOrRegularModal } from '../modal';\nimport { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { ChevronDownIcon, ChevronUpIcon } from '../icon';\nimport { Card } from '../cards/card';\n\nimport styles from './Table.module.scss';\nimport { useMediaQuery } from '../../hooks/useMediaQuery';\nimport { TableContents } from './components/TableContents/TableContents';\nimport classNames from 'classnames';\nimport { useTableNavigation } from './utils/useTableNavigation/useTableNavigation';\nimport { TableControls } from './components/TableControls/TableControls';\nimport { TableSection } from './components/TableSection/TableSection';\nimport { useScrollSync } from './utils/useScrollSync/useScrollSync';\nimport {\n CellReplacements,\n isBaseCell,\n ModalData,\n ModalFunction,\n TableCellData,\n TableData,\n} from './types';\n\nexport type { TableData } from './types';\n\ntype TextOverrides = {\n showDetails?: string;\n hideDetails?: string;\n};\n\nexport interface TableProps {\n cellReplacements?: CellReplacements;\n className?: string;\n collapsibleSections?: boolean;\n hideColumns?: number[];\n hideDetails?: boolean;\n hideRows?: number[];\n imageComponent?: (args: any) => JSX.Element;\n modalContentRenderer?: (content: ReactNode) => ReactNode;\n onModalOpen?: ModalFunction;\n onSelectionChanged?: (index: number) => void;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n stickyHeaderTopOffset?: number;\n tableData: TableData;\n textOverrides?: TextOverrides;\n title: string;\n activeSection?: number;\n hideTableNavigation?: boolean;\n hideStickyHeader?: boolean;\n showSelectedColumn?: boolean;\n}\n\nconst defaultTextOverrides = {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n};\n\nconst Table = ({\n cellReplacements,\n className,\n collapsibleSections,\n hideColumns = [],\n hideDetails,\n hideRows = [],\n imageComponent,\n modalContentRenderer,\n onModalOpen,\n onSelectionChanged,\n scrollOnOpen,\n scrollTopOffset = 0,\n stickyHeaderTopOffset = 0,\n tableData,\n textOverrides: definedTextOverrides,\n title,\n activeSection: externalActiveSection,\n hideTableNavigation = false,\n hideStickyHeader = false,\n showSelectedColumn = false,\n}: TableProps) => {\n const textOverrides = { ...defaultTextOverrides, ...definedTextOverrides };\n const isMobile = useMediaQuery('BELOW_MOBILE');\n const [infoModalData, setInfoModalData] = useState<ModalData | null>(null);\n const [shouldHideDetails, setShouldHideDetails] = useState(true);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const stickyHeaderRef = useRef<HTMLDivElement | null>(null);\n const columnsLength = tableData[0].rows[0].length;\n\n useScrollSync(headerRef, containerRef, !isMobile);\n\n const { activeSection, navigateTable, setActiveSection } = useTableNavigation(\n {\n enabled: isMobile,\n containerRef,\n onSelectionChanged,\n }\n );\n\n const titleCell = {\n text: '',\n ...(tableData?.[0]?.rows?.[0]?.[0] || {}),\n };\n const currentActiveSection = tableData?.[0]?.rows?.[0]?.[activeSection];\n const currentActiveSectionReplacements =\n (currentActiveSection?.cellId &&\n cellReplacements?.[currentActiveSection.cellId]) ||\n {};\n\n const activeCellProps = {\n ...currentActiveSection,\n ...currentActiveSectionReplacements,\n } as TableCellData;\n\n const handleOpenModal: ModalFunction = useCallback(({ body, title }) => {\n onModalOpen?.({ body, title });\n setInfoModalData({ body, title });\n }, []);\n\n useEffect(() => {\n if (externalActiveSection && externalActiveSection !== activeSection) {\n setActiveSection(externalActiveSection - 1);\n }\n }, [externalActiveSection]);\n\n return (\n <div className={classNames(styles.wrapper, 'bg-white')}>\n {isMobile ? (\n <>\n {titleCell?.text && (\n <TableCell\n {...titleCell}\n align=\"left\"\n isNavigation\n isTopLeftCell\n type={undefined}\n />\n )}\n\n {!hideTableNavigation && currentActiveSection && (\n <TableControls\n activeSection={activeSection}\n columnsLength={columnsLength}\n navigateTable={navigateTable}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n >\n <TableCell\n {...(isBaseCell(currentActiveSection)\n ? {\n openModal: (body: ReactNode) =>\n handleOpenModal({\n body,\n title: currentActiveSection?.text,\n }),\n }\n : {})}\n {...activeCellProps}\n imageComponent={imageComponent}\n isNavigation\n />\n </TableControls>\n )}\n </>\n ) : (\n !hideStickyHeader && (\n <div\n ref={stickyHeaderRef}\n aria-hidden\n className={styles.stickyHeader}\n style={{ top: `${stickyHeaderTopOffset}px` }}\n >\n <div className={styles.container} ref={headerRef}>\n <TableSection\n cellReplacements={cellReplacements}\n className={className}\n hideColumns={hideColumns}\n hideRows={hideRows}\n openModal={handleOpenModal}\n tableCellRows={[tableData?.[0]?.rows?.[0]]}\n title={title}\n imageComponent={imageComponent}\n />\n </div>\n </div>\n )\n )}\n\n <div ref={containerRef} className={classNames(styles.container, 'pb8')}>\n <TableContents\n tableData={tableData}\n title={title}\n className={className}\n collapsibleSections={collapsibleSections}\n scrollOnOpen={scrollOnOpen}\n scrollTopOffset={scrollTopOffset}\n stickyHeaderRef={stickyHeaderRef}\n hideColumns={hideColumns}\n hideDetails={hideDetails}\n hideRows={hideRows}\n isMobile={isMobile}\n shouldHideDetails={shouldHideDetails}\n openModal={handleOpenModal}\n cellReplacements={cellReplacements}\n imageComponent={imageComponent}\n selectedColumn={showSelectedColumn ? activeSection : undefined}\n />\n </div>\n\n {tableData?.length > 1 && hideDetails && (\n <Card\n data-testid=\"show-hide-details\"\n classNames={{\n buttonWrapper: classNames(styles.cardButton, 'm8 mt32'),\n title: 'd-flex gap8 ai-center jc-center fw-bold',\n }}\n title={\n <>\n {shouldHideDetails\n ? textOverrides.showDetails\n : textOverrides.hideDetails}\n {shouldHideDetails ? (\n <ChevronDownIcon size={20} />\n ) : (\n <ChevronUpIcon size={20} />\n )}\n </>\n }\n actionIcon={null}\n dropShadow={false}\n titleVariant=\"small\"\n density=\"xsmall\"\n onClick={() => setShouldHideDetails((current) => !current)}\n />\n )}\n\n <BottomOrRegularModal\n isOpen={infoModalData?.body ? true : false}\n title={infoModalData?.title}\n onClose={() => setInfoModalData(null)}\n >\n <div className={classNames(styles.modalContent, 'pt8 p24 wmn6')}>\n {modalContentRenderer\n ? modalContentRenderer(infoModalData?.body)\n : infoModalData?.body}\n </div>\n </BottomOrRegularModal>\n </div>\n );\n};\n\nexport { Table };\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -38,7 +38,7 @@ import '../../index-hWqCLhoS.js';
38
38
  import '../modal/regularModal/index.js';
39
39
  import '../../useMediaQuery-BlEUymPA.js';
40
40
  import './components/TableContents/TableContents.js';
41
- import '../../TableSection-CEhD4eoy.js';
41
+ import '../../TableSection-Cm50RX-V.js';
42
42
  import './components/TableContents/Collapsible.js';
43
43
  import '../../useTableNavigation-CrxoXTVd.js';
44
44
  import './components/TableControls/TableControls.js';
@@ -291,6 +291,9 @@ var story = {
291
291
  hideDetails: {
292
292
  subContent: 'This property allows to hide the details of the table.',
293
293
  },
294
+ hideStickyHeader: {
295
+ subContent: 'This property allows to hide the sticky header row on desktop, e.g. for single plan tables without a plan selector.',
296
+ },
294
297
  stickyHeaderTopOffset: {
295
298
  subContent: 'This property allows to set the offset of the sticky header.',
296
299
  },
@@ -338,11 +341,12 @@ var story = {
338
341
  hideColumns: [],
339
342
  hideRows: [],
340
343
  hideTableNavigation: true,
344
+ showSelectedColumn: false,
341
345
  },
342
346
  };
343
347
  var TableStory = {
344
348
  render: function (_a) {
345
- var collapsibleSections = _a.collapsibleSections, scrollOnOpen = _a.scrollOnOpen, scrollTopOffset = _a.scrollTopOffset, tableData = _a.tableData, hideColumns = _a.hideColumns, hideDetails = _a.hideDetails, hideRows = _a.hideRows, stickyHeaderTopOffset = _a.stickyHeaderTopOffset, textOverrides = _a.textOverrides, title = _a.title, activeSection = _a.activeSection, hideTableNavigation = _a.hideTableNavigation;
349
+ var collapsibleSections = _a.collapsibleSections, scrollOnOpen = _a.scrollOnOpen, scrollTopOffset = _a.scrollTopOffset, tableData = _a.tableData, hideColumns = _a.hideColumns, hideDetails = _a.hideDetails, hideRows = _a.hideRows, stickyHeaderTopOffset = _a.stickyHeaderTopOffset, textOverrides = _a.textOverrides, title = _a.title, activeSection = _a.activeSection, hideTableNavigation = _a.hideTableNavigation, showSelectedColumn = _a.showSelectedColumn;
346
350
  var _b = useState(999), price = _b[0], setPrice = _b[1];
347
351
  return (jsxs("div", { children: [jsxs("div", { className: "d-flex fd-column p24 mb80 gap16 wmx5", children: [jsx("label", { htmlFor: "", children: "Change price to see replacement in action: " }), jsx(Input, { id: "#stuff", type: "text", onChange: function (e) { return setPrice(Number(e.target.value)); }, value: price })] }), jsx(Table, { cellReplacements: {
348
352
  '#1': {
@@ -359,13 +363,84 @@ var TableStory = {
359
363
  '#3': {
360
364
  description: 'per year',
361
365
  },
362
- }, collapsibleSections: collapsibleSections, scrollOnOpen: scrollOnOpen, scrollTopOffset: scrollTopOffset, tableData: tableData, hideColumns: hideColumns, hideDetails: hideDetails, hideRows: hideRows, stickyHeaderTopOffset: stickyHeaderTopOffset, textOverrides: textOverrides, title: title, activeSection: activeSection, hideTableNavigation: hideTableNavigation })] }));
366
+ }, collapsibleSections: collapsibleSections, scrollOnOpen: scrollOnOpen, scrollTopOffset: scrollTopOffset, tableData: tableData, hideColumns: hideColumns, hideDetails: hideDetails, hideRows: hideRows, stickyHeaderTopOffset: stickyHeaderTopOffset, textOverrides: textOverrides, title: title, activeSection: activeSection, hideTableNavigation: hideTableNavigation, showSelectedColumn: showSelectedColumn })] }));
363
367
  },
364
368
  name: 'Table',
365
369
  };
370
+ var singlePlanData = [
371
+ {
372
+ rows: [
373
+ [{ text: '' }, { text: '' }],
374
+ [
375
+ { text: 'Price' },
376
+ {
377
+ text: '€9.99',
378
+ description: 'With monthly cancellation',
379
+ fontVariant: 'PRICE',
380
+ },
381
+ ],
382
+ [
383
+ {
384
+ text: 'Regular vet visits & medication',
385
+ modalContent: 'Some stories about vets',
386
+ },
387
+ { text: 'Up to €1 million' },
388
+ ],
389
+ [
390
+ {
391
+ text: 'Specialist visits',
392
+ modalContent: 'Some stories about specialists',
393
+ },
394
+ { text: '4 visits per year' },
395
+ ],
396
+ [{ text: 'Medication' }, { text: '80% covered' }],
397
+ [{ text: 'Grooming' }, { checkmarkValue: false }],
398
+ [{ text: 'Boarding fees' }, { checkmarkValue: false }],
399
+ [
400
+ {
401
+ text: 'Alternative treatments',
402
+ description: 'E.g. physiotherapy, hydrotherapy',
403
+ },
404
+ { checkmarkValue: false },
405
+ ],
406
+ ],
407
+ },
408
+ {
409
+ section: {
410
+ title: 'Dental',
411
+ },
412
+ rows: [
413
+ [{ text: 'Dental cleanings' }, { text: 'Up to €500' }],
414
+ [{ text: 'Dental treatments' }, { text: 'Up to €500' }],
415
+ [{ text: 'Operations' }, { checkmarkValue: true }],
416
+ ],
417
+ },
418
+ {
419
+ section: {
420
+ title: 'Travel',
421
+ },
422
+ rows: [
423
+ [{ text: 'Trips abroad' }, { checkmarkValue: true }],
424
+ [{ text: 'Emergency care abroad' }, { checkmarkValue: true }],
425
+ ],
426
+ },
427
+ {
428
+ section: {
429
+ title: 'Add-ons',
430
+ },
431
+ rows: [
432
+ [{ text: 'Extended coverage' }, { checkmarkValue: true }],
433
+ [{ text: 'Equipment protection' }, { checkmarkValue: true }],
434
+ ],
435
+ },
436
+ ];
437
+ var SinglePlanQuoteTable = {
438
+ render: function () { return (jsx("div", { style: { maxWidth: 756 }, children: jsx(Table, { tableData: singlePlanData, title: "Single plan quote", collapsibleSections: true, hideTableNavigation: true, hideStickyHeader: true, showSelectedColumn: true }) })); },
439
+ name: 'Single Plan Quote',
440
+ };
366
441
  var TableDataType = function () {
367
442
  return (jsx("pre", { children: "\ntype TableData = {\n section?: \n title?: string;\n icon?: ReactNode;\n };\n rows: {\n align?: 'center' | 'left' | 'right';\n checkmarkValue?: boolean;\n text?: ReactNode;\n modalContent?: ReactNode;\n subContent?: ReactNode;\n rating?: {\n value: number;\n type: 'zap' | 'star';\n }\n openModal?: (modalContent: ReactNode) => void;\n }[][];\n}[];\n " }));
368
443
  };
369
444
 
370
- export { TableDataType, TableStory, story as default };
445
+ export { SinglePlanQuoteTable, TableDataType, TableStory, story as default };
371
446
  //# sourceMappingURL=Table.stories.js.map