{"version":3,"sources":["../../../node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDownward.js","../../../node_modules/@material-ui/core/esm/TableSortLabel/TableSortLabel.js","views/TestSearchV2/TestSearchResults.tsx","views/TestSearchV2/Categories.tsx","views/TestSearchV2/TestSearchV2Container.tsx","views/TestSearchV2/index.ts"],"names":["ArrowDownward","Object","createSvgIcon","react","d","TableSortLabel_TableSortLabel","props","ref","_props$active","active","children","classes","className","_props$direction","direction","_props$hideSortIcon","hideSortIcon","_props$IconComponent","IconComponent","other","objectWithoutProperties","ButtonBase","esm_extends","clsx_m","root","component","disableRipple","icon","concat","capitalize","esm_TableSortLabel_TableSortLabel","withStyles","theme","cursor","display","justifyContent","flexDirection","alignItems","&:focus","color","palette","text","secondary","&:hover","& $icon","opacity","&$active","primary","&& $icon","fontSize","marginRight","marginLeft","transition","transitions","create","duration","shorter","userSelect","iconDirectionDesc","transform","iconDirectionAsc","name","deepCopy","require","useStyles","makeStyles","noTest","fonts","sizes","xl","fontWeight","colors","powderBlue","width","textAlign","table","fontFamily","tableHeader","paddingLeft","paddingRight","tableRowCell","paddingBottom","verticalAlign","reqButton","textTransform","white","backgroundColor","deepSeaBlue","padding","height","lastColumnCell","paddingTop","smallGridContainer","buttonDiv","float","buttonWrapper","infoIcon","TestSearchResults","_ref","tests","isLoading","enqueueSnackbar","useSnackbar","_useState","useState","_useState2","slicedToArray","sortedTets","setSortedTets","_React$useState","React","_React$useState2","order","setOrder","_React$useState3","_React$useState4","orderBy","setOrderBy","useEffect","window","addEventListener","currentTests","sortTests","sortBy","newOrder","sortedTests","sort","a","b","code","turnAroundTimeText","fieldAndValue","field","value","link","bold","react_default","createElement","Fragment","style","blueLink","Link","href","underline","getButton","test","isReanalysisTest","tags","includes","hasOrderSections","Tooltip","title","InfoOutlined","AddToCartButton","onClick","addToCart","variant","handleAddToCart","disabled","disableAddToCartReason","length","disabledReason","undefined","Button","path","requisitionLink","open","testLink","testCodeNumber","Number","isNaN","displayTestCode","Hidden","smDown","TableContainer","Paper","Table","size","aria-label","TableHead","TableRow","TableCell","minWidth","align","appConfig","features","isPriceDisabled","TableBody","map","key","scope","shortDescription","cptCodes","price","mdUp","index","Grid","container","spacing","gridContainerSpacing","item","xs","Divider","createStyles","categoryContainer","margin","&:hover > img","transformOrigin","background","seaShell","marginTop","flexWrap","marginBottom","categoryText","xxs","createTheme","breakpoints","values","sm","md","lg","withRouter","history","mainCategories","setMainCategories","_useState3","_useState4","secondaryCategories","setSecondaryCategories","_ref2","asyncToGenerator","regenerator_default","mark","_callee","categories","_mainCategories","_secondaryCategories","wrap","_context","prev","next","testApi","getCategories","sent","sortByDisplayOrder","filter","x","parentCategoryId","stop","apply","this","arguments","ThemeProvider","id","catalogUrl","toLowerCase","src","displayName","toUpperCase","alt","components","searchWide","searchMobile","xxl","TestSearchV2Container","location","searchTerms","setSearchTerms","searchResults","setSearchResults","_useState5","_useState6","setLoading","_useState7","_useState8","showCategories","setShowCategories","runSearch","push","innerWidth","setWidth","mapToBriefDto","search","_ref3","_callee2","response","result","_context2","abrupt","searchDetails","testSummaryResults","sortByImportance","_x","keywordValues","queryString","parse","keywords","Array","isArray","join","document","hideLogin","centerStyle","searchText","placeholderText","handleChange","event","target","handleSubmit","LinearProgress","visibility","TestSearchV2_TestSearchResults","TestSearchV2_Categories"],"mappings":"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","file":"static/js/14.32f76a88.chunk.js","sourcesContent":["import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon(\n/*#__PURE__*/\nReact.createElement(\"path\", {\n  d: \"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownward');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ArrowDownwardIcon from '../internal/svg-icons/ArrowDownward';\nimport withStyles from '../styles/withStyles';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      cursor: 'pointer',\n      display: 'inline-flex',\n      justifyContent: 'flex-start',\n      flexDirection: 'inherit',\n      alignItems: 'center',\n      '&:focus': {\n        color: theme.palette.text.secondary\n      },\n      '&:hover': {\n        color: theme.palette.text.secondary,\n        '& $icon': {\n          opacity: 0.5\n        }\n      },\n      '&$active': {\n        color: theme.palette.text.primary,\n        // && instead of & is a workaround for https://github.com/cssinjs/jss/issues/1045\n        '&& $icon': {\n          opacity: 1,\n          color: theme.palette.text.secondary\n        }\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `active={true}`. */\n    active: {},\n\n    /* Styles applied to the icon component. */\n    icon: {\n      fontSize: 18,\n      marginRight: 4,\n      marginLeft: 4,\n      opacity: 0,\n      transition: theme.transitions.create(['opacity', 'transform'], {\n        duration: theme.transitions.duration.shorter\n      }),\n      userSelect: 'none'\n    },\n\n    /* Styles applied to the icon component if `direction=\"desc\"`. */\n    iconDirectionDesc: {\n      transform: 'rotate(0deg)'\n    },\n\n    /* Styles applied to the icon component if `direction=\"asc\"`. */\n    iconDirectionAsc: {\n      transform: 'rotate(180deg)'\n    }\n  };\n};\n/**\n * A button based label for placing inside `TableCell` for column sorting.\n */\n\nvar TableSortLabel =\n/*#__PURE__*/\nReact.forwardRef(function TableSortLabel(props, ref) {\n  var _props$active = props.active,\n      active = _props$active === void 0 ? false : _props$active,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$direction = props.direction,\n      direction = _props$direction === void 0 ? 'asc' : _props$direction,\n      _props$hideSortIcon = props.hideSortIcon,\n      hideSortIcon = _props$hideSortIcon === void 0 ? false : _props$hideSortIcon,\n      _props$IconComponent = props.IconComponent,\n      IconComponent = _props$IconComponent === void 0 ? ArrowDownwardIcon : _props$IconComponent,\n      other = _objectWithoutProperties(props, [\"active\", \"children\", \"classes\", \"className\", \"direction\", \"hideSortIcon\", \"IconComponent\"]);\n\n  return (\n    /*#__PURE__*/\n    React.createElement(ButtonBase, _extends({\n      className: clsx(classes.root, className, active && classes.active),\n      component: \"span\",\n      disableRipple: true,\n      ref: ref\n    }, other), children, hideSortIcon && !active ? null :\n    /*#__PURE__*/\n    React.createElement(IconComponent, {\n      className: clsx(classes.icon, classes[\"iconDirection\".concat(capitalize(direction))])\n    }))\n  );\n});\nprocess.env.NODE_ENV !== \"production\" ? TableSortLabel.propTypes = {\n  /**\n   * If `true`, the label will have the active styling (should be true for the sorted column).\n   */\n  active: PropTypes.bool,\n\n  /**\n   * Label contents, the arrow will be appended automatically.\n   */\n  children: PropTypes.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n\n  /**\n   * The current sort direction.\n   */\n  direction: PropTypes.oneOf(['asc', 'desc']),\n\n  /**\n   * Hide sort icon when active is false.\n   */\n  hideSortIcon: PropTypes.bool,\n\n  /**\n   * Sort icon to use.\n   */\n  IconComponent: PropTypes.elementType\n} : void 0;\nexport default withStyles(styles, {\n  name: 'MuiTableSortLabel'\n})(TableSortLabel);","import React, { FunctionComponent, useEffect, useState } from \"react\";\r\nimport { TestSummaryBriefDTO } from \"@bg/shared/lib/dal/tests\";\r\nimport { colors, fonts } from \"@bg/shared/lib/theme\";\r\nimport { gridContainerSpacing } from \"@bg/shared/lib/theme/themes\";\r\nimport {\r\n  Button,\r\n  Divider,\r\n  Grid,\r\n  Hidden,\r\n  Link,\r\n  makeStyles,\r\n  Paper,\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableContainer,\r\n  TableHead,\r\n  TableRow,\r\n  TableSortLabel,\r\n  Tooltip,\r\n} from \"@material-ui/core\";\r\nimport AddToCartButton from \"../TestCategory/AddToCartButton\";\r\nimport {\r\n  addToCart,\r\n  disableAddToCartReason,\r\n} from \"../Checkout/CheckoutContainer\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { InfoOutlined } from \"@material-ui/icons\";\r\n\r\nconst deepCopy = require(\"deepcopy\");\r\n\r\nconst useStyles = makeStyles({\r\n  noTest: {\r\n    fontSize: fonts.sizes.xl,\r\n    fontWeight: 100,\r\n    color: colors.powderBlue,\r\n    width: \"100%\",\r\n    textAlign: \"center\",\r\n  },\r\n  table: {\r\n    fontFamily: \"Roboto Condensed\",\r\n  },\r\n  tableHeader: {\r\n    fontWeight: \"bold\",\r\n    fontSize: \"1.1em\",\r\n    paddingLeft: 10,\r\n    paddingRight: 10,\r\n  },\r\n  tableRowCell: {\r\n    paddingBottom: 40,\r\n    paddingLeft: 10,\r\n    paddingRight: 10,\r\n    verticalAlign: \"top\",\r\n  },\r\n  reqButton: {\r\n    fontSize: \"0.85rem\",\r\n    textTransform: \"capitalize\",\r\n    color: colors.white,\r\n    backgroundColor: colors.deepSeaBlue,\r\n    padding: \"6px\",\r\n    height: \"2rem\",\r\n  },\r\n  lastColumnCell: {\r\n    verticalAlign: \"bottom\",\r\n    paddingTop: 40,\r\n  },\r\n  smallGridContainer: {\r\n    backgroundColor: \"white\",\r\n    padding: 10,\r\n  },\r\n  buttonDiv: {\r\n    float: \"right\",\r\n  },\r\n  buttonWrapper: {\r\n    display: \"flex\",\r\n    alignItems: \"center\",\r\n    justifyContent: \"flex-end\",\r\n  },\r\n  infoIcon: {\r\n    marginRight: \"2px\",\r\n  },\r\n});\r\n\r\ninterface TestSearchResultsProps {\r\n  tests?: TestSummaryBriefDTO[];\r\n  isLoading?: boolean;\r\n}\r\n\r\nconst TestSearchResults: FunctionComponent<TestSearchResultsProps> = ({\r\n  tests,\r\n  isLoading,\r\n}) => {\r\n  const classes = useStyles();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  const [sortedTets, setSortedTets] = useState<\r\n    TestSummaryBriefDTO[] | undefined\r\n  >(tests);\r\n  type Order = \"asc\" | \"desc\";\r\n  const initialOrder = \"desc\";\r\n  const [order, setOrder] = React.useState<Order>(initialOrder);\r\n  const [orderBy, setOrderBy] = React.useState(\"\");\r\n\r\n  useEffect(() => {\r\n    setSortedTets(tests);\r\n  }, [tests]);\r\n\r\n  window.addEventListener(\"storage\", () => {\r\n    const currentTests = deepCopy(sortedTets);\r\n    setSortedTets(currentTests);\r\n  });\r\n\r\n  const sortTests = (sortBy: string) => {\r\n    setOrderBy(sortBy);\r\n    let newOrder: Order = order === \"desc\" ? \"asc\" : \"desc\";\r\n    if (orderBy !== sortBy) {\r\n      newOrder = initialOrder;\r\n    }\r\n    setOrder(newOrder);\r\n    if (tests) {\r\n      let sortedTests = tests;\r\n      if (sortBy === \"name\") {\r\n        sortedTests = tests.sort((a, b) =>\r\n          newOrder === \"asc\"\r\n            ? a.name < b.name\r\n              ? 1\r\n              : -1\r\n            : a.name > b.name\r\n            ? 1\r\n            : -1,\r\n        );\r\n      } else if (sortBy === \"code\") {\r\n        sortedTests = tests.sort((a, b) =>\r\n          newOrder === \"asc\"\r\n            ? a.code < b.code\r\n              ? 1\r\n              : -1\r\n            : a.code > b.code\r\n            ? 1\r\n            : -1,\r\n        );\r\n      } else if (sortBy === \"tat\") {\r\n        sortedTests = tests.sort((a, b) =>\r\n          newOrder === \"asc\"\r\n            ? a.turnAroundTimeText &&\r\n              b.turnAroundTimeText &&\r\n              a.turnAroundTimeText < b.turnAroundTimeText\r\n              ? 1\r\n              : -1\r\n            : a.turnAroundTimeText &&\r\n              b.turnAroundTimeText &&\r\n              a.turnAroundTimeText > b.turnAroundTimeText\r\n            ? 1\r\n            : -1,\r\n        );\r\n      }\r\n      setSortedTets(sortedTests);\r\n    }\r\n  };\r\n\r\n  const handleAddToCart = (test: TestSummaryBriefDTO) => {\r\n    addToCart(test);\r\n    enqueueSnackbar(\"Test has been added to the Order\", {\r\n      variant: \"success\",\r\n    });\r\n  };\r\n\r\n  const openRequisition = (path?: string) => {\r\n    window.open(path);\r\n  };\r\n\r\n  const largeScreenTable = () => {\r\n    return (\r\n      <>\r\n        {sortedTets && sortedTets.length > 0 && (\r\n          <TableContainer component={Paper}>\r\n            <Table\r\n              className={classes.table}\r\n              size=\"small\"\r\n              aria-label=\"a dense table\"\r\n            >\r\n              <TableHead>\r\n                <TableRow>\r\n                  <TableCell\r\n                    className={classes.tableHeader}\r\n                    style={{ minWidth: 140 }}\r\n                  >\r\n                    <TableSortLabel\r\n                      active={orderBy === \"name\"}\r\n                      direction={order}\r\n                      onClick={() => sortTests(\"name\")}\r\n                    >\r\n                      Name\r\n                    </TableSortLabel>\r\n                  </TableCell>\r\n                  <TableCell\r\n                    align=\"left\"\r\n                    className={classes.tableHeader}\r\n                    style={{ minWidth: 115 }}\r\n                  >\r\n                    <TableSortLabel\r\n                      active={orderBy === \"code\"}\r\n                      direction={order}\r\n                      onClick={() => sortTests(\"code\")}\r\n                    >\r\n                      Test Code\r\n                    </TableSortLabel>\r\n                  </TableCell>\r\n                  <TableCell align=\"left\" className={classes.tableHeader}>\r\n                    Description\r\n                  </TableCell>\r\n                  <TableCell\r\n                    align=\"left\"\r\n                    className={classes.tableHeader}\r\n                    style={{ minWidth: 70 }}\r\n                  >\r\n                    <TableSortLabel\r\n                      active={orderBy === \"tat\"}\r\n                      direction={order}\r\n                      onClick={() => sortTests(\"tat\")}\r\n                    >\r\n                      TAT\r\n                    </TableSortLabel>\r\n                  </TableCell>\r\n                  <TableCell\r\n                    align=\"left\"\r\n                    className={classes.tableHeader}\r\n                    style={{ minWidth: 70 }}\r\n                  >\r\n                    CPT Codes(s)\r\n                  </TableCell>\r\n                  {!window.appConfig.features.isPriceDisabled && (\r\n                    <TableCell align=\"right\" className={classes.tableHeader}>\r\n                      Price\r\n                    </TableCell>\r\n                  )}\r\n                  <TableCell align=\"right\" className={classes.tableHeader} />\r\n                </TableRow>\r\n              </TableHead>\r\n              <TableBody>\r\n                {sortedTets.map((test) => (\r\n                  <TableRow key={test.code}>\r\n                    <TableCell\r\n                      component=\"th\"\r\n                      scope=\"row\"\r\n                      className={classes.tableRowCell}\r\n                    >\r\n                      {test.name}\r\n                    </TableCell>\r\n                    <TableCell\r\n                      align=\"left\"\r\n                      className={classes.tableRowCell}\r\n                      color={colors.blueLink}\r\n                    >\r\n                      <Link href={testLink(test)} underline=\"hover\">\r\n                        {test.code}\r\n                      </Link>\r\n                    </TableCell>\r\n                    <TableCell align=\"left\" className={classes.tableRowCell}>\r\n                      {test.shortDescription}\r\n                    </TableCell>\r\n                    <TableCell align=\"left\" className={classes.tableRowCell}>\r\n                      {test.turnAroundTimeText}\r\n                    </TableCell>\r\n                    <TableCell align=\"left\" className={classes.tableRowCell}>\r\n                      {test.cptCodes}\r\n                    </TableCell>\r\n                    {!window.appConfig.features.isPriceDisabled && (\r\n                      <TableCell align=\"right\" className={classes.tableRowCell}>\r\n                        {test.price}\r\n                      </TableCell>\r\n                    )}\r\n                    <TableCell align=\"left\" className={classes.lastColumnCell}>\r\n                      {getButton(test)}\r\n                    </TableCell>\r\n                  </TableRow>\r\n                ))}\r\n              </TableBody>\r\n            </Table>\r\n          </TableContainer>\r\n        )}\r\n      </>\r\n    );\r\n  };\r\n\r\n  const smallScreenGrid = () => {\r\n    return (\r\n      <div className={classes.smallGridContainer}>\r\n        {sortedTets &&\r\n          sortedTets.length > 0 &&\r\n          sortedTets.map((test, index) => (\r\n            <Grid container spacing={gridContainerSpacing} key={test.code}>\r\n              {index !== 0 && (\r\n                <Grid item xs={12}>\r\n                  <Divider />\r\n                </Grid>\r\n              )}\r\n              <Grid item xs={12}>\r\n                {fieldAndValue(\"Test Name\", test.name, undefined, true)}\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                {fieldAndValue(\"Test Code\", test.code, testLink(test))}\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                {fieldAndValue(\"Description\", test.shortDescription)}\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                {fieldAndValue(\"TAT\", test.turnAroundTimeText, undefined, true)}\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                {fieldAndValue(\"CPT Code(s)\", test.cptCodes)}\r\n              </Grid>\r\n              {!window.appConfig.features.isPriceDisabled && (\r\n                <Grid item xs={12}>\r\n                  {fieldAndValue(\"Price\", test.price)}\r\n                </Grid>\r\n              )}\r\n              <Grid item xs={12}>\r\n                {getButton(test)}\r\n              </Grid>\r\n            </Grid>\r\n          ))}\r\n      </div>\r\n    );\r\n  };\r\n\r\n  const fieldAndValue = (\r\n    field: string,\r\n    value: any,\r\n    link?: string,\r\n    bold?: boolean,\r\n  ) => {\r\n    return (\r\n      <>\r\n        <>{field}</>\r\n        <div\r\n          style={{\r\n            fontWeight: bold ? \"bold\" : \"\",\r\n          }}\r\n        >\r\n          {link && value ? (\r\n            <div color={colors.blueLink}>\r\n              <Link href={link} underline=\"hover\">\r\n                {value}\r\n              </Link>\r\n            </div>\r\n          ) : (\r\n            value\r\n          )}\r\n        </div>\r\n      </>\r\n    );\r\n  };\r\n\r\n  const getButton = (test: TestSummaryBriefDTO) => {\r\n    const isReanalysisTest =\r\n      test.tags && test.tags.includes(\"reanalysisTestCodes\");\r\n\r\n    return (\r\n      <div className={classes.buttonDiv}>\r\n        {test.hasOrderSections ? (\r\n          <div className={classes.buttonWrapper}>\r\n            {isReanalysisTest && (\r\n              <Tooltip title=\"To place a reanalysis order, go to the report details page for the patient and select Reanalyze Test there.\">\r\n                <InfoOutlined className={classes.infoIcon} />\r\n              </Tooltip>\r\n            )}\r\n            <AddToCartButton\r\n              onClick={() => handleAddToCart(test)}\r\n              disabled={disableAddToCartReason(test).length > 0}\r\n              disabledReason={\r\n                isReanalysisTest ? undefined : disableAddToCartReason(test)\r\n              }\r\n            />\r\n          </div>\r\n        ) : (\r\n          <Button\r\n            color=\"primary\"\r\n            variant=\"contained\"\r\n            className={classes.reqButton}\r\n            onClick={() => openRequisition(test.requisitionLink)}\r\n          >\r\n            Requisition\r\n          </Button>\r\n        )}\r\n      </div>\r\n    );\r\n  };\r\n\r\n  const testLink = (test: TestSummaryBriefDTO) => {\r\n    const testCodeNumber = Number(test.code);\r\n    if (isNaN(testCodeNumber) && test.displayTestCode) {\r\n      return `/details/${test.displayTestCode}?ctc=${test.code}`;\r\n    } else {\r\n      return `/details/${test.code}`;\r\n    }\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {(!sortedTets || (sortedTets && sortedTets.length === 0)) &&\r\n      !isLoading ? (\r\n        <h2 className={classes.noTest}>\r\n          We have transitioned to our new test menu. If you are not finding the\r\n          tests you are looking for, please contact us at 1-800-411-4363.\r\n        </h2>\r\n      ) : (\r\n        <>\r\n          <Hidden smDown>{largeScreenTable()}</Hidden>\r\n          <Hidden mdUp>{smallScreenGrid()}</Hidden>\r\n        </>\r\n      )}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default TestSearchResults;\r\n","import React, { FunctionComponent, useEffect, useState } from \"react\";\r\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\r\nimport { colors, fonts } from \"@bg/shared/lib/theme\";\r\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\r\nimport { Button, createTheme } from \"@material-ui/core\";\r\nimport { ThemeProvider } from \"@material-ui/core/styles\";\r\nimport testApi, { Category } from \"@bg/shared/lib/dal/tests\";\r\nimport { SecondaryCategories } from \"@bg/shared/lib/components\";\r\nimport { sortByDisplayOrder } from \"../Helpers\";\r\n\r\nconst useStyles = makeStyles(\r\n  createStyles({\r\n    categoryContainer: {\r\n      margin: \"0.25em\",\r\n      fontFamily: \"Roboto\",\r\n      fontWeight: 400,\r\n      fontSize: fonts.sizes.xs,\r\n      color: colors.deepSeaBlue,\r\n      cursor: \"pointer\",\r\n      textAlign: \"center\",\r\n      width: \"9.375em\",\r\n      textTransform: \"uppercase\",\r\n      transition: \"all .2s ease-in-out;\",\r\n      \"&:hover > img\": {\r\n        transform: \"scale(1.2)\",\r\n        transformOrigin: \"center\",\r\n      },\r\n      \"&:hover\": {\r\n        background: colors.seaShell,\r\n        transform: \"scale(1.2)\",\r\n      },\r\n      alignItems: \"baseline\",\r\n    },\r\n    container: {\r\n      display: \"flex\",\r\n      marginTop: \"1em\",\r\n      justifyContent: \"center\",\r\n      flexWrap: \"wrap\",\r\n      width: \"100%\",\r\n      marginBottom: \"2em\",\r\n    },\r\n    icon: {\r\n      marginBottom: \"1em\",\r\n    },\r\n    categoryText: {\r\n      fontFamily: \"Roboto\",\r\n      fontWeight: 700,\r\n      fontSize: fonts.sizes.xxs,\r\n      color: \"#28A8E0\",\r\n    },\r\n  })\r\n);\r\n\r\nconst theme = createTheme({\r\n  breakpoints: {\r\n    values: {\r\n      xs: 0,\r\n      sm: 600,\r\n      md: 900,\r\n      lg: 1400,\r\n      xl: 1620,\r\n    },\r\n  },\r\n});\r\n\r\nconst maxHeight = 5;\r\n\r\ninterface CategoriesProps extends RouteComponentProps {}\r\n\r\nconst Categories: FunctionComponent<CategoriesProps> = ({ history }) => {\r\n  const [mainCategories, setMainCategories] = useState<Category[]>();\r\n  const [secondaryCategories, setSecondaryCategories] = useState<\r\n    Category[] | undefined\r\n  >(undefined);\r\n\r\n  const classes = useStyles();\r\n\r\n  useEffect(() => {\r\n    const getCategories = async () => {\r\n      const categories = await testApi.getCategories();\r\n      if (categories) {\r\n        sortByDisplayOrder(categories);\r\n        const mainCategories = categories.filter(\r\n          (x) => x.parentCategoryId === undefined\r\n        );\r\n        setMainCategories(mainCategories);\r\n        const secondaryCategories = categories.filter(\r\n          (x) => x.parentCategoryId !== undefined\r\n        );\r\n        setSecondaryCategories(secondaryCategories);\r\n      }\r\n    };\r\n\r\n    if (!mainCategories) {\r\n      getCategories();\r\n    }\r\n  }, [mainCategories]);\r\n\r\n  return (\r\n    <ThemeProvider theme={theme}>\r\n      <div className={classes.container}>\r\n        {mainCategories &&\r\n          mainCategories.map((x) => (\r\n            <Button\r\n              key={x.id}\r\n              className={classes.categoryContainer}\r\n              href={\r\n                window.appConfig.catalogUrl +\r\n                \"/category/\" +\r\n                x.name.toLowerCase()\r\n              }\r\n            >\r\n              <span>\r\n                <img\r\n                  className={classes.icon}\r\n                  src={\"/images/\" + x.displayName.toUpperCase() + \".svg\"}\r\n                  alt={x.displayName}\r\n                  style={{\r\n                    height: \"7em\",\r\n                    paddingTop: `calc(${maxHeight}em - ${\"5em\"})`,\r\n                  }}\r\n                />\r\n                <div className={classes.categoryText}>{x.displayName}</div>\r\n              </span>\r\n            </Button>\r\n          ))}\r\n      </div>\r\n      {secondaryCategories && (\r\n        <SecondaryCategories secondaryCategories={secondaryCategories} />\r\n      )}\r\n    </ThemeProvider>\r\n  );\r\n};\r\n\r\nexport default withRouter(Categories);\r\n","import { DefaultLayout, SearchField } from \"@bg/shared/lib/components\";\r\nimport tests, { Test, TestSummaryBriefDTO } from \"@bg/shared/lib/dal/tests\";\r\nimport { colors, fonts } from \"@bg/shared/lib/theme\";\r\nimport {\r\n  createStyles,\r\n  InputBaseComponentProps,\r\n  LinearProgress,\r\n  makeStyles,\r\n  Theme,\r\n} from \"@material-ui/core\";\r\nimport queryString from \"query-string\";\r\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\n\r\nimport { sortByImportance } from \"../Helpers\";\r\nimport TestSearchResults from \"./TestSearchResults\";\r\nimport Categories from \"./Categories\";\r\nimport { useAuth0 } from \"@bg/shared/lib/auth/react-auth0-wrapper\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n  createStyles({\r\n    noTest: {\r\n      fontSize: fonts.sizes.xl,\r\n      fontWeight: 100,\r\n      color: colors.powderBlue,\r\n      width: \"100%\",\r\n      textAlign: \"center\",\r\n    },\r\n    searchWide: { width: \"50%\", margin: \"4rem auto\" },\r\n    searchMobile: { margin: \"4rem auto\" },\r\n    title: {\r\n      marginTop: \"1em\",\r\n      marginBottom: \"0.5em\",\r\n      fontSize: fonts.sizes.xxl,\r\n      color: colors.deepSeaBlue,\r\n      textAlign: \"center\",\r\n    },\r\n  }),\r\n);\r\n\r\nconst TestSearchV2Container: FunctionComponent<RouteComponentProps> = ({\r\n  history,\r\n  location,\r\n}) => {\r\n  const classes = useStyles();\r\n\r\n  const [searchTerms, setSearchTerms] = useState(\"\");\r\n  const [searchResults, setSearchResults] = useState<TestSummaryBriefDTO[]>();\r\n  const [isLoading, setLoading] = useState(false);\r\n  const [showCategories, setShowCategories] = useState(true);\r\n\r\n  const runSearch = async () => {\r\n    history.push(\"/search\" + (searchTerms && `?keywords=${searchTerms}`));\r\n  };\r\n\r\n  const [width, setWidth] = React.useState(window.innerWidth);\r\n\r\n  useEffect(() => {\r\n    window.addEventListener(\"resize\", () => setWidth(window.innerWidth));\r\n  }, []);\r\n\r\n  // until new search enpoint that returns TestSummaryBriefDTO is made\r\n  const mapToBriefDto = (test: Test): TestSummaryBriefDTO => {\r\n    const retVal: TestSummaryBriefDTO = {\r\n      name: test.name,\r\n      code: test.code,\r\n      cptCodes: test.cptCodes,\r\n      shortDescription: test.shortDescription,\r\n      categories: test.categories,\r\n      price: test.price,\r\n      displayTestCode: test.displayTestCode,\r\n      turnAroundTimeText: test.turnAroundTimeText,\r\n      hasOrderSections: test.hasOrderSections,\r\n      requisitionLink: test.requisitionLink,\r\n      tags: test.tags,\r\n    };\r\n    return retVal;\r\n  };\r\n\r\n  useEffect(() => {\r\n    const search = async (value?: string) => {\r\n      if (!value) {\r\n        setSearchResults(undefined);\r\n        return;\r\n      }\r\n      setSearchResults([]);\r\n      setLoading(true);\r\n      const response = await tests.searchDetails(value);\r\n      const result: TestSummaryBriefDTO[] =\r\n        (response.testSummaryResults &&\r\n          response.testSummaryResults.map((test) => mapToBriefDto(test))) ||\r\n        [];\r\n      const sortedTests = sortByImportance(result);\r\n      setSearchResults(sortedTests);\r\n      setLoading(false);\r\n    };\r\n\r\n    const keywordValues = queryString.parse(location.search).keywords;\r\n    const keywords = Array.isArray(keywordValues)\r\n      ? keywordValues.join(\" \")\r\n      : keywordValues || \"\";\r\n    setSearchTerms(keywords);\r\n    setShowCategories(!keywords);\r\n    search(keywords);\r\n    document.title = keywords\r\n      ? `Test Catalog - Search Results for ${keywords} - Baylor Genetics`\r\n      : \"Test Catalog - Baylor Genetics\";\r\n  }, [location]);\r\n\r\n  const handleChange = (event: InputBaseComponentProps) => {\r\n    setSearchTerms(event.target.value);\r\n  };\r\n\r\n  return (\r\n    <DefaultLayout\r\n      hideLogin={true}\r\n      centerStyle={{\r\n        padding: \"0 1em 1em 1em\",\r\n        fontFamily: \"'Roboto Condensed', 'Helvetica', 'Arial', sans-serif\",\r\n      }}\r\n    >\r\n      <div className={classes.title}>Test Menu</div>\r\n      <div className={width > 500 ? classes.searchWide : classes.searchMobile}>\r\n        <SearchField\r\n          searchText={searchTerms}\r\n          placeholderText=\"Find your test by disease, keywords, or gene list\"\r\n          handleChange={handleChange}\r\n          handleSubmit={runSearch}\r\n        />\r\n      </div>\r\n\r\n      <LinearProgress\r\n        variant=\"query\"\r\n        style={{\r\n          visibility: isLoading ? \"visible\" : \"hidden\",\r\n          marginBottom: \"1em\",\r\n        }}\r\n      />\r\n      {searchResults && (\r\n        <TestSearchResults tests={searchResults} isLoading={isLoading} />\r\n      )}\r\n\r\n      {showCategories && <Categories />}\r\n    </DefaultLayout>\r\n  );\r\n};\r\n\r\nexport default TestSearchV2Container;\r\n","import TestSearchV2Container from \"./TestSearchV2Container\";\r\n\r\nexport default TestSearchV2Container;\r\n"],"sourceRoot":""}