{"ast":null,"code":"function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { Link as ReachLink, navigate } from '@reach/router';\nimport { getAsyncComponent } from '../../routes';\n\nvar Promiseany = (Promise.any || function ($) {\n  return new Promise(function (D, E, A, L) {\n    A = [];\n    L = $.map(function ($, i) {\n      return Promise.resolve($).then(D, function (O) {\n        return (A[i] = O, --L) || E({\n          errors: A\n        });\n      });\n    }).length;\n  });\n}).bind(Promise);\n\nexport var Link = function Link(_ref) {\n  var href = _ref.href,\n      to = _ref.to,\n      _ref$onMouseOver = _ref.onMouseOver,\n      onMouseOver = _ref$onMouseOver === void 0 ? function () {} : _ref$onMouseOver,\n      onClick = _ref.onClick,\n      props = _objectWithoutPropertiesLoose(_ref, [\"href\", \"to\", \"onMouseOver\", \"onClick\"]);\n\n  var preloadPromise;\n  var url = href || to || '';\n\n  if (url.startsWith('#') && !onClick) {\n    onClick = function onClick(ev) {\n      ev.preventDefault(); // Don't use client-side routing\n      // Chrome does not jump until ALL network requests finish.\n      // We have to force it to...\n\n      var referencedElement = document.getElementById(url.replace('#', ''));\n\n      if (referencedElement) {\n        referencedElement.scrollIntoView();\n      } // update URL without triggering route change\n\n\n      history.pushState({}, '', url);\n    };\n  }\n\n  if (url.includes('//') || url.startsWith('#')) {\n    return React.createElement(\"a\", _extends({\n      href: url,\n      onClick: onClick\n    }, props));\n  } else if (url.startsWith('/')) {\n    url = process.env.pathPrefix + \"/\" + url.substr(1);\n\n    if (!process.env.PRERENDER) {\n      var Component = getAsyncComponent(url);\n\n      if (Component) {\n        // Preload on hover\n        props.onMouseOver = function () {\n          preloadPromise = Component.preload();\n          onMouseOver();\n        }; // Wait up to an extra 500ms on click before showing 'Loading...'\n\n\n        props.onClick = function (ev) {\n          if (!(ev.ctrlKey || ev.metaKey)) {\n            // avoid disallowing cmnd/ctrl+click opening in new tab\n            ev.preventDefault();\n\n            if (typeof window !== 'undefined' && url !== location.pathname) {\n              Promiseany([preloadPromise, new Promise(function (res) {\n                return setTimeout(res, 500);\n              })]).then(function () {\n                return navigate(url);\n              });\n            }\n          }\n        };\n      }\n    }\n  }\n\n  return React.createElement(ReachLink, _extends({\n    to: url\n  }, props));\n};","map":{"version":3,"names":["React","Link","ReachLink","navigate","getAsyncComponent","Promiseany","Promise","any","$","D","E","A","L","map","i","resolve","then","O","errors","length","bind","href","to","onMouseOver","onClick","props","preloadPromise","url","startsWith","ev","preventDefault","referencedElement","document","getElementById","replace","scrollIntoView","history","pushState","includes","process","env","pathPrefix","substr","PRERENDER","Component","preload","ctrlKey","metaKey","window","location","pathname","res","setTimeout"],"sources":["/Users/ausulliv/repos/temp/patternfly-react/node_modules/@patternfly/documentation-framework/components/link/link.js"],"sourcesContent":["import React from 'react';\nimport { Link as ReachLink, navigate } from '@reach/router';\nimport { getAsyncComponent } from '../../routes';\n\nconst Promiseany = (Promise.any || function ($) {\n  return new Promise(function (D, E, A, L) {\n    A = [];\n    L = $.map(function ($, i) {\n      return Promise.resolve($).then(D, function (O) {\n        return ((A[i] = O), --L) || E({errors: A});\n      });\n    }).length;\n  });\n}).bind(Promise);\n\nexport const Link = ({\n  href,\n  to,\n  onMouseOver = () => {},\n  onClick,\n  ...props\n}) => {\n  let preloadPromise;\n  let url = href || to || '';\n  if (url.startsWith('#') && !onClick) {\n    onClick = ev => {\n      ev.preventDefault(); // Don't use client-side routing\n      // Chrome does not jump until ALL network requests finish.\n      // We have to force it to...\n      const referencedElement = document.getElementById(url.replace('#', ''));\n      if (referencedElement) {\n        referencedElement.scrollIntoView();\n      }\n      // update URL without triggering route change\n      history.pushState({}, '', url);\n    };\n  }\n  if (url.includes('//') || url.startsWith('#')) {\n    return <a href={url} onClick={onClick} {...props} />;\n  }\n  else if (url.startsWith('/')) {\n    url = `${process.env.pathPrefix}/${url.substr(1)}`;\n\n    if (!process.env.PRERENDER) {\n      const Component = getAsyncComponent(url);\n      if (Component) {\n        // Preload on hover\n        props.onMouseOver = () => {\n          preloadPromise = Component.preload();\n          onMouseOver();\n        };\n        // Wait up to an extra 500ms on click before showing 'Loading...'\n        props.onClick = ev => {\n          if (!(ev.ctrlKey || ev.metaKey)) { // avoid disallowing cmnd/ctrl+click opening in new tab\n            ev.preventDefault();\n            if (typeof window !== 'undefined' && url !== location.pathname) {\n              Promiseany([\n                preloadPromise,\n                new Promise(res => setTimeout(res, 500))\n              ]).then(() => navigate(url));\n            }\n          }\n        };\n      }\n    }\n  }\n  return <ReachLink to={url} {...props} />;\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}