UNPKG

10.4 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3function byPath(descriptor) {
4 return descriptor.path;
5}
6function visible(descriptor) {
7 return !descriptor.hidden;
8}
9function buildDescriptorsFromTree(root) {
10 var pages = [];
11 var folders = [];
12 var pathTree = [];
13 var filteredPathTree = [];
14 buildPageFolderTree(root, pages, folders, pathTree, filteredPathTree, []);
15 var folderContents = buildFolderContents(folders.map(byPath), pages.map(byPath));
16 var filteredFolderContents = buildFolderContents(folders.map(byPath), pages.filter(visible).map(byPath));
17 return { pages: pages, folders: folders, pathTree: pathTree, folderContents: folderContents, filteredPathTree: filteredPathTree, filteredFolderContents: filteredFolderContents };
18}
19exports.buildDescriptorsFromTree = buildDescriptorsFromTree;
20function buildPageFolderTree(root, pages, folders, pathTree, filteredPathTree, chain) {
21 pathTree.push(chain.join('/'));
22 filteredPathTree.push(chain.join('/'));
23 for (var _i = 0, _a = Object.keys(root); _i < _a.length; _i++) {
24 var path = _a[_i];
25 var newChain = chain.concat(path);
26 var absolutePath = newChain.join('/');
27 if (root[path].contents) {
28 var folder = root[path];
29 folder.path = absolutePath;
30 var newPathTree = [];
31 var newFilteredPathTree = [];
32 pathTree.push(newPathTree);
33 folders.push(folder);
34 buildPageFolderTree(folder.contents, pages, folders, newPathTree, newFilteredPathTree, newChain);
35 if (newFilteredPathTree.length > 1) {
36 filteredPathTree.push(newFilteredPathTree);
37 }
38 }
39 else {
40 var page = root[path];
41 page.path = absolutePath;
42 pathTree.push(absolutePath);
43 if (!page.hidden) {
44 filteredPathTree.push(absolutePath);
45 }
46 pages.push(page);
47 }
48 }
49}
50function buildFolderContents(folders, pages) {
51 var folderContents = {};
52 folderContents[''] = pages.slice();
53 for (var _i = 0, folders_1 = folders; _i < folders_1.length; _i++) {
54 var folder = folders_1[_i];
55 folderContents[folder] = [];
56 for (var _a = 0, pages_1 = pages; _a < pages_1.length; _a++) {
57 var page = pages_1[_a];
58 if (page.indexOf(folder) !== -1) {
59 folderContents[folder].push(page);
60 }
61 }
62 folderContents[folder].sort();
63 }
64 return folderContents;
65}
66//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGREZXNjcmlwdG9yc0Zyb21UcmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2J1aWxkRGVzY3JpcHRvcnNGcm9tVHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLGdCQUFnQixVQUE2QjtJQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztBQUN6QixDQUFDO0FBRUQsaUJBQWlCLFVBQWdCO0lBQy9CLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7QUFDNUIsQ0FBQztBQUVELGtDQUNFLElBQXFCO0lBRXJCLElBQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUN6QixJQUFNLE9BQU8sR0FBaUIsRUFBRSxDQUFDO0lBQ2pDLElBQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM5QixJQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUV0QyxtQkFBbUIsQ0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0UsSUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkYsSUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQ2xDLENBQUM7SUFFRixNQUFNLENBQUMsRUFBRSxLQUFLLE9BQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxRQUFRLFVBQUEsRUFBRSxjQUFjLGdCQUFBLEVBQUUsZ0JBQWdCLGtCQUFBLEVBQUUsc0JBQXNCLHdCQUFBLEVBQUUsQ0FBQztBQUNoRyxDQUFDO0FBakJELDREQWlCQztBQUVE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LGNBQWMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZUZvbGRlciwgUGF0aFRyZWUsIFBhZ2VUcmVlTm9kZSwgUGFnZSwgVmFsaWRUcmVlTm9kZSB9IGZyb20gJy4vcGFnZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9ycyB7XHJcbiAgcGFnZXM6IFBhZ2U8YW55LCBhbnk+W107XHJcbiAgZm9sZGVyczogUGFnZUZvbGRlcltdO1xyXG4gIHBhdGhUcmVlOiBQYXRoVHJlZTtcclxuICBmb2xkZXJDb250ZW50czogeyBbZm9sZGVyOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIGZpbHRlcmVkUGF0aFRyZWU6IFBhdGhUcmVlO1xyXG4gIGZpbHRlcmVkRm9sZGVyQ29udGVudHM6IHsgW2ZvbGRlcjogc3RyaW5nXTogc3RyaW5nW10gfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYnlQYXRoKGRlc2NyaXB0b3I6IFBhZ2VGb2xkZXIgfCBQYWdlKSB7XHJcbiAgcmV0dXJuIGRlc2NyaXB0b3IucGF0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gdmlzaWJsZShkZXNjcmlwdG9yOiBQYWdlKSB7XHJcbiAgcmV0dXJuICFkZXNjcmlwdG9yLmhpZGRlbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRvcnNGcm9tVHJlZTxUIGV4dGVuZHMgVmFsaWRUcmVlTm9kZT4oXHJcbiAgcm9vdDogUGFnZVRyZWVOb2RlPFQ+LFxyXG4pOiBEZXNjcmlwdG9ycyB7XHJcbiAgY29uc3QgcGFnZXM6IFBhZ2VbXSA9IFtdO1xyXG4gIGNvbnN0IGZvbGRlcnM6IFBhZ2VGb2xkZXJbXSA9IFtdO1xyXG4gIGNvbnN0IHBhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gIGNvbnN0IGZpbHRlcmVkUGF0aFRyZWU6IFBhdGhUcmVlID0gW107XHJcblxyXG4gIGJ1aWxkUGFnZUZvbGRlclRyZWU8VD4ocm9vdCwgcGFnZXMsIGZvbGRlcnMsIHBhdGhUcmVlLCBmaWx0ZXJlZFBhdGhUcmVlLCBbXSk7XHJcblxyXG4gIGNvbnN0IGZvbGRlckNvbnRlbnRzID0gYnVpbGRGb2xkZXJDb250ZW50cyhmb2xkZXJzLm1hcChieVBhdGgpLCBwYWdlcy5tYXAoYnlQYXRoKSk7XHJcbiAgY29uc3QgZmlsdGVyZWRGb2xkZXJDb250ZW50cyA9IGJ1aWxkRm9sZGVyQ29udGVudHMoXHJcbiAgICBmb2xkZXJzLm1hcChieVBhdGgpLFxyXG4gICAgcGFnZXMuZmlsdGVyKHZpc2libGUpLm1hcChieVBhdGgpLFxyXG4gICk7XHJcblxyXG4gIHJldHVybiB7IHBhZ2VzLCBmb2xkZXJzLCBwYXRoVHJlZSwgZm9sZGVyQ29udGVudHMsIGZpbHRlcmVkUGF0aFRyZWUsIGZpbHRlcmVkRm9sZGVyQ29udGVudHMgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYnVpbGRQYWdlRm9sZGVyVHJlZTxUIGV4dGVuZHMgVmFsaWRUcmVlTm9kZT4oXHJcbiAgcm9vdDogUGFnZVRyZWVOb2RlPFQ+LFxyXG4gIHBhZ2VzOiBQYWdlW10sXHJcbiAgZm9sZGVyczogUGFnZUZvbGRlcltdLFxyXG4gIHBhdGhUcmVlOiBQYXRoVHJlZSxcclxuICBmaWx0ZXJlZFBhdGhUcmVlOiBQYXRoVHJlZSxcclxuICBjaGFpbjogc3RyaW5nW10sXHJcbik6IHZvaWQge1xyXG5cclxuICBwYXRoVHJlZS5wdXNoKGNoYWluLmpvaW4oJy8nKSk7XHJcbiAgZmlsdGVyZWRQYXRoVHJlZS5wdXNoKGNoYWluLmpvaW4oJy8nKSk7XHJcblxyXG4gIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyhyb290KSkge1xyXG4gICAgY29uc3QgbmV3Q2hhaW4gPSBjaGFpbi5jb25jYXQocGF0aCk7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBuZXdDaGFpbi5qb2luKCcvJyk7XHJcblxyXG4gICAgaWYgKCg8UGFnZUZvbGRlcj5yb290W3BhdGhdKS5jb250ZW50cykge1xyXG4gICAgICBjb25zdCBmb2xkZXIgPSA8UGFnZUZvbGRlcj5yb290W3BhdGhdO1xyXG4gICAgICBmb2xkZXIucGF0aCA9IGFic29sdXRlUGF0aDtcclxuXHJcbiAgICAgIGNvbnN0IG5ld1BhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gICAgICBjb25zdCBuZXdGaWx0ZXJlZFBhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gICAgICBwYXRoVHJlZS5wdXNoKG5ld1BhdGhUcmVlKTtcclxuXHJcbiAgICAgIGZvbGRlcnMucHVzaChmb2xkZXIpO1xyXG5cclxuICAgICAgYnVpbGRQYWdlRm9sZGVyVHJlZShcclxuICAgICAgICBmb2xkZXIuY29udGVudHMsXHJcbiAgICAgICAgcGFnZXMsXHJcbiAgICAgICAgZm9sZGVycyxcclxuICAgICAgICBuZXdQYXRoVHJlZSxcclxuICAgICAgICBuZXdGaWx0ZXJlZFBhdGhUcmVlLFxyXG4gICAgICAgIG5ld0NoYWluLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKG5ld0ZpbHRlcmVkUGF0aFRyZWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGZpbHRlcmVkUGF0aFRyZWUucHVzaChuZXdGaWx0ZXJlZFBhdGhUcmVlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhZ2UgPSA8UGFnZT5yb290W3BhdGhdO1xyXG4gICAgICBwYWdlLnBhdGggPSBhYnNvbHV0ZVBhdGg7XHJcblxyXG4gICAgICBwYXRoVHJlZS5wdXNoKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBpZiAoIXBhZ2UuaGlkZGVuKSB7XHJcbiAgICAgICAgZmlsdGVyZWRQYXRoVHJlZS5wdXNoKGFic29sdXRlUGF0aCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBidWlsZEZvbGRlckNvbnRlbnRzKGZvbGRlcnM6IHN0cmluZ1tdLCBwYWdlczogc3RyaW5nW10pOiB7IFtmb2xkZXI6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xyXG4gIGNvbnN0IGZvbGRlckNvbnRlbnRzOiB7IFtmb2xkZXI6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcclxuXHJcbiAgZm9sZGVyQ29udGVudHNbJyddID0gcGFnZXMuc2xpY2UoKTtcclxuXHJcbiAgZm9yIChjb25zdCBmb2xkZXIgb2YgZm9sZGVycykge1xyXG4gICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgcGFnZSBvZiBwYWdlcykge1xyXG4gICAgICBpZiAocGFnZS5pbmRleE9mKGZvbGRlcikgIT09IC0xKSB7XHJcbiAgICAgICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXS5wdXNoKHBhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXS5zb3J0KCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZm9sZGVyQ29udGVudHM7XHJcbn1cclxuIl19
\No newline at end of file