Back to Skia

Scripts

tools/unicode_comparison/html/scripts.html

latest2.1 KB
Original Source

{{ define "scripts" }} currentId = ''; currentType = ''; currentChunk = ''; function switchSign(element) { if (!element) return false; if (element.tagName !== "A") return false; if (!element.hasAttribute('href')) return false; if (element.innerHTML[0] == '+') { element.innerHTML = '-' + element.innerHTML.substring(1); return true; } else { element.innerHTML = '+' + element.innerHTML.substring(1); return true; } } function recurse(id) { var children = document.getElementsByClassName(id); for (let i = 0; i < children.length; i++) { children[i].classList.toggle("open"); if (switchSign(children[i])) { recursive(children[i].getAttribute('href').substring(1)); } } } document.getElementById("comparison").addEventListener("click", function (e) { if (!e) return; e.preventDefault(); if (switchSign(e.target)) { recurse(e.target.getAttribute('href').substring(1)); } }); function hideDiff() { if (currentId == '') { return; } let spans = document.querySelectorAll(#id_${currentId} \> td \> div \> span.${currentType}); [].forEach.call(spans, function(span) { span.classList.remove(span_${currentType}); }); let inactives = document.querySelectorAll(#${currentType}_${currentChunk}${currentId}); [].forEach.call(inactives, function(inactive) { inactive.classList.add('inactive'); }); let invisibles = document.querySelectorAll(#id_${currentId} \> td \> div.${currentType}); [].forEach.call(invisibles, function(invisible) { invisible.classList.add('invisible'); }); currentId = ''; currentType = ''; currentChunk = ''; } function showDiff(id, type, chunkType) { hideDiff(); let spans = document.querySelectorAll(#id_${id} \> td \> div \> span.${type}); [].forEach.call(spans, function(span) { span.classList.add(span_${type}); }); let inactives = document.querySelectorAll(#${type}_${chunkType}${id}); [].forEach.call(inactives, function(inactive) { inactive.classList.remove('inactive'); }); let invisibles = document.querySelectorAll(#id_${id} \> td \> div.${type}); [].forEach.call(invisibles, function(invisible) { invisible.classList.remove('invisible'); }); currentId = id; currentType = type; currentChunk = chunkType; } {{ end }}