37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
"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 mergeAtLevel_1 = __importDefault(require("./mergeAtLevel"));
|
|
const indexArticleLevels_1 = __importDefault(require("./indexArticleLevels"));
|
|
/**
|
|
Remove an article from a level.
|
|
|
|
@param {Summary} summary
|
|
@param {String|SummaryArticle} level: level to remove
|
|
@return {Summary}
|
|
*/
|
|
function removeArticle(summary, level) {
|
|
// Coerce to level
|
|
level = is_1.default.string(level) ? level : level.getLevel();
|
|
let parent = summary.getParent(level);
|
|
let articles = parent.getArticles();
|
|
// Find the index to remove
|
|
const index = articles.findIndex((art) => {
|
|
return art.getLevel() === level;
|
|
});
|
|
if (index === -1) {
|
|
return summary;
|
|
}
|
|
// Remove from children
|
|
articles = articles.remove(index);
|
|
parent = parent.set("articles", articles);
|
|
// Reindex the level from here
|
|
// @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);
|
|
}
|
|
exports.default = removeArticle;
|