/* global anchors */ // add anchor links to headers anchors.options.placement = 'left'; anchors.add('h3'); // Filter UI var tocElements = document.getElementById('toc') .getElementsByTagName('li'); document.getElementById('filter-input') .addEventListener('keyup', function (e) { var i, element, children; // enter key if (e.keyCode === 13) { // go to the first displayed item in the toc for (i = 0; i < tocElements.length; i++) { element = tocElements[i]; if (!element.classList.contains('display-none')) { location.replace(element.firstChild.href); return e.preventDefault(); } } } var match = function () { return true; }; var value = this.value.toLowerCase(); if (!value.match(/^\s*$/)) { match = function (element) { return element.firstChild.innerHTML.toLowerCase().indexOf(value) !== -1; }; } for (i = 0; i < tocElements.length; i++) { element = tocElements[i]; children = Array.from(element.getElementsByTagName('li')); if (match(element) || children.some(match)) { element.classList.remove('display-none'); } else { element.classList.add('display-none'); } } }); var toggles = document.getElementsByClassName('toggle-step-sibling'); for (var i = 0; i < toggles.length; i++) { toggles[i].addEventListener('click', toggleStepSibling); } function toggleStepSibling() { var stepSibling = this.parentNode.parentNode.parentNode.getElementsByClassName('toggle-target')[0]; var klass = 'display-none'; if (stepSibling.classList.contains(klass)) { stepSibling.classList.remove(klass); stepSibling.innerHTML = '▾'; } else { stepSibling.classList.add(klass); stepSibling.innerHTML = '▸'; } } var items = document.getElementsByClassName('toggle-sibling'); for (var j = 0; j < items.length; j++) { items[j].addEventListener('click', toggleSibling); } function toggleSibling() { var stepSibling = this.parentNode.getElementsByClassName('toggle-target')[0]; var icon = this.getElementsByClassName('icon')[0]; var klass = 'display-none'; if (stepSibling.classList.contains(klass)) { stepSibling.classList.remove(klass); icon.innerHTML = '▾'; } else { stepSibling.classList.add(klass); icon.innerHTML = '▸'; } } function showHashTarget(targetId) { var hashTarget = document.getElementById(targetId); // new target is hidden if (hashTarget && hashTarget.offsetHeight === 0 && hashTarget.parentNode.parentNode.classList.contains('display-none')) { hashTarget.parentNode.parentNode.classList.remove('display-none'); } } window.addEventListener('hashchange', function() { showHashTarget(location.hash.substring(1)); }); showHashTarget(location.hash.substring(1)); var toclinks = document.getElementsByClassName('pre-open'); for (var k = 0; k < toclinks.length; k++) { toclinks[k].addEventListener('mousedown', preOpen, false); } function preOpen() { showHashTarget(this.hash.substring(1)); }