fix
This commit is contained in:
47
book/node_modules/honkit/lib/modifiers/summary/insertArticle.js
generated
vendored
Normal file
47
book/node_modules/honkit/lib/modifiers/summary/insertArticle.js
generated
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const is_1 = __importDefault(require("is"));
|
||||
const summaryArticle_1 = __importDefault(require("../../models/summaryArticle"));
|
||||
const mergeAtLevel_1 = __importDefault(require("./mergeAtLevel"));
|
||||
const indexArticleLevels_1 = __importDefault(require("./indexArticleLevels"));
|
||||
/**
|
||||
Returns a new Summary with the article at the given level, with
|
||||
subsequent article shifted.
|
||||
|
||||
@param {Summary} summary
|
||||
@param {Article} article
|
||||
@param {String|Article} level: level to insert at
|
||||
@return {Summary}
|
||||
*/
|
||||
function insertArticle(summary, article, level) {
|
||||
article = new summaryArticle_1.default(article);
|
||||
level = is_1.default.string(level) ? level : level.getLevel();
|
||||
let parent = summary.getParent(level);
|
||||
if (!parent) {
|
||||
return summary;
|
||||
}
|
||||
// Find the index to insert at
|
||||
let articles = parent.getArticles();
|
||||
const index = getLeafIndex(level);
|
||||
// Insert the article at the right index
|
||||
articles = articles.insert(index, article);
|
||||
// Reindex the level from here
|
||||
parent = parent.set("articles", articles);
|
||||
// @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
|
||||
parent = (0, indexArticleLevels_1.default)(parent);
|
||||
return (0, mergeAtLevel_1.default)(summary, parent.getLevel(), parent);
|
||||
}
|
||||
/**
|
||||
@param {string}
|
||||
@return {number} The index of this level within its parent's children
|
||||
*/
|
||||
function getLeafIndex(level) {
|
||||
const arr = level.split(".").map((char) => {
|
||||
return parseInt(char, 10);
|
||||
});
|
||||
return arr[arr.length - 1] - 1;
|
||||
}
|
||||
exports.default = insertArticle;
|
Reference in New Issue
Block a user