in scripts/docsite.js [26:84]
var _loop_1 = function (jsonNode) {
var expandable = jsonNode.subitems && jsonNode.subitems.length > 0;
var liElement = document.createElement('li');
var titleContainerElement = liElement;
var currentPage = false;
if (expandable) {
liElement.innerHTML = '<svg class="navtree-expander"><use xlink:href="#icon-expander"></use></svg>';
}
else {
liElement.innerHTML = '<svg class="navtree-expander"></svg>';
if (jsonNode.url) {
var linkElement = document.createElement('a');
linkElement.href = jsonNode.url;
liElement.appendChild(linkElement);
titleContainerElement = linkElement;
var jsonNodeUrl = getUrlForComparison(jsonNode.url);
if (jsonNodeUrl === currentPageUrl) {
currentPage = true;
// expand all the parent nodes
for (var current = parentNode; current !== undefined; current = current.parentNode) {
current.expanded = true;
}
}
}
}
titleContainerElement.append(jsonNode.title);
parentUlElement.appendChild(liElement);
var node = {
parentNode: parentNode,
childNodes: [],
liElement: liElement,
ulElement: undefined,
expanded: false,
currentPage: currentPage
};
nodes.push(node);
if (expandable) {
var ulElement = document.createElement('ul');
node.ulElement = ulElement;
parentUlElement.appendChild(ulElement);
if (jsonNode.url) {
// Our design doesn't allow a container to have a hyperlink; create a virtual child node
var virtualNode = {
title: '(members)',
url: jsonNode.url,
subitems: []
};
renderNavNodes(node.childNodes, [virtualNode], ulElement, node, currentPageUrl);
}
renderNavNodes(node.childNodes, jsonNode.subitems, ulElement, node, currentPageUrl);
}
updateNavNode(node);
if (expandable) {
liElement.onclick = function () {
node.expanded = !node.expanded;
updateNavNode(node);
};
}
};