/* Testimonials marquee — built from i18n data, 6 unique clients per column */ (function () { "use strict"; var COLS = [ { className: "tm-col", dur: "52s", offset: 0 }, { className: "tm-col tm-col--md", dur: "58s", offset: 4 }, { className: "tm-col tm-col--lg", dur: "55s", offset: 8 } ]; var root = document.querySelector(".tm-marquee"); if (!root) return; function rotateItems(items, offset) { var out = []; for (var i = 0; i < items.length; i++) { out.push(items[(offset + i) % items.length]); } return out; } function createCard(item, hidden) { var li = document.createElement("li"); if (hidden) li.setAttribute("aria-hidden", "true"); var article = document.createElement("article"); article.className = "tm-card-v2"; var blockquote = document.createElement("blockquote"); blockquote.className = "tm-card-v2-inner"; var quote = document.createElement("p"); quote.className = "tm-card-v2-quote"; quote.textContent = item.quote; var footer = document.createElement("footer"); footer.className = "tm-card-v2-author"; var img = document.createElement("img"); img.className = "tm-card-v2-avatar"; img.src = item.photo; img.alt = item.name; img.width = 44; img.height = 44; img.loading = "lazy"; var meta = document.createElement("div"); var cite = document.createElement("cite"); cite.className = "tm-card-v2-name"; cite.textContent = item.name; var role = document.createElement("span"); role.className = "tm-card-v2-role"; role.textContent = item.role; meta.appendChild(cite); meta.appendChild(role); footer.appendChild(img); footer.appendChild(meta); blockquote.appendChild(quote); blockquote.appendChild(footer); article.appendChild(blockquote); li.appendChild(article); return li; } function renderColumn(items, config) { var col = document.createElement("div"); col.className = config.className; var track = document.createElement("ul"); track.className = "tm-col-track"; track.style.setProperty("--tm-dur", config.dur); var ordered = rotateItems(items, config.offset); for (var i = 0; i < ordered.length; i++) { track.appendChild(createCard(ordered[i], false)); } var seamOffset = Math.ceil(ordered.length / 2); for (var j = 0; j < ordered.length; j++) { track.appendChild(createCard(ordered[(j + seamOffset) % ordered.length], true)); } col.appendChild(track); return col; } function render(dict) { var items = dict && dict.testimonials && dict.testimonials.items; if (!items || !items.length) return; root.innerHTML = ""; for (var c = 0; c < COLS.length; c++) { root.appendChild(renderColumn(items, COLS[c])); } if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) { root.classList.add("tm-marquee--static"); } else { root.classList.remove("tm-marquee--static"); } } window.cornetOnLangApplied = function (_lang, dict) { render(dict); }; function init() { var lang = document.documentElement.lang || "en"; var dict = (window.cornetTranslations && window.cornetTranslations[lang]) || (window.cornetTranslations && window.cornetTranslations.en); if (dict) render(dict); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })();