@codedoc/core
Version:
Create beautiful modern documentation websites.
64 lines • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.linkedLines = exports.lineLink = void 0;
function lineLink(line$) {
var _a, _b;
if (line$.getAttribute('id')) {
if (line$.classList.contains('selected')) {
var ranges_1 = [];
var current_1 = undefined;
(_a = line$.parentElement) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.-codedoc-code-line').forEach(function (line$, index) {
if (line$.classList.contains('selected')) {
if (!current_1) {
current_1 = [index, index];
}
else {
current_1[1] = index;
}
}
else {
if (current_1) {
ranges_1.push(current_1);
current_1 = undefined;
}
}
});
if (current_1) {
ranges_1.push(current_1);
current_1 = undefined;
}
return window.location.toString().split('#')[0] + '#'
+ ((_b = line$.getAttribute('id')) === null || _b === void 0 ? void 0 : _b.split('-')[0]) + '-'
+ ranges_1.map(function (range) { return range[0] === range[1] ? "l" + (range[0] + 1) : "l" + (range[0] + 1) + ":l" + (range[1] + 1); }).join('-');
}
else
return window.location.toString().split('#')[0] + '#' + line$.getAttribute('id');
}
}
exports.lineLink = lineLink;
function linkedLines() {
var segment = window.location.toString().split('#')[1];
if (segment && segment.startsWith('code')) {
var parts_1 = segment.split('-');
var lines_1 = [];
parts_1.slice(1).forEach(function (part) {
var range = part.split(':').map(function (tag) { return parseInt(tag.substr(1)); });
if (range.length === 2) {
for (var i = range[0]; i <= range[1]; i++) {
var candidate = document.querySelector("#" + parts_1[0] + "-l" + i);
if (candidate)
lines_1.push(candidate);
}
}
else {
var candidate = document.querySelector("#" + parts_1[0] + "-l" + range[0]);
if (candidate)
lines_1.push(candidate);
}
});
return lines_1;
}
return [];
}
exports.linkedLines = linkedLines;
//# sourceMappingURL=line-link.js.map