PageSourceSearch

https://cdn.viing.com/build/assets/features-Bco6wD7e.js

js viing.com collected 2026-10-04 08:55:50 UTC 3,592 bytes, 1 lines download raw bytes

1var e=200,t=!1,n=e=>new Promise(t=>{window.setTimeout(t,e)}),r=async r=>{let i=document.querySelectorAll(`.js-feature-item`),a=i[r];t=!0,i.forEach(e=>{e.classList.remove(`opacity-100`),e.classList.add(`opacity-0`)}),await n(e),i.forEach(e=>e.classList.add(`hidden`)),a&&a.classList.remove(`hidden`),await n(10),a&&a.classList.add(`opacity-100`),await n(e),t=!1},i=(e,t)=>{let n=document.querySelector(`#features-slideshow .js-arrow-left`),r=document.querySelector(`#features-slideshow .js-arrow-right`);!n||!r||(e===0?n.setAttribute(`disabled`,`disabled`):n.removeAttribute(`disabled`),e===t-1?r.setAttribute(`disabled`,`disabled`):r.removeAttribute(`disabled`))},a=e=>{let t=document.querySelectorAll(`.js-features-container .js-features-pill`),n;return n=e===void 0?document.querySelector(`.js-features-container .js-features-pill.active`):typeof e==`string`?document.querySelector(e):e.closest?e.closest(`.js-features-pill`):e,{index:n?Array.from(t).indexOf(n):-1,length:t.length}},o=()=>{var e=document.querySelectorAll(`.review-filter-btn`),t=Array.from(document.querySelectorAll(`.review-card`)),n=document.getElementById(`review-arrow-left`),r=document.getElementById(`review-arrow-right`),i=document.getElementById(`review-cards`),a=`all`,o=0,s=3,c=!1;function l(){return a===`all`?t:t.filter(function(e){return e.getAttribute(`data-category`)===a})}function u(){return Math.ceil(l().length/s)}function d(){var e=l(),i=u(),c=o*s,d=c+s;t.forEach(function(e){e.classList.add(`hidden`),e.classList.remove(`flex`)}),e.forEach(function(e,t){t>=c&&t<d&&(e.classList.remove(`hidden`),e.classList.add(`flex`))}),a===`all`&&i>1?(n.classList.remove(`md:hidden`),n.classList.add(`md:flex`),r.classList.remove(`md:hidden`),r.classList.add(`md:flex`),n.style.opacity=o===0?`0.3`:`1`,n.style.pointerEvents=o===0?`none`:``,r.style.opacity=o>=i-1?`0.3`:`1`,r.style.pointerEvents=o>=i-1?`none`:``):(n.classList.add(`md:hidden`),n.classList.remove(`md:flex`),r.classList.add(`md:hidden`),r.classList.remove(`md:flex`))}function f(e){if(!e){d();return}c||(c=!0,i.style.opacity=`0`,setTimeout(function(){d(),i.style.opacity=`1`,setTimeout(function(){c=!1},300)},300))}e.forEach(function(t){t.addEventListener(`click`,function(){a=t.getAttribute(`data-filter`),o=0,e.forEach(function(e){e.classList.remove(`bg-oxford-700`,`text-white`,`active`),e.classList.add(`bg-transparent`,`text-oxford-700`)}),t.classList.remove(`bg-transparent`,`text-oxford-700`),t.classList.add(`bg-oxford-700`,`text-white`,`active`),f(!0)})}),n.addEventListener(`click`,function(){o>0&&(o--,f(!0))}),r.addEventListener(`click`,function(){o<u()-1&&(o++,f(!0))}),f(!1)},s=()=>{document.querySelectorAll(`.js-features-container .js-features-pill`).forEach(e=>{e.addEventListener(`click`,e=>{let n=e.target.closest(`.js-features-pill`);if(!n)return;let o=n.classList.contains(`active`);if(t||o)return;let{index:s,length:c}=a(n);document.querySelectorAll(`.js-features-container .active`).forEach(e=>e.classList.remove(`active`)),n.classList.add(`active`),i(s,c),r(s)})});let e=document.querySelector(`#features-slideshow .js-arrow-left`),n=document.querySelector(`#features-slideshow .js-arrow-right`);e?.addEventListener(`click`,()=>{if(t)return;let{index:e}=a(),n=document.querySelectorAll(`.js-features-container .js-features-pill`);e>0&&n[e-1].click()}),n?.addEventListener(`click`,()=>{if(t)return;let{index:e,length:n}=a(),r=document.querySelectorAll(`.js-features-container .js-features-pill`);e<n-1&&r[e+1].click()})};(e=>{document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,e):e()})(()=>{s(),o()});

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.