UNPKG

igniteui-typedoc-theme

Version:
46 lines (45 loc) 1.96 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.load = exports.IgTheme = exports.IgThemeRenderContext = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = require("fs-extra"); const typedoc_1 = require("typedoc"); const default_1 = require("./layouts/default"); const breadcrumb_1 = require("./partials/breadcrumb"); function bind(fn, first) { return (...r) => fn(first, ...r); } class IgThemeRenderContext extends typedoc_1.DefaultThemeRenderContext { constructor(theme, options) { super(theme, options); this.breadcrumb = bind(breadcrumb_1.breadcrumb, this); this.defaultLayout = (props) => { return ((0, default_1.defaultLayout)(this, props)); }; } } exports.IgThemeRenderContext = IgThemeRenderContext; ; class IgTheme extends typedoc_1.DefaultTheme { constructor(renderer) { super(renderer); renderer.on(typedoc_1.RendererEvent.END, async () => { const out = this.application.options.getValue('out'); await (0, fs_extra_1.copy)(path_1.default.join(process.cwd(), '/node_modules/igniteui-typedoc-theme/dist/assets'), path_1.default.join(out, '/assets')); }); } getRenderContext() { this._ctx || (this._ctx = new IgThemeRenderContext(this, this.application.options)); return this._ctx; } } exports.IgTheme = IgTheme; function load(app) { app.renderer.hooks.on('head.end', (context) => (typedoc_1.JSX.createElement("link", { rel: 'stylesheet', href: context.relativeURL('assets/css/main.css') }))); app.renderer.hooks.on('body.end', (context) => (typedoc_1.JSX.createElement("script", { src: context.relativeURL('assets/common.js') }))); app.renderer.defineTheme('igtheme', IgTheme); } exports.load = load;