UNPKG

@redocly/asyncapi-docs

Version:

Async API docs for Redocly Realm

25 lines (23 loc) 4.16 kB
var H=Object.create;var h=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var B=(o,n)=>{for(var a in n)h(o,a,{get:n[a],enumerable:!0})},k=(o,n,a,m)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of N(n))!$.call(o,l)&&l!==a&&h(o,l,{get:()=>n[l],enumerable:!(m=M(n,l))||m.enumerable});return o};var j=(o,n,a)=>(a=o!=null?H(T(o)):{},k(n||!o||!o.__esModule?h(a,"default",{value:o,enumerable:!0}):a,o)),R=o=>k(h({},"__esModule",{value:!0}),o);var q={};B(q,{ChannelSection:()=>V});module.exports=R(q);var i=require("react/jsx-runtime"),d=j(require("react")),v=j(require("styled-components")),O=require("jotai"),s=require("@redocly/openapi-docs"),c=require("@redocly/theme"),C=require("../jotai/app"),p=require("./common"),I=require("./ChannelParameters"),L=require("./ServersListPanel"),P=require("./ChannelBinding"),w=require("./MessageSection"),f=require("./OperationSection"),A=require("../hooks");const V=d.default.memo(({item:o,definition:n})=>{var a;const m=(0,O.useAtomValue)(C.layoutAtom),l=m===c.LayoutVariant.STACKED,e=(a=n.channels)===null||a===void 0?void 0:a[o.id],{getProtocolLabel:S}=(0,A.useProtocolLabels)(e?.bindings),u=(0,d.useMemo)(()=>Object.entries(n.servers||{}).map(([r,t])=>({key:r,value:t})).filter(({value:r})=>{var t;return(t=e?.servers)===null||t===void 0?void 0:t.some(D=>D.host===r.host)}),[e?.servers,n.servers]),x=(0,d.useMemo)(()=>Object.entries(e?.bindings||{}).map(([r,t])=>({key:r,value:t})),[e?.bindings]),y=(0,d.useMemo)(()=>Object.entries(e?.messages||{}).map(([r,t])=>({key:r,value:t})),[e?.messages]),g=(0,d.useMemo)(()=>o.items.filter(r=>r.action==="send"),[o.items]),b=(0,d.useMemo)(()=>o.items.filter(r=>r.action==="receive"),[o.items]),_=(0,d.useMemo)(()=>{var r;return(r=e?.["x-badges"])===null||r===void 0?void 0:r.map(t=>Object.assign(Object.assign({},t),{position:t.position||"after"}))},[e]);return e?(0,i.jsxs)(W,{children:[(0,i.jsxs)(z,{sectionId:o.dataSectionId,children:[(0,i.jsx)(s.Row,{layout:m,children:(0,i.jsx)(s.SamplesMiddlePanel,{compact:!0,className:"api-info",isStacked:l,children:(0,i.jsx)(p.ActionTag,{color:S("channel").toLowerCase(),children:S("channel")})})}),(0,i.jsxs)(s.Row,{layout:m,children:[(0,i.jsxs)(s.SamplesMiddlePanel,{compact:!0,className:"api-info",isStacked:l,children:[(0,i.jsxs)(E,{children:[(0,i.jsx)(s.CustomBadges,{badges:_,children:e?.title||e?.address||o.id}),(0,i.jsx)(p.ShareLink,{to:`${o.dataSectionId}`,"aria-label":`link to ${o.label}`})]}),e.address&&(0,i.jsxs)(p.TagWithIcon,{icon:(0,i.jsx)(c.CurveAutoColonIcon,{size:"14px"}),children:["name: ",(0,i.jsx)("span",{children:e.address})]}),(0,i.jsx)(p.Information,{summary:e.summary,description:e.description,externalDocs:e.externalDocs}),e.parameters&&(0,i.jsx)(I.ChannelParameters,{parameters:e.parameters,id:o.link})]}),(0,i.jsxs)(s.OperationSamplesPanel,{isStacked:l,className:"panel-container-response-samples",children:[!!u?.length&&(0,i.jsx)(L.ServersListPanel,{servers:u,hideHeader:!0}),!!x.length&&(0,i.jsx)(P.ChannelBinding,{binding:x[0]})]})]}),y.length>0?(0,i.jsx)(w.MessageSection,{messages:y,id:o.link}):null]}),g.length>0?(0,i.jsx)(f.OperationSection,{operations:g,definition:n,type:"send",id:o.link}):null,b.length>0&&g.length>0?(0,i.jsx)(s.Row,{layout:m,children:(0,i.jsx)(s.SamplesMiddlePanel,{isStacked:l,children:(0,i.jsx)(K,{})})}):null,b.length>0?(0,i.jsx)(f.OperationSection,{operations:b,definition:n,type:"receive",id:o.link}):null]}):null}),W=v.default.div` width: 100%; &:not(:last-child) { border-bottom: 1px solid var(--border-color-primary); } `,z=(0,v.default)(s.Section)` padding: var(--spacing-xxl) 0 var(--spacing-base); scroll-margin-top: calc(var(--navbar-height) - var(--spacing-base)) !important; `,E=(0,v.default)(c.H2)` margin: 0 0 var(--spacing-xs) 0; display: flex; align-items: center; gap: var(--spacing-xs); flex-wrap: wrap; :hover { ${c.LinkIcon} { opacity: 1; visibility: visible; } } `,K=v.default.div` border-bottom: 1px solid var(--border-color-secondary); `;0&&(module.exports={ChannelSection});