docusaurus-theme-openapi-docs 0.0.0-beta.646 → 0.0.0-beta.651
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/theme/ApiDemoPanel/ApiCodeBlock/Content/_Content.scss +1 -0
- package/lib/theme/ApiDemoPanel/Body/index.d.ts +3 -1
- package/lib/theme/ApiDemoPanel/Body/index.js +30 -32
- package/lib/theme/ApiDemoPanel/CodeTabs/_CodeTabs.scss +95 -39
- package/lib/theme/ApiDemoPanel/CodeTabs/index.js +24 -6
- package/lib/theme/ApiDemoPanel/Curl/index.d.ts +5 -4
- package/lib/theme/ApiDemoPanel/Curl/index.js +79 -11
- package/lib/theme/ApiDemoPanel/FormItem/_FormItem.scss +11 -2
- package/lib/theme/ApiDemoPanel/FormItem/index.d.ts +2 -1
- package/lib/theme/ApiDemoPanel/FormItem/index.js +9 -3
- package/lib/theme/ApiDemoPanel/FormMultiSelect/_FormMultiSelect.scss +8 -4
- package/lib/theme/ApiDemoPanel/FormMultiSelect/index.d.ts +2 -1
- package/lib/theme/ApiDemoPanel/FormMultiSelect/index.js +5 -2
- package/lib/theme/ApiDemoPanel/FormSelect/_FormSelect.scss +3 -3
- package/lib/theme/ApiDemoPanel/FormTextInput/_FormTextInput.scss +24 -5
- package/lib/theme/ApiDemoPanel/FormTextInput/index.d.ts +1 -1
- package/lib/theme/ApiDemoPanel/FormTextInput/index.js +56 -10
- package/lib/theme/ApiDemoPanel/LiveEditor/index.d.ts +5 -2
- package/lib/theme/ApiDemoPanel/LiveEditor/index.js +59 -14
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem.d.ts +6 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem.js +194 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem.d.ts +6 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem.js +63 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.d.ts +6 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.js +89 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem.d.ts +6 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem.js +63 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem.d.ts +6 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem.js +38 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/_ParamOptions.scss +9 -28
- package/lib/theme/ApiDemoPanel/ParamOptions/index.js +24 -176
- package/lib/theme/ApiDemoPanel/Request/_Request.scss +93 -20
- package/lib/theme/ApiDemoPanel/Request/index.d.ts +1 -1
- package/lib/theme/ApiDemoPanel/Request/index.js +316 -37
- package/lib/theme/ApiDemoPanel/Response/_Response.scss +54 -0
- package/lib/theme/ApiDemoPanel/Response/index.d.ts +4 -1
- package/lib/theme/ApiDemoPanel/Response/index.js +56 -31
- package/lib/theme/ApiDemoPanel/Server/_Server.scss +10 -0
- package/lib/theme/ApiDemoPanel/Server/index.js +10 -11
- package/lib/theme/ApiDemoPanel/index.js +1 -1
- package/lib/theme/SchemaTabs/_SchemaTabs.scss +0 -1
- package/lib/theme/styles.scss +27 -0
- package/package.json +7 -4
- package/src/theme/ApiDemoPanel/ApiCodeBlock/Content/_Content.scss +1 -0
- package/src/theme/ApiDemoPanel/Body/index.tsx +38 -29
- package/src/theme/ApiDemoPanel/CodeTabs/_CodeTabs.scss +95 -39
- package/src/theme/ApiDemoPanel/CodeTabs/index.js +24 -6
- package/src/theme/ApiDemoPanel/Curl/index.tsx +85 -22
- package/src/theme/ApiDemoPanel/FormItem/_FormItem.scss +11 -2
- package/src/theme/ApiDemoPanel/FormItem/index.tsx +8 -3
- package/src/theme/ApiDemoPanel/FormMultiSelect/_FormMultiSelect.scss +8 -4
- package/src/theme/ApiDemoPanel/FormMultiSelect/index.tsx +7 -2
- package/src/theme/ApiDemoPanel/FormSelect/_FormSelect.scss +3 -3
- package/src/theme/ApiDemoPanel/FormTextInput/_FormTextInput.scss +24 -5
- package/src/theme/ApiDemoPanel/FormTextInput/index.tsx +58 -10
- package/src/theme/ApiDemoPanel/LiveEditor/index.tsx +53 -14
- package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx +153 -0
- package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx +64 -0
- package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx +86 -0
- package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx +65 -0
- package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem.tsx +38 -0
- package/src/theme/ApiDemoPanel/ParamOptions/_ParamOptions.scss +9 -28
- package/src/theme/ApiDemoPanel/ParamOptions/index.tsx +8 -196
- package/src/theme/ApiDemoPanel/Request/_Request.scss +93 -20
- package/src/theme/ApiDemoPanel/Request/index.tsx +250 -28
- package/src/theme/ApiDemoPanel/Response/_Response.scss +54 -0
- package/src/theme/ApiDemoPanel/Response/index.tsx +44 -26
- package/src/theme/ApiDemoPanel/Server/_Server.scss +10 -0
- package/src/theme/ApiDemoPanel/Server/index.tsx +8 -11
- package/src/theme/ApiDemoPanel/index.tsx +1 -1
- package/src/theme/SchemaTabs/_SchemaTabs.scss +0 -1
- package/src/theme/styles.scss +27 -0
- package/src/theme-openapi.d.ts +40 -1
- package/lib/theme/ApiDemoPanel/Execute/index.d.ts +0 -8
- package/lib/theme/ApiDemoPanel/Execute/index.js +0 -213
- package/src/theme/ApiDemoPanel/Execute/index.tsx +0 -200
- /package/lib/theme/ApiDemoPanel/{Execute → Request}/makeRequest.d.ts +0 -0
- /package/lib/theme/ApiDemoPanel/{Execute → Request}/makeRequest.js +0 -0
- /package/src/theme/ApiDemoPanel/{Execute → Request}/makeRequest.ts +0 -0
|
@@ -5,13 +5,58 @@
|
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
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
|
+
};
|
|
8
52
|
var __importDefault =
|
|
9
53
|
(this && this.__importDefault) ||
|
|
10
54
|
function (mod) {
|
|
11
55
|
return mod && mod.__esModule ? mod : { default: mod };
|
|
12
56
|
};
|
|
13
57
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
|
|
58
|
+
// @ts-nocheck
|
|
59
|
+
const react_1 = __importStar(require("react"));
|
|
15
60
|
const internal_1 = require("@docusaurus/theme-common/internal");
|
|
16
61
|
const postman_collection_1 = __importDefault(
|
|
17
62
|
require("@paloaltonetworks/postman-collection")
|
|
@@ -21,20 +66,77 @@ const Authorization_1 = __importDefault(
|
|
|
21
66
|
require("@theme/ApiDemoPanel/Authorization")
|
|
22
67
|
);
|
|
23
68
|
const Body_1 = __importDefault(require("@theme/ApiDemoPanel/Body"));
|
|
24
|
-
const
|
|
69
|
+
const buildPostmanRequest_1 = __importDefault(
|
|
70
|
+
require("@theme/ApiDemoPanel/buildPostmanRequest")
|
|
71
|
+
);
|
|
72
|
+
const ContentType_1 = __importDefault(
|
|
73
|
+
require("@theme/ApiDemoPanel/ContentType")
|
|
74
|
+
);
|
|
25
75
|
const ParamOptions_1 = __importDefault(
|
|
26
76
|
require("@theme/ApiDemoPanel/ParamOptions")
|
|
27
77
|
);
|
|
78
|
+
const slice_1 = require("@theme/ApiDemoPanel/Response/slice");
|
|
28
79
|
const Server_1 = __importDefault(require("@theme/ApiDemoPanel/Server"));
|
|
29
80
|
const hooks_1 = require("@theme/ApiItem/hooks");
|
|
81
|
+
const react_hook_form_1 = require("react-hook-form");
|
|
82
|
+
const makeRequest_1 = __importDefault(require("./makeRequest"));
|
|
30
83
|
function Request({ item }) {
|
|
31
|
-
const response = (0, hooks_1.useTypedSelector)(
|
|
32
|
-
(state) => state.response.value
|
|
33
|
-
);
|
|
34
84
|
const postman = new postman_collection_1.default.Request(item.postman);
|
|
35
85
|
const metadata = (0, internal_1.useDoc)();
|
|
36
|
-
const { proxy, hide_send_button } = metadata.frontMatter;
|
|
37
|
-
const
|
|
86
|
+
const { proxy, hide_send_button: hideSendButton } = metadata.frontMatter;
|
|
87
|
+
const pathParams = (0, hooks_1.useTypedSelector)(
|
|
88
|
+
(state) => state.params.path
|
|
89
|
+
);
|
|
90
|
+
const queryParams = (0, hooks_1.useTypedSelector)(
|
|
91
|
+
(state) => state.params.query
|
|
92
|
+
);
|
|
93
|
+
const cookieParams = (0, hooks_1.useTypedSelector)(
|
|
94
|
+
(state) => state.params.cookie
|
|
95
|
+
);
|
|
96
|
+
const contentType = (0, hooks_1.useTypedSelector)(
|
|
97
|
+
(state) => state.contentType.value
|
|
98
|
+
);
|
|
99
|
+
const headerParams = (0, hooks_1.useTypedSelector)(
|
|
100
|
+
(state) => state.params.header
|
|
101
|
+
);
|
|
102
|
+
const body = (0, hooks_1.useTypedSelector)((state) => state.body);
|
|
103
|
+
const accept = (0, hooks_1.useTypedSelector)((state) => state.accept.value);
|
|
104
|
+
const acceptOptions = (0, hooks_1.useTypedDispatch)(
|
|
105
|
+
(state) => state.accept.options
|
|
106
|
+
);
|
|
107
|
+
const authSelected = (0, hooks_1.useTypedSelector)(
|
|
108
|
+
(state) => state.auth.selected
|
|
109
|
+
);
|
|
110
|
+
const server = (0, hooks_1.useTypedSelector)((state) => state.server.value);
|
|
111
|
+
const serverOptions = (0, hooks_1.useTypedSelector)(
|
|
112
|
+
(state) => state.server.options
|
|
113
|
+
);
|
|
114
|
+
const auth = (0, hooks_1.useTypedSelector)((state) => state.auth);
|
|
115
|
+
const dispatch = (0, hooks_1.useTypedDispatch)();
|
|
116
|
+
const [expandAccept, setExpandAccept] = (0, react_1.useState)(true);
|
|
117
|
+
const [expandAuth, setExpandAuth] = (0, react_1.useState)(true);
|
|
118
|
+
const [expandBody, setExpandBody] = (0, react_1.useState)(true);
|
|
119
|
+
const [expandParams, setExpandParams] = (0, react_1.useState)(true);
|
|
120
|
+
const [expandServer, setExpandServer] = (0, react_1.useState)(true);
|
|
121
|
+
const allParams = [
|
|
122
|
+
...pathParams,
|
|
123
|
+
...queryParams,
|
|
124
|
+
...cookieParams,
|
|
125
|
+
...headerParams,
|
|
126
|
+
];
|
|
127
|
+
const postmanRequest = (0, buildPostmanRequest_1.default)(postman, {
|
|
128
|
+
queryParams,
|
|
129
|
+
pathParams,
|
|
130
|
+
cookieParams,
|
|
131
|
+
contentType,
|
|
132
|
+
accept,
|
|
133
|
+
headerParams,
|
|
134
|
+
body,
|
|
135
|
+
server,
|
|
136
|
+
auth,
|
|
137
|
+
});
|
|
138
|
+
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
139
|
+
const paramsObject = {
|
|
38
140
|
path: [],
|
|
39
141
|
query: [],
|
|
40
142
|
header: [],
|
|
@@ -42,45 +144,222 @@ function Request({ item }) {
|
|
|
42
144
|
};
|
|
43
145
|
item.parameters?.forEach((param) => {
|
|
44
146
|
const paramType = param.in;
|
|
45
|
-
const paramsArray =
|
|
147
|
+
const paramsArray = paramsObject[paramType];
|
|
46
148
|
paramsArray.push(param);
|
|
47
149
|
});
|
|
150
|
+
const methods = (0, react_hook_form_1.useForm)({ shouldFocusError: false });
|
|
151
|
+
const onSubmit = async (data) => {
|
|
152
|
+
dispatch((0, slice_1.setResponse)("Fetching..."));
|
|
153
|
+
try {
|
|
154
|
+
await delay(1200);
|
|
155
|
+
const res = await (0, makeRequest_1.default)(postmanRequest, proxy, body);
|
|
156
|
+
dispatch((0, slice_1.setResponse)(await res.text()));
|
|
157
|
+
dispatch((0, slice_1.setCode)(res.status));
|
|
158
|
+
res.headers &&
|
|
159
|
+
dispatch((0, slice_1.setHeaders)(Object.fromEntries(res.headers)));
|
|
160
|
+
} catch (e) {
|
|
161
|
+
console.log(e);
|
|
162
|
+
dispatch((0, slice_1.setResponse)("Connection failed"));
|
|
163
|
+
dispatch((0, slice_1.clearCode)());
|
|
164
|
+
dispatch((0, slice_1.clearHeaders)());
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const showServerOptions = serverOptions.length > 0;
|
|
168
|
+
const showAcceptOptions = acceptOptions.length > 1;
|
|
169
|
+
const showRequestBody = contentType !== undefined;
|
|
170
|
+
const showRequestButton = item.servers && !hideSendButton;
|
|
171
|
+
const showAuth = authSelected !== undefined;
|
|
172
|
+
const showParams = allParams.length > 0;
|
|
173
|
+
const requestBodyRequired = item.requestBody?.required;
|
|
174
|
+
if (
|
|
175
|
+
!showAcceptOptions &&
|
|
176
|
+
!showAuth &&
|
|
177
|
+
!showParams &&
|
|
178
|
+
!showRequestBody &&
|
|
179
|
+
!showServerOptions
|
|
180
|
+
) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
const expandAllDetails = () => {
|
|
184
|
+
setExpandAccept(true);
|
|
185
|
+
setExpandAuth(true);
|
|
186
|
+
setExpandBody(true);
|
|
187
|
+
setExpandParams(true);
|
|
188
|
+
setExpandServer(true);
|
|
189
|
+
};
|
|
190
|
+
const collapseAllDetails = () => {
|
|
191
|
+
setExpandAccept(false);
|
|
192
|
+
setExpandAuth(false);
|
|
193
|
+
setExpandBody(false);
|
|
194
|
+
setExpandParams(false);
|
|
195
|
+
setExpandServer(false);
|
|
196
|
+
};
|
|
197
|
+
const allDetailsExpanded =
|
|
198
|
+
expandParams && expandBody && expandServer && expandAuth && expandAccept;
|
|
48
199
|
return react_1.default.createElement(
|
|
49
|
-
|
|
50
|
-
|
|
200
|
+
react_hook_form_1.FormProvider,
|
|
201
|
+
{ ...methods },
|
|
51
202
|
react_1.default.createElement(
|
|
52
|
-
"
|
|
53
|
-
{
|
|
203
|
+
"form",
|
|
204
|
+
{
|
|
205
|
+
className: "openapi-demo__request-form",
|
|
206
|
+
onSubmit: methods.handleSubmit(onSubmit),
|
|
207
|
+
},
|
|
54
208
|
react_1.default.createElement(
|
|
55
|
-
"
|
|
56
|
-
{ className: "openapi-
|
|
209
|
+
"div",
|
|
210
|
+
{ className: "openapi-demo__request-header-container" },
|
|
57
211
|
react_1.default.createElement(
|
|
58
|
-
"
|
|
59
|
-
{ className: "openapi-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
212
|
+
"span",
|
|
213
|
+
{ className: "openapi-demo__request-title" },
|
|
214
|
+
"Request "
|
|
215
|
+
),
|
|
216
|
+
allDetailsExpanded
|
|
217
|
+
? react_1.default.createElement(
|
|
218
|
+
"span",
|
|
219
|
+
{
|
|
220
|
+
className: "openapi-demo__expand-details-btn",
|
|
221
|
+
onClick: collapseAllDetails,
|
|
222
|
+
},
|
|
223
|
+
"Collapse all"
|
|
224
|
+
)
|
|
225
|
+
: react_1.default.createElement(
|
|
226
|
+
"span",
|
|
227
|
+
{
|
|
228
|
+
className: "openapi-demo__expand-details-btn",
|
|
229
|
+
onClick: expandAllDetails,
|
|
230
|
+
},
|
|
231
|
+
"Expand all"
|
|
232
|
+
)
|
|
72
233
|
),
|
|
73
234
|
react_1.default.createElement(
|
|
74
235
|
"div",
|
|
75
|
-
{ className: "openapi-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
236
|
+
{ className: "openapi-demo__details-outer-container" },
|
|
237
|
+
showServerOptions &&
|
|
238
|
+
react_1.default.createElement(
|
|
239
|
+
"details",
|
|
240
|
+
{
|
|
241
|
+
open: expandServer,
|
|
242
|
+
className: "openapi-demo__details-container",
|
|
243
|
+
},
|
|
244
|
+
react_1.default.createElement(
|
|
245
|
+
"summary",
|
|
246
|
+
{
|
|
247
|
+
className: "openapi-demo__details-summary",
|
|
248
|
+
onClick: (e) => {
|
|
249
|
+
e.preventDefault();
|
|
250
|
+
setExpandServer(!expandServer);
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
"Base URL"
|
|
254
|
+
),
|
|
255
|
+
react_1.default.createElement(Server_1.default, null)
|
|
256
|
+
),
|
|
257
|
+
showAuth &&
|
|
258
|
+
react_1.default.createElement(
|
|
259
|
+
"details",
|
|
260
|
+
{ open: expandAuth, className: "openapi-demo__details-container" },
|
|
261
|
+
react_1.default.createElement(
|
|
262
|
+
"summary",
|
|
263
|
+
{
|
|
264
|
+
className: "openapi-demo__details-summary",
|
|
265
|
+
onClick: (e) => {
|
|
266
|
+
e.preventDefault();
|
|
267
|
+
setExpandAuth(!expandAuth);
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
"Auth"
|
|
271
|
+
),
|
|
272
|
+
react_1.default.createElement(Authorization_1.default, null)
|
|
273
|
+
),
|
|
274
|
+
showParams &&
|
|
275
|
+
react_1.default.createElement(
|
|
276
|
+
"details",
|
|
277
|
+
{
|
|
278
|
+
open:
|
|
279
|
+
expandParams || Object.keys(methods.formState.errors).length,
|
|
280
|
+
className: "openapi-demo__details-container",
|
|
281
|
+
},
|
|
282
|
+
react_1.default.createElement(
|
|
283
|
+
"summary",
|
|
284
|
+
{
|
|
285
|
+
className: "openapi-demo__details-summary",
|
|
286
|
+
onClick: (e) => {
|
|
287
|
+
e.preventDefault();
|
|
288
|
+
setExpandParams(!expandParams);
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
"Parameters"
|
|
292
|
+
),
|
|
293
|
+
react_1.default.createElement(ParamOptions_1.default, null)
|
|
294
|
+
),
|
|
295
|
+
showRequestBody &&
|
|
296
|
+
react_1.default.createElement(
|
|
297
|
+
"details",
|
|
298
|
+
{ open: expandBody, className: "openapi-demo__details-container" },
|
|
299
|
+
react_1.default.createElement(
|
|
300
|
+
"summary",
|
|
301
|
+
{
|
|
302
|
+
className: "openapi-demo__details-summary",
|
|
303
|
+
onClick: (e) => {
|
|
304
|
+
e.preventDefault();
|
|
305
|
+
setExpandBody(!expandBody);
|
|
306
|
+
},
|
|
307
|
+
},
|
|
308
|
+
"Body",
|
|
309
|
+
" ",
|
|
310
|
+
requestBodyRequired &&
|
|
311
|
+
react_1.default.createElement(
|
|
312
|
+
"span",
|
|
313
|
+
null,
|
|
314
|
+
react_1.default.createElement(
|
|
315
|
+
"small",
|
|
316
|
+
null,
|
|
317
|
+
react_1.default.createElement(
|
|
318
|
+
"strong",
|
|
319
|
+
{ className: "request-body required" },
|
|
320
|
+
" ",
|
|
321
|
+
"required"
|
|
322
|
+
)
|
|
323
|
+
)
|
|
324
|
+
)
|
|
325
|
+
),
|
|
326
|
+
react_1.default.createElement(
|
|
327
|
+
react_1.default.Fragment,
|
|
328
|
+
null,
|
|
329
|
+
react_1.default.createElement(ContentType_1.default, null),
|
|
330
|
+
react_1.default.createElement(Body_1.default, {
|
|
331
|
+
jsonRequestBodyExample: item.jsonRequestBodyExample,
|
|
332
|
+
requestBodyMetadata: item.requestBody,
|
|
333
|
+
required: requestBodyRequired,
|
|
334
|
+
})
|
|
335
|
+
)
|
|
336
|
+
),
|
|
337
|
+
showAcceptOptions &&
|
|
338
|
+
react_1.default.createElement(
|
|
339
|
+
"details",
|
|
340
|
+
{
|
|
341
|
+
open: expandAccept,
|
|
342
|
+
className: "openapi-demo__details-container",
|
|
343
|
+
},
|
|
344
|
+
react_1.default.createElement(
|
|
345
|
+
"summary",
|
|
346
|
+
{
|
|
347
|
+
className: "openapi-demo__details-summary",
|
|
348
|
+
onClick: (e) => {
|
|
349
|
+
e.preventDefault();
|
|
350
|
+
setExpandAccept(!expandAccept);
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
"Accept"
|
|
354
|
+
),
|
|
355
|
+
react_1.default.createElement(Accept_1.default, null)
|
|
356
|
+
),
|
|
357
|
+
showRequestButton &&
|
|
358
|
+
react_1.default.createElement(
|
|
359
|
+
"button",
|
|
360
|
+
{ className: "openapi-demo__request-btn", type: "submit" },
|
|
361
|
+
"Send API Request"
|
|
362
|
+
)
|
|
84
363
|
)
|
|
85
364
|
)
|
|
86
365
|
);
|
|
@@ -1,3 +1,57 @@
|
|
|
1
|
+
.openapi-demo__response-container {
|
|
2
|
+
background-color: var(--ifm-pre-background);
|
|
3
|
+
border-radius: var(--openapi-card-border-radius);
|
|
4
|
+
border: 1px solid var(--openapi-demo-border-color);
|
|
5
|
+
box-shadow: 0 2px 3px hsla(222, 8%, 43%, 0.1),
|
|
6
|
+
0 8px 16px -10px hsla(222, 8%, 43%, 0.2);
|
|
7
|
+
color: var(--ifm-pre-color);
|
|
8
|
+
line-height: var(--ifm-pre-line-height);
|
|
9
|
+
margin-bottom: var(--ifm-spacing-vertical);
|
|
10
|
+
margin-top: 0;
|
|
11
|
+
overflow: auto;
|
|
12
|
+
transition: 300ms;
|
|
13
|
+
|
|
14
|
+
&:hover {
|
|
15
|
+
box-shadow: 0 0 0 2px rgba(38, 53, 61, 0.15),
|
|
16
|
+
0 2px 3px hsla(222, 8%, 43%, 0.15),
|
|
17
|
+
0 16px 16px -10px hsla(222, 8%, 43%, 0.2);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.openapi-demo__code-block code {
|
|
21
|
+
padding-top: 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.openapi-demo__response-title-container {
|
|
26
|
+
display: flex;
|
|
27
|
+
justify-content: space-between;
|
|
28
|
+
border-bottom: 1px solid var(--openapi-demo-border-color);
|
|
29
|
+
margin: 0;
|
|
30
|
+
padding: 0.75rem var(--ifm-pre-padding);
|
|
31
|
+
text-transform: uppercase;
|
|
32
|
+
font-size: 12px;
|
|
33
|
+
font-weight: bold;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.openapi-demo__response-placeholder-message {
|
|
37
|
+
font-size: 12px;
|
|
38
|
+
padding: 1.25rem;
|
|
39
|
+
margin-bottom: 0;
|
|
40
|
+
text-align: center;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.openapi-demo__response-clear-btn {
|
|
44
|
+
&:hover {
|
|
45
|
+
cursor: pointer;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.openapi-demo__loading-container {
|
|
50
|
+
width: 100%;
|
|
51
|
+
display: flex;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
}
|
|
54
|
+
|
|
1
55
|
.openapi-response__dot::before {
|
|
2
56
|
margin-right: 0.2rem;
|
|
3
57
|
margin-bottom: 0.15rem;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
2
|
+
import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types";
|
|
3
|
+
declare function Response({ item }: {
|
|
4
|
+
item: NonNullable<ApiItem>;
|
|
5
|
+
}): JSX.Element | null;
|
|
3
6
|
export default Response;
|
|
@@ -13,6 +13,8 @@ var __importDefault =
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
const react_1 = __importDefault(require("react"));
|
|
15
15
|
const theme_common_1 = require("@docusaurus/theme-common");
|
|
16
|
+
const internal_1 = require("@docusaurus/theme-common/internal");
|
|
17
|
+
const react_2 = require("@nextui-org/react");
|
|
16
18
|
const hooks_1 = require("@theme/ApiItem/hooks");
|
|
17
19
|
const CodeBlock_1 = __importDefault(require("@theme/CodeBlock"));
|
|
18
20
|
const SchemaTabs_1 = __importDefault(require("@theme/SchemaTabs"));
|
|
@@ -37,7 +39,9 @@ function formatXml(xml) {
|
|
|
37
39
|
});
|
|
38
40
|
return formatted.substring(1, formatted.length - 3);
|
|
39
41
|
}
|
|
40
|
-
function Response() {
|
|
42
|
+
function Response({ item }) {
|
|
43
|
+
const metadata = (0, internal_1.useDoc)();
|
|
44
|
+
const hideSendButton = metadata.frontMatter.hide_send_button;
|
|
41
45
|
const prismTheme = (0, theme_common_1.usePrismTheme)();
|
|
42
46
|
const code = (0, hooks_1.useTypedSelector)((state) => state.response.code);
|
|
43
47
|
const headers = (0, hooks_1.useTypedSelector)(
|
|
@@ -55,43 +59,41 @@ function Response() {
|
|
|
55
59
|
: parseInt(code) >= 200 && parseInt(code) < 300
|
|
56
60
|
? "openapi-response__dot--success"
|
|
57
61
|
: "openapi-response__dot--info");
|
|
58
|
-
if (
|
|
62
|
+
if (!item.servers || hideSendButton) {
|
|
59
63
|
return null;
|
|
60
64
|
}
|
|
61
65
|
let prettyResponse = response;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
if (prettyResponse) {
|
|
67
|
+
try {
|
|
68
|
+
prettyResponse = JSON.stringify(JSON.parse(response), null, 2);
|
|
69
|
+
} catch {
|
|
70
|
+
if (response.startsWith("<")) {
|
|
71
|
+
prettyResponse = formatXml(response);
|
|
72
|
+
}
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
return react_1.default.createElement(
|
|
70
|
-
"
|
|
71
|
-
{ className: "openapi-
|
|
76
|
+
"div",
|
|
77
|
+
{ className: "openapi-demo__response-container" },
|
|
72
78
|
react_1.default.createElement(
|
|
73
|
-
"
|
|
74
|
-
{ className: "openapi-
|
|
79
|
+
"div",
|
|
80
|
+
{ className: "openapi-demo__response-title-container" },
|
|
81
|
+
react_1.default.createElement(
|
|
82
|
+
"span",
|
|
83
|
+
{ className: "openapi-demo__response-title" },
|
|
84
|
+
"Response"
|
|
85
|
+
),
|
|
75
86
|
react_1.default.createElement(
|
|
76
|
-
"
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
react_1.default.createElement(
|
|
84
|
-
"button",
|
|
85
|
-
{
|
|
86
|
-
className: "button button--sm button--secondary",
|
|
87
|
-
onClick: () => {
|
|
88
|
-
dispatch((0, slice_1.clearResponse)());
|
|
89
|
-
dispatch((0, slice_1.clearCode)());
|
|
90
|
-
dispatch((0, slice_1.clearHeaders)());
|
|
91
|
-
},
|
|
87
|
+
"span",
|
|
88
|
+
{
|
|
89
|
+
className: "openapi-demo__response-clear-btn",
|
|
90
|
+
onClick: () => {
|
|
91
|
+
dispatch((0, slice_1.clearResponse)());
|
|
92
|
+
dispatch((0, slice_1.clearCode)());
|
|
93
|
+
dispatch((0, slice_1.clearHeaders)());
|
|
92
94
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
},
|
|
96
|
+
"Clear"
|
|
95
97
|
)
|
|
96
98
|
),
|
|
97
99
|
react_1.default.createElement(
|
|
@@ -130,7 +132,18 @@ function Response() {
|
|
|
130
132
|
"openapi-demo__code-block openapi-response__status-code",
|
|
131
133
|
language: response.startsWith("<") ? `xml` : `json`,
|
|
132
134
|
},
|
|
133
|
-
prettyResponse ||
|
|
135
|
+
prettyResponse ||
|
|
136
|
+
react_1.default.createElement(
|
|
137
|
+
"p",
|
|
138
|
+
{ className: "openapi-demo__response-placeholder-message" },
|
|
139
|
+
"Click the ",
|
|
140
|
+
react_1.default.createElement(
|
|
141
|
+
"code",
|
|
142
|
+
null,
|
|
143
|
+
"Send API Request"
|
|
144
|
+
),
|
|
145
|
+
" button above and see the response here!"
|
|
146
|
+
)
|
|
134
147
|
)
|
|
135
148
|
),
|
|
136
149
|
react_1.default.createElement(
|
|
@@ -147,7 +160,19 @@ function Response() {
|
|
|
147
160
|
)
|
|
148
161
|
)
|
|
149
162
|
)
|
|
150
|
-
: prettyResponse
|
|
163
|
+
: prettyResponse === "Fetching..."
|
|
164
|
+
? react_1.default.createElement(
|
|
165
|
+
"div",
|
|
166
|
+
{ className: "openapi-demo__loading-container" },
|
|
167
|
+
react_1.default.createElement(react_2.Loading, { color: "success" })
|
|
168
|
+
)
|
|
169
|
+
: react_1.default.createElement(
|
|
170
|
+
"p",
|
|
171
|
+
{ className: "openapi-demo__response-placeholder-message" },
|
|
172
|
+
"Click the ",
|
|
173
|
+
react_1.default.createElement("code", null, "Send API Request"),
|
|
174
|
+
" button above and see the response here!"
|
|
175
|
+
)
|
|
151
176
|
)
|
|
152
177
|
);
|
|
153
178
|
}
|
|
@@ -14,3 +14,13 @@
|
|
|
14
14
|
display: none;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
|
|
18
|
+
.openapi-demo__server-url {
|
|
19
|
+
font-size: var(--openapi-demo-font-size-input);
|
|
20
|
+
font-family: var(--ifm-font-family-monospace);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.openapi-demo__server-description {
|
|
24
|
+
padding-left: 0.5rem;
|
|
25
|
+
font-weight: var(--ifm-font-weight-bold);
|
|
26
|
+
}
|
|
@@ -109,16 +109,11 @@ function Server() {
|
|
|
109
109
|
{ onClick: () => setIsEditing(true), label: "Edit" },
|
|
110
110
|
react_1.default.createElement(
|
|
111
111
|
FormItem_1.default,
|
|
112
|
-
|
|
112
|
+
null,
|
|
113
113
|
react_1.default.createElement(
|
|
114
|
-
"
|
|
115
|
-
{
|
|
116
|
-
|
|
117
|
-
background: "var(--openapi-card-background-color)",
|
|
118
|
-
paddingLeft: "0px",
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
react_1.default.createElement("code", { title: url }, url)
|
|
114
|
+
"span",
|
|
115
|
+
{ className: "openapi-demo__server-url", title: url },
|
|
116
|
+
url
|
|
122
117
|
)
|
|
123
118
|
)
|
|
124
119
|
);
|
|
@@ -131,7 +126,7 @@ function Server() {
|
|
|
131
126
|
{ onClick: () => setIsEditing(false), label: "Hide" },
|
|
132
127
|
react_1.default.createElement(
|
|
133
128
|
FormItem_1.default,
|
|
134
|
-
|
|
129
|
+
null,
|
|
135
130
|
react_1.default.createElement(FormSelect_1.default, {
|
|
136
131
|
options: options.map((s) => s.url),
|
|
137
132
|
onChange: (e) => {
|
|
@@ -145,7 +140,11 @@ function Server() {
|
|
|
145
140
|
},
|
|
146
141
|
value: value?.url,
|
|
147
142
|
}),
|
|
148
|
-
react_1.default.createElement(
|
|
143
|
+
react_1.default.createElement(
|
|
144
|
+
"small",
|
|
145
|
+
{ className: "openapi-demo__server-description" },
|
|
146
|
+
value?.description
|
|
147
|
+
)
|
|
149
148
|
),
|
|
150
149
|
value?.variables &&
|
|
151
150
|
Object.keys(value.variables).map((key) => {
|
|
@@ -28,7 +28,7 @@ function ApiDemoPanel({ item, infoPath }) {
|
|
|
28
28
|
codeSamples: item["x-code-samples"] ?? [],
|
|
29
29
|
}),
|
|
30
30
|
react_1.default.createElement(Request_1.default, { item: item }),
|
|
31
|
-
react_1.default.createElement(Response_1.default,
|
|
31
|
+
react_1.default.createElement(Response_1.default, { item: item })
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
exports.default = ApiDemoPanel;
|