{"ast":null,"code":"import React from 'react';\nimport { Link } from '../link/link';\nimport { Nav, NavList, NavExpandable, PageContextConsumer, capitalize } from '@patternfly/react-core';\nimport { css } from '@patternfly/react-styles';\nimport { Location } from '@reach/router';\nimport { slugger } from '../../helpers';\nimport globalBreakpointXl from \"@patternfly/react-tokens/dist/esm/global_breakpoint_xl\";\nimport { trackEvent } from '../../helpers';\n\nvar NavItem = function NavItem(_ref) {\n  var text = _ref.text,\n      href = _ref.href;\n  var isMobileView = window.innerWidth < Number.parseInt(globalBreakpointXl.value, 10);\n  return React.createElement(PageContextConsumer, {\n    key: href + text\n  }, function (_ref2) {\n    var onNavToggle = _ref2.onNavToggle,\n        isNavOpen = _ref2.isNavOpen;\n    return React.createElement(\"li\", {\n      key: href + text,\n      className: \"pf-c-nav__item\",\n      onClick: function onClick() {\n        return isMobileView && onNavToggle();\n      }\n    }, React.createElement(Link, {\n      to: href,\n      getProps: function getProps(_ref3) {\n        var isCurrent = _ref3.isCurrent,\n            href = _ref3.href,\n            location = _ref3.location;\n        var pathname = location.pathname;\n        return {\n          className: css('pf-c-nav__link', (isCurrent || pathname.startsWith(href + '/')) && 'pf-m-current')\n        };\n      },\n      tabIndex: isNavOpen ? undefined : -1\n    }, text));\n  });\n};\n\nexport var SideNav = function SideNav(_ref4) {\n  var _ref4$groupedRoutes = _ref4.groupedRoutes,\n      groupedRoutes = _ref4$groupedRoutes === void 0 ? {} : _ref4$groupedRoutes,\n      _ref4$navItems = _ref4.navItems,\n      navItems = _ref4$navItems === void 0 ? [] : _ref4$navItems;\n  React.useEffect(function () {\n    if (typeof window === 'undefined') {\n      return;\n    }\n\n    var overflowElement = document.getElementById('page-sidebar');\n\n    if (!overflowElement) {\n      return;\n    }\n\n    var activeElements = overflowElement.getElementsByClassName('pf-m-current');\n\n    if (activeElements.length > 0) {\n      var lastElement = activeElements[activeElements.length - 1];\n      lastElement.scrollIntoView({\n        block: 'center'\n      });\n    }\n  }, []);\n  return React.createElement(Nav, {\n    \"aria-label\": \"Side Nav\",\n    theme: \"light\"\n  }, React.createElement(NavList, {\n    className: \"ws-side-nav-list\"\n  }, navItems.map(function (_ref5) {\n    var section = _ref5.section,\n        text = _ref5.text,\n        href = _ref5.href;\n    return section ? React.createElement(Location, {\n      key: section\n    }, function (_ref6) {\n      var location = _ref6.location;\n      var isActive = location.pathname.startsWith(process.env.pathPrefix + \"/\" + slugger(section));\n      return React.createElement(NavExpandable, {\n        title: capitalize(section.replace(/-/g, ' ')),\n        isActive: isActive,\n        isExpanded: isActive,\n        className: \"ws-side-nav-group\",\n        onClick: function onClick(event) {\n          // Don't trigger for bubbled events from NavItems\n          if (!event.target.href) {\n            var isExpanded = event.currentTarget.classList.contains('pf-m-expanded'); // 1 === expand section, 0 === collapse section\n\n            trackEvent('sidenav_section_click', 'click_event', section, isExpanded ? 0 : 1);\n          }\n        }\n      }, Object.entries(groupedRoutes[section] || {}).filter(function (_ref7) {\n        var hideNavItem = _ref7[1].hideNavItem;\n        return !Boolean(hideNavItem);\n      }).map(function (_ref8) {\n        var id = _ref8[0],\n            slug = _ref8[1].slug;\n        return {\n          text: id,\n          href: slug\n        };\n      }).sort(function (_ref9, _ref10) {\n        var text1 = _ref9.text;\n        var text2 = _ref10.text;\n        return text1.localeCompare(text2);\n      }).map(NavItem));\n    }) : NavItem({\n      text: text || capitalize(href.replace(/\\//g, '').replace(/-/g, ' ')),\n      href: href\n    });\n  })));\n};","map":{"version":3,"names":["React","Link","Nav","NavList","NavExpandable","PageContextConsumer","capitalize","css","Location","slugger","globalBreakpointXl","trackEvent","NavItem","text","href","isMobileView","window","innerWidth","Number","parseInt","value","onNavToggle","isNavOpen","isCurrent","location","pathname","className","startsWith","undefined","SideNav","groupedRoutes","navItems","useEffect","overflowElement","document","getElementById","activeElements","getElementsByClassName","length","lastElement","scrollIntoView","block","map","section","isActive","process","env","pathPrefix","replace","event","target","isExpanded","currentTarget","classList","contains","Object","entries","filter","hideNavItem","Boolean","id","slug","sort","text1","text2","localeCompare"],"sources":["/Users/ausulliv/repos/temp/patternfly-react/node_modules/@patternfly/documentation-framework/components/sideNav/sideNav.js"],"sourcesContent":["import React from 'react';\nimport { Link } from '../link/link';\nimport { Nav, NavList, NavExpandable, PageContextConsumer, capitalize } from '@patternfly/react-core';\nimport { css } from '@patternfly/react-styles';\nimport { Location } from '@reach/router';\nimport { slugger } from '../../helpers';\nimport globalBreakpointXl from \"@patternfly/react-tokens/dist/esm/global_breakpoint_xl\";\nimport { trackEvent } from '../../helpers';\n\nconst NavItem = ({ text, href }) => {\n  const isMobileView = window.innerWidth < Number.parseInt(globalBreakpointXl.value, 10);\n  return (\n    <PageContextConsumer key={href + text}>\n      {({onNavToggle, isNavOpen }) => (\n          <li key={href + text} className=\"pf-c-nav__item\" onClick={() => isMobileView && onNavToggle()}>\n            <Link\n              to={href}\n              getProps={({ isCurrent, href, location }) => {\n                const { pathname } = location;\n                return {\n                  className: css(\n                    'pf-c-nav__link',\n                    (isCurrent || pathname.startsWith(href + '/')) && 'pf-m-current'\n                  )\n                }}\n              }\n              tabIndex={isNavOpen ? undefined : -1}\n            >\n              {text}\n            </Link>\n          </li>\n      )}\n    </PageContextConsumer>\n  )\n};\n\nexport const SideNav = ({ groupedRoutes = {}, navItems = [] }) => {\n  React.useEffect(() => {\n    if (typeof window === 'undefined') {\n      return;\n    }\n    const overflowElement = document.getElementById('page-sidebar');\n    if (!overflowElement) {\n      return;\n    }\n    const activeElements = overflowElement.getElementsByClassName('pf-m-current');\n    if (activeElements.length > 0) {\n      const lastElement = activeElements[activeElements.length - 1];\n      lastElement.scrollIntoView({ block: 'center' });\n    }\n  }, []);\n  \n  return (\n    <Nav aria-label=\"Side Nav\" theme=\"light\">\n      <NavList className=\"ws-side-nav-list\">\n        {navItems.map(({ section, text, href }) => section\n          ? (\n            <Location key={section}>\n              {({ location }) => {\n                const isActive = location.pathname.startsWith(`${process.env.pathPrefix}/${slugger(section)}`);\n                return (\n                  <NavExpandable\n                    title={capitalize(section.replace(/-/g, ' '))}\n                    isActive={isActive}\n                    isExpanded={isActive}\n                    className=\"ws-side-nav-group\"\n                    onClick={(event) => {\n                      // Don't trigger for bubbled events from NavItems\n                      if (!event.target.href) {\n                        const isExpanded = event.currentTarget.classList.contains('pf-m-expanded');\n                        // 1 === expand section, 0 === collapse section\n                        trackEvent('sidenav_section_click', 'click_event', section, isExpanded ? 0 : 1);\n                      }\n                    }}\n                  >\n                    {Object.entries(groupedRoutes[section] || {})\n                      .filter(([, { hideNavItem }]) => !Boolean(hideNavItem))\n                      .map(([id, { slug }]) => ({ text: id, href: slug }))\n                      .sort(({ text: text1 }, { text: text2 }) => text1.localeCompare(text2))\n                      .map(NavItem)\n                    }\n                  </NavExpandable>\n                );\n              }}\n            </Location>\n          )\n          : NavItem({\n              text: text || capitalize(href.replace(/\\//g, '').replace(/-/g, ' ')),\n              href: href\n            })\n        )}\n      </NavList>\n    </Nav>\n  );\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}