PageSourceSearch

https://infonile.org/wp-content/plugins/hacklab-blocks/blocks/story-list/script.js?ver=1790593778

js infonile.org collected 2026-10-02 11:39:30 UTC 2,968 bytes, 82 lines download raw bytes

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.