@asyncapi/react-component 2.6.4 → 3.0.0

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.
Files changed (82) hide show
  1. package/LICENSE +201 -202
  2. package/README.md +15 -9
  3. package/browser/index.js +1 -1
  4. package/browser/standalone/index.js +1 -1
  5. package/browser/standalone/without-parser.js +1 -1
  6. package/browser/without-parser.js +1 -1
  7. package/lib/cjs/components/CollapseButton.js +4 -4
  8. package/lib/cjs/components/CollapseButton.js.map +1 -1
  9. package/lib/cjs/components/PluginSlotRenderer.js +21 -0
  10. package/lib/cjs/components/PluginSlotRenderer.js.map +1 -0
  11. package/lib/cjs/constants.js +2 -1
  12. package/lib/cjs/constants.js.map +1 -1
  13. package/lib/cjs/containers/AsyncApi/AsyncApi.js +2 -2
  14. package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
  15. package/lib/cjs/containers/AsyncApi/Layout.js +15 -13
  16. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  17. package/lib/cjs/containers/AsyncApi/Standalone.js +99 -3
  18. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  19. package/lib/cjs/containers/Info/Info.js +9 -1
  20. package/lib/cjs/containers/Info/Info.js.map +1 -1
  21. package/lib/cjs/containers/Operations/Operation.js +8 -1
  22. package/lib/cjs/containers/Operations/Operation.js.map +1 -1
  23. package/lib/cjs/containers/Sidebar/Sidebar.js +6 -7
  24. package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
  25. package/lib/cjs/contexts/usePlugin.js +10 -0
  26. package/lib/cjs/contexts/usePlugin.js.map +1 -0
  27. package/lib/cjs/helpers/pluginManager.js +116 -0
  28. package/lib/cjs/helpers/pluginManager.js.map +1 -0
  29. package/lib/cjs/index.js +3 -1
  30. package/lib/cjs/index.js.map +1 -1
  31. package/lib/cjs/types.js +6 -1
  32. package/lib/cjs/types.js.map +1 -1
  33. package/lib/esm/components/CollapseButton.js +4 -4
  34. package/lib/esm/components/CollapseButton.js.map +1 -1
  35. package/lib/esm/components/PluginSlotRenderer.js +15 -0
  36. package/lib/esm/components/PluginSlotRenderer.js.map +1 -0
  37. package/lib/esm/constants.js +1 -0
  38. package/lib/esm/constants.js.map +1 -1
  39. package/lib/esm/containers/AsyncApi/AsyncApi.js +2 -2
  40. package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
  41. package/lib/esm/containers/AsyncApi/Layout.js +15 -13
  42. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  43. package/lib/esm/containers/AsyncApi/Standalone.js +99 -3
  44. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  45. package/lib/esm/containers/Info/Info.js +9 -1
  46. package/lib/esm/containers/Info/Info.js.map +1 -1
  47. package/lib/esm/containers/Operations/Operation.js +9 -2
  48. package/lib/esm/containers/Operations/Operation.js.map +1 -1
  49. package/lib/esm/containers/Sidebar/Sidebar.js +6 -7
  50. package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
  51. package/lib/esm/contexts/usePlugin.js +6 -0
  52. package/lib/esm/contexts/usePlugin.js.map +1 -0
  53. package/lib/esm/helpers/pluginManager.js +113 -0
  54. package/lib/esm/helpers/pluginManager.js.map +1 -0
  55. package/lib/esm/index.js +1 -0
  56. package/lib/esm/index.js.map +1 -1
  57. package/lib/esm/types.js +5 -0
  58. package/lib/esm/types.js.map +1 -1
  59. package/lib/types/components/PluginSlotRenderer.d.ts +11 -0
  60. package/lib/types/components/PluginSlotRenderer.d.ts.map +1 -0
  61. package/lib/types/constants.d.ts +1 -0
  62. package/lib/types/constants.d.ts.map +1 -1
  63. package/lib/types/containers/AsyncApi/AsyncApi.d.ts +5 -1
  64. package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
  65. package/lib/types/containers/AsyncApi/Layout.d.ts +2 -0
  66. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  67. package/lib/types/containers/AsyncApi/Standalone.d.ts +13 -1
  68. package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
  69. package/lib/types/containers/Info/Info.d.ts.map +1 -1
  70. package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
  71. package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
  72. package/lib/types/contexts/usePlugin.d.ts +5 -0
  73. package/lib/types/contexts/usePlugin.d.ts.map +1 -0
  74. package/lib/types/helpers/pluginManager.d.ts +26 -0
  75. package/lib/types/helpers/pluginManager.d.ts.map +1 -0
  76. package/lib/types/index.d.ts +1 -1
  77. package/lib/types/index.d.ts.map +1 -1
  78. package/lib/types/types.d.ts +38 -0
  79. package/lib/types/types.d.ts.map +1 -1
  80. package/package.json +5 -4
  81. package/styles/default.css +15 -0
  82. package/styles/default.min.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const CSS_PREFIX = 'asyncapi';\nexport const CONTENT_TYPES_SITE =\n 'https://www.iana.org/assignments/media-types';\nexport const COLLAPSE_ALL_TEXT = 'Collapse All';\nexport const EXPAND_ALL_TEXT = 'Expand All';\n\nexport const VALIDATION_ERRORS_TYPE =\n 'https://github.com/asyncapi/parser-js/validation-errors';\nexport const SERVERS = 'Servers';\n\nexport const ONE_OF_PAYLOADS_TEXT = 'One of those payloads:';\nexport const ANY_OF_PAYLOADS_TEXT = 'Any of those payloads:';\nexport const GENERATED_BADGE_TEXT = 'generated';\nexport const ONE_OF_FOLLOWING_MESSAGES_PUBLISH_TEXT =\n 'You can send one of the following messages:';\nexport const ONE_OF_FOLLOWING_MESSAGES_PUBLISH_SINGLE_TEXT =\n 'You can send the following message:';\nexport const ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_TEXT =\n 'You can subscribe to one of the following messages:';\nexport const ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_SINGLE_TEXT =\n 'You can subscribe to the following message:';\nexport const RAW_MESSAGE_SUBSCRIBE_TEXT =\n 'You can subscribe to the following message:';\nexport const RAW_MESSAGE_PUBLISH_TEXT = 'You can send the following message:';\n\nexport const CONTACT_TEXT = 'Contact';\nexport const NAM_TEXTE = 'Name';\nexport const URL_TEXT = 'Url';\nexport const EMAIL_TEXT = 'Email';\nexport const LICENSE_TEXT = 'License';\nexport const TERMS_OF_SERVICE_TEXT = 'Terms of service';\nexport const URL_SUPPORT_TEXT = 'Support';\nexport const EMAIL_SUPPORT_TEXT = 'Email support';\nexport const EXTERAL_DOCUMENTATION_TEXT = 'External Docs';\nexport const LOCATION_TEXT = 'Location';\nexport const TYPE_TEXT = 'Type';\nexport const SPECIFICATION_TEXT = 'Specification';\n\nexport const DEPRECATED_TEXT = 'Deprecated';\nexport const PUBLISH_TEXT = 'Publish';\nexport const PUBLISH_LABEL_DEFAULT_TEXT = 'PUB';\nexport const SEND_TEXT = 'Send';\nexport const SEND_LABEL_DEFAULT_TEXT = 'SEND';\nexport const SUBSCRIBE_TEXT = 'Subscribe';\nexport const SUBSCRIBE_LABEL_DEFAULT_TEXT = 'SUB';\nexport const RECEIVE_TEXT = 'Receive';\nexport const RECEIVE_TEXT_LABEL_DEFAULT_TEXT = 'RECEIVE';\nexport const REQUEST_TEXT = 'Request';\nexport const REQUEST_LABEL_DEFAULT_TEXT = 'REQUEST';\nexport const REPLIER_TEXT = 'Reply';\nexport const REPLIER_LABEL_DEFAULT_TEXT = 'REPLY';\nexport const REQUIRED_TEXT = 'Required';\nexport const GENERATED_TEXT = 'Generated';\n\nexport const SERVERS_TEXT = 'Servers';\nexport const OPERATIONS_TEXT = 'Operations';\nexport const MESSAGES_TEXT = 'Messages';\nexport const SCHEMAS_TEXT = 'Schemas';\n\nexport const CHANNELS_TEXT = 'Channels';\nexport const PARAMETERS_TEXT = 'Parameters';\nexport const HEADERS_TEXT = 'Headers';\nexport const MESSAGE_HEADERS_TEXT = 'Message Headers';\nexport const HEADERS_EXAMPLE_TEXT = 'Example of headers';\nexport const TAGS_TEXT = 'Tags';\nexport const PAYLOAD_TEXT = 'Payload';\nexport const MESSAGE_PAYLOAD_TEXT = 'Message Payload';\nexport const PAYLOAD_EXAMPLE_TEXT = 'Example of payload';\nexport const SCHEMA_EXAMPLE_TEXT = 'Example';\n\nexport const SERVER_BINDINGS_TEXT = 'Server Bindings';\nexport const CHANNEL_BINDINGS_TEXT = 'Channel Bindings';\nexport const OPERATION_BINDINGS_TEXT = 'Operation Bindings';\nexport const MESSAGE_BINDINGS_TEXT = 'Message Bindings';\n\nexport const BINDINGS_SCHEMA_OBJECT_TEXT = 'Schema Object';\n\nexport const NONE_TEXT = 'None';\nexport const ANY_TEXT = 'Any';\nexport const ERROR_TEXT = 'Error';\nexport const EXPAND_ERROR_BUTTON_TEXT = 'Expand';\nexport const COLLAPSE_ERROR_BUTTON_TEXT = 'Collapse';\n\nexport const SECURITY_TEXT = 'Security';\n\nexport const URL_VARIABLES_TEXT = 'URL Variables';\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const CSS_PREFIX = 'asyncapi';\nexport const CONTENT_TYPES_SITE =\n 'https://www.iana.org/assignments/media-types';\nexport const COLLAPSE_ALL_TEXT = 'Collapse All';\nexport const EXPAND_ALL_TEXT = 'Expand All';\n\nexport const VALIDATION_ERRORS_TYPE =\n 'https://github.com/asyncapi/parser-js/validation-errors';\nexport const SERVERS = 'Servers';\n\nexport const ONE_OF_PAYLOADS_TEXT = 'One of those payloads:';\nexport const ANY_OF_PAYLOADS_TEXT = 'Any of those payloads:';\nexport const GENERATED_BADGE_TEXT = 'generated';\nexport const ONE_OF_FOLLOWING_MESSAGES_PUBLISH_TEXT =\n 'You can send one of the following messages:';\nexport const ONE_OF_FOLLOWING_MESSAGES_PUBLISH_SINGLE_TEXT =\n 'You can send the following message:';\nexport const ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_TEXT =\n 'You can subscribe to one of the following messages:';\nexport const ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_SINGLE_TEXT =\n 'You can subscribe to the following message:';\nexport const RAW_MESSAGE_SUBSCRIBE_TEXT =\n 'You can subscribe to the following message:';\nexport const RAW_MESSAGE_PUBLISH_TEXT = 'You can send the following message:';\n\nexport const CONTACT_TEXT = 'Contact';\nexport const NAM_TEXTE = 'Name';\nexport const URL_TEXT = 'Url';\nexport const EMAIL_TEXT = 'Email';\nexport const LICENSE_TEXT = 'License';\nexport const TERMS_OF_SERVICE_TEXT = 'Terms of service';\nexport const URL_SUPPORT_TEXT = 'Support';\nexport const EMAIL_SUPPORT_TEXT = 'Email support';\nexport const EXTERAL_DOCUMENTATION_TEXT = 'External Docs';\nexport const LOCATION_TEXT = 'Location';\nexport const TYPE_TEXT = 'Type';\nexport const SPECIFICATION_TEXT = 'Specification';\n\nexport const DEPRECATED_TEXT = 'Deprecated';\nexport const PUBLISH_TEXT = 'Publish';\nexport const PUBLISH_LABEL_DEFAULT_TEXT = 'PUB';\nexport const SEND_TEXT = 'Send';\nexport const SEND_LABEL_DEFAULT_TEXT = 'SEND';\nexport const SUBSCRIBE_TEXT = 'Subscribe';\nexport const SUBSCRIBE_LABEL_DEFAULT_TEXT = 'SUB';\nexport const RECEIVE_TEXT = 'Receive';\nexport const RECEIVE_TEXT_LABEL_DEFAULT_TEXT = 'RECEIVE';\nexport const REQUEST_TEXT = 'Request';\nexport const REQUEST_LABEL_DEFAULT_TEXT = 'REQUEST';\nexport const REPLIER_TEXT = 'Reply';\nexport const REPLIER_LABEL_DEFAULT_TEXT = 'REPLY';\nexport const REQUIRED_TEXT = 'Required';\nexport const GENERATED_TEXT = 'Generated';\n\nexport const SERVERS_TEXT = 'Servers';\nexport const OPERATIONS_TEXT = 'Operations';\nexport const MESSAGES_TEXT = 'Messages';\nexport const SCHEMAS_TEXT = 'Schemas';\n\nexport const CHANNELS_TEXT = 'Channels';\nexport const PARAMETERS_TEXT = 'Parameters';\nexport const HEADERS_TEXT = 'Headers';\nexport const MESSAGE_HEADERS_TEXT = 'Message Headers';\nexport const HEADERS_EXAMPLE_TEXT = 'Example of headers';\nexport const TAGS_TEXT = 'Tags';\nexport const PAYLOAD_TEXT = 'Payload';\nexport const MESSAGE_PAYLOAD_TEXT = 'Message Payload';\nexport const PAYLOAD_EXAMPLE_TEXT = 'Example of payload';\nexport const SCHEMA_EXAMPLE_TEXT = 'Example';\n\nexport const SERVER_BINDINGS_TEXT = 'Server Bindings';\nexport const CHANNEL_BINDINGS_TEXT = 'Channel Bindings';\nexport const OPERATION_BINDINGS_TEXT = 'Operation Bindings';\nexport const MESSAGE_BINDINGS_TEXT = 'Message Bindings';\n\nexport const BINDINGS_SCHEMA_OBJECT_TEXT = 'Schema Object';\n\nexport const NONE_TEXT = 'None';\nexport const ANY_TEXT = 'Any';\nexport const ERROR_TEXT = 'Error';\nexport const EXPAND_ERROR_BUTTON_TEXT = 'Expand';\nexport const COLLAPSE_ERROR_BUTTON_TEXT = 'Collapse';\n\nexport const SECURITY_TEXT = 'Security';\n\nexport const URL_VARIABLES_TEXT = 'URL Variables';\n\nexport const PLUGINEVENTS = ['plugin:ready', 'plugin:error'];\n"]}
@@ -100,9 +100,9 @@ var AsyncApiComponent = (function (_super) {
100
100
  });
101
101
  };
102
102
  AsyncApiComponent.prototype.render = function () {
103
- var _a = this.props, schema = _a.schema, config = _a.config;
103
+ var _a = this.props, schema = _a.schema, config = _a.config, plugins = _a.plugins, onPluginEvent = _a.onPluginEvent, onPluginManagerReady = _a.onPluginManagerReady;
104
104
  var _b = this.state, asyncapi = _b.asyncapi, error = _b.error;
105
- return (React.createElement(AsyncApiStandalone, { schema: asyncapi !== null && asyncapi !== void 0 ? asyncapi : schema, config: config, error: error }));
105
+ return (React.createElement(AsyncApiStandalone, { schema: asyncapi !== null && asyncapi !== void 0 ? asyncapi : schema, config: config, error: error, plugins: plugins, onPluginEvent: onPluginEvent, onPluginManagerReady: onPluginManagerReady }));
106
106
  };
107
107
  AsyncApiComponent.prototype.parseSchema = function (schema, parserOptions) {
108
108
  return __awaiter(this, void 0, void 0, function () {
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncApi.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/AsyncApi.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,kBAAkB,MAAM,cAAc,CAAC;AAE9C,OAAO,EACL,yBAAyB,GAG1B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAY7D;IAAgC,qCAAuC;IAAvE;QAAA,qEA6DC;QA5DC,WAAK,GAAkB;YACrB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACjB,CAAC;;IAyDJ,CAAC;IAvDO,6CAAiB,GAAvB;;;;;;6BACM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAjB,cAAiB;wBACb,KAAqB,IAAI,CAAC,KAAK,EAA7B,MAAM,YAAA,EAAE,MAAM,YAAA,CAAgB;wBACtC,WAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,EAAA;;wBAArD,SAAqD,CAAC;;;;;;KAEzD;IAEK,8CAAkB,GAAxB,UAAyB,SAAwB;;;;;;wBACzC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;wBAC7B,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;6BAEhC,CAAA,SAAS,KAAK,SAAS,CAAA,EAAvB,cAAuB;wBACjB,MAAM,GAAK,IAAI,CAAC,KAAK,OAAf,CAAgB;wBAC9B,WAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,EAAA;;wBAAxD,SAAwD,CAAC;;;;;;KAE5D;IAED,kCAAM,GAAN;QACQ,IAAA,KAAqB,IAAI,CAAC,KAAK,EAA7B,MAAM,YAAA,EAAE,MAAM,YAAe,CAAC;QAChC,IAAA,KAAsB,IAAI,CAAC,KAAK,EAA9B,QAAQ,cAAA,EAAE,KAAK,WAAe,CAAC;QAEvC,OAAO,CACL,oBAAC,kBAAkB,IACjB,MAAM,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,MAAM,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;IACJ,CAAC;IAGa,uCAAW,GAAzB,UAA0B,MAAmB,EAAE,aAAmB;;;;;;wBAC1D,UAAU,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBACnE,IAAI,UAAU,EAAE;4BACd,IAAI,CAAC,QAAQ,CAAC;gCACZ,QAAQ,EAAE,UAAU;6BACrB,CAAC,CAAC;4BACH,WAAO;yBACR;6BAEG,yBAAyB,CAAC,MAAM,CAAC,EAAjC,cAAiC;wBACb,WAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,EAAA;;wBAAhE,aAAa,GAAG,SAAgD;wBACtE,IAAI,CAAC,QAAQ,CAAC;4BACZ,QAAQ,EAAE,aAAa,CAAC,QAAQ;4BAChC,KAAK,EAAE,aAAa,CAAC,KAAK;yBAC3B,CAAC,CAAC;wBACH,WAAO;4BAGM,WAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,EAAA;;wBAAlD,MAAM,GAAG,SAAyC;wBACxD,IAAI,CAAC,QAAQ,CAAC;4BACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,KAAK,EAAE,MAAM,CAAC,KAAK;yBACpB,CAAC,CAAC;;;;;KACJ;IACH,wBAAC;AAAD,CAAC,AA7DD,CAAgC,SAAS,GA6DxC;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nimport AsyncApiStandalone from './Standalone';\n\nimport {\n isFetchingSchemaInterface,\n ErrorObject,\n PropsSchema,\n} from '../../types';\nimport { ConfigInterface } from '../../config';\nimport { SpecificationHelpers, Parser } from '../../helpers';\n\nexport interface AsyncApiProps {\n schema: PropsSchema;\n config?: Partial<ConfigInterface>;\n}\n\ninterface AsyncAPIState {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nclass AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {\n state: AsyncAPIState = {\n asyncapi: undefined,\n error: undefined,\n };\n\n async componentDidMount() {\n if (this.props.schema) {\n const { schema, config } = this.props;\n await this.parseSchema(schema, config?.parserOptions);\n }\n }\n\n async componentDidUpdate(prevProps: AsyncApiProps) {\n const oldSchema = prevProps.schema;\n const newSchema = this.props.schema;\n\n if (oldSchema !== newSchema) {\n const { config } = this.props;\n await this.parseSchema(newSchema, config?.parserOptions);\n }\n }\n\n render() {\n const { schema, config } = this.props;\n const { asyncapi, error } = this.state;\n\n return (\n <AsyncApiStandalone\n schema={asyncapi ?? schema}\n config={config}\n error={error}\n />\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private async parseSchema(schema: PropsSchema, parserOptions?: any) {\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);\n if (parsedSpec) {\n this.setState({\n asyncapi: parsedSpec,\n });\n return;\n }\n\n if (isFetchingSchemaInterface(schema)) {\n const parsedFromUrl = await Parser.parseFromUrl(schema, parserOptions);\n this.setState({\n asyncapi: parsedFromUrl.asyncapi,\n error: parsedFromUrl.error,\n });\n return;\n }\n\n const parsed = await Parser.parse(schema, parserOptions);\n this.setState({\n asyncapi: parsed.asyncapi,\n error: parsed.error,\n });\n }\n}\n\nexport default AsyncApiComponent;\n"]}
1
+ {"version":3,"file":"AsyncApi.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/AsyncApi.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,kBAAkB,MAAM,cAAc,CAAC;AAE9C,OAAO,EACL,yBAAyB,GAI1B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAgB7D;IAAgC,qCAAuC;IAAvE;QAAA,qEAiEC;QAhEC,WAAK,GAAkB;YACrB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACjB,CAAC;;IA6DJ,CAAC;IA3DO,6CAAiB,GAAvB;;;;;;6BACM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAjB,cAAiB;wBACb,KAAqB,IAAI,CAAC,KAAK,EAA7B,MAAM,YAAA,EAAE,MAAM,YAAA,CAAgB;wBACtC,WAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,EAAA;;wBAArD,SAAqD,CAAC;;;;;;KAEzD;IAEK,8CAAkB,GAAxB,UAAyB,SAAwB;;;;;;wBACzC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;wBAC7B,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;6BAEhC,CAAA,SAAS,KAAK,SAAS,CAAA,EAAvB,cAAuB;wBACjB,MAAM,GAAK,IAAI,CAAC,KAAK,OAAf,CAAgB;wBAC9B,WAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,EAAA;;wBAAxD,SAAwD,CAAC;;;;;;KAE5D;IAED,kCAAM,GAAN;QACQ,IAAA,KACJ,IAAI,CAAC,KAAK,EADJ,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,aAAa,mBAAA,EAAE,oBAAoB,0BACxD,CAAC;QACP,IAAA,KAAsB,IAAI,CAAC,KAAK,EAA9B,QAAQ,cAAA,EAAE,KAAK,WAAe,CAAC;QAEvC,OAAO,CACL,oBAAC,kBAAkB,IACjB,MAAM,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,MAAM,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,GAC1C,CACH,CAAC;IACJ,CAAC;IAGa,uCAAW,GAAzB,UAA0B,MAAmB,EAAE,aAAmB;;;;;;wBAC1D,UAAU,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBACnE,IAAI,UAAU,EAAE;4BACd,IAAI,CAAC,QAAQ,CAAC;gCACZ,QAAQ,EAAE,UAAU;6BACrB,CAAC,CAAC;4BACH,WAAO;yBACR;6BAEG,yBAAyB,CAAC,MAAM,CAAC,EAAjC,cAAiC;wBACb,WAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,EAAA;;wBAAhE,aAAa,GAAG,SAAgD;wBACtE,IAAI,CAAC,QAAQ,CAAC;4BACZ,QAAQ,EAAE,aAAa,CAAC,QAAQ;4BAChC,KAAK,EAAE,aAAa,CAAC,KAAK;yBAC3B,CAAC,CAAC;wBACH,WAAO;4BAGM,WAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,EAAA;;wBAAlD,MAAM,GAAG,SAAyC;wBACxD,IAAI,CAAC,QAAQ,CAAC;4BACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,KAAK,EAAE,MAAM,CAAC,KAAK;yBACpB,CAAC,CAAC;;;;;KACJ;IACH,wBAAC;AAAD,CAAC,AAjED,CAAgC,SAAS,GAiExC;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nimport AsyncApiStandalone from './Standalone';\n\nimport {\n isFetchingSchemaInterface,\n ErrorObject,\n PropsSchema,\n AsyncApiPlugin,\n} from '../../types';\nimport { ConfigInterface } from '../../config';\nimport { SpecificationHelpers, Parser } from '../../helpers';\nimport { PluginManager } from '../../helpers/pluginManager';\n\nexport interface AsyncApiProps {\n schema: PropsSchema;\n config?: Partial<ConfigInterface>;\n plugins?: AsyncApiPlugin[];\n onPluginEvent?: (eventName: string, data: unknown) => void;\n onPluginManagerReady?: (pluginManager: PluginManager) => void;\n}\n\ninterface AsyncAPIState {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nclass AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {\n state: AsyncAPIState = {\n asyncapi: undefined,\n error: undefined,\n };\n\n async componentDidMount() {\n if (this.props.schema) {\n const { schema, config } = this.props;\n await this.parseSchema(schema, config?.parserOptions);\n }\n }\n\n async componentDidUpdate(prevProps: AsyncApiProps) {\n const oldSchema = prevProps.schema;\n const newSchema = this.props.schema;\n\n if (oldSchema !== newSchema) {\n const { config } = this.props;\n await this.parseSchema(newSchema, config?.parserOptions);\n }\n }\n\n render() {\n const { schema, config, plugins, onPluginEvent, onPluginManagerReady } =\n this.props;\n const { asyncapi, error } = this.state;\n\n return (\n <AsyncApiStandalone\n schema={asyncapi ?? schema}\n config={config}\n error={error}\n plugins={plugins}\n onPluginEvent={onPluginEvent}\n onPluginManagerReady={onPluginManagerReady}\n />\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private async parseSchema(schema: PropsSchema, parserOptions?: any) {\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);\n if (parsedSpec) {\n this.setState({\n asyncapi: parsedSpec,\n });\n return;\n }\n\n if (isFetchingSchemaInterface(schema)) {\n const parsedFromUrl = await Parser.parseFromUrl(schema, parserOptions);\n this.setState({\n asyncapi: parsedFromUrl.asyncapi,\n error: parsedFromUrl.error,\n });\n return;\n }\n\n const parsed = await Parser.parse(schema, parserOptions);\n this.setState({\n asyncapi: parsed.asyncapi,\n error: parsed.error,\n });\n }\n}\n\nexport default AsyncApiComponent;\n"]}
@@ -8,9 +8,10 @@ import { Messages } from '../Messages/Messages';
8
8
  import { Schemas } from '../Schemas/Schemas';
9
9
  import { SpecificationContext, ConfigContext } from '../../contexts';
10
10
  import AsyncApiErrorBoundary from '../ApplicationErrorHandler/ErrorBoundary';
11
+ import { PluginContext } from '../../contexts/usePlugin';
11
12
  var AsyncApiLayout = function (_a) {
12
13
  var _b, _c;
13
- var asyncapi = _a.asyncapi, config = _a.config;
14
+ var asyncapi = _a.asyncapi, config = _a.config, pluginManager = _a.pluginManager;
14
15
  var _d = useState('container:xl'), observerClassName = _d[0], setObserverClassName = _d[1];
15
16
  var ref = useResizeObserver({
16
17
  onResize: function (_a) {
@@ -29,18 +30,19 @@ var AsyncApiLayout = function (_a) {
29
30
  var configShow = (_b = config.show) !== null && _b !== void 0 ? _b : {};
30
31
  return (React.createElement(ConfigContext.Provider, { value: config },
31
32
  React.createElement(SpecificationContext.Provider, { value: asyncapi },
32
- React.createElement("section", { className: "aui-root" },
33
- React.createElement(AsyncApiErrorBoundary, null,
34
- React.createElement("div", { className: "".concat(observerClassName, " relative md:flex bg-white leading-normal"), id: (_c = config.schemaID) !== null && _c !== void 0 ? _c : undefined, ref: ref },
35
- configShow.sidebar && React.createElement(Sidebar, null),
36
- React.createElement("div", { className: "panel--center relative py-8 flex-1" },
37
- React.createElement("div", { className: "relative z-10" },
38
- configShow.info && React.createElement(Info, null),
39
- configShow.servers && React.createElement(Servers, null),
40
- configShow.operations && React.createElement(Operations, null),
41
- configShow.messages && React.createElement(Messages, null),
42
- configShow.schemas && React.createElement(Schemas, null)),
43
- React.createElement("div", { className: "panel--right absolute top-0 right-0 h-full bg-gray-800" }))))))));
33
+ React.createElement(PluginContext.Provider, { value: pluginManager },
34
+ React.createElement("section", { className: "aui-root" },
35
+ React.createElement(AsyncApiErrorBoundary, null,
36
+ React.createElement("div", { className: "".concat(observerClassName, " relative md:flex bg-white leading-normal"), id: (_c = config.schemaID) !== null && _c !== void 0 ? _c : undefined, ref: ref },
37
+ configShow.sidebar && React.createElement(Sidebar, null),
38
+ React.createElement("div", { className: "panel--center relative py-8 flex-1" },
39
+ React.createElement("div", { className: "relative z-10" },
40
+ configShow.info && React.createElement(Info, null),
41
+ configShow.servers && React.createElement(Servers, null),
42
+ configShow.operations && React.createElement(Operations, null),
43
+ configShow.messages && React.createElement(Messages, null),
44
+ configShow.schemas && React.createElement(Schemas, null)),
45
+ React.createElement("div", { className: "panel--right absolute top-0 right-0 h-full bg-gray-800" })))))))));
44
46
  };
45
47
  export default AsyncApiLayout;
46
48
  //# sourceMappingURL=Layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,qBAAqB,MAAM,0CAA0C,CAAC;AAO7E,IAAM,cAAc,GAAmC,UAAC,EAGvD;;QAFC,QAAQ,cAAA,EACR,MAAM,YAAA;IAEA,IAAA,KAA4C,QAAQ,CAAC,cAAc,CAAC,EAAnE,iBAAiB,QAAA,EAAE,oBAAoB,QAA4B,CAAC;IAEnE,IAAA,GAAG,GAAK,iBAAiB,CAAiB;QAChD,QAAQ,EAAE,UAAC,EAAS;gBAAP,KAAK,WAAA;YAChB,qBAAqB,CAAC;gBACpB,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,OAAO;iBACR;gBAED,IAAM,iBAAiB,GACrB,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACpD,IAAI,iBAAiB,KAAK,iBAAiB,EAAE;oBAC3C,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;iBACzC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,IAdS,CAcR;IAEH,IAAM,UAAU,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;IACrC,OAAO,CACL,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM;QACnC,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ;YAC5C,iCAAS,SAAS,EAAC,UAAU;gBAC3B,oBAAC,qBAAqB;oBACpB,6BACE,SAAS,EAAE,UAAG,iBAAiB,8CAA2C,EAC1E,EAAE,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,SAAS,EAChC,GAAG,EAAE,GAAG;wBAEP,UAAU,CAAC,OAAO,IAAI,oBAAC,OAAO,OAAG;wBAClC,6BAAK,SAAS,EAAC,oCAAoC;4BACjD,6BAAK,SAAS,EAAC,eAAe;gCAC3B,UAAU,CAAC,IAAI,IAAI,oBAAC,IAAI,OAAG;gCAC3B,UAAU,CAAC,OAAO,IAAI,oBAAC,OAAO,OAAG;gCACjC,UAAU,CAAC,UAAU,IAAI,oBAAC,UAAU,OAAG;gCACvC,UAAU,CAAC,QAAQ,IAAI,oBAAC,QAAQ,OAAG;gCACnC,UAAU,CAAC,OAAO,IAAI,oBAAC,OAAO,OAAG,CAC9B;4BACN,6BAAK,SAAS,EAAC,wDAAwD,GAAG,CACtE,CACF,CACgB,CAChB,CACoB,CACT,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\nimport useResizeObserver from 'use-resize-observer';\n\nimport { Sidebar } from '../Sidebar/Sidebar';\nimport { Info } from '../Info/Info';\nimport { Servers } from '../Servers/Servers';\nimport { Operations } from '../Operations/Operations';\nimport { Messages } from '../Messages/Messages';\nimport { Schemas } from '../Schemas/Schemas';\n\nimport { ConfigInterface } from '../../config';\nimport { SpecificationContext, ConfigContext } from '../../contexts';\nimport AsyncApiErrorBoundary from '../ApplicationErrorHandler/ErrorBoundary';\n\ninterface Props {\n asyncapi: AsyncAPIDocumentInterface;\n config: ConfigInterface;\n}\n\nconst AsyncApiLayout: React.FunctionComponent<Props> = ({\n asyncapi,\n config,\n}) => {\n const [observerClassName, setObserverClassName] = useState('container:xl');\n\n const { ref } = useResizeObserver<HTMLDivElement>({\n onResize: ({ width }) => {\n requestAnimationFrame(() => {\n if (width === undefined) {\n return;\n }\n\n const possibleClassName =\n width <= 1536 ? 'container:xl' : 'container:base';\n if (possibleClassName !== observerClassName) {\n setObserverClassName(possibleClassName);\n }\n });\n },\n });\n\n const configShow = config.show ?? {};\n return (\n <ConfigContext.Provider value={config}>\n <SpecificationContext.Provider value={asyncapi}>\n <section className=\"aui-root\">\n <AsyncApiErrorBoundary>\n <div\n className={`${observerClassName} relative md:flex bg-white leading-normal`}\n id={config.schemaID ?? undefined}\n ref={ref}\n >\n {configShow.sidebar && <Sidebar />}\n <div className=\"panel--center relative py-8 flex-1\">\n <div className=\"relative z-10\">\n {configShow.info && <Info />}\n {configShow.servers && <Servers />}\n {configShow.operations && <Operations />}\n {configShow.messages && <Messages />}\n {configShow.schemas && <Schemas />}\n </div>\n <div className=\"panel--right absolute top-0 right-0 h-full bg-gray-800\" />\n </div>\n </div>\n </AsyncApiErrorBoundary>\n </section>\n </SpecificationContext.Provider>\n </ConfigContext.Provider>\n );\n};\n\nexport default AsyncApiLayout;\n"]}
1
+ {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,qBAAqB,MAAM,0CAA0C,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAQzD,IAAM,cAAc,GAAmC,UAAC,EAIvD;;QAHC,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,aAAa,mBAAA;IAEP,IAAA,KAA4C,QAAQ,CAAC,cAAc,CAAC,EAAnE,iBAAiB,QAAA,EAAE,oBAAoB,QAA4B,CAAC;IAEnE,IAAA,GAAG,GAAK,iBAAiB,CAAiB;QAChD,QAAQ,EAAE,UAAC,EAAS;gBAAP,KAAK,WAAA;YAChB,qBAAqB,CAAC;gBACpB,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,OAAO;iBACR;gBAED,IAAM,iBAAiB,GACrB,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACpD,IAAI,iBAAiB,KAAK,iBAAiB,EAAE;oBAC3C,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;iBACzC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,IAdS,CAcR;IAEH,IAAM,UAAU,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;IACrC,OAAO,CACL,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM;QACnC,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ;YAC5C,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa;gBAC1C,iCAAS,SAAS,EAAC,UAAU;oBAC3B,oBAAC,qBAAqB;wBACpB,6BACE,SAAS,EAAE,UAAG,iBAAiB,8CAA2C,EAC1E,EAAE,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,SAAS,EAChC,GAAG,EAAE,GAAG;4BAEP,UAAU,CAAC,OAAO,IAAI,oBAAC,OAAO,OAAG;4BAClC,6BAAK,SAAS,EAAC,oCAAoC;gCACjD,6BAAK,SAAS,EAAC,eAAe;oCAC3B,UAAU,CAAC,IAAI,IAAI,oBAAC,IAAI,OAAG;oCAC3B,UAAU,CAAC,OAAO,IAAI,oBAAC,OAAO,OAAG;oCACjC,UAAU,CAAC,UAAU,IAAI,oBAAC,UAAU,OAAG;oCACvC,UAAU,CAAC,QAAQ,IAAI,oBAAC,QAAQ,OAAG;oCACnC,UAAU,CAAC,OAAO,IAAI,oBAAC,OAAO,OAAG,CAC9B;gCACN,6BAAK,SAAS,EAAC,wDAAwD,GAAG,CACtE,CACF,CACgB,CAChB,CACa,CACK,CACT,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\nimport useResizeObserver from 'use-resize-observer';\n\nimport { Sidebar } from '../Sidebar/Sidebar';\nimport { Info } from '../Info/Info';\nimport { Servers } from '../Servers/Servers';\nimport { Operations } from '../Operations/Operations';\nimport { Messages } from '../Messages/Messages';\nimport { Schemas } from '../Schemas/Schemas';\n\nimport { ConfigInterface } from '../../config';\nimport { SpecificationContext, ConfigContext } from '../../contexts';\nimport AsyncApiErrorBoundary from '../ApplicationErrorHandler/ErrorBoundary';\nimport { PluginManager } from '../../helpers/pluginManager';\nimport { PluginContext } from '../../contexts/usePlugin';\n\ninterface Props {\n asyncapi: AsyncAPIDocumentInterface;\n config: ConfigInterface;\n pluginManager?: PluginManager;\n}\n\nconst AsyncApiLayout: React.FunctionComponent<Props> = ({\n asyncapi,\n config,\n pluginManager,\n}) => {\n const [observerClassName, setObserverClassName] = useState('container:xl');\n\n const { ref } = useResizeObserver<HTMLDivElement>({\n onResize: ({ width }) => {\n requestAnimationFrame(() => {\n if (width === undefined) {\n return;\n }\n\n const possibleClassName =\n width <= 1536 ? 'container:xl' : 'container:base';\n if (possibleClassName !== observerClassName) {\n setObserverClassName(possibleClassName);\n }\n });\n },\n });\n\n const configShow = config.show ?? {};\n return (\n <ConfigContext.Provider value={config}>\n <SpecificationContext.Provider value={asyncapi}>\n <PluginContext.Provider value={pluginManager}>\n <section className=\"aui-root\">\n <AsyncApiErrorBoundary>\n <div\n className={`${observerClassName} relative md:flex bg-white leading-normal`}\n id={config.schemaID ?? undefined}\n ref={ref}\n >\n {configShow.sidebar && <Sidebar />}\n <div className=\"panel--center relative py-8 flex-1\">\n <div className=\"relative z-10\">\n {configShow.info && <Info />}\n {configShow.servers && <Servers />}\n {configShow.operations && <Operations />}\n {configShow.messages && <Messages />}\n {configShow.schemas && <Schemas />}\n </div>\n <div className=\"panel--right absolute top-0 right-0 h-full bg-gray-800\" />\n </div>\n </div>\n </AsyncApiErrorBoundary>\n </section>\n </PluginContext.Provider>\n </SpecificationContext.Provider>\n </ConfigContext.Provider>\n );\n};\n\nexport default AsyncApiLayout;\n"]}
@@ -29,13 +29,20 @@ import { SpecificationHelpers } from '../../helpers';
29
29
  import { defaultConfig } from '../../config';
30
30
  import AsyncApiLayout from './Layout';
31
31
  import { Error } from '../Error/Error';
32
+ import { PluginManager } from '../../helpers/pluginManager';
33
+ import { PLUGINEVENTS } from '../../constants';
32
34
  var AsyncApiComponent = (function (_super) {
33
35
  __extends(AsyncApiComponent, _super);
34
36
  function AsyncApiComponent(props) {
35
37
  var _this = _super.call(this, props) || this;
38
+ _this.registeredPlugins = new Set();
39
+ _this.propsPlugins = new Set();
36
40
  _this.state = {
37
41
  asyncapi: undefined,
38
42
  error: undefined,
43
+ pm: new PluginManager({
44
+ schema: {},
45
+ }),
39
46
  };
40
47
  var parsedSpec = SpecificationHelpers.retrieveParsedSpec(props.schema);
41
48
  if (parsedSpec) {
@@ -47,18 +54,31 @@ var AsyncApiComponent = (function (_super) {
47
54
  if (!this.state.asyncapi) {
48
55
  this.updateState(this.props.schema);
49
56
  }
57
+ if (this.props.onPluginManagerReady) {
58
+ this.props.onPluginManagerReady(this.state.pm);
59
+ }
60
+ this.setupEventListeners();
61
+ this.registerPlugins();
50
62
  };
51
63
  AsyncApiComponent.prototype.componentDidUpdate = function (prevProps) {
64
+ var _a = this.props, schema = _a.schema, plugins = _a.plugins, onPluginEvent = _a.onPluginEvent;
52
65
  var oldSchema = prevProps.schema;
53
- var newSchema = this.props.schema;
66
+ var newSchema = schema;
54
67
  if (oldSchema !== newSchema) {
55
68
  this.updateState(newSchema);
56
69
  }
70
+ if (onPluginEvent !== prevProps.onPluginEvent) {
71
+ this.cleanupEventListeners();
72
+ this.setupEventListeners();
73
+ }
74
+ if (plugins !== prevProps.plugins) {
75
+ this.updatePlugins(prevProps.plugins, plugins);
76
+ }
57
77
  };
58
78
  AsyncApiComponent.prototype.render = function () {
59
79
  var _a;
60
80
  var _b = this.props, config = _b.config, propError = _b.error;
61
- var _c = this.state, asyncapi = _c.asyncapi, stateError = _c.error;
81
+ var _c = this.state, asyncapi = _c.asyncapi, stateError = _c.error, pm = _c.pm;
62
82
  var error = propError !== null && propError !== void 0 ? propError : stateError;
63
83
  var concatenatedConfig = __assign(__assign(__assign({}, defaultConfig), config), { show: __assign(__assign({}, defaultConfig.show), (!!config && config.show)), expand: __assign(__assign({}, defaultConfig.expand), (!!config && config.expand)), sidebar: __assign(__assign({}, defaultConfig.sidebar), (!!config && config.sidebar)), extensions: __assign(__assign({}, defaultConfig.extensions), (!!config && config.extensions)) });
64
84
  if (!asyncapi) {
@@ -68,15 +88,91 @@ var AsyncApiComponent = (function (_super) {
68
88
  return (((_a = concatenatedConfig.show) === null || _a === void 0 ? void 0 : _a.errors) && (React.createElement("section", { className: "aui-root" },
69
89
  React.createElement(Error, { error: error }))));
70
90
  }
71
- return React.createElement(AsyncApiLayout, { asyncapi: asyncapi, config: concatenatedConfig });
91
+ return (React.createElement(AsyncApiLayout, { asyncapi: asyncapi, config: concatenatedConfig, pluginManager: pm }));
92
+ };
93
+ AsyncApiComponent.prototype.handler = function (eventName) {
94
+ var _this = this;
95
+ return function (data) {
96
+ _this.props.onPluginEvent(eventName, data);
97
+ };
98
+ };
99
+ AsyncApiComponent.prototype.setupEventListeners = function () {
100
+ var _this = this;
101
+ var onPluginEvent = this.props.onPluginEvent;
102
+ var pm = this.state.pm;
103
+ if (!onPluginEvent)
104
+ return;
105
+ PLUGINEVENTS.forEach(function (event) {
106
+ pm === null || pm === void 0 ? void 0 : pm.on(event, _this.handler(event));
107
+ });
108
+ };
109
+ AsyncApiComponent.prototype.cleanupEventListeners = function () {
110
+ var _this = this;
111
+ var pm = this.state.pm;
112
+ PLUGINEVENTS.forEach(function (event) {
113
+ pm === null || pm === void 0 ? void 0 : pm.off(event, _this.handler(event));
114
+ });
115
+ };
116
+ AsyncApiComponent.prototype.registerPlugins = function () {
117
+ var _this = this;
118
+ var plugins = this.props.plugins;
119
+ var pm = this.state.pm;
120
+ plugins === null || plugins === void 0 ? void 0 : plugins.forEach(function (plugin) {
121
+ try {
122
+ pm === null || pm === void 0 ? void 0 : pm.register(plugin);
123
+ _this.registeredPlugins.add(plugin.name);
124
+ _this.propsPlugins.add(plugin.name);
125
+ }
126
+ catch (error) {
127
+ console.error("Failed to register plugin ".concat(plugin.name, ":"), error);
128
+ pm === null || pm === void 0 ? void 0 : pm.emit(PLUGINEVENTS[1], {
129
+ pluginName: plugin.name,
130
+ });
131
+ }
132
+ });
133
+ };
134
+ AsyncApiComponent.prototype.updatePlugins = function (prevPlugins, newPlugins) {
135
+ var _this = this;
136
+ var pm = this.state.pm;
137
+ var prevPluginMap = new Map((prevPlugins !== null && prevPlugins !== void 0 ? prevPlugins : []).map(function (p) { return [p.name, p]; }));
138
+ var newPluginMap = new Map((newPlugins !== null && newPlugins !== void 0 ? newPlugins : []).map(function (p) { return [p.name, p]; }));
139
+ prevPluginMap.forEach(function (_plugin, name) {
140
+ if (!newPluginMap.has(name) && _this.propsPlugins.has(name)) {
141
+ try {
142
+ pm === null || pm === void 0 ? void 0 : pm.unregister(name);
143
+ _this.registeredPlugins.delete(name);
144
+ _this.propsPlugins.delete(name);
145
+ }
146
+ catch (error) {
147
+ console.error("Failed to unregister plugin ".concat(name, ":"), error);
148
+ }
149
+ }
150
+ });
151
+ newPluginMap.forEach(function (plugin, name) {
152
+ if (!prevPluginMap.has(name)) {
153
+ try {
154
+ pm === null || pm === void 0 ? void 0 : pm.register(plugin);
155
+ _this.registeredPlugins.add(name);
156
+ _this.propsPlugins.add(name);
157
+ }
158
+ catch (error) {
159
+ console.error("Failed to register plugin ".concat(name, ":"), error);
160
+ pm === null || pm === void 0 ? void 0 : pm.emit(PLUGINEVENTS[1], {
161
+ pluginName: name,
162
+ });
163
+ }
164
+ }
165
+ });
72
166
  };
73
167
  AsyncApiComponent.prototype.updateState = function (schema) {
168
+ var _a;
74
169
  var parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);
75
170
  if (!parsedSpec) {
76
171
  this.setState({ asyncapi: undefined });
77
172
  return;
78
173
  }
79
174
  this.setState({ asyncapi: parsedSpec });
175
+ (_a = this.state.pm) === null || _a === void 0 ? void 0 : _a.updateContext({ schema: parsedSpec });
80
176
  };
81
177
  return AsyncApiComponent;
82
178
  }(Component));
@@ -1 +1 @@
1
- {"version":3,"file":"Standalone.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nimport { SpecificationHelpers } from '../../helpers';\nimport { ErrorObject, PropsSchema } from '../../types';\nimport { ConfigInterface, defaultConfig } from '../../config';\n\nimport AsyncApiLayout from './Layout';\nimport { Error } from '../Error/Error';\n\nexport interface AsyncApiProps {\n schema: PropsSchema;\n config?: Partial<ConfigInterface>;\n error?: ErrorObject;\n}\n\ninterface AsyncAPIState {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nclass AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {\n state: AsyncAPIState = {\n asyncapi: undefined,\n error: undefined,\n };\n\n constructor(props: AsyncApiProps) {\n super(props);\n\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(props.schema);\n if (parsedSpec) {\n this.state = { asyncapi: parsedSpec };\n }\n }\n\n componentDidMount() {\n if (!this.state.asyncapi) {\n this.updateState(this.props.schema);\n }\n }\n\n componentDidUpdate(prevProps: AsyncApiProps) {\n const oldSchema = prevProps.schema;\n const newSchema = this.props.schema;\n\n if (oldSchema !== newSchema) {\n this.updateState(newSchema);\n }\n }\n\n render() {\n const { config, error: propError } = this.props;\n const { asyncapi, error: stateError } = this.state;\n\n const error = propError ?? stateError;\n const concatenatedConfig: ConfigInterface = {\n ...defaultConfig,\n ...config,\n show: {\n ...defaultConfig.show,\n ...(!!config && config.show),\n },\n expand: {\n ...defaultConfig.expand,\n ...(!!config && config.expand),\n },\n sidebar: {\n ...defaultConfig.sidebar,\n ...(!!config && config.sidebar),\n },\n extensions: {\n ...defaultConfig.extensions,\n ...(!!config && config.extensions),\n },\n };\n\n if (!asyncapi) {\n if (!error) {\n return null;\n }\n return (\n concatenatedConfig.show?.errors && (\n <section className=\"aui-root\">\n <Error error={error} />\n </section>\n )\n );\n }\n\n return <AsyncApiLayout asyncapi={asyncapi} config={concatenatedConfig} />;\n }\n\n private updateState(schema: PropsSchema) {\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);\n if (!parsedSpec) {\n this.setState({ asyncapi: undefined });\n return;\n }\n this.setState({ asyncapi: parsedSpec });\n }\n}\n\nexport default AsyncApiComponent;\n"]}
1
+ {"version":3,"file":"Standalone.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nimport { SpecificationHelpers } from '../../helpers';\nimport { AsyncApiPlugin, ErrorObject, PropsSchema } from '../../types';\nimport { ConfigInterface, defaultConfig } from '../../config';\n\nimport AsyncApiLayout from './Layout';\nimport { Error } from '../Error/Error';\nimport { PluginManager } from '../../helpers/pluginManager';\nimport { PLUGINEVENTS } from '../../constants';\n\nexport interface AsyncApiProps {\n schema: PropsSchema;\n config?: Partial<ConfigInterface>;\n plugins?: AsyncApiPlugin[];\n onPluginEvent?: (eventName: string, data: unknown) => void;\n onPluginManagerReady?: (pluginManager: PluginManager) => void;\n error?: ErrorObject;\n}\n\ninterface AsyncAPIState {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n pm?: PluginManager;\n}\n\nclass AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {\n private readonly registeredPlugins = new Set<string>();\n private readonly propsPlugins = new Set<string>();\n\n state: AsyncAPIState = {\n asyncapi: undefined,\n error: undefined,\n pm: new PluginManager({\n schema: {},\n }),\n };\n\n constructor(props: AsyncApiProps) {\n super(props);\n\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(props.schema);\n if (parsedSpec) {\n this.state = { asyncapi: parsedSpec };\n }\n }\n\n componentDidMount() {\n if (!this.state.asyncapi) {\n this.updateState(this.props.schema);\n }\n if (this.props.onPluginManagerReady) {\n this.props.onPluginManagerReady(this.state.pm!);\n }\n this.setupEventListeners();\n\n this.registerPlugins();\n }\n\n componentDidUpdate(prevProps: AsyncApiProps) {\n const { schema, plugins, onPluginEvent } = this.props;\n const oldSchema = prevProps.schema;\n const newSchema = schema;\n\n if (oldSchema !== newSchema) {\n this.updateState(newSchema);\n }\n\n if (onPluginEvent !== prevProps.onPluginEvent) {\n this.cleanupEventListeners();\n this.setupEventListeners();\n }\n\n if (plugins !== prevProps.plugins) {\n this.updatePlugins(prevProps.plugins, plugins);\n }\n }\n\n render() {\n const { config, error: propError } = this.props;\n const { asyncapi, error: stateError, pm } = this.state;\n\n const error = propError ?? stateError;\n const concatenatedConfig: ConfigInterface = {\n ...defaultConfig,\n ...config,\n show: {\n ...defaultConfig.show,\n ...(!!config && config.show),\n },\n expand: {\n ...defaultConfig.expand,\n ...(!!config && config.expand),\n },\n sidebar: {\n ...defaultConfig.sidebar,\n ...(!!config && config.sidebar),\n },\n extensions: {\n ...defaultConfig.extensions,\n ...(!!config && config.extensions),\n },\n };\n\n if (!asyncapi) {\n if (!error) {\n return null;\n }\n return (\n concatenatedConfig.show?.errors && (\n <section className=\"aui-root\">\n <Error error={error} />\n </section>\n )\n );\n }\n\n return (\n <AsyncApiLayout\n asyncapi={asyncapi}\n config={concatenatedConfig}\n pluginManager={pm}\n />\n );\n }\n\n private handler(eventName: string) {\n return (data: unknown) => {\n this.props.onPluginEvent!(eventName, data);\n };\n }\n private setupEventListeners() {\n const { onPluginEvent } = this.props;\n const { pm } = this.state;\n\n if (!onPluginEvent) return;\n\n PLUGINEVENTS.forEach((event) => {\n pm?.on(event, this.handler(event));\n });\n }\n\n private cleanupEventListeners() {\n const { pm } = this.state;\n PLUGINEVENTS.forEach((event) => {\n pm?.off(event, this.handler(event));\n });\n }\n\n private registerPlugins() {\n const { plugins } = this.props;\n const { pm } = this.state;\n\n plugins?.forEach((plugin) => {\n try {\n pm?.register(plugin);\n this.registeredPlugins.add(plugin.name);\n this.propsPlugins.add(plugin.name); // Track as props-managed\n } catch (error) {\n console.error(`Failed to register plugin ${plugin.name}:`, error);\n pm?.emit(PLUGINEVENTS[1], {\n pluginName: plugin.name,\n });\n }\n });\n }\n\n private updatePlugins(\n prevPlugins: AsyncApiPlugin[] | undefined,\n newPlugins: AsyncApiPlugin[] | undefined,\n ) {\n const { pm } = this.state;\n\n const prevPluginMap = new Map((prevPlugins ?? []).map((p) => [p.name, p]));\n const newPluginMap = new Map((newPlugins ?? []).map((p) => [p.name, p]));\n\n prevPluginMap.forEach((_plugin, name) => {\n if (!newPluginMap.has(name) && this.propsPlugins.has(name)) {\n try {\n pm?.unregister(name);\n this.registeredPlugins.delete(name);\n this.propsPlugins.delete(name);\n } catch (error) {\n console.error(`Failed to unregister plugin ${name}:`, error);\n }\n }\n });\n\n newPluginMap.forEach((plugin, name) => {\n if (!prevPluginMap.has(name)) {\n try {\n pm?.register(plugin);\n this.registeredPlugins.add(name);\n this.propsPlugins.add(name);\n } catch (error) {\n console.error(`Failed to register plugin ${name}:`, error);\n pm?.emit(PLUGINEVENTS[1], {\n pluginName: name,\n });\n }\n }\n });\n }\n\n private updateState(schema: PropsSchema) {\n const parsedSpec = SpecificationHelpers.retrieveParsedSpec(schema);\n if (!parsedSpec) {\n this.setState({ asyncapi: undefined });\n return;\n }\n this.setState({ asyncapi: parsedSpec });\n this.state.pm?.updateContext({ schema: parsedSpec });\n }\n}\n\nexport default AsyncApiComponent;\n"]}
@@ -2,9 +2,14 @@ import React from 'react';
2
2
  import { Extensions, Href, Markdown, Tags } from '../../components';
3
3
  import { useSpec } from '../../contexts';
4
4
  import { TERMS_OF_SERVICE_TEXT, CONTENT_TYPES_SITE, URL_SUPPORT_TEXT, EXTERAL_DOCUMENTATION_TEXT, } from '../../constants';
5
+ import { PluginManager } from '../../helpers/pluginManager';
6
+ import { SlotRenderer } from '../../components/PluginSlotRenderer';
7
+ import { usePlugin } from '../../contexts/usePlugin';
8
+ import { PluginSlot } from '../../types';
5
9
  export var Info = function () {
6
10
  var _a, _b, _c, _d, _e, _f, _g;
7
11
  var asyncapi = useSpec();
12
+ var pluginManager = usePlugin();
8
13
  var info = asyncapi.info();
9
14
  if (!info) {
10
15
  return null;
@@ -51,7 +56,10 @@ export var Info = function () {
51
56
  asyncapi.info().tags().length > 0 && (React.createElement("div", { className: "mt-4" },
52
57
  React.createElement(Tags, { tags: asyncapi.info().tags() }))),
53
58
  extensions.length > 0 && (React.createElement("div", { className: "mt-4" },
54
- React.createElement(Extensions, { name: "Info Extensions", item: info })))),
59
+ React.createElement(Extensions, { name: "Info Extensions", item: info }))),
60
+ PluginManager && (React.createElement(SlotRenderer, { slot: PluginSlot.INFO, context: {
61
+ schema: info,
62
+ }, pluginManager: pluginManager }))),
55
63
  React.createElement("div", { className: "panel-item--right" })));
56
64
  };
57
65
  //# sourceMappingURL=Info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Extensions, Href, Markdown, Tags } from '../../components';\nimport { useSpec } from '../../contexts';\nimport {\n TERMS_OF_SERVICE_TEXT,\n CONTENT_TYPES_SITE,\n URL_SUPPORT_TEXT,\n EXTERAL_DOCUMENTATION_TEXT,\n} from '../../constants';\n\nexport const Info: React.FunctionComponent = () => {\n const asyncapi = useSpec();\n\n const info = asyncapi.info();\n if (!info) {\n return null;\n }\n\n const specId = asyncapi.info().id();\n const externalDocs = asyncapi.info().externalDocs();\n const license = info.license();\n const termsOfService = info.termsOfService();\n const defaultContentType = asyncapi.defaultContentType();\n const contact = info.contact();\n const extensions = info.extensions();\n\n const showInfoList =\n license ?? termsOfService ?? defaultContentType ?? contact ?? externalDocs;\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center px-8 text-left\" id=\"introduction\">\n <div className=\"text-4xl\">\n {info.title()}&nbsp;{info.version()}\n </div>\n\n {showInfoList && (\n <ul className=\"flex flex-wrap mt-2 leading-normal\">\n {license && (\n <li className=\"inline-block mt-2 mr-2\">\n {license.url() ? (\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={license.url() ?? ''}\n >\n <span>{license.name()}</span>\n </Href>\n ) : (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-3 py-1\">\n {license.name()}\n </strong>\n )}\n </li>\n )}\n {termsOfService && (\n <li className=\"inline-block mt-2 mr-2\">\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={termsOfService}\n >\n <span>{TERMS_OF_SERVICE_TEXT}</span>\n </Href>\n </li>\n )}\n {defaultContentType && (\n <li className=\"inline-block mt-2 mr-2\">\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={`${CONTENT_TYPES_SITE}/${defaultContentType}`}\n >\n <span>{defaultContentType}</span>\n </Href>\n </li>\n )}\n {externalDocs && (\n <li className=\"inline-block mt-2 mr-2\">\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 title={externalDocs.description() ?? undefined}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n {contact && (\n <>\n {contact.url() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={contact.url() ?? ''}\n >\n <span>{contact.name() ?? URL_SUPPORT_TEXT}</span>\n </Href>\n </li>\n )}\n {contact.email() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={`mailto:${contact.email()}`}\n >\n <span>{contact.email()}</span>\n </Href>\n </li>\n )}\n </>\n )}\n {specId && (\n <li className=\"inline-block mt-2 mr-2\">\n <strong className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 no-underline text-xs uppercase rounded px-3 py-1\">\n ID: {specId}\n </strong>\n </li>\n )}\n </ul>\n )}\n\n {info.hasDescription() && (\n <div className=\"mt-4\">\n <Markdown>{info.description()}</Markdown>\n </div>\n )}\n\n {asyncapi.info().tags().length > 0 && (\n <div className=\"mt-4\">\n <Tags tags={asyncapi.info().tags()} />\n </div>\n )}\n\n {extensions.length > 0 && (\n <div className=\"mt-4\">\n <Extensions name=\"Info Extensions\" item={info} />\n </div>\n )}\n </div>\n\n <div className=\"panel-item--right\" />\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Extensions, Href, Markdown, Tags } from '../../components';\nimport { useSpec } from '../../contexts';\nimport {\n TERMS_OF_SERVICE_TEXT,\n CONTENT_TYPES_SITE,\n URL_SUPPORT_TEXT,\n EXTERAL_DOCUMENTATION_TEXT,\n} from '../../constants';\nimport { PluginManager } from '../../helpers/pluginManager';\nimport { SlotRenderer } from '../../components/PluginSlotRenderer';\nimport { usePlugin } from '../../contexts/usePlugin';\nimport { PluginSlot } from '../../types';\n\nexport const Info: React.FunctionComponent = () => {\n const asyncapi = useSpec();\n const pluginManager = usePlugin();\n\n const info = asyncapi.info();\n if (!info) {\n return null;\n }\n\n const specId = asyncapi.info().id();\n const externalDocs = asyncapi.info().externalDocs();\n const license = info.license();\n const termsOfService = info.termsOfService();\n const defaultContentType = asyncapi.defaultContentType();\n const contact = info.contact();\n const extensions = info.extensions();\n\n const showInfoList =\n license ?? termsOfService ?? defaultContentType ?? contact ?? externalDocs;\n\n return (\n <div className=\"panel-item\">\n <div className=\"panel-item--center px-8 text-left\" id=\"introduction\">\n <div className=\"text-4xl\">\n {info.title()}&nbsp;{info.version()}\n </div>\n\n {showInfoList && (\n <ul className=\"flex flex-wrap mt-2 leading-normal\">\n {license && (\n <li className=\"inline-block mt-2 mr-2\">\n {license.url() ? (\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={license.url() ?? ''}\n >\n <span>{license.name()}</span>\n </Href>\n ) : (\n <strong className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 no-underline text-xs uppercase rounded px-3 py-1\">\n {license.name()}\n </strong>\n )}\n </li>\n )}\n {termsOfService && (\n <li className=\"inline-block mt-2 mr-2\">\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={termsOfService}\n >\n <span>{TERMS_OF_SERVICE_TEXT}</span>\n </Href>\n </li>\n )}\n {defaultContentType && (\n <li className=\"inline-block mt-2 mr-2\">\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={`${CONTENT_TYPES_SITE}/${defaultContentType}`}\n >\n <span>{defaultContentType}</span>\n </Href>\n </li>\n )}\n {externalDocs && (\n <li className=\"inline-block mt-2 mr-2\">\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 title={externalDocs.description() ?? undefined}\n >\n <span>{EXTERAL_DOCUMENTATION_TEXT}</span>\n </Href>\n </li>\n )}\n {contact && (\n <>\n {contact.url() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={contact.url() ?? ''}\n >\n <span>{contact.name() ?? URL_SUPPORT_TEXT}</span>\n </Href>\n </li>\n )}\n {contact.email() && (\n <li className=\"inline-block mt-2 mr-2\">\n <Href\n className=\"border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1\"\n href={`mailto:${contact.email()}`}\n >\n <span>{contact.email()}</span>\n </Href>\n </li>\n )}\n </>\n )}\n {specId && (\n <li className=\"inline-block mt-2 mr-2\">\n <strong className=\"border border-solid border-blue-300 hover:bg-blue-300 hover:text-blue-600 text-blue-500 no-underline text-xs uppercase rounded px-3 py-1\">\n ID: {specId}\n </strong>\n </li>\n )}\n </ul>\n )}\n\n {info.hasDescription() && (\n <div className=\"mt-4\">\n <Markdown>{info.description()}</Markdown>\n </div>\n )}\n\n {asyncapi.info().tags().length > 0 && (\n <div className=\"mt-4\">\n <Tags tags={asyncapi.info().tags()} />\n </div>\n )}\n\n {extensions.length > 0 && (\n <div className=\"mt-4\">\n <Extensions name=\"Info Extensions\" item={info} />\n </div>\n )}\n {PluginManager && (\n <SlotRenderer\n slot={PluginSlot.INFO}\n context={{\n schema: info,\n }}\n pluginManager={pluginManager}\n />\n )}\n </div>\n\n <div className=\"panel-item--right\" />\n </div>\n );\n};\n"]}
@@ -17,7 +17,10 @@ import { Href } from '../../components/Href';
17
17
  import { useConfig, useSpec } from '../../contexts';
18
18
  import { CommonHelpers, SchemaHelpers } from '../../helpers';
19
19
  import { EXTERAL_DOCUMENTATION_TEXT } from '../../constants';
20
- import { PayloadType } from '../../types';
20
+ import { PayloadType, PluginSlot } from '../../types';
21
+ import { PluginManager } from '../../helpers/pluginManager';
22
+ import { SlotRenderer } from '../../components/PluginSlotRenderer';
23
+ import { usePlugin } from '../../contexts/usePlugin';
21
24
  export var Operation = function (props) {
22
25
  var _a = props.type, type = _a === void 0 ? PayloadType.SEND : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
23
26
  var config = useConfig();
@@ -67,6 +70,7 @@ export var Operation = function (props) {
67
70
  export var OperationInfo = function (props) {
68
71
  var _a = props.type, type = _a === void 0 ? PayloadType.SEND : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
69
72
  var config = useConfig();
73
+ var pluginManager = usePlugin();
70
74
  var operationSummary = operation.summary();
71
75
  var externalDocs = operation.externalDocs();
72
76
  var operationId = operation.id();
@@ -95,7 +99,10 @@ export var OperationInfo = function (props) {
95
99
  operationId && (React.createElement("div", { className: "border bg-gray-100 rounded px-4 py-2 mt-2" },
96
100
  React.createElement("div", { className: "text-sm text-gray-700" },
97
101
  "Operation ID",
98
- React.createElement("span", { className: "bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2" }, operationId))))));
102
+ React.createElement("span", { className: "bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2" }, operationId)))),
103
+ PluginManager && (React.createElement(SlotRenderer, { slot: PluginSlot.OPERATION, context: {
104
+ schema: props,
105
+ }, pluginManager: pluginManager }))));
99
106
  };
100
107
  export var OperationReplyInfo = function (props) {
101
108
  var _a;
@@ -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';\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';\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport { EXTERAL_DOCUMENTATION_TEXT } from '../../constants';\nimport { PayloadType } from '../../types';\n\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 { type = PayloadType.SEND, operation, channelName, channel } = props;\n const config = useConfig();\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={`${window.location.pathname}#${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 schemaName=\"Parameters\" schema={parameters} expanded />\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 />\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 message={operation.messages().all()[0]} showExamples />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nexport const OperationInfo: React.FunctionComponent<Props> = (props) => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const config = useConfig();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const isAsyncAPIv2 = version === 0;\n const { backgroundColor, typeLabel } =\n CommonHelpers.getOperationDesignInformation({\n type,\n config,\n isAsyncAPIv2,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono text-white uppercase p-1 rounded mr-2 ${backgroundColor}`}\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=\"bg-orange-600 text-white 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 === PayloadType.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 <strong>REPLY INFORMATION</strong>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.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 replyAddress != null && (\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 )}\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 message={msg} index={idx} showExamples />\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\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 const channel = reply?.channel();\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={`${window.location.pathname}#${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 />\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 message={channel.messages().all()[0]} showExamples />\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 />\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?.address) {\n return <></>;\n }\n const replyAddress = reply.address();\n\n if (!replyAddress) {\n return <></>;\n }\n\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.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';\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';\nimport { useConfig, useSpec } from '../../contexts';\nimport { CommonHelpers, SchemaHelpers } from '../../helpers';\nimport { EXTERAL_DOCUMENTATION_TEXT } from '../../constants';\nimport { PayloadType, PluginSlot } from '../../types';\nimport { PluginManager } from '../../helpers/pluginManager';\nimport { SlotRenderer } from '../../components/PluginSlotRenderer';\nimport { usePlugin } from '../../contexts/usePlugin';\n\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 { type = PayloadType.SEND, operation, channelName, channel } = props;\n const config = useConfig();\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 {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={`${window.location.pathname}#${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 schemaName=\"Parameters\" schema={parameters} expanded />\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 />\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 message={operation.messages().all()[0]} showExamples />\n </div>\n </div>\n )}\n </div>\n\n <OperationReplyInfo {...props} />\n </div>\n );\n};\n\nexport const OperationInfo: React.FunctionComponent<Props> = (props) => {\n const { type = PayloadType.SEND, operation, channelName, channel } = props;\n const config = useConfig();\n const pluginManager = usePlugin();\n const operationSummary = operation.summary();\n const externalDocs = operation.externalDocs();\n const operationId = operation.id();\n const specV = useSpec().version();\n const version = specV.localeCompare('2.6.0', undefined, { numeric: true });\n const isAsyncAPIv2 = version === 0;\n const { backgroundColor, typeLabel } =\n CommonHelpers.getOperationDesignInformation({\n type,\n config,\n isAsyncAPIv2,\n });\n return (\n <>\n <div className=\"mb-4\">\n <h3>\n <span\n className={`font-mono text-white uppercase p-1 rounded mr-2 ${backgroundColor}`}\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=\"bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2\">\n {operationId}\n </span>\n </div>\n </div>\n )}\n {PluginManager && (\n <SlotRenderer\n slot={PluginSlot.OPERATION}\n context={{\n schema: props,\n }}\n pluginManager={pluginManager}\n />\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 === PayloadType.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 <strong>REPLY INFORMATION</strong>\n </div>\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.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 replyAddress != null && (\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 )}\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 message={msg} index={idx} showExamples />\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\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 const channel = reply?.channel();\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={`${window.location.pathname}#${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 />\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 message={channel.messages().all()[0]} showExamples />\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 />\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?.address) {\n return <></>;\n }\n const replyAddress = reply.address();\n\n if (!replyAddress) {\n return <></>;\n }\n\n const replyAddressLocation = replyAddress.location();\n\n return (\n <div className=\"flex\">\n <div\n className={`w-1 h-11 ${\n type === PayloadType.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"]}