1(function(){'use strict';function initSlidingFourCards(wrapper){const cards=Array.prototype.slice.call(wrapper.querySelectorAll('.ctea-card'));if(cards.length!==4){return} 2function setActivePair(index,opts){const options=opts||{};const skipOpeningEffect=!!options.skipOpeningEffect;const lastIndex=cards.length-1;let neighborIndex;if(index===lastIndex){neighborIndex=index-1}else{neighborIndex=index+1} 3const wasOpen=cards.map((card)=>card.classList.contains('is-open'));cards.forEach((card,i)=>{const isActive=i===index||i===neighborIndex;card.classList.toggle('is-open',isActive);card.classList.toggle('is-closed',!isActive)});if(!skipOpeningEffect){const duration=parseFloat(wrapper.dataset.transitionDuration||'0.4');const timeoutMs=(isNaN(duration)?0.4:duration)*1000+50;cards.forEach((card,i)=>{const nowOpen=card.classList.contains('is-open');const becameOpen=nowOpen&&!wasOpen[i];if(!becameOpen){return} 4card.classList.add('is-opening');if(card._cteaOpeningTimeout){window.clearTimeout(card._cteaOpeningTimeout)} 5card._cteaOpeningTimeout=window.setTimeout(function(){card.classList.remove('is-opening');card._cteaOpeningTimeout=null},timeoutMs)})}} 6setActivePair(0,{skipOpeningEffect:!0});cards.forEach((card,index)=>{card.addEventListener('mouseenter',function(){setActivePair(index)})})} 7function initAll(){const wrappers=document.querySelectorAll('.ctea-wrapper');wrappers.forEach(initSlidingFourCards)} 8if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',initAll)}else{initAll()}})()
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.