@redocly/reference-docs 2.43.5 → 2.43.7

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 (33) hide show
  1. package/bin/cli/commands/redocly-docs-cli.min.js +6 -6
  2. package/bin/cli/commands/redocly-docs-cli.min.js.LICENSE.txt +1 -1
  3. package/dist/console.redocly-reference-docs.min.js +66 -66
  4. package/dist/oauth2-redirect.js +1 -1
  5. package/dist/redocly-reference-docs.min.js +70 -70
  6. package/lib/components/OperationParameters/OperationParameters.js +1 -1
  7. package/lib/components/RedoclyReferenceDocs.d.ts +1 -0
  8. package/lib/components/RedoclyReferenceDocs.js +1 -1
  9. package/lib/components/StoreProvider.d.ts +2 -1
  10. package/lib/components/StoreProvider.js +1 -1
  11. package/lib/components/console/Console.js +1 -1
  12. package/lib/components/console/ParameterArray.js +1 -1
  13. package/lib/components/console/utils.js +1 -1
  14. package/lib/services/ProMenu.js +1 -1
  15. package/lib-browser/components/OperationParameters/OperationParameters.js +1 -1
  16. package/lib-browser/components/RedoclyReferenceDocs.d.ts +1 -0
  17. package/lib-browser/components/RedoclyReferenceDocs.js +1 -1
  18. package/lib-browser/components/StoreProvider.d.ts +2 -1
  19. package/lib-browser/components/StoreProvider.js +1 -1
  20. package/lib-browser/components/console/Console.js +1 -1
  21. package/lib-browser/components/console/ParameterArray.js +1 -1
  22. package/lib-browser/components/console/utils.js +1 -1
  23. package/lib-browser/services/ProMenu.js +1 -1
  24. package/lib-esm/components/OperationParameters/OperationParameters.js +1 -1
  25. package/lib-esm/components/RedoclyReferenceDocs.d.ts +1 -0
  26. package/lib-esm/components/RedoclyReferenceDocs.js +1 -1
  27. package/lib-esm/components/StoreProvider.d.ts +2 -1
  28. package/lib-esm/components/StoreProvider.js +1 -1
  29. package/lib-esm/components/console/Console.js +1 -1
  30. package/lib-esm/components/console/ParameterArray.js +1 -1
  31. package/lib-esm/components/console/utils.js +1 -1
  32. package/lib-esm/services/ProMenu.js +1 -1
  33. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo,Fragment}from"react";import{dottedString,escapeFormId,get,unescapeFormId}from"../../utils";import{FormLabel,FormControl,FormWarning,GroupLabel,Table}from"../common/form";import{FormTextField}from"../common/TextField";import{ParameterEnumDropdown}from"../console/ParameterDropdown";import{ParameterArray}from"../console/ParameterArray";import{SchemaType}from"./types";import{createValidator,getInitialValue,isNotSupported,orderParams,placeholder}from"./utils";const PARAM_PLACES=["path","query","cookie","header"];function FormControlWrapper({id:e,param:r,values:a}){const o=useMemo((()=>createValidator(r)),[r]),t=Array.isArray(r.schema.enum)&&r.schema.enum.length?r.schema.enum:void 0,m=getInitialValue(r.schema),i=e.split(".").map((e=>unescapeFormId(e)));return t?_jsx(FormControl,{children:_jsx(ParameterEnumDropdown,{initValue:m,paramEnum:t,field:e},void 0)},void 0):_jsx(FormTextField,{fullWidth:!0,"data-cy":"parameter-input",id:e,field:e,placeholder:placeholder(r),validate:o,initialValue:m||get(a,i),validateOnBlur:!0,validateOnChange:!0},void 0)}export function OperationParameters({values:e,operation:r}){const a=useMemo((()=>orderParams(r.parameters||[])),[r]),o=(r,a,t,m)=>{var i;const n=t?dottedString(t,r.name):r.name,s=isNotSupported(r.schema),d=t?[a,t]:[r.in],l=dottedString(...d,escapeFormId(r.name));return s&&console.warn(`Unsupported parameter definition: "${s}"`),r.schema.type===SchemaType.ARRAY?_jsx(ParameterArray,{name:n,param:r,place:a,renderParameter:o},l):r.schema.type===SchemaType.OBJECT?null===(i=r.schema.fields)||void 0===i?void 0:i.map((e=>o(e,a,n))):_jsxs(FormControl,{children:[_jsxs(FormLabel,Object.assign({required:r.required},{children:[m||n,":"]}),void 0),s?_jsx(FormWarning,{children:"Unsupported field schema definition"},void 0):_jsx(FormControlWrapper,{id:l,param:r,values:e},void 0)]},l)};return _jsx(Table,{children:PARAM_PLACES.map((e=>{const r=a[e];return r&&r.length?_jsxs(Fragment,{children:[_jsxs(FormControl,{children:[_jsxs(GroupLabel,{children:[" # ",e," parameters "]},void 0),_jsx("span",{children:" "},void 0)]},void 0),r.map((r=>o(r,e)))]},e):null}))},void 0)}
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo,Fragment,useCallback}from"react";import{dottedString,escapeFormId,get,unescapeFormId}from"../../utils";import{FormLabel,FormControl,FormWarning,GroupLabel,Table}from"../common/form";import{FormTextField}from"../common/TextField";import{ParameterEnumDropdown}from"../console/ParameterDropdown";import{ParameterArray}from"../console/ParameterArray";import{SchemaType}from"./types";import{createValidator,getInitialValue,isNotSupported,orderParams,placeholder}from"./utils";const PARAM_PLACES=["path","query","cookie","header"];function FormControlWrapper({id:e,param:r,values:a}){const o=useMemo((()=>createValidator(r)),[r]),t=Array.isArray(r.schema.enum)&&r.schema.enum.length?r.schema.enum:void 0,m=getInitialValue(r.schema),i=e.split(".").map((e=>unescapeFormId(e)));return t?_jsx(FormControl,{children:_jsx(ParameterEnumDropdown,{initValue:m,paramEnum:t,field:e},void 0)},void 0):_jsx(FormTextField,{fullWidth:!0,"data-cy":"parameter-input",id:e,field:e,placeholder:placeholder(r),validate:o,initialValue:m||get(a,i),validateOnBlur:!0,validateOnChange:!0},void 0)}export function OperationParameters({values:e,operation:r}){const a=useMemo((()=>orderParams(r.parameters||[])),[r]),o=useCallback(((r,a,t,m)=>{var i;const n=t?dottedString(t,r.name):r.name,s=isNotSupported(r.schema),l=t?[a,t]:[r.in],d=dottedString(...l,escapeFormId(r.name));return s&&console.warn(`Unsupported parameter definition: "${s}"`),r.schema.type===SchemaType.ARRAY?_jsx(ParameterArray,{name:n,param:r,place:a,renderParameter:o},d):r.schema.type===SchemaType.OBJECT?null===(i=r.schema.fields)||void 0===i?void 0:i.map((e=>o(e,a,n))):_jsxs(FormControl,{children:[_jsxs(FormLabel,Object.assign({required:r.required},{children:[m||n,":"]}),void 0),s?_jsx(FormWarning,{children:"Unsupported field schema definition"},void 0):_jsx(FormControlWrapper,{id:d,param:r,values:e},void 0)]},d)}),[e]),t=useCallback((e=>{const r=a[e];return r&&r.length?_jsxs(Fragment,{children:[_jsxs(FormControl,{children:[_jsxs(GroupLabel,{children:[" # ",e," parameters "]},void 0),_jsx("span",{children:" "},void 0)]},void 0),r.map((r=>o(r,e)))]},e):null}),[a,o]);return _jsx(Table,{children:PARAM_PLACES.map(t)},void 0)}
2
2
  //# sourceMappingURL=OperationParameters.js.map
@@ -35,6 +35,7 @@ export interface RedoclyReferenceDocsStandaloneProps {
35
35
  activeItemId?: string;
36
36
  activeSampleLanguage?: CodeSampleConfig['lang'];
37
37
  activeDeepLink?: string;
38
+ onLoaded?: (e?: Error) => void;
38
39
  }
39
40
  export declare function RedoclyReferenceDocsStandalone(props: RedoclyReferenceDocsStandaloneProps): JSX.Element | null;
40
41
  export {};
@@ -22,5 +22,5 @@ import{__decorate}from"tslib";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-ru
22
22
  ${ApiContentWrap} {
23
23
  ${({theme:e,showRightPanel:o,layout:t})=>mediaCSS({width:{[ZERO_BREAKPOINT]:"none",small:`calc(100% - ${e.sidebar.width})`},maxWidth:e.layout[t===LayoutVariant.THREE_PANEL&&o?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED].maxWidth})};
24
24
  }
25
- `;let RedoclyReferenceDocs=class extends Component{constructor(e){super(e),Object.defineProperty(this,"_observer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_updatedItems",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"rootElementRef",{enumerable:!0,configurable:!0,writable:!0,value:createRef()}),Object.defineProperty(this,"handleClose",{enumerable:!0,configurable:!0,writable:!0,value:()=>this.props.store.tryItOut()}),this.state={searchPopUpShown:!1,searchPopUpValue:""}}componentDidMount(){var e,o;this.props.store.onDidMount(),null===(o=(e=this.props).onLoaded)||void 0===o||o.call(e),this._observer=reaction((()=>this.props.store.menu.renderItems),(()=>{this._updatedItems=!0}))}componentDidUpdate(){this._updatedItems&&(this._updatedItems=!1,this.props.store.menu.scrollToActive())}componentWillUnmount(){this.props.store.dispose(),this._observer()}render(){const{store:e,_forceRenderInfo:o}=this.props,{definition:t,menu:i,options:a,search:r,marker:n}=e,{hideDownloadButton:s,hideInfoSection:l,pagination:d,disableSidebar:c}=a,h=i.renderItems,p="none"===d||i.activeRenderItemIdx<=0;let u=!l&&p;u&&"none"!==d&&c&&h[0]&&"section"!==h[0].type&&(u=!1),o&&(u=!0);const m=!u&&null!==s&&!s&&p;return _jsxs(ProProviders,Object.assign({store:e},{children:[_jsx(Overlay,{l:e.l},void 0),_jsxs(RedocWrap,Object.assign({className:"redoc-wrap",ref:this.rootElementRef},{children:[_jsx(CssFixes,{whiteLabel:a.whiteLabel,showRightPanel:e.showRightPanel,layout:e.layout},void 0),e.tryItOperation&&_jsx(Console,{rootElement:this.rootElementRef.current,store:e,operation:e.tryItOperation,onClose:this.handleClose},void 0),!a.disableSidebar&&_jsxs(StickyResponsiveSidebar,Object.assign({menu:i,className:"menu-content"},{children:[!a.hideLogo&&_jsx(ApiLogo,{info:t.info},void 0),t instanceof VersionedSpecStore&&_jsx(VersionSwitcher,{spec:t,onChange:o=>{void 0!==o.idx&&t.changeVersion(o.idx),i.updateItemsByVersionChange(!0),e.tryItOut(void 0)}},void 0),!a.disableSearch&&_jsx(SearchField,{showPopUp:()=>this.setState({searchPopUpShown:!0}),searchValue:this.state.searchPopUpValue,marker:n,setSearchValue:e=>this.setState({searchPopUpValue:e})},void 0),_jsx(SideMenu,{menu:i},void 0)]}),void 0),_jsxs(ApiContentWrap,Object.assign({className:(e.isLoading?"loading ":"")+"api-content",layout:e.layout===LayoutVariant.THREE_PANEL&&e.showRightPanel?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED},{children:[a.theme.layout.showDarkRightPanel&&e.showRightPanel&&e.layout!==LayoutVariant.STACKED&&_jsx(BackgroundStub,{},void 0),u&&_jsx(ApiInfo,{store:e},void 0),m&&_jsx(DownloadButtonWithLabel,{store:e},void 0),_jsx(ContentItems,{items:h,store:e},void 0),a.showNextButton&&_jsx(ContinueButton,{pagination:a.pagination,menu:i},void 0),this.props.children]}),void 0),_jsxs(ControlsWrap,{children:[_jsx(ToggleRightPanelButton,{store:e,isVisible:e.layout===LayoutVariant.THREE_PANEL},void 0),_jsx(ChangeViewButton,{store:e,isVisible:e.showRightPanel},void 0)]},void 0),_jsx(ProSearchBox,{search:r,marker:n,menu:i,onActivate:i.activateAndScroll.bind(i),options:a,shown:this.state.searchPopUpShown,hidePopUp:()=>this.setState({searchPopUpShown:!1}),showPopUp:()=>this.setState({searchPopUpShown:!0}),setSearchValue:e=>this.setState({searchPopUpValue:e}),searchValue:this.state.searchPopUpValue},void 0),a.theme.layout.showDarkRightPanel&&e.showRightPanel&&e.layout!==LayoutVariant.STACKED&&_jsx(BackgroundStubFix,{},void 0)]}),void 0)]}),void 0)}};RedoclyReferenceDocs=__decorate([observer],RedoclyReferenceDocs);export{RedoclyReferenceDocs};export function RedoclyReferenceDocsStandalone(e){const{definition:o,definitionUrl:t,options:i={},activeItemId:a,activeSampleLanguage:r,activeDeepLink:n}=e,s=argValueToBoolean(i.hideLoading,!1),l=new RedocNormalizedOptions(i),d=_jsx(ProStoreProvider,Object.assign({definition:o,definitionUrl:t,options:i,activeItemId:a,activeSampleLanguage:r,activeDeepLink:n},{children:({loading:e,store:o})=>e?s?null:_jsx(Loading,{color:l.theme.colors.primary.main},void 0):_jsx(RedoclyReferenceDocs,{store:o},void 0)}),void 0);return i.disableErrorBoundary?d:_jsx(ErrorBoundary,{children:d},void 0)}
25
+ `;let RedoclyReferenceDocs=class extends Component{constructor(e){super(e),Object.defineProperty(this,"_observer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_updatedItems",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"rootElementRef",{enumerable:!0,configurable:!0,writable:!0,value:createRef()}),Object.defineProperty(this,"handleClose",{enumerable:!0,configurable:!0,writable:!0,value:()=>this.props.store.tryItOut()}),this.state={searchPopUpShown:!1,searchPopUpValue:""}}componentDidMount(){var e,o;this.props.store.onDidMount(),null===(o=(e=this.props).onLoaded)||void 0===o||o.call(e),this._observer=reaction((()=>this.props.store.menu.renderItems),(()=>{this._updatedItems=!0}))}componentDidUpdate(){this._updatedItems&&(this._updatedItems=!1,this.props.store.menu.scrollToActive())}componentWillUnmount(){this.props.store.dispose(),this._observer()}render(){const{store:e,_forceRenderInfo:o}=this.props,{definition:t,menu:i,options:a,search:r,marker:n}=e,{hideDownloadButton:s,hideInfoSection:l,pagination:d,disableSidebar:c}=a,h=i.renderItems,p="none"===d||i.activeRenderItemIdx<=0;let u=!l&&p;u&&"none"!==d&&c&&h[0]&&"section"!==h[0].type&&(u=!1),o&&(u=!0);const m=!u&&null!==s&&!s&&p;return _jsxs(ProProviders,Object.assign({store:e},{children:[_jsx(Overlay,{l:e.l},void 0),_jsxs(RedocWrap,Object.assign({className:"redoc-wrap",ref:this.rootElementRef},{children:[_jsx(CssFixes,{whiteLabel:a.whiteLabel,showRightPanel:e.showRightPanel,layout:e.layout},void 0),e.tryItOperation&&_jsx(Console,{rootElement:this.rootElementRef.current,store:e,operation:e.tryItOperation,onClose:this.handleClose},void 0),!a.disableSidebar&&_jsxs(StickyResponsiveSidebar,Object.assign({menu:i,className:"menu-content"},{children:[!a.hideLogo&&_jsx(ApiLogo,{info:t.info},void 0),t instanceof VersionedSpecStore&&_jsx(VersionSwitcher,{spec:t,onChange:o=>{void 0!==o.idx&&t.changeVersion(o.idx),i.updateItemsByVersionChange(!0),e.tryItOut(void 0)}},void 0),!a.disableSearch&&_jsx(SearchField,{showPopUp:()=>this.setState({searchPopUpShown:!0}),searchValue:this.state.searchPopUpValue,marker:n,setSearchValue:e=>this.setState({searchPopUpValue:e})},void 0),_jsx(SideMenu,{menu:i},void 0)]}),void 0),_jsxs(ApiContentWrap,Object.assign({className:(e.isLoading?"loading ":"")+"api-content",layout:e.layout===LayoutVariant.THREE_PANEL&&e.showRightPanel?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED},{children:[a.theme.layout.showDarkRightPanel&&e.showRightPanel&&e.layout!==LayoutVariant.STACKED&&_jsx(BackgroundStub,{},void 0),u&&_jsx(ApiInfo,{store:e},void 0),m&&_jsx(DownloadButtonWithLabel,{store:e},void 0),_jsx(ContentItems,{items:h,store:e},void 0),a.showNextButton&&_jsx(ContinueButton,{pagination:a.pagination,menu:i},void 0),this.props.children]}),void 0),_jsxs(ControlsWrap,{children:[_jsx(ToggleRightPanelButton,{store:e,isVisible:e.layout===LayoutVariant.THREE_PANEL},void 0),_jsx(ChangeViewButton,{store:e,isVisible:e.showRightPanel},void 0)]},void 0),_jsx(ProSearchBox,{search:r,marker:n,menu:i,onActivate:i.activateAndScroll.bind(i),options:a,shown:this.state.searchPopUpShown,hidePopUp:()=>this.setState({searchPopUpShown:!1}),showPopUp:()=>this.setState({searchPopUpShown:!0}),setSearchValue:e=>this.setState({searchPopUpValue:e}),searchValue:this.state.searchPopUpValue},void 0),a.theme.layout.showDarkRightPanel&&e.showRightPanel&&e.layout!==LayoutVariant.STACKED&&_jsx(BackgroundStubFix,{},void 0)]}),void 0)]}),void 0)}};RedoclyReferenceDocs=__decorate([observer],RedoclyReferenceDocs);export{RedoclyReferenceDocs};export function RedoclyReferenceDocsStandalone(e){const{definition:o,definitionUrl:t,options:i={},activeItemId:a,activeSampleLanguage:r,activeDeepLink:n,onLoaded:s}=e,l=argValueToBoolean(i.hideLoading,!1),d=new RedocNormalizedOptions(i),c=_jsx(ProStoreProvider,Object.assign({definition:o,definitionUrl:t,options:i,activeItemId:a,activeSampleLanguage:r,activeDeepLink:n,onLoaded:s},{children:({loading:e,store:o})=>e?l?null:_jsx(Loading,{color:d.theme.colors.primary.main},void 0):_jsx(RedoclyReferenceDocs,{store:o},void 0)}),void 0);return i.disableErrorBoundary?c:_jsx(ErrorBoundary,{children:c},void 0)}
26
26
  //# sourceMappingURL=RedoclyReferenceDocs.js.map
@@ -17,7 +17,8 @@ interface StoreProviderProps {
17
17
  activeItemId?: string;
18
18
  activeSampleLanguage?: CodeSampleConfig['lang'] | string;
19
19
  activeDeepLink?: string;
20
+ onLoaded?: (e?: Error) => void;
20
21
  }
21
- export declare const ProStoreProvider: ({ definitions, options, definitionUrl, definition, activeItemId, activeSampleLanguage, activeDeepLink, children, }: StoreProviderProps) => JSX.Element | null;
22
+ export declare const ProStoreProvider: ({ definitions, options, definitionUrl, definition, activeItemId, activeSampleLanguage, activeDeepLink, children, onLoaded, }: StoreProviderProps) => JSX.Element | null;
22
23
  export declare function loadSpecs({ versions }: SpecVersions): Promise<void>;
23
24
  export {};
@@ -1,2 +1,2 @@
1
- import isDeepEqual from"fast-deep-equal";import{createContext,useEffect,useMemo,useRef,useState}from"react";import{loadAndBundleDefinition}from"../redoc-lib";import{ProStore}from"../services/ProStore";import{FakeHistoryService}from"../services";export const{Provider:Provider,Consumer:Consumer}=createContext(void 0);export const ProStoreProvider=({definitions:e,options:t,definitionUrl:n,definition:o,activeItemId:i,activeSampleLanguage:r,activeDeepLink:s,children:a})=>{const[,c]=useState(),[u,d]=useState(!0),[l,f]=useState(null);useEffect((()=>{!async function(){d(!0);try{f(e?await loadMany(e):await loadSingle(o,n,t))}catch(e){c((()=>{throw e}))}}()}),[e,o,n,t]);const p=useMemo((()=>{var e,o,i;if(!l)return;const r=new ProStore(l,n,t);return(null===(e=r.options.hooks)||void 0===e?void 0:e.onInit)&&(null===(i=null===(o=r.options.hooks)||void 0===o?void 0:o.onInit)||void 0===i||i.call(o,{store:r})),r}),useDeepCompareMemoize([l,t]));return useEffect((()=>{if(p)return d(!1),()=>p.dispose()}),[p]),useEffect((()=>{var e;if(!p)return;if(!i)return;const t=(null==i?void 0:i.split(p.options.deepLinkPrefix)[0])||(null===(e=p.menu.flatItems[p.menu.activeItemIdx])||void 0===e?void 0:e.id),n=p.menu.flatItems.find((e=>e.id===t)),o=s?t+p.options.deepLinkPrefix+s:void 0;o&&p.menu.history instanceof FakeHistoryService&&p.menu.history.replaceForField(o),p.menu.activateAndScroll(n,!0,!1,o)}),[i,s,p]),useEffect((()=>{p&&r&&p.setActiveSampleLanguage(r)}),[r,p]),a({loading:u,store:p})};function fixSpec(e){const t=e.components&&e.components.securitySchemes||{};for(const e of Object.keys(t)){const n=t[e];n["x-type"]&&(n.type=n["x-type"]),n["x-scheme"]&&(n.scheme=n["x-scheme"])}}async function loadMany(e){return await loadSpecs(e||{}),e}async function loadSingle(e,t,n){let o;if(null==n?void 0:n.skipBundleAndConvert){if(!e)throw new Error('spec must be specified when using "skipBundleAndConvert"');o=e}else o=await loadAndBundleDefinition(e||t);const i=null==n?void 0:n.unstable_externalDescription;if(i)try{const e=await fetch(i);o.info.description=await e.text()}catch(e){console.warn(`Failed to load external description from ${i}: ${e.message}`)}try{fixSpec(o)}catch(e){}return o}function loadAndBundleSpecOrMd(e,t){return e.endsWith(".md")?loadAndBundleDefinition({openapi:"3.0.0",info:{title:t||"",version:"1.0",description:{$ref:e}},paths:{}}):loadAndBundleDefinition(e)}export async function loadSpecs({versions:e}){if(Array.isArray(e))for(const t of e)t.url&&(t.spec=await loadAndBundleSpecOrMd(t.url))}function useDeepCompareMemoize(e){const t=useRef(),n=useRef(0);return isDeepEqual(e,t.current)||(t.current=e,n.current+=1),[n.current]}
1
+ import isDeepEqual from"fast-deep-equal";import{createContext,useEffect,useMemo,useRef,useState}from"react";import{loadAndBundleDefinition}from"../redoc-lib";import{ProStore}from"../services/ProStore";import{FakeHistoryService}from"../services";export const{Provider:Provider,Consumer:Consumer}=createContext(void 0);export const ProStoreProvider=({definitions:e,options:n,definitionUrl:t,definition:o,activeItemId:i,activeSampleLanguage:r,activeDeepLink:s,children:a,onLoaded:c})=>{const[,u]=useState(),[d,l]=useState(!0),[f,p]=useState(null);useEffect((()=>{!async function(){l(!0);try{p(e?await loadMany(e):await loadSingle(o,t,n))}catch(e){null==c||c(e),u((()=>{throw e}))}}()}),[e,o,t,n]);const m=useMemo((()=>{var e,o,i;if(!f)return;const r=new ProStore(f,t,n);return(null===(e=r.options.hooks)||void 0===e?void 0:e.onInit)&&(null===(i=null===(o=r.options.hooks)||void 0===o?void 0:o.onInit)||void 0===i||i.call(o,{store:r})),r}),useDeepCompareMemoize([f,n]));return useEffect((()=>{if(m)return l(!1),()=>m.dispose()}),[m]),useEffect((()=>{var e;if(!m)return;if(!i)return;const n=(null==i?void 0:i.split(m.options.deepLinkPrefix)[0])||(null===(e=m.menu.flatItems[m.menu.activeItemIdx])||void 0===e?void 0:e.id),t=m.menu.flatItems.find((e=>e.id===n)),o=s?n+m.options.deepLinkPrefix+s:void 0;o&&m.menu.history instanceof FakeHistoryService&&m.menu.history.replaceForField(o),m.menu.activateAndScroll(t,!0,!1,o)}),[i,s,m]),useEffect((()=>{m&&r&&m.setActiveSampleLanguage(r),m&&c&&c()}),[r,c,m]),a({loading:d,store:m})};function fixSpec(e){const n=e.components&&e.components.securitySchemes||{};for(const e of Object.keys(n)){const t=n[e];t["x-type"]&&(t.type=t["x-type"]),t["x-scheme"]&&(t.scheme=t["x-scheme"])}}async function loadMany(e){return await loadSpecs(e||{}),e}async function loadSingle(e,n,t){let o;if(null==t?void 0:t.skipBundleAndConvert){if(!e)throw new Error('spec must be specified when using "skipBundleAndConvert"');o=e}else o=await loadAndBundleDefinition(e||n);const i=null==t?void 0:t.unstable_externalDescription;if(i)try{const e=await fetch(i);o.info.description=await e.text()}catch(e){console.warn(`Failed to load external description from ${i}: ${e.message}`)}try{fixSpec(o)}catch(e){}return o}function loadAndBundleSpecOrMd(e,n){return e.endsWith(".md")?loadAndBundleDefinition({openapi:"3.0.0",info:{title:n||"",version:"1.0",description:{$ref:e}},paths:{}}):loadAndBundleDefinition(e)}export async function loadSpecs({versions:e}){if(Array.isArray(e))for(const n of e)n.url&&(n.spec=await loadAndBundleSpecOrMd(n.url))}function useDeepCompareMemoize(e){const n=useRef(),t=useRef(0);return isDeepEqual(e,n.current)||(n.current=e,t.current+=1),[t.current]}
2
2
  //# sourceMappingURL=StoreProvider.js.map
@@ -1,2 +1,2 @@
1
- import{__decorate,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}const flexColumn={flex:1,display:"flex",flexDirection:"column"};let Console=class extends Component{constructor(e){super(e),Object.defineProperty(this,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.formApi=e;const t=e.getState(),{values:o}=t,s=__rest(t,["values"]);setTimeout((()=>{const e=Object.assign(Object.assign({},s),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{})})});this.setState({form:e})}),0)}}),Object.defineProperty(this,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{})});this.setState((e=>({form:Object.assign(Object.assign({},e.form),{values:t})})),(()=>{updateStorage(this.state.form),this.props.operation.setRequestValues(e)}))}}),Object.defineProperty(this,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeTab:e})}}),Object.defineProperty(this,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({server:e}),this.props.operation.setActiveServer(e)}}),Object.defineProperty(this,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:async()=>{var e,t,o,s,r,n,i,a,l,c;const{store:d,operation:p,onResponse:u}=this.props;null===(e=this.formApi)||void 0===e||e.submitForm();const{invalid:h}=this.state.form||(null===(t=this.formApi)||void 0===t?void 0:t.getState());if(h)return this.setState({shaking:!0}),setTimeout((()=>this.setState({shaking:!1})),1e3),void(null===(s=null===(o=null==d?void 0:d.options.events)||void 0===o?void 0:o.tryItSent)||void 0===s||s.call(o,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description}));const{values:m}=this.state.form||(null===(r=this.formApi)||void 0===r?void 0:r.getState()),{servers:v,requestBody:g}=this.props.operation,y=g&&g.content&&g.content.active&&g.content.active.name||"";let b=m.body;if(/json/.test(y))try{b=JSON.parse(b)}catch(e){console.error(e)}this.setState({loading:!0});const f=this.state.resolvedRawSpec,j=(p.httpVerb||"").toLowerCase();if(!v)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 O=v.find((e=>this.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),P=Date.now();let S,x=m.auth;if(m.auth){const e=Object.keys(m.auth)[0],t=unescapeFormId(e);S=Object.assign(Object.assign({},f),{components:Object.assign(Object.assign({},null==f?void 0:f.components),{securitySchemes:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes),{[t]:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes[t]),{type:"openIdConnect"===(null==f?void 0:f.components.securitySchemes[t].type)?"oauth2":null==f?void 0:f.components.securitySchemes[t].type})})})});const o="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?"Cookie":t,s="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?`${null==f?void 0:f.components.securitySchemes[t].name}=${x[e]}`:x[e];x=Object.assign(Object.assign({},x),{[o]:s})}else S=Object.assign({},f);S.servers=v;const C=d.options.corsProxyUrl;C&&v.length&&(S.servers=v.map((e=>Object.assign(Object.assign({},e),{url:C+normalizeUrlProtocol(e.url)}))),S.paths=Object.assign(Object.assign({},S.paths),{[p.path]:Object.assign(Object.assign({},S.paths[p.path]),{[j]:Object.assign(Object.assign({},S.paths[p.path][j]),{servers:void 0}),servers:void 0})}));const _=(null===(i=null===(n=null==g?void 0:g.content)||void 0===n?void 0:n.active)||void 0===i?void 0:i.name)||null;if(_&&b&&isFileUploadMime(_)){const e=Object.values(b);b=e.length>1?e:e[0]}const A={server:C?C+normalizeUrlProtocol(O.url):O.url,serverVariables:this.state.server.variables,spec:S,pathName:p.path,method:p.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},m.path),m.query),m.header),m.cookie),securities:{authorized:x},requestBody:b,requestContentType:_,responseContentType:(null===(a=m.header)||void 0===a?void 0:a.Accept)||null,requestInterceptor:makeRequestInterceptor(d.options,p,x)};try{const e=await Swagger.execute(A),t=null==e?void 0:e.data;t instanceof Blob&&(isFileUploadMime(t.type)&&(e.fileInfo={rawData:t,fileName:getFileNameFromHeaders(e.headers)}),e.data=await t.text()),null==u||u({request:A,response:e}),this.setState({response:e,error:void 0})}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=await e.response.data.text(),null==u||u({request:A,response:e.response})),this.setState({response:void 0,error:e})}finally{this.setState({loading:!1,activeTab:1,time:Date.now()-P}),null===(c=null===(l=null==d?void 0:d.options.events)||void 0===l?void 0:l.tryItSent)||void 0===c||c.call(l,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description})}}}),this.state={form:{values:{path:getParameters(e.operation.parameters,"path"),cookie:getParameters(e.operation.parameters,"cookie"),header:getParameters(e.operation.parameters,"header"),query:getParameters(e.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}}}async componentDidMount(){var e;const{store:t,operation:o}=this.props,s=await t.dereferenceSpecForTryIt(o);this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({})}componentDidUpdate(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}render(){const{operation:e,className:t,rootElement:o}=this.props,{shaking:s,activeTab:r,form:n,response:i,loading:a,error:l}=this.state,c=!(!i&&!l);return _jsxs(ConsoleWrapHook,Object.assign({shaking:s,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:r,hasResponse:c,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,Object.assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,Object.assign({hidden:0!==r,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,Object.assign({hidden:1!==r,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:c,params:n.values,operation:e,loading:a,execute:this.handleExecute},void 0)]}),void 0)}renderRequest(){var e;const{operation:t,store:o,properties:s,securityDefaults:r}=this.props,{form:n,resolvedRawSpec:i,server:a}=this.state,c=n.errors||{},d=c.path||c.cookie||c.header||c.query,p=i&&JsonPointer.get(i,t.pointer);let u=n.values&&n.values.auth&&Object.keys(n.values.auth)[0];u&&n.values.auth[u]||(u=void 0),!u||void 0===n.values.auth[u].token&&void 0===n.values.auth[u].client_id&&void 0===n.values.auth[u].client_secret||n.values.auth[u].token&&n.values.auth[u].token.access_token||(u=void 0),u&&null!=n.values.auth[u].username&&(n.values.auth[u].username&&n.values.auth[u].password||(u=void 0));const h=t.parameters||[],m=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!i&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,Object.assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:Object.assign(Object.assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,Object.assign({initialActiveIdx:t.security.length&&u?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!u&&!!c.auth,success:!!u},{children:m?_jsx(AuthPanelHook,Object.assign({field:"auth",validate:requiredValidator},{children:e=>_jsx(RenderHook,{Hook:m,props:{server:a,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:n,operation:t,activeServer:a.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:r},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!c.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==p?void 0:p.requestBody,properties:s},void 0)}),void 0)||null,h.length&&_jsx(TryItPanel,Object.assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:n.values,errors:n.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}renderResponse(){const{response:e,error:t,time:o}=this.state;return _jsx(ResponsePanel,{response:e,error:t,time:o},void 0)}};Console=__decorate([observer],Console);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){const{shaking:t,className:o,children:s,rootElement:r}=e,[n]=useDimensions(r);return _jsx(ConsoleWrap,Object.assign({shaking:t,className:o,"data-cy":"console",fullWidth:null==n?void 0:n.width},{children:s}),void 0)}function AuthPanelHook(e){const{fieldApi:t,render:o,userProps:s}=useField(Object.assign({},e)),{setValue:r}=t,{children:n}=s;return o(_jsx(_Fragment,{children:n(r)},void 0))}
1
+ import{__decorate,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}const flexColumn={flex:1,display:"flex",flexDirection:"column"};let Console=class extends Component{constructor(e){super(e),Object.defineProperty(this,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.formApi=e;const t=e.getState(),{values:o}=t,s=__rest(t,["values"]);setTimeout((()=>{const e=Object.assign(Object.assign({},s),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{}),path:unescapeQueryParams(o.path||{})})});this.setState({form:e})}),0)}}),Object.defineProperty(this,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{}),path:unescapeQueryParams(e.path||{})});this.setState((e=>({form:Object.assign(Object.assign({},e.form),{values:t})})),(()=>{updateStorage(this.state.form),this.props.operation.setRequestValues(e)}))}}),Object.defineProperty(this,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeTab:e})}}),Object.defineProperty(this,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({server:e}),this.props.operation.setActiveServer(e)}}),Object.defineProperty(this,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:async()=>{var e,t,o,s,r,a,n,i,l,c;const{store:d,operation:p,onResponse:u}=this.props;null===(e=this.formApi)||void 0===e||e.submitForm();const{invalid:h}=this.state.form||(null===(t=this.formApi)||void 0===t?void 0:t.getState());if(h)return this.setState({shaking:!0}),setTimeout((()=>this.setState({shaking:!1})),1e3),void(null===(s=null===(o=null==d?void 0:d.options.events)||void 0===o?void 0:o.tryItSent)||void 0===s||s.call(o,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description}));const{values:m}=this.state.form||(null===(r=this.formApi)||void 0===r?void 0:r.getState()),{servers:v,requestBody:g}=this.props.operation,y=g&&g.content&&g.content.active&&g.content.active.name||"";let b=m.body;if(/json/.test(y))try{b=JSON.parse(b)}catch(e){console.error(e)}this.setState({loading:!0});const f=this.state.resolvedRawSpec,j=(p.httpVerb||"").toLowerCase();if(!v)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 O=v.find((e=>this.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),P=Date.now();let S,x=m.auth;if(m.auth){const e=Object.keys(m.auth)[0],t=unescapeFormId(e);S=Object.assign(Object.assign({},f),{components:Object.assign(Object.assign({},null==f?void 0:f.components),{securitySchemes:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes),{[t]:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes[t]),{type:"openIdConnect"===(null==f?void 0:f.components.securitySchemes[t].type)?"oauth2":null==f?void 0:f.components.securitySchemes[t].type})})})});const o="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?"Cookie":t,s="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?`${null==f?void 0:f.components.securitySchemes[t].name}=${x[e]}`:x[e];x=Object.assign(Object.assign({},x),{[o]:s})}else S=Object.assign({},f);S.servers=v;const C=d.options.corsProxyUrl;C&&v.length&&(S.servers=v.map((e=>Object.assign(Object.assign({},e),{url:C+normalizeUrlProtocol(e.url)}))),S.paths=Object.assign(Object.assign({},S.paths),{[p.path]:Object.assign(Object.assign({},S.paths[p.path]),{[j]:Object.assign(Object.assign({},S.paths[p.path][j]),{servers:void 0}),servers:void 0})}));const _=(null===(n=null===(a=null==g?void 0:g.content)||void 0===a?void 0:a.active)||void 0===n?void 0:n.name)||null;if(_&&b&&isFileUploadMime(_)){const e=Object.values(b);b=e.length>1?e:e[0]}const A={server:C?C+normalizeUrlProtocol(O.url):O.url,serverVariables:this.state.server.variables,spec:S,pathName:p.path,method:p.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},m.path),m.query),m.header),m.cookie),securities:{authorized:x},requestBody:b,requestContentType:_,responseContentType:(null===(i=m.header)||void 0===i?void 0:i.Accept)||null,requestInterceptor:makeRequestInterceptor(d.options,p,x)};try{const e=await Swagger.execute(A),t=null==e?void 0:e.data;t instanceof Blob&&(isFileUploadMime(t.type)&&(e.fileInfo={rawData:t,fileName:getFileNameFromHeaders(e.headers)}),e.data=await t.text()),null==u||u({request:A,response:e}),this.setState({response:e,error:void 0})}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=await e.response.data.text(),null==u||u({request:A,response:e.response})),this.setState({response:void 0,error:e})}finally{this.setState({loading:!1,activeTab:1,time:Date.now()-P}),null===(c=null===(l=null==d?void 0:d.options.events)||void 0===l?void 0:l.tryItSent)||void 0===c||c.call(l,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description})}}}),this.state={form:{values:{path:getParameters(e.operation.parameters,"path"),cookie:getParameters(e.operation.parameters,"cookie"),header:getParameters(e.operation.parameters,"header"),query:getParameters(e.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}}}async componentDidMount(){var e;const{store:t,operation:o}=this.props,s=await t.dereferenceSpecForTryIt(o);this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({})}componentDidUpdate(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}render(){const{operation:e,className:t,rootElement:o}=this.props,{shaking:s,activeTab:r,form:a,response:n,loading:i,error:l}=this.state,c=!(!n&&!l);return _jsxs(ConsoleWrapHook,Object.assign({shaking:s,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:r,hasResponse:c,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,Object.assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,Object.assign({hidden:0!==r,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,Object.assign({hidden:1!==r,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:c,params:a.values,operation:e,loading:i,execute:this.handleExecute},void 0)]}),void 0)}renderRequest(){var e;const{operation:t,store:o,properties:s,securityDefaults:r}=this.props,{form:a,resolvedRawSpec:n,server:i}=this.state,c=a.errors||{},d=c.path||c.cookie||c.header||c.query,p=n&&JsonPointer.get(n,t.pointer);let u=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];u&&a.values.auth[u]||(u=void 0),!u||void 0===a.values.auth[u].token&&void 0===a.values.auth[u].client_id&&void 0===a.values.auth[u].client_secret||a.values.auth[u].token&&a.values.auth[u].token.access_token||(u=void 0),u&&null!=a.values.auth[u].username&&(a.values.auth[u].username&&a.values.auth[u].password||(u=void 0));const h=t.parameters||[],m=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!n&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,Object.assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:Object.assign(Object.assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,Object.assign({initialActiveIdx:t.security.length&&u?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!u&&!!c.auth,success:!!u},{children:m?_jsx(AuthPanelHook,Object.assign({field:"auth",validate:requiredValidator},{children:e=>_jsx(RenderHook,{Hook:m,props:{server:i,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:a,operation:t,activeServer:i.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:r},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!c.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==p?void 0:p.requestBody,properties:s},void 0)}),void 0)||null,h.length&&_jsx(TryItPanel,Object.assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}renderResponse(){const{response:e,error:t,time:o}=this.state;return _jsx(ResponsePanel,{response:e,error:t,time:o},void 0)}};Console=__decorate([observer],Console);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){const{shaking:t,className:o,children:s,rootElement:r}=e,[a]=useDimensions(r);return _jsx(ConsoleWrap,Object.assign({shaking:t,className:o,"data-cy":"console",fullWidth:null==a?void 0:a.width},{children:s}),void 0)}function AuthPanelHook(e){const{fieldApi:t,render:o,userProps:s}=useField(Object.assign({},e)),{setValue:r}=t,{children:a}=s;return o(_jsx(_Fragment,{children:a(r)},void 0))}
2
2
  //# sourceMappingURL=Console.js.map
@@ -1,4 +1,4 @@
1
- import{jsxs as _jsxs,jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{useState}from"react";import styled from"styled-components";import{FormLabel}from"../common/form";export const ParameterArray=({name:e,param:r,place:t,renderParameter:o})=>{var s,i,n,a,l;const[d,m]=useState([]),c=(null===(s=r.schema.items)||void 0===s?void 0:s.fields)?null===(i=r.schema.items)||void 0===i?void 0:i.fields:[{schema:(null===(n=r.schema.items)||void 0===n?void 0:n.schema)||r.schema.items,name:"",required:r.required,description:null===(a=r.schema.items)||void 0===a?void 0:a.description,externalDocs:null===(l=r.schema.items)||void 0===l?void 0:l.externalDocs,deprecated:!1,toggle:()=>null,expanded:!1}];return _jsxs(_Fragment,{children:[_jsxs(Row,{children:[_jsxs(FormLabel,Object.assign({required:r.required},{children:[e,"(",d.length," items)"]}),void 0),_jsx("span",Object.assign({onClick:()=>{m([...d,d.length?d[d.length-1]+1:0])}},{children:"Add item +"}),void 0)]},void 0),null==d?void 0:d.map(((r,s)=>_jsxs(Row,{children:[_jsx(Delete,Object.assign({onClick:()=>{return e=r,void m(d.filter((r=>r!==e)));var e}},{children:"delete"}),void 0),c.map((i=>o(i,t,`${e}.[${r}]`,`[${s}]${i.name&&"."+i.name}`)))]},r)))]},void 0)};const Row=styled.div`
1
+ import{jsxs as _jsxs,jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{useCallback,useState,useMemo}from"react";import styled from"styled-components";import{FormLabel}from"../common/form";import{escapeFormId}from"../../utils";export const ParameterArray=({name:e,param:r,place:s,renderParameter:t})=>{const[o,i]=useState([]),a=useCallback((()=>{i([...o,o.length?o[o.length-1]+1:0])}),[o]),n=useCallback((e=>{i(o.filter((r=>r!==e)))}),[o]),l=useMemo((()=>{var e,s,t,o,i;return(null===(e=r.schema.items)||void 0===e?void 0:e.fields)?null===(s=r.schema.items)||void 0===s?void 0:s.fields:[{schema:(null===(t=r.schema.items)||void 0===t?void 0:t.schema)||r.schema.items,name:"",required:r.required,description:null===(o=r.schema.items)||void 0===o?void 0:o.description,externalDocs:null===(i=r.schema.items)||void 0===i?void 0:i.externalDocs,deprecated:!1,toggle:()=>null,expanded:!1}]}),[r.required,r.schema.items]);return _jsxs(_Fragment,{children:[_jsxs(Row,{children:[_jsxs(FormLabel,Object.assign({required:r.required},{children:[e,"(",o.length," items)"]}),void 0),_jsx("span",Object.assign({onClick:a},{children:"Add item +"}),void 0)]},void 0),null==o?void 0:o.map(((r,o)=>_jsxs(Row,{children:[_jsx(Delete,Object.assign({onClick:()=>n(r)},{children:"delete"}),void 0),l.map((i=>t(i,s,`${escapeFormId(e)}.[${r}]`,`[${o}]${i.name&&"."+i.name}`)))]},r)))]},void 0)};const Row=styled.div`
2
2
  display: flex;
3
3
  width: 100%;
4
4
  align-items: center;
@@ -1,2 +1,2 @@
1
- import merge from"deepmerge";import{MediaTypes}from"../../types";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";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:a}=t;return e[a]=getParameterValue(r||"",a),e}),{});const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,t=0){const r=e[t],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}export function getInitialServerWithVariables(e){const t=fromSessionStorage("serverUrl"),r=e.find((e=>e.url===t))||e[0],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}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)||{},a={};return Object.entries(e.variables||{}).forEach((([e,t])=>{a[e]=r[e]||t.default||""})),a}export function updateVariablesStorage(e,t){const r=fromSessionStorage("variables"),a=r&&JSON.parse(r)||{};toSessionStorage("variables",JSON.stringify(Object.assign(Object.assign({},a),{[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,a]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=a.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[1]}return""}export const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},a,o)=>n=>{var i,s,u,l;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===(s=null===(i=null==a?void 0:a.requestValues)||void 0===i?void 0:i.header)||void 0===s?void 0:s.authorization)||(null===(l=null===(u=null==a?void 0:a.requestValues)||void 0===u?void 0:u.header)||void 0===l?void 0:l.Authorization);return!(null==o?void 0:o.Authorization)&&c&&(n.headers.Authorization=c),(null==o?void 0:o.Cookie)&&(n.headers["X-Redocly-Cookie"]=o.Cookie),e?e(n,a):n};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,a=t?merge(r,t,{arrayMerge:arrayMergeStrategy}):r;return JSON.stringify(a,null,2)}export const getStorageExampleKey=(e,t,r,a)=>{let o=e+"_"+t;return r&&a&&Object.keys(a).includes(r)&&(o+="_"+r),o};
1
+ import merge from"deepmerge";import{MediaTypes}from"../../types";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";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:a}=t;return e[a]=getParameterValue(r||"",a),e}),{});const pathTemplateRegExp=/(?:{)(.*?)(?:})/g;export function getServerWithVariables(e,t=0){const r=e[t],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}export function getInitialServerWithVariables(e){const t=fromSessionStorage("serverUrl"),r=e.find((e=>e.url===t))||e[0],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}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)||{},a={};return Object.entries(e.variables||{}).forEach((([e,t])=>{a[e]=r[e]||t.default||""})),a}export function updateVariablesStorage(e,t){const r=fromSessionStorage("variables"),a=r&&JSON.parse(r)||{};toSessionStorage("variables",JSON.stringify(Object.assign(Object.assign({},a),{[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,a]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=a.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[1]}return""}export const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},a,o)=>n=>{var i,s,u,l;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===(s=null===(i=null==a?void 0:a.requestValues)||void 0===i?void 0:i.header)||void 0===s?void 0:s.authorization)||(null===(l=null===(u=null==a?void 0:a.requestValues)||void 0===u?void 0:u.header)||void 0===l?void 0:l.Authorization);return!(null==o?void 0:o.Authorization)&&c&&(n.headers.Authorization=c),(null==o?void 0:o.Cookie)&&(n.headers["X-Redocly-Cookie"]=o.Cookie),e?e(n,a):n};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,a=t?merge(r,t,{arrayMerge:arrayMergeStrategy}):r;return JSON.stringify(a,null,2)}export const getStorageExampleKey=(e,t,r,a)=>{let o=e+"_"+t;return r&&a&&Object.keys(a).includes(r)&&(o+="_"+r),o};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- import{__decorate}from"tslib";import{action,observable,makeObservable}from"mobx";import{flattenByProp,querySelector,GROUP_DEPTH,escapeHTMLAttrChars}from"../redoc-lib";import{SECTION_ATTR}from"../redoc-lib/src/services/constants";import{history as historyInst}from"../redoc-lib/src/services/HistoryService";import{VersionedSpecStore}from"./VersionedSpecStore";export class ProMenu{constructor(e,t,i,s){Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"scroll",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"history",{enumerable:!0,configurable:!0,writable:!0,value:s}),Object.defineProperty(this,"flatItems",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeRenderItemIdx",{enumerable:!0,configurable:!0,writable:!0,value:-1}),Object.defineProperty(this,"renderItems",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"activeItemIdx",{enumerable:!0,configurable:!0,writable:!0,value:-1}),Object.defineProperty(this,"sideBarOpened",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_unsubscribe",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_hashUnsubscribe",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getItemById",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.flatItems.find((t=>t.id===e))}),Object.defineProperty(this,"initOnHistory",{enumerable:!0,configurable:!0,writable:!0,value:(e=this.history.currentId)=>{const[t]=e.split(this.options.deepLinkPrefix);if(!t)return;const i=this.flatItems.find((e=>e.id===t));i&&(this.activate(i,!1,!1,!1,e),i.active=!1)}}),Object.defineProperty(this,"updateOnHistory",{enumerable:!0,configurable:!0,writable:!0,value:(e=this.history.currentId)=>{const[t]=e.split(this.options.deepLinkPrefix);if(!t)return;const i=this.flatItems.find((e=>e.id===t));i?this.activateAndScroll(i,!1,void 0,e):(this.scroll.prevOffsetY=0,this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(t)}"]`))}}),Object.defineProperty(this,"updateVersionOnHistory",{enumerable:!0,configurable:!0,writable:!0,value:e=>{if(!("versionsInfo"in this.definition))return;const[t]=e.split("/");let i=this.definition.versionsInfo.findIndex((e=>e.id===t));i<0&&(i=this.definition.versionsInfo.findIndex((e=>e.isDefault))),this.definition.activeVersionIdx!==i&&(this.definition.changeVersion(i<0?0:i),this.updateItemsByVersionChange(!1,e))}}),Object.defineProperty(this,"updateOnScroll",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=e?1:-1;let i=this.activeItemIdx;for(;(-1!==i||e)&&!(i>=this.flatItems.length-1&&e);){if(e){let e=!1;const t=this.flatItems[i+1];switch(this.options.pagination){case"section":e=t&&("spec"===t.type||"group"===t.type||"tag"===t.type);break;case"item":e="section"!==(null==t?void 0:t.type)}const s=this.getElementAt(i+1);if(-1===i&&"tag"===this.flatItems[0].type&&(e=!1),this.scroll.isElementBellow(s)||e)break}else{const e=this.flatItems[i]&&this.flatItems[i].type,t="section"===this.options.pagination&&("spec"===e||"group"===e||"tag"===e)||"item"===this.options.pagination&&"section"!==e,s=this.getElementAt(i);if(!s||this.scroll.isElementAbove(s)||t)break}i+=t}const s=this.flatItems[i];"none"===this.options.pagination||"section"===this.options.pagination?s&&s.active||this.activate(s,!0,!0,!1):s&&"section"===s.type&&(s.active||this.activate(s,!0,!0,!1))}}),makeObservable(this),this.items=e.contentItems,this.flatItems=flattenByProp(this.items||[],"items"),this.flatItems.forEach(((e,t)=>e.absoluteIdx=t)),i.disableSidebar||this.subscribe(),this.flatItems.forEach(((e,t)=>normalizeItem(e,t,i.pagination,this.definition instanceof VersionedSpecStore,this.history))),this.renderItems=this.buildRenderItems(0),this.activeItemIdx=-1,this.activeRenderItemIdx=-1,this.definition instanceof VersionedSpecStore&&this.history.subscribe(this.updateVersionOnHistory)}static updateOnHistory(e=historyInst.currentId,t){e&&t.scrollIntoViewBySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(e)}"]`)}subscribe(){this._unsubscribe=this.scroll.subscribe(this.updateOnScroll),this._hashUnsubscribe=this.history.subscribe(this.updateOnHistory)}toggleSidebar(){this.sideBarOpened=!this.sideBarOpened}closeSidebar(){this.sideBarOpened=!1}getElementAt(e){const t=this.flatItems[e];return t&&querySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(t.id)}"]`)||null}getElementAtOrFirstChild(e){let t=this.flatItems[e];return t&&"group"===t.type&&(t=t.items[0]),t&&querySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(t.id)}"]`)||null}get activeItem(){return this.flatItems[this.activeItemIdx]||void 0}updateItemsByVersionChange(e,t){if(!("versionsInfo"in this.definition))return;const i=this.activeItem&&this.activeItem.active?this.activeItem.absoluteIdx:-1;t=t&&withoutVersion(t)||this.activeItem&&this.activeItem.active&&withoutVersion(this.activeItem.id)||"",this.deactivate(this.activeItem),this.items=this.definition.contentItems,this.flatItems=flattenByProp(this.items||[],"items"),this.flatItems.forEach(((e,t)=>normalizeItem(e,t,this.options.pagination,this.definition instanceof VersionedSpecStore,this.history)));const s=t?(this.flatItems.find((e=>withoutVersion(e.id)===t))||{absoluteIdx:-1}).absoluteIdx:-1;if(-1!==s&&"none"!==this.options.pagination||(this.renderItems=this.buildRenderItems(0)),this.activeItemIdx=-1,-1!==s)this.activate(this.flatItems[s],e);else if(-1!==i)this.activateAndScroll(this.flatItems[0],e);else if(e){const e=this.definition.versionsInfo[this.definition.activeVersionIdx];if(!this.history.currentId&&e.isDefault)return;this.history.replace(e.id)}}buildRenderItems(e){if("none"===this.options.pagination)return this.items;let t=this.flatItems[e];if(t||(t=this.flatItems[0]),"spec"===t.type)return this.buildRenderItems(e+1);if("section"===t.type){const e=[],i=getParentOfType(t,"tag");if("section"===this.options.pagination&&i)return[i];if("item"===this.options.pagination&&i)return[Object.assign(Object.assign({},i),{items:getLeadingSectionItems(i)})];const s=getParentSpecItem(t),n=(null==s?void 0:s.items)||this.items;for(let t=0;t<n.length&&"section"===n[t].type;t++)e.push(n[t]);return e}switch(this.options.pagination){case"section":if(("operation"===t.type||"schema"===t.type)&&t.parent)return[t.parent];if("group"!==t.type)return[t];case"item":return"operation"===t.type||"schema"===t.type?[t]:[Object.assign(Object.assign({},t),{items:getLeadingSectionItems(t)})];default:return[]}}activateBase(e,t=!0,i=!1,s){var n,o,r,a,l;if((null===(n=this.activeItem)||void 0===n?void 0:n.id)===(null==e?void 0:e.id)&&!s)return t&&e&&this.history.replace(encodeURI(e.id),i),void(e&&!e.active&&e.activate());if(e&&"group"===e.type)return;if(this.deactivate(this.activeItem),!e)return void this.history.replace("",i);if(e.depth<=GROUP_DEPTH)return;this.activeItemIdx=e.absoluteIdx,t&&this.history.replace(encodeURI(e.id),i),e.activate(),e.expand();const c=new URLSearchParams(s),d="request"===c.get("t"),h="response"===c.get("t"),u=c.get("c"),p=c.get("ct"),f=c.get("in"),m=c.get("path"),v=(null==m?void 0:m.split(this.options.deepLinkSeparator))||[],b=e;if(f){let e=b.parameters;for(const t of v){const i=null==e?void 0:e.find((e=>e.name===t));null==i||i.expand(),e=null===(o=null==i?void 0:i.schema)||void 0===o?void 0:o.fields}}else if(d){const e=null===(r=b.requestBody)||void 0===r?void 0:r.content;null===(a=b.activateMimeName)||void 0===a||a.call(b,p||b.activeMimeName),setTimeout((()=>{var t;return this.activateField(v,null===(t=null==e?void 0:e.active)||void 0===t?void 0:t.schema)}),0)}else if(h){const e=b.responses.find((e=>e.code===u));(null==e?void 0:e.expanded)||null==e||e.expand(),null===(l=b.activateMimeName)||void 0===l||l.call(b,p||b.activeMimeName),setTimeout((()=>{var t,i;return this.activateField(v,null===(i=null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.active)||void 0===i?void 0:i.schema)}),0)}}activate(e,t=!0,i=!1,s=!0,n){if("none"===this.options.pagination)return this.activateBase(e,t,i,n),void(!e&&this.definition instanceof VersionedSpecStore&&this.history.replace(this.definition.currentVersionId,!0));if("group"!==(null==e?void 0:e.type)){if(e&&"item"===this.options.pagination&&"tag"===e.type&&!e.description){if(e.expanded)return void e.collapse();e.expand(),e=this.flatItems[e.absoluteIdx+1]}if(this.activateBase(e,e&&t,i,n),this.activeRenderItemIdx=e?e.absoluteIdx:this.activeRenderItemIdx,this.activeRenderItemIdx>=0){const e=this.buildRenderItems(this.activeRenderItemIdx);e.some(((e,t)=>e.id!==this.renderItems[t].id))&&(this.renderItems=e),this.renderItems[0]&&(this.activeRenderItemIdx=this.renderItems[0].absoluteIdx)}s&&setTimeout((()=>this.scrollToActive())),!e&&this.definition instanceof VersionedSpecStore&&this.history.replace(this.definition.currentVersionId,!0)}}activateField(e,t){var i;for(let s=0;s<e.length-1;s++){const n=e[s],o=s===e.length-1;if((null==t?void 0:t.hasType("array"))&&(null==t?void 0:t.items)&&(t=null==t?void 0:t.items),null==t?void 0:t.oneOf){const e=Number(n);if(isNaN(e))return;null==t||t.activateOneOf(e),t=null==t?void 0:t.oneOf[e];continue}(null==t?void 0:t.hasType("array"))&&(null==t?void 0:t.items)&&(t=null==t?void 0:t.items);const r=null===(i=null==t?void 0:t.fields)||void 0===i?void 0:i.find((e=>e.name===n));o||null==r||r.expand(),t=null==r?void 0:r.schema}}deactivate(e){if(void 0!==e)for(e.deactivate();void 0!==e;)e.collapse(),e=e.parent}activateAndScroll(e,t,i,s=""){const[,n]=s.split(this.options.deepLinkPrefix),o=e&&this.getItemById(e.id)||e;this.activate(o,t,i,!1,n),this.scrollToActive(n?s:""),o&&o.items.length||this.closeSidebar()}scrollToActive(e){e?setTimeout((()=>this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(e)}"]`)),0):this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx))}dispose(){var e,t;null===(e=this._unsubscribe)||void 0===e||e.call(this),null===(t=this._hashUnsubscribe)||void 0===t||t.call(this)}}function withoutVersion(e){return e.split("/").slice(1).join("/")}function getParentSpecItem(e){for(;e;){if("spec"===e.type)return e;e=e.parent}}function getParentOfType(e,t){if(e&&e.parent)return e.parent.type===t?e.parent:getParentOfType(e.parent,t)}function getLeadingSectionItems(e){const t=[];for(const i of e.items){if("section"!==i.type)break;t.push(i)}return t}function normalizeItem(e,t,i,s,n){if(e.absoluteIdx=t,"none"!==i){const t=getParentOfType(e,"tag");if(e.parent&&t&&!("_id_normalized"in e)){if(s){const[i,s]=e.id.split("/"),n=withoutVersion(e.id);if("operation"===e.type&&!s.startsWith("operation"))return;e.id=i+"/"+withoutVersion(t.id)+"/"+n}else{if("operation"===e.type&&!e.id.startsWith("operation"))return;e.id=t.id+"/"+e.id}e._id_normalized=!0}}"group"!==e.type&&(e.href=n.linkForId(e.id))}__decorate([observable],ProMenu.prototype,"flatItems",void 0),__decorate([observable],ProMenu.prototype,"items",void 0),__decorate([observable],ProMenu.prototype,"activeRenderItemIdx",void 0),__decorate([observable.ref],ProMenu.prototype,"renderItems",void 0),__decorate([observable],ProMenu.prototype,"activeItemIdx",void 0),__decorate([observable],ProMenu.prototype,"sideBarOpened",void 0),__decorate([action],ProMenu.prototype,"toggleSidebar",null),__decorate([action],ProMenu.prototype,"closeSidebar",null),__decorate([action],ProMenu.prototype,"activateBase",null),__decorate([action],ProMenu.prototype,"activate",null),__decorate([action.bound],ProMenu.prototype,"activateAndScroll",null);
1
+ import{__decorate}from"tslib";import{action,observable,makeObservable}from"mobx";import{flattenByProp,querySelector,GROUP_DEPTH,escapeHTMLAttrChars}from"../redoc-lib";import{SECTION_ATTR}from"../redoc-lib/src/services/constants";import{history as historyInst}from"../redoc-lib/src/services/HistoryService";import{VersionedSpecStore}from"./VersionedSpecStore";export class ProMenu{constructor(e,t,i,s){Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"scroll",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"history",{enumerable:!0,configurable:!0,writable:!0,value:s}),Object.defineProperty(this,"flatItems",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeRenderItemIdx",{enumerable:!0,configurable:!0,writable:!0,value:-1}),Object.defineProperty(this,"renderItems",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"activeItemIdx",{enumerable:!0,configurable:!0,writable:!0,value:-1}),Object.defineProperty(this,"sideBarOpened",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_unsubscribe",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_hashUnsubscribe",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getItemById",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.flatItems.find((t=>t.id===e))}),Object.defineProperty(this,"initOnHistory",{enumerable:!0,configurable:!0,writable:!0,value:(e=this.history.currentId)=>{const[t]=e.split(this.options.deepLinkPrefix);if(!t)return;const i=this.flatItems.find((e=>e.id===t));i&&(this.activate(i,!1,!1,!1,e),i.active=!1)}}),Object.defineProperty(this,"updateOnHistory",{enumerable:!0,configurable:!0,writable:!0,value:(e=this.history.currentId)=>{const[t]=e.split(this.options.deepLinkPrefix);if(!t)return;const i=this.flatItems.find((e=>e.id===t));i?this.activateAndScroll(i,!1,void 0,e):(this.scroll.prevOffsetY=0,this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(t)}"]`))}}),Object.defineProperty(this,"updateVersionOnHistory",{enumerable:!0,configurable:!0,writable:!0,value:e=>{if(!("versionsInfo"in this.definition))return;const[t]=e.split("/");let i=this.definition.versionsInfo.findIndex((e=>e.id===t));i<0&&(i=this.definition.versionsInfo.findIndex((e=>e.isDefault))),this.definition.activeVersionIdx!==i&&(this.definition.changeVersion(i<0?0:i),this.updateItemsByVersionChange(!1,e))}}),Object.defineProperty(this,"updateOnScroll",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=e?1:-1;let i=this.activeItemIdx;for(;(-1!==i||e)&&!(i>=this.flatItems.length-1&&e);){if(e){let e=!1;const t=this.flatItems[i+1];switch(this.options.pagination){case"section":e=t&&("spec"===t.type||"group"===t.type||"tag"===t.type);break;case"item":e="section"!==(null==t?void 0:t.type)}const s=this.getElementAt(i+1);if(-1===i&&"tag"===this.flatItems[0].type&&(e=!1),this.scroll.isElementBellow(s)||e)break}else{const e=this.flatItems[i]&&this.flatItems[i].type,t="section"===this.options.pagination&&("spec"===e||"group"===e||"tag"===e)||"item"===this.options.pagination&&"section"!==e,s=this.getElementAt(i);if(!s||this.scroll.isElementAbove(s)||t)break}i+=t}const s=this.flatItems[i];"none"===this.options.pagination||"section"===this.options.pagination?s&&s.active||this.activate(s,!0,!0,!1):s&&"section"===s.type&&(s.active||this.activate(s,!0,!0,!1))}}),makeObservable(this),this.items=e.contentItems,this.flatItems=flattenByProp(this.items||[],"items"),this.flatItems.forEach(((e,t)=>e.absoluteIdx=t)),i.disableSidebar||this.subscribe(),this.flatItems.forEach(((e,t)=>normalizeItem(e,t,i.pagination,this.definition instanceof VersionedSpecStore,this.history))),this.renderItems=this.buildRenderItems(0),this.activeItemIdx=-1,this.activeRenderItemIdx=-1,this.definition instanceof VersionedSpecStore&&this.history.subscribe(this.updateVersionOnHistory)}static updateOnHistory(e=historyInst.currentId,t){e&&t.scrollIntoViewBySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(e)}"]`)}subscribe(){this._unsubscribe=this.scroll.subscribe(this.updateOnScroll),this._hashUnsubscribe=this.history.subscribe(this.updateOnHistory)}toggleSidebar(){this.sideBarOpened=!this.sideBarOpened}closeSidebar(){this.sideBarOpened=!1}getElementAt(e){const t=this.flatItems[e];return t&&querySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(t.id)}"]`)||null}getElementAtOrFirstChild(e){let t=this.flatItems[e];return t&&"group"===t.type&&(t=t.items[0]),t&&querySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(t.id)}"]`)||null}get activeItem(){return this.flatItems[this.activeItemIdx]||void 0}updateItemsByVersionChange(e,t){if(!("versionsInfo"in this.definition))return;const i=this.activeItem&&this.activeItem.active?this.activeItem.absoluteIdx:-1;t=t&&withoutVersion(t)||this.activeItem&&this.activeItem.active&&withoutVersion(this.activeItem.id)||"",this.deactivate(this.activeItem),this.items=this.definition.contentItems,this.flatItems=flattenByProp(this.items||[],"items"),this.flatItems.forEach(((e,t)=>normalizeItem(e,t,this.options.pagination,this.definition instanceof VersionedSpecStore,this.history)));const s=t?(this.flatItems.find((e=>withoutVersion(e.id)===t))||{absoluteIdx:-1}).absoluteIdx:-1;if(-1!==s&&"none"!==this.options.pagination||(this.renderItems=this.buildRenderItems(0)),this.activeItemIdx=-1,-1!==s)this.activate(this.flatItems[s],e);else if(-1!==i)this.activateAndScroll(this.flatItems[0],e);else if(e){const e=this.definition.versionsInfo[this.definition.activeVersionIdx];if(!this.history.currentId&&e.isDefault)return;this.history.replace(e.id)}}buildRenderItems(e){if("none"===this.options.pagination)return this.items;let t=this.flatItems[e];if(t||(t=this.flatItems[0]),"spec"===t.type)return this.buildRenderItems(e+1);if("section"===t.type){const e=[],i=getParentOfType(t,"tag");if("section"===this.options.pagination&&i)return[i];if("item"===this.options.pagination&&i)return[Object.assign(Object.assign({},i),{items:getLeadingSectionItems(i)})];const s=getParentSpecItem(t),n=(null==s?void 0:s.items)||this.items;for(let t=0;t<n.length&&"section"===n[t].type;t++)e.push(n[t]);return e}switch(this.options.pagination){case"section":if(("operation"===t.type||"schema"===t.type)&&t.parent)return[t.parent];if("group"!==t.type)return[t];case"item":return"operation"===t.type||"schema"===t.type?[t]:[Object.assign(Object.assign({},t),{items:getLeadingSectionItems(t)})];default:return[]}}activateBase(e,t=!0,i=!1,s){var n,o,r,a,l;if((null===(n=this.activeItem)||void 0===n?void 0:n.id)===(null==e?void 0:e.id)&&!s)return t&&e&&this.history.replace(encodeURI(e.id),i),void(e&&!e.active&&e.activate());if(e&&"group"===e.type)return;if(this.deactivate(this.activeItem),!e)return void this.history.replace("",i);if(e.depth<=GROUP_DEPTH)return;this.activeItemIdx=e.absoluteIdx,t&&this.history.replace(encodeURI(e.id),i),e.activate(),e.expand();const c=new URLSearchParams(s),d="request"===c.get("t"),h="response"===c.get("t"),u=c.get("c"),p=c.get("ct"),f=c.get("in"),m=c.get("path"),v=(null==m?void 0:m.split(this.options.deepLinkSeparator))||[],b=e;if(f){let e=b.parameters;for(const t of v){const i=null==e?void 0:e.find((e=>e.name===t));null==i||i.expand(),e=null===(o=null==i?void 0:i.schema)||void 0===o?void 0:o.fields}}else if(d){const e=null===(r=b.requestBody)||void 0===r?void 0:r.content;null===(a=b.activateMimeName)||void 0===a||a.call(b,p||b.activeMimeName),setTimeout((()=>{var t;return this.activateField(v,null===(t=null==e?void 0:e.active)||void 0===t?void 0:t.schema)}),0)}else if(h){const e=b.responses.find((e=>e.code===u));(null==e?void 0:e.expanded)||null==e||e.expand(),null===(l=b.activateMimeName)||void 0===l||l.call(b,p||b.activeMimeName),setTimeout((()=>{var t,i;return this.activateField(v,null===(i=null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.active)||void 0===i?void 0:i.schema)}),0)}}activate(e,t=!0,i=!1,s=!0,n){if("none"===this.options.pagination)return this.activateBase(e,t,i,n),void(!e&&this.definition instanceof VersionedSpecStore&&this.history.replace(this.definition.currentVersionId,!0));if("group"!==(null==e?void 0:e.type)){if(e&&"item"===this.options.pagination&&"tag"===e.type&&!e.description){if(e.expanded)return void e.collapse();e.expand(),e=this.flatItems[e.absoluteIdx+1]}if(this.activateBase(e,e&&t,i,n),this.activeRenderItemIdx=e?e.absoluteIdx:this.activeRenderItemIdx,this.activeRenderItemIdx>=0){const e=this.buildRenderItems(this.activeRenderItemIdx);e.some(((e,t)=>e.id!==this.renderItems[t].id))&&(this.renderItems=e),this.renderItems[0]&&(this.activeRenderItemIdx=this.renderItems[0].absoluteIdx)}s&&setTimeout((()=>this.scrollToActive())),!e&&this.definition instanceof VersionedSpecStore&&this.history.replace(this.definition.currentVersionId,!0)}}activateField(e,t){var i;for(let s=0;s<e.length-1;s++){const n=e[s],o=s===e.length-1;if((null==t?void 0:t.hasType("array"))&&(null==t?void 0:t.items)&&(t=null==t?void 0:t.items),null==t?void 0:t.oneOf){const e=Number(n);if(isNaN(e))return;null==t||t.activateOneOf(e),t=null==t?void 0:t.oneOf[e];continue}(null==t?void 0:t.hasType("array"))&&(null==t?void 0:t.items)&&(t=null==t?void 0:t.items);const r=null===(i=null==t?void 0:t.fields)||void 0===i?void 0:i.find((e=>e.name===n));o||null==r||r.expand(),t=null==r?void 0:r.schema}}deactivate(e){if(void 0!==e)for(e.deactivate();void 0!==e;)e.collapse(),e=e.parent}activateAndScroll(e,t,i,s=""){const n=s.lastIndexOf(this.options.deepLinkPrefix),o=-1!==n?s.substring(n+1):s,r=e&&this.getItemById(e.id)||e;this.activate(r,t,i,!1,o),this.scrollToActive(o?s:""),r&&r.items.length||this.closeSidebar()}scrollToActive(e){e?setTimeout((()=>this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}="${escapeHTMLAttrChars(e)}"]`)),0):this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx))}dispose(){var e,t;null===(e=this._unsubscribe)||void 0===e||e.call(this),null===(t=this._hashUnsubscribe)||void 0===t||t.call(this)}}function withoutVersion(e){return e.split("/").slice(1).join("/")}function getParentSpecItem(e){for(;e;){if("spec"===e.type)return e;e=e.parent}}function getParentOfType(e,t){if(e&&e.parent)return e.parent.type===t?e.parent:getParentOfType(e.parent,t)}function getLeadingSectionItems(e){const t=[];for(const i of e.items){if("section"!==i.type)break;t.push(i)}return t}function normalizeItem(e,t,i,s,n){if(e.absoluteIdx=t,"none"!==i){const t=getParentOfType(e,"tag");if(e.parent&&t&&!("_id_normalized"in e)){if(s){const[i,s]=e.id.split("/"),n=withoutVersion(e.id);if("operation"===e.type&&!s.startsWith("operation"))return;e.id=i+"/"+withoutVersion(t.id)+"/"+n}else{if("operation"===e.type&&!e.id.startsWith("operation"))return;e.id=t.id+"/"+e.id}e._id_normalized=!0}}"group"!==e.type&&(e.href=n.linkForId(e.id))}__decorate([observable],ProMenu.prototype,"flatItems",void 0),__decorate([observable],ProMenu.prototype,"items",void 0),__decorate([observable],ProMenu.prototype,"activeRenderItemIdx",void 0),__decorate([observable.ref],ProMenu.prototype,"renderItems",void 0),__decorate([observable],ProMenu.prototype,"activeItemIdx",void 0),__decorate([observable],ProMenu.prototype,"sideBarOpened",void 0),__decorate([action],ProMenu.prototype,"toggleSidebar",null),__decorate([action],ProMenu.prototype,"closeSidebar",null),__decorate([action],ProMenu.prototype,"activateBase",null),__decorate([action],ProMenu.prototype,"activate",null),__decorate([action.bound],ProMenu.prototype,"activateAndScroll",null);
2
2
  //# sourceMappingURL=ProMenu.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/reference-docs",
3
- "version": "2.43.5",
3
+ "version": "2.43.7",
4
4
  "description": "Redocly Reference Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",