@redocly/openapi-docs 3.0.0-alpha.70 → 3.0.0-alpha.72

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 (204) hide show
  1. package/dist/console.redocly-openapi-docs.min.js +73 -73
  2. package/dist/oauth2-redirect.js +1 -1
  3. package/dist/redocly-openapi-docs.min.js +1077 -1077
  4. package/lib/components/ApiInfo/ApiInfo.js +1 -1
  5. package/lib/components/ContentItems/ContentItems.js +1 -1
  6. package/lib/components/DiscriminatorDropdown/DiscriminatorDropdown.js +1 -1
  7. package/lib/components/Download/DownloadButtonWithLabel.js +1 -1
  8. package/lib/components/Endpoint/Endpoint.js +1 -1
  9. package/lib/components/Fields/EnumValues.js +1 -1
  10. package/lib/components/Fields/Extensions.js +2 -2
  11. package/lib/components/Fields/Field.js +1 -1
  12. package/lib/components/Fields/FieldDetails.js +1 -1
  13. package/lib/components/Markdown/Markdown.js +1 -1
  14. package/lib/components/MediaTypeSwitch/MediaTypesSwitch.js +1 -1
  15. package/lib/components/OperationItem/OperationItem.js +2 -2
  16. package/lib/components/OperationParameters/types.js +1 -1
  17. package/lib/components/PageFooter/PageFooter.js +1 -1
  18. package/lib/components/PayloadSamples/ExampleValue.js +1 -1
  19. package/lib/components/PayloadSamples/PayloadSamples.js +1 -1
  20. package/lib/components/RedoclyOpenAPIDocs/Providers.d.ts +1 -2
  21. package/lib/components/RedoclyOpenAPIDocs/Providers.js +1 -1
  22. package/lib/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
  23. package/lib/components/RedoclyOpenAPIDocs/utils.d.ts +1 -1
  24. package/lib/components/RequestSamples/RequestSamples.js +1 -1
  25. package/lib/components/RequestSamples/useCodeSamples.js +1 -1
  26. package/lib/components/ResponseSamples/ResponseSamples.js +1 -1
  27. package/lib/components/Responses/OperationResponseList.js +1 -1
  28. package/lib/components/Samples/SamplesTabs.js +1 -1
  29. package/lib/components/Samples/use-example-key.js +1 -1
  30. package/lib/components/Schema/ObjectSchema.js +1 -1
  31. package/lib/components/Schema/OneOfSchema.js +1 -1
  32. package/lib/components/Schema/Schema.js +1 -1
  33. package/lib/components/SchemaDefinition/SchemaDefinition.js +1 -1
  34. package/lib/components/Search/MenuItemSearch.js +1 -1
  35. package/lib/components/Search/utils.js +1 -1
  36. package/lib/components/SectionContent/SectionContent.js +1 -1
  37. package/lib/components/SecurityRequirement/SecurityDefs.js +1 -1
  38. package/lib/components/SecurityRequirement/SecurityRequirement.js +1 -1
  39. package/lib/components/SecurityRequirement/constants.js +1 -1
  40. package/lib/components/SideMenu/Actions.js +1 -1
  41. package/lib/components/SideMenu/MenuItems.js +1 -1
  42. package/lib/components/SideMenu/MenuOperationItemContent.js +2 -2
  43. package/lib/components/SideMenu/SideMenu.js +1 -1
  44. package/lib/components/StickySidebar/StickyResponsiveSidebar.js +2 -2
  45. package/lib/components/Tabs/CollapsingTabs/CollapsingTabs.js +1 -1
  46. package/lib/components/Tabs/CollapsingTabs/CollapsingTabsBase.js +1 -1
  47. package/lib/components/TagItems/TagItems.js +1 -1
  48. package/lib/components/VersionSwitcher.d.ts +1 -1
  49. package/lib/components/common/linkify.js +1 -1
  50. package/lib/components/common/perfect-scrollbar.js +2 -2
  51. package/lib/components/pluggable/RedocExample.js +1 -1
  52. package/lib/components/pluggable/RedocRequestBody.js +1 -1
  53. package/lib/components/pluggable/RedocResponse.js +1 -1
  54. package/lib/components/pluggable/RedocSchema.js +1 -1
  55. package/lib/components/rightPanel/AuthPanel/AuthPanel.js +1 -1
  56. package/lib/components/rightPanel/Console/Console.js +1 -1
  57. package/lib/components/rightPanel/Console/ConsoleWrapper.js +1 -1
  58. package/lib/components/rightPanel/Console/Request.js +1 -1
  59. package/lib/components/rightPanel/OAuth2Flow/OAuth2Flow.js +1 -1
  60. package/lib/components/rightPanel/RequestBody/RequestBody.js +1 -1
  61. package/lib/components/rightPanel/RequestBodyForm.js +1 -1
  62. package/lib/components/rightPanel/ResponseBody.js +1 -1
  63. package/lib/components/rightPanel/ResponseHeadersList.js +1 -1
  64. package/lib/components/rightPanel/ServersDropdown/ServersDropdown.js +1 -1
  65. package/lib/components/rightPanel/utils.js +1 -1
  66. package/lib/constants.js +1 -1
  67. package/lib/events/codeSampleCopy.js +1 -1
  68. package/lib/events/types.js +1 -1
  69. package/lib/hoc/types.d.ts +1 -1
  70. package/lib/hoc/withStore.js +1 -1
  71. package/lib/hooks/useActivateExample.js +1 -1
  72. package/lib/hooks/useContentItems.js +1 -1
  73. package/lib/index.d.ts +1 -1
  74. package/lib/index.js +1 -1
  75. package/lib/jotai/app.d.ts +38 -0
  76. package/lib/jotai/app.js +2 -0
  77. package/lib/jotai/nexus.d.ts +5 -0
  78. package/lib/jotai/nexus.js +2 -0
  79. package/lib/jotai/operation.d.ts +15 -0
  80. package/lib/jotai/operation.js +2 -0
  81. package/lib/{recoil → jotai}/store.d.ts +6 -4
  82. package/lib/jotai/store.js +2 -0
  83. package/lib/models/file-upload.js +1 -1
  84. package/lib/models/mediaContent.js +1 -1
  85. package/lib/services/Options/normalizeOptions.js +1 -1
  86. package/lib/services/Options/types.d.ts +3 -3
  87. package/lib/services/Options/types.js +1 -1
  88. package/lib/services/code-samples/httpsnippet/helpers/constants.js +1 -1
  89. package/lib/services/code-samples/httpsnippet/targets/index.d.ts +1 -1
  90. package/lib/services/code-samples/httpsnippet/targets/javascript/index.d.ts +1 -1
  91. package/lib/services/menu/builder.js +1 -1
  92. package/lib/services/menu/helpers.d.ts +1 -1
  93. package/lib/services/menu/markdown.js +1 -1
  94. package/lib/services/search/DeepSearchStore.js +1 -1
  95. package/lib/services/types.d.ts +2 -2
  96. package/lib/services/types.js +1 -1
  97. package/lib/standalone.d.ts +1 -1
  98. package/lib/standalone.js +1 -1
  99. package/lib/types/open-api.d.ts +4 -1
  100. package/lib/utils/saveTextBeforeHeading.js +1 -1
  101. package/lib-esm/components/ApiInfo/ApiInfo.js +1 -1
  102. package/lib-esm/components/ContentItems/ContentItems.js +1 -1
  103. package/lib-esm/components/DiscriminatorDropdown/DiscriminatorDropdown.js +1 -1
  104. package/lib-esm/components/Download/DownloadButtonWithLabel.js +1 -1
  105. package/lib-esm/components/Endpoint/Endpoint.js +1 -1
  106. package/lib-esm/components/Fields/EnumValues.js +1 -1
  107. package/lib-esm/components/Fields/Extensions.js +2 -2
  108. package/lib-esm/components/Fields/Field.js +1 -1
  109. package/lib-esm/components/Fields/FieldDetails.js +1 -1
  110. package/lib-esm/components/Markdown/Markdown.js +1 -1
  111. package/lib-esm/components/MediaTypeSwitch/MediaTypesSwitch.js +1 -1
  112. package/lib-esm/components/OperationItem/OperationItem.js +2 -2
  113. package/lib-esm/components/PageFooter/PageFooter.js +1 -1
  114. package/lib-esm/components/PayloadSamples/ExampleValue.js +1 -1
  115. package/lib-esm/components/PayloadSamples/PayloadSamples.js +1 -1
  116. package/lib-esm/components/RedoclyOpenAPIDocs/Providers.d.ts +1 -2
  117. package/lib-esm/components/RedoclyOpenAPIDocs/Providers.js +1 -1
  118. package/lib-esm/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
  119. package/lib-esm/components/RedoclyOpenAPIDocs/utils.d.ts +1 -1
  120. package/lib-esm/components/RequestSamples/RequestSamples.js +1 -1
  121. package/lib-esm/components/RequestSamples/useCodeSamples.js +1 -1
  122. package/lib-esm/components/ResponseSamples/ResponseSamples.js +1 -1
  123. package/lib-esm/components/Responses/OperationResponseList.js +1 -1
  124. package/lib-esm/components/Samples/SamplesTabs.js +1 -1
  125. package/lib-esm/components/Samples/use-example-key.js +1 -1
  126. package/lib-esm/components/Schema/ObjectSchema.js +1 -1
  127. package/lib-esm/components/Schema/OneOfSchema.js +1 -1
  128. package/lib-esm/components/Schema/Schema.js +1 -1
  129. package/lib-esm/components/SchemaDefinition/SchemaDefinition.js +1 -1
  130. package/lib-esm/components/Search/MenuItemSearch.js +1 -1
  131. package/lib-esm/components/Search/utils.js +1 -1
  132. package/lib-esm/components/SectionContent/SectionContent.js +1 -1
  133. package/lib-esm/components/SecurityRequirement/SecurityDefs.js +1 -1
  134. package/lib-esm/components/SecurityRequirement/SecurityRequirement.js +1 -1
  135. package/lib-esm/components/SideMenu/Actions.js +1 -1
  136. package/lib-esm/components/SideMenu/MenuItems.js +1 -1
  137. package/lib-esm/components/SideMenu/MenuOperationItemContent.js +2 -2
  138. package/lib-esm/components/SideMenu/SideMenu.js +1 -1
  139. package/lib-esm/components/StickySidebar/StickyResponsiveSidebar.js +2 -2
  140. package/lib-esm/components/Tabs/CollapsingTabs/CollapsingTabs.js +1 -1
  141. package/lib-esm/components/Tabs/CollapsingTabs/CollapsingTabsBase.js +1 -1
  142. package/lib-esm/components/TagItems/TagItems.js +1 -1
  143. package/lib-esm/components/VersionSwitcher.d.ts +1 -1
  144. package/lib-esm/components/common/linkify.js +1 -1
  145. package/lib-esm/components/common/perfect-scrollbar.js +2 -2
  146. package/lib-esm/components/pluggable/RedocExample.js +1 -1
  147. package/lib-esm/components/pluggable/RedocRequestBody.js +1 -1
  148. package/lib-esm/components/pluggable/RedocResponse.js +1 -1
  149. package/lib-esm/components/pluggable/RedocSchema.js +1 -1
  150. package/lib-esm/components/rightPanel/AuthPanel/AuthPanel.js +1 -1
  151. package/lib-esm/components/rightPanel/Console/Console.js +1 -1
  152. package/lib-esm/components/rightPanel/Console/ConsoleWrapper.js +1 -1
  153. package/lib-esm/components/rightPanel/Console/Request.js +1 -1
  154. package/lib-esm/components/rightPanel/OAuth2Flow/OAuth2Flow.js +1 -1
  155. package/lib-esm/components/rightPanel/RequestBody/RequestBody.js +1 -1
  156. package/lib-esm/components/rightPanel/RequestBodyForm.js +1 -1
  157. package/lib-esm/components/rightPanel/ResponseBody.js +1 -1
  158. package/lib-esm/components/rightPanel/ResponseHeadersList.js +1 -1
  159. package/lib-esm/components/rightPanel/ServersDropdown/ServersDropdown.js +1 -1
  160. package/lib-esm/components/rightPanel/utils.js +1 -1
  161. package/lib-esm/events/codeSampleCopy.js +1 -1
  162. package/lib-esm/hoc/types.d.ts +1 -1
  163. package/lib-esm/hoc/withStore.js +1 -1
  164. package/lib-esm/hooks/useActivateExample.js +1 -1
  165. package/lib-esm/hooks/useContentItems.js +1 -1
  166. package/lib-esm/index.d.ts +1 -1
  167. package/lib-esm/index.js +1 -1
  168. package/lib-esm/jotai/app.d.ts +38 -0
  169. package/lib-esm/jotai/app.js +2 -0
  170. package/lib-esm/jotai/nexus.d.ts +5 -0
  171. package/lib-esm/jotai/nexus.js +2 -0
  172. package/lib-esm/jotai/operation.d.ts +15 -0
  173. package/lib-esm/jotai/operation.js +2 -0
  174. package/lib-esm/{recoil → jotai}/store.d.ts +6 -4
  175. package/lib-esm/jotai/store.js +2 -0
  176. package/lib-esm/models/mediaContent.js +1 -1
  177. package/lib-esm/services/Options/normalizeOptions.js +1 -1
  178. package/lib-esm/services/Options/types.d.ts +3 -3
  179. package/lib-esm/services/code-samples/httpsnippet/targets/index.d.ts +1 -1
  180. package/lib-esm/services/code-samples/httpsnippet/targets/javascript/index.d.ts +1 -1
  181. package/lib-esm/services/menu/builder.js +1 -1
  182. package/lib-esm/services/menu/helpers.d.ts +1 -1
  183. package/lib-esm/services/menu/markdown.js +1 -1
  184. package/lib-esm/services/search/DeepSearchStore.js +1 -1
  185. package/lib-esm/services/types.d.ts +2 -2
  186. package/lib-esm/standalone.d.ts +1 -1
  187. package/lib-esm/standalone.js +1 -1
  188. package/lib-esm/types/open-api.d.ts +4 -1
  189. package/lib-esm/utils/saveTextBeforeHeading.js +1 -1
  190. package/package.json +5 -5
  191. package/lib/recoil/app.d.ts +0 -36
  192. package/lib/recoil/app.js +0 -2
  193. package/lib/recoil/nexus.d.ts +0 -6
  194. package/lib/recoil/nexus.js +0 -2
  195. package/lib/recoil/operation.d.ts +0 -11
  196. package/lib/recoil/operation.js +0 -2
  197. package/lib/recoil/store.js +0 -2
  198. package/lib-esm/recoil/app.d.ts +0 -36
  199. package/lib-esm/recoil/app.js +0 -2
  200. package/lib-esm/recoil/nexus.d.ts +0 -6
  201. package/lib-esm/recoil/nexus.js +0 -2
  202. package/lib-esm/recoil/operation.d.ts +0 -11
  203. package/lib-esm/recoil/operation.js +0 -2
  204. package/lib-esm/recoil/store.js +0 -2
@@ -1,4 +1,4 @@
1
- import React,{memo,useCallback,useMemo}from"react";import styled from"styled-components";import{PanelBody,LayoutVariant}from"@redocly/theme";import{useRecoilState,useRecoilValue}from"@redocly/recoil";import{setRecoil}from"../../recoil/nexus";import{SamplesMiddlePanel,SamplesPanel,Row,Section}from"../common";import{getMediaType}from"../../models";import{MediaTypeSamples}from"../PayloadSamples";import{Schema}from"../Schema";import{Markdown}from"../Markdown";import{CodePanel}from"../Panel";import{layoutSelector,showRightPanelToggleSelector}from"../../recoil/app";import{globalStoreSelector}from"../../recoil/store";import{operationStore}from"../../recoil/operation";const getMediaTypeInfo=(e,o)=>{if(!e)return{};const a={schema:{$ref:e}};return o&&(a.examples={example:{$ref:o}}),a};function SchemaDefinitionComponent({schemaRef:e,exampleRef:o,showReadOnly:a=!0,showWriteOnly:t=!1}){var l,n,i;const r=useRecoilValue(layoutSelector),{parser:c,options:m}=useRecoilValue(globalStoreSelector),s=useRecoilValue(showRightPanelToggleSelector),p=useMemo((()=>getMediaType(c,"json",!1,getMediaTypeInfo(e,o),m,{operation:{pointer:"SchemaDefinitionComponent"}})),[o,m,c,e]),[d,u]=useRecoilState(operationStore(null===(l=p.operation)||void 0===l?void 0:l.pointer)),f=useCallback((e=>{if(!p.schema)return;const o=p.schema,a=o.oneOf;if(a&&(null==p?void 0:p.examples)&&Object.keys(null==p?void 0:p.examples).includes(e)){const t=a.findIndex((o=>o.title===e));-1!==t&&o&&setRecoil(operationStore(o.deps.operation.pointer),(e=>{var a,l;return Object.assign(Object.assign({},e),{activeExampleName:(null===(l=null===(a=o.oneOf)||void 0===a?void 0:a[t])||void 0===l?void 0:l.title)||e.activeExampleName,activeOneOf:Object.assign(Object.assign({},e.activeOneOf),{[o.pointer]:t})})}))}d.activeExampleName!==e&&u((o=>Object.assign(Object.assign({},o),{activeExampleName:e})))}),[null==p?void 0:p.examples,p.schema,d.activeExampleName,u]);return React.createElement(Section,null,React.createElement(Row,{layout:r},React.createElement(SamplesMiddlePanel,{isStacked:r===LayoutVariant.STACKED||!s},(null===(n=p.schema)||void 0===n?void 0:n.description)&&React.createElement(Description,null,React.createElement(Markdown,{source:null===(i=p.schema)||void 0===i?void 0:i.description})),React.createElement(StyledPanelBody,{className:"panel-default"},React.createElement(Schema,{skipWriteOnly:!t,skipReadOnly:!a,schema:p.schema}))),s?React.createElement(SamplesPanel,null,React.createElement(CodePanel,{className:"panel-response-samples"},React.createElement(MediaTypeSamples,{mediaType:p,onChange:f}))):null))}export const SchemaDefinition=memo(SchemaDefinitionComponent);const Description=styled.div`
1
+ import React,{memo,useCallback,useMemo}from"react";import styled from"styled-components";import{PanelBody,LayoutVariant}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import{writeAtom}from"../../jotai/nexus";import{SamplesMiddlePanel,SamplesPanel,Row,Section}from"../common";import{getMediaType}from"../../models";import{MediaTypeSamples}from"../PayloadSamples";import{Schema}from"../Schema";import{Markdown}from"../Markdown";import{CodePanel}from"../Panel";import{layoutAtom,showRightPanelToggleAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{operationStore}from"../../jotai/operation";const getMediaTypeInfo=(e,o)=>{if(!e)return{};const a={schema:{$ref:e}};return o&&(a.examples={example:{$ref:o}}),a};function SchemaDefinitionComponent({schemaRef:e,exampleRef:o,showReadOnly:a=!0,showWriteOnly:t=!1}){var n,i,l;const m=useAtomValue(layoutAtom),{parser:r,options:s}=useAtomValue(globalStoreAtom),c=useAtomValue(showRightPanelToggleAtom),p=useMemo((()=>getMediaType(r,"json",!1,getMediaTypeInfo(e,o),s,{operation:{pointer:"SchemaDefinitionComponent"}})),[o,s,r,e]),[d,u]=useAtom(operationStore(null===(n=p.operation)||void 0===n?void 0:n.pointer)),f=useCallback((e=>{if(!p.schema)return;const o=p.schema,a=o.oneOf;if(a&&(null==p?void 0:p.examples)&&Object.keys(null==p?void 0:p.examples).includes(e)){const t=a.findIndex((o=>o.title===e));-1!==t&&o&&writeAtom(operationStore(o.deps.operation.pointer),(e=>{var a,n;return Object.assign(Object.assign({},e),{activeExampleName:(null===(n=null===(a=o.oneOf)||void 0===a?void 0:a[t])||void 0===n?void 0:n.title)||e.activeExampleName,activeOneOf:Object.assign(Object.assign({},e.activeOneOf),{[o.pointer]:t})})}))}d.activeExampleName!==e&&u((o=>Object.assign(Object.assign({},o),{activeExampleName:e})))}),[null==p?void 0:p.examples,p.schema,d.activeExampleName,u]);return React.createElement(Section,null,React.createElement(Row,{layout:m},React.createElement(SamplesMiddlePanel,{isStacked:m===LayoutVariant.STACKED||!c},(null===(i=p.schema)||void 0===i?void 0:i.description)&&React.createElement(Description,null,React.createElement(Markdown,{source:null===(l=p.schema)||void 0===l?void 0:l.description})),React.createElement(StyledPanelBody,{className:"panel-default"},React.createElement(Schema,{skipWriteOnly:!t,skipReadOnly:!a,schema:p.schema}))),c?React.createElement(SamplesPanel,null,React.createElement(CodePanel,{className:"panel-response-samples"},React.createElement(MediaTypeSamples,{mediaType:p,onChange:f}))):null))}export const SchemaDefinition=memo(SchemaDefinitionComponent);const Description=styled.div`
2
2
  margin-bottom: var(--spacing-vertical);
3
3
  `,StyledPanelBody=styled(PanelBody)`
4
4
  --panel-schemas-body-padding: var(--panel-body-padding);
@@ -1,2 +1,2 @@
1
- import React from"react";import{useRecoilValue}from"@redocly/recoil";import{MenuItem,MenuItemPath}from"../SideMenu";import{SideNavStyle}from"../../services";import{formatPath,formatPlaces}from"./utils";import{MarkedSpan,Place,ResultMeta}from"./styled";import{globalOptionsSelector}from"../../recoil/store";function markString(e,t){const a=new RegExp("("+t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")+")","gi"),l=e.split(a);for(let e=1,t=l.length;e<t;e+=2)l[e]=React.createElement(MarkedSpan,{key:e},l[e]);return l}export const MenuItemSearch=({result:e,term:t,active:a,onClick:l})=>{const{searchMode:r,sideNavStyle:c}=useRecoilValue(globalOptionsSelector),n="path-only"===r,m=c===SideNavStyle.PathFirst;return React.createElement(MenuItem,{item:Object.create(e.item,{name:{value:n?e.item.name:""},path:{value:""},search:{value:!0}}),active:a,"data-role":"search:result",onClick:l},(m||n)&&"operation"===e.item.type?React.createElement(React.Fragment,null,React.createElement(MenuItemPath,{title:e.item.path},markString(e.item.path,t))):markString(e.item.name,t),e.count>1?React.createElement(ResultMeta,null,e.count," matching ",formatPlaces(e.places)):1===e.count?React.createElement(ResultMeta,null,"in ",React.createElement(Place,null,e.places[0].place)," ",formatPath(t,e.places[0].paths[0])):null)};
1
+ import React from"react";import{useAtomValue}from"jotai";import{MenuItem,MenuItemPath}from"../SideMenu";import{SideNavStyle}from"../../services";import{formatPath,formatPlaces}from"./utils";import{MarkedSpan,Place,ResultMeta}from"./styled";import{globalOptionsAtom}from"../../jotai/store";function markString(e,t){const a=new RegExp("("+t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")+")","gi"),r=e.split(a);for(let e=1,t=r.length;e<t;e+=2)r[e]=React.createElement(MarkedSpan,{key:e},r[e]);return r}export const MenuItemSearch=({result:e,term:t,active:a,onClick:r})=>{const{searchMode:l,sideNavStyle:m}=useAtomValue(globalOptionsAtom),n="path-only"===l,c=m===SideNavStyle.PathFirst;return React.createElement(MenuItem,{item:Object.create(e.item,{name:{value:n?e.item.name:""},path:{value:""},search:{value:!0}}),active:a,"data-role":"search:result",onClick:r},(c||n)&&"operation"===e.item.type?React.createElement(React.Fragment,null,React.createElement(MenuItemPath,{title:e.item.path},markString(e.item.path,t))):markString(e.item.name,t),e.count>1?React.createElement(ResultMeta,null,e.count," matching ",formatPlaces(e.places)):1===e.count?React.createElement(ResultMeta,null,"in ",React.createElement(Place,null,e.places[0].place)," ",formatPath(t,e.places[0].paths[0])):null)};
2
2
  //# sourceMappingURL=MenuItemSearch.js.map
@@ -1,2 +1,2 @@
1
- import{getRecoil}from"../../recoil/nexus";import{getActiveMediaType}from"../../models";import{operationStore}from"../../recoil/operation";export function getFields(e){var t;if(!e)return[];const{activeOneOf:o}=getRecoil(operationStore(e.deps.operation.pointer));if(e.oneOf){const n=null!==(t=o[e.pointer])&&void 0!==t?t:0;return getFields(e.oneOf[n])}return e.items?getFields(e.items):e.fields||[]}export function expandDeep(e,t){if(e)for(const o of e){const e=t.find((e=>e.name===o));if(!e)break;t=getFields(e.schema)}}export function enhanceResults(e,t){const o={};e.forEach((({meta:e,score:n})=>{const s=e.menuId,i=o[s];if(n=e.boost?n*e.boost:n,i){if(i.score=Math.max(n,i.score),e.place&&i.count++,e.place){const t=i.places.find((t=>t.place===e.place));t&&e.path?t.paths.find((t=>{var o;return(t&&t.join("->"))===(null===(o=e.path)||void 0===o?void 0:o.join("->"))}))||t.paths.push(e.path):i.places.push({place:e.place,paths:[e.path]})}}else o[s]={item:t(s),places:e.place?[{place:e.place,paths:[e.path]}]:[],score:n,count:e.place?1:0}}));const n=Object.keys(o).map((e=>o[e]));return n.forEach(((e,t)=>e.index=t)),n.sort(((e,t)=>t.score-e.score)),n}export function formatPlaces(e){return e.slice().sort(),e.map((e=>e.place)).join(" and ")}export function formatPath(e,t){return t&&t.length&&t[t.length-1].toLowerCase().startsWith(e.toLowerCase())&&(t=t.slice(0,t.length-1)),t&&0!==t.length?" → "+t.join(" → "):""}export function expandResults(e){var t,o;for(const n of e.places)if("request fields"===n.place){const o=e.item.requestBody,s=getFields(o&&o.content&&(null===(t=getActiveMediaType(o.content))||void 0===t?void 0:t.schema));for(const e of n.paths){if(!e)return;expandDeep(e.slice(0,e.length-1),s)}}else if(n.place.startsWith("response ")){const t=n.place.split(" ")[1],s=e.item.responses.find((e=>e.code===t));s&&(s.expanded=!0);const i=getFields(s&&s.content&&(null===(o=getActiveMediaType(s.content))||void 0===o?void 0:o.schema));for(const e of n.paths){if(!e)return;expandDeep(e.slice(0,e.length-1),i)}}}
1
+ import{readAtom}from"../../jotai/nexus";import{getActiveMediaType}from"../../models";import{operationStore}from"../../jotai/operation";export function getFields(e){var t;if(!e)return[];const{activeOneOf:o}=readAtom(operationStore(e.deps.operation.pointer));if(e.oneOf){const n=null!==(t=o[e.pointer])&&void 0!==t?t:0;return getFields(e.oneOf[n])}return e.items?getFields(e.items):e.fields||[]}export function expandDeep(e,t){if(e)for(const o of e){const e=t.find((e=>e.name===o));if(!e)break;t=getFields(e.schema)}}export function enhanceResults(e,t){const o={};e.forEach((({meta:e,score:n})=>{const s=e.menuId,a=o[s];if(n=e.boost?n*e.boost:n,a){if(a.score=Math.max(n,a.score),e.place&&a.count++,e.place){const t=a.places.find((t=>t.place===e.place));t&&e.path?t.paths.find((t=>{var o;return(t&&t.join("->"))===(null===(o=e.path)||void 0===o?void 0:o.join("->"))}))||t.paths.push(e.path):a.places.push({place:e.place,paths:[e.path]})}}else o[s]={item:t(s),places:e.place?[{place:e.place,paths:[e.path]}]:[],score:n,count:e.place?1:0}}));const n=Object.keys(o).map((e=>o[e]));return n.forEach(((e,t)=>e.index=t)),n.sort(((e,t)=>t.score-e.score)),n}export function formatPlaces(e){return e.slice().sort(),e.map((e=>e.place)).join(" and ")}export function formatPath(e,t){return t&&t.length&&t[t.length-1].toLowerCase().startsWith(e.toLowerCase())&&(t=t.slice(0,t.length-1)),t&&0!==t.length?" → "+t.join(" → "):""}export function expandResults(e){var t,o;for(const n of e.places)if("request fields"===n.place){const o=e.item.requestBody,s=getFields(o&&o.content&&(null===(t=getActiveMediaType(o.content))||void 0===t?void 0:t.schema));for(const e of n.paths){if(!e)return;expandDeep(e.slice(0,e.length-1),s)}}else if(n.place.startsWith("response ")){const t=n.place.split(" ")[1],s=e.item.responses.find((e=>e.code===t));s&&(s.expanded=!0);const a=getFields(s&&s.content&&(null===(o=getActiveMediaType(s.content))||void 0===o?void 0:o.schema));for(const e of n.paths){if(!e)return;expandDeep(e.slice(0,e.length-1),a)}}}
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- import React,{useMemo}from"react";import{OpenApiHeader}from"@redocly/theme";import{useRecoilValue}from"@redocly/recoil";import{ContentItem}from"../ContentItem";import{Pagination}from"../../services";import{MiddlePanelWrapper}from"../Panel";import{PageFooter}from"../PageFooter";import{globalOptionsSelector}from"../../recoil/store";import{RenderHook}from"../RenderHook";export function SectionContent({items:e,pagination:t,nextSectionLink:o,showNextButton:n,hideFooterAndHeader:r}){const l=useMemo((()=>t===Pagination.None?e:null==e?void 0:e.filter((e=>"section"===e.type))),[e,t]),{hooks:{MiddlePanelHeader:a}}=useRecoilValue(globalOptionsSelector),i=useMemo((()=>r?null:React.createElement(MiddlePanelWrapper,null,React.createElement(PageFooter,{showNextButton:n,pagination:t,nextSectionLink:o}))),[o,t,n,r]),m=useMemo((()=>r||!OpenApiHeader&&!a?null:React.createElement(MiddlePanelWrapper,null,a?React.createElement(RenderHook,{Hook:a,props:void 0}):React.createElement(OpenApiHeader,null))),[a,r]);return 0===l.length?null:React.createElement(React.Fragment,null,m,l.map((e=>React.createElement(ContentItem,{key:e.id,item:e}))),i)}
1
+ import React,{useMemo}from"react";import{OpenApiHeader}from"@redocly/theme";import{useAtomValue}from"jotai";import{ContentItem}from"../ContentItem";import{Pagination}from"../../services";import{MiddlePanelWrapper}from"../Panel";import{PageFooter}from"../PageFooter";import{globalOptionsAtom}from"../../jotai/store";import{RenderHook}from"../RenderHook";export function SectionContent({items:e,pagination:t,nextSectionLink:o,showNextButton:n,hideFooterAndHeader:r}){const a=useMemo((()=>t===Pagination.None?e:null==e?void 0:e.filter((e=>"section"===e.type))),[e,t]),{hooks:{MiddlePanelHeader:i}}=useAtomValue(globalOptionsAtom),l=useMemo((()=>r?null:React.createElement(MiddlePanelWrapper,null,React.createElement(PageFooter,{showNextButton:n,pagination:t,nextSectionLink:o}))),[o,t,n,r]),m=useMemo((()=>r||!OpenApiHeader&&!i?null:React.createElement(MiddlePanelWrapper,null,i?React.createElement(RenderHook,{Hook:i,props:void 0}):React.createElement(OpenApiHeader,null))),[i,r]);return 0===a.length?null:React.createElement(React.Fragment,null,m,a.map((e=>React.createElement(ContentItem,{key:e.id,item:e}))),l)}
2
2
  //# sourceMappingURL=SectionContent.js.map
@@ -1,4 +1,4 @@
1
- import React from"react";import styled from"styled-components";import{useRecoilValue}from"@redocly/recoil";import{H2,MarkdownWrapper}from"@redocly/theme";import{Markdown}from"../Markdown";import{OAuthFlow}from"../SecuritySchemes";import{AUTH_TYPES}from"./constants";import{Section,ShareLink}from"../common";import{titleize}from"../../utils";import{globalStoreSelector}from"../../recoil/store";import{getSecuritySchemes}from"../../models";import{Pagination}from"../../services";export function SecurityDefs(){const{parser:e,options:t}=useRecoilValue(globalStoreSelector),r=getSecuritySchemes({parser:e}),a=t.pagination===Pagination.Item?"section/":"";return React.createElement(React.Fragment,null,null==r?void 0:r.map((e=>React.createElement(Section,{id:a+e.sectionId,sectionId:e.sectionId,key:e.id},React.createElement(H2,null,React.createElement(ShareLink,{to:`#${a}${e.sectionId}`}),e.id),React.createElement(Description,{source:e.description||""}),React.createElement(MarkdownWrapper,null,React.createElement("div",{className:"security-details"},React.createElement("div",null,React.createElement("b",null,"Security Scheme Type: "),React.createElement("span",null,AUTH_TYPES[e.type]||e.type)),e.apiKey?React.createElement("div",null,React.createElement("b",null,titleize(e.apiKey.in||"")," parameter name: "),React.createElement("span",null,e.apiKey.name)):e.http?[React.createElement("div",{key:"scheme"},React.createElement("b",null,"HTTP Authorization Scheme "),React.createElement("span",null,e.http.scheme)),"bearer"===e.http.scheme&&e.http.bearerFormat&&React.createElement("div",{key:"bearer"},React.createElement("b",null,"Bearer format: "),React.createElement("span",null,'"',e.http.bearerFormat,'"'))]:e.openId?React.createElement("div",null,React.createElement("b",null,"Connect URL:"),React.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:e.openId.connectUrl},e.openId.connectUrl)):e.flows?Object.keys(e.flows).map((t=>React.createElement(OAuthFlow,{key:t,type:t,flow:e.flows[t]}))):null))))))}const Description=styled((e=>React.createElement(Markdown,Object.assign({},e))))`
1
+ import React from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{H2,MarkdownWrapper}from"@redocly/theme";import{Markdown}from"../Markdown";import{OAuthFlow}from"../SecuritySchemes";import{AUTH_TYPES}from"./constants";import{Section,ShareLink}from"../common";import{titleize}from"../../utils";import{globalStoreAtom}from"../../jotai/store";import{getSecuritySchemes}from"../../models";import{Pagination}from"../../services";export function SecurityDefs(){const{parser:e,options:t}=useAtomValue(globalStoreAtom),r=getSecuritySchemes({parser:e}),a=t.pagination===Pagination.Item?"section/":"";return React.createElement(React.Fragment,null,null==r?void 0:r.map((e=>React.createElement(Section,{id:a+e.sectionId,sectionId:e.sectionId,key:e.id},React.createElement(H2,null,React.createElement(ShareLink,{to:`#${a}${e.sectionId}`}),e.id),React.createElement(Description,{source:e.description||""}),React.createElement(MarkdownWrapper,null,React.createElement("div",{className:"security-details"},React.createElement("div",null,React.createElement("b",null,"Security Scheme Type: "),React.createElement("span",null,AUTH_TYPES[e.type]||e.type)),e.apiKey?React.createElement("div",null,React.createElement("b",null,titleize(e.apiKey.in||"")," parameter name: "),React.createElement("span",null,e.apiKey.name)):e.http?[React.createElement("div",{key:"scheme"},React.createElement("b",null,"HTTP Authorization Scheme "),React.createElement("span",null,e.http.scheme)),"bearer"===e.http.scheme&&e.http.bearerFormat&&React.createElement("div",{key:"bearer"},React.createElement("b",null,"Bearer format: "),React.createElement("span",null,'"',e.http.bearerFormat,'"'))]:e.openId?React.createElement("div",null,React.createElement("b",null,"Connect URL:"),React.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:e.openId.connectUrl},e.openId.connectUrl)):e.flows?Object.keys(e.flows).map((t=>React.createElement(OAuthFlow,{key:t,type:t,flow:e.flows[t]}))):null))))))}const Description=styled((e=>React.createElement(Markdown,Object.assign({},e))))`
2
2
  margin-bottom: 1em;
3
3
  `;
4
4
  //# sourceMappingURL=SecurityDefs.js.map
@@ -1,4 +1,4 @@
1
- import React,{Fragment,memo,useState}from"react";import styled from"styled-components";import{useRecoilValue}from"@redocly/recoil";import{MarkdownWrapper}from"@redocly/theme";import{Markdown}from"../Markdown";import{OAuthFlow}from"../SecuritySchemes";import{PanelDescription}from"./PanelDescription";import{RequirementElement}from"./RequirementElement";import{RequiredScopesRow}from"./RequiredScopesRow";import{LockIcon}from"../icons";import{Row}from"./styled";import{AUTH_TYPES}from"./constants";import{l}from"../../services";import{titleize}from"../../utils";import{ContentPanel}from"../Panel";import{globalStoreSelector}from"../../recoil/store";import{useSecurityRequirements}from"./useSecurityRequirements";function getRequiredScopes(e,t){const r=[];let o=t.length;for(;o--;){const n=t[o];let c=n.schemes.length;for(;c--;){const t=n.schemes[c];t.id===e&&r.push(...t.scopes)}}return Array.from(new Set(r))}function SecurityRequirementsComponent({securities:e}){const[t,r]=useState(!1),{options:{showSecuritySchemeType:o,hideSecuritySection:n},parser:c}=useRecoilValue(globalStoreSelector),a=useSecurityRequirements({parser:c,securities:e});return!e.length||n?null:React.createElement(ContentPanel,{className:"panel-security-schemas",header:l("authorizations"),onToggle:e=>r(e),description:!t&&React.createElement(PanelDescription,{securities:e,showSecuritySchemeType:o}),expanded:t},t&&a&&a.length>1?React.createElement(SecurityRequirementBlock,null,e.map(((t,r)=>{let n,c,a="";return e.length>1&&t.schemes.length>1&&(c=0===r?"(":"",a=")"),r!==e.length-1&&(a+=" or",n=React.createElement("br",null)),React.createElement(Fragment,{key:t.schemes.map((({id:e})=>e)).join("")},c,React.createElement(RequirementElement,{security:t,showSecuritySchemeType:o}),a,n)}))):null,t?a.map((t=>{const r=getRequiredScopes(t.id,e);return React.createElement(SecurityDetails,{key:t.id},React.createElement("h5",null,React.createElement(LockIcon,{size:"11px",style:{verticalAlign:"baseline"},color:"--panel-body-text-color"})," ",AUTH_TYPES[t.type]||t.type,": ",t.id),React.createElement(Markdown,{source:t.description||""}),React.createElement(MarkdownWrapper,{key:t.id},t.apiKey?React.createElement(React.Fragment,null,React.createElement(Row,null,React.createElement("b",null,titleize(t.apiKey.in||"")," parameter name: "),React.createElement("code",null,t.apiKey.name)),React.createElement(RequiredScopesRow,{scopes:r})):t.http?React.createElement(React.Fragment,null,React.createElement(Row,null,React.createElement("b",null,"HTTP Authorization Scheme: "),React.createElement("code",null,t.http.scheme)),React.createElement(Row,null,"bearer"===t.http.scheme&&t.http.bearerFormat&&React.createElement(React.Fragment,null,React.createElement("b",null,"Bearer format: "),React.createElement("code",null,t.http.bearerFormat))),React.createElement(RequiredScopesRow,{scopes:r})):t.openId?React.createElement(React.Fragment,null,React.createElement(Row,null,React.createElement("b",null,"Connect URL: "),React.createElement("code",null,React.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:t.openId.connectUrl},t.openId.connectUrl))),React.createElement(RequiredScopesRow,{scopes:r})):t.flows?Object.keys(t.flows).map((e=>React.createElement(OAuthFlow,{key:e,type:e,flow:t.flows[e]},React.createElement(RequiredScopesRow,{scopes:r})))):null))})):null)}export const SecurityRequirements=memo(SecurityRequirementsComponent);const SecurityDetails=styled.div`
1
+ import React,{Fragment,memo,useState}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{MarkdownWrapper}from"@redocly/theme";import{Markdown}from"../Markdown";import{OAuthFlow}from"../SecuritySchemes";import{PanelDescription}from"./PanelDescription";import{RequirementElement}from"./RequirementElement";import{RequiredScopesRow}from"./RequiredScopesRow";import{LockIcon}from"../icons";import{Row}from"./styled";import{AUTH_TYPES}from"./constants";import{l}from"../../services";import{titleize}from"../../utils";import{ContentPanel}from"../Panel";import{globalStoreAtom}from"../../jotai/store";import{useSecurityRequirements}from"./useSecurityRequirements";function getRequiredScopes(e,t){const r=[];let o=t.length;for(;o--;){const n=t[o];let c=n.schemes.length;for(;c--;){const t=n.schemes[c];t.id===e&&r.push(...t.scopes)}}return Array.from(new Set(r))}function SecurityRequirementsComponent({securities:e}){const[t,r]=useState(!1),{options:{showSecuritySchemeType:o,hideSecuritySection:n},parser:c}=useAtomValue(globalStoreAtom),a=useSecurityRequirements({parser:c,securities:e});return!e.length||n?null:React.createElement(ContentPanel,{className:"panel-security-schemas",header:l("authorizations"),onToggle:e=>r(e),description:!t&&React.createElement(PanelDescription,{securities:e,showSecuritySchemeType:o}),expanded:t},t&&a&&a.length>1?React.createElement(SecurityRequirementBlock,null,e.map(((t,r)=>{let n,c,a="";return e.length>1&&t.schemes.length>1&&(c=0===r?"(":"",a=")"),r!==e.length-1&&(a+=" or",n=React.createElement("br",null)),React.createElement(Fragment,{key:t.schemes.map((({id:e})=>e)).join("")},c,React.createElement(RequirementElement,{security:t,showSecuritySchemeType:o}),a,n)}))):null,t?a.map((t=>{const r=getRequiredScopes(t.id,e);return React.createElement(SecurityDetails,{key:t.id},React.createElement("h5",null,React.createElement(LockIcon,{size:"11px",style:{verticalAlign:"baseline"},color:"--panel-body-text-color"})," ",AUTH_TYPES[t.type]||t.type,": ",t.id),React.createElement(Markdown,{source:t.description||""}),React.createElement(MarkdownWrapper,{key:t.id},t.apiKey?React.createElement(React.Fragment,null,React.createElement(Row,null,React.createElement("b",null,titleize(t.apiKey.in||"")," parameter name: "),React.createElement("code",null,t.apiKey.name)),React.createElement(RequiredScopesRow,{scopes:r})):t.http?React.createElement(React.Fragment,null,React.createElement(Row,null,React.createElement("b",null,"HTTP Authorization Scheme: "),React.createElement("code",null,t.http.scheme)),React.createElement(Row,null,"bearer"===t.http.scheme&&t.http.bearerFormat&&React.createElement(React.Fragment,null,React.createElement("b",null,"Bearer format: "),React.createElement("code",null,t.http.bearerFormat))),React.createElement(RequiredScopesRow,{scopes:r})):t.openId?React.createElement(React.Fragment,null,React.createElement(Row,null,React.createElement("b",null,"Connect URL: "),React.createElement("code",null,React.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:t.openId.connectUrl},t.openId.connectUrl))),React.createElement(RequiredScopesRow,{scopes:r})):t.flows?Object.keys(t.flows).map((e=>React.createElement(OAuthFlow,{key:e,type:e,flow:t.flows[e]},React.createElement(RequiredScopesRow,{scopes:r})))):null))})):null)}export const SecurityRequirements=memo(SecurityRequirementsComponent);const SecurityDetails=styled.div`
2
2
  border-bottom: 1px solid var(--border-primary);
3
3
  margin-bottom: 1.5em;
4
4
  padding-bottom: 0.7em;
@@ -1,4 +1,4 @@
1
- import React from"react";import{useRecoilState,useRecoilValue}from"@redocly/recoil";import{SidebarActions,LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{collapsedSidebarSelector,layoutSelector,showRightPanelToggleSelector}from"../../recoil/app";import{globalOptionsSelector}from"../../recoil/store";export const Actions=()=>{const{showChangeLayoutButton:e,showRightPanelToggle:o}=useRecoilValue(globalOptionsSelector),[t,a]=useRecoilState(layoutSelector),[l,i]=useRecoilState(showRightPanelToggleSelector),[r,c]=useRecoilState(collapsedSidebarSelector);return React.createElement(React.Fragment,null,React.createElement(Wrapper,null,React.createElement(SidebarActions,{showChangeLayoutButton:e,showRightPanelToggle:l,layout:t,initialShowRightPanelToggle:o,onChangeRightPanelViewClick:()=>i((e=>!e)),onChangeViewClick:()=>a(t===LayoutVariant.STACKED?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED),collapsedSidebar:r,onChangeCollapseSidebarClick:()=>c((e=>!e)),isOpenapiDocs:!0})))};const Wrapper=styled.div`
1
+ import React from"react";import{useAtom,useAtomValue}from"jotai";import{SidebarActions,LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{collapsedSidebarAtom,layoutAtom,showRightPanelToggleAtom}from"../../jotai/app";import{globalOptionsAtom}from"../../jotai/store";export const Actions=()=>{const{showChangeLayoutButton:t,showRightPanelToggle:o}=useAtomValue(globalOptionsAtom),[e,a]=useAtom(layoutAtom),[i,l]=useAtom(showRightPanelToggleAtom),[n,r]=useAtom(collapsedSidebarAtom);return React.createElement(React.Fragment,null,React.createElement(Wrapper,null,React.createElement(SidebarActions,{showChangeLayoutButton:t,showRightPanelToggle:i,layout:e,initialShowRightPanelToggle:o,onChangeRightPanelViewClick:()=>l(!i),onChangeViewClick:()=>a(e===LayoutVariant.STACKED?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED),collapsedSidebar:n,onChangeCollapseSidebarClick:()=>r(!n),isOpenapiDocs:!0})))};const Wrapper=styled.div`
2
2
  position: sticky;
3
3
  top: calc(100vh);
4
4
  `;
@@ -1,2 +1,2 @@
1
- import React,{memo}from"react";import{useRecoilValue}from"@redocly/recoil";import{MenuItem}from"./MenuItem";import{MenuItemUl}from"./styled";import{MenuExternalLink}from"./MenuItemEternalLink";import{globalOptionsSelector}from"../../recoil/store";import{Pagination}from"../../services";import{isRootItem}from"../ContentItems/helpers";function MenuItemsComponents({items:e,root:t,className:n,linksBefore:o=[],linksAfter:i=[],expanded:m=!0,style:r}){const{pagination:a,hideInfoSection:l}=useRecoilValue(globalOptionsSelector);return React.createElement(MenuItemUl,{className:n,style:r,expanded:m,role:t?"navigation":void 0},o.map((e=>React.createElement(MenuExternalLink,{key:JSON.stringify(e),link:e}))),e.map((e=>l&&a===Pagination.None&&isRootItem(e)?null:React.createElement(MenuItem,{key:e.id,item:e,pagination:a}))),i.map((e=>React.createElement(MenuExternalLink,{key:JSON.stringify(e),link:e}))))}export const MenuItems=memo(MenuItemsComponents);
1
+ import React,{memo}from"react";import{useAtomValue}from"jotai";import{MenuItem}from"./MenuItem";import{MenuItemUl}from"./styled";import{MenuExternalLink}from"./MenuItemEternalLink";import{globalOptionsAtom}from"../../jotai/store";import{Pagination}from"../../services";import{isRootItem}from"../ContentItems/helpers";function MenuItemsComponents({items:e,root:t,className:n,linksBefore:o=[],linksAfter:m=[],expanded:i=!0,style:a}){const{pagination:r,hideInfoSection:s}=useAtomValue(globalOptionsAtom);return React.createElement(MenuItemUl,{className:n,style:a,expanded:i,role:t?"navigation":void 0},o.map((e=>React.createElement(MenuExternalLink,{key:JSON.stringify(e),link:e}))),e.map((e=>s&&r===Pagination.None&&isRootItem(e)?null:React.createElement(MenuItem,{key:e.id,item:e,pagination:r}))),m.map((e=>React.createElement(MenuExternalLink,{key:JSON.stringify(e),link:e}))))}export const MenuItems=memo(MenuItemsComponents);
2
2
  //# sourceMappingURL=MenuItems.js.map
@@ -1,8 +1,8 @@
1
- import React,{memo}from"react";import{HttpTag}from"@redocly/theme";import styled from"styled-components";import{useRecoilValue}from"@redocly/recoil";import{MenuItemPath,MenuItemTitle}from"./styled";import{MenuItemLink}from"./MenuItemLink";import{SideNavStyle,l}from"../../services";import{shortenHTTPVerb}from"../../utils";import{globalOptionsSelector}from"../../recoil/store";const MenuItemOperationLink=styled(MenuItemLink)`
1
+ import React,{memo}from"react";import{HttpTag}from"@redocly/theme";import styled from"styled-components";import{useAtomValue}from"jotai";import{MenuItemPath,MenuItemTitle}from"./styled";import{MenuItemLink}from"./MenuItemLink";import{SideNavStyle,l}from"../../services";import{shortenHTTPVerb}from"../../utils";import{globalOptionsAtom}from"../../jotai/store";const MenuItemOperationLink=styled(MenuItemLink)`
2
2
  flex-wrap: wrap;
3
3
  `,MenuItemDescription=styled.small`
4
4
  display: block;
5
5
  font-size: 0.87em;
6
6
  line-height: 1.2;
7
- `;function MenuOperationItemContentComponent({item:e,to:t,children:o,active:n}){let r,i;const{sideNavStyle:m,showWebhookVerb:a}=useRecoilValue(globalOptionsSelector);return m!==SideNavStyle.PathFirst&&!e.search||"operation"!==e.type?(r=m===SideNavStyle.IdOnly?e.operationId||e.path:e.name,i=null):(r=React.createElement(MenuItemPath,{title:e.path}," ",e.path," "),i=React.createElement(MenuItemDescription,null," ",e.name," ")),React.createElement(MenuItemOperationLink,{depth:e.depth,deprecated:e.deprecated,to:t,active:n},e.isWebhook?React.createElement(HttpTag,{color:"hook"},a?e.httpVerb:l("webhook")):React.createElement(HttpTag,{color:e.httpVerb},shortenHTTPVerb(e.httpVerb)),React.createElement(MenuItemTitle,{width:"calc(100% - 42px)"},r,o),i)}export const MenuOperationItemContent=memo(MenuOperationItemContentComponent);
7
+ `;function MenuOperationItemContentComponent({item:e,to:t,children:o,active:n}){let r,m;const{sideNavStyle:a,showWebhookVerb:i}=useAtomValue(globalOptionsAtom);return a!==SideNavStyle.PathFirst&&!e.search||"operation"!==e.type?(r=a===SideNavStyle.IdOnly?e.operationId||e.path:e.name,m=null):(r=React.createElement(MenuItemPath,{title:e.path}," ",e.path," "),m=React.createElement(MenuItemDescription,null," ",e.name," ")),React.createElement(MenuItemOperationLink,{depth:e.depth,deprecated:e.deprecated,to:t,active:n},e.isWebhook?React.createElement(HttpTag,{color:"hook"},i?e.httpVerb:l("webhook")):React.createElement(HttpTag,{color:e.httpVerb},shortenHTTPVerb(e.httpVerb)),React.createElement(MenuItemTitle,{width:"calc(100% - 42px)"},r,o),m)}export const MenuOperationItemContent=memo(MenuOperationItemContentComponent);
8
8
  //# sourceMappingURL=MenuOperationItemContent.js.map
@@ -1,2 +1,2 @@
1
- import React,{memo,useRef}from"react";import{useRecoilValue}from"@redocly/recoil";import{RedocAttribution}from"./styled";import{MenuItems}from"./MenuItems";import{PerfectScrollbarWrap}from"../common";import{globalOptionsSelector}from"../../recoil/store";import{useMenuItems}from"./hooks";const SideMenuComponent=({items:e,className:o})=>{const{sidebarLinks:t,whiteLabel:r,pagination:n}=useRecoilValue(globalOptionsSelector),l=useRef(),i=useMenuItems({items:e,pagination:n});return React.createElement(PerfectScrollbarWrap,{updateFn:e=>{l.current=e},className:o,options:{wheelPropagation:!1}},React.createElement(MenuItems,{items:i,root:!0,linksBefore:null==t?void 0:t.beforeInfo,linksAfter:null==t?void 0:t.end}),r&&React.createElement(RedocAttribution,null,React.createElement("a",{href:"https://redoc.ly",target:"_blank",rel:"noreferrer"},"Powered by Redocly")))};export const SideMenu=memo(SideMenuComponent);
1
+ import React,{memo,useRef}from"react";import{useAtomValue}from"jotai";import{RedocAttribution}from"./styled";import{MenuItems}from"./MenuItems";import{PerfectScrollbarWrap}from"../common";import{globalOptionsAtom}from"../../jotai/store";import{useMenuItems}from"./hooks";const SideMenuComponent=({items:e,className:t})=>{const{sidebarLinks:o,whiteLabel:r,pagination:n}=useAtomValue(globalOptionsAtom),m=useRef(),a=useMenuItems({items:e,pagination:n});return React.createElement(PerfectScrollbarWrap,{updateFn:e=>{m.current=e},className:t,options:{wheelPropagation:!1}},React.createElement(MenuItems,{items:a,root:!0,linksBefore:null==o?void 0:o.beforeInfo,linksAfter:null==o?void 0:o.end}),r&&React.createElement(RedocAttribution,null,React.createElement("a",{href:"https://redoc.ly",target:"_blank",rel:"noreferrer"},"Powered by Redocly")))};export const SideMenu=memo(SideMenuComponent);
2
2
  //# sourceMappingURL=SideMenu.js.map
@@ -1,4 +1,4 @@
1
- import React,{memo,useEffect,useRef,useState}from"react";import styled,{css}from"styled-components";import{MobileSidebarButton,MobileSidebarIcon,useMount,useUnmount}from"@redocly/theme";import{useRecoilState}from"@redocly/recoil";import{useLocation}from"react-router-dom";import{IS_BROWSER}from"../../utils";import{isSidebarOpenedSelector}from"../../recoil/app";import{Actions}from"../SideMenu/Actions";let Stickyfill;IS_BROWSER&&(Stickyfill=require("stickyfill"));const stickyfill=Stickyfill&&Stickyfill(),StyledStickySidebar=styled.div`
1
+ import React,{memo,useEffect,useRef,useState}from"react";import styled,{css}from"styled-components";import{MobileSidebarButton,MobileSidebarIcon,useMount,useUnmount}from"@redocly/theme";import{useAtom}from"jotai";import{useLocation}from"react-router-dom";import{IS_BROWSER}from"../../utils";import{isSidebarOpenedAtom}from"../../jotai/app";import{Actions}from"../SideMenu/Actions";let Stickyfill;IS_BROWSER&&(Stickyfill=require("stickyfill"));const stickyfill=Stickyfill&&Stickyfill(),StyledStickySidebar=styled.div`
2
2
  overflow: hidden;
3
3
  flex-direction: column;
4
4
  backface-visibility: hidden;
@@ -35,5 +35,5 @@ import React,{memo,useEffect,useRef,useState}from"react";import styled,{css}from
35
35
  display: none;
36
36
  }
37
37
  `}
38
- `;function StickyResponsiveSidebarComponent({scrollYOffset:e,hideFab:t,className:i,children:o,collapsedSidebar:r}){const[a,l]=useState("0px"),s=useRef(null),c=useLocation(),[n,d]=useRecoilState(isSidebarOpenedSelector);useEffect((()=>{c.hash&&d(!1)}),[c.pathname,c.hash,d]),useMount((()=>{stickyfill&&stickyfill.add(s.current);const t=e();l(`${t}px`)})),useUnmount((()=>{stickyfill&&stickyfill.remove(s.current)}));return React.createElement(React.Fragment,null,React.createElement(StyledStickySidebar,{open:n,className:i,offsetTop:a,style:{top:a},ref:s,collapsedSidebar:r},r||n?o:null,React.createElement(Actions,null)),!t&&React.createElement(FloatingButton,{opened:n,onClick:()=>{d(!n)}},React.createElement(MobileSidebarIcon,null)))}export const StickyResponsiveSidebar=memo(StickyResponsiveSidebarComponent);
38
+ `;function StickyResponsiveSidebarComponent({scrollYOffset:e,hideFab:t,className:i,children:o,collapsedSidebar:a}){const[r,s]=useState("0px"),l=useRef(null),n=useLocation(),[c,d]=useAtom(isSidebarOpenedAtom);useEffect((()=>{n.hash&&d(!1)}),[n.pathname,n.hash,d]),useMount((()=>{stickyfill&&stickyfill.add(l.current);const t=e();s(`${t}px`)})),useUnmount((()=>{stickyfill&&stickyfill.remove(l.current)}));return React.createElement(React.Fragment,null,React.createElement(StyledStickySidebar,{open:c,className:i,offsetTop:r,style:{top:r},ref:l,collapsedSidebar:a},a||c?o:null,React.createElement(Actions,null)),!t&&React.createElement(FloatingButton,{opened:c,onClick:()=>{d(!c)}},React.createElement(MobileSidebarIcon,null)))}export const StickyResponsiveSidebar=memo(StickyResponsiveSidebarComponent);
39
39
  //# sourceMappingURL=StickyResponsiveSidebar.js.map
@@ -1,2 +1,2 @@
1
- var __rest=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(n[o[a]]=e[o[a]])}return n};import React,{memo,useCallback,useEffect,useState}from"react";import{useRecoilState}from"@redocly/recoil";import{CollapsingTabsBase}from"./CollapsingTabsBase";import{operationStore}from"../../../recoil/operation";function getActiveIndexFromOperation(e,t,n){var o;if(!t)return-1;if("number"==typeof n&&n>0){return hasActiveExampleName(null===(o=e[n])||void 0===o?void 0:o.content,t)?n:getActiveIndexFromOperation(e,t)}return e.findIndex((({content:e})=>hasActiveExampleName(e,t)))}function hasActiveExampleName(e,t){return!!(null==e?void 0:e.mediaTypes.find((e=>Object.keys(e.examples||[]).includes(t||""))))}function CollapsingTabsComponent(e){var{children:t}=e,n=__rest(e,["children"]);const{operation:{pointer:o,responses:a},tabs:i}=n,[r,s]=useRecoilState(operationStore(o)),[l,c]=useState(0);function p(e){s((t=>Object.assign(Object.assign({},t),{activeResponseTab:e})))}useEffect((()=>{const e=i.findIndex((e=>e.title===(null==r?void 0:r.activeResponseTab)));c(e)}),[i,null==r?void 0:r.activeResponseTab,c]);const m=null==r?void 0:r.activeExampleName;useEffect((()=>{const e=getActiveIndexFromOperation(a,m,l);e>-1&&i[e]&&(c(e),p(i[e].title))}),[m]);const u=useCallback((e=>{l!==e&&(c(e),p(i[e].title))}),[l]);return React.createElement(CollapsingTabsBase,Object.assign({},n,{activeIndex:l,onChange:u}),t)}export const CollapsingTabs=memo(CollapsingTabsComponent);
1
+ var __rest=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(n[o[a]]=e[o[a]])}return n};import React,{memo,useCallback,useEffect,useState}from"react";import{useAtom}from"jotai";import{CollapsingTabsBase}from"./CollapsingTabsBase";import{operationStore}from"../../../jotai/operation";function getActiveIndexFromOperation(e,t,n){var o;if(!t)return-1;if("number"==typeof n&&n>0){return hasActiveExampleName(null===(o=e[n])||void 0===o?void 0:o.content,t)?n:getActiveIndexFromOperation(e,t)}return e.findIndex((({content:e})=>hasActiveExampleName(e,t)))}function hasActiveExampleName(e,t){return!!(null==e?void 0:e.mediaTypes.find((e=>Object.keys(e.examples||[]).includes(t||""))))}function CollapsingTabsComponent(e){var{children:t}=e,n=__rest(e,["children"]);const{operation:{pointer:o,responses:a},tabs:i}=n,[r,s]=useAtom(operationStore(o)),[l,c]=useState(0);function p(e){s((t=>Object.assign(Object.assign({},t),{activeResponseTab:e})))}useEffect((()=>{const e=i.findIndex((e=>e.title===(null==r?void 0:r.activeResponseTab)));c(e)}),[i,null==r?void 0:r.activeResponseTab,c]);const m=null==r?void 0:r.activeExampleName;useEffect((()=>{const e=getActiveIndexFromOperation(a,m,l);e>-1&&i[e]&&(c(e),p(i[e].title))}),[m]);const u=useCallback((e=>{l!==e&&(c(e),p(i[e].title))}),[l]);return React.createElement(CollapsingTabsBase,Object.assign({},n,{activeIndex:l,onChange:u}),t)}export const CollapsingTabs=memo(CollapsingTabsComponent);
2
2
  //# sourceMappingURL=CollapsingTabs.js.map
@@ -1,2 +1,2 @@
1
- import React,{memo,useCallback,useEffect,useMemo,useState}from"react";import{Tabs}from"react-tabs";import{useRecoilValue}from"@redocly/recoil";import{CollapsingDropdown}from"../../common/Dropdown";import{CollapsingTabList}from"./CollapsingTabList";import{CollapsingTab}from"./CollapsingTab";import{globalOptionsSelector}from"../../../recoil/store";function CollapsingTabsBaseComponent({tabs:e,children:o,hidden:l,activeIndex:t,onChange:a}){const{samplesTabsMaxCount:n}=useRecoilValue(globalOptionsSelector),s=useMemo((()=>e.slice(n).map((({title:e},o)=>({idx:o,value:e})))),[e,n]),i=`${s.length} more`,[r,c]=useState(i),m=useCallback((()=>{var o;const l=t>=n;r!==i&&r===e[t].title||!l?r===i||l||c(i):c(null===(o=e[t])||void 0===o?void 0:o.title)}),[t,n,r,i,e]);useEffect((()=>{setTimeout(m,0)}),[t,n,m]);return React.createElement(Tabs,{selectedIndex:t,onSelect:a},React.createElement(CollapsingTabList,{hidden:l},e.map(((e,o)=>React.createElement(CollapsingTab,{key:null==e?void 0:e.key,disabled:o>=n},null==e?void 0:e.title))),s.length?React.createElement(CollapsingDropdown,{options:s,onChange:e=>{a(n+e.idx)},placeholder:i,value:r,active:t>=n}):null),o)}export const CollapsingTabsBase=memo(CollapsingTabsBaseComponent);
1
+ import React,{memo,useCallback,useEffect,useMemo,useState}from"react";import{Tabs}from"react-tabs";import{useAtomValue}from"jotai";import{CollapsingDropdown}from"../../common/Dropdown";import{CollapsingTabList}from"./CollapsingTabList";import{CollapsingTab}from"./CollapsingTab";import{globalOptionsAtom}from"../../../jotai/store";function CollapsingTabsBaseComponent({tabs:e,children:o,hidden:t,activeIndex:a,onChange:l}){const{samplesTabsMaxCount:n}=useAtomValue(globalOptionsAtom),s=useMemo((()=>e.slice(n).map((({title:e},o)=>({idx:o,value:e})))),[e,n]),i=`${s.length} more`,[m,p]=useState(i),r=useCallback((()=>{var o;const t=a>=n;m!==i&&m===e[a].title||!t?m===i||t||p(i):p(null===(o=e[a])||void 0===o?void 0:o.title)}),[a,n,m,i,e]);useEffect((()=>{setTimeout(r,0)}),[a,n,r]);return React.createElement(Tabs,{selectedIndex:a,onSelect:l},React.createElement(CollapsingTabList,{hidden:t},e.map(((e,o)=>React.createElement(CollapsingTab,{key:null==e?void 0:e.key,disabled:o>=n},null==e?void 0:e.title))),s.length?React.createElement(CollapsingDropdown,{options:s,onChange:e=>{l(n+e.idx)},placeholder:i,value:m,active:a>=n}):null),o)}export const CollapsingTabsBase=memo(CollapsingTabsBaseComponent);
2
2
  //# sourceMappingURL=CollapsingTabsBase.js.map
@@ -1,2 +1,2 @@
1
- import React,{useMemo}from"react";import{OpenApiHeader}from"@redocly/theme";import{useRecoilValue}from"@redocly/recoil";import{Pagination}from"../../services";import{ContentItem}from"../ContentItem";import{MiddlePanelWrapper}from"../Panel";import{PageFooter}from"../PageFooter";import{SectionContent}from"../SectionContent";import{globalOptionsSelector}from"../../recoil/store";import{RenderHook}from"../RenderHook";export function TagItems({tag:e,nextSectionLink:t,pagination:o,showNextButton:n}){const{hooks:{MiddlePanelHeader:r}}=useRecoilValue(globalOptionsSelector),a=useMemo((()=>{const e=React.createElement(PageFooter,{showNextButton:n,pagination:o,nextSectionLink:t});return e?React.createElement(MiddlePanelWrapper,null,e):null}),[t,o,n]),i=useMemo((()=>OpenApiHeader||r?React.createElement(MiddlePanelWrapper,null,r?React.createElement(RenderHook,{Hook:r,props:void 0}):React.createElement(OpenApiHeader,null)):null),[r]);return React.createElement(React.Fragment,null,i,React.createElement(ContentItem,{key:e.id,item:e,withChildren:o!==Pagination.Item}),o===Pagination.Item&&React.createElement(SectionContent,{hideFooterAndHeader:!0,items:e.items||[],pagination:o,showNextButton:!1}),a)}
1
+ import React,{useMemo}from"react";import{OpenApiHeader}from"@redocly/theme";import{useAtomValue}from"jotai";import{Pagination}from"../../services";import{ContentItem}from"../ContentItem";import{MiddlePanelWrapper}from"../Panel";import{PageFooter}from"../PageFooter";import{SectionContent}from"../SectionContent";import{globalOptionsAtom}from"../../jotai/store";import{RenderHook}from"../RenderHook";export function TagItems({tag:e,nextSectionLink:t,pagination:o,showNextButton:n}){const{hooks:{MiddlePanelHeader:r}}=useAtomValue(globalOptionsAtom),a=useMemo((()=>{const e=React.createElement(PageFooter,{showNextButton:n,pagination:o,nextSectionLink:t});return e?React.createElement(MiddlePanelWrapper,null,e):null}),[t,o,n]),i=useMemo((()=>OpenApiHeader||r?React.createElement(MiddlePanelWrapper,null,r?React.createElement(RenderHook,{Hook:r,props:void 0}):React.createElement(OpenApiHeader,null)):null),[r]);return React.createElement(React.Fragment,null,i,React.createElement(ContentItem,{key:e.id,item:e,withChildren:o!==Pagination.Item}),o===Pagination.Item&&React.createElement(SectionContent,{hideFooterAndHeader:!0,items:e.items||[],pagination:o,showNextButton:!1}),a)}
2
2
  //# sourceMappingURL=TagItems.js.map
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { DropdownOption } from './common/Dropdown';
3
- import type { OpenAPIDefinitionVersion } from '../recoil/store';
3
+ import type { OpenAPIDefinitionVersion } from '../jotai/store';
4
4
  export interface VersionSwitcherProps {
5
5
  onChange: (o: DropdownOption) => void;
6
6
  versions: OpenAPIDefinitionVersion[];
@@ -1,4 +1,4 @@
1
- import React from"react";import styled from"styled-components";import{useRecoilValue}from"@redocly/recoil";import{AnchorIcon}from"@redocly/theme";import{Link as LinkRouter}from"react-router-dom";import{globalOptionsSelector}from"../../recoil/store";export function Link(e){var t;const{routingBasePath:o,hooks:r,onDeepLinkClick:i}=useRecoilValue(globalOptionsSelector),n=e.security?null===(t=null==r?void 0:r.replaceSecurityLink)||void 0===t?void 0:t.call(r,{securityRequirementId:e.to}):e.to,l=i&&{onClick:e=>{e.preventDefault(),i(o+n)}};return n?React.createElement(LinkRouter,Object.assign({id:e.id,className:e.className||"",to:(null==n?void 0:n.startsWith("#"))?n:o+n},l),e.children):e.children?React.createElement("span",{className:e.className}," ",e.children," "):null}export const StyledShareLink=styled(Link)`
1
+ import React from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{AnchorIcon}from"@redocly/theme";import{Link as LinkRouter}from"react-router-dom";import{globalOptionsAtom}from"../../jotai/store";export function Link(e){var t;const{routingBasePath:o,hooks:r,onDeepLinkClick:n}=useAtomValue(globalOptionsAtom),i=e.security?null===(t=null==r?void 0:r.replaceSecurityLink)||void 0===t?void 0:t.call(r,{securityRequirementId:e.to}):e.to,a=n&&{onClick:e=>{e.preventDefault(),n(o+i)}};return i?React.createElement(LinkRouter,Object.assign({id:e.id,className:e.className||"",to:(null==i?void 0:i.startsWith("#"))?i:o+i},a),e.children):e.children?React.createElement("span",{className:e.className}," ",e.children," "):null}export const StyledShareLink=styled(Link)`
2
2
  position: absolute;
3
3
  transform: translateX(-100%);
4
4
  padding-right: var(--heading-anchor-offset-right);
@@ -1,4 +1,4 @@
1
- var __rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var l=0;for(o=Object.getOwnPropertySymbols(e);l<o.length;l++)t.indexOf(o[l])<0&&Object.prototype.propertyIsEnumerable.call(e,o[l])&&(r[o[l]]=e[o[l]])}return r};import styled,{createGlobalStyle}from"styled-components";import*as PerfectScrollbarNamespace from"perfect-scrollbar";import React,{Component}from"react";import{useRecoilValue}from"@redocly/recoil";import{IS_BROWSER}from"../../utils";import{globalOptionsSelector}from"../../recoil/store";let psStyles="";IS_BROWSER&&(psStyles=require("perfect-scrollbar/css/perfect-scrollbar.css"),psStyles="function"==typeof psStyles.toString&&psStyles.toString()||"",psStyles="[object Object]"===psStyles?"":psStyles);const PerfectScrollbarConstructor=PerfectScrollbarNamespace.default||PerfectScrollbarNamespace,PSStyling=createGlobalStyle`${psStyles}`,StyledScrollWrapper=styled.div`
1
+ var __rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var l=0;for(o=Object.getOwnPropertySymbols(e);l<o.length;l++)t.indexOf(o[l])<0&&Object.prototype.propertyIsEnumerable.call(e,o[l])&&(r[o[l]]=e[o[l]])}return r};import styled,{createGlobalStyle}from"styled-components";import*as PerfectScrollbarNamespace from"perfect-scrollbar";import React,{Component}from"react";import{useAtomValue}from"jotai";import{IS_BROWSER}from"../../utils";import{globalOptionsAtom}from"../../jotai/store";let psStyles="";IS_BROWSER&&(psStyles=require("perfect-scrollbar/css/perfect-scrollbar.css"),psStyles="function"==typeof psStyles.toString&&psStyles.toString()||"",psStyles="[object Object]"===psStyles?"":psStyles);const PerfectScrollbarConstructor=PerfectScrollbarNamespace.default||PerfectScrollbarNamespace,PSStyling=createGlobalStyle`${psStyles}`,StyledScrollWrapper=styled.div`
2
2
  position: relative;
3
- `;export class PerfectScrollbar extends Component{constructor(){super(...arguments),Object.defineProperty(this,"_container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inst",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"handleRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this._container=e}})}componentDidMount(){const e=this._container.parentElement&&this._container.parentElement.scrollTop||0;this.inst=new PerfectScrollbarConstructor(this._container,this.props.options||{}),this._container.scrollTo&&this._container.scrollTo(0,e)}componentDidUpdate(){this.inst.update()}componentWillUnmount(){this.inst.destroy()}render(){const{children:e,updateFn:t,className:r=""}=this.props;return t&&t(this.componentDidUpdate.bind(this)),React.createElement(React.Fragment,null,psStyles&&React.createElement(PSStyling,null),React.createElement(StyledScrollWrapper,{className:`scrollbar-container ${r}`,ref:this.handleRef},e))}}export function PerfectScrollbarWrap(e){var{children:t}=e,r=__rest(e,["children"]);const{nativeScrollbars:o}=useRecoilValue(globalOptionsSelector);return o?React.createElement("div",{style:{overflow:"auto",overscrollBehavior:"contain",msOverflowStyle:"-ms-autohiding-scrollbar"}},t):React.createElement(PerfectScrollbar,Object.assign({},r),t)}
3
+ `;export class PerfectScrollbar extends Component{constructor(){super(...arguments),Object.defineProperty(this,"_container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inst",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"handleRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this._container=e}})}componentDidMount(){const e=this._container.parentElement&&this._container.parentElement.scrollTop||0;this.inst=new PerfectScrollbarConstructor(this._container,this.props.options||{}),this._container.scrollTo&&this._container.scrollTo(0,e)}componentDidUpdate(){this.inst.update()}componentWillUnmount(){this.inst.destroy()}render(){const{children:e,updateFn:t,className:r=""}=this.props;return t&&t(this.componentDidUpdate.bind(this)),React.createElement(React.Fragment,null,psStyles&&React.createElement(PSStyling,null),React.createElement(StyledScrollWrapper,{className:`scrollbar-container ${r}`,ref:this.handleRef},e))}}export function PerfectScrollbarWrap(e){var{children:t}=e,r=__rest(e,["children"]);const{nativeScrollbars:o}=useAtomValue(globalOptionsAtom);return o?React.createElement("div",{style:{overflow:"auto",overscrollBehavior:"contain",msOverflowStyle:"-ms-autohiding-scrollbar"}},t):React.createElement(PerfectScrollbar,Object.assign({},r),t)}
4
4
  //# sourceMappingURL=perfect-scrollbar.js.map
@@ -1,2 +1,2 @@
1
- import React from"react";import{useRecoilValue}from"@redocly/recoil";import{getExamples}from"../../models";import{Row}from"../common";import{ExamplesWrap}from"./styled.components";import{Example}from"../PayloadSamples";import{globalStoreSelector}from"../../recoil/store";import{layoutSelector}from"../../recoil/app";export const RedocExample=({pointer:e,mimeType:o,encoding:r})=>{const{parser:l}=useRecoilValue(globalStoreSelector),m=useRecoilValue(layoutSelector),t=getExamples({parser:l,infoOrRef:{$ref:e},mime:o,encoding:r});return React.createElement(Row,{layout:m},React.createElement(ExamplesWrap,null,React.createElement(Example,{example:t,mimeType:o})))};
1
+ import React from"react";import{useAtomValue}from"jotai";import{getExamples}from"../../models";import{Row}from"../common";import{ExamplesWrap}from"./styled.components";import{Example}from"../PayloadSamples";import{globalStoreAtom}from"../../jotai/store";import{layoutAtom}from"../../jotai/app";export const RedocExample=({pointer:e,mimeType:o,encoding:m})=>{const{parser:t}=useAtomValue(globalStoreAtom),a=useAtomValue(layoutAtom),r=getExamples({parser:t,infoOrRef:{$ref:e},mime:o,encoding:m});return React.createElement(Row,{layout:a},React.createElement(ExamplesWrap,null,React.createElement(Example,{example:r,mimeType:o})))};
2
2
  //# sourceMappingURL=RedocExample.js.map
@@ -1,2 +1,2 @@
1
- import React from"react";import{useRecoilValue}from"@redocly/recoil";import{getRequestBody,getOperation}from"../../models";import{Row,SamplesMiddlePanel,SamplesPanel}from"../common";import{SamplesWrap,FullWidthPanel}from"./styled.components";import{PayloadSamples}from"../PayloadSamples";import{BodyContent}from"../Parameters";import{globalStoreSelector}from"../../recoil/store";import{layoutSelector}from"../..//recoil/app";export const RedocRequestBody=({pointer:e,hideSamples:t})=>{const{options:o,parser:r}=useRecoilValue(globalStoreSelector),a=useRecoilValue(layoutSelector),l=getOperation(r,{pointer:e,pathName:"",httpVerb:"",pathParameters:[],pathServers:[],isWebhook:!1,responses:{}},void 0,o,""),{content:n,description:m,required:p}=getRequestBody({parser:r,infoOrRef:{$ref:e},options:o,operation:l})||{},c=t?FullWidthPanel:SamplesMiddlePanel;return React.createElement(Row,{layout:a},React.createElement(c,null,n&&React.createElement(BodyContent,{content:n,description:m,required:p})),!t&&React.createElement(SamplesPanel,null,React.createElement(SamplesWrap,null,n&&React.createElement(PayloadSamples,{content:n})))||React.createElement("span",null))};
1
+ import React from"react";import{useAtomValue}from"jotai";import{getRequestBody,getOperation}from"../../models";import{Row,SamplesMiddlePanel,SamplesPanel}from"../common";import{SamplesWrap,FullWidthPanel}from"./styled.components";import{PayloadSamples}from"../PayloadSamples";import{BodyContent}from"../Parameters";import{globalStoreAtom}from"../../jotai/store";import{layoutAtom}from"../../jotai/app";export const RedocRequestBody=({pointer:e,hideSamples:t})=>{const{options:o,parser:a}=useAtomValue(globalStoreAtom),r=useAtomValue(layoutAtom),l=getOperation(a,{pointer:e,pathName:"",httpVerb:"",pathParameters:[],pathServers:[],isWebhook:!1,responses:{}},void 0,o,""),{content:m,description:n,required:p}=getRequestBody({parser:a,infoOrRef:{$ref:e},options:o,operation:l})||{},s=t?FullWidthPanel:SamplesMiddlePanel;return React.createElement(Row,{layout:r},React.createElement(s,null,m&&React.createElement(BodyContent,{content:m,description:n,required:p})),!t&&React.createElement(SamplesPanel,null,React.createElement(SamplesWrap,null,m&&React.createElement(PayloadSamples,{content:m})))||React.createElement("span",null))};
2
2
  //# sourceMappingURL=RedocRequestBody.js.map
@@ -1,2 +1,2 @@
1
- import React from"react";import{useRecoilValue}from"@redocly/recoil";import{getOperation,getResponse}from"../../models";import{Row,SamplesMiddlePanel,SamplesPanel}from"../common";import{FullWidthPanel,SamplesWrap}from"./styled.components";import{ResponseDetails}from"../Responses";import{PayloadSamples}from"../PayloadSamples";import{globalStoreSelector}from"../../recoil/store";import{layoutSelector}from"../../recoil/app";export const RedocResponse=({pointer:e,hideSamples:o})=>{const{options:t,parser:a}=useRecoilValue(globalStoreSelector),l=useRecoilValue(layoutSelector),r=getOperation(a,{pointer:e,pathName:"",httpVerb:"",pathParameters:[],pathServers:[],isWebhook:!1,responses:{}},void 0,t,""),s=getResponse({parser:a,code:"default",defaultAsError:!1,infoOrRef:{$ref:e},options:t,operation:r});s.description=s.summary;const p=o?FullWidthPanel:SamplesMiddlePanel;return React.createElement(Row,{layout:l},React.createElement(p,{style:{paddingBottom:"20px"}},React.createElement(ResponseDetails,{response:s})),!o&&s.content&&React.createElement(SamplesPanel,null,React.createElement(SamplesWrap,null,React.createElement(PayloadSamples,{content:s.content})))||React.createElement("span",null))};
1
+ import React from"react";import{useAtomValue}from"jotai";import{getOperation,getResponse}from"../../models";import{Row,SamplesMiddlePanel,SamplesPanel}from"../common";import{FullWidthPanel,SamplesWrap}from"./styled.components";import{ResponseDetails}from"../Responses";import{PayloadSamples}from"../PayloadSamples";import{globalStoreAtom}from"../../jotai/store";import{layoutAtom}from"../../jotai/app";export const RedocResponse=({pointer:e,hideSamples:t})=>{const{options:o,parser:a}=useAtomValue(globalStoreAtom),r=useAtomValue(layoutAtom),l=getOperation(a,{pointer:e,pathName:"",httpVerb:"",pathParameters:[],pathServers:[],isWebhook:!1,responses:{}},void 0,o,""),s=getResponse({parser:a,code:"default",defaultAsError:!1,infoOrRef:{$ref:e},options:o,operation:l});s.description=s.summary;const m=t?FullWidthPanel:SamplesMiddlePanel;return React.createElement(Row,{layout:r},React.createElement(m,{style:{paddingBottom:"20px"}},React.createElement(ResponseDetails,{response:s})),!t&&s.content&&React.createElement(SamplesPanel,null,React.createElement(SamplesWrap,null,React.createElement(PayloadSamples,{content:s.content})))||React.createElement("span",null))};
2
2
  //# sourceMappingURL=RedocResponse.js.map
@@ -1,2 +1,2 @@
1
- import React from"react";import{useRecoilValue}from"@redocly/recoil";import{getSchema}from"../../models";import{Row}from"../common";import{FullWidthPanel}from"./styled.components";import{Schema}from"../Schema";import{globalStoreSelector}from"../../recoil/store";export const RedocSchema=({pointer:e,schema:o})=>{const{options:r,parser:t}=useRecoilValue(globalStoreSelector),c=getSchema({parser:t,schemaOrRef:o||{$ref:e},pointer:e||"",options:r,deps:{operation:{pointer:"RedocSchema"}}});return React.createElement(Row,null,React.createElement(FullWidthPanel,null,React.createElement(Schema,{schema:c})))};
1
+ import React from"react";import{useAtomValue}from"jotai";import{getSchema}from"../../models";import{Row}from"../common";import{FullWidthPanel}from"./styled.components";import{Schema}from"../Schema";import{globalStoreAtom}from"../../jotai/store";export const RedocSchema=({pointer:e,schema:o})=>{const{options:t,parser:m}=useAtomValue(globalStoreAtom),r=getSchema({parser:m,schemaOrRef:o||{$ref:e},pointer:e||"",options:t,deps:{operation:{pointer:"RedocSchema"}}});return React.createElement(Row,null,React.createElement(FullWidthPanel,null,React.createElement(Schema,{schema:r})))};
2
2
  //# sourceMappingURL=RedocSchema.js.map
@@ -1,2 +1,2 @@
1
- import React,{Fragment,useEffect,useState}from"react";import{useRecoilValue}from"@redocly/recoil";import{TryItSecurityApps}from"@redocly/theme";import{escapeFormId,fromSessionStorage,getSecurityDetailsOptions,toSessionStorage}from"../../../utils";import{TryItDropdown}from"../styled";import{FormControl,FormLabel,FormWrapper}from"../../common/form";import{FormDropdown,FormTextField}from"../../common/TextField";import{OpenIDConnect,Error}from"../OpenIDConnect";import{fromCookie,requiredValidator}from"../utils";import{OAuth2Flow}from"../OAuth2Flow";import{l}from"../../../services";import OAuth2TokenInputComponent from"../OAuth2TokenInput";import{globalStoreSelector}from"../../../recoil/store";export const AuthPanel=({securityDefaults:e,operation:t,activeServer:o,authCorsProxyUrl:a,form:r,formApi:i})=>{var n,s;const[u,c]=useState(0),{parser:m}=useRecoilValue(globalStoreSelector);useEffect((()=>{const e=t.security.map((e=>e.schemes.map((e=>e.id)).join(" and "))),o=fromSessionStorage("securityRequirementName"),a=e.findIndex((e=>e===o));c(a<0?0:a)}),[t]);const d=t.security,p=d.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean).map(((e,t)=>({value:e,idx:t})));if(0===p.length)return React.createElement(Error,{message:"Cannot find security schema in the definition"});const f=d[u],h=escapeFormId(f.schemes[0].id);return React.createElement(React.Fragment,null,React.createElement(FormWrapper,null,p.length>1&&React.createElement(FormControl,null,React.createElement(FormLabel,null," Security scheme: "),React.createElement(TryItDropdown,{variant:"dark",fullWidth:!0,options:p,value:p[u].value,onChange:e=>{c(e.idx),toSessionStorage("securityRequirementName",e.value)}}))||null,React.createElement(TryItSecurityApps,{apiId:null===(s=null===(n=null==m?void 0:m.definition.info)||void 0===n?void 0:n["x-metadata"])||void 0===s?void 0:s.apiId,value:i.getValue(`auth.${h}`),onChange:e=>{i.setValue(`auth.${h}`,e)}}),d[u].schemes.map((t=>{var n,s,u,c,m,d,p;const f=escapeFormId(t.id);if("apiKey"===t.type){const o=getSecurityDetailsOptions(f,""),a={field:`auth.${f}`,fullWidth:!0,initialValue:fromCookie(t)||fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),initValue:fromCookie(t)||fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(FormControl,{key:f},React.createElement(FormLabel,null," ",t.name,": "),o?React.createElement(FormDropdown,Object.assign({},a,{options:o})):React.createElement(FormTextField,Object.assign({},a,{type:"password",panel:"try-it","data-cy":"apiKey-auth-password"})))}if("http"===t.type){if("basic"===t.scheme){const t=getSecurityDetailsOptions(f,"username"),o={field:`auth.${f}.username`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${f}.username`)||(null===(n=null==e?void 0:e[f])||void 0===n?void 0:n.username),initValue:fromSessionStorage(`auth.${f}.username`)||(null===(s=null==e?void 0:e[f])||void 0===s?void 0:s.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(Fragment,{key:f},React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicUsername"),": "),t?React.createElement(FormDropdown,Object.assign({},o,{options:t})):React.createElement(FormTextField,Object.assign({},o,{panel:"try-it"}))),React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicPassword"),": "),React.createElement(FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:`auth.${f}.password`,initialValue:fromSessionStorage(`auth.${f}.password`)||(null===(u=null==e?void 0:e[f])||void 0===u?void 0:u.password)||"",validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("bearer"===t.scheme){const t=getSecurityDetailsOptions(f,""),o={field:`auth.${f}`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),initValue:fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(Fragment,{key:f},React.createElement(FormControl,null,React.createElement(FormLabel,null," Bearer Token: "),t?React.createElement(FormDropdown,Object.assign({},o,{options:t})):React.createElement(FormTextField,Object.assign({},o,{type:"password",placeholder:"(without 'Bearer')",panel:"try-it"}))))}}else{if("oauth2"===t.type&&t.flows&&t.flows.clientCredentials)return React.createElement(OAuth2TokenInputComponent,{key:f,flow:t.flows.clientCredentials,server:o,authCorsProxyUrl:a,id:f,form:r,formApi:i,clientId:t.flows.clientCredentials["x-defaultClientId"]||t["x-defaultClientId"],defaultValues:null==e?void 0:e[f]});if("oauth2"===t.type&&t.flows&&t.flows.implicit)return React.createElement(OAuth2Flow,{key:f,authorizationUrl:t.flows.implicit.authorizationUrl,authCorsProxyUrl:a,scopes:Object.keys((null===(m=null===(c=null==t?void 0:t.flows)||void 0===c?void 0:c.implicit)||void 0===m?void 0:m.scopes)||{}),server:o,id:f,form:r,formApi:i,clientId:t.flows.implicit["x-defaultClientId"]||t["x-defaultClientId"],flow:"implicit",defaultValues:null==e?void 0:e[f]});if("oauth2"===t.type&&t.flows&&t.flows.authorizationCode)return React.createElement(OAuth2Flow,{key:f,authorizationUrl:t.flows.authorizationCode.authorizationUrl,tokenUrl:t.flows.authorizationCode.tokenUrl,authCorsProxyUrl:a,scopes:Object.keys((null===(d=t.flows.authorizationCode)||void 0===d?void 0:d.scopes)||{}),server:o,id:f,form:r,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[f]});if("oauth2"===t.type){let t=fromSessionStorage(`auth.${f}.token`)||JSON.stringify(null===(p=null==e?void 0:e[f])||void 0===p?void 0:p.token);return t=t?JSON.parse(t):{},React.createElement(Fragment,{key:f},React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token Type: "),React.createElement(FormTextField,{fullWidth:!0,field:`auth.${f}.token.token_type`,initialValue:t.token_type||"Bearer",panel:"try-it"})),React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:`auth.${f}.token.access_token`,validate:requiredValidator,initialValue:t.access_token,validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("openIdConnect"===t.type)return React.createElement(OpenIDConnect,{key:f,server:o,authCorsProxyUrl:a,id:f,form:r,formApi:i,scheme:t,clientId:t["x-defaultClientId"],defaultValues:null==e?void 0:e[f]})}}))),React.createElement("small",null,React.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))};
1
+ import React,{Fragment,useEffect,useState}from"react";import{useAtomValue}from"jotai";import{TryItSecurityApps}from"@redocly/theme";import{escapeFormId,fromSessionStorage,getSecurityDetailsOptions,toSessionStorage}from"../../../utils";import{TryItDropdown}from"../styled";import{FormControl,FormLabel,FormWrapper}from"../../common/form";import{FormDropdown,FormTextField}from"../../common/TextField";import{OpenIDConnect,Error}from"../OpenIDConnect";import{fromCookie,requiredValidator}from"../utils";import{OAuth2Flow}from"../OAuth2Flow";import{l}from"../../../services";import OAuth2TokenInputComponent from"../OAuth2TokenInput";import{globalStoreAtom}from"../../../jotai/store";export const AuthPanel=({securityDefaults:e,operation:t,activeServer:o,authCorsProxyUrl:a,form:r,formApi:i})=>{var n,s;const[u,m]=useState(0),{parser:c}=useAtomValue(globalStoreAtom);useEffect((()=>{const e=t.security.map((e=>e.schemes.map((e=>e.id)).join(" and "))),o=fromSessionStorage("securityRequirementName"),a=e.findIndex((e=>e===o));m(a<0?0:a)}),[t]);const d=t.security,p=d.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean).map(((e,t)=>({value:e,idx:t})));if(0===p.length)return React.createElement(Error,{message:"Cannot find security schema in the definition"});const f=d[u],h=escapeFormId(f.schemes[0].id);return React.createElement(React.Fragment,null,React.createElement(FormWrapper,null,p.length>1&&React.createElement(FormControl,null,React.createElement(FormLabel,null," Security scheme: "),React.createElement(TryItDropdown,{variant:"dark",fullWidth:!0,options:p,value:p[u].value,onChange:e=>{m(e.idx),toSessionStorage("securityRequirementName",e.value)}}))||null,React.createElement(TryItSecurityApps,{apiId:null===(s=null===(n=null==c?void 0:c.definition.info)||void 0===n?void 0:n["x-metadata"])||void 0===s?void 0:s.apiId,value:i.getValue(`auth.${h}`),onChange:e=>{i.setValue(`auth.${h}`,e)}}),d[u].schemes.map((t=>{var n,s,u,m,c,d,p;const f=escapeFormId(t.id);if("apiKey"===t.type){const o=getSecurityDetailsOptions(f,""),a={field:`auth.${f}`,fullWidth:!0,initialValue:fromCookie(t)||fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),initValue:fromCookie(t)||fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(FormControl,{key:f},React.createElement(FormLabel,null," ",t.name,": "),o?React.createElement(FormDropdown,Object.assign({},a,{options:o})):React.createElement(FormTextField,Object.assign({},a,{type:"password",panel:"try-it","data-cy":"apiKey-auth-password"})))}if("http"===t.type){if("basic"===t.scheme){const t=getSecurityDetailsOptions(f,"username"),o={field:`auth.${f}.username`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${f}.username`)||(null===(n=null==e?void 0:e[f])||void 0===n?void 0:n.username),initValue:fromSessionStorage(`auth.${f}.username`)||(null===(s=null==e?void 0:e[f])||void 0===s?void 0:s.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(Fragment,{key:f},React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicUsername"),": "),t?React.createElement(FormDropdown,Object.assign({},o,{options:t})):React.createElement(FormTextField,Object.assign({},o,{panel:"try-it"}))),React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicPassword"),": "),React.createElement(FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:`auth.${f}.password`,initialValue:fromSessionStorage(`auth.${f}.password`)||(null===(u=null==e?void 0:e[f])||void 0===u?void 0:u.password)||"",validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("bearer"===t.scheme){const t=getSecurityDetailsOptions(f,""),o={field:`auth.${f}`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),initValue:fromSessionStorage(`auth.${f}`)||(null==e?void 0:e[f]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(Fragment,{key:f},React.createElement(FormControl,null,React.createElement(FormLabel,null," Bearer Token: "),t?React.createElement(FormDropdown,Object.assign({},o,{options:t})):React.createElement(FormTextField,Object.assign({},o,{type:"password",placeholder:"(without 'Bearer')",panel:"try-it"}))))}}else{if("oauth2"===t.type&&t.flows&&t.flows.clientCredentials)return React.createElement(OAuth2TokenInputComponent,{key:f,flow:t.flows.clientCredentials,server:o,authCorsProxyUrl:a,id:f,form:r,formApi:i,clientId:t.flows.clientCredentials["x-defaultClientId"]||t["x-defaultClientId"],defaultValues:null==e?void 0:e[f]});if("oauth2"===t.type&&t.flows&&t.flows.implicit)return React.createElement(OAuth2Flow,{key:f,authorizationUrl:t.flows.implicit.authorizationUrl,authCorsProxyUrl:a,scopes:Object.keys((null===(c=null===(m=null==t?void 0:t.flows)||void 0===m?void 0:m.implicit)||void 0===c?void 0:c.scopes)||{}),server:o,id:f,form:r,formApi:i,clientId:t.flows.implicit["x-defaultClientId"]||t["x-defaultClientId"],flow:"implicit",defaultValues:null==e?void 0:e[f]});if("oauth2"===t.type&&t.flows&&t.flows.authorizationCode)return React.createElement(OAuth2Flow,{key:f,authorizationUrl:t.flows.authorizationCode.authorizationUrl,tokenUrl:t.flows.authorizationCode.tokenUrl,authCorsProxyUrl:a,scopes:Object.keys((null===(d=t.flows.authorizationCode)||void 0===d?void 0:d.scopes)||{}),server:o,id:f,form:r,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[f]});if("oauth2"===t.type){let t=fromSessionStorage(`auth.${f}.token`)||JSON.stringify(null===(p=null==e?void 0:e[f])||void 0===p?void 0:p.token);return t=t?JSON.parse(t):{},React.createElement(Fragment,{key:f},React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token Type: "),React.createElement(FormTextField,{fullWidth:!0,field:`auth.${f}.token.token_type`,initialValue:t.token_type||"Bearer",panel:"try-it"})),React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:`auth.${f}.token.access_token`,validate:requiredValidator,initialValue:t.access_token,validateOnBlur:!0,validateOnChange:!0,panel:"try-it"})))}if("openIdConnect"===t.type)return React.createElement(OpenIDConnect,{key:f,server:o,authCorsProxyUrl:a,id:f,form:r,formApi:i,scheme:t,clientId:t["x-defaultClientId"],defaultValues:null==e?void 0:e[f]})}}))),React.createElement("small",null,React.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))};
2
2
  //# sourceMappingURL=AuthPanel.js.map
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(s,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function i(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}l((r=r.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(o[r[s]]=e[r[s]])}return o};import{execute}from"swagger-client/es/execute/index";import React,{useEffect,useState,useRef,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useRecoilValue,useRecoilState}from"@redocly/recoil";import{dereferenceDefinitionForTryIt}from"./shallowCopyForTryIt";import{unescapeFormId}from"../../../utils/string";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{getDefaultOrStoredVariables,getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"../utils";import{ResponsePanel}from"../ResponsePanel";import{ConsoleTabs}from"../ConsoleTabs";import{ActionPanel}from"../ActionPanel";import{Request}from"./Request";import{CloseButton,ConsoleBody}from"../styled";import{ConsoleWrapper}from"./ConsoleWrapper";import{usePrevious}from"../../../hooks";import{globalStoreSelector}from"../../../recoil/store";import{getActiveMediaType}from"../../../models";import{operationStore}from"../../../recoil/operation";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:o,rootElement:r,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){let l=useRef();const[c,u]=useRecoilState(operationStore(e.pointer)),[p,d]=useState(c.activeServer||e.activeServer),[m,v]=useState(0),[y,h]=useState(!1),[f,g]=useState(!1),[b,O]=useState({values:{path:getParameters(e.parameters,"path"),cookie:getParameters(e.parameters,"cookie"),header:getParameters(e.parameters,"header"),query:getParameters(e.parameters,"query")}}),[S,j]=useState(),[C,R]=useState(),[P,I]=useState(),[T,q]=useState(),w=usePrevious(e),{parser:E,options:_}=useRecoilValue(globalStoreSelector),k=useCallback(((e,t=e.getState())=>{var{values:o}=t,r=__rest(t,["values"]);l.current=e,setTimeout((()=>{O(Object.assign(Object.assign({},r),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{})})}))}),0)}),[]),F=useCallback((e=>{var{values:t}=e,o=__rest(e,["values"]);const r=Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},t),{query:unescapeQueryParams(t.query||{})})});u((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),O(r),updateStorage(r)}),[u]),x=useCallback((e=>{v(e)}),[]),A=useCallback((e=>{d(e),u((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[u]),V=useCallback((()=>__awaiter(this,void 0,void 0,(function*(){var o,r,s,n,a,i,c,u,d,m,y,f,O,j,C,P,T;const{values:w,invalid:E}=(null===(o=null==l?void 0:l.current)||void 0===o?void 0:o.getState())||b||{};if(null===(r=l.current)||void 0===r||r.submitForm(),E)return g(!0),setTimeout((()=>g(!1)),1e3),void(null===(n=null===(s=_.events)||void 0===s?void 0:s.tryItSent)||void 0===n||n.call(s,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description}));const{servers:k,requestBody:F}=e,x=F&&F.content&&(null===(a=getActiveMediaType(F.content))||void 0===a?void 0:a.name)||"";let A=w.body;if(/json/.test(x))try{A=JSON.parse(A)}catch(e){console.error(e)}h(!0);const V=S,B=(e.httpVerb||"").toLowerCase();if(!k)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=k.find((e=>p.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),N=Date.now();let M,U=w.auth;if(w.auth){const e=Object.keys(w.auth)[0],t=unescapeFormId(e);M=Object.assign(Object.assign({},V),{components:Object.assign(Object.assign({},null==V?void 0:V.components),{securitySchemes:Object.assign(Object.assign({},null===(i=null==V?void 0:V.components)||void 0===i?void 0:i.securitySchemes),{[t]:Object.assign(Object.assign({},null===(u=null===(c=null==V?void 0:V.components)||void 0===c?void 0:c.securitySchemes)||void 0===u?void 0:u[t]),{type:"openIdConnect"===(null===(y=null===(m=null===(d=null==V?void 0:V.components)||void 0===d?void 0:d.securitySchemes)||void 0===m?void 0:m[t])||void 0===y?void 0:y.type)?"oauth2":(null===(O=null===(f=null==V?void 0:V.components)||void 0===f?void 0:f.securitySchemes)||void 0===O?void 0:O[t]).type})})})}),U=Object.assign(Object.assign({},U),{[t]:U[e]})}else M=Object.assign({},V);M.servers=k;const H=_.corsProxyUrl;H&&k.length&&(M.servers=k.map((e=>Object.assign(Object.assign({},e),{url:H+normalizeUrlProtocol(e.url)}))),M.paths=Object.assign(Object.assign({},M.paths),{[e.path]:Object.assign(Object.assign({},M.paths[e.path]),{[B]:Object.assign(Object.assign({},M.paths[e.path][B]),{servers:void 0}),servers:void 0})}));const W=(null==F?void 0:F.content)&&(null===(j=getActiveMediaType(F.content))||void 0===j?void 0:j.name)||null;if(W&&A&&isFileUploadMime(W)){const e=Object.values(A);A=e.length>1?e:e[0]}const z={server:H?H+normalizeUrlProtocol(D.url):D.url,serverVariables:getDefaultOrStoredVariables(D),spec:M,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},w.path),w.query),w.header),w.cookie),securities:{authorized:U},requestBody:A,requestContentType:W,responseContentType:(null===(C=w.header)||void 0===C?void 0:C.Accept)||null,requestInterceptor:makeRequestInterceptor(_,e,null==U?void 0:U.Authorization)};try{const o=yield execute(z),r=null==o?void 0:o.data;r instanceof Blob&&(isFileUploadMime(r.type)&&(o.fileInfo={rawData:r,fileName:getFileNameFromHeaders(o.headers)}),o.data=yield r.text()),null==t||t({request:z,response:o}),q(o),I(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:z,response:e.response})),q(void 0),I(e)}finally{h(!1),v(1),R(Date.now()-N),null===(T=null===(P=_.events)||void 0===P?void 0:P.tryItSent)||void 0===T||T.call(P,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[p.url,b,t,e,_,S]);useMount((()=>__awaiter(this,void 0,void 0,(function*(){var t;const o=yield dereferenceDefinitionForTryIt(e,E.definition);j(o),null===(t=l.current)||void 0===t||t.setValues({})})))),useEffect((()=>{w&&w!==e&&(q(void 0),I(void 0),v(0))}),[e,w]);const B=!(!T&&!P);return React.createElement(ConsoleWrapper,{shaking:f,className:o,rootElement:r},React.createElement(StyledCodeHeader,null,React.createElement(ConsoleTabs,{active:m,hasResponse:B,onChange:x}),i&&React.createElement(CloseButton,{onClick:i}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==m,"data-cy":"console-request-body"},React.createElement(Request,{operation:e,properties:s,mergeExampleBody:n,securityDefaults:a,form:b,resolvedRawSpec:S,server:p,formApi:l.current,setFormApi:k,handleChange:F,handleServerChange:A})),React.createElement(ConsoleBody,{hidden:1!==m,"data-cy":"console-response-body"},React.createElement(ResponsePanel,{response:T,error:P,time:C})),React.createElement(ActionPanel,{hasResponse:B,params:b.values,operation:e,loading:y,execute:V}))}export const Console=memo(ConsoleComponent);
1
+ var __awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(s,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function i(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}l((r=r.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(o[r[s]]=e[r[s]])}return o};import{execute}from"swagger-client/es/execute/index";import React,{useEffect,useState,useRef,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useAtomValue,useAtom}from"jotai";import{dereferenceDefinitionForTryIt}from"./shallowCopyForTryIt";import{unescapeFormId}from"../../../utils/string";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{getDefaultOrStoredVariables,getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"../utils";import{ResponsePanel}from"../ResponsePanel";import{ConsoleTabs}from"../ConsoleTabs";import{ActionPanel}from"../ActionPanel";import{Request}from"./Request";import{CloseButton,ConsoleBody}from"../styled";import{ConsoleWrapper}from"./ConsoleWrapper";import{usePrevious}from"../../../hooks";import{globalStoreAtom}from"../../../jotai/store";import{getActiveMediaType}from"../../../models";import{operationStore}from"../../../jotai/operation";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:o,rootElement:r,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){let l=useRef();const[c,u]=useAtom(operationStore(e.pointer)),[p,d]=useState(c.activeServer||e.activeServer),[m,v]=useState(0),[y,h]=useState(!1),[f,g]=useState(!1),[b,O]=useState({values:{path:getParameters(e.parameters,"path"),cookie:getParameters(e.parameters,"cookie"),header:getParameters(e.parameters,"header"),query:getParameters(e.parameters,"query")}}),[S,j]=useState(),[C,P]=useState(),[R,I]=useState(),[T,A]=useState(),q=usePrevious(e),{parser:w,options:E}=useAtomValue(globalStoreAtom),_=useCallback(((e,t=e.getState())=>{var{values:o}=t,r=__rest(t,["values"]);l.current=e,setTimeout((()=>{O(Object.assign(Object.assign({},r),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{})})}))}),0)}),[]),k=useCallback((e=>{var{values:t}=e,o=__rest(e,["values"]);const r=Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},t),{query:unescapeQueryParams(t.query||{})})});u((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),O(r),updateStorage(r)}),[u]),F=useCallback((e=>{v(e)}),[]),x=useCallback((e=>{d(e),u((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[u]),V=useCallback((()=>__awaiter(this,void 0,void 0,(function*(){var o,r,s,n,a,i,c,u,d,m,y,f,O,j,C,R,T;const{values:q,invalid:w}=(null===(o=null==l?void 0:l.current)||void 0===o?void 0:o.getState())||b||{};if(null===(r=l.current)||void 0===r||r.submitForm(),w)return g(!0),setTimeout((()=>g(!1)),1e3),void(null===(n=null===(s=E.events)||void 0===s?void 0:s.tryItSent)||void 0===n||n.call(s,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description}));const{servers:_,requestBody:k}=e,F=k&&k.content&&(null===(a=getActiveMediaType(k.content))||void 0===a?void 0:a.name)||"";let x=q.body;if(/json/.test(F))try{x=JSON.parse(x)}catch(e){console.error(e)}h(!0);const V=S,B=(e.httpVerb||"").toLowerCase();if(!_)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=_.find((e=>p.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),N=Date.now();let M,U=q.auth;if(q.auth){const e=Object.keys(q.auth)[0],t=unescapeFormId(e);M=Object.assign(Object.assign({},V),{components:Object.assign(Object.assign({},null==V?void 0:V.components),{securitySchemes:Object.assign(Object.assign({},null===(i=null==V?void 0:V.components)||void 0===i?void 0:i.securitySchemes),{[t]:Object.assign(Object.assign({},null===(u=null===(c=null==V?void 0:V.components)||void 0===c?void 0:c.securitySchemes)||void 0===u?void 0:u[t]),{type:"openIdConnect"===(null===(y=null===(m=null===(d=null==V?void 0:V.components)||void 0===d?void 0:d.securitySchemes)||void 0===m?void 0:m[t])||void 0===y?void 0:y.type)?"oauth2":(null===(O=null===(f=null==V?void 0:V.components)||void 0===f?void 0:f.securitySchemes)||void 0===O?void 0:O[t]).type})})})}),U=Object.assign(Object.assign({},U),{[t]:U[e]})}else M=Object.assign({},V);M.servers=_;const H=E.corsProxyUrl;H&&_.length&&(M.servers=_.map((e=>Object.assign(Object.assign({},e),{url:H+normalizeUrlProtocol(e.url)}))),M.paths=Object.assign(Object.assign({},M.paths),{[e.path]:Object.assign(Object.assign({},M.paths[e.path]),{[B]:Object.assign(Object.assign({},M.paths[e.path][B]),{servers:void 0}),servers:void 0})}));const W=(null==k?void 0:k.content)&&(null===(j=getActiveMediaType(k.content))||void 0===j?void 0:j.name)||null;if(W&&x&&isFileUploadMime(W)){const e=Object.values(x);x=e.length>1?e:e[0]}const z={server:H?H+normalizeUrlProtocol(D.url):D.url,serverVariables:getDefaultOrStoredVariables(D),spec:M,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},q.path),q.query),q.header),q.cookie),securities:{authorized:U},requestBody:x,requestContentType:W,responseContentType:(null===(C=q.header)||void 0===C?void 0:C.Accept)||null,requestInterceptor:makeRequestInterceptor(E,e,null==U?void 0:U.Authorization)};try{const o=yield execute(z),r=null==o?void 0:o.data;r instanceof Blob&&(isFileUploadMime(r.type)&&(o.fileInfo={rawData:r,fileName:getFileNameFromHeaders(o.headers)}),o.data=yield r.text()),null==t||t({request:z,response:o}),A(o),I(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:z,response:e.response})),A(void 0),I(e)}finally{h(!1),v(1),P(Date.now()-N),null===(T=null===(R=E.events)||void 0===R?void 0:R.tryItSent)||void 0===T||T.call(R,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[p.url,b,t,e,E,S]);useMount((()=>__awaiter(this,void 0,void 0,(function*(){var t;const o=yield dereferenceDefinitionForTryIt(e,w.definition);j(o),null===(t=l.current)||void 0===t||t.setValues({})})))),useEffect((()=>{q&&q!==e&&(A(void 0),I(void 0),v(0))}),[e,q]);const B=!(!T&&!R);return React.createElement(ConsoleWrapper,{shaking:f,className:o,rootElement:r},React.createElement(StyledCodeHeader,null,React.createElement(ConsoleTabs,{active:m,hasResponse:B,onChange:F}),i&&React.createElement(CloseButton,{onClick:i}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==m,"data-cy":"console-request-body"},React.createElement(Request,{operation:e,properties:s,mergeExampleBody:n,securityDefaults:a,form:b,resolvedRawSpec:S,server:p,formApi:l.current,setFormApi:_,handleChange:k,handleServerChange:x})),React.createElement(ConsoleBody,{hidden:1!==m,"data-cy":"console-response-body"},React.createElement(ResponsePanel,{response:T,error:R,time:C})),React.createElement(ActionPanel,{hasResponse:B,params:b.values,operation:e,loading:y,execute:V}))}export const Console=memo(ConsoleComponent);
2
2
  //# sourceMappingURL=Console.js.map
@@ -1,2 +1,2 @@
1
- import React,{memo}from"react";import{useRecoilValue}from"@redocly/recoil";import{ConsoleWrap}from"../styled";import{useDimensions}from"../../../hooks";import{globalOptionsSelector}from"../../../recoil/store";function ConsoleWrapperComponent({shaking:o,className:e,children:l,rootElement:r}){const[s]=useDimensions(r),t=useRecoilValue(globalOptionsSelector);return React.createElement(ConsoleWrap,{scrollYOffset:t.scrollYOffset,shaking:o,className:e,"data-cy":"console",fullWidth:null==s?void 0:s.width},l)}export const ConsoleWrapper=memo(ConsoleWrapperComponent);
1
+ import React,{memo}from"react";import{useAtomValue}from"jotai";import{ConsoleWrap}from"../styled";import{useDimensions}from"../../../hooks";import{globalOptionsAtom}from"../../../jotai/store";function ConsoleWrapperComponent({shaking:o,className:e,children:t,rootElement:s}){const[r]=useDimensions(s),n=useAtomValue(globalOptionsAtom);return React.createElement(ConsoleWrap,{scrollYOffset:n.scrollYOffset,shaking:o,className:e,"data-cy":"console",fullWidth:null==r?void 0:r.width},t)}export const ConsoleWrapper=memo(ConsoleWrapperComponent);
2
2
  //# sourceMappingURL=ConsoleWrapper.js.map
@@ -1,2 +1,2 @@
1
- import React,{memo}from"react";import{Form,useField}from"informed";import{useRecoilValue}from"@redocly/recoil";import{OpenApiTryItSecurityPanel}from"@redocly/theme";import{requiredValidator}from"../utils";import{JsonPointer}from"../../../utils";import{OAuth2}from"../../../services/OAuth2";import{l}from"../../../services";import{Accordion}from"../../Panel";import{ServersDropdown}from"../ServersDropdown";import{TryItPanel}from"../TryItPanel";import{RequestBody}from"../RequestBody";import{OperationParameters}from"../../OperationParameters";import{AuthPanel}from"../AuthPanel";import{globalOptionsSelector}from"../../../recoil/store";import{RenderHook}from"../../RenderHook";function RequestComponent({operation:e,properties:r,mergeExampleBody:t,securityDefaults:o,form:a,resolvedRawSpec:n,server:i,formApi:s,setFormApi:u,handleChange:c,handleServerChange:d}){const m=a.errors||{},p=m.path||m.cookie||m.header||m.query,{hooks:y,authCorsProxyUrl:h}=useRecoilValue(globalOptionsSelector),v=n&&JsonPointer.get(n,e.pointer);let f=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];f&&a.values.auth[f]||(f=void 0),!f||void 0===a.values.auth[f].token&&void 0===a.values.auth[f].client_id&&void 0===a.values.auth[f].client_secret||a.values.auth[f].token&&a.values.auth[f].token.access_token||(f=void 0),f&&null!=a.values.auth[f].username&&(a.values.auth[f].username&&a.values.auth[f].password||(f=void 0));const R=e.parameters||[];return!n&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(Form,{onChange:c,getApi:u,style:{flex:1,display:"flex",flexDirection:"column",margin:0}},React.createElement(ServersDropdown,{operation:e,onChange:d}),React.createElement(Accordion,{initialActiveIdx:e.security.length&&f?1:0},e.security.length&&s&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",error:!f&&!!m.auth,success:!!f,renderChildrenHidden:!0},OpenApiTryItSecurityPanel||(null==y?void 0:y.ReplaceTryItSecurityPanel)?React.createElement(AuthPanelWrapper,{field:"auth",validate:requiredValidator},(r=>React.createElement(RenderHook,{Hook:OpenApiTryItSecurityPanel||(null==y?void 0:y.ReplaceTryItSecurityPanel),props:{server:i,operation:e,onChange:r,OAuth2:OAuth2}}))):React.createElement(AuthPanel,{formApi:s,form:a,operation:e,activeServer:i.url,authCorsProxyUrl:h,securityDefaults:o}))||null,e.requestBody&&s&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",error:!!m.body,renderChildrenHidden:!0},React.createElement(RequestBody,{validate:allowBodyErrors,formApi:s,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==v?void 0:v.requestBody,properties:r,mergeExampleBody:t}))||null,R.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:p,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:e,values:a.values,errors:a.errors||{}}))||null))}function AuthPanelWrapper(e){const{fieldApi:r,render:t,userProps:o}=useField(Object.assign({},e)),{setValue:a}=r,{children:l}=o;return t(React.createElement(React.Fragment,null,l(a)))}function allowBodyErrors(){}export const Request=memo(RequestComponent);
1
+ import React,{memo}from"react";import{Form,useField}from"informed";import{useAtomValue}from"jotai";import{OpenApiTryItSecurityPanel}from"@redocly/theme";import{requiredValidator}from"../utils";import{JsonPointer}from"../../../utils";import{OAuth2}from"../../../services/OAuth2";import{l}from"../../../services";import{Accordion}from"../../Panel";import{ServersDropdown}from"../ServersDropdown";import{TryItPanel}from"../TryItPanel";import{RequestBody}from"../RequestBody";import{OperationParameters}from"../../OperationParameters";import{AuthPanel}from"../AuthPanel";import{globalOptionsAtom}from"../../../jotai/store";import{RenderHook}from"../../RenderHook";function RequestComponent({operation:e,properties:r,mergeExampleBody:t,securityDefaults:o,form:a,resolvedRawSpec:n,server:i,formApi:s,setFormApi:u,handleChange:m,handleServerChange:d}){const c=a.errors||{},p=c.path||c.cookie||c.header||c.query,{hooks:y,authCorsProxyUrl:h}=useAtomValue(globalOptionsAtom),v=n&&JsonPointer.get(n,e.pointer);let f=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];f&&a.values.auth[f]||(f=void 0),!f||void 0===a.values.auth[f].token&&void 0===a.values.auth[f].client_id&&void 0===a.values.auth[f].client_secret||a.values.auth[f].token&&a.values.auth[f].token.access_token||(f=void 0),f&&null!=a.values.auth[f].username&&(a.values.auth[f].username&&a.values.auth[f].password||(f=void 0));const R=e.parameters||[];return!n&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(Form,{onChange:m,getApi:u,style:{flex:1,display:"flex",flexDirection:"column",margin:0}},React.createElement(ServersDropdown,{operation:e,onChange:d}),React.createElement(Accordion,{initialActiveIdx:e.security.length&&f?1:0},e.security.length&&s&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",error:!f&&!!c.auth,success:!!f,renderChildrenHidden:!0},OpenApiTryItSecurityPanel||(null==y?void 0:y.ReplaceTryItSecurityPanel)?React.createElement(AuthPanelWrapper,{field:"auth",validate:requiredValidator},(r=>React.createElement(RenderHook,{Hook:OpenApiTryItSecurityPanel||(null==y?void 0:y.ReplaceTryItSecurityPanel),props:{server:i,operation:e,onChange:r,OAuth2:OAuth2}}))):React.createElement(AuthPanel,{formApi:s,form:a,operation:e,activeServer:i.url,authCorsProxyUrl:h,securityDefaults:o}))||null,e.requestBody&&s&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",error:!!c.body,renderChildrenHidden:!0},React.createElement(RequestBody,{validate:allowBodyErrors,formApi:s,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==v?void 0:v.requestBody,properties:r,mergeExampleBody:t}))||null,R.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:p,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:e,values:a.values,errors:a.errors||{}}))||null))}function AuthPanelWrapper(e){const{fieldApi:r,render:t,userProps:o}=useField(Object.assign({},e)),{setValue:a}=r,{children:n}=o;return t(React.createElement(React.Fragment,null,n(a)))}function allowBodyErrors(){}export const Request=memo(RequestComponent);
2
2
  //# sourceMappingURL=Request.js.map
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,o,l){return new(o||(o=Promise))((function(n,r){function a(e){try{c(l.next(e))}catch(e){r(e)}}function i(e){try{c(l.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}c((l=l.apply(e,t||[])).next())}))};import React,{useEffect,useState}from"react";import{Button}from"@redocly/theme";import{useRecoilValue}from"@redocly/recoil";import{ButtonsWrapper,PkceOptionsWrapper,PkceDetails}from"./styled";import{LinearProgress}from"../../common/LinearProgress";import{FormControl,FormLabel,FormError,FormWrapper}from"../../common/form";import{FormDropdown,FormTextField,TextField}from"../../common/TextField";import{Checkbox}from"../../common/Checkbox";import{OAuth2,deriveCodeChallenge}from"../../../services/OAuth2";import{fromSessionStorage,getSecurityDetailsOptions}from"../../../utils";import{isEmptyObject,randString}from"../../../services/utils";import{getOAuth2TokenEndpointAuthHeader,normalizeUrlProtocol,validateTokenEndpointMethod}from"../utils";import Scope from"../Scope";import{Error}from"./Error";import{globalOptionsSelector}from"../../../recoil/store";function requiredValidator(e){if(!e)return"Field is required"}export const OAuth2Flow=({usePkce:e,form:t,id:o,formApi:l,flow:n,tokenUrl:r,authCorsProxyUrl:a,tokenEndpointAuthMethod:i,server:c,scopes:u,authorizationUrl:d,defaultValues:s,clientId:m})=>{var p,h,f,v;const{oAuth2RedirectURI:g,routingBasePath:E}=useRecoilValue(globalOptionsSelector),[k,C]=useState(null),[R,F]=useState(!1),[S,y]=useState(!1),[O,b]=useState(void 0),[_,A]=useState(void 0),[x,W]=useState(void 0),P=(null===(h=null===(p=t.values)||void 0===p?void 0:p.auth)||void 0===h?void 0:h[o])||{},T=(null===(v=null===(f=t.errors)||void 0===f?void 0:f.auth)||void 0===v?void 0:v[o])||{},V=void 0!==O&&_!==x?{label:"sync",onClick:()=>{O&&A(x)}}:void 0;useEffect((()=>{if(e){const e=randString(43);deriveCodeChallenge(e).then((t=>{b(e),A(t),W(t)}))}}),[e]);const w=()=>{l.setValue(`auth.${o}.token`,"")};if(!d)return React.createElement(FormError,null,"No flow info");let z=fromSessionStorage(`auth.${o}.token`)||JSON.stringify(null==s?void 0:s.token);z=z?JSON.parse(z):"";const B=getSecurityDetailsOptions(o,"client_id"),U={field:`auth.${o}.client_id`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${o}.client_id`)||m||(null==s?void 0:s.client_id),initValue:fromSessionStorage(`auth.${o}.client_id`)||m||(null==s?void 0:s.client_id),placeholder:"Your OAuth2 app Client ID",validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement("div",null,React.createElement(FormWrapper,null,React.createElement(FormControl,null,React.createElement(FormLabel,null," Client ID: "),B?React.createElement(FormDropdown,Object.assign({},U,{options:B})):React.createElement(FormTextField,Object.assign({},U,{"data-cy":"client-id-input",panel:"try-it"}))),"authorizationCode"===n&&React.createElement(React.Fragment,null,(!(null==e?void 0:e.hideClientSecretInput)||!e)&&React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client Secret:"),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:`auth.${o}.client_secret`,initialValue:fromSessionStorage(`auth.${o}.client_secret`)||(null==s?void 0:s.client_secret),validateOnBlur:!0,validateOnChange:!0,panel:"try-it","data-cy":"client-secret-input"})),e&&!e.disableManualConfiguration&&React.createElement(PkceOptionsWrapper,null,React.createElement(Checkbox,{id:"pkce-opitons-toggle",label:"Configure PKCE manually",checked:S,onChange:()=>{y((e=>!e))},"data-cy":"pkce-options-toggle"}),S&&React.createElement(PkceDetails,null,React.createElement(FormControl,null,React.createElement(FormLabel,null,"Code Verifier"),React.createElement(TextField,{fullWidth:!0,value:O,onChange:({target:{value:e}})=>__awaiter(void 0,void 0,void 0,(function*(){const t=yield deriveCodeChallenge(e);b(e),W(t)})),panel:"try-it","data-cy":"code-verifier-input"})),React.createElement(FormControl,null,React.createElement(FormLabel,null,"Code Challenge"),React.createElement(TextField,{fullWidth:!0,value:_,onChange:({target:{value:e}})=>{A(e)},inputActionButton:V,panel:"try-it","data-cy":"code-challenge-input"}))))),React.createElement(FormTextField,{fullWidth:!0,field:`auth.${o}.token`,type:"hidden",initialValue:z,panel:"try-it"}),React.createElement(Scope,{id:o,scopes:u}),P.token&&P.token.access_token?React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(TextField,{disabled:!0,type:"password",fullWidth:!0,value:P.token.access_token,panel:"try-it"})):null),React.createElement(ButtonsWrapper,null,P.token&&P.token.access_token?React.createElement(Button,{fullWidth:!0,onClick:()=>{w(),C(null)}},"Log out"):R?React.createElement(React.Fragment,null,React.createElement(Button,{fullWidth:!0,onClick:()=>{F(!1),C(null),OAuth2.clearRedirectData(n)}},"Cancel"),React.createElement(LinearProgress,null)):React.createElement(Button,{fullWidth:!0,disabled:!isEmptyObject(T),onClick:()=>{(t=>{if(!t)return;if(l.validate(),!isEmptyObject(T))return;F(!0),C(null);const u=a?a+normalizeUrlProtocol(t):t,d=a&&r?a+normalizeUrlProtocol(r):r,s=l.getValue(`auth.${o}.scopes`),m={authorizationUrl:u.startsWith("http")?u:c+u,clientId:P.client_id,scopes:s,redirectUri:g,routingBasePath:E,successCallback:e=>{l.setValue(`auth.${o}.token`,e),F(!1),C(null)},errorCallback:e=>{F(!1),C((null==e?void 0:e.message)||"Failed to retrieve the access token")}};"implicit"===n&&OAuth2.authorizeImplicit(m),validateTokenEndpointMethod(i)?"authorizationCode"===n&&OAuth2.authorizeAuthorizationCode(Object.assign(Object.assign(Object.assign({},m),{tokenUrl:(null==d?void 0:d.startsWith("http"))?d:c+d,clientSecret:P.client_secret,extraHeaders:getOAuth2TokenEndpointAuthHeader({authMethod:i,clientId:P.client_id,clientSecret:P.client_secret})}),e&&{codeVerifier:O,codeChallenge:_})):console.log(`Unsupported token endpoint auth method: ${i}`)})(d)}},"Authorize")),R||k||!P.token||!P.token.access_token&&React.createElement(Error,{loading:R,error:k,token:P.token}))};
1
+ var __awaiter=this&&this.__awaiter||function(e,t,o,l){return new(o||(o=Promise))((function(n,r){function a(e){try{c(l.next(e))}catch(e){r(e)}}function i(e){try{c(l.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}c((l=l.apply(e,t||[])).next())}))};import React,{useEffect,useState}from"react";import{Button}from"@redocly/theme";import{useAtomValue}from"jotai";import{ButtonsWrapper,PkceOptionsWrapper,PkceDetails}from"./styled";import{LinearProgress}from"../../common/LinearProgress";import{FormControl,FormLabel,FormError,FormWrapper}from"../../common/form";import{FormDropdown,FormTextField,TextField}from"../../common/TextField";import{Checkbox}from"../../common/Checkbox";import{OAuth2,deriveCodeChallenge}from"../../../services/OAuth2";import{fromSessionStorage,getSecurityDetailsOptions}from"../../../utils";import{isEmptyObject,randString}from"../../../services/utils";import{getOAuth2TokenEndpointAuthHeader,normalizeUrlProtocol,validateTokenEndpointMethod}from"../utils";import Scope from"../Scope";import{Error}from"./Error";import{globalOptionsAtom}from"../../../jotai/store";function requiredValidator(e){if(!e)return"Field is required"}export const OAuth2Flow=({usePkce:e,form:t,id:o,formApi:l,flow:n,tokenUrl:r,authCorsProxyUrl:a,tokenEndpointAuthMethod:i,server:c,scopes:u,authorizationUrl:d,defaultValues:s,clientId:m})=>{var p,h,f,v;const{oAuth2RedirectURI:g,routingBasePath:E}=useAtomValue(globalOptionsAtom),[k,C]=useState(null),[R,F]=useState(!1),[S,y]=useState(!1),[O,b]=useState(void 0),[_,A]=useState(void 0),[x,W]=useState(void 0),P=(null===(h=null===(p=t.values)||void 0===p?void 0:p.auth)||void 0===h?void 0:h[o])||{},T=(null===(v=null===(f=t.errors)||void 0===f?void 0:f.auth)||void 0===v?void 0:v[o])||{},V=void 0!==O&&_!==x?{label:"sync",onClick:()=>{O&&A(x)}}:void 0;useEffect((()=>{if(e){const e=randString(43);deriveCodeChallenge(e).then((t=>{b(e),A(t),W(t)}))}}),[e]);const w=()=>{l.setValue(`auth.${o}.token`,"")};if(!d)return React.createElement(FormError,null,"No flow info");let z=fromSessionStorage(`auth.${o}.token`)||JSON.stringify(null==s?void 0:s.token);z=z?JSON.parse(z):"";const B=getSecurityDetailsOptions(o,"client_id"),U={field:`auth.${o}.client_id`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${o}.client_id`)||m||(null==s?void 0:s.client_id),initValue:fromSessionStorage(`auth.${o}.client_id`)||m||(null==s?void 0:s.client_id),placeholder:"Your OAuth2 app Client ID",validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement("div",null,React.createElement(FormWrapper,null,React.createElement(FormControl,null,React.createElement(FormLabel,null," Client ID: "),B?React.createElement(FormDropdown,Object.assign({},U,{options:B})):React.createElement(FormTextField,Object.assign({},U,{"data-cy":"client-id-input",panel:"try-it"}))),"authorizationCode"===n&&React.createElement(React.Fragment,null,(!(null==e?void 0:e.hideClientSecretInput)||!e)&&React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client Secret:"),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:`auth.${o}.client_secret`,initialValue:fromSessionStorage(`auth.${o}.client_secret`)||(null==s?void 0:s.client_secret),validateOnBlur:!0,validateOnChange:!0,panel:"try-it","data-cy":"client-secret-input"})),e&&!e.disableManualConfiguration&&React.createElement(PkceOptionsWrapper,null,React.createElement(Checkbox,{id:"pkce-opitons-toggle",label:"Configure PKCE manually",checked:S,onChange:()=>{y((e=>!e))},"data-cy":"pkce-options-toggle"}),S&&React.createElement(PkceDetails,null,React.createElement(FormControl,null,React.createElement(FormLabel,null,"Code Verifier"),React.createElement(TextField,{fullWidth:!0,value:O,onChange:({target:{value:e}})=>__awaiter(void 0,void 0,void 0,(function*(){const t=yield deriveCodeChallenge(e);b(e),W(t)})),panel:"try-it","data-cy":"code-verifier-input"})),React.createElement(FormControl,null,React.createElement(FormLabel,null,"Code Challenge"),React.createElement(TextField,{fullWidth:!0,value:_,onChange:({target:{value:e}})=>{A(e)},inputActionButton:V,panel:"try-it","data-cy":"code-challenge-input"}))))),React.createElement(FormTextField,{fullWidth:!0,field:`auth.${o}.token`,type:"hidden",initialValue:z,panel:"try-it"}),React.createElement(Scope,{id:o,scopes:u}),P.token&&P.token.access_token?React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(TextField,{disabled:!0,type:"password",fullWidth:!0,value:P.token.access_token,panel:"try-it"})):null),React.createElement(ButtonsWrapper,null,P.token&&P.token.access_token?React.createElement(Button,{fullWidth:!0,onClick:()=>{w(),C(null)}},"Log out"):R?React.createElement(React.Fragment,null,React.createElement(Button,{fullWidth:!0,onClick:()=>{F(!1),C(null),OAuth2.clearRedirectData(n)}},"Cancel"),React.createElement(LinearProgress,null)):React.createElement(Button,{fullWidth:!0,disabled:!isEmptyObject(T),onClick:()=>{(t=>{if(!t)return;if(l.validate(),!isEmptyObject(T))return;F(!0),C(null);const u=a?a+normalizeUrlProtocol(t):t,d=a&&r?a+normalizeUrlProtocol(r):r,s=l.getValue(`auth.${o}.scopes`),m={authorizationUrl:u.startsWith("http")?u:c+u,clientId:P.client_id,scopes:s,redirectUri:g,routingBasePath:E,successCallback:e=>{l.setValue(`auth.${o}.token`,e),F(!1),C(null)},errorCallback:e=>{F(!1),C((null==e?void 0:e.message)||"Failed to retrieve the access token")}};"implicit"===n&&OAuth2.authorizeImplicit(m),validateTokenEndpointMethod(i)?"authorizationCode"===n&&OAuth2.authorizeAuthorizationCode(Object.assign(Object.assign(Object.assign({},m),{tokenUrl:(null==d?void 0:d.startsWith("http"))?d:c+d,clientSecret:P.client_secret,extraHeaders:getOAuth2TokenEndpointAuthHeader({authMethod:i,clientId:P.client_id,clientSecret:P.client_secret})}),e&&{codeVerifier:O,codeChallenge:_})):console.log(`Unsupported token endpoint auth method: ${i}`)})(d)}},"Authorize")),R||k||!P.token||!P.token.access_token&&React.createElement(Error,{loading:R,error:k,token:P.token}))};
2
2
  //# sourceMappingURL=OAuth2Flow.js.map
@@ -1,2 +1,2 @@
1
- import React,{memo,useCallback,useEffect}from"react";import{useRecoilValue}from"@redocly/recoil";import{DropdownOrLabel}from"../../DropdownOrLabel";import{MediaTypesSwitch}from"../../MediaTypeSwitch";import{Dropdown}from"../../common";import{RequestMimeLabel}from"../RequestMimeLabel";import{encodeSample,getStorageExampleKey}from"../utils";import{fromSessionStorage}from"../../../utils";import{Body}from"./Body";import{getActiveMediaType}from"../../../models";import{activeMimeNameSelector}from"../../../recoil/app";import{operationStore}from"../../../recoil/operation";function RequestBodyComponent({body:{content:e},formApi:o,resolvedBody:t,properties:r,mergeExampleBody:a,id:i,validate:m,pointer:l}){const n=useRecoilValue(activeMimeNameSelector),{examples:p,name:c}=e&&getActiveMediaType(e,n)||{},d=useCallback((o=>{if(!e||!e.hasSample)return"";if(!(null==p?void 0:p[o]))return"";const t=c&&fromSessionStorage(getStorageExampleKey(i,c,o,p)),a=t?JSON.parse(t):null==p?void 0:p[o];return encodeSample(a,r)}),[c,p,i,e,r]),{activeExampleName:s}=useRecoilValue(operationStore(l));useEffect((()=>{if(r&&!a)return void o.setValue("body",JSON.stringify(r||{},null,2));const e=getStorageExampleKey(i,c,s,p);o.setValue("body",fromSessionStorage(e)||d(s||""))}),[p,s,c,o,d,i,r,a]);return React.createElement(React.Fragment,null,React.createElement(MediaTypesSwitch,{content:e,renderDropdown:e=>React.createElement(DropdownOrLabel,Object.assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel,Dropdown:Dropdown}))},(a=>React.createElement(Body,{mediaType:a,mediaContent:e,resolvedBody:t,id:i,properties:r,getActiveSample:d,formApi:o,validate:m}))))}export const RequestBody=memo(RequestBodyComponent);
1
+ import React,{memo,useCallback,useEffect}from"react";import{useAtomValue}from"jotai";import{DropdownOrLabel}from"../../DropdownOrLabel";import{MediaTypesSwitch}from"../../MediaTypeSwitch";import{Dropdown}from"../../common";import{RequestMimeLabel}from"../RequestMimeLabel";import{encodeSample,getStorageExampleKey}from"../utils";import{fromSessionStorage}from"../../../utils";import{Body}from"./Body";import{getActiveMediaType}from"../../../models";import{activeMimeNameAtom}from"../../../jotai/app";import{operationStore}from"../../../jotai/operation";function RequestBodyComponent({body:{content:e},formApi:o,resolvedBody:t,properties:r,mergeExampleBody:a,id:m,validate:i,pointer:n}){const p=useAtomValue(activeMimeNameAtom),{examples:l,name:d}=e&&getActiveMediaType(e,p)||{},s=useCallback((o=>{if(!e||!e.hasSample)return"";if(!(null==l?void 0:l[o]))return"";const t=d&&fromSessionStorage(getStorageExampleKey(m,d,o,l)),a=t?JSON.parse(t):null==l?void 0:l[o];return encodeSample(a,r)}),[d,l,m,e,r]),{activeExampleName:c}=useAtomValue(operationStore(n));useEffect((()=>{if(r&&!a)return void o.setValue("body",JSON.stringify(r||{},null,2));const e=getStorageExampleKey(m,d,c,l);o.setValue("body",fromSessionStorage(e)||s(c||""))}),[l,c,d,o,s,m,r,a]);return React.createElement(React.Fragment,null,React.createElement(MediaTypesSwitch,{content:e,renderDropdown:e=>React.createElement(DropdownOrLabel,Object.assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel,Dropdown:Dropdown}))},(a=>React.createElement(Body,{mediaType:a,mediaContent:e,resolvedBody:t,id:m,properties:r,getActiveSample:s,formApi:o,validate:i}))))}export const RequestBody=memo(RequestBodyComponent);
2
2
  //# sourceMappingURL=RequestBody.js.map
@@ -1,4 +1,4 @@
1
- import React,{memo,useEffect}from"react";import styled from"styled-components";import{getRecoil}from"../../recoil/nexus";import{isMultipartFileUploadProperty,isRootFileUpload,mimeTypeToAccept}from"../common/FileUpload/helper";import{FormControl,FormLabel}from"../common/form";import{FileUpload}from"../common/FileUpload";import{FormTextField,getInvertedInputStyles}from"../common/TextField";import{DefinitionTypes}from"../../models";import{MediaTypes}from"../../constants";import{useExampleKey}from"../Samples";import{operationStore}from"../../recoil/operation";import{normalizeText}from"../../utils";function RequestBodyFormComponent({mediaType:e,onChange:o,formApi:t}){var l;const n=e.examples||{},{exampleKey:m}=useExampleKey(e.operation,n),i=null===(l=n[m])||void 0===l?void 0:l.rawValue,r=getRequestBodyFormFields(e);useEffect((()=>t&&r.forEach((e=>{var o,l;const n=null==i?void 0:i[e.name],m=null!==(l=null!==(o=e.example)&&void 0!==o?o:null==n?void 0:n.example)&&void 0!==l?l:n,r="object"==typeof m?JSON.stringify(m):m;void 0!==m&&t.setValue("body."+e.name,`${r}`)}))),[m]);const a=e.schema||{};return isRootFileUpload(a,e.name)?React.createElement(FileFormControlWrapper,null,React.createElement(FormControl,null,React.createElement(StyledFileUpload,{fullWidth:!0,id:`body.${e.name}`,name:`body.${e.name}`,accept:mimeTypeToAccept(e.name),schema:a,contentName:e.name,onChange:o}))):a.type===DefinitionTypes.OBJECT||r?React.createElement(FileFormControlWrapper,null,r.map((t=>{const l=t.schema||{contentMediaType:"",type:"",description:""},n=e.name===MediaTypes.MULTIPART&&isMultipartFileUploadProperty(l),m=l.contentMediaType||"",i=n?React.createElement(StyledFileUpload,{fullWidth:!0,id:"body."+t.name,name:"body."+t.name,accept:mimeTypeToAccept(m),multiple:"array"===l.type,schema:l,contentName:t.name,onChange:o}):React.createElement(FormTextField,{fullWidth:!0,id:"body."+t.name,field:"body."+t.name,placeholder:normalizeText(l.description)||t.name,panel:"try-it"});return React.createElement(FormControl,{key:t.name},React.createElement(FormLabel,null,t.name,":"),i)}))):(console.warn(`Invalid schema for request body and mime type: "${e.name}"`,a),null)}export const RequestBodyForm=memo(RequestBodyFormComponent);export function getRequestBodyFormFields(e){var o,t,l,n,m,i;const{activeOneOf:r}=getRecoil(operationStore(e.operation.pointer)),a=null!==(t=r[(null===(o=e.schema)||void 0===o?void 0:o.pointer)||""])&&void 0!==t?t:0;return((null===(n=null===(l=e.schema)||void 0===l?void 0:l.oneOf)||void 0===n?void 0:n.length)?(null===(m=e.schema)||void 0===m?void 0:m.oneOf[a].fields)||[]:(null===(i=e.schema)||void 0===i?void 0:i.fields)||[]).filter((e=>!e.schema.readOnly))}const FileFormControlWrapper=styled.div`
1
+ import React,{memo,useEffect}from"react";import styled from"styled-components";import{readAtom}from"../../jotai/nexus";import{isMultipartFileUploadProperty,isRootFileUpload,mimeTypeToAccept}from"../common/FileUpload/helper";import{FormControl,FormLabel}from"../common/form";import{FileUpload}from"../common/FileUpload";import{FormTextField,getInvertedInputStyles}from"../common/TextField";import{DefinitionTypes}from"../../models";import{MediaTypes}from"../../constants";import{useExampleKey}from"../Samples";import{operationStore}from"../../jotai/operation";import{normalizeText}from"../../utils";function RequestBodyFormComponent({mediaType:e,onChange:o,formApi:t}){var l;const n=e.examples||{},{exampleKey:m}=useExampleKey(e.operation,n),a=null===(l=n[m])||void 0===l?void 0:l.rawValue,i=getRequestBodyFormFields(e);useEffect((()=>t&&i.forEach((e=>{var o,l;const n=null==a?void 0:a[e.name],m=null!==(l=null!==(o=e.example)&&void 0!==o?o:null==n?void 0:n.example)&&void 0!==l?l:n,i="object"==typeof m?JSON.stringify(m):m;void 0!==m&&t.setValue("body."+e.name,`${i}`)}))),[m]);const r=e.schema||{};return isRootFileUpload(r,e.name)?React.createElement(FileFormControlWrapper,null,React.createElement(FormControl,null,React.createElement(StyledFileUpload,{fullWidth:!0,id:`body.${e.name}`,name:`body.${e.name}`,accept:mimeTypeToAccept(e.name),schema:r,contentName:e.name,onChange:o}))):r.type===DefinitionTypes.OBJECT||i?React.createElement(FileFormControlWrapper,null,i.map((t=>{const l=t.schema||{contentMediaType:"",type:"",description:""},n=e.name===MediaTypes.MULTIPART&&isMultipartFileUploadProperty(l),m=l.contentMediaType||"",a=n?React.createElement(StyledFileUpload,{fullWidth:!0,id:"body."+t.name,name:"body."+t.name,accept:mimeTypeToAccept(m),multiple:"array"===l.type,schema:l,contentName:t.name,onChange:o}):React.createElement(FormTextField,{fullWidth:!0,id:"body."+t.name,field:"body."+t.name,placeholder:normalizeText(l.description)||t.name,panel:"try-it"});return React.createElement(FormControl,{key:t.name},React.createElement(FormLabel,null,t.name,":"),a)}))):(console.warn(`Invalid schema for request body and mime type: "${e.name}"`,r),null)}export const RequestBodyForm=memo(RequestBodyFormComponent);export function getRequestBodyFormFields(e){var o,t,l,n,m,a;const{activeOneOf:i}=readAtom(operationStore(e.operation.pointer)),r=null!==(t=i[(null===(o=e.schema)||void 0===o?void 0:o.pointer)||""])&&void 0!==t?t:0;return((null===(n=null===(l=e.schema)||void 0===l?void 0:l.oneOf)||void 0===n?void 0:n.length)?(null===(m=e.schema)||void 0===m?void 0:m.oneOf[r].fields)||[]:(null===(a=e.schema)||void 0===a?void 0:a.fields)||[]).filter((e=>!e.schema.readOnly))}const FileFormControlWrapper=styled.div`
2
2
  > div {
3
3
  margin-top: 10px;
4
4
  }
@@ -1,2 +1,2 @@
1
- import*as React from"react";import{JsonViewer,CodeBlock,CodeBlockContainer}from"@redocly/theme";import{useRecoilValue}from"@redocly/recoil";import{langFromMime}from"../../utils";import{ResponseHeader}from"./styled";import{SourceCodeWithFile}from"../SourceCodeWithFile";import{globalOptionsSelector}from"../../recoil/store";export function ResponseBody({response:e}){const{jsonSampleExpandLevel:o}=useRecoilValue(globalOptionsSelector);return React.createElement(React.Fragment,null,React.createElement(ResponseHeader,null," Body: "),getResponseBody(e,o))}function getResponseBody(e,o){return e.body?React.createElement(JsonViewer,{data:e.body,jsonSampleExpandLevel:o}):e.fileInfo?React.createElement(SourceCodeWithFile,{fileInfo:e.fileInfo}):null!==e.data?e.data?React.createElement(CodeBlock,{lang:langFromMime(e.headers["Content-Type"]||"text/plain"),source:e.data,header:{controls:{copy:{}}}}):React.createElement(CodeBlockContainer,{withControls:!0},React.createElement("i",null,"(no content)")):null}
1
+ import*as React from"react";import{JsonViewer,CodeBlock,CodeBlockContainer}from"@redocly/theme";import{useAtomValue}from"jotai";import{langFromMime}from"../../utils";import{ResponseHeader}from"./styled";import{SourceCodeWithFile}from"../SourceCodeWithFile";import{globalOptionsAtom}from"../../jotai/store";export function ResponseBody({response:e}){const{jsonSampleExpandLevel:o}=useAtomValue(globalOptionsAtom);return React.createElement(React.Fragment,null,React.createElement(ResponseHeader,null," Body: "),getResponseBody(e,o))}function getResponseBody(e,o){return e.body?React.createElement(JsonViewer,{data:e.body,jsonSampleExpandLevel:o}):e.fileInfo?React.createElement(SourceCodeWithFile,{fileInfo:e.fileInfo}):null!==e.data?e.data?React.createElement(CodeBlock,{lang:langFromMime(e.headers["Content-Type"]||"text/plain"),source:e.data,header:{controls:{copy:{}}}}):React.createElement(CodeBlockContainer,{withControls:!0},React.createElement("i",null,"(no content)")):null}
2
2
  //# sourceMappingURL=ResponseBody.js.map
@@ -1,4 +1,4 @@
1
- import React,{useState}from"react";import styled from"styled-components";import{useRecoilValue}from"@redocly/recoil";import{CodeBlockContainer}from"@redocly/theme";import{ResponseHeader}from"./styled";import{globalOptionsSelector}from"../../recoil/store";export function ResponseHeadersList({headers:e}){const t=useRecoilValue(globalOptionsSelector),[o,r]=useState(!0),{maxResponseHeadersToShowInTryIt:a}=t,l=Object.keys(e),n=!!a&&l.length>a,s=n&&o?[...l].splice(0,a):[...l];return React.createElement(React.Fragment,null,React.createElement(ResponseHeader,null," Headers: "),React.createElement(CodeBlockContainer,{withControls:!0},s.map((t=>React.createElement("div",{key:t},React.createElement(HeaderName,null,t,":"),React.createElement("code",null,e[t])))),n&&React.createElement(StyledShowMoreLabel,{onClick:()=>{r(!o)}},o?"Show more...":"Hide headers")))}const HeaderName=styled.strong`
1
+ import React,{useState}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{CodeBlockContainer}from"@redocly/theme";import{ResponseHeader}from"./styled";import{globalOptionsAtom}from"../../jotai/store";export function ResponseHeadersList({headers:e}){const t=useAtomValue(globalOptionsAtom),[o,a]=useState(!0),{maxResponseHeadersToShowInTryIt:r}=t,l=Object.keys(e),n=!!r&&l.length>r,s=n&&o?[...l].splice(0,r):[...l];return React.createElement(React.Fragment,null,React.createElement(ResponseHeader,null," Headers: "),React.createElement(CodeBlockContainer,{withControls:!0},s.map((t=>React.createElement("div",{key:t},React.createElement(HeaderName,null,t,":"),React.createElement("code",null,e[t])))),n&&React.createElement(StyledShowMoreLabel,{onClick:()=>{a(!o)}},o?"Show more...":"Hide headers")))}const HeaderName=styled.strong`
2
2
  text-transform: capitalize;
3
3
  display: inline-block;
4
4
  padding-right: 5px;
@@ -1,4 +1,4 @@
1
- import React,{memo,useState}from"react";import styled from"styled-components";import{useMount}from"@redocly/theme";import{useRecoilValue}from"@redocly/recoil";import{globalOptionsSelector}from"../../../recoil/store";import{fromSessionStorage,normalizeText,toSessionStorage}from"../../../utils";import{FormControl,FormLabel}from"../../common/form";import{expandDefaultServerVariables,expandVariables,getServerWithVariables,getDefaultOrStoredVariables,updateVariablesStorage}from"../utils";import ServerVariable from"../ServerVariable";import{TryItDropdown}from"../styled";import{createServerSwitchEvent}from"../../../events";function ServersDropdownComponent({operation:e,onChange:r}){const{events:t}=useRecoilValue(globalOptionsSelector),{servers:o}=e,a=fromSessionStorage("serverUrl"),l=o.findIndex((e=>e.url===a)),[n,s]=useState(l<0?0:l),[i,m]=useState({});useMount((()=>{const e=getServerWithVariables(o,n);r(e),m(e.variables)}));const c=o.map(((e,r)=>({idx:r,serverUrl:e.url,value:`\n ${expandDefaultServerVariables(expandVariables(e.url,i),e.variables)}\n - ${normalizeText(e.description)||"Default"}\n `}))),v=Object.keys(i);return React.createElement(ServerDropdownWrap,{"data-cy":"console-target-server"},React.createElement(FormLabel,{htmlFor:"server"},"Target server: "),React.createElement(FormControl,null,React.createElement(TryItDropdown,{variant:"dark",value:c[n].value,options:c,fullWidth:!0,onChange:({serverUrl:a=""})=>{var l;const n=o.find((e=>e.url===a)),i=o.findIndex((e=>e.url===a)),c=getDefaultOrStoredVariables(n);r({url:a,variables:c}),toSessionStorage("serverUrl",a),s(i),m(c);const v=createServerSwitchEvent({operation:e,serverUrl:a});null===(l=t.targetServerSwitch)||void 0===l||l.call(t,v)}})),null==v?void 0:v.map((e=>{var t;const a=null===(t=o[n].variables)||void 0===t?void 0:t[e];if(a)return React.createElement(ServerVariable,{key:e,name:e,value:i[e],defaultValue:a.default,onChange:t=>((e,t)=>{const a=o[n],l=t||""===t?t:getDefaultOrStoredVariables(a)[e],s=Object.assign(Object.assign({},i),{[e]:l});m(s),updateVariablesStorage(e,l),r(Object.assign(Object.assign({},a),{variables:s}))})(e,t),variableEnum:a.enum,description:a.description})})))}export const ServersDropdown=memo(ServersDropdownComponent);const ServerDropdownWrap=styled.div`
1
+ import React,{memo,useState}from"react";import styled from"styled-components";import{useMount}from"@redocly/theme";import{useAtomValue}from"jotai";import{globalOptionsAtom}from"../../../jotai/store";import{fromSessionStorage,normalizeText,toSessionStorage}from"../../../utils";import{FormControl,FormLabel}from"../../common/form";import{expandDefaultServerVariables,expandVariables,getServerWithVariables,getDefaultOrStoredVariables,updateVariablesStorage}from"../utils";import ServerVariable from"../ServerVariable";import{TryItDropdown}from"../styled";import{createServerSwitchEvent}from"../../../events";function ServersDropdownComponent({operation:e,onChange:r}){const{events:t}=useAtomValue(globalOptionsAtom),{servers:o}=e,a=fromSessionStorage("serverUrl"),n=o.findIndex((e=>e.url===a)),[l,s]=useState(n<0?0:n),[i,m]=useState({});useMount((()=>{const e=getServerWithVariables(o,l);r(e),m(e.variables)}));const v=o.map(((e,r)=>({idx:r,serverUrl:e.url,value:`\n ${expandDefaultServerVariables(expandVariables(e.url,i),e.variables)}\n - ${normalizeText(e.description)||"Default"}\n `}))),u=Object.keys(i);return React.createElement(ServerDropdownWrap,{"data-cy":"console-target-server"},React.createElement(FormLabel,{htmlFor:"server"},"Target server: "),React.createElement(FormControl,null,React.createElement(TryItDropdown,{variant:"dark",value:v[l].value,options:v,fullWidth:!0,onChange:({serverUrl:a=""})=>{var n;const l=o.find((e=>e.url===a)),i=o.findIndex((e=>e.url===a)),v=getDefaultOrStoredVariables(l);r({url:a,variables:v}),toSessionStorage("serverUrl",a),s(i),m(v);const u=createServerSwitchEvent({operation:e,serverUrl:a});null===(n=t.targetServerSwitch)||void 0===n||n.call(t,u)}})),null==u?void 0:u.map((e=>{var t;const a=null===(t=o[l].variables)||void 0===t?void 0:t[e];if(a)return React.createElement(ServerVariable,{key:e,name:e,value:i[e],defaultValue:a.default,onChange:t=>((e,t)=>{const a=o[l],n=t||""===t?t:getDefaultOrStoredVariables(a)[e],s=Object.assign(Object.assign({},i),{[e]:n});m(s),updateVariablesStorage(e,n),r(Object.assign(Object.assign({},a),{variables:s}))})(e,t),variableEnum:a.enum,description:a.description})})))}export const ServersDropdown=memo(ServersDropdownComponent);const ServerDropdownWrap=styled.div`
2
2
  margin-bottom: 20px;
3
3
  `;
4
4
  //# sourceMappingURL=ServersDropdown.js.map
@@ -1,2 +1,2 @@
1
- import merge from"deepmerge";import{getRecoil}from"../../recoil/nexus";import{MediaTypes}from"../../constants";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";import{operationStore}from"../../recoil/operation";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(const t of Object.keys(e.values.auth)){const r=e.values.auth[t];setSecurityDetails(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){var t;for(const r of["path","query","header","cookie"])if(null===(t=e.values)||void 0===t?void 0:t[r])for(const t of Object.keys(e.values[r]))setParameterValue(r,t,e.values[r][t])}export const getParameters=(e,t)=>e.filter((e=>e.in===t)).reduce(((e,t)=>{const{in:r,name:o}=t;return e[o]=getParameterValue(r||"",o),e}),{});const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,t=0){const r=e[t],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function getInitialServerWithVariables(e){const t=fromSessionStorage("serverUrl"),r=e.find((e=>e.url===t))||e[0],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function expandVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]||e))}export function expandDefaultServerVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]&&t[r].default||e))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};const t=fromSessionStorage("variables"),r=t&&JSON.parse(t)||{},o={};return Object.entries(e.variables||{}).forEach((([e,t])=>{o[e]=r[e]||t.default||""})),o}export function updateVariablesStorage(e,t){const r=fromSessionStorage("variables"),o=r&&JSON.parse(r)||{};toSessionStorage("variables",JSON.stringify(Object.assign(Object.assign({},o),{[e]:t})))}export function unescapeQueryParams(e){return Object.entries(e).reduce(((e,[t,r])=>(e[unescapeFormId(t)]=r,e)),{})}export function getFileNameFromHeaders(e){const t="filename=";for(const[r,o]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=o.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[1]}return""}export const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},o,a)=>n=>{var i,s;const{requestValues:u}=getRecoil(operationStore(o.pointer));r&&(n=Object.assign(Object.assign({},n),{url:decodeURIComponent(n.url)})),t&&(n.headers["X-User-Agent"]="Redocly Try it API console");const c=(null===(i=null==u?void 0:u.header)||void 0===i?void 0:i.authorization)||(null===(s=null==u?void 0:u.header)||void 0===s?void 0:s.Authorization);return!a&&c&&(n.headers.Authorization=c),e?e(n,o):n};export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=e=>{const t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};export function fromCookie(e){if("cookie"===e.in)return getCookie(e.name||"")}export const validateTokenEndpointMethod=e=>{if(!e)return!0;const t=Array.isArray(e)?e:[e];return!(t.length&&!t.includes("none")&&!t.includes("client_secret_basic"))};export const getOAuth2TokenEndpointAuthHeader=({authMethod:e,clientId:t,clientSecret:r})=>"client_secret_basic"===e||Array.isArray(e)&&e.includes("client_secret_basic")?{Authorization:`Basic ${btoa(t+":"+r)}`}:{};export function encodeSample(e,t){if(!e)return"";if(e.mime===MediaTypes.URL_ENCODED)return e.value;const r=e.value,o=t?merge(r,t,{arrayMerge:arrayMergeStrategy}):r;return JSON.stringify(o,null,2)}export const getStorageExampleKey=(e,t="",r,o)=>{let a=e+"_"+t;return r&&o&&Object.keys(o).includes(r)&&(a+="_"+r),a};
1
+ import merge from"deepmerge";import{readAtom}from"../../jotai/nexus";import{MediaTypes}from"../../constants";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";import{operationStore}from"../../jotai/operation";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(const t of Object.keys(e.values.auth)){const r=e.values.auth[t];setSecurityDetails(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){var t;for(const r of["path","query","header","cookie"])if(null===(t=e.values)||void 0===t?void 0:t[r])for(const t of Object.keys(e.values[r]))setParameterValue(r,t,e.values[r][t])}export const getParameters=(e,t)=>e.filter((e=>e.in===t)).reduce(((e,t)=>{const{in:r,name:o}=t;return e[o]=getParameterValue(r||"",o),e}),{});const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,t=0){const r=e[t],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function getInitialServerWithVariables(e){const t=fromSessionStorage("serverUrl"),r=e.find((e=>e.url===t))||e[0],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function expandVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]||e))}export function expandDefaultServerVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]&&t[r].default||e))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};const t=fromSessionStorage("variables"),r=t&&JSON.parse(t)||{},o={};return Object.entries(e.variables||{}).forEach((([e,t])=>{o[e]=r[e]||t.default||""})),o}export function updateVariablesStorage(e,t){const r=fromSessionStorage("variables"),o=r&&JSON.parse(r)||{};toSessionStorage("variables",JSON.stringify(Object.assign(Object.assign({},o),{[e]:t})))}export function unescapeQueryParams(e){return Object.entries(e).reduce(((e,[t,r])=>(e[unescapeFormId(t)]=r,e)),{})}export function getFileNameFromHeaders(e){const t="filename=";for(const[r,o]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=o.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[1]}return""}export const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},o,a)=>n=>{var i,s;const{requestValues:u}=readAtom(operationStore(o.pointer));r&&(n=Object.assign(Object.assign({},n),{url:decodeURIComponent(n.url)})),t&&(n.headers["X-User-Agent"]="Redocly Try it API console");const c=(null===(i=null==u?void 0:u.header)||void 0===i?void 0:i.authorization)||(null===(s=null==u?void 0:u.header)||void 0===s?void 0:s.Authorization);return!a&&c&&(n.headers.Authorization=c),e?e(n,o):n};export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=e=>{const t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};export function fromCookie(e){if("cookie"===e.in)return getCookie(e.name||"")}export const validateTokenEndpointMethod=e=>{if(!e)return!0;const t=Array.isArray(e)?e:[e];return!(t.length&&!t.includes("none")&&!t.includes("client_secret_basic"))};export const getOAuth2TokenEndpointAuthHeader=({authMethod:e,clientId:t,clientSecret:r})=>"client_secret_basic"===e||Array.isArray(e)&&e.includes("client_secret_basic")?{Authorization:`Basic ${btoa(t+":"+r)}`}:{};export function encodeSample(e,t){if(!e)return"";if(e.mime===MediaTypes.URL_ENCODED)return e.value;const r=e.value,o=t?merge(r,t,{arrayMerge:arrayMergeStrategy}):r;return JSON.stringify(o,null,2)}export const getStorageExampleKey=(e,t="",r,o)=>{let a=e+"_"+t;return r&&o&&Object.keys(o).includes(r)&&(a+="_"+r),a};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- import{getRecoil}from"../recoil/nexus";import{createTrackingEvent}from"./creator";import{AnalyticsEventType}from"./types";import{activeMimeNameSelector}from"../recoil/app";import{operationStore}from"../recoil/operation";const codeSampleCopyEvent=createTrackingEvent(AnalyticsEventType.CodeSampleCopied);export const createCodeSampleCopyEvent=({operation:e,type:o,lang:t="",label:a=""})=>{const{activeExampleName:p}=getRecoil(operationStore(e.pointer));return codeSampleCopyEvent({resource:"Redocly_CodeSample",action:"CodeSampleCopied",operationId:e.id,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.name,exampleId:p||e.activeExampleName,exampleMimeType:getRecoil(activeMimeNameSelector),label:a,lang:t,type:o})};
1
+ import{readAtom}from"../jotai/nexus";import{createTrackingEvent}from"./creator";import{AnalyticsEventType}from"./types";import{activeMimeNameAtom}from"../jotai/app";import{operationStore}from"../jotai/operation";const codeSampleCopyEvent=createTrackingEvent(AnalyticsEventType.CodeSampleCopied);export const createCodeSampleCopyEvent=({operation:e,type:o,lang:t="",label:a=""})=>{const{activeExampleName:p}=readAtom(operationStore(e.pointer));return codeSampleCopyEvent({resource:"Redocly_CodeSample",action:"CodeSampleCopied",operationId:e.id,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.name,exampleId:p||e.activeExampleName,exampleMimeType:readAtom(activeMimeNameAtom),label:a,lang:t,type:o})};
2
2
  //# sourceMappingURL=codeSampleCopy.js.map
@@ -1,6 +1,6 @@
1
1
  import type { LayoutVariant } from '@redocly/theme';
2
2
  import type { DropdownOption } from '../components/common';
3
- import type { OpenAPIDefinitionVersion } from '../recoil/store';
3
+ import type { OpenAPIDefinitionVersion } from '../jotai/store';
4
4
  import type { Options } from '../services/Options/types';
5
5
  import type { RouterType } from '../types';
6
6
  import type { OpenAPIParser } from '../services/OpenAPIParser';