@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
@@ -33,11 +33,11 @@ var HiChevronRight = function (props) {
33
33
  react_1.default.createElement("path", { fillRule: "evenodd", d: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z", clipRule: "evenodd" })));
34
34
  };
35
35
  var CollapseButton = function (_a) {
36
- var _b;
37
- var chevronProps = _a.chevronProps, _c = _a.expanded, expanded = _c === void 0 ? false : _c, children = _a.children, rest = __rest(_a, ["chevronProps", "expanded", "children"]);
38
- return (react_1.default.createElement("button", __assign({}, rest, { className: "focus:outline-none ".concat(rest.className), type: "button" }),
36
+ var _b, _c;
37
+ var chevronProps = _a.chevronProps, _d = _a.expanded, expanded = _d === void 0 ? false : _d, children = _a.children, rest = __rest(_a, ["chevronProps", "expanded", "children"]);
38
+ return (react_1.default.createElement("button", __assign({}, rest, { className: "focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 ".concat((_b = rest.className) !== null && _b !== void 0 ? _b : ''), type: "button" }),
39
39
  react_1.default.createElement("div", { className: "inline-block" }, children),
40
- react_1.default.createElement(HiChevronRight, __assign({}, chevronProps, { className: "inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear ".concat(expanded ? '-rotate-90' : '', " ").concat((_b = chevronProps === null || chevronProps === void 0 ? void 0 : chevronProps.className) !== null && _b !== void 0 ? _b : '') }))));
40
+ react_1.default.createElement(HiChevronRight, __assign({}, chevronProps, { className: "inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear ".concat(expanded ? '-rotate-90' : '', " ").concat((_c = chevronProps === null || chevronProps === void 0 ? void 0 : chevronProps.className) !== null && _c !== void 0 ? _c : '') }))));
41
41
  };
42
42
  exports.CollapseButton = CollapseButton;
43
43
  //# sourceMappingURL=CollapseButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollapseButton.js","sourceRoot":"","sources":["../../../src/components/CollapseButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmE;AAOnE,IAAM,cAAc,GAAG,UAAC,KAAqC;IAArC,sBAAA,EAAA,UAAqC;IAAK,OAAA,CAEhE,gDACE,MAAM,EAAC,cAAc,EACrB,IAAI,EAAC,cAAc,EACnB,WAAW,EAAC,GAAG,EACf,OAAO,EAAC,WAAW,EACnB,MAAM,EAAC,KAAK,EACZ,KAAK,EAAC,KAAK,EACX,KAAK,EAAC,4BAA4B,IAC9B,KAAK;QAET,wCACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,oHAAoH,EACtH,QAAQ,EAAC,SAAS,GAClB,CACE,CACP;AAlBiE,CAkBjE,CAAC;AAEK,IAAM,cAAc,GAAmC,UAAC,EAK9D;;IAJC,IAAA,YAAY,kBAAA,EACZ,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,QAAQ,cAAA,EACL,IAAI,cAJsD,wCAK9D,CADQ;IACH,OAAA,CACJ,qDACM,IAAI,IACR,SAAS,EAAE,6BAAsB,IAAI,CAAC,SAAS,CAAE,EACjD,IAAI,EAAC,QAAQ;QAEb,uCAAK,SAAS,EAAC,cAAc,IAAE,QAAQ,CAAO;QAC9C,8BAAC,cAAc,eACT,YAAY,IAChB,SAAS,EAAE,kIACT,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAC1B,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,mCAAI,EAAE,CAAE,IACnC,CACK,CACV,CAAA;CAAA,CAAC;AAnBW,QAAA,cAAc,kBAmBzB","sourcesContent":["import React, { ButtonHTMLAttributes, SVGAttributes } from 'react';\n\ninterface Props extends ButtonHTMLAttributes<HTMLButtonElement> {\n chevronProps?: SVGAttributes<SVGElement>;\n expanded?: boolean;\n}\n\nconst HiChevronRight = (props: SVGAttributes<SVGElement> = {}) => (\n // Copied from https://icon-sets.iconify.design/heroicons-solid/chevron-right/\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 20 20\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\nexport const CollapseButton: React.FunctionComponent<Props> = ({\n chevronProps,\n expanded = false,\n children,\n ...rest\n}) => (\n <button\n {...rest}\n className={`focus:outline-none ${rest.className}`}\n type=\"button\"\n >\n <div className=\"inline-block\">{children}</div>\n <HiChevronRight\n {...chevronProps}\n className={`inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear ${\n expanded ? '-rotate-90' : ''\n } ${chevronProps?.className ?? ''}`}\n />\n </button>\n);\n"]}
1
+ {"version":3,"file":"CollapseButton.js","sourceRoot":"","sources":["../../../src/components/CollapseButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmE;AAOnE,IAAM,cAAc,GAAG,UAAC,KAAqC;IAArC,sBAAA,EAAA,UAAqC;IAAK,OAAA,CAEhE,gDACE,MAAM,EAAC,cAAc,EACrB,IAAI,EAAC,cAAc,EACnB,WAAW,EAAC,GAAG,EACf,OAAO,EAAC,WAAW,EACnB,MAAM,EAAC,KAAK,EACZ,KAAK,EAAC,KAAK,EACX,KAAK,EAAC,4BAA4B,IAC9B,KAAK;QAET,wCACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,oHAAoH,EACtH,QAAQ,EAAC,SAAS,GAClB,CACE,CACP;AAlBiE,CAkBjE,CAAC;AAEK,IAAM,cAAc,GAAmC,UAAC,EAK9D;;IAJC,IAAA,YAAY,kBAAA,EACZ,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,QAAQ,cAAA,EACL,IAAI,cAJsD,wCAK9D,CADQ;IACH,OAAA,CACJ,qDACM,IAAI,IACR,SAAS,EAAE,iEAA0D,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE,CAAE,EAC3F,IAAI,EAAC,QAAQ;QAEb,uCAAK,SAAS,EAAC,cAAc,IAAE,QAAQ,CAAO;QAC9C,8BAAC,cAAc,eACT,YAAY,IAChB,SAAS,EAAE,kIACT,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAC1B,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,mCAAI,EAAE,CAAE,IACnC,CACK,CACV,CAAA;CAAA,CAAC;AAnBW,QAAA,cAAc,kBAmBzB","sourcesContent":["import React, { ButtonHTMLAttributes, SVGAttributes } from 'react';\n\ninterface Props extends ButtonHTMLAttributes<HTMLButtonElement> {\n chevronProps?: SVGAttributes<SVGElement>;\n expanded?: boolean;\n}\n\nconst HiChevronRight = (props: SVGAttributes<SVGElement> = {}) => (\n // Copied from https://icon-sets.iconify.design/heroicons-solid/chevron-right/\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 20 20\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\nexport const CollapseButton: React.FunctionComponent<Props> = ({\n chevronProps,\n expanded = false,\n children,\n ...rest\n}) => (\n <button\n {...rest}\n className={`focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 ${rest.className ?? ''}`}\n type=\"button\"\n >\n <div className=\"inline-block\">{children}</div>\n <HiChevronRight\n {...chevronProps}\n className={`inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear ${\n expanded ? '-rotate-90' : ''\n } ${chevronProps?.className ?? ''}`}\n />\n </button>\n);\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SlotRenderer = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var SlotRenderer = function (_a) {
9
+ var slot = _a.slot, context = _a.context, pluginManager = _a.pluginManager;
10
+ if (!pluginManager) {
11
+ return null;
12
+ }
13
+ var components = pluginManager.getComponentsForSlot(slot);
14
+ if (!components || components.length === 0) {
15
+ return null;
16
+ }
17
+ return (react_1.default.createElement("div", { className: "asyncapi-react-plugin-slot-".concat(slot), "data-slot": slot }, components.map(function (Component, index) { return (react_1.default.createElement(react_1.default.Suspense, { key: "".concat(slot, "-").concat(index), fallback: react_1.default.createElement("div", null, "Loading plugin...") },
18
+ react_1.default.createElement(Component, { context: context }))); })));
19
+ };
20
+ exports.SlotRenderer = SlotRenderer;
21
+ //# sourceMappingURL=PluginSlotRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginSlotRenderer.js","sourceRoot":"","sources":["../../../src/components/PluginSlotRenderer.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAA0B;AAU1B,IAAM,YAAY,GAAgC,UAAC,EAIlD;QAHC,IAAI,UAAA,EACJ,OAAO,aAAA,EACP,aAAa,mBAAA;IAEb,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,IAAM,UAAU,GAAG,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE5D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,qCAA8B,IAAI,CAAE,eAAa,IAAI,IAClE,UAAU,CAAC,GAAG,CAAC,UAAC,SAAS,EAAE,KAAK,IAAK,OAAA,CACpC,8BAAC,eAAK,CAAC,QAAQ,IACb,GAAG,EAAE,UAAG,IAAI,cAAI,KAAK,CAAE,EACvB,QAAQ,EAAE,+DAA4B;QAEtC,8BAAC,SAAS,IAAC,OAAO,EAAE,OAAO,GAAI,CAChB,CAClB,EAPqC,CAOrC,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEO,oCAAY","sourcesContent":["import React from 'react';\nimport { PluginManager } from '../helpers/pluginManager';\nimport { PluginContext, PluginSlot } from '../types';\n\ninterface SlotRendererProps {\n slot: PluginSlot;\n context: PluginContext;\n pluginManager?: PluginManager;\n}\n\nconst SlotRenderer: React.FC<SlotRendererProps> = ({\n slot,\n context,\n pluginManager,\n}) => {\n if (!pluginManager) {\n return null;\n }\n\n const components = pluginManager.getComponentsForSlot(slot);\n\n if (!components || components.length === 0) {\n return null;\n }\n\n return (\n <div className={`asyncapi-react-plugin-slot-${slot}`} data-slot={slot}>\n {components.map((Component, index) => (\n <React.Suspense\n key={`${slot}-${index}`}\n fallback={<div>Loading plugin...</div>}\n >\n <Component context={context} />\n </React.Suspense>\n ))}\n </div>\n );\n};\n\nexport { SlotRenderer };\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MESSAGE_HEADERS_TEXT = exports.HEADERS_TEXT = exports.PARAMETERS_TEXT = exports.CHANNELS_TEXT = exports.SCHEMAS_TEXT = exports.MESSAGES_TEXT = exports.OPERATIONS_TEXT = exports.SERVERS_TEXT = exports.GENERATED_TEXT = exports.REQUIRED_TEXT = exports.REPLIER_LABEL_DEFAULT_TEXT = exports.REPLIER_TEXT = exports.REQUEST_LABEL_DEFAULT_TEXT = exports.REQUEST_TEXT = exports.RECEIVE_TEXT_LABEL_DEFAULT_TEXT = exports.RECEIVE_TEXT = exports.SUBSCRIBE_LABEL_DEFAULT_TEXT = exports.SUBSCRIBE_TEXT = exports.SEND_LABEL_DEFAULT_TEXT = exports.SEND_TEXT = exports.PUBLISH_LABEL_DEFAULT_TEXT = exports.PUBLISH_TEXT = exports.DEPRECATED_TEXT = exports.SPECIFICATION_TEXT = exports.TYPE_TEXT = exports.LOCATION_TEXT = exports.EXTERAL_DOCUMENTATION_TEXT = exports.EMAIL_SUPPORT_TEXT = exports.URL_SUPPORT_TEXT = exports.TERMS_OF_SERVICE_TEXT = exports.LICENSE_TEXT = exports.EMAIL_TEXT = exports.URL_TEXT = exports.NAM_TEXTE = exports.CONTACT_TEXT = exports.RAW_MESSAGE_PUBLISH_TEXT = exports.RAW_MESSAGE_SUBSCRIBE_TEXT = exports.ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_SINGLE_TEXT = exports.ONE_OF_FOLLOWING_MESSAGES_SUBSCRIBE_TEXT = exports.ONE_OF_FOLLOWING_MESSAGES_PUBLISH_SINGLE_TEXT = exports.ONE_OF_FOLLOWING_MESSAGES_PUBLISH_TEXT = exports.GENERATED_BADGE_TEXT = exports.ANY_OF_PAYLOADS_TEXT = exports.ONE_OF_PAYLOADS_TEXT = exports.SERVERS = exports.VALIDATION_ERRORS_TYPE = exports.EXPAND_ALL_TEXT = exports.COLLAPSE_ALL_TEXT = exports.CONTENT_TYPES_SITE = exports.CSS_PREFIX = void 0;
4
- exports.URL_VARIABLES_TEXT = exports.SECURITY_TEXT = exports.COLLAPSE_ERROR_BUTTON_TEXT = exports.EXPAND_ERROR_BUTTON_TEXT = exports.ERROR_TEXT = exports.ANY_TEXT = exports.NONE_TEXT = exports.BINDINGS_SCHEMA_OBJECT_TEXT = exports.MESSAGE_BINDINGS_TEXT = exports.OPERATION_BINDINGS_TEXT = exports.CHANNEL_BINDINGS_TEXT = exports.SERVER_BINDINGS_TEXT = exports.SCHEMA_EXAMPLE_TEXT = exports.PAYLOAD_EXAMPLE_TEXT = exports.MESSAGE_PAYLOAD_TEXT = exports.PAYLOAD_TEXT = exports.TAGS_TEXT = exports.HEADERS_EXAMPLE_TEXT = void 0;
4
+ exports.PLUGINEVENTS = exports.URL_VARIABLES_TEXT = exports.SECURITY_TEXT = exports.COLLAPSE_ERROR_BUTTON_TEXT = exports.EXPAND_ERROR_BUTTON_TEXT = exports.ERROR_TEXT = exports.ANY_TEXT = exports.NONE_TEXT = exports.BINDINGS_SCHEMA_OBJECT_TEXT = exports.MESSAGE_BINDINGS_TEXT = exports.OPERATION_BINDINGS_TEXT = exports.CHANNEL_BINDINGS_TEXT = exports.SERVER_BINDINGS_TEXT = exports.SCHEMA_EXAMPLE_TEXT = exports.PAYLOAD_EXAMPLE_TEXT = exports.MESSAGE_PAYLOAD_TEXT = exports.PAYLOAD_TEXT = exports.TAGS_TEXT = exports.HEADERS_EXAMPLE_TEXT = void 0;
5
5
  exports.CSS_PREFIX = 'asyncapi';
6
6
  exports.CONTENT_TYPES_SITE = 'https://www.iana.org/assignments/media-types';
7
7
  exports.COLLAPSE_ALL_TEXT = 'Collapse All';
@@ -70,4 +70,5 @@ exports.EXPAND_ERROR_BUTTON_TEXT = 'Expand';
70
70
  exports.COLLAPSE_ERROR_BUTTON_TEXT = 'Collapse';
71
71
  exports.SECURITY_TEXT = 'Security';
72
72
  exports.URL_VARIABLES_TEXT = 'URL Variables';
73
+ exports.PLUGINEVENTS = ['plugin:ready', 'plugin:error'];
73
74
  //# sourceMappingURL=constants.js.map
@@ -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"]}
@@ -128,9 +128,9 @@ var AsyncApiComponent = (function (_super) {
128
128
  });
129
129
  };
130
130
  AsyncApiComponent.prototype.render = function () {
131
- var _a = this.props, schema = _a.schema, config = _a.config;
131
+ var _a = this.props, schema = _a.schema, config = _a.config, plugins = _a.plugins, onPluginEvent = _a.onPluginEvent, onPluginManagerReady = _a.onPluginManagerReady;
132
132
  var _b = this.state, asyncapi = _b.asyncapi, error = _b.error;
133
- return (react_1.default.createElement(Standalone_1.default, { schema: asyncapi !== null && asyncapi !== void 0 ? asyncapi : schema, config: config, error: error }));
133
+ return (react_1.default.createElement(Standalone_1.default, { schema: asyncapi !== null && asyncapi !== void 0 ? asyncapi : schema, config: config, error: error, plugins: plugins, onPluginEvent: onPluginEvent, onPluginManagerReady: onPluginManagerReady }));
134
134
  };
135
135
  AsyncApiComponent.prototype.parseSchema = function (schema, parserOptions) {
136
136
  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,6CAAyC;AAGzC,4DAA8C;AAE9C,qCAIqB;AAErB,yCAA6D;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,8BAAC,oBAAkB,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,8BAAoB,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,IAAA,iCAAyB,EAAC,MAAM,CAAC,EAAjC,cAAiC;wBACb,WAAM,gBAAM,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,gBAAM,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,iBAAS,GA6DxC;AAED,kBAAe,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,6CAAyC;AAGzC,4DAA8C;AAE9C,qCAKqB;AAErB,yCAA6D;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,8BAAC,oBAAkB,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,8BAAoB,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,IAAA,iCAAyB,EAAC,MAAM,CAAC,EAAjC,cAAiC;wBACb,WAAM,gBAAM,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,gBAAM,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,iBAAS,GAiExC;AAED,kBAAe,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"]}
@@ -36,9 +36,10 @@ var Messages_1 = require("../Messages/Messages");
36
36
  var Schemas_1 = require("../Schemas/Schemas");
37
37
  var contexts_1 = require("../../contexts");
38
38
  var ErrorBoundary_1 = __importDefault(require("../ApplicationErrorHandler/ErrorBoundary"));
39
+ var usePlugin_1 = require("../../contexts/usePlugin");
39
40
  var AsyncApiLayout = function (_a) {
40
41
  var _b, _c;
41
- var asyncapi = _a.asyncapi, config = _a.config;
42
+ var asyncapi = _a.asyncapi, config = _a.config, pluginManager = _a.pluginManager;
42
43
  var _d = (0, react_1.useState)('container:xl'), observerClassName = _d[0], setObserverClassName = _d[1];
43
44
  var ref = (0, use_resize_observer_1.default)({
44
45
  onResize: function (_a) {
@@ -57,18 +58,19 @@ var AsyncApiLayout = function (_a) {
57
58
  var configShow = (_b = config.show) !== null && _b !== void 0 ? _b : {};
58
59
  return (react_1.default.createElement(contexts_1.ConfigContext.Provider, { value: config },
59
60
  react_1.default.createElement(contexts_1.SpecificationContext.Provider, { value: asyncapi },
60
- react_1.default.createElement("section", { className: "aui-root" },
61
- react_1.default.createElement(ErrorBoundary_1.default, null,
62
- react_1.default.createElement("div", { className: "".concat(observerClassName, " relative md:flex bg-white leading-normal"), id: (_c = config.schemaID) !== null && _c !== void 0 ? _c : undefined, ref: ref },
63
- configShow.sidebar && react_1.default.createElement(Sidebar_1.Sidebar, null),
64
- react_1.default.createElement("div", { className: "panel--center relative py-8 flex-1" },
65
- react_1.default.createElement("div", { className: "relative z-10" },
66
- configShow.info && react_1.default.createElement(Info_1.Info, null),
67
- configShow.servers && react_1.default.createElement(Servers_1.Servers, null),
68
- configShow.operations && react_1.default.createElement(Operations_1.Operations, null),
69
- configShow.messages && react_1.default.createElement(Messages_1.Messages, null),
70
- configShow.schemas && react_1.default.createElement(Schemas_1.Schemas, null)),
71
- react_1.default.createElement("div", { className: "panel--right absolute top-0 right-0 h-full bg-gray-800" }))))))));
61
+ react_1.default.createElement(usePlugin_1.PluginContext.Provider, { value: pluginManager },
62
+ react_1.default.createElement("section", { className: "aui-root" },
63
+ react_1.default.createElement(ErrorBoundary_1.default, null,
64
+ react_1.default.createElement("div", { className: "".concat(observerClassName, " relative md:flex bg-white leading-normal"), id: (_c = config.schemaID) !== null && _c !== void 0 ? _c : undefined, ref: ref },
65
+ configShow.sidebar && react_1.default.createElement(Sidebar_1.Sidebar, null),
66
+ react_1.default.createElement("div", { className: "panel--center relative py-8 flex-1" },
67
+ react_1.default.createElement("div", { className: "relative z-10" },
68
+ configShow.info && react_1.default.createElement(Info_1.Info, null),
69
+ configShow.servers && react_1.default.createElement(Servers_1.Servers, null),
70
+ configShow.operations && react_1.default.createElement(Operations_1.Operations, null),
71
+ configShow.messages && react_1.default.createElement(Messages_1.Messages, null),
72
+ configShow.schemas && react_1.default.createElement(Schemas_1.Schemas, null)),
73
+ react_1.default.createElement("div", { className: "panel--right absolute top-0 right-0 h-full bg-gray-800" })))))))));
72
74
  };
73
75
  exports.default = AsyncApiLayout;
74
76
  //# sourceMappingURL=Layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Layout.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AAExC,4EAAoD;AAEpD,8CAA6C;AAC7C,qCAAoC;AACpC,8CAA6C;AAC7C,uDAAsD;AACtD,iDAAgD;AAChD,8CAA6C;AAG7C,2CAAqE;AACrE,2FAA6E;AAO7E,IAAM,cAAc,GAAmC,UAAC,EAGvD;;QAFC,QAAQ,cAAA,EACR,MAAM,YAAA;IAEA,IAAA,KAA4C,IAAA,gBAAQ,EAAC,cAAc,CAAC,EAAnE,iBAAiB,QAAA,EAAE,oBAAoB,QAA4B,CAAC;IAEnE,IAAA,GAAG,GAAK,IAAA,6BAAiB,EAAiB;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,8BAAC,wBAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM;QACnC,8BAAC,+BAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ;YAC5C,2CAAS,SAAS,EAAC,UAAU;gBAC3B,8BAAC,uBAAqB;oBACpB,uCACE,SAAS,EAAE,UAAG,iBAAiB,8CAA2C,EAC1E,EAAE,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,SAAS,EAChC,GAAG,EAAE,GAAG;wBAEP,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG;wBAClC,uCAAK,SAAS,EAAC,oCAAoC;4BACjD,uCAAK,SAAS,EAAC,eAAe;gCAC3B,UAAU,CAAC,IAAI,IAAI,8BAAC,WAAI,OAAG;gCAC3B,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG;gCACjC,UAAU,CAAC,UAAU,IAAI,8BAAC,uBAAU,OAAG;gCACvC,UAAU,CAAC,QAAQ,IAAI,8BAAC,mBAAQ,OAAG;gCACnC,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG,CAC9B;4BACN,uCAAK,SAAS,EAAC,wDAAwD,GAAG,CACtE,CACF,CACgB,CAChB,CACoB,CACT,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,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,6CAAwC;AAExC,4EAAoD;AAEpD,8CAA6C;AAC7C,qCAAoC;AACpC,8CAA6C;AAC7C,uDAAsD;AACtD,iDAAgD;AAChD,8CAA6C;AAG7C,2CAAqE;AACrE,2FAA6E;AAE7E,sDAAyD;AAQzD,IAAM,cAAc,GAAmC,UAAC,EAIvD;;QAHC,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,aAAa,mBAAA;IAEP,IAAA,KAA4C,IAAA,gBAAQ,EAAC,cAAc,CAAC,EAAnE,iBAAiB,QAAA,EAAE,oBAAoB,QAA4B,CAAC;IAEnE,IAAA,GAAG,GAAK,IAAA,6BAAiB,EAAiB;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,8BAAC,wBAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM;QACnC,8BAAC,+BAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ;YAC5C,8BAAC,yBAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa;gBAC1C,2CAAS,SAAS,EAAC,UAAU;oBAC3B,8BAAC,uBAAqB;wBACpB,uCACE,SAAS,EAAE,UAAG,iBAAiB,8CAA2C,EAC1E,EAAE,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,SAAS,EAChC,GAAG,EAAE,GAAG;4BAEP,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG;4BAClC,uCAAK,SAAS,EAAC,oCAAoC;gCACjD,uCAAK,SAAS,EAAC,eAAe;oCAC3B,UAAU,CAAC,IAAI,IAAI,8BAAC,WAAI,OAAG;oCAC3B,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG;oCACjC,UAAU,CAAC,UAAU,IAAI,8BAAC,uBAAU,OAAG;oCACvC,UAAU,CAAC,QAAQ,IAAI,8BAAC,mBAAQ,OAAG;oCACnC,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG,CAC9B;gCACN,uCAAK,SAAS,EAAC,wDAAwD,GAAG,CACtE,CACF,CACgB,CAChB,CACa,CACK,CACT,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,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"]}
@@ -57,13 +57,20 @@ var helpers_1 = require("../../helpers");
57
57
  var config_1 = require("../../config");
58
58
  var Layout_1 = __importDefault(require("./Layout"));
59
59
  var Error_1 = require("../Error/Error");
60
+ var pluginManager_1 = require("../../helpers/pluginManager");
61
+ var constants_1 = require("../../constants");
60
62
  var AsyncApiComponent = (function (_super) {
61
63
  __extends(AsyncApiComponent, _super);
62
64
  function AsyncApiComponent(props) {
63
65
  var _this = _super.call(this, props) || this;
66
+ _this.registeredPlugins = new Set();
67
+ _this.propsPlugins = new Set();
64
68
  _this.state = {
65
69
  asyncapi: undefined,
66
70
  error: undefined,
71
+ pm: new pluginManager_1.PluginManager({
72
+ schema: {},
73
+ }),
67
74
  };
68
75
  var parsedSpec = helpers_1.SpecificationHelpers.retrieveParsedSpec(props.schema);
69
76
  if (parsedSpec) {
@@ -75,18 +82,31 @@ var AsyncApiComponent = (function (_super) {
75
82
  if (!this.state.asyncapi) {
76
83
  this.updateState(this.props.schema);
77
84
  }
85
+ if (this.props.onPluginManagerReady) {
86
+ this.props.onPluginManagerReady(this.state.pm);
87
+ }
88
+ this.setupEventListeners();
89
+ this.registerPlugins();
78
90
  };
79
91
  AsyncApiComponent.prototype.componentDidUpdate = function (prevProps) {
92
+ var _a = this.props, schema = _a.schema, plugins = _a.plugins, onPluginEvent = _a.onPluginEvent;
80
93
  var oldSchema = prevProps.schema;
81
- var newSchema = this.props.schema;
94
+ var newSchema = schema;
82
95
  if (oldSchema !== newSchema) {
83
96
  this.updateState(newSchema);
84
97
  }
98
+ if (onPluginEvent !== prevProps.onPluginEvent) {
99
+ this.cleanupEventListeners();
100
+ this.setupEventListeners();
101
+ }
102
+ if (plugins !== prevProps.plugins) {
103
+ this.updatePlugins(prevProps.plugins, plugins);
104
+ }
85
105
  };
86
106
  AsyncApiComponent.prototype.render = function () {
87
107
  var _a;
88
108
  var _b = this.props, config = _b.config, propError = _b.error;
89
- var _c = this.state, asyncapi = _c.asyncapi, stateError = _c.error;
109
+ var _c = this.state, asyncapi = _c.asyncapi, stateError = _c.error, pm = _c.pm;
90
110
  var error = propError !== null && propError !== void 0 ? propError : stateError;
91
111
  var concatenatedConfig = __assign(__assign(__assign({}, config_1.defaultConfig), config), { show: __assign(__assign({}, config_1.defaultConfig.show), (!!config && config.show)), expand: __assign(__assign({}, config_1.defaultConfig.expand), (!!config && config.expand)), sidebar: __assign(__assign({}, config_1.defaultConfig.sidebar), (!!config && config.sidebar)), extensions: __assign(__assign({}, config_1.defaultConfig.extensions), (!!config && config.extensions)) });
92
112
  if (!asyncapi) {
@@ -96,15 +116,91 @@ var AsyncApiComponent = (function (_super) {
96
116
  return (((_a = concatenatedConfig.show) === null || _a === void 0 ? void 0 : _a.errors) && (react_1.default.createElement("section", { className: "aui-root" },
97
117
  react_1.default.createElement(Error_1.Error, { error: error }))));
98
118
  }
99
- return react_1.default.createElement(Layout_1.default, { asyncapi: asyncapi, config: concatenatedConfig });
119
+ return (react_1.default.createElement(Layout_1.default, { asyncapi: asyncapi, config: concatenatedConfig, pluginManager: pm }));
120
+ };
121
+ AsyncApiComponent.prototype.handler = function (eventName) {
122
+ var _this = this;
123
+ return function (data) {
124
+ _this.props.onPluginEvent(eventName, data);
125
+ };
126
+ };
127
+ AsyncApiComponent.prototype.setupEventListeners = function () {
128
+ var _this = this;
129
+ var onPluginEvent = this.props.onPluginEvent;
130
+ var pm = this.state.pm;
131
+ if (!onPluginEvent)
132
+ return;
133
+ constants_1.PLUGINEVENTS.forEach(function (event) {
134
+ pm === null || pm === void 0 ? void 0 : pm.on(event, _this.handler(event));
135
+ });
136
+ };
137
+ AsyncApiComponent.prototype.cleanupEventListeners = function () {
138
+ var _this = this;
139
+ var pm = this.state.pm;
140
+ constants_1.PLUGINEVENTS.forEach(function (event) {
141
+ pm === null || pm === void 0 ? void 0 : pm.off(event, _this.handler(event));
142
+ });
143
+ };
144
+ AsyncApiComponent.prototype.registerPlugins = function () {
145
+ var _this = this;
146
+ var plugins = this.props.plugins;
147
+ var pm = this.state.pm;
148
+ plugins === null || plugins === void 0 ? void 0 : plugins.forEach(function (plugin) {
149
+ try {
150
+ pm === null || pm === void 0 ? void 0 : pm.register(plugin);
151
+ _this.registeredPlugins.add(plugin.name);
152
+ _this.propsPlugins.add(plugin.name);
153
+ }
154
+ catch (error) {
155
+ console.error("Failed to register plugin ".concat(plugin.name, ":"), error);
156
+ pm === null || pm === void 0 ? void 0 : pm.emit(constants_1.PLUGINEVENTS[1], {
157
+ pluginName: plugin.name,
158
+ });
159
+ }
160
+ });
161
+ };
162
+ AsyncApiComponent.prototype.updatePlugins = function (prevPlugins, newPlugins) {
163
+ var _this = this;
164
+ var pm = this.state.pm;
165
+ var prevPluginMap = new Map((prevPlugins !== null && prevPlugins !== void 0 ? prevPlugins : []).map(function (p) { return [p.name, p]; }));
166
+ var newPluginMap = new Map((newPlugins !== null && newPlugins !== void 0 ? newPlugins : []).map(function (p) { return [p.name, p]; }));
167
+ prevPluginMap.forEach(function (_plugin, name) {
168
+ if (!newPluginMap.has(name) && _this.propsPlugins.has(name)) {
169
+ try {
170
+ pm === null || pm === void 0 ? void 0 : pm.unregister(name);
171
+ _this.registeredPlugins.delete(name);
172
+ _this.propsPlugins.delete(name);
173
+ }
174
+ catch (error) {
175
+ console.error("Failed to unregister plugin ".concat(name, ":"), error);
176
+ }
177
+ }
178
+ });
179
+ newPluginMap.forEach(function (plugin, name) {
180
+ if (!prevPluginMap.has(name)) {
181
+ try {
182
+ pm === null || pm === void 0 ? void 0 : pm.register(plugin);
183
+ _this.registeredPlugins.add(name);
184
+ _this.propsPlugins.add(name);
185
+ }
186
+ catch (error) {
187
+ console.error("Failed to register plugin ".concat(name, ":"), error);
188
+ pm === null || pm === void 0 ? void 0 : pm.emit(constants_1.PLUGINEVENTS[1], {
189
+ pluginName: name,
190
+ });
191
+ }
192
+ }
193
+ });
100
194
  };
101
195
  AsyncApiComponent.prototype.updateState = function (schema) {
196
+ var _a;
102
197
  var parsedSpec = helpers_1.SpecificationHelpers.retrieveParsedSpec(schema);
103
198
  if (!parsedSpec) {
104
199
  this.setState({ asyncapi: undefined });
105
200
  return;
106
201
  }
107
202
  this.setState({ asyncapi: parsedSpec });
203
+ (_a = this.state.pm) === null || _a === void 0 ? void 0 : _a.updateContext({ schema: parsedSpec });
108
204
  };
109
205
  return AsyncApiComponent;
110
206
  }(react_1.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"]}
@@ -8,9 +8,14 @@ var react_1 = __importDefault(require("react"));
8
8
  var components_1 = require("../../components");
9
9
  var contexts_1 = require("../../contexts");
10
10
  var constants_1 = require("../../constants");
11
+ var pluginManager_1 = require("../../helpers/pluginManager");
12
+ var PluginSlotRenderer_1 = require("../../components/PluginSlotRenderer");
13
+ var usePlugin_1 = require("../../contexts/usePlugin");
14
+ var types_1 = require("../../types");
11
15
  var Info = function () {
12
16
  var _a, _b, _c, _d, _e, _f, _g;
13
17
  var asyncapi = (0, contexts_1.useSpec)();
18
+ var pluginManager = (0, usePlugin_1.usePlugin)();
14
19
  var info = asyncapi.info();
15
20
  if (!info) {
16
21
  return null;
@@ -57,7 +62,10 @@ var Info = function () {
57
62
  asyncapi.info().tags().length > 0 && (react_1.default.createElement("div", { className: "mt-4" },
58
63
  react_1.default.createElement(components_1.Tags, { tags: asyncapi.info().tags() }))),
59
64
  extensions.length > 0 && (react_1.default.createElement("div", { className: "mt-4" },
60
- react_1.default.createElement(components_1.Extensions, { name: "Info Extensions", item: info })))),
65
+ react_1.default.createElement(components_1.Extensions, { name: "Info Extensions", item: info }))),
66
+ pluginManager_1.PluginManager && (react_1.default.createElement(PluginSlotRenderer_1.SlotRenderer, { slot: types_1.PluginSlot.INFO, context: {
67
+ schema: info,
68
+ }, pluginManager: pluginManager }))),
61
69
  react_1.default.createElement("div", { className: "panel-item--right" })));
62
70
  };
63
71
  exports.Info = Info;
@@ -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"]}
@@ -44,6 +44,9 @@ var contexts_1 = require("../../contexts");
44
44
  var helpers_1 = require("../../helpers");
45
45
  var constants_1 = require("../../constants");
46
46
  var types_1 = require("../../types");
47
+ var pluginManager_1 = require("../../helpers/pluginManager");
48
+ var PluginSlotRenderer_1 = require("../../components/PluginSlotRenderer");
49
+ var usePlugin_1 = require("../../contexts/usePlugin");
47
50
  var Operation = function (props) {
48
51
  var _a = props.type, type = _a === void 0 ? types_1.PayloadType.SEND : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
49
52
  var config = (0, contexts_1.useConfig)();
@@ -94,6 +97,7 @@ exports.Operation = Operation;
94
97
  var OperationInfo = function (props) {
95
98
  var _a = props.type, type = _a === void 0 ? types_1.PayloadType.SEND : _a, operation = props.operation, channelName = props.channelName, channel = props.channel;
96
99
  var config = (0, contexts_1.useConfig)();
100
+ var pluginManager = (0, usePlugin_1.usePlugin)();
97
101
  var operationSummary = operation.summary();
98
102
  var externalDocs = operation.externalDocs();
99
103
  var operationId = operation.id();
@@ -122,7 +126,10 @@ var OperationInfo = function (props) {
122
126
  operationId && (react_1.default.createElement("div", { className: "border bg-gray-100 rounded px-4 py-2 mt-2" },
123
127
  react_1.default.createElement("div", { className: "text-sm text-gray-700" },
124
128
  "Operation ID",
125
- react_1.default.createElement("span", { className: "bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2" }, operationId))))));
129
+ react_1.default.createElement("span", { className: "bg-orange-600 text-white rounded text-xs ml-2 py-0 px-2" }, operationId)))),
130
+ pluginManager_1.PluginManager && (react_1.default.createElement(PluginSlotRenderer_1.SlotRenderer, { slot: types_1.PluginSlot.OPERATION, context: {
131
+ schema: props,
132
+ }, pluginManager: pluginManager }))));
126
133
  };
127
134
  exports.OperationInfo = OperationInfo;
128
135
  var OperationReplyInfo = function (props) {