UNPKG

docusaurus-theme-openapi-docs

Version:

OpenAPI theme for Docusaurus.

122 lines (121 loc) 4.35 kB
"use strict"; /* ============================================================================ * Copyright (c) Palo Alto Networks * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * ========================================================================== */ var __importDefault = (this && this.__importDefault) || function (mod) { return mod && mod.__esModule ? mod : { default: mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = DocItemLayout; const react_1 = __importDefault(require("react")); const client_1 = require("@docusaurus/plugin-content-docs/client"); const theme_common_1 = require("@docusaurus/theme-common"); const ContentVisibility_1 = __importDefault( require("@theme/ContentVisibility") ); const DocBreadcrumbs_1 = __importDefault(require("@theme/DocBreadcrumbs")); const Content_1 = __importDefault(require("@theme/DocItem/Content")); const Footer_1 = __importDefault(require("@theme/DocItem/Footer")); const Paginator_1 = __importDefault(require("@theme/DocItem/Paginator")); const Desktop_1 = __importDefault(require("@theme/DocItem/TOC/Desktop")); const Mobile_1 = __importDefault(require("@theme/DocItem/TOC/Mobile")); const DocVersionBadge_1 = __importDefault(require("@theme/DocVersionBadge")); const DocVersionBanner_1 = __importDefault(require("@theme/DocVersionBanner")); const clsx_1 = __importDefault(require("clsx")); const styles_module_css_1 = __importDefault(require("./styles.module.css")); /** * Decide if the toc should be rendered, on mobile or desktop viewports */ function useDocTOC() { const { frontMatter, toc } = (0, client_1.useDoc)(); const windowSize = (0, theme_common_1.useWindowSize)(); const hidden = frontMatter.hide_table_of_contents; const canRender = !hidden && toc.length > 0; const mobile = canRender ? react_1.default.createElement(Mobile_1.default, null) : undefined; const desktop = canRender && (windowSize === "desktop" || windowSize === "ssr") ? react_1.default.createElement(Desktop_1.default, null) : undefined; return { hidden, mobile, desktop, }; } function DocItemLayout({ children }) { const docTOC = useDocTOC(); const { metadata } = (0, client_1.useDoc)(); const { frontMatter } = (0, client_1.useDoc)(); const api = frontMatter.api; const schema = frontMatter.schema; return react_1.default.createElement( "div", { className: "row" }, react_1.default.createElement( "div", { className: (0, clsx_1.default)( "col", !docTOC.hidden && styles_module_css_1.default.docItemCol ), }, react_1.default.createElement(ContentVisibility_1.default, { metadata: metadata, }), react_1.default.createElement(DocVersionBanner_1.default, null), react_1.default.createElement( "div", { className: styles_module_css_1.default.docItemContainer }, react_1.default.createElement( "article", null, react_1.default.createElement(DocBreadcrumbs_1.default, null), react_1.default.createElement(DocVersionBadge_1.default, null), docTOC.mobile, react_1.default.createElement(Content_1.default, null, children), react_1.default.createElement( "div", { className: "row" }, react_1.default.createElement( "div", { className: (0, clsx_1.default)( "col", api || schema ? "col--7" : "col--12" ), }, react_1.default.createElement(Footer_1.default, null) ) ) ), react_1.default.createElement( "div", { className: "row" }, react_1.default.createElement( "div", { className: (0, clsx_1.default)( "col", api || schema ? "col--7" : "col--12" ), }, react_1.default.createElement(Paginator_1.default, null) ) ) ) ), docTOC.desktop && react_1.default.createElement( "div", { className: "col col--3" }, docTOC.desktop ) ); }