ig-typedoc-theme
Version:
infragistics theme for typedoc API documentation with versioning and localization
39 lines (38 loc) • 2.91 kB
JavaScript
import { DeclarationReflection, ReflectionKind, ReflectionType } from "typedoc";
import { JSX } from "typedoc";
import { hasTypeParameters } from "../utils/lib.js";
import { localize } from 'typedoc-plugin-localization';
export const reflectionTemplate = (context, props) => (JSX.createElement(JSX.Fragment, null,
props.model.hasComment() && JSX.createElement("section", { class: "tsd-panel tsd-comment" },
context.commentSummary(props.model),
context.commentTags(props.model)),
hasTypeParameters(props.model) && (JSX.createElement("section", { class: "tsd-panel tsd-type-parameters" }, context.typeParameters(props.model.typeParameters))),
props.model instanceof DeclarationReflection && (JSX.createElement(JSX.Fragment, null,
!!props.model.typeHierarchy && (JSX.createElement("section", { class: "tsd-panel tsd-hierarchy" },
JSX.createElement("h3", null, localize('Hierarchy')),
context.hierarchy(props.model.typeHierarchy))),
!!props.model.implementedTypes && (JSX.createElement("section", { class: "tsd-panel" },
JSX.createElement("h3", null, localize('Implements')),
JSX.createElement("ul", { class: "tsd-hierarchy" }, props.model.implementedTypes.map((item) => (JSX.createElement("li", null, context.type(item))))))),
!!props.model.implementedBy && (JSX.createElement("section", { class: "tsd-panel" },
JSX.createElement("h3", null, localize('Implemented by')),
JSX.createElement("ul", { class: "tsd-hierarchy" }, props.model.implementedBy.map((item) => (JSX.createElement("li", null, context.type(item))))))),
!!props.model.signatures && (JSX.createElement("section", { class: "tsd-panel" },
JSX.createElement("h3", { class: "tsd-before-signature" }, localize('Callable')),
context.memberSignatures(props.model))),
!!props.model.indexSignatures && (props.model.indexSignatures.map((signature) => {
JSX.createElement("section", { class: "tsd-panel " + ReflectionKind.classString(props.model.kind) },
JSX.createElement("h3", { class: "tsd-before-signature" }, "Indexable"),
JSX.createElement("div", { class: "tsd-signature tsd-kind-icon" },
JSX.createElement("span", { class: "tsd-signature-symbol" }),
signature.parameters.map((item) => (JSX.createElement(JSX.Fragment, null,
item.name,
": ",
context.type(item.type)))),
JSX.createElement("span", { class: "tsd-signature-symbol" }, "]: "),
context.type(signature.type)),
signature.comment,
signature?.type instanceof ReflectionType && context.typeDetailsIfUseful(signature.type));
})))),
context.index(props.model),
context.members(props.model)));