PageSourceSearch

https://www.fondoitalia.it/wp-content/themes/amagaz-child/assets/js/main.js?ver=6abfd88daa3ef

js fondoitalia.it collected 2026-10-02 16:15:42 UTC 4,576 bytes, 145 lines download raw bytes

1// site navigation fixed
2const fiFixSiteNavigation = () => {
3  const scrollY = window.scrollY
4  const header = document.querySelector('#amagaz-header .logo')
5  const top = header?.offsetHeight ?? 0
6  if(scrollY > top) {
7    document.querySelector('body').classList.add('is-scrolling')
8  } else {
9    document.querySelector('body').classList.remove('is-scrolling')
10  }
11}
12fiFixSiteNavigation()
13
14// live preview fixed
15const fiFixLiveVideoPreview = () => {
16  const previews = document.querySelectorAll('.fi-live-video-preview')
17  const scrollY = window.scrollY
18  previews.forEach(preview => {
19    const offsetTop = preview.offsetTop
20    if(scrollY > offsetTop) {
21      preview.classList.add('fi-live-video-preview--fixed')
22    } else {
23      preview.classList.remove('fi-live-video-preview--fixed')
24    }
25  })
26}
27fiFixLiveVideoPreview()
28
29document.addEventListener("scroll", (e) => {
30  fiFixSiteNavigation()
31  fiFixLiveVideoPreview()
32})
33
34// check event listener
35const fiCheckEventListener = (element, role) => {
36  const attr = element.getAttribute('data-fi-listeners') || ''
37  if(!attr.includes(role)) {
38    element.setAttribute('data-fi-listeners', attr+role)
39    return true
40  }
41  return false
42}
43
44const fiAddQueryVar = (permalink = '', key, value) => {
45  const permalinkNoQuery = permalink.split('?')[0]
46  const query = permalink.split('?')[1] || ''
47  const params = new URLSearchParams(query)
48  if(value) {
49    params.set(key, value)
50  } else {
51    params.delete(key)
52  }
53  if(key === 'fi-competition-date' && value) {
54    params.delete('fi-past')
55  }
56  if(key === 'fi-past' && value) {
57    params.delete('fi-competition-date')
58  }
59  if(params.size) {
60    return permalinkNoQuery+'?'+params.toString()
61  } else {
62    return permalinkNoQuery
63  }
64}
65
66// Show modal
67const fiShowModal = (selector) => {
68  const modal = document.querySelector(`.fi-modal[data-fi-modal="${selector}"]`);
69  if(modal) {
70    modal.classList.add('fi-modal--active');
71    const overlay = modal.querySelector('.fi-modal__overlay');
72    if(overlay) {
73      overlay.addEventListener('click', (e) => {
74        fiHideModal(selector)
75      })
76    }
77    document.querySelector('body').classList.add('overflow-hidden');
78  }
79}
80// Hide modal
81const fiHideModal = (selector) => {
82  const modal = document.querySelector(`.fi-modal[data-fi-modal="${selector}"]`);
83  if(modal) {
84    modal.classList.remove('fi-modal--active');
85    const overlay = modal.querySelector('.fi-modal__overlay');
86    if(overlay) {
87      overlay.removeEventListener('click', (e) => {
88        fiHideModal(selector)
89      })
90    }
91    document.querySelector('body').classList.remove('overflow-hidden');
92  }
93}
94
95const fiInit = () => {
96  /**
97   * Competitions filter select
98   */
99  const fiCompetitionsFilterFields = document.querySelectorAll('[data-fi-role*="fi-competitions-filter,"]')
100  fiCompetitionsFilterFields.forEach(fiCompetitionsFilterField => {
101    if(fiCheckEventListener(fiCompetitionsFilterField, 'fi-competitions-filter,')) {
102      fiCompetitionsFilterField.addEventListener('change', e => {
103        let permalink = null
104        const name = fiCompetitionsFilterField.getAttribute('name')
105        const type = fiCompetitionsFilterField.getAttribute('type')
106        const value = type !== 'checkbox' ? fiCompetitionsFilterField.value : fiCompetitionsFilterField.checked ? 1 : undefined
107        if(fiCompetitionsFilterField.tagName === 'SELECT') {
108          const selectedOption = e.target.options[e.target.selectedIndex]
109          permalink = selectedOption?.getAttribute('data-fi-permalink');
110        } else {
111          permalink = fiAddQueryVar(fiCompetitionsFilterField.getAttribute('data-fi-permalink'), fiCompetitionsFilterField.getAttribute('name'), value)
112        }
113        if(!permalink) { return undefined }
114        location.href = permalink
115      }, true)
116    }
117  })
118
119  /**
120   * Modal
121   */
122  // Setup activators
123  document.querySelectorAll('[data-ly-role*="modal-activator,"]').forEach(activator => {
124    const fiSetupModalShowActivator = (e) => {
125      const modalId = activator.getAttribute('data-fi-modal-id')
126      if(modalId) {
127        fiShowModal(modalId)
128      }
129    }
130     activator.onclick = fiSetupModalShowActivator
131  })
132  const fiSetupModalHideActivator = (e) => {
133    const modalId = e.target.getAttribute('data-fi-modal-id')
134    if(modalId) {
135      fiHideModal(modalId)
136    }
137  }
138  document.querySelectorAll('[data-ly-role*="modal-hide,"]').forEach(activator => {
139    if(fiCheckEventListener(activator, 'modal-hide,')) {
140      activator.addEventListener('click', fiSetupModalHideActivator)
141    }
142  })
143}
144
145fiInit();

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.