@redocly/openapi-docs 3.11.0-next.1 → 3.11.0-next.2
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.
- package/dist/redocly-openapi-docs.min.js +563 -563
- package/lib/components/ExpandAllButton/ExpandAllButton.d.ts +3 -1
- package/lib/components/ExpandAllButton/ExpandAllButton.js +1 -1
- package/lib/components/OperationItem/OperationItem.js +1 -1
- package/lib/components/PayloadSamples/Example.d.ts +1 -1
- package/lib/components/PayloadSamples/Example.js +1 -1
- package/lib/components/PayloadSamples/ExampleValue.d.ts +1 -1
- package/lib/components/PayloadSamples/ExampleValue.js +1 -1
- package/lib/components/PayloadSamples/MediaTypeSamples.js +1 -1
- package/lib/components/PayloadSamples/types.d.ts +5 -3
- package/lib/components/Replay/Replay.js +1 -1
- package/lib/components/Request/RequestDetails.js +1 -1
- package/lib/components/Request/types.d.ts +2 -0
- package/lib/components/RequestSamples/RequestSamples.d.ts +2 -0
- package/lib/components/RequestSamples/RequestSamples.js +1 -1
- package/lib/components/ResponseSamples/ResponseSamples.d.ts +3 -1
- package/lib/components/ResponseSamples/ResponseSamples.js +1 -1
- package/lib/components/Responses/OperationResponseList.d.ts +2 -0
- package/lib/components/Responses/OperationResponseList.js +1 -1
- package/lib/components/ServerListDropdown/ServerListDropdown.js +1 -1
- package/lib/events/index.d.ts +3 -0
- package/lib/events/index.js +1 -1
- package/lib/events/serverSwitch.d.ts +2 -0
- package/lib/events/serverSwitch.js +2 -0
- package/lib/events/tryItOpen.d.ts +2 -0
- package/lib/events/tryItOpen.js +2 -0
- package/lib/events/tryItSent.d.ts +2 -0
- package/lib/events/tryItSent.js +2 -0
- package/lib/events/types.d.ts +18 -3
- package/lib/events/types.js +1 -1
- package/lib-esm/components/ExpandAllButton/ExpandAllButton.d.ts +3 -1
- package/lib-esm/components/ExpandAllButton/ExpandAllButton.js +1 -1
- package/lib-esm/components/OperationItem/OperationItem.js +1 -1
- package/lib-esm/components/PayloadSamples/Example.d.ts +1 -1
- package/lib-esm/components/PayloadSamples/Example.js +1 -1
- package/lib-esm/components/PayloadSamples/ExampleValue.d.ts +1 -1
- package/lib-esm/components/PayloadSamples/ExampleValue.js +1 -1
- package/lib-esm/components/PayloadSamples/MediaTypeSamples.js +1 -1
- package/lib-esm/components/PayloadSamples/types.d.ts +5 -3
- package/lib-esm/components/Replay/Replay.js +1 -1
- package/lib-esm/components/Request/RequestDetails.js +1 -1
- package/lib-esm/components/Request/types.d.ts +2 -0
- package/lib-esm/components/RequestSamples/RequestSamples.d.ts +2 -0
- package/lib-esm/components/RequestSamples/RequestSamples.js +1 -1
- package/lib-esm/components/ResponseSamples/ResponseSamples.d.ts +3 -1
- package/lib-esm/components/ResponseSamples/ResponseSamples.js +1 -1
- package/lib-esm/components/Responses/OperationResponseList.d.ts +2 -0
- package/lib-esm/components/Responses/OperationResponseList.js +1 -1
- package/lib-esm/components/ServerListDropdown/ServerListDropdown.js +1 -1
- package/lib-esm/events/index.d.ts +3 -0
- package/lib-esm/events/index.js +1 -1
- package/lib-esm/events/serverSwitch.d.ts +2 -0
- package/lib-esm/events/serverSwitch.js +2 -0
- package/lib-esm/events/tryItOpen.d.ts +2 -0
- package/lib-esm/events/tryItOpen.js +2 -0
- package/lib-esm/events/tryItSent.d.ts +2 -0
- package/lib-esm/events/tryItSent.js +2 -0
- package/lib-esm/events/types.d.ts +18 -3
- package/lib-esm/events/types.js +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { PanelType } from '../../events/types';
|
|
1
2
|
interface ExpandAllButtonProps {
|
|
2
3
|
operationPointer: string;
|
|
3
4
|
type: 'request' | 'response';
|
|
5
|
+
onPanelToggle?: (isExpanded: boolean, panelType: PanelType) => void;
|
|
4
6
|
}
|
|
5
|
-
export declare const ExpandAllButton: ({ operationPointer, type }: ExpandAllButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const ExpandAllButton: ({ operationPointer, type, onPanelToggle, }: ExpandAllButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExpandAllButton=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),index_1=require("jotai/index"),operation_1=require("../../jotai/operation"),hooks_1=require("../../hooks"),ExpandAllButton=({operationPointer:e,type:t})=>{const
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExpandAllButton=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),index_1=require("jotai/index"),operation_1=require("../../jotai/operation"),hooks_1=require("../../hooks"),ExpandAllButton=({operationPointer:e,type:t,onPanelToggle:o})=>{const n=(0,hooks_1.useTranslate)(),[l,r]=(0,index_1.useAtom)((0,operation_1.operationStore)(e)),s=(0,hooks_1.useTelemetry)();return(0,jsx_runtime_1.jsx)(StyledButton,{icon:(0,jsx_runtime_1.jsx)(theme_1.MaximizeIcon,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:()=>{const e=!l[t].expandedAll;s.send({type:"openapi_docs.expand_collapse_all.clicked",payload:{is_expanded:e}}),r({[t]:{expandedAll:e}}),null==o||o(e,"request"===t?"request":"responses")},children:l[t].expandedAll?n("openapi.collapseAll","Collapse all"):n("openapi.expandAll","Expand all")})};exports.ExpandAllButton=ExpandAllButton;const StyledButton=(0,styled_components_1.default)(theme_1.Button)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
`;
|
|
4
4
|
//# sourceMappingURL=ExpandAllButton.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationSamplesPanel=exports.OperationItem=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),common_1=require("../common"),Callbacks_1=require("../Callbacks"),CallbackSamples_1=require("../CallbackSamples"),RequestSamples_1=require("../RequestSamples"),Responses_1=require("../Responses"),ResponseSamples_1=require("../ResponseSamples"),services_1=require("../../services"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),operation_1=require("../../models/operation"),RenderHook_1=require("../RenderHook"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),RequestDetails_1=require("../Request/RequestDetails"),Badges_1=require("../common/Badges"),hooks_1=require("../../hooks");function OperationItemComponent({item:{operationDefinition:e,parent:t,href:
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationSamplesPanel=exports.OperationItem=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),common_1=require("../common"),Callbacks_1=require("../Callbacks"),CallbackSamples_1=require("../CallbackSamples"),RequestSamples_1=require("../RequestSamples"),Responses_1=require("../Responses"),ResponseSamples_1=require("../ResponseSamples"),services_1=require("../../services"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),operation_1=require("../../models/operation"),RenderHook_1=require("../RenderHook"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),RequestDetails_1=require("../Request/RequestDetails"),Badges_1=require("../common/Badges"),hooks_1=require("../../hooks"),events_1=require("../../events");function OperationItemComponent({item:{operationDefinition:e,parent:t,href:a}}){var s,o;const n=(0,hooks_1.useTranslate)(),{parser:i,options:r}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),{events:l}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),p=(0,jotai_1.useAtomValue)(app_1.userClaimsAtom),_=(0,jotai_1.useAtomValue)(app_1.layoutAtom),[m,d]=(0,react_1.useState)(),{unstable_hooks:c,feedback:u}=r,x=(0,react_1.useMemo)((()=>(0,operation_1.getOperation)(i,e,t,r,a,void 0,p)),[a,e,r,t,i,p]),{name:j,deprecated:k,isWebhook:h,badges:b}=x||{},S=_===theme_1.LayoutVariant.STACKED,g=(null==u?void 0:u.type)||"sentiment",v=!0!==(null==u?void 0:u.hide),[R,q]=(0,react_1.useState)(null),O=(0,react_1.useCallback)((e=>{m!==e&&d(e)}),[m]),f=(0,react_1.useCallback)(((e,t)=>{var a;if(!t)return;const s=(0,events_1.createPanelToggleEvent)({operation:x,isExpanded:e,panelType:t});null===(a=null==l?void 0:l.panelToggle)||void 0===a||a.call(l,s)}),[l,x]),y=(0,react_1.useMemo)((()=>v?(0,jsx_runtime_1.jsx)(FeedbackWrapper,{children:(0,jsx_runtime_1.jsx)(theme_1.Feedback,{type:g,settings:u.settings,path:(0,services_1.joinWithSeparator)(r.routingBasePath,x.href)})}):null),[v,g,u.settings,r.routingBasePath,x.href]);return(0,jsx_runtime_1.jsxs)(OperationRow,{layout:_,children:[(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:_,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:S,children:[(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.BeforeOpenApiOperation||(null==c?void 0:c.BeforeOperation),props:{operation:x}}),(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Heading,{"data-testid":"operation-item-header",children:[(0,jsx_runtime_1.jsx)(common_1.ShareLink,{to:a,"aria-label":`link to ${j}`}),(0,jsx_runtime_1.jsx)(common_1.CustomBadges,{badges:b,children:j}),k&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{deprecated:!0,children:n("openapi.badges.deprecated","Deprecated")}),h&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{children:n("openapi.badges.webhook","Webhook")})]})]})}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:_,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:S,children:(0,jsx_runtime_1.jsx)(RequestDetails_1.RequestDetails,{operation:x,translate:n,onPanelToggle:f})}),(0,jsx_runtime_1.jsx)(exports.OperationSamplesPanel,{isStacked:S,"data-testid":"samples-block",className:"panel-container-request-samples",children:(0,jsx_runtime_1.jsx)(RequestSamples_1.RequestSamples,{operation:x,onPanelToggle:f})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:_,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:S,children:(null===(s=x.responses)||void 0===s?void 0:s.length)?(0,jsx_runtime_1.jsx)(Responses_1.OperationResponseList,{responses:x.responses,operationId:x.id,operationPointer:x.pointer,callbackId:x.callbackId,activeResponseTab:m,onTabChange:O,onPanelToggle:f}):null}),(0,jsx_runtime_1.jsx)(exports.OperationSamplesPanel,{isStacked:S,"data-testid":"samples-block",className:"panel-container-response-samples",children:(0,jsx_runtime_1.jsx)(ResponseSamples_1.ResponseSamples,{operation:x,activeResponseTab:m,onTabChange:O,onPanelToggle:f})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:_,children:[(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:S,children:[(null===(o=x.callbacks)||void 0===o?void 0:o.length)?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Title,{children:[(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(x.id,"callbacks")}),n("openapi.callbacks","Callbacks")]}),(0,jsx_runtime_1.jsx)(Callbacks_1.CallbacksList,{callbacks:x.callbacks,onExpand:q,selectedCallback:R})]}):null,(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiOperation||(null==c?void 0:c.AfterOperation),props:{operation:x}})]}),R?(0,jsx_runtime_1.jsx)(exports.OperationSamplesPanel,{isStacked:S,"data-testid":"samples-block",children:(0,jsx_runtime_1.jsx)(CallbackSamples_1.CallbackSamples,{callback:R,translate:n})}):null]}),(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:_,children:(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:S,fullWidth:!0,children:y})})]})}exports.OperationItem=(0,react_1.memo)(OperationItemComponent),exports.OperationSamplesPanel=(0,styled_components_1.default)(common_1.SamplesPanel)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
--code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
|
|
4
4
|
`;const FeedbackWrapper=styled_components_1.default.div`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ReactElement } from 'react';
|
|
2
2
|
import type { ExampleProps } from './types';
|
|
3
|
-
export declare function Example({ example, mimeType, onCopyClick }: ExampleProps): ReactElement;
|
|
3
|
+
export declare function Example({ example, mimeType, onCopyClick, onPanelToggle, }: ExampleProps): ReactElement;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Example=Example;const jsx_runtime_1=require("react/jsx-runtime"),ExampleValue_1=require("./ExampleValue");function Example({example:e,mimeType:l,onCopyClick:a}){return(0,jsx_runtime_1.jsx)(ExampleValue_1.ExampleValue,{value:e.value,mimeType:l,encoding:e.encoding,onCopyClick:a})}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Example=Example;const jsx_runtime_1=require("react/jsx-runtime"),ExampleValue_1=require("./ExampleValue");function Example({example:e,mimeType:l,onCopyClick:a,onPanelToggle:n}){return(0,jsx_runtime_1.jsx)(ExampleValue_1.ExampleValue,{value:e.value,mimeType:l,encoding:e.encoding,onCopyClick:a,onPanelToggle:n})}
|
|
2
2
|
//# sourceMappingURL=Example.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ExampleValueProps } from './types';
|
|
2
|
-
export declare function ExampleValue({ value, mimeType, encoding, onCopyClick, }: ExampleValueProps): React.ReactNode;
|
|
2
|
+
export declare function ExampleValue({ value, mimeType, encoding, onCopyClick, onPanelToggle, }: ExampleValueProps): React.ReactNode;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExampleValue=ExampleValue;const jsx_runtime_1=require("react/jsx-runtime"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),utils_1=require("../../utils"),store_1=require("../../jotai/store"),styled_1=require("./styled");function ExampleValue({value:e,mimeType:o,encoding:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExampleValue=ExampleValue;const jsx_runtime_1=require("react/jsx-runtime"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),utils_1=require("../../utils"),store_1=require("../../jotai/store"),styled_1=require("./styled");function ExampleValue({value:e,mimeType:o,encoding:l,onCopyClick:t,onPanelToggle:r}){const{jsonSamplesExpandLevel:s}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom);return(0,utils_1.isJsonLike)(o)?(0,jsx_runtime_1.jsx)(theme_1.JsonViewer,{data:e,expandLevel:s,onCopyClick:t,onPanelToggle:r}):("object"==typeof e&&(e=(0,utils_1.isFormUrlEncoded)(o)?(0,utils_1.urlFormEncodePayload)(e,l):JSON.stringify(e,null,2)),(0,jsx_runtime_1.jsx)(styled_1.StyledCodeBlock,{lang:(0,utils_1.langFromMime)(o),source:e,header:{className:"code-block-header",controls:{copy:{onClick:t}}}}))}
|
|
2
2
|
//# sourceMappingURL=ExampleValue.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MediaTypeSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),deepmerge_1=__importDefault(require("deepmerge")),styled_components_1=__importDefault(require("styled-components")),Markdown_1=require("../Markdown"),Example_1=require("./Example"),Samples_1=require("../Samples"),utils_1=require("../../services/utils"),styled_1=require("./styled"),hooks_1=require("../../hooks");function MediaTypeSamplesComponent({mediaType:e,properties:r,onChange:s,onCopyClick:t}){const
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MediaTypeSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),deepmerge_1=__importDefault(require("deepmerge")),styled_components_1=__importDefault(require("styled-components")),Markdown_1=require("../Markdown"),Example_1=require("./Example"),Samples_1=require("../Samples"),utils_1=require("../../services/utils"),styled_1=require("./styled"),hooks_1=require("../../hooks");function MediaTypeSamplesComponent({mediaType:e,properties:r,onChange:s,onCopyClick:a,onPanelToggle:t}){const o=e.examples||e.formExamples||{},n=e.name,l=Object.keys(o),p=(0,hooks_1.useTranslate)(),{exampleKey:i}=(0,Samples_1.useExampleKey)(e.operation,o),m=1===l.length?Object.values(o)[0]:o[i];if(!l.length)return(0,jsx_runtime_1.jsx)(styled_1.StyledCodeBlock,{lang:"clike",source:p("openapi.noResponseExample","No response example"),header:{controls:!1}});const _=r?Object.assign(Object.assign({},m),{value:(0,deepmerge_1.default)(m.value,r,{arrayMerge:utils_1.arrayMergeStrategy})}):m,u=_.description;return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Samples_1.ExampleSwitch,{examples:o,exampleKey:i,onChange:s}),u&&(0,jsx_runtime_1.jsx)(StyledMarkdown,{source:u}),(0,jsx_runtime_1.jsx)(Example_1.Example,{example:_,mimeType:n,onCopyClick:a,onPanelToggle:t})]})}const StyledMarkdown=(0,styled_components_1.default)(Markdown_1.Markdown)`
|
|
2
2
|
margin: 0 var(--spacing-md) var(--spacing-sm);
|
|
3
3
|
`;exports.MediaTypeSamples=(0,react_1.memo)(MediaTypeSamplesComponent);
|
|
4
4
|
//# sourceMappingURL=MediaTypeSamples.js.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { PanelType } from '../../events/types';
|
|
1
2
|
import type { ExampleModel, MediaContentModel, MediaTypeModel } from '../../models';
|
|
2
3
|
import type { OpenAPIEncoding } from '../../types';
|
|
3
|
-
export interface ExampleProps extends Pick<MediaTypeSamplesProps, 'onCopyClick'> {
|
|
4
|
+
export interface ExampleProps extends Pick<MediaTypeSamplesProps, 'onCopyClick' | 'onPanelToggle'> {
|
|
4
5
|
example: ExampleModel;
|
|
5
6
|
mimeType: string;
|
|
6
7
|
}
|
|
7
|
-
export interface ExampleValueProps extends Pick<MediaTypeSamplesProps, 'onCopyClick'> {
|
|
8
|
+
export interface ExampleValueProps extends Pick<MediaTypeSamplesProps, 'onCopyClick' | 'onPanelToggle'> {
|
|
8
9
|
value: GenericObject | string;
|
|
9
10
|
mimeType: string;
|
|
10
11
|
encoding?: {
|
|
@@ -16,8 +17,9 @@ export interface MediaTypeSamplesProps {
|
|
|
16
17
|
properties?: GenericObject;
|
|
17
18
|
onChange: (key: any) => void;
|
|
18
19
|
onCopyClick?: () => void;
|
|
20
|
+
onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
|
|
19
21
|
}
|
|
20
|
-
export interface PayloadSamplesProps extends Pick<MediaTypeSamplesProps, 'properties' | 'onCopyClick'> {
|
|
22
|
+
export interface PayloadSamplesProps extends Pick<MediaTypeSamplesProps, 'properties' | 'onCopyClick' | 'onPanelToggle'> {
|
|
21
23
|
content: MediaContentModel;
|
|
22
24
|
onlyDefaultMimeType?: boolean;
|
|
23
25
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var 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"),jotai_1=require("jotai"),deepmerge_1=__importDefault(require("deepmerge")),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"),utils_2=require("../../utils");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,n;const i=(0,hooks_1.useTranslate)(),a=(0,hooks_1.useTelemetry)(),s=(0,react_1.useRef)(null),{mockServer:u,oAuth2RedirectURI:l,routingBasePath:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),c=(0,jotai_1.useAtomValue)(replay_1.allOperationsAtom),{parser:p}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),
|
|
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"),jotai_1=require("jotai"),deepmerge_1=__importDefault(require("deepmerge")),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"),utils_2=require("../../utils"),events_1=require("../../events");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,n;const i=(0,hooks_1.useTranslate)(),a=(0,hooks_1.useTelemetry)(),s=(0,react_1.useRef)(null),{mockServer:u,oAuth2RedirectURI:l,routingBasePath:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),c=(0,jotai_1.useAtomValue)(replay_1.allOperationsAtom),{parser:p,options:{events:d}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),m=(0,jotai_1.useAtomValue)(app_1.userClaimsAtom),[f,y]=(0,react_1.useState)(!1),[v,h]=(0,jotai_1.useAtom)(replay_1.replayStateAtom),[j,O]=(0,jotai_1.useAtom)(operation_1.allOperations),[[,A],x]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(s),(0,theme_1.useModalScrollLock)(f);const I=(0,react_1.useCallback)((({operations:e,environment:t,environments:r})=>{const o=e.reduce(((e,t)=>{t.requestValues.body=t.requestValues.body instanceof URLSearchParams?Object.fromEntries(t.requestValues.body.entries()):t.requestValues.body;const{path:r,method:o}=t.apiPath,n=utils_2.JsonPointer.compile(["paths",r,o]);return e[n]=(0,deepmerge_1.default)((0,operation_1.getDefaultOperationStore)(n),t),e}),{});O(Object.assign(Object.assign({},j),o)),x({environment:t,environments:r})}),[j,O,x]),b=()=>{if(v!==constants_1.LOADING_STATE.LOADING){if(!f&&(a.send({type:"openapi_docs.try_it.opened"}),(null==d?void 0:d.tryItOpen)&&e)){const t=(0,events_1.createTryItOpenEvent)({operation:e});d.tryItOpen(t)}y(!f)}v===constants_1.LOADING_STATE.NOT_LOADED&&h(constants_1.LOADING_STATE.LOADING)},g=(0,react_1.useCallback)((t=>{if((null==d?void 0:d.tryItSent)&&e){const r=(0,events_1.createTryItSentEvent)({operation:e,isSuccess:t});d.tryItSent(r)}}),[d,e]),D=(0,react_1.useCallback)((e=>{if(!e)return;const t=c.find((t=>t.operationId===e));return _+(null==t?void 0:t.href)}),[c,_]);return r?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:b,variant:"primary",iconPosition:"left",icon:v===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:v===constants_1.LOADING_STATE.LOADING?i("openapi.loading","Loading..."):i("openapi.tryIt","Try it")}),f&&(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:s,children:(0,jsx_runtime_1.jsx)(ReplayOverlay,Object.assign({activeOperationId:e.operationId||e.pointer,api:r,onRequestChange:I,onClose:b,onLoad:()=>h(constants_1.LOADING_STATE.LOADED),settings:{corsProxyUrl:t,mockServer:u,environment:A,apiId:null===(n=null===(o=null==p?void 0:p.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:l,disableCollectionsTab:!0,storageKey:_,convertOperationToReplayValue:(e,t,r)=>(0,utils_1.convertOperationToReplayValueForRedoc)(m)(e,t,r),getOperationUrl:D}},{onRequestSent:g}))})})})]}):null}exports.Replay=(0,react_1.memo)(ReplayComponent);
|
|
2
2
|
//# sourceMappingURL=Replay.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestDetails=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),common_1=require("../common"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),services_1=require("../../services"),Description_1=require("../OperationItem/Description"),Security_1=require("../Security"),ExpandAllButton_1=require("../ExpandAllButton"),RequestParameters_1=require("../RequestParameters"),app_1=require("../../jotai/app"),mediaContent_1=require("../../models/mediaContent");function RequestDetailsComponent({operation:{id:e,description:t,externalDocs:i,parameters:r,requestBody:
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestDetails=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),common_1=require("../common"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),services_1=require("../../services"),Description_1=require("../OperationItem/Description"),Security_1=require("../Security"),ExpandAllButton_1=require("../ExpandAllButton"),RequestParameters_1=require("../RequestParameters"),app_1=require("../../jotai/app"),mediaContent_1=require("../../models/mediaContent");function RequestDetailsComponent({operation:{id:e,description:t,externalDocs:i,parameters:r,requestBody:n,pointer:s,security:o,extensions:a,callbackId:u},title:l,translate:_,onPanelToggle:m}){const c=(0,jotai_1.useAtomValue)(app_1.activeMimeNameAtom),p=(0,react_1.useMemo)((()=>{var e;const t=r.some((({schema:e})=>!e.isPrimitive&&!e.isCircular));if(!(null==n?void 0:n.content)||t)return t;const{schema:i}=(0,mediaContent_1.getActiveMediaType)(n.content,c)||{};return null===(e=null==i?void 0:i.fields)||void 0===e?void 0:e.some((({schema:e})=>!e.isPrimitive&&!e.isCircular))}),[c,r,null==n?void 0:n.content]);return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(common_1.Row,{children:(0,jsx_runtime_1.jsxs)(HeadingWrapper,{children:[(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Title,{children:[e&&(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(e,"request")}),l||(null==_?void 0:_("openapi.request","Request")),p&&(0,jsx_runtime_1.jsx)(ExpandAllButton_1.ExpandAllButton,{operationPointer:s,type:"request",onPanelToggle:m})]}),(0,jsx_runtime_1.jsx)(Description_1.Description,{description:t||i?t:void 0,externalDocs:i,extensions:a}),(0,jsx_runtime_1.jsx)(Security_1.Security,{securities:o})]})}),(0,jsx_runtime_1.jsx)(RequestParameters_1.RequestParameters,{parameters:r,body:n,operationId:e,callbackId:u})]})}const HeadingWrapper=styled_components_1.default.div`
|
|
2
2
|
width: 100%;
|
|
3
3
|
`;exports.RequestDetails=(0,react_1.memo)(RequestDetailsComponent);
|
|
4
4
|
//# sourceMappingURL=RequestDetails.js.map
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { TFunction } from '@redocly/theme';
|
|
2
2
|
import type { ReactNode } from 'react';
|
|
3
3
|
import type { OperationModel } from '../../models';
|
|
4
|
+
import type { PanelType } from '../../events/types';
|
|
4
5
|
export interface RequestProps {
|
|
5
6
|
operation: Pick<OperationModel, 'security' | 'pointer' | 'description' | 'externalDocs' | 'extensions' | 'parameters' | 'requestBody' | 'id' | 'callbackId'>;
|
|
6
7
|
title?: string | ReactNode;
|
|
7
8
|
translate?: TFunction;
|
|
9
|
+
onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
|
|
8
10
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { OperationModel } from '../../models';
|
|
2
|
+
import type { PanelType } from '../../events/types';
|
|
2
3
|
interface RequestSamplesProps {
|
|
3
4
|
operation: OperationModel;
|
|
4
5
|
defaultLanguage?: string;
|
|
5
6
|
disableFooter?: boolean;
|
|
7
|
+
onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
|
|
6
8
|
}
|
|
7
9
|
export declare const RequestSamples: import("react").NamedExoticComponent<RequestSamplesProps>;
|
|
8
10
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __rest=this&&this.__rest||function(e,a){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)a.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o},__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"),operation_1=require("../../jotai/operation");function RequestSamplesComponent(e){var{operation:a,disableFooter:o}=e,
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,a){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)a.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o},__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"),operation_1=require("../../jotai/operation");function RequestSamplesComponent(e){var{operation:a,disableFooter:o,onPanelToggle:t}=e,r=__rest(e,["operation","disableFooter","onPanelToggle"]);const n=(0,hooks_1.useTelemetry)(),[{activeLanguage:l,languages:s},i]=(0,jotai_1.useAtom)(app_1.languageAtom),{samples:p}=(0,useCodeSamples_1.useCodeSamples)(a),{parser:u,options:{events:d,corsProxyUrl:_,hideReplay:m}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),c=!(o||a.isWebhook||m||a.hideReplay),g=!!(null==s?void 0:s.length),y=(0,hooks_1.useActiveWithFallback)(p,l),x=e=>{i(e),n.send({type:"openapi_docs.select_language.clicked",payload:{language:e}});const o=null==s?void 0:s.find((a=>a.key===e));if((null==d?void 0:d.codeSamplesLanguageSwitch)&&o){const e=(0,events_1.createLanguageSwitchEvent)({operation:a,sample:{lang:o.lang,label:o.title}});d.codeSamplesLanguageSwitch(e)}},v=(0,jotai_1.useAtomValue)(app_1.activeMimeNameAtom),{activeExampleName:j}=(0,jotai_1.useAtomValue)((0,operation_1.operationStore)(a.pointer)),S=(0,react_1.useCallback)((({lang:e,title:o})=>()=>{var t;const r=(0,events_1.createCodeSampleCopyEvent)({operation:a,label:o,lang:e,type:"request",activeMimeName:v,activeExampleName:j});n.send({type:"openapi_docs.copy_code_snippet.clicked",payload:{snippet_type:"request",language:e}}),null===(t=null==d?void 0:d.codeSamplesCopy)||void 0===t||t.call(d,r)}),[a,n,d,v,j]),h=(0,react_1.useCallback)((e=>{null==t||t(e,"request-samples")}),[t]),f=()=>(0,jsx_runtime_1.jsxs)(StyledPanelHeader,{isExpandable:!1,withReplay:!g&&c,children:[(0,jsx_runtime_1.jsx)(StyledServerListDropdown,{operation:a}),g&&(0,jsx_runtime_1.jsx)(Language_1.LanguageDropdown,{activeTab:y,samples:p,onChange:x}),!g&&c&&(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:a,corsProxyUrl:_,fullOpenApi:u.definition})]}),q=(0,react_1.useMemo)((()=>{if(c&&g)return(0,jsx_runtime_1.jsx)(ReplayWrapper,{children:(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:a,corsProxyUrl:_,fullOpenApi:u.definition})})}),[c,g,a,_,u.definition]),b=(0,react_1.useMemo)((()=>p.map((e=>e.key===y?(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:S(e),onPanelToggle:h},r)):(0,jsx_runtime_1.jsx)(CodeSample_1.CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:a,onCopyClick:S(e)},r))},e.key+a.id):null))),[y,S,h,a,r,p]);return s&&!p.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:f,isExpandable:!1,expanded:!1}):p.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:f,footer:q,isExpandable:!1,children:b}):null}exports.RequestSamples=(0,react_1.memo)(RequestSamplesComponent);const StyledPanelHeader=(0,styled_components_1.default)(theme_1.PanelHeader)`
|
|
2
2
|
flex-wrap: nowrap;
|
|
3
3
|
${({withReplay:e})=>e&&"padding: var(--spacing-xs) var(--spacing-sm);"}
|
|
4
4
|
`,StyledServerListDropdown=(0,styled_components_1.default)(ServerListDropdown_1.ServerListDropdown)`
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { ReactElement } from 'react';
|
|
2
2
|
import type { OperationModel } from '../../models';
|
|
3
|
+
import type { PanelType } from '../../events/types';
|
|
3
4
|
export interface ResponseSamplesProps {
|
|
4
5
|
operation: OperationModel;
|
|
5
6
|
activeResponseTab?: string;
|
|
6
7
|
onTabChange: (tab: string) => void;
|
|
8
|
+
onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
|
|
7
9
|
}
|
|
8
|
-
declare function ResponseSamplesComponent({ operation, activeResponseTab, onTabChange, }: ResponseSamplesProps): ReactElement | null;
|
|
10
|
+
declare function ResponseSamplesComponent({ operation, activeResponseTab, onTabChange, onPanelToggle, }: ResponseSamplesProps): ReactElement | null;
|
|
9
11
|
export declare const ResponseSamples: import("react").MemoExoticComponent<typeof ResponseSamplesComponent>;
|
|
10
12
|
export {};
|
|
@@ -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"),hooks_1=require("../../hooks"),app_1=require("../../jotai/app"),operation_1=require("../../jotai/operation");function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:a}){const
|
|
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"),app_1=require("../../jotai/app"),operation_1=require("../../jotai/operation");function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:a,onPanelToggle:s}){const n=(0,hooks_1.useTelemetry)(),{events:t}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),r=(0,hooks_1.useTranslate)(),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})),i=e.responses.map((({code:e})=>({key:e,title:e}))),p=(null==i?void 0:i.find((({key:e})=>e===o)))||(null==i?void 0:i[0]),m=(0,jotai_1.useAtomValue)(app_1.activeMimeNameAtom),{activeExampleName:u}=(0,jotai_1.useAtomValue)((0,operation_1.operationStore)(e.pointer)),_=(0,react_1.useCallback)((()=>{var o;n.send({type:"openapi_docs.copy_code_snippet.clicked",payload:{snippet_type:"response"}});const a=(0,events_1.createCodeSampleCopyEvent)({operation:e,type:"response",activeMimeName:m,activeExampleName:u});null===(o=null==t?void 0:t.codeSamplesCopy)||void 0===o||o.call(t,a)}),[n,e,t,m,u]),c=(0,react_1.useCallback)((e=>{null==s||s(e,"response-samples")}),[s]);if(!l.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:i,activeTab:p,onChange:e=>a(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===p.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:_,onPanelToggle:c}):(0,jsx_runtime_1.jsx)(PayloadSamples_1.StyledCodeBlock,{source:r("openapi.noResponseContent","No content")})},e.code):null}))})}exports.ResponseSamples=(0,react_1.memo)(ResponseSamplesComponent);
|
|
2
2
|
//# sourceMappingURL=ResponseSamples.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { ResponseModel } from '../../models';
|
|
3
3
|
import type { TabType } from '../../models/tab';
|
|
4
|
+
import type { PanelType } from '../../events/types';
|
|
4
5
|
interface IOperationResponseList {
|
|
5
6
|
responses: ResponseModel[];
|
|
6
7
|
operationId: string;
|
|
@@ -9,6 +10,7 @@ interface IOperationResponseList {
|
|
|
9
10
|
renderTitle?: (tab: TabType) => ReactNode;
|
|
10
11
|
activeResponseTab?: string;
|
|
11
12
|
onTabChange?: (key: string) => void;
|
|
13
|
+
onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
|
|
12
14
|
}
|
|
13
15
|
export declare const OperationResponseList: import("react").NamedExoticComponent<IOperationResponseList>;
|
|
14
16
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationResponseList=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),react_router_dom_1=require("react-router-dom"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),Tabs_1=require("../Tabs"),ResponseDetails_1=require("./ResponseDetails"),services_1=require("../../services"),styled_1=require("./styled"),LinkToField_1=require("../common/LinkToField"),utils_1=require("../../utils"),ExpandAllButton_1=require("../ExpandAllButton"),hooks_1=require("../../hooks"),models_1=require("../../models"),app_1=require("../../jotai/app");exports.OperationResponseList=(0,react_1.memo)((({responses:e,renderTitle:t,operationId:s,operationPointer:i,activeResponseTab:
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationResponseList=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),react_router_dom_1=require("react-router-dom"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),Tabs_1=require("../Tabs"),ResponseDetails_1=require("./ResponseDetails"),services_1=require("../../services"),styled_1=require("./styled"),LinkToField_1=require("../common/LinkToField"),utils_1=require("../../utils"),ExpandAllButton_1=require("../ExpandAllButton"),hooks_1=require("../../hooks"),models_1=require("../../models"),app_1=require("../../jotai/app");exports.OperationResponseList=(0,react_1.memo)((({responses:e,renderTitle:t,operationId:s,operationPointer:i,activeResponseTab:n,onTabChange:o,callbackId:r,onPanelToggle:a})=>{const l=(0,react_router_dom_1.useLocation)(),u=(0,hooks_1.useTranslate)(),_=(0,jotai_1.useAtomValue)(app_1.activeMimeNameAtom),d=e.map((({code:e})=>({key:e,title:e}))),p=d.find((({key:e})=>e===n||(0,utils_1.pathIncludesLink)(l,s)&&(0,utils_1.pathIncludesLink)(l,`c=${e}`))),{activeTab:c,handleTabChange:m}=(0,Tabs_1.useTabsState)({tabs:d,defaultTab:null==p?void 0:p.key,onChange:o}),x=d.find((e=>e.key===(n||c))),j=e.find((e=>e.code===(null==x?void 0:x.key))),v=(0,react_1.useMemo)((()=>{var e;if(!(null==j?void 0:j.content))return!1;const{schema:t}=(0,models_1.getActiveMediaType)(null==j?void 0:j.content,_)||{};return null===(e=null==t?void 0:t.fields)||void 0===e?void 0:e.some((({schema:e})=>!e.isPrimitive&&!e.isCircular))}),[_,null==j?void 0:j.content]);return x?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(TitleWrap,{children:[(null==t?void 0:t(x))||(0,jsx_runtime_1.jsxs)(styled_1.StyledTitle,{children:[(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(s,`response&c=${x.key}`)}),u("openapi.responses","Responses")]}),(0,jsx_runtime_1.jsx)(Tabs_1.Tabs,{tabs:d,activeTab:x,onChange:m}),v&&(0,jsx_runtime_1.jsx)(ExpandAllButton_1.ExpandAllButton,{type:"response",operationPointer:i,onPanelToggle:a})]}),j?(0,jsx_runtime_1.jsx)("div",{children:(0,jsx_runtime_1.jsx)(ResponseDetails_1.ResponseDetails,{response:j,operationId:s,callbackId:r})},j.code):null]}):null}));const TitleWrap=(0,styled_components_1.default)(styled_1.Row)`
|
|
2
2
|
flex-wrap: wrap;
|
|
3
3
|
gap: var(--spacing-unit);
|
|
4
4
|
`;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServerListDropdown=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),common_1=require("../common"),styled_1=require("./styled"),PanelItem_1=require("../PanelItem"),services_1=require("../../services"),utils_1=require("../../utils"),app_1=require("../../jotai/app"),hooks_1=require("../../hooks"),environments_1=require("../../utils/environments"),ServerListDropdown=({operation:e,className:r})=>{const t=(0,hooks_1.useTelemetry)(),[[s],
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServerListDropdown=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),common_1=require("../common"),styled_1=require("./styled"),PanelItem_1=require("../PanelItem"),services_1=require("../../services"),utils_1=require("../../utils"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),hooks_1=require("../../hooks"),environments_1=require("../../utils/environments"),events_1=require("../../events"),ServerListDropdown=({operation:e,className:r})=>{const t=(0,hooks_1.useTelemetry)(),[[s],o]=(0,jotai_1.useAtom)(app_1.environmentAtom),{options:{events:i}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),n=(0,hooks_1.useActiveWithFallback)(e.servers.map((e=>Object.assign(Object.assign({},e),{key:e.url}))),s.server),a=(0,react_1.useCallback)((e=>{e.stopPropagation()}),[]),_=(0,react_1.useCallback)((r=>()=>{if(1!==e.servers.length&&(o({environment:(0,environments_1.getServerEnvName)(r)}),t.send({type:"openapi_docs.switch_servers.clicked",payload:{server:(0,environments_1.getServerEnvName)(r)}}),(null==i?void 0:i.targetServerSwitch)&&r)){const t=(0,events_1.createTargetServerSwitchEvent)({operation:e,serverUrl:r.url});i.targetServerSwitch(t)}}),[e,o,t,i]),l=(0,react_1.useMemo)((()=>e.servers.map((r=>{const t=(0,services_1.joinWithSeparator)((0,utils_1.replaceVariables)(r),e.path);return(0,jsx_runtime_1.jsx)(styled_1.StyledDropdownMenuItem,{onAction:_(r),children:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:r.description,title:t,actions:[(0,jsx_runtime_1.jsx)(styled_1.StyledCopyButton,{data:t,toasterPlacement:"left",onCopyClick:a},t)],active:r.url===n,withCheckmark:!0})},t)}))),[e.servers,e.path,_,a,n]);return(0,jsx_runtime_1.jsx)(theme_1.Dropdown,{className:r,trigger:(0,jsx_runtime_1.jsxs)(styled_1.PathWrapper,{variant:"ghost",children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:e.httpVerb,children:e.httpVerb}),(0,jsx_runtime_1.jsx)(styled_1.Path,{children:e.path})]}),withArrow:!0,children:(0,jsx_runtime_1.jsx)(theme_1.DropdownMenu,{children:l})})};exports.ServerListDropdown=ServerListDropdown;
|
|
2
2
|
//# sourceMappingURL=ServerListDropdown.js.map
|
package/lib/events/index.d.ts
CHANGED
|
@@ -3,3 +3,6 @@ export { AnalyticsEventType } from './types';
|
|
|
3
3
|
export { createLanguageSwitchEvent } from './languageSwitch';
|
|
4
4
|
export { createPanelToggleEvent } from './panelToggle';
|
|
5
5
|
export { createCodeSampleCopyEvent } from './codeSampleCopy';
|
|
6
|
+
export { createTargetServerSwitchEvent } from './serverSwitch';
|
|
7
|
+
export { createTryItOpenEvent } from './tryItOpen';
|
|
8
|
+
export { createTryItSentEvent } from './tryItSent';
|
package/lib/events/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createCodeSampleCopyEvent=exports.createPanelToggleEvent=exports.createLanguageSwitchEvent=exports.AnalyticsEventType=void 0;var types_1=require("./types");Object.defineProperty(exports,"AnalyticsEventType",{enumerable:!0,get:function(){return types_1.AnalyticsEventType}});var languageSwitch_1=require("./languageSwitch");Object.defineProperty(exports,"createLanguageSwitchEvent",{enumerable:!0,get:function(){return languageSwitch_1.createLanguageSwitchEvent}});var panelToggle_1=require("./panelToggle");Object.defineProperty(exports,"createPanelToggleEvent",{enumerable:!0,get:function(){return panelToggle_1.createPanelToggleEvent}});var codeSampleCopy_1=require("./codeSampleCopy");Object.defineProperty(exports,"createCodeSampleCopyEvent",{enumerable:!0,get:function(){return codeSampleCopy_1.createCodeSampleCopyEvent}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTryItSentEvent=exports.createTryItOpenEvent=exports.createTargetServerSwitchEvent=exports.createCodeSampleCopyEvent=exports.createPanelToggleEvent=exports.createLanguageSwitchEvent=exports.AnalyticsEventType=void 0;var types_1=require("./types");Object.defineProperty(exports,"AnalyticsEventType",{enumerable:!0,get:function(){return types_1.AnalyticsEventType}});var languageSwitch_1=require("./languageSwitch");Object.defineProperty(exports,"createLanguageSwitchEvent",{enumerable:!0,get:function(){return languageSwitch_1.createLanguageSwitchEvent}});var panelToggle_1=require("./panelToggle");Object.defineProperty(exports,"createPanelToggleEvent",{enumerable:!0,get:function(){return panelToggle_1.createPanelToggleEvent}});var codeSampleCopy_1=require("./codeSampleCopy");Object.defineProperty(exports,"createCodeSampleCopyEvent",{enumerable:!0,get:function(){return codeSampleCopy_1.createCodeSampleCopyEvent}});var serverSwitch_1=require("./serverSwitch");Object.defineProperty(exports,"createTargetServerSwitchEvent",{enumerable:!0,get:function(){return serverSwitch_1.createTargetServerSwitchEvent}});var tryItOpen_1=require("./tryItOpen");Object.defineProperty(exports,"createTryItOpenEvent",{enumerable:!0,get:function(){return tryItOpen_1.createTryItOpenEvent}});var tryItSent_1=require("./tryItSent");Object.defineProperty(exports,"createTryItSentEvent",{enumerable:!0,get:function(){return tryItSent_1.createTryItSentEvent}});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTargetServerSwitchEvent=void 0;const creator_1=require("./creator"),types_1=require("./types"),targetServerSwitchEvent=(0,creator_1.createTrackingEvent)(types_1.AnalyticsEventType.TargetServerSwitched),createTargetServerSwitchEvent=({operation:e,serverUrl:r})=>targetServerSwitchEvent({resource:"Redocly_CodeSample",action:"TargetServerSwitched",operationId:e.id,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.name,serverUrl:r});exports.createTargetServerSwitchEvent=createTargetServerSwitchEvent;
|
|
2
|
+
//# sourceMappingURL=serverSwitch.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTryItOpenEvent=void 0;const creator_1=require("./creator"),types_1=require("./types"),tryItOpenEvent=(0,creator_1.createTrackingEvent)(types_1.AnalyticsEventType.TryItOpen),createTryItOpenEvent=({operation:e})=>tryItOpenEvent({resource:"Redocly_OperationTryIt",action:"Opened",operationId:e.id,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.name});exports.createTryItOpenEvent=createTryItOpenEvent;
|
|
2
|
+
//# sourceMappingURL=tryItOpen.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTryItSentEvent=void 0;const creator_1=require("./creator"),types_1=require("./types"),tryItSentEvent=(0,creator_1.createTrackingEvent)(types_1.AnalyticsEventType.TryItSent),createTryItSentEvent=({operation:e,isSuccess:t})=>tryItSentEvent({resource:"Redocly_OperationTryIt",action:t?"Sent":"ValidationFailed",operationId:e.id,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.name});exports.createTryItSentEvent=createTryItSentEvent;
|
|
2
|
+
//# sourceMappingURL=tryItSent.js.map
|
package/lib/events/types.d.ts
CHANGED
|
@@ -21,16 +21,25 @@ export interface TargetServerSwitchProps {
|
|
|
21
21
|
operation: OperationModel;
|
|
22
22
|
serverUrl: string;
|
|
23
23
|
}
|
|
24
|
+
export interface TryItOpenProps {
|
|
25
|
+
operation: OperationModel;
|
|
26
|
+
}
|
|
27
|
+
export interface TryItSentProps {
|
|
28
|
+
operation: OperationModel;
|
|
29
|
+
isSuccess: boolean;
|
|
30
|
+
}
|
|
24
31
|
export declare enum AnalyticsEventType {
|
|
25
32
|
CodeSampleLanguageSwitched = "CodeSampleLanguageSwitched",
|
|
26
33
|
CodeSampleCopied = "CodeSampleCopied",
|
|
27
34
|
OperationServerExpanded = "OperationServerExpanded",
|
|
28
35
|
PanelToggle = "PanelToggle",
|
|
29
|
-
TargetServerSwitched = "TargetServerSwitched"
|
|
36
|
+
TargetServerSwitched = "TargetServerSwitched",
|
|
37
|
+
TryItOpen = "TryItOpen",
|
|
38
|
+
TryItSent = "TryItSent"
|
|
30
39
|
}
|
|
31
40
|
export interface AnalyticsEvent {
|
|
32
41
|
eventType: AnalyticsEventType;
|
|
33
|
-
resource: 'Redocly_CodeSample' | 'Redocly_Operation';
|
|
42
|
+
resource: 'Redocly_CodeSample' | 'Redocly_Operation' | 'Redocly_OperationTryIt';
|
|
34
43
|
action: 'LanguageSwitched' | 'PanelToggled' | 'Opened' | 'Closed' | 'NavigatedOverrideLink' | 'Sent' | 'ValidationFailed' | 'CodeSampleCopied' | 'TargetServerSwitched';
|
|
35
44
|
operationId?: string;
|
|
36
45
|
operationPath: string;
|
|
@@ -49,8 +58,9 @@ export interface CodeSamplesCopiedEvent extends AnalyticsEvent {
|
|
|
49
58
|
exampleId?: string;
|
|
50
59
|
exampleMimeType?: string;
|
|
51
60
|
}
|
|
61
|
+
export type PanelType = 'request' | 'responses' | 'request-samples' | 'response-samples';
|
|
52
62
|
export interface PanelToggleEvent extends AnalyticsEvent {
|
|
53
|
-
panelType:
|
|
63
|
+
panelType: PanelType;
|
|
54
64
|
state: 'expanded' | 'collapsed';
|
|
55
65
|
operationId: string;
|
|
56
66
|
operationPath: string;
|
|
@@ -60,9 +70,14 @@ export interface PanelToggleEvent extends AnalyticsEvent {
|
|
|
60
70
|
export interface TargetServerSwitchedEvent extends AnalyticsEvent {
|
|
61
71
|
serverUrl: string;
|
|
62
72
|
}
|
|
73
|
+
export type TryItOpenedEvent = AnalyticsEvent;
|
|
74
|
+
export type TryItSentEvent = AnalyticsEvent;
|
|
75
|
+
export type EventType = CodeSamplesLanguageSwitchedEvent | CodeSamplesCopiedEvent | TryItOpenedEvent | TryItSentEvent | PanelToggleEvent | TargetServerSwitchedEvent;
|
|
63
76
|
export type Events = {
|
|
64
77
|
codeSamplesLanguageSwitch?: (event: CodeSamplesLanguageSwitchedEvent) => void;
|
|
65
78
|
codeSamplesCopy?: (event: CodeSamplesCopiedEvent) => void;
|
|
79
|
+
tryItOpen?: (event: TryItOpenedEvent) => void;
|
|
80
|
+
tryItSent?: (event: TryItSentEvent) => void;
|
|
66
81
|
panelToggle?: (event: PanelToggleEvent) => void;
|
|
67
82
|
targetServerSwitch?: (event: TargetServerSwitchedEvent) => void;
|
|
68
83
|
};
|
package/lib/events/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var AnalyticsEventType;Object.defineProperty(exports,"__esModule",{value:!0}),exports.AnalyticsEventType=void 0,function(e){e.CodeSampleLanguageSwitched="CodeSampleLanguageSwitched",e.CodeSampleCopied="CodeSampleCopied",e.OperationServerExpanded="OperationServerExpanded",e.PanelToggle="PanelToggle",e.TargetServerSwitched="TargetServerSwitched"}(AnalyticsEventType||(exports.AnalyticsEventType=AnalyticsEventType={}));
|
|
1
|
+
"use strict";var AnalyticsEventType;Object.defineProperty(exports,"__esModule",{value:!0}),exports.AnalyticsEventType=void 0,function(e){e.CodeSampleLanguageSwitched="CodeSampleLanguageSwitched",e.CodeSampleCopied="CodeSampleCopied",e.OperationServerExpanded="OperationServerExpanded",e.PanelToggle="PanelToggle",e.TargetServerSwitched="TargetServerSwitched",e.TryItOpen="TryItOpen",e.TryItSent="TryItSent"}(AnalyticsEventType||(exports.AnalyticsEventType=AnalyticsEventType={}));
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { PanelType } from '../../events/types';
|
|
1
2
|
interface ExpandAllButtonProps {
|
|
2
3
|
operationPointer: string;
|
|
3
4
|
type: 'request' | 'response';
|
|
5
|
+
onPanelToggle?: (isExpanded: boolean, panelType: PanelType) => void;
|
|
4
6
|
}
|
|
5
|
-
export declare const ExpandAllButton: ({ operationPointer, type }: ExpandAllButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const ExpandAllButton: ({ operationPointer, type, onPanelToggle, }: ExpandAllButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import styled from"styled-components";import{Button,MaximizeIcon}from"@redocly/theme";import{useAtom}from"jotai/index";import{operationStore}from"../../jotai/operation";import{useTelemetry,useTranslate}from"../../hooks";export const ExpandAllButton=({operationPointer:e,type:o})=>{const
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import styled from"styled-components";import{Button,MaximizeIcon}from"@redocly/theme";import{useAtom}from"jotai/index";import{operationStore}from"../../jotai/operation";import{useTelemetry,useTranslate}from"../../hooks";export const ExpandAllButton=({operationPointer:e,type:o,onPanelToggle:t})=>{const n=useTranslate(),[l,a]=useAtom(operationStore(e)),s=useTelemetry();return _jsx(StyledButton,{icon:_jsx(MaximizeIcon,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:()=>{const e=!l[o].expandedAll;s.send({type:"openapi_docs.expand_collapse_all.clicked",payload:{is_expanded:e}}),a({[o]:{expandedAll:e}}),null==t||t(e,"request"===o?"request":"responses")},children:l[o].expandedAll?n("openapi.collapseAll","Collapse all"):n("openapi.expandAll","Expand all")})};const StyledButton=styled(Button)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
`;
|
|
4
4
|
//# sourceMappingURL=ExpandAllButton.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom,userClaimsAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom,userClaimsAtom}from"../../jotai/app";import{globalStoreAtom,globalOptionsAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";import{createPanelToggleEvent}from"../../events";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:n,options:i}=useAtomValue(globalStoreAtom),{events:r}=useAtomValue(globalOptionsAtom),p=useAtomValue(userClaimsAtom),d=useAtomValue(layoutAtom),[m,c]=useState(),{unstable_hooks:u,feedback:k}=i,g=useMemo((()=>getOperation(n,e,a,i,o,void 0,p)),[o,e,i,a,n,p]),{name:S,deprecated:b,isWebhook:x,badges:h}=g||{},f=d===LayoutVariant.STACKED,j=(null==k?void 0:k.type)||"sentiment",_=!0!==(null==k?void 0:k.hide),[O,v]=useState(null),y=useCallback((e=>{m!==e&&c(e)}),[m]),R=useCallback(((e,a)=>{var o;if(!a)return;const t=createPanelToggleEvent({operation:g,isExpanded:e,panelType:a});null===(o=null==r?void 0:r.panelToggle)||void 0===o||o.call(r,t)}),[r,g]),A=useMemo((()=>_?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:j,settings:k.settings,path:joinWithSeparator(i.routingBasePath,g.href)})}):null),[_,j,k.settings,i.routingBasePath,g.href]);return _jsxs(OperationRow,{layout:d,children:[_jsx(OperationSubRowStyled,{layout:d,children:_jsxs(SamplesMiddlePanel,{isStacked:f,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==u?void 0:u.BeforeOperation),props:{operation:g}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${S}`}),_jsx(CustomBadges,{badges:h,children:S}),b&&_jsx(StyledBadge,{deprecated:!0,children:l("openapi.badges.deprecated","Deprecated")}),x&&_jsx(StyledBadge,{children:l("openapi.badges.webhook","Webhook")})]})]})}),_jsxs(OperationSubRowStyled,{layout:d,children:[_jsx(SamplesMiddlePanel,{isStacked:f,children:_jsx(RequestDetails,{operation:g,translate:l,onPanelToggle:R})}),_jsx(OperationSamplesPanel,{isStacked:f,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:g,onPanelToggle:R})})]}),_jsxs(OperationSubRowStyled,{layout:d,children:[_jsx(SamplesMiddlePanel,{isStacked:f,children:(null===(t=g.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:g.responses,operationId:g.id,operationPointer:g.pointer,callbackId:g.callbackId,activeResponseTab:m,onTabChange:y,onPanelToggle:R}):null}),_jsx(OperationSamplesPanel,{isStacked:f,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:g,activeResponseTab:m,onTabChange:y,onPanelToggle:R})})]}),_jsxs(OperationSubRowStyled,{layout:d,children:[_jsxs(SamplesMiddlePanel,{isStacked:f,children:[(null===(s=g.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(g.id,"callbacks")}),l("openapi.callbacks","Callbacks")]}),_jsx(CallbacksList,{callbacks:g.callbacks,onExpand:v,selectedCallback:O})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==u?void 0:u.AfterOperation),props:{operation:g}})]}),O?_jsx(OperationSamplesPanel,{isStacked:f,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:O,translate:l})}):null]}),_jsx(OperationSubRowStyled,{layout:d,children:_jsx(SamplesMiddlePanel,{isStacked:f,fullWidth:!0,children:A})})]})}export const OperationItem=memo(OperationItemComponent);export const OperationSamplesPanel=styled(SamplesPanel)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
--code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
|
|
4
4
|
`;const FeedbackWrapper=styled.div`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ReactElement } from 'react';
|
|
2
2
|
import type { ExampleProps } from './types';
|
|
3
|
-
export declare function Example({ example, mimeType, onCopyClick }: ExampleProps): ReactElement;
|
|
3
|
+
export declare function Example({ example, mimeType, onCopyClick, onPanelToggle, }: ExampleProps): ReactElement;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{ExampleValue}from"./ExampleValue";export function Example({example:e,mimeType:
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{ExampleValue}from"./ExampleValue";export function Example({example:e,mimeType:l,onCopyClick:o,onPanelToggle:a}){return _jsx(ExampleValue,{value:e.value,mimeType:l,encoding:e.encoding,onCopyClick:o,onPanelToggle:a})}
|
|
2
2
|
//# sourceMappingURL=Example.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ExampleValueProps } from './types';
|
|
2
|
-
export declare function ExampleValue({ value, mimeType, encoding, onCopyClick, }: ExampleValueProps): React.ReactNode;
|
|
2
|
+
export declare function ExampleValue({ value, mimeType, encoding, onCopyClick, onPanelToggle, }: ExampleValueProps): React.ReactNode;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{JsonViewer}from"@redocly/theme";import{isFormUrlEncoded,isJsonLike,langFromMime,urlFormEncodePayload}from"../../utils";import{globalOptionsAtom}from"../../jotai/store";import{StyledCodeBlock}from"./styled";export function ExampleValue({value:o,mimeType:e,encoding:l,onCopyClick:r}){const{jsonSamplesExpandLevel:m}=useAtomValue(globalOptionsAtom);return isJsonLike(e)?_jsx(JsonViewer,{data:o,expandLevel:m,onCopyClick:r}):("object"==typeof o&&(o=isFormUrlEncoded(e)?urlFormEncodePayload(o,l):JSON.stringify(o,null,2)),_jsx(StyledCodeBlock,{lang:langFromMime(e),source:o,header:{className:"code-block-header",controls:{copy:{onClick:r}}}}))}
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{JsonViewer}from"@redocly/theme";import{isFormUrlEncoded,isJsonLike,langFromMime,urlFormEncodePayload}from"../../utils";import{globalOptionsAtom}from"../../jotai/store";import{StyledCodeBlock}from"./styled";export function ExampleValue({value:o,mimeType:e,encoding:l,onCopyClick:r,onPanelToggle:n}){const{jsonSamplesExpandLevel:m}=useAtomValue(globalOptionsAtom);return isJsonLike(e)?_jsx(JsonViewer,{data:o,expandLevel:m,onCopyClick:r,onPanelToggle:n}):("object"==typeof o&&(o=isFormUrlEncoded(e)?urlFormEncodePayload(o,l):JSON.stringify(o,null,2)),_jsx(StyledCodeBlock,{lang:langFromMime(e),source:o,header:{className:"code-block-header",controls:{copy:{onClick:r}}}}))}
|
|
2
2
|
//# sourceMappingURL=ExampleValue.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import merge from"deepmerge";import styled from"styled-components";import{Markdown}from"../Markdown";import{Example}from"./Example";import{ExampleSwitch,useExampleKey}from"../Samples";import{arrayMergeStrategy}from"../../services/utils";import{StyledCodeBlock}from"./styled";import{useTranslate}from"../../hooks";function MediaTypeSamplesComponent({mediaType:e,properties:
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import merge from"deepmerge";import styled from"styled-components";import{Markdown}from"../Markdown";import{Example}from"./Example";import{ExampleSwitch,useExampleKey}from"../Samples";import{arrayMergeStrategy}from"../../services/utils";import{StyledCodeBlock}from"./styled";import{useTranslate}from"../../hooks";function MediaTypeSamplesComponent({mediaType:e,properties:o,onChange:a,onCopyClick:r,onPanelToggle:m}){const s=e.examples||e.formExamples||{},t=e.name,n=Object.keys(s),p=useTranslate(),{exampleKey:l}=useExampleKey(e.operation,s),i=1===n.length?Object.values(s)[0]:s[l];if(!n.length)return _jsx(StyledCodeBlock,{lang:"clike",source:p("openapi.noResponseExample","No response example"),header:{controls:!1}});const c=o?Object.assign(Object.assign({},i),{value:merge(i.value,o,{arrayMerge:arrayMergeStrategy})}):i,x=c.description;return _jsxs(_Fragment,{children:[_jsx(ExampleSwitch,{examples:s,exampleKey:l,onChange:a}),x&&_jsx(StyledMarkdown,{source:x}),_jsx(Example,{example:c,mimeType:t,onCopyClick:r,onPanelToggle:m})]})}const StyledMarkdown=styled(Markdown)`
|
|
2
2
|
margin: 0 var(--spacing-md) var(--spacing-sm);
|
|
3
3
|
`;export const MediaTypeSamples=memo(MediaTypeSamplesComponent);
|
|
4
4
|
//# sourceMappingURL=MediaTypeSamples.js.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { PanelType } from '../../events/types';
|
|
1
2
|
import type { ExampleModel, MediaContentModel, MediaTypeModel } from '../../models';
|
|
2
3
|
import type { OpenAPIEncoding } from '../../types';
|
|
3
|
-
export interface ExampleProps extends Pick<MediaTypeSamplesProps, 'onCopyClick'> {
|
|
4
|
+
export interface ExampleProps extends Pick<MediaTypeSamplesProps, 'onCopyClick' | 'onPanelToggle'> {
|
|
4
5
|
example: ExampleModel;
|
|
5
6
|
mimeType: string;
|
|
6
7
|
}
|
|
7
|
-
export interface ExampleValueProps extends Pick<MediaTypeSamplesProps, 'onCopyClick'> {
|
|
8
|
+
export interface ExampleValueProps extends Pick<MediaTypeSamplesProps, 'onCopyClick' | 'onPanelToggle'> {
|
|
8
9
|
value: GenericObject | string;
|
|
9
10
|
mimeType: string;
|
|
10
11
|
encoding?: {
|
|
@@ -16,8 +17,9 @@ export interface MediaTypeSamplesProps {
|
|
|
16
17
|
properties?: GenericObject;
|
|
17
18
|
onChange: (key: any) => void;
|
|
18
19
|
onCopyClick?: () => void;
|
|
20
|
+
onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
|
|
19
21
|
}
|
|
20
|
-
export interface PayloadSamplesProps extends Pick<MediaTypeSamplesProps, 'properties' | 'onCopyClick'> {
|
|
22
|
+
export interface PayloadSamplesProps extends Pick<MediaTypeSamplesProps, 'properties' | 'onCopyClick' | 'onPanelToggle'> {
|
|
21
23
|
content: MediaContentModel;
|
|
22
24
|
onlyDefaultMimeType?: boolean;
|
|
23
25
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,o,
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(n,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))};import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{lazy,memo,Suspense,useCallback,useRef,useState}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import merge from"deepmerge";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{allOperationsAtom,replayStateAtom}from"../../jotai/replay";import{allOperations,getDefaultOperationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{environmentAtom,userClaimsAtom}from"../../jotai/app";import{convertOperationToReplayValueForRedoc}from"./utils";import{useTranslate,useTelemetry}from"../../hooks";import{JsonPointer}from"../../utils";import{createTryItOpenEvent,createTryItSentEvent}from"../../events";function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:o}){var r,n;const a=useTranslate(),i=useTelemetry(),s=useRef(null),{mockServer:l,oAuth2RedirectURI:u,routingBasePath:p}=useAtomValue(globalOptionsAtom),m=useAtomValue(allOperationsAtom),{parser:c,options:{events:d}}=useAtomValue(globalStoreAtom),y=useAtomValue(userClaimsAtom),[A,f]=useState(!1),[v,O]=useAtom(replayStateAtom),[I,T]=useAtom(allOperations),[[,S],_]=useAtom(environmentAtom);useFocusTrap(s),useModalScrollLock(A);const h=useCallback((({operations:e,environment:t,environments:o})=>{const r=e.reduce(((e,t)=>{t.requestValues.body=t.requestValues.body instanceof URLSearchParams?Object.fromEntries(t.requestValues.body.entries()):t.requestValues.body;const{path:o,method:r}=t.apiPath,n=JsonPointer.compile(["paths",o,r]);return e[n]=merge(getDefaultOperationStore(n),t),e}),{});T(Object.assign(Object.assign({},I),r)),_({environment:t,environments:o})}),[I,T,_]),g=()=>{if(v!==LOADING_STATE.LOADING){if(!A&&(i.send({type:"openapi_docs.try_it.opened"}),(null==d?void 0:d.tryItOpen)&&e)){const t=createTryItOpenEvent({operation:e});d.tryItOpen(t)}f(!A)}v===LOADING_STATE.NOT_LOADED&&O(LOADING_STATE.LOADING)},j=useCallback((t=>{if((null==d?void 0:d.tryItSent)&&e){const o=createTryItSentEvent({operation:e,isSuccess:t});d.tryItSent(o)}}),[d,e]),R=useCallback((e=>{if(!e)return;const t=m.find((t=>t.operationId===e));return p+(null==t?void 0:t.href)}),[m,p]);return o?_jsxs(_Fragment,{children:[_jsx(Button,{onClick:g,variant:"primary",iconPosition:"left",icon:v===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:v===LOADING_STATE.LOADING?a("openapi.loading","Loading..."):a("openapi.tryIt","Try it")}),A&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:s,children:_jsx(ReplayOverlay,Object.assign({activeOperationId:e.operationId||e.pointer,api:o,onRequestChange:h,onClose:g,onLoad:()=>O(LOADING_STATE.LOADED),settings:{corsProxyUrl:t,mockServer:l,environment:S,apiId:null===(n=null===(r=null==c?void 0:c.definition.info)||void 0===r?void 0:r["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:u,disableCollectionsTab:!0,storageKey:p,convertOperationToReplayValue:(e,t,o)=>convertOperationToReplayValueForRedoc(y)(e,t,o),getOperationUrl:R}},{onRequestSent:j}))})})})]}):null}export const Replay=memo(ReplayComponent);
|
|
2
2
|
//# sourceMappingURL=Replay.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useMemo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{Row}from"../common";import{Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{makeDeepLink}from"../../services";import{Description}from"../OperationItem/Description";import{Security}from"../Security";import{ExpandAllButton}from"../ExpandAllButton";import{RequestParameters}from"../RequestParameters";import{activeMimeNameAtom}from"../../jotai/app";import{getActiveMediaType}from"../../models/mediaContent";function RequestDetailsComponent({operation:{id:e,description:t,externalDocs:o,parameters:i,requestBody:r,pointer:s,security:
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useMemo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{Row}from"../common";import{Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{makeDeepLink}from"../../services";import{Description}from"../OperationItem/Description";import{Security}from"../Security";import{ExpandAllButton}from"../ExpandAllButton";import{RequestParameters}from"../RequestParameters";import{activeMimeNameAtom}from"../../jotai/app";import{getActiveMediaType}from"../../models/mediaContent";function RequestDetailsComponent({operation:{id:e,description:t,externalDocs:o,parameters:i,requestBody:r,pointer:s,security:n,extensions:m,callbackId:a},title:l,translate:p,onPanelToggle:c}){const d=useAtomValue(activeMimeNameAtom),u=useMemo((()=>{var e;const t=i.some((({schema:e})=>!e.isPrimitive&&!e.isCircular));if(!(null==r?void 0:r.content)||t)return t;const{schema:o}=getActiveMediaType(r.content,d)||{};return null===(e=null==o?void 0:o.fields)||void 0===e?void 0:e.some((({schema:e})=>!e.isPrimitive&&!e.isCircular))}),[d,i,null==r?void 0:r.content]);return _jsxs(_Fragment,{children:[_jsx(Row,{children:_jsxs(HeadingWrapper,{children:[_jsxs(Title,{children:[e&&_jsx(LinkToField,{to:makeDeepLink(e,"request")}),l||(null==p?void 0:p("openapi.request","Request")),u&&_jsx(ExpandAllButton,{operationPointer:s,type:"request",onPanelToggle:c})]}),_jsx(Description,{description:t||o?t:void 0,externalDocs:o,extensions:m}),_jsx(Security,{securities:n})]})}),_jsx(RequestParameters,{parameters:i,body:r,operationId:e,callbackId:a})]})}const HeadingWrapper=styled.div`
|
|
2
2
|
width: 100%;
|
|
3
3
|
`;export const RequestDetails=memo(RequestDetailsComponent);
|
|
4
4
|
//# sourceMappingURL=RequestDetails.js.map
|