1document.addEventListener('DOMContentLoaded', function(){ 2 let storyBlocks = document.querySelectorAll('.wp-block-hacklab-story-list'); 3 4 if (storyBlocks) { 5 storyBlocks.forEach(function(block) { 6 let stories = block.querySelectorAll('article') 7 let close = block.querySelector('.close') 8 let prev = block.querySelector('.nav.nav-prev') 9 let next = block.querySelector('.nav.nav-next') 10 11 close.addEventListener('click', function() { 12 let getOpened = document.querySelectorAll('.story-item.opened') 13 getOpened.forEach(function(opened) { 14 opened.classList.remove('opened') 15 }) 16 17 block.classList.remove('opened') 18 19 prev.setAttribute('data-prev', '') 20 next.setAttribute('data-next', '') 21 }) 22 23 prev.addEventListener('click', function() { 24 25 let getOpened = document.querySelectorAll('.story-item.opened') 26 getOpened.forEach(function(opened) {
27 opened.classList.remove('opened') 28 }) 29 let open = block.querySelector('[data-story="' + prev.getAttribute('data-prev') + '"]') 30 31 let prevId = open.getAttribute('data-prev') 32 let nextId = open.getAttribute('data-next') 33 34 prev.setAttribute('data-prev', prevId) 35 next.setAttribute('data-next', nextId) 36 37 open.classList.add('opened') 38 39 }) 40 41 next.addEventListener('click', function() { 42 43 let getOpened = document.querySelectorAll('.story-item.opened') 44 getOpened.forEach(function(opened) { 45 opened.classList.remove('opened') 46 }) 47 48 let open = block.querySelector('[data-story="' + next.getAttribute('data-next') + '"]') 49 50 let prevId = open.getAttribute('data-prev') 51 let nextId = open.getAttribute('data-next') 52 53 prev.setAttribute('data-prev', prevId) 54 next.setAttribute('data-next', nextId) 55 56 open.classList.add('opened') 57 58 }) 59 60 stories.forEach(function(story){ 61 story.addEventListener('click', function(event) { 62 event.preventDefault 63 64 let getOpened = document.querySelectorAll('.opened') 65 getOpened.forEach(function(opened) {
66 opened.classList.remove('opened') 67 }) 68 69 this.classList.add('opened') 70 71 block.classList.add('opened') 72 73 let prevId = this.getAttribute('data-prev') 74 let nextId = this.getAttribute('data-next') 75 76 prev.setAttribute('data-prev', prevId) 77 next.setAttribute('data-next', nextId) 78 }) 79 }) 80 }) 81 } 82})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.