@redocly/openapi-docs 3.0.0-alpha.75 → 3.0.0-alpha.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/console.redocly-openapi-docs.min.js +163 -181
  2. package/dist/oauth2-redirect.js +1 -1
  3. package/dist/redocly-openapi-docs.min.js +1037 -973
  4. package/lib/components/OperationParameters/OperationParameters.js +1 -1
  5. package/lib/components/OperationParameters/types.d.ts +0 -1
  6. package/lib/components/OperationParameters/utils.d.ts +2 -2
  7. package/lib/components/common/CheckboxList.d.ts +4 -3
  8. package/lib/components/common/CheckboxList.js +1 -1
  9. package/lib/components/common/FileUpload/FileUpload.d.ts +1 -1
  10. package/lib/components/common/FileUpload/FileUpload.js +1 -1
  11. package/lib/components/common/TextField.d.ts +12 -5
  12. package/lib/components/common/TextField.js +2 -2
  13. package/lib/components/rightPanel/ActionPanel.d.ts +3 -4
  14. package/lib/components/rightPanel/ActionPanel.js +1 -1
  15. package/lib/components/rightPanel/AuthPanel/AuthPanel.d.ts +1 -1
  16. package/lib/components/rightPanel/AuthPanel/AuthPanel.js +1 -1
  17. package/lib/components/rightPanel/AuthPanel/types.d.ts +0 -3
  18. package/lib/components/rightPanel/CodemirrorInput/CodemirrorInput.d.ts +3 -4
  19. package/lib/components/rightPanel/CodemirrorInput/CodemirrorInput.js +1 -1
  20. package/lib/components/rightPanel/CodemirrorInput/helpers.d.ts +6 -1
  21. package/lib/components/rightPanel/CodemirrorInput/helpers.js +1 -1
  22. package/lib/components/rightPanel/CodemirrorInput/styled.d.ts +2 -1
  23. package/lib/components/rightPanel/CodemirrorInput/styled.js +44 -45
  24. package/lib/components/rightPanel/CodemirrorInput/types.d.ts +3 -14
  25. package/lib/components/rightPanel/Console/Console.js +1 -1
  26. package/lib/components/rightPanel/Console/Request.js +1 -1
  27. package/lib/components/rightPanel/Console/types.d.ts +1 -6
  28. package/lib/components/rightPanel/OAuth2Flow/OAuth2Flow.d.ts +1 -1
  29. package/lib/components/rightPanel/OAuth2Flow/OAuth2Flow.js +1 -1
  30. package/lib/components/rightPanel/OAuth2Flow/types.d.ts +0 -3
  31. package/lib/components/rightPanel/OAuth2TokenInput.d.ts +2 -8
  32. package/lib/components/rightPanel/OAuth2TokenInput.js +1 -1
  33. package/lib/components/rightPanel/OpenIDConnect.d.ts +0 -3
  34. package/lib/components/rightPanel/OpenIDConnect.js +1 -1
  35. package/lib/components/rightPanel/ParameterDropdown.d.ts +3 -2
  36. package/lib/components/rightPanel/ParameterDropdown.js +1 -1
  37. package/lib/components/rightPanel/RequestBody/Body.js +1 -1
  38. package/lib/components/rightPanel/RequestBody/RequestBody.js +1 -1
  39. package/lib/components/rightPanel/RequestBody/types.d.ts +1 -3
  40. package/lib/components/rightPanel/RequestBodyForm.d.ts +0 -2
  41. package/lib/components/rightPanel/RequestBodyForm.js +1 -1
  42. package/lib/components/rightPanel/Scope.js +1 -1
  43. package/lib/components/rightPanel/ServersDropdown/ServersDropdown.js +1 -1
  44. package/lib/components/rightPanel/utils.js +1 -1
  45. package/lib/jotai/app.js +1 -1
  46. package/lib/testProviders.d.ts +4 -1
  47. package/lib/testProviders.js +1 -1
  48. package/lib/utils/saveTextBeforeHeading.js +1 -1
  49. package/lib-esm/components/OperationParameters/OperationParameters.js +1 -1
  50. package/lib-esm/components/OperationParameters/types.d.ts +0 -1
  51. package/lib-esm/components/OperationParameters/utils.d.ts +2 -2
  52. package/lib-esm/components/common/CheckboxList.d.ts +4 -3
  53. package/lib-esm/components/common/CheckboxList.js +1 -1
  54. package/lib-esm/components/common/FileUpload/FileUpload.d.ts +1 -1
  55. package/lib-esm/components/common/FileUpload/FileUpload.js +1 -1
  56. package/lib-esm/components/common/TextField.d.ts +12 -5
  57. package/lib-esm/components/common/TextField.js +2 -2
  58. package/lib-esm/components/rightPanel/ActionPanel.d.ts +3 -4
  59. package/lib-esm/components/rightPanel/ActionPanel.js +1 -1
  60. package/lib-esm/components/rightPanel/AuthPanel/AuthPanel.d.ts +1 -1
  61. package/lib-esm/components/rightPanel/AuthPanel/AuthPanel.js +1 -1
  62. package/lib-esm/components/rightPanel/AuthPanel/types.d.ts +0 -3
  63. package/lib-esm/components/rightPanel/CodemirrorInput/CodemirrorInput.d.ts +3 -4
  64. package/lib-esm/components/rightPanel/CodemirrorInput/CodemirrorInput.js +1 -1
  65. package/lib-esm/components/rightPanel/CodemirrorInput/helpers.d.ts +6 -1
  66. package/lib-esm/components/rightPanel/CodemirrorInput/helpers.js +1 -1
  67. package/lib-esm/components/rightPanel/CodemirrorInput/styled.d.ts +2 -1
  68. package/lib-esm/components/rightPanel/CodemirrorInput/styled.js +44 -45
  69. package/lib-esm/components/rightPanel/CodemirrorInput/types.d.ts +3 -14
  70. package/lib-esm/components/rightPanel/Console/Console.js +1 -1
  71. package/lib-esm/components/rightPanel/Console/Request.js +1 -1
  72. package/lib-esm/components/rightPanel/Console/types.d.ts +1 -6
  73. package/lib-esm/components/rightPanel/OAuth2Flow/OAuth2Flow.d.ts +1 -1
  74. package/lib-esm/components/rightPanel/OAuth2Flow/OAuth2Flow.js +1 -1
  75. package/lib-esm/components/rightPanel/OAuth2Flow/types.d.ts +0 -3
  76. package/lib-esm/components/rightPanel/OAuth2TokenInput.d.ts +2 -8
  77. package/lib-esm/components/rightPanel/OAuth2TokenInput.js +1 -1
  78. package/lib-esm/components/rightPanel/OpenIDConnect.d.ts +0 -3
  79. package/lib-esm/components/rightPanel/OpenIDConnect.js +1 -1
  80. package/lib-esm/components/rightPanel/ParameterDropdown.d.ts +3 -2
  81. package/lib-esm/components/rightPanel/ParameterDropdown.js +1 -1
  82. package/lib-esm/components/rightPanel/RequestBody/Body.js +1 -1
  83. package/lib-esm/components/rightPanel/RequestBody/RequestBody.js +1 -1
  84. package/lib-esm/components/rightPanel/RequestBody/types.d.ts +1 -3
  85. package/lib-esm/components/rightPanel/RequestBodyForm.d.ts +0 -2
  86. package/lib-esm/components/rightPanel/RequestBodyForm.js +1 -1
  87. package/lib-esm/components/rightPanel/Scope.js +1 -1
  88. package/lib-esm/components/rightPanel/ServersDropdown/ServersDropdown.js +1 -1
  89. package/lib-esm/components/rightPanel/utils.js +1 -1
  90. package/lib-esm/jotai/app.js +1 -1
  91. package/lib-esm/testProviders.d.ts +4 -1
  92. package/lib-esm/testProviders.js +1 -1
  93. package/lib-esm/utils/saveTextBeforeHeading.js +1 -1
  94. package/package.json +9 -6
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,l,r){void 0===r&&(r=l);var a=Object.getOwnPropertyDescriptor(t,l);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[l]}}),Object.defineProperty(e,r,a)}:function(e,t,l,r){void 0===r&&(r=l),e[r]=t[l]}),__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 l in e)"default"!==l&&Object.prototype.hasOwnProperty.call(e,l)&&__createBinding(t,e,l);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,l,r){return new(l||(l=Promise))((function(a,i){function n(e){try{u(r.next(e))}catch(e){i(e)}}function o(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof l?t:new l((function(e){e(t)}))).then(n,o)}u((r=r.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"),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");function requiredValidator(e){if(!e)return"Field is required"}const OAuth2Flow=({usePkce:e,form:t,id:l,formApi:r,flow:a,tokenUrl:i,authCorsProxyUrl:n,tokenEndpointAuthMethod:o,server:u,scopes:c,authorizationUrl:d,defaultValues:s,clientId:_})=>{var f,m,h,p;const{oAuth2RedirectURI:v,routingBasePath:g}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),[E,k]=(0,react_1.useState)(null),[O,C]=(0,react_1.useState)(!1),[F,y]=(0,react_1.useState)(!1),[b,S]=(0,react_1.useState)(void 0),[x,A]=(0,react_1.useState)(void 0),[P,j]=(0,react_1.useState)(void 0),q=(null===(m=null===(f=t.values)||void 0===f?void 0:f.auth)||void 0===m?void 0:m[l])||{},w=(null===(p=null===(h=t.errors)||void 0===h?void 0:h.auth)||void 0===p?void 0:p[l])||{},T=void 0!==b&&x!==P?{label:"sync",onClick:()=>{b&&A(P)}}:void 0;(0,react_1.useEffect)((()=>{if(e){const e=(0,utils_2.randString)(43);(0,OAuth2_1.deriveCodeChallenge)(e).then((t=>{S(e),A(t),j(t)}))}}),[e]);const W=()=>{r.setValue(`auth.${l}.token`,"")};if(!d)return react_1.default.createElement(form_1.FormError,null,"No flow info");let D=(0,utils_1.fromSessionStorage)(`auth.${l}.token`)||JSON.stringify(null==s?void 0:s.token);D=D?JSON.parse(D):"";const V=(0,utils_1.getSecurityDetailsOptions)(l,"client_id"),B={field:`auth.${l}.client_id`,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)(`auth.${l}.client_id`)||_||(null==s?void 0:s.client_id),initValue:(0,utils_1.fromSessionStorage)(`auth.${l}.client_id`)||_||(null==s?void 0:s.client_id),placeholder:"Your OAuth2 app Client ID",validate: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: "),V?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},B,{options:V})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},B,{"data-cy":"client-id-input",panel:"try-it"}))),"authorizationCode"===a&&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,field:`auth.${l}.client_secret`,initialValue:(0,utils_1.fromSessionStorage)(`auth.${l}.client_secret`)||(null==s?void 0:s.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:F,onChange:()=>{y((e=>!e))},"data-cy":"pkce-options-toggle"}),F&&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:b,onChange:({target:{value:e}})=>__awaiter(void 0,void 0,void 0,(function*(){const t=yield(0,OAuth2_1.deriveCodeChallenge)(e);S(e),j(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}})=>{A(e)},inputActionButton:T,panel:"try-it","data-cy":"code-challenge-input"}))))),react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,field:`auth.${l}.token`,type:"hidden",initialValue:D,panel:"try-it"}),react_1.default.createElement(Scope_1.default,{id:l,scopes:c}),q.token&&q.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:q.token.access_token,panel:"try-it"})):null),react_1.default.createElement(styled_1.ButtonsWrapper,null,q.token&&q.token.access_token?react_1.default.createElement(theme_1.Button,{fullWidth:!0,onClick:()=>{W(),k(null)}},"Log out"):O?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(a)}},"Cancel"),react_1.default.createElement(LinearProgress_1.LinearProgress,null)):react_1.default.createElement(theme_1.Button,{fullWidth:!0,disabled:!(0,utils_2.isEmptyObject)(w),onClick:()=>{(t=>{if(!t)return;if(r.validate(),!(0,utils_2.isEmptyObject)(w))return;C(!0),k(null);const c=n?n+(0,utils_3.normalizeUrlProtocol)(t):t,d=n&&i?n+(0,utils_3.normalizeUrlProtocol)(i):i,s=r.getValue(`auth.${l}.scopes`),_={authorizationUrl:c.startsWith("http")?c:u+c,clientId:q.client_id,scopes:s,redirectUri:v,routingBasePath:g,successCallback:e=>{r.setValue(`auth.${l}.token`,e),C(!1),k(null)},errorCallback:e=>{C(!1),k((null==e?void 0:e.message)||"Failed to retrieve the access token")}};"implicit"===a&&OAuth2_1.OAuth2.authorizeImplicit(_),(0,utils_3.validateTokenEndpointMethod)(o)?"authorizationCode"===a&&OAuth2_1.OAuth2.authorizeAuthorizationCode(Object.assign(Object.assign(Object.assign({},_),{tokenUrl:(null==d?void 0:d.startsWith("http"))?d:u+d,clientSecret:q.client_secret,extraHeaders:(0,utils_3.getOAuth2TokenEndpointAuthHeader)({authMethod:o,clientId:q.client_id,clientSecret:q.client_secret})}),e&&{codeVerifier:b,codeChallenge:x})):console.log(`Unsupported token endpoint auth method: ${o}`)})(d)}},"Authorize")),O||E||!q.token||!q.token.access_token&&react_1.default.createElement(Error_1.Error,{loading:O,error:E,token:q.token}))};exports.OAuth2Flow=OAuth2Flow;
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: ({ form, id, formApi, server, flow, authCorsProxyUrl, defaultValues, clientId, }: OAuth2TokenInputProps) => JSX.Element;
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,l){void 0===l&&(l=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,l,n)}: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(n,o){function i(e){try{u(l.next(e))}catch(e){o(e)}}function a(e){try{u(l.throw(e))}catch(e){o(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(i,a)}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.OAuth2TokenInput=void 0;const react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),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=({form:e,id:t,formApi:r,server:l,flow:n,authCorsProxyUrl:o,defaultValues:i,clientId:a})=>{var u,c,d,s;const[_,f]=(0,react_1.useState)(""),[m,h]=(0,react_1.useState)(!1),[p,k]=(0,react_1.useState)(!0),v=(null===(c=null===(u=null==e?void 0:e.values)||void 0===u?void 0:u.auth)||void 0===c?void 0:c[t])||{},g=(null===(s=null===(d=e.errors)||void 0===d?void 0:d.auth)||void 0===s?void 0:s[t])||{},S=()=>{r.setValue(`auth.${t}.token`,""),(0,utils_1.toSessionStorage)(`auth.${t}.token`,"")},O=Object.keys(n.scopes);let E=(0,utils_1.fromSessionStorage)(`auth.${t}.token`)||JSON.stringify(null==i?void 0:i.token);E=E?JSON.parse(E):"";const T=(0,utils_1.getSecurityDetailsOptions)(t,"client_id"),F={field:`auth.${t}.client_id`,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)(`auth.${t}.client_id`)||a||(null==i?void 0:i.client_id),initValue:(0,utils_1.fromSessionStorage)(`auth.${t}.client_id`)||a||(null==i?void 0:i.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:"),T?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},F,{options:T})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},F,{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,field:`auth.${t}.client_secret`,initialValue:(0,utils_1.fromSessionStorage)(`auth.${t}.client_secret`)||(null==i?void 0:i.client_secret),panel:"try-it"})),react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,field:`auth.${t}.token`,type:"hidden",initialValue:E,validate:validateToken}),react_1.default.createElement(Scope_1.default,{id:t,scopes:O})),react_1.default.createElement(theme_1.Button,{color:"primary",onClick:()=>__awaiter(void 0,void 0,void 0,(function*(){if(m)return;const e=o&&n.tokenUrl?o+(0,utils_2.normalizeUrlProtocol)(n.tokenUrl):n.tokenUrl;if(g.client_id||g.client_secret)return void console.log("Provide client_id and client_secret");const i=v.client_id,a=v.client_secret;if(!i||!a)return void console.log("Provide client_id and client_secret");h(!0);const u=n["x-tokenEndpointAuthMethod"];(0,utils_2.validateTokenEndpointMethod)(u)?yield OAuth2_1.OAuth2.authorizeClientCredentials({tokenUrl:e.startsWith("http")?e:l+e,clientId:i,clientSecret:a,scopes:v.scopes,extraHeaders:(0,utils_2.getOAuth2TokenEndpointAuthHeader)({authMethod:u,clientId:i,clientSecret:a}),successCallback:e=>{r.setValue(`auth.${t}.token`,e),h(!1)},errorCallback:e=>{S(),f(e.message),h(!1)}}):console.log(`Unsupported token endpoint auth method: ${u}`)})),blinking:m},m?"Loading...":"Request Token"),react_1.default.createElement(form_1.FormHeader,null," Access Token "),_?react_1.default.createElement(form_1.FormError,{style:{marginBottom:"1em"}},"Failed to request token: ",react_1.default.createElement("pre",null,_)," "):v.token&&v.token.access_token?react_1.default.createElement(form_1.TokenField,null,react_1.default.createElement(form_1.TokenValue,{length:v.token.access_token.length,masked:p},v.token.access_token),react_1.default.createElement(form_1.TokenShowHide,{onClick:()=>{k((e=>!e))}},p?"Show":"Hide"," "),react_1.default.createElement(form_1.TokenClear,{onClick:S}," Clear ")):react_1.default.createElement(form_1.FormError,{style:{marginBottom:"1em"}},"No token"))};exports.OAuth2TokenInput=OAuth2TokenInput,exports.default=exports.OAuth2TokenInput;
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,form:e.form,formApi:e.formApi,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,form:e.form,formApi:e.formApi,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;
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
- initValue: string;
3
+ defaultValue: string | string[];
4
4
  paramEnum: Array<string>;
5
+ fieldName: string;
5
6
  }
6
- export declare const ParameterEnumDropdown: React.ComponentType<import("informed").FieldProps<string, any> & ParameterEnumDropdownProps>;
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 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,a,n)}: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")),informed_1=require("informed"),theme_1=require("@redocly/theme"),styled_1=require("./styled"),ParameterEnumDropdownComponent=({initValue:e,paramEnum:t,fieldApi:r})=>{const[a,n]=(0,react_1.useState)(),o=t.map(((e,t)=>({idx:t,value:e})));(0,theme_1.useMount)((()=>{if(e)if(Array.isArray(e)){const t=e.length?e[0]:"";n(t),r.setValue(t)}else n(e),r.setValue(e)}));return react_1.default.createElement(styled_1.TryItDropdown,{clearable:!0,fullWidth:!0,variant:"dark",value:a,options:o,handleClear:()=>{r.setValue(""),n("")},onChange:e=>{r.setValue(e.value),n(e.value)}})};exports.ParameterEnumDropdown=(0,informed_1.asField)(ParameterEnumDropdownComponent);
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,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.Body=void 0;const react_1=__importStar(require("react")),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:a,resolvedBody:o,formApi:n,getActiveSample:i,validate:l}){const u=(0,hooks_1.useActivateExample)(t),s=e.examples||{},c=Object.keys(s),d=e.schema,m=(0,helper_1.isRootFileUpload)(d||{},e.name)||e.name===constants_1.MediaTypes.MULTIPART||e.name===constants_1.MediaTypes.URL_ENCODED,{exampleKey:_}=(0,Samples_1.useExampleKey)(e.operation,s),p=(0,utils_1.fromSessionStorage)((0,utils_2.getStorageExampleKey)(a,e.name,_,s))||(0,utils_2.encodeSample)(s[_],r),y=(0,react_1.useCallback)(((e="",t="",r=[])=>o=>{(0,utils_1.toSessionStorage)((0,utils_2.getStorageExampleKey)(a,e,t,r),o)}),[a]),f=(0,react_1.useCallback)((e=>{u&&u(e),n.setValue("body",i(e))}),[n,i,u]),h=(0,react_1.useCallback)(((e,t)=>{n.setValue(`body.${e}`,t)}),[n]);return react_1.default.createElement(react_1.default.Fragment,null,c.length&&1!==c.length&&react_1.default.createElement(Samples_1.ExampleSwitch,{examples:s,onChange:f,exampleKey:_,panel:"try-it"})||null,m?react_1.default.createElement(RequestBodyForm_1.RequestBodyForm,{mediaType:e,formApi:n,onChange:h}):react_1.default.createElement(CodemirrorInput_1.CodemirrorInput,{id:"body"+a,field:"body",initialValue:p,schema:((null==o?void 0:o.content[e.name])||{}).schema,mode:e.name,validate:l,onChange:y(e.name,_,s)}))}exports.Body=(0,react_1.memo)(BodyComponent);
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 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.RequestBody=void 0;const react_1=__importStar(require("react")),jotai_1=require("jotai"),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},formApi:t,resolvedBody:r,properties:o,mergeExampleBody:i,id:a,validate:n,pointer:u}){const 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 r=s&&(0,utils_2.fromSessionStorage)((0,utils_1.getStorageExampleKey)(a,s,t,d)),i=r?JSON.parse(r):null==d?void 0:d[t];return(0,utils_1.encodeSample)(i,o)}),[s,d,a,e,o]),{activeExampleName:c}=(0,jotai_1.useAtomValue)((0,operation_1.operationStore)(u));(0,react_1.useEffect)((()=>{if(o&&!i)return void t.setValue("body",JSON.stringify(o||{},null,2));const e=(0,utils_1.getStorageExampleKey)(a,s,c,d);t.setValue("body",(0,utils_2.fromSessionStorage)(e)||_(c||""))}),[d,c,s,t,_,a,o,i]);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}))},(i=>react_1.default.createElement(Body_1.Body,{mediaType:i,mediaContent:e,resolvedBody:r,id:a,properties:o,getActiveSample:_,formApi:t,validate:n}))))}exports.RequestBody=(0,react_1.memo)(RequestBodyComponent);
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' | 'formApi' | 'id' | 'properties'> {
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,formApi:o}){var r;const l=e.examples||{},{exampleKey:n}=(0,Samples_1.useExampleKey)(e.operation,l),a=null===(r=l[n])||void 0===r?void 0:r.rawValue,i=getRequestBodyFormFields(e);(0,react_1.useEffect)((()=>o&&i.forEach((e=>{var t,r;const l=null==a?void 0:a[e.name],n=null!==(r=null!==(t=e.example)&&void 0!==t?t:null==l?void 0:l.example)&&void 0!==r?r:l,i="object"==typeof n?JSON.stringify(n):n;void 0!==n&&o.setValue("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,id:`body.${e.name}`,name:`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,id:"body."+o.name,name:"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,field:"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`
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,{field:`auth.${r}.scopes`,initialValue:o,items:t,showControls:!0,trimItemsLength:!0})):react_1.default.createElement(react_1.default.Fragment,null)}exports.default=Scope;
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:t}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{servers:a}=e,o=(0,utils_1.fromSessionStorage)("serverUrl"),i=a.findIndex((e=>e.url===o)),[n,l]=(0,react_1.useState)(i<0?0:i),[s,u]=(0,react_1.useState)({});(0,theme_1.useMount)((()=>{const e=(0,utils_2.getServerWithVariables)(a,n);r(e),u(e.variables)}));const _=a.map(((e,r)=>({idx:r,serverUrl:e.url,value:`\n ${(0,utils_2.expandDefaultServerVariables)((0,utils_2.expandVariables)(e.url,s),e.variables)}\n - ${(0,utils_1.normalizeText)(e.description)||"Default"}\n `}))),c=Object.keys(s);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(styled_1.TryItDropdown,{variant:"dark",value:_[n].value,options:_,fullWidth:!0,onChange:({serverUrl:o=""})=>{var i;const n=a.find((e=>e.url===o)),s=a.findIndex((e=>e.url===o)),_=(0,utils_2.getDefaultOrStoredVariables)(n);r({url:o,variables:_}),(0,utils_1.toSessionStorage)("serverUrl",o),l(s),u(_);const c=(0,events_1.createServerSwitchEvent)({operation:e,serverUrl:o});null===(i=t.targetServerSwitch)||void 0===i||i.call(t,c)}})),null==c?void 0:c.map((e=>{var t;const o=null===(t=a[n].variables)||void 0===t?void 0:t[e];if(o)return react_1.default.createElement(ServerVariable_1.default,{key:e,name:e,value:s[e],defaultValue:o.default,onChange:t=>((e,t)=>{const o=a[n],i=t||""===t?t:(0,utils_2.getDefaultOrStoredVariables)(o)[e],l=Object.assign(Object.assign({},s),{[e]:i});u(l),(0,utils_2.updateVariablesStorage)(e,i),r(Object.assign(Object.assign({},o),{variables:l}))})(e,t),variableEnum:o.enum,description:o.description})})))}exports.ServersDropdown=(0,react_1.memo)(ServersDropdownComponent);const ServerDropdownWrap=styled_components_1.default.div`
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.values.auth)for(const t of Object.keys(e.values.auth)){const r=e.values.auth[t];(0,utils_2.setSecurityDetails)(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){var t;for(const r of["path","query","header","cookie"])if(null===(t=e.values)||void 0===t?void 0:t[r])for(const t of Object.keys(e.values[r]))(0,utils_2.setParameterValue)(r,t,e.values[r][t])}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[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)=>s=>{var i,n;const{requestValues:l}=(0,nexus_1.readAtom)((0,operation_1.operationStore)(a.pointer));r&&(s=Object.assign(Object.assign({},s),{url:decodeURIComponent(s.url)})),t&&(s.headers["X-User-Agent"]="Redocly Try it API console");const u=(null===(i=null==l?void 0:l.header)||void 0===i?void 0:i.authorization)||(null===(n=null==l?void 0:l.header)||void 0===n?void 0:n.Authorization);return!o&&u&&(s.headers.Authorization=u),e?e(s,a):s};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;
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
@@ -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;
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=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,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=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.withTheme=exports.withTestProviders=void 0;const react_1=__importStar(require("react")),styled_components_1=require("styled-components"),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)}exports.withTestProviders=withTestProviders,exports.withTheme=withTheme;
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,{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,{initValue:o,paramEnum:m,field:e})):React.createElement(FormTextField,{fullWidth:!0,"data-cy":"parameter-input",id:e,field:e,placeholder:placeholder(r),validate:t,initialValue: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 i=m?dottedString(m,r.name):r.name,c=isNotSupported(r.schema),p=m?[a,m]:[r.in],d=dottedString(...p,escapeFormId(r.name));c&&console.warn(`Unsupported parameter definition: "${c}"`);return(Array.isArray(r.schema.type)?r.schema.type:[r.schema.type]).includes(SchemaType.ARRAY)?React.createElement(ParameterArray,{key:d,name:i,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,i))):React.createElement(FormControl,{key:d},React.createElement(FormLabel,{required:r.required},o||i,": ",n),c?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})))}
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 { BaseFieldProps } from 'informed';
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'>): BaseFieldProps['validate'];
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,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: ({ items, fieldApi, validateOnChange, maxDisplayedItems, showControls, trimItemsLength, }: FieldContext<FieldValue> & CheckboxListComponentProps) => JSX.Element;
12
- export declare const CheckboxList: React.ComponentType<import("informed").FieldProps<FieldValue, any> & CheckboxListComponentProps>;
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{asField}from"informed";import{CodeBlockControls,CodeBlockControlButton}from"@redocly/theme";import React,{useState}from"react";import styled from"styled-components";import{FormError}from"./form";import{Checkbox}from"./Checkbox";const DEFAULT_MAX_ITEMS=11;export const CheckboxListComponent=({items:e,fieldApi:t,validateOnChange:o,maxDisplayedItems:l,showControls:r,trimItemsLength:c})=>{const[a,s]=useState(!0),n=e=>t.getValue().includes(e),i=t.getError(),d=l||11,m=c&&a?e.slice(0,d):e;return React.createElement("div",null,r?React.createElement(CodeBlockControls,{controls:{select:{onClick:()=>{t.setValue(e)},label:"Select all",tooltipText:"Select all checkboxes"},deselect:{onClick:()=>{t.setValue([])},label:"Deselect all",tooltipText:"Deselect all checkboxes"}}}):null,React.createElement(ListWrapper,null,m.map((e=>React.createElement(Checkbox,{fullWidth:!0,id:e,value:e,checked:n(e),label:e,key:e,onChange:e=>{(e=>{const o=e.target.value,l=e.target.checked;t.setTouched(!0);const r=t.getValue()||[];let c;if(l)c=[...r,o];else{const e=r.indexOf(o);c=[...r.slice(0,e),...r.slice(e+1)]}t.setValue(c)})(e),o&&t.validate()}}))),e.length>d&&c?React.createElement(ToggleButton,{onClick:()=>{s((e=>!e))}},a?"Show all":"Collapse"):null),i?React.createElement(FormError,null,i):"")};export const CheckboxList=asField(CheckboxListComponent);const ListWrapper=styled.div`
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
- name: string;
7
+ fieldName: string;
8
8
  }
9
9
  export declare const FileUpload: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange"> & FileUploadProps & React.RefAttributes<HTMLInputElement>>;
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,n,a){return new(n||(n=Promise))((function(o,r){function i(e){try{c(a.next(e))}catch(e){r(e)}}function l(e){try{c(a.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((a=a.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]])}return n};import React,{forwardRef}from"react";import{useField}from"informed";import{getFileToUpload}from"./helper";export const FileUpload=forwardRef(((e,t)=>{var n=__rest(e,[]);const{schema:a,contentName:o,onChange:r,name:i}=n,l=__rest(n,["schema","contentName","onChange","name"]),{render:c}=useField(Object.assign({field:i},l));return c(React.createElement("input",{"data-cy":"file-upload-input",type:"file",id:n.id,className:n.className,name:n.name,onChange:e=>__awaiter(void 0,void 0,void 0,(function*(){const t=yield getFileToUpload(e.target.files,a);r(o,t)})),multiple:n.multiple,accept:n.accept,ref:t}))}));FileUpload.displayName="FileUpload";
1
+ var __awaiter=this&&this.__awaiter||function(e,t,a,o){return new(a||(a=Promise))((function(n,i){function r(e){try{l(o.next(e))}catch(e){i(e)}}function c(e){try{l(o.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(r,c)}l((o=o.apply(e,t||[])).next())}))};import React,{forwardRef}from"react";import{useFormContext}from"react-hook-form";import{getFileToUpload}from"./helper";export const FileUpload=forwardRef((({schema:e,contentName:t,onChange:a,fieldName:o,className:n,accept:i,multiple:r},c)=>{const{register:l}=useFormContext();return React.createElement("input",Object.assign({},l(o),{"data-cy":"file-upload-input",type:"file",id:o,className:n,name:o,onChange:o=>__awaiter(void 0,void 0,void 0,(function*(){const n=yield getFileToUpload(o.target.files,e);a(t,n)})),multiple:r,accept:i,ref:c}))}));FileUpload.displayName="FileUpload";
2
2
  //# sourceMappingURL=FileUpload.js.map
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { FieldProps } from 'informed';
2
+ import type { UseControllerProps } from 'react-hook-form/dist/types/controller';
3
3
  import type { FlattenInterpolation, ThemeProps } from 'styled-components';
4
4
  import type { DropdownOption, DropdownProps } from './Dropdown';
5
5
  export declare const getInvertedInputStyles: (panelType: 'samples' | 'try-it') => FlattenInterpolation<ThemeProps<unknown>>;
@@ -20,9 +20,16 @@ export interface TextFieldExtraProps extends React.InputHTMLAttributes<HTMLInput
20
20
  panel?: 'samples' | 'try-it';
21
21
  }
22
22
  export declare const TextField: React.ForwardRefExoticComponent<TextFieldExtraProps & React.RefAttributes<HTMLInputElement>>;
23
- export declare function FormTextField(props: FieldProps<string, GenericObject> & TextFieldExtraProps): JSX.Element;
24
- export interface FormDropdownProps extends Partial<DropdownProps> {
23
+ type FormFieldProps = {
24
+ fieldName: string;
25
+ defaultValue?: string;
26
+ rules?: UseControllerProps['rules'];
27
+ validateOnBlur?: boolean;
28
+ validateOnChange?: boolean;
29
+ };
30
+ export declare function FormTextField({ id, fieldName, defaultValue, rules, validateOnBlur, validateOnChange, ...rest }: TextFieldExtraProps & FormFieldProps): JSX.Element;
31
+ export interface FormDropdownProps extends Partial<DropdownProps>, FormFieldProps {
25
32
  options: DropdownOption[];
26
- initValue?: string;
27
33
  }
28
- export declare const FormDropdown: React.ComponentType<FieldProps<string, any> & FormDropdownProps>;
34
+ export declare const FormDropdown: React.NamedExoticComponent<FormDropdownProps>;
35
+ export {};
@@ -1,4 +1,4 @@
1
- var __rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r};import{asField,useField}from"informed";import styled,{css}from"styled-components";import React,{forwardRef,useCallback,useState}from"react";import{useMount}from"@redocly/theme";import{FormError}from"./form";import{Dropdown}from"./Dropdown";export const getInvertedInputStyles=e=>css`
1
+ var __rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r};import styled,{css}from"styled-components";import React,{forwardRef,useCallback,useState,memo}from"react";import{useFormContext,Controller}from"react-hook-form";import{FormError}from"./form";import{Dropdown}from"./Dropdown";import{isNull}from"../../utils";export const getInvertedInputStyles=e=>css`
2
2
  border: var(--input-border);
3
3
  outline: none;
4
4
  padding: var(--input-padding);
@@ -75,5 +75,5 @@ var __rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.proto
75
75
  cursor: pointer;
76
76
  text-align: center;
77
77
  color: var(--panel-samples-text-color);
78
- `;function TextFieldComponent(e,t){var{fullWidth:r,errorMessage:o,type:n,inputActionButton:l,panel:i="samples"}=e,a=__rest(e,["fullWidth","errorMessage","type","inputActionButton","panel"]);const[p,u]=useState("password"===n),c=useCallback((()=>{u(!p)}),[p]);return React.createElement(TextFieldWrapper,{fullWidth:r,type:n},React.createElement(InputWrap,null,React.createElement(StyledInput,Object.assign({fullWidth:r,inputActionButton:l,type:p?"password":"text",inputType:n,ref:t,panel:i},a)),l?React.createElement(InputActionButton,{onClick:l.onClick},l.label):"password"===n?React.createElement(InputActionButton,{onClick:c},p?"show":"hide"):null),o?React.createElement(FormError,null,o):null)}export const TextField=forwardRef(TextFieldComponent);export function FormTextField(e){const t=useField(Object.assign({fieldType:"text"},e)),{userProps:r,render:o,fieldState:n}=t,l=t.informed;return o(React.createElement(TextField,Object.assign({},r,l,{errorMessage:n.error})))}const FormDropdownInt=({initValue:e,options:t,fieldApi:r,fieldState:o})=>{const n=t.map(((e,t)=>({value:e.title||e.value,idx:t,origValue:e.value}))),l=n.find((t=>t.origValue===e)),[i,a]=useState(null==l?void 0:l.value);useMount((()=>{e&&r.setValue(e)}));const p=useCallback((e=>{r.setValue(n[e.idx].origValue),a(n[e.idx].value)}),[r,n]);return React.createElement(TextFieldWrapper,{fullWidth:!0},React.createElement(Dropdown,{fullWidth:!0,variant:"dark",value:i,options:n,onChange:p}),o.error?React.createElement(FormError,null,o.error):null)};export const FormDropdown=asField(FormDropdownInt);
78
+ `;function TextFieldComponent(e,t){var{fullWidth:r,errorMessage:o,type:n,inputActionButton:l,panel:a="samples"}=e,i=__rest(e,["fullWidth","errorMessage","type","inputActionButton","panel"]);const[u,p]=useState("password"===n);return React.createElement(TextFieldWrapper,{fullWidth:r,type:n},React.createElement(InputWrap,null,React.createElement(StyledInput,Object.assign({fullWidth:r,inputActionButton:l,type:u?"password":"text",inputType:n,ref:t,panel:a},i)),l?React.createElement(InputActionButton,{onClick:l.onClick},l.label):"password"===n?React.createElement(InputActionButton,{onClick:()=>{p(!u)}},u?"show":"hide"):null),o?React.createElement(FormError,null,o):null)}export const TextField=forwardRef(TextFieldComponent);export function FormTextField(e){var{id:t,fieldName:r,defaultValue:o="",rules:n,validateOnBlur:l,validateOnChange:a}=e,i=__rest(e,["id","fieldName","defaultValue","rules","validateOnBlur","validateOnChange"]);const{setValue:u,getFieldState:p,control:c,trigger:d}=useFormContext(),s=e=>{u(r,e.target.value),a&&d(r)},v=()=>{l&&d(r)},{error:m}=p(r);return React.createElement(Controller,{control:c,name:r,defaultValue:o,rules:n,render:({field:{value:e=""}})=>React.createElement(TextField,Object.assign({},i,{id:t||r,name:r,value:isNull(e)?"":e,onChange:s,onBlur:v,errorMessage:null==m?void 0:m.message}))})}const FormDropdownComponent=({fieldName:e,options:t,defaultValue:r,rules:o,validateOnChange:n})=>{const{setValue:l,getFieldState:a,control:i,trigger:u}=useFormContext(),p=t.map(((e,t)=>({value:e.title||e.value,idx:t,origValue:e.value}))),c=useCallback((t=>{l(e,p[t.idx].origValue),n&&u(e)}),[e,p,l,u,n]),{error:d}=a(e);return React.createElement(TextFieldWrapper,{fullWidth:!0},React.createElement(Controller,{control:i,name:e,defaultValue:r,rules:o,render:({field:{value:e}})=>{var t;const r=null===(t=p.find((t=>t.origValue===e)))||void 0===t?void 0:t.value;return React.createElement(Dropdown,{fullWidth:!0,variant:"dark",value:r,options:p,onChange:c})}}),d?React.createElement(FormError,null,d):null)};export const FormDropdown=memo(FormDropdownComponent);
79
79
  //# sourceMappingURL=TextField.js.map
@@ -1,12 +1,11 @@
1
1
  import React from 'react';
2
- import type { FormValues } from 'informed';
3
2
  import type { OperationModel } from '../../models';
4
3
  export interface ActionPanelProps {
5
- execute: () => void;
4
+ onSubmit: () => void;
6
5
  loading: boolean;
7
6
  operation: OperationModel;
8
- params: FormValues;
7
+ params: Record<string, GenericObject>;
9
8
  hasResponse: boolean;
10
9
  }
11
- export declare const ActionPanelComponent: ({ loading, operation, hasResponse, execute, params, }: ActionPanelProps) => JSX.Element;
10
+ export declare const ActionPanelComponent: ({ loading, operation, hasResponse, onSubmit, params, }: ActionPanelProps) => JSX.Element;
12
11
  export declare const ActionPanel: React.NamedExoticComponent<ActionPanelProps>;
@@ -1,4 +1,4 @@
1
- import React,{memo}from"react";import styled from"styled-components";import{serializeParameterValue}from"../../utils";import{CodeHeader}from"../Panel";import{Path,PathWrapper,TryItButton}from"../Endpoint";import{HttpVerb}from"../shared";import{expandVariables}from"./utils";function formatPath(e,t,r){const n=t.path||{},a=t.query||{},o=Object.keys(a);let i=expandVariables(e,n);return o.length&&(i+="?"+o.map((e=>{if(!a[e])return"";const t=(e=>r.find((t=>t.name===e&&"query"===t.in)))(e);return t?serializeParameterValue(t,a[e]):`${e}=${encodeURIComponent(a[e])}`})).filter(Boolean).join("&")),i}export const ActionPanelComponent=({loading:e,operation:t,hasResponse:r,execute:n,params:a={}})=>React.createElement(CodeHeader,null,React.createElement(PathWrapper,null,React.createElement(HttpVerb,{color:t.httpVerb},t.httpVerb),React.createElement(Path,{wrap:"true"},formatPath(t.path,a,t.parameters))),React.createElement(SendButton,{"data-cy":"send-button",color:"primary",blinking:e,onClick:()=>!e&&n()},e?"Sending...":r?"Resend":"Send"));const SendButton=styled(TryItButton)`
1
+ import React,{memo}from"react";import styled from"styled-components";import{serializeParameterValue}from"../../utils";import{CodeHeader}from"../Panel";import{Path,PathWrapper,TryItButton}from"../Endpoint";import{HttpVerb}from"../shared";import{expandVariables}from"./utils";function formatPath(e,t,r){const n=t.path||{},a=t.query||{},o=Object.keys(a);let i=expandVariables(e,n);return o.length&&(i+="?"+o.map((e=>{if(!a[e])return"";const t=(e=>r.find((t=>t.name===e&&"query"===t.in)))(e);return t?serializeParameterValue(t,a[e]):`${e}=${encodeURIComponent(a[e])}`})).filter(Boolean).join("&")),i}export const ActionPanelComponent=({loading:e,operation:t,hasResponse:r,onSubmit:n,params:a={}})=>React.createElement(CodeHeader,null,React.createElement(PathWrapper,null,React.createElement(HttpVerb,{color:t.httpVerb},t.httpVerb),React.createElement(Path,{wrap:"true"},formatPath(t.path,a,t.parameters))),React.createElement(SendButton,{"data-cy":"send-button",color:"primary",type:"submit",blinking:e,onClick:()=>!e&&n()},e?"Sending...":r?"Resend":"Send"));const SendButton=styled(TryItButton)`
2
2
  width: var(--panel-try-it-action-button-width);
3
3
  `;export const ActionPanel=memo(ActionPanelComponent);
4
4
  //# sourceMappingURL=ActionPanel.js.map