UNPKG

@codedoc/core

Version:

Create beautiful modern documentation websites.

46 lines 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.codeLineHints$ = exports.initHintBox = void 0; var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); var transport_1 = require("@connectv/sdh/transport"); var renderer_1 = require("../../../transport/renderer"); var component_1 = require("./component"); var commentRegex = new RegExp([ /\/\/\s?\-\-\>\s*(.*[^\s])\s*$/, /\/\*\s?\-\-\>\s*(.*[^\s])\s*\*\/$/, /\#\s?\-\-\>\s*(.*[^\s])\s*$/, /\<\!\-\-\s?\>\s*(.*[^\s])\s*\-\-\>$/, ].map(function (r) { return "(?:" + r.source + ")"; }).join('|')); function initHintBox() { transport_1.onReady(function () { var renderer = renderer_1.getRenderer(); var target = new rxjs_1.Subject(); renderer.render(renderer.create(component_1.HintBox, { target: target })).on(document.body); var _exec = function () { document.querySelectorAll('pre>code>div').forEach(function (line$) { var hint = ''; var hint$; line$.querySelectorAll('.token.comment').forEach(function (comment$) { var match = commentRegex.exec(comment$.textContent || ''); if (match) { hint = match.slice(1).find(function (_) { return _; }) || hint; if (hint) hint$ = comment$; } }); if (hint.length > 0 && hint$) { hint$.style.opacity = '.5'; line$.setAttribute('data-hint', hint); rxjs_1.fromEvent(line$, 'mouseenter').pipe(operators_1.mapTo(line$)).subscribe(target); rxjs_1.fromEvent(line$, 'mouseleave').pipe(operators_1.mapTo(undefined)).subscribe(target); } }); }; _exec(); window.addEventListener('navigation', _exec); }); } exports.initHintBox = initHintBox; exports.codeLineHints$ = transport_1.funcTransport(initHintBox); //# sourceMappingURL=index.js.map