403Webshell
Server IP : 172.67.191.97  /  Your IP : 104.23.197.208
Web Server : Apache/2.4.63 (Ubuntu)
System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.4.5
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/idiomas/media/idiomas/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/idiomas/media/idiomas/sitemap.js
(function () {
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', init, { once: true });
  } else {
    init();
  }

  function init() {
    const root = document.querySelector('[data-sitemap-root]');
    if (!root) return;

    const search = root.querySelector('[data-sitemap-search]');
    const status = root.querySelector('[data-sitemap-status]');
    const cards = Array.from(root.querySelectorAll('[data-sitemap-card]'));
    const links = Array.from(root.querySelectorAll('[data-sitemap-link]'));
    const revealItems = Array.from(root.querySelectorAll('[data-sitemap-reveal]'));

    revealItems.forEach((item, index) => {
      item.style.setProperty('--sitemap-delay', `${Math.min(index, 12) * 45}ms`);
    });

    if ('IntersectionObserver' in window) {
      const observer = new IntersectionObserver((entries) => {
        entries.forEach((entry) => {
          if (!entry.isIntersecting) return;
          entry.target.classList.add('is-visible');
          observer.unobserve(entry.target);
        });
      }, { rootMargin: '0px 0px -8% 0px', threshold: 0.14 });

      revealItems.forEach((item) => observer.observe(item));
    } else {
      revealItems.forEach((item) => item.classList.add('is-visible'));
    }

    cards.forEach((card) => {
      card.addEventListener('pointermove', (event) => {
        const rect = card.getBoundingClientRect();
        const x = ((event.clientX - rect.left) / rect.width) * 100;
        const y = ((event.clientY - rect.top) / rect.height) * 100;
        card.style.setProperty('--spot-x', `${x}%`);
        card.style.setProperty('--spot-y', `${y}%`);
      });

      card.addEventListener('pointerleave', () => {
        card.style.removeProperty('--spot-x');
        card.style.removeProperty('--spot-y');
      });
    });

    if (!search) return;

    const normalize = (value) => value
      .toLowerCase()
      .normalize('NFD')
      .replace(/[\u0300-\u036f]/g, '')
      .trim();

    const update = () => {
      const query = normalize(search.value);
      let visibleLinks = 0;

      links.forEach((link) => {
        const match = !query || normalize(link.textContent).includes(query);
        link.closest('li').hidden = !match;
        if (match) visibleLinks += 1;
      });

      cards.forEach((card) => {
        const hasVisibleLinks = Array.from(card.querySelectorAll('[data-sitemap-link]'))
          .some((link) => !link.closest('li').hidden);
        card.hidden = !hasVisibleLinks;
      });

      if (status) {
        status.textContent = query
          ? `${visibleLinks} enlace${visibleLinks === 1 ? '' : 's'} encontrado${visibleLinks === 1 ? '' : 's'}`
          : `${links.length} enlaces organizados`;
      }
    };

    search.addEventListener('input', update);
    update();
  }
}());

Youez - 2016 - github.com/yon3zu
LinuXploit