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
package/src/theme/styles.scss
CHANGED
|
@@ -54,10 +54,37 @@
|
|
|
54
54
|
--openapi-input-border: var(--ifm-color-primary);
|
|
55
55
|
--openapi-input-background: var(--openapi-card-background-color);
|
|
56
56
|
--openapi-tree-line-color: var(--ifm-toc-border-color);
|
|
57
|
+
--openapi-code-tab-border-color: var(--ifm-toc-border-color);
|
|
58
|
+
--openapi-code-tab-border-color-python: #ffdb50;
|
|
59
|
+
--openapi-code-tab-border-color-bash: var(--ifm-color-danger);
|
|
60
|
+
--openapi-code-tab-border-color-go: var(--ifm-color-info);
|
|
61
|
+
--openapi-code-tab-border-color-js: var(--ifm-color-warning);
|
|
62
|
+
--openapi-code-tab-border-color-ruby: var(--ifm-color-danger);
|
|
63
|
+
--openapi-code-tab-border-color-csharp: #9b4f96;
|
|
64
|
+
--openapi-code-tab-border-color-nodejs: var(--ifm-color-success);
|
|
65
|
+
--openapi-code-tab-border-color-php: #6181b6;
|
|
66
|
+
--openapi-code-tab-border-color-java: #0374bd;
|
|
67
|
+
--openapi-code-tab-border-color-powershell: #00adef;
|
|
68
|
+
--openapi-code-tab-shadow-color-python: rgba(255, 219, 80, 0.25);
|
|
69
|
+
--openapi-code-tab-shadow-color-bash: rgba(250, 56, 62, 0.25);
|
|
70
|
+
--openapi-code-tab-shadow-color-go: rgba(84, 199, 236, 0.25);
|
|
71
|
+
--openapi-code-tab-shadow-color-js: rgba(255, 186, 0, 0.25);
|
|
72
|
+
--openapi-code-tab-shadow-color-ruby: rgba(250, 56, 62, 0.25);
|
|
73
|
+
--openapi-code-tab-shadow-color-csharp: rgba(155, 79, 150, 0.25);
|
|
74
|
+
--opeanpi-code-tab-shadow-color-nodejs: rgba(0, 164, 0, 0.25);
|
|
75
|
+
--openapi-code-tab-shadow-color-php: rgba(97, 129, 182, 0.25);
|
|
76
|
+
--openapi-code-tab-shadow-color-java: rgba(3, 116, 189, 0.25);
|
|
77
|
+
--opeanpi-code-tab-shadow-color-powershell: rgba(3, 116, 189, 0.25);
|
|
78
|
+
--openapi-demo-font-size-input: 12px;
|
|
79
|
+
--openapi-demo-font-size-code: 12px;
|
|
80
|
+
--openapi-demo-padding-input: 0.5rem;
|
|
81
|
+
--openapi-demo-border-color: var(--ifm-toc-border-color);
|
|
82
|
+
--openapi-demo-caret-bg: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>');
|
|
57
83
|
}
|
|
58
84
|
|
|
59
85
|
[data-theme="dark"] {
|
|
60
86
|
--openapi-card-background-color: var(--ifm-color-gray-900) !important;
|
|
87
|
+
--openapi-demo-caret-bg: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24" fill="white"><path d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>') !important;
|
|
61
88
|
}
|
|
62
89
|
|
|
63
90
|
.docs-wrapper {
|
package/src/theme-openapi.d.ts
CHANGED
|
@@ -190,8 +190,41 @@ declare module "@theme/ApiDemoPanel/ParamOptions" {
|
|
|
190
190
|
export default function ParamOptions(props: ParamProps): JSX.Element;
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
+
declare module "@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem" {
|
|
194
|
+
import { ParamProps } from "@theme/ApiDemoPanel/ParamOptions";
|
|
195
|
+
|
|
196
|
+
export default function ParamMultiSelectFormItem(
|
|
197
|
+
props: ParamProps
|
|
198
|
+
): JSX.Element;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
declare module "@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem" {
|
|
202
|
+
import { ParamProps } from "@theme/ApiDemoPanel/ParamOptions";
|
|
203
|
+
|
|
204
|
+
export default function ParamArrayFormItem(props: ParamProps): JSX.Element;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
declare module "@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem" {
|
|
208
|
+
import { ParamProps } from "@theme/ApiDemoPanel/ParamOptions";
|
|
209
|
+
|
|
210
|
+
export default function ParamSelectFormItem(props: ParamProps): JSX.Element;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
declare module "@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem" {
|
|
214
|
+
import { ParamProps } from "@theme/ApiDemoPanel/ParamOptions";
|
|
215
|
+
|
|
216
|
+
export default function ParamBooleanFormItem(props: ParamProps): JSX.Element;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
declare module "@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem" {
|
|
220
|
+
import { ParamProps } from "@theme/ApiDemoPanel/ParamOptions";
|
|
221
|
+
|
|
222
|
+
export default function ParamTextFormItem(props: ParamProps): JSX.Element;
|
|
223
|
+
}
|
|
224
|
+
|
|
193
225
|
declare module "@theme/ApiDemoPanel/ParamOptions/slice" {
|
|
194
226
|
export type { Param };
|
|
227
|
+
export const setParam;
|
|
195
228
|
export default params as Reducer<State, AnyAction>;
|
|
196
229
|
}
|
|
197
230
|
|
|
@@ -209,7 +242,13 @@ declare module "@theme/ApiDemoPanel/Request" {
|
|
|
209
242
|
}
|
|
210
243
|
|
|
211
244
|
declare module "@theme/ApiDemoPanel/Response" {
|
|
212
|
-
|
|
245
|
+
import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types";
|
|
246
|
+
|
|
247
|
+
export interface ResponseProps {
|
|
248
|
+
item: NonNullable<ApiItem>;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export default function Response(props: ResponseProps): JSX.Element;
|
|
213
252
|
}
|
|
214
253
|
|
|
215
254
|
declare module "@theme/ApiDemoPanel/Response/slice" {
|
|
@@ -1,213 +0,0 @@
|
|
|
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 buildPostmanRequest_1 = __importDefault(
|
|
16
|
-
require("@theme/ApiDemoPanel/buildPostmanRequest")
|
|
17
|
-
);
|
|
18
|
-
const slice_1 = require("@theme/ApiDemoPanel/Response/slice");
|
|
19
|
-
const hooks_1 = require("@theme/ApiItem/hooks");
|
|
20
|
-
const react_modal_1 = __importDefault(require("react-modal"));
|
|
21
|
-
const makeRequest_1 = __importDefault(require("./makeRequest"));
|
|
22
|
-
function validateRequest(params) {
|
|
23
|
-
for (let paramList of Object.values(params)) {
|
|
24
|
-
for (let param of paramList) {
|
|
25
|
-
if (param.required && !param.value) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
function Execute({ postman, proxy }) {
|
|
33
|
-
const pathParams = (0, hooks_1.useTypedSelector)(
|
|
34
|
-
(state) => state.params.path
|
|
35
|
-
);
|
|
36
|
-
const queryParams = (0, hooks_1.useTypedSelector)(
|
|
37
|
-
(state) => state.params.query
|
|
38
|
-
);
|
|
39
|
-
const cookieParams = (0, hooks_1.useTypedSelector)(
|
|
40
|
-
(state) => state.params.cookie
|
|
41
|
-
);
|
|
42
|
-
const headerParams = (0, hooks_1.useTypedSelector)(
|
|
43
|
-
(state) => state.params.header
|
|
44
|
-
);
|
|
45
|
-
const contentType = (0, hooks_1.useTypedSelector)(
|
|
46
|
-
(state) => state.contentType.value
|
|
47
|
-
);
|
|
48
|
-
const body = (0, hooks_1.useTypedSelector)((state) => state.body);
|
|
49
|
-
const accept = (0, hooks_1.useTypedSelector)((state) => state.accept.value);
|
|
50
|
-
const server = (0, hooks_1.useTypedSelector)((state) => state.server.value);
|
|
51
|
-
const params = (0, hooks_1.useTypedSelector)((state) => state.params);
|
|
52
|
-
const auth = (0, hooks_1.useTypedSelector)((state) => state.auth);
|
|
53
|
-
const isValidRequest = validateRequest(params);
|
|
54
|
-
const dispatch = (0, hooks_1.useTypedDispatch)();
|
|
55
|
-
const postmanRequest = (0, buildPostmanRequest_1.default)(postman, {
|
|
56
|
-
queryParams,
|
|
57
|
-
pathParams,
|
|
58
|
-
cookieParams,
|
|
59
|
-
contentType,
|
|
60
|
-
accept,
|
|
61
|
-
headerParams,
|
|
62
|
-
body,
|
|
63
|
-
server,
|
|
64
|
-
auth,
|
|
65
|
-
});
|
|
66
|
-
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
67
|
-
function openModal() {
|
|
68
|
-
setIsOpen(true);
|
|
69
|
-
}
|
|
70
|
-
function closeModal() {
|
|
71
|
-
setIsOpen(false);
|
|
72
|
-
}
|
|
73
|
-
function acceptAgreement() {
|
|
74
|
-
setIsOpen(false);
|
|
75
|
-
setAgreementAccepted(true);
|
|
76
|
-
sessionStorage.setItem("agreement-ack", "true");
|
|
77
|
-
}
|
|
78
|
-
const [modalIsOpen, setIsOpen] = react_1.default.useState(false);
|
|
79
|
-
// Set the following as default value to persist to session and enable modal
|
|
80
|
-
// sessionStorage.getItem("agreement-ack") === "true"
|
|
81
|
-
const [agreementAccepted, setAgreementAccepted] =
|
|
82
|
-
react_1.default.useState(true);
|
|
83
|
-
const customStyles = {
|
|
84
|
-
overlay: {
|
|
85
|
-
backdropFilter: "blur(10px)",
|
|
86
|
-
backgroundColor: "transparent",
|
|
87
|
-
},
|
|
88
|
-
content: {
|
|
89
|
-
top: "50%",
|
|
90
|
-
left: "50%",
|
|
91
|
-
right: "auto",
|
|
92
|
-
bottom: "auto",
|
|
93
|
-
marginRight: "-50%",
|
|
94
|
-
border: "none",
|
|
95
|
-
padding: "none",
|
|
96
|
-
borderRadius: "var(--openapi-card-border-radius)",
|
|
97
|
-
background: "var(--ifm-card-background-color)",
|
|
98
|
-
transform: "translate(-50%, -50%)",
|
|
99
|
-
maxWidth: "550px",
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
if (agreementAccepted) {
|
|
103
|
-
return react_1.default.createElement(
|
|
104
|
-
"button",
|
|
105
|
-
{
|
|
106
|
-
className: "button button--sm button--secondary",
|
|
107
|
-
disabled: !isValidRequest,
|
|
108
|
-
style: !isValidRequest ? { pointerEvents: "all" } : {},
|
|
109
|
-
onClick: async () => {
|
|
110
|
-
dispatch((0, slice_1.setResponse)("Fetching..."));
|
|
111
|
-
try {
|
|
112
|
-
await delay(1200);
|
|
113
|
-
const res = await (0, makeRequest_1.default)(
|
|
114
|
-
postmanRequest,
|
|
115
|
-
proxy,
|
|
116
|
-
body
|
|
117
|
-
);
|
|
118
|
-
dispatch((0, slice_1.setResponse)(await res.text()));
|
|
119
|
-
dispatch((0, slice_1.setCode)(res.status));
|
|
120
|
-
res.headers &&
|
|
121
|
-
dispatch(
|
|
122
|
-
(0, slice_1.setHeaders)(Object.fromEntries(res.headers))
|
|
123
|
-
);
|
|
124
|
-
} catch (e) {
|
|
125
|
-
console.log(e);
|
|
126
|
-
dispatch((0, slice_1.setResponse)("Connection failed"));
|
|
127
|
-
dispatch((0, slice_1.clearCode)());
|
|
128
|
-
dispatch((0, slice_1.clearHeaders)());
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
"Send API Request"
|
|
133
|
-
);
|
|
134
|
-
} else {
|
|
135
|
-
return react_1.default.createElement(
|
|
136
|
-
react_1.default.Fragment,
|
|
137
|
-
null,
|
|
138
|
-
react_1.default.createElement(
|
|
139
|
-
"button",
|
|
140
|
-
{
|
|
141
|
-
className: "button button--sm button--secondary",
|
|
142
|
-
onClick: openModal,
|
|
143
|
-
},
|
|
144
|
-
"Send API Request"
|
|
145
|
-
),
|
|
146
|
-
react_1.default.createElement(
|
|
147
|
-
react_modal_1.default,
|
|
148
|
-
{
|
|
149
|
-
isOpen: modalIsOpen,
|
|
150
|
-
onRequestClose: closeModal,
|
|
151
|
-
style: customStyles,
|
|
152
|
-
contentLabel: "Terms of Use",
|
|
153
|
-
},
|
|
154
|
-
react_1.default.createElement(
|
|
155
|
-
"form",
|
|
156
|
-
null,
|
|
157
|
-
react_1.default.createElement(
|
|
158
|
-
"div",
|
|
159
|
-
{ className: "card" },
|
|
160
|
-
react_1.default.createElement(
|
|
161
|
-
"div",
|
|
162
|
-
{ className: "card__header" },
|
|
163
|
-
react_1.default.createElement("h2", null, "Terms of Use"),
|
|
164
|
-
react_1.default.createElement("hr", null)
|
|
165
|
-
),
|
|
166
|
-
react_1.default.createElement(
|
|
167
|
-
"div",
|
|
168
|
-
{ className: "card__body" },
|
|
169
|
-
react_1.default.createElement(
|
|
170
|
-
"p",
|
|
171
|
-
null,
|
|
172
|
-
"By accepting this agreement the end user acknowledges the risks of performing authenticated and non-authenticated API requests from the browser."
|
|
173
|
-
),
|
|
174
|
-
react_1.default.createElement(
|
|
175
|
-
"p",
|
|
176
|
-
null,
|
|
177
|
-
"The end user also accepts the responsibility of safeguarding API credentials and any potentially sensitive data returned by the API."
|
|
178
|
-
),
|
|
179
|
-
react_1.default.createElement("br", null)
|
|
180
|
-
),
|
|
181
|
-
react_1.default.createElement(
|
|
182
|
-
"div",
|
|
183
|
-
{ className: "card__footer" },
|
|
184
|
-
react_1.default.createElement(
|
|
185
|
-
"div",
|
|
186
|
-
{ className: "button-group button-group--block" },
|
|
187
|
-
react_1.default.createElement(
|
|
188
|
-
"button",
|
|
189
|
-
{
|
|
190
|
-
className:
|
|
191
|
-
"button button--sm button--outline button--success",
|
|
192
|
-
onClick: acceptAgreement,
|
|
193
|
-
},
|
|
194
|
-
"AGREE"
|
|
195
|
-
),
|
|
196
|
-
react_1.default.createElement(
|
|
197
|
-
"button",
|
|
198
|
-
{
|
|
199
|
-
className:
|
|
200
|
-
"button button--sm button--outline button--danger",
|
|
201
|
-
onClick: closeModal,
|
|
202
|
-
},
|
|
203
|
-
"DISAGREE"
|
|
204
|
-
)
|
|
205
|
-
)
|
|
206
|
-
)
|
|
207
|
-
)
|
|
208
|
-
)
|
|
209
|
-
)
|
|
210
|
-
);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
exports.default = Execute;
|
|
@@ -1,200 +0,0 @@
|
|
|
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 React from "react";
|
|
9
|
-
|
|
10
|
-
import sdk from "@paloaltonetworks/postman-collection";
|
|
11
|
-
import buildPostmanRequest from "@theme/ApiDemoPanel/buildPostmanRequest";
|
|
12
|
-
import { Param } from "@theme/ApiDemoPanel/ParamOptions/slice";
|
|
13
|
-
import {
|
|
14
|
-
setResponse,
|
|
15
|
-
setCode,
|
|
16
|
-
clearCode,
|
|
17
|
-
setHeaders,
|
|
18
|
-
clearHeaders,
|
|
19
|
-
} from "@theme/ApiDemoPanel/Response/slice";
|
|
20
|
-
import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks";
|
|
21
|
-
import Modal from "react-modal";
|
|
22
|
-
|
|
23
|
-
import makeRequest from "./makeRequest";
|
|
24
|
-
|
|
25
|
-
function validateRequest(params: {
|
|
26
|
-
path: Param[];
|
|
27
|
-
query: Param[];
|
|
28
|
-
header: Param[];
|
|
29
|
-
cookie: Param[];
|
|
30
|
-
}) {
|
|
31
|
-
for (let paramList of Object.values(params)) {
|
|
32
|
-
for (let param of paramList) {
|
|
33
|
-
if (param.required && !param.value) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface Props {
|
|
42
|
-
postman: sdk.Request;
|
|
43
|
-
proxy?: string;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function Execute({ postman, proxy }: Props) {
|
|
47
|
-
const pathParams = useTypedSelector((state: any) => state.params.path);
|
|
48
|
-
const queryParams = useTypedSelector((state: any) => state.params.query);
|
|
49
|
-
const cookieParams = useTypedSelector((state: any) => state.params.cookie);
|
|
50
|
-
const headerParams = useTypedSelector((state: any) => state.params.header);
|
|
51
|
-
const contentType = useTypedSelector((state: any) => state.contentType.value);
|
|
52
|
-
const body = useTypedSelector((state: any) => state.body);
|
|
53
|
-
const accept = useTypedSelector((state: any) => state.accept.value);
|
|
54
|
-
const server = useTypedSelector((state: any) => state.server.value);
|
|
55
|
-
const params = useTypedSelector((state: any) => state.params);
|
|
56
|
-
const auth = useTypedSelector((state: any) => state.auth);
|
|
57
|
-
|
|
58
|
-
const isValidRequest = validateRequest(params);
|
|
59
|
-
|
|
60
|
-
const dispatch = useTypedDispatch();
|
|
61
|
-
|
|
62
|
-
const postmanRequest = buildPostmanRequest(postman, {
|
|
63
|
-
queryParams,
|
|
64
|
-
pathParams,
|
|
65
|
-
cookieParams,
|
|
66
|
-
contentType,
|
|
67
|
-
accept,
|
|
68
|
-
headerParams,
|
|
69
|
-
body,
|
|
70
|
-
server,
|
|
71
|
-
auth,
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
const delay = (ms: number) =>
|
|
75
|
-
new Promise((resolve) => setTimeout(resolve, ms));
|
|
76
|
-
|
|
77
|
-
function openModal() {
|
|
78
|
-
setIsOpen(true);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function closeModal() {
|
|
82
|
-
setIsOpen(false);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function acceptAgreement() {
|
|
86
|
-
setIsOpen(false);
|
|
87
|
-
setAgreementAccepted(true);
|
|
88
|
-
sessionStorage.setItem("agreement-ack", "true");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const [modalIsOpen, setIsOpen] = React.useState(false);
|
|
92
|
-
// Set the following as default value to persist to session and enable modal
|
|
93
|
-
// sessionStorage.getItem("agreement-ack") === "true"
|
|
94
|
-
const [agreementAccepted, setAgreementAccepted] = React.useState(true);
|
|
95
|
-
|
|
96
|
-
const customStyles = {
|
|
97
|
-
overlay: {
|
|
98
|
-
backdropFilter: "blur(10px)",
|
|
99
|
-
backgroundColor: "transparent",
|
|
100
|
-
},
|
|
101
|
-
content: {
|
|
102
|
-
top: "50%",
|
|
103
|
-
left: "50%",
|
|
104
|
-
right: "auto",
|
|
105
|
-
bottom: "auto",
|
|
106
|
-
marginRight: "-50%",
|
|
107
|
-
border: "none",
|
|
108
|
-
padding: "none",
|
|
109
|
-
borderRadius: "var(--openapi-card-border-radius)",
|
|
110
|
-
background: "var(--ifm-card-background-color)",
|
|
111
|
-
transform: "translate(-50%, -50%)",
|
|
112
|
-
maxWidth: "550px",
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
if (agreementAccepted) {
|
|
117
|
-
return (
|
|
118
|
-
<button
|
|
119
|
-
className="button button--sm button--secondary"
|
|
120
|
-
disabled={!isValidRequest}
|
|
121
|
-
style={!isValidRequest ? { pointerEvents: "all" } : {}}
|
|
122
|
-
onClick={async () => {
|
|
123
|
-
dispatch(setResponse("Fetching..."));
|
|
124
|
-
try {
|
|
125
|
-
await delay(1200);
|
|
126
|
-
const res = await makeRequest(postmanRequest, proxy, body);
|
|
127
|
-
dispatch(setResponse(await res.text()));
|
|
128
|
-
dispatch(setCode(res.status));
|
|
129
|
-
res.headers &&
|
|
130
|
-
dispatch(setHeaders(Object.fromEntries(res.headers)));
|
|
131
|
-
} catch (e: any) {
|
|
132
|
-
console.log(e);
|
|
133
|
-
dispatch(setResponse("Connection failed"));
|
|
134
|
-
dispatch(clearCode());
|
|
135
|
-
dispatch(clearHeaders());
|
|
136
|
-
}
|
|
137
|
-
}}
|
|
138
|
-
>
|
|
139
|
-
Send API Request
|
|
140
|
-
</button>
|
|
141
|
-
);
|
|
142
|
-
} else {
|
|
143
|
-
return (
|
|
144
|
-
<React.Fragment>
|
|
145
|
-
<button
|
|
146
|
-
className="button button--sm button--secondary"
|
|
147
|
-
onClick={openModal}
|
|
148
|
-
>
|
|
149
|
-
Send API Request
|
|
150
|
-
</button>
|
|
151
|
-
<Modal
|
|
152
|
-
isOpen={modalIsOpen}
|
|
153
|
-
onRequestClose={closeModal}
|
|
154
|
-
style={customStyles}
|
|
155
|
-
contentLabel="Terms of Use"
|
|
156
|
-
>
|
|
157
|
-
<form>
|
|
158
|
-
<div className="card">
|
|
159
|
-
<div className="card__header">
|
|
160
|
-
<h2>Terms of Use</h2>
|
|
161
|
-
<hr></hr>
|
|
162
|
-
</div>
|
|
163
|
-
<div className="card__body">
|
|
164
|
-
<p>
|
|
165
|
-
By accepting this agreement the end user acknowledges the
|
|
166
|
-
risks of performing authenticated and non-authenticated API
|
|
167
|
-
requests from the browser.
|
|
168
|
-
</p>
|
|
169
|
-
<p>
|
|
170
|
-
The end user also accepts the responsibility of safeguarding
|
|
171
|
-
API credentials and any potentially sensitive data returned by
|
|
172
|
-
the API.
|
|
173
|
-
</p>
|
|
174
|
-
<br></br>
|
|
175
|
-
</div>
|
|
176
|
-
<div className="card__footer">
|
|
177
|
-
<div className="button-group button-group--block">
|
|
178
|
-
<button
|
|
179
|
-
className="button button--sm button--outline button--success"
|
|
180
|
-
onClick={acceptAgreement}
|
|
181
|
-
>
|
|
182
|
-
AGREE
|
|
183
|
-
</button>
|
|
184
|
-
<button
|
|
185
|
-
className="button button--sm button--outline button--danger"
|
|
186
|
-
onClick={closeModal}
|
|
187
|
-
>
|
|
188
|
-
DISAGREE
|
|
189
|
-
</button>
|
|
190
|
-
</div>
|
|
191
|
-
</div>
|
|
192
|
-
</div>
|
|
193
|
-
</form>
|
|
194
|
-
</Modal>
|
|
195
|
-
</React.Fragment>
|
|
196
|
-
);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
export default Execute;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|