UNPKG

@codedoc/core

Version:

Create beautiful modern documentation websites.

45 lines 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.copyHeadings$ = exports.copyHeadings = void 0; var transport_1 = require("@connectv/sdh/transport"); var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); var renderer_1 = require("../../transport/renderer"); var clipboard_1 = require("../../transport/clipboard"); var toast_1 = require("../util/toast"); var heading_link_1 = require("./heading-link"); function copyHeadings() { var renderer = renderer_1.getRenderer(); transport_1.onReady(function () { var sub; var _exec = function () { if (sub) sub.unsubscribe(); sub = new rxjs_1.Subscription(); document.querySelectorAll('h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]').forEach(function (heading$) { var link = heading_link_1.headingLink(heading$); if (link) { var click$ = rxjs_1.fromEvent(heading$, 'mousedown').pipe(operators_1.filter(function (event) { return event.button === 0; }), operators_1.concatMap(function (start) { return rxjs_1.fromEvent(heading$, 'mouseup').pipe(operators_1.take(1), operators_1.map(function (end) { return [start, end]; })); })); sub.add(click$.pipe(operators_1.buffer(click$.pipe(operators_1.debounceTime(200))), operators_1.filter(function (buffer) { return buffer.length === 1; }), operators_1.map(function (buffer) { return buffer[0]; })) .subscribe(function (_a) { var start = _a[0], end = _a[1]; var _b = [start, end], ms = _b[0], me = _b[1]; var dx = ms.clientX - me.clientX; var dy = ms.clientY - me.clientY; if (Math.sqrt(dx * dx + dy * dy) < 10) { clipboard_1.copyToClipboard(link, function () { return renderer.render(renderer.create(toast_1.Toast, null, "Link Copied to Clipboard!")).on(document.body); }); } ; })); } }); }; _exec(); window.addEventListener('navigation', _exec); }); } exports.copyHeadings = copyHeadings; exports.copyHeadings$ = transport_1.funcTransport(copyHeadings); //# sourceMappingURL=copy-headings.js.map