@asyncapi/react-component 1.0.0-next.44 → 1.0.0-next.46
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.
- package/browser/index.js +2 -2
- package/browser/standalone/index.js +2 -2
- package/browser/standalone/without-parser.js +7 -7
- package/browser/without-parser.js +2 -2
- package/lib/cjs/components/CollapseButton.js +6 -2
- package/lib/cjs/components/CollapseButton.js.map +1 -1
- package/lib/cjs/config/config.js.map +1 -1
- package/lib/cjs/config/default.js +2 -1
- package/lib/cjs/config/default.js.map +1 -1
- package/lib/cjs/containers/AsyncApi/Layout.js +10 -10
- package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
- package/lib/cjs/containers/Sidebar/Sidebar.js +166 -127
- package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
- package/lib/cjs/helpers/specification.js +17 -0
- package/lib/cjs/helpers/specification.js.map +1 -1
- package/lib/esm/components/CollapseButton.js +5 -1
- package/lib/esm/components/CollapseButton.js.map +1 -1
- package/lib/esm/config/config.js.map +1 -1
- package/lib/esm/config/default.js +2 -1
- package/lib/esm/config/default.js.map +1 -1
- package/lib/esm/containers/AsyncApi/Layout.js +10 -10
- package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
- package/lib/esm/containers/Sidebar/Sidebar.js +165 -123
- package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
- package/lib/esm/helpers/specification.js +17 -0
- package/lib/esm/helpers/specification.js.map +1 -1
- package/lib/types/components/CollapseButton.d.ts.map +1 -1
- package/lib/types/config/config.d.ts +1 -0
- package/lib/types/config/config.d.ts.map +1 -1
- package/lib/types/config/default.d.ts.map +1 -1
- package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
- package/lib/types/containers/Sidebar/Sidebar.d.ts +1 -9
- package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
- package/lib/types/helpers/specification.d.ts +3 -0
- package/lib/types/helpers/specification.d.ts.map +1 -1
- 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
|
|
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(
|
|
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;
|
|
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 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 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"]}
|
|
@@ -17,7 +17,8 @@ exports.defaultConfig = {
|
|
|
17
17
|
messageExamples: false,
|
|
18
18
|
},
|
|
19
19
|
sidebar: {
|
|
20
|
-
|
|
20
|
+
showServers: 'byDefault',
|
|
21
|
+
showOperations: 'byDefault',
|
|
21
22
|
},
|
|
22
23
|
publishLabel: constants_1.PUBLISH_LABEL_DEFAULT_TEXT,
|
|
23
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,MAAM,EAAE;QACN,eAAe,EAAE,KAAK;KACvB;IACD,OAAO,EAAE;QACP,cAAc,EAAE,
|
|
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
|
|
41
|
-
var
|
|
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
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
|
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"]}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
14
|
if (k2 === undefined) k2 = k;
|
|
4
15
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -23,32 +34,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
34
|
return result;
|
|
24
35
|
};
|
|
25
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
37
|
+
exports.Sidebar = void 0;
|
|
27
38
|
var react_1 = __importStar(require("react"));
|
|
28
39
|
var components_1 = require("../../components");
|
|
29
40
|
var contexts_1 = require("../../contexts");
|
|
30
|
-
var helpers_1 = require("../../helpers");
|
|
31
41
|
var constants_1 = require("../../constants");
|
|
32
42
|
var SidebarContext = react_1.default.createContext({
|
|
33
43
|
setShowSidebar: function (value) { return value; },
|
|
34
44
|
});
|
|
35
|
-
var Sidebar = function (
|
|
36
|
-
var
|
|
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';
|
|
45
|
+
var Sidebar = function () {
|
|
46
|
+
var _a = (0, react_1.useState)(false), showSidebar = _a[0], setShowSidebar = _a[1];
|
|
39
47
|
var asyncapi = (0, contexts_1.useSpec)();
|
|
40
48
|
var info = asyncapi.info();
|
|
41
49
|
var logo = info.ext('x-logo');
|
|
42
50
|
var components = asyncapi.hasComponents() && asyncapi.components();
|
|
43
51
|
var messages = components && components.messages();
|
|
44
52
|
var schemas = components && components.schemas();
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
Operations = exports.OperationsByRootTags;
|
|
48
|
-
}
|
|
49
|
-
else if (showOperations === 'byOperationsTags') {
|
|
50
|
-
Operations = exports.OperationsByOperationsTags;
|
|
51
|
-
}
|
|
53
|
+
var hasOperations = asyncapi.hasChannels() &&
|
|
54
|
+
Object.values(asyncapi.channels()).some(function (channel) { return channel.hasPublish() || channel.hasSubscribe(); });
|
|
52
55
|
var messagesList = messages && Object.keys(messages).length > 0 && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
|
|
53
56
|
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
57
|
react_1.default.createElement("ul", { className: "text-sm mt-2" }, Object.entries(messages).map(function (_a) {
|
|
@@ -78,123 +81,177 @@ var Sidebar = function (_a) {
|
|
|
78
81
|
react_1.default.createElement("ul", { className: "text-sm mt-10 relative" },
|
|
79
82
|
react_1.default.createElement("li", { className: "mb-3" },
|
|
80
83
|
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
|
|
83
|
-
|
|
84
|
+
asyncapi.hasServers() && (react_1.default.createElement("li", { className: "mb-3 mt-9" },
|
|
85
|
+
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"),
|
|
86
|
+
react_1.default.createElement(ServersList, null))),
|
|
87
|
+
hasOperations && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
84
88
|
react_1.default.createElement("li", { className: "mb-3 mt-9" },
|
|
85
89
|
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(
|
|
90
|
+
react_1.default.createElement(OperationsList, null)),
|
|
87
91
|
messagesList,
|
|
88
92
|
schemasList))))))));
|
|
89
93
|
};
|
|
90
94
|
exports.Sidebar = Sidebar;
|
|
91
|
-
|
|
92
|
-
var
|
|
93
|
-
var
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
95
|
+
function filterObjectsByTags(tags, objects) {
|
|
96
|
+
var taggedObjects = new Set();
|
|
97
|
+
var tagged = new Map();
|
|
98
|
+
tags.forEach(function (tag) {
|
|
99
|
+
var taggedForTag = [];
|
|
100
|
+
objects.forEach(function (obj) {
|
|
101
|
+
var object = obj.object;
|
|
102
|
+
if (typeof object.tags !== 'function') {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
var objectTags = (object.tags() || []).map(function (t) { return t.name(); });
|
|
106
|
+
var hasTag = objectTags.includes(tag);
|
|
107
|
+
if (hasTag) {
|
|
108
|
+
taggedForTag.push(obj);
|
|
109
|
+
taggedObjects.add(obj);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
tagged.set(tag, taggedForTag);
|
|
113
|
+
});
|
|
114
|
+
var untagged = [];
|
|
115
|
+
objects.forEach(function (obj) {
|
|
116
|
+
if (!taggedObjects.has(obj)) {
|
|
117
|
+
untagged.push(obj);
|
|
102
118
|
}
|
|
103
119
|
});
|
|
104
|
-
return
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
var
|
|
120
|
+
return { tagged: tagged, untagged: untagged };
|
|
121
|
+
}
|
|
122
|
+
var ServersList = function () {
|
|
123
|
+
var sidebarConfig = (0, contexts_1.useConfig)().sidebar;
|
|
108
124
|
var asyncapi = (0, contexts_1.useSpec)();
|
|
109
|
-
var
|
|
110
|
-
var
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
var servers = asyncapi.servers();
|
|
126
|
+
var showServers = (sidebarConfig === null || sidebarConfig === void 0 ? void 0 : sidebarConfig.showServers) || 'byDefault';
|
|
127
|
+
if (showServers === 'byDefault') {
|
|
128
|
+
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 })); })));
|
|
129
|
+
}
|
|
130
|
+
var specTagNames;
|
|
131
|
+
if (showServers === 'bySpecTags') {
|
|
132
|
+
specTagNames = (asyncapi.tags() || []).map(function (tag) { return tag.name(); });
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
var serverTagNamesSet_1 = new Set();
|
|
136
|
+
Object.values(servers).forEach(function (server) {
|
|
137
|
+
if (typeof server.tags !== 'function') {
|
|
138
|
+
return;
|
|
122
139
|
}
|
|
140
|
+
server.tags().forEach(function (t) { return serverTagNamesSet_1.add(t.name()); });
|
|
141
|
+
});
|
|
142
|
+
specTagNames = Array.from(serverTagNamesSet_1);
|
|
143
|
+
}
|
|
144
|
+
var serializedServers = Object.entries(servers).map(function (_a) {
|
|
145
|
+
var serverName = _a[0], server = _a[1];
|
|
146
|
+
return ({
|
|
147
|
+
name: serverName,
|
|
148
|
+
object: server,
|
|
149
|
+
data: {},
|
|
123
150
|
});
|
|
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
151
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
var _a = filterObjectsByTags(specTagNames, serializedServers), tagged = _a.tagged, untagged = _a.untagged;
|
|
153
|
+
return (react_1.default.createElement("ul", { className: "text-sm mt-2" },
|
|
154
|
+
Array.from(tagged.entries()).map(function (_a) {
|
|
155
|
+
var tag = _a[0], taggedServers = _a[1];
|
|
156
|
+
return (react_1.default.createElement("li", { key: tag },
|
|
157
|
+
react_1.default.createElement(ItemsByTagItem, { tagName: tag }, taggedServers.map(function (_a) {
|
|
158
|
+
var serverName = _a.name;
|
|
159
|
+
return (react_1.default.createElement(ServerItem, { serverName: serverName, key: serverName }));
|
|
160
|
+
}))));
|
|
161
|
+
}),
|
|
162
|
+
untagged.length > 0 ? (react_1.default.createElement("li", null,
|
|
163
|
+
react_1.default.createElement(ItemsByTagItem, { tagName: "Untagged" }, untagged.map(function (_a) {
|
|
164
|
+
var serverName = _a.name;
|
|
165
|
+
return (react_1.default.createElement(ServerItem, { serverName: serverName, key: serverName }));
|
|
166
|
+
})))) : null));
|
|
150
167
|
};
|
|
151
|
-
|
|
152
|
-
var
|
|
168
|
+
var OperationsList = function () {
|
|
169
|
+
var sidebarConfig = (0, contexts_1.useConfig)().sidebar;
|
|
153
170
|
var asyncapi = (0, contexts_1.useSpec)();
|
|
154
171
|
var channels = asyncapi.channels();
|
|
155
|
-
var
|
|
156
|
-
var
|
|
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 = [];
|
|
172
|
+
var showOperations = (sidebarConfig === null || sidebarConfig === void 0 ? void 0 : sidebarConfig.showOperations) || 'byDefault';
|
|
173
|
+
var operations = [];
|
|
172
174
|
Object.entries(channels).forEach(function (_a) {
|
|
173
175
|
var channelName = _a[0], channel = _a[1];
|
|
174
|
-
if (channel.hasPublish()
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
176
|
+
if (channel.hasPublish()) {
|
|
177
|
+
var operation = channel.publish();
|
|
178
|
+
operations.push({
|
|
179
|
+
name: "publish-".concat(channelName),
|
|
180
|
+
object: operation,
|
|
181
|
+
data: { channelName: channelName, kind: 'publish', summary: operation.summary() },
|
|
182
|
+
});
|
|
178
183
|
}
|
|
179
|
-
if (channel.hasSubscribe()
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
184
|
+
if (channel.hasSubscribe()) {
|
|
185
|
+
var operation = channel.subscribe();
|
|
186
|
+
operations.push({
|
|
187
|
+
name: "subscribe-".concat(channelName),
|
|
188
|
+
object: operation,
|
|
189
|
+
data: { channelName: channelName, kind: 'subscribe', summary: operation.summary() },
|
|
190
|
+
});
|
|
183
191
|
}
|
|
184
192
|
});
|
|
185
|
-
|
|
186
|
-
react_1.default.createElement("ul",
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
if (showOperations === 'byDefault') {
|
|
194
|
+
return (react_1.default.createElement("ul", { className: "text-sm mt-2" }, operations.map(function (_a) {
|
|
195
|
+
var name = _a.name, data = _a.data;
|
|
196
|
+
return (react_1.default.createElement(OperationItem, __assign({ key: name }, data)));
|
|
197
|
+
})));
|
|
198
|
+
}
|
|
199
|
+
var operationTagNames;
|
|
200
|
+
if (showOperations === 'bySpecTags') {
|
|
201
|
+
operationTagNames = (asyncapi.tags() || []).map(function (tag) { return tag.name(); });
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
var operationTagNamesSet_1 = new Set();
|
|
205
|
+
Object.values(operations).forEach(function (_a) {
|
|
206
|
+
var object = _a.object;
|
|
207
|
+
if (typeof object.tags !== 'function') {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
object.tags().forEach(function (t) { return operationTagNamesSet_1.add(t.name()); });
|
|
211
|
+
});
|
|
212
|
+
operationTagNames = Array.from(operationTagNamesSet_1);
|
|
213
|
+
}
|
|
214
|
+
var _a = filterObjectsByTags(operationTagNames, operations), tagged = _a.tagged, untagged = _a.untagged;
|
|
215
|
+
return (react_1.default.createElement("ul", { className: "text-sm mt-2" },
|
|
216
|
+
Array.from(tagged.entries()).map(function (_a) {
|
|
217
|
+
var tag = _a[0], taggedOperations = _a[1];
|
|
218
|
+
return (react_1.default.createElement("li", { key: tag },
|
|
219
|
+
react_1.default.createElement(ItemsByTagItem, { tagName: tag }, taggedOperations.map(function (_a) {
|
|
220
|
+
var name = _a.name, data = _a.data;
|
|
221
|
+
return (react_1.default.createElement(OperationItem, __assign({ key: name }, data)));
|
|
222
|
+
}))));
|
|
223
|
+
}),
|
|
224
|
+
untagged.length > 0 ? (react_1.default.createElement("li", null,
|
|
225
|
+
react_1.default.createElement(ItemsByTagItem, { tagName: "Untagged" }, untagged.map(function (_a) {
|
|
226
|
+
var name = _a.name, data = _a.data;
|
|
227
|
+
return (react_1.default.createElement(OperationItem, __assign({ key: name }, data)));
|
|
228
|
+
})))) : null));
|
|
195
229
|
};
|
|
196
|
-
|
|
197
|
-
var
|
|
230
|
+
var OperationItem = function (_a) {
|
|
231
|
+
var channelName = _a.channelName, summary = _a.summary, kind = _a.kind;
|
|
232
|
+
var config = (0, contexts_1.useConfig)();
|
|
233
|
+
var setShowSidebar = (0, react_1.useContext)(SidebarContext).setShowSidebar;
|
|
234
|
+
var isPublish = kind === 'publish';
|
|
235
|
+
var label = '';
|
|
236
|
+
if (isPublish) {
|
|
237
|
+
label = config.publishLabel || constants_1.PUBLISH_LABEL_DEFAULT_TEXT;
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
label = config.subscribeLabel || constants_1.SUBSCRIBE_LABEL_DEFAULT_TEXT;
|
|
241
|
+
}
|
|
242
|
+
return (react_1.default.createElement("li", null,
|
|
243
|
+
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); } },
|
|
244
|
+
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),
|
|
245
|
+
react_1.default.createElement("span", { className: "break-all inline-block" }, summary || channelName))));
|
|
246
|
+
};
|
|
247
|
+
var ServerItem = function (_a) {
|
|
248
|
+
var serverName = _a.serverName;
|
|
249
|
+
var setShowSidebar = (0, react_1.useContext)(SidebarContext).setShowSidebar;
|
|
250
|
+
return (react_1.default.createElement("li", null,
|
|
251
|
+
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); } },
|
|
252
|
+
react_1.default.createElement("span", { className: "break-all inline-block" }, serverName))));
|
|
253
|
+
};
|
|
254
|
+
var ItemsByTagItem = function (_a) {
|
|
198
255
|
var tagName = _a.tagName, children = _a.children;
|
|
199
256
|
var _b = (0, react_1.useState)(false), expand = _b[0], setExpand = _b[1];
|
|
200
257
|
return (react_1.default.createElement("div", null,
|
|
@@ -204,22 +261,4 @@ var OperationsByTagItem = function (_a) {
|
|
|
204
261
|
react_1.default.createElement("span", { className: "text-sm inline-block mt-1 font-extralight" }, tagName)),
|
|
205
262
|
react_1.default.createElement("ul", { className: "".concat(expand ? 'block' : 'hidden', " text-sm mt-2 font-light") }, children)));
|
|
206
263
|
};
|
|
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
264
|
//# sourceMappingURL=Sidebar.js.map
|