@asyncapi/react-component 1.2.9 → 1.2.11

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.
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
34
34
  return result;
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.OperationReplyAddressInfo = exports.OperationChannelInfo = exports.OperationReplyInfo = exports.OperationInfo = exports.Operation = void 0;
37
+ exports.OperationReplyAddressInfo = exports.OperationReplyChannelInfo = exports.OperationReplyInfo = exports.OperationInfo = exports.Operation = void 0;
38
38
  var react_1 = __importStar(require("react"));
39
39
  var Message_1 = require("../Messages/Message");
40
40
  var Security_1 = require("../Servers/Security");
@@ -199,7 +199,7 @@ var OperationReplyInfo = function (props) {
199
199
  explicitChannel && (react_1.default.createElement(components_1.CollapseButton, { onClick: function () { return setShowChannel(function (prev) { return !prev; }); }, expanded: showChannel },
200
200
  react_1.default.createElement("span", { className: "inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none" }, "View channel details"))),
201
201
  explicitChannel && (react_1.default.createElement("div", { className: "w-full mt-4 ".concat(showChannel ? 'block' : 'hidden') },
202
- react_1.default.createElement(exports.OperationChannelInfo, __assign({}, props)),
202
+ react_1.default.createElement(exports.OperationReplyChannelInfo, __assign({}, props)),
203
203
  ' '))))),
204
204
  react_1.default.createElement(exports.OperationReplyAddressInfo, __assign({}, props)),
205
205
  replyMessages.isEmpty() === false && (react_1.default.createElement("div", { className: "p-4" },
@@ -216,11 +216,15 @@ var OperationReplyInfo = function (props) {
216
216
  react_1.default.createElement(components_1.Extensions, { name: "Operation Reply Extensions", item: reply }))));
217
217
  };
218
218
  exports.OperationReplyInfo = OperationReplyInfo;
219
- var OperationChannelInfo = function (_a) {
220
- var _b = _a.type, type = _b === void 0 ? types_1.PayloadType.SEND : _b, channelName = _a.channelName, channel = _a.channel;
219
+ var OperationReplyChannelInfo = function (_a) {
220
+ var _b;
221
+ var _c = _a.type, type = _c === void 0 ? types_1.PayloadType.SEND : _c, operation = _a.operation;
222
+ var reply = operation.reply();
223
+ var channel = reply === null || reply === void 0 ? void 0 : reply.channel();
224
+ var channelName = (_b = channel === null || channel === void 0 ? void 0 : channel.address()) !== null && _b !== void 0 ? _b : '';
221
225
  var config = (0, contexts_1.useConfig)();
222
- var servers = typeof channel.servers === 'function' && channel.servers().all();
223
- var parameters = channel.parameters() !== undefined
226
+ var servers = typeof (channel === null || channel === void 0 ? void 0 : channel.servers) === 'function' && channel.servers().all();
227
+ var parameters = (channel === null || channel === void 0 ? void 0 : channel.parameters()) !== undefined
224
228
  ? helpers_1.SchemaHelpers.parametersToSchema(channel.parameters())
225
229
  : undefined;
226
230
  if (!channel) {
@@ -253,7 +257,7 @@ var OperationChannelInfo = function (_a) {
253
257
  channel.bindings() && (react_1.default.createElement("div", { className: "mt-2" },
254
258
  react_1.default.createElement(components_1.Bindings, { name: "Bindings", bindings: channel.bindings() })))));
255
259
  };
256
- exports.OperationChannelInfo = OperationChannelInfo;
260
+ exports.OperationReplyChannelInfo = OperationReplyChannelInfo;
257
261
  var OperationReplyAddressInfo = function (_a) {
258
262
  var _b = _a.type, type = _b === void 0 ? types_1.PayloadType.SEND : _b, operation = _a.operation;
259
263
  if (type !== types_1.PayloadType.REPLY && type !== types_1.PayloadType.REQUEST) {
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { ChannelInterface, OperationInterface } from '@asyncapi/parser';\n\nimport { Message } from '../Messages/Message';\nimport { Security } from '../Servers/Security';\nimport {\n Markdown,\n Schema,\n Bindings,\n Tags,\n Extensions,\n CollapseButton,\n} from '../../components';\nimport { Href } from '../../components/Href';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport {\n EXTERAL_DOCUMENTATION_TEXT,\n PUBLISH_LABEL_DEFAULT_TEXT,\n RECEIVE_TEXT_LABEL_DEFAULT_TEXT,\n REPLIER_LABEL_DEFAULT_TEXT,\n REQUEST_LABEL_DEFAULT_TEXT,\n SEND_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../../constants';\nimport { PayloadType } from '../../types';\nimport { ConfigInterface } from '../../config/config';\ninterface Props {\n type: PayloadType;\n operation: OperationInterface;\n channelName: string;\n channel: ChannelInterface;\n}\n\nexport const Operation: React.FunctionComponent<Props> = props => {\n const config = useConfig();\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n if (!operation || !channel) {\n return null;\n }\n\n // check typeof as fallback for older version than `2.2.0`\n const servers =\n typeof channel.servers === 'function' && channel.servers().all();\n // check typeof as fallback for older version than `2.4.0`\n const security =\n typeof operation.security === 'function' && operation.security();\n const parameters =\n channel.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n return (\n <div>\n <div className=\"panel-item--center px-8\">\n <OperationInfo {...props} />\n\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema\n schemaName=\"Parameters\"\n schema={parameters}\n expanded={true}\n />\n </div>\n )}\n\n {security && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-security`,\n config,\n )}\n >\n <Security\n security={security}\n header=\"Additional security requirements\"\n />\n </div>\n )}\n\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Channel specific information\"\n bindings={channel.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Channel Extensions\" item={channel} />\n\n {operation.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Operation specific information\"\n bindings={operation.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Operation Extensions\" item={operation} />\n\n {operation.tags() && (\n <div className=\"mt-2\">\n <Tags tags={operation.tags()} />\n </div>\n )}\n </div>\n\n <div\n className=\"w-full mt-4\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-message`,\n config,\n )}\n >\n {operation.messages().length > 1 ? (\n <div className=\"mt-2\">\n <p className=\"px-8\">\n Accepts <strong>one of</strong> the following messages:\n </p>\n <ul>\n {operation\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <p className=\"px-8\">Accepts the following message:</p>\n <div className=\"mt-2\">\n <Message\n message={operation.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nfunction getTypeInformation({\n typeRes = PayloadType.SEND,\n config,\n version,\n}: {\n typeRes: PayloadType;\n config: ConfigInterface;\n version: number;\n}): { borderColor: string; typeLabel: string } {\n if (typeRes === PayloadType.RECEIVE) {\n return {\n borderColor: 'border-green-600 text-green-600',\n typeLabel:\n version === 1\n ? config.receiveLabel ?? RECEIVE_TEXT_LABEL_DEFAULT_TEXT\n : config.publishLabel ?? PUBLISH_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REPLY) {\n return {\n borderColor: 'border-orange-600 text-orange-600',\n typeLabel: config.replyLabel ?? REPLIER_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REQUEST) {\n return {\n borderColor: 'border-red-600 text-red-600',\n typeLabel: config.requestLabel ?? REQUEST_LABEL_DEFAULT_TEXT,\n };\n }\n return {\n borderColor: 'border-blue-600 text-blue-500',\n typeLabel:\n version === 1\n ? config.sendLabel ?? SEND_LABEL_DEFAULT_TEXT\n : config.subscribeLabel ?? SUBSCRIBE_LABEL_DEFAULT_TEXT,\n };\n}\n\nexport const OperationInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const config = useConfig();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n let typeRes = type;\n if (version === 1 && operation.action() !== typeRes) {\n typeRes = PayloadType.RECEIVE;\n }\n const { borderColor, typeLabel } = getTypeInformation({\n typeRes,\n config,\n version,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono border uppercase p-1 rounded mr-2 ${borderColor}`}\n title={type}\n >\n {typeLabel}\n </span>{' '}\n <span className=\"font-mono text-base\">{channelName}</span>\n </h3>\n </div>\n\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {operationSummary && (\n <p className=\"text-gray-600 text-sm mt-2\">{operationSummary}</p>\n )}\n {operation.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{operation.description()}</Markdown>\n </div>\n )}\n\n {externalDocs && (\n <ul className=\"leading-normal mt-2 mb-4 space-x-2 space-y-2\">\n {externalDocs && (\n <li className=\"inline-block\">\n <Href\n className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={externalDocs.url()}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n </ul>\n )}\n\n {operationId && (\n <div className=\"border bg-gray-100 rounded px-4 py-2 mt-2\">\n <div className=\"text-sm text-gray-700\">\n Operation ID\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport const OperationReplyInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation } = props;\n const [showMessages, setShowMessages] = useState(false);\n const [showChannel, setShowChannel] = useState(false);\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined) {\n return <></>;\n }\n\n const replyMessages = reply.messages();\n const explicitChannel = reply.channel();\n\n const replyAddress = reply.address()?.location();\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center\">\n <div className=\"font-mono px-8 py-4\">\n <div className=\"border rounded\">\n <div\n className={`w-full ${\n type === 'reply'\n ? 'bg-green-600 border-green-600'\n : 'bg-blue-600 border-blue-600'\n } text-sm rounded-t h-8 px-4 border text-white flex items-center`}\n >\n <span className=\"font-bold\">REPLY INFORMATION</span>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2\" title={type}>\n REPLY CHANNEL INFORMATION\n </span>\n </h3>\n {explicitChannel?.address() ? (\n <div className=\"text-xs text-gray-700\">\n Reply will be provided via this designated address:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {explicitChannel.address()}{' '}\n </span>\n </div>\n ) : (\n <div className=\"text-xs text-gray-700\">\n Reply will be directed to the address specified at this\n location:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddress}\n </span>\n </div>\n )}\n <div className=\"mt-2\">\n {explicitChannel && (\n <CollapseButton\n onClick={() => setShowChannel(prev => !prev)}\n expanded={showChannel}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n View channel details\n </span>\n </CollapseButton>\n )}\n {explicitChannel && (\n <div\n className={`w-full mt-4 ${\n showChannel ? 'block' : 'hidden'\n }`}\n >\n <OperationChannelInfo {...props} />{' '}\n </div>\n )}\n </div>\n </div>\n </div>\n <OperationReplyAddressInfo {...props} />\n {replyMessages.isEmpty() === false && (\n <div className=\"p-4\">\n <CollapseButton\n onClick={() => setShowMessages(prev => !prev)}\n expanded={showMessages}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n Expected Reply{' '}\n {replyMessages.length > 1 ? 'Messages' : 'Message'}\n </span>\n </CollapseButton>\n <div\n className={`w-full mt-4 ${showMessages ? 'block' : 'hidden'}`}\n >\n {replyMessages.length > 1 ? (\n <div className=\"mt-2\">\n <ul>\n {replyMessages.all().map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message\n message={msg}\n index={idx}\n showExamples={true}\n />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <div className=\"mt-2\">\n <Message\n message={replyMessages.all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n\n <Extensions name=\"Operation Reply Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n\nexport const OperationChannelInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n channelName,\n channel,\n}) => {\n const config = useConfig();\n const servers =\n typeof channel.servers === 'function' && channel.servers().all();\n const parameters =\n channel.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n if (!channel) {\n return <></>;\n }\n\n return (\n <div>\n {channel.address() && (\n <div className=\"mt-2 text-xs text-gray-700\">\n Address:{' '}\n <span className=\"border text-orange-600 rounded text-xs py-0 px-2\">\n {channel.address()}\n </span>\n </div>\n )}\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n {channel.messages().all().length > 1 ? (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Messages:</span>\n <ul>\n {channel\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Message:</span>\n <div className=\"mt-2\">\n <Message\n message={channel.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema schemaName=\"Parameters\" schema={parameters} expanded={true} />\n </div>\n )}\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings name=\"Bindings\" bindings={channel.bindings()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const OperationReplyAddressInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined || !reply.hasAddress()) {\n return <></>;\n }\n const replyAddress = reply.address()!;\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2 uppercase\" title={type}>\n REPLY address information\n </span>\n </h3>\n {replyAddressLocation && (\n <div className=\"text-xs text-gray-700\">\n REPLY will be sent to the address provided in:\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddressLocation}\n </span>\n </div>\n )}\n {replyAddress.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{replyAddress.description()}</Markdown>\n </div>\n )}\n <Extensions name=\"Operation Reply Address Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { ChannelInterface, OperationInterface } from '@asyncapi/parser';\n\nimport { Message } from '../Messages/Message';\nimport { Security } from '../Servers/Security';\nimport {\n Markdown,\n Schema,\n Bindings,\n Tags,\n Extensions,\n CollapseButton,\n} from '../../components';\nimport { Href } from '../../components/Href';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport {\n EXTERAL_DOCUMENTATION_TEXT,\n PUBLISH_LABEL_DEFAULT_TEXT,\n RECEIVE_TEXT_LABEL_DEFAULT_TEXT,\n REPLIER_LABEL_DEFAULT_TEXT,\n REQUEST_LABEL_DEFAULT_TEXT,\n SEND_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../../constants';\nimport { PayloadType } from '../../types';\nimport { ConfigInterface } from '../../config/config';\ninterface Props {\n type: PayloadType;\n operation: OperationInterface;\n channelName: string;\n channel: ChannelInterface;\n}\n\nexport const Operation: React.FunctionComponent<Props> = props => {\n const config = useConfig();\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n if (!operation || !channel) {\n return null;\n }\n\n // check typeof as fallback for older version than `2.2.0`\n const servers =\n typeof channel.servers === 'function' && channel.servers().all();\n // check typeof as fallback for older version than `2.4.0`\n const security =\n typeof operation.security === 'function' && operation.security();\n const parameters =\n channel.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n return (\n <div>\n <div className=\"panel-item--center px-8\">\n <OperationInfo {...props} />\n\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema\n schemaName=\"Parameters\"\n schema={parameters}\n expanded={true}\n />\n </div>\n )}\n\n {security && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-security`,\n config,\n )}\n >\n <Security\n security={security}\n header=\"Additional security requirements\"\n />\n </div>\n )}\n\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Channel specific information\"\n bindings={channel.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Channel Extensions\" item={channel} />\n\n {operation.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Operation specific information\"\n bindings={operation.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Operation Extensions\" item={operation} />\n\n {operation.tags() && (\n <div className=\"mt-2\">\n <Tags tags={operation.tags()} />\n </div>\n )}\n </div>\n\n <div\n className=\"w-full mt-4\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-message`,\n config,\n )}\n >\n {operation.messages().length > 1 ? (\n <div className=\"mt-2\">\n <p className=\"px-8\">\n Accepts <strong>one of</strong> the following messages:\n </p>\n <ul>\n {operation\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <p className=\"px-8\">Accepts the following message:</p>\n <div className=\"mt-2\">\n <Message\n message={operation.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nfunction getTypeInformation({\n typeRes = PayloadType.SEND,\n config,\n version,\n}: {\n typeRes: PayloadType;\n config: ConfigInterface;\n version: number;\n}): { borderColor: string; typeLabel: string } {\n if (typeRes === PayloadType.RECEIVE) {\n return {\n borderColor: 'border-green-600 text-green-600',\n typeLabel:\n version === 1\n ? config.receiveLabel ?? RECEIVE_TEXT_LABEL_DEFAULT_TEXT\n : config.publishLabel ?? PUBLISH_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REPLY) {\n return {\n borderColor: 'border-orange-600 text-orange-600',\n typeLabel: config.replyLabel ?? REPLIER_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REQUEST) {\n return {\n borderColor: 'border-red-600 text-red-600',\n typeLabel: config.requestLabel ?? REQUEST_LABEL_DEFAULT_TEXT,\n };\n }\n return {\n borderColor: 'border-blue-600 text-blue-500',\n typeLabel:\n version === 1\n ? config.sendLabel ?? SEND_LABEL_DEFAULT_TEXT\n : config.subscribeLabel ?? SUBSCRIBE_LABEL_DEFAULT_TEXT,\n };\n}\n\nexport const OperationInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const config = useConfig();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n let typeRes = type;\n if (version === 1 && operation.action() !== typeRes) {\n typeRes = PayloadType.RECEIVE;\n }\n const { borderColor, typeLabel } = getTypeInformation({\n typeRes,\n config,\n version,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono border uppercase p-1 rounded mr-2 ${borderColor}`}\n title={type}\n >\n {typeLabel}\n </span>{' '}\n <span className=\"font-mono text-base\">{channelName}</span>\n </h3>\n </div>\n\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {operationSummary && (\n <p className=\"text-gray-600 text-sm mt-2\">{operationSummary}</p>\n )}\n {operation.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{operation.description()}</Markdown>\n </div>\n )}\n\n {externalDocs && (\n <ul className=\"leading-normal mt-2 mb-4 space-x-2 space-y-2\">\n {externalDocs && (\n <li className=\"inline-block\">\n <Href\n className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={externalDocs.url()}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n </ul>\n )}\n\n {operationId && (\n <div className=\"border bg-gray-100 rounded px-4 py-2 mt-2\">\n <div className=\"text-sm text-gray-700\">\n Operation ID\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport const OperationReplyInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation } = props;\n const [showMessages, setShowMessages] = useState(false);\n const [showChannel, setShowChannel] = useState(false);\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined) {\n return <></>;\n }\n\n const replyMessages = reply.messages();\n const explicitChannel = reply.channel();\n\n const replyAddress = reply.address()?.location();\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center\">\n <div className=\"font-mono px-8 py-4\">\n <div className=\"border rounded\">\n <div\n className={`w-full ${\n type === 'reply'\n ? 'bg-green-600 border-green-600'\n : 'bg-blue-600 border-blue-600'\n } text-sm rounded-t h-8 px-4 border text-white flex items-center`}\n >\n <span className=\"font-bold\">REPLY INFORMATION</span>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2\" title={type}>\n REPLY CHANNEL INFORMATION\n </span>\n </h3>\n {explicitChannel?.address() ? (\n <div className=\"text-xs text-gray-700\">\n Reply will be provided via this designated address:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {explicitChannel.address()}{' '}\n </span>\n </div>\n ) : (\n <div className=\"text-xs text-gray-700\">\n Reply will be directed to the address specified at this\n location:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddress}\n </span>\n </div>\n )}\n <div className=\"mt-2\">\n {explicitChannel && (\n <CollapseButton\n onClick={() => setShowChannel(prev => !prev)}\n expanded={showChannel}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n View channel details\n </span>\n </CollapseButton>\n )}\n {explicitChannel && (\n <div\n className={`w-full mt-4 ${\n showChannel ? 'block' : 'hidden'\n }`}\n >\n <OperationReplyChannelInfo {...props} />{' '}\n </div>\n )}\n </div>\n </div>\n </div>\n <OperationReplyAddressInfo {...props} />\n {replyMessages.isEmpty() === false && (\n <div className=\"p-4\">\n <CollapseButton\n onClick={() => setShowMessages(prev => !prev)}\n expanded={showMessages}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n Expected Reply{' '}\n {replyMessages.length > 1 ? 'Messages' : 'Message'}\n </span>\n </CollapseButton>\n <div\n className={`w-full mt-4 ${showMessages ? 'block' : 'hidden'}`}\n >\n {replyMessages.length > 1 ? (\n <div className=\"mt-2\">\n <ul>\n {replyMessages.all().map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message\n message={msg}\n index={idx}\n showExamples={true}\n />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <div className=\"mt-2\">\n <Message\n message={replyMessages.all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n\n <Extensions name=\"Operation Reply Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n\nexport const OperationReplyChannelInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n const reply = operation.reply();\n\n const channel = reply?.channel();\n\n const channelName = channel?.address() ?? '';\n\n const config = useConfig();\n const servers =\n typeof channel?.servers === 'function' && channel.servers().all();\n const parameters =\n channel?.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n if (!channel) {\n return <></>;\n }\n\n return (\n <div>\n {channel.address() && (\n <div className=\"mt-2 text-xs text-gray-700\">\n Address:{' '}\n <span className=\"border text-orange-600 rounded text-xs py-0 px-2\">\n {channel.address()}\n </span>\n </div>\n )}\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n {channel.messages().all().length > 1 ? (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Messages:</span>\n <ul>\n {channel\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Message:</span>\n <div className=\"mt-2\">\n <Message\n message={channel.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema schemaName=\"Parameters\" schema={parameters} expanded={true} />\n </div>\n )}\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings name=\"Bindings\" bindings={channel.bindings()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const OperationReplyAddressInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined || !reply.hasAddress()) {\n return <></>;\n }\n const replyAddress = reply.address()!;\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2 uppercase\" title={type}>\n REPLY address information\n </span>\n </h3>\n {replyAddressLocation && (\n <div className=\"text-xs text-gray-700\">\n REPLY will be sent to the address provided in:\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddressLocation}\n </span>\n </div>\n )}\n {replyAddress.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{replyAddress.description()}</Markdown>\n </div>\n )}\n <Extensions name=\"Operation Reply Address Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n"]}
@@ -171,7 +171,7 @@ export var OperationReplyInfo = function (props) {
171
171
  explicitChannel && (React.createElement(CollapseButton, { onClick: function () { return setShowChannel(function (prev) { return !prev; }); }, expanded: showChannel },
172
172
  React.createElement("span", { className: "inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none" }, "View channel details"))),
173
173
  explicitChannel && (React.createElement("div", { className: "w-full mt-4 ".concat(showChannel ? 'block' : 'hidden') },
174
- React.createElement(OperationChannelInfo, __assign({}, props)),
174
+ React.createElement(OperationReplyChannelInfo, __assign({}, props)),
175
175
  ' '))))),
176
176
  React.createElement(OperationReplyAddressInfo, __assign({}, props)),
177
177
  replyMessages.isEmpty() === false && (React.createElement("div", { className: "p-4" },
@@ -187,11 +187,15 @@ export var OperationReplyInfo = function (props) {
187
187
  React.createElement(Message, { message: replyMessages.all()[0], showExamples: true }))))))))),
188
188
  React.createElement(Extensions, { name: "Operation Reply Extensions", item: reply }))));
189
189
  };
190
- export var OperationChannelInfo = function (_a) {
191
- var _b = _a.type, type = _b === void 0 ? PayloadType.SEND : _b, channelName = _a.channelName, channel = _a.channel;
190
+ export var OperationReplyChannelInfo = function (_a) {
191
+ var _b;
192
+ var _c = _a.type, type = _c === void 0 ? PayloadType.SEND : _c, operation = _a.operation;
193
+ var reply = operation.reply();
194
+ var channel = reply === null || reply === void 0 ? void 0 : reply.channel();
195
+ var channelName = (_b = channel === null || channel === void 0 ? void 0 : channel.address()) !== null && _b !== void 0 ? _b : '';
192
196
  var config = useConfig();
193
- var servers = typeof channel.servers === 'function' && channel.servers().all();
194
- var parameters = channel.parameters() !== undefined
197
+ var servers = typeof (channel === null || channel === void 0 ? void 0 : channel.servers) === 'function' && channel.servers().all();
198
+ var parameters = (channel === null || channel === void 0 ? void 0 : channel.parameters()) !== undefined
195
199
  ? SchemaHelpers.parametersToSchema(channel.parameters())
196
200
  : undefined;
197
201
  if (!channel) {
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { ChannelInterface, OperationInterface } from '@asyncapi/parser';\n\nimport { Message } from '../Messages/Message';\nimport { Security } from '../Servers/Security';\nimport {\n Markdown,\n Schema,\n Bindings,\n Tags,\n Extensions,\n CollapseButton,\n} from '../../components';\nimport { Href } from '../../components/Href';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport {\n EXTERAL_DOCUMENTATION_TEXT,\n PUBLISH_LABEL_DEFAULT_TEXT,\n RECEIVE_TEXT_LABEL_DEFAULT_TEXT,\n REPLIER_LABEL_DEFAULT_TEXT,\n REQUEST_LABEL_DEFAULT_TEXT,\n SEND_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../../constants';\nimport { PayloadType } from '../../types';\nimport { ConfigInterface } from '../../config/config';\ninterface Props {\n type: PayloadType;\n operation: OperationInterface;\n channelName: string;\n channel: ChannelInterface;\n}\n\nexport const Operation: React.FunctionComponent<Props> = props => {\n const config = useConfig();\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n if (!operation || !channel) {\n return null;\n }\n\n // check typeof as fallback for older version than `2.2.0`\n const servers =\n typeof channel.servers === 'function' && channel.servers().all();\n // check typeof as fallback for older version than `2.4.0`\n const security =\n typeof operation.security === 'function' && operation.security();\n const parameters =\n channel.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n return (\n <div>\n <div className=\"panel-item--center px-8\">\n <OperationInfo {...props} />\n\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema\n schemaName=\"Parameters\"\n schema={parameters}\n expanded={true}\n />\n </div>\n )}\n\n {security && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-security`,\n config,\n )}\n >\n <Security\n security={security}\n header=\"Additional security requirements\"\n />\n </div>\n )}\n\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Channel specific information\"\n bindings={channel.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Channel Extensions\" item={channel} />\n\n {operation.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Operation specific information\"\n bindings={operation.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Operation Extensions\" item={operation} />\n\n {operation.tags() && (\n <div className=\"mt-2\">\n <Tags tags={operation.tags()} />\n </div>\n )}\n </div>\n\n <div\n className=\"w-full mt-4\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-message`,\n config,\n )}\n >\n {operation.messages().length > 1 ? (\n <div className=\"mt-2\">\n <p className=\"px-8\">\n Accepts <strong>one of</strong> the following messages:\n </p>\n <ul>\n {operation\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <p className=\"px-8\">Accepts the following message:</p>\n <div className=\"mt-2\">\n <Message\n message={operation.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nfunction getTypeInformation({\n typeRes = PayloadType.SEND,\n config,\n version,\n}: {\n typeRes: PayloadType;\n config: ConfigInterface;\n version: number;\n}): { borderColor: string; typeLabel: string } {\n if (typeRes === PayloadType.RECEIVE) {\n return {\n borderColor: 'border-green-600 text-green-600',\n typeLabel:\n version === 1\n ? config.receiveLabel ?? RECEIVE_TEXT_LABEL_DEFAULT_TEXT\n : config.publishLabel ?? PUBLISH_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REPLY) {\n return {\n borderColor: 'border-orange-600 text-orange-600',\n typeLabel: config.replyLabel ?? REPLIER_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REQUEST) {\n return {\n borderColor: 'border-red-600 text-red-600',\n typeLabel: config.requestLabel ?? REQUEST_LABEL_DEFAULT_TEXT,\n };\n }\n return {\n borderColor: 'border-blue-600 text-blue-500',\n typeLabel:\n version === 1\n ? config.sendLabel ?? SEND_LABEL_DEFAULT_TEXT\n : config.subscribeLabel ?? SUBSCRIBE_LABEL_DEFAULT_TEXT,\n };\n}\n\nexport const OperationInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const config = useConfig();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n let typeRes = type;\n if (version === 1 && operation.action() !== typeRes) {\n typeRes = PayloadType.RECEIVE;\n }\n const { borderColor, typeLabel } = getTypeInformation({\n typeRes,\n config,\n version,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono border uppercase p-1 rounded mr-2 ${borderColor}`}\n title={type}\n >\n {typeLabel}\n </span>{' '}\n <span className=\"font-mono text-base\">{channelName}</span>\n </h3>\n </div>\n\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {operationSummary && (\n <p className=\"text-gray-600 text-sm mt-2\">{operationSummary}</p>\n )}\n {operation.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{operation.description()}</Markdown>\n </div>\n )}\n\n {externalDocs && (\n <ul className=\"leading-normal mt-2 mb-4 space-x-2 space-y-2\">\n {externalDocs && (\n <li className=\"inline-block\">\n <Href\n className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={externalDocs.url()}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n </ul>\n )}\n\n {operationId && (\n <div className=\"border bg-gray-100 rounded px-4 py-2 mt-2\">\n <div className=\"text-sm text-gray-700\">\n Operation ID\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport const OperationReplyInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation } = props;\n const [showMessages, setShowMessages] = useState(false);\n const [showChannel, setShowChannel] = useState(false);\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined) {\n return <></>;\n }\n\n const replyMessages = reply.messages();\n const explicitChannel = reply.channel();\n\n const replyAddress = reply.address()?.location();\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center\">\n <div className=\"font-mono px-8 py-4\">\n <div className=\"border rounded\">\n <div\n className={`w-full ${\n type === 'reply'\n ? 'bg-green-600 border-green-600'\n : 'bg-blue-600 border-blue-600'\n } text-sm rounded-t h-8 px-4 border text-white flex items-center`}\n >\n <span className=\"font-bold\">REPLY INFORMATION</span>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2\" title={type}>\n REPLY CHANNEL INFORMATION\n </span>\n </h3>\n {explicitChannel?.address() ? (\n <div className=\"text-xs text-gray-700\">\n Reply will be provided via this designated address:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {explicitChannel.address()}{' '}\n </span>\n </div>\n ) : (\n <div className=\"text-xs text-gray-700\">\n Reply will be directed to the address specified at this\n location:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddress}\n </span>\n </div>\n )}\n <div className=\"mt-2\">\n {explicitChannel && (\n <CollapseButton\n onClick={() => setShowChannel(prev => !prev)}\n expanded={showChannel}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n View channel details\n </span>\n </CollapseButton>\n )}\n {explicitChannel && (\n <div\n className={`w-full mt-4 ${\n showChannel ? 'block' : 'hidden'\n }`}\n >\n <OperationChannelInfo {...props} />{' '}\n </div>\n )}\n </div>\n </div>\n </div>\n <OperationReplyAddressInfo {...props} />\n {replyMessages.isEmpty() === false && (\n <div className=\"p-4\">\n <CollapseButton\n onClick={() => setShowMessages(prev => !prev)}\n expanded={showMessages}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n Expected Reply{' '}\n {replyMessages.length > 1 ? 'Messages' : 'Message'}\n </span>\n </CollapseButton>\n <div\n className={`w-full mt-4 ${showMessages ? 'block' : 'hidden'}`}\n >\n {replyMessages.length > 1 ? (\n <div className=\"mt-2\">\n <ul>\n {replyMessages.all().map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message\n message={msg}\n index={idx}\n showExamples={true}\n />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <div className=\"mt-2\">\n <Message\n message={replyMessages.all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n\n <Extensions name=\"Operation Reply Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n\nexport const OperationChannelInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n channelName,\n channel,\n}) => {\n const config = useConfig();\n const servers =\n typeof channel.servers === 'function' && channel.servers().all();\n const parameters =\n channel.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n if (!channel) {\n return <></>;\n }\n\n return (\n <div>\n {channel.address() && (\n <div className=\"mt-2 text-xs text-gray-700\">\n Address:{' '}\n <span className=\"border text-orange-600 rounded text-xs py-0 px-2\">\n {channel.address()}\n </span>\n </div>\n )}\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n {channel.messages().all().length > 1 ? (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Messages:</span>\n <ul>\n {channel\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Message:</span>\n <div className=\"mt-2\">\n <Message\n message={channel.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema schemaName=\"Parameters\" schema={parameters} expanded={true} />\n </div>\n )}\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings name=\"Bindings\" bindings={channel.bindings()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const OperationReplyAddressInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined || !reply.hasAddress()) {\n return <></>;\n }\n const replyAddress = reply.address()!;\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2 uppercase\" title={type}>\n REPLY address information\n </span>\n </h3>\n {replyAddressLocation && (\n <div className=\"text-xs text-gray-700\">\n REPLY will be sent to the address provided in:\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddressLocation}\n </span>\n </div>\n )}\n {replyAddress.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{replyAddress.description()}</Markdown>\n </div>\n )}\n <Extensions name=\"Operation Reply Address Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"Operation.js","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS1C,MAAM,CAAC,IAAM,SAAS,GAAmC,UAAA,KAAK;IAC5D,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IACnB,IAAA,KAA6D,KAAK,KAA3C,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EAAE,SAAS,GAA2B,KAAK,UAAhC,EAAE,WAAW,GAAc,KAAK,YAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IAC3E,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IAGD,IAAM,OAAO,GACX,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;IAEnE,IAAM,QAAQ,GACZ,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnE,IAAM,UAAU,GACd,OAAO,CAAC,UAAU,EAAE,KAAK,SAAS;QAChC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,yBAAyB;YACtC,oBAAC,aAAa,eAAK,KAAK,EAAI;YAE3B,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B,6BAAK,SAAS,EAAC,cAAc;gBAC3B,4DAAiC;gBACjC,4BAAI,SAAS,EAAC,+BAA+B,IAC1C,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,CACrB,4BAAI,SAAS,EAAC,wBAAwB,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;oBACrD,2BACE,IAAI,EAAE,WAAI,aAAa,CAAC,aAAa,CACnC,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,EACvB,MAAM,CACP,CAAE,EACH,SAAS,EAAC,yJAAyJ;wBAEnK,8BAAM,SAAS,EAAC,WAAW,IAAE,MAAM,CAAC,EAAE,EAAE,CAAQ,CAC9C,CACD,CACN,EAZsB,CAYtB,CAAC,CACC,CACD,CACP,CAAC,CAAC,CAAC,IAAI;YAEP,UAAU,IAAI,CACb,6BACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,gBAAa,EAC7C,MAAM,CACP;gBAED,oBAAC,MAAM,IACL,UAAU,EAAC,YAAY,EACvB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,IAAI,GACd,CACE,CACP;YAEA,QAAQ,IAAI,CACX,6BACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,cAAW,EAC3C,MAAM,CACP;gBAED,oBAAC,QAAQ,IACP,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAC,kCAAkC,GACzC,CACE,CACP;YAEA,OAAO,CAAC,QAAQ,EAAE,IAAI,CACrB,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,QAAQ,IACP,IAAI,EAAC,8BAA8B,EACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAC5B,CACE,CACP;YAED,oBAAC,UAAU,IAAC,IAAI,EAAC,oBAAoB,EAAC,IAAI,EAAE,OAAO,GAAI;YAEtD,SAAS,CAAC,QAAQ,EAAE,IAAI,CACvB,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,QAAQ,IACP,IAAI,EAAC,gCAAgC,EACrC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,GAC9B,CACE,CACP;YAED,oBAAC,UAAU,IAAC,IAAI,EAAC,sBAAsB,EAAC,IAAI,EAAE,SAAS,GAAI;YAE1D,SAAS,CAAC,IAAI,EAAE,IAAI,CACnB,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,IAAI,IAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,GAAI,CAC5B,CACP,CACG;QAEN,6BACE,SAAS,EAAC,aAAa,EACvB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,aAAU,EAC1C,MAAM,CACP,IAEA,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjC,6BAAK,SAAS,EAAC,MAAM;YACnB,2BAAG,SAAS,EAAC,MAAM;;gBACT,6CAAuB;2CAC7B;YACJ,gCACG,SAAS;iBACP,QAAQ,EAAE;iBACV,GAAG,EAAE;iBACL,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,CACjB,4BAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAChC,oBAAC,OAAO,IAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,GAAI,CACtD,CACN,EAJkB,CAIlB,CAAC,CACD,CACD,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,MAAM;YACnB,2BAAG,SAAS,EAAC,MAAM,qCAAmC;YACtD,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,OAAO,IACN,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EACtC,YAAY,EAAE,IAAI,GAClB,CACE,CACF,CACP,CACG;QAEN,oBAAC,kBAAkB,eAAK,KAAK,EAAI,CAC7B,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,kBAAkB,CAAC,EAQ3B;;QAPC,eAA0B,EAA1B,OAAO,mBAAG,WAAW,CAAC,IAAI,KAAA,EAC1B,MAAM,YAAA,EACN,OAAO,aAAA;IAMP,IAAI,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE;QACnC,OAAO;YACL,WAAW,EAAE,iCAAiC;YAC9C,SAAS,EACP,OAAO,KAAK,CAAC;gBACX,CAAC,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,+BAA+B;gBACxD,CAAC,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,0BAA0B;SACxD,CAAC;KACH;IACD,IAAI,OAAO,KAAK,WAAW,CAAC,KAAK,EAAE;QACjC,OAAO;YACL,WAAW,EAAE,mCAAmC;YAChD,SAAS,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,0BAA0B;SAC3D,CAAC;KACH;IACD,IAAI,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE;QACnC,OAAO;YACL,WAAW,EAAE,6BAA6B;YAC1C,SAAS,EAAE,MAAA,MAAM,CAAC,YAAY,mCAAI,0BAA0B;SAC7D,CAAC;KACH;IACD,OAAO;QACL,WAAW,EAAE,+BAA+B;QAC5C,SAAS,EACP,OAAO,KAAK,CAAC;YACX,CAAC,CAAC,MAAA,MAAM,CAAC,SAAS,mCAAI,uBAAuB;YAC7C,CAAC,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,4BAA4B;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,IAAM,aAAa,GAAmC,UAAA,KAAK;IACxD,IAAA,KAA6D,KAAK,KAA3C,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EAAE,SAAS,GAA2B,KAAK,UAAhC,EAAE,WAAW,GAAc,KAAK,YAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IAC3E,IAAM,KAAK,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IAClC,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7C,IAAM,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAC9C,IAAM,WAAW,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;IACnC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,OAAO,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,OAAO,EAAE;QACnD,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;KAC/B;IACK,IAAA,KAA6B,kBAAkB,CAAC;QACpD,OAAO,SAAA;QACP,MAAM,QAAA;QACN,OAAO,SAAA;KACR,CAAC,EAJM,WAAW,iBAAA,EAAE,SAAS,eAI5B,CAAC;IACH,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,MAAM;YACnB;gBACE,8BACE,SAAS,EAAE,sDAA+C,WAAW,CAAE,EACvE,KAAK,EAAE,IAAI,IAEV,SAAS,CACL;gBAAC,GAAG;gBACX,8BAAM,SAAS,EAAC,qBAAqB,IAAE,WAAW,CAAQ,CACvD,CACD;QAEL,OAAO,CAAC,cAAc,EAAE,IAAI,CAC3B,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,QAAE,OAAO,CAAC,WAAW,EAAE,CAAY,CACxC,CACP;QACA,gBAAgB,IAAI,CACnB,2BAAG,SAAS,EAAC,4BAA4B,IAAE,gBAAgB,CAAK,CACjE;QACA,SAAS,CAAC,cAAc,EAAE,IAAI,CAC7B,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,QAAE,SAAS,CAAC,WAAW,EAAE,CAAY,CAC1C,CACP;QAEA,YAAY,IAAI,CACf,4BAAI,SAAS,EAAC,8CAA8C,IACzD,YAAY,IAAI,CACf,4BAAI,SAAS,EAAC,cAAc;YAC1B,oBAAC,IAAI,IACH,SAAS,EAAC,4JAA4J,EACtK,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE;gBAExB,kCAAO,0BAA0B,CAAQ,CACpC,CACJ,CACN,CACE,CACN;QAEA,WAAW,IAAI,CACd,6BAAK,SAAS,EAAC,2CAA2C;YACxD,6BAAK,SAAS,EAAC,uBAAuB;;gBAEpC,8BAAM,SAAS,EAAC,uDAAuD,IACpE,WAAW,CACP,CACH,CACF,CACP,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAmC,UAAA,KAAK;;IAC7D,IAAA,KAAuC,KAAK,KAArB,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EAAE,SAAS,GAAK,KAAK,UAAV,CAAW;IAC/C,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAClD,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IACtD,IAAI,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO,EAAE;QAC9D,OAAO,yCAAK,CAAC;KACd;IACD,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,yCAAK,CAAC;KACd;IAED,IAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvC,IAAM,eAAe,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAExC,IAAM,YAAY,GAAG,MAAA,KAAK,CAAC,OAAO,EAAE,0CAAE,QAAQ,EAAE,CAAC;IAEjD,OAAO,CACL,6BAAK,SAAS,EAAC,YAAY;QACzB,6BAAK,SAAS,EAAC,oBAAoB;YACjC,6BAAK,SAAS,EAAC,qBAAqB;gBAClC,6BAAK,SAAS,EAAC,gBAAgB;oBAC7B,6BACE,SAAS,EAAE,iBACT,IAAI,KAAK,OAAO;4BACd,CAAC,CAAC,+BAA+B;4BACjC,CAAC,CAAC,6BAA6B,oEAC8B;wBAEjE,8BAAM,SAAS,EAAC,WAAW,wBAAyB,CAChD;oBACN,6BAAK,SAAS,EAAC,MAAM;wBACnB,6BACE,SAAS,EAAE,mBACT,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,UAC5C,GACP;wBACF,6BAAK,SAAS,EAAC,KAAK;4BAClB,4BAAI,SAAS,EAAC,SAAS;gCACrB,8BAAM,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,gCAE3B,CACJ;4BACJ,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE,EAAC,CAAC,CAAC,CAC5B,6BAAK,SAAS,EAAC,uBAAuB;;gCACgB,GAAG;gCACvD,8BAAM,SAAS,EAAC,uDAAuD;oCACpE,eAAe,CAAC,OAAO,EAAE;oCAAE,GAAG,CAC1B,CACH,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,uBAAuB;;gCAE1B,GAAG;gCACb,8BAAM,SAAS,EAAC,uDAAuD,IACpE,YAAY,CACR,CACH,CACP;4BACD,6BAAK,SAAS,EAAC,MAAM;gCAClB,eAAe,IAAI,CAClB,oBAAC,cAAc,IACb,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAA7B,CAA6B,EAC5C,QAAQ,EAAE,WAAW;oCAErB,8BAAM,SAAS,EAAC,uFAAuF,2BAEhG,CACQ,CAClB;gCACA,eAAe,IAAI,CAClB,6BACE,SAAS,EAAE,sBACT,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAChC;oCAEF,oBAAC,yBAAyB,eAAK,KAAK,EAAI;oCAAC,GAAG,CACxC,CACP,CACG,CACF,CACF;oBACN,oBAAC,yBAAyB,eAAK,KAAK,EAAI;oBACvC,aAAa,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI,CACpC,6BAAK,SAAS,EAAC,KAAK;wBAClB,oBAAC,cAAc,IACb,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAA9B,CAA8B,EAC7C,QAAQ,EAAE,YAAY;4BAEtB,8BAAM,SAAS,EAAC,uFAAuF;;gCACtF,GAAG;gCACjB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAC7C,CACQ;wBACjB,6BACE,SAAS,EAAE,sBAAe,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAE,IAE5D,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1B,6BAAK,SAAS,EAAC,MAAM;4BACnB,gCACG,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,CACrC,4BAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gCAChC,oBAAC,OAAO,IACN,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,GAAG,EACV,YAAY,EAAE,IAAI,GAClB,CACC,CACN,EARsC,CAQtC,CAAC,CACC,CACD,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,MAAM;4BACnB,6BAAK,SAAS,EAAC,MAAM;gCACnB,oBAAC,OAAO,IACN,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAC/B,YAAY,EAAE,IAAI,GAClB,CACE,CACF,CACP,CACG,CACF,CACP,CACG,CACF;YAEN,oBAAC,UAAU,IAAC,IAAI,EAAC,4BAA4B,EAAC,IAAI,EAAE,KAAK,GAAI,CACzD,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,yBAAyB,GAAmC,UAAC,EAGzE;;QAFC,YAAuB,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EACvB,SAAS,eAAA;IAET,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAEhC,IAAM,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,CAAC;IAEjC,IAAM,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,mCAAI,EAAE,CAAC;IAE7C,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,OAAO,GACX,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;IACpE,IAAM,UAAU,GACd,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE,MAAK,SAAS;QACjC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,yCAAK,CAAC;KACd;IAED,OAAO,CACL;QACG,OAAO,CAAC,OAAO,EAAE,IAAI,CACpB,6BAAK,SAAS,EAAC,4BAA4B;;YAChC,GAAG;YACZ,8BAAM,SAAS,EAAC,kDAAkD,IAC/D,OAAO,CAAC,OAAO,EAAE,CACb,CACH,CACP;QACA,OAAO,CAAC,cAAc,EAAE,IAAI,CAC3B,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,QAAE,OAAO,CAAC,WAAW,EAAE,CAAY,CACxC,CACP;QACA,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B,6BAAK,SAAS,EAAC,cAAc;YAC3B,4DAAiC;YACjC,4BAAI,SAAS,EAAC,+BAA+B,IAC1C,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,CACrB,4BAAI,SAAS,EAAC,wBAAwB,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;gBACrD,2BACE,IAAI,EAAE,WAAI,aAAa,CAAC,aAAa,CACnC,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,EACvB,MAAM,CACP,CAAE,EACH,SAAS,EAAC,yJAAyJ;oBAEnK,8BAAM,SAAS,EAAC,WAAW,IAAE,MAAM,CAAC,EAAE,EAAE,CAAQ,CAC9C,CACD,CACN,EAZsB,CAYtB,CAAC,CACC,CACD,CACP,CAAC,CAAC,CAAC,IAAI;QACP,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACrC,6BAAK,SAAS,EAAC,MAAM;YACnB,8BAAM,SAAS,EAAC,uBAAuB,gBAAiB;YACxD,gCACG,OAAO;iBACL,QAAQ,EAAE;iBACV,GAAG,EAAE;iBACL,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,CACjB,4BAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAChC,oBAAC,OAAO,IAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,GAAI,CACtD,CACN,EAJkB,CAIlB,CAAC,CACD,CACD,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,MAAM;YACnB,8BAAM,SAAS,EAAC,uBAAuB,eAAgB;YACvD,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,OAAO,IACN,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EACpC,YAAY,EAAE,IAAI,GAClB,CACE,CACF,CACP;QACA,UAAU,IAAI,CACb,6BACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE,aAAa,CAAC,aAAa,CAC7B,oBAAa,IAAI,cAAI,WAAW,gBAAa,EAC7C,MAAM,CACP;YAED,oBAAC,MAAM,IAAC,UAAU,EAAC,YAAY,EAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAI,CAClE,CACP;QACA,OAAO,CAAC,QAAQ,EAAE,IAAI,CACrB,6BAAK,SAAS,EAAC,MAAM;YACnB,oBAAC,QAAQ,IAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAI,CACtD,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,yBAAyB,GAAmC,UAAC,EAGzE;QAFC,YAAuB,EAAvB,IAAI,mBAAG,WAAW,CAAC,IAAI,KAAA,EACvB,SAAS,eAAA;IAET,IAAI,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO,EAAE;QAC9D,OAAO,yCAAK,CAAC;KACd;IACD,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;QAC9C,OAAO,yCAAK,CAAC;KACd;IACD,IAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAG,CAAC;IACtC,IAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAErD,OAAO,CACL,6BAAK,SAAS,EAAC,MAAM;QACnB,6BACE,SAAS,EAAE,mBACT,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,UAC5C,GACP;QACF,6BAAK,SAAS,EAAC,KAAK;YAClB,4BAAI,SAAS,EAAC,SAAS;gBACrB,8BAAM,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,IAAI,gCAErC,CACJ;YACJ,oBAAoB,IAAI,CACvB,6BAAK,SAAS,EAAC,uBAAuB;;gBAEpC,8BAAM,SAAS,EAAC,uDAAuD,IACpE,oBAAoB,CAChB,CACH,CACP;YACA,YAAY,CAAC,cAAc,EAAE,IAAI,CAChC,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,QAAQ,QAAE,YAAY,CAAC,WAAW,EAAE,CAAY,CAC7C,CACP;YACD,oBAAC,UAAU,IAAC,IAAI,EAAC,oCAAoC,EAAC,IAAI,EAAE,KAAK,GAAI,CACjE,CACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport { ChannelInterface, OperationInterface } from '@asyncapi/parser';\n\nimport { Message } from '../Messages/Message';\nimport { Security } from '../Servers/Security';\nimport {\n Markdown,\n Schema,\n Bindings,\n Tags,\n Extensions,\n CollapseButton,\n} from '../../components';\nimport { Href } from '../../components/Href';\n\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport {\n EXTERAL_DOCUMENTATION_TEXT,\n PUBLISH_LABEL_DEFAULT_TEXT,\n RECEIVE_TEXT_LABEL_DEFAULT_TEXT,\n REPLIER_LABEL_DEFAULT_TEXT,\n REQUEST_LABEL_DEFAULT_TEXT,\n SEND_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../../constants';\nimport { PayloadType } from '../../types';\nimport { ConfigInterface } from '../../config/config';\ninterface Props {\n type: PayloadType;\n operation: OperationInterface;\n channelName: string;\n channel: ChannelInterface;\n}\n\nexport const Operation: React.FunctionComponent<Props> = props => {\n const config = useConfig();\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n if (!operation || !channel) {\n return null;\n }\n\n // check typeof as fallback for older version than `2.2.0`\n const servers =\n typeof channel.servers === 'function' && channel.servers().all();\n // check typeof as fallback for older version than `2.4.0`\n const security =\n typeof operation.security === 'function' && operation.security();\n const parameters =\n channel.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n return (\n <div>\n <div className=\"panel-item--center px-8\">\n <OperationInfo {...props} />\n\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema\n schemaName=\"Parameters\"\n schema={parameters}\n expanded={true}\n />\n </div>\n )}\n\n {security && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-security`,\n config,\n )}\n >\n <Security\n security={security}\n header=\"Additional security requirements\"\n />\n </div>\n )}\n\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Channel specific information\"\n bindings={channel.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Channel Extensions\" item={channel} />\n\n {operation.bindings() && (\n <div className=\"mt-2\">\n <Bindings\n name=\"Operation specific information\"\n bindings={operation.bindings()}\n />\n </div>\n )}\n\n <Extensions name=\"Operation Extensions\" item={operation} />\n\n {operation.tags() && (\n <div className=\"mt-2\">\n <Tags tags={operation.tags()} />\n </div>\n )}\n </div>\n\n <div\n className=\"w-full mt-4\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-message`,\n config,\n )}\n >\n {operation.messages().length > 1 ? (\n <div className=\"mt-2\">\n <p className=\"px-8\">\n Accepts <strong>one of</strong> the following messages:\n </p>\n <ul>\n {operation\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <p className=\"px-8\">Accepts the following message:</p>\n <div className=\"mt-2\">\n <Message\n message={operation.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nfunction getTypeInformation({\n typeRes = PayloadType.SEND,\n config,\n version,\n}: {\n typeRes: PayloadType;\n config: ConfigInterface;\n version: number;\n}): { borderColor: string; typeLabel: string } {\n if (typeRes === PayloadType.RECEIVE) {\n return {\n borderColor: 'border-green-600 text-green-600',\n typeLabel:\n version === 1\n ? config.receiveLabel ?? RECEIVE_TEXT_LABEL_DEFAULT_TEXT\n : config.publishLabel ?? PUBLISH_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REPLY) {\n return {\n borderColor: 'border-orange-600 text-orange-600',\n typeLabel: config.replyLabel ?? REPLIER_LABEL_DEFAULT_TEXT,\n };\n }\n if (typeRes === PayloadType.REQUEST) {\n return {\n borderColor: 'border-red-600 text-red-600',\n typeLabel: config.requestLabel ?? REQUEST_LABEL_DEFAULT_TEXT,\n };\n }\n return {\n borderColor: 'border-blue-600 text-blue-500',\n typeLabel:\n version === 1\n ? config.sendLabel ?? SEND_LABEL_DEFAULT_TEXT\n : config.subscribeLabel ?? SUBSCRIBE_LABEL_DEFAULT_TEXT,\n };\n}\n\nexport const OperationInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const config = useConfig();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n let typeRes = type;\n if (version === 1 && operation.action() !== typeRes) {\n typeRes = PayloadType.RECEIVE;\n }\n const { borderColor, typeLabel } = getTypeInformation({\n typeRes,\n config,\n version,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono border uppercase p-1 rounded mr-2 ${borderColor}`}\n title={type}\n >\n {typeLabel}\n </span>{' '}\n <span className=\"font-mono text-base\">{channelName}</span>\n </h3>\n </div>\n\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {operationSummary && (\n <p className=\"text-gray-600 text-sm mt-2\">{operationSummary}</p>\n )}\n {operation.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{operation.description()}</Markdown>\n </div>\n )}\n\n {externalDocs && (\n <ul className=\"leading-normal mt-2 mb-4 space-x-2 space-y-2\">\n {externalDocs && (\n <li className=\"inline-block\">\n <Href\n className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={externalDocs.url()}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n </ul>\n )}\n\n {operationId && (\n <div className=\"border bg-gray-100 rounded px-4 py-2 mt-2\">\n <div className=\"text-sm text-gray-700\">\n Operation ID\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport const OperationReplyInfo: React.FunctionComponent<Props> = props => {\n const { type = PayloadType.SEND, operation } = props;\n const [showMessages, setShowMessages] = useState(false);\n const [showChannel, setShowChannel] = useState(false);\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined) {\n return <></>;\n }\n\n const replyMessages = reply.messages();\n const explicitChannel = reply.channel();\n\n const replyAddress = reply.address()?.location();\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center\">\n <div className=\"font-mono px-8 py-4\">\n <div className=\"border rounded\">\n <div\n className={`w-full ${\n type === 'reply'\n ? 'bg-green-600 border-green-600'\n : 'bg-blue-600 border-blue-600'\n } text-sm rounded-t h-8 px-4 border text-white flex items-center`}\n >\n <span className=\"font-bold\">REPLY INFORMATION</span>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2\" title={type}>\n REPLY CHANNEL INFORMATION\n </span>\n </h3>\n {explicitChannel?.address() ? (\n <div className=\"text-xs text-gray-700\">\n Reply will be provided via this designated address:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {explicitChannel.address()}{' '}\n </span>\n </div>\n ) : (\n <div className=\"text-xs text-gray-700\">\n Reply will be directed to the address specified at this\n location:{' '}\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddress}\n </span>\n </div>\n )}\n <div className=\"mt-2\">\n {explicitChannel && (\n <CollapseButton\n onClick={() => setShowChannel(prev => !prev)}\n expanded={showChannel}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n View channel details\n </span>\n </CollapseButton>\n )}\n {explicitChannel && (\n <div\n className={`w-full mt-4 ${\n showChannel ? 'block' : 'hidden'\n }`}\n >\n <OperationReplyChannelInfo {...props} />{' '}\n </div>\n )}\n </div>\n </div>\n </div>\n <OperationReplyAddressInfo {...props} />\n {replyMessages.isEmpty() === false && (\n <div className=\"p-4\">\n <CollapseButton\n onClick={() => setShowMessages(prev => !prev)}\n expanded={showMessages}\n >\n <span className=\"inline-block py-0.5 mr-1 text-gray-500 text-xs text-center rounded focus:outline-none\">\n Expected Reply{' '}\n {replyMessages.length > 1 ? 'Messages' : 'Message'}\n </span>\n </CollapseButton>\n <div\n className={`w-full mt-4 ${showMessages ? 'block' : 'hidden'}`}\n >\n {replyMessages.length > 1 ? (\n <div className=\"mt-2\">\n <ul>\n {replyMessages.all().map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message\n message={msg}\n index={idx}\n showExamples={true}\n />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <div className=\"mt-2\">\n <Message\n message={replyMessages.all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n\n <Extensions name=\"Operation Reply Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n\nexport const OperationReplyChannelInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n const reply = operation.reply();\n\n const channel = reply?.channel();\n\n const channelName = channel?.address() ?? '';\n\n const config = useConfig();\n const servers =\n typeof channel?.servers === 'function' && channel.servers().all();\n const parameters =\n channel?.parameters() !== undefined\n ? SchemaHelpers.parametersToSchema(channel.parameters())\n : undefined;\n\n if (!channel) {\n return <></>;\n }\n\n return (\n <div>\n {channel.address() && (\n <div className=\"mt-2 text-xs text-gray-700\">\n Address:{' '}\n <span className=\"border text-orange-600 rounded text-xs py-0 px-2\">\n {channel.address()}\n </span>\n </div>\n )}\n {channel.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{channel.description()}</Markdown>\n </div>\n )}\n {servers && servers.length > 0 ? (\n <div className=\"mt-2 text-sm\">\n <p>Available only on servers:</p>\n <ul className=\"flex flex-wrap leading-normal\">\n {servers.map(server => (\n <li className=\"inline-block mt-2 mr-2\" key={server.id()}>\n <a\n href={`#${CommonHelpers.getIdentifier(\n 'server-' + server.id(),\n config,\n )}`}\n className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 font-bold no-underline text-xs rounded px-3 py-1 cursor-pointer\"\n >\n <span className=\"underline\">{server.id()}</span>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n {channel.messages().all().length > 1 ? (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Messages:</span>\n <ul>\n {channel\n .messages()\n .all()\n .map((msg, idx) => (\n <li className=\"mt-4\" key={msg.id()}>\n <Message message={msg} index={idx} showExamples={true} />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className=\"mt-2\">\n <span className=\"text-xs text-gray-700\">Message:</span>\n <div className=\"mt-2\">\n <Message\n message={channel.messages().all()[0]}\n showExamples={true}\n />\n </div>\n </div>\n )}\n {parameters && (\n <div\n className=\"mt-2\"\n id={CommonHelpers.getIdentifier(\n `operation-${type}-${channelName}-parameters`,\n config,\n )}\n >\n <Schema schemaName=\"Parameters\" schema={parameters} expanded={true} />\n </div>\n )}\n {channel.bindings() && (\n <div className=\"mt-2\">\n <Bindings name=\"Bindings\" bindings={channel.bindings()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const OperationReplyAddressInfo: React.FunctionComponent<Props> = ({\n type = PayloadType.SEND,\n operation,\n}) => {\n if (type !== PayloadType.REPLY && type !== PayloadType.REQUEST) {\n return <></>;\n }\n const reply = operation.reply();\n if (reply === undefined || !reply.hasAddress()) {\n return <></>;\n }\n const replyAddress = reply.address()!;\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === 'reply' ? 'bg-green-600' : 'bg-blue-600'\n } mt-4`}\n />\n <div className=\"p-4\">\n <h3 className=\"text-xs\">\n <span className=\"mr-2 uppercase\" title={type}>\n REPLY address information\n </span>\n </h3>\n {replyAddressLocation && (\n <div className=\"text-xs text-gray-700\">\n REPLY will be sent to the address provided in:\n <span className=\"border text-orange-600 rounded text-xs ml-2 py-0 px-2\">\n {replyAddressLocation}\n </span>\n </div>\n )}\n {replyAddress.hasDescription() && (\n <div className=\"mt-2\">\n <Markdown>{replyAddress.description()}</Markdown>\n </div>\n )}\n <Extensions name=\"Operation Reply Address Extensions\" item={reply} />\n </div>\n </div>\n );\n};\n"]}
@@ -10,7 +10,7 @@ interface Props {
10
10
  export declare const Operation: React.FunctionComponent<Props>;
11
11
  export declare const OperationInfo: React.FunctionComponent<Props>;
12
12
  export declare const OperationReplyInfo: React.FunctionComponent<Props>;
13
- export declare const OperationChannelInfo: React.FunctionComponent<Props>;
13
+ export declare const OperationReplyChannelInfo: React.FunctionComponent<Props>;
14
14
  export declare const OperationReplyAddressInfo: React.FunctionComponent<Props>;
15
15
  export {};
16
16
  //# sourceMappingURL=Operation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.d.ts","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAyBxE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,UAAU,KAAK;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA+IpD,CAAC;AAyCF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAwExD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAmI7D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA8F/D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA4CpE,CAAC"}
1
+ {"version":3,"file":"Operation.d.ts","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAyBxE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,UAAU,KAAK;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA+IpD,CAAC;AAyCF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAwExD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAmI7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAoGpE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA4CpE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asyncapi/react-component",
3
- "version": "1.2.9",
3
+ "version": "1.2.11",
4
4
  "private": false,
5
5
  "description": "A React component for AsyncAPI specification.",
6
6
  "repository": {
@@ -68,10 +68,10 @@
68
68
  "get:version": "echo $npm_package_version"
69
69
  },
70
70
  "dependencies": {
71
- "@asyncapi/avro-schema-parser": "^3.0.8",
71
+ "@asyncapi/avro-schema-parser": "^3.0.9",
72
72
  "@asyncapi/openapi-schema-parser": "^3.0.10",
73
73
  "@asyncapi/parser": "^3.0.2",
74
- "@asyncapi/protobuf-schema-parser": "^3.0.5",
74
+ "@asyncapi/protobuf-schema-parser": "^3.0.6",
75
75
  "highlight.js": "^10.7.2",
76
76
  "isomorphic-dompurify": "^0.13.0",
77
77
  "marked": "^4.0.14",