@asyncapi/react-component 1.0.0-next.43 → 1.0.0-next.45

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 (46) hide show
  1. package/browser/index.js +2 -2
  2. package/browser/standalone/index.js +4 -4
  3. package/browser/standalone/without-parser.js +7 -7
  4. package/browser/without-parser.js +2 -2
  5. package/lib/cjs/components/CollapseButton.js +6 -2
  6. package/lib/cjs/components/CollapseButton.js.map +1 -1
  7. package/lib/cjs/config/config.js.map +1 -1
  8. package/lib/cjs/config/default.js +5 -1
  9. package/lib/cjs/config/default.js.map +1 -1
  10. package/lib/cjs/containers/AsyncApi/Layout.js +10 -10
  11. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  12. package/lib/cjs/containers/AsyncApi/Standalone.js +1 -1
  13. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  14. package/lib/cjs/containers/Messages/MessageExample.js +6 -1
  15. package/lib/cjs/containers/Messages/MessageExample.js.map +1 -1
  16. package/lib/cjs/containers/Sidebar/Sidebar.js +153 -127
  17. package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
  18. package/lib/cjs/helpers/specification.js +17 -0
  19. package/lib/cjs/helpers/specification.js.map +1 -1
  20. package/lib/esm/components/CollapseButton.js +5 -1
  21. package/lib/esm/components/CollapseButton.js.map +1 -1
  22. package/lib/esm/config/config.js.map +1 -1
  23. package/lib/esm/config/default.js +5 -1
  24. package/lib/esm/config/default.js.map +1 -1
  25. package/lib/esm/containers/AsyncApi/Layout.js +10 -10
  26. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  27. package/lib/esm/containers/AsyncApi/Standalone.js +1 -1
  28. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  29. package/lib/esm/containers/Messages/MessageExample.js +7 -2
  30. package/lib/esm/containers/Messages/MessageExample.js.map +1 -1
  31. package/lib/esm/containers/Sidebar/Sidebar.js +152 -123
  32. package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
  33. package/lib/esm/helpers/specification.js +17 -0
  34. package/lib/esm/helpers/specification.js.map +1 -1
  35. package/lib/types/components/CollapseButton.d.ts.map +1 -1
  36. package/lib/types/config/config.d.ts +5 -0
  37. package/lib/types/config/config.d.ts.map +1 -1
  38. package/lib/types/config/default.d.ts.map +1 -1
  39. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  40. package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
  41. package/lib/types/containers/Messages/MessageExample.d.ts.map +1 -1
  42. package/lib/types/containers/Sidebar/Sidebar.d.ts +1 -9
  43. package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
  44. package/lib/types/helpers/specification.d.ts +3 -0
  45. package/lib/types/helpers/specification.d.ts.map +1 -1
  46. package/package.json +1 -2
@@ -27,12 +27,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  exports.CollapseButton = void 0;
29
29
  var react_1 = __importDefault(require("react"));
30
- var hi_1 = require("react-icons/hi");
30
+ var HiChevronRight = function (props) {
31
+ if (props === void 0) { props = {}; }
32
+ return (react_1.default.createElement("svg", __assign({ stroke: "currentColor", fill: "currentColor", strokeWidth: "0", viewBox: "0 0 20 20", height: "1em", width: "1em", xmlns: "http://www.w3.org/2000/svg" }, props),
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
+ };
31
35
  var CollapseButton = function (_a) {
32
36
  var chevronProps = _a.chevronProps, _b = _a.expanded, expanded = _b === void 0 ? false : _b, children = _a.children, rest = __rest(_a, ["chevronProps", "expanded", "children"]);
33
37
  return (react_1.default.createElement("button", __assign({}, rest, { className: "focus:outline-none ".concat(rest.className), type: "button" }),
34
38
  react_1.default.createElement("div", { className: "inline-block" }, children),
35
- react_1.default.createElement(hi_1.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((chevronProps === null || chevronProps === void 0 ? void 0 : chevronProps.className) || '') }))));
39
+ 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((chevronProps === null || chevronProps === void 0 ? void 0 : chevronProps.className) || '') }))));
36
40
  };
37
41
  exports.CollapseButton = CollapseButton;
38
42
  //# sourceMappingURL=CollapseButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollapseButton.js","sourceRoot":"","sources":["../../../src/components/CollapseButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmE;AACnE,qCAAgD;AAOzC,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,mBAAc,eACT,YAAY,IAChB,SAAS,EAAE,kIACT,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAC1B,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,KAAI,EAAE,CAAE,IACnC,CACK,CACV,CAAA;CAAA,CAAC;AAnBW,QAAA,cAAc,kBAmBzB","sourcesContent":["import React, { ButtonHTMLAttributes, SVGAttributes } from 'react';\nimport { HiChevronRight } from 'react-icons/hi';\n\ninterface Props extends ButtonHTMLAttributes<HTMLButtonElement> {\n chevronProps?: SVGAttributes<SVGElement>;\n expanded?: boolean;\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,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,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,KAAI,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 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"","sourcesContent":["export interface ConfigInterface {\n schemaID?: string;\n show?: ShowConfig;\n sidebar?: SideBarConfig;\n parserOptions?: any;\n publishLabel?: string;\n subscribeLabel?: string;\n}\n\nexport interface ShowConfig {\n sidebar?: boolean;\n info?: boolean;\n servers?: boolean;\n operations?: boolean;\n messages?: boolean;\n schemas?: boolean;\n errors?: boolean;\n}\n\nexport interface SideBarConfig {\n showOperations?: 'byDefault' | 'bySpecTags' | 'byOperationsTags';\n}\n"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"","sourcesContent":["export interface ConfigInterface {\n schemaID?: string;\n show?: ShowConfig;\n expand?: ExpandConfig;\n sidebar?: SideBarConfig;\n parserOptions?: any;\n publishLabel?: string;\n subscribeLabel?: string;\n}\n\nexport interface ShowConfig {\n sidebar?: boolean;\n info?: boolean;\n servers?: boolean;\n operations?: boolean;\n messages?: boolean;\n schemas?: boolean;\n errors?: boolean;\n}\n\nexport interface ExpandConfig {\n messageExamples?: boolean;\n}\n\nexport interface SideBarConfig {\n showServers?: 'byDefault' | 'bySpecTags' | 'byServersTags';\n showOperations?: 'byDefault' | 'bySpecTags' | 'byOperationsTags';\n}\n"]}
@@ -13,8 +13,12 @@ exports.defaultConfig = {
13
13
  schemas: true,
14
14
  errors: true,
15
15
  },
16
+ expand: {
17
+ messageExamples: false,
18
+ },
16
19
  sidebar: {
17
- showOperations: 'byOperationsTags',
20
+ showServers: 'byDefault',
21
+ showOperations: 'byDefault',
18
22
  },
19
23
  publishLabel: constants_1.PUBLISH_LABEL_DEFAULT_TEXT,
20
24
  subscribeLabel: constants_1.SUBSCRIBE_LABEL_DEFAULT_TEXT,
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/config/default.ts"],"names":[],"mappings":";;;AACA,0CAGsB;AAET,QAAA,aAAa,GAAoB;IAC5C,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;KACb;IACD,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;KACnC;IACD,YAAY,EAAE,sCAA0B;IACxC,cAAc,EAAE,wCAA4B;CAC7C,CAAC","sourcesContent":["import { ConfigInterface } from './config';\nimport {\n PUBLISH_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../constants';\n\nexport const defaultConfig: ConfigInterface = {\n schemaID: '',\n show: {\n sidebar: false,\n info: true,\n servers: true,\n operations: true,\n messages: true,\n schemas: true,\n errors: true,\n },\n sidebar: {\n showOperations: 'byOperationsTags',\n },\n publishLabel: PUBLISH_LABEL_DEFAULT_TEXT,\n subscribeLabel: SUBSCRIBE_LABEL_DEFAULT_TEXT,\n};\n"]}
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/config/default.ts"],"names":[],"mappings":";;;AACA,0CAGsB;AAET,QAAA,aAAa,GAAoB;IAC5C,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;KACb;IACD,MAAM,EAAE;QACN,eAAe,EAAE,KAAK;KACvB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,WAAW;KAC5B;IACD,YAAY,EAAE,sCAA0B;IACxC,cAAc,EAAE,wCAA4B;CAC7C,CAAC","sourcesContent":["import { ConfigInterface } from './config';\nimport {\n PUBLISH_LABEL_DEFAULT_TEXT,\n SUBSCRIBE_LABEL_DEFAULT_TEXT,\n} from '../constants';\n\nexport const defaultConfig: ConfigInterface = {\n schemaID: '',\n show: {\n sidebar: false,\n info: true,\n servers: true,\n operations: true,\n messages: true,\n schemas: true,\n errors: true,\n },\n expand: {\n messageExamples: false,\n },\n sidebar: {\n showServers: 'byDefault',\n showOperations: 'byDefault',\n },\n publishLabel: PUBLISH_LABEL_DEFAULT_TEXT,\n subscribeLabel: SUBSCRIBE_LABEL_DEFAULT_TEXT,\n};\n"]}
@@ -37,9 +37,8 @@ var Schemas_1 = require("../Schemas/Schemas");
37
37
  var Error_1 = require("../Error/Error");
38
38
  var contexts_1 = require("../../contexts");
39
39
  var AsyncApiLayout = function (_a) {
40
- var _b, _c, _d, _e, _f, _g, _h;
41
- var asyncapi = _a.asyncapi, config = _a.config, _j = _a.error, error = _j === void 0 ? null : _j;
42
- var _k = (0, react_1.useState)('container:xl'), observerClassName = _k[0], setObserverClassName = _k[1];
40
+ var asyncapi = _a.asyncapi, config = _a.config, _b = _a.error, error = _b === void 0 ? null : _b;
41
+ var _c = (0, react_1.useState)('container:xl'), observerClassName = _c[0], setObserverClassName = _c[1];
43
42
  var ref = (0, use_resize_observer_1.default)({
44
43
  onResize: function (_a) {
45
44
  var width = _a.width;
@@ -54,19 +53,20 @@ var AsyncApiLayout = function (_a) {
54
53
  });
55
54
  },
56
55
  }).ref;
56
+ var configShow = config.show || {};
57
57
  return (react_1.default.createElement(contexts_1.ConfigContext.Provider, { value: config },
58
58
  react_1.default.createElement(contexts_1.SpecificationContext.Provider, { value: asyncapi },
59
59
  react_1.default.createElement("section", { className: "aui-root" },
60
60
  react_1.default.createElement("div", { className: "".concat(observerClassName, " relative md:flex bg-white leading-normal"), id: config.schemaID || undefined, ref: ref },
61
- ((_b = config.show) === null || _b === void 0 ? void 0 : _b.sidebar) && react_1.default.createElement(Sidebar_1.Sidebar, { config: config.sidebar }),
61
+ configShow.sidebar && react_1.default.createElement(Sidebar_1.Sidebar, null),
62
62
  react_1.default.createElement("div", { className: "panel--center relative py-8 flex-1" },
63
63
  react_1.default.createElement("div", { className: "relative z-10" },
64
- ((_c = config.show) === null || _c === void 0 ? void 0 : _c.errors) && error && react_1.default.createElement(Error_1.Error, { error: error }),
65
- ((_d = config.show) === null || _d === void 0 ? void 0 : _d.info) && react_1.default.createElement(Info_1.Info, null),
66
- ((_e = config.show) === null || _e === void 0 ? void 0 : _e.servers) && react_1.default.createElement(Servers_1.Servers, null),
67
- ((_f = config.show) === null || _f === void 0 ? void 0 : _f.operations) && react_1.default.createElement(Operations_1.Operations, null),
68
- ((_g = config.show) === null || _g === void 0 ? void 0 : _g.messages) && react_1.default.createElement(Messages_1.Messages, null),
69
- ((_h = config.show) === null || _h === void 0 ? void 0 : _h.schemas) && react_1.default.createElement(Schemas_1.Schemas, null)),
64
+ configShow.errors && error && react_1.default.createElement(Error_1.Error, { error: error }),
65
+ configShow.info && react_1.default.createElement(Info_1.Info, null),
66
+ configShow.servers && react_1.default.createElement(Servers_1.Servers, null),
67
+ configShow.operations && react_1.default.createElement(Operations_1.Operations, null),
68
+ configShow.messages && react_1.default.createElement(Messages_1.Messages, null),
69
+ configShow.schemas && react_1.default.createElement(Schemas_1.Schemas, null)),
70
70
  react_1.default.createElement("div", { className: "panel--right absolute top-0 right-0 h-full bg-gray-800" })))))));
71
71
  };
72
72
  exports.default = AsyncApiLayout;
@@ -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;AAC7C,wCAAuC;AAGvC,2CAAqE;AASrE,IAAM,cAAc,GAAmC,UAAC,EAIvD;;QAHC,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,aAAY,EAAZ,KAAK,mBAAG,IAAI,KAAA;IAEN,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,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,uCACE,SAAS,EAAE,UAAG,iBAAiB,8CAA2C,EAC1E,EAAE,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS,EAChC,GAAG,EAAE,GAAG;oBAEP,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,OAAO,KAAI,8BAAC,iBAAO,IAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAI;oBAC5D,uCAAK,SAAS,EAAC,oCAAoC;wBACjD,uCAAK,SAAS,EAAC,eAAe;4BAC3B,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,MAAM,KAAI,KAAK,IAAI,8BAAC,aAAK,IAAC,KAAK,EAAE,KAAK,GAAI;4BACvD,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,IAAI,KAAI,8BAAC,WAAI,OAAG;4BAC7B,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,OAAO,KAAI,8BAAC,iBAAO,OAAG;4BACnC,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,UAAU,KAAI,8BAAC,uBAAU,OAAG;4BACzC,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,QAAQ,KAAI,8BAAC,mBAAQ,OAAG;4BACrC,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,OAAO,KAAI,8BAAC,iBAAO,OAAG,CAChC;wBACN,uCAAK,SAAS,EAAC,wDAAwD,GAAG,CACtE,CACF,CACE,CACoB,CACT,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport { AsyncAPIDocument } 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';\nimport { Error } from '../Error/Error';\n\nimport { ConfigInterface } from '../../config';\nimport { SpecificationContext, ConfigContext } from '../../contexts';\nimport { ErrorObject } from '../../types';\n\ninterface Props {\n asyncapi: AsyncAPIDocument;\n config: ConfigInterface;\n error?: ErrorObject;\n}\n\nconst AsyncApiLayout: React.FunctionComponent<Props> = ({\n asyncapi,\n config,\n error = null,\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 <= 1280 ? 'container:xl' : 'container:base';\n if (possibleClassName !== observerClassName) {\n setObserverClassName(possibleClassName);\n }\n });\n },\n });\n\n return (\n <ConfigContext.Provider value={config}>\n <SpecificationContext.Provider value={asyncapi}>\n <section className=\"aui-root\">\n <div\n className={`${observerClassName} relative md:flex bg-white leading-normal`}\n id={config.schemaID || undefined}\n ref={ref}\n >\n {config.show?.sidebar && <Sidebar config={config.sidebar} />}\n <div className=\"panel--center relative py-8 flex-1\">\n <div className=\"relative z-10\">\n {config.show?.errors && error && <Error error={error} />}\n {config.show?.info && <Info />}\n {config.show?.servers && <Servers />}\n {config.show?.operations && <Operations />}\n {config.show?.messages && <Messages />}\n {config.show?.schemas && <Schemas />}\n </div>\n <div className=\"panel--right absolute top-0 right-0 h-full bg-gray-800\" />\n </div>\n </div>\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;AAC7C,wCAAuC;AAGvC,2CAAqE;AASrE,IAAM,cAAc,GAAmC,UAAC,EAIvD;QAHC,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,aAAY,EAAZ,KAAK,mBAAG,IAAI,KAAA;IAEN,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,MAAM,CAAC,IAAI,IAAI,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,uCACE,SAAS,EAAE,UAAG,iBAAiB,8CAA2C,EAC1E,EAAE,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS,EAChC,GAAG,EAAE,GAAG;oBAEP,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG;oBAClC,uCAAK,SAAS,EAAC,oCAAoC;wBACjD,uCAAK,SAAS,EAAC,eAAe;4BAC3B,UAAU,CAAC,MAAM,IAAI,KAAK,IAAI,8BAAC,aAAK,IAAC,KAAK,EAAE,KAAK,GAAI;4BACrD,UAAU,CAAC,IAAI,IAAI,8BAAC,WAAI,OAAG;4BAC3B,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG;4BACjC,UAAU,CAAC,UAAU,IAAI,8BAAC,uBAAU,OAAG;4BACvC,UAAU,CAAC,QAAQ,IAAI,8BAAC,mBAAQ,OAAG;4BACnC,UAAU,CAAC,OAAO,IAAI,8BAAC,iBAAO,OAAG,CAC9B;wBACN,uCAAK,SAAS,EAAC,wDAAwD,GAAG,CACtE,CACF,CACE,CACoB,CACT,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport { AsyncAPIDocument } 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';\nimport { Error } from '../Error/Error';\n\nimport { ConfigInterface } from '../../config';\nimport { SpecificationContext, ConfigContext } from '../../contexts';\nimport { ErrorObject } from '../../types';\n\ninterface Props {\n asyncapi: AsyncAPIDocument;\n config: ConfigInterface;\n error?: ErrorObject;\n}\n\nconst AsyncApiLayout: React.FunctionComponent<Props> = ({\n asyncapi,\n config,\n error = null,\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 <= 1280 ? '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 <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.errors && error && <Error error={error} />}\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 </section>\n </SpecificationContext.Provider>\n </ConfigContext.Provider>\n );\n};\n\nexport default AsyncApiLayout;\n"]}
@@ -135,7 +135,7 @@ var AsyncApiComponent = (function (_super) {
135
135
  var _b = this.props, config = _b.config, propError = _b.error;
136
136
  var _c = this.state, asyncapi = _c.asyncapi, stateError = _c.error;
137
137
  var error = propError || stateError;
138
- var concatenatedConfig = __assign(__assign(__assign({}, config_1.defaultConfig), config), { show: __assign(__assign({}, config_1.defaultConfig.show), (!!config && config.show)), sidebar: __assign(__assign({}, config_1.defaultConfig.sidebar), (!!config && config.sidebar)) });
138
+ 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)) });
139
139
  if (!asyncapi) {
140
140
  if (!error) {
141
141
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"Standalone.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAyC;AAGzC,yCAAqD;AAErD,uCAA8D;AAE9D,oDAAsC;AACtC,wCAAuC;AAavC;IAAgC,qCAAuC;IAMrE,2BAAY,KAAoB;QAAhC,YACE,kBAAM,KAAK,CAAC,SAOb;QAbD,WAAK,GAAkB;YACrB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACjB,CAAC;QAKA,IAAM,UAAU,GAAG,8BAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,UAAU,EAAE;YACd,KAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;SACvC;;IAEH,CAAC;IAEK,6CAAiB,GAAvB;;;gBACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iBACrC;;;;KACF;IAEK,8CAAkB,GAAxB,UAAyB,SAAwB;;;;gBACzC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC7B,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAEpC,IAAI,SAAS,KAAK,SAAS,EAAE;oBAC3B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;iBAC7B;;;;KACF;IAED,kCAAM,GAAN;;QACQ,IAAA,KAA+B,IAAI,CAAC,KAAK,EAAvC,MAAM,YAAA,EAAS,SAAS,WAAe,CAAC;QAC1C,IAAA,KAAkC,IAAI,CAAC,KAAK,EAA1C,QAAQ,cAAA,EAAS,UAAU,WAAe,CAAC;QAEnD,IAAM,KAAK,GAAG,SAAS,IAAI,UAAU,CAAC;QACtC,IAAM,kBAAkB,kCACnB,sBAAa,GACb,MAAM,KACT,IAAI,wBACC,sBAAa,CAAC,IAAI,GAClB,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAE9B,OAAO,wBACF,sBAAa,CAAC,OAAO,GACrB,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAElC,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;YACD,OAAO,CAAA,MAAA,kBAAkB,CAAC,IAAI,0CAAE,MAAM,KAAI,8BAAC,aAAK,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;SACnE;QAED,OAAO,CACL,8BAAC,gBAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;IACJ,CAAC;IAEO,uCAAW,GAAnB,UAAoB,MAAmB;QACrC,IAAM,UAAU,GAAG,8BAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YACvC,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IACH,wBAAC;AAAD,CAAC,AAzED,CAAgC,iBAAS,GAyExC;AAED,kBAAe,iBAAiB,CAAC","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocument } 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?: AsyncAPIDocument;\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 return;\n }\n\n async componentDidMount() {\n if (!this.state.asyncapi) {\n this.updateState(this.props.schema);\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 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 sidebar: {\n ...defaultConfig.sidebar,\n ...(!!config && config.sidebar),\n },\n };\n\n if (!asyncapi) {\n if (!error) {\n return null;\n }\n return concatenatedConfig.show?.errors && <Error error={error} />;\n }\n\n return (\n <AsyncApiLayout\n asyncapi={asyncapi}\n config={concatenatedConfig}\n error={error}\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 }\n}\n\nexport default AsyncApiComponent;\n"]}
1
+ {"version":3,"file":"Standalone.js","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAyC;AAGzC,yCAAqD;AAErD,uCAA8D;AAE9D,oDAAsC;AACtC,wCAAuC;AAavC;IAAgC,qCAAuC;IAMrE,2BAAY,KAAoB;QAAhC,YACE,kBAAM,KAAK,CAAC,SAOb;QAbD,WAAK,GAAkB;YACrB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACjB,CAAC;QAKA,IAAM,UAAU,GAAG,8BAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,UAAU,EAAE;YACd,KAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;SACvC;;IAEH,CAAC;IAEK,6CAAiB,GAAvB;;;gBACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iBACrC;;;;KACF;IAEK,8CAAkB,GAAxB,UAAyB,SAAwB;;;;gBACzC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC7B,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAEpC,IAAI,SAAS,KAAK,SAAS,EAAE;oBAC3B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;iBAC7B;;;;KACF;IAED,kCAAM,GAAN;;QACQ,IAAA,KAA+B,IAAI,CAAC,KAAK,EAAvC,MAAM,YAAA,EAAS,SAAS,WAAe,CAAC;QAC1C,IAAA,KAAkC,IAAI,CAAC,KAAK,EAA1C,QAAQ,cAAA,EAAS,UAAU,WAAe,CAAC;QAEnD,IAAM,KAAK,GAAG,SAAS,IAAI,UAAU,CAAC;QACtC,IAAM,kBAAkB,kCACnB,sBAAa,GACb,MAAM,KACT,IAAI,wBACC,sBAAa,CAAC,IAAI,GAClB,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAE9B,MAAM,wBACD,sBAAa,CAAC,MAAM,GACpB,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAEhC,OAAO,wBACF,sBAAa,CAAC,OAAO,GACrB,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAElC,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;YACD,OAAO,CAAA,MAAA,kBAAkB,CAAC,IAAI,0CAAE,MAAM,KAAI,8BAAC,aAAK,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;SACnE;QAED,OAAO,CACL,8BAAC,gBAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;IACJ,CAAC;IAEO,uCAAW,GAAnB,UAAoB,MAAmB;QACrC,IAAM,UAAU,GAAG,8BAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YACvC,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IACH,wBAAC;AAAD,CAAC,AA7ED,CAAgC,iBAAS,GA6ExC;AAED,kBAAe,iBAAiB,CAAC","sourcesContent":["import React, { Component } from 'react';\nimport { AsyncAPIDocument } 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?: AsyncAPIDocument;\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 return;\n }\n\n async componentDidMount() {\n if (!this.state.asyncapi) {\n this.updateState(this.props.schema);\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 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 };\n\n if (!asyncapi) {\n if (!error) {\n return null;\n }\n return concatenatedConfig.show?.errors && <Error error={error} />;\n }\n\n return (\n <AsyncApiLayout\n asyncapi={asyncapi}\n config={concatenatedConfig}\n error={error}\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 }\n}\n\nexport default AsyncApiComponent;\n"]}
@@ -27,6 +27,7 @@ exports.Example = exports.MessageExample = void 0;
27
27
  var react_1 = __importStar(require("react"));
28
28
  var components_1 = require("../../components");
29
29
  var message_1 = require("../../helpers/message");
30
+ var contexts_1 = require("../../contexts");
30
31
  var MessageExample = function (_a) {
31
32
  var message = _a.message;
32
33
  if (!message) {
@@ -42,7 +43,11 @@ var MessageExample = function (_a) {
42
43
  exports.MessageExample = MessageExample;
43
44
  var Example = function (_a) {
44
45
  var _b = _a.type, type = _b === void 0 ? 'Payload' : _b, schema = _a.schema, _c = _a.examples, examples = _c === void 0 ? [] : _c;
45
- var _d = (0, react_1.useState)(false), expanded = _d[0], setExpanded = _d[1];
46
+ var config = (0, contexts_1.useConfig)();
47
+ var _d = (0, react_1.useState)((config && config.expand && config.expand.messageExamples) || false), expanded = _d[0], setExpanded = _d[1];
48
+ (0, react_1.useEffect)(function () {
49
+ setExpanded((config && config.expand && config.expand.messageExamples) || false);
50
+ }, [config.expand]);
46
51
  return (react_1.default.createElement("div", { className: "mt-4" },
47
52
  react_1.default.createElement("div", null,
48
53
  react_1.default.createElement(components_1.CollapseButton, { onClick: function () { return setExpanded(function (prev) { return !prev; }); }, expanded: expanded, chevronProps: {
@@ -1 +1 @@
1
- {"version":3,"file":"MessageExample.js","sourceRoot":"","sources":["../../../../src/containers/Messages/MessageExample.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AAGxC,+CAA+D;AAC/D,iDAAuD;AAOhD,IAAM,cAAc,GAAmC,UAAC,EAAW;QAAT,OAAO,aAAA;IACtE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAElC,OAAO,CACL,uCAAK,SAAS,EAAC,yEAAyE;QACtF,sCAAI,SAAS,EAAC,oBAAoB,eAAc;QAC/C,OAAO,IAAI,CACV,8BAAC,eAAO,IACN,IAAI,EAAC,SAAS,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,wBAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,GACpD,CACH;QACA,OAAO,IAAI,CACV,8BAAC,eAAO,IACN,IAAI,EAAC,SAAS,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,wBAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,GACpD,CACH,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,cAAc,kBA2BzB;AAQK,IAAM,OAAO,GAA0C,UAAC,EAI9D;QAHC,YAAgB,EAAhB,IAAI,mBAAG,SAAS,KAAA,EAChB,MAAM,YAAA,EACN,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA;IAEP,IAAA,KAA0B,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAxC,QAAQ,QAAA,EAAE,WAAW,QAAmB,CAAC;IAEhD,OAAO,CACL,uCAAK,SAAS,EAAC,MAAM;QACnB;YACE,8BAAC,2BAAc,IACb,OAAO,EAAE,cAAM,OAAA,WAAW,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAA1B,CAA0B,EACzC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE;oBACZ,SAAS,EAAE,4BAA4B;iBACxC;gBAED,wCAAM,SAAS,EAAC,mGAAmG,IAChH,IAAI,CACA,CACQ,CACb;QACN,uCAAK,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAC1C,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjC,0CACG,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,GAAG,IAAK,OAAA,CAC9B,sCAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG;YAC3B,sCAAI,SAAS,EAAC,iCAAiC,IAC5C,OAAO,CAAC,IAAI;gBACX,CAAC,CAAC,WAAI,GAAG,GAAG,CAAC,wBAAc,OAAO,CAAC,IAAI,CAAE;gBACzC,CAAC,CAAC,WAAI,GAAG,GAAG,CAAC,aAAU,CACtB;YACJ,OAAO,CAAC,OAAO,IAAI,CAClB,qCAAG,SAAS,EAAC,iCAAiC,IAC3C,OAAO,CAAC,OAAO,CACd,CACL;YACD,uCAAK,SAAS,EAAC,MAAM;gBACnB,8BAAC,wBAAW,IACV,OAAO,EAAE,wBAAc,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GACxD,CACE,CACH,CACN,EAlB+B,CAkB/B,CAAC,CACC,CACN,CAAC,CAAC,CAAC,CACF,uCAAK,SAAS,EAAC,MAAM;YACnB,8BAAC,wBAAW,IACV,OAAO,EAAE,wBAAc,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GACtD;YACF,sCAAI,SAAS,EAAC,6CAA6C,qDAEtD,CACD,CACP,CACG,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AA1DW,QAAA,OAAO,WA0DlB","sourcesContent":["import React, { useState } from 'react';\nimport { Message, Schema } from '@asyncapi/parser';\n\nimport { CollapseButton, JSONSnippet } from '../../components';\nimport { MessageHelpers } from '../../helpers/message';\nimport { MessageExample as MessageExampleType } from '../../types';\n\ninterface Props {\n message: Message;\n}\n\nexport const MessageExample: React.FunctionComponent<Props> = ({ message }) => {\n if (!message) {\n return null;\n }\n\n const payload = message.payload();\n const headers = message.headers();\n\n return (\n <div className=\"bg-gray-800 px-8 py-4 mt-4 -mx-8 2xl:mx-0 2xl:px-4 2xl:rounded examples\">\n <h4 className=\"text-white text-lg\">Examples</h4>\n {payload && (\n <Example\n type=\"Payload\"\n schema={payload}\n examples={MessageHelpers.getPayloadExamples(message)}\n />\n )}\n {headers && (\n <Example\n type=\"Headers\"\n schema={headers}\n examples={MessageHelpers.getHeadersExamples(message)}\n />\n )}\n </div>\n );\n};\n\ninterface ExampleProps {\n type: 'Payload' | 'Headers';\n schema: Schema;\n examples?: MessageExampleType[];\n}\n\nexport const Example: React.FunctionComponent<ExampleProps> = ({\n type = 'Payload',\n schema,\n examples = [],\n}) => {\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className=\"mt-4\">\n <div>\n <CollapseButton\n onClick={() => setExpanded(prev => !prev)}\n expanded={expanded}\n chevronProps={{\n className: 'fill-current text-gray-200',\n }}\n >\n <span className=\"inline-block w-20 py-0.5 mr-1 text-gray-200 text-sm border text-center rounded focus:outline-none\">\n {type}\n </span>\n </CollapseButton>\n </div>\n <div className={expanded ? 'block' : 'hidden'}>\n {examples && examples.length > 0 ? (\n <ul>\n {examples.map((example, idx) => (\n <li className=\"mt-4\" key={idx}>\n <h5 className=\"text-xs font-bold text-gray-500\">\n {example.name\n ? `#${idx + 1} Example - ${example.name}`\n : `#${idx + 1} Example`}\n </h5>\n {example.summary && (\n <p className=\"text-xs font-bold text-gray-500\">\n {example.summary}\n </p>\n )}\n <div className=\"mt-1\">\n <JSONSnippet\n snippet={MessageHelpers.sanitizeExample(example.example)}\n />\n </div>\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"mt-4\">\n <JSONSnippet\n snippet={MessageHelpers.generateExample(schema.json())}\n />\n <h6 className=\"text-xs font-bold text-gray-600 italic mt-2\">\n This example has been generated automatically.\n </h6>\n </div>\n )}\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"MessageExample.js","sourceRoot":"","sources":["../../../../src/containers/Messages/MessageExample.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmD;AAGnD,+CAA+D;AAC/D,iDAAuD;AAEvD,2CAA2C;AAMpC,IAAM,cAAc,GAAmC,UAAC,EAAW;QAAT,OAAO,aAAA;IACtE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAElC,OAAO,CACL,uCAAK,SAAS,EAAC,yEAAyE;QACtF,sCAAI,SAAS,EAAC,oBAAoB,eAAc;QAC/C,OAAO,IAAI,CACV,8BAAC,eAAO,IACN,IAAI,EAAC,SAAS,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,wBAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,GACpD,CACH;QACA,OAAO,IAAI,CACV,8BAAC,eAAO,IACN,IAAI,EAAC,SAAS,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,wBAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,GACpD,CACH,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,cAAc,kBA2BzB;AAQK,IAAM,OAAO,GAA0C,UAAC,EAI9D;QAHC,YAAgB,EAAhB,IAAI,mBAAG,SAAS,KAAA,EAChB,MAAM,YAAA,EACN,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA;IAEb,IAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;IACrB,IAAA,KAA0B,IAAA,gBAAQ,EACtC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,KAAK,CACpE,EAFM,QAAQ,QAAA,EAAE,WAAW,QAE3B,CAAC;IAEF,IAAA,iBAAS,EAAC;QACR,WAAW,CACT,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,KAAK,CACpE,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,uCAAK,SAAS,EAAC,MAAM;QACnB;YACE,8BAAC,2BAAc,IACb,OAAO,EAAE,cAAM,OAAA,WAAW,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAA1B,CAA0B,EACzC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE;oBACZ,SAAS,EAAE,4BAA4B;iBACxC;gBAED,wCAAM,SAAS,EAAC,mGAAmG,IAChH,IAAI,CACA,CACQ,CACb;QACN,uCAAK,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAC1C,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjC,0CACG,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,GAAG,IAAK,OAAA,CAC9B,sCAAI,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG;YAC3B,sCAAI,SAAS,EAAC,iCAAiC,IAC5C,OAAO,CAAC,IAAI;gBACX,CAAC,CAAC,WAAI,GAAG,GAAG,CAAC,wBAAc,OAAO,CAAC,IAAI,CAAE;gBACzC,CAAC,CAAC,WAAI,GAAG,GAAG,CAAC,aAAU,CACtB;YACJ,OAAO,CAAC,OAAO,IAAI,CAClB,qCAAG,SAAS,EAAC,iCAAiC,IAC3C,OAAO,CAAC,OAAO,CACd,CACL;YACD,uCAAK,SAAS,EAAC,MAAM;gBACnB,8BAAC,wBAAW,IACV,OAAO,EAAE,wBAAc,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GACxD,CACE,CACH,CACN,EAlB+B,CAkB/B,CAAC,CACC,CACN,CAAC,CAAC,CAAC,CACF,uCAAK,SAAS,EAAC,MAAM;YACnB,8BAAC,wBAAW,IACV,OAAO,EAAE,wBAAc,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GACtD;YACF,sCAAI,SAAS,EAAC,6CAA6C,qDAEtD,CACD,CACP,CACG,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAnEW,QAAA,OAAO,WAmElB","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { Message, Schema } from '@asyncapi/parser';\n\nimport { CollapseButton, JSONSnippet } from '../../components';\nimport { MessageHelpers } from '../../helpers/message';\nimport { MessageExample as MessageExampleType } from '../../types';\nimport { useConfig } from '../../contexts';\n\ninterface Props {\n message: Message;\n}\n\nexport const MessageExample: React.FunctionComponent<Props> = ({ message }) => {\n if (!message) {\n return null;\n }\n\n const payload = message.payload();\n const headers = message.headers();\n\n return (\n <div className=\"bg-gray-800 px-8 py-4 mt-4 -mx-8 2xl:mx-0 2xl:px-4 2xl:rounded examples\">\n <h4 className=\"text-white text-lg\">Examples</h4>\n {payload && (\n <Example\n type=\"Payload\"\n schema={payload}\n examples={MessageHelpers.getPayloadExamples(message)}\n />\n )}\n {headers && (\n <Example\n type=\"Headers\"\n schema={headers}\n examples={MessageHelpers.getHeadersExamples(message)}\n />\n )}\n </div>\n );\n};\n\ninterface ExampleProps {\n type: 'Payload' | 'Headers';\n schema: Schema;\n examples?: MessageExampleType[];\n}\n\nexport const Example: React.FunctionComponent<ExampleProps> = ({\n type = 'Payload',\n schema,\n examples = [],\n}) => {\n const config = useConfig();\n const [expanded, setExpanded] = useState(\n (config && config.expand && config.expand.messageExamples) || false,\n );\n\n useEffect(() => {\n setExpanded(\n (config && config.expand && config.expand.messageExamples) || false,\n );\n }, [config.expand]);\n\n return (\n <div className=\"mt-4\">\n <div>\n <CollapseButton\n onClick={() => setExpanded(prev => !prev)}\n expanded={expanded}\n chevronProps={{\n className: 'fill-current text-gray-200',\n }}\n >\n <span className=\"inline-block w-20 py-0.5 mr-1 text-gray-200 text-sm border text-center rounded focus:outline-none\">\n {type}\n </span>\n </CollapseButton>\n </div>\n <div className={expanded ? 'block' : 'hidden'}>\n {examples && examples.length > 0 ? (\n <ul>\n {examples.map((example, idx) => (\n <li className=\"mt-4\" key={idx}>\n <h5 className=\"text-xs font-bold text-gray-500\">\n {example.name\n ? `#${idx + 1} Example - ${example.name}`\n : `#${idx + 1} Example`}\n </h5>\n {example.summary && (\n <p className=\"text-xs font-bold text-gray-500\">\n {example.summary}\n </p>\n )}\n <div className=\"mt-1\">\n <JSONSnippet\n snippet={MessageHelpers.sanitizeExample(example.example)}\n />\n </div>\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"mt-4\">\n <JSONSnippet\n snippet={MessageHelpers.generateExample(schema.json())}\n />\n <h6 className=\"text-xs font-bold text-gray-600 italic mt-2\">\n This example has been generated automatically.\n </h6>\n </div>\n )}\n </div>\n </div>\n );\n};\n"]}
@@ -23,32 +23,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.OperationsByOperationsTags = exports.OperationsByRootTags = exports.OperationsList = exports.Sidebar = void 0;
26
+ exports.Sidebar = void 0;
27
27
  var react_1 = __importStar(require("react"));
28
28
  var components_1 = require("../../components");
29
29
  var contexts_1 = require("../../contexts");
30
- var helpers_1 = require("../../helpers");
31
30
  var constants_1 = require("../../constants");
32
31
  var SidebarContext = react_1.default.createContext({
33
32
  setShowSidebar: function (value) { return value; },
34
33
  });
35
- var Sidebar = function (_a) {
36
- var config = _a.config;
37
- var _b = (0, react_1.useState)(false), showSidebar = _b[0], setShowSidebar = _b[1];
38
- var showOperations = (config === null || config === void 0 ? void 0 : config.showOperations) || 'byDefault';
34
+ var Sidebar = function () {
35
+ var _a = (0, react_1.useState)(false), showSidebar = _a[0], setShowSidebar = _a[1];
39
36
  var asyncapi = (0, contexts_1.useSpec)();
40
37
  var info = asyncapi.info();
41
38
  var logo = info.ext('x-logo');
42
39
  var components = asyncapi.hasComponents() && asyncapi.components();
43
40
  var messages = components && components.messages();
44
41
  var schemas = components && components.schemas();
45
- var Operations = exports.OperationsList;
46
- if (showOperations === 'bySpecTags') {
47
- Operations = exports.OperationsByRootTags;
48
- }
49
- else if (showOperations === 'byOperationsTags') {
50
- Operations = exports.OperationsByOperationsTags;
51
- }
42
+ var hasOperations = asyncapi.hasChannels() &&
43
+ Object.values(asyncapi.channels()).some(function (channel) { return channel.hasPublish() || channel.hasSubscribe(); });
52
44
  var messagesList = messages && Object.keys(messages).length > 0 && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
53
45
  react_1.default.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#messages", onClick: function () { return setShowSidebar(false); } }, "Messages"),
54
46
  react_1.default.createElement("ul", { className: "text-sm mt-2" }, Object.entries(messages).map(function (_a) {
@@ -78,123 +70,175 @@ var Sidebar = function (_a) {
78
70
  react_1.default.createElement("ul", { className: "text-sm mt-10 relative" },
79
71
  react_1.default.createElement("li", { className: "mb-3" },
80
72
  react_1.default.createElement("a", { className: "text-gray-700 no-underline hover:text-gray-900", href: "#introduction", onClick: function () { return setShowSidebar(false); } }, "Introduction")),
81
- asyncapi.hasServers() && (react_1.default.createElement("li", { className: "mb-3" },
82
- react_1.default.createElement("a", { className: "text-gray-700 no-underline hover:text-gray-900", href: "#servers", onClick: function () { return setShowSidebar(false); } }, "Servers"))),
83
- asyncapi.hasChannels() && (react_1.default.createElement(react_1.default.Fragment, null,
73
+ asyncapi.hasServers() && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
74
+ react_1.default.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#servers", onClick: function () { return setShowSidebar(false); } }, "Servers"),
75
+ react_1.default.createElement(ServersList, null))),
76
+ hasOperations && (react_1.default.createElement(react_1.default.Fragment, null,
84
77
  react_1.default.createElement("li", { className: "mb-3 mt-9" },
85
78
  react_1.default.createElement("a", { className: "text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900", href: "#operations", onClick: function () { return setShowSidebar(false); } }, "Operations"),
86
- react_1.default.createElement(Operations, null)),
79
+ react_1.default.createElement(OperationsList, null)),
87
80
  messagesList,
88
81
  schemasList))))))));
89
82
  };
90
83
  exports.Sidebar = Sidebar;
91
- var OperationsList = function () {
92
- var asyncapi = (0, contexts_1.useSpec)();
93
- var channels = asyncapi.channels();
94
- var operationsList = [];
95
- Object.entries(channels).forEach(function (_a) {
96
- var channelName = _a[0], channel = _a[1];
97
- if (channel.hasPublish()) {
98
- operationsList.push(react_1.default.createElement(OperationsPubItem, { channelName: channelName, key: "pub-".concat(channelName) }));
99
- }
100
- if (channel.hasSubscribe()) {
101
- operationsList.push(react_1.default.createElement(OperationsSubItem, { channelName: channelName, key: "sub-".concat(channelName) }));
84
+ function filterObjectsByTags(tags, objects) {
85
+ var taggedObjects = new Set();
86
+ var tagged = new Map();
87
+ tags.forEach(function (tag) {
88
+ var taggedForTag = [];
89
+ objects.forEach(function (obj) {
90
+ var object = obj.object;
91
+ if (typeof object.tags !== 'function') {
92
+ return;
93
+ }
94
+ var objectTags = (object.tags() || []).map(function (t) { return t.name(); });
95
+ var hasTag = objectTags.includes(tag);
96
+ if (hasTag) {
97
+ taggedForTag.push(obj);
98
+ taggedObjects.add(obj);
99
+ }
100
+ });
101
+ tagged.set(tag, taggedForTag);
102
+ });
103
+ var untagged = [];
104
+ objects.forEach(function (obj) {
105
+ if (!taggedObjects.has(obj)) {
106
+ untagged.push(obj);
102
107
  }
103
108
  });
104
- return react_1.default.createElement("ul", { className: "text-sm mt-2" }, operationsList);
105
- };
106
- exports.OperationsList = OperationsList;
107
- var OperationsByRootTags = function () {
109
+ return { tagged: tagged, untagged: untagged };
110
+ }
111
+ var ServersList = function () {
112
+ var sidebarConfig = (0, contexts_1.useConfig)().sidebar;
108
113
  var asyncapi = (0, contexts_1.useSpec)();
109
- var channels = asyncapi.channels();
110
- var tags = asyncapi.tags();
111
- var taggedOperations = function (tag) {
112
- var operationsList = [];
113
- Object.entries(channels).forEach(function (_a) {
114
- var channelName = _a[0], channel = _a[1];
115
- if (channel.hasPublish() &&
116
- helpers_1.SpecificationHelpers.containTags(channel.publish(), tag)) {
117
- operationsList.push(react_1.default.createElement(OperationsPubItem, { channelName: channelName, key: "pub-".concat(channelName) }));
118
- }
119
- if (channel.hasSubscribe() &&
120
- helpers_1.SpecificationHelpers.containTags(channel.subscribe(), tag)) {
121
- operationsList.push(react_1.default.createElement(OperationsSubItem, { channelName: channelName, key: "sub-".concat(channelName) }));
114
+ var servers = asyncapi.servers();
115
+ var showServers = (sidebarConfig === null || sidebarConfig === void 0 ? void 0 : sidebarConfig.showServers) || 'byDefault';
116
+ if (showServers === 'byDefault') {
117
+ return (react_1.default.createElement("ul", { className: "text-sm mt-2" }, Object.keys(servers).map(function (serverName) { return (react_1.default.createElement(ServerItem, { serverName: serverName, key: serverName })); })));
118
+ }
119
+ var specTagNames;
120
+ if (showServers === 'bySpecTags') {
121
+ specTagNames = (asyncapi.tags() || []).map(function (tag) { return tag.name(); });
122
+ }
123
+ else {
124
+ var serverTagNamesSet_1 = new Set();
125
+ Object.values(servers).forEach(function (server) {
126
+ if (typeof server.tags !== 'function') {
127
+ return;
122
128
  }
129
+ server.tags().forEach(function (t) { return serverTagNamesSet_1.add(t.name()); });
130
+ });
131
+ specTagNames = Array.from(serverTagNamesSet_1);
132
+ }
133
+ var serializedServers = Object.entries(servers).map(function (_a) {
134
+ var serverName = _a[0], server = _a[1];
135
+ return ({
136
+ name: serverName,
137
+ object: server,
138
+ data: {},
123
139
  });
124
- return operationsList;
125
- };
126
- var untaggedOperations = [];
127
- Object.entries(channels).forEach(function (_a) {
128
- var channelName = _a[0], channel = _a[1];
129
- if (channel.hasPublish() &&
130
- (!channel.publish().hasTags() ||
131
- !helpers_1.SpecificationHelpers.containTags(channel.publish(), tags))) {
132
- untaggedOperations.push(react_1.default.createElement(OperationsPubItem, { channelName: channelName, key: "pub-".concat(channelName) }));
133
- }
134
- if (channel.hasSubscribe() &&
135
- (!channel.subscribe().hasTags() ||
136
- !helpers_1.SpecificationHelpers.containTags(channel.subscribe(), tags))) {
137
- untaggedOperations.push(react_1.default.createElement(OperationsSubItem, { channelName: channelName, key: "sub-".concat(channelName) }));
138
- }
139
140
  });
140
- return (react_1.default.createElement("div", null,
141
- react_1.default.createElement("ul", null,
142
- tags &&
143
- tags.map(function (tag) {
144
- var ops = taggedOperations(tag);
145
- return (ops.length > 0 && (react_1.default.createElement("li", { key: tag.name() },
146
- react_1.default.createElement(OperationsByTagItem, { tagName: tag.name() }, taggedOperations(tag)))));
147
- }),
148
- untaggedOperations.length > 0 && (react_1.default.createElement("li", null,
149
- react_1.default.createElement(OperationsByTagItem, { tagName: "Untagged" }, untaggedOperations))))));
141
+ var _a = filterObjectsByTags(specTagNames, serializedServers), tagged = _a.tagged, untagged = _a.untagged;
142
+ return (react_1.default.createElement("ul", { className: "text-sm mt-2" },
143
+ Array.from(tagged.entries()).map(function (_a) {
144
+ var tag = _a[0], taggedServers = _a[1];
145
+ return (react_1.default.createElement("li", { key: tag },
146
+ react_1.default.createElement(ItemsByTagItem, { tagName: tag }, taggedServers.map(function (_a) {
147
+ var serverName = _a.name;
148
+ return (react_1.default.createElement(ServerItem, { serverName: serverName, key: serverName }));
149
+ }))));
150
+ }),
151
+ untagged.length > 0 ? (react_1.default.createElement("li", null,
152
+ react_1.default.createElement(ItemsByTagItem, { tagName: "Untagged" }, untagged.map(function (_a) {
153
+ var serverName = _a.name;
154
+ return (react_1.default.createElement(ServerItem, { serverName: serverName, key: serverName }));
155
+ })))) : null));
150
156
  };
151
- exports.OperationsByRootTags = OperationsByRootTags;
152
- var OperationsByOperationsTags = function () {
157
+ var OperationsList = function () {
158
+ var sidebarConfig = (0, contexts_1.useConfig)().sidebar;
153
159
  var asyncapi = (0, contexts_1.useSpec)();
154
160
  var channels = asyncapi.channels();
155
- var operationsTags = helpers_1.SpecificationHelpers.operationsTags(asyncapi);
156
- var taggedOperations = function (tag) {
157
- var operationsList = [];
158
- Object.entries(channels).forEach(function (_a) {
159
- var channelName = _a[0], channel = _a[1];
160
- if (channel.hasPublish() &&
161
- helpers_1.SpecificationHelpers.containTags(channel.publish(), tag)) {
162
- operationsList.push(react_1.default.createElement(OperationsPubItem, { channelName: channelName, key: "pub-".concat(channelName) }));
163
- }
164
- if (channel.hasSubscribe() &&
165
- helpers_1.SpecificationHelpers.containTags(channel.subscribe(), tag)) {
166
- operationsList.push(react_1.default.createElement(OperationsSubItem, { channelName: channelName, key: "sub-".concat(channelName) }));
167
- }
168
- });
169
- return operationsList;
170
- };
171
- var untaggedOperations = [];
161
+ var showOperations = (sidebarConfig === null || sidebarConfig === void 0 ? void 0 : sidebarConfig.showOperations) || 'byDefault';
162
+ var operations = [];
172
163
  Object.entries(channels).forEach(function (_a) {
173
164
  var channelName = _a[0], channel = _a[1];
174
- if (channel.hasPublish() &&
175
- (!channel.publish().hasTags() ||
176
- !helpers_1.SpecificationHelpers.containTags(channel.publish(), operationsTags))) {
177
- untaggedOperations.push(react_1.default.createElement(OperationsPubItem, { channelName: channelName, key: "pub-".concat(channelName) }));
165
+ if (channel.hasPublish()) {
166
+ operations.push({
167
+ name: "publish-".concat(channelName),
168
+ object: channel.publish(),
169
+ data: { channelName: channelName, kind: 'publish' },
170
+ });
178
171
  }
179
- if (channel.hasSubscribe() &&
180
- (!channel.subscribe().hasTags() ||
181
- !helpers_1.SpecificationHelpers.containTags(channel.subscribe(), operationsTags))) {
182
- untaggedOperations.push(react_1.default.createElement(OperationsSubItem, { channelName: channelName, key: "sub-".concat(channelName) }));
172
+ if (channel.hasSubscribe()) {
173
+ operations.push({
174
+ name: "subscribe-".concat(channelName),
175
+ object: channel.subscribe(),
176
+ data: { channelName: channelName, kind: 'subscribe' },
177
+ });
183
178
  }
184
179
  });
185
- return (react_1.default.createElement("div", null,
186
- react_1.default.createElement("ul", null,
187
- operationsTags &&
188
- operationsTags.map(function (tag) {
189
- var ops = taggedOperations(tag);
190
- return (ops.length > 0 && (react_1.default.createElement("li", { key: tag.name() },
191
- react_1.default.createElement(OperationsByTagItem, { tagName: tag.name() }, taggedOperations(tag)))));
192
- }),
193
- untaggedOperations.length > 0 && (react_1.default.createElement("li", null,
194
- react_1.default.createElement(OperationsByTagItem, { tagName: "Untagged" }, untaggedOperations))))));
180
+ if (showOperations === 'byDefault') {
181
+ return (react_1.default.createElement("ul", { className: "text-sm mt-2" }, operations.map(function (_a) {
182
+ var name = _a.name, _b = _a.data, channelName = _b.channelName, kind = _b.kind;
183
+ return (react_1.default.createElement(OperationItem, { channelName: channelName, kind: kind, key: name }));
184
+ })));
185
+ }
186
+ var operationTagNames;
187
+ if (showOperations === 'bySpecTags') {
188
+ operationTagNames = (asyncapi.tags() || []).map(function (tag) { return tag.name(); });
189
+ }
190
+ else {
191
+ var operationTagNamesSet_1 = new Set();
192
+ Object.values(operations).forEach(function (_a) {
193
+ var object = _a.object;
194
+ if (typeof object.tags !== 'function') {
195
+ return;
196
+ }
197
+ object.tags().forEach(function (t) { return operationTagNamesSet_1.add(t.name()); });
198
+ });
199
+ operationTagNames = Array.from(operationTagNamesSet_1);
200
+ }
201
+ var _a = filterObjectsByTags(operationTagNames, operations), tagged = _a.tagged, untagged = _a.untagged;
202
+ return (react_1.default.createElement("ul", { className: "text-sm mt-2" },
203
+ Array.from(tagged.entries()).map(function (_a) {
204
+ var tag = _a[0], taggedOperations = _a[1];
205
+ return (react_1.default.createElement("li", { key: tag },
206
+ react_1.default.createElement(ItemsByTagItem, { tagName: tag }, taggedOperations.map(function (_a) {
207
+ var name = _a.name, _b = _a.data, kind = _b.kind, channelName = _b.channelName;
208
+ return (react_1.default.createElement(OperationItem, { channelName: channelName, kind: kind, key: name }));
209
+ }))));
210
+ }),
211
+ untagged.length > 0 ? (react_1.default.createElement("li", null,
212
+ react_1.default.createElement(ItemsByTagItem, { tagName: "Untagged" }, untagged.map(function (_a) {
213
+ var name = _a.name, _b = _a.data, kind = _b.kind, channelName = _b.channelName;
214
+ return (react_1.default.createElement(OperationItem, { channelName: channelName, kind: kind, key: name }));
215
+ })))) : null));
216
+ };
217
+ var OperationItem = function (_a) {
218
+ var channelName = _a.channelName, kind = _a.kind;
219
+ var config = (0, contexts_1.useConfig)();
220
+ var setShowSidebar = (0, react_1.useContext)(SidebarContext).setShowSidebar;
221
+ var isPublish = kind === 'publish';
222
+ var label = '';
223
+ if (isPublish) {
224
+ label = config.publishLabel || constants_1.PUBLISH_LABEL_DEFAULT_TEXT;
225
+ }
226
+ else {
227
+ label = config.subscribeLabel || constants_1.SUBSCRIBE_LABEL_DEFAULT_TEXT;
228
+ }
229
+ return (react_1.default.createElement("li", null,
230
+ react_1.default.createElement("a", { className: "flex no-underline text-gray-700 mb-2 hover:text-gray-900", href: "#operation-".concat(kind, "-").concat(channelName), onClick: function () { return setShowSidebar(false); } },
231
+ react_1.default.createElement("span", { className: "".concat(isPublish ? 'bg-blue-600' : 'bg-green-600', " font-bold h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs"), title: isPublish ? 'Publish' : 'Subscribe' }, label),
232
+ react_1.default.createElement("span", { className: "break-all inline-block" }, channelName))));
233
+ };
234
+ var ServerItem = function (_a) {
235
+ var serverName = _a.serverName;
236
+ var setShowSidebar = (0, react_1.useContext)(SidebarContext).setShowSidebar;
237
+ return (react_1.default.createElement("li", null,
238
+ react_1.default.createElement("a", { className: "flex no-underline text-gray-700 mb-2 hover:text-gray-900", href: "#server-".concat(serverName), onClick: function () { return setShowSidebar(false); } },
239
+ react_1.default.createElement("span", { className: "break-all inline-block" }, serverName))));
195
240
  };
196
- exports.OperationsByOperationsTags = OperationsByOperationsTags;
197
- var OperationsByTagItem = function (_a) {
241
+ var ItemsByTagItem = function (_a) {
198
242
  var tagName = _a.tagName, children = _a.children;
199
243
  var _b = (0, react_1.useState)(false), expand = _b[0], setExpand = _b[1];
200
244
  return (react_1.default.createElement("div", null,
@@ -204,22 +248,4 @@ var OperationsByTagItem = function (_a) {
204
248
  react_1.default.createElement("span", { className: "text-sm inline-block mt-1 font-extralight" }, tagName)),
205
249
  react_1.default.createElement("ul", { className: "".concat(expand ? 'block' : 'hidden', " text-sm mt-2 font-light") }, children)));
206
250
  };
207
- var OperationsPubItem = function (_a) {
208
- var channelName = _a.channelName;
209
- var config = (0, contexts_1.useConfig)();
210
- var setShowSidebar = (0, react_1.useContext)(SidebarContext).setShowSidebar;
211
- return (react_1.default.createElement("li", null,
212
- react_1.default.createElement("a", { className: "flex no-underline text-gray-700 mb-2 hover:text-gray-900", href: "#operation-publish-".concat(channelName), onClick: function () { return setShowSidebar(false); } },
213
- react_1.default.createElement("span", { className: "bg-blue-600 font-bold h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs", title: "Publish" }, config.publishLabel || constants_1.PUBLISH_LABEL_DEFAULT_TEXT),
214
- react_1.default.createElement("span", { className: "break-all inline-block" }, channelName))));
215
- };
216
- var OperationsSubItem = function (_a) {
217
- var channelName = _a.channelName;
218
- var config = (0, contexts_1.useConfig)();
219
- var setShowSidebar = (0, react_1.useContext)(SidebarContext).setShowSidebar;
220
- return (react_1.default.createElement("li", null,
221
- react_1.default.createElement("a", { className: "flex no-underline text-gray-700 mb-2 hover:text-gray-900", href: "#operation-subscribe-".concat(channelName), onClick: function () { return setShowSidebar(false); } },
222
- react_1.default.createElement("span", { className: "bg-green-600 font-bold h-6 no-underline text-white uppercase p-1 mr-2 rounded text-xs", title: "Subscribe" }, config.subscribeLabel || constants_1.SUBSCRIBE_LABEL_DEFAULT_TEXT),
223
- react_1.default.createElement("span", { className: "break-all inline-block" }, channelName))));
224
- };
225
251
  //# sourceMappingURL=Sidebar.js.map