@redocly/openapi-docs 3.5.15 → 3.5.17

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.
@@ -1,7 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,i){function a(e){try{u(o.next(e))}catch(e){i(e)}}function s(e){try{u(o.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((o=o.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Replay=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),ReplayOverlay=(0,react_1.lazy)((()=>__awaiter(void 0,void 0,void 0,(function*(){return Promise.resolve().then((()=>__importStar(require("@redocly/replay")))).then((e=>({default:e.ReplayOverlay})))})))),store_1=require("../../jotai/store"),replay_1=require("../../jotai/replay"),operation_1=require("../../jotai/operation"),constants_1=require("../../constants"),app_1=require("../../jotai/app"),utils_1=require("./utils"),hooks_1=require("../../hooks");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,n;const i=(0,hooks_1.useTranslate)(),a=(0,react_1.useRef)(null),{routingBasePath:s,mockServer:u,oAuth2RedirectURI:l}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{parser:_}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),[c,p]=(0,react_1.useState)(!1),[m,d]=(0,jotai_1.useAtom)(replay_1.replayStateAtom),[v,f]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(e.pointer)),[h,j]=(0,jotai_1.useAtom)(app_1.activeMimeNameAtom),[[,y],A]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(a),(0,theme_1.useModalScrollLock)(c);const x=(0,react_1.useCallback)((({requestValues:e,activeExampleName:t,activeMimeName:r,environment:o,environments:n,activeSecuritySchemeIds:i})=>{f((r=>Object.assign(Object.assign({},r),{requestValues:e,activeExampleName:t,activeSecuritySchemeIds:i}))),j(r||h),A({environment:o,environments:n})}),[f,j,h,A]),O=()=>{m!==constants_1.LOADING_STATE.LOADING&&p(!c),m===constants_1.LOADING_STATE.NOT_LOADED&&d(constants_1.LOADING_STATE.LOADING)};return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:O,variant:"primary",iconPosition:"left",icon:m===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:m===constants_1.LOADING_STATE.LOADING?i("openapi.loading","Loading..."):i("openapi.tryIt","Try it")}),c&&(0,jsx_runtime_1.jsx)(react_1.Suspense,{children:(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)("div",{ref:a,children:(0,jsx_runtime_1.jsx)(ReplayOverlay,{value:(0,utils_1.convertOperationToReplayValue)(e,r,v),onRequestChange:x,onClose:O,corsProxyUrl:t,operationUrl:s+e.href,onLoad:()=>d(constants_1.LOADING_STATE.LOADED),mockServer:u,environment:y,apiId:null===(n=null===(o=null==_?void 0:_.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:l,definitionUrl:null==_?void 0:_.definitionUrl,disableCollectionsTab:!0})})})})]})}exports.Replay=(0,react_1.memo)(ReplayComponent);const Wrapper=styled_components_1.default.div`
2
- display: flex;
3
- justify-content: flex-end;
4
- border-top: var(--panel-border);
5
- padding: var(--spacing-base) var(--spacing-md) var(--spacing-md);
6
- `;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,i){function a(e){try{u(o.next(e))}catch(e){i(e)}}function s(e){try{u(o.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((o=o.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Replay=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),ReplayOverlay=(0,react_1.lazy)((()=>__awaiter(void 0,void 0,void 0,(function*(){return Promise.resolve().then((()=>__importStar(require("@redocly/replay")))).then((e=>({default:e.ReplayOverlay})))})))),store_1=require("../../jotai/store"),replay_1=require("../../jotai/replay"),operation_1=require("../../jotai/operation"),constants_1=require("../../constants"),app_1=require("../../jotai/app"),utils_1=require("./utils"),hooks_1=require("../../hooks");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,n;const i=(0,hooks_1.useTranslate)(),a=(0,react_1.useRef)(null),{routingBasePath:s,mockServer:u,oAuth2RedirectURI:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{parser:l}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),[c,m]=(0,react_1.useState)(!1),[p,d]=(0,jotai_1.useAtom)(replay_1.replayStateAtom),[v,j]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(e.pointer)),[h,f]=(0,jotai_1.useAtom)(app_1.activeMimeNameAtom),[[,y],A]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(a),(0,theme_1.useModalScrollLock)(c);const O=(0,react_1.useCallback)((({requestValues:e,activeExampleName:t,activeMimeName:r,environment:o,environments:n,activeSecuritySchemeIds:i})=>{j((r=>Object.assign(Object.assign({},r),{requestValues:e,activeExampleName:t,activeSecuritySchemeIds:i}))),f(r||h),A({environment:o,environments:n})}),[j,f,h,A]),x=()=>{p!==constants_1.LOADING_STATE.LOADING&&m(!c),p===constants_1.LOADING_STATE.NOT_LOADED&&d(constants_1.LOADING_STATE.LOADING)};return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:x,variant:"primary",iconPosition:"left",icon:p===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:p===constants_1.LOADING_STATE.LOADING?i("openapi.loading","Loading..."):i("openapi.tryIt","Try it")}),c&&(0,jsx_runtime_1.jsx)(react_1.Suspense,{children:(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)("div",{ref:a,children:(0,jsx_runtime_1.jsx)(ReplayOverlay,{value:(0,utils_1.convertOperationToReplayValue)(e,r,v),onRequestChange:O,onClose:x,corsProxyUrl:t,operationUrl:s+e.href,onLoad:()=>d(constants_1.LOADING_STATE.LOADED),mockServer:u,environment:y,apiId:null===(n=null===(o=null==l?void 0:l.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:_,definitionUrl:null==l?void 0:l.definitionUrl,disableCollectionsTab:!0})})})})]})}exports.Replay=(0,react_1.memo)(ReplayComponent);
7
2
  //# sourceMappingURL=Replay.js.map
@@ -1,7 +1,13 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,o){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(t=Object.getOwnPropertySymbols(e);a<t.length;a++)o.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(e,t[a])&&(r[t[a]]=e[t[a]])}return r},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),PayloadSamples_1=require("../PayloadSamples"),CodeSample_1=require("./CodeSample"),useCodeSamples_1=require("./useCodeSamples"),models_1=require("../../models"),events_1=require("../../events"),store_1=require("../../jotai/store"),ServerListDropdown_1=require("../ServerListDropdown"),Language_1=require("../Language"),app_1=require("../../jotai/app"),Replay_1=require("../Replay"),common_1=require("../common"),hooks_1=require("../../hooks");function RequestSamplesComponent(e){var{operation:o,disableFooter:r}=e,t=__rest(e,["operation","disableFooter"]);const[{activeLanguage:a},s]=(0,jotai_1.useAtom)(app_1.languageAtom),{samples:n}=(0,useCodeSamples_1.useCodeSamples)(o),{parser:l,options:{events:i,corsProxyUrl:p,hideReplay:u}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),_=(0,hooks_1.useActiveWithFallback)(n,a),m=(0,react_1.useCallback)((({lang:e,title:r})=>()=>{var t;const a=(0,events_1.createCodeSampleCopyEvent)({operation:o,label:r,lang:e,type:"request"});null===(t=null==i?void 0:i.codeSamplesCopy)||void 0===t||t.call(i,a)}),[o,i]),d=(0,react_1.useMemo)((()=>{if(!(r||o.isWebhook||u||o.hideReplay))return(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:o,corsProxyUrl:p,fullOpenApi:l.definition})}),[p,r,u,o,l.definition]),c=(0,react_1.useMemo)((()=>n.map((e=>e.key===_?(0,jsx_runtime_1.jsx)("div",{children:(0,models_1.isPayloadSample)(e)?(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:m(e)},t)):(0,jsx_runtime_1.jsx)(CodeSample_1.CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:o,onCopyClick:m(e)},t))},e.key+o.id):null))),[_,m,o,t,n]);return n.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:()=>(0,jsx_runtime_1.jsxs)(StyledPanelHeader,{isExpandable:!1,children:[(0,jsx_runtime_1.jsx)(StyledServerListDropdown,{operation:o}),(0,jsx_runtime_1.jsx)(Language_1.LanguageDropdown,{activeTab:_,samples:n,onChange:s})]}),footer:d,isExpandable:!1,children:c}):null}exports.RequestSamples=(0,react_1.memo)(RequestSamplesComponent);const StyledPanelHeader=(0,styled_components_1.default)(theme_1.PanelHeader)`
1
+ "use strict";var __rest=this&&this.__rest||function(e,r){var a={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&r.indexOf(o)<0&&(a[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(o=Object.getOwnPropertySymbols(e);t<o.length;t++)r.indexOf(o[t])<0&&Object.prototype.propertyIsEnumerable.call(e,o[t])&&(a[o[t]]=e[o[t]])}return a},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),PayloadSamples_1=require("../PayloadSamples"),CodeSample_1=require("./CodeSample"),useCodeSamples_1=require("./useCodeSamples"),models_1=require("../../models"),events_1=require("../../events"),store_1=require("../../jotai/store"),ServerListDropdown_1=require("../ServerListDropdown"),Language_1=require("../Language"),app_1=require("../../jotai/app"),Replay_1=require("../Replay"),common_1=require("../common"),hooks_1=require("../../hooks");function RequestSamplesComponent(e){var{operation:r,disableFooter:a}=e,o=__rest(e,["operation","disableFooter"]);const[{activeLanguage:t,languages:s},n]=(0,jotai_1.useAtom)(app_1.languageAtom),{samples:l}=(0,useCodeSamples_1.useCodeSamples)(r),{parser:i,options:{events:p,corsProxyUrl:d,hideReplay:u}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),_=!(a||r.isWebhook||u||r.hideReplay),m=!!(null==s?void 0:s.length),c=(0,hooks_1.useActiveWithFallback)(l,t),y=(0,react_1.useCallback)((({lang:e,title:a})=>()=>{var o;const t=(0,events_1.createCodeSampleCopyEvent)({operation:r,label:a,lang:e,type:"request"});null===(o=null==p?void 0:p.codeSamplesCopy)||void 0===o||o.call(p,t)}),[r,p]),x=()=>(0,jsx_runtime_1.jsxs)(StyledPanelHeader,{isExpandable:!1,withReplay:!m&&_,children:[(0,jsx_runtime_1.jsx)(StyledServerListDropdown,{operation:r}),m&&(0,jsx_runtime_1.jsx)(Language_1.LanguageDropdown,{activeTab:c,samples:l,onChange:n}),!m&&_&&(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:r,corsProxyUrl:d,fullOpenApi:i.definition})]}),g=(0,react_1.useMemo)((()=>{if(_&&m)return(0,jsx_runtime_1.jsx)(ReplayWrapper,{children:(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:r,corsProxyUrl:d,fullOpenApi:i.definition})})}),[_,m,r,d,i.definition]),j=(0,react_1.useMemo)((()=>l.map((e=>e.key===c?(0,jsx_runtime_1.jsx)("div",{children:(0,models_1.isPayloadSample)(e)?(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:y(e)},o)):(0,jsx_runtime_1.jsx)(CodeSample_1.CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:r,onCopyClick:y(e)},o))},e.key+r.id):null))),[c,y,r,o,l]);return s&&!l.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:x,isExpandable:!1,expanded:!1}):l.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:x,footer:g,isExpandable:!1,children:j}):null}exports.RequestSamples=(0,react_1.memo)(RequestSamplesComponent);const StyledPanelHeader=(0,styled_components_1.default)(theme_1.PanelHeader)`
2
2
  flex-wrap: nowrap;
3
+ ${({withReplay:e})=>e&&"padding: var(--spacing-xs) var(--spacing-sm);"}
3
4
  `,StyledServerListDropdown=(0,styled_components_1.default)(ServerListDropdown_1.ServerListDropdown)`
4
5
  padding-right: var(--spacing-base);
5
6
  min-width: 0;
7
+ `,ReplayWrapper=styled_components_1.default.div`
8
+ display: flex;
9
+ justify-content: flex-end;
10
+ border-top: var(--panel-border);
11
+ padding: var(--spacing-base) var(--spacing-md) var(--spacing-md);
6
12
  `;
7
13
  //# sourceMappingURL=RequestSamples.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResponseSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),PayloadSamples_1=require("../PayloadSamples"),events_1=require("../../events"),store_1=require("../../jotai/store"),Summary_1=require("./Summary"),Tabs_1=require("../Tabs"),common_1=require("../common");function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:s}){const{events:a}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),n=e.responses.filter((e=>{var o,s;return null!==(s=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==s&&s})),r=n.map((({code:e})=>({key:e,title:e}))),t=(null==r?void 0:r.find((({key:e})=>e===o)))||(null==r?void 0:r[0]),l=(0,react_1.useCallback)((()=>{var o;const s=(0,events_1.createCodeSampleCopyEvent)({operation:e,type:"response"});null===(o=null==a?void 0:a.codeSamplesCopy)||void 0===o||o.call(a,s)}),[e,a]);if(!n.length)return null;return(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-response-samples",header:()=>(0,jsx_runtime_1.jsx)(Summary_1.Summary,{tabs:(0,jsx_runtime_1.jsx)(Tabs_1.Tabs,{tabs:r,activeTab:t,onChange:e=>s(e.key)})}),isExpandable:!1,children:n.map((e=>e.code===t.key?(0,jsx_runtime_1.jsx)("div",{children:(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,{content:e.content,onCopyClick:l})},e.code):null))})}exports.ResponseSamples=(0,react_1.memo)(ResponseSamplesComponent);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResponseSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),PayloadSamples_1=require("../PayloadSamples"),events_1=require("../../events"),store_1=require("../../jotai/store"),Summary_1=require("./Summary"),Tabs_1=require("../Tabs"),common_1=require("../common"),hooks_1=require("../../hooks");function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:s}){const{events:n}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),a=(0,hooks_1.useTranslate)(),r=e.responses.filter((e=>{var o,s;return null!==(s=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==s&&s})),t=e.responses.map((({code:e})=>({key:e,title:e}))),l=(null==t?void 0:t.find((({key:e})=>e===o)))||(null==t?void 0:t[0]),i=(0,react_1.useCallback)((()=>{var o;const s=(0,events_1.createCodeSampleCopyEvent)({operation:e,type:"response"});null===(o=null==n?void 0:n.codeSamplesCopy)||void 0===o||o.call(n,s)}),[e,n]);if(!r.length)return null;return(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-response-samples",header:()=>(0,jsx_runtime_1.jsx)(Summary_1.Summary,{tabs:(0,jsx_runtime_1.jsx)(Tabs_1.Tabs,{tabs:t,activeTab:l,onChange:e=>s(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===l.key?(0,jsx_runtime_1.jsx)("div",{children:(null===(o=null==e?void 0:e.content)||void 0===o?void 0:o.hasSample)?(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,{content:e.content,onCopyClick:i}):(0,jsx_runtime_1.jsx)(PayloadSamples_1.StyledCodeBlock,{source:a("openapi.noResponseContent","No content")})},e.code):null}))})}exports.ResponseSamples=(0,react_1.memo)(ResponseSamplesComponent);
2
2
  //# sourceMappingURL=ResponseSamples.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SchemaSelection=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),Dropdown_1=require("../Dropdown"),operation_1=require("../../../jotai/operation"),LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:t,pointer:o,schema:n,defaultOneOfIdx:i}){var a,r;const[s,c]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(o)),l=null===(r=e[null!==(a=s.activeOneOf[n.pointer])&&void 0!==a?a:i])||void 0===r?void 0:r.value,u=(0,react_1.useCallback)((({value:e})=>{void 0!==e&&(t?t(e):c((t=>{var o,i;return Object.assign(Object.assign({},t),{activeExampleName:(null===(i=null===(o=n.oneOf)||void 0===o?void 0:o[e])||void 0===i?void 0:i.title)||t.activeExampleName,activeOneOf:Object.assign(Object.assign({},t.activeOneOf),{[n.pointer]:e})})})))}),[t,n.oneOf,n.pointer,c]);return(0,theme_1.isUndefined)(l)?null:e.length>LIMIT_FOR_SEGMENTED?(0,jsx_runtime_1.jsx)(Dropdown_1.Dropdown,{options:e,value:l,onChange:u}):(0,jsx_runtime_1.jsx)(theme_1.Segmented,{value:l,onChange:u,options:e,size:"small","data-testid":"segmented-schema"})}exports.SchemaSelection=SchemaSelectionComponent;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SchemaSelection=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),Dropdown_1=require("../Dropdown"),operation_1=require("../../../jotai/operation"),LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:t,pointer:o,schema:n,defaultOneOfIdx:r}){var i,a;const[s,c]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(o)),l=null===(a=e[null!==(i=s.activeOneOf[n.pointer])&&void 0!==i?i:r])||void 0===a?void 0:a.value,[u,d]=(0,react_1.useState)(!1),m=(0,react_1.useRef)(null);(0,react_1.useEffect)((()=>{if(!m.current)return;const e=()=>{var e;const t=null===(e=m.current)||void 0===e?void 0:e.querySelectorAll('button[role="tab"]'),o=Array.from(t||[]).some((e=>e.offsetWidth<e.scrollWidth));o!==u&&d(o)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[u,e]);const v=(0,react_1.useCallback)((({value:e})=>{void 0!==e&&(t?t(e):c((t=>{var o,r;return Object.assign(Object.assign({},t),{activeExampleName:(null===(r=null===(o=n.oneOf)||void 0===o?void 0:o[e])||void 0===r?void 0:r.title)||t.activeExampleName,activeOneOf:Object.assign(Object.assign({},t.activeOneOf),{[n.pointer]:e})})})))}),[t,n.oneOf,n.pointer,c]);return(0,theme_1.isUndefined)(l)?null:e.length>LIMIT_FOR_SEGMENTED||u?(0,jsx_runtime_1.jsx)(Dropdown_1.Dropdown,{options:e,value:l,onChange:v}):(0,jsx_runtime_1.jsx)(theme_1.Segmented,{ref:m,value:l,onChange:v,options:e,size:"small","data-testid":"segmented-schema"})}exports.SchemaSelection=SchemaSelectionComponent;
2
2
  //# sourceMappingURL=SchemaSelection.js.map
package/lib/jotai/app.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var __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};Object.defineProperty(exports,"__esModule",{value:!0}),exports.languageAtom=exports.collapsedSidebarAtom=exports.appSessionStore=exports.layoutAtom=exports.activeMimeNameAtom=exports.isSidebarOpenedAtom=exports.environmentAtom=exports.environmentsAtom=exports.appStoreOverrideAtom=exports.appStore=void 0,exports.getLangKey=getLangKey;const jotai_1=require("jotai"),utils_1=require("jotai/utils"),theme_1=require("@redocly/theme"),cookies_1=require("../utils/cookies"),store_1=require("./store"),environments_1=require("../utils/environments"),utils_2=require("../utils"),defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:theme_1.LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{}},customStorage={getItem:e=>{var t,o;const r=(0,utils_2.safeJsonParse)((0,cookies_1.getCookie)(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),s=(0,utils_2.safeJsonParse)((0,utils_2.fromSessionStorage)(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),s),r)},setItem:(e,t)=>{const{environments:o}=t,r=__rest(t,["environments"]),s={environments:o};(0,cookies_1.setCookie)(e,JSON.stringify(r)),(0,utils_2.toSessionStorage)(e,JSON.stringify(s))},removeItem:e=>{(0,cookies_1.removeCookie)(e),sessionStorage.removeItem(e)}};function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}exports.appStore=(0,utils_1.atomWithStorage)("redoc.appStore",defaultAppStoreValue,customStorage),exports.appStoreOverrideAtom=(0,jotai_1.atom)({}),exports.environmentsAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom);return(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{})})),exports.environmentAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom),r=(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{}),s=(null==o?void 0:o.environment)||t.environment,n=r[s]?s:Object.keys(r)[0];return[r[n]||{},n||""]}),((e,t,{environment:o,environments:r})=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{environment:o||s.environment,environments:(0,environments_1.mergeEnvData)(s.environments||{},r)}))})),exports.isSidebarOpenedAtom=(0,jotai_1.atom)((e=>e(exports.appStore).isSidebarOpened),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{isSidebarOpened:o}))})),exports.activeMimeNameAtom=(0,jotai_1.atom)((e=>e(exports.appStore).activeMimeName),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{activeMimeName:o}))})),exports.layoutAtom=(0,jotai_1.atom)((e=>e(exports.appStore).layout),((e,t,o=theme_1.LayoutVariant.STACKED)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{layout:o}))})),exports.appSessionStore=(0,utils_1.atomWithStorage)("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},theme_1.IS_BROWSER?(0,utils_1.createJSONStorage)((()=>sessionStorage)):void 0),exports.collapsedSidebarAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).collapsedSidebar),((e,t,o)=>{const r=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},r),{collapsedSidebar:o}))})),exports.languageAtom=(0,jotai_1.atom)((e=>{var t;const{codeSamples:o}=e(store_1.globalOptionsAtom),r=o.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),s=e(exports.appStore).language||r[0].key;return{languages:r,activeLanguage:(null===(t=r.find((({key:e})=>e===s)))||void 0===t?void 0:t.key)||r[0].key}}),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{language:o}))}));
1
+ "use strict";var __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};Object.defineProperty(exports,"__esModule",{value:!0}),exports.languageAtom=exports.collapsedSidebarAtom=exports.appSessionStore=exports.layoutAtom=exports.activeMimeNameAtom=exports.isSidebarOpenedAtom=exports.environmentAtom=exports.environmentsAtom=exports.appStoreOverrideAtom=exports.appStore=void 0,exports.getLangKey=getLangKey;const jotai_1=require("jotai"),utils_1=require("jotai/utils"),theme_1=require("@redocly/theme"),cookies_1=require("../utils/cookies"),store_1=require("./store"),environments_1=require("../utils/environments"),utils_2=require("../utils"),defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:theme_1.LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{}},customStorage={getItem:e=>{var t,o;const r=(0,utils_2.safeJsonParse)((0,cookies_1.getCookie)(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),s=(0,utils_2.safeJsonParse)((0,utils_2.fromSessionStorage)(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),s),r)},setItem:(e,t)=>{const{environments:o}=t,r=__rest(t,["environments"]),s={environments:o};(0,cookies_1.setCookie)(e,JSON.stringify(r)),(0,utils_2.toSessionStorage)(e,JSON.stringify(s))},removeItem:e=>{(0,cookies_1.removeCookie)(e),sessionStorage.removeItem(e)}};function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}exports.appStore=(0,utils_1.atomWithStorage)("redoc.appStore",defaultAppStoreValue,customStorage),exports.appStoreOverrideAtom=(0,jotai_1.atom)({}),exports.environmentsAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom);return(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{})})),exports.environmentAtom=(0,jotai_1.atom)((e=>{const t=e(exports.appStore),o=e(exports.appStoreOverrideAtom),r=(0,environments_1.mergeEnvData)(t.environments,(null==o?void 0:o.environments)||{}),s=(null==o?void 0:o.environment)||t.environment,n=r[s]?s:Object.keys(r)[0];return[r[n]||{},n||""]}),((e,t,{environment:o,environments:r})=>{const s=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},s),{environment:o||s.environment,environments:(0,environments_1.mergeEnvData)(s.environments||{},r)}))})),exports.isSidebarOpenedAtom=(0,jotai_1.atom)((e=>e(exports.appStore).isSidebarOpened),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{isSidebarOpened:o}))})),exports.activeMimeNameAtom=(0,jotai_1.atom)((e=>e(exports.appStore).activeMimeName),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{activeMimeName:o}))})),exports.layoutAtom=(0,jotai_1.atom)((e=>e(exports.appStore).layout),((e,t,o=theme_1.LayoutVariant.STACKED)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{layout:o}))})),exports.appSessionStore=(0,utils_1.atomWithStorage)("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},theme_1.IS_BROWSER?(0,utils_1.createJSONStorage)((()=>sessionStorage)):void 0),exports.collapsedSidebarAtom=(0,jotai_1.atom)((e=>e(exports.appSessionStore).collapsedSidebar),((e,t,o)=>{const r=e(exports.appSessionStore);t(exports.appSessionStore,Object.assign(Object.assign({},r),{collapsedSidebar:o}))})),exports.languageAtom=(0,jotai_1.atom)((e=>{var t,o,r;const{codeSamples:s}=e(store_1.globalOptionsAtom),n=s.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),a=e(exports.appStore).language||(null===(t=n[0])||void 0===t?void 0:t.key);return{languages:n,activeLanguage:(null===(o=n.find((({key:e})=>e===a)))||void 0===o?void 0:o.key)||(null===(r=n[0])||void 0===r?void 0:r.key)}}),((e,t,o)=>{const r=e(exports.appStore);t(exports.appStore,Object.assign(Object.assign({},r),{language:o}))}));
2
2
  //# sourceMappingURL=app.js.map
@@ -1,7 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,o,t,a){return new(t||(t=Promise))((function(r,n){function i(e){try{l(a.next(e))}catch(e){n(e)}}function s(e){try{l(a.throw(e))}catch(e){n(e)}}function l(e){var o;e.done?r(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,s)}l((a=a.apply(e,o||[])).next())}))};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,Suspense,useCallback,useRef,useState,lazy}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import styled from"styled-components";import{useAtom,useAtomValue}from"jotai";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{replayStateAtom}from"../../jotai/replay";import{operationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{activeMimeNameAtom,environmentAtom}from"../../jotai/app";import{convertOperationToReplayValue}from"./utils";import{useTranslate}from"../../hooks";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var a,r;const n=useTranslate(),i=useRef(null),{routingBasePath:s,mockServer:l,oAuth2RedirectURI:m}=useAtomValue(globalOptionsAtom),{parser:c}=useAtomValue(globalStoreAtom),[p,u]=useState(!1),[d,v]=useAtom(replayStateAtom),[A,f]=useAtom(operationStore(e.pointer)),[y,S]=useAtom(activeMimeNameAtom),[[,O],_]=useAtom(environmentAtom);useFocusTrap(i),useModalScrollLock(p);const h=useCallback((({requestValues:e,activeExampleName:o,activeMimeName:t,environment:a,environments:r,activeSecuritySchemeIds:n})=>{f((t=>Object.assign(Object.assign({},t),{requestValues:e,activeExampleName:o,activeSecuritySchemeIds:n}))),S(t||y),_({environment:a,environments:r})}),[f,S,y,_]),x=()=>{d!==LOADING_STATE.LOADING&&u(!p),d===LOADING_STATE.NOT_LOADED&&v(LOADING_STATE.LOADING)};return _jsxs(Wrapper,{children:[_jsx(Button,{onClick:x,variant:"primary",iconPosition:"left",icon:d===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:d===LOADING_STATE.LOADING?n("openapi.loading","Loading..."):n("openapi.tryIt","Try it")}),p&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:i,children:_jsx(ReplayOverlay,{value:convertOperationToReplayValue(e,t,A),onRequestChange:h,onClose:x,corsProxyUrl:o,operationUrl:s+e.href,onLoad:()=>v(LOADING_STATE.LOADED),mockServer:l,environment:O,apiId:null===(r=null===(a=null==c?void 0:c.definition.info)||void 0===a?void 0:a["x-metadata"])||void 0===r?void 0:r.apiId,oAuth2RedirectURI:m,definitionUrl:null==c?void 0:c.definitionUrl,disableCollectionsTab:!0})})})})]})}export const Replay=memo(ReplayComponent);const Wrapper=styled.div`
2
- display: flex;
3
- justify-content: flex-end;
4
- border-top: var(--panel-border);
5
- padding: var(--spacing-base) var(--spacing-md) var(--spacing-md);
6
- `;
1
+ var __awaiter=this&&this.__awaiter||function(e,o,t,a){return new(t||(t=Promise))((function(n,r){function i(e){try{s(a.next(e))}catch(e){r(e)}}function l(e){try{s(a.throw(e))}catch(e){r(e)}}function s(e){var o;e.done?n(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,l)}s((a=a.apply(e,o||[])).next())}))};import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo,Suspense,useCallback,useRef,useState,lazy}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{replayStateAtom}from"../../jotai/replay";import{operationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{activeMimeNameAtom,environmentAtom}from"../../jotai/app";import{convertOperationToReplayValue}from"./utils";import{useTranslate}from"../../hooks";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var a,n;const r=useTranslate(),i=useRef(null),{routingBasePath:l,mockServer:s,oAuth2RedirectURI:m}=useAtomValue(globalOptionsAtom),{parser:c}=useAtomValue(globalStoreAtom),[u,p]=useState(!1),[A,v]=useAtom(replayStateAtom),[d,f]=useAtom(operationStore(e.pointer)),[y,_]=useAtom(activeMimeNameAtom),[[,S],O]=useAtom(environmentAtom);useFocusTrap(i),useModalScrollLock(u);const h=useCallback((({requestValues:e,activeExampleName:o,activeMimeName:t,environment:a,environments:n,activeSecuritySchemeIds:r})=>{f((t=>Object.assign(Object.assign({},t),{requestValues:e,activeExampleName:o,activeSecuritySchemeIds:r}))),_(t||y),O({environment:a,environments:n})}),[f,_,y,O]),I=()=>{A!==LOADING_STATE.LOADING&&p(!u),A===LOADING_STATE.NOT_LOADED&&v(LOADING_STATE.LOADING)};return _jsxs(_Fragment,{children:[_jsx(Button,{onClick:I,variant:"primary",iconPosition:"left",icon:A===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:A===LOADING_STATE.LOADING?r("openapi.loading","Loading..."):r("openapi.tryIt","Try it")}),u&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:i,children:_jsx(ReplayOverlay,{value:convertOperationToReplayValue(e,t,d),onRequestChange:h,onClose:I,corsProxyUrl:o,operationUrl:l+e.href,onLoad:()=>v(LOADING_STATE.LOADED),mockServer:s,environment:S,apiId:null===(n=null===(a=null==c?void 0:c.definition.info)||void 0===a?void 0:a["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:m,definitionUrl:null==c?void 0:c.definitionUrl,disableCollectionsTab:!0})})})})]})}export const Replay=memo(ReplayComponent);
7
2
  //# sourceMappingURL=Replay.js.map
@@ -1,7 +1,13 @@
1
- var __rest=this&&this.__rest||function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)o.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(a[t[r]]=e[t[r]])}return a};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader}from"@redocly/theme";import styled from"styled-components";import{PayloadSamples}from"../PayloadSamples";import{CodeSample}from"./CodeSample";import{useCodeSamples}from"./useCodeSamples";import{isPayloadSample}from"../../models";import{createCodeSampleCopyEvent}from"../../events";import{globalStoreAtom}from"../../jotai/store";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";import{CodeBlockPanel}from"../common";import{useActiveWithFallback}from"../../hooks";function RequestSamplesComponent(e){var{operation:o,disableFooter:a}=e,t=__rest(e,["operation","disableFooter"]);const[{activeLanguage:r},l]=useAtom(languageAtom),{samples:s}=useCodeSamples(o),{parser:n,options:{events:p,corsProxyUrl:m,hideReplay:i}}=useAtomValue(globalStoreAtom),d=useActiveWithFallback(s,r),c=useCallback((({lang:e,title:a})=>()=>{var t;const r=createCodeSampleCopyEvent({operation:o,label:a,lang:e,type:"request"});null===(t=null==p?void 0:p.codeSamplesCopy)||void 0===t||t.call(p,r)}),[o,p]),u=useMemo((()=>{if(!(a||o.isWebhook||i||o.hideReplay))return _jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:n.definition})}),[m,a,i,o,n.definition]),y=useMemo((()=>s.map((e=>e.key===d?_jsx("div",{children:isPayloadSample(e)?_jsx(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:c(e)},t)):_jsx(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:o,onCopyClick:c(e)},t))},e.key+o.id):null))),[d,c,o,t,s]);return s.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:()=>_jsxs(StyledPanelHeader,{isExpandable:!1,children:[_jsx(StyledServerListDropdown,{operation:o}),_jsx(LanguageDropdown,{activeTab:d,samples:s,onChange:l})]}),footer:u,isExpandable:!1,children:y}):null}export const RequestSamples=memo(RequestSamplesComponent);const StyledPanelHeader=styled(PanelHeader)`
1
+ var __rest=this&&this.__rest||function(e,o){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(r=Object.getOwnPropertySymbols(e);t<r.length;t++)o.indexOf(r[t])<0&&Object.prototype.propertyIsEnumerable.call(e,r[t])&&(a[r[t]]=e[r[t]])}return a};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader}from"@redocly/theme";import styled from"styled-components";import{PayloadSamples}from"../PayloadSamples";import{CodeSample}from"./CodeSample";import{useCodeSamples}from"./useCodeSamples";import{isPayloadSample}from"../../models";import{createCodeSampleCopyEvent}from"../../events";import{globalStoreAtom}from"../../jotai/store";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";import{CodeBlockPanel}from"../common";import{useActiveWithFallback}from"../../hooks";function RequestSamplesComponent(e){var{operation:o,disableFooter:a}=e,r=__rest(e,["operation","disableFooter"]);const[{activeLanguage:t,languages:l},s]=useAtom(languageAtom),{samples:n}=useCodeSamples(o),{parser:p,options:{events:i,corsProxyUrl:m,hideReplay:d}}=useAtomValue(globalStoreAtom),c=!(a||o.isWebhook||d||o.hideReplay),u=!!(null==l?void 0:l.length),y=useActiveWithFallback(n,t),g=useCallback((({lang:e,title:a})=>()=>{var r;const t=createCodeSampleCopyEvent({operation:o,label:a,lang:e,type:"request"});null===(r=null==i?void 0:i.codeSamplesCopy)||void 0===r||r.call(i,t)}),[o,i]),f=()=>_jsxs(StyledPanelHeader,{isExpandable:!1,withReplay:!u&&c,children:[_jsx(StyledServerListDropdown,{operation:o}),u&&_jsx(LanguageDropdown,{activeTab:y,samples:n,onChange:s}),!u&&c&&_jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:p.definition})]}),v=useMemo((()=>{if(c&&u)return _jsx(ReplayWrapper,{children:_jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:p.definition})})}),[c,u,o,m,p.definition]),x=useMemo((()=>n.map((e=>e.key===y?_jsx("div",{children:isPayloadSample(e)?_jsx(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:g(e)},r)):_jsx(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:o,onCopyClick:g(e)},r))},e.key+o.id):null))),[y,g,o,r,n]);return l&&!n.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:f,isExpandable:!1,expanded:!1}):n.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:f,footer:v,isExpandable:!1,children:x}):null}export const RequestSamples=memo(RequestSamplesComponent);const StyledPanelHeader=styled(PanelHeader)`
2
2
  flex-wrap: nowrap;
3
+ ${({withReplay:e})=>e&&"padding: var(--spacing-xs) var(--spacing-sm);"}
3
4
  `,StyledServerListDropdown=styled(ServerListDropdown)`
4
5
  padding-right: var(--spacing-base);
5
6
  min-width: 0;
7
+ `,ReplayWrapper=styled.div`
8
+ display: flex;
9
+ justify-content: flex-end;
10
+ border-top: var(--panel-border);
11
+ padding: var(--spacing-base) var(--spacing-md) var(--spacing-md);
6
12
  `;
7
13
  //# sourceMappingURL=RequestSamples.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import{PayloadSamples}from"../PayloadSamples";import{createCodeSampleCopyEvent}from"../../events";import{globalOptionsAtom}from"../../jotai/store";import{Summary}from"./Summary";import{Tabs}from"../Tabs";import{CodeBlockPanel}from"../common";function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:a}){const{events:n}=useAtomValue(globalOptionsAtom),l=e.responses.filter((e=>{var o,a;return null!==(a=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==a&&a})),s=l.map((({code:e})=>({key:e,title:e}))),t=(null==s?void 0:s.find((({key:e})=>e===o)))||(null==s?void 0:s[0]),m=useCallback((()=>{var o;const a=createCodeSampleCopyEvent({operation:e,type:"response"});null===(o=null==n?void 0:n.codeSamplesCopy)||void 0===o||o.call(n,a)}),[e,n]);if(!l.length)return null;return _jsx(CodeBlockPanel,{className:"panel-response-samples",header:()=>_jsx(Summary,{tabs:_jsx(Tabs,{tabs:s,activeTab:t,onChange:e=>a(e.key)})}),isExpandable:!1,children:l.map((e=>e.code===t.key?_jsx("div",{children:_jsx(PayloadSamples,{content:e.content,onCopyClick:m})},e.code):null))})}export const ResponseSamples=memo(ResponseSamplesComponent);
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import{PayloadSamples,StyledCodeBlock}from"../PayloadSamples";import{createCodeSampleCopyEvent}from"../../events";import{globalOptionsAtom}from"../../jotai/store";import{Summary}from"./Summary";import{Tabs}from"../Tabs";import{CodeBlockPanel}from"../common";import{useTranslate}from"../../hooks";function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:n}){const{events:a}=useAtomValue(globalOptionsAtom),s=useTranslate(),l=e.responses.filter((e=>{var o,n;return null!==(n=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==n&&n})),t=e.responses.map((({code:e})=>({key:e,title:e}))),r=(null==t?void 0:t.find((({key:e})=>e===o)))||(null==t?void 0:t[0]),m=useCallback((()=>{var o;const n=createCodeSampleCopyEvent({operation:e,type:"response"});null===(o=null==a?void 0:a.codeSamplesCopy)||void 0===o||o.call(a,n)}),[e,a]);if(!l.length)return null;return _jsx(CodeBlockPanel,{className:"panel-response-samples",header:()=>_jsx(Summary,{tabs:_jsx(Tabs,{tabs:t,activeTab:r,onChange:e=>n(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===r.key?_jsx("div",{children:(null===(o=null==e?void 0:e.content)||void 0===o?void 0:o.hasSample)?_jsx(PayloadSamples,{content:e.content,onCopyClick:m}):_jsx(StyledCodeBlock,{source:s("openapi.noResponseContent","No content")})},e.code):null}))})}export const ResponseSamples=memo(ResponseSamplesComponent);
2
2
  //# sourceMappingURL=ResponseSamples.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useCallback}from"react";import{useAtom}from"jotai";import{Segmented,isUndefined}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{operationStore}from"../../../jotai/operation";const LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:o,pointer:n,schema:t,defaultOneOfIdx:i}){var a,r;const[s,m]=useAtom(operationStore(n)),l=null===(r=e[null!==(a=s.activeOneOf[t.pointer])&&void 0!==a?a:i])||void 0===r?void 0:r.value,c=useCallback((({value:e})=>{void 0!==e&&(o?o(e):m((o=>{var n,i;return Object.assign(Object.assign({},o),{activeExampleName:(null===(i=null===(n=t.oneOf)||void 0===n?void 0:n[e])||void 0===i?void 0:i.title)||o.activeExampleName,activeOneOf:Object.assign(Object.assign({},o.activeOneOf),{[t.pointer]:e})})})))}),[o,t.oneOf,t.pointer,m]);return isUndefined(l)?null:e.length>LIMIT_FOR_SEGMENTED?_jsx(Dropdown,{options:e,value:l,onChange:c}):_jsx(Segmented,{value:l,onChange:c,options:e,size:"small","data-testid":"segmented-schema"})}export const SchemaSelection=SchemaSelectionComponent;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useCallback,useEffect,useRef,useState}from"react";import{useAtom}from"jotai";import{Segmented,isUndefined}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{operationStore}from"../../../jotai/operation";const LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:o,pointer:t,schema:n,defaultOneOfIdx:i}){var r,a;const[s,l]=useAtom(operationStore(t)),c=null===(a=e[null!==(r=s.activeOneOf[n.pointer])&&void 0!==r?r:i])||void 0===a?void 0:a.value,[m,u]=useState(!1),d=useRef(null);useEffect((()=>{if(!d.current)return;const e=()=>{var e;const o=null===(e=d.current)||void 0===e?void 0:e.querySelectorAll('button[role="tab"]'),t=Array.from(o||[]).some((e=>e.offsetWidth<e.scrollWidth));t!==m&&u(t)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[m,e]);const f=useCallback((({value:e})=>{void 0!==e&&(o?o(e):l((o=>{var t,i;return Object.assign(Object.assign({},o),{activeExampleName:(null===(i=null===(t=n.oneOf)||void 0===t?void 0:t[e])||void 0===i?void 0:i.title)||o.activeExampleName,activeOneOf:Object.assign(Object.assign({},o.activeOneOf),{[n.pointer]:e})})})))}),[o,n.oneOf,n.pointer,l]);return isUndefined(c)?null:e.length>LIMIT_FOR_SEGMENTED||m?_jsx(Dropdown,{options:e,value:c,onChange:f}):_jsx(Segmented,{ref:d,value:c,onChange:f,options:e,size:"small","data-testid":"segmented-schema"})}export const SchemaSelection=SchemaSelectionComponent;
2
2
  //# sourceMappingURL=SchemaSelection.js.map
@@ -1,2 +1,2 @@
1
- var __rest=this&&this.__rest||function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o};import{atom}from"jotai";import{atomWithStorage,createJSONStorage}from"jotai/utils";import{IS_BROWSER,LayoutVariant}from"@redocly/theme";import{getCookie,removeCookie,setCookie}from"../utils/cookies";import{globalOptionsAtom}from"./store";import{mergeEnvData}from"../utils/environments";import{fromSessionStorage,safeJsonParse,toSessionStorage}from"../utils";const defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{}},customStorage={getItem:e=>{var t,o;const n=safeJsonParse(getCookie(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),r=safeJsonParse(fromSessionStorage(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),r),n)},setItem:(e,t)=>{const{environments:o}=t,n=__rest(t,["environments"]),r={environments:o};setCookie(e,JSON.stringify(n)),toSessionStorage(e,JSON.stringify(r))},removeItem:e=>{removeCookie(e),sessionStorage.removeItem(e)}};export const appStore=atomWithStorage("redoc.appStore",defaultAppStoreValue,customStorage);export const appStoreOverrideAtom=atom({});export const environmentsAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom);return mergeEnvData(t.environments,(null==o?void 0:o.environments)||{})}));export const environmentAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom),n=mergeEnvData(t.environments,(null==o?void 0:o.environments)||{}),r=(null==o?void 0:o.environment)||t.environment,a=n[r]?r:Object.keys(n)[0];return[n[a]||{},a||""]}),((e,t,{environment:o,environments:n})=>{const r=e(appStore);t(appStore,Object.assign(Object.assign({},r),{environment:o||r.environment,environments:mergeEnvData(r.environments||{},n)}))}));export const isSidebarOpenedAtom=atom((e=>e(appStore).isSidebarOpened),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{isSidebarOpened:o}))}));export const activeMimeNameAtom=atom((e=>e(appStore).activeMimeName),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{activeMimeName:o}))}));export const layoutAtom=atom((e=>e(appStore).layout),((e,t,o=LayoutVariant.STACKED)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{layout:o}))}));export const appSessionStore=atomWithStorage("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},IS_BROWSER?createJSONStorage((()=>sessionStorage)):void 0);export const collapsedSidebarAtom=atom((e=>e(appSessionStore).collapsedSidebar),((e,t,o)=>{const n=e(appSessionStore);t(appSessionStore,Object.assign(Object.assign({},n),{collapsedSidebar:o}))}));export function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}export const languageAtom=atom((e=>{var t;const{codeSamples:o}=e(globalOptionsAtom),n=o.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),r=e(appStore).language||n[0].key;return{languages:n,activeLanguage:(null===(t=n.find((({key:e})=>e===r)))||void 0===t?void 0:t.key)||n[0].key}}),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{language:o}))}));
1
+ var __rest=this&&this.__rest||function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o};import{atom}from"jotai";import{atomWithStorage,createJSONStorage}from"jotai/utils";import{IS_BROWSER,LayoutVariant}from"@redocly/theme";import{getCookie,removeCookie,setCookie}from"../utils/cookies";import{globalOptionsAtom}from"./store";import{mergeEnvData}from"../utils/environments";import{fromSessionStorage,safeJsonParse,toSessionStorage}from"../utils";const defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{}},customStorage={getItem:e=>{var t,o;const n=safeJsonParse(getCookie(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),r=safeJsonParse(fromSessionStorage(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),r),n)},setItem:(e,t)=>{const{environments:o}=t,n=__rest(t,["environments"]),r={environments:o};setCookie(e,JSON.stringify(n)),toSessionStorage(e,JSON.stringify(r))},removeItem:e=>{removeCookie(e),sessionStorage.removeItem(e)}};export const appStore=atomWithStorage("redoc.appStore",defaultAppStoreValue,customStorage);export const appStoreOverrideAtom=atom({});export const environmentsAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom);return mergeEnvData(t.environments,(null==o?void 0:o.environments)||{})}));export const environmentAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom),n=mergeEnvData(t.environments,(null==o?void 0:o.environments)||{}),r=(null==o?void 0:o.environment)||t.environment,a=n[r]?r:Object.keys(n)[0];return[n[a]||{},a||""]}),((e,t,{environment:o,environments:n})=>{const r=e(appStore);t(appStore,Object.assign(Object.assign({},r),{environment:o||r.environment,environments:mergeEnvData(r.environments||{},n)}))}));export const isSidebarOpenedAtom=atom((e=>e(appStore).isSidebarOpened),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{isSidebarOpened:o}))}));export const activeMimeNameAtom=atom((e=>e(appStore).activeMimeName),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{activeMimeName:o}))}));export const layoutAtom=atom((e=>e(appStore).layout),((e,t,o=LayoutVariant.STACKED)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{layout:o}))}));export const appSessionStore=atomWithStorage("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},IS_BROWSER?createJSONStorage((()=>sessionStorage)):void 0);export const collapsedSidebarAtom=atom((e=>e(appSessionStore).collapsedSidebar),((e,t,o)=>{const n=e(appSessionStore);t(appSessionStore,Object.assign(Object.assign({},n),{collapsedSidebar:o}))}));export function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}export const languageAtom=atom((e=>{var t,o,n;const{codeSamples:r}=e(globalOptionsAtom),a=r.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),s=e(appStore).language||(null===(t=a[0])||void 0===t?void 0:t.key);return{languages:a,activeLanguage:(null===(o=a.find((({key:e})=>e===s)))||void 0===o?void 0:o.key)||(null===(n=a[0])||void 0===n?void 0:n.key)}}),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{language:o}))}));
2
2
  //# sourceMappingURL=app.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.5.15",
3
+ "version": "3.5.17",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@markdoc/markdoc": "0.4.0",
27
- "@redocly/openapi-core": "1.26.1",
27
+ "@redocly/openapi-core": "1.27.1",
28
28
  "deepmerge": "^4.2.2",
29
29
  "dompurify": "2.5.4",
30
30
  "fast-deep-equal": "^3.1.3",
@@ -44,8 +44,8 @@
44
44
  "url": "~0.11.0",
45
45
  "url-template": "^2.0.8",
46
46
  "util": "~0.12.5",
47
- "@redocly/config": "0.19.4",
48
- "@redocly/replay": "0.8.12"
47
+ "@redocly/config": "0.20.0",
48
+ "@redocly/replay": "0.8.13"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@shikijs/transformers": "1.24.0",
@@ -96,7 +96,7 @@
96
96
  "webpack": "5.94.0",
97
97
  "webpack-cli": "5.1.4",
98
98
  "webpack-dev-server": "5.1.0",
99
- "@redocly/theme": "0.47.1"
99
+ "@redocly/theme": "0.48.0"
100
100
  },
101
101
  "scripts": {
102
102
  "start": "npm run copy-highlight-hook && webpack serve --mode=development --hot",