{"version":3,"file":"BreadCrumbMenu.mjs","names":["React","Breadcrumbs","Typography","makeStyles","Link","RouterLink","Route","useHistory","useTranslation","useStyles","theme","link","textDecoration","color","props","palette","getContrastText","primary","main","secondary","SYSTEM_ROUTE_LABELS","BreadCrumbMenu","$","_c","classes","root","breadCrumbAltLabelList","t0","t1","undefined","t","history","forEach","_temp","t2","breadCrumbLabelList","t3","t4","location","pathnames","pathname","split","filter","_temp2","_temp3","useLabel","includes","length","state","label","defaultValue","map","value","index","last","to","slice","join","capitalValue","toUpperCase","crumb","toLowerCase","x","name"],"sources":["../../../../src/UI/inputs/link/BreadCrumbMenu.jsx"],"sourcesContent":["import React from 'react';\nimport { Breadcrumbs, Typography, makeStyles } from '@material-ui/core';\nimport { Link as RouterLink, Link, Route, useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n  link: {\n    textDecoration: 'none',\n    color: (props) =>\n      props.color === 'primary'\n        ? theme?.palette?.getContrastText(theme.palette.primary.main)\n        : theme?.palette?.getContrastText(theme.palette.secondary.main)\n  }\n}));\n\nconst SYSTEM_ROUTE_LABELS = [\n  'inquiry',\n  'page',\n  'menupage',\n  'reports',\n  'virtual',\n  'workflowtask'\n];\n\nexport const BreadCrumbMenu = (props) => {\n  const classes = useStyles(props);\n  const { root, breadCrumbAltLabelList = [] } = props;\n  const { t } = useTranslation();\n  const history = useHistory();\n\n  breadCrumbAltLabelList.forEach((crumb) => crumb.toLowerCase());\n\n  const breadCrumbLabelList = [\n    ...SYSTEM_ROUTE_LABELS,\n    ...breadCrumbAltLabelList\n  ];\n\n  return (\n    <Route>\n      {({ location }) => {\n        const pathnames = location.pathname.split('/').filter((x) => x);\n        pathnames.forEach((name) => name.toLowerCase());\n        // Is true if the 2nd last path part contains the word in the altLabelList\n        const useLabel = breadCrumbLabelList.includes(\n          pathnames[pathnames.length - 2]\n        );\n\n        // Update the last path part to use the menu label if there is one\n        if (useLabel && history?.location?.state?.label) {\n          pathnames[pathnames.length - 1] = history.location.state.label;\n        }\n\n        return (\n          <Breadcrumbs\n            aria-label={t('ui.breadcrumb.ariaLabel', {\n              defaultValue: 'Breadcrumb'\n            })}\n          >\n            <Link color='inherit' to='/' className={classes.link}>\n              {t(root)}\n            </Link>\n            {pathnames.map((value, index) => {\n              if (!!useLabel && index === 0) {\n                return null;\n              }\n              const last = index === pathnames.length - 1;\n              const to = `/${pathnames.slice(0, index + 1).join('/')}`;\n              const capitalValue = value[0].toUpperCase() + value.slice(1);\n\n              return last ? (\n                <Typography className={classes.link} key={to}>\n                  {t(capitalValue)}\n                </Typography>\n              ) : (\n                <RouterLink to={to} key={to} className={classes.link}>\n                  {t(capitalValue)}\n                </RouterLink>\n              );\n            })}\n          </Breadcrumbs>\n        );\n      }}\n    </Route>\n  );\n};\n"],"mappings":"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"}