UNPKG

ig-typedoc-theme

Version:

infragistics theme for typedoc API documentation with versioning and localization

39 lines (38 loc) 2.91 kB
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)));