docusaurus-theme-openapi-docs 4.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/markdown/utils.d.ts +5 -4
- package/lib/theme/ApiExplorer/CodeSnippets/code-snippets-types.d.ts +1 -1
- package/lib/theme/ApiExplorer/CodeSnippets/index.js +4 -113
- package/lib/theme/ApiExplorer/CodeSnippets/languages.d.ts +1 -0
- package/lib/theme/ApiExplorer/CodeSnippets/languages.js +30 -6
- package/lib/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +196 -2
- package/lib/theme/ApiExplorer/CodeTabs/index.js +34 -8
- package/lib/theme/ApiExplorer/MethodEndpoint/index.d.ts +2 -1
- package/lib/theme/ApiExplorer/MethodEndpoint/index.js +5 -2
- package/lib/theme/ApiExplorer/ParamOptions/index.js +1 -0
- package/lib/theme/ApiExplorer/Request/_Request.scss +5 -0
- package/lib/theme/ApiExplorer/index.js +6 -0
- package/lib/theme/ApiItem/Layout/index.d.ts +3 -0
- package/lib/theme/ApiItem/Layout/index.js +121 -0
- package/lib/theme/ApiItem/Layout/styles.module.css +17 -0
- package/lib/theme/ApiItem/index.js +16 -5
- package/lib/theme/ApiTabs/_ApiTabs.scss +0 -1
- package/lib/theme/ArrayBrackets/index.d.ts +3 -0
- package/lib/theme/ArrayBrackets/index.js +50 -0
- package/lib/theme/ParamsDetails/index.d.ts +6 -0
- package/lib/theme/ParamsDetails/index.js +134 -0
- package/lib/theme/ParamsItem/index.d.ts +3 -1
- package/lib/theme/ParamsItem/index.js +77 -16
- package/lib/theme/RequestSchema/index.d.ts +15 -0
- package/lib/theme/RequestSchema/index.js +235 -0
- package/lib/theme/ResponseExamples/index.d.ts +48 -0
- package/lib/theme/ResponseExamples/index.js +290 -0
- package/lib/theme/ResponseSchema/index.d.ts +15 -0
- package/lib/theme/ResponseSchema/index.js +206 -0
- package/lib/theme/Schema/index.d.ts +8 -0
- package/lib/theme/Schema/index.js +879 -0
- package/lib/theme/SchemaItem/index.d.ts +9 -9
- package/lib/theme/SchemaItem/index.js +110 -20
- package/lib/theme/SkeletonLoader/index.d.ts +6 -0
- package/lib/theme/SkeletonLoader/index.js +20 -0
- package/lib/theme/StatusCodes/index.d.ts +9 -0
- package/lib/theme/StatusCodes/index.js +78 -0
- package/lib/theme/styles.scss +56 -9
- package/package.json +9 -7
- package/src/markdown/utils.ts +7 -6
- package/src/plugin-content-docs.d.ts +2 -0
- package/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts +2 -0
- package/src/theme/ApiExplorer/CodeSnippets/index.tsx +8 -113
- package/src/theme/ApiExplorer/CodeSnippets/languages.ts +26 -5
- package/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +196 -2
- package/src/theme/ApiExplorer/CodeTabs/index.tsx +40 -9
- package/src/theme/ApiExplorer/MethodEndpoint/index.tsx +7 -3
- package/src/theme/ApiExplorer/ParamOptions/index.tsx +1 -0
- package/src/theme/ApiExplorer/Request/_Request.scss +5 -0
- package/src/theme/ApiExplorer/index.tsx +2 -0
- package/src/theme/ApiItem/Layout/index.tsx +85 -0
- package/src/theme/ApiItem/Layout/styles.module.css +17 -0
- package/src/theme/ApiItem/index.tsx +15 -3
- package/src/theme/ApiTabs/_ApiTabs.scss +0 -1
- package/src/theme/ArrayBrackets/index.tsx +37 -0
- package/src/theme/ParamsDetails/index.tsx +88 -0
- package/src/theme/ParamsItem/index.tsx +80 -17
- package/src/theme/RequestSchema/index.tsx +164 -0
- package/src/theme/ResponseExamples/index.tsx +290 -0
- package/src/theme/ResponseSchema/index.tsx +151 -0
- package/src/theme/Schema/index.tsx +928 -0
- package/src/theme/SchemaItem/index.tsx +116 -25
- package/src/theme/SkeletonLoader/index.tsx +18 -0
- package/src/theme/StatusCodes/index.tsx +72 -0
- package/src/theme/styles.scss +56 -9
- package/src/theme-classic.d.ts +0 -2
- package/src/theme-openapi.d.ts +4 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ============================================================================
|
|
3
|
+
* Copyright (c) Palo Alto Networks
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
* ========================================================================== */
|
|
8
|
+
var __importDefault =
|
|
9
|
+
(this && this.__importDefault) ||
|
|
10
|
+
function (mod) {
|
|
11
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
const react_1 = __importDefault(require("react"));
|
|
15
|
+
const client_1 = require("@docusaurus/plugin-content-docs/client");
|
|
16
|
+
const theme_common_1 = require("@docusaurus/theme-common");
|
|
17
|
+
const ContentVisibility_1 = __importDefault(
|
|
18
|
+
require("@theme/ContentVisibility")
|
|
19
|
+
);
|
|
20
|
+
const DocBreadcrumbs_1 = __importDefault(require("@theme/DocBreadcrumbs"));
|
|
21
|
+
const Content_1 = __importDefault(require("@theme/DocItem/Content"));
|
|
22
|
+
const Footer_1 = __importDefault(require("@theme/DocItem/Footer"));
|
|
23
|
+
const Paginator_1 = __importDefault(require("@theme/DocItem/Paginator"));
|
|
24
|
+
const Desktop_1 = __importDefault(require("@theme/DocItem/TOC/Desktop"));
|
|
25
|
+
const Mobile_1 = __importDefault(require("@theme/DocItem/TOC/Mobile"));
|
|
26
|
+
const DocVersionBadge_1 = __importDefault(require("@theme/DocVersionBadge"));
|
|
27
|
+
const DocVersionBanner_1 = __importDefault(require("@theme/DocVersionBanner"));
|
|
28
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
29
|
+
const styles_module_css_1 = __importDefault(require("./styles.module.css"));
|
|
30
|
+
/**
|
|
31
|
+
* Decide if the toc should be rendered, on mobile or desktop viewports
|
|
32
|
+
*/
|
|
33
|
+
function useDocTOC() {
|
|
34
|
+
const { frontMatter, toc } = (0, client_1.useDoc)();
|
|
35
|
+
const windowSize = (0, theme_common_1.useWindowSize)();
|
|
36
|
+
const hidden = frontMatter.hide_table_of_contents;
|
|
37
|
+
const canRender = !hidden && toc.length > 0;
|
|
38
|
+
const mobile = canRender
|
|
39
|
+
? react_1.default.createElement(Mobile_1.default, null)
|
|
40
|
+
: undefined;
|
|
41
|
+
const desktop =
|
|
42
|
+
canRender && (windowSize === "desktop" || windowSize === "ssr")
|
|
43
|
+
? react_1.default.createElement(Desktop_1.default, null)
|
|
44
|
+
: undefined;
|
|
45
|
+
return {
|
|
46
|
+
hidden,
|
|
47
|
+
mobile,
|
|
48
|
+
desktop,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function DocItemLayout({ children }) {
|
|
52
|
+
const docTOC = useDocTOC();
|
|
53
|
+
const { metadata } = (0, client_1.useDoc)();
|
|
54
|
+
const { frontMatter } = (0, client_1.useDoc)();
|
|
55
|
+
const api = frontMatter.api;
|
|
56
|
+
const schema = frontMatter.schema;
|
|
57
|
+
return react_1.default.createElement(
|
|
58
|
+
"div",
|
|
59
|
+
{ className: "row" },
|
|
60
|
+
react_1.default.createElement(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
className: (0, clsx_1.default)(
|
|
64
|
+
"col",
|
|
65
|
+
!docTOC.hidden && styles_module_css_1.default.docItemCol
|
|
66
|
+
),
|
|
67
|
+
},
|
|
68
|
+
react_1.default.createElement(ContentVisibility_1.default, {
|
|
69
|
+
metadata: metadata,
|
|
70
|
+
}),
|
|
71
|
+
react_1.default.createElement(DocVersionBanner_1.default, null),
|
|
72
|
+
react_1.default.createElement(
|
|
73
|
+
"div",
|
|
74
|
+
{ className: styles_module_css_1.default.docItemContainer },
|
|
75
|
+
react_1.default.createElement(
|
|
76
|
+
"article",
|
|
77
|
+
null,
|
|
78
|
+
react_1.default.createElement(DocBreadcrumbs_1.default, null),
|
|
79
|
+
react_1.default.createElement(DocVersionBadge_1.default, null),
|
|
80
|
+
docTOC.mobile,
|
|
81
|
+
react_1.default.createElement(Content_1.default, null, children),
|
|
82
|
+
react_1.default.createElement(
|
|
83
|
+
"div",
|
|
84
|
+
{ className: "row" },
|
|
85
|
+
react_1.default.createElement(
|
|
86
|
+
"div",
|
|
87
|
+
{
|
|
88
|
+
className: (0, clsx_1.default)(
|
|
89
|
+
"col",
|
|
90
|
+
api || schema ? "col--7" : "col--12"
|
|
91
|
+
),
|
|
92
|
+
},
|
|
93
|
+
react_1.default.createElement(Footer_1.default, null)
|
|
94
|
+
)
|
|
95
|
+
)
|
|
96
|
+
),
|
|
97
|
+
react_1.default.createElement(
|
|
98
|
+
"div",
|
|
99
|
+
{ className: "row" },
|
|
100
|
+
react_1.default.createElement(
|
|
101
|
+
"div",
|
|
102
|
+
{
|
|
103
|
+
className: (0, clsx_1.default)(
|
|
104
|
+
"col",
|
|
105
|
+
api || schema ? "col--7" : "col--12"
|
|
106
|
+
),
|
|
107
|
+
},
|
|
108
|
+
react_1.default.createElement(Paginator_1.default, null)
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
)
|
|
112
|
+
),
|
|
113
|
+
docTOC.desktop &&
|
|
114
|
+
react_1.default.createElement(
|
|
115
|
+
"div",
|
|
116
|
+
{ className: "col col--3" },
|
|
117
|
+
docTOC.desktop
|
|
118
|
+
)
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
exports.default = DocItemLayout;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
* Copyright (c) Palo Alto Networks
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
* ========================================================================== */
|
|
7
|
+
|
|
8
|
+
.docItemContainer header + *,
|
|
9
|
+
.docItemContainer article > *:first-child {
|
|
10
|
+
margin-top: 0;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@media (min-width: 997px) {
|
|
14
|
+
.docItemCol {
|
|
15
|
+
max-width: 75% !important;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -25,8 +25,10 @@ const useDocusaurusContext_1 = __importDefault(
|
|
|
25
25
|
const useIsBrowser_1 = __importDefault(require("@docusaurus/useIsBrowser"));
|
|
26
26
|
const slice_1 = require("@theme/ApiExplorer/Authorization/slice");
|
|
27
27
|
const persistanceMiddleware_1 = require("@theme/ApiExplorer/persistanceMiddleware");
|
|
28
|
-
const Layout_1 = __importDefault(require("@theme/
|
|
28
|
+
const Layout_1 = __importDefault(require("@theme/ApiItem/Layout"));
|
|
29
|
+
const CodeBlock_1 = __importDefault(require("@theme/CodeBlock"));
|
|
29
30
|
const Metadata_1 = __importDefault(require("@theme/DocItem/Metadata"));
|
|
31
|
+
const SkeletonLoader_1 = __importDefault(require("@theme/SkeletonLoader"));
|
|
30
32
|
const clsx_1 = __importDefault(require("clsx"));
|
|
31
33
|
const react_redux_1 = require("react-redux");
|
|
32
34
|
const store_1 = require("./store");
|
|
@@ -42,6 +44,7 @@ function ApiItem(props) {
|
|
|
42
44
|
const { info_path: infoPath } = frontMatter;
|
|
43
45
|
let { api } = frontMatter;
|
|
44
46
|
const { schema } = frontMatter;
|
|
47
|
+
const { sample } = frontMatter;
|
|
45
48
|
// decompress and parse
|
|
46
49
|
if (api) {
|
|
47
50
|
try {
|
|
@@ -149,9 +152,8 @@ function ApiItem(props) {
|
|
|
149
152
|
BrowserOnly_1.default,
|
|
150
153
|
{
|
|
151
154
|
fallback: react_1.default.createElement(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
"Loading..."
|
|
155
|
+
SkeletonLoader_1.default,
|
|
156
|
+
{ size: "lg" }
|
|
155
157
|
),
|
|
156
158
|
},
|
|
157
159
|
() => {
|
|
@@ -183,8 +185,17 @@ function ApiItem(props) {
|
|
|
183
185
|
{ className: (0, clsx_1.default)("row", "theme-api-markdown") },
|
|
184
186
|
react_1.default.createElement(
|
|
185
187
|
"div",
|
|
186
|
-
{ className: "col col--
|
|
188
|
+
{ className: "col col--7 openapi-left-panel__container schema" },
|
|
187
189
|
react_1.default.createElement(MDXComponent, null)
|
|
190
|
+
),
|
|
191
|
+
react_1.default.createElement(
|
|
192
|
+
"div",
|
|
193
|
+
{ className: "col col--5 openapi-right-panel__container" },
|
|
194
|
+
react_1.default.createElement(
|
|
195
|
+
CodeBlock_1.default,
|
|
196
|
+
{ language: "json", title: `${frontMatter.title}` },
|
|
197
|
+
JSON.stringify(sample, null, 2)
|
|
198
|
+
)
|
|
188
199
|
)
|
|
189
200
|
)
|
|
190
201
|
)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ============================================================================
|
|
3
|
+
* Copyright (c) Palo Alto Networks
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
* ========================================================================== */
|
|
8
|
+
var __importDefault =
|
|
9
|
+
(this && this.__importDefault) ||
|
|
10
|
+
function (mod) {
|
|
11
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ClosingArrayBracket = exports.OpeningArrayBracket = void 0;
|
|
15
|
+
const react_1 = __importDefault(require("react"));
|
|
16
|
+
const OpeningArrayBracket = () =>
|
|
17
|
+
react_1.default.createElement(
|
|
18
|
+
"li",
|
|
19
|
+
null,
|
|
20
|
+
react_1.default.createElement(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
style: {
|
|
24
|
+
fontSize: "var(--ifm-code-font-size)",
|
|
25
|
+
opacity: 0.6,
|
|
26
|
+
marginLeft: "-.5rem",
|
|
27
|
+
paddingBottom: ".5rem",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
"Array ["
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
exports.OpeningArrayBracket = OpeningArrayBracket;
|
|
34
|
+
const ClosingArrayBracket = () =>
|
|
35
|
+
react_1.default.createElement(
|
|
36
|
+
"li",
|
|
37
|
+
null,
|
|
38
|
+
react_1.default.createElement(
|
|
39
|
+
"div",
|
|
40
|
+
{
|
|
41
|
+
style: {
|
|
42
|
+
fontSize: "var(--ifm-code-font-size)",
|
|
43
|
+
opacity: 0.6,
|
|
44
|
+
marginLeft: "-.5rem",
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
"]"
|
|
48
|
+
)
|
|
49
|
+
);
|
|
50
|
+
exports.ClosingArrayBracket = ClosingArrayBracket;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ============================================================================
|
|
3
|
+
* Copyright (c) Palo Alto Networks
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
* ========================================================================== */
|
|
8
|
+
var __createBinding =
|
|
9
|
+
(this && this.__createBinding) ||
|
|
10
|
+
(Object.create
|
|
11
|
+
? function (o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (
|
|
15
|
+
!desc ||
|
|
16
|
+
("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
|
|
17
|
+
) {
|
|
18
|
+
desc = {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return m[k];
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}
|
|
27
|
+
: function (o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
o[k2] = m[k];
|
|
30
|
+
});
|
|
31
|
+
var __setModuleDefault =
|
|
32
|
+
(this && this.__setModuleDefault) ||
|
|
33
|
+
(Object.create
|
|
34
|
+
? function (o, v) {
|
|
35
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
+
}
|
|
37
|
+
: function (o, v) {
|
|
38
|
+
o["default"] = v;
|
|
39
|
+
});
|
|
40
|
+
var __importStar =
|
|
41
|
+
(this && this.__importStar) ||
|
|
42
|
+
function (mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null)
|
|
46
|
+
for (var k in mod)
|
|
47
|
+
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
|
|
48
|
+
__createBinding(result, mod, k);
|
|
49
|
+
__setModuleDefault(result, mod);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
var __importDefault =
|
|
53
|
+
(this && this.__importDefault) ||
|
|
54
|
+
function (mod) {
|
|
55
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
56
|
+
};
|
|
57
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
|
+
const react_1 = __importStar(require("react"));
|
|
59
|
+
const BrowserOnly_1 = __importDefault(require("@docusaurus/BrowserOnly"));
|
|
60
|
+
const Details_1 = __importDefault(require("@theme/Details"));
|
|
61
|
+
const ParamsItem_1 = __importDefault(require("@theme/ParamsItem"));
|
|
62
|
+
const SkeletonLoader_1 = __importDefault(require("@theme/SkeletonLoader"));
|
|
63
|
+
const ParamsDetailsComponent = ({ parameters }) => {
|
|
64
|
+
const types = ["path", "query", "header", "cookie"];
|
|
65
|
+
return react_1.default.createElement(
|
|
66
|
+
react_1.default.Fragment,
|
|
67
|
+
null,
|
|
68
|
+
types.map((type) => {
|
|
69
|
+
const params = parameters?.filter((param) => param?.in === type);
|
|
70
|
+
if (!params || params.length === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const summaryElement = react_1.default.createElement(
|
|
74
|
+
"summary",
|
|
75
|
+
null,
|
|
76
|
+
react_1.default.createElement(
|
|
77
|
+
"h3",
|
|
78
|
+
{ className: "openapi-markdown__details-summary-header-params" },
|
|
79
|
+
`${type.charAt(0).toUpperCase() + type.slice(1)} Parameters`
|
|
80
|
+
)
|
|
81
|
+
);
|
|
82
|
+
return react_1.default.createElement(
|
|
83
|
+
Details_1.default,
|
|
84
|
+
{
|
|
85
|
+
key: type,
|
|
86
|
+
className: "openapi-markdown__details",
|
|
87
|
+
style: { marginBottom: "1rem" },
|
|
88
|
+
"data-collapsed": false,
|
|
89
|
+
open: true,
|
|
90
|
+
summary: summaryElement,
|
|
91
|
+
},
|
|
92
|
+
react_1.default.createElement(
|
|
93
|
+
"ul",
|
|
94
|
+
null,
|
|
95
|
+
params.map((param, index) =>
|
|
96
|
+
react_1.default.createElement(ParamsItem_1.default, {
|
|
97
|
+
key: index,
|
|
98
|
+
className: "paramsItem",
|
|
99
|
+
param: {
|
|
100
|
+
...param,
|
|
101
|
+
enumDescriptions: Object.entries(
|
|
102
|
+
param?.schema?.["x-enumDescriptions"] ??
|
|
103
|
+
param?.schema?.items?.["x-enumDescriptions"] ??
|
|
104
|
+
{}
|
|
105
|
+
),
|
|
106
|
+
},
|
|
107
|
+
})
|
|
108
|
+
)
|
|
109
|
+
)
|
|
110
|
+
);
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
};
|
|
114
|
+
const ParamsDetails = (props) => {
|
|
115
|
+
return react_1.default.createElement(
|
|
116
|
+
BrowserOnly_1.default,
|
|
117
|
+
{
|
|
118
|
+
fallback: react_1.default.createElement(SkeletonLoader_1.default, {
|
|
119
|
+
size: "sm",
|
|
120
|
+
}),
|
|
121
|
+
},
|
|
122
|
+
() => {
|
|
123
|
+
const LazyComponent = react_1.default.lazy(() =>
|
|
124
|
+
Promise.resolve({ default: ParamsDetailsComponent })
|
|
125
|
+
);
|
|
126
|
+
return react_1.default.createElement(
|
|
127
|
+
react_1.Suspense,
|
|
128
|
+
{ fallback: null },
|
|
129
|
+
react_1.default.createElement(LazyComponent, { ...props })
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
exports.default = ParamsDetails;
|
|
@@ -9,6 +9,7 @@ export interface ExampleObject {
|
|
|
9
9
|
externalValue?: string;
|
|
10
10
|
}
|
|
11
11
|
export interface Props {
|
|
12
|
+
className: string;
|
|
12
13
|
param: {
|
|
13
14
|
description: string;
|
|
14
15
|
example: any;
|
|
@@ -17,7 +18,8 @@ export interface Props {
|
|
|
17
18
|
required: boolean;
|
|
18
19
|
deprecated: boolean;
|
|
19
20
|
schema: any;
|
|
21
|
+
enumDescriptions?: [string, string][];
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
|
-
declare function ParamsItem({ param
|
|
24
|
+
declare function ParamsItem({ param, ...rest }: Props): React.JSX.Element;
|
|
23
25
|
export default ParamsItem;
|
|
@@ -19,15 +19,45 @@ const TabItem_1 = __importDefault(require("@theme/TabItem"));
|
|
|
19
19
|
const clsx_1 = __importDefault(require("clsx"));
|
|
20
20
|
const react_markdown_1 = __importDefault(require("react-markdown"));
|
|
21
21
|
const rehype_raw_1 = __importDefault(require("rehype-raw"));
|
|
22
|
+
const remark_gfm_1 = __importDefault(require("remark-gfm"));
|
|
22
23
|
const createDescription_1 = require("../../markdown/createDescription");
|
|
23
24
|
const schema_1 = require("../../markdown/schema");
|
|
24
25
|
const utils_1 = require("../../markdown/utils");
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
const getEnumDescriptionMarkdown = (enumDescriptions) => {
|
|
27
|
+
if (enumDescriptions?.length) {
|
|
28
|
+
return `| Enum Value | Description |
|
|
29
|
+
| ---- | ----- |
|
|
30
|
+
${enumDescriptions
|
|
31
|
+
.map((desc) => {
|
|
32
|
+
return `| ${desc[0]} | ${desc[1]} | `.replaceAll("\n", "<br/>");
|
|
33
|
+
})
|
|
34
|
+
.join("\n")}
|
|
35
|
+
`;
|
|
36
|
+
}
|
|
37
|
+
return "";
|
|
38
|
+
};
|
|
39
|
+
function ParamsItem({ param, ...rest }) {
|
|
40
|
+
const {
|
|
41
|
+
description,
|
|
42
|
+
example,
|
|
43
|
+
examples,
|
|
44
|
+
name,
|
|
45
|
+
required,
|
|
46
|
+
deprecated,
|
|
47
|
+
enumDescriptions,
|
|
48
|
+
} = param;
|
|
49
|
+
let schema = param.schema;
|
|
50
|
+
let defaultValue;
|
|
28
51
|
if (!schema || !schema?.type) {
|
|
29
52
|
schema = { type: "any" };
|
|
30
53
|
}
|
|
54
|
+
if (schema) {
|
|
55
|
+
if (schema.items) {
|
|
56
|
+
defaultValue = schema.items.default;
|
|
57
|
+
} else {
|
|
58
|
+
defaultValue = schema.default;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
31
61
|
const renderSchemaName = (0, utils_1.guard)(schema, (schema) =>
|
|
32
62
|
react_1.default.createElement(
|
|
33
63
|
"span",
|
|
@@ -64,7 +94,7 @@ function ParamsItem({
|
|
|
64
94
|
);
|
|
65
95
|
const renderDescription = (0, utils_1.guard)(description, (description) =>
|
|
66
96
|
react_1.default.createElement(
|
|
67
|
-
|
|
97
|
+
react_1.default.Fragment,
|
|
68
98
|
null,
|
|
69
99
|
react_1.default.createElement(react_markdown_1.default, {
|
|
70
100
|
children: (0, createDescription_1.createDescription)(description),
|
|
@@ -91,21 +121,51 @@ function ParamsItem({
|
|
|
91
121
|
})
|
|
92
122
|
)
|
|
93
123
|
);
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
? schema.default
|
|
99
|
-
: undefined,
|
|
100
|
-
(value) =>
|
|
101
|
-
react_1.default.createElement(
|
|
124
|
+
const renderEnumDescriptions = (0, utils_1.guard)(
|
|
125
|
+
getEnumDescriptionMarkdown(enumDescriptions),
|
|
126
|
+
(value) => {
|
|
127
|
+
return react_1.default.createElement(
|
|
102
128
|
"div",
|
|
103
|
-
|
|
129
|
+
{ style: { marginTop: ".5rem" } },
|
|
104
130
|
react_1.default.createElement(react_markdown_1.default, {
|
|
105
|
-
|
|
131
|
+
rehypePlugins: [rehype_raw_1.default],
|
|
132
|
+
remarkPlugins: [remark_gfm_1.default],
|
|
133
|
+
children: value,
|
|
106
134
|
})
|
|
107
|
-
)
|
|
135
|
+
);
|
|
136
|
+
}
|
|
108
137
|
);
|
|
138
|
+
function renderDefaultValue() {
|
|
139
|
+
if (defaultValue !== undefined) {
|
|
140
|
+
if (typeof defaultValue === "string") {
|
|
141
|
+
return react_1.default.createElement(
|
|
142
|
+
"div",
|
|
143
|
+
null,
|
|
144
|
+
react_1.default.createElement("strong", null, "Default value: "),
|
|
145
|
+
react_1.default.createElement(
|
|
146
|
+
"span",
|
|
147
|
+
null,
|
|
148
|
+
react_1.default.createElement("code", null, defaultValue)
|
|
149
|
+
)
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
return react_1.default.createElement(
|
|
153
|
+
"div",
|
|
154
|
+
null,
|
|
155
|
+
react_1.default.createElement("strong", null, "Default value: "),
|
|
156
|
+
react_1.default.createElement(
|
|
157
|
+
"span",
|
|
158
|
+
null,
|
|
159
|
+
react_1.default.createElement(
|
|
160
|
+
"code",
|
|
161
|
+
null,
|
|
162
|
+
JSON.stringify(defaultValue)
|
|
163
|
+
)
|
|
164
|
+
)
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
109
169
|
const renderExample = (0, utils_1.guard)(
|
|
110
170
|
(0, utils_1.toString)(example),
|
|
111
171
|
(example) =>
|
|
@@ -186,8 +246,9 @@ function ParamsItem({
|
|
|
186
246
|
renderDeprecated
|
|
187
247
|
),
|
|
188
248
|
renderSchema,
|
|
189
|
-
renderDefaultValue,
|
|
190
249
|
renderDescription,
|
|
250
|
+
renderEnumDescriptions,
|
|
251
|
+
renderDefaultValue(),
|
|
191
252
|
renderExample,
|
|
192
253
|
renderExamples
|
|
193
254
|
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { MediaTypeObject } from "docusaurus-plugin-openapi-docs/lib/openapi/types";
|
|
3
|
+
interface Props {
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
title: string;
|
|
6
|
+
body: {
|
|
7
|
+
content?: {
|
|
8
|
+
[key: string]: MediaTypeObject;
|
|
9
|
+
};
|
|
10
|
+
description?: string;
|
|
11
|
+
required?: string[] | boolean;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
declare const RequestSchema: React.FC<Props>;
|
|
15
|
+
export default RequestSchema;
|