PageSourceSearch

https://www.travello.com/_next/static/chunks/2989-34d21334c5753a8b.js

js travello.com collected 2026-09-24 10:08:12 UTC 25,538 bytes, 708 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2989],{2013:(e,t,r)=>{r.d(t,{EJ:()=>p,yR:()=>h,SC:()=>C,vx:()=>A});var n=r(95155),a=r(12115),i=r(20063);let o=[/^(https?:)?\/\//,/^mailto:/i,/^tel:/i,/^sms:/i,/^whatsapp:/i,/^skype:/i,/^ftp:/i,/^file:/i,/^#/],c=new Set(["session","token","secret","key","password","auth","api_key","apikey","access_token","refresh_token","currency"]),u=new Set(["utm_source","utm_medium","utm_campaign","utm_term","utm_content","utm_id","gclid","fbclid","msclkid","dclid"]);function s(e){if(!e)return!1;let t=e.trim();for(let e of o)if(e.test(t)){if(t.startsWith("//")||/^mailto:|^tel:|^sms:|^whatsapp:|^skype:/i.test(t))return!0;if(t.startsWith("#")&&t.length>1)return!1;return!0}return!1}function l(e){if(!e)return"";let t=e.indexOf("#"),r=e.indexOf("?");if(-1!==t&&-1!==r&&r>t)return e.substring(r);try{return new URL(e,"http://localhost").search}catch{if(-1===r)return"";if(-1===t)return e.substring(r);return e.substring(r,t)}}function d(e){let t={};return e&&"?"!==e&&new URLSearchParams(e.startsWith("?")?e.substring(1):e).forEach((e,r)=>{let n=t[r];n?Array.isArray(n)?n.push(e):t[r]=[n,e]:t[r]=e}),t}function m(e){let t,{href:r,currentUrl:n,options:a={}}=e;if(!r)return{url:n||"/",isExternal:!1,href:n||"/"};let i=r.trim();if(s(i))return{url:i,isExternal:!0,href:i};if(i.startsWith("#")&&i.length>1){let e=(n||window.location.href).split("#"),t=e[0],r=e.slice(1).join("#"),[a]=t.split("?"),o="",c=t.indexOf("?");if(-1!==c)o=t.substring(c);else{let e=r.indexOf("?");-1!==e&&(o=r.substring(e))}return{url:`${a}${i}${o}`,isExternal:!1,href:`${a}${i}${o}`}}let o=function(e){if(!e)return"";let t=e.trim();return t.startsWith("/")||t.startsWith("http")||t.startsWith("#")||t.startsWith("mailto")||t.startsWith("tel")?t:`/${t}`}(i),m=function(e){if(!e)return"";try{return new URL(e,"http://localhost").pathname}catch{let t=e.indexOf("#"),r=e.indexOf("?");if(-1===r&&-1===t)return e;let n=-1===r?t:-1===t?r:Math.min(r,t);return e.substring(0,n)}}(o),h=function(e){if(!e)return"";let t=e.indexOf("#");if(-1===t)return"";let r=e.substring(t+1),n=r.indexOf("?");return -1!==n?"#"+r.substring(0,n):e.substring(t)}(o)||a.hash||"",y=l(o);if(m.includes("#")){let[e,t]=m.split("#");m=e,h=t?`#${t}`:""}else h&&!h.startsWith("#")&&(h=`#${h}`);let g=d(l(n||window.location.href||"/"));t=y?d(y):{};let p=[];Object.entries(t).forEach(([e,t])=>{p.push([e,t])});let P=new Set(Object.keys(t));if(a.replace||Object.entries(g).forEach(([e,t])=>{c.has(e.toLowerCase())||P.has(e)||p.push([e,t])}),a.query&&Object.entries(a.query).forEach(([e,t])=>{if(void 0!==t){let r=p.findIndex(([t])=>t===e);-1!==r?p[r]=[e,t]:p.push([e,t])}}),a.exclude){let e=new Set(a.exclude.map(e=>e.toLowerCase())),t=p.filter(([t])=>!e.has(t.toLowerCase()));p.length=0,p.push(...t)}a.query&&Object.entries(a.query).forEach(([e,t])=>{if(u.has(e.toLowerCase())&&void 0!==t){let r=p.findIndex(([t])=>t===e);-1!==r?p[r]=[e,t]:p.push([e,t])}});let f={};p.forEach(([e,t])=>{f[e]=t});let C=function(e){let t=[];return Object.entries(e).forEach(([e,r])=>{null!=r&&(Array.isArray(r)?r.forEach(r=>{null!=r&&t.push(""===r?encodeURIComponent(e):`${encodeURIComponent(e)}=${encodeURIComponent(r)}`)}):t.push(""===r?encodeURIComponent(e):`${encodeURIComponent(e)}=${encodeURIComponent(r)}`))}),t.length>0?`?${t.join("&")}`:""}(f),A=m;return h&&(A+=h),C&&"?"!==C&&(A+=C),{url:A,isExternal:!1,href:A}}function h(e,t,r){return m({href:e,currentUrl:t,options:r}).url}var y=r(52619),g=r.n(y);function p({href:e,query:t,exclude:r,hash:o,replace:c=!1,external:u,children:s,onClick:l,target:d,rel:h,className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,...S}){let w=(0,i.useRouter)(),I=(0,i.usePathname)(),[b,L]=(0,a.useState)(!1);(0,a.useEffect)(()=>{L(!0)},[]);let E=b?window.location.href:I||"/",$=(0,a.useMemo)(()=>m({href:e,currentUrl:E,options:{query:t,exclude:r,hash:o,replace:c}}),[e,E,t,r,o,c]),v=(0,a.useMemo)(()=>void 0!==u?u:$.isExternal,[u,$.isExternal]),x="_blank"===d,D=(0,a.useCallback)(e=>{if(!l||(l(e),!e.defaultPrevented))v||!x&&c&&(e.preventDefault(),w.replace($.href,{scroll:!0}))},[l,v,c,w,$.href,x]);if(v)return(0,n.jsx)("a",{href:$.href,target:d,rel:h||("_blank"===d?"noopener noreferrer":void 0),className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,onClick:l,...S,children:s});if(x)return(0,n.jsx)("a",{href:$.href,target:"_blank",rel:h||"noopener noreferrer",className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,onClick:l,...S,children:s});let[_,R]=$.href.split("?");return(0,n.jsx)(g(),{href:`${_}${R?`?${R}`:""}`,replace:c,className:y,style:p,title:P,id:f,"aria-label":C,"aria-disabled":A,onClick:D,...S,children:s})}let P=new Set([" ","	","\n","\r","\f"]),f=new Set(['"',"'"]);function C(e,t,r){return e?function(e,t,r){let n=function(e){let t=[],r=0;for(;r<e.length;){let n=e.indexOf("<",r);
1if(-1===n)break;let a=e.substring(n+1).toLowerCase();if(!a.startsWith("a ")&&!a.startsWith("a>")){r=n+1;continue}let i=function(e,t){let r=t;for(;r<e.length;){let t=e[r];if('"'===t||"'"===t){for(r++;r<e.length&&e[r]!==t;)r++;r++}else{if(">"===t)return r;r++}}return -1}(e,n);if(-1===i)break;let o=function(e){let t=e.toLowerCase(),r=t.indexOf("href=");if(-1===r)return null;if(r>0){if("h"!==t[r])return null;let n=e[r-1];if(n&&!P.has(n)&&"/"!==n&&">"!==n)return null}let n=function(e,t){let r=t;for(;r<e.length&&P.has(e[r]);)r++;if(r>=e.length)return null;let n=e[r];if(!f.has(n)){let t=r;for(;t<e.length;){let r=e[t];if(P.has(r)||">"===r||"/"===r)break;t++}return{value:e.substring(r,t),quote:"",endPos:t}}let a=++r;for(;r<e.length&&e[r]!==n;)r++;let i=r;return r++,{value:e.substring(a,i),quote:n,endPos:r}}(e,r+5);if(!n)return null;let a=n.endPos,i=e.substring(r,a);return{href:n.value,quote:n.quote||void 0,hrefAttrString:i}}(e.substring(n+1,i));if(o){let r=e.substring(i+1).match(/<\/a>/i),a="";if(r&&void 0!==r.index){let t=r.index;a=e.substring(n,i+1+t+r[0].length)}else a=e.substring(n,i+1);t.push({openStart:n,openEnd:i+1,fullMatch:a,href:o.href,quote:o.quote,hrefAttrString:o.hrefAttrString})}r=i+1}return t}(e);if(0===n.length)return e;let a=e;for(let e=n.length-1;e>=0;e--){let i=n[e];if(s(i.href)){let e=a.substring(i.openStart,i.openEnd);if(e.includes('target="_blank"')&&!e.includes("rel=")){let t=e.replace('target="_blank"','target="_blank" rel="noopener noreferrer"');a=a.substring(0,i.openStart)+t+a.substring(i.openEnd)}continue}let o=m({href:i.href,currentUrl:t,options:r}),c=i.quote||'"',u=i.hrefAttrString.match(/^([a-zA-Z][a-zA-Z0-9-_:.]*)=/),l=u?u[1]:"href",d=`${l}=${c}${o.href}${c}`,h=a.substring(i.openStart,i.openEnd).replace(i.hrefAttrString,d);a=a.substring(0,i.openStart)+h+a.substring(i.openEnd)}return a}(e,t||window.location.href,r):e}let A=(e,t,r,n="push")=>{e[n]({pathname:e.pathname,query:t},r,{shallow:!0})}},8730:(e,t,r)=>{r.d(t,{A:()=>o,M:()=>i});var n=r(12115);let a=(0,n.createContext)(null),i=()=>{let e=(0,n.useContext)(a);return{...e,asset:t=>t.startsWith("/")?`${e.bpdAssetsBaseUrl}${t}`:t,localAsset:t=>t.startsWith("/")?`https://${e.host}${t}`:t,shouldShowReviewsIoSection:e?.reviewsIoSection,shouldShowMillionDollarLandingPage:e?.millionDollarLandingPage,shouldShowPopUp:e?.popUpEnabled,priceFromFetchPeriodDays:e?.priceFromFetchPeriodDays,priceFromFetchPeriodDaysPerProviders:e?.priceFromFetchPeriodDaysPerProviders,isRefundableBookingEnabled:e?.isRefundableBookingEnabled,shouldShowNewSearchByDate:e?.isNewSearchByDateEnabled,isDisplayTimeSelectorOnCalendar:e?.isDisplayTimeSelectorOnCalendar,productIdsWithTimeSelector:e?.productIdsWithTimeSelector}},o=a.Provider},9763:(e,t,r)=>{r.d(t,{Tk:()=>a});var n=r(80207);let a=(0,n.J1)`
2    query ClientInfo($host: String!) {
3  clientInfo(host: $host) {
4    clientIP
5    countryName
6    cityName
7    isoCountryCode
8    timeZone
9    subdivisionName
10    currencyCode
11  }
12}
13    `},20377:(e,t,r)=>{r.d(t,{D:()=>a});let n={BACKPACKER_DEALS:"backpackerdeals",TRAVELLO:"travello",FLIGHT_CENTRE:"flightcentre",GAP_360:"gap360",SPACESHIPS:"spaceships",WIKICAMPS:"wikicamps",SYDNEY_EXPERT:"sydneyexpert",YHA:"yha",JUCY:"jucy",LOLA_BUBNER:"lolahubner",THE_BOUTIQUE_COLLECTION:"theboutiquecollection",TRAVEL_ASSOCIATES:"travelassociates",ISSY:"issy",AUSTRALIA_YOUR_WAY:"australia-your-way",CAIRNS:"cairns",CMR:"cmr",STUDENTS:"students",BROWNS:"browns",AUS_TRAVEL_TIPS:"austraveltips",LPK:"lpk",BARMY_ARMY:"barmyarmy",LINK_AIRWAYS:"linkairways",WAKACAMPA:"wakacampa",AWESOME_CAMPERS:"awesomecampers"},a=e=>{let t={[n.BACKPACKER_DEALS]:["backpackerdeals"],[n.TRAVELLO]:["travello"],[n.FLIGHT_CENTRE]:["flightcentre"],[n.GAP_360]:["gap360"],[n.SPACESHIPS]:["spaceships"],[n.WIKICAMPS]:["wikicamps"],[n.SYDNEY_EXPERT]:["sydneyexpert"],[n.YHA]:["yha"],[n.JUCY]:["jucy"],[n.LOLA_BUBNER]:["lolahubner"],[n.THE_BOUTIQUE_COLLECTION]:["theboutiquecollection"],[n.TRAVEL_ASSOCIATES]:["travelassociates"],[n.ISSY]:["issy"],[n.AUSTRALIA_YOUR_WAY]:["australiayourway"],[n.CAIRNS]:["cairns"],[n.CMR]:["cmr"],[n.STUDENTS]:["students"],[n.BROWNS]:["browns"],[n.AUS_TRAVEL_TIPS]:["austraveltips"],[n.LPK]:["lpk"],[n.BARMY_ARMY]:["barmyarmy"],[n.LINK_AIRWAYS]:["linkairways"],[n.WAKACAMPA]:["wakacampa"],[n.AWESOME_CAMPERS]:["awesomecampers"]},r=r=>t[r].includes(e);return{isBackpackerdealsChannel:r(n.BACKPACKER_DEALS),isTravelloChannel:r(n.TRAVELLO),isMasterChannel:r(n.BACKPACKER_DEALS)||r(n.TRAVELLO),isFlightCentreChannel:r(n.FLIGHT_CENTRE),isGap360Channel:r(n.GAP_360),isSpaceShipsChannel:r(n.SPACESHIPS),isWikiCampsChannel:r(n.WIKICAMPS),isSydneyExpertChannel:r(n.SYDNEY_EXPERT),isYhaChannel:r(n.YHA),isJucyChannel:r(n.JUCY),isLolaHubnerChannel:r(n.LOLA_BUBNER),isBoutiqueCollectionChannel:r(n.THE_BOUTIQUE_COLLECTION),isTravelAssociatesChannel:r(n.TRAVEL_ASSOCIATES),isIssyChannel:r(n.ISSY),isAustraliaYourWayChannel:r(n.AUSTRALIA_YOUR_WAY),isCairnsChannel:r(n.CAIRNS),isCmrChannel:r(n.CMR),isStudentsChannel:r(n.STUDENTS),isBrownsChannel:r(n.BROWNS),isAustraveltipsChannel:r(n.AUS_TRAVEL_TIPS),isLpkChannel:r(n.LPK),isBarmyArmyChannel:r(n.BARMY_ARMY),isLinkAirwaysChannel:r(n.LINK_AIRWAYS),isWakacampaChannel:r(n.WAKACAMPA),isAwesomeCampersChannel:r(n.AWESOME_CAMPERS)}}},27805:(e,t,r)=>{r.d(t,{Gu:()=>i});var n=r(78231);r(12115);
13let a={sm:480,md:768,lg:1024,xl:1140,xxl:1400,navXl:1149,lgSearch:992},i=()=>{let e=(0,n.A)(`(min-width: ${a.lgSearch}px)`,!1),t=(0,n.A)(`(min-width: ${a.navXl}px)`,!1),r=(0,n.A)(`(min-width: ${a.xxl}px)`,!1),i=(0,n.A)(`(min-width: ${a.xl}px)`,!1),o=(0,n.A)(`(min-width: ${a.lg}px)`,!1);return{lgSearchUp:e,navXlUp:t,xxlUp:r,xlUp:i,lgUp:o,mdUp:(0,n.A)(`(min-width: ${a.md}px)`,!1),smUp:(0,n.A)(`(min-width: ${a.sm}px)`,!0)}}},32085:(e,t,r)=>{r.d(t,{WM:()=>x,pV:()=>b});var n=r(80207);let a=(0,n.J1)`
14    fragment ImageCard on Image {
15  id
16  card500: imgSrc(transform: {width: 500, height: 300, withoutHost: true})
17  ogImage: fileName
18  fileName
19  altText
20}
21    `;(0,n.J1)`
22    fragment CityCard on BPD_City {
23  id
24  name
25  uniqueName
26  uri {
27    url
28  }
29  productCount
30  image {
31    ...ImageCard
32  }
33}
34    ${a}`,(0,n.J1)`
35    fragment CityCardV2 on ProductCityWithStatistic {
36  id
37  city {
38    id
39    name
40    uniqueName
41    uri {
42      url
43    }
44    image {
45      ...ImageCard
46    }
47    metaData {
48      priority
49    }
50    country {
51      id
52      name
53      uniqueName
54    }
55  }
56  productCount
57}
58    ${a}`,(0,n.J1)`
59    fragment CategoryCard on BPD_Category {
60  id
61  uri {
62    url
63  }
64  name
65  uniqueName
66  productCount
67  image {
68    ...ImageCard
69  }
70}
71    ${a}`,(0,n.J1)`
72    fragment CategoryCardV2 on ProductCategoryWithStatistic {
73  id
74  category {
75    id
76    name
77    uniqueName
78    uri {
79      url
80    }
81    image {
82      id
83      ...ImageCard
84    }
85    metaData {
86      priority
87    }
88  }
89  productCount
90}
91    ${a}`,(0,n.J1)`
92    fragment CountryCard on BPD_Country {
93  id
94  name
95  uniqueName
96  uri {
97    url
98  }
99  productCount
100  image {
101    ...ImageCard
102  }
103}
104    ${a}`,(0,n.J1)`
105    fragment CountryCardV2 on ProductCountryWithStatistic {
106  id
107  country {
108    id
109    name
110    uniqueName
111    uri {
112      url
113    }
114    image {
115      ...ImageCard
116    }
117  }
118  productCount
119}
120    ${a}`;let i=(0,n.J1)`
121    fragment HeroImage on Image {
122  id
123  top3000: imgSrc(transform: {width: 3000, height: 750, withoutHost: true})
124  top2400: imgSrc(transform: {width: 2400, height: 2400, withoutHost: true})
125  top1600: imgSrc(transform: {width: 1600, height: 1600, withoutHost: true})
126  top1400: imgSrc(transform: {width: 1400, height: 1400, withoutHost: true})
127  top1200: imgSrc(transform: {width: 1200, height: 375, withoutHost: true})
128  top1140: imgSrc(transform: {width: 1140, height: 1140, withoutHost: true})
129  top1024: imgSrc(transform: {width: 1024, height: 1024, withoutHost: true})
130  top800: imgSrc(transform: {width: 800, height: 800, withoutHost: true})
131  top768: imgSrc(transform: {width: 768, height: 768, withoutHost: true})
132  top500: imgSrc(transform: {width: 500, height: 500, withoutHost: true})
133  top480: imgSrc(transform: {width: 480, height: 480, withoutHost: true})
134  altText
135  fileName
136}
137    `,o=(0,n.J1)`
138    fragment ProductImage on ProductImage {
139  image {
140    ...HeroImage
141  }
142  isMainImage
143  position
144  productImageId
145  title
146  status
147}
148    ${i}`,c=(0,n.J1)`
149    fragment ProductLocation on ProductLocation {
150  city
151  country
152}
153    `,u=(0,n.J1)`
154    fragment ProductPartnerImage on Image {
155  id
156  partnerLogo: imgSrc(transform: {width: 250, height: 250, withoutHost: true})
157  altText
158  fileName
159}
160    `,s=(0,n.J1)`
161    fragment ProductPartner on Merchant {
162  id
163  name
164  email
165  website
166  otherInfo
167  salesEmail
168  companyLogo {
169    ...ProductPartnerImage
170  }
171  companyName
172  companyPhone
173  contactNumber
174  accountsEmail
175  contactPerson
176}
177    ${u}`,l=(0,n.J1)`
178    fragment ProductMoney on Money {
179  currencyCode
180  amount
181  convertedAmount(currencyCode: $currencyCode)
182}
183    `,d=(0,n.J1)`
184    fragment ProductLegacyPrice on ProductLegacyPrice {
185  price {
186    ...ProductMoney
187  }
188  value {
189    ...ProductMoney
190  }
191  type
192}
193    ${l}`,m=(0,n.J1)`
194    fragment ProductLegacyDisplayPrice on ProductLegacyDisplayPrice {
195  adultPrice {
196    ...ProductLegacyPrice
197  }
198  childPrice {
199    ...ProductLegacyPrice
200  }
201  familyPrice {
202    ...ProductLegacyPrice
203  }
204}
205    ${d}`,h=(0,n.J1)`
206    fragment ProductLegacy on ProductLegacy {
207  priceFrom {
208    ...ProductMoney
209  }
210  displayPrice {
211    ...ProductLegacyDisplayPrice
212  }
213  recommendedRetailPrice {
214    ...ProductMoney
215  }
216  shortId
217  updatedAt
218  subheader
219  countDownLimit
220  excludedBookingInfo
221  bookingUrl
222  openDatedBooking
223  showMerchant
224  hasNoIndexMetaTag
225  hidePickupOnFrontend
226  isDisplayGooglePay
227  isDisplayPaypal
228  isDisplayApplePay
229  isDisplayAfterpay
230  defaultDeparturePoint
231  isDisplayHotelPickupWarning
232}
233    ${l}
234${m}`,y=(0,n.J1)`
235    fragment ProductDiscountAmount on ProductDiscount {
236  discountAmount {
237    currencyCode
238    convertedAmount(currencyCode: $targetCurrency)
239  }
240}
241    `,g=(0,n.J1)`
242    fragment ProductVariantMoney on Money {
243  currencyCode
244  amount
245  convertedAmount(currencyCode: $targetCurrency)
246}
247    `,p=(0,n.J1)`
248    fragment ProductVariantPartner on Merchant {
249  id
250  name
251  email
252  website
253  otherInfo
254  salesEmail
255  companyLogo {
256    ...ProductPartnerImage
257  }
258  companyName
259  companyPhone
260  contactNumber
261  accountsEmail
262  contactPerson
263}
264    ${u}`,P=(0,n.J1)`
265    fragment ProductVariantLegacyPrice on ProductLegacyPrice {
266  price {
267    ...ProductVariantMoney
268  }
269  value {
270    ...ProductVariantMoney
271  }
272  type
273}
274    ${g}`,f=(0,n.J1)`
275    fragment ProductVariantLegacyDisplayPrice on ProductLegacyDisplayPrice {
276  adultPrice {
277    ...ProductVariantLegacyPrice
278  }
279  childPrice {
280    ...ProductVariantLegacyPrice
281  }
282  familyPrice {
283    ...ProductVariantLegacyPrice
284  }
285}
286    ${P}`,C=(0,n.J1)`
287    fragment ProductVariantLegacy on ProductLegacy {
288  priceFrom {
289    ...ProductVariantMoney
290  }
291  displayPrice {
292    ...ProductVariantLegacyDisplayPrice
293  }
294  recommendedRetailPrice {
295    ...ProductVariantMoney
296  }
297  shortId
298  updatedAt
299  subheader
300  countDownLimit
301  excludedBookingInfo
302  bookingUrl
303  openDatedBooking
304  showMerchant
305  hasNoIndexMetaTag
306  hidePickupOnFrontend
307  isDisplayGooglePay
308  isDisplayPaypal
309  isDisplayApplePay
310  isDisplayAfterpay
311  defaultDeparturePoint
312  isDisplayHotelPickupWarning
313}
314    ${g}
315${f}`,A=(0,n.J1)`
316    fragment VariantProduct on Product {
317  productId
318  resSystemType
319  title
320  status
321  nextAvailableDate
322  discounts {
323    ...ProductDiscountAmount
324  }
325  priceFrom {
326    ...ProductVariantMoney
327  }
328  priceFromAnP {
329    ...ProductVariantMoney
330  }
331  pickupDetails {
332    locationTitle
333  }
334  shortDescription {
335    text
336  }
337  labels
338  partner {
339    ...ProductVariantPartner
340  }
341  duration {
342    label
343    maxDuration
344    minDuration
345  }
346  uri {
347    slug
348    url
349  }
350  legacy {
351    ...ProductVariantLegacy
352  }
353}
354    ${y}
355${g}
356${p}
357${C}`,S=(0,n.J1)`
358    fragment ProductPageProduct on Product {
359  productId
360  resSystemType
361  priceFrom {
362    amount
363    convertedAmount
364    currencyCode
365  }
366  priceFromAnP {
367    amount
368    convertedAmount
369    currencyCode
370  }
371  nextAvailableDate
372  address {
373    address
374  }
375  categories {
376    category {
377      id
378      image {
379        altText
380        banner: fileName
381      }
382      name
383      uniqueName
384    }
385    isMainCategory
386  }
387  bookingRequired
388  title
389  status
390  instantConfirmation
391  itinerary {
392    itineraryItems {
393      description {
394        text
395      }
396      locationTitle
397      title
398    }
399    tourEndLocationTitle
400    tourStartLocationTitle
401  }
402  images {
403    productImages {
404      ...ProductImage
405    }
406  }
407  uri {
408    country
409    city
410    slug
411    url
412  }
413  location {
414    ...ProductLocation
415  }
416  ratingScore
417  totalReviews
418  shortDescription {
419    text
420  }
421  pickupDetails {
422    locationTitle
423  }
424  termsAndConditions {
425    text
426  }
427  exclusions {
428    text
429  }
430  faqs {
431    question
432    answer {
433      text
434    }
435  }
436  fullDescription {
437    text
438  }
439  labels
440  supplierTermsAndConditions {
441    text
442  }
443  benefits {
444    text
445  }
446  cancellationPolicy {
447    text
448  }
449  videoLinks
450  icons {
451    hints
452    name
453    src
454    value
455  }
456  travelInstructions {
457    text
458  }
459  enquireOnly
460  partner {
461    ...ProductPartner
462  }
463  duration {
464    label
465    maxDuration
466    minDuration
467  }
468  legacy {
469    ...ProductLegacy
470  }
471  variantProducts {
472    ...VariantProduct
473  }
474  recentReviews {
475    id
476    ratingScore
477    reviewCreatedAt
478    text
479    title
480    userName
481  }
482  skuProduct: bpd_shortId
483}
484    ${o}
485${c}
486${s}
487${h}
488${A}`;(0,n.J1)`
489    fragment ProductPage on BPD_ProductPage {
490  id
491  product {
492    ...ProductPageProduct
493  }
494}
495    ${S}`,(0,n.J1)`
496    fragment LevyFields on Levy {
497  label
498  value {
499    amount
500    currencyCode
501  }
502}
503    `,(0,n.J1)`
504    fragment TravelloPriceFields on TravelloPrice {
505  seatUsed
506}
507    `;let w=(0,n.J1)`
508    fragment ProductPaymentOptions on BPD_PaymentOptions {
509  laybuy
510  braintree
511  afterpay {
512    region
513    order_minimum
514    order_maximum
515  }
516}
517    `,I=(0,n.J1)`
518    fragment Product on Product {
519  productId
520  resSystemType
521  title
522  labels
523  enquireOnly
524  partner {
525    ...ProductVariantPartner
526  }
527  duration {
528    label
529    maxDuration
530    minDuration
531  }
532  uri {
533    slug
534    url
535  }
536  nextAvailableDate
537  recommendedRetailPrice {
538    ...ProductVariantMoney
539  }
540  priceFrom {
541    ...ProductVariantMoney
542  }
543  priceFromAnP {
544    ...ProductVariantMoney
545  }
546  discounts {
547    ...ProductDiscountAmount
548  }
549  variantProducts {
550    ...VariantProduct
551  }
552  parentProduct {
553    productId
554    requireAdultFareForChild
555  }
556  legacy {
557    ...ProductVariantLegacy
558  }
559  cashbackAmount {
560    ...ProductVariantMoney
561  }
562  requireAdultFareForChild
563}
564    ${p}
565${g}
566${y}
567${A}
568${C}`;(0,n.J1)`
569    query ProductDiscounts($productId: String!, $targetCurrency: String!) {
570  product(productId: $productId) {
571    productId
572    discounts {
573      ...ProductDiscountAmount
574    }
575  }
576}
577    ${y}`,(0,n.J1)`
578    query PaymentOptions($host: String!, $pathname: String!) {
579  bpd_page(host: $host, pathname: $pathname) {
580    id
581    ... on BPD_ProductPage {
582      paymentOptions {
583        ...ProductPaymentOptions
584      }
585    }
586  }
587}
588    ${w}`,(0,n.J1)`
589    query Product($productId: String!, $targetCurrency: String!) {
590  product(productId: $productId, targetCurrency: $targetCurrency) {
591    ...Product
592  }
593}
594    ${I}`;let b=(0,n.J1)`
595    fragment ProductCardImage on Image {
596  id
597  card_2x: imgSrc(transform: {width: 500, height: 500, withoutHost: true})
598  card_1x: imgSrc(transform: {width: 300, height: 300, withoutHost: true})
599  card: imgSrc(transform: {width: 250, height: 250, withoutHost: true})
600  altText
601}
602    `,L=(0,n.J1)`
603    fragment ProductCardMoney on Money {
604  currencyCode
605  amount
606  convertedAmount(currencyCode: $targetCurrency)
607}
608    `,E=(0,n.J1)`
609    fragment ProductCardLegacyPrice on ProductLegacyPrice {
610  price {
611    ...ProductCardMoney
612  }
613  value {
614    ...ProductCardMoney
615  }
616  type
617}
618    ${L}`,$=(0,n.J1)`
619    fragment ProductCardLegacyDisplayPrice on ProductLegacyDisplayPrice {
620  adultPrice {
621    ...ProductCardLegacyPrice
622  }
623  childPrice {
624    ...ProductCardLegacyPrice
625  }
626  familyPrice {
627    ...ProductCardLegacyPrice
628  }
629}
630    ${E}`,v=(0,n.J1)`
631    fragment ProductCardLegacy on ProductLegacy {
632  priceFrom {
633    ...ProductCardMoney
634  }
635  displayPrice {
636    ...ProductCardLegacyDisplayPrice
637  }
638  recommendedRetailPrice {
639    ...ProductCardMoney
640  }
641  countDownLimit
642  hasNoIndexMetaTag
643  hidePickupOnFrontend
644}
645    ${L}
646${$}`,x=(0,n.J1)`
647    fragment ProductCard on Product {
648  productId
649  title
650  images(first: 1) {
651    productImages {
652      image {
653        ...ProductCardImage
654      }
655    }
656  }
657  location {
658    country
659    city
660  }
661  uri {
662    country
663    city
664    url
665  }
666  priceFrom {
667    ...ProductCardMoney
668  }
669  discounts {
670    discountType
671    discountAmount {
672      convertedAmount
673      currencyCode
674      amount
675    }
676    displayName
677  }
678  saveDiscountAmount {
679    ...ProductCardMoney
680  }
681  totalReviews
682  ratingScore
683  labels
684  duration {
685    label
686    maxDuration
687    minDuration
688  }
689  legacy {
690    ...ProductCardLegacy
691  }
692  totalUnitSold {
693    label
694    number
695  }
696  customTag {
697    text
698    textColor
699    backgroundColor
700  }
701  cashbackAmount {
702    ...ProductVariantMoney
703  }
704}
705    ${b}
706${L}
707${v}
708${g}`},34331:(e,t,r)=>{r.d(t,{Ay:()=>c,Zo:()=>a,yl:()=>o});var n=r(23390);let a=(0,n.Yf)(e=>e.currency,e=>e.selectedCurrency),i=(0,n.Z0)({name:"currency",initialState:function(){try{window.localStorage?.removeItem("selectedCurrency")}catch{}return{}}(),reducers:{selectCurrency(e,t){e.selectedCurrency=t.payload}}}),{selectCurrency:o}=i.actions,c=i},36598:(e,t,r)=>{function n(e){return e}r.d(t,{YL:()=>n}),r(87358)},44115:(e,t,r)=>{r.d(t,{R:()=>n});let n=()=>({id:3,name:"AUD",isoSymbol:"AUD",uniRate:1,symbol:"AUD $"})},70667:(e,t,r)=>{r.d(t,{zu:()=>P,WD:()=>f});var n=r(95155),a=r(12115),i=r(33785),o=r(414),c=r(9763),u=r(36117),s=r.n(u),l=r(98300);let d=e=>"object"==typeof e&&null!==e,m=e=>"string"==typeof e||void 0===e,h=(0,a.createContext)({}),y=new Map,g=new Map;async function p(e,t){let r=y.get(e);if(r)return r;let n=g.get(e);if(void 0!==n)return n;let a=t().then(t=>{let r=t?.data??{};return r.clientInfo&&(y.set(e,r),(e=>{if(void 0===window.localStorage||!e?.clientInfo)return;let t=e.clientInfo,r={clientIP:t.clientIP,countryName:t.countryName,cityName:t.cityName,isoCountryCode:t.isoCountryCode,timeZone:t.timeZone,subdivisionName:t.
708subdivisionName,currencyCode:t.currencyCode},n=s()(),a={updatedAt:n.valueOf(),expiresAt:n.add(l.kq,"millisecond").valueOf(),clientInfo:r};try{window.localStorage.setItem(l.dZ,JSON.stringify(a))}catch(e){console.error("Failed to save client info to localStorage",e)}})(r)),r}).finally(()=>{g.delete(e)});return g.set(e,a),a}function P({host:e,children:t}){let r=(0,o.m)(),u=y.get(e)??(()=>{let e;if(void 0===window.localStorage)return null;let t=window.localStorage.getItem(l.dZ);if(!t)return null;try{e=JSON.parse(t)}catch{try{window.localStorage.removeItem(l.dZ)}catch{}return null}if(!(e=>{if(!d(e))return!1;let{updatedAt:t,expiresAt:r,clientInfo:n}=e;return"number"==typeof t&&Number.isFinite(t)&&"number"==typeof r&&Number.isFinite(r)&&(e=>{if(!d(e))return!1;let{clientIP:t,countryName:r,cityName:n,isoCountryCode:a,timeZone:i,subdivisionName:o,currencyCode:c}=e;return m(t)&&m(r)&&m(n)&&m(a)&&m(i)&&m(o)&&m(c)})(n)})(e)){try{window.localStorage.removeItem(l.dZ)}catch{}return null}let{expiresAt:r,clientInfo:n}=e;if(s()().isAfter(s()(r))){try{window.localStorage.removeItem(l.dZ)}catch{}return null}return{clientInfo:n}})()??{},[g,P]=(0,a.useState)(u);u.clientInfo&&!y.has(e)&&y.set(e,u);let f=(0,a.useRef)(!0);(0,i.A)(()=>()=>{f.current=!1});let C=async()=>e?{data:(await r.query({query:c.Tk,variables:{host:e},fetchPolicy:"network-only"})).data}:{};(0,i.A)(()=>{g.clientInfo||(async()=>{var t;let r=await p(e,C);if(!f.current)return;let n=r.clientInfo;(t=g.clientInfo)===n||t&&n&&t.clientIP===n.clientIP&&t.countryName===n.countryName&&t.cityName===n.cityName&&t.isoCountryCode===n.isoCountryCode&&t.timeZone===n.timeZone&&t.subdivisionName===n.subdivisionName&&t.currencyCode===n.currencyCode||P(r)})()});let A=(0,a.useMemo)(()=>g,[g]);return(0,n.jsx)(h.Provider,{value:A,children:t})}let f=()=>(0,a.useContext)(h)},98300:(e,t,r)=>{r.d(t,{$i:()=>u,OV:()=>i,QE:()=>a,Sx:()=>p,XS:()=>c,dZ:()=>y,eD:()=>g,gM:()=>s,gg:()=>n,kq:()=>h,mS:()=>l,os:()=>m,sK:()=>o,xb:()=>d});let n="/cars-rental",a="/campervans-rental",i={LOCALHOST:"localhost-v3"},o="https://assets.backpackerdeals.com",c=`${o}/uploads/content/og-image-default.jpg`,u="(max-width: 768px) 100vw, 50vw",s="query-histories",l=10,d="Recent Searches",m="/search-results?text=",h=36e5,y="client_info_v1",g="backpackerdeals",p="DD MMM, YYYY"}}]);

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.