@redocly/openapi-docs 3.0.0-alpha.74 → 3.0.0-alpha.76
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/dist/console.redocly-openapi-docs.min.js +163 -180
- package/dist/oauth2-redirect.js +5 -5
- package/dist/redocly-openapi-docs.min.js +1328 -1267
- package/lib/components/Fields/FieldDetails.js +1 -1
- package/lib/components/OperationParameters/OperationParameters.js +1 -1
- package/lib/components/OperationParameters/types.d.ts +0 -1
- package/lib/components/OperationParameters/utils.d.ts +2 -2
- package/lib/components/SeeMore/SeeMore.js +1 -1
- package/lib/components/common/CheckboxList.d.ts +4 -3
- package/lib/components/common/CheckboxList.js +1 -1
- package/lib/components/common/FileUpload/FileUpload.d.ts +1 -1
- package/lib/components/common/FileUpload/FileUpload.js +1 -1
- package/lib/components/common/TextField.d.ts +12 -5
- package/lib/components/common/TextField.js +2 -2
- package/lib/components/rightPanel/ActionPanel.d.ts +3 -4
- package/lib/components/rightPanel/ActionPanel.js +1 -1
- package/lib/components/rightPanel/AuthPanel/AuthPanel.d.ts +1 -1
- package/lib/components/rightPanel/AuthPanel/AuthPanel.js +1 -1
- package/lib/components/rightPanel/AuthPanel/types.d.ts +0 -3
- package/lib/components/rightPanel/CodemirrorInput/CodemirrorInput.d.ts +3 -4
- package/lib/components/rightPanel/CodemirrorInput/CodemirrorInput.js +1 -1
- package/lib/components/rightPanel/CodemirrorInput/helpers.d.ts +6 -1
- package/lib/components/rightPanel/CodemirrorInput/helpers.js +1 -1
- package/lib/components/rightPanel/CodemirrorInput/styled.d.ts +2 -1
- package/lib/components/rightPanel/CodemirrorInput/styled.js +44 -45
- package/lib/components/rightPanel/CodemirrorInput/types.d.ts +3 -14
- package/lib/components/rightPanel/Console/Console.js +1 -1
- package/lib/components/rightPanel/Console/Request.js +1 -1
- package/lib/components/rightPanel/Console/types.d.ts +1 -6
- package/lib/components/rightPanel/OAuth2Flow/OAuth2Flow.d.ts +1 -1
- package/lib/components/rightPanel/OAuth2Flow/OAuth2Flow.js +1 -1
- package/lib/components/rightPanel/OAuth2Flow/types.d.ts +0 -3
- package/lib/components/rightPanel/OAuth2TokenInput.d.ts +2 -8
- package/lib/components/rightPanel/OAuth2TokenInput.js +1 -1
- package/lib/components/rightPanel/OpenIDConnect.d.ts +0 -3
- package/lib/components/rightPanel/OpenIDConnect.js +1 -1
- package/lib/components/rightPanel/ParameterDropdown.d.ts +3 -2
- package/lib/components/rightPanel/ParameterDropdown.js +1 -1
- package/lib/components/rightPanel/RequestBody/Body.js +1 -1
- package/lib/components/rightPanel/RequestBody/RequestBody.js +1 -1
- package/lib/components/rightPanel/RequestBody/types.d.ts +1 -3
- package/lib/components/rightPanel/RequestBodyForm.d.ts +0 -2
- package/lib/components/rightPanel/RequestBodyForm.js +1 -1
- package/lib/components/rightPanel/Scope.js +1 -1
- package/lib/components/rightPanel/ServersDropdown/ServersDropdown.js +1 -1
- package/lib/components/rightPanel/utils.js +1 -1
- package/lib/jotai/app.js +1 -1
- package/lib/testProviders.d.ts +4 -1
- package/lib/testProviders.js +1 -1
- package/lib/utils/saveTextBeforeHeading.js +1 -1
- package/lib-esm/components/Fields/FieldDetails.js +1 -1
- package/lib-esm/components/OperationParameters/OperationParameters.js +1 -1
- package/lib-esm/components/OperationParameters/types.d.ts +0 -1
- package/lib-esm/components/OperationParameters/utils.d.ts +2 -2
- package/lib-esm/components/SeeMore/SeeMore.js +1 -1
- package/lib-esm/components/common/CheckboxList.d.ts +4 -3
- package/lib-esm/components/common/CheckboxList.js +1 -1
- package/lib-esm/components/common/FileUpload/FileUpload.d.ts +1 -1
- package/lib-esm/components/common/FileUpload/FileUpload.js +1 -1
- package/lib-esm/components/common/TextField.d.ts +12 -5
- package/lib-esm/components/common/TextField.js +2 -2
- package/lib-esm/components/rightPanel/ActionPanel.d.ts +3 -4
- package/lib-esm/components/rightPanel/ActionPanel.js +1 -1
- package/lib-esm/components/rightPanel/AuthPanel/AuthPanel.d.ts +1 -1
- package/lib-esm/components/rightPanel/AuthPanel/AuthPanel.js +1 -1
- package/lib-esm/components/rightPanel/AuthPanel/types.d.ts +0 -3
- package/lib-esm/components/rightPanel/CodemirrorInput/CodemirrorInput.d.ts +3 -4
- package/lib-esm/components/rightPanel/CodemirrorInput/CodemirrorInput.js +1 -1
- package/lib-esm/components/rightPanel/CodemirrorInput/helpers.d.ts +6 -1
- package/lib-esm/components/rightPanel/CodemirrorInput/helpers.js +1 -1
- package/lib-esm/components/rightPanel/CodemirrorInput/styled.d.ts +2 -1
- package/lib-esm/components/rightPanel/CodemirrorInput/styled.js +44 -45
- package/lib-esm/components/rightPanel/CodemirrorInput/types.d.ts +3 -14
- package/lib-esm/components/rightPanel/Console/Console.js +1 -1
- package/lib-esm/components/rightPanel/Console/Request.js +1 -1
- package/lib-esm/components/rightPanel/Console/types.d.ts +1 -6
- package/lib-esm/components/rightPanel/OAuth2Flow/OAuth2Flow.d.ts +1 -1
- package/lib-esm/components/rightPanel/OAuth2Flow/OAuth2Flow.js +1 -1
- package/lib-esm/components/rightPanel/OAuth2Flow/types.d.ts +0 -3
- package/lib-esm/components/rightPanel/OAuth2TokenInput.d.ts +2 -8
- package/lib-esm/components/rightPanel/OAuth2TokenInput.js +1 -1
- package/lib-esm/components/rightPanel/OpenIDConnect.d.ts +0 -3
- package/lib-esm/components/rightPanel/OpenIDConnect.js +1 -1
- package/lib-esm/components/rightPanel/ParameterDropdown.d.ts +3 -2
- package/lib-esm/components/rightPanel/ParameterDropdown.js +1 -1
- package/lib-esm/components/rightPanel/RequestBody/Body.js +1 -1
- package/lib-esm/components/rightPanel/RequestBody/RequestBody.js +1 -1
- package/lib-esm/components/rightPanel/RequestBody/types.d.ts +1 -3
- package/lib-esm/components/rightPanel/RequestBodyForm.d.ts +0 -2
- package/lib-esm/components/rightPanel/RequestBodyForm.js +1 -1
- package/lib-esm/components/rightPanel/Scope.js +1 -1
- package/lib-esm/components/rightPanel/ServersDropdown/ServersDropdown.js +1 -1
- package/lib-esm/components/rightPanel/utils.js +1 -1
- package/lib-esm/jotai/app.js +1 -1
- package/lib-esm/testProviders.d.ts +4 -1
- package/lib-esm/testProviders.js +1 -1
- package/lib-esm/utils/saveTextBeforeHeading.js +1 -1
- package/package.json +12 -15
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Request=void 0;const react_1=__importStar(require("react")),
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Request=void 0;const react_1=__importStar(require("react")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),react_hook_form_1=require("react-hook-form"),utils_1=require("../utils"),utils_2=require("../../../utils"),OAuth2_1=require("../../../services/OAuth2"),services_1=require("../../../services"),Panel_1=require("../../Panel"),ServersDropdown_1=require("../ServersDropdown"),TryItPanel_1=require("../TryItPanel"),RequestBody_1=require("../RequestBody"),OperationParameters_1=require("../../OperationParameters"),AuthPanel_1=require("../AuthPanel"),store_1=require("../../../jotai/store"),RenderHook_1=require("../../RenderHook");function RequestComponent({operation:e,properties:r,mergeExampleBody:t,securityDefaults:a,resolvedRawSpec:o,server:n,onServerChange:l}){const{watch:i,formState:u}=(0,react_hook_form_1.useFormContext)(),s=u.errors||{},c=Boolean(s.path||s.cookie||s.header||s.query),{hooks:d,authCorsProxyUrl:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),h=o&&utils_2.JsonPointer.get(o,e.pointer),p=i();let m=p&&p.auth&&Object.keys(p.auth)[0];m&&p.auth[m]||(m=void 0),!m||void 0===p.auth[m].token&&void 0===p.auth[m].client_id&&void 0===p.auth[m].client_secret||p.auth[m].token&&p.auth[m].token.access_token||(m=void 0),m&&null!=p.auth[m].username&&(p.auth[m].username&&p.auth[m].password||(m=void 0));const y=e.parameters||[];return!o&&react_1.default.createElement(react_1.default.Fragment,null,"Loading...")||react_1.default.createElement("form",{style:{flex:1,display:"flex",flexDirection:"column",margin:0}},react_1.default.createElement(ServersDropdown_1.ServersDropdown,{operation:e,onChange:l}),react_1.default.createElement(Panel_1.Accordion,{initialActiveIdx:e.security.length&&m?1:0},e.security.length&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItAuth"),"data-cy":"security-trigger",error:!m&&!!s.auth,success:!!m,renderChildrenHidden:!0},theme_1.OpenApiTryItSecurityPanel||(null==d?void 0:d.ReplaceTryItSecurityPanel)?react_1.default.createElement(AuthPanelWrapper,{fieldName:"auth",validate:utils_1.requiredValidator},(r=>react_1.default.createElement(RenderHook_1.RenderHook,{Hook:theme_1.OpenApiTryItSecurityPanel||(null==d?void 0:d.ReplaceTryItSecurityPanel),props:{server:n,operation:e,onChange:r,OAuth2:OAuth2_1.OAuth2}}))):react_1.default.createElement(AuthPanel_1.AuthPanel,{operation:e,activeServer:n.url,authCorsProxyUrl:_,securityDefaults:a}))||null,e.requestBody&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItBody"),"data-cy":"body-trigger",error:!!s.body,renderChildrenHidden:!0},react_1.default.createElement(RequestBody_1.RequestBody,{validate:allowBodyErrors,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==h?void 0:h.requestBody,properties:r,mergeExampleBody:t}))||null,y.length&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:c,renderChildrenHidden:!0},react_1.default.createElement(OperationParameters_1.OperationParameters,{operation:e,values:p}))||null))}function AuthPanelWrapper({fieldName:e,validate:r,children:t}){const{control:a,setValue:o}=(0,react_hook_form_1.useFormContext)();return react_1.default.createElement(react_hook_form_1.Controller,{control:a,name:e,rules:{validate:r},render:()=>t(o)})}function allowBodyErrors(){}exports.Request=(0,react_1.memo)(RequestComponent);
|
|
2
2
|
//# sourceMappingURL=Request.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { FormApi, FormState } from 'informed';
|
|
2
1
|
import type { OperationModel } from '../../../models';
|
|
3
2
|
import type { SecurityDetails, Server } from '../../../types';
|
|
4
3
|
import type { OpenApiResponseData } from '../types';
|
|
@@ -21,11 +20,7 @@ export interface RequestProps {
|
|
|
21
20
|
properties?: any;
|
|
22
21
|
mergeExampleBody?: boolean;
|
|
23
22
|
securityDefaults: Record<string, string | SecurityDetails> | undefined;
|
|
24
|
-
form: any;
|
|
25
23
|
resolvedRawSpec: any;
|
|
26
24
|
server: Server;
|
|
27
|
-
|
|
28
|
-
setFormApi: (formApi: FormApi) => void;
|
|
29
|
-
handleChange: (formState: FormState) => void;
|
|
30
|
-
handleServerChange: (server: Server) => void;
|
|
25
|
+
onServerChange: (server: Server) => void;
|
|
31
26
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { OAuth2FlowProps } from './types';
|
|
3
|
-
export declare const OAuth2Flow: ({ usePkce,
|
|
3
|
+
export declare const OAuth2Flow: ({ usePkce, id, flow, tokenUrl: _tokenUrl, authCorsProxyUrl, tokenEndpointAuthMethod, server, scopes, authorizationUrl, defaultValues, clientId, }: OAuth2FlowProps) => JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,l
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,l){void 0===l&&(l=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,l,a)}:function(e,t,r,l){void 0===l&&(l=r),e[l]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,l){return new(r||(r=Promise))((function(a,o){function n(e){try{u(l.next(e))}catch(e){o(e)}}function i(e){try{u(l.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(n,i)}u((l=l.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OAuth2Flow=void 0;const react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),react_hook_form_1=require("react-hook-form"),styled_1=require("./styled"),LinearProgress_1=require("../../common/LinearProgress"),form_1=require("../../common/form"),TextField_1=require("../../common/TextField"),Checkbox_1=require("../../common/Checkbox"),OAuth2_1=require("../../../services/OAuth2"),utils_1=require("../../../utils"),utils_2=require("../../../services/utils"),utils_3=require("../utils"),Scope_1=__importDefault(require("../Scope")),Error_1=require("./Error"),store_1=require("../../../jotai/store"),OAuth2Flow=({usePkce:e,id:t,flow:r,tokenUrl:l,authCorsProxyUrl:a,tokenEndpointAuthMethod:o,server:n,scopes:i,authorizationUrl:u,defaultValues:c,clientId:d})=>{var s;const{oAuth2RedirectURI:_,routingBasePath:f}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{setValue:m,getValues:h,trigger:p,formState:g}=(0,react_hook_form_1.useFormContext)(),[v,k]=(0,react_1.useState)(null),[E,C]=(0,react_1.useState)(!1),[O,F]=(0,react_1.useState)(!1),[y,b]=(0,react_1.useState)(void 0),[x,S]=(0,react_1.useState)(void 0),[A,w]=(0,react_1.useState)(void 0),P=(null===(s=h("auth"))||void 0===s?void 0:s[t])||{},j=g.errors||{},T=void 0!==y&&x!==A?{label:"sync",onClick:()=>{y&&S(A)}}:void 0;(0,react_1.useEffect)((()=>{if(e){const e=(0,utils_2.randString)(43);(0,OAuth2_1.deriveCodeChallenge)(e).then((t=>{b(e),S(t),w(t)}))}}),[e]);const q=()=>{m(`auth.${t}.token`,"")};if(!u)return react_1.default.createElement(form_1.FormError,null,"No flow info");let W=(0,utils_1.fromSessionStorage)(`auth.${t}.token`)||JSON.stringify(null==c?void 0:c.token);W=W?JSON.parse(W):"";const D=(0,utils_1.getSecurityDetailsOptions)(t,"client_id"),B={fieldName:`auth.${t}.client_id`,fullWidth:!0,defaultValue:(0,utils_1.fromSessionStorage)(`auth.${t}.client_id`)||d||(null==c?void 0:c.client_id),placeholder:"Your OAuth2 app Client ID",rules:{validate:utils_3.requiredValidator},validateOnBlur:!0,validateOnChange:!0};return react_1.default.createElement("div",null,react_1.default.createElement(form_1.FormWrapper,null,react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Client ID: "),D?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},B,{options:D})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},B,{"data-cy":"client-id-input",panel:"try-it"}))),"authorizationCode"===r&&react_1.default.createElement(react_1.default.Fragment,null,(!(null==e?void 0:e.hideClientSecretInput)||!e)&&react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null,"Client Secret:"),react_1.default.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,fieldName:`auth.${t}.client_secret`,defaultValue:(0,utils_1.fromSessionStorage)(`auth.${t}.client_secret`)||(null==c?void 0:c.client_secret),validateOnBlur:!0,validateOnChange:!0,panel:"try-it","data-cy":"client-secret-input"})),e&&!e.disableManualConfiguration&&react_1.default.createElement(styled_1.PkceOptionsWrapper,null,react_1.default.createElement(Checkbox_1.Checkbox,{id:"pkce-opitons-toggle",label:"Configure PKCE manually",checked:O,onChange:()=>{F((e=>!e))},"data-cy":"pkce-options-toggle"}),O&&react_1.default.createElement(styled_1.PkceDetails,null,react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null,"Code Verifier"),react_1.default.createElement(TextField_1.TextField,{fullWidth:!0,value:y,onChange:({target:{value:e}})=>__awaiter(void 0,void 0,void 0,(function*(){const t=yield(0,OAuth2_1.deriveCodeChallenge)(e);b(e),w(t)})),panel:"try-it","data-cy":"code-verifier-input"})),react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null,"Code Challenge"),react_1.default.createElement(TextField_1.TextField,{fullWidth:!0,value:x,onChange:({target:{value:e}})=>{S(e)},inputActionButton:T,panel:"try-it","data-cy":"code-challenge-input"}))))),react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,fieldName:`auth.${t}.token`,type:"hidden",defaultValue:W,panel:"try-it"}),react_1.default.createElement(Scope_1.default,{id:t,scopes:i}),P.token&&P.token.access_token?react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Access Token: "),react_1.default.createElement(TextField_1.TextField,{disabled:!0,type:"password",fullWidth:!0,value:P.token.access_token,panel:"try-it"})):null),react_1.default.createElement(styled_1.ButtonsWrapper,null,P.token&&P.token.access_token?react_1.default.createElement(theme_1.Button,{fullWidth:!0,onClick:()=>{q(),k(null)}},"Log out"):E?react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(theme_1.Button,{fullWidth:!0,onClick:()=>{C(!1),k(null),OAuth2_1.OAuth2.clearRedirectData(r)}},"Cancel"),react_1.default.createElement(LinearProgress_1.LinearProgress,null)):react_1.default.createElement(theme_1.Button,{fullWidth:!0,disabled:!(0,utils_2.isEmptyObject)(j),onClick:()=>{var i;i=u,__awaiter(void 0,void 0,void 0,(function*(){if(!i)return;if(yield p(),!(0,utils_2.isEmptyObject)(j))return;C(!0),k(null);const u=a?a+(0,utils_3.normalizeUrlProtocol)(i):i,c=a&&l?a+(0,utils_3.normalizeUrlProtocol)(l):l,d=h(`auth.${t}.scopes`),s={authorizationUrl:u.startsWith("http")?u:n+u,clientId:P.client_id,scopes:d,redirectUri:_,routingBasePath:f,successCallback:e=>{m(`auth.${t}.token`,e),C(!1),k(null)},errorCallback:e=>{C(!1),k((null==e?void 0:e.message)||"Failed to retrieve the access token")}};"implicit"===r&&OAuth2_1.OAuth2.authorizeImplicit(s),(0,utils_3.validateTokenEndpointMethod)(o)?"authorizationCode"===r&&OAuth2_1.OAuth2.authorizeAuthorizationCode(Object.assign(Object.assign(Object.assign({},s),{tokenUrl:(null==c?void 0:c.startsWith("http"))?c:n+c,clientSecret:P.client_secret,extraHeaders:(0,utils_3.getOAuth2TokenEndpointAuthHeader)({authMethod:o,clientId:P.client_id,clientSecret:P.client_secret})}),e&&{codeVerifier:y,codeChallenge:x})):console.log(`Unsupported token endpoint auth method: ${o}`)}))}},"Authorize")),E||v||!P.token||!P.token.access_token&&react_1.default.createElement(Error_1.Error,{loading:E,error:v,token:P.token}))};exports.OAuth2Flow=OAuth2Flow;
|
|
2
2
|
//# sourceMappingURL=OAuth2Flow.js.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { SecurityDetails } from '../../../types';
|
|
2
|
-
import type { FormApi, FormState } from 'informed';
|
|
3
2
|
export interface OAuth2FlowProps {
|
|
4
3
|
authorizationUrl: string;
|
|
5
4
|
tokenUrl?: string;
|
|
@@ -11,8 +10,6 @@ export interface OAuth2FlowProps {
|
|
|
11
10
|
scopes: string[];
|
|
12
11
|
server: string;
|
|
13
12
|
id: string;
|
|
14
|
-
form: FormState;
|
|
15
|
-
formApi: FormApi;
|
|
16
13
|
flow: 'implicit' | 'authorizationCode';
|
|
17
14
|
tokenEndpointAuthMethod?: string | string[];
|
|
18
15
|
clientId?: string;
|
|
@@ -9,14 +9,8 @@ export interface OAuth2TokenInputProps {
|
|
|
9
9
|
};
|
|
10
10
|
authCorsProxyUrl: Maybe<string>;
|
|
11
11
|
server: string;
|
|
12
|
-
id: string;
|
|
13
|
-
form: {
|
|
14
|
-
values: any;
|
|
15
|
-
errors: any;
|
|
16
|
-
};
|
|
17
|
-
formApi: any;
|
|
18
12
|
clientId?: string;
|
|
13
|
+
id: string;
|
|
19
14
|
defaultValues?: SecurityDetails;
|
|
20
15
|
}
|
|
21
|
-
export declare const OAuth2TokenInput: ({
|
|
22
|
-
export default OAuth2TokenInput;
|
|
16
|
+
export declare const OAuth2TokenInput: ({ id, server, flow, authCorsProxyUrl, defaultValues, clientId, }: OAuth2TokenInputProps) => JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,l){function a(e){try{u(o.next(e))}catch(e){l(e)}}function i(e){try{u(o.throw(e))}catch(e){l(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,i)}u((o=o.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OAuth2TokenInput=void 0;const react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),react_hook_form_1=require("react-hook-form"),form_1=require("../common/form"),utils_1=require("../../utils"),OAuth2_1=require("../../services/OAuth2"),TextField_1=require("../common/TextField"),Scope_1=__importDefault(require("./Scope")),utils_2=require("./utils");function validateToken(e){if(!e)return"Token is required"}const OAuth2TokenInput=({id:e,server:t,flow:r,authCorsProxyUrl:o,defaultValues:n,clientId:l})=>{var a,i;const{setValue:u,watch:c,formState:d}=(0,react_hook_form_1.useFormContext)(),[s,_]=(0,react_1.useState)(""),[f,m]=(0,react_1.useState)(!1),[h,p]=(0,react_1.useState)(!0),k=(null===(a=c("auth"))||void 0===a?void 0:a[e])||{},v=(null===(i=d.errors)||void 0===i?void 0:i.auth)||{},g=()=>{u(`auth.${e}.token`,""),(0,utils_1.toSessionStorage)(`auth.${e}.token`,"")},S=Object.keys(r.scopes);let E=(0,utils_1.fromSessionStorage)(`auth.${e}.token`)||JSON.stringify(null==n?void 0:n.token);E=E?JSON.parse(E):"";const F=(0,utils_1.getSecurityDetailsOptions)(e,"client_id"),O={fieldName:`auth.${e}.client_id`,fullWidth:!0,defaultValue:(0,utils_1.fromSessionStorage)(`auth.${e}.client_id`)||l||(null==n?void 0:n.client_id),placeholder:"Your OAuth2 app Client ID"};return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(form_1.FormWrapper,null,react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null,"Client ID:"),F?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},O,{options:F})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},O,{type:"password",panel:"try-it"}))),react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null,"Client Secret:"),react_1.default.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,fieldName:`auth.${e}.client_secret`,defaultValue:(0,utils_1.fromSessionStorage)(`auth.${e}.client_secret`)||(null==n?void 0:n.client_secret),panel:"try-it"})),react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,fieldName:`auth.${e}.token`,type:"hidden",defaultValue:E,rules:{validate:validateToken}}),react_1.default.createElement(Scope_1.default,{id:e,scopes:S})),react_1.default.createElement(theme_1.Button,{color:"primary",onClick:()=>__awaiter(void 0,void 0,void 0,(function*(){if(f)return;const n=o&&r.tokenUrl?o+(0,utils_2.normalizeUrlProtocol)(r.tokenUrl):r.tokenUrl;if(v.client_id||v.client_secret)return void console.log("Provide client_id and client_secret");const l=k.client_id,a=k.client_secret;if(!l||!a)return void console.log("Provide client_id and client_secret");m(!0);const i=r["x-tokenEndpointAuthMethod"];(0,utils_2.validateTokenEndpointMethod)(i)?yield OAuth2_1.OAuth2.authorizeClientCredentials({tokenUrl:n.startsWith("http")?n:t+n,clientId:l,clientSecret:a,scopes:k.scopes,extraHeaders:(0,utils_2.getOAuth2TokenEndpointAuthHeader)({authMethod:i,clientId:l,clientSecret:a}),successCallback:t=>{u(`auth.${e}.token`,t),m(!1)},errorCallback:e=>{g(),_(e.message),m(!1)}}):console.log(`Unsupported token endpoint auth method: ${i}`)})),blinking:f},f?"Loading...":"Request Token"),react_1.default.createElement(form_1.FormHeader,null," Access Token "),s?react_1.default.createElement(form_1.FormError,{style:{marginBottom:"1em"}},"Failed to request token: ",react_1.default.createElement("pre",null,s)," "):k.token&&k.token.access_token?react_1.default.createElement(form_1.TokenField,null,react_1.default.createElement(form_1.TokenValue,{length:k.token.access_token.length,masked:h},k.token.access_token),react_1.default.createElement(form_1.TokenShowHide,{onClick:()=>{p((e=>!e))}},h?"Show":"Hide"," "),react_1.default.createElement(form_1.TokenClear,{onClick:g}," Clear ")):react_1.default.createElement(form_1.FormError,{style:{marginBottom:"1em"}},"No token"))};exports.OAuth2TokenInput=OAuth2TokenInput;
|
|
2
2
|
//# sourceMappingURL=OAuth2TokenInput.js.map
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { FormApi, FormState } from 'informed';
|
|
3
2
|
import type { ExtendedOpenAPISecurityScheme } from '../../models';
|
|
4
3
|
import type { SecurityDetails } from '../../types';
|
|
5
4
|
export interface OpenIDConnectProps {
|
|
6
5
|
server: string;
|
|
7
6
|
authCorsProxyUrl: Maybe<string>;
|
|
8
7
|
id: string;
|
|
9
|
-
form: FormState;
|
|
10
|
-
formApi: FormApi;
|
|
11
8
|
scheme: ExtendedOpenAPISecurityScheme;
|
|
12
9
|
clientId?: string;
|
|
13
10
|
defaultValues?: SecurityDetails;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function l(e){try{i(n.next(e))}catch(e){a(e)}}function u(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(l,u)}i((n=n.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Error=exports.OpenIDConnect=void 0;const react_1=__importStar(require("react")),OpenIDConnect_1=require("../../services/OpenIDConnect"),LinearProgress_1=require("../common/LinearProgress"),form_1=require("../common/form"),OAuth2Flow_1=require("./OAuth2Flow"),styled_1=require("./styled");function OpenIDConnect(e){var t,r;const{scheme:n,defaultValues:o}=e,[a,l]=(0,react_1.useState)({}),[u,i]=(0,react_1.useState)(),[c,d]=(0,react_1.useState)(!1);(0,react_1.useEffect)((()=>{s(n.openIdConnectUrl)}),[n.openIdConnectUrl]);const s=e=>__awaiter(this,void 0,void 0,(function*(){d(!0),i("");try{const t=yield(0,OpenIDConnect_1.discoverOpenIDConnect)(e);l(t)}catch(e){i(e.message)}d(!1)}));return c?react_1.default.createElement(Loading,null):u?react_1.default.createElement(Error,{message:u}):react_1.default.createElement("div",null,react_1.default.createElement("div",null,(null===(t=null==a?void 0:a.response_types_supported)||void 0===t?void 0:t.includes("token"))?react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(styled_1.FlowName,null,"OAuth2 Implicit Flow"),react_1.default.createElement(OAuth2Flow_1.OAuth2Flow,{key:e.id,authorizationUrl:a.authorization_endpoint,authCorsProxyUrl:e.authCorsProxyUrl,scopes:a.scopes_supported,server:e.server,id:e.id,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function l(e){try{i(n.next(e))}catch(e){a(e)}}function u(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(l,u)}i((n=n.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Error=exports.OpenIDConnect=void 0;const react_1=__importStar(require("react")),OpenIDConnect_1=require("../../services/OpenIDConnect"),LinearProgress_1=require("../common/LinearProgress"),form_1=require("../common/form"),OAuth2Flow_1=require("./OAuth2Flow"),styled_1=require("./styled");function OpenIDConnect(e){var t,r;const{scheme:n,defaultValues:o}=e,[a,l]=(0,react_1.useState)({}),[u,i]=(0,react_1.useState)(),[c,d]=(0,react_1.useState)(!1);(0,react_1.useEffect)((()=>{s(n.openIdConnectUrl)}),[n.openIdConnectUrl]);const s=e=>__awaiter(this,void 0,void 0,(function*(){d(!0),i("");try{const t=yield(0,OpenIDConnect_1.discoverOpenIDConnect)(e);l(t)}catch(e){i(e.message)}d(!1)}));return c?react_1.default.createElement(Loading,null):u?react_1.default.createElement(Error,{message:u}):react_1.default.createElement("div",null,react_1.default.createElement("div",null,(null===(t=null==a?void 0:a.response_types_supported)||void 0===t?void 0:t.includes("token"))?react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(styled_1.FlowName,null,"OAuth2 Implicit Flow"),react_1.default.createElement(OAuth2Flow_1.OAuth2Flow,{key:e.id,authorizationUrl:a.authorization_endpoint,authCorsProxyUrl:e.authCorsProxyUrl,scopes:a.scopes_supported,server:e.server,id:e.id,clientId:e.clientId,flow:"implicit",defaultValues:o})):(null===(r=null==a?void 0:a.response_types_supported)||void 0===r?void 0:r.includes("code"))?react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(styled_1.FlowName,null,"OAuth2 Authorization Flow"),react_1.default.createElement(OAuth2Flow_1.OAuth2Flow,{key:e.id,authorizationUrl:a.authorization_endpoint,tokenUrl:a.token_endpoint,authCorsProxyUrl:e.authCorsProxyUrl,scopes:a.scopes_supported,server:e.server,id:e.id,clientId:e.clientId,tokenEndpointAuthMethod:null==a?void 0:a.token_endpoint_auth_methods_supported,flow:"authorizationCode",defaultValues:o})):react_1.default.createElement("div",null,"Unsupported flow")))}function Loading(){return react_1.default.createElement("div",null,react_1.default.createElement("div",null,react_1.default.createElement("div",null,"Fetching OpenID Connect metadata..."),react_1.default.createElement(LinearProgress_1.LinearProgress,null)))}function Error({message:e}){return react_1.default.createElement("div",null,react_1.default.createElement("div",null,react_1.default.createElement(form_1.FormError,null,e)))}exports.OpenIDConnect=OpenIDConnect,exports.Error=Error;
|
|
2
2
|
//# sourceMappingURL=OpenIDConnect.js.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
interface ParameterEnumDropdownProps {
|
|
3
|
-
|
|
3
|
+
defaultValue: string | string[];
|
|
4
4
|
paramEnum: Array<string>;
|
|
5
|
+
fieldName: string;
|
|
5
6
|
}
|
|
6
|
-
export declare const ParameterEnumDropdown: React.
|
|
7
|
+
export declare const ParameterEnumDropdown: React.NamedExoticComponent<ParameterEnumDropdownProps>;
|
|
7
8
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,a){void 0===a&&(a=r);var
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,a){void 0===a&&(a=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,a,o)}:function(e,t,r,a){void 0===a&&(a=r),e[a]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ParameterEnumDropdown=void 0;const react_1=__importStar(require("react")),react_hook_form_1=require("react-hook-form"),styled_1=require("./styled"),ParameterEnumDropdownComponent=({paramEnum:e,fieldName:t,defaultValue:r})=>{const{control:a,setValue:o}=(0,react_hook_form_1.useFormContext)(),n=e.map(((e,t)=>({idx:t,value:e}))),l=e=>{o(t,e.value)},u=()=>{o(t,"")};return react_1.default.createElement(react_hook_form_1.Controller,{control:a,name:t,defaultValue:Array.isArray(r)?r[0]:r,render:({field:{value:e}})=>react_1.default.createElement(styled_1.TryItDropdown,{clearable:!0,fullWidth:!0,variant:"dark",value:e,options:n,handleClear:u,onChange:l})})};exports.ParameterEnumDropdown=(0,react_1.memo)(ParameterEnumDropdownComponent);
|
|
2
2
|
//# sourceMappingURL=ParameterDropdown.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Body=void 0;const react_1=__importStar(require("react")),react_hook_form_1=require("react-hook-form"),helper_1=require("../../common/FileUpload/helper"),constants_1=require("../../../constants"),Samples_1=require("../../Samples"),utils_1=require("../../../utils"),utils_2=require("../utils"),RequestBodyForm_1=require("../RequestBodyForm"),CodemirrorInput_1=require("../CodemirrorInput"),hooks_1=require("../../../hooks");function BodyComponent({mediaType:e,mediaContent:t,properties:r,id:o,resolvedBody:a,getActiveSample:n,validate:l}){const{setValue:i}=(0,react_hook_form_1.useFormContext)(),u=(0,hooks_1.useActivateExample)(t),s=e.examples||{},_=Object.keys(s),c=e.schema,m=(0,helper_1.isRootFileUpload)(c||{},e.name)||e.name===constants_1.MediaTypes.MULTIPART||e.name===constants_1.MediaTypes.URL_ENCODED,{exampleKey:d}=(0,Samples_1.useExampleKey)(e.operation,s),p=(0,utils_1.fromSessionStorage)((0,utils_2.getStorageExampleKey)(o,e.name,d,s))||(0,utils_2.encodeSample)(s[d],r),f=(0,react_1.useCallback)(((e="",t="",r=[])=>a=>{(0,utils_1.toSessionStorage)((0,utils_2.getStorageExampleKey)(o,e,t,r),a)}),[o]),y=(0,react_1.useCallback)((e=>{null==u||u(e),i("body",n(e))}),[i,n,u]),h=(0,react_1.useCallback)(((e,t)=>{i(`body.${e}`,t)}),[i]),g=(0,react_1.useMemo)((()=>((null==a?void 0:a.content[e.name])||{}).schema),[e.name,null==a?void 0:a.content]);return react_1.default.createElement(react_1.default.Fragment,null,_.length&&1!==_.length&&react_1.default.createElement(Samples_1.ExampleSwitch,{examples:s,onChange:y,exampleKey:d,panel:"try-it"})||null,m?react_1.default.createElement(RequestBodyForm_1.RequestBodyForm,{mediaType:e,onChange:h}):react_1.default.createElement(CodemirrorInput_1.CodemirrorInput,{id:"body"+o,fieldName:"body",defaultValue:p,schema:g,mode:e.name,validate:l,onChange:f(e.name,d,s)}))}exports.Body=(0,react_1.memo)(BodyComponent);
|
|
2
2
|
//# sourceMappingURL=Body.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestBody=void 0;const react_1=__importStar(require("react")),jotai_1=require("jotai"),react_hook_form_1=require("react-hook-form"),DropdownOrLabel_1=require("../../DropdownOrLabel"),MediaTypeSwitch_1=require("../../MediaTypeSwitch"),common_1=require("../../common"),RequestMimeLabel_1=require("../RequestMimeLabel"),utils_1=require("../utils"),utils_2=require("../../../utils"),Body_1=require("./Body"),models_1=require("../../../models"),app_1=require("../../../jotai/app"),operation_1=require("../../../jotai/operation");function RequestBodyComponent({body:{content:e},resolvedBody:t,properties:r,mergeExampleBody:o,id:a,validate:i,pointer:n}){const{setValue:u}=(0,react_hook_form_1.useFormContext)(),l=(0,jotai_1.useAtomValue)(app_1.activeMimeNameAtom),{examples:d,name:s}=e&&(0,models_1.getActiveMediaType)(e,l)||{},_=(0,react_1.useCallback)((t=>{if(!e||!e.hasSample)return"";if(!(null==d?void 0:d[t]))return"";const o=s&&(0,utils_2.fromSessionStorage)((0,utils_1.getStorageExampleKey)(a,s,t,d)),i=o?JSON.parse(o):null==d?void 0:d[t];return(0,utils_1.encodeSample)(i,r)}),[s,d,a,e,r]),{activeExampleName:c}=(0,jotai_1.useAtomValue)((0,operation_1.operationStore)(n));(0,react_1.useEffect)((()=>{if(r&&!o)return void u("body",JSON.stringify(r||{},null,2));const e=(0,utils_1.getStorageExampleKey)(a,s,c,d),t=(0,utils_2.fromSessionStorage)(e)||_(c||"");u("body","object"==typeof t?JSON.stringify(t,null,2):t)}),[d,c,s,u,_,a,r,o]);return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(MediaTypeSwitch_1.MediaTypesSwitch,{content:e,renderDropdown:e=>react_1.default.createElement(DropdownOrLabel_1.DropdownOrLabel,Object.assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel_1.RequestMimeLabel,Dropdown:common_1.Dropdown}))},(o=>react_1.default.createElement(Body_1.Body,{mediaType:o,mediaContent:e,resolvedBody:t,id:a,properties:r,getActiveSample:_,validate:i}))))}exports.RequestBody=(0,react_1.memo)(RequestBodyComponent);
|
|
2
2
|
//# sourceMappingURL=RequestBody.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { FormApi } from 'informed';
|
|
2
1
|
import type { RequestBodyModel, MediaContentModel, MediaTypeModel } from '../../../models';
|
|
3
2
|
import type { OpenAPIRequestBody } from '../../../types';
|
|
4
3
|
export interface RequestBodyProps {
|
|
@@ -6,12 +5,11 @@ export interface RequestBodyProps {
|
|
|
6
5
|
pointer: string;
|
|
7
6
|
resolvedBody: OpenAPIRequestBody;
|
|
8
7
|
validate: () => string | undefined;
|
|
9
|
-
formApi: FormApi;
|
|
10
8
|
id: string;
|
|
11
9
|
properties: any;
|
|
12
10
|
mergeExampleBody?: boolean;
|
|
13
11
|
}
|
|
14
|
-
export interface BodyProps extends Pick<RequestBodyProps, 'resolvedBody' | 'validate' | '
|
|
12
|
+
export interface BodyProps extends Pick<RequestBodyProps, 'resolvedBody' | 'validate' | 'id' | 'properties'> {
|
|
15
13
|
mediaType: MediaTypeModel;
|
|
16
14
|
mediaContent?: MediaContentModel;
|
|
17
15
|
getActiveSample: (key: string) => string;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { FormApi } from 'informed';
|
|
3
2
|
import type { FieldModel, MediaTypeModel, UploadFileType } from '../../models';
|
|
4
3
|
interface RequestBodyFormProps {
|
|
5
4
|
mediaType: MediaTypeModel;
|
|
6
5
|
onChange(key: string, file: UploadFileType): void;
|
|
7
|
-
formApi?: FormApi;
|
|
8
6
|
}
|
|
9
7
|
export declare const RequestBodyForm: React.NamedExoticComponent<RequestBodyFormProps>;
|
|
10
8
|
export declare function getRequestBodyFormFields(mediaType: MediaTypeModel): FieldModel[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var l=Object.getOwnPropertyDescriptor(t,o);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,l)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRequestBodyFormFields=exports.RequestBodyForm=void 0;const react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),nexus_1=require("../../jotai/nexus"),helper_1=require("../common/FileUpload/helper"),form_1=require("../common/form"),FileUpload_1=require("../common/FileUpload"),TextField_1=require("../common/TextField"),models_1=require("../../models"),constants_1=require("../../constants"),Samples_1=require("../Samples"),operation_1=require("../../jotai/operation"),utils_1=require("../../utils");function RequestBodyFormComponent({mediaType:e,onChange:t
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var l=Object.getOwnPropertyDescriptor(t,o);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,l)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRequestBodyFormFields=exports.RequestBodyForm=void 0;const react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),react_hook_form_1=require("react-hook-form"),nexus_1=require("../../jotai/nexus"),helper_1=require("../common/FileUpload/helper"),form_1=require("../common/form"),FileUpload_1=require("../common/FileUpload"),TextField_1=require("../common/TextField"),models_1=require("../../models"),constants_1=require("../../constants"),Samples_1=require("../Samples"),operation_1=require("../../jotai/operation"),utils_1=require("../../utils");function RequestBodyFormComponent({mediaType:e,onChange:t}){var o;const{setValue:r}=(0,react_hook_form_1.useFormContext)(),l=e.examples||{},{exampleKey:n}=(0,Samples_1.useExampleKey)(e.operation,l),a=null===(o=l[n])||void 0===o?void 0:o.rawValue,i=getRequestBodyFormFields(e);(0,react_1.useEffect)((()=>r&&i.forEach((e=>{var t,o;const l=null==a?void 0:a[e.name],n=null!==(o=null!==(t=e.example)&&void 0!==t?t:null==l?void 0:l.example)&&void 0!==o?o:l,i="object"==typeof n?JSON.stringify(n):n;void 0!==n&&r("body."+e.name,`${i}`)}))),[n]);const d=e.schema||{};return(0,helper_1.isRootFileUpload)(d,e.name)?react_1.default.createElement(FileFormControlWrapper,null,react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(StyledFileUpload,{fullWidth:!0,fieldName:`body.${e.name}`,accept:(0,helper_1.mimeTypeToAccept)(e.name),schema:d,contentName:e.name,onChange:t}))):d.type===models_1.DefinitionTypes.OBJECT||i?react_1.default.createElement(FileFormControlWrapper,null,i.map((o=>{const r=o.schema||{contentMediaType:"",type:"",description:""},l=e.name===constants_1.MediaTypes.MULTIPART&&(0,helper_1.isMultipartFileUploadProperty)(r),n=r.contentMediaType||"",a=l?react_1.default.createElement(StyledFileUpload,{fullWidth:!0,fieldName:"body."+o.name,accept:(0,helper_1.mimeTypeToAccept)(n),multiple:"array"===r.type,schema:r,contentName:o.name,onChange:t}):react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,id:"body."+o.name,fieldName:"body."+o.name,placeholder:(0,utils_1.normalizeText)(r.description)||o.name,panel:"try-it"});return react_1.default.createElement(form_1.FormControl,{key:o.name},react_1.default.createElement(form_1.FormLabel,null,o.name,":"),a)}))):(console.warn(`Invalid schema for request body and mime type: "${e.name}"`,d),null)}function getRequestBodyFormFields(e){var t,o,r,l,n,a;const{activeOneOf:i}=(0,nexus_1.readAtom)((0,operation_1.operationStore)(e.operation.pointer)),d=null!==(o=i[(null===(t=e.schema)||void 0===t?void 0:t.pointer)||""])&&void 0!==o?o:0;return((null===(l=null===(r=e.schema)||void 0===r?void 0:r.oneOf)||void 0===l?void 0:l.length)?(null===(n=e.schema)||void 0===n?void 0:n.oneOf[d].fields)||[]:(null===(a=e.schema)||void 0===a?void 0:a.fields)||[]).filter((e=>!e.schema.readOnly))}exports.RequestBodyForm=(0,react_1.memo)(RequestBodyFormComponent),exports.getRequestBodyFormFields=getRequestBodyFormFields;const FileFormControlWrapper=styled_components_1.default.div`
|
|
2
2
|
> div {
|
|
3
3
|
margin-top: 10px;
|
|
4
4
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importDefault(require("react")),form_1=require("../common/form"),CheckboxList_1=require("../common/CheckboxList"),utils_1=require("../../utils");function Scope(e){const{scopes:t,id:r}=e;let o=[];try{o=JSON.parse((0,utils_1.fromSessionStorage)(`auth.${r}.scopes`))}catch(e){}return t&&t.length?react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Scopes: "),react_1.default.createElement(CheckboxList_1.CheckboxList,{
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importDefault(require("react")),form_1=require("../common/form"),CheckboxList_1=require("../common/CheckboxList"),utils_1=require("../../utils");function Scope(e){const{scopes:t,id:r}=e;let o=[];try{o=JSON.parse((0,utils_1.fromSessionStorage)(`auth.${r}.scopes`))}catch(e){}return t&&t.length?react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Scopes: "),react_1.default.createElement(CheckboxList_1.CheckboxList,{fieldName:`auth.${r}.scopes`,defaultValue:o,items:t,showControls:!0,trimItemsLength:!0})):react_1.default.createElement(react_1.default.Fragment,null)}exports.default=Scope;
|
|
2
2
|
//# sourceMappingURL=Scope.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServersDropdown=void 0;const react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),store_1=require("../../../jotai/store"),utils_1=require("../../../utils"),form_1=require("../../common/form"),utils_2=require("../utils"),ServerVariable_1=__importDefault(require("../ServerVariable")),styled_1=require("../styled"),events_1=require("../../../events");function ServersDropdownComponent({operation:e,onChange:r}){const{events:
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServersDropdown=void 0;const react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),react_hook_form_1=require("react-hook-form"),store_1=require("../../../jotai/store"),utils_1=require("../../../utils"),form_1=require("../../common/form"),utils_2=require("../utils"),ServerVariable_1=__importDefault(require("../ServerVariable")),styled_1=require("../styled"),events_1=require("../../../events");function ServersDropdownComponent({operation:e,onChange:r}){var t;const{control:a,watch:o}=(0,react_hook_form_1.useFormContext)(),{events:l}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{servers:n}=e,i=o("server");(0,theme_1.useMount)((()=>{const e=(0,utils_1.fromSessionStorage)("serverUrl"),t=n.findIndex((r=>r.url===e)),a=(0,utils_2.getServerWithVariables)(n,t<0?0:t);r(a)}));const s=(0,react_1.useCallback)((({serverUrl:t=""})=>{var a;const o=n.find((e=>e.url===t)),i=(0,utils_2.getDefaultOrStoredVariables)(o);r({url:t,variables:i}),(0,utils_1.toSessionStorage)("serverUrl",t);const s=(0,events_1.createServerSwitchEvent)({operation:e,serverUrl:t});null===(a=l.targetServerSwitch)||void 0===a||a.call(l,s)}),[r,l,e,n]),u=(0,react_1.useMemo)((()=>n.map(((e,r)=>({idx:r,serverUrl:e.url,value:`\n ${(0,utils_2.expandDefaultServerVariables)((0,utils_2.expandVariables)(e.url,e.variables),e.variables)}\n - ${(0,utils_1.normalizeText)(e.description)||"Default"}\n `})))),[n]),_=Object.keys((null===(t=n.find((({url:e})=>e===(null==i?void 0:i.url))))||void 0===t?void 0:t.variables)||{});return react_1.default.createElement(ServerDropdownWrap,{"data-cy":"console-target-server"},react_1.default.createElement(form_1.FormLabel,{htmlFor:"server"},"Target server: "),react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(react_hook_form_1.Controller,{control:a,name:"server",render:({field:{value:e}})=>{var r;const t=null===(r=u.find((({serverUrl:r})=>r===(null==e?void 0:e.url))))||void 0===r?void 0:r.value;return react_1.default.createElement(styled_1.TryItDropdown,{variant:"dark",value:t,options:u,fullWidth:!0,onChange:s})}})),null==_?void 0:_.map((e=>{var t;const a=null===(t=null==i?void 0:i.variables)||void 0===t?void 0:t[e];return react_1.default.createElement(ServerVariable_1.default,{key:e,name:e,value:i.variables[e],defaultValue:a.default,onChange:t=>((e,t)=>{const a=t||""===t?t:(0,utils_2.getDefaultOrStoredVariables)(i)[e],o=Object.assign(Object.assign({},i.variables),{[e]:a});(0,utils_2.updateVariablesStorage)(e,a),r(Object.assign(Object.assign({},i),{variables:o}))})(e,t),variableEnum:a.enum,description:a.description})})))}exports.ServersDropdown=(0,react_1.memo)(ServersDropdownComponent);const ServerDropdownWrap=styled_components_1.default.div`
|
|
2
2
|
margin-bottom: 20px;
|
|
3
3
|
`;
|
|
4
4
|
//# sourceMappingURL=ServersDropdown.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStorageExampleKey=exports.encodeSample=exports.getOAuth2TokenEndpointAuthHeader=exports.validateTokenEndpointMethod=exports.fromCookie=exports.requiredValidator=exports.makeRequestInterceptor=exports.getFileNameFromHeaders=exports.unescapeQueryParams=exports.updateVariablesStorage=exports.getDefaultOrStoredVariables=exports.expandDefaultServerVariables=exports.expandVariables=exports.getInitialServerWithVariables=exports.getServerWithVariables=exports.getParameters=exports.updateStorage=exports.normalizeUrlProtocol=void 0;const deepmerge_1=__importDefault(require("deepmerge")),nexus_1=require("../../jotai/nexus"),constants_1=require("../../constants"),utils_1=require("../../services/utils"),utils_2=require("../../utils"),operation_1=require("../../jotai/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStorageExampleKey=exports.encodeSample=exports.getOAuth2TokenEndpointAuthHeader=exports.validateTokenEndpointMethod=exports.fromCookie=exports.requiredValidator=exports.makeRequestInterceptor=exports.getFileNameFromHeaders=exports.unescapeQueryParams=exports.updateVariablesStorage=exports.getDefaultOrStoredVariables=exports.expandDefaultServerVariables=exports.expandVariables=exports.getInitialServerWithVariables=exports.getServerWithVariables=exports.getParameters=exports.updateStorage=exports.normalizeUrlProtocol=void 0;const deepmerge_1=__importDefault(require("deepmerge")),nexus_1=require("../../jotai/nexus"),constants_1=require("../../constants"),utils_1=require("../../services/utils"),utils_2=require("../../utils"),operation_1=require("../../jotai/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.auth)for(const t of Object.keys(e.auth)){const r=e.auth[t];(0,utils_2.setSecurityDetails)(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){for(const t of["path","query","header","cookie"])if(null==e?void 0:e[t])for(const r of Object.keys(e[t]))(0,utils_2.setParameterValue)(t,r,e[t][r])}exports.normalizeUrlProtocol=normalizeUrlProtocol,exports.updateStorage=updateStorage;const getParameters=(e,t)=>e.filter((e=>e.in===t)).reduce(((e,t)=>{const{in:r,name:a}=t;return e[(0,utils_2.escapeFormId)(a)]=(0,utils_2.getParameterValue)(r||"",a),e}),{});exports.getParameters=getParameters;const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;function getServerWithVariables(e,t=0){const r=e[t],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}function getInitialServerWithVariables(e){const t=(0,utils_2.fromSessionStorage)("serverUrl"),r=e.find((e=>e.url===t))||e[0],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}function expandVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]||e))}function expandDefaultServerVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]&&t[r].default||e))}function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};const t=(0,utils_2.fromSessionStorage)("variables"),r=t&&JSON.parse(t)||{},a={};return Object.entries(e.variables||{}).forEach((([e,t])=>{a[e]=r[e]||t.default||""})),a}function updateVariablesStorage(e,t){const r=(0,utils_2.fromSessionStorage)("variables"),a=r&&JSON.parse(r)||{};(0,utils_2.toSessionStorage)("variables",JSON.stringify(Object.assign(Object.assign({},a),{[e]:t})))}function unescapeQueryParams(e){return Object.entries(e).reduce(((e,[t,r])=>(e[(0,utils_2.unescapeFormId)(t)]=r,e)),{})}function getFileNameFromHeaders(e){const t="filename=";for(const[r,a]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=a.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[1]}return""}exports.getServerWithVariables=getServerWithVariables,exports.getInitialServerWithVariables=getInitialServerWithVariables,exports.expandVariables=expandVariables,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.getDefaultOrStoredVariables=getDefaultOrStoredVariables,exports.updateVariablesStorage=updateVariablesStorage,exports.unescapeQueryParams=unescapeQueryParams,exports.getFileNameFromHeaders=getFileNameFromHeaders;const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},a,o)=>i=>{var s,n;const{requestValues:l}=(0,nexus_1.readAtom)((0,operation_1.operationStore)(a.pointer));r&&(i=Object.assign(Object.assign({},i),{url:decodeURIComponent(i.url)})),t&&(i.headers["X-User-Agent"]="Redocly Try it API console");const u=(null===(s=null==l?void 0:l.header)||void 0===s?void 0:s.authorization)||(null===(n=null==l?void 0:l.header)||void 0===n?void 0:n.Authorization);return!o&&u&&(i.headers.Authorization=u),e?e(i,a):i};function requiredValidator(e){if(!e)return"Field is required"}exports.makeRequestInterceptor=makeRequestInterceptor,exports.requiredValidator=requiredValidator;const getCookie=e=>{const t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name||"")}exports.fromCookie=fromCookie;const validateTokenEndpointMethod=e=>{if(!e)return!0;const t=Array.isArray(e)?e:[e];return!(t.length&&!t.includes("none")&&!t.includes("client_secret_basic"))};exports.validateTokenEndpointMethod=validateTokenEndpointMethod;const getOAuth2TokenEndpointAuthHeader=({authMethod:e,clientId:t,clientSecret:r})=>"client_secret_basic"===e||Array.isArray(e)&&e.includes("client_secret_basic")?{Authorization:`Basic ${btoa(t+":"+r)}`}:{};function encodeSample(e,t){if(!e)return"";if(e.mime===constants_1.MediaTypes.URL_ENCODED)return e.value;const r=e.value,a=t?(0,deepmerge_1.default)(r,t,{arrayMerge:utils_1.arrayMergeStrategy}):r;return JSON.stringify(a,null,2)}exports.getOAuth2TokenEndpointAuthHeader=getOAuth2TokenEndpointAuthHeader,exports.encodeSample=encodeSample;const getStorageExampleKey=(e,t="",r,a)=>{let o=e+"_"+t;return r&&a&&Object.keys(a).includes(r)&&(o+="_"+r),o};exports.getStorageExampleKey=getStorageExampleKey;
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/lib/jotai/app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.versionPathAtom=exports.activeVersionIdxAtom=exports.collapsedSidebarAtom=exports.showRightPanelToggleAtom=exports.appSessionStore=exports.activeSampleLanguageAtom=exports.layoutAtom=exports.appLocalStore=exports.flatMenuItemsAtom=exports.activeMimeNameAtom=exports.isSidebarOpenedAtom=exports.appStore=void 0;const jotai_1=require("jotai"),utils_1=require("jotai/utils"),theme_1=require("@redocly/theme"),dom_1=require("../utils/dom");exports.appStore=(0,jotai_1.atom)({isSidebarOpened:!0,activeMimeName:"",menuNextLinks:[]}),exports.isSidebarOpenedAtom=(0,jotai_1.atom)((e=>e(exports.appStore).isSidebarOpened),((e,t,o)=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{isSidebarOpened:o}))})),exports.activeMimeNameAtom=(0,jotai_1.atom)((e=>e(exports.appStore).activeMimeName),((e,t,o)=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{activeMimeName:o}))})),exports.flatMenuItemsAtom=(0,jotai_1.atom)((e=>e(exports.appStore).menuNextLinks),((e,t,o)=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{menuNextLinks:o}))})),exports.appLocalStore=(0,utils_1.atomWithStorage)("appLocalStore",{layout:theme_1.LayoutVariant.THREE_PANEL,activeSampleLanguage:""}),exports.layoutAtom=(0,jotai_1.atom)((e=>e(exports.appLocalStore).layout),((e,t,o=theme_1.LayoutVariant.STACKED)=>{const s=e(exports.appLocalStore);t(exports.appLocalStore,Object.assign(Object.assign({},s),{layout:o}))})),exports.activeSampleLanguageAtom=(0,jotai_1.atom)((e=>e(exports.appLocalStore).activeSampleLanguage),((e,t,o)=>{const s=e(exports.appLocalStore);t(exports.appLocalStore,Object.assign(Object.assign({},s),{activeSampleLanguage:o}))})),exports.appSessionStore=(0,utils_1.atomWithStorage)("appSessionStore",{showRightPanelToggle:!0,collapsedSidebar:!1,activeVersionIdx:0,versionPath:""},dom_1.IS_BROWSER?(0,utils_1.createJSONStorage)((()=>sessionStorage)):void 0),exports.showRightPanelToggleAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).showRightPanelToggle),((e,t,o)=>{const s=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},s),{showRightPanelToggle:o}))})),exports.collapsedSidebarAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).collapsedSidebar),((e,t,o)=>{const s=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},s),{collapsedSidebar:o}))})),exports.activeVersionIdxAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).activeVersionIdx),((e,t,o)=>{const s=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},s),{activeVersionIdx:o}))})),exports.versionPathAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).versionPath),((e,t,o)=>{const s=e(exports.appSessionStore);o&&t(exports.appSessionStore,Object.assign(Object.assign({},s),{versionPath:o}))}));
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.versionPathAtom=exports.activeVersionIdxAtom=exports.collapsedSidebarAtom=exports.showRightPanelToggleAtom=exports.appSessionStore=exports.activeSampleLanguageAtom=exports.layoutAtom=exports.appLocalStore=exports.flatMenuItemsAtom=exports.activeMimeNameAtom=exports.isSidebarOpenedAtom=exports.appStore=void 0;const jotai_1=require("jotai"),utils_1=require("jotai/utils"),theme_1=require("@redocly/theme"),dom_1=require("../utils/dom");exports.appStore=(0,jotai_1.atom)({isSidebarOpened:!0,activeMimeName:"",menuNextLinks:[]}),exports.isSidebarOpenedAtom=(0,jotai_1.atom)((e=>e(exports.appStore).isSidebarOpened),((e,t,o)=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{isSidebarOpened:o}))})),exports.activeMimeNameAtom=(0,jotai_1.atom)((e=>e(exports.appStore).activeMimeName),((e,t,o)=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{activeMimeName:o}))})),exports.flatMenuItemsAtom=(0,jotai_1.atom)((e=>e(exports.appStore).menuNextLinks),((e,t,o)=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{menuNextLinks:o}))})),exports.appLocalStore=(0,utils_1.atomWithStorage)("redoc.appLocalStore",{layout:theme_1.LayoutVariant.THREE_PANEL,activeSampleLanguage:""}),exports.layoutAtom=(0,jotai_1.atom)((e=>e(exports.appLocalStore).layout),((e,t,o=theme_1.LayoutVariant.STACKED)=>{const s=e(exports.appLocalStore);t(exports.appLocalStore,Object.assign(Object.assign({},s),{layout:o}))})),exports.activeSampleLanguageAtom=(0,jotai_1.atom)((e=>e(exports.appLocalStore).activeSampleLanguage),((e,t,o)=>{const s=e(exports.appLocalStore);t(exports.appLocalStore,Object.assign(Object.assign({},s),{activeSampleLanguage:o}))})),exports.appSessionStore=(0,utils_1.atomWithStorage)("redoc.appSessionStore",{showRightPanelToggle:!0,collapsedSidebar:!1,activeVersionIdx:0,versionPath:""},dom_1.IS_BROWSER?(0,utils_1.createJSONStorage)((()=>sessionStorage)):void 0),exports.showRightPanelToggleAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).showRightPanelToggle),((e,t,o)=>{const s=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},s),{showRightPanelToggle:o}))})),exports.collapsedSidebarAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).collapsedSidebar),((e,t,o)=>{const s=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},s),{collapsedSidebar:o}))})),exports.activeVersionIdxAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).activeVersionIdx),((e,t,o)=>{const s=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},s),{activeVersionIdx:o}))})),exports.versionPathAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).versionPath),((e,t,o)=>{const s=e(exports.appSessionStore);o&&t(exports.appSessionStore,Object.assign(Object.assign({},s),{versionPath:o}))}));
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
package/lib/testProviders.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
1
|
+
import type { ReactNode, PropsWithChildren } from 'react';
|
|
2
2
|
import type { StoreProviderProps } from './components';
|
|
3
3
|
export declare function withTestProviders(children: ReactNode, store?: StoreProviderProps): JSX.Element;
|
|
4
4
|
export declare function withTheme(children: ReactNode): JSX.Element;
|
|
5
|
+
export declare function TestFormProvider({ children, defaultValues, }: PropsWithChildren<{
|
|
6
|
+
defaultValues?: any;
|
|
7
|
+
}>): JSX.Element;
|
package/lib/testProviders.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,i)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.TestFormProvider=exports.withTheme=exports.withTestProviders=void 0;const react_1=__importStar(require("react")),styled_components_1=require("styled-components"),react_hook_form_1=require("react-hook-form"),constants_1=require("./constants"),utils_1=require("./utils"),components_1=require("./components");function withTestProviders(e,t){return react_1.default.createElement(components_1.StoreProvider,Object.assign({},t||{definition:{openapi:"3.0.0"}}),react_1.Children.only(e))}function withTheme(e){const t={mediaQueries:(0,utils_1.generateMediaQueries)(constants_1.defaultTheme.breakpoints),showAtBreakpoint:constants_1.defaultTheme.showAtBreakpoint};return react_1.default.createElement(styled_components_1.ThemeProvider,{theme:t},e)}function TestFormProvider({children:e,defaultValues:t}){const r=(0,react_hook_form_1.useForm)({defaultValues:t});return react_1.default.createElement(react_hook_form_1.FormProvider,Object.assign({},r),e)}exports.withTestProviders=withTestProviders,exports.withTheme=withTheme,exports.TestFormProvider=TestFormProvider;
|
|
2
2
|
//# sourceMappingURL=testProviders.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.saveTextBeforeHeading=void 0;const markdoc_1=require("@markdoc/markdoc"),typeGuards_1=require("./typeGuards"),utils_1=require("../services/utils");function saveTextBeforeHeading(e,r){if(!(0,typeGuards_1.isString)(e)&&(null==e?void 0:e.result)){const i=(0,utils_1.deepClone)(e),t=markdoc_1.Ast.fromJSON(JSON.stringify(null==i?void 0:i.result));if(Array.isArray(t))for(const e of t)modifyNodeByHeading(e,r);else modifyNodeByHeading(t,r);return i.result=JSON.stringify(t),i.raw=saveTextBeforeHeading(i.raw,r),i}const i=new RegExp(`^#{1,${r}}?\\s+`,"m"),t=e.search(i);return t>-1?e.substring(0,t):e}function modifyNodeByHeading(e,r){const i=e.children.findIndex((e=>"heading"===e.type&&e.attributes.level<=r));return-1===i||(e.children=e.children.slice(0,i)),e}exports.saveTextBeforeHeading=saveTextBeforeHeading;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.saveTextBeforeHeading=void 0;const markdoc_1=require("@markdoc/markdoc"),typeGuards_1=require("./typeGuards"),utils_1=require("../services/utils");function saveTextBeforeHeading(e,r){if(!(0,typeGuards_1.isString)(e)&&(null==e?void 0:e.result)){const i=(0,utils_1.deepClone)(e),t=markdoc_1.Ast.fromJSON(JSON.stringify(null==i?void 0:i.result));if(Array.isArray(t))for(const e of t)modifyNodeByHeading(e,r);else modifyNodeByHeading(t,r);return i.result=JSON.stringify(t),i.raw=saveTextBeforeHeading(i.raw,r),i}const i=new RegExp(`^#{1,${r}}?\\s+`,"m"),t=e.search(i);return t>-1?e.substring(0,t):e}function modifyNodeByHeading(e,r){if(!Array.isArray(e.children))return;const i=e.children.findIndex((e=>"heading"===e.type&&e.attributes.level<=r));return-1===i||(e.children=e.children.slice(0,i)),e}exports.saveTextBeforeHeading=saveTextBeforeHeading;
|
|
2
2
|
//# sourceMappingURL=saveTextBeforeHeading.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{memo,useState}from"react";import{useAtomValue}from"jotai";import{PatternLabel,RecursiveLabel,TypeFormat,TypeName,TypePrefix,TypeTitle,ToggleButton,DeprecatedLabel}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{l}from"../../services";import{FieldDetail}from"./FieldDetail";import{ConstraintsView}from"./ConstraintsView";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{TypeWrapper,FieldDescriptionWrapper}from"./styled";import{globalOptionsAtom}from"../../jotai/store";const MAX_PATTERN_LENGTH=45;function FieldDetailsComponent({showExamples:e,field:t,renderDiscriminatorSwitch:a}){const[n,r]=useState(!1),{enumSkipQuotes:o,hideSchemaTitles:i,hideSchemaPattern:c}=useAtomValue(globalOptionsAtom),{schema:m,description:s,example:p,deprecated:u,examples:
|
|
1
|
+
import React,{memo,useState}from"react";import{useAtomValue}from"jotai";import{PatternLabel,RecursiveLabel,TypeFormat,TypeName,TypePrefix,TypeTitle,ToggleButton,DeprecatedLabel}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{l}from"../../services";import{FieldDetail}from"./FieldDetail";import{ConstraintsView}from"./ConstraintsView";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{TypeWrapper,FieldDescriptionWrapper}from"./styled";import{globalOptionsAtom}from"../../jotai/store";const MAX_PATTERN_LENGTH=45;function FieldDetailsComponent({showExamples:e,field:t,renderDiscriminatorSwitch:a}){const[n,r]=useState(!1),{enumSkipQuotes:o,hideSchemaTitles:i,hideSchemaPattern:c}=useAtomValue(globalOptionsAtom),{schema:m,description:s,example:p,deprecated:u,examples:d}=t,E=Boolean(o)||"header"===t.in;let R=null;if(e&&(void 0!==p||void 0!==d))if(void 0!==d)R=React.createElement(Examples,{field:t});else{const e=!!t.in;R=React.createElement(FieldDetail,{label:"example",value:getSerializedValue(t,t.example),raw:e})}return React.createElement("div",null,React.createElement(TypeWrapper,null,React.createElement(TypePrefix,null,m.typePrefix),React.createElement(TypeName,null,m.displayType),m.displayFormat&&React.createElement(TypeFormat,null," ","<",m.displayFormat,">"," "),m.contentEncoding&&React.createElement(TypeFormat,null," ","<",m.contentEncoding,">"," "),m.contentMediaType&&React.createElement(TypeFormat,null," ","<",m.contentMediaType,">"," "),m.title&&!i&&React.createElement(TypeTitle,null," (",m.title,") "),React.createElement(ConstraintsView,{constraints:m.constraints}),m.pattern&&!c&&React.createElement(React.Fragment,null,React.createElement(PatternLabel,null,n||m.pattern.length<45?m.pattern:`${m.pattern.substr(0,45)}...`),m.pattern.length>45&&React.createElement(ToggleButton,{onClick:()=>{r(!n)}},n?"Hide pattern":"Show pattern"))," ",m.isCircular&&React.createElement(RecursiveLabel,null,l("recursive"))),u&&React.createElement("div",null,React.createElement(DeprecatedLabel,null,l("deprecated"))),React.createElement(FieldDetail,{raw:E,label:"default",value:m.default}),React.createElement(FieldDescriptionWrapper,null,React.createElement(Markdown,{source:s})),!a&&React.createElement(EnumValues,{type:m.type,values:m["x-enumDescriptions"]||m.enum})," ",R,React.createElement(Extensions,{extensions:Object.assign(Object.assign({},t.extensions),m.extensions)}),m.externalDocs&&React.createElement(ExternalDocumentation,{externalDocs:m.externalDocs,compact:!0}),null==a?void 0:a(),t.const&&React.createElement(FieldDetail,{label:"const",value:t.const})||null)}export const FieldDetails=memo(FieldDetailsComponent);
|
|
2
2
|
//# sourceMappingURL=FieldDetails.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{useMemo,Fragment}from"react";import{dottedString,escapeFormId,get,unescapeFormId}from"../../utils";import{FormLabel,FormControl,FormWarning,GroupLabel,Table}from"../common/form";import{FormTextField}from"../common/TextField";import{ParameterEnumDropdown}from"../rightPanel/ParameterDropdown";import{ParameterArray}from"../rightPanel/ParameterArray";import{SchemaType}from"./types";import{createValidator,getInitialValue,isNotSupported,orderParams,placeholder}from"./utils";const PARAM_PLACES=["path","query","cookie","header"];function FormControlWrapper({id:e,param:r,values:a}){const t=useMemo((()=>createValidator(r)),[r]),m=Array.isArray(r.schema.enum)&&r.schema.enum.length?r.schema.enum:void 0,o=getInitialValue(r.schema),n=e.split(".").map((e=>unescapeFormId(e)));return m?React.createElement(FormControl,null,React.createElement(ParameterEnumDropdown,{
|
|
1
|
+
import React,{useMemo,Fragment}from"react";import{dottedString,escapeFormId,get,unescapeFormId}from"../../utils";import{FormLabel,FormControl,FormWarning,GroupLabel,Table}from"../common/form";import{FormTextField}from"../common/TextField";import{ParameterEnumDropdown}from"../rightPanel/ParameterDropdown";import{ParameterArray}from"../rightPanel/ParameterArray";import{SchemaType}from"./types";import{createValidator,getInitialValue,isNotSupported,orderParams,placeholder}from"./utils";const PARAM_PLACES=["path","query","cookie","header"];function FormControlWrapper({id:e,param:r,values:a}){const t=useMemo((()=>createValidator(r)),[r]),m=Array.isArray(r.schema.enum)&&r.schema.enum.length?r.schema.enum:void 0,o=getInitialValue(r.schema),n=e.split(".").map((e=>unescapeFormId(e)));return m?React.createElement(FormControl,null,React.createElement(ParameterEnumDropdown,{defaultValue:o,paramEnum:m,fieldName:e})):React.createElement(FormTextField,{fullWidth:!0,"data-cy":"parameter-input",id:e,fieldName:e,placeholder:placeholder(r),rules:{validate:t},defaultValue:o||get(a,n),validateOnBlur:!0,validateOnChange:!0})}export function OperationParameters({values:e,operation:r}){const a=useMemo((()=>orderParams(r.parameters||[])),[r]),t=(r,a,m,o,n)=>{var l;const c=m?dottedString(m,r.name):r.name,i=isNotSupported(r.schema),p=m?[a,m]:[r.in],d=dottedString(...p,escapeFormId(r.name));i&&console.warn(`Unsupported parameter definition: "${i}"`);return(Array.isArray(r.schema.type)?r.schema.type:[r.schema.type]).includes(SchemaType.ARRAY)?React.createElement(ParameterArray,{key:d,name:c,param:r,place:a,renderParameter:t}):r.schema.type===SchemaType.OBJECT?null===(l=r.schema.fields)||void 0===l?void 0:l.map((e=>t(e,a,c))):React.createElement(FormControl,{key:d},React.createElement(FormLabel,{required:r.required},o||c,": ",n),i?React.createElement(FormWarning,null,"Unsupported field schema definition"):React.createElement(FormControlWrapper,{id:d,param:r,values:e}))};return React.createElement(Table,null,PARAM_PLACES.map((e=>{const r=a[e];return r&&r.length?React.createElement(Fragment,{key:e},React.createElement(FormControl,null,React.createElement(GroupLabel,null," # ",e," parameters "),React.createElement("span",null," ")),r.map((r=>t(r,e)))):null})))}
|
|
2
2
|
//# sourceMappingURL=OperationParameters.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { FieldModel, OperationModel } from '../../models';
|
|
2
2
|
export interface OperationParametersProps {
|
|
3
3
|
operation: OperationModel;
|
|
4
|
-
errors: Record<string, Record<string, string>>;
|
|
5
4
|
values: Record<string, Record<string, string>>;
|
|
6
5
|
}
|
|
7
6
|
export interface FormControlWrapperProps extends Pick<OperationParametersProps, 'values'> {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RegisterOptions } from 'react-hook-form/dist/types/validator';
|
|
2
2
|
import type { FieldModel, SchemaModel } from '../../models';
|
|
3
3
|
import type { OpenAPISchema } from '../../types';
|
|
4
4
|
export declare function placeholder({ schema, example }: Pick<FieldModel, 'schema' | 'example'>): string;
|
|
5
5
|
export declare function orderParams(params: FieldModel[]): Record<string, FieldModel[]>;
|
|
6
|
-
export declare function createValidator({ schema, required, }: Pick<FieldModel, 'schema' | 'required'>):
|
|
6
|
+
export declare function createValidator({ schema, required, }: Pick<FieldModel, 'schema' | 'required'>): RegisterOptions['validate'];
|
|
7
7
|
export declare function getInitialValue(schema: SchemaModel): OpenAPISchema['default'] | OpenAPISchema['example'];
|
|
8
8
|
export declare function isNotSupported({ oneOfType, }: Pick<SchemaModel, 'oneOfType' | 'type' | 'items'>): string | false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import styled from"styled-components";import React,{createRef,useLayoutEffect,useState}from"react";const TOLERANCE_PX=20;export function SeeMore({children:e,height:t}){const n=createRef(),[r,o]=React.useState(!1),[a,c]=useState(!1);useLayoutEffect((()=>{n.current&&n.current.clientHeight+
|
|
1
|
+
import styled from"styled-components";import React,{createRef,useLayoutEffect,useState}from"react";const TOLERANCE_PX=20;export function SeeMore({children:e,height:t}){const n=createRef(),[r,o]=React.useState(!1),[a,c]=useState(!1);useLayoutEffect((()=>{n.current&&n.current.clientHeight+20<n.current.scrollHeight&&c(!0)}),[n]);return React.createElement(React.Fragment,null,React.createElement(Container,{ref:n,className:r?"":"container",style:{height:r?"auto":t}},e),React.createElement(ButtonContainer,{dimmed:!r},a&&React.createElement(ButtonLinkStyled,{onClick:()=>{o(!r)}},r?"See less":"See more")))}const Container=styled.div`
|
|
2
2
|
overflow-y: hidden;
|
|
3
3
|
`,ButtonContainer=styled.div`
|
|
4
4
|
text-align: center;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { FieldContext } from 'informed';
|
|
3
2
|
type FieldValue = string[];
|
|
4
3
|
export interface CheckboxListComponentProps {
|
|
5
4
|
items: string[];
|
|
@@ -7,7 +6,9 @@ export interface CheckboxListComponentProps {
|
|
|
7
6
|
validateOnChange?: boolean;
|
|
8
7
|
showControls?: boolean;
|
|
9
8
|
trimItemsLength?: boolean;
|
|
9
|
+
defaultValue: FieldValue;
|
|
10
|
+
fieldName: string;
|
|
10
11
|
}
|
|
11
|
-
export declare const CheckboxListComponent: ({
|
|
12
|
-
export declare const CheckboxList: React.
|
|
12
|
+
export declare const CheckboxListComponent: ({ fieldName, defaultValue, items, validateOnChange, maxDisplayedItems, showControls, trimItemsLength, }: CheckboxListComponentProps) => JSX.Element;
|
|
13
|
+
export declare const CheckboxList: React.NamedExoticComponent<CheckboxListComponentProps>;
|
|
13
14
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{CodeBlockControls,CodeBlockControlButton}from"@redocly/theme";import React,{useState,memo}from"react";import styled from"styled-components";import{Controller,useFormContext}from"react-hook-form";import{FormError}from"./form";import{Checkbox}from"./Checkbox";const DEFAULT_MAX_ITEMS=11;export const CheckboxListComponent=({fieldName:e,defaultValue:t,items:o,validateOnChange:l,maxDisplayedItems:r,showControls:a,trimItemsLength:c})=>{var n;const{control:s,setValue:m,getValues:i,formState:d,trigger:u}=useFormContext(),[C,p]=useState(!0),h=t=>i(e).includes(t),g=null===(n=d.errors[e])||void 0===n?void 0:n.message,k=r||11,x=c&&C?o.slice(0,k):o;return React.createElement("div",null,a?React.createElement(CodeBlockControls,{controls:{select:{onClick:()=>{m(e,o)},label:"Select all",tooltipText:"Select all checkboxes"},deselect:{onClick:()=>{m(e,[])},label:"Deselect all",tooltipText:"Deselect all checkboxes"}}}):null,React.createElement(ListWrapper,null,React.createElement(Controller,{control:s,name:e,defaultValue:t,render:()=>React.createElement(React.Fragment,null,x.map((t=>React.createElement(Checkbox,{fullWidth:!0,id:t,value:t,checked:h(t),label:t,key:t,onChange:t=>{(t=>{const o=t.target.value,l=t.target.checked,r=i(e)||[];let a;if(l)a=[...r,o];else{const e=r.indexOf(o);a=[...r.slice(0,e),...r.slice(e+1)]}m(e,a)})(t),l&&u(e)}}))))}),o.length>k&&c?React.createElement(ToggleButton,{onClick:()=>{p((e=>!e))}},C?"Show all":"Collapse"):null),g?React.createElement(FormError,null,g):"")};export const CheckboxList=memo(CheckboxListComponent);const ListWrapper=styled.div`
|
|
2
2
|
padding: 10px;
|
|
3
3
|
border: 1px solid var(--border-primary);
|
|
4
4
|
border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg);
|
|
@@ -4,6 +4,6 @@ export interface FileUploadProps {
|
|
|
4
4
|
schema: SchemaModel | GenericObject;
|
|
5
5
|
contentName: string;
|
|
6
6
|
onChange(key: string, file: UploadFileType): void;
|
|
7
|
-
|
|
7
|
+
fieldName: string;
|
|
8
8
|
}
|
|
9
9
|
export declare const FileUpload: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange"> & FileUploadProps & React.RefAttributes<HTMLInputElement>>;
|