@redocly/asyncapi-docs
Version:
Async API docs for Redocly Realm
46 lines (45 loc) • 4.82 kB
JavaScript
var F=Object.create;var g=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var U=(e,n)=>{for(var i in n)g(e,i,{get:n[i],enumerable:!0})},A=(e,n,i,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let c of V(n))!K.call(e,c)&&c!==i&&g(e,c,{get:()=>n[c],enumerable:!(p=N(n,c))||p.enumerable});return e};var M=(e,n,i)=>(i=e!=null?F(q(e)):{},A(n||!e||!e.__esModule?g(i,"default",{value:e,enumerable:!0}):i,e)),G=e=>A(g({},"__esModule",{value:!0}),e);var ie={};U(ie,{Operation:()=>J});module.exports=G(ie);var s=require("react/jsx-runtime"),t=M(require("styled-components")),_=require("jotai"),l=require("@redocly/openapi-docs"),o=require("@redocly/theme"),m=M(require("react")),T=require("react-router-dom"),d=require("./common"),z=require("./OperationBinding"),v=require("../jotai/app"),h=require("../hooks"),B=require("../utils");const J=m.default.memo(({operation:e,dataSectionId:n,definition:i,headerRow:p,id:c,showDivider:C})=>{var u,f,y;const j=(0,_.useAtomValue)(v.layoutAtom),b=(0,_.useAtomValue)(v.routingBasePathAtom),O=j===o.LayoutVariant.STACKED,{getProtocolLabel:D}=(0,h.useProtocolLabels)(),P=(0,h.useOtelTelemetry)(),S=(0,m.useMemo)(()=>Object.entries(e?.bindings||{}).map(([a,r])=>({key:a,value:r})),[e?.bindings]),H=(0,m.useMemo)(()=>{var a;return(a=e?.["x-badges"])===null||a===void 0?void 0:a.map(r=>Object.assign(Object.assign({},r),{position:r.position||"after"}))},[e]),$=(0,T.useNavigate)(),R=(0,m.useCallback)(a=>{var r,x;const k=(x=Object.entries(((r=i?.components)===null||r===void 0?void 0:r.messages)||{}).find(([ae,E])=>(0,B.isEqual)(E,a)))===null||x===void 0?void 0:x[0];if(!k||!n)return;const W=n.replace(`/${b}/`,"").split("/operations")[0],I=`/${b}${(0,l.makeDeepLink)(W,`messages&m=${k}`)}`;P.send({type:"asyncapi_docs.message.clicked",payload:{message:k}}),$(I)},[n,(u=i?.components)===null||u===void 0?void 0:u.messages,$,b,P]);return e?(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)(Q,{sectionId:n,"data-component-name":"Operation/Operation",hasHeader:!!p,children:[p,(0,s.jsxs)(l.Row,{layout:j,children:[(0,s.jsxs)(se,{isStacked:O,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(d.ActionTag,{color:e.action,children:D(e.action)}),(0,s.jsxs)(L,{children:[(0,s.jsx)(l.CustomBadges,{badges:H,children:e.title||c}),(0,s.jsx)(d.ShareLink,{to:`${n}`,"aria-label":`link to ${e.title||c}`})]}),(0,s.jsx)(d.Information,{summary:e.summary,description:e.description,externalDocs:e.externalDocs}),(0,s.jsx)(X,{children:"Messages"}),(0,s.jsx)(Y,{children:(f=e.messages)===null||f===void 0?void 0:f.map((a,r)=>(0,s.jsxs)(ne,{icon:null,onClick:()=>R(a),children:[a.title||a.name,(0,s.jsx)(o.ArrowUpRightIcon,{size:"12px"})]},r))}),e.reply&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(L,{children:"Reply"}),(0,s.jsxs)(Z,{children:[e.reply.address&&(0,s.jsxs)(w,{children:[(0,s.jsx)("span",{children:"Address: "}),(0,s.jsx)("span",{children:e.reply.address.location})]}),e.reply.channel&&(0,s.jsxs)(w,{children:[(0,s.jsx)("span",{children:"Topic: "}),(0,s.jsx)("span",{children:e.reply.channel.address})]}),!!(!((y=e.reply.messages)===null||y===void 0)&&y.length)&&(0,s.jsxs)(w,{children:[(0,s.jsx)("span",{children:"Messages: "}),(0,s.jsx)("span",{children:e.reply.messages.map(a=>a.title||a.name).join(", ")})]})]})]})]}),C&&(0,s.jsx)(ee,{})]}),(0,s.jsx)(l.OperationSamplesPanel,{isStacked:O,className:"panel-container-response-samples",children:!!S.length&&(0,s.jsx)(z.OperationBinding,{binding:S[0],id:n})})]})]})}):null}),Q=(0,t.default)(l.Section)`
padding: var(--spacing-lg) 0;
scroll-margin-top: ${e=>e.hasHeader?"calc(var(--navbar-height) - var(--spacing-xl)*2)":"var(--navbar-height)"} !important;
`,L=(0,t.default)(o.H4)`
font-size: var(--font-size-lg);
font-weight: var(--font-weight-semibold);
margin: 0 0 var(--spacing-xxs) 0;
position: relative;
word-break: break-word;
display: flex;
align-items: center;
gap: var(--spacing-xs);
flex-wrap: wrap;
:hover {
${o.LinkIcon} {
opacity: 1;
visibility: visible;
}
}
`,X=(0,t.default)(o.H4)`
font-size: var(--font-size-base);
font-weight: var(--font-weight-medium);
margin: var(--spacing-sm) 0 0 0;
`,Y=t.default.div`
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: var(--spacing-xs);
padding: var(--spacing-xs) 0;
`,Z=t.default.div`
display: flex;
flex-direction: column;
padding: var(--spacing-xs) 0;
`,w=(0,t.default)(o.H4)`
& > span:first-child {
font-weight: var(--font-weight-medium);
}
`,ee=t.default.div`
border-bottom: 1px solid var(--border-color-secondary);
`,se=(0,t.default)(l.SamplesMiddlePanel)`
display: flex;
justify-content: space-between;
`,ne=(0,t.default)(d.TagWithIcon)`
cursor: pointer;
`;0&&(module.exports={Operation});