UNPKG

ig-typedoc-theme

Version:

infragistics theme for typedoc API documentation with versioning and localization

100 lines (99 loc) 9.03 kB
import { ReflectionKind, JSX } from "typedoc"; import { analytics } from "../partials/analytics.js"; import { footer } from "../partials/footer.js"; import { header } from "../partials/header.js"; import { navigation } from "../partials/navigation.js"; import { getConfigData, hasTypeParameters, join } from "../utils/lib.js"; import { localize } from 'typedoc-plugin-localization'; export const defaultLayout = (context, template, props) => { const defaultEnUrl = getConfigData(context, 'typedoc_default_url', 'en'); const defaultJpUrl = getConfigData(context, 'typedoc_default_url', 'jp'); const baseUrl = getConfigData(context, 'url'); const apiJsonFile = getConfigData(context, 'versions'); const searchPath = getConfigData(context, 'assets/js/search.json'); const defaultUrl = getConfigData(context, 'typedoc_default_url'); const gaID = getConfigData(context, 'gaID'); return (JSX.createElement("html", { class: "default no-js", lang: "en" }, JSX.createElement("head", null, JSX.createElement("meta", { charset: "utf-8" }), context.hook("head.begin", context), JSX.createElement("meta", { "http-equiv": "x-ua-compatible", content: "IE=edge" }), JSX.createElement("title", null, props.model.name === props.project.name ? props.project.name : `${props.model.name} | ${props.project.name}`), JSX.createElement("meta", { name: "description" }), JSX.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1" }), context.options.getValue('localize') === 'en' ? JSX.createElement("link", { rel: "canonical", href: defaultEnUrl }) : JSX.createElement("link", { rel: "canonical", href: defaultJpUrl }), JSX.createElement("link", { rel: "alternate", href: defaultEnUrl, hreflang: "en" }), JSX.createElement("link", { rel: "alternate", href: defaultEnUrl, hreflang: "en-us" }), JSX.createElement("link", { rel: "alternate", href: defaultJpUrl, hreflang: "ja" }), JSX.createElement("link", { rel: "alternate", href: defaultJpUrl, hreflang: "ja-jp" }), JSX.createElement("link", { rel: "alternate", href: defaultEnUrl, hreflang: "x-default" }), JSX.createElement("link", { rel: "stylesheet", href: "https://infragistics.com/assets/modern/css/layout.css" }), JSX.createElement("link", { rel: "stylesheet", href: "https://infragistics.com/assets/modern/css/animate-custom.css" }), JSX.createElement("link", { rel: "stylesheet", href: "https://infragistics.com/assets/modern/css/fontello.css" }), JSX.createElement("link", { rel: "stylesheet", href: "https://infragistics.com/css/navigation.css" }), JSX.createElement("link", { rel: "stylesheet", href: "https://infragistics.com/css/footer.css" }), JSX.createElement("link", { href: "https://fonts.googleapis.com/icon?family=Material+Icons", rel: "stylesheet" }), JSX.createElement("link", { rel: "stylesheet", href: "https://use.typekit.net/zhy2hpz.css" }), JSX.createElement("link", { rel: "stylesheet", href: context.relativeURL("assets/css/main.css") }), JSX.createElement("script", { async: true, src: context.relativeURL("assets/search.js"), id: "search-script" }), analytics(context), context.hook("head.end", context)), JSX.createElement("body", { id: "body", "data-base-url": baseUrl, "data-api-versions-json": apiJsonFile, "default-url": defaultUrl }, context.hook('body.begin', context), JSX.createElement("noscript", null, JSX.createElement("iframe", { src: `https://www.googletagmanager.com/ns.html?id=${gaID}`, height: 0, width: 0, style: "display:none;visibility:hidden" })), header(context, props), JSX.createElement("div", { class: "container container-main" }, JSX.createElement("div", { class: "row" }, JSX.createElement("div", { class: "col-2 col-menu menu-sticky-wrap menu-highlight" }, JSX.createElement("div", { class: "table-cell", id: "tsd-search", "data-index": searchPath, "data-base": context.relativeURL("./") }, JSX.createElement("div", { class: "field" }, JSX.createElement("label", { for: "tsd-search-field", class: "material-icons" }, "search"), JSX.createElement("input", { id: "tsd-search-field", type: "text", placeholder: localize('Search API') })), JSX.createElement("ul", { class: "results" }, JSX.createElement("li", { class: "state loading" }, "Preparing search index..."), JSX.createElement("li", { class: "state failure" }, "The search index is not available"))), JSX.createElement("div", { id: "tsd-filter" }, JSX.createElement("div", { class: "tsd-filter-group" }, JSX.createElement("div", { class: "tsd-select", id: "tsd-filter-visibility" }, JSX.createElement("span", { class: "tsd-select-label" }, localize('All')), JSX.createElement("ul", { class: "tsd-select-list" }, JSX.createElement("li", { "data-value": "public" }, localize('Public')), JSX.createElement("li", { "data-value": "protected" }, localize('Public/Protected')), JSX.createElement("li", { "data-value": "private", class: "selected" }, localize('All')))), JSX.createElement("input", { type: "checkbox", id: "tsd-filter-inherited", checked: true }), JSX.createElement("label", { class: "tsd-widget", for: "tsd-filter-inherited" }, localize('Inherited')), !context.options.getValue("excludeExternals") && (JSX.createElement(JSX.Fragment, null, JSX.createElement("input", { type: "checkbox", id: "tsd-filter-externals", checked: true }), JSX.createElement("label", { class: "tsd-widget", for: "tsd-filter-externals" }, localize('Externals')))), !context.options.getValue("excludeExternals") && (JSX.createElement(JSX.Fragment, null, JSX.createElement("input", { type: "checkbox", id: "tsd-filter-externals" }), JSX.createElement("label", { class: "tsd-widget", for: "tsd-filter-only-exported" }, localize('Only exported')))))), navigation(context, props)), JSX.createElement("div", { class: "col-10 col-content" }, JSX.createElement("div", { class: "tsd-page-title" }, JSX.createElement("div", { class: "container" }, !!props.model.parent && JSX.createElement("ul", { class: "tsd-breadcrumb" }, context.breadcrumb(props.model)), JSX.createElement("h1", null, ReflectionKind.singularString(props.model.kind) !== "Project" && `${ReflectionKind.singularString(props.model.kind) ?? ""} `, props.model.name, hasTypeParameters(props.model) && (JSX.createElement(JSX.Fragment, null, "<", join(", ", props.model.typeParameters, (item) => item.name), ">"))))), template(props)))), footer(context, props), JSX.createElement("div", { class: "overlay" }), JSX.createElement("script", { type: "text/javascript", src: "https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" }), JSX.createElement("script", { type: "text/javascript", src: "https://code.jquery.com/jquery-2.1.4.min.js", integrity: "sha256-8WqyJLuWKRBVhxXIL1jBDD7SDxU936oZkCnxQbWwJVw=", crossOrigin: "anonymous" }), JSX.createElement("script", { type: "text/javascript", src: "https://infragistics.com/assets/modern/scripts/jquery-migrate.min.js" }), JSX.createElement("script", { type: "text/javascript", src: "https://www.infragistics.com/assets/modern/scripts/plugins.nav.js" }), JSX.createElement("script", { type: "text/javascript", src: "https://www.infragistics.com/assets/modern/scripts/navigation.js" }), JSX.createElement("script", { src: "https://unpkg.com/lunr/lunr.js" }), JSX.createElement("script", { src: context.relativeURL("assets/main.js") }), context.hook("body.end", context)))); };