docusaurus-plugin-typedoc-api
Version:
Docusaurus plugin that provides source code API documentation powered by TypeDoc.
72 lines (68 loc) • 3.01 kB
JavaScript
'use strict';
const react = require('react');
const useReflection = require('../hooks/useReflection.js');
const useReflectionMap = require('../hooks/useReflectionMap.js');
const helpers = require('../utils/helpers.js');
const visibility = require('../utils/visibility.js');
const AnchorLink = require('./AnchorLink.js');
const ApiItem = require('./ApiItem.js');
const CommentBadges = require('./CommentBadges.js');
const Flags = require('./Flags.js');
const MemberDeclaration = require('./MemberDeclaration.js');
const MemberGetterSetter = require('./MemberGetterSetter.js');
const MemberReference = require('./MemberReference.js');
const MemberSignatures = require('./MemberSignatures.js');
const SourceLink = require('./SourceLink.js');
const jsxRuntime = require('react/jsx-runtime');
// https://github.com/TypeStrong/typedoc-default-themes/blob/master/src/default/partials/members.hbs
function Member({
id
}) {
const reflections = useReflectionMap.useReflectionMap();
const reflection = useReflection.useRequiredReflection(id);
const comment = reflection.comment;
let content = null;
const apiOptions = react.useContext(ApiItem.ApiOptionsContext);
const shouldHideInherited = reflection.inheritedFrom ? apiOptions.hideInherited : false;
if (reflection.signatures) {
content = /*#__PURE__*/jsxRuntime.jsx(MemberSignatures.MemberSignatures, {
inPanel: true,
sigs: reflection.signatures
});
} else if (reflection.getSignature || reflection.setSignature) {
content = /*#__PURE__*/jsxRuntime.jsx(MemberGetterSetter.MemberGetterSetter, {
inPanel: true,
getter: reflection.getSignature,
setter: reflection.setSignature
});
} else if ('target' in reflection && reflection.target) {
content = /*#__PURE__*/jsxRuntime.jsx(MemberReference.MemberReference, {
reflection: reflection
});
} else {
content = /*#__PURE__*/jsxRuntime.jsx(MemberDeclaration.MemberDeclaration, {
id: id
});
}
return !shouldHideInherited && /*#__PURE__*/jsxRuntime.jsxs("section", {
className: "tsd-panel tsd-member",
children: [/*#__PURE__*/jsxRuntime.jsxs("h3", {
className: "tsd-panel-header",
children: [/*#__PURE__*/jsxRuntime.jsx(AnchorLink.AnchorLink, {
id: reflection.name
}), /*#__PURE__*/jsxRuntime.jsx(SourceLink.SourceLink, {
sources: reflection.sources
}), /*#__PURE__*/jsxRuntime.jsx(Flags.Flags, {
flags: reflection.flags
}), helpers.escapeMdx(reflection.name), CommentBadges.isCommentWithModifiers(comment) && /*#__PURE__*/jsxRuntime.jsx(CommentBadges.CommentBadges, {
comment: comment
})]
}), content, reflection.groups?.map(group => /*#__PURE__*/jsxRuntime.jsx(react.Fragment, {
children: group.children?.map(child => visibility.hasOwnDocument(child, reflections) ? null : /*#__PURE__*/jsxRuntime.jsx(Member, {
id: child
}, child))
}, group.title))]
});
}
exports.Member = Member;
//# sourceMappingURL=Member.js.map