docusaurus-theme-openapi-docs 2.0.3 → 2.1.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 +2 -2
- package/lib/markdown/utils.js +4 -4
- package/lib/markdown/utils.test.d.ts +1 -0
- package/lib/markdown/utils.test.js +43 -0
- package/lib/theme/ApiExplorer/Accept/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/Authorization/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/Authorization/slice.d.ts +1 -1
- package/lib/theme/ApiExplorer/Body/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/Body/slice.d.ts +3 -3
- package/lib/theme/ApiExplorer/CodeSnippets/code-snippets-types.d.ts +21 -0
- package/lib/theme/ApiExplorer/CodeSnippets/code-snippets-types.js +8 -0
- package/lib/theme/ApiExplorer/CodeSnippets/index.d.ts +4 -14
- package/lib/theme/ApiExplorer/CodeSnippets/index.js +86 -8
- package/lib/theme/ApiExplorer/CodeSnippets/languages.d.ts +3 -0
- package/lib/theme/ApiExplorer/CodeSnippets/languages.js +48 -0
- package/lib/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +14 -0
- package/lib/theme/ApiExplorer/CodeTabs/index.js +10 -1
- package/lib/theme/ApiExplorer/ContentType/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/Export/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/FloatingButton/index.d.ts +1 -1
- package/lib/theme/ApiExplorer/FormFileUpload/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/FormItem/index.d.ts +1 -1
- package/lib/theme/ApiExplorer/FormMultiSelect/index.d.ts +1 -1
- package/lib/theme/ApiExplorer/FormSelect/index.d.ts +1 -1
- package/lib/theme/ApiExplorer/FormTextInput/index.d.ts +1 -1
- package/lib/theme/ApiExplorer/MethodEndpoint/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.d.ts +2 -2
- package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.d.ts +2 -2
- package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.d.ts +2 -2
- package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.d.ts +2 -2
- package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.d.ts +2 -2
- package/lib/theme/ApiExplorer/ParamOptions/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/ParamOptions/slice.d.ts +1 -1
- package/lib/theme/ApiExplorer/Request/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/Response/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/SecuritySchemes/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/Server/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/buildPostmanRequest.d.ts +1 -1
- package/lib/theme/ApiExplorer/index.d.ts +2 -2
- package/lib/theme/ApiExplorer/index.js +1 -1
- package/lib/theme/ApiExplorer/storage-utils.d.ts +1 -1
- package/lib/theme/ApiItem/index.js +24 -0
- package/lib/theme/ApiItem/store.d.ts +6 -6
- package/lib/theme/SchemaItem/index.js +5 -8
- package/lib/types.d.ts +4 -4
- package/package.json +3 -3
- package/src/markdown/utils.test.ts +48 -0
- package/src/markdown/utils.ts +4 -4
- package/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts +55 -0
- package/src/theme/ApiExplorer/CodeSnippets/index.tsx +94 -21
- package/src/theme/ApiExplorer/CodeSnippets/languages.ts +53 -0
- package/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +14 -0
- package/src/theme/ApiExplorer/CodeTabs/index.js +10 -1
- package/src/theme/ApiExplorer/index.tsx +1 -1
- package/src/theme/ApiItem/index.tsx +20 -0
- package/src/theme/SchemaItem/index.js +5 -8
- package/lib/theme/ApiExplorer/CodeSnippets/languages.json +0 -1386
- package/src/theme/ApiExplorer/CodeSnippets/languages.json +0 -1386
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
import { CodeSample, Language } from "./code-snippets-types";
|
|
9
|
+
|
|
10
|
+
export function mergeCodeSampleLanguage(
|
|
11
|
+
languages: Language[],
|
|
12
|
+
codeSamples: CodeSample[]
|
|
13
|
+
): Language[] {
|
|
14
|
+
return languages.map((language) => {
|
|
15
|
+
const languageCodeSamples = codeSamples.filter(
|
|
16
|
+
({ lang }) => lang === language.codeSampleLanguage
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
if (languageCodeSamples.length) {
|
|
20
|
+
const samples = languageCodeSamples.map(({ lang }) => lang);
|
|
21
|
+
const samplesLabels = languageCodeSamples.map(
|
|
22
|
+
({ label, lang }) => label || lang
|
|
23
|
+
);
|
|
24
|
+
const samplesSources = languageCodeSamples.map(({ source }) => source);
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
...language,
|
|
28
|
+
sample: samples[0],
|
|
29
|
+
samples,
|
|
30
|
+
samplesSources,
|
|
31
|
+
samplesLabels,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return language;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function getCodeSampleSourceFromLanguage(language: Language) {
|
|
40
|
+
if (
|
|
41
|
+
language &&
|
|
42
|
+
language.sample &&
|
|
43
|
+
language.samples &&
|
|
44
|
+
language.samplesSources
|
|
45
|
+
) {
|
|
46
|
+
const sampleIndex = language.samples.findIndex(
|
|
47
|
+
(smp) => smp === language.sample
|
|
48
|
+
);
|
|
49
|
+
return language.samplesSources[sampleIndex];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return "";
|
|
53
|
+
}
|
|
@@ -94,6 +94,20 @@ body[class="ReactModal__Body--open"] {
|
|
|
94
94
|
padding-right: 0.5rem !important;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
.openapi-tabs__code-item--sample {
|
|
98
|
+
color: var(--ifm-color-secondary);
|
|
99
|
+
|
|
100
|
+
&.active {
|
|
101
|
+
border-color: var(--ifm-toc-border-color);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.openapi-tabs__code-item--sample > span {
|
|
106
|
+
padding-top: unset !important;
|
|
107
|
+
padding-left: 0.5rem !important;
|
|
108
|
+
padding-right: 0.5rem !important;
|
|
109
|
+
}
|
|
110
|
+
|
|
97
111
|
.openapi-tabs__code-item--python {
|
|
98
112
|
color: var(--ifm-color-success);
|
|
99
113
|
|
|
@@ -12,13 +12,14 @@ import {
|
|
|
12
12
|
useTabs,
|
|
13
13
|
} from "@docusaurus/theme-common/internal";
|
|
14
14
|
import useIsBrowser from "@docusaurus/useIsBrowser";
|
|
15
|
-
import { languageSet } from "@theme/ApiExplorer/CodeSnippets";
|
|
16
15
|
import clsx from "clsx";
|
|
17
16
|
|
|
18
17
|
function TabList({
|
|
19
18
|
action,
|
|
20
19
|
currentLanguage,
|
|
20
|
+
languageSet,
|
|
21
21
|
includeVariant,
|
|
22
|
+
includeSample,
|
|
22
23
|
className,
|
|
23
24
|
block,
|
|
24
25
|
selectedValue,
|
|
@@ -47,12 +48,20 @@ function TabList({
|
|
|
47
48
|
)[0];
|
|
48
49
|
newLanguage.variant = newTabValue;
|
|
49
50
|
action.setSelectedVariant(newTabValue.toLowerCase());
|
|
51
|
+
} else if (currentLanguage && includeSample) {
|
|
52
|
+
newLanguage = languageSet.filter(
|
|
53
|
+
(lang) => lang.language === currentLanguage
|
|
54
|
+
)[0];
|
|
55
|
+
newLanguage.sample = newTabValue;
|
|
56
|
+
action.setSelectedSample(newTabValue);
|
|
50
57
|
} else {
|
|
51
58
|
newLanguage = languageSet.filter(
|
|
52
59
|
(lang) => lang.language === newTabValue
|
|
53
60
|
)[0];
|
|
54
61
|
action.setSelectedVariant(newLanguage.variant.toLowerCase());
|
|
62
|
+
action.setSelectedSample(newLanguage.sample);
|
|
55
63
|
}
|
|
64
|
+
|
|
56
65
|
action.setLanguage(newLanguage);
|
|
57
66
|
}
|
|
58
67
|
};
|
|
@@ -44,12 +44,17 @@ interface ApiFrontMatter extends DocFrontMatter {
|
|
|
44
44
|
readonly api?: ApiItemType;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
interface SchemaFrontMatter extends DocFrontMatter {
|
|
48
|
+
readonly schema?: boolean;
|
|
49
|
+
}
|
|
50
|
+
|
|
47
51
|
export default function ApiItem(props: Props): JSX.Element {
|
|
48
52
|
const docHtmlClassName = `docs-doc-id-${props.content.metadata.unversionedId}`;
|
|
49
53
|
const MDXComponent = props.content;
|
|
50
54
|
const { frontMatter } = MDXComponent;
|
|
51
55
|
const { info_path: infoPath } = frontMatter as DocFrontMatter;
|
|
52
56
|
let { api } = frontMatter as ApiFrontMatter;
|
|
57
|
+
const { schema } = frontMatter as SchemaFrontMatter;
|
|
53
58
|
// decompress and parse
|
|
54
59
|
if (api) {
|
|
55
60
|
api = JSON.parse(
|
|
@@ -159,6 +164,21 @@ export default function ApiItem(props: Props): JSX.Element {
|
|
|
159
164
|
</HtmlClassNameProvider>
|
|
160
165
|
</DocProvider>
|
|
161
166
|
);
|
|
167
|
+
} else if (schema) {
|
|
168
|
+
return (
|
|
169
|
+
<DocProvider content={props.content}>
|
|
170
|
+
<HtmlClassNameProvider className={docHtmlClassName}>
|
|
171
|
+
<DocItemMetadata />
|
|
172
|
+
<DocItemLayout>
|
|
173
|
+
<div className={clsx("row", "theme-api-markdown")}>
|
|
174
|
+
<div className="col col--12">
|
|
175
|
+
<MDXComponent />
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</DocItemLayout>
|
|
179
|
+
</HtmlClassNameProvider>
|
|
180
|
+
</DocProvider>
|
|
181
|
+
);
|
|
162
182
|
}
|
|
163
183
|
|
|
164
184
|
// Non-API docs
|
|
@@ -79,14 +79,11 @@ function SchemaItem({
|
|
|
79
79
|
</div>
|
|
80
80
|
));
|
|
81
81
|
|
|
82
|
-
const renderDefaultValue = guard(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
</div>
|
|
88
|
-
)
|
|
89
|
-
);
|
|
82
|
+
const renderDefaultValue = guard(defaultValue, (value) => (
|
|
83
|
+
<div className="">
|
|
84
|
+
<ReactMarkdown children={`**Default value:** \`${value}\``} />
|
|
85
|
+
</div>
|
|
86
|
+
));
|
|
90
87
|
|
|
91
88
|
const schemaContent = (
|
|
92
89
|
<div>
|