PageSourceSearch

https://macfoxbike.com/cdn/shop/t/197/assets/custom-product-compare.min.js?v=14608390099499948041790143680

js macfoxbike.com collected 2026-09-28 12:48:38 UTC 3,368 bytes, 1 lines download raw bytes

1import{E}from"./embla-carousel.esm.min.js";const _={dragFree:!0,align:"start"},C=(e,o)=>{const r=e.querySelector(".embla_head"),n=e.querySelector(".embla__viewport"),l=document.createElement("div");return o.map((c,b)=>{if(b===0)c.map((a,t)=>{const s=document.createElement("span");s.textContent=a,s.classList.add("embla__slide_item",`embla__slide_item-col-${t+1}`),r.appendChild(s)});else{const a=document.createElement("div");a.classList.add("embla__slide"),c.map((t,s)=>{const m=document.createElement("div");if(t&&typeof t=="object"){const u=document.createElement("p");u.textContent=t.title;const p=document.createElement("img");if(p.src=t.img,p.width=t.img_width,p.height=t.img_height,t.sold_out){const d=document.createElement("span");d.classList.add("--sold-out"),d.textContent="Sold Out",u.appendChild(d)}if(m.appendChild(u),m.appendChild(p),t.url&&t.btn_text){const d=document.createElement("a");d.classList.add("--go-product"),d.href=t.url,d.textContent=t.btn_text,m.appendChild(d)}}else{const u=document.createElement("span");u.innerHTML=t,m.appendChild(u)}m.classList.add("embla__slide_item",`embla__slide_item-col-${s+1}`),a.appendChild(m)}),l.appendChild(a)}}),l.classList.add("embla__container","flex","items-stretch"),n.appendChild(l),{viewportEl:n,containerEl:l}},x=(e,o,r)=>{const n=()=>{e.canScrollPrev()?o.removeAttribute("disabled"):o.setAttribute("disabled","disabled"),e.canScrollNext()?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled")};return e.on("select",n).on("init",n).on("reInit",n),()=>{o.removeAttribute("disabled"),r.removeAttribute("disabled")}},P=(e,o,r)=>{const n=()=>{e.scrollPrev()},l=()=>{e.scrollNext()};o.addEventListener("click",n,!1),r.addEventListener("click",l,!1);const c=x(e,o,r);return()=>{c(),o.removeEventListener("click",n,!1),r.removeEventListener("click",l,!1)}},L=(e,o)=>({applyProgress:()=>{const l=Math.max(0,Math.min(1,e.scrollProgress()));o.style.transform=`translate3d(${l*100}%,0px,0px)`},removeProgress:()=>{o.removeAttribute("style")}}),S=e=>{const o=e.querySelector("[data-compare-json]"),r=e.querySelector(".embla__button--prev"),n=e.querySelector(".embla__button--next"),l=e.querySelector(".embla__progress__bar");
1if(!o||!r||!n||!l)return;let c=null;try{c=JSON.parse(o.textContent)}catch(i){console.error("产品比较数据解析失败",i);return}if(!Array.isArray(c)||c.length===0)return;c.length<2&&console.warn("产品比较:只有表头没有产品数据",e.dataset.compareUid,c);const{viewportEl:b,containerEl:a}=C(e,c),t=e.querySelector(".embla__controls");let s=null;const m=()=>{s=E(b,_);const{applyProgress:i,removeProgress:y}=L(s,l),v=P(s,r,n);s.on("init",i).on("reInit",i).on("scroll",i).on("slideFocus",i).on("destroy",y).on("destroy",v),i()},u=()=>{s&&(s.destroy(),s=null)},p=()=>a.scrollWidth>b.clientWidth+1,d=()=>{p()?(b.classList.remove("--no-drag"),t&&(t.style.display=""),s||m()):(u(),b.classList.add("--no-drag"),t&&(t.style.display="none"))},g=()=>{d(),s&&s.reInit()};let h=null;const f=()=>{clearTimeout(h),h=setTimeout(g,100)};if(d(),window.addEventListener("resize",f),typeof ResizeObserver<"u"){const i=new ResizeObserver(f);i.observe(a),i.observe(b)}document.fonts&&document.fonts.ready&&document.fonts.ready.then(f)};document.querySelectorAll(".cs-product-compare-section .cs-product-compare-wrapper, .cs-compare-section .cs-compare-wrapper").forEach(S);

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.