PageSourceSearch

https://www.accademiamoda.it/wp-content/themes/iuad-theme/src/js/custom/card_carousel_home.js?ver=1.0.0

js accademiamoda.it collected 2026-10-04 13:24:02 UTC 1,814 bytes, 52 lines download raw bytes

1(() => {
2  'use strict';
3
4  function extractThemeClasses(el) {
5    if (!el) return [];
6    return Array.from(el.classList).filter(c => c.startsWith('custom-theme-'));
7  }
8
9  function replaceThemeClasses(target, themeClasses) {
10    if (!target) return;
11    Array.from(target.classList)
12      .filter(c => c.startsWith('custom-theme-'))
13      .forEach(c => target.classList.remove(c));
14    themeClasses.forEach(c => target.classList.add(c));
15  }
16
17  function syncTitleClassFromActiveCard(root) {
18    const title = root.querySelector('[data-iuad-card-carousel-home-title]');
19    const activeCard = root.querySelector('.carousel-card.active');
20    const themeClasses = extractThemeClasses(activeCard);
21    // Evita il "flash" al colore di default: aggiorna solo se abbiamo una classe valida.
22    if (themeClasses.length === 0) return;
23    replaceThemeClasses(title, themeClasses);
24  }
25
26  document.addEventListener('DOMContentLoaded', () => {
27    const root = document.querySelector('[data-iuad-card-carousel-home]');
28    if (!root) return;
29
30    const cardsContainer = root.querySelector('.carousel-cards');
31    syncTitleClassFromActiveCard(root);
32
33    if (!cardsContainer) return;
34
35    const obs = new MutationObserver(() => syncTitleClassFromActiveCard(root));
36    obs.observe(cardsContainer, {
37      subtree: true,
38      attributes: true,
39      attributeFilter: ['class']
40    });
41
42    // Extra: in caso il cambio slide avvenga tramite click sui dot
43    const dots = root.querySelectorAll('.carousel-dot');
44    dots.forEach(dot => {
45      dot.addEventListener('click', () => {
46        // lascia che l'animazione aggiorni le classi, poi sync
47        window.requestAnimationFrame(() => syncTitleClassFromActiveCard(root));
48        setTimeout(() => syncTitleClassFromActiveCard(root), 350);
49      });
50    });
51  });
52})();

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.