@sis-cc/dotstatsuite-visions 13.9.0 → 14.0.1
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/Alert/Alert.js +5 -3
- package/dist/Alert/Alert.js.map +1 -1
- package/dist/ApiQueries/ApiQueries.js +2 -1
- package/dist/ApiQueries/ApiQueries.js.map +1 -1
- package/dist/AuthDialog/AuthDialog.js.map +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.js +2 -1
- package/dist/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/Button/Button.js.map +1 -1
- package/dist/ChartsConfig/ChartsConfig.js +12 -7
- package/dist/ChartsConfig/ChartsConfig.js.map +1 -1
- package/dist/CollapseButtons/CollapseButtons.js +14 -8
- package/dist/CollapseButtons/CollapseButtons.js.map +1 -1
- package/dist/CollapsibleTree/CollapsibleTree.js +47 -29
- package/dist/CollapsibleTree/CollapsibleTree.js.map +1 -1
- package/dist/Contact/Contact.js +6 -5
- package/dist/Contact/Contact.js.map +1 -1
- package/dist/DataFooter/DataFooter.js +1 -1
- package/dist/DataFooter/DataFooter.js.map +1 -1
- package/dist/DataHeader/DataHeader.js +8 -6
- package/dist/DataHeader/DataHeader.js.map +1 -1
- package/dist/Dataflow/Dataflow.js +6 -3
- package/dist/Dataflow/Dataflow.js.map +1 -1
- package/dist/DeleteAllChip/DeleteAllChip.js +1 -1
- package/dist/DynamicDrawer/DynamicDrawer.js +8 -9
- package/dist/DynamicDrawer/DynamicDrawer.js.map +1 -1
- package/dist/ExpansionPanel/ExpansionPanel.js +3 -2
- package/dist/ExpansionPanel/ExpansionPanel.js.map +1 -1
- package/dist/GroupedChips/GroupedChips.js +5 -4
- package/dist/GroupedChips/GroupedChips.js.map +1 -1
- package/dist/HierarchicalFilter/HierarchicalFilter.js +1 -1
- package/dist/HierarchicalFilter/HierarchicalFilter.js.map +1 -1
- package/dist/Icons/AccessibilityFilled.js.map +1 -1
- package/dist/Icons/AccessibilityOutlined.js.map +1 -1
- package/dist/Icons/AccountFilled.js.map +1 -1
- package/dist/Icons/AccountOutlined.js.map +1 -1
- package/dist/Icons/Api.js.map +1 -1
- package/dist/Icons/Asterisk.js.map +1 -1
- package/dist/Icons/Bar.js.map +1 -1
- package/dist/Icons/CopyContent.js.map +1 -1
- package/dist/Icons/Cross.js.map +1 -1
- package/dist/Icons/HSymbol.js.map +1 -1
- package/dist/Icons/Row.js.map +1 -1
- package/dist/Icons/Scatter.js.map +1 -1
- package/dist/Icons/StackedBar.js.map +1 -1
- package/dist/Icons/StackedRow.js.map +1 -1
- package/dist/Icons/Timeline.js.map +1 -1
- package/dist/Icons/VSymbol.js.map +1 -1
- package/dist/Input/Input.js.map +1 -1
- package/dist/InputNumber/InputNumber.js.map +1 -1
- package/dist/LabelDivider/LabelDivider.js.map +1 -1
- package/dist/Loading/Loading.js.map +1 -1
- package/dist/Logo/Logo.js +1 -1
- package/dist/Logo/Logo.js.map +1 -1
- package/dist/Mode/Mode.js +5 -4
- package/dist/Mode/Mode.js.map +1 -1
- package/dist/Pagination/Pagination.js +0 -1
- package/dist/Pagination/Pagination.js.map +1 -1
- package/dist/PeriodPicker/PeriodPicker.js +62 -61
- package/dist/PeriodPicker/PeriodPicker.js.map +1 -1
- package/dist/Select/Select.js +13 -11
- package/dist/Select/Select.js.map +1 -1
- package/dist/Share/Share.js +2 -1
- package/dist/Share/Share.js.map +1 -1
- package/dist/ShortUrls/ShortUrls.js.map +1 -1
- package/dist/SisccFooter/SisccFooter.js +30 -20
- package/dist/SisccFooter/SisccFooter.js.map +1 -1
- package/dist/Spotlight/Spotlight.js +8 -7
- package/dist/Spotlight/Spotlight.js.map +1 -1
- package/dist/TableFooter/TableFooter.js.map +1 -1
- package/dist/TableHeader/TableHeader.js.map +1 -1
- package/dist/TableHtml5/TableHtml5.js +25 -19
- package/dist/TableHtml5/TableHtml5.js.map +1 -1
- package/dist/TableLayout/TableLayout.js +9 -6
- package/dist/TableLayout/TableLayout.js.map +1 -1
- package/dist/TablePreview/TablePreview.js +17 -8
- package/dist/TablePreview/TablePreview.js.map +1 -1
- package/dist/Tag/Tag.js.map +1 -1
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/UserRightForm/UserRightForm.js.map +1 -1
- package/dist/VerticalButton/VerticalButton.js.map +1 -1
- package/dist/chunks/{CustomChip-CMYCIorJ.js → CustomChip-VonwGtLq.js} +7 -7
- package/dist/chunks/CustomChip-VonwGtLq.js.map +1 -0
- package/dist/chunks/{useKeybordEscapeHandler-DRsOrnwc.js → useKeybordEscapeHandler-DZZOPw7k.js} +2 -2
- package/dist/chunks/useKeybordEscapeHandler-DZZOPw7k.js.map +1 -0
- package/dist/chunks/utils-kslX1mzh.js.map +1 -1
- package/dist/chunks/with-input-DRWNlMdA.js.map +1 -1
- package/dist/chunks/{withSpotlight-ooTVUwmd.js → withSpotlight-Bqdm585G.js} +37 -37
- package/dist/chunks/withSpotlight-Bqdm585G.js.map +1 -0
- package/package.json +27 -31
- package/dist/chunks/CustomChip-CMYCIorJ.js.map +0 -1
- package/dist/chunks/useKeybordEscapeHandler-DRsOrnwc.js.map +0 -1
- package/dist/chunks/withSpotlight-ooTVUwmd.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
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
|
+
{"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 // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\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 // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\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 EMPTY_VALUES = [];\n\nconst CollapseSection = ({\n id,\n toggleId,\n values = EMPTY_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\nconst EMPTY_ITEMS = [];\nconst EMPTY_GRID_BUTTONS_PROPS = {};\nconst noop = () => {};\nconst defaultBreakpoint = (theme) => theme.breakpoints.down('md');\nconst defaultLabelAccessor = (obj) => obj?.label;\n\nexport const CollapseButtons = ({\n items = EMPTY_ITEMS,\n action = noop,\n nbColumns = 3,\n testId = 'collapseButton',\n isSecondLevelClikable,\n gridButtonsProps = EMPTY_GRID_BUTTONS_PROPS,\n breakpoint = defaultBreakpoint,\n justify,\n textTransform = 'none',\n labelAccessor = defaultLabelAccessor,\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 ? 0 : -1}\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":";;;;;;;;;;;;;;;;;AAOA,MAAMA,WAAA,GAAY,UAAA,CAAW,CAAC,KAAA,KAAU;AACtC,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;AACvF,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,MACJ,SAAA,EAAW,MAAA;AAAA,MACX,YAAA,EAAc,MAAM,KAAA,CAAM,YAAA;AAAA,MAC1B,SAAS,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,MACtC,OAAO,KAAA,CAAM,OAAA,CAAQ,gBAAgB,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAAA,MAC/D,eAAA,EACE,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,QAAA,EAAU,aAAa,CAAA,EAAG,KAAK,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,MAC/E,OAAA,EAAS,MAAA;AAAA,MACT,cAAA,EAAgB,eAAA;AAAA,MAChB,SAAA,EAAW;AAAA,QACT,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,MAAM,CAAA;AAAA,QAC3C,eAAA,EAAiB;AAAA;AACnB,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,SAAA,EAAW,MAAA;AAAA,MACX,QAAA,EAAU,WAAA;AAAA,MACV,UAAA,EAAY;AAAA,KACd;AAAA,IACA,QAAA,EAAU;AAAA,MACR,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,MAAM,CAAA;AAAA,MAC3C,eAAA,EAAiB;AAAA;AACnB,GACF;AACF,CAAC,CAAA;AAEM,MAAM,eAAe,CAAC;AAAA,EAC3B,MAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA,GAAW,CAAA;AAAA,EACX,aAAA,GAAgB;AAClB,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUA,WAAA,EAAU;AAC1B,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,eAAA,EAAe,MAAA;AAAA,MACf,YAAA,EAAY,KAAA;AAAA,MACZ,QAAA;AAAA,MACA,aAAA,EAAa,MAAA;AAAA,MACb,SAAS,EAAE,IAAA,EAAM,QAAQ,IAAA,EAAM,KAAA,EAAO,QAAQ,KAAA,EAAM;AAAA,MACpD,SAAA,EAAW,GAAG,EAAE,CAAC,QAAQ,QAAQ,GAAG,QAAQ,CAAA;AAAA,MAC5C,KAAA,EAAO,EAAE,aAAA,EAAc;AAAA,MACvB,SAAA,EAAS,IAAA;AAAA,MACT,OAAA,EAAQ,MAAA;AAAA,MACR,SAAS,CAAA,CAAE,EAAA,CAAG,QAAQ,CAAA,CAAE,MAAM,IAAI,MAAA,GAAS,IAAA;AAAA,MAE1C,QAAA,EAAA;AAAA,QAAA,KAAA;AAAA,QACA,MAAA,mBAAS,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA,uBAAM,iBAAA,EAAA,EAAkB;AAAA;AAAA;AAAA,GACrD;AAEJ,CAAA;;ACpDA,MAAM,SAAA,GAAY,UAAA,CAAW,CAAC,KAAA,MAAW;AAAA,EACvC,SAAA,EAAW;AAAA,IACT,UAAA,EAAY;AAAA,GACd;AAAA,EACA,SAAA,EAAW;AAAA,IACT,GAAG,MAAM,UAAA,CAAW,KAAA;AAAA,IACpB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ;AAAA,GAC/B;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW;AAAA,MACT,eAAA,EACE,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,UAAA,EAAY,OAAO,CAAC,CAAA,CAAE,KAAK,CAAA,IAAK,KAAA,CAAM,QAAQ,SAAA,CAAU;AAAA,KAC/E;AAAA,IACA,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,IAC3B,SAAA,EAAW,MAAA;AAAA,IACX,aAAA,EAAe,MAAA;AAAA,IACf,cAAA,EAAgB,YAAA;AAAA,IAChB,OAAA,EAAS;AAAA,GACX;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,GAAG,MAAM,UAAA,CAAW,KAAA;AAAA,IACpB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG;AAAA,GAC/B;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,GAAG,MAAM,UAAA,CAAW,KAAA;AAAA,IACpB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA;AAAA,IAC7B,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ;AAAA;AAC/B,GACF;AAAA,EACA,GAAA,EAAK;AAAA,IACH,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA;AAAA,IAC7B,QAAA,EAAU,MAAA;AAAA,IACV,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC9B,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,IAC7B,YAAA,EAAc;AAAA;AAElB,CAAA,CAAE,CAAA;AAEF,MAAM,IAAA,GAAO,CAAC,EAAE,QAAA,EAAU,MAAM,MAAA,EAAQ,MAAA,EAAQ,qBAAA,EAAuB,aAAA,EAAc,KAAM;AACzF,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,UAAA,GAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AACnC,EAAA,uBACE,GAAA,CAAC,QAAK,SAAA,EAAW,OAAA,CAAQ,WACvB,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,IAAA,EAClB,QAAA,kBAAA,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,CAAA,CAAE,IAAA,CAAK,OAAO,EAAE,IAAI,CAAA;AAAA,MAChC,WAAW,OAAA,CAAQ,MAAA;AAAA,MACnB,SAAA,EAAS,IAAA;AAAA,MACT,aAAA,EAAa,MAAA;AAAA,MAEb,IAAA,EAAK,MAAA;AAAA,MACL,SAAS,MAAM;AACb,QAAA,IAAI,CAAA,CAAE,IAAI,CAAA,CAAE,EAAA,CAAG,QAAQ,CAAA,CAAE,MAAM,CAAC,CAAA,EAAG;AACnC,QAAA,MAAA,CAAO,UAAU,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,IAAI,CAAC,CAAA;AAAA,MACrC,CAAA;AAAA,MACA,QAAA,EAAU,CAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAW,OAAA,CAAQ,GAAA,EAC1B,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAE,IAAA,CAAK,SAAS,CAAA,CAAE,IAAI,GAAG,CAAA,EACpC,CAAA;AAAA,wBACA,IAAA,CAAC,QAAK,SAAA,EAAS,IAAA,EAAC,MAAI,IAAA,EAAC,EAAA,EAAI,EAAA,EAAI,SAAA,EAAU,QAAA,EACrC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAK,SAAA,EAAW,OAAA,CAAQ,WAAY,QAAA,EAAA,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA,EAAE,CAAA;AAAA,0BACnE,GAAA,CAAC,UAAK,SAAA,EAAW,OAAA,CAAQ,cACtB,QAAA,EAAA,UAAA,CAAW,CAAC,UAAU,KAAA,KAAU;AAC/B,YAAA,IAAI,CAAA,CAAE,IAAI,CAAA,CAAE,EAAA,CAAG,MAAM,CAAA,CAAE,QAAQ,CAAC,CAAA,EAAG,OAAO,QAAA;AAC1C,YAAA,IAAI,EAAE,GAAA,CAAI,qBAAqB,GAAG,OAAO,aAAA,CAAc,UAAU,QAAQ,CAAA;AACzE,YAAA,MAAM,EAAA,GAAK,CAAA,CAAE,IAAA,CAAK,IAAI,EAAE,QAAQ,CAAA;AAChC,YAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,IAAA,EAClB,QAAA,kBAAA,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,WAAW,OAAA,CAAQ,gBAAA;AAAA,gBAEnB,IAAA,EAAK,MAAA;AAAA,gBACL,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,kBAAA,IAAI,CAAA,CAAE,IAAI,CAAA,CAAE,EAAA,CAAG,QAAQ,CAAA,CAAE,MAAM,CAAC,CAAA,EAAG;AACnC,kBAAA,MAAA,CAAO,UAAU,EAAE,CAAA;AACnB,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAAA,gBACpB,CAAA;AAAA,gBACA,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,kBAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,oBAAA,IAAI,CAAA,CAAE,IAAI,CAAA,CAAE,EAAA,CAAG,QAAQ,CAAA,CAAE,MAAM,CAAC,CAAA,EAAG;AACnC,oBAAA,MAAA,CAAO,UAAU,EAAE,CAAA;AACnB,oBAAA,CAAA,CAAE,eAAA,EAAgB;AAAA,kBACpB;AAAA,gBACF,CAAA;AAAA,gBACA,QAAA,EAAU,CAAA;AAAA,gBACV,SAAA,EAAU,MAAA;AAAA,gBACV,KAAA,EAAO,EAAE,OAAA,EAAS,WAAA,EAAY;AAAA,gBAE7B,QAAA,EAAA,aAAA,CAAc,UAAU,QAAQ;AAAA;AAAA,aACnC,EAAA,EAtB4B,CAAA,EAAG,EAAE,CAAA,EAAA,EAAK,KAAK,CAAA,CAuB7C,CAAA;AAAA,UAEJ,CAAC,CAAA;AAAA,YACC,CAAA,CAAE,IAAA;AAAA,cACA,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,WAAW,CAAA;AAAA,cACxB,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO,qBAAqB,CAAA,EAAG,CAAA,CAAE,QAAA,EAAU,CAAA,CAAE,WAAA,CAAY,KAAK,CAAC;AAAA,cAC1E,IAAI;AAAA,WACR,EACF;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAA,CAAK,SAAA,GAAY;AAAA,EACf,UAAU,SAAA,CAAU,MAAA;AAAA,EACpB,QAAQ,SAAA,CAAU,MAAA;AAAA,EAClB,MAAM,SAAA,CAAU,MAAA;AAAA,EAChB,QAAQ,SAAA,CAAU,IAAA;AAAA,EAClB,uBAAuB,SAAA,CAAU,IAAA;AAAA,EACjC,eAAe,SAAA,CAAU;AAC3B,CAAA;;AC3HA,MAAM,cAAc,CAAC,EAAE,YAAA,EAAc,QAAA,EAAU,SAAQ,KAAM;AAC3D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,QAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,IAAY,OAAA,EAAS,OAAA,EAAQ;AAAA,MAC7C,CAAA;AAAA,MACA,EAAA,EAAI;AAAA,QACF,OAAA,EAAS,GAAA;AAAA;AAAA,QACT,MAAA,EAAQ,IAAA;AAAA;AAAA,QACR,YAAA,EAAc,OAAA;AAAA,QACd,GAAI,YAAA,IAAgB;AAAA,UAClB,OAAA,EAAS,MAAA;AAAA,UACT,aAAA,EAAe,QAAA;AAAA,UACf,WAAA,EAAa;AAAA;AACf,OACF;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI;AAAA,YACF,WAAA,EAAa,eAAe,OAAA,GAAU,CAAA;AAAA,YACtC,UAAA,EAAY,SAAA;AAAA,YACZ,GAAI,YAAA,IAAgB;AAAA,cAClB,OAAA,EAAS,MAAA;AAAA,cACT,aAAA,EAAe;AAAA;AACjB,WACF;AAAA,UAEC;AAAA;AAAA;AACH;AAAA,GACF;AAEJ,CAAA;;AC9BA,MAAM,eAAe,EAAC;AAEtB,MAAM,kBAAkB,CAAC;AAAA,EACvB,EAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA,GAAS,YAAA;AAAA,EACT,YAAA;AAAA,EACA,MAAA;AAAA,EACA,qBAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,SAAS,QAAA,KAAa,EAAA;AAE5B,EAAA,uBACE,GAAA,CAAC,YAAS,EAAA,EAAI,MAAA,EAAQ,SAAQ,MAAA,EAAO,aAAA,EAAa,IAAA,EAAC,EAAA,EAAI,EAAE,KAAA,EAAO,QAAO,EACrE,QAAA,kBAAA,GAAA,CAACC,eAAM,SAAA,EAAW,EAAA,EAAI,cACnB,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC3B,IAAA,MAAM,MAAA,GAAS,MAAM,EAAA,IAAM,KAAA;AAC3B,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,EAAE,UAAU,MAAM,CAAA,CAAA;AAAA,QACvC,QAAA,EAAU,EAAA;AAAA,QACV,IAAA;AAAA,QACA,MAAA;AAAA,QACA,qBAAA;AAAA,QACA;AAAA,OAAA;AAAA,MANK,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA;AAAA,KAOzB;AAAA,EAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAEJ,CAAA;AAGA,0BAAe,KAAA,CAAM,KAAK,eAAe,CAAA;;ACnClC,MAAM,WAAA,GAAc;AACpB,MAAM,OAAA,GAAU,CAAC,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC;AAE/D,MAAM,cAAc,EAAC;AACrB,MAAM,2BAA2B,EAAC;AAClC,MAAM,OAAO,MAAM;AAAC,CAAA;AACpB,MAAM,oBAAoB,CAAC,KAAA,KAAU,KAAA,CAAM,WAAA,CAAY,KAAK,IAAI,CAAA;AAChE,MAAM,oBAAA,GAAuB,CAAC,GAAA,KAAQ,GAAA,EAAK,KAAA;AAEpC,MAAM,kBAAkB,CAAC;AAAA,EAC9B,KAAA,GAAQ,WAAA;AAAA,EACR,MAAA,GAAS,IAAA;AAAA,EACT,SAAA,GAAY,CAAA;AAAA,EACZ,MAAA,GAAS,gBAAA;AAAA,EACT,qBAAA;AAAA,EACA,gBAAA,GAAmB,wBAAA;AAAA,EACnB,UAAA,GAAa,iBAAA;AAAA,EACb,OAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB,aAAA,GAAgB,oBAAA;AAAA,EAChB,aAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,YAAA,GAAe,cAAc,UAAU,CAAA;AAC7C,EAAA,MAAM,CAAC,QAAA,EAAU,SAAS,CAAA,GAAI,SAAS,cAAc,CAAA;AAGrD,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,SAAS,CAAA,IAAK,CAAA;AAGzC,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,CAAC,EAAA,KAAO;AACvC,IAAA,SAAA,CAAU,CAAC,MAAA,KAAY,MAAA,KAAW,EAAA,GAAK,OAAO,EAAG,CAAA;AAAA,EACnD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAS,IAAA;AAAA,MACT,aAAA,EAAa,MAAA;AAAA,MACb,cAAA,EAAgB,OAAA;AAAA,MAChB,QAAA,EAAU,CAAA;AAAA,MACV,EAAA,EAAI;AAAA,QACF,GAAI,aAAA,IAAiB;AAAA,UACnB,SAAA,EAAW;AAAA,YACT,YAAA,EAAc,eAAA;AAAA;AAAA,YACd,YAAA,EAAc,CAAA;AAAA,YACd,YAAA,EAAc,MAAA;AAAA,YACd,aAAA,EAAe;AAAA;AAAA;AACjB;AACF,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,OAAO,MAAA,GAAS,EAAC,EAAE,EAAG,KAAA,qBACtC,aAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAI,IAAA;AAAA,YACJ,EAAA,EAAI,EAAA;AAAA,YACJ,EAAA,EAAI,EAAA;AAAA,YACJ,EAAA,EAAI,UAAA;AAAA,YACH,GAAG,gBAAA;AAAA,YACJ,GAAA,EAAK,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA;AAAA,YACpB,EAAA,EAAI;AAAA,cACF,CAAA,EAAG;AAAA;AAAA;AACL,WAAA;AAAA,0BAEA,IAAA,CAACC,YAAA,EAAA,EAAW,OAAA,EAAQ,IAAA,EAClB,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,YAAA;AAAA,cAAA;AAAA,gBACC,aAAA;AAAA,gBACA,KAAA;AAAA,gBACA,QAAA,EAAU,WAAW,CAAA,GAAI,EAAA;AAAA,gBACzB,QAAQ,QAAA,KAAa,EAAA;AAAA,gBACrB,MAAA,EAAQ,MAAM,YAAA,CAAa,EAAE,CAAA;AAAA,gBAC7B,MAAA,EAAQ,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA;AAAA,gBACvB;AAAA;AAAA,aACF;AAAA,YACC,YAAA,oBACC,GAAA;AAAA,cAACC,iBAAA;AAAA,cAAA;AAAA,gBACC,EAAA;AAAA,gBACA,QAAA;AAAA,gBACA,MAAA;AAAA,gBACA,YAAA;AAAA,gBACA,MAAA;AAAA,gBACA,qBAAA;AAAA,gBACA,aAAA;AAAA,gBACA;AAAA;AAAA;AACF,WAAA,EAEJ;AAAA,SAEH,CAAA;AAAA,QAEA,CAAC,YAAA,IACA,KAAA,CAAM,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,MAAA,GAAS,EAAC,EAAE,qBAC3B,GAAA;AAAA,UAACA,iBAAA;AAAA,UAAA;AAAA,YAEC,EAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,YACA,YAAA;AAAA,YACA,MAAA;AAAA,YACA,qBAAA;AAAA,YACA,aAAA;AAAA,YACA;AAAA,WAAA;AAAA,UARK,oBAAoB,EAAE,CAAA;AAAA,SAU9B;AAAA;AAAA;AAAA,GACL;AAEJ;;;;"}
|
|
@@ -104,8 +104,9 @@ const useStyles = makeStyles((theme) => ({
|
|
|
104
104
|
overflowWrap: "break-word"
|
|
105
105
|
}
|
|
106
106
|
}));
|
|
107
|
+
const EMPTY_DATA = [];
|
|
107
108
|
const CollapsibleTree = ({
|
|
108
|
-
data =
|
|
109
|
+
data = EMPTY_DATA,
|
|
109
110
|
defaultDepthLevel = 1,
|
|
110
111
|
isLoading,
|
|
111
112
|
children,
|
|
@@ -125,8 +126,8 @@ const CollapsibleTree = ({
|
|
|
125
126
|
if (isAllOpen2) return setDepthLevel(void 0);
|
|
126
127
|
return setDepthLevel(defaultDepthLevel);
|
|
127
128
|
};
|
|
128
|
-
const getValue = ({ value, children:
|
|
129
|
-
if ((R.isNil(value) || R.isEmpty(value)) && R.isEmpty(
|
|
129
|
+
const getValue = ({ value, children: valueChildren = [], ...handlerProps }) => {
|
|
130
|
+
if ((R.isNil(value) || R.isEmpty(value)) && R.isEmpty(valueChildren)) {
|
|
130
131
|
return R.prop("noValue", labels);
|
|
131
132
|
}
|
|
132
133
|
if (R.is(Function, valueHandler)) {
|
|
@@ -161,36 +162,53 @@ const CollapsibleTree = ({
|
|
|
161
162
|
icon: /* @__PURE__ */ jsx(Info, { color: "primary", fontSize: "large" })
|
|
162
163
|
}
|
|
163
164
|
),
|
|
164
|
-
R.map(({ id, label, children:
|
|
165
|
+
R.map(({ id: groupId, label: groupLabel, children: groupChildren = [] }) => {
|
|
165
166
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
166
167
|
/* @__PURE__ */ jsx(Divider, { className: classes.divider }),
|
|
167
|
-
/* @__PURE__ */ jsx(Typography, { variant: "h5", className: classes.title, children:
|
|
168
|
-
R.map(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return /* @__PURE__ */ jsx(
|
|
180
|
-
CollapseComponent,
|
|
168
|
+
/* @__PURE__ */ jsx(Typography, { variant: "h5", className: classes.title, children: groupLabel }),
|
|
169
|
+
R.map(
|
|
170
|
+
({
|
|
171
|
+
id: itemId,
|
|
172
|
+
label: itemLabel,
|
|
173
|
+
children: itemChildren,
|
|
174
|
+
value: itemValue,
|
|
175
|
+
handlerProps: itemHandlerProps = {}
|
|
176
|
+
}) => {
|
|
177
|
+
return /* @__PURE__ */ jsxs(CollapseComponent, { level: 0, label: itemLabel, isOpen: depthLevel >= 0, children: [
|
|
178
|
+
/* @__PURE__ */ jsx(
|
|
179
|
+
Typography,
|
|
181
180
|
{
|
|
182
|
-
|
|
183
|
-
variant:
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
181
|
+
className: cx(classes.spacingValue, classes.overflow),
|
|
182
|
+
variant: "body2",
|
|
183
|
+
children: getValue({ value: itemValue, children: itemChildren, ...itemHandlerProps })
|
|
184
|
+
}
|
|
185
|
+
),
|
|
186
|
+
itemChildren && R.map(
|
|
187
|
+
({
|
|
188
|
+
id: subId,
|
|
189
|
+
label: subLabel,
|
|
190
|
+
value: subValue,
|
|
191
|
+
handlerProps: subHandlerProps = {}
|
|
192
|
+
}) => {
|
|
193
|
+
return /* @__PURE__ */ jsx(
|
|
194
|
+
CollapseComponent,
|
|
195
|
+
{
|
|
196
|
+
level: 1,
|
|
197
|
+
variant: VARIANT_BOLD,
|
|
198
|
+
label: subLabel,
|
|
199
|
+
isOpen: depthLevel >= 1,
|
|
200
|
+
children: /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.overflow, children: getValue({ value: subValue, ...subHandlerProps }) })
|
|
201
|
+
},
|
|
202
|
+
subId
|
|
203
|
+
);
|
|
187
204
|
},
|
|
188
|
-
|
|
189
|
-
)
|
|
190
|
-
},
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
205
|
+
itemChildren
|
|
206
|
+
)
|
|
207
|
+
] }, itemId);
|
|
208
|
+
},
|
|
209
|
+
groupChildren
|
|
210
|
+
)
|
|
211
|
+
] }, groupId);
|
|
194
212
|
}, data)
|
|
195
213
|
] });
|
|
196
214
|
};
|
|
@@ -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 ? <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":";;;;;;;;;;;;;;;;;;;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,mBAAY,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAM,WAAU,CAAA,mBAAK,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAM,SAAA,EAAU,CAAA;AAAA,UAEvF,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\nconst EMPTY_DATA = [];\n\nexport const CollapsibleTree = ({\n data = EMPTY_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: valueChildren = [], ...handlerProps }) => {\n if ((R.isNil(value) || R.isEmpty(value)) && R.isEmpty(valueChildren)) {\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: groupId, label: groupLabel, children: groupChildren = [] }) => {\n return (\n <Fragment key={groupId}>\n <Divider className={classes.divider} />\n <Typography variant=\"h5\" className={classes.title}>\n {groupLabel}\n </Typography>\n {R.map(\n ({\n id: itemId,\n label: itemLabel,\n children: itemChildren,\n value: itemValue,\n handlerProps: itemHandlerProps = {},\n }) => {\n return (\n <Collapse key={itemId} level={0} label={itemLabel} isOpen={depthLevel >= 0}>\n <Typography\n className={cx(classes.spacingValue, classes.overflow)}\n variant=\"body2\"\n >\n {getValue({ value: itemValue, children: itemChildren, ...itemHandlerProps })}\n </Typography>\n {itemChildren &&\n R.map(\n ({\n id: subId,\n label: subLabel,\n value: subValue,\n handlerProps: subHandlerProps = {},\n }) => {\n return (\n <Collapse\n key={subId}\n level={1}\n variant={VARIANT_BOLD}\n label={subLabel}\n isOpen={depthLevel >= 1}\n >\n <Typography variant=\"body2\" className={classes.overflow}>\n {getValue({ value: subValue, ...subHandlerProps })}\n </Typography>\n </Collapse>\n );\n },\n itemChildren\n )}\n </Collapse>\n );\n },\n groupChildren\n )}\n </Fragment>\n );\n }, data)}\n </Fragment>\n );\n};\n"],"names":["useStyles","isAllOpen","Collapse"],"mappings":"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"}
|
package/dist/Contact/Contact.js
CHANGED
|
@@ -80,7 +80,8 @@ const Warning = ({ title }) => {
|
|
|
80
80
|
Warning.propTypes = {
|
|
81
81
|
title: PropTypes.string
|
|
82
82
|
};
|
|
83
|
-
const
|
|
83
|
+
const EMPTY_MODES = [];
|
|
84
|
+
const Mode = ({ changeMode, mode, modes = EMPTY_MODES, title }) => {
|
|
84
85
|
const classes = useStyles$2();
|
|
85
86
|
return /* @__PURE__ */ jsx(Card, { className: classes.container, children: /* @__PURE__ */ jsxs(CardContent, { className: classes.content, children: [
|
|
86
87
|
/* @__PURE__ */ jsx(Typography, { className: classes.title, "aria-label": title, tabIndex: 0, children: title }),
|
|
@@ -255,14 +256,14 @@ const Contact = ({
|
|
|
255
256
|
const [checked, setChecked] = useState(false);
|
|
256
257
|
const [isSendDisable, setSendDisable] = useState(true);
|
|
257
258
|
const [detailsHasError, setDetailsError] = useState(false);
|
|
258
|
-
const checkEmail = (
|
|
259
|
-
if (validate(
|
|
259
|
+
const checkEmail = (value) => {
|
|
260
|
+
if (validate(value) && R.test(/^\S+@\S+\.\S+$/, value)) {
|
|
260
261
|
return setEmailError(false);
|
|
261
262
|
}
|
|
262
263
|
return setEmailError(true);
|
|
263
264
|
};
|
|
264
|
-
const checkDetails = (
|
|
265
|
-
if (R.isEmpty(
|
|
265
|
+
const checkDetails = (value) => {
|
|
266
|
+
if (R.isEmpty(value)) {
|
|
266
267
|
return setDetailsError(true);
|
|
267
268
|
}
|
|
268
269
|
return setDetailsError(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contact.js","sources":["../../src/Contact/Mode.jsx","../../src/Contact/Input.jsx","../../src/Contact/Contact.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Card from '@mui/material/Card';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport CardContent from '@mui/material/CardContent';\nimport Typography from '@mui/material/Typography';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Radio from '@mui/material/Radio';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport { Warning as WarningIcon } from '../Icons/Warning';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n backgroundColor: theme.palette.secondary.dark,\n boxShadow: 'none',\n padding: theme.spacing(2),\n width: '100%',\n height: '100%',\n },\n title: {\n padding: 0,\n ...R.pathOr({}, ['mixins', 'share', 'title'], theme),\n },\n content: {\n padding: theme.spacing(1, 0),\n '&:last-child': {\n padding: theme.spacing(1, 0),\n },\n },\n label: theme.typography.body2,\n warning: {\n marginLeft: theme.spacing(0.5),\n width: 'unset',\n fontSize: 'inherit',\n height: '1.3em',\n ...R.pathOr({}, ['mixins', 'share', 'warning'], theme),\n },\n}));\n\nconst Warning = ({ title }) => {\n const classes = useStyles();\n const theme = useTheme();\n const warningColor = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n const warningTextColor = theme.palette.getContrastText(warningColor);\n\n return (\n <Tooltip\n className={classes.warning}\n title={title}\n tabIndex={0}\n variant=\"warning\"\n aria-hidden={false}\n placement=\"bottom\"\n PopperProps={{\n placement: {\n flip: {\n behavior: ['bottom', 'top', 'left', 'right'],\n },\n },\n }}\n >\n <WarningIcon pathBackgroundColor={warningColor} pathColor={warningTextColor} />\n </Tooltip>\n );\n};\n\nWarning.propTypes = {\n title: PropTypes.string,\n};\n\nconst Mode = ({ changeMode, mode, modes = [], title }) => {\n const classes = useStyles();\n return (\n <Card className={classes.container}>\n <CardContent className={classes.content}>\n <Typography className={classes.title} aria-label={title} tabIndex={0}>\n {title}\n </Typography>\n <RadioGroup onChange={e => changeMode(e.target.value)} value={mode}>\n {R.map(({ label, value, warningMessage }) => (\n <FormControlLabel\n classes={{ label: classes.label }}\n key={value}\n control={<Radio variant=\"outlined\" color=\"primary\" />}\n label={\n <span>\n {label}\n {warningMessage && <Warning title={warningMessage} />}\n </span>\n }\n aria-label={label}\n value={value}\n />\n ))(modes)}\n </RadioGroup>\n </CardContent>\n </Card>\n );\n};\n\nMode.propTypes = {\n changeMode: PropTypes.func,\n mode: PropTypes.string,\n modes: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n value: PropTypes.string,\n warningMessage: PropTypes.string,\n }),\n ),\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n};\n\nexport default Mode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TextField from '@mui/material/TextField';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport IconButton from '@mui/material/IconButton';\nimport { Done } from '@mui/icons-material';\nimport { withInput } from '../Input/with-input';\n\nconst useStyles = makeStyles(() => ({\n visibility: {\n visibility: 'hidden',\n },\n}));\n\nconst LefttIcon = ({ Icon }) => <Icon />;\n\nLefttIcon.propTypes = {\n Icon: PropTypes.object,\n};\n\nconst RightIcon = ({ onSubmit, Icon = Done }) => (\n <IconButton color=\"primary\" onClick={() => onSubmit()} size=\"small\">\n <Icon />\n </IconButton>\n);\n\nRightIcon.propTypes = {\n Icon: PropTypes.object,\n onSubmit: PropTypes.func,\n classes: PropTypes.object,\n};\n\nconst MyInput = ({\n id,\n label,\n name,\n placeholder,\n leftIcon,\n rightIcon,\n value,\n type,\n onChange,\n onSubmit,\n fullWidth,\n withValidationIcon,\n textFieldProps,\n inputProps,\n endAdornment,\n}) => {\n const classes = useStyles();\n const startAdornment = R.isNil(leftIcon) ? null : (\n <InputAdornment position=\"start\">\n <LefttIcon Icon={leftIcon} />\n </InputAdornment>\n );\n const endMyadornment = R.or(withValidationIcon, !R.isNil(rightIcon)) ? (\n <InputAdornment position=\"end\" className={cx({ [classes.visibility]: R.isEmpty(value) })}>\n <RightIcon onSubmit={onSubmit} Icon={rightIcon} />\n </InputAdornment>\n ) : null;\n\n const onEnterLabel = event => {\n if (event.key === 'Enter') {\n event.preventDefault();\n if (R.is(Function, onSubmit)) {\n onSubmit();\n }\n }\n };\n\n return (\n <TextField\n data-testid=\"input-test-id\"\n margin=\"dense\"\n fullWidth={fullWidth}\n id={id}\n name={name}\n type={type}\n label={label}\n value={value}\n variant=\"outlined\"\n placeholder={placeholder}\n onChange={onChange}\n onKeyPress={onEnterLabel}\n InputProps={{\n startAdornment,\n endAdornment: R.isNil(endAdornment) ? endMyadornment : endAdornment,\n }}\n inputProps={inputProps}\n {...textFieldProps}\n />\n );\n};\n\nMyInput.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n leftIcon: PropTypes.object,\n rightIcon: PropTypes.object,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n type: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n fullWidth: PropTypes.bool,\n withValidationIcon: PropTypes.bool,\n textFieldProps: PropTypes.object,\n inputProps: PropTypes.object,\n endAdornment: PropTypes.node,\n};\n\nexport default withInput(MyInput);\n","import React, { useEffect, useState } from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Paper from '@mui/material/Paper';\nimport TextareaAutosize from '@mui/material/TextareaAutosize';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Typography from '@mui/material/Typography';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { validate as getIsValidEmail } from 'isemail';\nimport Mode from './Mode';\nimport Input from './Input';\nimport { Button } from '../Button/Button';\n\nconst useStyles = makeStyles(theme => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n padding: theme.spacing(2),\n },\n box: {\n padding: theme.spacing(0.5),\n },\n emailReasonMessage: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n backgroundColor: R.path(['palette', 'tertiary', 'dark'])(theme) || theme.palette.grey[100],\n padding: theme.spacing(2),\n },\n agreement: {\n fontSize: '1.0625rem',\n lineHeight: '1.6',\n },\n policy: {\n color: theme.palette.primary.main,\n fontSize: '1.0625rem',\n lineHeight: '1.6',\n },\n textarea: {\n width: '100%',\n padding: theme.spacing(1),\n },\n textareaError: {\n borderColor: theme.palette.error.main,\n borderWidth: theme.spacing(0.25),\n },\n}));\n\nexport const Contact = ({\n modes,\n defaultMode = 'question',\n defaultFullName,\n defaultEmail,\n labels,\n send,\n isSubmitDisable,\n children,\n isAllContact = false,\n}) => {\n const classes = useStyles();\n\n const [mode, setMode] = useState(defaultMode);\n const [title, setTitle] = useState('');\n const [name, setName] = useState(defaultFullName || '');\n const [organisation, setOrganisation] = useState('');\n const [email, setEmail] = useState(defaultEmail || '');\n const [subject, setSubject] = useState('');\n const [emailHasError, setEmailError] = useState(false);\n const [details, setDetails] = useState('');\n const [checked, setChecked] = useState(false);\n const [isSendDisable, setSendDisable] = useState(true);\n const [detailsHasError, setDetailsError] = useState(false);\n const checkEmail = email => {\n if (getIsValidEmail(email) && R.test(/^\\S+@\\S+\\.\\S+$/, email)) {\n return setEmailError(false);\n }\n return setEmailError(true);\n };\n\n const checkDetails = details => {\n if (R.isEmpty(details)) {\n return setDetailsError(true);\n }\n return setDetailsError(false);\n };\n\n const onSubmit = () => {\n if (R.is(Function)(send))\n return send({\n mode,\n title,\n name,\n organisation,\n email,\n details,\n checkbox: checked,\n subject,\n });\n };\n\n useEffect(() => {\n if (R.isEmpty(email)) return setSendDisable(true);\n if (R.isEmpty(details)) return setSendDisable(true);\n if (emailHasError) return setSendDisable(true);\n if (detailsHasError) return setSendDisable(true);\n return setSendDisable(isSubmitDisable || false);\n }, [emailHasError, detailsHasError, email, details, isSubmitDisable]);\n\n return (\n <Grid container className={classes.paper} data-testid=\"contact-test-id\">\n <Grid item container xs={12} md={12} justifyContent=\"space-between\">\n <Grid item xs={12} sm={12} md={6}>\n <Mode\n changeMode={setMode}\n modes={modes}\n mode={mode}\n title={R.prop('modeTitle')(labels)}\n />\n </Grid>\n <Grid item container xs={12} sm={12} md={6} flex-direction=\"column\">\n <Grid item xs={12}>\n <Paper elevation={0} className={classes.emailReasonMessage}>\n {R.prop('message')(R.find(R.propEq('value', mode))(modes))}\n </Paper>\n </Grid>\n </Grid>\n </Grid>\n {isAllContact && (\n <Grid item xs={12} sm={6} className={classes.box}>\n <Input\n variant=\"outlined\"\n label={labels.personalTitle}\n name=\"title\"\n type=\"text\"\n fullWidth\n value={title}\n onChange={e => setTitle(e.target.value)}\n isControlled\n />\n </Grid>\n )}\n {isAllContact && (\n <Grid item xs={12} sm={6} className={classes.box}>\n <Input\n variant=\"outlined\"\n isControlled\n label={labels.name}\n name=\"name\"\n type=\"text\"\n onChange={e => setName(e.target.value)}\n value={name}\n fullWidth\n />\n </Grid>\n )}\n <Grid item xs={12} sm={isAllContact ? 6 : 12} className={classes.box}>\n <Input\n inputProps={{\n 'aria-label': R.prop('email')(labels),\n autoComplete: 'email',\n onBlur: () => checkEmail(email),\n }}\n label={R.prop('email')(labels)}\n type=\"email\"\n value={email}\n onChange={e => setEmail(e.target.value)}\n variant=\"outlined\"\n fullWidth\n isControlled\n defaultValue={defaultEmail}\n textFieldProps={{ error: emailHasError }}\n />\n </Grid>\n {isAllContact && (\n <Grid item xs={12} sm={6} className={classes.box}>\n <Input\n variant=\"outlined\"\n isControlled\n label={labels.organisation}\n type=\"text\"\n name=\"organisation\"\n onChange={e => setOrganisation(e.target.value)}\n value={organisation}\n fullWidth\n />\n </Grid>\n )}\n <Grid item xs={12} md={12} className={classes.box}>\n <Input\n variant=\"outlined\"\n isControlled\n label={labels.subject}\n name=\"subject\"\n type=\"text\"\n onChange={e => setSubject(e.target.value)}\n value={subject}\n fullWidth\n />\n </Grid>\n <Grid item xs={12} md={12} className={classes.box}>\n <TextareaAutosize\n name=\"details\"\n onChange={e => setDetails(e.target.value)}\n className={cx(classes.textarea, { [classes.textareaError]: detailsHasError })}\n aria-label={R.prop('details')(labels)}\n minRows={6}\n placeholder={R.prop('details')(labels)}\n value={details}\n onBlur={() => checkDetails(details)}\n />\n </Grid>\n <Grid item container justifyContent=\"space-between\">\n <Grid item>\n <FormControlLabel\n control={\n <Checkbox\n name=\"checkedB\"\n color=\"primary\"\n tabIndex={0}\n inputProps={{\n onKeyDown: e => {\n if (e.key === 'Enter') {\n setChecked(!checked);\n }\n },\n onKeyUp: e => {\n if (e.key === ' ') {\n setChecked(!checked);\n }\n },\n }}\n />\n }\n label={\n <Typography className={classes.agreement}>{R.prop('checkbox')(labels)}</Typography>\n }\n checked={checked}\n aria-checked={checked}\n tabIndex={0}\n aria-label={R.prop('checkbox')(labels)}\n onChange={e => setChecked(e.target.checked)}\n />\n </Grid>\n <Grid item>\n <Typography className={classes.policy} style={{ paddingTop: 8 }}>\n {R.prop('organisationPrivacyPolicy')(labels)}\n </Typography>\n </Grid>\n </Grid>\n <Grid item container justifyContent=\"space-between\" alignItems=\"center\">\n <Grid item>{children}</Grid>\n <Grid item>\n <Button\n aria-label={R.prop('submit')(labels)}\n type=\"submit\"\n disabled={isSendDisable}\n variant=\"contained\"\n color=\"primary\"\n alternative=\"siscc\"\n onClick={onSubmit}\n size=\"large\"\n className={classes.submitButton}\n >\n {R.prop('submit')(labels)}\n </Button>\n </Grid>\n </Grid>\n </Grid>\n );\n};\n\nContact.propTypes = {\n defaultMode: PropTypes.string,\n defaultFullName: PropTypes.string,\n defaultEmail: PropTypes.string,\n lang: PropTypes.string,\n theme: PropTypes.string,\n modes: PropTypes.array,\n send: PropTypes.func,\n isSubmitDisable: PropTypes.bool,\n children: PropTypes.node,\n labels: PropTypes.shape({\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n organisation: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n personalTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n submit: PropTypes.string,\n email: PropTypes.string,\n details: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n contactForHelp: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n subject: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n }),\n};\n"],"names":["useStyles","WarningIcon","email","getIsValidEmail","details"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAMA,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,SAAA,EAAW;AAAA,IACT,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,SAAA,CAAU,IAAA;AAAA,IACzC,SAAA,EAAW,MAAA;AAAA,IACX,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IACxB,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,CAAA;AAAA,IACT,GAAG,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,CAAC,QAAA,EAAU,OAAA,EAAS,OAAO,CAAA,EAAG,KAAK;AAAA,GACrD;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,IAC3B,cAAA,EAAgB;AAAA,MACd,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC;AAAA;AAC7B,GACF;AAAA,EACA,KAAA,EAAO,MAAM,UAAA,CAAW,KAAA;AAAA,EACxB,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC7B,KAAA,EAAO,OAAA;AAAA,IACP,QAAA,EAAU,SAAA;AAAA,IACV,MAAA,EAAQ,OAAA;AAAA,IACR,GAAG,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,CAAC,QAAA,EAAU,OAAA,EAAS,SAAS,CAAA,EAAG,KAAK;AAAA;AAEzD,CAAA,CAAE,CAAA;AAEF,MAAM,OAAA,GAAU,CAAC,EAAE,KAAA,EAAM,KAAM;AAC7B,EAAA,MAAM,UAAUA,WAAA,EAAU;AAC1B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,YAAA,GAAe,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,WAAA,EAAa,KAAK,CAAA,EAAG,KAAK,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAC7F,EAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,YAAY,CAAA;AAEnE,EAAA,uBACE,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAW,OAAA,CAAQ,OAAA;AAAA,MACnB,KAAA;AAAA,MACA,QAAA,EAAU,CAAA;AAAA,MACV,OAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAa,KAAA;AAAA,MACb,SAAA,EAAU,QAAA;AAAA,MACV,WAAA,EAAa;AAAA,QACX,SAAA,EAAW;AAAA,UACT,IAAA,EAAM;AAAA,YACJ,QAAA,EAAU,CAAC,QAAA,EAAU,KAAA,EAAO,QAAQ,OAAO;AAAA;AAC7C;AACF,OACF;AAAA,MAEA,QAAA,kBAAA,GAAA,CAACC,SAAA,EAAA,EAAY,mBAAA,EAAqB,YAAA,EAAc,WAAW,gBAAA,EAAkB;AAAA;AAAA,GAC/E;AAEJ,CAAA;AAEA,OAAA,CAAQ,SAAA,GAAY;AAAA,EAClB,OAAO,SAAA,CAAU;AACnB,CAAA;AAEA,MAAM,IAAA,GAAO,CAAC,EAAE,UAAA,EAAY,MAAM,KAAA,GAAQ,EAAC,EAAG,KAAA,EAAM,KAAM;AACxD,EAAA,MAAM,UAAUD,WAAA,EAAU;AAC1B,EAAA,uBACE,GAAA,CAAC,QAAK,SAAA,EAAW,OAAA,CAAQ,WACvB,QAAA,kBAAA,IAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,OAAA,CAAQ,OAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,WAAW,OAAA,CAAQ,KAAA,EAAO,cAAY,KAAA,EAAO,QAAA,EAAU,GAChE,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,wBACC,UAAA,EAAA,EAAW,QAAA,EAAU,OAAK,UAAA,CAAW,CAAA,CAAE,OAAO,KAAK,CAAA,EAAG,KAAA,EAAO,IAAA,EAC3D,YAAE,GAAA,CAAI,CAAC,EAAE,KAAA,EAAO,KAAA,EAAO,gBAAe,qBACrC,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,EAAE,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAM;AAAA,QAEhC,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAQ,UAAA,EAAW,OAAM,SAAA,EAAU,CAAA;AAAA,QACnD,KAAA,uBACG,MAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,cAAA,oBAAkB,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,cAAA,EAAgB;AAAA,SAAA,EACrD,CAAA;AAAA,QAEF,YAAA,EAAY,KAAA;AAAA,QACZ;AAAA,OAAA;AAAA,MATK;AAAA,KAWR,CAAA,CAAE,KAAK,CAAA,EACV;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAA,CAAK,SAAA,GAAY;AAAA,EACf,YAAY,SAAA,CAAU,IAAA;AAAA,EACtB,MAAM,SAAA,CAAU,MAAA;AAAA,EAChB,OAAO,SAAA,CAAU,OAAA;AAAA,IACf,UAAU,KAAA,CAAM;AAAA,MACd,KAAA,EAAO,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,MAChE,OAAO,SAAA,CAAU,MAAA;AAAA,MACjB,gBAAgB,SAAA,CAAU;AAAA,KAC3B;AAAA,GACH;AAAA,EACA,KAAA,EAAO,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC;AAClE,CAAA;;ACvGA,MAAMA,WAAA,GAAY,WAAW,OAAO;AAAA,EAClC,UAAA,EAAY;AAAA,IACV,UAAA,EAAY;AAAA;AAEhB,CAAA,CAAE,CAAA;AAEF,MAAM,YAAY,CAAC,EAAE,IAAA,EAAK,yBAAO,IAAA,EAAA,EAAK,CAAA;AAEtC,SAAA,CAAU,SAAA,GAAY;AAAA,EACpB,MAAM,SAAA,CAAU;AAClB,CAAA;AAEA,MAAM,YAAY,CAAC,EAAE,UAAU,IAAA,GAAO,IAAA,uBACpC,GAAA,CAAC,UAAA,EAAA,EAAW,OAAM,SAAA,EAAU,OAAA,EAAS,MAAM,QAAA,EAAS,EAAG,MAAK,OAAA,EAC1D,QAAA,kBAAA,GAAA,CAAC,QAAK,CAAA,EACR,CAAA;AAGF,SAAA,CAAU,SAAA,GAAY;AAAA,EACpB,MAAM,SAAA,CAAU,MAAA;AAAA,EAChB,UAAU,SAAA,CAAU,IAAA;AAAA,EACpB,SAAS,SAAA,CAAU;AACrB,CAAA;AAEA,MAAM,UAAU,CAAC;AAAA,EACf,EAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUA,WAAA,EAAU;AAC1B,EAAA,MAAM,cAAA,GAAiB,CAAA,CAAE,KAAA,CAAM,QAAQ,IAAI,IAAA,mBACzC,GAAA,CAAC,cAAA,EAAA,EAAe,QAAA,EAAS,OAAA,EACvB,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAM,UAAU,CAAA,EAC7B,CAAA;AAEF,EAAA,MAAM,cAAA,GAAiB,CAAA,CAAE,EAAA,CAAG,kBAAA,EAAoB,CAAC,CAAA,CAAE,KAAA,CAAM,SAAS,CAAC,CAAA,mBACjE,GAAA,CAAC,cAAA,EAAA,EAAe,QAAA,EAAS,OAAM,SAAA,EAAW,EAAA,CAAG,EAAE,CAAC,OAAA,CAAQ,UAAU,GAAG,CAAA,CAAE,QAAQ,KAAK,CAAA,EAAG,CAAA,EACrF,8BAAC,SAAA,EAAA,EAAU,QAAA,EAAoB,IAAA,EAAM,SAAA,EAAW,GAClD,CAAA,GACE,IAAA;AAEJ,EAAA,MAAM,eAAe,CAAA,KAAA,KAAS;AAC5B,IAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,IAAI,CAAA,CAAE,EAAA,CAAG,QAAA,EAAU,QAAQ,CAAA,EAAG;AAC5B,QAAA,QAAA,EAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,eAAA;AAAA,MACZ,MAAA,EAAO,OAAA;AAAA,MACP,SAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA,EAAQ,UAAA;AAAA,MACR,WAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY;AAAA,QACV,cAAA;AAAA,QACA,YAAA,EAAc,CAAA,CAAE,KAAA,CAAM,YAAY,IAAI,cAAA,GAAiB;AAAA,OACzD;AAAA,MACA,UAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAA;AAEA,OAAA,CAAQ,SAAA,GAAY;AAAA,EAClB,IAAI,SAAA,CAAU,MAAA;AAAA,EACd,MAAM,SAAA,CAAU,MAAA;AAAA,EAChB,KAAA,EAAO,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,EAChE,WAAA,EAAa,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,EACtE,UAAU,SAAA,CAAU,MAAA;AAAA,EACpB,WAAW,SAAA,CAAU,MAAA;AAAA,EACrB,KAAA,EAAO,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,EAC/D,MAAM,SAAA,CAAU,MAAA;AAAA,EAChB,UAAU,SAAA,CAAU,IAAA;AAAA,EACpB,UAAU,SAAA,CAAU,IAAA;AAAA,EACpB,WAAW,SAAA,CAAU,IAAA;AAAA,EACrB,oBAAoB,SAAA,CAAU,IAAA;AAAA,EAC9B,gBAAgB,SAAA,CAAU,MAAA;AAAA,EAC1B,YAAY,SAAA,CAAU,MAAA;AAAA,EACtB,cAAc,SAAA,CAAU;AAC1B,CAAA;AAEA,cAAe,UAAU,OAAO,CAAA;;ACnGhC,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,KAAA,EAAO;AAAA,IACL,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW,KAAA;AAAA,IAC1C,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GAC1B;AAAA,EACA,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,GAAG;AAAA,GAC5B;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,MAAA,EAAQ,MAAA;AAAA,IACR,eAAA,EAAiB,CAAA,CAAE,IAAA,CAAK,CAAC,WAAW,UAAA,EAAY,MAAM,CAAC,CAAA,CAAE,KAAK,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,IACzF,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GAC1B;AAAA,EACA,SAAA,EAAW;AAAA,IACT,QAAA,EAAU,WAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACd;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,IAC7B,QAAA,EAAU,WAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACd;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,MAAA;AAAA,IACP,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GAC1B;AAAA,EACA,aAAA,EAAe;AAAA,IACb,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,IAAA;AAAA,IACjC,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,IAAI;AAAA;AAEnC,CAAA,CAAE,CAAA;AAEK,MAAM,UAAU,CAAC;AAAA,EACtB,KAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,eAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA,GAAe;AACjB,CAAA,KAAM;AACJ,EAAA,MAAM,UAAU,SAAA,EAAU;AAE1B,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,QAAA,CAAS,mBAAmB,EAAE,CAAA;AACtD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,EAAE,CAAA;AACnD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAA,CAAS,gBAAgB,EAAE,CAAA;AACrD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,EAAE,CAAA;AACzC,EAAA,MAAM,CAAC,aAAA,EAAe,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AACrD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,EAAE,CAAA;AACzC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,aAAA,EAAe,cAAc,CAAA,GAAI,SAAS,IAAI,CAAA;AACrD,EAAA,MAAM,CAAC,eAAA,EAAiB,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AACzD,EAAA,MAAM,UAAA,GAAa,CAAAE,MAAAA,KAAS;AAC1B,IAAA,IAAIC,SAAgBD,MAAK,CAAA,IAAK,EAAE,IAAA,CAAK,gBAAA,EAAkBA,MAAK,CAAA,EAAG;AAC7D,MAAA,OAAO,cAAc,KAAK,CAAA;AAAA,IAC5B;AACA,IAAA,OAAO,cAAc,IAAI,CAAA;AAAA,EAC3B,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,CAAAE,QAAAA,KAAW;AAC9B,IAAA,IAAI,CAAA,CAAE,OAAA,CAAQA,QAAO,CAAA,EAAG;AACtB,MAAA,OAAO,gBAAgB,IAAI,CAAA;AAAA,IAC7B;AACA,IAAA,OAAO,gBAAgB,KAAK,CAAA;AAAA,EAC9B,CAAA;AAEA,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,IAAI,CAAA,CAAE,EAAA,CAAG,QAAQ,CAAA,CAAE,IAAI,CAAA;AACrB,MAAA,OAAO,IAAA,CAAK;AAAA,QACV,IAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA;AAAA,QACA,YAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,OAAA;AAAA,QACV;AAAA,OACD,CAAA;AAAA,EACL,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,EAAE,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,eAAe,IAAI,CAAA;AAChD,IAAA,IAAI,EAAE,OAAA,CAAQ,OAAO,CAAA,EAAG,OAAO,eAAe,IAAI,CAAA;AAClD,IAAA,IAAI,aAAA,EAAe,OAAO,cAAA,CAAe,IAAI,CAAA;AAC7C,IAAA,IAAI,eAAA,EAAiB,OAAO,cAAA,CAAe,IAAI,CAAA;AAC/C,IAAA,OAAO,cAAA,CAAe,mBAAmB,KAAK,CAAA;AAAA,EAChD,GAAG,CAAC,aAAA,EAAe,iBAAiB,KAAA,EAAO,OAAA,EAAS,eAAe,CAAC,CAAA;AAEpE,EAAA,uBACE,IAAA,CAAC,QAAK,SAAA,EAAS,IAAA,EAAC,WAAW,OAAA,CAAQ,KAAA,EAAO,eAAY,iBAAA,EACpD,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,SAAA,EAAS,IAAA,EAAC,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,cAAA,EAAe,eAAA,EAClD,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,MAAI,IAAA,EAAC,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAC7B,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,UAAA,EAAY,OAAA;AAAA,UACZ,KAAA;AAAA,UACA,IAAA;AAAA,UACA,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,WAAW,EAAE,MAAM;AAAA;AAAA,OACnC,EACF,CAAA;AAAA,0BACC,IAAA,EAAA,EAAK,IAAA,EAAI,MAAC,SAAA,EAAS,IAAA,EAAC,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,CAAA,EAAG,kBAAe,QAAA,EACzD,QAAA,kBAAA,GAAA,CAAC,QAAK,IAAA,EAAI,IAAA,EAAC,IAAI,EAAA,EACb,QAAA,kBAAA,GAAA,CAAC,SAAM,SAAA,EAAW,CAAA,EAAG,WAAW,OAAA,CAAQ,kBAAA,EACrC,YAAE,IAAA,CAAK,SAAS,EAAE,CAAA,CAAE,IAAA,CAAK,EAAE,MAAA,CAAO,OAAA,EAAS,IAAI,CAAC,CAAA,CAAE,KAAK,CAAC,CAAA,EAC3D,GACF,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IACC,YAAA,oBACC,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,SAAA,EAAW,OAAA,CAAQ,GAAA,EAC3C,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,UAAA;AAAA,QACR,OAAO,MAAA,CAAO,aAAA;AAAA,QACd,IAAA,EAAK,OAAA;AAAA,QACL,IAAA,EAAK,MAAA;AAAA,QACL,SAAA,EAAS,IAAA;AAAA,QACT,KAAA,EAAO,KAAA;AAAA,QACP,QAAA,EAAU,CAAA,CAAA,KAAK,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QACtC,YAAA,EAAY;AAAA;AAAA,KACd,EACF,CAAA;AAAA,IAED,YAAA,oBACC,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,SAAA,EAAW,OAAA,CAAQ,GAAA,EAC3C,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,UAAA;AAAA,QACR,YAAA,EAAY,IAAA;AAAA,QACZ,OAAO,MAAA,CAAO,IAAA;AAAA,QACd,IAAA,EAAK,MAAA;AAAA,QACL,IAAA,EAAK,MAAA;AAAA,QACL,QAAA,EAAU,CAAA,CAAA,KAAK,OAAA,CAAQ,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QACrC,KAAA,EAAO,IAAA;AAAA,QACP,SAAA,EAAS;AAAA;AAAA,KACX,EACF,CAAA;AAAA,oBAEF,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,YAAA,GAAe,CAAA,GAAI,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,GAAA,EAC/D,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAY;AAAA,UACV,YAAA,EAAc,CAAA,CAAE,IAAA,CAAK,OAAO,EAAE,MAAM,CAAA;AAAA,UACpC,YAAA,EAAc,OAAA;AAAA,UACd,MAAA,EAAQ,MAAM,UAAA,CAAW,KAAK;AAAA,SAChC;AAAA,QACA,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,OAAO,EAAE,MAAM,CAAA;AAAA,QAC7B,IAAA,EAAK,OAAA;AAAA,QACL,KAAA,EAAO,KAAA;AAAA,QACP,QAAA,EAAU,CAAA,CAAA,KAAK,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QACtC,OAAA,EAAQ,UAAA;AAAA,QACR,SAAA,EAAS,IAAA;AAAA,QACT,YAAA,EAAY,IAAA;AAAA,QACZ,YAAA,EAAc,YAAA;AAAA,QACd,cAAA,EAAgB,EAAE,KAAA,EAAO,aAAA;AAAc;AAAA,KACzC,EACF,CAAA;AAAA,IACC,YAAA,oBACC,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,SAAA,EAAW,OAAA,CAAQ,GAAA,EAC3C,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,UAAA;AAAA,QACR,YAAA,EAAY,IAAA;AAAA,QACZ,OAAO,MAAA,CAAO,YAAA;AAAA,QACd,IAAA,EAAK,MAAA;AAAA,QACL,IAAA,EAAK,cAAA;AAAA,QACL,QAAA,EAAU,CAAA,CAAA,KAAK,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QAC7C,KAAA,EAAO,YAAA;AAAA,QACP,SAAA,EAAS;AAAA;AAAA,KACX,EACF,CAAA;AAAA,oBAEF,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,GAAA,EAC5C,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,UAAA;AAAA,QACR,YAAA,EAAY,IAAA;AAAA,QACZ,OAAO,MAAA,CAAO,OAAA;AAAA,QACd,IAAA,EAAK,SAAA;AAAA,QACL,IAAA,EAAK,MAAA;AAAA,QACL,QAAA,EAAU,CAAA,CAAA,KAAK,UAAA,CAAW,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QACxC,KAAA,EAAO,OAAA;AAAA,QACP,SAAA,EAAS;AAAA;AAAA,KACX,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,GAAA,EAC5C,QAAA,kBAAA,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,QAAA,EAAU,CAAA,CAAA,KAAK,UAAA,CAAW,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QACxC,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,QAAA,EAAU,EAAE,CAAC,OAAA,CAAQ,aAAa,GAAG,eAAA,EAAiB,CAAA;AAAA,QAC5E,YAAA,EAAY,CAAA,CAAE,IAAA,CAAK,SAAS,EAAE,MAAM,CAAA;AAAA,QACpC,OAAA,EAAS,CAAA;AAAA,QACT,WAAA,EAAa,CAAA,CAAE,IAAA,CAAK,SAAS,EAAE,MAAM,CAAA;AAAA,QACrC,KAAA,EAAO,OAAA;AAAA,QACP,MAAA,EAAQ,MAAM,YAAA,CAAa,OAAO;AAAA;AAAA,KACpC,EACF,CAAA;AAAA,yBACC,IAAA,EAAA,EAAK,IAAA,EAAI,MAAC,SAAA,EAAS,IAAA,EAAC,gBAAe,eAAA,EAClC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,MAAI,IAAA,EACR,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OAAA,kBACE,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,KAAA,EAAM,SAAA;AAAA,cACN,QAAA,EAAU,CAAA;AAAA,cACV,UAAA,EAAY;AAAA,gBACV,WAAW,CAAA,CAAA,KAAK;AACd,kBAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,EAAS;AACrB,oBAAA,UAAA,CAAW,CAAC,OAAO,CAAA;AAAA,kBACrB;AAAA,gBACF,CAAA;AAAA,gBACA,SAAS,CAAA,CAAA,KAAK;AACZ,kBAAA,IAAI,CAAA,CAAE,QAAQ,GAAA,EAAK;AACjB,oBAAA,UAAA,CAAW,CAAC,OAAO,CAAA;AAAA,kBACrB;AAAA,gBACF;AAAA;AACF;AAAA,WACF;AAAA,UAEF,KAAA,kBACE,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,OAAA,CAAQ,SAAA,EAAY,QAAA,EAAA,CAAA,CAAE,IAAA,CAAK,UAAU,CAAA,CAAE,MAAM,CAAA,EAAE,CAAA;AAAA,UAExE,OAAA;AAAA,UACA,cAAA,EAAc,OAAA;AAAA,UACd,QAAA,EAAU,CAAA;AAAA,UACV,YAAA,EAAY,CAAA,CAAE,IAAA,CAAK,UAAU,EAAE,MAAM,CAAA;AAAA,UACrC,QAAA,EAAU,CAAA,CAAA,KAAK,UAAA,CAAW,CAAA,CAAE,OAAO,OAAO;AAAA;AAAA,OAC5C,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,QAAK,IAAA,EAAI,IAAA,EACR,8BAAC,UAAA,EAAA,EAAW,SAAA,EAAW,QAAQ,MAAA,EAAQ,KAAA,EAAO,EAAE,UAAA,EAAY,CAAA,IACzD,QAAA,EAAA,CAAA,CAAE,IAAA,CAAK,2BAA2B,CAAA,CAAE,MAAM,GAC7C,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,QAAK,IAAA,EAAI,IAAA,EAAC,WAAS,IAAA,EAAC,cAAA,EAAe,eAAA,EAAgB,UAAA,EAAW,QAAA,EAC7D,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAE,QAAA,EAAS,CAAA;AAAA,sBACrB,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EACR,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,YAAA,EAAY,CAAA,CAAE,IAAA,CAAK,QAAQ,EAAE,MAAM,CAAA;AAAA,UACnC,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,EAAU,aAAA;AAAA,UACV,OAAA,EAAQ,WAAA;AAAA,UACR,KAAA,EAAM,SAAA;AAAA,UACN,WAAA,EAAY,OAAA;AAAA,UACZ,OAAA,EAAS,QAAA;AAAA,UACT,IAAA,EAAK,OAAA;AAAA,UACL,WAAW,OAAA,CAAQ,YAAA;AAAA,UAElB,QAAA,EAAA,CAAA,CAAE,IAAA,CAAK,QAAQ,CAAA,CAAE,MAAM;AAAA;AAAA,OAC1B,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,OAAA,CAAQ,SAAA,GAAY;AAAA,EAClB,aAAa,SAAA,CAAU,MAAA;AAAA,EACvB,iBAAiB,SAAA,CAAU,MAAA;AAAA,EAC3B,cAAc,SAAA,CAAU,MAAA;AAAA,EACxB,MAAM,SAAA,CAAU,MAAA;AAAA,EAChB,OAAO,SAAA,CAAU,MAAA;AAAA,EACjB,OAAO,SAAA,CAAU,KAAA;AAAA,EACjB,MAAM,SAAA,CAAU,IAAA;AAAA,EAChB,iBAAiB,SAAA,CAAU,IAAA;AAAA,EAC3B,UAAU,SAAA,CAAU,IAAA;AAAA,EACpB,MAAA,EAAQ,UAAU,KAAA,CAAM;AAAA,IACtB,IAAA,EAAM,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,IAC/D,YAAA,EAAc,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,IACvE,aAAA,EAAe,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,IACxE,KAAA,EAAO,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,IAChE,QAAQ,SAAA,CAAU,MAAA;AAAA,IAClB,OAAO,SAAA,CAAU,MAAA;AAAA,IACjB,OAAA,EAAS,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,IAClE,cAAA,EAAgB,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,IACzE,OAAA,EAAS,UAAU,SAAA,CAAU,CAAC,UAAU,MAAA,EAAQ,SAAA,CAAU,OAAO,CAAC;AAAA,GACnE;AACH,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"Contact.js","sources":["../../src/Contact/Mode.jsx","../../src/Contact/Input.jsx","../../src/Contact/Contact.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Card from '@mui/material/Card';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport CardContent from '@mui/material/CardContent';\nimport Typography from '@mui/material/Typography';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Radio from '@mui/material/Radio';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport { Warning as WarningIcon } from '../Icons/Warning';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n backgroundColor: theme.palette.secondary.dark,\n boxShadow: 'none',\n padding: theme.spacing(2),\n width: '100%',\n height: '100%',\n },\n title: {\n padding: 0,\n ...R.pathOr({}, ['mixins', 'share', 'title'], theme),\n },\n content: {\n padding: theme.spacing(1, 0),\n '&:last-child': {\n padding: theme.spacing(1, 0),\n },\n },\n label: theme.typography.body2,\n warning: {\n marginLeft: theme.spacing(0.5),\n width: 'unset',\n fontSize: 'inherit',\n height: '1.3em',\n ...R.pathOr({}, ['mixins', 'share', 'warning'], theme),\n },\n}));\n\nconst Warning = ({ title }) => {\n const classes = useStyles();\n const theme = useTheme();\n const warningColor = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n const warningTextColor = theme.palette.getContrastText(warningColor);\n\n return (\n <Tooltip\n className={classes.warning}\n title={title}\n tabIndex={0}\n variant=\"warning\"\n aria-hidden={false}\n placement=\"bottom\"\n PopperProps={{\n placement: {\n flip: {\n behavior: ['bottom', 'top', 'left', 'right'],\n },\n },\n }}\n >\n <WarningIcon pathBackgroundColor={warningColor} pathColor={warningTextColor} />\n </Tooltip>\n );\n};\n\nWarning.propTypes = {\n title: PropTypes.string,\n};\n\nconst EMPTY_MODES = [];\n\nconst Mode = ({ changeMode, mode, modes = EMPTY_MODES, title }) => {\n const classes = useStyles();\n return (\n <Card className={classes.container}>\n <CardContent className={classes.content}>\n <Typography className={classes.title} aria-label={title} tabIndex={0}>\n {title}\n </Typography>\n <RadioGroup onChange={(e) => changeMode(e.target.value)} value={mode}>\n {R.map(({ label, value, warningMessage }) => (\n <FormControlLabel\n classes={{ label: classes.label }}\n key={value}\n control={<Radio variant=\"outlined\" color=\"primary\" />}\n label={\n <span>\n {label}\n {warningMessage && <Warning title={warningMessage} />}\n </span>\n }\n aria-label={label}\n value={value}\n />\n ))(modes)}\n </RadioGroup>\n </CardContent>\n </Card>\n );\n};\n\nMode.propTypes = {\n changeMode: PropTypes.func,\n mode: PropTypes.string,\n modes: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n value: PropTypes.string,\n warningMessage: PropTypes.string,\n })\n ),\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n};\n\nexport default Mode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TextField from '@mui/material/TextField';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport IconButton from '@mui/material/IconButton';\nimport { Done } from '@mui/icons-material';\nimport { withInput } from '../Input/with-input';\n\nconst useStyles = makeStyles(() => ({\n visibility: {\n visibility: 'hidden',\n },\n}));\n\nconst LefttIcon = ({ Icon }) => <Icon />;\n\nLefttIcon.propTypes = {\n Icon: PropTypes.object,\n};\n\nconst RightIcon = ({ onSubmit, Icon = Done }) => (\n <IconButton color=\"primary\" onClick={() => onSubmit()} size=\"small\">\n <Icon />\n </IconButton>\n);\n\nRightIcon.propTypes = {\n Icon: PropTypes.object,\n onSubmit: PropTypes.func,\n classes: PropTypes.object,\n};\n\nconst MyInput = ({\n id,\n label,\n name,\n placeholder,\n leftIcon,\n rightIcon,\n value,\n type,\n onChange,\n onSubmit,\n fullWidth,\n withValidationIcon,\n textFieldProps,\n inputProps,\n endAdornment,\n}) => {\n const classes = useStyles();\n const startAdornment = R.isNil(leftIcon) ? null : (\n <InputAdornment position=\"start\">\n <LefttIcon Icon={leftIcon} />\n </InputAdornment>\n );\n const endMyadornment = R.or(withValidationIcon, !R.isNil(rightIcon)) ? (\n <InputAdornment position=\"end\" className={cx({ [classes.visibility]: R.isEmpty(value) })}>\n <RightIcon onSubmit={onSubmit} Icon={rightIcon} />\n </InputAdornment>\n ) : null;\n\n const onEnterLabel = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n if (R.is(Function, onSubmit)) {\n onSubmit();\n }\n }\n };\n\n return (\n <TextField\n data-testid=\"input-test-id\"\n margin=\"dense\"\n fullWidth={fullWidth}\n id={id}\n name={name}\n type={type}\n label={label}\n value={value}\n variant=\"outlined\"\n placeholder={placeholder}\n onChange={onChange}\n onKeyPress={onEnterLabel}\n InputProps={{\n startAdornment,\n endAdornment: R.isNil(endAdornment) ? endMyadornment : endAdornment,\n }}\n inputProps={inputProps}\n {...textFieldProps}\n />\n );\n};\n\nMyInput.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n leftIcon: PropTypes.object,\n rightIcon: PropTypes.object,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n type: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n fullWidth: PropTypes.bool,\n withValidationIcon: PropTypes.bool,\n textFieldProps: PropTypes.object,\n inputProps: PropTypes.object,\n endAdornment: PropTypes.node,\n};\n\nexport default withInput(MyInput);\n","import React, { useEffect, useState } from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Paper from '@mui/material/Paper';\nimport TextareaAutosize from '@mui/material/TextareaAutosize';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Typography from '@mui/material/Typography';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { validate as getIsValidEmail } from 'isemail';\nimport Mode from './Mode';\nimport Input from './Input';\nimport { Button } from '../Button/Button';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n padding: theme.spacing(2),\n },\n box: {\n padding: theme.spacing(0.5),\n },\n emailReasonMessage: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n backgroundColor: R.path(['palette', 'tertiary', 'dark'])(theme) || theme.palette.grey[100],\n padding: theme.spacing(2),\n },\n agreement: {\n fontSize: '1.0625rem',\n lineHeight: '1.6',\n },\n policy: {\n color: theme.palette.primary.main,\n fontSize: '1.0625rem',\n lineHeight: '1.6',\n },\n textarea: {\n width: '100%',\n padding: theme.spacing(1),\n },\n textareaError: {\n borderColor: theme.palette.error.main,\n borderWidth: theme.spacing(0.25),\n },\n}));\n\nexport const Contact = ({\n modes,\n defaultMode = 'question',\n defaultFullName,\n defaultEmail,\n labels,\n send,\n isSubmitDisable,\n children,\n isAllContact = false,\n}) => {\n const classes = useStyles();\n\n const [mode, setMode] = useState(defaultMode);\n const [title, setTitle] = useState('');\n const [name, setName] = useState(defaultFullName || '');\n const [organisation, setOrganisation] = useState('');\n const [email, setEmail] = useState(defaultEmail || '');\n const [subject, setSubject] = useState('');\n const [emailHasError, setEmailError] = useState(false);\n const [details, setDetails] = useState('');\n const [checked, setChecked] = useState(false);\n const [isSendDisable, setSendDisable] = useState(true);\n const [detailsHasError, setDetailsError] = useState(false);\n const checkEmail = (value) => {\n if (getIsValidEmail(value) && R.test(/^\\S+@\\S+\\.\\S+$/, value)) {\n return setEmailError(false);\n }\n return setEmailError(true);\n };\n\n const checkDetails = (value) => {\n if (R.isEmpty(value)) {\n return setDetailsError(true);\n }\n return setDetailsError(false);\n };\n\n const onSubmit = () => {\n if (R.is(Function)(send))\n return send({\n mode,\n title,\n name,\n organisation,\n email,\n details,\n checkbox: checked,\n subject,\n });\n };\n\n useEffect(() => {\n if (R.isEmpty(email)) return setSendDisable(true);\n if (R.isEmpty(details)) return setSendDisable(true);\n if (emailHasError) return setSendDisable(true);\n if (detailsHasError) return setSendDisable(true);\n return setSendDisable(isSubmitDisable || false);\n }, [emailHasError, detailsHasError, email, details, isSubmitDisable]);\n\n return (\n <Grid container className={classes.paper} data-testid=\"contact-test-id\">\n <Grid item container xs={12} md={12} justifyContent=\"space-between\">\n <Grid item xs={12} sm={12} md={6}>\n <Mode\n changeMode={setMode}\n modes={modes}\n mode={mode}\n title={R.prop('modeTitle')(labels)}\n />\n </Grid>\n <Grid item container xs={12} sm={12} md={6} flex-direction=\"column\">\n <Grid item xs={12}>\n <Paper elevation={0} className={classes.emailReasonMessage}>\n {R.prop('message')(R.find(R.propEq('value', mode))(modes))}\n </Paper>\n </Grid>\n </Grid>\n </Grid>\n {isAllContact && (\n <Grid item xs={12} sm={6} className={classes.box}>\n <Input\n variant=\"outlined\"\n label={labels.personalTitle}\n name=\"title\"\n type=\"text\"\n fullWidth\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n isControlled\n />\n </Grid>\n )}\n {isAllContact && (\n <Grid item xs={12} sm={6} className={classes.box}>\n <Input\n variant=\"outlined\"\n isControlled\n label={labels.name}\n name=\"name\"\n type=\"text\"\n onChange={(e) => setName(e.target.value)}\n value={name}\n fullWidth\n />\n </Grid>\n )}\n <Grid item xs={12} sm={isAllContact ? 6 : 12} className={classes.box}>\n <Input\n inputProps={{\n 'aria-label': R.prop('email')(labels),\n autoComplete: 'email',\n onBlur: () => checkEmail(email),\n }}\n label={R.prop('email')(labels)}\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n variant=\"outlined\"\n fullWidth\n isControlled\n defaultValue={defaultEmail}\n textFieldProps={{ error: emailHasError }}\n />\n </Grid>\n {isAllContact && (\n <Grid item xs={12} sm={6} className={classes.box}>\n <Input\n variant=\"outlined\"\n isControlled\n label={labels.organisation}\n type=\"text\"\n name=\"organisation\"\n onChange={(e) => setOrganisation(e.target.value)}\n value={organisation}\n fullWidth\n />\n </Grid>\n )}\n <Grid item xs={12} md={12} className={classes.box}>\n <Input\n variant=\"outlined\"\n isControlled\n label={labels.subject}\n name=\"subject\"\n type=\"text\"\n onChange={(e) => setSubject(e.target.value)}\n value={subject}\n fullWidth\n />\n </Grid>\n <Grid item xs={12} md={12} className={classes.box}>\n <TextareaAutosize\n name=\"details\"\n onChange={(e) => setDetails(e.target.value)}\n className={cx(classes.textarea, { [classes.textareaError]: detailsHasError })}\n aria-label={R.prop('details')(labels)}\n minRows={6}\n placeholder={R.prop('details')(labels)}\n value={details}\n onBlur={() => checkDetails(details)}\n />\n </Grid>\n <Grid item container justifyContent=\"space-between\">\n <Grid item>\n <FormControlLabel\n control={\n <Checkbox\n name=\"checkedB\"\n color=\"primary\"\n tabIndex={0}\n inputProps={{\n onKeyDown: (e) => {\n if (e.key === 'Enter') {\n setChecked(!checked);\n }\n },\n onKeyUp: (e) => {\n if (e.key === ' ') {\n setChecked(!checked);\n }\n },\n }}\n />\n }\n label={\n <Typography className={classes.agreement}>{R.prop('checkbox')(labels)}</Typography>\n }\n checked={checked}\n aria-checked={checked}\n tabIndex={0}\n aria-label={R.prop('checkbox')(labels)}\n onChange={(e) => setChecked(e.target.checked)}\n />\n </Grid>\n <Grid item>\n <Typography className={classes.policy} style={{ paddingTop: 8 }}>\n {R.prop('organisationPrivacyPolicy')(labels)}\n </Typography>\n </Grid>\n </Grid>\n <Grid item container justifyContent=\"space-between\" alignItems=\"center\">\n <Grid item>{children}</Grid>\n <Grid item>\n <Button\n aria-label={R.prop('submit')(labels)}\n type=\"submit\"\n disabled={isSendDisable}\n variant=\"contained\"\n color=\"primary\"\n alternative=\"siscc\"\n onClick={onSubmit}\n size=\"large\"\n className={classes.submitButton}\n >\n {R.prop('submit')(labels)}\n </Button>\n </Grid>\n </Grid>\n </Grid>\n );\n};\n\nContact.propTypes = {\n defaultMode: PropTypes.string,\n defaultFullName: PropTypes.string,\n defaultEmail: PropTypes.string,\n lang: PropTypes.string,\n theme: PropTypes.string,\n modes: PropTypes.array,\n send: PropTypes.func,\n isSubmitDisable: PropTypes.bool,\n children: PropTypes.node,\n labels: PropTypes.shape({\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n organisation: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n personalTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n submit: PropTypes.string,\n email: PropTypes.string,\n details: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n contactForHelp: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n subject: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n }),\n};\n"],"names":["useStyles","WarningIcon","getIsValidEmail"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import makeStyles from '@mui/styles/makeStyles';
|
|
|
10
10
|
import { visuallyHidden } from '@mui/utils';
|
|
11
11
|
import { Tooltip } from '../Tooltip/Tooltip.js';
|
|
12
12
|
import { T4_BREAKPOINTS } from '../theme/theme.js';
|
|
13
|
-
import { u as useKeyboardEscapeHandler } from '../chunks/useKeybordEscapeHandler-
|
|
13
|
+
import { u as useKeyboardEscapeHandler } from '../chunks/useKeybordEscapeHandler-DZZOPw7k.js';
|
|
14
14
|
|
|
15
15
|
const HEIGHT = 42;
|
|
16
16
|
const useStyles = makeStyles((theme) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataFooter.js","sources":["../../src/DataFooter/DataFooter.jsx"],"sourcesContent":["import React, { Fragment } from 'react';\nimport cx from 'classnames';\nimport * as R from 'ramda';\nimport useSize from '@react-hook/size';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { visuallyHidden } from '@mui/utils';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport { T4_BREAKPOINTS } from '../theme';\nimport useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';\n\nconst HEIGHT = 42;\n\nconst useStyles = makeStyles(theme => ({\n footer: {\n minHeight: HEIGHT,\n },\n legend: {\n flexGrow: 1,\n },\n copyright: {\n padding: 0,\n },\n source: {\n padding: theme.spacing(0, 1, 0, 1),\n },\n logo: {\n height: HEIGHT / 2,\n display: 'flex',\n },\n sticky: {\n position: 'sticky',\n right: 0,\n },\n}));\n\nexport const DataFooter = ({ logo, source, copyright, legend, isSticky = false }) => {\n const target = React.useRef(null);\n const [width] = useSize(target);\n const isWidthUp = R.gt(width);\n const isSourced = source && source.label && source.link;\n const isCopyrighted = copyright && copyright.label && copyright.content;\n const classes = useStyles();\n const { open, setOpen } = useKeyboardEscapeHandler();\n const typoSize = isWidthUp(T4_BREAKPOINTS.lg) ? 14 : 12;\n if (!isWidthUp(T4_BREAKPOINTS.xs)) return <Grid ref={target} />;\n\n return (\n <Grid\n ref={target}\n container\n className={classes.footer}\n direction=\"row\"\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n >\n <Grid item className={classes.legend}>\n {isWidthUp(T4_BREAKPOINTS.sm) && legend}\n </Grid>\n <Grid item style={{ alignSelf: 'flex-end' }} className={cx({ [classes.sticky]: isSticky })}>\n <Grid\n container\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n className={classes.footer}\n spacing={0}\n >\n <Grid\n item\n className={\n isWidthUp(T4_BREAKPOINTS.sm) && isSourced ? classes.copyright : classes.source\n }\n >\n {isCopyrighted && (\n <Fragment>\n <Tooltip\n title={<Typography variant=\"body2\">{copyright.content}</Typography>}\n aria-label={copyright.content}\n variant=\"light\"\n tabIndex={0}\n aria-hidden={false}\n placement=\"top\"\n enterNextDelay={100}\n arrow\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n >\n <Typography variant=\"body2\" style={{ cursor: 'pointer', fontSize: typoSize }}>\n {copyright.label}\n </Typography>\n </Tooltip>\n <Typography sx={visuallyHidden}>{copyright.content}</Typography>\n </Fragment>\n )}\n </Grid>\n {isWidthUp(T4_BREAKPOINTS.sm) && isSourced && (\n <Grid item className={classes.source}>\n <Typography variant=\"body2\" style={{ fontSize: typoSize }}>\n <Link href={source.link} rel=\"noopener noreferrer\" target=\"_blank\" variant=\"body2\">\n {source.label}\n </Link>\n </Typography>\n </Grid>\n )}\n {isWidthUp(T4_BREAKPOINTS.xs) && logo && (\n <Grid item>\n <img src={logo} alt=\"logo\" className={classes.logo} />\n </Grid>\n )}\n </Grid>\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAaA,MAAM,MAAA,GAAS,EAAA;AAEf,MAAM,SAAA,GAAY,
|
|
1
|
+
{"version":3,"file":"DataFooter.js","sources":["../../src/DataFooter/DataFooter.jsx"],"sourcesContent":["import React, { Fragment } from 'react';\nimport cx from 'classnames';\nimport * as R from 'ramda';\nimport useSize from '@react-hook/size';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { visuallyHidden } from '@mui/utils';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport { T4_BREAKPOINTS } from '../theme';\nimport useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';\n\nconst HEIGHT = 42;\n\nconst useStyles = makeStyles((theme) => ({\n footer: {\n minHeight: HEIGHT,\n },\n legend: {\n flexGrow: 1,\n },\n copyright: {\n padding: 0,\n },\n source: {\n padding: theme.spacing(0, 1, 0, 1),\n },\n logo: {\n height: HEIGHT / 2,\n display: 'flex',\n },\n sticky: {\n position: 'sticky',\n right: 0,\n },\n}));\n\nexport const DataFooter = ({ logo, source, copyright, legend, isSticky = false }) => {\n const target = React.useRef(null);\n const [width] = useSize(target);\n const isWidthUp = R.gt(width);\n const isSourced = source && source.label && source.link;\n const isCopyrighted = copyright && copyright.label && copyright.content;\n const classes = useStyles();\n const { open, setOpen } = useKeyboardEscapeHandler();\n const typoSize = isWidthUp(T4_BREAKPOINTS.lg) ? 14 : 12;\n if (!isWidthUp(T4_BREAKPOINTS.xs)) return <Grid ref={target} />;\n\n return (\n <Grid\n ref={target}\n container\n className={classes.footer}\n direction=\"row\"\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n >\n <Grid item className={classes.legend}>\n {isWidthUp(T4_BREAKPOINTS.sm) && legend}\n </Grid>\n <Grid item style={{ alignSelf: 'flex-end' }} className={cx({ [classes.sticky]: isSticky })}>\n <Grid\n container\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n className={classes.footer}\n spacing={0}\n >\n <Grid\n item\n className={\n isWidthUp(T4_BREAKPOINTS.sm) && isSourced ? classes.copyright : classes.source\n }\n >\n {isCopyrighted && (\n <Fragment>\n <Tooltip\n title={<Typography variant=\"body2\">{copyright.content}</Typography>}\n aria-label={copyright.content}\n variant=\"light\"\n tabIndex={0}\n aria-hidden={false}\n placement=\"top\"\n enterNextDelay={100}\n arrow\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n >\n <Typography variant=\"body2\" style={{ cursor: 'pointer', fontSize: typoSize }}>\n {copyright.label}\n </Typography>\n </Tooltip>\n <Typography sx={visuallyHidden}>{copyright.content}</Typography>\n </Fragment>\n )}\n </Grid>\n {isWidthUp(T4_BREAKPOINTS.sm) && isSourced && (\n <Grid item className={classes.source}>\n <Typography variant=\"body2\" style={{ fontSize: typoSize }}>\n <Link href={source.link} rel=\"noopener noreferrer\" target=\"_blank\" variant=\"body2\">\n {source.label}\n </Link>\n </Typography>\n </Grid>\n )}\n {isWidthUp(T4_BREAKPOINTS.xs) && logo && (\n <Grid item>\n <img src={logo} alt=\"logo\" className={classes.logo} />\n </Grid>\n )}\n </Grid>\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAaA,MAAM,MAAA,GAAS,EAAA;AAEf,MAAM,SAAA,GAAY,UAAA,CAAW,CAAC,KAAA,MAAW;AAAA,EACvC,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAS,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC;AAAA,GACnC;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,QAAQ,MAAA,GAAS,CAAA;AAAA,IACjB,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO;AAAA;AAEX,CAAA,CAAE,CAAA;AAEK,MAAM,UAAA,GAAa,CAAC,EAAE,IAAA,EAAM,QAAQ,SAAA,EAAW,MAAA,EAAQ,QAAA,GAAW,KAAA,EAAM,KAAM;AACnF,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA;AAChC,EAAA,MAAM,CAAC,KAAK,CAAA,GAAI,OAAA,CAAQ,MAAM,CAAA;AAC9B,EAAA,MAAM,SAAA,GAAY,CAAA,CAAE,EAAA,CAAG,KAAK,CAAA;AAC5B,EAAA,MAAM,SAAA,GAAY,MAAA,IAAU,MAAA,CAAO,KAAA,IAAS,MAAA,CAAO,IAAA;AACnD,EAAA,MAAM,aAAA,GAAgB,SAAA,IAAa,SAAA,CAAU,KAAA,IAAS,SAAA,CAAU,OAAA;AAChE,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAI,wBAAA,EAAyB;AACnD,EAAA,MAAM,QAAA,GAAW,SAAA,CAAU,cAAA,CAAe,EAAE,IAAI,EAAA,GAAK,EAAA;AACrD,EAAA,IAAI,CAAC,UAAU,cAAA,CAAe,EAAE,GAAG,uBAAO,GAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,CAAA;AAE7D,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAS,IAAA;AAAA,MACT,WAAW,OAAA,CAAQ,MAAA;AAAA,MACnB,SAAA,EAAU,KAAA;AAAA,MACV,cAAA,EAAe,UAAA;AAAA,MACf,UAAA,EAAW,QAAA;AAAA,MAEX,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,SAAA,EAAW,OAAA,CAAQ,QAC3B,QAAA,EAAA,SAAA,CAAU,cAAA,CAAe,EAAE,CAAA,IAAK,MAAA,EACnC,CAAA;AAAA,4BACC,IAAA,EAAA,EAAK,IAAA,EAAI,MAAC,KAAA,EAAO,EAAE,WAAW,UAAA,EAAW,EAAG,SAAA,EAAW,EAAA,CAAG,EAAE,CAAC,OAAA,CAAQ,MAAM,GAAG,QAAA,EAAU,CAAA,EACvF,QAAA,kBAAA,IAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAS,IAAA;AAAA,YACT,cAAA,EAAe,UAAA;AAAA,YACf,UAAA,EAAW,QAAA;AAAA,YACX,WAAW,OAAA,CAAQ,MAAA;AAAA,YACnB,OAAA,EAAS,CAAA;AAAA,YAET,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAI,IAAA;AAAA,kBACJ,SAAA,EACE,UAAU,cAAA,CAAe,EAAE,KAAK,SAAA,GAAY,OAAA,CAAQ,YAAY,OAAA,CAAQ,MAAA;AAAA,kBAGzE,QAAA,EAAA,aAAA,yBACE,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,oCAAA,GAAA;AAAA,sBAAC,OAAA;AAAA,sBAAA;AAAA,wBACC,uBAAO,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,OAAA,EAAS,oBAAU,OAAA,EAAQ,CAAA;AAAA,wBACtD,cAAY,SAAA,CAAU,OAAA;AAAA,wBACtB,OAAA,EAAQ,OAAA;AAAA,wBACR,QAAA,EAAU,CAAA;AAAA,wBACV,aAAA,EAAa,KAAA;AAAA,wBACb,SAAA,EAAU,KAAA;AAAA,wBACV,cAAA,EAAgB,GAAA;AAAA,wBAChB,KAAA,EAAK,IAAA;AAAA,wBACL,IAAA;AAAA,wBACA,MAAA,EAAQ,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,wBAC1B,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,wBAE5B,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,OAAA,EAAQ,KAAA,EAAO,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,QAAA,EAAS,EACxE,QAAA,EAAA,SAAA,CAAU,KAAA,EACb;AAAA;AAAA,qBACF;AAAA,oCACA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAI,cAAA,EAAiB,oBAAU,OAAA,EAAQ;AAAA,mBAAA,EACrD;AAAA;AAAA,eAEJ;AAAA,cACC,SAAA,CAAU,cAAA,CAAe,EAAE,CAAA,IAAK,6BAC/B,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,WAAW,OAAA,CAAQ,MAAA,EAC5B,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,OAAA,EAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,UAAS,EACtD,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAM,OAAO,IAAA,EAAM,GAAA,EAAI,qBAAA,EAAsB,MAAA,EAAO,UAAS,OAAA,EAAQ,OAAA,EACxE,QAAA,EAAA,MAAA,CAAO,KAAA,EACV,GACF,CAAA,EACF,CAAA;AAAA,cAED,UAAU,cAAA,CAAe,EAAE,KAAK,IAAA,oBAC/B,GAAA,CAAC,QAAK,IAAA,EAAI,IAAA,EACR,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAK,IAAA,EAAM,GAAA,EAAI,QAAO,SAAA,EAAW,OAAA,CAAQ,MAAM,CAAA,EACtD;AAAA;AAAA;AAAA,SAEJ,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -26,14 +26,15 @@ Title.propTypes = {
|
|
|
26
26
|
header: PropTypes.string
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
const
|
|
29
|
+
const EMPTY_CONTENT = [];
|
|
30
|
+
const TooltipHeader = ({ children, classes, HTMLRenderer, content = EMPTY_CONTENT }) => {
|
|
30
31
|
if (R.isEmpty(content)) return null;
|
|
31
32
|
const listContent = /* @__PURE__ */ jsx("ul", { className: classes.content, children: R.addIndex(R.map)(
|
|
32
33
|
({ header, label, sub = [] }, index) => /* @__PURE__ */ jsxs("li", { children: [
|
|
33
34
|
/* @__PURE__ */ jsx(Title, { header }),
|
|
34
35
|
R.is(Function, HTMLRenderer) ? /* @__PURE__ */ jsx(HTMLRenderer, { html: label }) : label,
|
|
35
36
|
R.not(R.isEmpty(sub)) && /* @__PURE__ */ jsx("ul", { className: classes.subContent, children: R.addIndex(R.map)(
|
|
36
|
-
({ label:
|
|
37
|
+
({ label: subLabel }, subIndex) => /* @__PURE__ */ jsx("li", { children: R.is(Function, HTMLRenderer) ? /* @__PURE__ */ jsx(HTMLRenderer, { html: subLabel }) : subLabel }, `${subLabel}-${subIndex}`),
|
|
37
38
|
sub
|
|
38
39
|
) })
|
|
39
40
|
] }, `${label}-${index}`),
|
|
@@ -63,7 +64,7 @@ const Flags = ({ classes, content, HTMLRenderer }) => {
|
|
|
63
64
|
const codes = R.pipe(R.pluck("code"), R.filter(R.identity))(content);
|
|
64
65
|
const hasCodes = !R.isEmpty(codes);
|
|
65
66
|
const hasUncoded = R.length(codes) !== R.length(content);
|
|
66
|
-
const joinedCodes = R.pipe(R.join(","), (
|
|
67
|
+
const joinedCodes = R.pipe(R.join(","), (joined) => hasUncoded ? `${joined},` : joined)(codes);
|
|
67
68
|
return /* @__PURE__ */ jsx(TooltipHeader, { classes, content, HTMLRenderer, children: /* @__PURE__ */ jsxs("sup", { className: classes.svgWrapper, children: [
|
|
68
69
|
hasCodes && joinedCodes,
|
|
69
70
|
hasUncoded && /* @__PURE__ */ jsx(Asterisk, { className: classes.svg })
|
|
@@ -91,7 +92,7 @@ const getReducedContent = ({ isWidthLess, ...rest }) =>
|
|
|
91
92
|
title: R.of,
|
|
92
93
|
subtitle: R.identity,
|
|
93
94
|
uprs: R.of,
|
|
94
|
-
disclaimer: label => [{ label }],
|
|
95
|
+
disclaimer: (label) => [{ label }],
|
|
95
96
|
}),
|
|
96
97
|
R.props(['title', 'subtitle', 'uprs', 'disclaimer']),
|
|
97
98
|
R.cond([
|
|
@@ -100,7 +101,7 @@ const getReducedContent = ({ isWidthLess, ...rest }) =>
|
|
|
100
101
|
[R.T, R.always([])],
|
|
101
102
|
]),
|
|
102
103
|
R.unnest,
|
|
103
|
-
R.reject(R.isNil)
|
|
104
|
+
R.reject(R.isNil)
|
|
104
105
|
)(rest);
|
|
105
106
|
|
|
106
107
|
const useStyles = makeStyles((theme) => ({
|
|
@@ -188,10 +189,11 @@ const useStyles = makeStyles((theme) => ({
|
|
|
188
189
|
}
|
|
189
190
|
}));
|
|
190
191
|
const BasicHTMLRenderer = ({ html, ...rest }) => /* @__PURE__ */ jsx("span", { dangerouslySetInnerHTML: { __html: html }, ...rest });
|
|
192
|
+
const EMPTY_SUBTITLE = [];
|
|
191
193
|
const DataHeader = ({
|
|
192
194
|
children,
|
|
193
195
|
title,
|
|
194
|
-
subtitle =
|
|
196
|
+
subtitle = EMPTY_SUBTITLE,
|
|
195
197
|
combinations,
|
|
196
198
|
disclaimer,
|
|
197
199
|
sideProps,
|