PageSourceSearch

https://pocket-rd.com/js/pages/about.js

js pocket-rd.com collected 2026-10-04 09:02:46 UTC 2,590 bytes, 61 lines download raw bytes

1(function(){
2  var filterBtns = document.querySelectorAll('.members .filter-btn');
3  var cards = document.querySelectorAll('.member-card');
4  filterBtns.forEach(function(btn){
5    btn.addEventListener('click', function(){
6      filterBtns.forEach(function(b){ b.classList.remove('active'); });
7      btn.classList.add('active');
8      var filter = btn.getAttribute('data-filter');
9      cards.forEach(function(card){
10        var show = (filter === 'ALL' || card.getAttribute('data-category') === filter);
11        card.style.display = show ? '' : 'none';
12      });
13    });
14  });
15})();
16
17(function(){
18  var overlay = document.getElementById('member-modal-overlay');
19  var modal = document.getElementById('member-modal');
20  var closeBtn = document.getElementById('member-modal-close');
21  var modalPhoto = document.getElementById('member-modal-photo');
22  var modalDept = document.getElementById('member-modal-dept');
23  var modalRole = document.getElementById('member-modal-role');
24  var modalName = document.getElementById('member-modal-name');
25  var modalBio = document.getElementById('member-modal-bio');
26  if(!overlay) return;
27
28  function openModal(card){
29    var photoImg = card.querySelector('.member-photo img');
30    var dept = card.querySelector('.dept');
31    var role = card.querySelector('.member-role');
32    var name = card.querySelector('.member-name');
33    var bio = card.querySelector('.member-bio');
34    var photoStyle = photoImg ? photoImg.getAttribute('style') : '';
35    modalPhoto.innerHTML = photoImg ? '<img src="' + photoImg.getAttribute('src') + '" alt="' + photoImg.getAttribute('alt') + '"' + (photoStyle ? ' style="' + photoStyle + '"' : '') + '>' : '👤';
36    modalDept.textContent = dept ? dept.textContent : '';
37    modalRole.textContent = role ? role.textContent : '';
38    modalName.textContent = name ? name.textContent : '';
39    modalBio.innerHTML = bio ? bio.innerHTML : '';
40    modal.setAttribute('data-category', card.getAttribute('data-category') || '');
41    overlay.classList.add('active');
42    document.body.classList.add('modal-open');
43  }
44
45  function closeModal(){
46    overlay.classList.remove('active');
47    document.body.classList.remove('modal-open');
48  }
49
50  document.querySelectorAll('.member-card').forEach(function(card){
51    card.addEventListener('click', function(){ openModal(card); });
52  });
53
54  closeBtn.addEventListener('click', closeModal);
55  overlay.addEventListener('click', function(e){
56    if(e.target === overlay) closeModal();
57  });
58  document.addEventListener('keydown', function(e){
59    if(e.key === 'Escape') closeModal();
60  });
61})();

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.