@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.
- package/dist/cjs/index.js +49 -34
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/table/Table.d.ts +3 -1
- package/dist/cjs/lib/components/table/Table.stories.d.ts +10 -2
- package/dist/cjs/lib/components/table/components/TableCell/TableCell.d.ts +3 -1
- package/dist/cjs/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
- package/dist/cjs/lib/components/table/components/TableSection/TableSection.d.ts +2 -1
- package/dist/cjs/lib/models/styles.d.ts +1 -1
- package/dist/esm/{TableSection-CEhD4eoy.js → TableSection-Cm50RX-V.js} +28 -9
- package/dist/esm/TableSection-Cm50RX-V.js.map +1 -0
- package/dist/esm/components/table/Table.js +10 -10
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.stories.js +79 -4
- package/dist/esm/components/table/Table.stories.js.map +1 -1
- package/dist/esm/components/table/Table.test.js +7 -1
- package/dist/esm/components/table/Table.test.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.js +6 -4
- package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
- package/dist/esm/components/table/components/TableContents/TableContents.js +9 -15
- package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -1
- package/dist/esm/components/table/components/TableContents/TableContents.test.js +14 -2
- package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.js +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.test.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/components/table/Table.d.ts +3 -1
- package/dist/esm/lib/components/table/Table.stories.d.ts +10 -2
- package/dist/esm/lib/components/table/components/TableCell/TableCell.d.ts +3 -1
- package/dist/esm/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
- package/dist/esm/lib/components/table/components/TableSection/TableSection.d.ts +2 -1
- package/dist/esm/lib/models/styles.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/components/table/Table.module.scss +3 -0
- package/src/lib/components/table/Table.stories.tsx +92 -0
- package/src/lib/components/table/Table.test.tsx +15 -0
- package/src/lib/components/table/Table.tsx +27 -20
- package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx +1 -1
- package/src/lib/components/table/components/TableCell/TableCell.module.scss +9 -3
- package/src/lib/components/table/components/TableCell/TableCell.tsx +7 -1
- package/src/lib/components/table/components/TableContents/TableContents.module.scss +23 -24
- package/src/lib/components/table/components/TableContents/TableContents.test.tsx +22 -1
- package/src/lib/components/table/components/TableContents/TableContents.tsx +40 -31
- package/src/lib/components/table/components/TableSection/TableSection.module.scss +7 -0
- package/src/lib/components/table/components/TableSection/TableSection.tsx +32 -3
- package/src/lib/models/styles.ts +1 -0
- package/dist/esm/TableSection-CEhD4eoy.js.map +0 -1
|
@@ -23,6 +23,7 @@ export interface TableSectionProps {
|
|
|
23
23
|
width?: number | string;
|
|
24
24
|
cellReplacements?: CellReplacements;
|
|
25
25
|
imageComponent?: (args: any) => JSX.Element;
|
|
26
|
+
selectedColumn?: number;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
const TableSection = ({
|
|
@@ -36,10 +37,21 @@ const TableSection = ({
|
|
|
36
37
|
width,
|
|
37
38
|
cellReplacements,
|
|
38
39
|
imageComponent,
|
|
40
|
+
selectedColumn,
|
|
39
41
|
}: TableSectionProps) => {
|
|
40
42
|
const headerRow = tableCellRows?.[0];
|
|
41
43
|
const isBelowDesktop = useMediaQuery('BELOW_DESKTOP');
|
|
42
44
|
|
|
45
|
+
const firstVisibleBodyRowIndex = tableCellRows.findIndex(
|
|
46
|
+
(_, index) => index > 0 && !hideRows.includes(index)
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const lastVisibleRowIndex = tableCellRows.reduce(
|
|
50
|
+
(last, row, index) =>
|
|
51
|
+
index > 0 && !hideRows.includes(index) && row.length > 1 ? index : last,
|
|
52
|
+
-1
|
|
53
|
+
);
|
|
54
|
+
|
|
43
55
|
const getModalTitleFromColumnHeader = (cellIndex: number) => {
|
|
44
56
|
const firstCellInColumn = tableCellRows?.[0]?.[cellIndex];
|
|
45
57
|
let titleFromColumn;
|
|
@@ -77,9 +89,14 @@ const TableSection = ({
|
|
|
77
89
|
[hideRows]
|
|
78
90
|
);
|
|
79
91
|
|
|
92
|
+
const visibleColumnsLength =
|
|
93
|
+
headerRow?.filter((_, cellIndex) => isVisibleColumn(cellIndex)).length ?? 0;
|
|
94
|
+
|
|
80
95
|
return (
|
|
81
96
|
<table
|
|
82
|
-
className={classNames(className, 'w100', styles.table
|
|
97
|
+
className={classNames(className, 'w100', styles.table, {
|
|
98
|
+
[styles.tableMultiplePlans]: visibleColumnsLength > 2,
|
|
99
|
+
})}
|
|
83
100
|
width={width}
|
|
84
101
|
>
|
|
85
102
|
<caption className="sr-only">{title}</caption>
|
|
@@ -102,7 +119,7 @@ const TableSection = ({
|
|
|
102
119
|
modalTitle:
|
|
103
120
|
(isBaseCell(tableCellData) && tableCellData.text) ||
|
|
104
121
|
getModalTitleFromColumnHeader(cellIndex),
|
|
105
|
-
align:
|
|
122
|
+
align: 'left',
|
|
106
123
|
},
|
|
107
124
|
} as TableCellData;
|
|
108
125
|
|
|
@@ -114,6 +131,8 @@ const TableSection = ({
|
|
|
114
131
|
isHeader
|
|
115
132
|
isFirstCellInRow={isFirstCellInRow}
|
|
116
133
|
isTopLeftCell={isFirstCellInRow}
|
|
134
|
+
isSelectedColumn={selectedColumn === cellIndex}
|
|
135
|
+
selectedColumnPosition={selectedColumn === cellIndex ? 'top' : undefined}
|
|
117
136
|
{...cellProps}
|
|
118
137
|
imageComponent={imageComponent}
|
|
119
138
|
/>
|
|
@@ -133,6 +152,14 @@ const TableSection = ({
|
|
|
133
152
|
const key = `${rowIndex}-${cellIndex}`;
|
|
134
153
|
const isFirstCellInRow = cellIndex === 0;
|
|
135
154
|
const titleFromRow = getModalTitleFromRowHeader(row);
|
|
155
|
+
const isSelected = selectedColumn === cellIndex;
|
|
156
|
+
|
|
157
|
+
const getSelectedColumnPosition = () => {
|
|
158
|
+
if (!isSelected) return undefined;
|
|
159
|
+
if (rowIndex === lastVisibleRowIndex) return 'bottom';
|
|
160
|
+
if (hideHeader && rowIndex === firstVisibleBodyRowIndex) return 'top';
|
|
161
|
+
return 'middle';
|
|
162
|
+
};
|
|
136
163
|
|
|
137
164
|
const cellReplacementData =
|
|
138
165
|
(tableCellData.cellId &&
|
|
@@ -145,7 +172,7 @@ const TableSection = ({
|
|
|
145
172
|
...{
|
|
146
173
|
openModal,
|
|
147
174
|
modalTitle: tableCellData?.modalTitle || titleFromRow,
|
|
148
|
-
align:
|
|
175
|
+
align: 'left',
|
|
149
176
|
},
|
|
150
177
|
} as TableCellData;
|
|
151
178
|
|
|
@@ -154,6 +181,8 @@ const TableSection = ({
|
|
|
154
181
|
<TableCell
|
|
155
182
|
isBelowDesktop={isBelowDesktop}
|
|
156
183
|
isFirstCellInRow={isFirstCellInRow}
|
|
184
|
+
isSelectedColumn={isSelected}
|
|
185
|
+
selectedColumnPosition={getSelectedColumnPosition()}
|
|
157
186
|
key={key}
|
|
158
187
|
{...cellProps}
|
|
159
188
|
imageComponent={imageComponent}
|
package/src/lib/models/styles.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableSection-CEhD4eoy.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}\n\nconst TableSection = ({\n className,\n tableCellRows,\n hideColumns = [],\n hideRows = [],\n hideHeader,\n openModal,\n title,\n width,\n cellReplacements,\n imageComponent,\n}: TableSectionProps) => {\n const headerRow = tableCellRows?.[0];\n const isBelowDesktop = useMediaQuery('BELOW_DESKTOP');\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 return (\n <table\n className={classNames(className, 'w100', styles.table)}\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: isFirstCellInRow ? 'left' : 'center',\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 {...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\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: isFirstCellInRow ? 'left' : 'center',\n },\n } as TableCellData;\n\n return (\n !hideColumns.includes(cellIndex) && (\n <TableCell\n isBelowDesktop={isBelowDesktop}\n isFirstCellInRow={isFirstCellInRow}\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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"}
|