docusaurus-theme-openapi-docs 1.0.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.
Files changed (187) hide show
  1. package/LICENSE +21 -0
  2. package/babel.config.js +35 -0
  3. package/lib/index.js +48 -0
  4. package/lib/markdown/createDescription.js +20 -0
  5. package/lib/markdown/schema.js +121 -0
  6. package/lib/markdown/utils.js +45 -0
  7. package/lib/theme/ApiDemoPanel/Accept/index.js +41 -0
  8. package/lib/theme/ApiDemoPanel/Accept/slice.js +32 -0
  9. package/lib/theme/ApiDemoPanel/Authorization/auth-types.js +32 -0
  10. package/lib/theme/ApiDemoPanel/Authorization/index.js +174 -0
  11. package/lib/theme/ApiDemoPanel/Authorization/slice.js +137 -0
  12. package/lib/theme/ApiDemoPanel/Body/index.js +185 -0
  13. package/lib/theme/ApiDemoPanel/Body/slice.js +105 -0
  14. package/lib/theme/ApiDemoPanel/ContentType/index.js +41 -0
  15. package/lib/theme/ApiDemoPanel/ContentType/slice.js +32 -0
  16. package/lib/theme/ApiDemoPanel/Curl/index.js +236 -0
  17. package/lib/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  18. package/lib/theme/ApiDemoPanel/Execute/index.js +85 -0
  19. package/lib/theme/ApiDemoPanel/Execute/makeRequest.js +202 -0
  20. package/lib/theme/ApiDemoPanel/FloatingButton/index.js +32 -0
  21. package/lib/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  22. package/lib/theme/ApiDemoPanel/FormFileUpload/index.js +97 -0
  23. package/lib/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  24. package/lib/theme/ApiDemoPanel/FormItem/index.js +35 -0
  25. package/lib/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  26. package/lib/theme/ApiDemoPanel/FormMultiSelect/index.js +52 -0
  27. package/lib/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  28. package/lib/theme/ApiDemoPanel/FormSelect/index.js +39 -0
  29. package/lib/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  30. package/lib/theme/ApiDemoPanel/FormTextInput/index.js +30 -0
  31. package/lib/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  32. package/lib/theme/ApiDemoPanel/MethodEndpoint/index.js +60 -0
  33. package/lib/theme/ApiDemoPanel/ParamOptions/index.js +248 -0
  34. package/lib/theme/ApiDemoPanel/ParamOptions/slice.js +35 -0
  35. package/lib/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  36. package/lib/theme/ApiDemoPanel/Response/index.js +75 -0
  37. package/lib/theme/ApiDemoPanel/Response/slice.js +37 -0
  38. package/lib/theme/ApiDemoPanel/SecuritySchemes/index.js +51 -0
  39. package/lib/theme/ApiDemoPanel/Server/index.js +109 -0
  40. package/lib/theme/ApiDemoPanel/Server/slice.js +41 -0
  41. package/lib/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  42. package/lib/theme/ApiDemoPanel/VSCode/index.js +252 -0
  43. package/lib/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  44. package/lib/theme/ApiDemoPanel/buildPostmanRequest.js +329 -0
  45. package/lib/theme/ApiDemoPanel/hooks.js +20 -0
  46. package/lib/theme/ApiDemoPanel/index.js +134 -0
  47. package/lib/theme/ApiDemoPanel/persistanceMiddleware.js +44 -0
  48. package/lib/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  49. package/lib/theme/ApiDemoPanel/storage-utils.js +47 -0
  50. package/lib/theme/ApiDemoPanel/store.js +48 -0
  51. package/lib/theme/ApiDemoPanel/styles.module.css +44 -0
  52. package/lib/theme/ApiItem/index.js +160 -0
  53. package/lib/theme/ApiItem/styles.module.css +109 -0
  54. package/lib/theme/ParamsItem/index.js +68 -0
  55. package/lib/theme/ParamsItem/styles.module.css +24 -0
  56. package/lib/theme/SchemaItem/index.js +58 -0
  57. package/lib/theme/SchemaItem/styles.module.css +24 -0
  58. package/lib/theme/Tabs/index.js +258 -0
  59. package/lib/theme/Tabs/styles.module.css +118 -0
  60. package/lib/theme-classic.d.ts +8 -0
  61. package/lib/theme-openapi.d.ts +48 -0
  62. package/lib/theme-translations.d.ts +9 -0
  63. package/lib/types.js +1 -0
  64. package/lib-next/index.js +38 -0
  65. package/lib-next/markdown/createDescription.js +13 -0
  66. package/lib-next/markdown/schema.js +115 -0
  67. package/lib-next/markdown/utils.js +31 -0
  68. package/lib-next/theme/ApiDemoPanel/Accept/index.js +33 -0
  69. package/lib-next/theme/ApiDemoPanel/Accept/slice.js +19 -0
  70. package/lib-next/theme/ApiDemoPanel/Authorization/auth-types.js +22 -0
  71. package/lib-next/theme/ApiDemoPanel/Authorization/index.js +203 -0
  72. package/lib-next/theme/ApiDemoPanel/Authorization/slice.js +101 -0
  73. package/lib-next/theme/ApiDemoPanel/Body/index.js +210 -0
  74. package/lib-next/theme/ApiDemoPanel/Body/slice.js +89 -0
  75. package/lib-next/theme/ApiDemoPanel/ContentType/index.js +33 -0
  76. package/lib-next/theme/ApiDemoPanel/ContentType/slice.js +19 -0
  77. package/lib-next/theme/ApiDemoPanel/Curl/index.js +264 -0
  78. package/lib-next/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  79. package/lib-next/theme/ApiDemoPanel/Execute/index.js +74 -0
  80. package/lib-next/theme/ApiDemoPanel/Execute/makeRequest.js +183 -0
  81. package/lib-next/theme/ApiDemoPanel/FloatingButton/index.js +19 -0
  82. package/lib-next/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  83. package/lib-next/theme/ApiDemoPanel/FormFileUpload/index.js +113 -0
  84. package/lib-next/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  85. package/lib-next/theme/ApiDemoPanel/FormItem/index.js +29 -0
  86. package/lib-next/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  87. package/lib-next/theme/ApiDemoPanel/FormMultiSelect/index.js +49 -0
  88. package/lib-next/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  89. package/lib-next/theme/ApiDemoPanel/FormSelect/index.js +28 -0
  90. package/lib-next/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  91. package/lib-next/theme/ApiDemoPanel/FormTextInput/index.js +23 -0
  92. package/lib-next/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  93. package/lib-next/theme/ApiDemoPanel/MethodEndpoint/index.js +53 -0
  94. package/lib-next/theme/ApiDemoPanel/ParamOptions/index.js +284 -0
  95. package/lib-next/theme/ApiDemoPanel/ParamOptions/slice.js +22 -0
  96. package/lib-next/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  97. package/lib-next/theme/ApiDemoPanel/Response/index.js +65 -0
  98. package/lib-next/theme/ApiDemoPanel/Response/slice.js +22 -0
  99. package/lib-next/theme/ApiDemoPanel/SecuritySchemes/index.js +48 -0
  100. package/lib-next/theme/ApiDemoPanel/Server/index.js +114 -0
  101. package/lib-next/theme/ApiDemoPanel/Server/slice.js +25 -0
  102. package/lib-next/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  103. package/lib-next/theme/ApiDemoPanel/VSCode/index.js +265 -0
  104. package/lib-next/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  105. package/lib-next/theme/ApiDemoPanel/buildPostmanRequest.js +310 -0
  106. package/lib-next/theme/ApiDemoPanel/hooks.js +9 -0
  107. package/lib-next/theme/ApiDemoPanel/index.js +110 -0
  108. package/lib-next/theme/ApiDemoPanel/persistanceMiddleware.js +38 -0
  109. package/lib-next/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  110. package/lib-next/theme/ApiDemoPanel/storage-utils.js +35 -0
  111. package/lib-next/theme/ApiDemoPanel/store.js +30 -0
  112. package/lib-next/theme/ApiDemoPanel/styles.module.css +44 -0
  113. package/lib-next/theme/ApiItem/index.js +171 -0
  114. package/lib-next/theme/ApiItem/styles.module.css +109 -0
  115. package/lib-next/theme/ParamsItem/index.js +68 -0
  116. package/lib-next/theme/ParamsItem/styles.module.css +24 -0
  117. package/lib-next/theme/SchemaItem/index.js +58 -0
  118. package/lib-next/theme/SchemaItem/styles.module.css +24 -0
  119. package/lib-next/theme/Tabs/index.js +258 -0
  120. package/lib-next/theme/Tabs/styles.module.css +118 -0
  121. package/lib-next/theme-classic.d.ts +8 -0
  122. package/lib-next/theme-openapi.d.ts +48 -0
  123. package/lib-next/theme-translations.d.ts +9 -0
  124. package/lib-next/types.js +1 -0
  125. package/package.json +68 -0
  126. package/src/index.ts +42 -0
  127. package/src/markdown/createDescription.ts +13 -0
  128. package/src/markdown/schema.ts +115 -0
  129. package/src/markdown/utils.ts +39 -0
  130. package/src/theme/ApiDemoPanel/Accept/index.tsx +35 -0
  131. package/src/theme/ApiDemoPanel/Accept/slice.ts +29 -0
  132. package/src/theme/ApiDemoPanel/Authorization/auth-types.ts +26 -0
  133. package/src/theme/ApiDemoPanel/Authorization/index.tsx +211 -0
  134. package/src/theme/ApiDemoPanel/Authorization/slice.ts +145 -0
  135. package/src/theme/ApiDemoPanel/Body/index.tsx +218 -0
  136. package/src/theme/ApiDemoPanel/Body/slice.ts +133 -0
  137. package/src/theme/ApiDemoPanel/ContentType/index.tsx +35 -0
  138. package/src/theme/ApiDemoPanel/ContentType/slice.ts +29 -0
  139. package/src/theme/ApiDemoPanel/Curl/index.tsx +280 -0
  140. package/src/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  141. package/src/theme/ApiDemoPanel/Execute/index.tsx +88 -0
  142. package/src/theme/ApiDemoPanel/Execute/makeRequest.ts +184 -0
  143. package/src/theme/ApiDemoPanel/FloatingButton/index.tsx +27 -0
  144. package/src/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  145. package/src/theme/ApiDemoPanel/FormFileUpload/index.tsx +116 -0
  146. package/src/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  147. package/src/theme/ApiDemoPanel/FormItem/index.tsx +28 -0
  148. package/src/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  149. package/src/theme/ApiDemoPanel/FormMultiSelect/index.tsx +54 -0
  150. package/src/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  151. package/src/theme/ApiDemoPanel/FormSelect/index.tsx +36 -0
  152. package/src/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  153. package/src/theme/ApiDemoPanel/FormTextInput/index.tsx +32 -0
  154. package/src/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  155. package/src/theme/ApiDemoPanel/MethodEndpoint/index.tsx +55 -0
  156. package/src/theme/ApiDemoPanel/ParamOptions/index.tsx +316 -0
  157. package/src/theme/ApiDemoPanel/ParamOptions/slice.ts +37 -0
  158. package/src/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  159. package/src/theme/ApiDemoPanel/Response/index.tsx +66 -0
  160. package/src/theme/ApiDemoPanel/Response/slice.ts +31 -0
  161. package/src/theme/ApiDemoPanel/SecuritySchemes/index.tsx +49 -0
  162. package/src/theme/ApiDemoPanel/Server/index.tsx +103 -0
  163. package/src/theme/ApiDemoPanel/Server/slice.ts +40 -0
  164. package/src/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  165. package/src/theme/ApiDemoPanel/VSCode/index.tsx +205 -0
  166. package/src/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  167. package/src/theme/ApiDemoPanel/buildPostmanRequest.ts +307 -0
  168. package/src/theme/ApiDemoPanel/hooks.ts +13 -0
  169. package/src/theme/ApiDemoPanel/index.tsx +118 -0
  170. package/src/theme/ApiDemoPanel/persistanceMiddleware.ts +46 -0
  171. package/src/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  172. package/src/theme/ApiDemoPanel/storage-utils.ts +39 -0
  173. package/src/theme/ApiDemoPanel/store.ts +41 -0
  174. package/src/theme/ApiDemoPanel/styles.module.css +44 -0
  175. package/src/theme/ApiItem/index.tsx +171 -0
  176. package/src/theme/ApiItem/styles.module.css +109 -0
  177. package/src/theme/ParamsItem/index.js +68 -0
  178. package/src/theme/ParamsItem/styles.module.css +24 -0
  179. package/src/theme/SchemaItem/index.js +58 -0
  180. package/src/theme/SchemaItem/styles.module.css +24 -0
  181. package/src/theme/Tabs/index.js +258 -0
  182. package/src/theme/Tabs/styles.module.css +118 -0
  183. package/src/theme-classic.d.ts +8 -0
  184. package/src/theme-openapi.d.ts +48 -0
  185. package/src/theme-translations.d.ts +9 -0
  186. package/src/types.ts +70 -0
  187. package/tsconfig.json +10 -0
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createAuth = createAuth;
7
+ exports.slice = exports.setSelectedAuth = exports.setAuthData = exports.default = void 0;
8
+
9
+ var _toolkit = require("@reduxjs/toolkit");
10
+
11
+ var _storageUtils = require("../storage-utils");
12
+
13
+ var _authTypes = require("./auth-types");
14
+
15
+ /* ============================================================================
16
+ * Copyright (c) Palo Alto Networks
17
+ *
18
+ * This source code is licensed under the MIT license found in the
19
+ * LICENSE file in the root directory of this source tree.
20
+ * ========================================================================== */
21
+ // The global definitions
22
+ // "securitySchemes": {
23
+ // "BearerAuth": { "type": "http", "scheme": "BeAreR" },
24
+ // "BasicAuth": { "type": "http", "scheme": "basic" }
25
+ // },
26
+ // The operation level requirements
27
+ // "security": [
28
+ // { "BearerAuth": [] },
29
+ // { "BearerAuth": [], "BasicAuth": [] }
30
+ // ],
31
+ // SLICE_STATE
32
+ // data:
33
+ // BearerAuth:
34
+ // token=xxx
35
+ // BasicAuth:
36
+ // username=xxx
37
+ // password=xxx
38
+ //
39
+ // options:
40
+ // "BearerAuth": [{ key: "BearerAuth", scopes: [], ...rest }]
41
+ // "BearerAuth and BasicAuth": [{ key: "BearerAuth", scopes: [], ...rest }, { key: "BasicAuth", scopes: [], ...rest }]
42
+ //
43
+ // selected: "BearerAuth and BasicAuth"
44
+ // LOCAL_STORAGE
45
+ // hash(SLICE_STATE.options) -> "BearerAuth and BasicAuth"
46
+ // BearerAuth -> { token: xxx }
47
+ // BasicAuth -> { username: xxx, password: xxx }
48
+ function createAuth({
49
+ security,
50
+ securitySchemes,
51
+ options: opts
52
+ }) {
53
+ var _persisted;
54
+
55
+ const storage = (0, _storageUtils.createStorage)(opts === null || opts === void 0 ? void 0 : opts.authPersistance);
56
+ let data = {};
57
+ let options = {};
58
+
59
+ for (const option of security !== null && security !== void 0 ? security : []) {
60
+ const id = Object.keys(option).join(" and ");
61
+
62
+ for (const [schemeID, scopes] of Object.entries(option)) {
63
+ const scheme = securitySchemes === null || securitySchemes === void 0 ? void 0 : securitySchemes[schemeID];
64
+
65
+ if (scheme) {
66
+ if (options[id] === undefined) {
67
+ options[id] = [];
68
+ }
69
+
70
+ const dataKeys = (0, _authTypes.getAuthDataKeys)(scheme);
71
+
72
+ for (const key of dataKeys) {
73
+ if (data[schemeID] === undefined) {
74
+ data[schemeID] = {};
75
+ }
76
+
77
+ let persisted = undefined;
78
+
79
+ try {
80
+ var _storage$getItem;
81
+
82
+ persisted = JSON.parse((_storage$getItem = storage.getItem(schemeID)) !== null && _storage$getItem !== void 0 ? _storage$getItem : "")[key];
83
+ } catch {}
84
+
85
+ data[schemeID][key] = persisted;
86
+ }
87
+
88
+ options[id].push({ ...scheme,
89
+ key: schemeID,
90
+ scopes
91
+ });
92
+ }
93
+ }
94
+ }
95
+
96
+ let persisted = undefined;
97
+
98
+ try {
99
+ var _storage$getItem2;
100
+
101
+ persisted = (_storage$getItem2 = storage.getItem((0, _storageUtils.hashArray)(Object.keys(options)))) !== null && _storage$getItem2 !== void 0 ? _storage$getItem2 : undefined;
102
+ } catch {}
103
+
104
+ return {
105
+ data,
106
+ options,
107
+ selected: (_persisted = persisted) !== null && _persisted !== void 0 ? _persisted : Object.keys(options)[0]
108
+ };
109
+ }
110
+
111
+ const initialState = {};
112
+ const slice = (0, _toolkit.createSlice)({
113
+ name: "auth",
114
+ initialState,
115
+ reducers: {
116
+ setAuthData: (state, action) => {
117
+ const {
118
+ scheme,
119
+ key,
120
+ value
121
+ } = action.payload;
122
+ state.data[scheme][key] = value;
123
+ },
124
+ setSelectedAuth: (state, action) => {
125
+ state.selected = action.payload;
126
+ }
127
+ }
128
+ });
129
+ exports.slice = slice;
130
+ const {
131
+ setAuthData,
132
+ setSelectedAuth
133
+ } = slice.actions;
134
+ exports.setSelectedAuth = setSelectedAuth;
135
+ exports.setAuthData = setAuthData;
136
+ var _default = slice.reducer;
137
+ exports.default = _default;
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _ContentType = _interopRequireDefault(require("../ContentType"));
11
+
12
+ var _FormSelect = _interopRequireDefault(require("../FormSelect"));
13
+
14
+ var _hooks = require("../hooks");
15
+
16
+ var _FormFileUpload = _interopRequireDefault(require("./../FormFileUpload"));
17
+
18
+ var _FormItem = _interopRequireDefault(require("./../FormItem"));
19
+
20
+ var _FormTextInput = _interopRequireDefault(require("./../FormTextInput"));
21
+
22
+ var _VSCode = _interopRequireDefault(require("./../VSCode"));
23
+
24
+ var _slice = require("./slice");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ /* ============================================================================
29
+ * Copyright (c) Palo Alto Networks
30
+ *
31
+ * This source code is licensed under the MIT license found in the
32
+ * LICENSE file in the root directory of this source tree.
33
+ * ========================================================================== */
34
+ function BodyWrap({
35
+ requestBodyMetadata,
36
+ jsonRequestBodyExample
37
+ }) {
38
+ const contentType = (0, _hooks.useTypedSelector)(state => state.contentType.value); // NOTE: We used to check if body was required, but opted to always show the request body
39
+ // to reduce confusion, see: https://github.com/cloud-annotations/docusaurus-openapi/issues/145
40
+ // No body
41
+
42
+ if (contentType === undefined) {
43
+ return null;
44
+ }
45
+
46
+ return <>
47
+ <_ContentType.default />
48
+ <Body requestBodyMetadata={requestBodyMetadata} jsonRequestBodyExample={jsonRequestBodyExample} />
49
+ </>;
50
+ }
51
+
52
+ function Body({
53
+ requestBodyMetadata,
54
+ jsonRequestBodyExample
55
+ }) {
56
+ var _requestBodyMetadata$, _requestBodyMetadata$2;
57
+
58
+ const contentType = (0, _hooks.useTypedSelector)(state => state.contentType.value);
59
+ const dispatch = (0, _hooks.useTypedDispatch)(); // Lot's of possible content-types:
60
+ // - application/json
61
+ // - application/xml
62
+ // - text/plain
63
+ // - text/css
64
+ // - text/html
65
+ // - text/javascript
66
+ // - application/javascript
67
+ // - multipart/form-data
68
+ // - application/x-www-form-urlencoded
69
+ // - image/svg+xml;charset=US-ASCII
70
+ // Show editor:
71
+ // - application/json
72
+ // - application/xml
73
+ // - */*
74
+ // Show form:
75
+ // - multipart/form-data
76
+ // - application/x-www-form-urlencoded
77
+
78
+ const schema = requestBodyMetadata === null || requestBodyMetadata === void 0 ? void 0 : (_requestBodyMetadata$ = requestBodyMetadata.content) === null || _requestBodyMetadata$ === void 0 ? void 0 : (_requestBodyMetadata$2 = _requestBodyMetadata$[contentType]) === null || _requestBodyMetadata$2 === void 0 ? void 0 : _requestBodyMetadata$2.schema;
79
+
80
+ if ((schema === null || schema === void 0 ? void 0 : schema.format) === "binary") {
81
+ return <_FormItem.default label="Body">
82
+ <_FormFileUpload.default placeholder={schema.description || "Body"} onChange={file => {
83
+ if (file === undefined) {
84
+ dispatch((0, _slice.clearRawBody)());
85
+ return;
86
+ }
87
+
88
+ dispatch((0, _slice.setFileRawBody)({
89
+ src: `/path/to/${file.name}`,
90
+ content: file
91
+ }));
92
+ }} />
93
+ </_FormItem.default>;
94
+ }
95
+
96
+ if ((contentType === "multipart/form-data" || contentType === "application/x-www-form-urlencoded") && (schema === null || schema === void 0 ? void 0 : schema.type) === "object") {
97
+ var _schema$properties;
98
+
99
+ return <_FormItem.default label="Body">
100
+ <div style={{
101
+ marginTop: "calc(var(--ifm-pre-padding) / 2)",
102
+ borderRadius: "4px",
103
+ padding: "var(--ifm-pre-padding)",
104
+ border: "1px solid var(--openapi-monaco-border-color)"
105
+ }}>
106
+ {Object.entries((_schema$properties = schema.properties) !== null && _schema$properties !== void 0 ? _schema$properties : {}).map(([key, val]) => {
107
+ if (val.format === "binary") {
108
+ return <_FormItem.default key={key} label={key}>
109
+ <_FormFileUpload.default placeholder={val.description || key} onChange={file => {
110
+ if (file === undefined) {
111
+ dispatch((0, _slice.clearFormBodyKey)(key));
112
+ return;
113
+ }
114
+
115
+ dispatch((0, _slice.setFileFormBody)({
116
+ key: key,
117
+ value: {
118
+ src: `/path/to/${file.name}`,
119
+ content: file
120
+ }
121
+ }));
122
+ }} />
123
+ </_FormItem.default>;
124
+ }
125
+
126
+ if (val.enum) {
127
+ return <_FormItem.default key={key} label={key}>
128
+ <_FormSelect.default options={["---", ...val.enum]} onChange={e => {
129
+ const val = e.target.value;
130
+
131
+ if (val === "---") {
132
+ dispatch((0, _slice.clearFormBodyKey)(key));
133
+ } else {
134
+ dispatch((0, _slice.setStringFormBody)({
135
+ key: key,
136
+ value: val
137
+ }));
138
+ }
139
+ }} />
140
+ </_FormItem.default>;
141
+ } // TODO: support all the other types.
142
+
143
+
144
+ return <_FormItem.default key={key} label={key}>
145
+ <_FormTextInput.default placeholder={val.description || key} onChange={e => {
146
+ dispatch((0, _slice.setStringFormBody)({
147
+ key: key,
148
+ value: e.target.value
149
+ }));
150
+ }} />
151
+ </_FormItem.default>;
152
+ })}
153
+ </div>
154
+ </_FormItem.default>;
155
+ }
156
+
157
+ let language = "plaintext";
158
+ let exampleBodyString = ""; //"body content";
159
+
160
+ if (contentType === "application/json") {
161
+ if (jsonRequestBodyExample) {
162
+ exampleBodyString = JSON.stringify(jsonRequestBodyExample, null, 2);
163
+ }
164
+
165
+ language = "json";
166
+ }
167
+
168
+ if (contentType === "application/xml") {
169
+ language = "xml";
170
+ }
171
+
172
+ return <_FormItem.default label="Body">
173
+ <_VSCode.default value={exampleBodyString} language={language} onChange={value => {
174
+ if (value.trim() === "") {
175
+ dispatch((0, _slice.clearRawBody)());
176
+ return;
177
+ }
178
+
179
+ dispatch((0, _slice.setStringRawBody)(value));
180
+ }} />
181
+ </_FormItem.default>;
182
+ }
183
+
184
+ var _default = BodyWrap;
185
+ exports.default = _default;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.slice = exports.setStringRawBody = exports.setStringFormBody = exports.setFileRawBody = exports.setFileFormBody = exports.default = exports.clearRawBody = exports.clearFormBodyKey = void 0;
7
+
8
+ var _toolkit = require("@reduxjs/toolkit");
9
+
10
+ /* ============================================================================
11
+ * Copyright (c) Palo Alto Networks
12
+ *
13
+ * This source code is licensed under the MIT license found in the
14
+ * LICENSE file in the root directory of this source tree.
15
+ * ========================================================================== */
16
+ const initialState = {};
17
+ const slice = (0, _toolkit.createSlice)({
18
+ name: "body",
19
+ initialState,
20
+ reducers: {
21
+ clearRawBody: _state => {
22
+ return {
23
+ type: "empty"
24
+ };
25
+ },
26
+ setStringRawBody: (_state, action) => {
27
+ return {
28
+ type: "raw",
29
+ content: {
30
+ type: "string",
31
+ value: action.payload
32
+ }
33
+ };
34
+ },
35
+ setFileRawBody: (_state, action) => {
36
+ return {
37
+ type: "raw",
38
+ content: {
39
+ type: "file",
40
+ value: action.payload
41
+ }
42
+ };
43
+ },
44
+ clearFormBodyKey: (state, action) => {
45
+ if ((state === null || state === void 0 ? void 0 : state.type) === "form") {
46
+ delete state.content[action.payload];
47
+ }
48
+ },
49
+ setStringFormBody: (state, action) => {
50
+ if ((state === null || state === void 0 ? void 0 : state.type) !== "form") {
51
+ return {
52
+ type: "form",
53
+ content: {
54
+ [action.payload.key]: {
55
+ type: "string",
56
+ value: action.payload.value
57
+ }
58
+ }
59
+ };
60
+ }
61
+
62
+ state.content[action.payload.key] = {
63
+ type: "string",
64
+ value: action.payload.value
65
+ };
66
+ return state;
67
+ },
68
+ setFileFormBody: (state, action) => {
69
+ if ((state === null || state === void 0 ? void 0 : state.type) !== "form") {
70
+ return {
71
+ type: "form",
72
+ content: {
73
+ [action.payload.key]: {
74
+ type: "file",
75
+ value: action.payload.value
76
+ }
77
+ }
78
+ };
79
+ }
80
+
81
+ state.content[action.payload.key] = {
82
+ type: "file",
83
+ value: action.payload.value
84
+ };
85
+ return state;
86
+ }
87
+ }
88
+ });
89
+ exports.slice = slice;
90
+ const {
91
+ clearRawBody,
92
+ setStringRawBody,
93
+ setFileRawBody,
94
+ clearFormBodyKey,
95
+ setStringFormBody,
96
+ setFileFormBody
97
+ } = slice.actions;
98
+ exports.setFileFormBody = setFileFormBody;
99
+ exports.setStringFormBody = setStringFormBody;
100
+ exports.clearFormBodyKey = clearFormBodyKey;
101
+ exports.setFileRawBody = setFileRawBody;
102
+ exports.setStringRawBody = setStringRawBody;
103
+ exports.clearRawBody = clearRawBody;
104
+ var _default = slice.reducer;
105
+ exports.default = _default;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _hooks = require("../hooks");
11
+
12
+ var _FormItem = _interopRequireDefault(require("./../FormItem"));
13
+
14
+ var _FormSelect = _interopRequireDefault(require("./../FormSelect"));
15
+
16
+ var _slice = require("./slice");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ /* ============================================================================
21
+ * Copyright (c) Palo Alto Networks
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ * ========================================================================== */
26
+ function ContentType() {
27
+ const value = (0, _hooks.useTypedSelector)(state => state.contentType.value);
28
+ const options = (0, _hooks.useTypedSelector)(state => state.contentType.options);
29
+ const dispatch = (0, _hooks.useTypedDispatch)();
30
+
31
+ if (options.length <= 1) {
32
+ return null;
33
+ }
34
+
35
+ return <_FormItem.default label="Content-Type">
36
+ <_FormSelect.default value={value} options={options} onChange={e => dispatch((0, _slice.setContentType)(e.target.value))} />
37
+ </_FormItem.default>;
38
+ }
39
+
40
+ var _default = ContentType;
41
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.slice = exports.setContentType = exports.default = void 0;
7
+
8
+ var _toolkit = require("@reduxjs/toolkit");
9
+
10
+ /* ============================================================================
11
+ * Copyright (c) Palo Alto Networks
12
+ *
13
+ * This source code is licensed under the MIT license found in the
14
+ * LICENSE file in the root directory of this source tree.
15
+ * ========================================================================== */
16
+ const initialState = {};
17
+ const slice = (0, _toolkit.createSlice)({
18
+ name: "contentType",
19
+ initialState,
20
+ reducers: {
21
+ setContentType: (state, action) => {
22
+ state.value = action.payload;
23
+ }
24
+ }
25
+ });
26
+ exports.slice = slice;
27
+ const {
28
+ setContentType
29
+ } = slice.actions;
30
+ exports.setContentType = setContentType;
31
+ var _default = slice.reducer;
32
+ exports.default = _default;