{"ast":null,"code":"import React from 'react';\nimport { JumpLinks, JumpLinksItem, JumpLinksList } from '@patternfly/react-core';\nimport { trackEvent } from '../../helpers';\nexport var TableOfContents = function TableOfContents(_ref) {\n  var items = _ref.items;\n\n  // Used to recalculate JumpLinks offset if screen size changes\n  var _React$useState = React.useState(window.innerWidth),\n      width = _React$useState[0],\n      setWidth = _React$useState[1];\n\n  var updateWidth = function updateWidth() {\n    var _window = window,\n        innerWidth = _window.innerWidth;\n    innerWidth !== width && setWidth(innerWidth);\n  };\n\n  var jumpLinksItems = [];\n  var wasSublistRendered = false;\n\n  var renderSublist = function renderSublist(item, nextItemArr) {\n    wasSublistRendered = true;\n    return React.createElement(React.Fragment, null, item.text, React.createElement(JumpLinksList, null, nextItemArr.map(function (curItem) {\n      return React.createElement(JumpLinksItem, {\n        key: curItem.id,\n        href: \"#\" + curItem.id,\n        className: \"ws-toc-item\",\n        onKeyDown: updateWidth,\n        onMouseDown: updateWidth,\n        onClick: function onClick() {\n          return trackEvent('jump_link_click', 'click_event', curItem.id.toUpperCase());\n        }\n      }, curItem.text);\n    })));\n  };\n\n  var renderJumpLinksItems = function renderJumpLinksItems() {\n    items.forEach(function (item, index) {\n      var nextItem = items[index + 1]; // Don't render empty <JumpLinksItem> for an array of sublist items\n\n      if (wasSublistRendered) {\n        wasSublistRendered = false;\n        return;\n      }\n\n      if (!Array.isArray(nextItem) && Array.isArray(item)) {\n        {\n          item.map(function (curItem) {\n            return jumpLinksItems.push(React.createElement(JumpLinksItem, {\n              key: curItem.id,\n              href: \"#\" + curItem.id,\n              className: \"ws-toc-item\",\n              onKeyDown: updateWidth,\n              onMouseDown: updateWidth,\n              onClick: function onClick() {\n                return trackEvent('jump_link_click', 'click_event', curItem.id.toUpperCase());\n              }\n            }, curItem.text));\n          });\n        }\n      } else {\n        jumpLinksItems.push(React.createElement(JumpLinksItem, {\n          key: item.id,\n          href: \"#\" + item.id,\n          className: \"ws-toc-item\",\n          onKeyDown: updateWidth,\n          onMouseDown: updateWidth,\n          onClick: function onClick() {\n            return trackEvent('jump_link_click', 'click_event', item.id.toUpperCase());\n          }\n        }, Array.isArray(nextItem) ? renderSublist(item, nextItem) : item.text));\n      }\n    });\n    return jumpLinksItems;\n  };\n\n  return React.createElement(JumpLinks, {\n    label: \"Table of contents\",\n    isVertical: true,\n    scrollableSelector: \"#ws-page-main\",\n    className: \"ws-toc\",\n    offset: width > 1450 ? 92 : 148,\n    expandable: {\n      default: 'expandable',\n      '2xl': 'nonExpandable'\n    }\n  }, renderJumpLinksItems());\n};","map":{"version":3,"names":["React","JumpLinks","JumpLinksItem","JumpLinksList","trackEvent","TableOfContents","items","useState","window","innerWidth","width","setWidth","updateWidth","jumpLinksItems","wasSublistRendered","renderSublist","item","nextItemArr","text","map","curItem","id","toUpperCase","renderJumpLinksItems","forEach","index","nextItem","Array","isArray","push","default"],"sources":["/Users/ausulliv/repos/temp/patternfly-react/node_modules/@patternfly/documentation-framework/components/tableOfContents/tableOfContents.js"],"sourcesContent":["import React from 'react';\nimport { JumpLinks, JumpLinksItem, JumpLinksList } from '@patternfly/react-core';\nimport { trackEvent } from '../../helpers';\n\nexport const TableOfContents = ({ items }) => {\n  // Used to recalculate JumpLinks offset if screen size changes\n  const [width, setWidth] = React.useState(window.innerWidth);\n  const updateWidth = () => {\n    const { innerWidth } = window;\n    innerWidth !== width && setWidth(innerWidth);\n  }\n  let jumpLinksItems = [];\n  let wasSublistRendered = false;\n\n  const renderSublist = (item, nextItemArr) => {\n    wasSublistRendered = true;\n    return (\n      <>\n        {item.text}\n        <JumpLinksList>\n          {nextItemArr.map(curItem => (\n            <JumpLinksItem\n              key={curItem.id}\n              href={`#${curItem.id}`}\n              className=\"ws-toc-item\"\n              onKeyDown={updateWidth}\n              onMouseDown={updateWidth}\n              onClick={() => trackEvent('jump_link_click', 'click_event', curItem.id.toUpperCase())}\n            >\n              {curItem.text}\n            </JumpLinksItem>\n          ))}\n        </JumpLinksList>\n      </>\n    );\n  }\n\n  const renderJumpLinksItems = () => {\n    items.forEach((item, index) => {\n      let nextItem = items[index + 1];\n      // Don't render empty <JumpLinksItem> for an array of sublist items\n      if (wasSublistRendered) {\n        wasSublistRendered = false;\n        return;\n      }\n      if (!Array.isArray(nextItem) && Array.isArray(item)) {\n        {item.map(curItem => jumpLinksItems.push(\n          <JumpLinksItem\n            key={curItem.id}\n            href={`#${curItem.id}`}\n            className=\"ws-toc-item\"\n            onKeyDown={updateWidth}\n            onMouseDown={updateWidth}\n            onClick={() => trackEvent('jump_link_click', 'click_event', curItem.id.toUpperCase())}\n          >\n            {curItem.text}\n          </JumpLinksItem>\n        ))}\n      } else {\n        jumpLinksItems.push(\n          <JumpLinksItem\n            key={item.id}\n            href={`#${item.id}`}\n            className=\"ws-toc-item\"\n            onKeyDown={updateWidth}\n            onMouseDown={updateWidth}\n            onClick={() => trackEvent('jump_link_click', 'click_event', item.id.toUpperCase())}\n          >\n            { Array.isArray(nextItem) ? renderSublist(item, nextItem) : item.text }\n          </JumpLinksItem>\n        );\n      }\n    })\n    return jumpLinksItems;\n  }\n\n  return (\n    <JumpLinks\n      label=\"Table of contents\"\n      isVertical\n      scrollableSelector=\"#ws-page-main\"\n      className=\"ws-toc\"\n      offset={width > 1450 ? 92 : 148}\n      expandable={{ default: 'expandable', '2xl': 'nonExpandable' }}\n    >\n      { renderJumpLinksItems() }\n    </JumpLinks>\n  );\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}