@redocly/reference-docs 2.2.0-beta.circular.1 → 2.2.3
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/bin/cli/commands/redocly-docs-cli.min.js +43 -43
- package/dist/console.redocly-reference-docs.min.js +3 -3
- package/dist/oauth2-redirect.js +2 -2
- package/dist/redocly-reference-docs.min.js +18 -18
- package/lib/components/Endpoint/Endpoint.d.ts +2 -2
- package/lib/components/Endpoint/Endpoint.js +1 -1
- package/lib/components/Endpoint/ServerList.d.ts +2 -2
- package/lib/components/Endpoint/ServerList.js +1 -1
- package/lib/components/Endpoint/Summary.d.ts +2 -2
- package/lib/components/Endpoint/Summary.js +1 -1
- package/lib/components/NextSectionButton.js +1 -1
- package/lib/components/Overlay.js +1 -1
- package/lib/components/Panel/Accordion.js +1 -1
- package/lib/components/Panel/PanelBody.d.ts +1 -1
- package/lib/components/Panel/PanelBody.js +1 -1
- package/lib/components/Panel/PanelComponent.d.ts +2 -3
- package/lib/components/Panel/PanelComponent.js +1 -1
- package/lib/components/Panel/ResponsePanel.js +1 -1
- package/lib/components/ProProviders.d.ts +3 -1
- package/lib/components/ProProviders.js +1 -1
- package/lib/components/RedoclyReferenceDocs.d.ts +3 -3
- package/lib/components/RedoclyReferenceDocs.js +1 -1
- package/lib/components/Samples/ExampleSwitch.d.ts +1 -1
- package/lib/components/Samples/ExampleSwitch.js +1 -1
- package/lib/components/Samples/SamplesTabs.js +1 -1
- package/lib/components/Search/MenuItemProSearch.d.ts +4 -4
- package/lib/components/Search/ProSearchBox.d.ts +6 -6
- package/lib/components/Search/ProSearchBox.js +1 -1
- package/lib/components/Search/SearchField.js +1 -1
- package/lib/components/Search/styled.d.ts +3 -3
- package/lib/components/StoreProvider.d.ts +4 -4
- package/lib/components/StoreProvider.js +1 -1
- package/lib/components/Tabs/CollapsingTabs/CollapsingTabsBase.js +1 -1
- package/lib/components/common/Checkbox.js +1 -1
- package/lib/components/common/FileUpload/FileUpload.d.ts +3 -6
- package/lib/components/common/FileUpload/FileUpload.js +1 -1
- package/lib/components/common/FileUpload/helper.d.ts +12 -4
- package/lib/components/common/FileUpload/helper.js +1 -1
- package/lib/components/common/TextField.d.ts +3 -3
- package/lib/components/common/TextField.js +1 -1
- package/lib/components/console/AuthPanel.d.ts +2 -0
- package/lib/components/console/AuthPanel.js +1 -1
- package/lib/components/console/Console.d.ts +9 -3
- package/lib/components/console/Console.js +1 -1
- package/lib/components/console/OAuth2Flow.d.ts +2 -0
- package/lib/components/console/OAuth2Flow.js +1 -1
- package/lib/components/console/OAuth2TokenInput.d.ts +2 -0
- package/lib/components/console/OAuth2TokenInput.js +1 -1
- package/lib/components/console/OpenIDConnect.d.ts +2 -0
- package/lib/components/console/OpenIDConnect.js +1 -1
- package/lib/components/console/OperationParameters.d.ts +1 -1
- package/lib/components/console/OperationParameters.js +1 -1
- package/lib/components/console/RequestBody.js +1 -1
- package/lib/components/console/RequestBodyForm.d.ts +7 -0
- package/lib/components/console/RequestBodyForm.js +2 -0
- package/lib/components/console/ResponsePanel.d.ts +4 -4
- package/lib/components/console/ResponsePanel.js +1 -1
- package/lib/components/console/ServerDropdown.d.ts +1 -1
- package/lib/components/console/ServerDropdown.js +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/models/file-upload.d.ts +16 -0
- package/lib/models/file-upload.js +2 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.js +1 -1
- package/lib/redoc-lib/src/common-elements/LinkToField.d.ts +3 -2
- package/lib/redoc-lib/src/common-elements/LinkToField.js +1 -1
- package/lib/redoc-lib/src/components/ApiLogo/ApiLogo.js +1 -1
- package/lib/redoc-lib/src/components/ApiLogo/styled.elements.d.ts +5 -2
- package/lib/redoc-lib/src/components/ApiLogo/styled.elements.js +1 -1
- package/lib/redoc-lib/src/components/CallbackSamples/CallbackReqSamples.js +1 -1
- package/lib/redoc-lib/src/components/CallbackSamples/CallbackSamples.js +1 -1
- package/lib/redoc-lib/src/components/PayloadSamples/MediaTypeSamples.js +1 -1
- package/lib/redoc-lib/src/components/PayloadSamples/PayloadSamples.d.ts +5 -7
- package/lib/redoc-lib/src/components/PayloadSamples/PayloadSamples.js +1 -1
- package/lib/redoc-lib/src/components/RequestSamples/CodeSample.d.ts +2 -1
- package/lib/redoc-lib/src/components/RequestSamples/CodeSample.js +1 -1
- package/lib/redoc-lib/src/components/RequestSamples/RequestSamples.d.ts +4 -3
- package/lib/redoc-lib/src/components/RequestSamples/RequestSamples.js +1 -1
- package/lib/redoc-lib/src/components/RequestSamples/useCodeSamples.d.ts +4 -16
- package/lib/redoc-lib/src/components/RequestSamples/useCodeSamples.js +1 -1
- package/lib/redoc-lib/src/components/ResponseSamples/ResponseSamples.js +1 -1
- package/lib/redoc-lib/src/components/SideMenu/MenuItem.js +1 -1
- package/lib/redoc-lib/src/components/SourceCode/SourceCode.d.ts +2 -9
- package/lib/redoc-lib/src/services/MenuBuilder.d.ts +1 -0
- package/lib/redoc-lib/src/services/OpenAPIParser.js +1 -1
- package/lib/redoc-lib/src/services/RedocNormalizedOptions.d.ts +8 -1
- package/lib/redoc-lib/src/services/RedocNormalizedOptions.js +1 -1
- package/lib/redoc-lib/src/services/ScrollService.js +1 -1
- package/lib/redoc-lib/src/services/models/Example.js +1 -1
- package/lib/redoc-lib/src/services/models/Field.d.ts +1 -1
- package/lib/redoc-lib/src/services/models/Operation.d.ts +7 -2
- package/lib/redoc-lib/src/services/models/Operation.js +1 -1
- package/lib/redoc-lib/src/services/models/Schema.d.ts +2 -3
- package/lib/redoc-lib/src/services/models/Schema.js +1 -1
- package/lib/redoc-lib/src/theme.d.ts +1 -0
- package/lib/redoc-lib/src/types/open-api.d.ts +2 -0
- package/lib/redoc-lib/src/utils/JsonPointer.d.ts +5 -5
- package/lib/redoc-lib/src/utils/JsonPointer.js +1 -1
- package/lib/redoc-lib/src/utils/loadAndBundleSpec.js +1 -1
- package/lib/redoc-lib/src/utils/memoize.js +1 -1
- package/lib/redoc-lib/src/utils/openapi.d.ts +0 -2
- package/lib/services/ProMenu.d.ts +2 -5
- package/lib/services/ProStore.d.ts +4 -2
- package/lib/services/ProStore.js +1 -1
- package/lib/services/SearchStore.d.ts +1 -0
- package/lib/services/SearchStore.js +1 -1
- package/lib/services/code-samples/generator.d.ts +1 -1
- package/lib/services/code-samples/generator.js +1 -1
- package/lib/services/code-samples/httpsnippet/helpers/code-helpers.d.ts +1 -1
- package/lib/services/code-samples/httpsnippet/helpers/reducer.d.ts +1 -1
- package/lib/services/code-samples/httpsnippet/targets/java8/apachehttp.d.ts +0 -1
- package/lib/services/code-samples/httpsnippet/targets/java8/apachehttp.js +1 -1
- package/lib/services/code-samples/httpsnippet/targets/php/utils.d.ts +1 -1
- package/lib/services/code-samples/httpsnippet/targets/php/utils.js +1 -1
- package/lib/services/extendTheme.d.ts +4 -4
- package/lib/services/extendTheme.js +1 -1
- package/lib/services/history/ProHashHistoryService.d.ts +1 -1
- package/lib/services/history/PushStateHistoryService.d.ts +1 -1
- package/lib/services/history/helpers.js +1 -1
- package/lib/services/utils.d.ts +2 -1
- package/lib/services/utils.js +1 -1
- package/lib/standalone.d.ts +4 -3
- package/lib/standalone.js +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib-esm/components/Endpoint/Endpoint.d.ts +2 -2
- package/lib-esm/components/Endpoint/Endpoint.js +1 -1
- package/lib-esm/components/Endpoint/ServerList.d.ts +2 -2
- package/lib-esm/components/Endpoint/ServerList.js +1 -1
- package/lib-esm/components/Endpoint/Summary.d.ts +2 -2
- package/lib-esm/components/Endpoint/Summary.js +1 -1
- package/lib-esm/components/NextSectionButton.js +1 -1
- package/lib-esm/components/Overlay.js +1 -1
- package/lib-esm/components/Panel/Accordion.js +1 -1
- package/lib-esm/components/Panel/PanelBody.d.ts +1 -1
- package/lib-esm/components/Panel/PanelBody.js +1 -1
- package/lib-esm/components/Panel/PanelComponent.d.ts +2 -3
- package/lib-esm/components/Panel/PanelComponent.js +1 -1
- package/lib-esm/components/Panel/ResponsePanel.js +1 -1
- package/lib-esm/components/ProProviders.d.ts +3 -1
- package/lib-esm/components/ProProviders.js +1 -1
- package/lib-esm/components/RedoclyReferenceDocs.d.ts +3 -3
- package/lib-esm/components/RedoclyReferenceDocs.js +1 -1
- package/lib-esm/components/Samples/ExampleSwitch.d.ts +1 -1
- package/lib-esm/components/Samples/ExampleSwitch.js +1 -1
- package/lib-esm/components/Samples/SamplesTabs.js +1 -1
- package/lib-esm/components/Search/MenuItemProSearch.d.ts +4 -4
- package/lib-esm/components/Search/ProSearchBox.d.ts +6 -6
- package/lib-esm/components/Search/ProSearchBox.js +1 -1
- package/lib-esm/components/Search/SearchField.js +1 -1
- package/lib-esm/components/Search/styled.d.ts +3 -3
- package/lib-esm/components/StoreProvider.d.ts +4 -4
- package/lib-esm/components/StoreProvider.js +1 -1
- package/lib-esm/components/Tabs/CollapsingTabs/CollapsingTabsBase.js +1 -1
- package/lib-esm/components/common/Checkbox.js +1 -1
- package/lib-esm/components/common/FileUpload/FileUpload.d.ts +3 -6
- package/lib-esm/components/common/FileUpload/FileUpload.js +1 -1
- package/lib-esm/components/common/FileUpload/helper.d.ts +12 -4
- package/lib-esm/components/common/FileUpload/helper.js +1 -1
- package/lib-esm/components/common/TextField.d.ts +3 -3
- package/lib-esm/components/common/TextField.js +1 -1
- package/lib-esm/components/console/AuthPanel.d.ts +2 -0
- package/lib-esm/components/console/AuthPanel.js +1 -1
- package/lib-esm/components/console/Console.d.ts +9 -3
- package/lib-esm/components/console/Console.js +1 -1
- package/lib-esm/components/console/OAuth2Flow.d.ts +2 -0
- package/lib-esm/components/console/OAuth2Flow.js +1 -1
- package/lib-esm/components/console/OAuth2TokenInput.d.ts +2 -0
- package/lib-esm/components/console/OAuth2TokenInput.js +1 -1
- package/lib-esm/components/console/OpenIDConnect.d.ts +2 -0
- package/lib-esm/components/console/OpenIDConnect.js +1 -1
- package/lib-esm/components/console/OperationParameters.d.ts +1 -1
- package/lib-esm/components/console/OperationParameters.js +1 -1
- package/lib-esm/components/console/RequestBody.js +1 -1
- package/lib-esm/components/console/RequestBodyForm.d.ts +7 -0
- package/lib-esm/components/console/RequestBodyForm.js +2 -0
- package/lib-esm/components/console/ResponsePanel.d.ts +4 -4
- package/lib-esm/components/console/ResponsePanel.js +1 -1
- package/lib-esm/components/console/ServerDropdown.d.ts +1 -1
- package/lib-esm/components/console/ServerDropdown.js +1 -1
- package/lib-esm/components/index.d.ts +1 -0
- package/lib-esm/index.d.ts +1 -1
- package/lib-esm/models/file-upload.d.ts +16 -0
- package/lib-esm/models/file-upload.js +2 -0
- package/lib-esm/models/index.d.ts +1 -0
- package/lib-esm/models/index.js +1 -1
- package/lib-esm/redoc-lib/src/common-elements/LinkToField.d.ts +3 -2
- package/lib-esm/redoc-lib/src/common-elements/LinkToField.js +1 -1
- package/lib-esm/redoc-lib/src/components/ApiLogo/ApiLogo.js +1 -1
- package/lib-esm/redoc-lib/src/components/ApiLogo/styled.elements.d.ts +5 -2
- package/lib-esm/redoc-lib/src/components/ApiLogo/styled.elements.js +1 -1
- package/lib-esm/redoc-lib/src/components/CallbackSamples/CallbackReqSamples.js +1 -1
- package/lib-esm/redoc-lib/src/components/CallbackSamples/CallbackSamples.js +1 -1
- package/lib-esm/redoc-lib/src/components/PayloadSamples/MediaTypeSamples.js +1 -1
- package/lib-esm/redoc-lib/src/components/PayloadSamples/PayloadSamples.d.ts +5 -7
- package/lib-esm/redoc-lib/src/components/PayloadSamples/PayloadSamples.js +1 -1
- package/lib-esm/redoc-lib/src/components/RequestSamples/CodeSample.d.ts +2 -1
- package/lib-esm/redoc-lib/src/components/RequestSamples/CodeSample.js +1 -1
- package/lib-esm/redoc-lib/src/components/RequestSamples/RequestSamples.d.ts +4 -3
- package/lib-esm/redoc-lib/src/components/RequestSamples/RequestSamples.js +1 -1
- package/lib-esm/redoc-lib/src/components/RequestSamples/useCodeSamples.d.ts +4 -16
- package/lib-esm/redoc-lib/src/components/RequestSamples/useCodeSamples.js +1 -1
- package/lib-esm/redoc-lib/src/components/ResponseSamples/ResponseSamples.js +1 -1
- package/lib-esm/redoc-lib/src/components/SideMenu/MenuItem.js +1 -1
- package/lib-esm/redoc-lib/src/components/SourceCode/SourceCode.d.ts +2 -9
- package/lib-esm/redoc-lib/src/services/MenuBuilder.d.ts +1 -0
- package/lib-esm/redoc-lib/src/services/OpenAPIParser.js +1 -1
- package/lib-esm/redoc-lib/src/services/RedocNormalizedOptions.d.ts +8 -1
- package/lib-esm/redoc-lib/src/services/RedocNormalizedOptions.js +1 -1
- package/lib-esm/redoc-lib/src/services/ScrollService.js +1 -1
- package/lib-esm/redoc-lib/src/services/models/Example.js +1 -1
- package/lib-esm/redoc-lib/src/services/models/Field.d.ts +1 -1
- package/lib-esm/redoc-lib/src/services/models/Operation.d.ts +7 -2
- package/lib-esm/redoc-lib/src/services/models/Operation.js +1 -1
- package/lib-esm/redoc-lib/src/services/models/Schema.d.ts +2 -3
- package/lib-esm/redoc-lib/src/services/models/Schema.js +1 -1
- package/lib-esm/redoc-lib/src/theme.d.ts +1 -0
- package/lib-esm/redoc-lib/src/types/open-api.d.ts +2 -0
- package/lib-esm/redoc-lib/src/utils/JsonPointer.d.ts +5 -5
- package/lib-esm/redoc-lib/src/utils/JsonPointer.js +1 -1
- package/lib-esm/redoc-lib/src/utils/loadAndBundleSpec.js +1 -1
- package/lib-esm/redoc-lib/src/utils/memoize.js +1 -1
- package/lib-esm/redoc-lib/src/utils/openapi.d.ts +0 -2
- package/lib-esm/services/ProMenu.d.ts +2 -5
- package/lib-esm/services/ProStore.d.ts +4 -2
- package/lib-esm/services/ProStore.js +1 -1
- package/lib-esm/services/SearchStore.d.ts +1 -0
- package/lib-esm/services/SearchStore.js +1 -1
- package/lib-esm/services/code-samples/generator.d.ts +1 -1
- package/lib-esm/services/code-samples/generator.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/helpers/code-helpers.d.ts +1 -1
- package/lib-esm/services/code-samples/httpsnippet/helpers/reducer.d.ts +1 -1
- package/lib-esm/services/code-samples/httpsnippet/targets/java8/apachehttp.d.ts +0 -1
- package/lib-esm/services/code-samples/httpsnippet/targets/java8/apachehttp.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/targets/php/utils.d.ts +1 -1
- package/lib-esm/services/code-samples/httpsnippet/targets/php/utils.js +1 -1
- package/lib-esm/services/extendTheme.d.ts +4 -4
- package/lib-esm/services/extendTheme.js +1 -1
- package/lib-esm/services/history/ProHashHistoryService.d.ts +1 -1
- package/lib-esm/services/history/PushStateHistoryService.d.ts +1 -1
- package/lib-esm/services/history/helpers.js +1 -1
- package/lib-esm/services/utils.d.ts +2 -1
- package/lib-esm/services/utils.js +1 -1
- package/lib-esm/standalone.d.ts +4 -3
- package/lib-esm/standalone.js +1 -1
- package/lib-esm/utils.d.ts +1 -1
- package/package.json +2 -2
- package/lib/components/console/FileUploadInput.d.ts +0 -4
- package/lib/components/console/FileUploadInput.js +0 -2
- package/lib/redoc-lib/src/components/testProviders.d.ts +0 -7
- package/lib/redoc-lib/src/components/testProviders.js +0 -2
- package/lib-esm/components/console/FileUploadInput.d.ts +0 -4
- package/lib-esm/components/console/FileUploadInput.js +0 -2
- package/lib-esm/redoc-lib/src/components/testProviders.d.ts +0 -7
- package/lib-esm/redoc-lib/src/components/testProviders.js +0 -2
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { OpenAPISchema } from '../../../redoc-lib';
|
|
2
|
+
import { UploadFileType } from '../../../models';
|
|
3
|
+
/**
|
|
4
|
+
* Convert request body mime-type to accept value for file upload input in browser
|
|
5
|
+
*/
|
|
6
|
+
export declare function mimeTypeToAccept(mimeType: string): string | undefined;
|
|
7
|
+
export declare function isFileUploadMime(mimeType: string): boolean;
|
|
8
|
+
export declare function isMultipartFileUploadProperty(schema: OpenAPISchema): boolean;
|
|
9
|
+
export declare function isRootFileUpload(schema: OpenAPISchema, mimeType: string): boolean;
|
|
10
|
+
export declare function fileToBase64(file: File): Promise<string>;
|
|
11
|
+
export declare function getIsBase64({ format, contentEncoding, contentMediaType }: OpenAPISchema): boolean;
|
|
12
|
+
export declare function getFileToUpload(rawFiles: FileList, schema: OpenAPISchema, contentName: string): Promise<UploadFileType>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var FILE_UPLOAD_FORMATS=["
|
|
1
|
+
import{__awaiter,__generator}from"tslib";import{DefinitionTypes,FileUploadFormats}from"../../../models";var FILE_UPLOAD_FORMATS=Object.values(FileUploadFormats),FILE_UPLOAD_MIME_TYPES=["application/octet-stream","application/pdf","application/gzip","application/zip"],COMMON_FILE_UPLOAD_PREFIXES=["image/","audio/","video/"];export function mimeTypeToAccept(e){if(COMMON_FILE_UPLOAD_PREFIXES.some((function(t){return e.startsWith(t)})))return e}export function isFileUploadMime(e){return!!FILE_UPLOAD_MIME_TYPES.includes(e)||COMMON_FILE_UPLOAD_PREFIXES.some((function(t){return e.startsWith(t)}))}export function isMultipartFileUploadProperty(e){var t="array"===e.type?e.items:e;if(!t||!t.type)return!0;var i=t.contentMediaType||"",n=t.format||t.contentEncoding||(isFileUploadMime(i)?"binary":"");return t.type===DefinitionTypes.STRING&&FILE_UPLOAD_FORMATS.includes(n)}export function isRootFileUpload(e,t){if(!e||!e.type)return isFileUploadMime(t);var i=e.format||e.contentEncoding||"";return e.type===DefinitionTypes.STRING&&FILE_UPLOAD_FORMATS.includes(i)}export function fileToBase64(e){return new Promise((function(t,i){var n=new FileReader;n.onload=function(){var e=n.result.replace(/data:.*\/.*;base64,/g,"");t(e)},n.onerror=function(){return i(n.error)},n.readAsDataURL(e)}))}export function getIsBase64(e){return[e.format,e.contentEncoding,e.contentMediaType].includes(FileUploadFormats.BASE64)}export function getFileToUpload(e,t,i){return __awaiter(this,void 0,void 0,(function(){var n,r,o,a=this;return __generator(this,(function(s){switch(s.label){case 0:return n=Object.values(e),r=1===n.length?n[0]:n,o=t.properties?t.properties[i]:t,o.type===DefinitionTypes.STRING&&getIsBase64(o)?[4,fileToBase64(n[0])]:[3,2];case 1:return r=s.sent(),[3,5];case 2:return o.type===DefinitionTypes.ARRAY&&o.items?getIsBase64(o.items)?[4,Promise.all(n.map((function(e){return __awaiter(a,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,fileToBase64(e)];case 1:return[2,t.sent()]}}))}))})))]:[3,4]:[3,5];case 3:return r=s.sent(),[3,5];case 4:r=n,s.label=5;case 5:return[2,r]}}))}))}
|
|
2
2
|
//# sourceMappingURL=helper.js.map
|
|
@@ -6,12 +6,12 @@ export declare const StyledInput: import("styled-components").StyledComponent<"i
|
|
|
6
6
|
fullWidth?: boolean | undefined;
|
|
7
7
|
inputType?: string | undefined;
|
|
8
8
|
}, never>;
|
|
9
|
-
export interface TextFieldExtraProps {
|
|
9
|
+
export interface TextFieldExtraProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
10
10
|
fullWidth?: boolean;
|
|
11
11
|
errorMessage?: string;
|
|
12
12
|
}
|
|
13
|
-
export declare const TextField: React.ForwardRefExoticComponent<
|
|
14
|
-
export declare function FormTextField(props:
|
|
13
|
+
export declare const TextField: React.ForwardRefExoticComponent<TextFieldExtraProps & React.RefAttributes<HTMLInputElement>>;
|
|
14
|
+
export declare function FormTextField(props: FieldProps<string, GenericObject> & TextFieldExtraProps): JSX.Element;
|
|
15
15
|
export interface FormDropdownProps extends Partial<DropdownProps> {
|
|
16
16
|
options: Option[];
|
|
17
17
|
initValue?: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__makeTemplateObject}from"tslib";import React from"react";import{asField}from"informed";import{useField}from"informed";import styled,{css,mediaCSS}from"../../redoc-lib/src/styled-components";import{FormError}from"./form";import{Dropdown}from"../../redoc-lib";export var invertedInputStyles=css(templateObject_1||(templateObject_1=__makeTemplateObject(["\n border: none;\n outline: none;\n padding: 8px;\n border-radius: ",";\n background-color: ",";\n ","\n\n &::placeholder {\n opacity: 0.6;\n color: ",";\n }\n\n &:-webkit-autofill {\n background-color: ",";\n }\n"],["\n border: none;\n outline: none;\n padding: 8px;\n border-radius: ",";\n background-color: ",";\n ","\n\n &::placeholder {\n opacity: 0.6;\n color: ",";\n }\n\n &:-webkit-autofill {\n background-color: ",";\n }\n"])),(function(e){return e.theme.shape.borderRadius}),(function(e){return e.theme.rightPanel.panelControlsBackgroundColor}),(function(e){var t=e.theme;return mediaCSS({color:t.colors.text.light,fontFamily:t.typography.code.fontFamily,fontSize:t.typography.fontSize})}),(function(e){return e.theme.colors.text.light}),(function(e){return e.theme.rightPanel.panelBackgroundColor}));var TextFieldWrapper=styled.div(templateObject_2||(templateObject_2=__makeTemplateObject(["\n display: ",";\n ","\n"],["\n display: ",";\n ","\n"])),(function(e){return"hidden"===e.type?"none":"inline-block"}),(function(e){return e.fullWidth?"width: 100%;":""})),InputWrap=styled.div(templateObject_3||(templateObject_3=__makeTemplateObject(["\n position: relative;\n"],["\n position: relative;\n"])));export var StyledInput=styled.input(templateObject_4||(templateObject_4=__makeTemplateObject(["\n ","\n ",";\n ","\n"],["\n ","\n ",";\n ","\n"])),invertedInputStyles,(function(e){return"password"===e.inputType?"padding-right: 40px;":""}),(function(e){return e.fullWidth?"width: 100%;":""}));var ToggleButton=styled.span(templateObject_5||(templateObject_5=__makeTemplateObject(["\n position: absolute;\n right: 0;\n line-height: normal;\n\n font-size: 0.8em;\n padding: calc(8px / 0.8);\n cursor: pointer;\n text-align: center;\n ","\n"],["\n position: absolute;\n right: 0;\n line-height: normal;\n\n font-size: 0.8em;\n padding: calc(8px / 0.8);\n cursor: pointer;\n text-align: center;\n ","\n"])),(function(e){var t=e.theme;return mediaCSS({color:t.rightPanel.textColor})}));
|
|
1
|
+
import{__assign,__makeTemplateObject}from"tslib";import React from"react";import{asField}from"informed";import{useField}from"informed";import styled,{css,mediaCSS}from"../../redoc-lib/src/styled-components";import{FormError}from"./form";import{Dropdown}from"../../redoc-lib";export var invertedInputStyles=css(templateObject_1||(templateObject_1=__makeTemplateObject(["\n border: none;\n outline: none;\n padding: 8px;\n border-radius: ",";\n background-color: ",";\n ","\n\n &::placeholder {\n opacity: 0.6;\n color: ",";\n }\n\n &:-webkit-autofill {\n background-color: ",";\n }\n"],["\n border: none;\n outline: none;\n padding: 8px;\n border-radius: ",";\n background-color: ",";\n ","\n\n &::placeholder {\n opacity: 0.6;\n color: ",";\n }\n\n &:-webkit-autofill {\n background-color: ",";\n }\n"])),(function(e){return e.theme.shape.borderRadius}),(function(e){return e.theme.rightPanel.panelControlsBackgroundColor}),(function(e){var t=e.theme;return mediaCSS({color:t.colors.text.light,fontFamily:t.typography.code.fontFamily,fontSize:t.typography.fontSize})}),(function(e){return e.theme.colors.text.light}),(function(e){return e.theme.rightPanel.panelBackgroundColor}));var TextFieldWrapper=styled.div(templateObject_2||(templateObject_2=__makeTemplateObject(["\n display: ",";\n ","\n"],["\n display: ",";\n ","\n"])),(function(e){return"hidden"===e.type?"none":"inline-block"}),(function(e){return e.fullWidth?"width: 100%;":""})),InputWrap=styled.div(templateObject_3||(templateObject_3=__makeTemplateObject(["\n position: relative;\n"],["\n position: relative;\n"])));export var StyledInput=styled.input(templateObject_4||(templateObject_4=__makeTemplateObject(["\n ","\n ",";\n ","\n"],["\n ","\n ",";\n ","\n"])),invertedInputStyles,(function(e){return"password"===e.inputType?"padding-right: 40px;":""}),(function(e){return e.fullWidth?"width: 100%;":""}));var ToggleButton=styled.span(templateObject_5||(templateObject_5=__makeTemplateObject(["\n position: absolute;\n right: 0;\n line-height: normal;\n\n font-size: 0.8em;\n padding: calc(8px / 0.8);\n cursor: pointer;\n text-align: center;\n ","\n"],["\n position: absolute;\n right: 0;\n line-height: normal;\n\n font-size: 0.8em;\n padding: calc(8px / 0.8);\n cursor: pointer;\n text-align: center;\n ","\n"])),(function(e){var t=e.theme;return mediaCSS({color:t.rightPanel.textColor})}));function TextFieldComponent(e,t){var n=e.fullWidth,r=e.errorMessage,o=e.type,a=React.useState("password"===o),l=a[0],i=a[1],c=React.useCallback((function(){i(!l)}),[l]);return React.createElement(TextFieldWrapper,{fullWidth:n,type:o},React.createElement(InputWrap,null,React.createElement(StyledInput,__assign({},e,{type:l?"password":"text",inputType:o,ref:t})),"password"===o&&React.createElement(ToggleButton,{onClick:c}," ",l?"show":"hide"," ")),r?React.createElement(FormError,null,r):null)}export var TextField=React.forwardRef(TextFieldComponent);export function FormTextField(e){var t=useField(__assign({fieldType:"text"},e)),n=t.userProps,r=t.render,o=t.fieldState,a=t.informed;return r(React.createElement(TextField,__assign({},n,a,{errorMessage:o.error})))}var templateObject_1,templateObject_2,templateObject_3,templateObject_4,templateObject_5,FormDropdownInt=function(e){var t=e.initValue,n=e.options,r=e.fieldApi,o=e.fieldState,a=n.map((function(e,t){return{value:e.title||e.value,idx:t,origValue:e.value}})),l=a.find((function(e){return e.origValue===t})),i=React.useState(null==l?void 0:l.value),c=i[0],p=i[1];React.useEffect((function(){t&&r.setValue(t)}),[]);var d=React.useCallback((function(e){r.setValue(a[e.idx].origValue),p(a[e.idx].value)}),[a]);return React.createElement(TextFieldWrapper,{fullWidth:!0},React.createElement(Dropdown,{fullWidth:!0,variant:"dark",value:c,options:a,onChange:d}),o.error?React.createElement(FormError,null,o.error):null)};export var FormDropdown=asField(FormDropdownInt);
|
|
2
2
|
//# sourceMappingURL=TextField.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { FormApi, FormState } from 'informed';
|
|
3
3
|
import { OperationModel } from '../../redoc-lib';
|
|
4
|
+
import { SecurityDetails } from '../../utils';
|
|
4
5
|
export declare function requiredValidator(value: any): "Field is required" | undefined;
|
|
5
6
|
export interface AuthPanelProps {
|
|
6
7
|
operation: OperationModel;
|
|
@@ -8,6 +9,7 @@ export interface AuthPanelProps {
|
|
|
8
9
|
formApi: FormApi;
|
|
9
10
|
activeServer: string;
|
|
10
11
|
authCorsProxyUrl: Maybe<string>;
|
|
12
|
+
securityDefaults?: Record<string, SecurityDetails | string>;
|
|
11
13
|
}
|
|
12
14
|
export interface AuthPanelState {
|
|
13
15
|
activeScheme: number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__extends}from"tslib";import*as React from"react";import{Dropdown}from"../../redoc-lib";import{fromStorage,getSecurityDetailsOptions,toStorage,escapeFormId}from"../../utils";import OAuth2TokenInput from"./OAuth2TokenInput";import{OAuth2Flow}from"./OAuth2Flow";import{OpenIDConnect}from"./OpenIDConnect";import{FormDropdown,FormTextField}from"../common/TextField";import{FormControl,FormLabel,FormWrapper}from"../common/form";import{l}from"../../redoc-lib/src/services/Labels";export function requiredValidator(e){if(!e)return"Field is required"}var getCookie=function(e){var t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(t,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeScheme:e.idx}),toStorage("securityRequirementName",e.value)}}),t}return __extends(t,e),Object.defineProperty(t,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),r=fromStorage("securityRequirementName"),
|
|
1
|
+
import{__assign,__extends}from"tslib";import*as React from"react";import{Dropdown}from"../../redoc-lib";import{fromStorage,getSecurityDetailsOptions,toStorage,escapeFormId}from"../../utils";import OAuth2TokenInput from"./OAuth2TokenInput";import{OAuth2Flow}from"./OAuth2Flow";import{OpenIDConnect}from"./OpenIDConnect";import{FormDropdown,FormTextField}from"../common/TextField";import{FormControl,FormLabel,FormWrapper}from"../common/form";import{l}from"../../redoc-lib/src/services/Labels";export function requiredValidator(e){if(!e)return"Field is required"}var getCookie=function(e){var t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(t,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeScheme:e.idx}),toStorage("securityRequirementName",e.value)}}),t}return __extends(t,e),Object.defineProperty(t,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),r=fromStorage("securityRequirementName"),o=t.findIndex((function(e){return e===r}));return{activeScheme:o<0?0:o}}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.props.securityDefaults,r=this.state.activeScheme,o=this.props.operation.security,a=o.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})).map((function(e,t){return{value:e,idx:t}}));return 0===a.length?null:React.createElement(React.Fragment,null,React.createElement(FormWrapper,null,a.length>1&&React.createElement(FormControl,null,React.createElement(Dropdown,{variant:"dark",fullWidth:!0,prefix:"Security scheme: ",options:a,value:a[r].value,onChange:this.handleSchemeChange}))||null,o[r].schemes.map((function(r){var o,a,i,n,u,c,s,m=escapeFormId(r.id);if("apiKey"===r.type){var d=getSecurityDetailsOptions(m,""),p={field:"auth."+m,fullWidth:!0,initialValue:fromCookie(r)||fromStorage("auth."+m)||(null==t?void 0:t[m]),initValue:fromCookie(r)||fromStorage("auth."+m)||(null==t?void 0:t[m]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(FormControl,{key:m},React.createElement(FormLabel,null," ",r.name,": "),d?React.createElement(FormDropdown,__assign({},p,{options:d})):React.createElement(FormTextField,__assign({},p,{type:"password","data-cy":"apiKey-auth-password"})))}if("http"===r.type){if("basic"===r.scheme){var f=getSecurityDetailsOptions(m,"username");p={field:"auth."+m+".username",fullWidth:!0,initialValue:fromStorage("auth."+m+".username")||(null===(o=null==t?void 0:t[m])||void 0===o?void 0:o.username),initValue:fromStorage("auth."+m+".username")||(null===(a=null==t?void 0:t[m])||void 0===a?void 0:a.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicUsername"),": "),f?React.createElement(FormDropdown,__assign({},p,{options:f})):React.createElement(FormTextField,__assign({},p))),React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicPassword"),": "),React.createElement(FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:"auth."+m+".password",validate:requiredValidator,initialValue:fromStorage("auth."+m+".password")||(null===(i=null==t?void 0:t[m])||void 0===i?void 0:i.password),validateOnBlur:!0,validateOnChange:!0})))}if("bearer"===r.scheme){var h=getSecurityDetailsOptions(m,"");p={field:"auth."+m,fullWidth:!0,initialValue:fromStorage("auth."+m)||(null==t?void 0:t[m]),initValue:fromStorage("auth."+m)||(null==t?void 0:t[m]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," Bearer Token: "),h?React.createElement(FormDropdown,__assign({},p,{options:h})):React.createElement(FormTextField,__assign({},p,{type:"password",placeholder:"(without 'Bearer')"}))))}}else{if("oauth2"===r.type&&r.flows&&r.flows.clientCredentials)return React.createElement(OAuth2TokenInput,{key:m,flow:r.flows.clientCredentials,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.clientCredentials["x-defaultClientId"]||r["x-defaultClientId"],defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type&&r.flows&&r.flows.implicit)return React.createElement(OAuth2Flow,{key:m,authorizationUrl:r.flows.implicit.authorizationUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(u=null===(n=null==r?void 0:r.flows)||void 0===n?void 0:n.implicit)||void 0===u?void 0:u.scopes)||{}),server:e.props.activeServer,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.implicit["x-defaultClientId"]||r["x-defaultClientId"],flow:"implicit",defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type&&r.flows&&r.flows.authorizationCode)return React.createElement(OAuth2Flow,{key:m,authorizationUrl:r.flows.authorizationCode.authorizationUrl,tokenUrl:r.flows.authorizationCode.tokenUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(c=r.flows.authorizationCode)||void 0===c?void 0:c.scopes)||{}),server:e.props.activeServer,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.authorizationCode["x-defaultClientId"]||r["x-defaultClientId"],flow:"authorizationCode",defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type){var v=fromStorage("auth."+m+".token")||JSON.stringify(null===(s=null==t?void 0:t[m])||void 0===s?void 0:s.token);return v=v?JSON.parse(v):{},React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token Type: "),React.createElement(FormTextField,{fullWidth:!0,field:"auth."+m+".token.token_type",initialValue:v.token_type||"Bearer"})),React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:"auth."+m+".token.access_token",validate:requiredValidator,initialValue:v.access_token,validateOnBlur:!0,validateOnChange:!0})))}if("openIdConnect"===r.type)return React.createElement(OpenIDConnect,{key:m,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:m,form:e.props.form,formApi:e.props.formApi,scheme:r,clientId:r["x-defaultClientId"],defaultValues:null==t?void 0:t[m]})}}))),React.createElement("small",null,React.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))}}),t}(React.Component);export{AuthPanel};
|
|
2
2
|
//# sourceMappingURL=AuthPanel.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SecurityDetails } from '../../utils';
|
|
3
|
+
import { OpenApiResponseData } from './ResponsePanel';
|
|
3
4
|
import { ProStore } from '../../services';
|
|
4
5
|
import { OperationModel, Server } from '../../redoc-lib';
|
|
5
6
|
export interface ConsoleProps {
|
|
@@ -10,6 +11,11 @@ export interface ConsoleProps {
|
|
|
10
11
|
rootElement?: HTMLElement | null;
|
|
11
12
|
onClose?: () => any;
|
|
12
13
|
properties?: any;
|
|
14
|
+
securityDefaults?: Record<string, SecurityDetails | string>;
|
|
15
|
+
onResponse?: (arg: {
|
|
16
|
+
request: Record<string, unknown>;
|
|
17
|
+
response: OpenApiResponseData;
|
|
18
|
+
}) => void;
|
|
13
19
|
}
|
|
14
20
|
export interface ConsoleState {
|
|
15
21
|
form: any;
|
|
@@ -17,10 +23,10 @@ export interface ConsoleState {
|
|
|
17
23
|
loading: boolean;
|
|
18
24
|
activeTab: number;
|
|
19
25
|
error?: Error & {
|
|
20
|
-
response?:
|
|
26
|
+
response?: OpenApiResponseData;
|
|
21
27
|
};
|
|
22
28
|
resolvedRawSpec?: any;
|
|
23
|
-
response?:
|
|
29
|
+
response?: OpenApiResponseData;
|
|
24
30
|
time?: number;
|
|
25
31
|
server: Server;
|
|
26
32
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__awaiter,__decorate,__extends,__generator,__makeTemplateObject}from"tslib";import*as React from"react";import{Form,useField}from"informed";import{observer}from"mobx-react";import{get,useDimensions,unescapeFormId}from"../../utils";import{parse}from"query-string";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled.components";import{ServerChooser}from"./ServerDropdown";import{OperationParameters}from"./OperationParameters";import{ActionPanel}from"./ActionPanel";import{ResponsePanel}from"./ResponsePanel";import{RequestBody}from"./RequestBody";import{ConsoleBadges}from"./ConsoleBadges";import{AuthPanel,requiredValidator}from"./AuthPanel";import{AnalyticsEventType}from"../../services";import Swagger from"swagger-client";import{JsonPointer,ShelfIcon,CrossIcon,LockIcon}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/helper";import{l}from"../../redoc-lib/src/services/Labels";import styled from"../../redoc-lib/src/styled-components";import{CodeHeader,Panel,Header,Accordion,Trigger,Title}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{PanelBody}from"../Panel/PanelBody";import{getParameters,updateStorage}from"./utils";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(r,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.formApi=e,setTimeout((function(){r.setState({form:r.formApi.getState()})}),0)}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({form:e}),updateStorage(e)}}),Object.defineProperty(r,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeTab:e})}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({server:e})}}),Object.defineProperty(r,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(r,void 0,void 0,(function(){var e,t,r,o,n,a,s,i,l,c,u,p,d,m,h,v,f,g,y,b,_,P,R,S,C,w,I,E,k,x,A,T,O,B,j,q=this;return __generator(this,(function(H){switch(H.label){case 0:if(e=this.props,t=e.store,r=e.operation,this.formApi.submitForm(),o=this.formApi.getState(),n=o.values,o.invalid)return this.setState({shaking:!0}),setTimeout((function(){return q.setState({shaking:!1})}),1e3),null===(x=null===(k=null==t?void 0:t.options.events)||void 0===k?void 0:k.tryItSent)||void 0===x||x.call(k,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(a=this.props.operation.requestBody,s=a&&a.content&&a.content.active&&a.content.active.name||"",i=n.body,/json/.test(s))try{i=JSON.parse(i)}catch(e){console.error(e)}if(this.setState({loading:!0}),l=t.dereferencedRawSpec,!(c=get(l,["paths",r.path,(r.httpVerb||"").toLowerCase(),"servers"])||get(l,["paths",r.path,"servers"])||get(l,["servers"])))throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");u=c.find((function(e){return q.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),p=Date.now(),d=!!window.document.documentMode,h=n.auth,n.auth?(v=Object.keys(n.auth)[0],f=unescapeFormId(v),m=__assign(__assign({},l),{components:__assign(__assign({},l.components),{securitySchemes:__assign(__assign({},l.components.securitySchemes),(I={},I[f]=__assign(__assign({},l.components.securitySchemes[f]),{type:"openIdConnect"===l.components.securitySchemes[f].type?"oauth2":l.components.securitySchemes[f].type}),I))})}),h=__assign(__assign({},h),((E={})[f]=h[v],E))):m=__assign({},l),(g=t.options.corsProxyUrl)&&l.servers&&l.servers.length&&(m.servers=l.servers.map((function(e){return __assign(__assign({},e),{url:g+normalizeUrlProtocol(e.url)})}))),y=(null===(T=null===(A=null==a?void 0:a.content)||void 0===A?void 0:A.active)||void 0===T?void 0:T.name)||null,b="application/x-www-form-urlencoded"===y?parse(i):i,y&&["image/jpeg","image/png","application/octet-stream"].includes(y)&&(_=Object.keys(i).map((function(e){return i[e]})),b=_.length>1?_:_[0]),H.label=1;case 1:return H.trys.push([1,5,8,9]),P={userFetch:d&&require("cross-fetch").fetch,server:g?g+normalizeUrlProtocol(u.url):u.url,serverVariables:this.state.server.variables,spec:m,pathName:r.path,method:r.httpVerb,parameters:__assign(__assign(__assign(__assign({},n.path),n.query),n.header),n.cookie),securities:{authorized:h},requestBody:b,requestContentType:y,responseContentType:(null===(O=n.header)||void 0===O?void 0:O.Accept)||null,requestInterceptor:t.options.requestInterceptor&&function(e){var o,n;return null===(n=(o=t.options).requestInterceptor)||void 0===n?void 0:n.call(o,e,r)}||void 0},[4,Swagger.execute(P)];case 2:return(R=H.sent())&&R.data instanceof Blob?(S=R,[4,R.data.text()]):[3,4];case 3:S.data=H.sent(),H.label=4;case 4:return this.setState({response:R,error:void 0}),[3,9];case 5:return(C=H.sent())&&C.response&&C.response.data instanceof Blob?(w=C.response,[4,C.response.data.text()]):[3,7];case 6:w.data=H.sent(),H.label=7;case 7:return this.setState({response:void 0,error:C}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-p}),null===(j=null===(B=null==t?void 0:t.options.events)||void 0===B?void 0:B.tryItSent)||void 0===j||j.call(B,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[7];case 9:return[2]}}))}))}}),Object.defineProperty(r,"validateBody",{enumerable:!0,configurable:!0,writable:!0,value:function(){}}),r.state={form:{values:{path:getParameters(t.operation.parameters,"path"),cookie:getParameters(t.operation.parameters,"cookie"),header:getParameters(t.operation.parameters,"header"),query:getParameters(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return __extends(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){return __awaiter(this,void 0,void 0,(function(){var e,t,r,o,n;return __generator(this,(function(a){switch(a.label){case 0:return e=this.props,t=e.store,r=e.specIdx,o=e.operation,[4,t.dereferenceSpecForTryIt(r||0,o)];case 1:return n=a.sent(),this.setState({resolvedRawSpec:n}),this.formApi.setValues({}),[2]}}))}))}}),Object.defineProperty(t.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,t=e.operation,r=e.className,o=e.rootElement,n=this.state,a=n.shaking,s=n.activeTab,i=n.form,l=n.response,c=n.loading,u=n.error,p=!(!l&&!u);return React.createElement(ConsoleWrapHook,{shaking:a,className:r,rootElement:o},React.createElement(CodeHeader,null,React.createElement(ConsoleBadges,{active:s,hasResponse:p,onChange:this.handleTabChange}),this.props.onClose&&React.createElement(CloseButton,{onClick:this.props.onClose}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==s},this.renderRequest()),React.createElement(ConsoleBody,{hidden:1!==s},this.renderResponse()),React.createElement(ActionPanel,{hasResponse:p,params:i.values&&__assign({},i.values),operation:t,loading:c,execute:this.handleExecute}))}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,o=t.store,n=t.properties,a=this.state,s=a.form,i=a.resolvedRawSpec,c=a.server,u=s.errors||{},p=u.path||u.cookie||u.header||u.query,d=i&&JsonPointer.get(i,r.pointer),m=s.values&&s.values.auth&&Object.keys(s.values.auth)[0];m&&s.values.auth[m]||(m=void 0),!m||void 0===s.values.auth[m].token&&void 0===s.values.auth[m].client_id&&void 0===s.values.auth[m].client_secret||s.values.auth[m].token&&s.values.auth[m].token.access_token||(m=void 0),m&&null!=s.values.auth[m].username&&(s.values.auth[m].username&&s.values.auth[m].password||(m=void 0));var h=r.parameters||[],v=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItAuthPanel;return i?React.createElement(React.Fragment,null,React.createElement(Form,{onChange:this.handleChange,getApi:this.setFormApi,style:__assign(__assign({},flexColumn),{margin:0})},React.createElement(Accordion,{initialActiveIdx:r.security.length&&m?1:0},r.security.length&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!m&&!!u.auth,success:!!m},v?React.createElement(AuthPanelHook,{field:"auth",validate:requiredValidator},(function(e){return React.createElement(RenderHook,{Hook:v,props:{server:c,operation:r,onChange:e,OAuth2:OAuth2}})})):React.createElement(AuthPanel,{formApi:this.formApi,form:s,operation:r,activeServer:c.url,authCorsProxyUrl:o.options.authCorsProxyUrl}))||null,r.requestBody&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!u.body},React.createElement(RequestBody,{validate:this.validateBody,console:this,body:r.requestBody,id:r.id,resolvedBody:d.requestBody,properties:n}))||null,h.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:p,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:r,values:s.values,errors:s.errors||{}}))||null)),React.createElement(ServerChooser,{operation:r,onChange:this.handleServerChange})):"Loading..."}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,o=e.time;return React.createElement(ResponsePanel,{response:t,error:r,time:o})}}),t=__decorate([observer],t)}(React.Component);export{Console};function ConsoleWrapHook(e){var t=e.shaking,r=e.className,o=e.children,n=e.rootElement,a=useDimensions(n)[0];return React.createElement(ConsoleWrap,{shaking:t,className:r,"data-cy":"console",fullWidth:null==a?void 0:a.width},o)}function AuthPanelHook(e){var t=useField(__assign({},e)),r=t.fieldApi,o=t.render,n=t.userProps,a=r.setValue,s=n.children;return o(React.createElement(React.Fragment,null,s(a)))}function TryItPanel(e){return React.createElement(StyledTryItPanel,__assign({},e,{header:function(t){var r=t.toggle,o=t.expanded;return React.createElement(Header,{onClick:r,isExpanded:o,"data-cy":e["data-cy"]},React.createElement(Trigger,null,React.createElement(Title,null,e.header),React.createElement(ShelfIcon,{direction:o?"down":"right"})),e.error&&React.createElement(CrossIcon,{size:"14px",color:"#ff908b"})||null,e.success&&React.createElement(LockIcon,{size:"14px",color:"#56ff26"})||null)}}))}var templateObject_1,StyledTryItPanel=styled(Panel)(templateObject_1||(templateObject_1=__makeTemplateObject(["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"],["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"])),Header,(function(e){return e.error?"#ff908b":"#89949f"}),ShelfIcon,PanelBody,(function(e){return e.error?"#ff908b":"#89949f"}));
|
|
1
|
+
import{__assign,__awaiter,__decorate,__extends,__generator,__makeTemplateObject}from"tslib";import*as React from"react";import{Form,useField}from"informed";import{observer}from"mobx-react";import{get,useDimensions,unescapeFormId}from"../../utils";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled.components";import{ServerChooser}from"./ServerDropdown";import{OperationParameters}from"./OperationParameters";import{ActionPanel}from"./ActionPanel";import{ResponsePanel}from"./ResponsePanel";import{RequestBody}from"./RequestBody";import{ConsoleBadges}from"./ConsoleBadges";import{AuthPanel,requiredValidator}from"./AuthPanel";import{AnalyticsEventType}from"../../services";import Swagger from"swagger-client";import{JsonPointer,ShelfIcon,CrossIcon,LockIcon}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/helper";import{l}from"../../redoc-lib/src/services/Labels";import styled from"../../redoc-lib/src/styled-components";import{CodeHeader,Panel,Header,Accordion,Trigger,Title}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{PanelBody}from"../Panel/PanelBody";import{getParameters,updateStorage}from"./utils";import{isFileUploadMime}from"../common/FileUpload/helper";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(r,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.formApi=e,setTimeout((function(){r.setState({form:r.formApi.getState()})}),0)}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({form:e}),updateStorage(e)}}),Object.defineProperty(r,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeTab:e})}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({server:e})}}),Object.defineProperty(r,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(r,void 0,void 0,(function(){var e,t,r,o,n,a,s,i,l,c,u,p,d,m,h,v,f,g,y,b,_,P,R,S,C,I,w,E,A,T,k,x,O,B,q,j=this;return __generator(this,(function(F){switch(F.label){case 0:if(e=this.props,t=e.store,r=e.operation,o=e.onResponse,this.formApi.submitForm(),n=this.formApi.getState(),a=n.values,n.invalid)return this.setState({shaking:!0}),setTimeout((function(){return j.setState({shaking:!1})}),1e3),null===(T=null===(A=null==t?void 0:t.options.events)||void 0===A?void 0:A.tryItSent)||void 0===T||T.call(A,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(s=this.props.operation.requestBody,i=s&&s.content&&s.content.active&&s.content.active.name||"",l=a.body,/json/.test(i))try{l=JSON.parse(l)}catch(e){console.error(e)}if(this.setState({loading:!0}),c=t.dereferencedRawSpec,!(u=get(c,["paths",r.path,(r.httpVerb||"").toLowerCase(),"servers"])||get(c,["paths",r.path,"servers"])||get(c,["servers"])))throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");p=u.find((function(e){return j.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),d=Date.now(),m=!!window.document.documentMode,v=a.auth,a.auth?(f=Object.keys(a.auth)[0],g=unescapeFormId(f),h=__assign(__assign({},c),{components:__assign(__assign({},c.components),{securitySchemes:__assign(__assign({},c.components.securitySchemes),(w={},w[g]=__assign(__assign({},c.components.securitySchemes[g]),{type:"openIdConnect"===c.components.securitySchemes[g].type?"oauth2":c.components.securitySchemes[g].type}),w))})}),v=__assign(__assign({},v),((E={})[g]=v[f],E))):h=__assign({},c),(y=t.options.corsProxyUrl)&&c.servers&&c.servers.length&&(h.servers=c.servers.map((function(e){return __assign(__assign({},e),{url:y+normalizeUrlProtocol(e.url)})}))),(b=(null===(x=null===(k=null==s?void 0:s.content)||void 0===k?void 0:k.active)||void 0===x?void 0:x.name)||null)&&l&&isFileUploadMime(b)&&(_=Object.values(l),l=_.length>1?_:_[0]),P={userFetch:m&&require("cross-fetch").fetch,server:y?y+normalizeUrlProtocol(p.url):p.url,serverVariables:this.state.server.variables,spec:h,pathName:r.path,method:r.httpVerb,parameters:__assign(__assign(__assign(__assign({},a.path),a.query),a.header),a.cookie),securities:{authorized:v},requestBody:l,requestContentType:b,responseContentType:(null===(O=a.header)||void 0===O?void 0:O.Accept)||null,requestInterceptor:t.options.requestInterceptor&&function(e){var o,n;return null===(n=(o=t.options).requestInterceptor)||void 0===n?void 0:n.call(o,e,r)}||void 0},F.label=1;case 1:return F.trys.push([1,5,8,9]),[4,Swagger.execute(P)];case 2:return(R=F.sent())&&R.data instanceof Blob?(S=R,[4,R.data.text()]):[3,4];case 3:S.data=F.sent(),F.label=4;case 4:return this.setState({response:R,error:void 0}),[3,9];case 5:return(C=F.sent())&&C.response&&C.response.data instanceof Blob?(I=C.response,[4,C.response.data.text()]):[3,7];case 6:I.data=F.sent(),F.label=7;case 7:return this.setState({response:void 0,error:C}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-d}),null===(q=null===(B=null==t?void 0:t.options.events)||void 0===B?void 0:B.tryItSent)||void 0===q||q.call(B,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),this.state.response&&(null==o||o({request:P,response:this.state.response})),[7];case 9:return[2]}}))}))}}),Object.defineProperty(r,"validateBody",{enumerable:!0,configurable:!0,writable:!0,value:function(){}}),r.state={form:{values:{path:getParameters(t.operation.parameters,"path"),cookie:getParameters(t.operation.parameters,"cookie"),header:getParameters(t.operation.parameters,"header"),query:getParameters(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return __extends(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){return __awaiter(this,void 0,void 0,(function(){var e,t,r,o,n;return __generator(this,(function(a){switch(a.label){case 0:return e=this.props,t=e.store,r=e.specIdx,o=e.operation,[4,t.dereferenceSpecForTryIt(r||0,o)];case 1:return n=a.sent(),this.setState({resolvedRawSpec:n}),this.formApi.setValues({}),[2]}}))}))}}),Object.defineProperty(t.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,t=e.operation,r=e.className,o=e.rootElement,n=this.state,a=n.shaking,s=n.activeTab,i=n.form,l=n.response,c=n.loading,u=n.error,p=!(!l&&!u);return React.createElement(ConsoleWrapHook,{shaking:a,className:r,rootElement:o},React.createElement(CodeHeader,null,React.createElement(ConsoleBadges,{active:s,hasResponse:p,onChange:this.handleTabChange}),this.props.onClose&&React.createElement(CloseButton,{onClick:this.props.onClose}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==s},this.renderRequest()),React.createElement(ConsoleBody,{hidden:1!==s},this.renderResponse()),React.createElement(ActionPanel,{hasResponse:p,params:i.values&&__assign({},i.values),operation:t,loading:c,execute:this.handleExecute}))}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,o=t.store,n=t.properties,a=t.securityDefaults,s=this.state,i=s.form,c=s.resolvedRawSpec,u=s.server,p=i.errors||{},d=p.path||p.cookie||p.header||p.query,m=c&&JsonPointer.get(c,r.pointer),h=i.values&&i.values.auth&&Object.keys(i.values.auth)[0];h&&i.values.auth[h]||(h=void 0),!h||void 0===i.values.auth[h].token&&void 0===i.values.auth[h].client_id&&void 0===i.values.auth[h].client_secret||i.values.auth[h].token&&i.values.auth[h].token.access_token||(h=void 0),h&&null!=i.values.auth[h].username&&(i.values.auth[h].username&&i.values.auth[h].password||(h=void 0));var v=r.parameters||[],f=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItAuthPanel;return c?React.createElement(React.Fragment,null,React.createElement(Form,{onChange:this.handleChange,getApi:this.setFormApi,style:__assign(__assign({},flexColumn),{margin:0})},React.createElement(Accordion,{initialActiveIdx:r.security.length&&h?1:0},r.security.length&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!h&&!!p.auth,success:!!h},f?React.createElement(AuthPanelHook,{field:"auth",validate:requiredValidator},(function(e){return React.createElement(RenderHook,{Hook:f,props:{server:u,operation:r,onChange:e,OAuth2:OAuth2}})})):React.createElement(AuthPanel,{formApi:this.formApi,form:i,operation:r,activeServer:u.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:a}))||null,r.requestBody&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!p.body},React.createElement(RequestBody,{validate:this.validateBody,console:this,body:r.requestBody,id:r.id,resolvedBody:m.requestBody,properties:n}))||null,v.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:r,values:i.values,errors:i.errors||{}}))||null)),React.createElement(ServerChooser,{operation:r,onChange:this.handleServerChange})):"Loading..."}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,o=e.time;return React.createElement(ResponsePanel,{response:t,error:r,time:o})}}),t=__decorate([observer],t)}(React.Component);export{Console};function ConsoleWrapHook(e){var t=e.shaking,r=e.className,o=e.children,n=e.rootElement,a=useDimensions(n)[0];return React.createElement(ConsoleWrap,{shaking:t,className:r,"data-cy":"console",fullWidth:null==a?void 0:a.width},o)}function AuthPanelHook(e){var t=useField(__assign({},e)),r=t.fieldApi,o=t.render,n=t.userProps,a=r.setValue,s=n.children;return o(React.createElement(React.Fragment,null,s(a)))}function TryItPanel(e){return React.createElement(StyledTryItPanel,__assign({},e,{header:function(t){var r=t.toggle,o=t.expanded;return React.createElement(Header,{onClick:r,isExpanded:o,"data-cy":e["data-cy"]},React.createElement(Trigger,null,React.createElement(Title,null,e.header),React.createElement(ShelfIcon,{direction:o?"down":"right"})),e.error&&React.createElement(CrossIcon,{size:"14px",color:"#ff908b"})||null,e.success&&React.createElement(LockIcon,{size:"14px",color:"#56ff26"})||null)}}))}var templateObject_1,StyledTryItPanel=styled(Panel)(templateObject_1||(templateObject_1=__makeTemplateObject(["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"],["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"])),Header,(function(e){return e.error?"#ff908b":"#89949f"}),ShelfIcon,PanelBody,(function(e){return e.error?"#ff908b":"#89949f"}));
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { SecurityDetails } from '../../utils';
|
|
2
3
|
import { FormApi, FormState } from 'informed';
|
|
3
4
|
import { RedocProNormalizedOptions } from '../../services';
|
|
4
5
|
export interface OAuth2FlowProps {
|
|
@@ -12,6 +13,7 @@ export interface OAuth2FlowProps {
|
|
|
12
13
|
formApi: FormApi;
|
|
13
14
|
flow: 'implicit' | 'authorizationCode';
|
|
14
15
|
clientId?: string;
|
|
16
|
+
defaultValues?: SecurityDetails;
|
|
15
17
|
}
|
|
16
18
|
interface OAuth2FlowState {
|
|
17
19
|
error: string | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{styled,OptionsContext}from"../../redoc-lib";import{LinearProgress}from"../common/LinearProgress";import{FormControl,FormLabel,FormError,FormWrapper,FormWarning}from"../common/form";import{OAuth2}from"../../services/OAuth2";import{fromStorage,getSecurityDetailsOptions}from"../../utils";import Scope from"./Scope";import{Button}from"../shared";import{FormDropdown,FormTextField,TextField}from"../common/TextField";import{normalizeUrlProtocol}from"./utils";function requiredValidator(e){if(!e)return"Field is required"}var OAuth2Flow=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:null,loading:!1}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token","")}}),t}return __extends(t,e),Object.defineProperty(t.prototype,"values",{get:function(){return this.props.form.values&&this.props.form.values.auth&&this.props.form.values.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.props.form.errors&&this.props.form.errors.auth&&this.props.form.errors.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"handleAuthorize",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;if(e){this.props.formApi.validate();var r=this.props,o=r.flow,
|
|
1
|
+
import{__assign,__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{styled,OptionsContext}from"../../redoc-lib";import{LinearProgress}from"../common/LinearProgress";import{FormControl,FormLabel,FormError,FormWrapper,FormWarning}from"../common/form";import{OAuth2}from"../../services/OAuth2";import{fromStorage,getSecurityDetailsOptions}from"../../utils";import Scope from"./Scope";import{Button}from"../shared";import{FormDropdown,FormTextField,TextField}from"../common/TextField";import{normalizeUrlProtocol}from"./utils";function requiredValidator(e){if(!e)return"Field is required"}var OAuth2Flow=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:null,loading:!1}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token","")}}),t}return __extends(t,e),Object.defineProperty(t.prototype,"values",{get:function(){return this.props.form.values&&this.props.form.values.auth&&this.props.form.values.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.props.form.errors&&this.props.form.errors.auth&&this.props.form.errors.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"handleAuthorize",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;if(e){this.props.formApi.validate();var r=this.props,o=r.flow,l=r.id,a=r.tokenUrl,i=r.authCorsProxyUrl;if(this.values.client_id&&("authorizationCode"!==o||this.values.client_secret)){this.setState({loading:!0,error:null});var n=i?i+normalizeUrlProtocol(e):e,s=i&&a?i+normalizeUrlProtocol(a):a,c=this.props.formApi.getValue("auth."+l+".scopes"),u={authorizationUrl:n.startsWith("http")?n:this.props.server+n,clientId:this.values.client_id,scopes:c,redirectUri:this.context.oAuth2RedirectURI,routingBasePath:this.context.routingBasePath,successCallback:function(e){t.props.formApi.setValue("auth."+t.props.id+".token",e),t.setState({loading:!1,error:null})},errorCallback:function(e){t.setState({loading:!1,error:(null==e?void 0:e.message)||"Failed to retrieve the access token"})}};"implicit"===o&&OAuth2.authorizeImplicit(u),"authorizationCode"===o&&OAuth2.authorizeAuthorizationCode(__assign(__assign({},u),{tokenUrl:(null==s?void 0:s.startsWith("http"))?s:this.props.server+s,clientSecret:this.values.client_secret}))}}}}),Object.defineProperty(t.prototype,"handleLogout",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.clearToken(),this.setState({error:null})}}),Object.defineProperty(t.prototype,"handleCancel",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.setState({loading:!1,error:null}),OAuth2.clearRedirectData(this.props.flow)}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t,r=this,o=this.state,l=o.error,a=o.loading,i=this.props,n=i.id,s=i.scopes,c=i.authorizationUrl,u=i.flow,p=i.defaultValues;if(!c)return React.createElement(FormError,null,"No flow info");var m=fromStorage("auth."+n+".token")||JSON.stringify(null==p?void 0:p.token);m=m?JSON.parse(m):"";var d=getSecurityDetailsOptions(n,"client_id"),h={field:"auth."+n+".client_id",fullWidth:!0,initialValue:fromStorage("auth."+n+".client_id")||this.props.clientId||(null==p?void 0:p.client_id),initValue:fromStorage("auth."+n+".client_id")||this.props.clientId||(null==p?void 0:p.client_id),placeholder:"Your OAuth2 app Client ID",validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement("div",null,React.createElement(FormWrapper,null,React.createElement(FormControl,null,React.createElement(FormLabel,null," Client ID: "),d?React.createElement(FormDropdown,__assign({},h,{options:d})):React.createElement(FormTextField,__assign({},h,{"data-cy":"client-id-input"}))),"authorizationCode"===u&&React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client Secret:"),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:"auth."+n+".client_secret",initialValue:fromStorage("auth."+n+".client_secret")||(null==p?void 0:p.client_secret),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0,"data-cy":"client-secret-input"})),React.createElement(FormTextField,{fullWidth:!0,field:"auth."+n+".token",type:"hidden",initialValue:m,validate:requiredValidator}),React.createElement(Scope,{id:n,scopes:s}),this.values.token&&this.values.token.access_token?React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(TextField,{disabled:!0,type:"password",fullWidth:!0,value:this.values.token.access_token})):null),React.createElement(ButtonsWrapper,null,this.values.token&&this.values.token.access_token?React.createElement(Button,{fullWidth:!0,onClick:function(){r.handleLogout()}},"Log out"):React.createElement(React.Fragment,null,a?React.createElement(React.Fragment,null,React.createElement(Button,{fullWidth:!0,onClick:function(){r.handleCancel()}},"Cancel"),React.createElement(LinearProgress,null)):React.createElement(Button,{fullWidth:!0,disabled:(null===(t=null===(e=this.props)||void 0===e?void 0:e.formApi)||void 0===t?void 0:t.getTouched("auth."+n+".client_id"))&&!this.values.client_id,onClick:function(){r.handleAuthorize(c)}},"Authorize"))),a||l||!this.values.token||!this.values.token.access_token&&React.createElement(FormWrapper,null,React.createElement(FormControl,null,a?React.createElement(FormWarning,null,"Please, finish your authorization flow or cancel authorization."):l?React.createElement(React.Fragment,null,React.createElement(OriginalErrorMessage,null,React.createElement(FormError,null,l))):this.values.token&&this.values.token.access_token?null:React.createElement(FormWarning,null," No Access Token. Please, Authorize. "))))}}),Object.defineProperty(t,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:OptionsContext}),t}(React.Component);export{OAuth2Flow};var templateObject_1,templateObject_2,OriginalErrorMessage=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"],["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"]))),ButtonsWrapper=styled.div(templateObject_2||(templateObject_2=__makeTemplateObject(["\n margin-bottom: 15px;\n"],["\n margin-bottom: 15px;\n"])));
|
|
2
2
|
//# sourceMappingURL=OAuth2Flow.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { SecurityDetails } from '../../utils';
|
|
2
3
|
export interface OAuth2TokenInputProps {
|
|
3
4
|
flow: {
|
|
4
5
|
refreshUrl?: string;
|
|
@@ -14,6 +15,7 @@ export interface OAuth2TokenInputProps {
|
|
|
14
15
|
};
|
|
15
16
|
formApi: any;
|
|
16
17
|
clientId?: string;
|
|
18
|
+
defaultValues?: SecurityDetails;
|
|
17
19
|
}
|
|
18
20
|
interface OAuth2TokenInputState {
|
|
19
21
|
error: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__awaiter,__extends,__generator}from"tslib";import*as React from"react";import{FormControl,FormLabel,FormError,FormWrapper,FormHeader,TokenField,TokenValue,TokenClear,TokenShowHide}from"../common/form";import{fromStorage,getSecurityDetailsOptions,toStorage}from"../../utils";import Scope from"./Scope";import{OAuth2}from"../../services/OAuth2";import{Button}from"../shared";import{FormDropdown,FormTextField}from"../common/TextField";import{normalizeUrlProtocol}from"./utils";function validateToken(e){if(!e)return"Token is required"}var OAuth2TokenInput=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:"",loading:!1,tokenMasked:!0}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token",""),toStorage("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"toggleTokenMask",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState({tokenMasked:!t.state.tokenMasked})}}),Object.defineProperty(t,"requestToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(t,void 0,void 0,(function(){var e,t,r,o,n,a,l,i=this;return __generator(this,(function(s){switch(s.label){case 0:return this.state.loading?[2]:(e=this.props,t=e.server,r=e.flow,o=e.authCorsProxyUrl,n=o&&r.tokenUrl?o+normalizeUrlProtocol(r.tokenUrl):r.tokenUrl,this.errors.client_id||this.errors.client_secret?(console.log("Provide client_id and client_secret"),[2]):(a=this.values.client_id,l=this.values.client_secret,a&&l?(this.setState({loading:!0}),[4,OAuth2.authorizeClientCredentials({tokenUrl:n.startsWith("http")?n:t+n,clientId:a,clientSecret:l,scopes:this.values.scopes,successCallback:function(e){i.props.formApi.setValue("auth."+i.props.id+".token",e),i.setState({loading:!1})},errorCallback:function(e){i.clearToken(),i.setState({error:e.message,loading:!1})}})]):(console.log("Provide client_id and client_secret"),[2])));case 1:return s.sent(),[2]}}))}))}}),t}return __extends(t,e),Object.defineProperty(t.prototype,"values",{get:function(){return this.props.form.values&&this.props.form.values.auth&&this.props.form.values.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.props.form.errors&&this.props.form.errors.auth&&this.props.form.errors.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.loading,r=e.error,o=e.tokenMasked,n=this.props.id,
|
|
1
|
+
import{__assign,__awaiter,__extends,__generator}from"tslib";import*as React from"react";import{FormControl,FormLabel,FormError,FormWrapper,FormHeader,TokenField,TokenValue,TokenClear,TokenShowHide}from"../common/form";import{fromStorage,getSecurityDetailsOptions,toStorage}from"../../utils";import Scope from"./Scope";import{OAuth2}from"../../services/OAuth2";import{Button}from"../shared";import{FormDropdown,FormTextField}from"../common/TextField";import{normalizeUrlProtocol}from"./utils";function validateToken(e){if(!e)return"Token is required"}var OAuth2TokenInput=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:"",loading:!1,tokenMasked:!0}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token",""),toStorage("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"toggleTokenMask",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState({tokenMasked:!t.state.tokenMasked})}}),Object.defineProperty(t,"requestToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(t,void 0,void 0,(function(){var e,t,r,o,n,a,l,i=this;return __generator(this,(function(s){switch(s.label){case 0:return this.state.loading?[2]:(e=this.props,t=e.server,r=e.flow,o=e.authCorsProxyUrl,n=o&&r.tokenUrl?o+normalizeUrlProtocol(r.tokenUrl):r.tokenUrl,this.errors.client_id||this.errors.client_secret?(console.log("Provide client_id and client_secret"),[2]):(a=this.values.client_id,l=this.values.client_secret,a&&l?(this.setState({loading:!0}),[4,OAuth2.authorizeClientCredentials({tokenUrl:n.startsWith("http")?n:t+n,clientId:a,clientSecret:l,scopes:this.values.scopes,successCallback:function(e){i.props.formApi.setValue("auth."+i.props.id+".token",e),i.setState({loading:!1})},errorCallback:function(e){i.clearToken(),i.setState({error:e.message,loading:!1})}})]):(console.log("Provide client_id and client_secret"),[2])));case 1:return s.sent(),[2]}}))}))}}),t}return __extends(t,e),Object.defineProperty(t.prototype,"values",{get:function(){return this.props.form.values&&this.props.form.values.auth&&this.props.form.values.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.props.form.errors&&this.props.form.errors.auth&&this.props.form.errors.auth[this.props.id]||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.loading,r=e.error,o=e.tokenMasked,n=this.props,a=n.id,l=n.defaultValues,i=Object.keys(this.props.flow.scopes),s=fromStorage("auth."+a+".token")||JSON.stringify(null==l?void 0:l.token);s=s?JSON.parse(s):"";var c=getSecurityDetailsOptions(a,"client_id"),u={field:"auth."+a+".client_id",fullWidth:!0,initialValue:fromStorage("auth."+a+".client_id")||this.props.clientId||(null==l?void 0:l.client_id),initValue:fromStorage("auth."+a+".client_id")||this.props.clientId||(null==l?void 0:l.client_id),placeholder:"Your OAuth2 app Client ID"};return React.createElement(React.Fragment,null,React.createElement(FormWrapper,null,React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client ID:"),c?React.createElement(FormDropdown,__assign({},u,{options:c})):React.createElement(FormTextField,__assign({},u,{type:"password"}))),React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client Secret:"),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:"auth."+a+".client_secret",initialValue:fromStorage("auth."+a+".client_secret")||(null==l?void 0:l.client_secret)})),React.createElement(FormTextField,{fullWidth:!0,field:"auth."+a+".token",type:"hidden",initialValue:s,validate:validateToken}),React.createElement(Scope,{id:a,scopes:i})),React.createElement(Button,{color:"primary",onClick:this.requestToken,blinking:t},t?"Loading...":"Request Token"),React.createElement(FormHeader,null," Access Token "),r?React.createElement(FormError,{style:{marginBottom:"1em"}},"Failed to request token: ",React.createElement("pre",null,r)," "):this.values.token&&this.values.token.access_token?React.createElement(TokenField,null,React.createElement(TokenValue,{length:this.values.token.access_token.length,masked:o},this.values.token.access_token),React.createElement(TokenShowHide,{onClick:this.toggleTokenMask},o?"Show":"Hide"," "),React.createElement(TokenClear,{onClick:this.clearToken}," Clear ")):React.createElement(FormError,{style:{marginBottom:"1em"}},"No token"))}}),t}(React.Component);export{OAuth2TokenInput};export default OAuth2TokenInput;
|
|
2
2
|
//# sourceMappingURL=OAuth2TokenInput.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { FormApi, FormState } from 'informed';
|
|
3
3
|
import { SecurityScheme } from '../../redoc-lib';
|
|
4
|
+
import { SecurityDetails } from '../../utils';
|
|
4
5
|
export interface OpenIDConnectProps {
|
|
5
6
|
server: string;
|
|
6
7
|
authCorsProxyUrl: Maybe<string>;
|
|
@@ -9,5 +10,6 @@ export interface OpenIDConnectProps {
|
|
|
9
10
|
formApi: FormApi;
|
|
10
11
|
scheme: SecurityScheme;
|
|
11
12
|
clientId?: string;
|
|
13
|
+
defaultValues?: SecurityDetails;
|
|
12
14
|
}
|
|
13
15
|
export declare function OpenIDConnect(props: OpenIDConnectProps): JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter,__generator,__makeTemplateObject}from"tslib";import*as React from"react";import{styled}from"../../redoc-lib";import{discoverOpenIDConnect}from"../../services/OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import{LinearProgress}from"../common/LinearProgress";import{FormError}from"../common/form";export function OpenIDConnect(e){var t,r=this,n=e.scheme,o=React.useState({}),a
|
|
1
|
+
import{__awaiter,__generator,__makeTemplateObject}from"tslib";import*as React from"react";import{styled}from"../../redoc-lib";import{discoverOpenIDConnect}from"../../services/OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import{LinearProgress}from"../common/LinearProgress";import{FormError}from"../common/form";export function OpenIDConnect(e){var t,r=this,n=e.scheme,o=e.defaultValues,a=React.useState({}),l=a[0],c=a[1],i=React.useState(),m=i[0],s=i[1],u=React.useState(!1),p=u[0],d=u[1];React.useEffect((function(){f(n.openIdConnectUrl)}),[n.openIdConnectUrl]);var f=function(e){return __awaiter(r,void 0,void 0,(function(){var t,r;return __generator(this,(function(n){switch(n.label){case 0:d(!0),s(""),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,discoverOpenIDConnect(e)];case 2:return t=n.sent(),c(t),[3,4];case 3:return r=n.sent(),s(r.message),[3,4];case 4:return d(!1),[2]}}))}))};return React.createElement("div",null,p?React.createElement("div",null,React.createElement("div",null,"Fetching OpenID Connect metadata..."),React.createElement(LinearProgress,null)):React.createElement("div",null,m?React.createElement(FormError,null,m):(null===(t=null==l?void 0:l.response_types_supported)||void 0===t?void 0:t.includes("token"))?React.createElement(React.Fragment,null,React.createElement(FlowName,null,"OAuth2 Implicit Flow"),React.createElement(OAuth2Flow,{key:e.id,authorizationUrl:l.authorization_endpoint,authCorsProxyUrl:e.authCorsProxyUrl,scopes:l.scopes_supported,server:e.server,id:e.id,form:e.form,formApi:e.formApi,clientId:e.clientId,flow:"implicit",defaultValues:o})):React.createElement("div",null,"Unsupported flow")))}var templateObject_1,FlowName=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n margin-top: 5px;\n margin-bottom: 10px;\n"],["\n margin-top: 5px;\n margin-bottom: 10px;\n"])));
|
|
2
2
|
//# sourceMappingURL=OpenIDConnect.js.map
|
|
@@ -9,4 +9,4 @@ export declare enum SchemaType {
|
|
|
9
9
|
ARRAY = "array",
|
|
10
10
|
OBJECT = "object"
|
|
11
11
|
}
|
|
12
|
-
export declare function OperationParameters(
|
|
12
|
+
export declare function OperationParameters({ values, operation }: OperationParametersProps): JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__spreadArray}from"tslib";import*as React from"react";import{dottedString,get}from"../../utils";import{FormLabel,FormControl,FormWarning,GroupLabel,Table}from"../common/form";import{FormTextField}from"../common/TextField";import{ParameterEnumDropdown}from"./ParameterDropdown";export var SchemaType;!function(e){e.ARRAY="array",e.OBJECT="object"}(SchemaType||(SchemaType={}));var placeholder=function(e){return"("+e.schema.type+")"+(e.example?" "+e.example:"")};function safePush(e,a,r){e[a]||(e[a]=[]),e[a].push(r)}function orderParams(e){var a={};return e.forEach((function(e){safePush(a,e.in,e)})),a}var PARAM_PLACES=["path","query","cookie","header"];function createValidator(e){return function(a){if(e.required&&!a)return"Field is required";if(e.required&&e.schema.type===SchemaType.ARRAY&&Array.isArray(a)){if(a.length>(e.schema.rawSchema&&e.schema.rawSchema.maxItems||1/0))return"Too many items selected, maximum "+e.schema.rawSchema.maxItems;if(a.length<(e.schema.rawSchema&&e.schema.rawSchema.minItems||0)){var r=e.schema.rawSchema.minItems;return"You should select at least "+(1===r?r+" item":r+" items")}}}}function getInitialValue(e){if(e.schema.type===SchemaType.ARRAY){var a=e.schema.default||e.schema.example;if(!a&&e.schema.rawSchema.items){if(e.schema.rawSchema.items.default)return[e.schema.rawSchema.items.default];if(e.schema.rawSchema.items.example)return[e.schema.rawSchema.items.example]}return a||[]}return e.schema.default||e.schema.example}export function OperationParameters(e){function
|
|
1
|
+
import{__spreadArray}from"tslib";import*as React from"react";import{dottedString,get}from"../../utils";import{FormLabel,FormControl,FormWarning,GroupLabel,Table}from"../common/form";import{FormTextField}from"../common/TextField";import{ParameterEnumDropdown}from"./ParameterDropdown";export var SchemaType;!function(e){e.ARRAY="array",e.OBJECT="object"}(SchemaType||(SchemaType={}));var placeholder=function(e){return"("+e.schema.type+")"+(e.example?" "+e.example:"")};function safePush(e,a,r){e[a]||(e[a]=[]),e[a].push(r)}function orderParams(e){var a={};return e.forEach((function(e){safePush(a,e.in,e)})),a}var PARAM_PLACES=["path","query","cookie","header"];function createValidator(e){return function(a){if(e.required&&!a)return"Field is required";if(e.required&&e.schema.type===SchemaType.ARRAY&&Array.isArray(a)){if(a.length>(e.schema.rawSchema&&e.schema.rawSchema.maxItems||1/0))return"Too many items selected, maximum "+e.schema.rawSchema.maxItems;if(a.length<(e.schema.rawSchema&&e.schema.rawSchema.minItems||0)){var r=e.schema.rawSchema.minItems;return"You should select at least "+(1===r?r+" item":r+" items")}}}}function getInitialValue(e){if(e.schema.type===SchemaType.ARRAY){var a=e.schema.default||e.schema.example;if(!a&&e.schema.rawSchema.items){if(e.schema.rawSchema.items.default)return[e.schema.rawSchema.items.default];if(e.schema.rawSchema.items.example)return[e.schema.rawSchema.items.example]}return a||[]}return e.schema.default||e.schema.example}export function OperationParameters(e){var a=e.values;function r(e,t,m){var n,c=m?dottedString(m,e.name):e.name,i=function(e){var a=e.oneOfType,r=e.type,t=e.items;return a||r===SchemaType.ARRAY&&(null==t?void 0:t.type)===SchemaType.OBJECT&&"Array of objects"}(e.schema);if(i&&console.warn('Unsupported parameter definition: "'+i+'"'),e.schema.type===SchemaType.OBJECT)return null===(n=e.schema.fields)||void 0===n?void 0:n.map((function(e){return r(e,t,c)}));var o=m?[t,m]:[e.in],l=dottedString.apply(void 0,__spreadArray(__spreadArray([],o,!1),[e.name],!1));return React.createElement(FormControl,{key:l},React.createElement(FormLabel,{required:e.required},c,":"),i?React.createElement(FormWarning,null,"Unsupported field schema definition"):function(e,r){var t=React.useMemo((function(){return createValidator(r)}),[r]),m=Array.isArray(r.schema.enum)&&r.schema.enum.length?r.schema.enum:void 0,n=getInitialValue(r);return m?React.createElement(FormControl,null,React.createElement(ParameterEnumDropdown,{initValue:n,paramEnum:m,field:e})):React.createElement(FormTextField,{fullWidth:!0,"data-cy":"parameter-input",id:e,field:e,placeholder:placeholder(r),validate:t,initialValue:n||get(a,e),validateOnBlur:!0,validateOnChange:!0})}(l,e))}var t=orderParams(e.operation.parameters||[]);return React.createElement(Table,null,PARAM_PLACES.map((function(e){return function(e,a){return a&&a.length?React.createElement(React.Fragment,{key:e},React.createElement(FormControl,null,React.createElement(GroupLabel,null," # ",e," parameters "),React.createElement("span",null," ")),a.map((function(a){return r(a,e)}))):null}(e,t[e])})))}
|
|
2
2
|
//# sourceMappingURL=OperationParameters.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _this=this;import{__assign,__awaiter,__generator,__rest}from"tslib";import*as React from"react";import{useEffect}from"react";import{observer}from"mobx-react";import merge from"deepmerge";import{DropdownOrLabel,Dropdown,MediaTypesSwitch}from"../../redoc-lib";import CodemirrorInput from"./CodemirrorInput";import{RequestMimeLabel}from"./RequestMimeLabel";import{ExampleSwitch,useExampleKey}from"../Samples";import{arrayMerge}from"../../services/utils";import{
|
|
1
|
+
var _this=this;import{__assign,__awaiter,__generator,__rest}from"tslib";import*as React from"react";import{useEffect}from"react";import{observer}from"mobx-react";import merge from"deepmerge";import{DropdownOrLabel,Dropdown,MediaTypesSwitch}from"../../redoc-lib";import CodemirrorInput from"./CodemirrorInput";import{RequestMimeLabel}from"./RequestMimeLabel";import{ExampleSwitch,useExampleKey}from"../Samples";import{arrayMerge}from"../../services/utils";import{RequestBodyForm}from"./RequestBodyForm";import{isRootFileUpload}from"../common/FileUpload/helper";import{MediaTypes}from"../../models";export var RequestBody=observer((function(e){var r,o,t=e.properties,a=void 0===t?{}:t,i=__rest(e,["properties"]),n=function(e){var r,o=i.body.content;if(!o||!o.hasSample)return"";var t=null===(r=o.active)||void 0===r?void 0:r.examples;if(!(null==t?void 0:t[e]))return"";var n=merge(null==t?void 0:t[e].value,a,{arrayMerge:arrayMerge});return JSON.stringify(n,null,2)},l=null===(o=null===(r=i.body.content)||void 0===r?void 0:r.operation)||void 0===o?void 0:o.activeExampleName,m=function(e){var r,o;null===(o=null===(r=i.body.content)||void 0===r?void 0:r.operation)||void 0===o||o.activateExampleName(e),i.console.formApi.setValue("body",n(e))},d=function(e){if(!e)return"";if("application/x-www-form-urlencoded"===e.mime)return e.value;var r=merge(e.value,a,{arrayMerge:arrayMerge});return JSON.stringify(r,null,2)},p=function(e,r){return __awaiter(void 0,void 0,void 0,(function(){var o;return __generator(this,(function(t){return o=i.console.formApi,(0,o.setValue)("body."+e,r),[2]}))}))};useEffect((function(){l&&i.console.formApi.setValue("body",n(l))}),[l]);var u=i.validate,c=i.body;return React.createElement(React.Fragment,null,React.createElement(MediaTypesSwitch,{content:c.content,renderDropdown:function(e){return React.createElement(DropdownOrLabel,__assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel,Dropdown:Dropdown}))}},(function(e){var r,o=e.examples||{},t=Object.keys(o);i.resolvedBody&&(r=(i.resolvedBody.content[e.name]||{}).schema);var a=isRootFileUpload(r,e.name)||e.name===MediaTypes.MULTIPART||e.name===MediaTypes.URL_ENCODED,n=useExampleKey(e.operation,o).exampleKey,l=o[n];return React.createElement(React.Fragment,null,t.length&&1!==t.length&&React.createElement(ExampleSwitch,{examples:o,onChange:m,exampleKey:n})||null,a?React.createElement(RequestBodyForm,{schema:r,mediaType:e,onChange:p.bind(_this)}):React.createElement(CodemirrorInput,{id:"body"+i.id,field:"body",initialValue:d(l),schema:r,mode:e.name,validate:u}))})))}));
|
|
2
2
|
//# sourceMappingURL=RequestBody.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MediaTypeModel, OpenAPISchema } from '../../redoc-lib';
|
|
3
|
+
export declare function RequestBodyForm(props: {
|
|
4
|
+
schema: OpenAPISchema;
|
|
5
|
+
mediaType: MediaTypeModel;
|
|
6
|
+
onChange: React.ChangeEventHandler<HTMLInputElement>;
|
|
7
|
+
}): JSX.Element | null;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__makeTemplateObject}from"tslib";import*as React from"react";import{isMultipartFileUploadProperty,isRootFileUpload,mimeTypeToAccept}from"../common/FileUpload/helper";import{FormControl,FormLabel}from"../common/form";import{styled}from"../../redoc-lib";import{FileUpload}from"../common/FileUpload";import{FormTextField,invertedInputStyles}from"../common/TextField";import{DefinitionTypes,MediaTypes}from"../../models";export function RequestBodyForm(e){var t=e.schema,o=void 0===t?{}:t,l=e.mediaType,n=e.onChange,a=o.properties||{};return isRootFileUpload(o,l.name)?React.createElement(FileFormControlWrapper,null,React.createElement(FormControl,null,React.createElement(StyledFileUpload,{fullWidth:!0,id:"body."+l.name,name:"body."+l.name,accept:mimeTypeToAccept(l.name),schema:o,contentName:l.name,onChange:n}))):o.type===DefinitionTypes.OBJECT&&a?React.createElement(FileFormControlWrapper,null,Object.entries(a).map((function(e){var t=e[0],a=e[1],m=l.name===MediaTypes.MULTIPART&&isMultipartFileUploadProperty(a),r=a.contentMediaType||"",i=m?React.createElement(StyledFileUpload,{fullWidth:!0,id:"body."+t,name:"body."+t,accept:mimeTypeToAccept(r),multiple:"array"===a.type,schema:o,contentName:t,onChange:n}):React.createElement(FormTextField,{fullWidth:!0,id:"body."+t,field:"body."+t,placeholder:a.description||t});return React.createElement(FormControl,{key:t},React.createElement(FormLabel,null,t,":"),i)}))):(console.warn('Invalid schema for request body and mime type: "'+l.name+'"',o),null)}var templateObject_1,templateObject_2,FileFormControlWrapper=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n > div {\n margin-top: 10px;\n }\n"],["\n > div {\n margin-top: 10px;\n }\n"]))),StyledFileUpload=styled(FileUpload)(templateObject_2||(templateObject_2=__makeTemplateObject(["\n ","\n ",";\n ","\n"],["\n ","\n ",";\n ","\n"])),invertedInputStyles,(function(e){return"password"===e.inputType?"padding-right: 40px;":""}),(function(e){return e.fullWidth?"width: 100%;":""}));
|
|
2
|
+
//# sourceMappingURL=RequestBodyForm.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export interface
|
|
3
|
-
body?:
|
|
2
|
+
export interface OpenApiResponseData {
|
|
3
|
+
body?: GenericObject;
|
|
4
4
|
data: string;
|
|
5
5
|
ok: boolean;
|
|
6
6
|
status: number;
|
|
@@ -9,9 +9,9 @@ export interface SwaggerResponse {
|
|
|
9
9
|
parseError?: Error;
|
|
10
10
|
}
|
|
11
11
|
export interface ResponsePanelProps {
|
|
12
|
-
response?:
|
|
12
|
+
response?: OpenApiResponseData;
|
|
13
13
|
error?: Error & {
|
|
14
|
-
response?:
|
|
14
|
+
response?: OpenApiResponseData;
|
|
15
15
|
};
|
|
16
16
|
time?: number;
|
|
17
17
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{JsonViewer,styled,SourceCodeWithCopy,langFromMime}from"../../redoc-lib";import{StyledPre}from"../../redoc-lib/src/common-elements";var templateObject_1,templateObject_2,templateObject_3,templateObject_4,templateObject_5,templateObject_6,templateObject_7,templateObject_8,ResponseBadges=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n margin-bottom: 10px;\n"],["\n margin-bottom: 10px;\n"]))),ResponseBadgeBase=styled.div(templateObject_2||(templateObject_2=__makeTemplateObject(["\n display: inline-block;\n margin-right: 20px;\n padding: 2px 0;\n text-align: center;\n color: ",";\n"],["\n display: inline-block;\n margin-right: 20px;\n padding: 2px 0;\n text-align: center;\n color: ",";\n"])),(function(e){return e.theme.colors.text.light})),ResponseBadge=styled(ResponseBadgeBase)(templateObject_3||(templateObject_3=__makeTemplateObject(["\n color: ",";\n"],["\n color: ",";\n"])),(function(e){var t=e.theme,n=e.code;return n>=200&&n<300?t.colors.responses.success.tabTextColor:n>=300&&n<400?t.colors.responses.redirect.tabTextColor:n>400?t.colors.responses.error.tabTextColor:t.colors.responses.info.tabTextColor})),HeaderName=styled.strong(templateObject_4||(templateObject_4=__makeTemplateObject(["\n text-transform: capitalize;\n display: inline-block;\n padding-right: 5px;\n"],["\n text-transform: capitalize;\n display: inline-block;\n padding-right: 5px;\n"]))),ErrorHeader=styled.header(templateObject_5||(templateObject_5=__makeTemplateObject(["\n font-weight: bold;\n margin-bottom: 10px;\n"],["\n font-weight: bold;\n margin-bottom: 10px;\n"]))),ErrorDetails=styled.code(templateObject_6||(templateObject_6=__makeTemplateObject(["\n border-left: 3px solid #ff4040;\n padding-left: 5px;\n"],["\n border-left: 3px solid #ff4040;\n padding-left: 5px;\n"]))),ResponseHeader=styled.div(templateObject_7||(templateObject_7=__makeTemplateObject(["\n margin-bottom: 10px;\n\n &:not(:first-child) {\n margin-top: 10px;\n }\n"],["\n margin-bottom: 10px;\n\n &:not(:first-child) {\n margin-top: 10px;\n }\n"]))),PanelStyledPre=styled(StyledPre)(templateObject_8||(templateObject_8=__makeTemplateObject(["\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n"],["\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n"]))),ResponsePanel=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,n=t.error,a=t.response,l=t.time,r=a||n&&n.response,o=r&&r.data&&r.data.length||0;if(e=o>1e6?(o/1e6).toFixed(2)+" MB":o>1e3?(o/1e3).toFixed(2)+" KB":o+" B",n&&!n.response||!r)return React.createElement(React.Fragment,null,React.createElement(ErrorHeader,null," Could not get any response "),React.createElement(ErrorDetails,null,n&&n.message||"Unknown error"),React.createElement("br",null),React.createElement(ErrorHeader,null," Why this might have happened:"),React.createElement("div",null," - CORS is misconfigured on the server"),React.createElement("div",null," - The server couldn't sent a response"),React.createElement("div",null," - No internet access"),React.createElement("div",null," - Documentation issue - contact API owner"),React.createElement("div",null," - Misconfigured security definition"));if(!r)return"Something went wrong";var c=Object.keys(r.headers);return React.createElement(React.Fragment,null,React.createElement(ResponseBadges,null,React.createElement(ResponseBadge,{code:r.status},React.createElement("span",null," Status: "),r.status," ",r.statusText),React.createElement(ResponseBadgeBase,null,React.createElement("span",null," Time: "),l,"ms"),React.createElement(ResponseBadgeBase,null,React.createElement("span",null," Size: "),e)),React.createElement("div",null,React.createElement(ResponseHeader,null," Headers: "),React.createElement(PanelStyledPre,null,c.map((function(e){return React.createElement("div",{key:e},React.createElement(HeaderName,null,e,":"),React.createElement("code",null," ",r.headers[e]))}))),React.createElement(ResponseHeader,null," Body: "),r.body&&React.createElement(JsonViewer,{data:r.body})||null,!r.body&&null!=r.data&&(r.data?React.createElement(SourceCodeWithCopy,{lang:langFromMime(r.headers["Content-Type"]||"text/plain"),source:r.data}):React.createElement(PanelStyledPre,null,React.createElement("i",null,"(no content)")))||null))}}),t}(React.PureComponent);export{ResponsePanel};
|
|
1
|
+
import{__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{JsonViewer,styled,SourceCodeWithCopy,langFromMime}from"../../redoc-lib";import{StyledPre}from"../../redoc-lib/src/common-elements";var templateObject_1,templateObject_2,templateObject_3,templateObject_4,templateObject_5,templateObject_6,templateObject_7,templateObject_8,ResponseBadges=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n margin-bottom: 10px;\n"],["\n margin-bottom: 10px;\n"]))),ResponseBadgeBase=styled.div(templateObject_2||(templateObject_2=__makeTemplateObject(["\n display: inline-block;\n margin-right: 20px;\n padding: 2px 0;\n text-align: center;\n color: ",";\n"],["\n display: inline-block;\n margin-right: 20px;\n padding: 2px 0;\n text-align: center;\n color: ",";\n"])),(function(e){return e.theme.colors.text.light})),ResponseBadge=styled(ResponseBadgeBase)(templateObject_3||(templateObject_3=__makeTemplateObject(["\n color: ",";\n"],["\n color: ",";\n"])),(function(e){var t=e.theme,n=e.code;return n>=200&&n<300?t.colors.responses.success.tabTextColor:n>=300&&n<400?t.colors.responses.redirect.tabTextColor:n>400?t.colors.responses.error.tabTextColor:t.colors.responses.info.tabTextColor})),HeaderName=styled.strong(templateObject_4||(templateObject_4=__makeTemplateObject(["\n text-transform: capitalize;\n display: inline-block;\n padding-right: 5px;\n"],["\n text-transform: capitalize;\n display: inline-block;\n padding-right: 5px;\n"]))),ErrorHeader=styled.header(templateObject_5||(templateObject_5=__makeTemplateObject(["\n font-weight: bold;\n margin-bottom: 10px;\n"],["\n font-weight: bold;\n margin-bottom: 10px;\n"]))),ErrorDetails=styled.code(templateObject_6||(templateObject_6=__makeTemplateObject(["\n border-left: 3px solid #ff4040;\n padding-left: 5px;\n"],["\n border-left: 3px solid #ff4040;\n padding-left: 5px;\n"]))),ResponseHeader=styled.div(templateObject_7||(templateObject_7=__makeTemplateObject(["\n margin-bottom: 10px;\n\n &:not(:first-child) {\n margin-top: 10px;\n }\n"],["\n margin-bottom: 10px;\n\n &:not(:first-child) {\n margin-top: 10px;\n }\n"]))),PanelStyledPre=styled(StyledPre)(templateObject_8||(templateObject_8=__makeTemplateObject(["\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n"],["\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n"]))),ResponsePanel=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,n=t.error,a=t.response,l=t.time,r=a||n&&n.response,o=r&&r.data&&r.data.length||0;if(e=o>1e6?(o/1e6).toFixed(2)+" MB":o>1e3?(o/1e3).toFixed(2)+" KB":o+" B",n&&!n.response||!r)return React.createElement(React.Fragment,null,React.createElement(ErrorHeader,null," Could not get any response "),React.createElement(ErrorDetails,null,n&&n.message||"Unknown error"),React.createElement("br",null),React.createElement(ErrorHeader,null," Why this might have happened:"),React.createElement("div",null," - CORS is misconfigured on the server"),React.createElement("div",null," - ","The server couldn't sent a response"),React.createElement("div",null," - No internet access"),React.createElement("div",null," - Documentation issue - contact API owner"),React.createElement("div",null," - Misconfigured security definition"));if(!r)return"Something went wrong";var c=Object.keys(r.headers);return React.createElement(React.Fragment,null,React.createElement(ResponseBadges,null,React.createElement(ResponseBadge,{code:r.status},React.createElement("span",null," Status: "),r.status," ",r.statusText),React.createElement(ResponseBadgeBase,null,React.createElement("span",null," Time: "),l,"ms"),React.createElement(ResponseBadgeBase,null,React.createElement("span",null," Size: "),e)),React.createElement("div",null,React.createElement(ResponseHeader,null," Headers: "),React.createElement(PanelStyledPre,null,c.map((function(e){return React.createElement("div",{key:e},React.createElement(HeaderName,null,e,":"),React.createElement("code",null," ",r.headers[e]))}))),React.createElement(ResponseHeader,null," Body: "),r.body&&React.createElement(JsonViewer,{data:r.body})||null,!r.body&&null!=r.data&&(r.data?React.createElement(SourceCodeWithCopy,{lang:langFromMime(r.headers["Content-Type"]||"text/plain"),source:r.data}):React.createElement(PanelStyledPre,null,React.createElement("i",null,"(no content)")))||null))}}),t}(React.PureComponent);export{ResponsePanel};
|
|
2
2
|
//# sourceMappingURL=ResponsePanel.js.map
|
|
@@ -22,4 +22,4 @@ export declare class ServerChooser extends React.Component<ServerDropdownProps,
|
|
|
22
22
|
componentDidMount(): void;
|
|
23
23
|
render(): JSX.Element;
|
|
24
24
|
}
|
|
25
|
-
export declare function expandVariables(url: string, variables?:
|
|
25
|
+
export declare function expandVariables(url: string, variables?: GenericObject): string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__decorate,__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{Dropdown,styled}from"../../redoc-lib";import{observer}from"mobx-react";import{fromStorage,toStorage}from"../../utils";import ServerVariable from"./ServerVariable";import{FormControl,FormLabel}from"../common/form";var ServerDropdownWrap=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n margin-top: 20px;\n"],["\n margin-top: 20px;\n"]))),ServerChooser=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeIdx:0,variables:{}}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var a=r.props.operation.servers.find((function(r){return r.url===e.serverUrl})),t=a&&getVariables(a)||{};r.props.onChange({url:e.serverUrl,variables:t}),toStorage("serverUrl",e.serverUrl),r.setState({variables:t})}}),Object.defineProperty(r,"handleVariableChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,a){var t,n,o=__assign(__assign({},r.state.variables),((t={})[e]=a,t));r.setState({variables:o});var i=fromStorage("variables"),
|
|
1
|
+
import{__assign,__decorate,__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{Dropdown,styled}from"../../redoc-lib";import{observer}from"mobx-react";import{fromStorage,toStorage}from"../../utils";import ServerVariable from"./ServerVariable";import{FormControl,FormLabel}from"../common/form";var ServerDropdownWrap=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n margin-top: 20px;\n"],["\n margin-top: 20px;\n"]))),ServerChooser=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeIdx:0,variables:{}}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var a=r.props.operation.servers.find((function(r){return r.url===e.serverUrl})),t=a&&getVariables(a)||{};r.props.onChange({url:e.serverUrl,variables:t}),toStorage("serverUrl",e.serverUrl),r.setState({variables:t})}}),Object.defineProperty(r,"handleVariableChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,a){var t,n,o=__assign(__assign({},r.state.variables),((t={})[e]=a,t));r.setState({variables:o});var i=fromStorage("variables"),l=i&&JSON.parse(i)||{};toStorage("variables",JSON.stringify(__assign(__assign({},l),((n={})[e]=a,n))));var s=r.props.operation.servers[r.state.activeIdx];r.props.onChange(__assign(__assign({},s),{variables:o}))}}),r}return __extends(r,e),Object.defineProperty(r,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var r=e.operation,a=fromStorage("serverUrl"),t=r.servers.findIndex((function(e){return e.url===a}));return{activeIdx:t<0?0:t}}}),Object.defineProperty(r.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props.operation.servers[this.state.activeIdx],r=getVariables(e);this.props.onChange(__assign(__assign({},e),{variables:r})),this.setState({variables:r})}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,r=this.state.activeIdx,a=this.props.operation.servers.map((function(r){return{serverUrl:r.url,value:"\n "+expandDefaultServerVariables(expandVariables(r.url,e.state.variables),r.variables)+"\n - "+(r.description||"Default")+"\n "}})),t=Object.keys(this.state.variables);return React.createElement(ServerDropdownWrap,null,React.createElement(FormLabel,{htmlFor:"server"},"Target server: "),React.createElement(FormControl,null,React.createElement(Dropdown,{openUp:!0,variant:"dark",value:a[r].value,options:a,onChange:this.handleChange})),t.length?t.map((function(r){var a=e.props.operation.servers[e.state.activeIdx].variables[r];return React.createElement(ServerVariable,{key:r,name:r,value:e.state.variables[r],defaultValue:a.default,onChange:function(a){return e.handleVariableChange(r,a)},variableEnum:a.enum,description:a.description})})):null)}}),r=__decorate([observer],r)}(React.Component);export{ServerChooser};var templateObject_1,pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,a){return r[a]||e}))}function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,a){return r[a]&&r[a].default||e}))}function getVariables(e){if(!e.variables)return{};var r=fromStorage("variables"),a=r&&JSON.parse(r)||{},t={};return Object.keys(e.variables).forEach((function(r){t[r]=e.variables[r].default||"",Object.prototype.hasOwnProperty.call(a,r)&&(t[r]=a[r])})),__assign({},t)}
|
|
2
2
|
//# sourceMappingURL=ServerDropdown.js.map
|
|
@@ -9,3 +9,4 @@ export { ToggleRightPanelButton, ControlsWrap, ChangeViewButton, BackgroundStub,
|
|
|
9
9
|
export { TextField } from './common/TextField';
|
|
10
10
|
export { Checkbox } from './common/Checkbox';
|
|
11
11
|
export { FormControl, FormLabel, FormError } from './common/form';
|
|
12
|
+
export { OpenApiResponseData } from './console/ResponsePanel';
|
package/lib-esm/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export * from './components';
|
|
|
2
2
|
export * from './services';
|
|
3
3
|
export * from './redoc-lib';
|
|
4
4
|
export * from './models';
|
|
5
|
-
export { setSecurityDetails, setSecurityDetailsVariants, setParameterValue } from './utils';
|
|
5
|
+
export { setSecurityDetails, setSecurityDetailsVariants, setParameterValue, SecurityDetails, } from './utils';
|
|
6
6
|
export type { OAuth2 } from './services/OAuth2';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare enum DefinitionTypes {
|
|
2
|
+
STRING = "string",
|
|
3
|
+
ARRAY = "array",
|
|
4
|
+
OBJECT = "object"
|
|
5
|
+
}
|
|
6
|
+
export declare enum FileUploadFormats {
|
|
7
|
+
BYTE = "byte",
|
|
8
|
+
BASE64 = "base64",
|
|
9
|
+
BINARY = "binary"
|
|
10
|
+
}
|
|
11
|
+
export declare enum MediaTypes {
|
|
12
|
+
OCTET_STREAM = "application/octet-stream",
|
|
13
|
+
MULTIPART = "multipart/form-data",
|
|
14
|
+
URL_ENCODED = "application/x-www-form-urlencoded"
|
|
15
|
+
}
|
|
16
|
+
export declare type UploadFileType = File | File[] | string | string[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export var DefinitionTypes;!function(e){e.STRING="string",e.ARRAY="array",e.OBJECT="object"}(DefinitionTypes||(DefinitionTypes={}));export var FileUploadFormats;!function(e){e.BYTE="byte",e.BASE64="base64",e.BINARY="binary"}(FileUploadFormats||(FileUploadFormats={}));export var MediaTypes;!function(e){e.OCTET_STREAM="application/octet-stream",e.MULTIPART="multipart/form-data",e.URL_ENCODED="application/x-www-form-urlencoded"}(MediaTypes||(MediaTypes={}));
|
|
2
|
+
//# sourceMappingURL=file-upload.js.map
|
package/lib-esm/models/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export*from"./code-sample-options";
|
|
1
|
+
export*from"./code-sample-options";export*from"./file-upload";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { FieldModel } from '../services';
|
|
2
3
|
interface LinkToFieldProps {
|
|
3
4
|
field: FieldModel;
|
|
4
5
|
className?: string;
|
|
5
6
|
children?: any;
|
|
6
7
|
}
|
|
7
|
-
export declare const LinkToField: (props: LinkToFieldProps) =>
|
|
8
|
-
export declare const ShareLinkToField: import("styled-components").StyledComponent<(props: LinkToFieldProps) =>
|
|
8
|
+
export declare const LinkToField: (props: LinkToFieldProps) => JSX.Element;
|
|
9
|
+
export declare const ShareLinkToField: import("styled-components").StyledComponent<(props: LinkToFieldProps) => JSX.Element, import("../theme").ResolvedThemeInterface, {}, never>;
|
|
9
10
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__makeTemplateObject}from"tslib";import*as React from"react";import{StoreContext}from"../components
|
|
1
|
+
import{__assign,__makeTemplateObject}from"tslib";import*as React from"react";import{StoreContext}from"../components";import styled from"../styled-components";import{SECTION_ATTR}from"../services/constants";import{isModifiedEvent,linkifyMixin}from"./linkify";import{constructFieldDeepFragment}from"../../../services/history/helpers";export var LinkToField=function(e){var n,i,t,o=React.useContext(StoreContext),r=React.useState(!1),l=r[0],a=r[1],s=(null==o?void 0:o.menu.history.linkForId(null===(i=e.field.deps.operation)||void 0===i?void 0:i.id))||"",p=constructFieldDeepFragment(e.field),c=o&&p?o.menu.history.generateDeepLink(p,s):null,d=o?((n={})[SECTION_ATTR]=(null===(t=e.field.deps.operation)||void 0===t?void 0:t.id)+o.options.deepLinkPrefix+p,n.id=c&&c.split("#")[1]||void 0,n):null;return React.useEffect((function(){if(o&&d)return a(o.menu.history.currentId===d[SECTION_ATTR]),o.menu.history.subscribe((function(e){a(e===d[SECTION_ATTR])}))}),[null==o?void 0:o.menu.history,null==d?void 0:d[SECTION_ATTR]]),p&&o&&c?React.createElement("a",__assign({className:e.className+(l?" active":""),href:c,onClick:function(e){return function(e,n,i){n.defaultPrevented||0!==n.button||isModifiedEvent(n)||(n.preventDefault(),e.replaceForField(i))}(o.menu.history,e,c),e.stopPropagation(),e.preventDefault(),o.options.onDeepLinkClick&&o.options.onDeepLinkClick(c),!1}},d),e.children):e.children||null};export var ShareLinkToField=styled(LinkToField)(templateObject_1||(templateObject_1=__makeTemplateObject(["\n ","\n\n & {\n position: relative;\n left: 0;\n\n margin-left: calc(-12px - 4px);\n padding-top: 10px;\n margin-top: -10px;\n\n .field-name:hover > &::before,\n &:hover::before {\n visibility: visible;\n }\n }\n\n &.active::before {\n visibility: visible;\n }\n"],["\n ","\n\n & {\n position: relative;\n left: 0;\n\n margin-left: calc(-12px - 4px);\n padding-top: 10px;\n margin-top: -10px;\n\n .field-name:hover > &::before,\n &:hover::before {\n visibility: visible;\n }\n }\n\n &.active::before {\n visibility: visible;\n }\n"])),linkifyMixin("&","12px"));var templateObject_1;
|
|
2
2
|
//# sourceMappingURL=LinkToField.js.map
|