PageSourceSearch

https://www.timbuktutravel.com/rollup-assets/Layout.astro_astro_type_script_index_6_lang-D41HzNCm.js

js timbuktutravel.com collected 2026-10-03 21:17:20 UTC 13,457 bytes, 1 lines download raw bytes

1import{i as ee}from"./initializeSlider-BLl4CINM.js";const q=[{name:"reviews",selector:".reviews",config:{sliderSelector:".reviews",trackSelector:".reviews-slider-track",prevButtonSelector:".reviews-btn-prev",nextButtonSelector:".reviews-btn-next",cardSelector:".reviews-card"}},{name:"experts",selector:".experts",config:{sliderSelector:".experts",trackSelector:".experts-slider-track",prevButtonSelector:".experts-btn-prev",nextButtonSelector:".experts-btn-next",cardSelector:".experts-card"}},{name:"blogs",selector:".blogs",config:{sliderSelector:".blogs",trackSelector:".blogs-slider-track",prevButtonSelector:".blogs-btn-prev",nextButtonSelector:".blogs-btn-next",cardSelector:".blogs-card"}},{name:"specialists",selector:".specialists",config:{sliderSelector:".specialists",trackSelector:".specialists-slider-track",prevButtonSelector:".specialists-btn-prev",nextButtonSelector:".specialists-btn-next",cardSelector:".specialists-card"}},{name:"continents",selector:".continents",config:{sliderSelector:".continents",trackSelector:".continents-slider-track",prevButtonSelector:".continents-btn-prev",nextButtonSelector:".continents-btn-next",cardSelector:".continents-card"}},{name:"infoSlider",selector:".infoSlider",config:{sliderSelector:".infoSlider",trackSelector:".infoSlider-slider-track",prevButtonSelector:".infoSlider-btn-prev",nextButtonSelector:".infoSlider-btn-next",cardSelector:".infoSlider-card"}},{name:"experience",selector:".experience",config:{sliderSelector:".experience",trackSelector:".experience-slider-track",prevButtonSelector:".experience-btn-prev",nextButtonSelector:".experience-btn-next",cardSelector:".experience-card"}},{name:"trips",selector:".trips",config:{sliderSelector:".trips",trackSelector:".trips-slider-track",prevButtonSelector:".trips-btn-prev",nextButtonSelector:".trips-btn-next",cardSelector:".trips-card"}},{name:"searchby",selector:".searchby",config:{sliderSelector:".searchby",trackSelector:".searchby-slider-track",prevButtonSelector:".searchby-btn-prev",nextButtonSelector:".searchby-btn-next",cardSelector:".searchby-card"}},{name:"lodges",selector:".lodges",config:{sliderSelector:".lodges",trackSelector:".lodges-slider-track",prevButtonSelector:".lodges-btn-prev",nextButtonSelector:".lodges-btn-next",cardSelector:".lodges-card"}},{name:"wildlife",selector:".wildlife",config:{sliderSelector:".wildlife",trackSelector:".wildlife-slider-track",prevButtonSelector:".wildlife-btn-prev",nextButtonSelector:".wildlife-btn-next",cardSelector:".wildlife-card"}},{name:"inspired-destinations",selector:".inspired-destinations",config:{sliderSelector:".inspired-destinations",trackSelector:".inspired-slider-track-destinations",prevButtonSelector:".inspired-btn-prev-destinations",nextButtonSelector:".inspired-btn-next-destinations",cardSelector:".inspired-card-destinations"}},{name:"inspired-experiences",selector:".inspired-experiences",config:{sliderSelector:".inspired-experiences",trackSelector:".inspired-slider-track-experiences",prevButtonSelector:".inspired-btn-prev-experiences",nextButtonSelector:".inspired-btn-next-experiences",cardSelector:".inspired-card-experiences"}},{name:"inspired-traveller-type",selector:".inspired-traveller-type",config:{sliderSelector:".inspired-traveller-type",trackSelector:".inspired-slider-track-traveller-type",prevButtonSelector:".inspired-btn-prev-traveller-type",nextButtonSelector:".inspired-btn-next-traveller-type",cardSelector:".inspired-card-traveller-type"}},{name:"inspired-time-of-year",selector:".inspired-time-of-year",config:{sliderSelector:".inspired-time-of-year",trackSelector:".inspired-slider-track-time-of-year",prevButtonSelector:".inspired-btn-prev-time-of-year",nextButtonSelector:".inspired-btn-next-time-of-year",cardSelector:".inspired-card-time-of-year"}},{name:"inspired-all-experiences",selector:".inspired-all-experiences",config:{sliderSelector:".inspired-all-experiences",trackSelector:".inspired-slider-track-all-experiences",prevButtonSelector:".inspired-btn-prev-all-experiences",nextButtonSelector:".inspired-btn-next-all-experiences",cardSelector:".inspired-card-all-experiences"}},{name:"inspired-wildlife-and-safari",selector:".inspired-wildlife-and-safari",config:{sliderSelector:".inspired-wildlife-and-safari",trackSelector:".inspired-slider-track-wildlife-and-safari",prevButtonSelector:".inspired-btn-prev-wildlife-and-safari",nextButtonSelector:".inspired-btn-next-wildlife-and-safari",cardSelector:".inspired-card-wildlife-and-safari"}},{name:"inspired-experiences-alt",selector:".inspired-experiences-alt",config:{sliderSelector:".inspired-experiences-alt",trackSelector:".inspired-slider-track-experiences-alt",prevButtonSelector:".inspired-btn-prev-experiences-alt",nextButtonSelector:".inspired-btn-next-experiences-alt",cardSelector:".inspired-card-experiences-alt"}},{name:"inspired-traveller-type-alt",selector:".inspired-traveller-type-alt",config:{sliderSelector:".inspired-traveller-type-alt",trackSelector:".inspired-slider-track-traveller-type-alt",prevButtonSelector:".inspired-btn-prev-traveller-type-alt",nextButtonSelector:".inspired-btn-next-traveller-type-alt",cardSelector:".inspired-card-traveller-type-alt"}},{name:"favourites-destinations",selector:".favourites-destinations",config:{sliderSelector:".favourites-destinations",trackSelector:".favourites-slider-track-destinations",prevButtonSelector:".favourites-btn-prev-destinations",nextButtonSelector:".favourites-btn-next-destinations",cardSelector:".favourites-card-destinations"}},{name:"favourites-trips",selector:".favourites-trips",config:{sliderSelector:".favourites-trips",trackSelector:".favourites-slider-track-trips",prevButtonSelector:".favourites-btn-prev-trips",nextButtonSelector:".favourites-btn-next-trips",cardSelector:".favourites-card-trips"}},{name:"favourites-lodges",selector:".favourites-lodges",config:{sliderSelector:".favourites-lodges",trackSelector:".favourites-slider-track-lodges",prevButtonSelector:".favourites-btn-prev-lodges",nextButtonSelector:".favourites-btn-next-lodges",cardSelector:".favourites-card-lodges"}},{name:"when-to-visit",selector:".when-to-visit",config:{sliderSelector:".when-to-visit",trackSelector:".when-to-visit-slider-track",prevButtonSelector:".when-to-visit-btn-prev",nextButtonSelector:".when-to-visit-btn-next",cardSelector:".when-to-visit-card"}},{name:"ptv",selector:".ptv",config:{sliderSelector:".ptv",trackSelector:".ptv-slider-track",cardSelector:"ptv-card"}},{name:"when-to-go",selector:".when-to-go",config:{sliderSelector:".when-to-go",trackSelector:".when-to-go-slider-track",prevButtonSelector:".when-to-go-btn-prev",nextButtonSelector:".when-to-go-btn-next",cardSelector:".when-to-go-card"}},{name:"experience",selector:".experience",config:{sliderSelector:".experience",trackSelector:".experience-slider-track",prevButtonSelector:".experience-btn-prev",nextButtonSelector:".experience-btn-next",cardSelector:".experience-card"}}];function D(t=".clickable-card"){document.querySelectorAll(`${t}
1`).forEach(e=>{e.addEventListener("click",i=>{i.target.closest(".ignore-click")&&i.preventDefault()})})}const P="assets.timbuktutravel.com",y="assets.waybird.com",te=["waybird.imgix.net","timbuktutravel.imgix.net","dev-assets.timbuktutravel.com"];function re(t){let e=t;for(const i of te)e=e.replace(i,P);return e}function H(t){return t.replace(P,y)}function O(t){return{"left top":"0x0","left center":"0x0.5","left bottom":"0x1","right top":"1x0","right center":"1x0.5","right bottom":"1x1","center top":"0.5x0","center center":"0.5x0.5","center bottom":"0.5x1"}[t]||"0.5x0.5"}const ie=t=>{if(!t)return;const e="imageInfo"in t?t.imageInfo:t,i="position"in t?t.position:void 0,r="width"in t?t.width:void 0,o="height"in t?t.height:void 0;if(!e)return;if(e.imageFallBack&&(!e.imageId||!e.imagePath))return e.imageFallBack.originalUrl;if(!e.imageId||!e.imagePath)return;const{attachmentType:c="kodak_images"}=e,a=[String(Math.floor(e.imageId/1e6)).padStart(3,"0"),String(Math.floor(e.imageId%1e6/1e3)).padStart(3,"0"),String(e.imageId%1e3).padStart(3,"0")].join("/"),u=`https://${y}/${e.reference}/${c}/${a}/original/${e.imagePath}`,l=[];r&&l.push(`width=${r}`),o&&l.push(`height=${o}`),i&&(l.push("fit=crop"),l.push(`gravity=${O(i)}`)),l.push("quality=50"),l.push("format=auto");const S=l.join(",");return`https://${y}/cdn-cgi/image/${S}/${u}`};function M(t,e,i,r,o){if(t.startsWith("/static/"))return t;if(t.includes("/cdn-cgi/image/")){const u=t.indexOf("/cdn-cgi/image/"),l=t.substring(u+15),S=l.indexOf("/"),d=H(l.substring(S+1)),s=[];return e&&s.push(`width=${e}`),i&&s.push(`height=${i}`),e&&i&&s.push(r?"fit=crop":"fit=scale-down"),r&&s.push(`gravity=${O(r)}`),s.push("quality=50"),s.push("format=auto"),`https://${y}/cdn-cgi/image/${s.join(",")}/${d}`}let c=re(t);c=c.split("?")[0],c.startsWith("http")||(c=`https://${P}${c}`),c=H(c);const a=[];return e&&a.push(`width=${e}`),i&&a.push(`height=${i}`),e&&i&&a.push(r?"fit=crop":"fit=scale-down"),r&&a.push(`gravity=${O(r)}`),a.push("quality=50"),a.push("format=auto"),`https://${y}/cdn-cgi/image/${a.join(",")}/${c}`}const ne=({src:t,widths:e,heights:i,w:r,h:o,position:c})=>{let a=M(t,r,o,c),u="";if(e){u=e.map((S,d)=>{const s=i?.[d]??(o&&r?Math.round(S*(o/r)):void 0);return`${M(t,S,s,c)} ${S}w`}).join(",");const l=i?.[0]??(o&&r?Math.round(e[0]*(o/r)):void 0);a=M(t,e[0],l,c)}return{imgSrc:a,srcset:u}};function oe(){setTimeout(()=>{document.querySelectorAll(".image-carousel-container").forEach(e=>{if(!e||e.hasAttribute("data-initialized"))return;e.setAttribute("data-initialized","true");const i=e.querySelector(".image-carousel-images"),r=e.querySelector(".carousel-prev-btn"),o=e.querySelector(".carousel-next-btn"),c=e.querySelectorAll(".circle"),a=JSON.parse(e.getAttribute("data-images")||"[]"),u=e.getBoundingClientRect().width,l=JSON.parse(e.getAttribute("data-widths")||"[]"),S=JSON.parse(e.getAttribute("data-sizes")||"[]");let d=parseInt(e.getAttribute("data-w")||"0",10);parseInt(e.getAttribute("data-h")||"0",10);const s=e.hasAttribute("data-disable-touch")||e.getAttribute("data-enable-touch")==="false";u&&u>0&&(d=Math.floor(u));const R=e.getAttribute("data-uniqueSpinnerId"),X=document.getElementById(R||"");let C=a.length+1,m=0,I=!1,z=0,L=0,Y=0,N=0,E=!1;const J=50,W=100,$=i.querySelector(".carousel-image");$&&($.style.width=`${d}px`,$.style.flexShrink="0",$.style.flexGrow="0");function F(){I||(X?.classList.remove("hidden"),a.forEach(n=>{const g=n.imageSource||ie(n)||"",{imgSrc:p,srcset:w}=ne({src:g,widths:l.length>0?l:[d],w:d}),f=document.createElement("img");f.src=p,f.srcset=w,f.alt=n.imageAlt||"Image",f.style.flexShrink="0",f.style.flexGrow="0",f.sizes=S,f.className="w-full h-full object-cover carousel-image",i.appendChild(f)}),X?.classList.add("hidden"),I=!0,k())}function k(){const n=-m*d;i.style.transform=`translateX(${n}px)`,c.forEach((g,p)=>{g.classList.toggle("active",p===m&&p<5)})}function G(){I||F(),m=(m+1)%C,k()}function _(){I||F(),m=(m-1+C)%C,k()}function K(n){s||(z=n.touches[0].clientX,L=n.touches[0].clientY,E=!0)}function V(n){if(s||!E)return;const g=n.touches[0].clientX,p=n.touches[0].clientY,w=Math.abs(g-z),f=Math.abs(p-L);w>f&&n.preventDefault()}function Q(n){s||!E||(Y=n.changedTouches[0].clientX,N=n.changedTouches[0].clientY,E=!1,Z())}function Z(){if(s)return;const n=Y-z,g=N-L,p=Math.abs(n),w=Math.abs(g);p>J&&w<W&&(n>0?_():G())}o?.addEventListener("click",G),r?.addEventListener("click",_),s||(e.addEventListener("touchstart",K,{passive:!1}),e.addEventListener("touchmove",V,{passive:!1}),e.addEventListener("touchend",Q,{passive:!0}));let j;window.addEventListener("resize",()=>{clearTimeout(j),j=setTimeout(()=>{const n=e.getBoundingClientRect().width;n>0&&(d=Math.floor(n),i.querySelectorAll(".carousel-image").forEach(p=>{p.style.width=`${d}px`}),k())},100)},{passive:!0}),k()})},0)}const h=new Set,A=new Set,x=new Map;function b(){let t=!1;
1q.forEach(e=>{if(h.has(e.name)&&!document.querySelector(e.selector)){if(x.has(e.name)){const r=x.get(e.name);typeof r=="function"&&r(),x.delete(e.name)}h.delete(e.name)}}),q.forEach(e=>{if(document.querySelectorAll(e.selector).length>0&&!h.has(e.name))try{D(e.config.cardSelector);const r=ee(e.config);typeof r=="function"&&x.set(e.name,r),h.add(e.name),t=!0}catch(r){console.error(`Error initializing slider ${e.name}:`,r)}});try{D()}catch(e){console.warn("Error in initClickHandler:",e)}try{const e=document.querySelectorAll(".image-carousel-container");let i=!1;e.forEach(r=>{let o=r.id||r.getAttribute("data-carousel-id")||r.getAttribute("data-uniqueSpinnerId");o||(o="carousel-"+Math.random().toString(36).substring(2,11),r.setAttribute("data-carousel-id",o)),A.has(o)||(A.add(o),i=!0)}),i&&oe()}catch(e){console.error("Error initializing carousels:",e)}return t}let B=0,v=null;function ce(){B++;const t=q.every(e=>!document.querySelector(e.selector)||h.has(e.name));(B>15&&t||B>60)&&(clearInterval(v),v=null)}function U(){B=0,v&&clearInterval(v),b(),v=setInterval(()=>{b(),ce()},Math.min(1e3+B*500,5e3))}function T(){x.forEach(t=>{typeof t=="function"&&t()}),x.clear(),h.clear(),b()}document.addEventListener("astro:page-load",T);document.addEventListener("DOMContentLoaded",U);document.addEventListener("lazyload:loaded",()=>{setTimeout(()=>{b(),v||U()},200)});window.addEventListener("load",()=>{b()});window.initializeAllComponents=()=>{A.clear(),T(),v||U()};window.initializeAllSliders=window.initializeAllComponents;window.forceInitializeCarousel=()=>{A.clear(),b()};window.initClickHandler=D;

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.