"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;