| /* On the test summary page, toggles the popup for the uncovered tests. */ |
| function spec_toggle_uncovered(item_index) { |
| let el = document.getElementById(`uncovered-${item_index}`); |
| const currently_hidden = el.classList.contains('popup-hidden'); |
| const all = document.querySelectorAll('.uncovered-rules-popup'); |
| all.forEach(element => { |
| element.classList.add('popup-hidden'); |
| }); |
| if (currently_hidden) { |
| el.classList.remove('popup-hidden'); |
| } |
| } |
| |
| function spec_toggle_tests(rule_id) { |
| let el = document.getElementById(`tests-${rule_id}`); |
| const currently_hidden = el.classList.contains('popup-hidden'); |
| const all = document.querySelectorAll('.tests-popup'); |
| all.forEach(element => { |
| element.classList.add('popup-hidden'); |
| }); |
| if (currently_hidden) { |
| el.classList.remove('popup-hidden'); |
| } |
| } |
| |
| function toggle_railroad() { |
| const grammarRailroad = get_railroad(); |
| set_railroad(!grammarRailroad); |
| update_railroad(); |
| } |
| |
| function show_railroad() { |
| set_railroad(true); |
| update_railroad(); |
| } |
| |
| function get_railroad() { |
| let grammarRailroad = null; |
| try { |
| grammarRailroad = localStorage.getItem('grammar-railroad'); |
| } catch (e) { |
| // Ignore error. |
| } |
| grammarRailroad = grammarRailroad === 'true' ? true : false; |
| return grammarRailroad; |
| } |
| |
| function set_railroad(newValue) { |
| try { |
| localStorage.setItem('grammar-railroad', newValue); |
| } catch (e) { |
| // Ignore error. |
| } |
| } |
| |
| function update_railroad() { |
| const grammarRailroad = get_railroad(); |
| const railroads = document.querySelectorAll('.grammar-railroad'); |
| railroads.forEach(element => { |
| if (grammarRailroad) { |
| element.classList.remove('grammar-hidden'); |
| } else { |
| element.classList.add('grammar-hidden'); |
| } |
| }); |
| const buttons = document.querySelectorAll('.grammar-toggle-railroad'); |
| buttons.forEach(button => { |
| if (grammarRailroad) { |
| button.innerText = "Hide syntax diagram"; |
| } else { |
| button.innerText = "Show syntax diagram"; |
| } |
| }); |
| } |
| |
| (function railroad_onload() { |
| update_railroad(); |
| })(); |