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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/console.redocly-openapi-docs.min.js +163 -180
  2. package/dist/oauth2-redirect.js +1 -1
  3. package/dist/redocly-openapi-docs.min.js +1025 -972
  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,r,t,a){void 0===a&&(a=t);var l=Object.getOwnPropertyDescriptor(r,t);l&&!("get"in l?!r.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,l)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationParameters=void 0;const react_1=__importStar(require("react")),utils_1=require("../../utils"),form_1=require("../common/form"),TextField_1=require("../common/TextField"),ParameterDropdown_1=require("../rightPanel/ParameterDropdown"),ParameterArray_1=require("../rightPanel/ParameterArray"),types_1=require("./types"),utils_2=require("./utils"),PARAM_PLACES=["path","query","cookie","header"];function FormControlWrapper({id:e,param:r,values:t}){const a=(0,react_1.useMemo)((()=>(0,utils_2.createValidator)(r)),[r]),l=Array.isArray(r.schema.enum)&&r.schema.enum.length?r.schema.enum:void 0,n=(0,utils_2.getInitialValue)(r.schema),i=e.split(".").map((e=>(0,utils_1.unescapeFormId)(e)));return l?react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(ParameterDropdown_1.ParameterEnumDropdown,{initValue:n,paramEnum:l,field:e})):react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,"data-cy":"parameter-input",id:e,field:e,placeholder:(0,utils_2.placeholder)(r),validate:a,initialValue:n||(0,utils_1.get)(t,i),validateOnBlur:!0,validateOnChange:!0})}function OperationParameters({values:e,operation:r}){const t=(0,react_1.useMemo)((()=>(0,utils_2.orderParams)(r.parameters||[])),[r]),a=(r,t,l,n,i)=>{var o;const u=l?(0,utils_1.dottedString)(l,r.name):r.name,m=(0,utils_2.isNotSupported)(r.schema),c=l?[t,l]:[r.in],s=(0,utils_1.dottedString)(...c,(0,utils_1.escapeFormId)(r.name));m&&console.warn(`Unsupported parameter definition: "${m}"`);return(Array.isArray(r.schema.type)?r.schema.type:[r.schema.type]).includes(types_1.SchemaType.ARRAY)?react_1.default.createElement(ParameterArray_1.ParameterArray,{key:s,name:u,param:r,place:t,renderParameter:a}):r.schema.type===types_1.SchemaType.OBJECT?null===(o=r.schema.fields)||void 0===o?void 0:o.map((e=>a(e,t,u))):react_1.default.createElement(form_1.FormControl,{key:s},react_1.default.createElement(form_1.FormLabel,{required:r.required},n||u,": ",i),m?react_1.default.createElement(form_1.FormWarning,null,"Unsupported field schema definition"):react_1.default.createElement(FormControlWrapper,{id:s,param:r,values:e}))};return react_1.default.createElement(form_1.Table,null,PARAM_PLACES.map((e=>{const r=t[e];return r&&r.length?react_1.default.createElement(react_1.Fragment,{key:e},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.GroupLabel,null," # ",e," parameters "),react_1.default.createElement("span",null," ")),r.map((r=>a(r,e)))):null})))}exports.OperationParameters=OperationParameters;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var l=Object.getOwnPropertyDescriptor(r,t);l&&!("get"in l?!r.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,l)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationParameters=void 0;const react_1=__importStar(require("react")),utils_1=require("../../utils"),form_1=require("../common/form"),TextField_1=require("../common/TextField"),ParameterDropdown_1=require("../rightPanel/ParameterDropdown"),ParameterArray_1=require("../rightPanel/ParameterArray"),types_1=require("./types"),utils_2=require("./utils"),PARAM_PLACES=["path","query","cookie","header"];function FormControlWrapper({id:e,param:r,values:t}){const a=(0,react_1.useMemo)((()=>(0,utils_2.createValidator)(r)),[r]),l=Array.isArray(r.schema.enum)&&r.schema.enum.length?r.schema.enum:void 0,n=(0,utils_2.getInitialValue)(r.schema),o=e.split(".").map((e=>(0,utils_1.unescapeFormId)(e)));return l?react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(ParameterDropdown_1.ParameterEnumDropdown,{defaultValue:n,paramEnum:l,fieldName:e})):react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,"data-cy":"parameter-input",id:e,fieldName:e,placeholder:(0,utils_2.placeholder)(r),rules:{validate:a},defaultValue:n||(0,utils_1.get)(t,o),validateOnBlur:!0,validateOnChange:!0})}function OperationParameters({values:e,operation:r}){const t=(0,react_1.useMemo)((()=>(0,utils_2.orderParams)(r.parameters||[])),[r]),a=(r,t,l,n,o)=>{var i;const u=l?(0,utils_1.dottedString)(l,r.name):r.name,m=(0,utils_2.isNotSupported)(r.schema),c=l?[t,l]:[r.in],s=(0,utils_1.dottedString)(...c,(0,utils_1.escapeFormId)(r.name));m&&console.warn(`Unsupported parameter definition: "${m}"`);return(Array.isArray(r.schema.type)?r.schema.type:[r.schema.type]).includes(types_1.SchemaType.ARRAY)?react_1.default.createElement(ParameterArray_1.ParameterArray,{key:s,name:u,param:r,place:t,renderParameter:a}):r.schema.type===types_1.SchemaType.OBJECT?null===(i=r.schema.fields)||void 0===i?void 0:i.map((e=>a(e,t,u))):react_1.default.createElement(form_1.FormControl,{key:s},react_1.default.createElement(form_1.FormLabel,{required:r.required},n||u,": ",o),m?react_1.default.createElement(form_1.FormWarning,null,"Unsupported field schema definition"):react_1.default.createElement(FormControlWrapper,{id:s,param:r,values:e}))};return react_1.default.createElement(form_1.Table,null,PARAM_PLACES.map((e=>{const r=t[e];return r&&r.length?react_1.default.createElement(react_1.Fragment,{key:e},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.GroupLabel,null," # ",e," parameters "),react_1.default.createElement("span",null," ")),r.map((r=>a(r,e)))):null})))}exports.OperationParameters=OperationParameters;
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
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var l=Object.getOwnPropertyDescriptor(t,r);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,l)}: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},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CheckboxList=exports.CheckboxListComponent=void 0;const informed_1=require("informed"),theme_1=require("@redocly/theme"),react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),form_1=require("./form"),Checkbox_1=require("./Checkbox"),DEFAULT_MAX_ITEMS=11,CheckboxListComponent=({items:e,fieldApi:t,validateOnChange:r,maxDisplayedItems:o,showControls:l,trimItemsLength:a})=>{const[n,i]=(0,react_1.useState)(!0),c=e=>t.getValue().includes(e),s=t.getError(),u=o||11,d=a&&n?e.slice(0,u):e;return react_1.default.createElement("div",null,l?react_1.default.createElement(theme_1.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_1.default.createElement(ListWrapper,null,d.map((e=>react_1.default.createElement(Checkbox_1.Checkbox,{fullWidth:!0,id:e,value:e,checked:c(e),label:e,key:e,onChange:e=>{(e=>{const r=e.target.value,o=e.target.checked;t.setTouched(!0);const l=t.getValue()||[];let a;if(o)a=[...l,r];else{const e=l.indexOf(r);a=[...l.slice(0,e),...l.slice(e+1)]}t.setValue(a)})(e),r&&t.validate()}}))),e.length>u&&a?react_1.default.createElement(ToggleButton,{onClick:()=>{i((e=>!e))}},n?"Show all":"Collapse"):null),s?react_1.default.createElement(form_1.FormError,null,s):"")};exports.CheckboxListComponent=CheckboxListComponent,exports.CheckboxList=(0,informed_1.asField)(exports.CheckboxListComponent);const ListWrapper=styled_components_1.default.div`
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var l=Object.getOwnPropertyDescriptor(t,r);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,l)}: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},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CheckboxList=exports.CheckboxListComponent=void 0;const theme_1=require("@redocly/theme"),react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),react_hook_form_1=require("react-hook-form"),form_1=require("./form"),Checkbox_1=require("./Checkbox"),DEFAULT_MAX_ITEMS=11,CheckboxListComponent=({fieldName:e,defaultValue:t,items:r,validateOnChange:o,maxDisplayedItems:l,showControls:a,trimItemsLength:n})=>{var c;const{control:i,setValue:s,getValues:u,formState:_,trigger:d}=(0,react_hook_form_1.useFormContext)(),[m,f]=(0,react_1.useState)(!0),p=t=>u(e).includes(t),h=null===(c=_.errors[e])||void 0===c?void 0:c.message,b=l||11,C=n&&m?r.slice(0,b):r;return react_1.default.createElement("div",null,a?react_1.default.createElement(theme_1.CodeBlockControls,{controls:{select:{onClick:()=>{s(e,r)},label:"Select all",tooltipText:"Select all checkboxes"},deselect:{onClick:()=>{s(e,[])},label:"Deselect all",tooltipText:"Deselect all checkboxes"}}}):null,react_1.default.createElement(ListWrapper,null,react_1.default.createElement(react_hook_form_1.Controller,{control:i,name:e,defaultValue:t,render:()=>react_1.default.createElement(react_1.default.Fragment,null,C.map((t=>react_1.default.createElement(Checkbox_1.Checkbox,{fullWidth:!0,id:t,value:t,checked:p(t),label:t,key:t,onChange:t=>{(t=>{const r=t.target.value,o=t.target.checked,l=u(e)||[];let a;if(o)a=[...l,r];else{const e=l.indexOf(r);a=[...l.slice(0,e),...l.slice(e+1)]}s(e,a)})(t),o&&d(e)}}))))}),r.length>b&&n?react_1.default.createElement(ToggleButton,{onClick:()=>{f((e=>!e))}},m?"Show all":"Collapse"):null),h?react_1.default.createElement(form_1.FormError,null,h):"")};exports.CheckboxListComponent=CheckboxListComponent,exports.CheckboxList=(0,react_1.memo)(exports.CheckboxListComponent);const ListWrapper=styled_components_1.default.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
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=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,n,i)}: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(i,a){function o(e){try{c(n.next(e))}catch(e){a(e)}}function l(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,l)}c((n=n.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FileUpload=void 0;const react_1=__importStar(require("react")),informed_1=require("informed"),helper_1=require("./helper");exports.FileUpload=(0,react_1.forwardRef)(((e,t)=>{var r=__rest(e,[]);const{schema:n,contentName:i,onChange:a,name:o}=r,l=__rest(r,["schema","contentName","onChange","name"]),{render:c}=(0,informed_1.useField)(Object.assign({field:o},l));return c(react_1.default.createElement("input",{"data-cy":"file-upload-input",type:"file",id:r.id,className:r.className,name:r.name,onChange:e=>__awaiter(void 0,void 0,void 0,(function*(){const t=yield(0,helper_1.getFileToUpload)(e.target.files,n);a(i,t)})),multiple:r.multiple,accept:r.accept,ref:t}))})),exports.FileUpload.displayName="FileUpload";
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,a){void 0===a&&(a=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,a,i)}: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},__awaiter=this&&this.__awaiter||function(e,t,r,a){return new(r||(r=Promise))((function(i,n){function o(e){try{l(a.next(e))}catch(e){n(e)}}function c(e){try{l(a.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,c)}l((a=a.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FileUpload=void 0;const react_1=__importStar(require("react")),react_hook_form_1=require("react-hook-form"),helper_1=require("./helper");exports.FileUpload=(0,react_1.forwardRef)((({schema:e,contentName:t,onChange:r,fieldName:a,className:i,accept:n,multiple:o},c)=>{const{register:l}=(0,react_hook_form_1.useFormContext)();return react_1.default.createElement("input",Object.assign({},l(a),{"data-cy":"file-upload-input",type:"file",id:a,className:i,name:a,onChange:a=>__awaiter(void 0,void 0,void 0,(function*(){const i=yield(0,helper_1.getFileToUpload)(a.target.files,e);r(t,i)})),multiple:o,accept:n,ref:c}))})),exports.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
- "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},__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};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDropdown=exports.FormTextField=exports.TextField=exports.StyledInput=exports.getInvertedInputStyles=void 0;const informed_1=require("informed"),styled_components_1=__importStar(require("styled-components")),react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),form_1=require("./form"),Dropdown_1=require("./Dropdown"),getInvertedInputStyles=e=>styled_components_1.css`
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},__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};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDropdown=exports.FormTextField=exports.TextField=exports.StyledInput=exports.getInvertedInputStyles=void 0;const styled_components_1=__importStar(require("styled-components")),react_1=__importStar(require("react")),react_hook_form_1=require("react-hook-form"),form_1=require("./form"),Dropdown_1=require("./Dropdown"),utils_1=require("../../utils"),getInvertedInputStyles=e=>styled_components_1.css`
2
2
  border: var(--input-border);
3
3
  outline: none;
4
4
  padding: var(--input-padding);
@@ -46,5 +46,5 @@
46
46
  cursor: pointer;
47
47
  text-align: center;
48
48
  color: var(--panel-samples-text-color);
49
- `;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[u,p]=(0,react_1.useState)("password"===n),d=(0,react_1.useCallback)((()=>{p(!u)}),[u]);return react_1.default.createElement(TextFieldWrapper,{fullWidth:r,type:n},react_1.default.createElement(InputWrap,null,react_1.default.createElement(exports.StyledInput,Object.assign({fullWidth:r,inputActionButton:l,type:u?"password":"text",inputType:n,ref:t,panel:i},a)),l?react_1.default.createElement(InputActionButton,{onClick:l.onClick},l.label):"password"===n?react_1.default.createElement(InputActionButton,{onClick:d},u?"show":"hide"):null),o?react_1.default.createElement(form_1.FormError,null,o):null)}function FormTextField(e){const t=(0,informed_1.useField)(Object.assign({fieldType:"text"},e)),{userProps:r,render:o,fieldState:n}=t,l=t.informed;return o(react_1.default.createElement(exports.TextField,Object.assign({},r,l,{errorMessage:n.error})))}exports.TextField=(0,react_1.forwardRef)(TextFieldComponent),exports.FormTextField=FormTextField;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]=(0,react_1.useState)(null==l?void 0:l.value);(0,theme_1.useMount)((()=>{e&&r.setValue(e)}));const u=(0,react_1.useCallback)((e=>{r.setValue(n[e.idx].origValue),a(n[e.idx].value)}),[r,n]);return react_1.default.createElement(TextFieldWrapper,{fullWidth:!0},react_1.default.createElement(Dropdown_1.Dropdown,{fullWidth:!0,variant:"dark",value:i,options:n,onChange:u}),o.error?react_1.default.createElement(form_1.FormError,null,o.error):null)};exports.FormDropdown=(0,informed_1.asField)(FormDropdownInt);
49
+ `;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,d]=(0,react_1.useState)("password"===n);return react_1.default.createElement(TextFieldWrapper,{fullWidth:r,type:n},react_1.default.createElement(InputWrap,null,react_1.default.createElement(exports.StyledInput,Object.assign({fullWidth:r,inputActionButton:l,type:u?"password":"text",inputType:n,ref:t,panel:a},i)),l?react_1.default.createElement(InputActionButton,{onClick:l.onClick},l.label):"password"===n?react_1.default.createElement(InputActionButton,{onClick:()=>{d(!u)}},u?"show":"hide"):null),o?react_1.default.createElement(form_1.FormError,null,o):null)}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:d,control:p,trigger:c}=(0,react_hook_form_1.useFormContext)(),s=e=>{u(r,e.target.value),a&&c(r)},f=()=>{l&&c(r)},{error:_}=d(r);return react_1.default.createElement(react_hook_form_1.Controller,{control:p,name:r,defaultValue:o,rules:n,render:({field:{value:e=""}})=>react_1.default.createElement(exports.TextField,Object.assign({},i,{id:t||r,name:r,value:(0,utils_1.isNull)(e)?"":e,onChange:s,onBlur:f,errorMessage:null==_?void 0:_.message}))})}exports.TextField=(0,react_1.forwardRef)(TextFieldComponent),exports.FormTextField=FormTextField;const FormDropdownComponent=({fieldName:e,options:t,defaultValue:r,rules:o,validateOnChange:n})=>{const{setValue:l,getFieldState:a,control:i,trigger:u}=(0,react_hook_form_1.useFormContext)(),d=t.map(((e,t)=>({value:e.title||e.value,idx:t,origValue:e.value}))),p=(0,react_1.useCallback)((t=>{l(e,d[t.idx].origValue),n&&u(e)}),[e,d,l,u,n]),{error:c}=a(e);return react_1.default.createElement(TextFieldWrapper,{fullWidth:!0},react_1.default.createElement(react_hook_form_1.Controller,{control:i,name:e,defaultValue:r,rules:o,render:({field:{value:e}})=>{var t;const r=null===(t=d.find((t=>t.origValue===e)))||void 0===t?void 0:t.value;return react_1.default.createElement(Dropdown_1.Dropdown,{fullWidth:!0,variant:"dark",value:r,options:d,onChange:p})}}),c?react_1.default.createElement(form_1.FormError,null,c):null)};exports.FormDropdown=(0,react_1.memo)(FormDropdownComponent);
50
50
  //# 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
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),__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 n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);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.ActionPanel=exports.ActionPanelComponent=void 0;const react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),utils_1=require("../../utils"),Panel_1=require("../Panel"),Endpoint_1=require("../Endpoint"),shared_1=require("../shared"),utils_2=require("./utils");function formatPath(e,t,n){const r=t.path||{},o=t.query||{},a=Object.keys(o);let i=(0,utils_2.expandVariables)(e,r);return a.length&&(i+="?"+a.map((e=>{if(!o[e])return"";const t=(e=>n.find((t=>t.name===e&&"query"===t.in)))(e);return t?(0,utils_1.serializeParameterValue)(t,o[e]):`${e}=${encodeURIComponent(o[e])}`})).filter(Boolean).join("&")),i}const ActionPanelComponent=({loading:e,operation:t,hasResponse:n,execute:r,params:o={}})=>react_1.default.createElement(Panel_1.CodeHeader,null,react_1.default.createElement(Endpoint_1.PathWrapper,null,react_1.default.createElement(shared_1.HttpVerb,{color:t.httpVerb},t.httpVerb),react_1.default.createElement(Endpoint_1.Path,{wrap:"true"},formatPath(t.path,o,t.parameters))),react_1.default.createElement(SendButton,{"data-cy":"send-button",color:"primary",blinking:e,onClick:()=>!e&&r()},e?"Sending...":n?"Resend":"Send"));exports.ActionPanelComponent=ActionPanelComponent;const SendButton=(0,styled_components_1.default)(Endpoint_1.TryItButton)`
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),__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 n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);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.ActionPanel=exports.ActionPanelComponent=void 0;const react_1=__importStar(require("react")),styled_components_1=__importDefault(require("styled-components")),utils_1=require("../../utils"),Panel_1=require("../Panel"),Endpoint_1=require("../Endpoint"),shared_1=require("../shared"),utils_2=require("./utils");function formatPath(e,t,n){const r=t.path||{},o=t.query||{},a=Object.keys(o);let i=(0,utils_2.expandVariables)(e,r);return a.length&&(i+="?"+a.map((e=>{if(!o[e])return"";const t=(e=>n.find((t=>t.name===e&&"query"===t.in)))(e);return t?(0,utils_1.serializeParameterValue)(t,o[e]):`${e}=${encodeURIComponent(o[e])}`})).filter(Boolean).join("&")),i}const ActionPanelComponent=({loading:e,operation:t,hasResponse:n,onSubmit:r,params:o={}})=>react_1.default.createElement(Panel_1.CodeHeader,null,react_1.default.createElement(Endpoint_1.PathWrapper,null,react_1.default.createElement(shared_1.HttpVerb,{color:t.httpVerb},t.httpVerb),react_1.default.createElement(Endpoint_1.Path,{wrap:"true"},formatPath(t.path,o,t.parameters))),react_1.default.createElement(SendButton,{"data-cy":"send-button",color:"primary",type:"submit",blinking:e,onClick:()=>!e&&r()},e?"Sending...":n?"Resend":"Send"));exports.ActionPanelComponent=ActionPanelComponent;const SendButton=(0,styled_components_1.default)(Endpoint_1.TryItButton)`
2
2
  width: var(--panel-try-it-action-button-width);
3
3
  `;exports.ActionPanel=(0,react_1.memo)(exports.ActionPanelComponent);
4
4
  //# sourceMappingURL=ActionPanel.js.map
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import type { AuthPanelProps } from './types';
3
- export declare const AuthPanel: ({ securityDefaults, operation, activeServer, authCorsProxyUrl, form, formApi, }: AuthPanelProps) => JSX.Element | null;
3
+ export declare const AuthPanel: ({ securityDefaults, operation, activeServer, authCorsProxyUrl, }: AuthPanelProps) => JSX.Element | null;
@@ -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},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AuthPanel=void 0;const react_1=__importStar(require("react")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),utils_1=require("../../../utils"),styled_1=require("../styled"),form_1=require("../../common/form"),TextField_1=require("../../common/TextField"),OpenIDConnect_1=require("../OpenIDConnect"),utils_2=require("../utils"),OAuth2Flow_1=require("../OAuth2Flow"),services_1=require("../../../services"),OAuth2TokenInput_1=__importDefault(require("../OAuth2TokenInput")),store_1=require("../../../jotai/store"),AuthPanel=({securityDefaults:e,operation:t,activeServer:l,authCorsProxyUrl:r,form:a,formApi:i})=>{var o,n;const[u,s]=(0,react_1.useState)(0),{parser:d}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom);(0,react_1.useEffect)((()=>{const e=t.security.map((e=>e.schemes.map((e=>e.id)).join(" and "))),l=(0,utils_1.fromSessionStorage)("securityRequirementName"),r=e.findIndex((e=>e===l));s(r<0?0:r)}),[t]);const c=t.security,f=c.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean).map(((e,t)=>({value:e,idx:t})));if(0===f.length)return react_1.default.createElement(OpenIDConnect_1.Error,{message:"Cannot find security schema in the definition"});const m=c[u],_=(0,utils_1.escapeFormId)(m.schemes[0].id);return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(form_1.FormWrapper,null,f.length>1&&react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Security scheme: "),react_1.default.createElement(styled_1.TryItDropdown,{variant:"dark",fullWidth:!0,options:f,value:f[u].value,onChange:e=>{s(e.idx),(0,utils_1.toSessionStorage)("securityRequirementName",e.value)}}))||null,react_1.default.createElement(theme_1.TryItSecurityApps,{apiId:null===(n=null===(o=null==d?void 0:d.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===n?void 0:n.apiId,value:i.getValue(`auth.${_}`),onChange:e=>{i.setValue(`auth.${_}`,e)}}),c[u].schemes.map((t=>{var o,n,u,s,d,c,f;const m=(0,utils_1.escapeFormId)(t.id);if("apiKey"===t.type){const l=(0,utils_1.getSecurityDetailsOptions)(m,""),r={field:`auth.${m}`,fullWidth:!0,initialValue:(0,utils_2.fromCookie)(t)||(0,utils_1.fromSessionStorage)(`auth.${m}`)||(null==e?void 0:e[m]),initValue:(0,utils_2.fromCookie)(t)||(0,utils_1.fromSessionStorage)(`auth.${m}`)||(null==e?void 0:e[m]),validate:utils_2.requiredValidator,validateOnBlur:!0,validateOnChange:!0};return react_1.default.createElement(form_1.FormControl,{key:m},react_1.default.createElement(form_1.FormLabel,null," ",t.name,": "),l?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},r,{options:l})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},r,{type:"password",panel:"try-it","data-cy":"apiKey-auth-password"})))}if("http"===t.type){if("basic"===t.scheme){const t=(0,utils_1.getSecurityDetailsOptions)(m,"username"),l={field:`auth.${m}.username`,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)(`auth.${m}.username`)||(null===(o=null==e?void 0:e[m])||void 0===o?void 0:o.username),initValue:(0,utils_1.fromSessionStorage)(`auth.${m}.username`)||(null===(n=null==e?void 0:e[m])||void 0===n?void 0:n.username),validate:utils_2.requiredValidator,validateOnBlur:!0,validateOnChange:!0};return react_1.default.createElement(react_1.Fragment,{key:m},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," ",(0,services_1.l)("tryItAuthBasicUsername"),": "),t?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},l,{options:t})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},l,{panel:"try-it"}))),react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," ",(0,services_1.l)("tryItAuthBasicPassword"),": "),react_1.default.createElement(TextField_1.FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:`auth.${m}.password`,initialValue:(0,utils_1.fromSessionStorage)(`auth.${m}.password`)||(null===(u=null==e?void 0:e[m])||void 0===u?void 0:u.password)||"",validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("bearer"===t.scheme){const t=(0,utils_1.getSecurityDetailsOptions)(m,""),l={field:`auth.${m}`,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)(`auth.${m}`)||(null==e?void 0:e[m]),initValue:(0,utils_1.fromSessionStorage)(`auth.${m}`)||(null==e?void 0:e[m]),validate:utils_2.requiredValidator,validateOnBlur:!0,validateOnChange:!0};return react_1.default.createElement(react_1.Fragment,{key:m},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Bearer Token: "),t?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},l,{options:t})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},l,{type:"password",placeholder:"(without 'Bearer')",panel:"try-it"}))))}}else{if("oauth2"===t.type&&t.flows&&t.flows.clientCredentials)return react_1.default.createElement(OAuth2TokenInput_1.default,{key:m,flow:t.flows.clientCredentials,server:l,authCorsProxyUrl:r,id:m,form:a,formApi:i,clientId:t.flows.clientCredentials["x-defaultClientId"]||t["x-defaultClientId"],defaultValues:null==e?void 0:e[m]});if("oauth2"===t.type&&t.flows&&t.flows.implicit)return react_1.default.createElement(OAuth2Flow_1.OAuth2Flow,{key:m,authorizationUrl:t.flows.implicit.authorizationUrl,authCorsProxyUrl:r,scopes:Object.keys((null===(d=null===(s=null==t?void 0:t.flows)||void 0===s?void 0:s.implicit)||void 0===d?void 0:d.scopes)||{}),server:l,id:m,form:a,formApi:i,clientId:t.flows.implicit["x-defaultClientId"]||t["x-defaultClientId"],flow:"implicit",defaultValues:null==e?void 0:e[m]});if("oauth2"===t.type&&t.flows&&t.flows.authorizationCode)return react_1.default.createElement(OAuth2Flow_1.OAuth2Flow,{key:m,authorizationUrl:t.flows.authorizationCode.authorizationUrl,tokenUrl:t.flows.authorizationCode.tokenUrl,authCorsProxyUrl:r,scopes:Object.keys((null===(c=t.flows.authorizationCode)||void 0===c?void 0:c.scopes)||{}),server:l,id:m,form:a,formApi:i,clientId:t.flows.authorizationCode["x-defaultClientId"]||t["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:t.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:t.flows.authorizationCode["x-usePkce"],defaultValues:null==e?void 0:e[m]});if("oauth2"===t.type){let t=(0,utils_1.fromSessionStorage)(`auth.${m}.token`)||JSON.stringify(null===(f=null==e?void 0:e[m])||void 0===f?void 0:f.token);return t=t?JSON.parse(t):{},react_1.default.createElement(react_1.Fragment,{key:m},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Access Token Type: "),react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,field:`auth.${m}.token.token_type`,initialValue:t.token_type||"Bearer",panel:"try-it"})),react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Access Token: "),react_1.default.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:`auth.${m}.token.access_token`,validate:utils_2.requiredValidator,initialValue:t.access_token,validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("openIdConnect"===t.type)return react_1.default.createElement(OpenIDConnect_1.OpenIDConnect,{key:m,server:l,authCorsProxyUrl:r,id:m,form:a,formApi:i,scheme:t,clientId:t["x-defaultClientId"],defaultValues:null==e?void 0:e[m]})}}))),react_1.default.createElement("small",null,react_1.default.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))};exports.AuthPanel=AuthPanel;
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};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AuthPanel=void 0;const react_1=__importStar(require("react")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),react_hook_form_1=require("react-hook-form"),utils_1=require("../../../utils"),styled_1=require("../styled"),form_1=require("../../common/form"),TextField_1=require("../../common/TextField"),OpenIDConnect_1=require("../OpenIDConnect"),utils_2=require("../utils"),OAuth2Flow_1=require("../OAuth2Flow"),services_1=require("../../../services"),OAuth2TokenInput_1=require("../OAuth2TokenInput"),store_1=require("../../../jotai/store"),AuthPanel=({securityDefaults:e,operation:t,activeServer:r,authCorsProxyUrl:l})=>{var a,o;const{control:i,setValue:n,watch:u}=(0,react_hook_form_1.useFormContext)(),{parser:s}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),d=t.security,c=(0,react_1.useMemo)((()=>d.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean)),[d]),f=u("securityScheme"),m=(0,react_1.useMemo)((()=>{const e=c.findIndex((e=>e===f));return e<0?0:e}),[c,f]);(0,react_1.useEffect)((()=>{const e=(0,utils_1.fromSessionStorage)("securityRequirementName"),t=c.findIndex((t=>t===e));n("securityScheme",c[t<0?0:t])}),[c,t,n]);const _=(0,react_1.useCallback)((e=>{n("securityScheme",e.value),(0,utils_1.toSessionStorage)("securityRequirementName",e.value)}),[n]),h=(0,react_1.useMemo)((()=>c.map(((e,t)=>({value:e,idx:t})))),[c]);if(0===h.length)return react_1.default.createElement(OpenIDConnect_1.Error,{message:"Cannot find security schema in the definition"});const p=d[m],v=(0,utils_1.escapeFormId)(p.schemes[0].id),y=u(`auth.${v}`);return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(form_1.FormWrapper,null,h.length>1&&react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Security scheme: "),react_1.default.createElement(react_hook_form_1.Controller,{control:i,name:"securityScheme",render:({field:{value:e}})=>react_1.default.createElement(styled_1.TryItDropdown,{variant:"dark",fullWidth:!0,options:h,value:e,onChange:_})}))||null,react_1.default.createElement(theme_1.TryItSecurityApps,{apiId:null===(o=null===(a=null==s?void 0:s.definition.info)||void 0===a?void 0:a["x-metadata"])||void 0===o?void 0:o.apiId,value:y,onChange:e=>{n(`auth.${v}`,e)}}),p.schemes.map((t=>{var a,o,i,n,u,s;const d=(0,utils_1.escapeFormId)(t.id);if("apiKey"===t.type){const r=(0,utils_1.getSecurityDetailsOptions)(d,""),l={fieldName:`auth.${d}`,fullWidth:!0,defaultValue:(0,utils_2.fromCookie)(t)||(0,utils_1.fromSessionStorage)(`auth.${d}`)||(null==e?void 0:e[d]),rules:{validate:utils_2.requiredValidator},validateOnBlur:!0,validateOnChange:!0};return react_1.default.createElement(form_1.FormControl,{key:d},react_1.default.createElement(form_1.FormLabel,null," ",t.name,": "),r?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},l,{options:r})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},l,{type:"password",panel:"try-it","data-cy":"apiKey-auth-password"})))}if("http"===t.type){if("basic"===t.scheme){const t=(0,utils_1.getSecurityDetailsOptions)(d,"username"),r={fieldName:`auth.${d}.username`,fullWidth:!0,defaultValue:(0,utils_1.fromSessionStorage)(`auth.${d}.username`)||(null===(a=null==e?void 0:e[d])||void 0===a?void 0:a.username),validate:utils_2.requiredValidator,rules:{required:!0}};return react_1.default.createElement(react_1.Fragment,{key:d},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," ",(0,services_1.l)("tryItAuthBasicUsername"),": "),t?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},r,{options:t})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},r,{panel:"try-it"}))),react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," ",(0,services_1.l)("tryItAuthBasicPassword"),": "),react_1.default.createElement(TextField_1.FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,fieldName:`auth.${d}.password`,defaultValue:(0,utils_1.fromSessionStorage)(`auth.${d}.password`)||(null===(o=null==e?void 0:e[d])||void 0===o?void 0:o.password)||"",validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("bearer"===t.scheme){const t=(0,utils_1.getSecurityDetailsOptions)(d,""),r={fieldName:`auth.${d}`,fullWidth:!0,defaultValue:(0,utils_1.fromSessionStorage)(`auth.${d}`)||(null==e?void 0:e[d]),rules:{validate:utils_2.requiredValidator},validateOnBlur:!0,validateOnChange:!0};return react_1.default.createElement(react_1.Fragment,{key:d},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Bearer Token: "),t?react_1.default.createElement(TextField_1.FormDropdown,Object.assign({},r,{options:t})):react_1.default.createElement(TextField_1.FormTextField,Object.assign({},r,{type:"password",placeholder:"(without 'Bearer')",panel:"try-it"}))))}}else{if("oauth2"===t.type&&t.flows&&t.flows.clientCredentials)return react_1.default.createElement(OAuth2TokenInput_1.OAuth2TokenInput,{key:d,flow:t.flows.clientCredentials,server:r,authCorsProxyUrl:l,id:d,clientId:t.flows.clientCredentials["x-defaultClientId"]||t["x-defaultClientId"],defaultValues:null==e?void 0:e[d]});if("oauth2"===t.type&&t.flows&&t.flows.implicit)return react_1.default.createElement(OAuth2Flow_1.OAuth2Flow,{key:d,authorizationUrl:t.flows.implicit.authorizationUrl,authCorsProxyUrl:l,scopes:Object.keys((null===(n=null===(i=null==t?void 0:t.flows)||void 0===i?void 0:i.implicit)||void 0===n?void 0:n.scopes)||{}),server:r,id:d,clientId:t.flows.implicit["x-defaultClientId"]||t["x-defaultClientId"],flow:"implicit",defaultValues:null==e?void 0:e[d]});if("oauth2"===t.type&&t.flows&&t.flows.authorizationCode)return react_1.default.createElement(OAuth2Flow_1.OAuth2Flow,{key:d,authorizationUrl:t.flows.authorizationCode.authorizationUrl,tokenUrl:t.flows.authorizationCode.tokenUrl,authCorsProxyUrl:l,scopes:Object.keys((null===(u=t.flows.authorizationCode)||void 0===u?void 0:u.scopes)||{}),server:r,id:d,clientId:t.flows.authorizationCode["x-defaultClientId"]||t["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:t.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:t.flows.authorizationCode["x-usePkce"],defaultValues:null==e?void 0:e[d]});if("oauth2"===t.type){let t=(0,utils_1.fromSessionStorage)(`auth.${d}.token`)||JSON.stringify(null===(s=null==e?void 0:e[d])||void 0===s?void 0:s.token);return t=t?JSON.parse(t):{},react_1.default.createElement(react_1.Fragment,{key:d},react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Access Token Type: "),react_1.default.createElement(TextField_1.FormTextField,{fullWidth:!0,fieldName:`auth.${d}.token.token_type`,defaultValue:t.token_type||"Bearer",panel:"try-it"})),react_1.default.createElement(form_1.FormControl,null,react_1.default.createElement(form_1.FormLabel,null," Access Token: "),react_1.default.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,fieldName:`auth.${d}.token.access_token`,rules:{validate:utils_2.requiredValidator},defaultValue:t.access_token,validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("openIdConnect"===t.type)return react_1.default.createElement(OpenIDConnect_1.OpenIDConnect,{key:d,server:r,authCorsProxyUrl:l,id:d,scheme:t,clientId:t["x-defaultClientId"],defaultValues:null==e?void 0:e[d]})}}))),react_1.default.createElement("small",null,react_1.default.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))};exports.AuthPanel=AuthPanel;
2
2
  //# sourceMappingURL=AuthPanel.js.map
@@ -1,10 +1,7 @@
1
- import type { FormApi, FormState } from 'informed';
2
1
  import type { OperationModel } from '../../../models';
3
2
  import type { SecurityDetails } from '../../../types';
4
3
  export interface AuthPanelProps {
5
4
  operation: OperationModel;
6
- form: FormState;
7
- formApi: FormApi;
8
5
  activeServer: string;
9
6
  authCorsProxyUrl: Maybe<string>;
10
7
  securityDefaults?: Record<string, SecurityDetails | string>;
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import type { CodemirrorInputBase, CodemirrorInputProps } from './types';
3
- import './helpers';
4
- export declare const CodemirrorInputComponent: ({ fieldState, fieldApi, onChange, onBlur, forwardedRef, id, mode, schema, }: CodemirrorInputProps) => JSX.Element;
5
- export declare const CodemirrorInput: React.ComponentType<CodemirrorInputBase>;
2
+ import type { CodemirrorInputProps } from './types';
3
+ export declare const CodemirrorInputComponent: ({ onChange, onBlur, id, schema, fieldName, validate, defaultValue, mode, }: CodemirrorInputProps) => JSX.Element;
4
+ export declare const CodemirrorInput: React.NamedExoticComponent<CodemirrorInputProps>;
@@ -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.CodemirrorInput=exports.CodemirrorInputComponent=void 0;const react_1=__importDefault(require("react")),theme_1=require("@redocly/theme"),informed_1=require("informed"),react_codemirror2_react_17_1=require("react-codemirror2-react-17"),constants_1=require("../../../constants");require("./helpers");const styled_1=require("./styled"),CodemirrorInputComponent=({fieldState:e,fieldApi:t,onChange:r,onBlur:o,forwardedRef:n,id:a,mode:i,schema:u})=>{let d;const s=(e,t)=>{/^[a-zA-Z0-9_":]$/.test(t.key)&&d.execCommand("autocomplete")},c=()=>{d.refresh()},m=()=>d.showHint({completeSingle:!0});(0,theme_1.useMount)((()=>{setTimeout((()=>{d.refresh()}),0),document.addEventListener("click",c)})),(0,theme_1.useUnmount)((()=>{document.removeEventListener("click",c)}));const{value:l}=e,{setValue:p,setTouched:_}=t;return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(styled_1.CodeMirrorStyles,null),react_1.default.createElement(react_codemirror2_react_17_1.Controlled,{editorDidMount:e=>{d=e,d.on("keyup",s)},value:l||"",ref:n,onBeforeChange:(e,t,o)=>{p(o),r&&r(o)},onBlur:e=>{_(!1),o&&o(e)},options:{mode:i||constants_1.MediaTypes.JSON,theme:"material",matchBrackets:!0,autoCloseBrackets:!0,tabSize:2,foldGutter:!0,extraKeys:{"Cmd-Space":m,"Ctrl-Space":m},hintOptions:{id:a,completeSingle:!1,schema:u}}}))};exports.CodemirrorInputComponent=CodemirrorInputComponent,exports.CodemirrorInput=(0,informed_1.asField)(exports.CodemirrorInputComponent);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var n=Object.getOwnPropertyDescriptor(r,t);n&&!("get"in n?!r.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,n)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CodemirrorInput=exports.CodemirrorInputComponent=void 0;const react_1=__importStar(require("react")),react_hook_form_1=require("react-hook-form"),lang_json_1=require("@codemirror/lang-json"),constants_1=require("../../../constants"),styled_1=require("./styled"),helpers_1=require("./helpers"),CodemirrorInputComponent=({onChange:e,onBlur:r,id:t,schema:o,fieldName:n,validate:a,defaultValue:l,mode:i})=>{const{setValue:s,control:u,setError:c,clearErrors:_,getFieldState:d}=(0,react_hook_form_1.useFormContext)(),m=(0,react_1.useCallback)((e=>{const{error:r}=d(n);e&&!r?c(n,{message:e}):r&&_(n)}),[_,n,d,c]),p=(0,react_1.useCallback)((r=>{s(n,r),null==e||e(r)}),[n,e,s]),f=(0,react_1.useCallback)((e=>{null==r||r(e)}),[r]),h=(0,react_1.useMemo)((()=>[(0,lang_json_1.json)(),(0,helpers_1.linterInit)({id:t,schema:o,handleErrors:m})]),[m,t,o]);return react_1.default.createElement(react_hook_form_1.Controller,{control:u,name:n,rules:{validate:a},defaultValue:l,render:({field:{value:e,ref:r}})=>react_1.default.createElement(styled_1.StyledCodeMirror,{ref:r,className:"codemirror-container",value:e||"",onChange:p,onBlur:f,lang:i||constants_1.MediaTypes.JSON,theme:(0,helpers_1.themeInit)("light"),extensions:h,basicSetup:{bracketMatching:!0,closeBrackets:!0,tabSize:2,foldGutter:!1,lineNumbers:!1,lintKeymap:!0,drawSelection:!1}})})};exports.CodemirrorInputComponent=CodemirrorInputComponent,exports.CodemirrorInput=(0,react_1.memo)(exports.CodemirrorInputComponent);
2
2
  //# sourceMappingURL=CodemirrorInput.js.map
@@ -1 +1,6 @@
1
- export {};
1
+ import type { Extension } from '@uiw/react-codemirror';
2
+ import type { CodemirrorInputProps } from './types';
3
+ export declare function themeInit(theme: 'light' | 'dark'): Extension;
4
+ export declare function linterInit({ id, schema, handleErrors, }: Pick<CodemirrorInputProps, 'id' | 'schema'> & {
5
+ handleErrors: (message?: string) => void;
6
+ }): Extension;
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,r,t,i){return new(t||(t=Promise))((function(o,n){function s(e){try{c(i.next(e))}catch(e){n(e)}}function a(e){try{c(i.throw(e))}catch(e){n(e)}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,a)}c((i=i.apply(e,r||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0});const vscode_json_languageservice_1=require("@redocly/vscode-json-languageservice"),utils_1=require("../../../utils");let CodeMirror=null;utils_1.IS_BROWSER&&(CodeMirror=require("codemirror"),require("codemirror/mode/javascript/javascript"),require("codemirror/addon/edit/matchbrackets"),require("codemirror/addon/lint/lint"),require("codemirror/addon/hint/show-hint"),require("codemirror/addon/edit/closebrackets"),require("codemirror/addon/search/searchcursor"),require("codemirror/lib/codemirror.css"),require("codemirror/theme/material.css"),require("codemirror/addon/lint/lint.css"),require("codemirror/addon/hint/show-hint.css"));const serv=(0,vscode_json_languageservice_1.getLanguageService)({});CodeMirror&&(CodeMirror.registerHelper("lint","json",(function(e,r){return __awaiter(this,void 0,void 0,(function*(){const{schema:t,setError:i}=r;serv.configure({validate:!0,schemas:[{uri:"stub://"+r.id,fileMatch:["*"],schema:t}]});const o=vscode_json_languageservice_1.TextDocument.create(r.id+".json","json",0,e),n=serv.parseJSONDocument(o),s=yield serv.doValidation(o,n);return s.length?i&&i(s[0].message):i&&i(void 0),s.map((e=>({from:CodeMirror.Pos(e.range.start.line,e.range.start.character),to:CodeMirror.Pos(e.range.end.line,e.range.end.character),message:e.message})))}))})),CodeMirror.registerHelper("hint","json",((e,r)=>__awaiter(void 0,void 0,void 0,(function*(){const t=r.schema;if(!t)return;serv.configure({validate:!0,schemas:[{uri:"stub://"+r.id,fileMatch:["*"],schema:t}]});const i=e.getDoc().getCursor(),o=e.getTokenAt(i),n=vscode_json_languageservice_1.TextDocument.create(r.id+".json","json",0,e.getValue()),s=serv.parseJSONDocument(n),a=yield serv.doComplete(n,{line:i.line,character:i.ch},s);let c=a?a.items.map((e=>({text:e.insertText,displayText:e.label,filter:e.filterText||e.label,from:{line:e.textEdit.range.start.line,ch:e.textEdit.range.start.character},to:{line:e.textEdit.range.end.line,ch:e.textEdit.range.end.character},hint:(e,r,t)=>{const i="_$__REDOC_CURSOR_HERE";let o=t.text.replace(/(\$1|\${1:[^}]+})/,i)||"";if(o=o.replace(/(\$\d+|\${[^}]+})/g,"")||"",e.setSelection(t.from,t.to),o.indexOf("\n")>-1){const r=e.getLine(e.getCursor().line).search(/(\S|$)/);o=o.replace(/\n/g,"\n"+(e=>{let r="";for(;e--;)r+=" ";return r})(r))}e.replaceSelection(o);const n=e.getSearchCursor(i,t.from);n.findNext()&&(e.setCursor(n.from()),n.replace(""))}}))):[];return/(property|string)/.test(o.type||"")&&(c=c.filter((e=>e.filter.replace(/(^"|"$)/g,"").startsWith(o.string.replace(/(^"|"$)/g,""))))),{from:CodeMirror.Pos(i.line,o.start),to:CodeMirror.Pos(i.line,i.ch),list:c}})))));
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,t,i,r){return new(i||(i=Promise))((function(n,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.linterInit=exports.themeInit=void 0;const codemirror_theme_material_1=require("@uiw/codemirror-theme-material"),highlight_1=require("@lezer/highlight"),lint_1=require("@codemirror/lint"),vscode_json_languageservice_1=require("@redocly/vscode-json-languageservice");function themeInit(e){const t={settings:{background:"var(--bg-overlay)",fontFamily:"var(--code-block-font-family)"},styles:[{tag:[highlight_1.tags.propertyName],color:"var(--code-block-tokens-property-string-color)"},{tag:[highlight_1.tags.processingInstruction,highlight_1.tags.string,highlight_1.tags.inserted,highlight_1.tags.special(highlight_1.tags.string)],color:"var(--code-block-tokens-string-color)"},{tag:[highlight_1.tags.atom,highlight_1.tags.bool,highlight_1.tags.special(highlight_1.tags.variableName)],color:"var(--text-secondary)"}]};switch(e){case"light":default:return(0,codemirror_theme_material_1.materialLightInit)(t);case"dark":return(0,codemirror_theme_material_1.materialDarkInit)(t)}}exports.themeInit=themeInit;const service=(0,vscode_json_languageservice_1.getLanguageService)({});function linterInit({id:e,schema:t,handleErrors:i}){return service.configure({validate:!0,schemas:[{uri:"stub://"+e,fileMatch:["*"],schema:t}]}),(0,lint_1.linter)((t=>__awaiter(this,void 0,void 0,(function*(){var r;const n=t.state.doc.toString(),o=vscode_json_languageservice_1.TextDocument.create(e+".json","json",0,n),a=service.parseJSONDocument(o),s=yield service.doValidation(o,a);return i(null===(r=null==s?void 0:s[0])||void 0===r?void 0:r.message),null==s?void 0:s.map((e=>{const t=getPosition(n,e.range.start.line,e.range.start.character);return{from:t,to:t,message:e.message,severity:e.severity}}))}))))}function getPosition(e,t,i){const r=e.split("\n");let n=0;for(let e=0;e<t-1;e++)n+=r[e].length+1;return n+=i,n}exports.linterInit=linterInit;
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1,2 @@
1
- export declare const CodeMirrorStyles: import("styled-components").GlobalStyleComponent<{}, import("styled-components").DefaultTheme>;
1
+ /// <reference types="react" />
2
+ export declare const StyledCodeMirror: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@uiw/react-codemirror").ReactCodeMirrorProps & import("react").RefAttributes<import("@uiw/react-codemirror").ReactCodeMirrorRef>>, any, {}, never>;
@@ -1,54 +1,53 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CodeMirrorStyles=void 0;const styled_components_1=require("styled-components");exports.CodeMirrorStyles=styled_components_1.createGlobalStyle`
2
- .cm-s-material.CodeMirror {
3
- background-color: var(--bg-overlay) !important;
4
- color: var(--code-block-text-color) !important;
5
- font-family: var(--code-block-font-family);
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.StyledCodeMirror=void 0;const styled_components_1=__importDefault(require("styled-components")),react_codemirror_1=__importDefault(require("@uiw/react-codemirror"));exports.StyledCodeMirror=(0,styled_components_1.default)(react_codemirror_1.default)`
2
+ display: flex;
3
+ flex-direction: column;
4
+ justify-content: flex-start;
5
+ overflow: hidden;
6
+ flex: 1;
7
+
8
+ .cm-editor {
9
+ flex: 1;
10
+ color: var(--code-block-text-color);
11
+ border-radius: var(--panel-border-radius);
6
12
  font-weight: var(--code-block-font-weight);
7
13
  font-size: var(--code-block-font-size);
8
14
  line-height: var(--code-block-line-height);
9
15
  padding: var(--code-block-padding);
10
16
  white-space: var(--code-wrap, pre);
11
- }
12
-
13
- .CodeMirror-lint-mark-error {
14
- background-size: 4px;
15
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAGCAYAAAD+Bd/7AAAAVUlEQVR42mNgQAL/GRjigPg/EP8FYntkCX4gtoVKgvE/BoabcEVAhj6S5DUgfgFl/wFJ2gPxL6iuT1DF+kD2R5AYA5KRj6CS/FAMYvszIBltz4AFAAD9fz0YtLg13wAAAABJRU5ErkJggg==') !important;
16
- }
17
-
18
- .cm-s-material .CodeMirror-code .cm-string.cm-property {
19
- color: var(--code-block-tokens-property-string-color);
20
- }
21
-
22
- .cm-s-material .CodeMirror-code .cm-string {
23
- color: var(--code-block-tokens-string-color);
24
- }
25
-
26
- .cm-s-material .CodeMirror-code .cm-atom {
27
- color: var(--text-secondary);
28
- }
29
17
 
30
- div .cm-s-material .CodeMirror-matchingbracket {
31
- outline: 1px solid grey;
32
- text-decoration: none;
33
- color: var(--color-gold-8) !important;
34
- }
35
-
36
- div .cm-s-material .CodeMirror-nonmatchingbracket {
37
- color: var(--color-red-8) !important;
38
- }
39
-
40
- .react-codemirror2 {
41
- display: flex;
42
- flex-direction: column;
43
- justify-content: flex-start;
44
- overflow: hidden;
45
-
46
- flex: 1;
47
- }
48
-
49
- .CodeMirror {
50
- flex: 1;
51
- border-radius: var(--panel-border-radius);
18
+ .cm-matchingBracket {
19
+ outline: 1px solid grey;
20
+ text-decoration: none;
21
+ color: var(--color-gold-8);
22
+ }
23
+
24
+ .cm-nonmatchingBracket {
25
+ color: var(--color-red-8) !important;
26
+ }
27
+
28
+ .cm-activeLine {
29
+ background: none;
30
+ }
31
+
32
+ .cm-lintPoint:after {
33
+ border: none;
34
+ width: 10px;
35
+ height: 8px;
36
+ left: 0;
37
+ bottom: -2px;
38
+ background-position: left bottom;
39
+ background-repeat: repeat-x;
40
+ background-size: 4px;
41
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAGCAYAAAD+Bd/7AAAAVUlEQVR42mNgQAL/GRjigPg/EP8FYntkCX4gtoVKgvE/BoabcEVAhj6S5DUgfgFl/wFJ2gPxL6iuT1DF+kD2R5AYA5KRj6CS/FAMYvszIBltz4AFAAD9fz0YtLg13wAAAABJRU5ErkJggg==') !important;
42
+ }
43
+ }
44
+ .cm-editor.cm-focused {
45
+ outline: none;
46
+
47
+ .cm-matchingBracket,
48
+ .cm-nonmatchingBracket {
49
+ background: none;
50
+ }
52
51
  }
53
52
  `;
54
53
  //# sourceMappingURL=styled.js.map
@@ -1,22 +1,11 @@
1
- import type { Controlled as CodeMirror } from 'react-codemirror2-react-17';
2
- import type { FieldApi, FieldState } from 'informed';
3
- import type { LegacyRef } from 'react';
4
1
  import type { OpenAPISchema, Referenced } from '../../../types';
5
- export interface CodemirrorInputBase {
6
- forwardedRef?: LegacyRef<CodeMirror>;
2
+ export interface CodemirrorInputProps {
7
3
  mode?: string;
8
- field: string;
9
- initialValue: string;
4
+ fieldName: string;
5
+ defaultValue: string;
10
6
  validate: () => string | undefined;
11
7
  schema?: Referenced<OpenAPISchema>;
12
8
  id: string;
13
9
  onChange?: (e: any) => void;
14
10
  onBlur?: (e: any) => void;
15
11
  }
16
- export interface CodemirrorInputProps extends CodemirrorInputBase {
17
- fieldApi: FieldApi;
18
- fieldState: FieldState<string>;
19
- render: any;
20
- userProps: any;
21
- ref: any;
22
- }
@@ -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 s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,s)}: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(s,n){function a(e){try{l(o.next(e))}catch(e){n(e)}}function i(e){try{l(o.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,i)}l((o=o.apply(e,t||[])).next())}))},__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 s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(r[o[s]]=e[o[s]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;const index_1=require("swagger-client/es/execute/index"),react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),shallowCopyForTryIt_1=require("./shallowCopyForTryIt"),string_1=require("../../../utils/string"),Panel_1=require("../../Panel"),helper_1=require("../../common/FileUpload/helper"),events_1=require("../../../events"),utils_1=require("../utils"),ResponsePanel_1=require("../ResponsePanel"),ConsoleTabs_1=require("../ConsoleTabs"),ActionPanel_1=require("../ActionPanel"),Request_1=require("./Request"),styled_1=require("../styled"),ConsoleWrapper_1=require("./ConsoleWrapper"),hooks_1=require("../../../hooks"),store_1=require("../../../jotai/store"),models_1=require("../../../models"),operation_1=require("../../../jotai/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:r,rootElement:o,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){let l=(0,react_1.useRef)();const[u,c]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(e.pointer)),[d,p]=(0,react_1.useState)(u.activeServer||e.activeServer),[_,v]=(0,react_1.useState)(0),[y,m]=(0,react_1.useState)(!1),[h,b]=(0,react_1.useState)(!1),[f,g]=(0,react_1.useState)({values:{path:(0,utils_1.getParameters)(e.parameters,"path"),cookie:(0,utils_1.getParameters)(e.parameters,"cookie"),header:(0,utils_1.getParameters)(e.parameters,"header"),query:(0,utils_1.getParameters)(e.parameters,"query")}}),[O,j]=(0,react_1.useState)(),[S,q]=(0,react_1.useState)(),[C,P]=(0,react_1.useState)(),[w,I]=(0,react_1.useState)(),T=(0,hooks_1.usePrevious)(e),{parser:x,options:E}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),A=(0,react_1.useCallback)(((e,t=e.getState())=>{var{values:r}=t,o=__rest(t,["values"]);l.current=e,setTimeout((()=>{g(Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},r),{query:(0,utils_1.unescapeQueryParams)(r.query||{})})}))}),0)}),[]),k=(0,react_1.useCallback)((e=>{var{values:t}=e,r=__rest(e,["values"]);const o=Object.assign(Object.assign({},r),{values:Object.assign(Object.assign({},t),{query:(0,utils_1.unescapeQueryParams)(t.query||{})})});c((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),g(o),(0,utils_1.updateStorage)(o)}),[c]),R=(0,react_1.useCallback)((e=>{v(e)}),[]),F=(0,react_1.useCallback)((e=>{p(e),c((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[c]),B=(0,react_1.useCallback)((()=>__awaiter(this,void 0,void 0,(function*(){var r,o,s,n,a,i,u,c,p,_,y,h,g,j,S,C,w;const{values:T,invalid:x}=(null===(r=null==l?void 0:l.current)||void 0===r?void 0:r.getState())||f||{};if(null===(o=l.current)||void 0===o||o.submitForm(),x)return b(!0),setTimeout((()=>b(!1)),1e3),void(null===(n=null===(s=E.events)||void 0===s?void 0:s.tryItSent)||void 0===n||n.call(s,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description}));const{servers:A,requestBody:k}=e,R=k&&k.content&&(null===(a=(0,models_1.getActiveMediaType)(k.content))||void 0===a?void 0:a.name)||"";let F=T.body;if(/json/.test(R))try{F=JSON.parse(F)}catch(e){console.error(e)}m(!0);const B=O,V=(e.httpVerb||"").toLowerCase();if(!A)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const D=A.find((e=>d.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),M=Date.now();let N,U=T.auth;if(T.auth){const e=Object.keys(T.auth)[0],t=(0,string_1.unescapeFormId)(e);N=Object.assign(Object.assign({},B),{components:Object.assign(Object.assign({},null==B?void 0:B.components),{securitySchemes:Object.assign(Object.assign({},null===(i=null==B?void 0:B.components)||void 0===i?void 0:i.securitySchemes),{[t]:Object.assign(Object.assign({},null===(c=null===(u=null==B?void 0:B.components)||void 0===u?void 0:u.securitySchemes)||void 0===c?void 0:c[t]),{type:"openIdConnect"===(null===(y=null===(_=null===(p=null==B?void 0:B.components)||void 0===p?void 0:p.securitySchemes)||void 0===_?void 0:_[t])||void 0===y?void 0:y.type)?"oauth2":(null===(g=null===(h=null==B?void 0:B.components)||void 0===h?void 0:h.securitySchemes)||void 0===g?void 0:g[t]).type})})})}),U=Object.assign(Object.assign({},U),{[t]:U[e]})}else N=Object.assign({},B);N.servers=A;const W=E.corsProxyUrl;W&&A.length&&(N.servers=A.map((e=>Object.assign(Object.assign({},e),{url:W+normalizeUrlProtocol(e.url)}))),N.paths=Object.assign(Object.assign({},N.paths),{[e.path]:Object.assign(Object.assign({},N.paths[e.path]),{[V]:Object.assign(Object.assign({},N.paths[e.path][V]),{servers:void 0}),servers:void 0})}));const z=(null==k?void 0:k.content)&&(null===(j=(0,models_1.getActiveMediaType)(k.content))||void 0===j?void 0:j.name)||null;if(z&&F&&(0,helper_1.isFileUploadMime)(z)){const e=Object.values(F);F=e.length>1?e:e[0]}const H={server:W?W+normalizeUrlProtocol(D.url):D.url,serverVariables:(0,utils_1.getDefaultOrStoredVariables)(D),spec:N,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},T.path),T.query),T.header),T.cookie),securities:{authorized:U},requestBody:F,requestContentType:z,responseContentType:(null===(S=T.header)||void 0===S?void 0:S.Accept)||null,requestInterceptor:(0,utils_1.makeRequestInterceptor)(E,e,null==U?void 0:U.Authorization)};try{const e=yield(0,index_1.execute)(H),r=null==e?void 0:e.data;r instanceof Blob&&((0,helper_1.isFileUploadMime)(r.type)&&(e.fileInfo={rawData:r,fileName:(0,utils_1.getFileNameFromHeaders)(e.headers)}),e.data=yield r.text()),null==t||t({request:H,response:e}),I(e),P(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:H,response:e.response})),I(void 0),P(e)}finally{m(!1),v(1),q(Date.now()-M),null===(w=null===(C=E.events)||void 0===C?void 0:C.tryItSent)||void 0===w||w.call(C,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[d.url,f,t,e,E,O]);(0,theme_1.useMount)((()=>__awaiter(this,void 0,void 0,(function*(){var t;const r=yield(0,shallowCopyForTryIt_1.dereferenceDefinitionForTryIt)(e,x.definition);j(r),null===(t=l.current)||void 0===t||t.setValues({})})))),(0,react_1.useEffect)((()=>{T&&T!==e&&(I(void 0),P(void 0),v(0))}),[e,T]);const V=!(!w&&!C);return react_1.default.createElement(ConsoleWrapper_1.ConsoleWrapper,{shaking:h,className:r,rootElement:o},react_1.default.createElement(Panel_1.StyledCodeHeader,null,react_1.default.createElement(ConsoleTabs_1.ConsoleTabs,{active:_,hasResponse:V,onChange:R}),i&&react_1.default.createElement(styled_1.CloseButton,{onClick:i}," ✕ ")),react_1.default.createElement(styled_1.ConsoleBody,{hidden:0!==_,"data-cy":"console-request-body"},react_1.default.createElement(Request_1.Request,{operation:e,properties:s,mergeExampleBody:n,securityDefaults:a,form:f,resolvedRawSpec:O,server:d,formApi:l.current,setFormApi:A,handleChange:k,handleServerChange:F})),react_1.default.createElement(styled_1.ConsoleBody,{hidden:1!==_,"data-cy":"console-response-body"},react_1.default.createElement(ResponsePanel_1.ResponsePanel,{response:w,error:C,time:S})),react_1.default.createElement(ActionPanel_1.ActionPanel,{hasResponse:V,params:f.values,operation:e,loading:y,execute:B}))}exports.Console=(0,react_1.memo)(ConsoleComponent);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,s)}: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(s,n){function a(e){try{l(o.next(e))}catch(e){n(e)}}function i(e){try{l(o.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,i)}l((o=o.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;const index_1=require("swagger-client/es/execute/index"),react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),react_hook_form_1=require("react-hook-form"),shallowCopyForTryIt_1=require("./shallowCopyForTryIt"),string_1=require("../../../utils/string"),Panel_1=require("../../Panel"),helper_1=require("../../common/FileUpload/helper"),events_1=require("../../../events"),utils_1=require("../utils"),ResponsePanel_1=require("../ResponsePanel"),ConsoleTabs_1=require("../ConsoleTabs"),ActionPanel_1=require("../ActionPanel"),Request_1=require("./Request"),styled_1=require("../styled"),ConsoleWrapper_1=require("./ConsoleWrapper"),hooks_1=require("../../../hooks"),store_1=require("../../../jotai/store"),models_1=require("../../../models"),operation_1=require("../../../jotai/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:r,rootElement:o,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){const l=(0,react_hook_form_1.useForm)({defaultValues:{path:(0,utils_1.getParameters)(e.parameters,"path"),cookie:(0,utils_1.getParameters)(e.parameters,"cookie"),header:(0,utils_1.getParameters)(e.parameters,"header"),query:(0,utils_1.getParameters)(e.parameters,"query")}}),[{activeServer:c},u]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(e.pointer)),[d,p]=(0,react_1.useState)(0),[_,v]=(0,react_1.useState)(!1),[m,h]=(0,react_1.useState)(!1),[y,f]=(0,react_1.useState)(),[b,g]=(0,react_1.useState)(),[O,j]=(0,react_1.useState)(),[S,q]=(0,react_1.useState)(),P=(0,hooks_1.usePrevious)(e),{parser:C,options:w}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom);(0,react_1.useEffect)((()=>{const{unsubscribe:e}=l.watch(((e={})=>{u((t=>Object.assign(Object.assign({},t),{requestValues:JSON.parse(JSON.stringify(e))}))),(0,utils_1.updateStorage)(Object.assign(Object.assign({},e),{query:(0,utils_1.unescapeQueryParams)(e.query||{})}))}));return()=>e()}),[l,u]);const I=(0,react_1.useCallback)((e=>{p(e)}),[]),T=(0,react_1.useCallback)((e=>{u((t=>Object.assign(Object.assign({},t),{activeServer:e}))),l.setValue("server",e)}),[u,l]),E=l.handleSubmit((r=>__awaiter(this,void 0,void 0,(function*(){var o,s,n,a,i,l,u,d,_,m,h,f,b;const{servers:O,requestBody:S}=e,P=S&&S.content&&(null===(o=(0,models_1.getActiveMediaType)(S.content))||void 0===o?void 0:o.name)||"";let C=r.body;if(/json/.test(P))try{C=JSON.parse(C)}catch(e){console.error(e)}v(!0);const I=y,T=(e.httpVerb||"").toLowerCase();if(!O)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const E=O.find((e=>null==c?void 0:c.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),k=Date.now();let x,A=r.auth;if(A){const e=Object.keys(A)[0],t=(0,string_1.unescapeFormId)(e);x=Object.assign(Object.assign({},I),{components:Object.assign(Object.assign({},null==I?void 0:I.components),{securitySchemes:Object.assign(Object.assign({},null===(s=null==I?void 0:I.components)||void 0===s?void 0:s.securitySchemes),{[t]:Object.assign(Object.assign({},null===(a=null===(n=null==I?void 0:I.components)||void 0===n?void 0:n.securitySchemes)||void 0===a?void 0:a[t]),{type:"openIdConnect"===(null===(u=null===(l=null===(i=null==I?void 0:I.components)||void 0===i?void 0:i.securitySchemes)||void 0===l?void 0:l[t])||void 0===u?void 0:u.type)?"oauth2":(null===(_=null===(d=null==I?void 0:I.components)||void 0===d?void 0:d.securitySchemes)||void 0===_?void 0:_[t]).type})})})}),A=Object.assign(Object.assign({},A),{[t]:A[e]})}else x=Object.assign({},I);x.servers=O;const R=w.corsProxyUrl;R&&O.length&&(x.servers=O.map((e=>Object.assign(Object.assign({},e),{url:R+normalizeUrlProtocol(e.url)}))),x.paths=Object.assign(Object.assign({},x.paths),{[e.path]:Object.assign(Object.assign({},x.paths[e.path]),{[T]:Object.assign(Object.assign({},x.paths[e.path][T]),{servers:void 0}),servers:void 0})}));const V=(null==S?void 0:S.content)&&(null===(m=(0,models_1.getActiveMediaType)(S.content))||void 0===m?void 0:m.name)||null;if(V&&C&&(0,helper_1.isFileUploadMime)(V)){const e=Object.values(C);C=e.length>1?e:e[0]}const F=(0,utils_1.unescapeQueryParams)(r.query||{}),B={server:R?R+normalizeUrlProtocol(E.url):E.url,serverVariables:(0,utils_1.getDefaultOrStoredVariables)(E),spec:x,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},r.path),F),r.header),r.cookie),securities:{authorized:A},requestBody:C,requestContentType:V,responseContentType:(null===(h=r.header)||void 0===h?void 0:h.Accept)||null,requestInterceptor:(0,utils_1.makeRequestInterceptor)(w,e,null==A?void 0:A.Authorization)};try{const e=yield(0,index_1.execute)(B),r=null==e?void 0:e.data;r instanceof Blob&&((0,helper_1.isFileUploadMime)(r.type)&&(e.fileInfo={rawData:r,fileName:(0,utils_1.getFileNameFromHeaders)(e.headers)}),e.data=yield r.text()),null==t||t({request:B,response:e}),q(e),j(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:B,response:e.response})),q(void 0),j(e)}finally{v(!1),p(1),g(Date.now()-k),null===(b=null===(f=w.events)||void 0===f?void 0:f.tryItSent)||void 0===b||b.call(f,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),(()=>{var t,r;h(!0),setTimeout((()=>h(!1)),1e3),null===(r=null===(t=w.events)||void 0===t?void 0:t.tryItSent)||void 0===r||r.call(t,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}));(0,theme_1.useMount)((()=>__awaiter(this,void 0,void 0,(function*(){const t=yield(0,shallowCopyForTryIt_1.dereferenceDefinitionForTryIt)(e,C.definition);f(t),e.activeServer&&!c&&u((t=>Object.assign(Object.assign({},t),{activeServer:e.activeServer})))})))),(0,react_1.useEffect)((()=>{P&&P!==e&&(q(void 0),j(void 0),p(0))}),[e,P]);const k=!(!S&&!O),x=l.getValues();return react_1.default.createElement(react_hook_form_1.FormProvider,Object.assign({},l),react_1.default.createElement(ConsoleWrapper_1.ConsoleWrapper,{shaking:m,className:r,rootElement:o},react_1.default.createElement(Panel_1.StyledCodeHeader,null,react_1.default.createElement(ConsoleTabs_1.ConsoleTabs,{active:d,hasResponse:k,onChange:I}),i&&react_1.default.createElement(styled_1.CloseButton,{onClick:i}," ✕ ")),react_1.default.createElement(styled_1.ConsoleBody,{hidden:0!==d,"data-cy":"console-request-body"},react_1.default.createElement(Request_1.Request,{operation:e,properties:s,mergeExampleBody:n,securityDefaults:a,resolvedRawSpec:y,server:c||e.activeServer,onServerChange:T})),react_1.default.createElement(styled_1.ConsoleBody,{hidden:1!==d,"data-cy":"console-response-body"},react_1.default.createElement(ResponsePanel_1.ResponsePanel,{response:S,error:O,time:b})),react_1.default.createElement(ActionPanel_1.ActionPanel,{hasResponse:k,params:x,operation:e,loading:_,onSubmit:E})))}exports.Console=(0,react_1.memo)(ConsoleComponent);
2
2
  //# sourceMappingURL=Console.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Request=void 0;const react_1=__importStar(require("react")),informed_1=require("informed"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),utils_1=require("../utils"),utils_2=require("../../../utils"),OAuth2_1=require("../../../services/OAuth2"),services_1=require("../../../services"),Panel_1=require("../../Panel"),ServersDropdown_1=require("../ServersDropdown"),TryItPanel_1=require("../TryItPanel"),RequestBody_1=require("../RequestBody"),OperationParameters_1=require("../../OperationParameters"),AuthPanel_1=require("../AuthPanel"),store_1=require("../../../jotai/store"),RenderHook_1=require("../../RenderHook");function RequestComponent({operation:e,properties:r,mergeExampleBody:t,securityDefaults:a,form:o,resolvedRawSpec:n,server:l,formApi:u,setFormApi:i,handleChange:s,handleServerChange:d}){const c=o.errors||{},_=c.path||c.cookie||c.header||c.query,{hooks:p,authCorsProxyUrl:h}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),m=n&&utils_2.JsonPointer.get(n,e.pointer);let y=o.values&&o.values.auth&&Object.keys(o.values.auth)[0];y&&o.values.auth[y]||(y=void 0),!y||void 0===o.values.auth[y].token&&void 0===o.values.auth[y].client_id&&void 0===o.values.auth[y].client_secret||o.values.auth[y].token&&o.values.auth[y].token.access_token||(y=void 0),y&&null!=o.values.auth[y].username&&(o.values.auth[y].username&&o.values.auth[y].password||(y=void 0));const f=e.parameters||[];return!n&&react_1.default.createElement(react_1.default.Fragment,null,"Loading...")||react_1.default.createElement(informed_1.Form,{onChange:s,getApi:i,style:{flex:1,display:"flex",flexDirection:"column",margin:0}},react_1.default.createElement(ServersDropdown_1.ServersDropdown,{operation:e,onChange:d}),react_1.default.createElement(Panel_1.Accordion,{initialActiveIdx:e.security.length&&y?1:0},e.security.length&&u&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItAuth"),"data-cy":"security-trigger",error:!y&&!!c.auth,success:!!y,renderChildrenHidden:!0},theme_1.OpenApiTryItSecurityPanel||(null==p?void 0:p.ReplaceTryItSecurityPanel)?react_1.default.createElement(AuthPanelWrapper,{field:"auth",validate:utils_1.requiredValidator},(r=>react_1.default.createElement(RenderHook_1.RenderHook,{Hook:theme_1.OpenApiTryItSecurityPanel||(null==p?void 0:p.ReplaceTryItSecurityPanel),props:{server:l,operation:e,onChange:r,OAuth2:OAuth2_1.OAuth2}}))):react_1.default.createElement(AuthPanel_1.AuthPanel,{formApi:u,form:o,operation:e,activeServer:l.url,authCorsProxyUrl:h,securityDefaults:a}))||null,e.requestBody&&u&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItBody"),"data-cy":"body-trigger",error:!!c.body,renderChildrenHidden:!0},react_1.default.createElement(RequestBody_1.RequestBody,{validate:allowBodyErrors,formApi:u,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==m?void 0:m.requestBody,properties:r,mergeExampleBody:t}))||null,f.length&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:_,renderChildrenHidden:!0},react_1.default.createElement(OperationParameters_1.OperationParameters,{operation:e,values:o.values,errors:o.errors||{}}))||null))}function AuthPanelWrapper(e){const{fieldApi:r,render:t,userProps:a}=(0,informed_1.useField)(Object.assign({},e)),{setValue:o}=r,{children:n}=a;return t(react_1.default.createElement(react_1.default.Fragment,null,n(o)))}function allowBodyErrors(){}exports.Request=(0,react_1.memo)(RequestComponent);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Request=void 0;const react_1=__importStar(require("react")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),react_hook_form_1=require("react-hook-form"),utils_1=require("../utils"),utils_2=require("../../../utils"),OAuth2_1=require("../../../services/OAuth2"),services_1=require("../../../services"),Panel_1=require("../../Panel"),ServersDropdown_1=require("../ServersDropdown"),TryItPanel_1=require("../TryItPanel"),RequestBody_1=require("../RequestBody"),OperationParameters_1=require("../../OperationParameters"),AuthPanel_1=require("../AuthPanel"),store_1=require("../../../jotai/store"),RenderHook_1=require("../../RenderHook");function RequestComponent({operation:e,properties:r,mergeExampleBody:t,securityDefaults:a,resolvedRawSpec:o,server:n,onServerChange:l}){const{watch:i,formState:u}=(0,react_hook_form_1.useFormContext)(),s=u.errors||{},c=Boolean(s.path||s.cookie||s.header||s.query),{hooks:d,authCorsProxyUrl:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),h=o&&utils_2.JsonPointer.get(o,e.pointer),p=i();let m=p&&p.auth&&Object.keys(p.auth)[0];m&&p.auth[m]||(m=void 0),!m||void 0===p.auth[m].token&&void 0===p.auth[m].client_id&&void 0===p.auth[m].client_secret||p.auth[m].token&&p.auth[m].token.access_token||(m=void 0),m&&null!=p.auth[m].username&&(p.auth[m].username&&p.auth[m].password||(m=void 0));const y=e.parameters||[];return!o&&react_1.default.createElement(react_1.default.Fragment,null,"Loading...")||react_1.default.createElement("form",{style:{flex:1,display:"flex",flexDirection:"column",margin:0}},react_1.default.createElement(ServersDropdown_1.ServersDropdown,{operation:e,onChange:l}),react_1.default.createElement(Panel_1.Accordion,{initialActiveIdx:e.security.length&&m?1:0},e.security.length&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItAuth"),"data-cy":"security-trigger",error:!m&&!!s.auth,success:!!m,renderChildrenHidden:!0},theme_1.OpenApiTryItSecurityPanel||(null==d?void 0:d.ReplaceTryItSecurityPanel)?react_1.default.createElement(AuthPanelWrapper,{fieldName:"auth",validate:utils_1.requiredValidator},(r=>react_1.default.createElement(RenderHook_1.RenderHook,{Hook:theme_1.OpenApiTryItSecurityPanel||(null==d?void 0:d.ReplaceTryItSecurityPanel),props:{server:n,operation:e,onChange:r,OAuth2:OAuth2_1.OAuth2}}))):react_1.default.createElement(AuthPanel_1.AuthPanel,{operation:e,activeServer:n.url,authCorsProxyUrl:_,securityDefaults:a}))||null,e.requestBody&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItBody"),"data-cy":"body-trigger",error:!!s.body,renderChildrenHidden:!0},react_1.default.createElement(RequestBody_1.RequestBody,{validate:allowBodyErrors,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==h?void 0:h.requestBody,properties:r,mergeExampleBody:t}))||null,y.length&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:c,renderChildrenHidden:!0},react_1.default.createElement(OperationParameters_1.OperationParameters,{operation:e,values:p}))||null))}function AuthPanelWrapper({fieldName:e,validate:r,children:t}){const{control:a,setValue:o}=(0,react_hook_form_1.useFormContext)();return react_1.default.createElement(react_hook_form_1.Controller,{control:a,name:e,rules:{validate:r},render:()=>t(o)})}function allowBodyErrors(){}exports.Request=(0,react_1.memo)(RequestComponent);
2
2
  //# sourceMappingURL=Request.js.map
@@ -1,4 +1,3 @@
1
- import type { FormApi, FormState } from 'informed';
2
1
  import type { OperationModel } from '../../../models';
3
2
  import type { SecurityDetails, Server } from '../../../types';
4
3
  import type { OpenApiResponseData } from '../types';
@@ -21,11 +20,7 @@ export interface RequestProps {
21
20
  properties?: any;
22
21
  mergeExampleBody?: boolean;
23
22
  securityDefaults: Record<string, string | SecurityDetails> | undefined;
24
- form: any;
25
23
  resolvedRawSpec: any;
26
24
  server: Server;
27
- formApi?: FormApi;
28
- setFormApi: (formApi: FormApi) => void;
29
- handleChange: (formState: FormState) => void;
30
- handleServerChange: (server: Server) => void;
25
+ onServerChange: (server: Server) => void;
31
26
  }
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import type { OAuth2FlowProps } from './types';
3
- export declare const OAuth2Flow: ({ usePkce, form, id, formApi, flow, tokenUrl: _tokenUrl, authCorsProxyUrl, tokenEndpointAuthMethod, server, scopes, authorizationUrl, defaultValues, clientId, }: OAuth2FlowProps) => JSX.Element;
3
+ export declare const OAuth2Flow: ({ usePkce, id, flow, tokenUrl: _tokenUrl, authCorsProxyUrl, tokenEndpointAuthMethod, server, scopes, authorizationUrl, defaultValues, clientId, }: OAuth2FlowProps) => JSX.Element;