@sis-cc/dotstatsuite-visions 13.8.0 → 13.10.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.
@@ -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={\n isRtl ? <NavigateBefore fontSize=\"small\" /> : <NavigateNext fontSize=\"small\" />\n }\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,EACE,KAAA,mBAAQ,GAAA,CAAC,cAAA,EAAA,EAAe,QAAA,EAAS,SAAQ,CAAA,mBAAK,GAAA,CAAC,YAAA,EAAA,EAAa,QAAA,EAAS,OAAA,EAAQ,CAAA;AAAA,MAE/E,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;;;;"}
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;;;;"}
@@ -28,23 +28,21 @@ const useStyles = makeStyles((theme) => {
28
28
  }
29
29
  };
30
30
  });
31
- const Button = React.forwardRef(
32
- function Button2({ className, selected, alternative = "default", ...props }, ref) {
33
- const classes = useStyles();
34
- return /* @__PURE__ */ jsx(
35
- Button$1,
36
- {
37
- className: cx(className, R.prop(`${alternative}Root`)(classes), {
38
- [R.prop(`${alternative}Selected`)(classes)]: selected
39
- }),
40
- "aria-pressed": selected,
41
- ref,
42
- ...R.omit(["indicator", "textColor", "selectionFollowsFocus"], props),
43
- children: props.children
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(\n function Button({ className, selected, alternative = 'default', ...props }, ref) {\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);\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,SAAS,KAAA,CAAM,UAAA;AAAA,EAC1B,SAASA,OAAAA,CAAO,EAAE,SAAA,EAAW,QAAA,EAAU,cAAc,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,EAAK;AAC/E,IAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,IAAA,uBACE,GAAA;AAAA,MAACC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,CAAA,CAAE,IAAA,CAAK,GAAG,WAAW,CAAA,IAAA,CAAM,CAAA,CAAE,OAAO,CAAA,EAAG;AAAA,UAC9D,CAAC,EAAE,IAAA,CAAK,CAAA,EAAG,WAAW,CAAA,QAAA,CAAU,CAAA,CAAE,OAAO,CAAC,GAAG;AAAA,SAC9C,CAAA;AAAA,QACD,cAAA,EAAc,QAAA;AAAA,QACd,GAAA;AAAA,QACC,GAAG,EAAE,IAAA,CAAK,CAAC,aAAa,WAAA,EAAa,uBAAuB,GAAG,KAAK,CAAA;AAAA,QAEpE,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,KACT;AAAA,EAEJ;AACF;;;;"}
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$3 = makeStyles((theme) => {
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$3();
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$2 = makeStyles((theme) => ({
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$2();
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
- classes: {
206
- root: cx(classes.paper, { [classes.mobileView]: isMobileView })
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(Grid, { className: cx(classes.view, { [classes.mobileView]: isMobileView }), children })
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
- CustomPaper.propTypes = {
213
- isMobileView: PropTypes.bool,
214
- children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
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 useStyles = makeStyles((theme) => ({
220
- collapseContainer: {
221
- width: "100%"
249
+ const CollapseButtons = ({
250
+ items = [],
251
+ action = () => {
222
252
  },
223
- container: {
224
- "&:focus": {
225
- outlineColor: theme.palette.highlight.hl1,
226
- outlineWidth: 2,
227
- outlineStyle: "auto",
228
- paddingBottom: 16
229
- }
230
- }
231
- }));
232
- const CollapseButtons = (props) => {
233
- const {
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(props.selectedItemId);
250
- const mapIndexed = R.addIndex(R.map);
251
- const collapseFactory = ({ action: action2, isSecondLevelClikable: isSecondLevelClikable2, labelAccessor: labelAccessor2, testId: testId2 }) => ({ toggleId: toggleId2, id, values, isMobileView: isMobileView2 }) => /* @__PURE__ */ jsx(
252
- Collapse,
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
- mapIndexed(({ id, label, values = [] }, index) => /* @__PURE__ */ createElement(
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: R.nth(nbColumns)(COLUMNS),
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: () => setIsOpen(id === toggleId ? null : id),
312
+ toggle: () => handleToggle(id),
306
313
  testId: `${testId}_${id}`,
307
314
  id
308
315
  }
309
316
  ),
310
- isMobileView && collapse({ toggleId, id, values, 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
- ))(items),
313
- !isMobileView && R.map(({ id, values = [] }) => collapse({ toggleId, id, values, isMobileView }), items)
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":"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"}
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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"}