1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | function byPath(descriptor) {
|
4 | return descriptor.path;
|
5 | }
|
6 | function visible(descriptor) {
|
7 | return !descriptor.hidden;
|
8 | }
|
9 | function 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 | }
|
19 | exports.buildDescriptorsFromTree = buildDescriptorsFromTree;
|
20 | function 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 | }
|
50 | function 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGREZXNjcmlwdG9yc0Zyb21UcmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2J1aWxkRGVzY3JpcHRvcnNGcm9tVHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLGdCQUFnQixVQUE2QjtJQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztBQUN6QixDQUFDO0FBRUQsaUJBQWlCLFVBQWdCO0lBQy9CLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7QUFDNUIsQ0FBQztBQUVELGtDQUNFLElBQXFCO0lBRXJCLElBQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUN6QixJQUFNLE9BQU8sR0FBaUIsRUFBRSxDQUFDO0lBQ2pDLElBQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM5QixJQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUV0QyxtQkFBbUIsQ0FBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0UsSUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkYsSUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQ2xDLENBQUM7SUFFRixNQUFNLENBQUMsRUFBRSxLQUFLLE9BQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxRQUFRLFVBQUEsRUFBRSxjQUFjLGdCQUFBLEVBQUUsZ0JBQWdCLGtCQUFBLEVBQUUsc0JBQXNCLHdCQUFBLEVBQUUsQ0FBQztBQUNoRyxDQUFDO0FBakJELDREQWlCQztBQUVELDZCQUNFLElBQXFCLEVBQ3JCLEtBQWEsRUFDYixPQUFxQixFQUNyQixRQUFrQixFQUNsQixnQkFBMEIsRUFDMUIsS0FBZTtJQUdmLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFdkMsR0FBRyxDQUFDLENBQWUsVUFBaUIsRUFBakIsS0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFqQixjQUFpQixFQUFqQixJQUFpQjtRQUEvQixJQUFNLElBQUksU0FBQTtRQUNiLElBQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxFQUFFLENBQUMsQ0FBYyxJQUFJLENBQUMsSUFBSSxDQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFNLE1BQU0sR0FBZSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7WUFFM0IsSUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO1lBQ2pDLElBQU0sbUJBQW1CLEdBQWEsRUFBRSxDQUFDO1lBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVyQixtQkFBbUIsQ0FDakIsTUFBTSxDQUFDLFFBQVEsRUFDZixLQUFLLEVBQ0wsT0FBTyxFQUNQLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsUUFBUSxDQUNULENBQUM7WUFFRixFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDN0MsQ0FBQztRQUVILENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQU0sSUFBSSxHQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUV6QixRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsNkJBQTZCLE9BQWlCLEVBQUUsS0FBZTtJQUM3RCxJQUFNLGNBQWMsR0FBbUMsRUFBRSxDQUFDO0lBRTFELGNBQWMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFbkMsR0FBRyxDQUFDLENBQWlCLFVBQU8sRUFBUCxtQkFBTyxFQUFQLHFCQUFPLEVBQVAsSUFBTztRQUF2QixJQUFNLE1BQU0sZ0JBQUE7UUFDZixjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTVCLEdBQUcsQ0FBQyxDQUFlLFVBQUssRUFBTCxlQUFLLEVBQUwsbUJBQUssRUFBTCxJQUFLO1lBQW5CLElBQU0sSUFBSSxjQUFBO1lBQ2IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsQ0FBQztTQUNGO1FBRUQsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0tBQy9CO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZUZvbGRlciwgUGF0aFRyZWUsIFBhZ2VUcmVlTm9kZSwgUGFnZSwgVmFsaWRUcmVlTm9kZSB9IGZyb20gJy4vcGFnZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9ycyB7XHJcbiAgcGFnZXM6IFBhZ2U8YW55LCBhbnk+W107XHJcbiAgZm9sZGVyczogUGFnZUZvbGRlcltdO1xyXG4gIHBhdGhUcmVlOiBQYXRoVHJlZTtcclxuICBmb2xkZXJDb250ZW50czogeyBbZm9sZGVyOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIGZpbHRlcmVkUGF0aFRyZWU6IFBhdGhUcmVlO1xyXG4gIGZpbHRlcmVkRm9sZGVyQ29udGVudHM6IHsgW2ZvbGRlcjogc3RyaW5nXTogc3RyaW5nW10gfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYnlQYXRoKGRlc2NyaXB0b3I6IFBhZ2VGb2xkZXIgfCBQYWdlKSB7XHJcbiAgcmV0dXJuIGRlc2NyaXB0b3IucGF0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gdmlzaWJsZShkZXNjcmlwdG9yOiBQYWdlKSB7XHJcbiAgcmV0dXJuICFkZXNjcmlwdG9yLmhpZGRlbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRvcnNGcm9tVHJlZTxUIGV4dGVuZHMgVmFsaWRUcmVlTm9kZT4oXHJcbiAgcm9vdDogUGFnZVRyZWVOb2RlPFQ+LFxyXG4pOiBEZXNjcmlwdG9ycyB7XHJcbiAgY29uc3QgcGFnZXM6IFBhZ2VbXSA9IFtdO1xyXG4gIGNvbnN0IGZvbGRlcnM6IFBhZ2VGb2xkZXJbXSA9IFtdO1xyXG4gIGNvbnN0IHBhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gIGNvbnN0IGZpbHRlcmVkUGF0aFRyZWU6IFBhdGhUcmVlID0gW107XHJcblxyXG4gIGJ1aWxkUGFnZUZvbGRlclRyZWU8VD4ocm9vdCwgcGFnZXMsIGZvbGRlcnMsIHBhdGhUcmVlLCBmaWx0ZXJlZFBhdGhUcmVlLCBbXSk7XHJcblxyXG4gIGNvbnN0IGZvbGRlckNvbnRlbnRzID0gYnVpbGRGb2xkZXJDb250ZW50cyhmb2xkZXJzLm1hcChieVBhdGgpLCBwYWdlcy5tYXAoYnlQYXRoKSk7XHJcbiAgY29uc3QgZmlsdGVyZWRGb2xkZXJDb250ZW50cyA9IGJ1aWxkRm9sZGVyQ29udGVudHMoXHJcbiAgICBmb2xkZXJzLm1hcChieVBhdGgpLFxyXG4gICAgcGFnZXMuZmlsdGVyKHZpc2libGUpLm1hcChieVBhdGgpLFxyXG4gICk7XHJcblxyXG4gIHJldHVybiB7IHBhZ2VzLCBmb2xkZXJzLCBwYXRoVHJlZSwgZm9sZGVyQ29udGVudHMsIGZpbHRlcmVkUGF0aFRyZWUsIGZpbHRlcmVkRm9sZGVyQ29udGVudHMgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYnVpbGRQYWdlRm9sZGVyVHJlZTxUIGV4dGVuZHMgVmFsaWRUcmVlTm9kZT4oXHJcbiAgcm9vdDogUGFnZVRyZWVOb2RlPFQ+LFxyXG4gIHBhZ2VzOiBQYWdlW10sXHJcbiAgZm9sZGVyczogUGFnZUZvbGRlcltdLFxyXG4gIHBhdGhUcmVlOiBQYXRoVHJlZSxcclxuICBmaWx0ZXJlZFBhdGhUcmVlOiBQYXRoVHJlZSxcclxuICBjaGFpbjogc3RyaW5nW10sXHJcbik6IHZvaWQge1xyXG5cclxuICBwYXRoVHJlZS5wdXNoKGNoYWluLmpvaW4oJy8nKSk7XHJcbiAgZmlsdGVyZWRQYXRoVHJlZS5wdXNoKGNoYWluLmpvaW4oJy8nKSk7XHJcblxyXG4gIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyhyb290KSkge1xyXG4gICAgY29uc3QgbmV3Q2hhaW4gPSBjaGFpbi5jb25jYXQocGF0aCk7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBuZXdDaGFpbi5qb2luKCcvJyk7XHJcblxyXG4gICAgaWYgKCg8UGFnZUZvbGRlcj5yb290W3BhdGhdKS5jb250ZW50cykge1xyXG4gICAgICBjb25zdCBmb2xkZXIgPSA8UGFnZUZvbGRlcj5yb290W3BhdGhdO1xyXG4gICAgICBmb2xkZXIucGF0aCA9IGFic29sdXRlUGF0aDtcclxuXHJcbiAgICAgIGNvbnN0IG5ld1BhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gICAgICBjb25zdCBuZXdGaWx0ZXJlZFBhdGhUcmVlOiBQYXRoVHJlZSA9IFtdO1xyXG4gICAgICBwYXRoVHJlZS5wdXNoKG5ld1BhdGhUcmVlKTtcclxuXHJcbiAgICAgIGZvbGRlcnMucHVzaChmb2xkZXIpO1xyXG5cclxuICAgICAgYnVpbGRQYWdlRm9sZGVyVHJlZShcclxuICAgICAgICBmb2xkZXIuY29udGVudHMsXHJcbiAgICAgICAgcGFnZXMsXHJcbiAgICAgICAgZm9sZGVycyxcclxuICAgICAgICBuZXdQYXRoVHJlZSxcclxuICAgICAgICBuZXdGaWx0ZXJlZFBhdGhUcmVlLFxyXG4gICAgICAgIG5ld0NoYWluLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKG5ld0ZpbHRlcmVkUGF0aFRyZWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGZpbHRlcmVkUGF0aFRyZWUucHVzaChuZXdGaWx0ZXJlZFBhdGhUcmVlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhZ2UgPSA8UGFnZT5yb290W3BhdGhdO1xyXG4gICAgICBwYWdlLnBhdGggPSBhYnNvbHV0ZVBhdGg7XHJcblxyXG4gICAgICBwYXRoVHJlZS5wdXNoKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBpZiAoIXBhZ2UuaGlkZGVuKSB7XHJcbiAgICAgICAgZmlsdGVyZWRQYXRoVHJlZS5wdXNoKGFic29sdXRlUGF0aCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBidWlsZEZvbGRlckNvbnRlbnRzKGZvbGRlcnM6IHN0cmluZ1tdLCBwYWdlczogc3RyaW5nW10pOiB7IFtmb2xkZXI6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xyXG4gIGNvbnN0IGZvbGRlckNvbnRlbnRzOiB7IFtmb2xkZXI6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcclxuXHJcbiAgZm9sZGVyQ29udGVudHNbJyddID0gcGFnZXMuc2xpY2UoKTtcclxuXHJcbiAgZm9yIChjb25zdCBmb2xkZXIgb2YgZm9sZGVycykge1xyXG4gICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgcGFnZSBvZiBwYWdlcykge1xyXG4gICAgICBpZiAocGFnZS5pbmRleE9mKGZvbGRlcikgIT09IC0xKSB7XHJcbiAgICAgICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXS5wdXNoKHBhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyQ29udGVudHNbZm9sZGVyXS5zb3J0KCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZm9sZGVyQ29udGVudHM7XHJcbn1cclxuIl19 |
\ | No newline at end of file |