@popsure/dirty-swan 0.58.5 → 0.58.7
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 +39 -24
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/table/Table.d.ts +2 -1
- package/dist/cjs/lib/components/table/Table.stories.d.ts +6 -2
- package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +2 -1
- package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +1 -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/esm/{TableSection-f41d4248.js → TableSection-9cf86eb7.js} +4 -3
- package/dist/esm/TableSection-9cf86eb7.js.map +1 -0
- package/dist/esm/components/icon/icons/Bone.js +1 -1
- package/dist/esm/components/icon/icons/Bone.js.map +1 -1
- package/dist/esm/components/icon/icons/Car.js +1 -1
- package/dist/esm/components/icon/icons/Car.js.map +1 -1
- package/dist/esm/components/icon/icons/Files.js +1 -1
- package/dist/esm/components/icon/icons/Files.js.map +1 -1
- package/dist/esm/components/icon/icons/Id.js +1 -1
- package/dist/esm/components/icon/icons/Id.js.map +1 -1
- package/dist/esm/components/icon/icons/Prohibit.js +1 -1
- package/dist/esm/components/icon/icons/Prohibit.js.map +1 -1
- package/dist/esm/components/icon/icons/Receipt.js +1 -1
- package/dist/esm/components/icon/icons/Receipt.js.map +1 -1
- package/dist/esm/components/icon/icons/Signature.js +1 -1
- package/dist/esm/components/icon/icons/Signature.js.map +1 -1
- package/dist/esm/components/icon/icons/Stamp.js +1 -1
- package/dist/esm/components/icon/icons/Stamp.js.map +1 -1
- package/dist/esm/components/icon/icons/Translation.js +2 -2
- package/dist/esm/components/icon/icons/Translation.js.map +1 -1
- package/dist/esm/components/icon/icons.stories.js +1 -1
- package/dist/esm/components/icon/index.stories.js +1 -1
- package/dist/esm/components/table/Table.js +8 -8
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.stories.js +8 -4
- package/dist/esm/components/table/Table.stories.js.map +1 -1
- package/dist/esm/components/table/Table.test.js +2 -2
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js +11 -3
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.stories.js +1 -0
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.stories.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.js +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.test.js +1 -1
- package/dist/esm/components/table/components/TableContents/TableContents.js +15 -6
- package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -1
- package/dist/esm/components/table/components/TableContents/TableContents.test.js +2 -2
- package/dist/esm/components/table/components/TableSection/TableSection.js +2 -2
- package/dist/esm/components/table/components/TableSection/TableSection.test.js +2 -2
- package/dist/esm/{index-608a56e3.js → index-d2e06251.js} +1 -1
- package/dist/esm/{index-608a56e3.js.map → index-d2e06251.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/components/table/Table.d.ts +2 -1
- package/dist/esm/lib/components/table/Table.stories.d.ts +6 -2
- package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +2 -1
- package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +1 -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/package.json +1 -1
- package/src/lib/components/icon/assets/bone.svg +5 -5
- package/src/lib/components/icon/assets/car.svg +10 -10
- package/src/lib/components/icon/assets/files.svg +8 -8
- package/src/lib/components/icon/assets/id.svg +9 -9
- package/src/lib/components/icon/assets/prohibit.svg +6 -6
- package/src/lib/components/icon/assets/receipt.svg +7 -7
- package/src/lib/components/icon/assets/signature.svg +6 -6
- package/src/lib/components/icon/assets/stamp.svg +7 -7
- package/src/lib/components/icon/assets/translation.svg +7 -14
- package/src/lib/components/icon/icons/Bone.tsx +2 -2
- package/src/lib/components/icon/icons/Car.tsx +4 -4
- package/src/lib/components/icon/icons/Files.tsx +4 -4
- package/src/lib/components/icon/icons/Id.tsx +3 -3
- package/src/lib/components/icon/icons/Prohibit.tsx +4 -7
- package/src/lib/components/icon/icons/Receipt.tsx +3 -3
- package/src/lib/components/icon/icons/Signature.tsx +2 -2
- package/src/lib/components/icon/icons/Stamp.tsx +3 -3
- package/src/lib/components/icon/icons/Translation.tsx +26 -25
- package/src/lib/components/table/Table.stories.tsx +6 -0
- package/src/lib/components/table/Table.tsx +4 -0
- package/src/lib/components/table/components/TableCell/CTACell/CTACell.tsx +11 -5
- package/src/lib/components/table/components/TableContents/TableContents.tsx +65 -51
- package/src/lib/components/table/components/TableSection/TableSection.tsx +8 -1
- package/dist/esm/TableSection-f41d4248.js.map +0 -1
|
@@ -3,6 +3,7 @@ import { ReactNode } from 'react';
|
|
|
3
3
|
|
|
4
4
|
import styles from './CTACell.module.scss';
|
|
5
5
|
import { IconRenderer } from '../../IconRenderer/IconRenderer';
|
|
6
|
+
import { Button } from '../../../../button';
|
|
6
7
|
|
|
7
8
|
export type CTACellProps = {
|
|
8
9
|
title: ReactNode;
|
|
@@ -16,6 +17,7 @@ export type CTACellProps = {
|
|
|
16
17
|
className?: string;
|
|
17
18
|
dataTestId?: string;
|
|
18
19
|
dataCy?: string;
|
|
20
|
+
onClick?: () => void;
|
|
19
21
|
};
|
|
20
22
|
|
|
21
23
|
export const CTACell = ({
|
|
@@ -30,6 +32,7 @@ export const CTACell = ({
|
|
|
30
32
|
className,
|
|
31
33
|
dataCy,
|
|
32
34
|
dataTestId,
|
|
35
|
+
onClick,
|
|
33
36
|
}: CTACellProps) => {
|
|
34
37
|
const renderedIcon = (
|
|
35
38
|
<IconRenderer icon={icon} imageComponent={imageComponent} />
|
|
@@ -49,18 +52,21 @@ export const CTACell = ({
|
|
|
49
52
|
</p>
|
|
50
53
|
</div>
|
|
51
54
|
|
|
52
|
-
<
|
|
55
|
+
<Button
|
|
56
|
+
{...onClick ? { onClick } : {
|
|
57
|
+
as: 'a',
|
|
58
|
+
href: href,
|
|
59
|
+
target: '_blank',
|
|
60
|
+
rel: 'noopener noreferrer',
|
|
61
|
+
}}
|
|
53
62
|
className={classNames('mt16 w100 wmx3', {
|
|
54
63
|
'p-btn--primary': !grey,
|
|
55
64
|
'p-btn--secondary-grey': grey,
|
|
56
65
|
[styles.narrow]: narrow,
|
|
57
66
|
})}
|
|
58
|
-
href={href}
|
|
59
|
-
target="_blank"
|
|
60
|
-
rel="noopener noreferrer"
|
|
61
67
|
>
|
|
62
68
|
{buttonCaption}
|
|
63
|
-
</
|
|
69
|
+
</Button>
|
|
64
70
|
</div>
|
|
65
71
|
);
|
|
66
72
|
};
|
|
@@ -15,6 +15,7 @@ export interface TableContentsProps {
|
|
|
15
15
|
tableData: TableData;
|
|
16
16
|
hideColumns?: number[];
|
|
17
17
|
hideDetails?: boolean;
|
|
18
|
+
hideRows?: number[];
|
|
18
19
|
isMobile?: boolean;
|
|
19
20
|
openModal?: ModalFunction;
|
|
20
21
|
shouldHideDetails?: boolean;
|
|
@@ -29,6 +30,7 @@ const TableContents = ({
|
|
|
29
30
|
tableData,
|
|
30
31
|
hideColumns = [],
|
|
31
32
|
hideDetails,
|
|
33
|
+
hideRows = [],
|
|
32
34
|
isMobile,
|
|
33
35
|
openModal,
|
|
34
36
|
shouldHideDetails,
|
|
@@ -45,6 +47,9 @@ const TableContents = ({
|
|
|
45
47
|
);
|
|
46
48
|
};
|
|
47
49
|
|
|
50
|
+
// Calculate global row offset for each section
|
|
51
|
+
let globalRowOffset = 0;
|
|
52
|
+
|
|
48
53
|
return (
|
|
49
54
|
<div style={{ width: tableWidth }}>
|
|
50
55
|
{tableData.map(({ rows, section = {} }, index) => {
|
|
@@ -58,60 +63,69 @@ const TableContents = ({
|
|
|
58
63
|
<IconRenderer icon={section.icon} imageComponent={imageComponent} width={20} />
|
|
59
64
|
);
|
|
60
65
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
66
|
+
// Calculate section-specific hideRows based on global offset
|
|
67
|
+
const sectionHideRows = hideRows
|
|
68
|
+
.map(globalRowIndex => globalRowIndex - globalRowOffset)
|
|
69
|
+
.filter(localRowIndex => localRowIndex >= 0 && localRowIndex < rows.length);
|
|
70
|
+
|
|
71
|
+
const result = (isFirstSection || isVisible) && (
|
|
72
|
+
<div key={index}>
|
|
73
|
+
{section?.title && (
|
|
74
|
+
<div className={styles.cardWrapper}>
|
|
75
|
+
<div className={classNames(styles.card, 'p0')}>
|
|
76
|
+
<Card
|
|
77
|
+
actionIcon={
|
|
78
|
+
isExpanded ? (
|
|
79
|
+
<ChevronUpIcon size={24} />
|
|
80
|
+
) : (
|
|
81
|
+
<ChevronDownIcon size={24} />
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
aria-expanded={isExpanded ? 'true' : 'false'}
|
|
85
|
+
aria-hidden
|
|
86
|
+
classNames={{
|
|
87
|
+
wrapper: 'bg-purple-50 pl16',
|
|
88
|
+
icon: classNames(styles.cardIcon, 'tc-grey-900'),
|
|
89
|
+
}}
|
|
90
|
+
dropShadow={false}
|
|
91
|
+
icon={renderedIcon}
|
|
92
|
+
title={section.title}
|
|
93
|
+
titleVariant="medium"
|
|
94
|
+
{...(collapsibleSections
|
|
95
|
+
? {
|
|
96
|
+
onClick: () => handleToggleSection(index),
|
|
97
|
+
}
|
|
98
|
+
: {})}
|
|
99
|
+
/>
|
|
92
100
|
</div>
|
|
93
|
-
|
|
101
|
+
</div>
|
|
102
|
+
)}
|
|
94
103
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}`
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
</
|
|
113
|
-
|
|
104
|
+
<Collapsible isExpanded={isExpanded}>
|
|
105
|
+
<TableSection
|
|
106
|
+
className={classNames(className, 'mb24')}
|
|
107
|
+
tableCellRows={
|
|
108
|
+
isFirstSection ? rows : [firstHeadRow, ...rows]
|
|
109
|
+
}
|
|
110
|
+
hideColumns={hideColumns}
|
|
111
|
+
hideRows={sectionHideRows}
|
|
112
|
+
hideHeader
|
|
113
|
+
openModal={openModal}
|
|
114
|
+
title={`${title}${
|
|
115
|
+
section?.title ? ` - ${section.title}` : ''
|
|
116
|
+
}`}
|
|
117
|
+
width={tableWidth}
|
|
118
|
+
cellReplacements={cellReplacements}
|
|
119
|
+
imageComponent={imageComponent}
|
|
120
|
+
/>
|
|
121
|
+
</Collapsible>
|
|
122
|
+
</div>
|
|
114
123
|
);
|
|
124
|
+
|
|
125
|
+
// Update global offset for next section (excluding header row for non-first sections)
|
|
126
|
+
globalRowOffset += rows.length;
|
|
127
|
+
|
|
128
|
+
return result;
|
|
115
129
|
})}
|
|
116
130
|
</div>
|
|
117
131
|
);
|
|
@@ -16,6 +16,7 @@ export interface TableSectionProps {
|
|
|
16
16
|
className?: string;
|
|
17
17
|
tableCellRows: TableCellRowData[];
|
|
18
18
|
hideColumns?: number[];
|
|
19
|
+
hideRows?: number[];
|
|
19
20
|
hideHeader?: boolean;
|
|
20
21
|
openModal?: ModalFunction;
|
|
21
22
|
title: string;
|
|
@@ -28,6 +29,7 @@ const TableSection = ({
|
|
|
28
29
|
className,
|
|
29
30
|
tableCellRows,
|
|
30
31
|
hideColumns = [],
|
|
32
|
+
hideRows = [],
|
|
31
33
|
hideHeader,
|
|
32
34
|
openModal,
|
|
33
35
|
title,
|
|
@@ -70,6 +72,11 @@ const TableSection = ({
|
|
|
70
72
|
[hideColumns]
|
|
71
73
|
);
|
|
72
74
|
|
|
75
|
+
const isVisibleRow = useCallback(
|
|
76
|
+
(rowIndex: number) => !hideRows.includes(rowIndex),
|
|
77
|
+
[hideRows]
|
|
78
|
+
);
|
|
79
|
+
|
|
73
80
|
return (
|
|
74
81
|
<table
|
|
75
82
|
className={classNames(className, 'w100', styles.table)}
|
|
@@ -120,7 +127,7 @@ const TableSection = ({
|
|
|
120
127
|
<tbody>
|
|
121
128
|
{tableCellRows.map(
|
|
122
129
|
(row, rowIndex) =>
|
|
123
|
-
rowIndex > 0 && (
|
|
130
|
+
rowIndex > 0 && isVisibleRow(rowIndex) && (
|
|
124
131
|
<tr key={rowIndex} className={styles.tr}>
|
|
125
132
|
{row.map((tableCellData, cellIndex) => {
|
|
126
133
|
const key = `${rowIndex}-${cellIndex}`;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableSection-f41d4248.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 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 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 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 && (\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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"}
|