PageSourceSearch

https://www.zonecta.com/template/c8ae41b777eb44ccad9bf9fc306ae70b/js/language-list.js

js zonecta.com collected 2026-10-03 18:40:26 UTC 2,864 bytes, 73 lines download raw bytes

1document.addEventListener("DOMContentLoaded", function() {
2    responsiveChangesLang();
3    window.addEventListener('resize', responsiveChangesLang);
4    var curLangLabels = document.querySelectorAll('[data-theme-lang-label]');
5    if(curLangLabels){
6        for(var i=0; i<curLangLabels.length; i++){
7            curLangLabels[i].addEventListener('click', toggleLangDropdown);
8            curLangLabels[i].addEventListener('keydown',function(e){
9              if(e.which === 13){
10                  this.click();
11              }
12            });
13        };
14    }
15});
16function hideLang(){
17    var activeLangDropdown = document.querySelector('.theme-lang-dropdown-open');
18    activeLangDropdown && activeLangDropdown.classList.remove('theme-lang-dropdown-open');
19    var lagnLabel = document.querySelector('[data-theme-lang-label]');
20    lagnLabel && lagnLabel.setAttribute('aria-expanded','false');
21}
22function toggleLangDropdown(e){
23    e.target.parentNode.classList.toggle('theme-lang-dropdown-open');
24    if(e.target.parentNode.classList.contains('theme-lang-dropdown-open')){
25      e.target.setAttribute('aria-expanded','true');
26      e.target.setAttribute('aria-haspopup','false');
27      var firstLang = e.target.parentElement.querySelector('[data-theme-lang-list]');
28      firstLang && firstLang.focus();
29    }else{
30      e.target.setAttribute('aria-expanded','false');
31      e.target.setAttribute('aria-haspopup','true');
32    }
33}
34function responsiveChangesLang(){
35    var langContainer = $D.get('[data-theme-lang-container]');
36    var langNonResContainer = $D.get('[data-theme-lang-container-non-res]');
37    var langResContainer = $D.get('[data-theme-lang-container-res]');
38    if(window.innerWidth < 992 ){
39        if(langNonResContainer && langResContainer && langContainer){
40            langResContainer.appendChild(langContainer);
41        }
42    }else{
43        if(langNonResContainer && langResContainer && langContainer){
44            langNonResContainer.appendChild(langContainer);
45        }
46    }
47}
48
49var langContainer = document.querySelector('[data-theme-lang-container]');
50var languageListLi = document.querySelectorAll('[data-theme-lang-list]');
51var languageListLabel = document.querySelector('[data-theme-lang-label]');
52if(langContainer){
53  for(var i=0;i<languageListLi.length;i++){
54    hideOnBlur(languageListLi[i],langContainer,hideLang,languageListLabel)
55    languageListLi[i].addEventListener('keydown',function(e){
56      if(e.which === 13){
57          this.click();
58      }
59      if(e.which === 27){
60        hideLang();
61        languageListLabel.focus();
62        languageListLabel.setAttribute('aria-expanded','false')
63        languageListLabel.setAttribute('aria-haspopup','true')
64      }
65    });
66  }
67
68  languageListLabel.addEventListener('keydown',function(e){
69    if(e.which === 9){
70      hideOnBlur(this,langContainer,hideLang);
71    }
72  });
73}

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.