@sis-cc/dotstatsuite-visions 13.8.0 → 13.9.0
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/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/Button/Button.js +15 -17
- package/dist/Button/Button.js.map +1 -1
- package/dist/CollapseButtons/CollapseButtons.js +130 -98
- package/dist/CollapseButtons/CollapseButtons.js.map +1 -1
- package/dist/CollapsibleTree/CollapsibleTree.js.map +1 -1
- package/dist/Contact/Contact.js.map +1 -1
- package/dist/DynamicDrawer/DynamicDrawer.js.map +1 -1
- package/dist/Logo/Logo.js +1 -1
- package/dist/Logo/Logo.js.map +1 -1
- package/dist/PeriodPicker/PeriodPicker.js +1 -9
- package/dist/PeriodPicker/PeriodPicker.js.map +1 -1
- package/dist/TableHtml5/TableHtml5.js +0 -1
- package/dist/TableHtml5/TableHtml5.js.map +1 -1
- package/dist/TableLayout/TableLayout.js.map +1 -1
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/theme/theme.js +5 -5
- package/dist/theme/theme.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.js","sources":["../../src/Breadcrumbs/Breadcrumbs.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport makeStyles from '@mui/styles/makeStyles';\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs';\nimport Typography from '@mui/material/Typography';\nimport { NavigateBefore, NavigateNext } from '@mui/icons-material';\nimport cx from 'classnames';\n\nconst useStyles = makeStyles(theme => ({\n action: {\n cursor: 'pointer',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n disabled: {\n cursor: 'not-allowed',\n color: theme.palette.text.disabled,\n '&:hover': {\n color: theme.palette.text.disabled,\n },\n },\n}));\n\nexport const Breadcrumbs = ({ items = [], isRtl }) => {\n const classes = useStyles();\n\n return (\n <MuiBreadcrumbs\n separator={
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.js","sources":["../../src/Breadcrumbs/Breadcrumbs.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport makeStyles from '@mui/styles/makeStyles';\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs';\nimport Typography from '@mui/material/Typography';\nimport { NavigateBefore, NavigateNext } from '@mui/icons-material';\nimport cx from 'classnames';\n\nconst useStyles = makeStyles(theme => ({\n action: {\n cursor: 'pointer',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n disabled: {\n cursor: 'not-allowed',\n color: theme.palette.text.disabled,\n '&:hover': {\n color: theme.palette.text.disabled,\n },\n },\n}));\n\nexport const Breadcrumbs = ({ items = [], isRtl }) => {\n const classes = useStyles();\n\n return (\n <MuiBreadcrumbs\n separator={isRtl ? <NavigateBefore fontSize=\"small\" /> : <NavigateNext fontSize=\"small\" />}\n aria-label=\"breadcrumb\"\n >\n {R.addIndex(R.map)(({ text, action, isDisabled }, index) => (\n <Typography\n key={`${text}-${index}`}\n color=\"textPrimary\"\n onClick={action}\n variant=\"subtitle1\"\n className={cx({\n [classes.action]: R.is(Function)(action),\n [classes.disabled]: isDisabled,\n })}\n >\n {text}\n </Typography>\n ))(items)}\n </MuiBreadcrumbs>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAQA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ;AAAA;AAC/B,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,aAAA;AAAA,IACR,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,QAAA;AAAA,IAC1B,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK;AAAA;AAC5B;AAEJ,CAAA,CAAE,CAAA;AAEK,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAC,EAAG,OAAM,KAAM;AACpD,EAAA,MAAM,UAAU,SAAA,EAAU;AAE1B,EAAA,uBACE,GAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,KAAA,mBAAQ,GAAA,CAAC,cAAA,EAAA,EAAe,QAAA,EAAS,SAAQ,CAAA,mBAAK,GAAA,CAAC,YAAA,EAAA,EAAa,QAAA,EAAS,OAAA,EAAQ,CAAA;AAAA,MACxF,YAAA,EAAW,YAAA;AAAA,MAEV,QAAA,EAAA,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA,CAAE,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,UAAA,EAAW,EAAG,KAAA,qBAChD,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UAEC,KAAA,EAAM,aAAA;AAAA,UACN,OAAA,EAAS,MAAA;AAAA,UACT,OAAA,EAAQ,WAAA;AAAA,UACR,WAAW,EAAA,CAAG;AAAA,YACZ,CAAC,QAAQ,MAAM,GAAG,EAAE,EAAA,CAAG,QAAQ,EAAE,MAAM,CAAA;AAAA,YACvC,CAAC,OAAA,CAAQ,QAAQ,GAAG;AAAA,WACrB,CAAA;AAAA,UAEA,QAAA,EAAA;AAAA,SAAA;AAAA,QATI,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,OAWxB,EAAE,KAAK;AAAA;AAAA,GACV;AAEJ;;;;"}
|
package/dist/Button/Button.js
CHANGED
|
@@ -28,23 +28,21 @@ const useStyles = makeStyles((theme) => {
|
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
});
|
|
31
|
-
const Button = React.forwardRef(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
);
|
|
31
|
+
const Button = React.forwardRef(function Button2({ className, selected, alternative = "default", ...props }, ref) {
|
|
32
|
+
const classes = useStyles();
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
Button$1,
|
|
35
|
+
{
|
|
36
|
+
className: cx(className, R.prop(`${alternative}Root`)(classes), {
|
|
37
|
+
[R.prop(`${alternative}Selected`)(classes)]: selected
|
|
38
|
+
}),
|
|
39
|
+
"aria-pressed": selected,
|
|
40
|
+
ref,
|
|
41
|
+
...R.omit(["indicator", "textColor", "selectionFollowsFocus"], props),
|
|
42
|
+
children: props.children
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
});
|
|
48
46
|
|
|
49
47
|
export { Button };
|
|
50
48
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/Button/Button.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport MuiButton from '@mui/material/Button';\nimport makeStyles from '@mui/styles/makeStyles';\n\nconst useStyles = makeStyles(theme => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n\n return {\n defaultSelected: {\n backgroundColor: theme.palette.action.hover,\n '&:hover': {\n backgroundColor: `${theme.palette.action.selected} !important`,\n },\n },\n sisccRoot: {\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor:\n R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark,\n ...R.path(['mixins', 'toggleButton', 'hover'])(theme),\n },\n },\n sisccSelected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n ...R.path(['mixins', 'toggleButton', 'selected'])(theme),\n },\n };\n});\n\nexport const Button = React.forwardRef(
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/Button/Button.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport MuiButton from '@mui/material/Button';\nimport makeStyles from '@mui/styles/makeStyles';\n\nconst useStyles = makeStyles(theme => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n\n return {\n defaultSelected: {\n backgroundColor: theme.palette.action.hover,\n '&:hover': {\n backgroundColor: `${theme.palette.action.selected} !important`,\n },\n },\n sisccRoot: {\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor:\n R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark,\n ...R.path(['mixins', 'toggleButton', 'hover'])(theme),\n },\n },\n sisccSelected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n ...R.path(['mixins', 'toggleButton', 'selected'])(theme),\n },\n };\n});\n\nexport const Button = React.forwardRef(function Button(\n { className, selected, alternative = 'default', ...props },\n ref,\n) {\n const classes = useStyles();\n return (\n <MuiButton\n className={cx(className, R.prop(`${alternative}Root`)(classes), {\n [R.prop(`${alternative}Selected`)(classes)]: selected,\n })}\n aria-pressed={selected}\n ref={ref}\n {...R.omit(['indicator', 'textColor', 'selectionFollowsFocus'], props)}\n >\n {props.children}\n </MuiButton>\n );\n});\n"],"names":["Button","MuiButton"],"mappings":";;;;;;;AAMA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,KAAS;AACpC,EAAA,MAAM,MAAA,GAAS,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,WAAA,EAAa,KAAK,CAAA,EAAG,KAAK,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAEvF,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB;AAAA,MACf,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,KAAA;AAAA,MACtC,SAAA,EAAW;AAAA,QACT,eAAA,EAAiB,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,OAAO,QAAQ,CAAA,WAAA;AAAA;AACnD,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,SAAA,EAAW;AAAA,QACT,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,MAAM,CAAA;AAAA,QAC3C,eAAA,EACE,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,WAAA,EAAa,KAAK,CAAA,EAAG,KAAK,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,QAC1E,GAAG,EAAE,IAAA,CAAK,CAAC,UAAU,cAAA,EAAgB,OAAO,CAAC,CAAA,CAAE,KAAK;AAAA;AACtD,KACF;AAAA,IACA,aAAA,EAAe;AAAA,MACb,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,MAAM,CAAA;AAAA,MAC3C,eAAA,EAAiB,MAAA;AAAA,MACjB,GAAG,EAAE,IAAA,CAAK,CAAC,UAAU,cAAA,EAAgB,UAAU,CAAC,CAAA,CAAE,KAAK;AAAA;AACzD,GACF;AACF,CAAC,CAAA;AAEM,MAAM,MAAA,GAAS,KAAA,CAAM,UAAA,CAAW,SAASA,OAAAA,CAC9C,EAAE,SAAA,EAAW,QAAA,EAAU,WAAA,GAAc,SAAA,EAAW,GAAG,KAAA,IACnD,GAAA,EACA;AACA,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,uBACE,GAAA;AAAA,IAACC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,CAAA,CAAE,IAAA,CAAK,GAAG,WAAW,CAAA,IAAA,CAAM,CAAA,CAAE,OAAO,CAAA,EAAG;AAAA,QAC9D,CAAC,EAAE,IAAA,CAAK,CAAA,EAAG,WAAW,CAAA,QAAA,CAAU,CAAA,CAAE,OAAO,CAAC,GAAG;AAAA,OAC9C,CAAA;AAAA,MACD,cAAA,EAAc,QAAA;AAAA,MACd,GAAA;AAAA,MACC,GAAG,EAAE,IAAA,CAAK,CAAC,aAAa,WAAA,EAAa,uBAAuB,GAAG,KAAK,CAAA;AAAA,MAEpE,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,GACT;AAEJ,CAAC;;;;"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useState, createElement } from 'react';
|
|
3
|
-
import cx from 'classnames';
|
|
4
|
-
import * as R from 'ramda';
|
|
5
|
-
import makeStyles from '@mui/styles/makeStyles';
|
|
2
|
+
import React, { useState, useCallback, createElement } from 'react';
|
|
6
3
|
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
7
4
|
import Grid from '@mui/material/Grid';
|
|
8
|
-
import Collapse from '@mui/material/Collapse';
|
|
9
5
|
import Typography$1 from '@mui/material/Typography';
|
|
6
|
+
import * as R from 'ramda';
|
|
7
|
+
import cx from 'classnames';
|
|
8
|
+
import makeStyles from '@mui/styles/makeStyles';
|
|
10
9
|
import Button from '@mui/material/Button';
|
|
11
10
|
import { KeyboardArrowUp, KeyboardArrowDown } from '@mui/icons-material';
|
|
11
|
+
import Collapse from '@mui/material/Collapse';
|
|
12
12
|
import PropTypes from 'prop-types';
|
|
13
13
|
import Link from '@mui/material/Link';
|
|
14
14
|
import SvgIcon from '@mui/material/SvgIcon';
|
|
15
15
|
import { Typography } from '@mui/material';
|
|
16
16
|
import Paper from '@mui/material/Paper';
|
|
17
17
|
|
|
18
|
-
const useStyles$
|
|
18
|
+
const useStyles$1 = makeStyles((theme) => {
|
|
19
19
|
const color1 = R.path(["palette", "highlight", "hl1"], theme) || theme.palette.primary.dark;
|
|
20
20
|
return {
|
|
21
21
|
root: {
|
|
@@ -50,7 +50,7 @@ const ToggleButton = ({
|
|
|
50
50
|
tabIndex = 0,
|
|
51
51
|
textTransform = "capitalize"
|
|
52
52
|
}) => {
|
|
53
|
-
const classes = useStyles$
|
|
53
|
+
const classes = useStyles$1();
|
|
54
54
|
return /* @__PURE__ */ jsxs(
|
|
55
55
|
Button,
|
|
56
56
|
{
|
|
@@ -72,7 +72,7 @@ const ToggleButton = ({
|
|
|
72
72
|
);
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
const useStyles
|
|
75
|
+
const useStyles = makeStyles((theme) => ({
|
|
76
76
|
paperItem: {
|
|
77
77
|
alignItems: "baseline"
|
|
78
78
|
},
|
|
@@ -112,7 +112,7 @@ const useStyles$2 = makeStyles((theme) => ({
|
|
|
112
112
|
}
|
|
113
113
|
}));
|
|
114
114
|
const Item = ({ parentId, item, action, testId, isSecondLevelClikable, labelAccessor }) => {
|
|
115
|
-
const classes = useStyles
|
|
115
|
+
const classes = useStyles();
|
|
116
116
|
const mapIndexed = R.addIndex(R.map);
|
|
117
117
|
return /* @__PURE__ */ jsx(Grid, { className: classes.paperItem, children: /* @__PURE__ */ jsx(Typography, { variant: "h4", children: /* @__PURE__ */ jsxs(
|
|
118
118
|
Button,
|
|
@@ -178,121 +178,128 @@ Item.propTypes = {
|
|
|
178
178
|
labelAccessor: PropTypes.func
|
|
179
179
|
};
|
|
180
180
|
|
|
181
|
-
const useStyles$1 = makeStyles((theme) => ({
|
|
182
|
-
paper: {
|
|
183
|
-
padding: theme.spacing(2.5),
|
|
184
|
-
margin: theme.spacing(1.25),
|
|
185
|
-
borderRadius: "unset"
|
|
186
|
-
},
|
|
187
|
-
mobileView: {
|
|
188
|
-
display: "flex",
|
|
189
|
-
flexDirection: "column",
|
|
190
|
-
columnCount: "unset"
|
|
191
|
-
},
|
|
192
|
-
view: {
|
|
193
|
-
columnCount: 3,
|
|
194
|
-
columnFill: "balance"
|
|
195
|
-
}
|
|
196
|
-
}));
|
|
197
181
|
const CustomPaper = ({ isMobileView, children, onClose }) => {
|
|
198
|
-
const classes = useStyles$1();
|
|
199
182
|
return /* @__PURE__ */ jsx(
|
|
200
183
|
Paper,
|
|
201
184
|
{
|
|
202
185
|
onKeyDown: (e) => {
|
|
203
|
-
if (e.key === "Escape") onClose();
|
|
186
|
+
if (e.key === "Escape" && onClose) onClose();
|
|
204
187
|
},
|
|
205
|
-
|
|
206
|
-
|
|
188
|
+
sx: {
|
|
189
|
+
padding: 2.5,
|
|
190
|
+
// Multiplies by theme.spacing (2.5 * 8px = 20px)
|
|
191
|
+
margin: 1.25,
|
|
192
|
+
// Multiplies by theme.spacing (1.25 * 8px = 10px)
|
|
193
|
+
borderRadius: "unset",
|
|
194
|
+
...isMobileView && {
|
|
195
|
+
display: "flex",
|
|
196
|
+
flexDirection: "column",
|
|
197
|
+
columnCount: "unset"
|
|
198
|
+
}
|
|
207
199
|
},
|
|
208
|
-
children: /* @__PURE__ */ jsx(
|
|
200
|
+
children: /* @__PURE__ */ jsx(
|
|
201
|
+
Grid,
|
|
202
|
+
{
|
|
203
|
+
sx: {
|
|
204
|
+
columnCount: isMobileView ? "unset" : 3,
|
|
205
|
+
columnFill: "balance",
|
|
206
|
+
...isMobileView && {
|
|
207
|
+
display: "flex",
|
|
208
|
+
flexDirection: "column"
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
children
|
|
212
|
+
}
|
|
213
|
+
)
|
|
209
214
|
}
|
|
210
215
|
);
|
|
211
216
|
};
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
217
|
+
|
|
218
|
+
const CollapseSection = ({
|
|
219
|
+
id,
|
|
220
|
+
toggleId,
|
|
221
|
+
values = [],
|
|
222
|
+
isMobileView,
|
|
223
|
+
action,
|
|
224
|
+
isSecondLevelClikable,
|
|
225
|
+
labelAccessor,
|
|
226
|
+
testId
|
|
227
|
+
}) => {
|
|
228
|
+
const isOpen = toggleId === id;
|
|
229
|
+
return /* @__PURE__ */ jsx(Collapse, { in: isOpen, timeout: "auto", unmountOnExit: true, sx: { width: "100%" }, children: /* @__PURE__ */ jsx(CustomPaper, { elevation: 10, isMobileView, children: values.map((item, index) => {
|
|
230
|
+
const itemId = item?.id ?? index;
|
|
231
|
+
return /* @__PURE__ */ jsx(
|
|
232
|
+
Item,
|
|
233
|
+
{
|
|
234
|
+
testId: `${testId}_${id}_value_${itemId}`,
|
|
235
|
+
parentId: id,
|
|
236
|
+
item,
|
|
237
|
+
action,
|
|
238
|
+
isSecondLevelClikable,
|
|
239
|
+
labelAccessor
|
|
240
|
+
},
|
|
241
|
+
`${index}-${itemId}`
|
|
242
|
+
);
|
|
243
|
+
}) }) });
|
|
215
244
|
};
|
|
245
|
+
const CollapseSection$1 = React.memo(CollapseSection);
|
|
216
246
|
|
|
217
247
|
const MAX_COLUMNS = 12;
|
|
218
248
|
const COLUMNS = [12, 12, 6, 4, 3, 3, 2, 2, 2, 2, 2, 2, 1];
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
249
|
+
const CollapseButtons = ({
|
|
250
|
+
items = [],
|
|
251
|
+
action = () => {
|
|
222
252
|
},
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
items = [],
|
|
235
|
-
action = () => {
|
|
236
|
-
},
|
|
237
|
-
nbColumns = 3,
|
|
238
|
-
testId = "collapseButton",
|
|
239
|
-
isSecondLevelClikable,
|
|
240
|
-
gridButtonsProps = {},
|
|
241
|
-
breakpoint = (theme) => theme.breakpoints.down("md"),
|
|
242
|
-
justify,
|
|
243
|
-
textTransform = "none",
|
|
244
|
-
labelAccessor = R.prop("label"),
|
|
245
|
-
accessibility
|
|
246
|
-
} = props;
|
|
247
|
-
const classes = useStyles();
|
|
253
|
+
nbColumns = 3,
|
|
254
|
+
testId = "collapseButton",
|
|
255
|
+
isSecondLevelClikable,
|
|
256
|
+
gridButtonsProps = {},
|
|
257
|
+
breakpoint = (theme) => theme.breakpoints.down("md"),
|
|
258
|
+
justify,
|
|
259
|
+
textTransform = "none",
|
|
260
|
+
labelAccessor = (obj) => obj?.label,
|
|
261
|
+
accessibility,
|
|
262
|
+
selectedItemId
|
|
263
|
+
}) => {
|
|
248
264
|
const isMobileView = useMediaQuery(breakpoint);
|
|
249
|
-
const [toggleId, setIsOpen] = useState(
|
|
250
|
-
const
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
in: toggleId2 === id,
|
|
255
|
-
timeout: "auto",
|
|
256
|
-
unmountOnExit: true,
|
|
257
|
-
className: classes.collapseContainer,
|
|
258
|
-
children: /* @__PURE__ */ jsx(CustomPaper, { elevation: 10, isMobileView: isMobileView2, children: mapIndexed(
|
|
259
|
-
(item, index) => /* @__PURE__ */ jsx(
|
|
260
|
-
Item,
|
|
261
|
-
{
|
|
262
|
-
testId: `${testId2}_${id}_value_${R.prop("id")(item)}`,
|
|
263
|
-
parentId: id,
|
|
264
|
-
item,
|
|
265
|
-
action: action2,
|
|
266
|
-
isSecondLevelClikable: isSecondLevelClikable2,
|
|
267
|
-
labelAccessor: labelAccessor2
|
|
268
|
-
},
|
|
269
|
-
`${index}-${R.prop("id")(item)}`
|
|
270
|
-
),
|
|
271
|
-
values
|
|
272
|
-
) })
|
|
273
|
-
},
|
|
274
|
-
id
|
|
275
|
-
);
|
|
276
|
-
const collapse = collapseFactory({ action, isSecondLevelClikable, labelAccessor, testId });
|
|
265
|
+
const [toggleId, setIsOpen] = useState(selectedItemId);
|
|
266
|
+
const mdGridSize = COLUMNS[nbColumns] ?? 3;
|
|
267
|
+
const handleToggle = useCallback((id) => {
|
|
268
|
+
setIsOpen((prevId) => prevId === id ? null : id);
|
|
269
|
+
}, []);
|
|
277
270
|
return /* @__PURE__ */ jsxs(
|
|
278
271
|
Grid,
|
|
279
272
|
{
|
|
280
273
|
container: true,
|
|
281
|
-
spacing: 2,
|
|
282
274
|
"data-testid": testId,
|
|
283
275
|
justifyContent: justify,
|
|
284
|
-
className: cx({ [classes.container]: accessibility }),
|
|
285
276
|
tabIndex: 0,
|
|
277
|
+
sx: {
|
|
278
|
+
...accessibility && {
|
|
279
|
+
"&:focus": {
|
|
280
|
+
outlineColor: "highlight.hl1",
|
|
281
|
+
// Safely pulls theme.palette.highlight.hl1 automatically
|
|
282
|
+
outlineWidth: 2,
|
|
283
|
+
outlineStyle: "auto",
|
|
284
|
+
paddingBottom: 2
|
|
285
|
+
// 2 * 8px = 16px
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
},
|
|
286
289
|
children: [
|
|
287
|
-
|
|
290
|
+
items.map(({ id, label, values = [] }, index) => /* @__PURE__ */ createElement(
|
|
288
291
|
Grid,
|
|
289
292
|
{
|
|
290
293
|
item: true,
|
|
291
294
|
xs: 12,
|
|
292
295
|
sm: 12,
|
|
293
|
-
md:
|
|
296
|
+
md: mdGridSize,
|
|
294
297
|
...gridButtonsProps,
|
|
295
|
-
key: `${index}::${id}
|
|
298
|
+
key: `${index}::${id}`,
|
|
299
|
+
sx: {
|
|
300
|
+
p: 1
|
|
301
|
+
// Adds 8px padding evenly inside every item box without layout shifting
|
|
302
|
+
}
|
|
296
303
|
},
|
|
297
304
|
/* @__PURE__ */ jsxs(Typography$1, { variant: "h3", children: [
|
|
298
305
|
/* @__PURE__ */ jsx(
|
|
@@ -302,15 +309,40 @@ const CollapseButtons = (props) => {
|
|
|
302
309
|
label,
|
|
303
310
|
tabIndex: toggleId ? 1 : 0,
|
|
304
311
|
isOpen: toggleId === id,
|
|
305
|
-
toggle: () =>
|
|
312
|
+
toggle: () => handleToggle(id),
|
|
306
313
|
testId: `${testId}_${id}`,
|
|
307
314
|
id
|
|
308
315
|
}
|
|
309
316
|
),
|
|
310
|
-
isMobileView &&
|
|
317
|
+
isMobileView && /* @__PURE__ */ jsx(
|
|
318
|
+
CollapseSection$1,
|
|
319
|
+
{
|
|
320
|
+
id,
|
|
321
|
+
toggleId,
|
|
322
|
+
values,
|
|
323
|
+
isMobileView,
|
|
324
|
+
action,
|
|
325
|
+
isSecondLevelClikable,
|
|
326
|
+
labelAccessor,
|
|
327
|
+
testId
|
|
328
|
+
}
|
|
329
|
+
)
|
|
311
330
|
] })
|
|
312
|
-
))
|
|
313
|
-
!isMobileView &&
|
|
331
|
+
)),
|
|
332
|
+
!isMobileView && items.map(({ id, values = [] }) => /* @__PURE__ */ jsx(
|
|
333
|
+
CollapseSection$1,
|
|
334
|
+
{
|
|
335
|
+
id,
|
|
336
|
+
toggleId,
|
|
337
|
+
values,
|
|
338
|
+
isMobileView,
|
|
339
|
+
action,
|
|
340
|
+
isSecondLevelClikable,
|
|
341
|
+
labelAccessor,
|
|
342
|
+
testId
|
|
343
|
+
},
|
|
344
|
+
`desktop-collapse-${id}`
|
|
345
|
+
))
|
|
314
346
|
]
|
|
315
347
|
}
|
|
316
348
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapseButtons.js","sources":["../../src/ToggleButton/ToggleButton.jsx","../../src/CollapseButtons/Item.jsx","../../src/CollapseButtons/Paper.jsx","../../src/CollapseButtons/CollapseButtons.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst useStyles = makeStyles(theme => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n return {\n root: {\n minHeight: '43px',\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(0.75, 2, 0.5, 2),\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor:\n R.path(['palette', 'button', 'mainOpacity'], theme) || theme.palette.primary.main,\n display: 'flex',\n justifyContent: 'space-between',\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n },\n label: {\n textAlign: 'left',\n fontSize: '0.9375rem',\n lineHeight: '1.0',\n },\n selected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n };\n});\n\nexport const ToggleButton = ({\n isOpen,\n label,\n toggle,\n testId,\n tabIndex = 0,\n textTransform = 'capitalize',\n}) => {\n const classes = useStyles();\n return (\n <Button\n aria-expanded={isOpen}\n aria-label={label}\n tabIndex={tabIndex}\n data-testid={testId}\n classes={{ root: classes.root, label: classes.label }}\n className={cx({ [classes.selected]: isOpen })}\n style={{ textTransform }}\n fullWidth\n variant=\"text\"\n onClick={R.is(Function)(toggle) ? toggle : null}\n >\n {label}\n {isOpen ? <KeyboardArrowUp /> : <KeyboardArrowDown />}\n </Button>\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { Typography } from '@mui/material';\n\nconst useStyles = makeStyles(theme => ({\n paperItem: {\n alignItems: 'baseline',\n },\n itemTitle: {\n ...theme.typography.body2,\n color: theme.palette.primary.main,\n },\n button: {\n '&:hover': {\n backgroundColor:\n R.path(['palette', 'tertiary', 'light'])(theme) || theme.palette.secondary.light,\n },\n padding: theme.spacing(1.25),\n textAlign: 'left',\n textTransform: 'none',\n justifyContent: 'flex-start',\n display: 'flex',\n },\n itemSubtitle: {\n ...theme.typography.body1,\n display: 'flex',\n flexDirection: 'column',\n color: theme.palette.grey[800],\n },\n itemSubtitleLink: {\n ...theme.typography.body1,\n color: theme.palette.grey[800],\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n svg: {\n color: theme.palette.grey[600],\n fontSize: '1rem',\n marginRight: theme.spacing(0.5),\n marginTop: theme.spacing(0.25),\n marginBottom: 'auto',\n },\n}));\n\nconst Item = ({ parentId, item, action, testId, isSecondLevelClikable, labelAccessor }) => {\n const classes = useStyles();\n const mapIndexed = R.addIndex(R.map);\n return (\n <Grid className={classes.paperItem}>\n <Typography variant=\"h4\">\n <Button\n aria-label={R.prop('label')(item)}\n className={classes.button}\n fullWidth\n data-testid={testId}\n role=\"link\"\n onClick={() => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, R.prop('id')(item));\n }}\n tabIndex={0}\n >\n <SvgIcon className={classes.svg}>\n <path d={R.prop('svgPath')(item)} />\n </SvgIcon>\n <Grid container item xs={12} direction=\"column\">\n <span className={classes.itemTitle}>{labelAccessor(item, parentId)}</span>\n <span className={classes.itemSubtitle}>\n {mapIndexed((subtopic, index) => {\n if (R.not(R.is(Object)(subtopic))) return subtopic;\n if (R.not(isSecondLevelClikable)) return labelAccessor(subtopic, parentId);\n const id = R.prop('id')(subtopic);\n return (\n <Typography variant=\"h5\" key={`${id}::${index}`}>\n <Link\n className={classes.itemSubtitleLink}\n role=\"link\"\n onClick={e => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }\n }}\n tabIndex={0}\n underline=\"none\"\n style={{ display: 'list-item' }}\n >\n {labelAccessor(subtopic, parentId)}\n </Link>\n </Typography>\n );\n })(\n R.pipe(\n R.propOr([], 'subtopics'),\n R.ifElse(R.always(isSecondLevelClikable), R.identity, R.intersperse(' • ')),\n )(item),\n )}\n </span>\n </Grid>\n </Button>\n </Typography>\n </Grid>\n );\n};\n\nItem.propTypes = {\n parentId: PropTypes.string,\n testId: PropTypes.string,\n item: PropTypes.object,\n action: PropTypes.func,\n isSecondLevelClikable: PropTypes.bool,\n labelAccessor: PropTypes.func,\n};\n\nexport default Item;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Paper from '@mui/material/Paper';\nimport Grid from '@mui/material/Grid';\nimport cx from 'classnames';\n\nconst useStyles = makeStyles(theme => ({\n paper: {\n padding: theme.spacing(2.5),\n margin: theme.spacing(1.25),\n borderRadius: 'unset',\n },\n mobileView: {\n display: 'flex',\n flexDirection: 'column',\n columnCount: 'unset',\n },\n view: {\n columnCount: 3,\n columnFill: 'balance',\n },\n}));\n\nconst CustomPaper = ({ isMobileView, children, onClose }) => {\n const classes = useStyles();\n return (\n <Paper\n onKeyDown={e => {\n if (e.key === 'Escape') onClose();\n }}\n classes={{\n root: cx(classes.paper, { [classes.mobileView]: isMobileView }),\n }}\n >\n <Grid className={cx(classes.view, { [classes.mobileView]: isMobileView })}>{children}</Grid>\n </Paper>\n );\n};\n\nCustomPaper.propTypes = {\n isMobileView: PropTypes.bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n};\n\nexport default CustomPaper;\n","import React, { useState } from 'react';\nimport cx from 'classnames';\nimport * as R from 'ramda';\nimport makeStyles from '@mui/styles/makeStyles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport Grid from '@mui/material/Grid';\nimport Collapse from '@mui/material/Collapse';\nimport Typography from '@mui/material/Typography';\nimport { ToggleButton } from '../ToggleButton/ToggleButton';\nimport Item from './Item';\nimport Paper from './Paper';\n\nexport const MAX_COLUMNS = 12;\nexport const COLUMNS = [12, 12, 6, 4, 3, 3, 2, 2, 2, 2, 2, 2, 1];\n\nconst useStyles = makeStyles(theme => ({\n collapseContainer: {\n width: '100%',\n },\n container: {\n '&:focus': {\n outlineColor: theme.palette.highlight.hl1,\n outlineWidth: 2,\n outlineStyle: 'auto',\n paddingBottom: 16,\n },\n },\n}));\n\nexport const CollapseButtons = props => {\n const {\n items = [],\n action = () => {},\n nbColumns = 3,\n testId = 'collapseButton',\n isSecondLevelClikable,\n gridButtonsProps = {},\n breakpoint = theme => theme.breakpoints.down('md'),\n justify,\n textTransform = 'none',\n labelAccessor = R.prop('label'),\n accessibility,\n } = props;\n\n const classes = useStyles();\n const isMobileView = useMediaQuery(breakpoint);\n const [toggleId, setIsOpen] = useState(props.selectedItemId);\n const mapIndexed = R.addIndex(R.map);\n const collapseFactory =\n ({ action, isSecondLevelClikable, labelAccessor, testId }) =>\n ({ toggleId, id, values, isMobileView }) => (\n <Collapse\n key={id}\n in={toggleId === id}\n timeout=\"auto\"\n unmountOnExit\n className={classes.collapseContainer}\n >\n <Paper elevation={10} isMobileView={isMobileView}>\n {mapIndexed(\n (item, index) => (\n <Item\n key={`${index}-${R.prop('id')(item)}`}\n testId={`${testId}_${id}_value_${R.prop('id')(item)}`}\n parentId={id}\n item={item}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n />\n ),\n values,\n )}\n </Paper>\n </Collapse>\n );\n const collapse = collapseFactory({ action, isSecondLevelClikable, labelAccessor, testId });\n\n return (\n <Grid\n container\n spacing={2}\n data-testid={testId}\n justifyContent={justify}\n className={cx({ [classes.container]: accessibility })}\n tabIndex={0}\n >\n {mapIndexed(({ id, label, values = [] }, index) => (\n <Grid\n item\n xs={12}\n sm={12}\n md={R.nth(nbColumns)(COLUMNS)}\n {...gridButtonsProps}\n key={`${index}::${id}`}\n >\n <Typography variant=\"h3\">\n <ToggleButton\n textTransform={textTransform}\n label={label}\n tabIndex={toggleId ? 1 : 0}\n isOpen={toggleId === id}\n toggle={() => setIsOpen(id === toggleId ? null : id)}\n testId={`${testId}_${id}`}\n id={id}\n />\n {isMobileView && collapse({ toggleId, id, values, isMobileView })}\n </Typography>\n </Grid>\n ))(items)}\n {!isMobileView &&\n R.map(({ id, values = [] }) => collapse({ toggleId, id, values, isMobileView }), items)}\n </Grid>\n );\n};\n"],"names":["useStyles","action","isSecondLevelClikable","labelAccessor","testId","toggleId","isMobileView","Paper","Typography"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CollapseButtons.js","sources":["../../src/ToggleButton/ToggleButton.jsx","../../src/CollapseButtons/Item.jsx","../../src/CollapseButtons/Paper.jsx","../../src/CollapseButtons/CollapseSection.jsx","../../src/CollapseButtons/CollapseButtons.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst useStyles = makeStyles(theme => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n return {\n root: {\n minHeight: '43px',\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(0.75, 2, 0.5, 2),\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor:\n R.path(['palette', 'button', 'mainOpacity'], theme) || theme.palette.primary.main,\n display: 'flex',\n justifyContent: 'space-between',\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n },\n label: {\n textAlign: 'left',\n fontSize: '0.9375rem',\n lineHeight: '1.0',\n },\n selected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n };\n});\n\nexport const ToggleButton = ({\n isOpen,\n label,\n toggle,\n testId,\n tabIndex = 0,\n textTransform = 'capitalize',\n}) => {\n const classes = useStyles();\n return (\n <Button\n aria-expanded={isOpen}\n aria-label={label}\n tabIndex={tabIndex}\n data-testid={testId}\n classes={{ root: classes.root, label: classes.label }}\n className={cx({ [classes.selected]: isOpen })}\n style={{ textTransform }}\n fullWidth\n variant=\"text\"\n onClick={R.is(Function)(toggle) ? toggle : null}\n >\n {label}\n {isOpen ? <KeyboardArrowUp /> : <KeyboardArrowDown />}\n </Button>\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { Typography } from '@mui/material';\n\nconst useStyles = makeStyles(theme => ({\n paperItem: {\n alignItems: 'baseline',\n },\n itemTitle: {\n ...theme.typography.body2,\n color: theme.palette.primary.main,\n },\n button: {\n '&:hover': {\n backgroundColor:\n R.path(['palette', 'tertiary', 'light'])(theme) || theme.palette.secondary.light,\n },\n padding: theme.spacing(1.25),\n textAlign: 'left',\n textTransform: 'none',\n justifyContent: 'flex-start',\n display: 'flex',\n },\n itemSubtitle: {\n ...theme.typography.body1,\n display: 'flex',\n flexDirection: 'column',\n color: theme.palette.grey[800],\n },\n itemSubtitleLink: {\n ...theme.typography.body1,\n color: theme.palette.grey[800],\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n svg: {\n color: theme.palette.grey[600],\n fontSize: '1rem',\n marginRight: theme.spacing(0.5),\n marginTop: theme.spacing(0.25),\n marginBottom: 'auto',\n },\n}));\n\nconst Item = ({ parentId, item, action, testId, isSecondLevelClikable, labelAccessor }) => {\n const classes = useStyles();\n const mapIndexed = R.addIndex(R.map);\n return (\n <Grid className={classes.paperItem}>\n <Typography variant=\"h4\">\n <Button\n aria-label={R.prop('label')(item)}\n className={classes.button}\n fullWidth\n data-testid={testId}\n role=\"link\"\n onClick={() => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, R.prop('id')(item));\n }}\n tabIndex={0}\n >\n <SvgIcon className={classes.svg}>\n <path d={R.prop('svgPath')(item)} />\n </SvgIcon>\n <Grid container item xs={12} direction=\"column\">\n <span className={classes.itemTitle}>{labelAccessor(item, parentId)}</span>\n <span className={classes.itemSubtitle}>\n {mapIndexed((subtopic, index) => {\n if (R.not(R.is(Object)(subtopic))) return subtopic;\n if (R.not(isSecondLevelClikable)) return labelAccessor(subtopic, parentId);\n const id = R.prop('id')(subtopic);\n return (\n <Typography variant=\"h5\" key={`${id}::${index}`}>\n <Link\n className={classes.itemSubtitleLink}\n role=\"link\"\n onClick={e => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }\n }}\n tabIndex={0}\n underline=\"none\"\n style={{ display: 'list-item' }}\n >\n {labelAccessor(subtopic, parentId)}\n </Link>\n </Typography>\n );\n })(\n R.pipe(\n R.propOr([], 'subtopics'),\n R.ifElse(R.always(isSecondLevelClikable), R.identity, R.intersperse(' • ')),\n )(item),\n )}\n </span>\n </Grid>\n </Button>\n </Typography>\n </Grid>\n );\n};\n\nItem.propTypes = {\n parentId: PropTypes.string,\n testId: PropTypes.string,\n item: PropTypes.object,\n action: PropTypes.func,\n isSecondLevelClikable: PropTypes.bool,\n labelAccessor: PropTypes.func,\n};\n\nexport default Item;\n","import React from 'react';\nimport Paper from '@mui/material/Paper';\nimport Grid from '@mui/material/Grid';\n\nconst CustomPaper = ({ isMobileView, children, onClose }) => {\n return (\n <Paper\n onKeyDown={e => {\n if (e.key === 'Escape' && onClose) onClose();\n }}\n sx={{\n padding: 2.5, // Multiplies by theme.spacing (2.5 * 8px = 20px)\n margin: 1.25, // Multiplies by theme.spacing (1.25 * 8px = 10px)\n borderRadius: 'unset',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n columnCount: 'unset',\n }),\n }}\n >\n <Grid\n sx={{\n columnCount: isMobileView ? 'unset' : 3,\n columnFill: 'balance',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n }),\n }}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n\nexport default CustomPaper;\n","import React from 'react';\nimport Collapse from '@mui/material/Collapse';\nimport Item from './Item';\nimport Paper from './Paper';\n\nconst CollapseSection = ({\n id,\n toggleId,\n values = [],\n isMobileView,\n action,\n isSecondLevelClikable,\n labelAccessor,\n testId,\n}) => {\n const isOpen = toggleId === id;\n\n return (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit sx={{ width: '100%' }}>\n <Paper elevation={10} isMobileView={isMobileView}>\n {values.map((item, index) => {\n const itemId = item?.id ?? index;\n return (\n <Item\n key={`${index}-${itemId}`}\n testId={`${testId}_${id}_value_${itemId}`}\n parentId={id}\n item={item}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n />\n );\n })}\n </Paper>\n </Collapse>\n );\n};\n\n// Optimizes re-rendering cycles\nexport default React.memo(CollapseSection);\n","import React, { useState, useCallback } from 'react';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { ToggleButton } from '../ToggleButton/ToggleButton';\nimport CollapseSection from './CollapseSection';\n\nexport const MAX_COLUMNS = 12;\nexport const COLUMNS = [12, 12, 6, 4, 3, 3, 2, 2, 2, 2, 2, 2, 1];\n\nexport const CollapseButtons = ({\n items = [],\n action = () => {},\n nbColumns = 3,\n testId = 'collapseButton',\n isSecondLevelClikable,\n gridButtonsProps = {},\n breakpoint = theme => theme.breakpoints.down('md'),\n justify,\n textTransform = 'none',\n labelAccessor = obj => obj?.label,\n accessibility,\n selectedItemId,\n}) => {\n const isMobileView = useMediaQuery(breakpoint);\n const [toggleId, setIsOpen] = useState(selectedItemId);\n\n // Safe fallback translation of R.nth(nbColumns)(COLUMNS)\n const mdGridSize = COLUMNS[nbColumns] ?? 3;\n\n // Optimize callback references\n const handleToggle = useCallback(id => {\n setIsOpen(prevId => (prevId === id ? null : id));\n }, []);\n\n return (\n <Grid\n container\n data-testid={testId}\n justifyContent={justify}\n tabIndex={0}\n sx={{\n ...(accessibility && {\n '&:focus': {\n outlineColor: 'highlight.hl1', // Safely pulls theme.palette.highlight.hl1 automatically\n outlineWidth: 2,\n outlineStyle: 'auto',\n paddingBottom: 2, // 2 * 8px = 16px\n },\n }),\n }}\n >\n {items.map(({ id, label, values = [] }, index) => (\n <Grid\n item\n xs={12}\n sm={12}\n md={mdGridSize}\n {...gridButtonsProps}\n key={`${index}::${id}`}\n sx={{\n p: 1, // Adds 8px padding evenly inside every item box without layout shifting\n }}\n >\n <Typography variant=\"h3\">\n <ToggleButton\n textTransform={textTransform}\n label={label}\n tabIndex={toggleId ? 1 : 0}\n isOpen={toggleId === id}\n toggle={() => handleToggle(id)}\n testId={`${testId}_${id}`}\n id={id}\n />\n {isMobileView && (\n <CollapseSection\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n )}\n </Typography>\n </Grid>\n ))}\n\n {!isMobileView &&\n items.map(({ id, values = [] }) => (\n <CollapseSection\n key={`desktop-collapse-${id}`}\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n ))}\n </Grid>\n );\n};\n"],"names":["useStyles","Paper","Typography","CollapseSection"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleTree.js","sources":["../../src/CollapsibleTree/Collapse.jsx","../../src/CollapsibleTree/CollapsibleTree.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { pathOr } from 'ramda';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Collapse from '@mui/material/Collapse';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst VARIANT_ICON = 'icon';\nexport const VARIANT_BOLD = 'bold';\n\nconst useStyles = makeStyles(theme => ({\n buttonExpand: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n [`button${VARIANT_ICON}`]: {\n color: theme.palette.primary.main,\n backgroundColor: 'rgba(24, 32, 38, 0.04)',\n margin: theme.spacing(1, 0),\n },\n [`button${VARIANT_BOLD}`]: {\n marginBottom: theme.spacing(1),\n padding: theme.spacing(0.5, 0, 1, 0),\n '&:hover': {\n backgroundColor: 'unset',\n },\n ...pathOr({}, ['mixins', 'collapsibleTree', 'buttonSublevel'], theme),\n },\n [`collapsibleContainer${VARIANT_BOLD}`]: {\n borderTop: '2px solid black',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n}));\n\nconst CollapseComponent = ({ label, isOpen, children, variant = VARIANT_ICON, level }) => {\n const classes = useStyles();\n const theme = useTheme();\n const [open, setOpen] = React.useState(isOpen);\n\n useEffect(() => setOpen(isOpen), [isOpen]);\n\n return (\n <div\n className={cx(classes[`collapsibleContainer${variant}`])}\n style={{\n marginRight: theme.spacing(level * 2),\n marginLeft: theme.spacing(level * 2),\n }}\n >\n <Button\n className={cx(classes.buttonExpand, classes[`button${variant}`])}\n onClick={() => setOpen(!open)}\n fullWidth\n >\n {label}\n {open ? <KeyboardArrowUp color=\"primary\" /> : <KeyboardArrowDown color=\"primary\" />}\n </Button>\n <Collapse in={open} timeout=\"auto\">\n {children}\n </Collapse>\n </div>\n );\n};\n\nCollapseComponent.propTypes = {\n label: PropTypes.string,\n isOpen: PropTypes.bool,\n children: PropTypes.node,\n variant: PropTypes.oneOf([VARIANT_ICON, VARIANT_BOLD]),\n level: PropTypes.number,\n};\n\nexport default CollapseComponent;\n","import React, { useState, Fragment, useEffect } from 'react';\nimport * as R from 'ramda';\nimport Container from '@mui/material/Container';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Typography from '@mui/material/Typography';\nimport Divider from '@mui/material/Divider';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport { Info, KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Grid from '@mui/material/Grid';\nimport Collapse, { VARIANT_BOLD } from './Collapse';\nimport cx from 'classnames';\nimport { NoData } from '../NoData/NoData';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n title: {\n fontWeight: 'bold',\n ...R.pathOr({}, ['mixins', 'collapsibleTree', 'title'], theme),\n },\n divider: {\n marginBottom: theme.spacing(2),\n },\n spacingValue: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n overflow: {\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n },\n}));\n\nexport const CollapsibleTree = ({\n data = [],\n defaultDepthLevel = 1,\n isLoading,\n children,\n labels,\n testId = 'collapsible-tree',\n valueHandler,\n icon,\n onClick,\n}) => {\n const classes = useStyles();\n const [depthLevel, setDepthLevel] = useState(defaultDepthLevel);\n\n useEffect(() => setDepthLevel(defaultDepthLevel), [defaultDepthLevel]);\n\n if (isLoading) {\n return (\n <Grid container item justifyContent=\"center\">\n <CircularProgress />\n </Grid>\n );\n }\n\n const handleCollapse = isAllOpen => {\n if (isAllOpen) return setDepthLevel(undefined);\n return setDepthLevel(defaultDepthLevel);\n };\n\n const getValue = ({ value, children = [], ...handlerProps }) => {\n if ((R.isNil(value) || R.isEmpty(value)) && R.isEmpty(children)) {\n return R.prop('noValue', labels);\n }\n if (R.is(Function, valueHandler)) {\n return valueHandler({ value, ...handlerProps });\n }\n return value;\n };\n\n const isAllOpen = depthLevel >= defaultDepthLevel;\n const buttonAllOpenLabel = isAllOpen\n ? R.prop('collapseAll', labels)\n : R.prop('expandAll', labels);\n\n return (\n <Fragment>\n <Container disableGutters data-testid={testId} className={classes.container}>\n <Button\n aria-label={buttonAllOpenLabel}\n color=\"primary\"\n endIcon={\n isAllOpen ? (\n <KeyboardArrowUp color=\"primary\" />\n ) : (\n <KeyboardArrowDown color=\"primary\" />\n )\n }\n onClick={() => handleCollapse(isAllOpen)}\n tabIndex={0}\n >\n {buttonAllOpenLabel}\n </Button>\n <div>\n {children}\n <IconButton color=\"primary\" onClick={onClick} size=\"large\">\n {icon}\n </IconButton>\n </div>\n </Container>\n {R.isEmpty(data) && (\n <NoData\n message={R.prop('noData', labels) || 'no data'}\n icon={<Info color=\"primary\" fontSize=\"large\" />}\n />\n )}\n {R.map(({ id, label, children = [] }) => {\n return (\n <Fragment key={id}>\n <Divider className={classes.divider} />\n <Typography variant=\"h5\" className={classes.title}>\n {label}\n </Typography>\n {R.map(({ id, label, children, value, handlerProps = {} }) => {\n return (\n <Collapse key={id} level={0} label={label} isOpen={depthLevel >= 0}>\n <Typography\n className={cx(classes.spacingValue, classes.overflow)}\n variant=\"body2\"\n >\n {getValue({ value, children, ...handlerProps })}\n </Typography>\n {children &&\n R.map(({ id, label, value, handlerProps = {} }) => {\n return (\n <Collapse\n key={id}\n level={1}\n variant={VARIANT_BOLD}\n label={label}\n isOpen={depthLevel >= 1}\n >\n <Typography variant=\"body2\" className={classes.overflow}>\n {getValue({ value, ...handlerProps })}\n </Typography>\n </Collapse>\n );\n }, children)}\n </Collapse>\n );\n }, children)}\n </Fragment>\n );\n }, data)}\n </Fragment>\n );\n};\n"],"names":["useStyles","isAllOpen","children","id","label","Collapse","value","handlerProps"],"mappings":";;;;;;;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAe,MAAA;AACd,MAAM,YAAA,GAAe,MAAA;AAE5B,MAAMA,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,YAAA,EAAc;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,CAAC,CAAA,MAAA,EAAS,YAAY,CAAA,CAAE,GAAG;AAAA,IACzB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,IAC7B,eAAA,EAAiB,wBAAA;AAAA,IACjB,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC;AAAA,GAC5B;AAAA,EACA,CAAC,CAAA,MAAA,EAAS,YAAY,CAAA,CAAE,GAAG;AAAA,IACzB,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC7B,SAAS,KAAA,CAAM,OAAA,CAAQ,GAAA,EAAK,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,IACnC,SAAA,EAAW;AAAA,MACT,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA,GAAG,OAAO,EAAC,EAAG,CAAC,QAAA,EAAU,iBAAA,EAAmB,gBAAgB,CAAA,EAAG,KAAK;AAAA,GACtE;AAAA,EACA,CAAC,CAAA,oBAAA,EAAuB,YAAY,CAAA,CAAE,GAAG;AAAA,IACvC,SAAA,EAAW,iBAAA;AAAA,IACX,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC1B,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA;AAEjC,CAAA,CAAE,CAAA;AAEF,MAAM,iBAAA,GAAoB,CAAC,EAAE,KAAA,EAAO,QAAQ,QAAA,EAAU,OAAA,GAAU,YAAA,EAAc,KAAA,EAAM,KAAM;AACxF,EAAA,MAAM,UAAUA,WAAA,EAAU;AAC1B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,KAAA,CAAM,SAAS,MAAM,CAAA;AAE7C,EAAA,SAAA,CAAU,MAAM,OAAA,CAAQ,MAAM,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEzC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,EAAA,CAAG,OAAA,CAAQ,CAAA,oBAAA,EAAuB,OAAO,EAAE,CAAC,CAAA;AAAA,MACvD,KAAA,EAAO;AAAA,QACL,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,KAAA,GAAQ,CAAC,CAAA;AAAA,QACpC,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,KAAA,GAAQ,CAAC;AAAA,OACrC;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,GAAG,OAAA,CAAQ,YAAA,EAAc,QAAQ,CAAA,MAAA,EAAS,OAAO,EAAE,CAAC,CAAA;AAAA,YAC/D,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,YAC5B,SAAA,EAAS,IAAA;AAAA,YAER,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cACA,IAAA,uBAAQ,eAAA,EAAA,EAAgB,KAAA,EAAM,WAAU,CAAA,mBAAK,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAM,SAAA,EAAU;AAAA;AAAA;AAAA,SACnF;AAAA,4BACC,QAAA,EAAA,EAAS,EAAA,EAAI,IAAA,EAAM,OAAA,EAAQ,QACzB,QAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,iBAAA,CAAkB,SAAA,GAAY;AAAA,EAC5B,OAAO,SAAA,CAAU,MAAA;AAAA,EACjB,QAAQ,SAAA,CAAU,IAAA;AAAA,EAClB,UAAU,SAAA,CAAU,IAAA;AAAA,EACpB,SAAS,SAAA,CAAU,KAAA,CAAM,CAAC,YAAA,EAAc,YAAY,CAAC,CAAA;AAAA,EACrD,OAAO,SAAA,CAAU;AACnB,CAAA;;AC3DA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,GAAG,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,CAAC,QAAA,EAAU,iBAAA,EAAmB,OAAO,CAAA,EAAG,KAAK;AAAA,GAC/D;AAAA,EACA,OAAA,EAAS;AAAA,IACP,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GAC/B;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC3B,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC5B,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GAC/B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,UAAA;AAAA,IACZ,YAAA,EAAc;AAAA;AAElB,CAAA,CAAE,CAAA;AAEK,MAAM,kBAAkB,CAAC;AAAA,EAC9B,OAAO,EAAC;AAAA,EACR,iBAAA,GAAoB,CAAA;AAAA,EACpB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA,GAAS,kBAAA;AAAA,EACT,YAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,iBAAiB,CAAA;AAE9D,EAAA,SAAA,CAAU,MAAM,aAAA,CAAc,iBAAiB,CAAA,EAAG,CAAC,iBAAiB,CAAC,CAAA;AAErE,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,IAAA,EAAI,MAAC,cAAA,EAAe,QAAA,EAClC,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA,EACpB,CAAA;AAAA,EAEJ;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAAC,UAAAA,KAAa;AAClC,IAAA,IAAIA,UAAAA,EAAW,OAAO,aAAA,CAAc,MAAS,CAAA;AAC7C,IAAA,OAAO,cAAc,iBAAiB,CAAA;AAAA,EACxC,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,CAAC,EAAE,KAAA,EAAO,QAAA,EAAAC,YAAW,EAAC,EAAG,GAAG,YAAA,EAAa,KAAM;AAC9D,IAAA,IAAA,CAAK,CAAA,CAAE,KAAA,CAAM,KAAK,CAAA,IAAK,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,KAAM,CAAA,CAAE,OAAA,CAAQA,SAAQ,CAAA,EAAG;AAC/D,MAAA,OAAO,CAAA,CAAE,IAAA,CAAK,SAAA,EAAW,MAAM,CAAA;AAAA,IACjC;AACA,IAAA,IAAI,CAAA,CAAE,EAAA,CAAG,QAAA,EAAU,YAAY,CAAA,EAAG;AAChC,MAAA,OAAO,YAAA,CAAa,EAAE,KAAA,EAAO,GAAG,cAAc,CAAA;AAAA,IAChD;AACA,IAAA,OAAO,KAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,YAAY,UAAA,IAAc,iBAAA;AAChC,EAAA,MAAM,kBAAA,GAAqB,SAAA,GACvB,CAAA,CAAE,IAAA,CAAK,aAAA,EAAe,MAAM,CAAA,GAC5B,CAAA,CAAE,IAAA,CAAK,WAAA,EAAa,MAAM,CAAA;AAE9B,EAAA,4BACG,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,aAAU,cAAA,EAAc,IAAA,EAAC,eAAa,MAAA,EAAQ,SAAA,EAAW,QAAQ,SAAA,EAChE,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,YAAA,EAAY,kBAAA;AAAA,UACZ,KAAA,EAAM,SAAA;AAAA,UACN,OAAA,EACE,SAAA,mBACE,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAM,WAAU,CAAA,mBAEjC,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAM,SAAA,EAAU,CAAA;AAAA,UAGvC,OAAA,EAAS,MAAM,cAAA,CAAe,SAAS,CAAA;AAAA,UACvC,QAAA,EAAU,CAAA;AAAA,UAET,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,2BACC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,4BACA,UAAA,EAAA,EAAW,KAAA,EAAM,WAAU,OAAA,EAAkB,IAAA,EAAK,SAChD,QAAA,EAAA,IAAA,EACH;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IACC,CAAA,CAAE,OAAA,CAAQ,IAAI,CAAA,oBACb,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,CAAA,CAAE,IAAA,CAAK,QAAA,EAAU,MAAM,CAAA,IAAK,SAAA;AAAA,QACrC,sBAAM,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAM,SAAA,EAAU,UAAS,OAAA,EAAQ;AAAA;AAAA,KAC/C;AAAA,IAED,CAAA,CAAE,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,OAAO,QAAA,EAAAA,SAAAA,GAAW,EAAC,EAAE,KAAM;AACvC,MAAA,4BACG,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAW,OAAA,CAAQ,OAAA,EAAS,CAAA;AAAA,4BACpC,UAAA,EAAA,EAAW,OAAA,EAAQ,MAAK,SAAA,EAAW,OAAA,CAAQ,OACzC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QACC,CAAA,CAAE,GAAA,CAAI,CAAC,EAAE,IAAAC,GAAAA,EAAI,KAAA,EAAAC,MAAAA,EAAO,QAAA,EAAAF,SAAAA,EAAU,KAAA,EAAO,YAAA,GAAe,IAAG,KAAM;AAC5D,UAAA,uBACE,IAAA,CAACG,qBAAkB,KAAA,EAAO,CAAA,EAAG,OAAOD,MAAAA,EAAO,MAAA,EAAQ,cAAc,CAAA,EAC/D,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,YAAA,EAAc,QAAQ,QAAQ,CAAA;AAAA,gBACpD,OAAA,EAAQ,OAAA;AAAA,gBAEP,mBAAS,EAAE,KAAA,EAAO,UAAAF,SAAAA,EAAU,GAAG,cAAc;AAAA;AAAA,aAChD;AAAA,YACCA,SAAAA,IACC,CAAA,CAAE,GAAA,CAAI,CAAC,EAAE,EAAA,EAAAC,GAAAA,EAAI,KAAA,EAAAC,MAAAA,EAAO,OAAAE,MAAAA,EAAO,YAAA,EAAAC,aAAAA,GAAe,IAAG,KAAM;AACjD,cAAA,uBACE,GAAA;AAAA,gBAACF,iBAAA;AAAA,gBAAA;AAAA,kBAEC,KAAA,EAAO,CAAA;AAAA,kBACP,OAAA,EAAS,YAAA;AAAA,kBACT,KAAA,EAAOD,MAAAA;AAAA,kBACP,QAAQ,UAAA,IAAc,CAAA;AAAA,kBAEtB,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,OAAA,EAAQ,WAAW,OAAA,CAAQ,QAAA,EAC5C,QAAA,EAAA,QAAA,CAAS,EAAE,KAAA,EAAAE,MAAAA,EAAO,GAAGC,aAAAA,EAAc,CAAA,EACtC;AAAA,iBAAA;AAAA,gBARKJ;AAAA,eASP;AAAA,YAEJ,GAAGD,SAAQ;AAAA,WAAA,EAAA,EAtBAC,GAuBf,CAAA;AAAA,QAEJ,GAAGD,SAAQ;AAAA,OAAA,EAAA,EAhCE,EAiCf,CAAA;AAAA,IAEJ,GAAG,IAAI;AAAA,GAAA,EACT,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"CollapsibleTree.js","sources":["../../src/CollapsibleTree/Collapse.jsx","../../src/CollapsibleTree/CollapsibleTree.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { pathOr } from 'ramda';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Collapse from '@mui/material/Collapse';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst VARIANT_ICON = 'icon';\nexport const VARIANT_BOLD = 'bold';\n\nconst useStyles = makeStyles(theme => ({\n buttonExpand: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n [`button${VARIANT_ICON}`]: {\n color: theme.palette.primary.main,\n backgroundColor: 'rgba(24, 32, 38, 0.04)',\n margin: theme.spacing(1, 0),\n },\n [`button${VARIANT_BOLD}`]: {\n marginBottom: theme.spacing(1),\n padding: theme.spacing(0.5, 0, 1, 0),\n '&:hover': {\n backgroundColor: 'unset',\n },\n ...pathOr({}, ['mixins', 'collapsibleTree', 'buttonSublevel'], theme),\n },\n [`collapsibleContainer${VARIANT_BOLD}`]: {\n borderTop: '2px solid black',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n}));\n\nconst CollapseComponent = ({ label, isOpen, children, variant = VARIANT_ICON, level }) => {\n const classes = useStyles();\n const theme = useTheme();\n const [open, setOpen] = React.useState(isOpen);\n\n useEffect(() => setOpen(isOpen), [isOpen]);\n\n return (\n <div\n className={cx(classes[`collapsibleContainer${variant}`])}\n style={{\n marginRight: theme.spacing(level * 2),\n marginLeft: theme.spacing(level * 2),\n }}\n >\n <Button\n className={cx(classes.buttonExpand, classes[`button${variant}`])}\n onClick={() => setOpen(!open)}\n fullWidth\n >\n {label}\n {open ? <KeyboardArrowUp color=\"primary\" /> : <KeyboardArrowDown color=\"primary\" />}\n </Button>\n <Collapse in={open} timeout=\"auto\">\n {children}\n </Collapse>\n </div>\n );\n};\n\nCollapseComponent.propTypes = {\n label: PropTypes.string,\n isOpen: PropTypes.bool,\n children: PropTypes.node,\n variant: PropTypes.oneOf([VARIANT_ICON, VARIANT_BOLD]),\n level: PropTypes.number,\n};\n\nexport default CollapseComponent;\n","import React, { useState, Fragment, useEffect } from 'react';\nimport * as R from 'ramda';\nimport Container from '@mui/material/Container';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Typography from '@mui/material/Typography';\nimport Divider from '@mui/material/Divider';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport { Info, KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Grid from '@mui/material/Grid';\nimport Collapse, { VARIANT_BOLD } from './Collapse';\nimport cx from 'classnames';\nimport { NoData } from '../NoData/NoData';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n title: {\n fontWeight: 'bold',\n ...R.pathOr({}, ['mixins', 'collapsibleTree', 'title'], theme),\n },\n divider: {\n marginBottom: theme.spacing(2),\n },\n spacingValue: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n overflow: {\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n },\n}));\n\nexport const CollapsibleTree = ({\n data = [],\n defaultDepthLevel = 1,\n isLoading,\n children,\n labels,\n testId = 'collapsible-tree',\n valueHandler,\n icon,\n onClick,\n}) => {\n const classes = useStyles();\n const [depthLevel, setDepthLevel] = useState(defaultDepthLevel);\n\n useEffect(() => setDepthLevel(defaultDepthLevel), [defaultDepthLevel]);\n\n if (isLoading) {\n return (\n <Grid container item justifyContent=\"center\">\n <CircularProgress />\n </Grid>\n );\n }\n\n const handleCollapse = isAllOpen => {\n if (isAllOpen) return setDepthLevel(undefined);\n return setDepthLevel(defaultDepthLevel);\n };\n\n const getValue = ({ value, children = [], ...handlerProps }) => {\n if ((R.isNil(value) || R.isEmpty(value)) && R.isEmpty(children)) {\n return R.prop('noValue', labels);\n }\n if (R.is(Function, valueHandler)) {\n return valueHandler({ value, ...handlerProps });\n }\n return value;\n };\n\n const isAllOpen = depthLevel >= defaultDepthLevel;\n const buttonAllOpenLabel = isAllOpen\n ? R.prop('collapseAll', labels)\n : R.prop('expandAll', labels);\n\n return (\n <Fragment>\n <Container disableGutters data-testid={testId} className={classes.container}>\n <Button\n aria-label={buttonAllOpenLabel}\n color=\"primary\"\n endIcon={\n isAllOpen ? <KeyboardArrowUp color=\"primary\" /> : <KeyboardArrowDown color=\"primary\" />\n }\n onClick={() => handleCollapse(isAllOpen)}\n tabIndex={0}\n >\n {buttonAllOpenLabel}\n </Button>\n <div>\n {children}\n <IconButton color=\"primary\" onClick={onClick} size=\"large\">\n {icon}\n </IconButton>\n </div>\n </Container>\n {R.isEmpty(data) && (\n <NoData\n message={R.prop('noData', labels) || 'no data'}\n icon={<Info color=\"primary\" fontSize=\"large\" />}\n />\n )}\n {R.map(({ id, label, children = [] }) => {\n return (\n <Fragment key={id}>\n <Divider className={classes.divider} />\n <Typography variant=\"h5\" className={classes.title}>\n {label}\n </Typography>\n {R.map(({ id, label, children, value, handlerProps = {} }) => {\n return (\n <Collapse key={id} level={0} label={label} isOpen={depthLevel >= 0}>\n <Typography\n className={cx(classes.spacingValue, classes.overflow)}\n variant=\"body2\"\n >\n {getValue({ value, children, ...handlerProps })}\n </Typography>\n {children &&\n R.map(({ id, label, value, handlerProps = {} }) => {\n return (\n <Collapse\n key={id}\n level={1}\n variant={VARIANT_BOLD}\n label={label}\n isOpen={depthLevel >= 1}\n >\n <Typography variant=\"body2\" className={classes.overflow}>\n {getValue({ value, ...handlerProps })}\n </Typography>\n </Collapse>\n );\n }, children)}\n </Collapse>\n );\n }, children)}\n </Fragment>\n );\n }, data)}\n </Fragment>\n );\n};\n"],"names":["useStyles","isAllOpen","children","id","label","Collapse","value","handlerProps"],"mappings":"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"}
|