UNPKG

@taiga-ui/addon-doc

Version:

Taiga UI based library for developing documentation portals for Angular libraries.

26 lines 4.22 kB
import { tuiIsRoutePageGroup } from './is-page-group'; export function tuiSortPages(pages, excludeSections = new Set()) { const sections = Array.from(new Set(pages.map((page) => page.section))); const sortedPages = pages.slice().sort((a, b) => { if (excludeSections.has(a.section ?? '') || excludeSections.has(b.section ?? '')) { return 0; } const aSectionIndex = sections.indexOf(a.section); const bSectionIndex = sections.indexOf(b.section); if (aSectionIndex !== bSectionIndex) { return aSectionIndex - bSectionIndex; } if (a.title > b.title) { return 1; } return a.title.localeCompare(b.title); }); return sortedPages.map((page) => tuiIsRoutePageGroup(page) ? { ...page, subPages: tuiSortPages(page.subPages, excludeSections), } : page); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1wYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWRvYy91dGlscy9zb3J0LXBhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE1BQU0sVUFBVSxZQUFZLENBQ3hCLEtBQW1CLEVBQ25CLGtCQUFrQixJQUFJLEdBQUcsRUFBVTtJQUVuQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1QyxJQUNJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUN0QztZQUNFLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7UUFFRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsRCxJQUFJLGFBQWEsS0FBSyxhQUFhLEVBQUU7WUFDakMsT0FBTyxhQUFhLEdBQUcsYUFBYSxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDbkIsT0FBTyxDQUFDLENBQUM7U0FDWjtRQUVELE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDNUIsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztZQUNJLEdBQUcsSUFBSTtZQUNQLFFBQVEsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7U0FDekQ7UUFDSCxDQUFDLENBQUMsSUFBSSxDQUNiLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1R1aURvY1JvdXRlUGFnZSwgVHVpRG9jUm91dGVQYWdlR3JvdXB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdHlwZXMnO1xuXG5pbXBvcnQge3R1aUlzUm91dGVQYWdlR3JvdXB9IGZyb20gJy4vaXMtcGFnZS1ncm91cCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlTb3J0UGFnZXM8VCBleHRlbmRzIFR1aURvY1JvdXRlUGFnZSB8IFR1aURvY1JvdXRlUGFnZUdyb3VwPihcbiAgICBwYWdlczogcmVhZG9ubHkgVFtdLFxuICAgIGV4Y2x1ZGVTZWN0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpLFxuKTogcmVhZG9ubHkgVFtdIHtcbiAgICBjb25zdCBzZWN0aW9ucyA9IEFycmF5LmZyb20obmV3IFNldChwYWdlcy5tYXAoKHBhZ2UpID0+IHBhZ2Uuc2VjdGlvbikpKTtcblxuICAgIGNvbnN0IHNvcnRlZFBhZ2VzID0gcGFnZXMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGV4Y2x1ZGVTZWN0aW9ucy5oYXMoYS5zZWN0aW9uID8/ICcnKSB8fFxuICAgICAgICAgICAgZXhjbHVkZVNlY3Rpb25zLmhhcyhiLnNlY3Rpb24gPz8gJycpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhU2VjdGlvbkluZGV4ID0gc2VjdGlvbnMuaW5kZXhPZihhLnNlY3Rpb24pO1xuICAgICAgICBjb25zdCBiU2VjdGlvbkluZGV4ID0gc2VjdGlvbnMuaW5kZXhPZihiLnNlY3Rpb24pO1xuXG4gICAgICAgIGlmIChhU2VjdGlvbkluZGV4ICE9PSBiU2VjdGlvbkluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gYVNlY3Rpb25JbmRleCAtIGJTZWN0aW9uSW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYS50aXRsZSA+IGIudGl0bGUpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGEudGl0bGUubG9jYWxlQ29tcGFyZShiLnRpdGxlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzb3J0ZWRQYWdlcy5tYXAoKHBhZ2UpID0+XG4gICAgICAgIHR1aUlzUm91dGVQYWdlR3JvdXAocGFnZSlcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgLi4ucGFnZSxcbiAgICAgICAgICAgICAgICAgIHN1YlBhZ2VzOiB0dWlTb3J0UGFnZXMocGFnZS5zdWJQYWdlcywgZXhjbHVkZVNlY3Rpb25zKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBwYWdlLFxuICAgICk7XG59XG4iXX0=