UNPKG

docusaurus-plugin-typedoc-api

Version:

Docusaurus plugin that provides source code API documentation powered by TypeDoc.

99 lines (96 loc) 4.14 kB
'use strict'; const react = require('react'); const Link = require('@docusaurus/Link'); const client = require('@docusaurus/plugin-content-docs/client'); const Heading = require('@theme/Heading'); const links = require('../utils/links.js'); const Footer = require('./Footer.js'); const VersionBanner = require('./VersionBanner.js'); const jsxRuntime = require('react/jsx-runtime'); const _interopDefault = e => e && e.__esModule ? e : { default: e }; const Link__default = /*#__PURE__*/_interopDefault(Link); const Heading__default = /*#__PURE__*/_interopDefault(Heading); function addVersionToUrl(url, latestVersion, preferredVersion) { if (!url.match(/api\/([\d.]+)/) && !url.includes('api/next') && preferredVersion && preferredVersion.name !== latestVersion.version) { const version = preferredVersion.name === 'current' ? 'next' : preferredVersion.name; if (url.endsWith('/api')) { return `${url}/${version}`; } return url.replace('/api/', `/api/${version}/`); } return url; } function ApiIndex({ options, packages, history }) { const latestVersion = client.useDocsVersion(); const _client$useDocsPrefer = client.useDocsPreferredVersion(latestVersion.pluginId), preferredVersion = _client$useDocsPrefer.preferredVersion; react.useEffect(() => { // Redirect to package when only 1 if (packages.length === 1) { history.replace(addVersionToUrl(packages[0].entryPoints[0].reflection.permalink, latestVersion, preferredVersion)); // Redirect to preferred version } else if (preferredVersion) { history.replace(addVersionToUrl(history.location.pathname, latestVersion, preferredVersion)); } }, [packages, history, latestVersion, preferredVersion]); return /*#__PURE__*/jsxRuntime.jsx("div", { className: "row", children: /*#__PURE__*/jsxRuntime.jsxs("div", { className: "col apiItemCol", children: [options.banner && /*#__PURE__*/jsxRuntime.jsx("div", { className: "alert alert--info margin-bottom--md", role: "alert", children: /*#__PURE__*/jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: options.banner } }) }), /*#__PURE__*/jsxRuntime.jsx(VersionBanner.VersionBanner, {}), /*#__PURE__*/jsxRuntime.jsx("div", { className: "apiItemContainer", children: /*#__PURE__*/jsxRuntime.jsxs("article", { children: [/*#__PURE__*/jsxRuntime.jsxs("div", { className: "markdown", children: [/*#__PURE__*/jsxRuntime.jsx("header", { children: /*#__PURE__*/jsxRuntime.jsx(Heading__default.default, { as: "h1", children: "API" }) }), /*#__PURE__*/jsxRuntime.jsxs("section", { className: "tsd-panel", children: [/*#__PURE__*/jsxRuntime.jsx("h3", { className: "tsd-panel-header", children: "Packages" }), /*#__PURE__*/jsxRuntime.jsx("div", { className: "tsd-panel-content", children: /*#__PURE__*/jsxRuntime.jsx("ul", { className: "tsd-index-list", children: packages.map(pkg => /*#__PURE__*/jsxRuntime.jsx("li", { className: "tsd-truncate", children: /*#__PURE__*/jsxRuntime.jsxs(Link__default.default, { className: "tsd-kind-icon", to: pkg.entryPoints[0].reflection.permalink, children: [/*#__PURE__*/jsxRuntime.jsxs("span", { className: "tsd-signature-symbol", children: ["v", pkg.packageVersion] }), ' ', /*#__PURE__*/jsxRuntime.jsx("span", { children: links.removeScopes(pkg.packageName, options.scopes) })] }) }, pkg.packageName)) }) })] })] }), /*#__PURE__*/jsxRuntime.jsx(Footer.Footer, {})] }) })] }) }); } module.exports = ApiIndex; //# sourceMappingURL=ApiIndex.js.map