UNPKG

pretur.navigation

Version:
66 lines 10.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function byPath(descriptor) { return descriptor.path; } function visible(descriptor) { return !descriptor.hidden; } function buildDescriptorsFromTree(root) { var pages = []; var folders = []; var pathTree = []; var filteredPathTree = []; buildPageFolderTree(root, pages, folders, pathTree, filteredPathTree, []); var folderContents = buildFolderContents(folders.map(byPath), pages.map(byPath)); var filteredFolderContents = buildFolderContents(folders.map(byPath), pages.filter(visible).map(byPath)); return { pages: pages, folders: folders, pathTree: pathTree, folderContents: folderContents, filteredPathTree: filteredPathTree, filteredFolderContents: filteredFolderContents }; } exports.buildDescriptorsFromTree = buildDescriptorsFromTree; function buildPageFolderTree(root, pages, folders, pathTree, filteredPathTree, chain) { pathTree.push(chain.join('/')); filteredPathTree.push(chain.join('/')); for (var _i = 0, _a = Object.keys(root); _i < _a.length; _i++) { var path = _a[_i]; var newChain = chain.concat(path); var absolutePath = newChain.join('/'); if (root[path].contents) { var folder = root[path]; folder.path = absolutePath; var newPathTree = []; var newFilteredPathTree = []; pathTree.push(newPathTree); folders.push(folder); buildPageFolderTree(folder.contents, pages, folders, newPathTree, newFilteredPathTree, newChain); if (newFilteredPathTree.length > 1) { filteredPathTree.push(newFilteredPathTree); } } else { var page = root[path]; page.path = absolutePath; pathTree.push(absolutePath); if (!page.hidden) { filteredPathTree.push(absolutePath); } pages.push(page); } } } function buildFolderContents(folders, pages) { var folderContents = {}; folderContents[''] = pages.slice(); for (var _i = 0, folders_1 = folders; _i < folders_1.length; _i++) { var folder = folders_1[_i]; folderContents[folder] = []; for (var _a = 0, pages_1 = pages; _a < pages_1.length; _a++) { var page = pages_1[_a]; if (page.indexOf(folder) !== -1) { folderContents[folder].push(page); } } folderContents[folder].sort(); } return folderContents; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGREZXNjcmlwdG9yc0Zyb21UcmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2J1aWxkRGVzY3JpcHRvcnNGcm9tVHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLGdCQUFnQixVQUE2QjtJQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztBQUN6QixDQUFDO0FBRUQsaUJBQWlCLFVBQWdCO0lBQy9CLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7QUFDNUIsQ0FBQztBQUVELGtDQUNFLElBQXFCO0lBRXJCLElBQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUN6QixJQUFNLE9BQU8sR0FBaUIsRUFBRSxDQUFDO0lBQ2pDLElBQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM5QixJQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUV0QyxtQkFBbUIsQ0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0UsSUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkYsSUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQ2xDLENBQUM7SUFFRixNQUFNLENBQUMsRUFBRSxLQUFLLE9BQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxRQUFRLFVBQUEsRUFBRSxjQUFjLGdCQUFBLEVBQUUsZ0JBQWdCLGtCQUFBLEVBQUUsc0JBQXNCLHdCQUFBLEVBQUUsQ0FBQztBQUNoRyxDQUFDO0FBakJELDREQWlCQztBQUVE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LGNBQWMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZUZvbGRlciwgUGF0aFRyZWUsIFBhZ2VUcmVlTm9kZSwgUGFnZSwgVmFsaWRUcmVlTm9kZSB9IGZyb20gJy4vcGFnZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9ycyB7XHJcbiAgcGFnZXM6IFBhZ2U8YW55LCBhbnk+W107XHJcbiAgZm9sZGVyczogUGFnZUZvbGRlcltdO1xyXG4gIHBhdGhUcmVlOiBQYXRoVHJlZTtcclxuICBmb2xkZXJDb250ZW50czogeyBbZm9sZGVyOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIGZpbHRlcmVkUGF0aFRyZWU6IFBhdGhUcmVlO1xyXG4gIGZpbHRlcmVkRm9sZGVyQ29udGVudHM6IHsgW2ZvbGRlcjogc3RyaW5nXTogc3RyaW5nW10gfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYnlQYXRoKGRlc2NyaXB0b3I6IFBhZ2VGb2xkZXIgfCBQYWdlKSB7XHJcbiAgcmV0dXJuIGRlc2NyaXB0b3IucGF0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gdmlzaWJsZShkZXNjcmlwdG9yOiBQYWdlKSB7XHJcbiAgcmV0dXJuICFkZXNjcmlwdG9yLmhpZGRlbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRvcnNGcm9tVHJlZTxUIGV4dGVuZHMgVmFsaWRUcmVlTm9kZT4oXHJcbiAgcm9vdDogUGFnZVRyZWVOb2RlPFQ+LFxyXG4pOiBEZXNjcmlwdG9ycyB7XHJcbiAgY29uc3QgcGFnZXM6IFBhZ2VbXSA9IFtdO1xyXG4gIGNvbnN0IGZvbGRlcnM6IFBhZ2VGb2xkZXJbXSA9IFtdO1xyXG4gIGNvbnN0IHBhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gIGNvbnN0IGZpbHRlcmVkUGF0aFRyZWU6IFBhdGhUcmVlID0gW107XHJcblxyXG4gIGJ1aWxkUGFnZUZvbGRlclRyZWU8VD4ocm9vdCwgcGFnZXMsIGZvbGRlcnMsIHBhdGhUcmVlLCBmaWx0ZXJlZFBhdGhUcmVlLCBbXSk7XHJcblxyXG4gIGNvbnN0IGZvbGRlckNvbnRlbnRzID0gYnVpbGRGb2xkZXJDb250ZW50cyhmb2xkZXJzLm1hcChieVBhdGgpLCBwYWdlcy5tYXAoYnlQYXRoKSk7XHJcbiAgY29uc3QgZmlsdGVyZWRGb2xkZXJDb250ZW50cyA9IGJ1aWxkRm9sZGVyQ29udGVudHMoXHJcbiAgICBmb2xkZXJzLm1hcChieVBhdGgpLFxyXG4gICAgcGFnZXMuZmlsdGVyKHZpc2libGUpLm1hcChieVBhdGgpLFxyXG4gICk7XHJcblxyXG4gIHJldHVybiB7IHBhZ2VzLCBmb2xkZXJzLCBwYXRoVHJlZSwgZm9sZGVyQ29udGVudHMsIGZpbHRlcmVkUGF0aFRyZWUsIGZpbHRlcmVkRm9sZGVyQ29udGVudHMgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYnVpbGRQYWdlRm9sZGVyVHJlZTxUIGV4dGVuZHMgVmFsaWRUcmVlTm9kZT4oXHJcbiAgcm9vdDogUGFnZVRyZWVOb2RlPFQ+LFxyXG4gIHBhZ2VzOiBQYWdlW10sXHJcbiAgZm9sZGVyczogUGFnZUZvbGRlcltdLFxyXG4gIHBhdGhUcmVlOiBQYXRoVHJlZSxcclxuICBmaWx0ZXJlZFBhdGhUcmVlOiBQYXRoVHJlZSxcclxuICBjaGFpbjogc3RyaW5nW10sXHJcbik6IHZvaWQge1xyXG5cclxuICBwYXRoVHJlZS5wdXNoKGNoYWluLmpvaW4oJy8nKSk7XHJcbiAgZmlsdGVyZWRQYXRoVHJlZS5wdXNoKGNoYWluLmpvaW4oJy8nKSk7XHJcblxyXG4gIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyhyb290KSkge1xyXG4gICAgY29uc3QgbmV3Q2hhaW4gPSBjaGFpbi5jb25jYXQocGF0aCk7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBuZXdDaGFpbi5qb2luKCcvJyk7XHJcblxyXG4gICAgaWYgKCg8UGFnZUZvbGRlcj5yb290W3BhdGhdKS5jb250ZW50cykge1xyXG4gICAgICBjb25zdCBmb2xkZXIgPSA8UGFnZUZvbGRlcj5yb290W3BhdGhdO1xyXG4gICAgICBmb2xkZXIucGF0aCA9IGFic29sdXRlUGF0aDtcclxuXHJcbiAgICAgIGNvbnN0IG5ld1BhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gICAgICBjb25zdCBuZXdGaWx0ZXJlZFBhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gICAgICBwYXRoVHJlZS5wdXNoKG5ld1BhdGhUcmVlKTtcclxuXHJcbiAgICAgIGZvbGRlcnMucHVzaChmb2xkZXIpO1xyXG5cclxuICAgICAgYnVpbGRQYWdlRm9sZGVyVHJlZShcclxuICAgICAgICBmb2xkZXIuY29udGVudHMsXHJcbiAgICAgICAgcGFnZXMsXHJcbiAgICAgICAgZm9sZGVycyxcclxuICAgICAgICBuZXdQYXRoVHJlZSxcclxuICAgICAgICBuZXdGaWx0ZXJlZFBhdGhUcmVlLFxyXG4gICAgICAgIG5ld0NoYWluLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKG5ld0ZpbHRlcmVkUGF0aFRyZWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGZpbHRlcmVkUGF0aFRyZWUucHVzaChuZXdGaWx0ZXJlZFBhdGhUcmVlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhZ2UgPSA8UGFnZT5yb290W3BhdGhdO1xyXG4gICAgICBwYWdlLnBhdGggPSBhYnNvbHV0ZVBhdGg7XHJcblxyXG4gICAgICBwYXRoVHJlZS5wdXNoKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBpZiAoIXBhZ2UuaGlkZGVuKSB7XHJcbiAgICAgICAgZmlsdGVyZWRQYXRoVHJlZS5wdXNoKGFic29sdXRlUGF0aCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBidWlsZEZvbGRlckNvbnRlbnRzKGZvbGRlcnM6IHN0cmluZ1tdLCBwYWdlczogc3RyaW5nW10pOiB7IFtmb2xkZXI6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xyXG4gIGNvbnN0IGZvbGRlckNvbnRlbnRzOiB7IFtmb2xkZXI6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcclxuXHJcbiAgZm9sZGVyQ29udGVudHNbJyddID0gcGFnZXMuc2xpY2UoKTtcclxuXHJcbiAgZm9yIChjb25zdCBmb2xkZXIgb2YgZm9sZGVycykge1xyXG4gICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgcGFnZSBvZiBwYWdlcykge1xyXG4gICAgICBpZiAocGFnZS5pbmRleE9mKGZvbGRlcikgIT09IC0xKSB7XHJcbiAgICAgICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXS5wdXNoKHBhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXS5zb3J0KCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZm9sZGVyQ29udGVudHM7XHJcbn1cclxuIl19