PageSourceSearch

https://www.discoveryholidayparks.com.au/client/dist/scripts/chunk…ync_recursive_en-au.aa02e964591b49ca5dee.js

js discoveryholidayparks.com.au collected 2026-10-03 21:43:45 UTC 24,614 bytes, 2 lines download raw bytes

1(self.webpackChunkdisp0001=self.webpackChunkdisp0001||[]).push([["src_services_api-transformation-service_js-node_modules_moment_locale_sync_recursive_en-au","node_modules_moment_locale_sync_recursive_en-au-_98ee0","node_modules_moment_locale_sync_recursive_en-au-_98ee1"],{6072:function(e,t,i){"use strict";i.d(t,{default:function(){return a}});i(5093);class a{constructor(){this.fallbackImages={DogsNotAllowed:"/client/dist/images/dognotallowed.svg",DogsAllowed:"/client/dist/images/dogallowed.svg",DogsSeasonallyAllowed:"/client/dist/images/dogseasonalallowed.svg"},this.isDhp=!!$("html").hasClass("dhp-theme")}createEmptyResponse(){return{From:null,To:null,Summary:"",AvailableProperties:[],NotAvailableProperties:[],AvailableDeals:[],Message:null,UnavailableReasonType:null,ShowNearbyParks:!1,NearbyParks:[],ParkDataLayer:null}}transformExperienceApiResponseForAccommodationAvailability(e,t,i){if(!e?.result)return this.createEmptyResponse();const a=e.result,o=moment(t.arrive),n=moment(t.depart);return{From:t.arrive,To:t.depart,Summary:i.generateSummaryText?i.generateSummaryText(t):this.generateSummaryText(t),AvailableProperties:this.transformAvailableAccommodations(a.available||[],o,n,t,i.priceSort),NotAvailableProperties:this.transformUnavailableAccommodations(a.unavailable||[],t),AvailableDeals:i.transformDeals?i.transformDeals(a.deals||[],t,a):this.transformDeals(a.deals||[],t,a),Message:a.messages?.[0]?.message||null,UnavailableReasonType:null,ShowNearbyParks:!!(a.nearbyParks&&a.nearbyParks.length>0),NearbyParks:this.transformNearbyParks(a.nearbyParks||[],i.updateTitleCallback),ParkDataLayer:null}}transformExperienceApiResponse(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"price-desc";if(!e?.result)return this.createEmptyResponse();const a=e.result,o=moment(t.arrive),n=moment(t.depart);return{From:t.arrive,To:t.depart,Summary:this.generateSummaryText(t),AvailableProperties:this.transformAvailableAccommodations(a.available||[],o,n,t,i),NotAvailableProperties:this.transformUnavailableAccommodations(a.unavailable||[],t),AvailableDeals:this.transformDeals(a.deals||[],t,e),Message:a.messages?.[0]?.message||null,UnavailableReasonType:null,ShowNearbyParks:!!(a.nearbyParks&&a.nearbyParks.length>0),NearbyParks:this.transformNearbyParks(a.nearbyParks||[]),ParkDataLayer:null}}transformBffAvailabilityResponse(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"price-desc";if(!e?.result)return this.createEmptyResponse();const a=e.result,o=moment(t.arrive),n=moment(t.depart),r=window.location.pathname+window.location.search,s=(a.available||[]).filter((e=>Array.isArray(e.offers)&&e.offers.length>0)).map((e=>this.transformBffAccommodation(e,o,n,t,r))),l="price-desc"==i,c=s.sort(((e,t)=>l?t.BasePrice-e.BasePrice:e.BasePrice-t.BasePrice)).sort(((e,t)=>(t.DealApplied||!1)-(e.DealApplied||!1)));return{From:t.arrive,To:t.depart,Summary:this.generateSummaryText(t),AvailableProperties:c,NotAvailableProperties:(a.unavailable||[]).map((e=>this.transformUnavailableAccommodation({...e,availability:[],features:e.features||[],webUrl:e.webUrl||r,minStay:e.minNightsStay||e.minStay||null},t))),AvailableDeals:[],Message:a.messages?.[0]?.message||null,UnavailableReasonType:null,ShowNearbyParks:!1,NearbyParks:[],ParkDataLayer:null}}extractLowestOfferPricing(e){const t=(e||[]).filter((e=>e&&e.price&&["DealOffer","MemberOffer"].includes(e.templateCode)));if(0===t.length)return{};const i=e=>{const t=Number(e.price.totalAmount),i=Number(e.price.baseAmount);return Number.isFinite(t)?t:Number.isFinite(i)?i:1/0},a=e=>e.reduce(((e,t)=>!e||i(t)<i(e)?t:e),null),o=t.filter((e=>"DealOffer"===e.templateCode)),n=t.filter((e=>"MemberOffer"===e.templateCode)),r=a(o)||a(n);if(!r?.price)return{};const s=a(n);return{baseAmount:this.fixPricingPrecision(r.price.baseAmount)||null,totalAmount:this.fixPricingPrecision(r.price.totalAmount)||null,saving:this.fixPricingPrecision(r.price.saving)||null,additionalAdult:this.fixPricingPrecision(r.price.rateBreakdown?.additionalAdult)||null,additionalChild:this.fixPricingPrecision(r.price.rateBreakdown?.additionalChild)||null,templateCode:r.templateCode,memberPrice:s?this.fixPricingPrecision(s.price?.totalAmount):r.price.totalAmount?this.fixPricingPrecision(Math.round(.9*r.price.totalAmount)):null}}transformBffAccommodation(e,t,i,a,o){const n=this.extractLowestOfferPricing(e.offers||[]),r=n.baseAmount||n.totalAmount||0,s=(e.features||[]).some((e=>"IsCampingOnly"==e.code)),l=e.webUrl||o;return{AccommodationId:e.accommodationId||0,RoomCode:e.code||"",RoomName:e.name||"",Type:e.subTypeDisplayName||e.type||"",TypeId:0,Beds:e.maxGuests||0,StayDays:i.diff(t,"days"),BasePrice:r,TotalPrice:"DealOffer"===n.templateCode&&n.totalAmount||r,RRP:"DealOffer"===n.templateCode&&n.baseAmount||null,TotalIncludingDealDiscounts:n.totalAmount,TotalNotIncludingDealDiscounts:n.baseAmount,DealPrice:"DealOffer"===n.templateCode&&n.totalAmount||r,DealAmount:"DealOffer"===n.templateCode&&n.saving||0,DealApplied:!!("DealOffer"===n.templateCode&&n.saving&&n.saving>0),MembersPrice:"MemberOffer"===n.templateCode?n.totalAmount:n.memberPrice||Math.round(.9*r),AdditionalAdultPrice
1:n.additionalAdult||0,AdditionalChildPrice:n.additionalChild||0,AdditionalInfantPrice:0,Tooltip:e.beddingConfiguration,MinStay:e.minNightsStay||e.minStay||null,IsCamping:s,InfoUrl:null,BookUrl:null,ImageUrls:this.transformImages(e.images||[]),RoomUrl:l,CallToBook:e.callToBook,ActionButtons:this.generateActionButtons({...e,webUrl:l},a),Dates:[],AccommodationFromPrice:r,Restrictions:this.transformRestrictions({...e,features:e.features||[]}),IsOutbound:!!this.isDhp&&e.outbound?.isOutbound,BookingRedirectUrl:e.outbound?.bookingRedirectUrl,AccommodationsAvailable:e.accommodationsAvailable??null,AccommodationType:e.type||null}}transformAvailableAccommodations(e,t,i,a,o){let n=e.filter((e=>e.availability&&e.availability.length>0)).map((e=>this.transformAccommodation(e,t,i,a))),r="price-desc"==o;return n=n.sort(((e,t)=>r?t.BasePrice-e.BasePrice:e.BasePrice-t.BasePrice)).sort(((e,t)=>(t.DealApplied||!1)-(e.DealApplied||!1))),n}transformUnavailableAccommodations(e,t){return e.map((e=>this.transformUnavailableAccommodation(e,t)))}transformUnavailableAccommodation(e,t){const i=this.transformAvailabilityDates(e.availability),a=e.features.some((e=>"IsCampingOnly"==e.code));return{AccommodationId:e.accommodationId||0,RoomCode:e.code||"",RoomName:e.name||"",Type:e.subTypeDisplayName||"",TypeId:0,Beds:e.maxGuests||0,StayDays:0,BasePrice:0,TotalPrice:0,TotalIncludingDealDiscounts:0,TotalNotIncludingDealDiscounts:0,DealPrice:0,DealAmount:0,MembersPrice:0,AdditionalAdultPrice:0,AdditionalChildPrice:0,AdditionalInfantPrice:0,Tooltip:e.description||"",MinStay:e.minStay||null,IsCamping:a,InfoUrl:null,BookUrl:null,ImageUrls:this.transformImages(e.images||[]),RoomUrl:this.generateRoomUrl(e),CallToBook:e.callToBook,ActionButtons:this.generateActionButtons(e,t,!1),Dates:i,AccommodationFromPrice:0,Restrictions:this.transformRestrictions(e)}}extractOfferPricing(e){if(!e||0===e.length)return{};try{const t=e.filter((e=>e&&e.templateCode&&["DealOffer","MemberOffer"].includes(e.templateCode)));if(0===t.length)return{};const i=t.filter((e=>"DealOffer"===e.templateCode)),a=t.filter((e=>"MemberOffer"===e.templateCode)),o=i.length>0?i[0]:a[0];return o&&o.price?{baseAmount:this.fixPricingPrecision(o.price.baseAmount)||null,totalAmount:this.fixPricingPrecision(o.price.totalAmount)||null,saving:this.fixPricingPrecision(o.price.saving)||null,additionalAdult:this.fixPricingPrecision(o.price.rateBreakdown?.additionalAdult)||null,additionalChild:this.fixPricingPrecision(o.price.rateBreakdown?.additionalChild)||null,templateCode:o.templateCode,memberPrice:a.length>0?this.fixPricingPrecision(a[0].price?.totalAmount):o.price.totalAmount?this.fixPricingPrecision(Math.round(.9*o.price.totalAmount)):null}:{}}catch(e){return{}}}transformAccommodation(e,t,i,a){const o=this.calculateTotalPrice(e.availability,t,i),n=this.transformAvailabilityDates(e.availability),r=this.extractOfferPricing(e.offers||[]),s=e.features.some((e=>"IsCampingOnly"==e.code));return{AccommodationId:e.accommodationId||0,RoomCode:e.code||"",RoomName:e.name||"",Type:e.subTypeDisplayName||"",TypeId:0,Beds:e.maxGuests||0,StayDays:i.diff(t,"days"),BasePrice:r.baseAmount||o,TotalPrice:"DealOffer"===r.templateCode&&r.totalAmount||o,RRP:"DealOffer"===r.templateCode&&r.baseAmount||null,TotalIncludingDealDiscounts:r.totalAmount,TotalNotIncludingDealDiscounts:r.baseAmount,DealPrice:"DealOffer"===r.templateCode&&r.totalAmount||o,DealAmount:"DealOffer"===r.templateCode&&r.saving||0,DealApplied:!!("DealOffer"===r.templateCode&&r.saving&&r.saving>0),MembersPrice:"MemberOffer"===r.templateCode?r.totalAmount:r.memberPrice||Math.round(.9*o),AdditionalAdultPrice:r.additionalAdult||0,AdditionalChildPrice:r.additionalChild||0,AdditionalInfantPrice:0,Tooltip:e.beddingConfiguration,MinStay:e.minStay||null,IsCamping:s,InfoUrl:null,BookUrl:null,ImageUrls:this.transformImages(e.images||[]),RoomUrl:this.generateRoomUrl(e),CallToBook:e.callToBook,ActionButtons:this.generateActionButtons(e,a),Dates:n,AccommodationFromPrice:r.baseAmount||o,Restrictions:this.transformRestrictions(e),IsOutbound:!!this.isDhp&&e.outbound?.isOutbound,BookingRedirectUrl:e.outbound?.bookingRedirectUrl,AccommodationsAvailable:e.accommodationsAvailable??null,AccommodationType:e.type||null}}calculateTotalPrice(e,t,i){let a=0;const o=t.clone();for(;o.isBefore(i);){const t=o.format("YYYY-MM-DD"),i=e.find((e=>moment(e.date).format("YYYY-MM-DD")===t));i&&!i.checkoutOnly&&(a+=i.price),o.add(1,"day")}return this.fixPricingPrecision(a)}transformAvailabilityDates(e){return(e||[]).map((e=>({Date:e?.date,Price:e?.price,CheckoutOnly:Boolean(e?.checkoutOnly),IsAvailable:void 0!==e?.isAvailable?Boolean(e?.isAvailable):void 0}))).filter((e=>{if(!e?.Date)return!1;const t=Number(e.Price??0),i=Boolean(e.CheckoutOnly),a=void 0===e.IsAvailable||Boolean(e.IsAvailable);return t>=1&&!i&&a}))}transformImages(e){return e.map((e=>e.url||e))}transformRestrictions(e){let t=[];return e&&e.features&&Array.isArray(e.features)?(e.features.forEac
1h((e=>{const i=e.code,a=e.name;if(!i||!i.toLowerCase().includes("sleep"))if(i&&(i.includes("Dogs")||i.toLowerCase().includes("dog"))){let o="";e.imageSource&&("Uri"===e.imageSource.type&&e.imageSource.uri?o=e.imageSource.uri:"Font"===e.imageSource.type&&e.imageSource.fontGlyph&&(o=this.fallbackImages[i]||"")),!o&&this.fallbackImages[i]&&(o=this.fallbackImages[i]);const n={ImageUrl:o,DisplayName:a||i||"",HoverText:e.description||a||i||""};t.push(n)}else i&&console.warn(`Unexpected accommodation feature: ${i} (${a||"no name"})`)})),t):t}transformNearbyParks(e,t){return e&&0!==e.length?(t&&t("Nearby Parks"),e.map((e=>{const t=e.pricing?.totalCabinPrice||null,i=e.pricing?.totalSitePrice||null;return{PropertyCode:e.code,PropertyName:e.name,State:e.state||"",Town:e.area||"",Distance:e.distanceKm||null,OriginalPropertyName:e.name,Description:"",ImageUrls:e.images?e.images.map((e=>e.url)):[],DisplayRating:!1,OverallRating:null,ReviewCount:null,Restrictions:[],Prices:{TotalCabinPrice:t,TotalSitePrice:i,Guests:2,GuestsLabel:"guests",Nights:1,NightsLabel:"night",Message:t||i?null:"No availability for selected dates",ActionButtons:e.code?[{Label:"View Park",IsPrimary:!0,Path:`/parks/permalink/${e.code.toLowerCase()}`}]:[]}}}))):(t&&t("Available"),[])}extractStayDates(e){if(!e)return"";return e.find((e=>"StayDateRangeCondition"===e.conditionCode)).conditionOutcome.replace("Stay dates needs to be from ","").replace(" and "," - ")}transformBlockoutDates(e){return e.blackoutDates.map((e=>{const t=new Date(e.start),i=new Date(e.end);return{StartDate:t.toLocaleDateString("en-GB",{day:"numeric",month:"short"}),EndDate:i.toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"})}}))}transformDeals(e,t,i){const a=i.result?.available.some((e=>e.offers.some((e=>"DealOffer"==e.templateCode))));let o=e.map((o=>{let n=o.eligibility?.isEligible||!1,r=o.applied&&a;return{Id:o.id,Name:o.name,Title:o.name,PromoCode:o.code,Description:o.description,MobileDescription:o.mobileDescription,Applied:r&&n,Hidden:!1,Restricted:!n,Eligible:n,CtaLabel:r&&n?"Remove":"Apply Deal",NotificationHeading:o.eligibility?.isEligible?"":"Cannot apply this deal",NotificationDescription:this.getNotificationDescription(o,e),BookingPeriod:this.extractBookingPeriod(o.eligibility?.conditions),StayDates:this.extractStayDates(o.eligibility?.conditions),NightStayRange:this.extractNightStayRange(o.eligibility?.conditions),HasNightStayRange:!!this.extractNightStayRange(o.eligibility?.conditions),ImageUrl:"",Terms:o.eligibility?.conditionPolicy||"",DiscountPolicy:o.eligibility?.discountPolicy||"",ValidBookingPeriod:this.isBookingPeriodValid(o.eligibility?.conditions),ValidStayDates:this.isStayDatesValid(o.eligibility?.conditions),ValidNightStayRange:this.isNightStayRangeValid(o.eligibility?.conditions),ValidCheckinDays:this.isCheckinDaysValid(o.eligibility?.conditions),KeyValueConditions:this.extractKeyValueConditions(o.eligibility?.conditions),BlockOutDates:this.transformBlockoutDates(o),IsBookingWithinBlockOutDates:this.isBookingWithinBlockOutDates(o,t),ParkPolicyConditions:o?.parkPolicyConditions||"",DiscountPolicyConditions:o.eligibility?.discountPolicy+"<br/>"+o.eligibility?.conditionPolicy||"",EligibilityTerms:o.eligibility.EligibilityTerms,DefaultTermsAndConditions:"Subject to availability at time of booking.",AccommodationTypeConditions:this.extractAccommodationTypeConditions(o.eligibility?.conditions),AccommodationTypeConditionsName:this.extractAccommodationTypeConditionsName(o.eligibility?.conditions,i),Url:o.applied?`/deals/remove/${o.code}`:`/deals/apply/${o.code}`}}));const n=o.find((e=>e.Applied&&e.Eligible));return n&&o.forEach((e=>{e!==n&&(e.Restricted=!0)})),o}isBookingWithinBlockOutDates(e,t){if(!e.blackoutDates?.length)return!1;const i=new Date(t.arrive),a=new Date(t.depart);return e.blackoutDates.some((e=>{const t=new Date(e.start),o=new Date(e.end);return i<o&&a>t}))}generateActionButtons(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.generateRoomUrl(e);return e.hasOwnProperty("webUrl")&&"/"!==e.webUrl&&""!==e.webUrl&&(a=e.webUrl+window.location.search),i?[{IsPrimary:!1,Label:"More Info",Path:a,Tooltip:null},{IsPrimary:!0,Label:"Book Now",Path:a,Tooltip:this.generateBookingTooltip(t)}]:[{IsPrimary:!1,Label:"More Info",Path:a,Tooltip:null},{IsPrimary:!0,Label:"View Stay",Path:a,Tooltip:this.generateBookingTooltip(t)}]}generateRoomUrl(e){return e.webUrl}generateBookingTooltip(e){const t=moment(e.arrive),i=moment(e.depart);let a=i.diff(t,"days");(!Number.isFinite(a)||a<1)&&(a=1);const o=e=>{const t=parseInt(e,10);return Number.isFinite(t)?t:0},n=o(e.adults)+o(e.kids)+o(e.infants);return`<p>${t.format("DD MMM")} - ${i.format("DD MMM YYYY")}</p><p>${a} night${1!==a?"s":""}</p><p>${n} guest${1!==n?"s":""}</p>`}fixPricingPrecision(e){return Math.round(100*e)/100}extractAccommodationTypeConditions(e){if(!e)return"";const t=e.find((e=>"AccommodationInclusionCondition"===e.conditionCode));return!(!t||!(t.conditionOutcome.includes("Sites")||t.conditionOutcome.includes("Cabins")||t.conditionOutcome.includes("Particular_Accommodation")))}extractAccommodationTypeConditionsName(e,t){if(!e)return"";const i=e.find((e=>"AccommodationInclusionCondition"===e.conditionCode));switch(!0){case i?.conditionOutcome.includes("Cabins"):return"Deal only applies to Cabins";case i?.conditionOutcome.includes("Sites"):return"Deal only applies to Sites";case i?.conditionOutcome.includes("All"):return"";case i?.conditionOutcome.includes("Particular_Accommodation"):let e="Deal only applies to the following rooms: ";return i.conditionOutcome.split(" - ")[1].split(", ").forEach((i=>{let a=t?.result.available.find((e=>e.code==i));a||(a=t?.result.unavailable.find((e=>e.code==i))),a?.name&&(e+=a.name+", ")})),e.trimEnd().replace(/,$/,"");default:return console.warn("Unhandled Accommodation Type Conditions extract",i),"Specific Types"}}generateSummaryText(e){const t=moment(e.arrive),i=moment(e.depart).diff(t,"days"),a=parseInt(e.adults),o=parseInt(e.kids)+parseInt(e.infants);let n=`${a} adult${1!==a?"s":""}`;return o>=1&&(n=`${n}, ${1!==o?`${o} children`:"1 child"}`),n=`${n} - ${i} night${1!==i?"s":""} - arriving ${t.format("DD MMM")}`,n}generateGoogleAnalyticsEvent(e,t){if(!e||!t?.result)return null;const i=t.result,a=i.bookingContext||{},o=i.deals?.find((e=>e.applied))||null,n=e.AvailableProperties||[],r=t.result.bookingContext.adults+t.result.bookingContext.
1infants+t.result.bookingContext.children,s=a.parkCode,l=this.getParkName(s);let c=l.replace(/^Discovery Parks - /,"");const d=this.getParkAddress(s),m=this.getParkRegion(s),u=this.getParkState(s),p=moment(a.checkIn),g=moment(a.checkOut),y=g.diff(p,"days");return{event:"view_item_list",ecommerce:{items:n.map(((e,t)=>{const i=o?.code||"",a=e.DealApplied&&e.DealAmount||0,n=e.TotalPrice,f=y>0?Math.round(n/y*100)/100:n,b=y>0?Math.round(a/y*100)/100:a,h=e.subTypeDisplayName||e.Type||"Unknown",A=m.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" "),D=this.mapStateCodeToFullName(u),P=l.includes("Discovery Parks")||l.includes("Discovery Resorts")?"Discovery Parks":"G'day Parks";"West Beach Parks"==c&&(c="Discovery Parks - "+c);const k=c.trim();return{item_id:s,item_name:k,affiliation:"G'day Parks",coupon:i,discount:b,index:t+1,item_brand:P,item_category:h,item_category2:A,item_category3:"Non Member",item_category4:"",item_category5:D,item_variant:r,location_id:d,price:f,quantity:y,item_start_date:p.format("YYYY-MM-DD"),item_end_date:g.format("YYYY-MM-DD"),item_list_name:k}}))}}}mapStateCodeToFullName(e){if(!e||"string"!=typeof e)return e;return{NSW:"New South Wales",VIC:"Victoria",QLD:"Queensland",WA:"Western Australia",SA:"South Australia",TAS:"Tasmania",ACT:"Australian Capital Territory",NT:"Northern Territory"}[e.toUpperCase()]||e}formatLocationId(e){if(!e||"string"!=typeof e)return"";const t=e.trim();if(/,\s*[^,]+,\s*[A-Za-z]{2}\s\d{4}$/.test(t))return t;const i=/,([^,]+?)\s([A-Za-z]{2})\s(\d{4})$/;return i.test(t)?t.replace(i,((e,t,i,a)=>`, ${t.trim()}, ${i.trim()} ${a.trim()}`)):t}getParkName=e=>{const t=document.getElementById("park_page_ga4_data");if(t){const e=t.getAttribute("data-park-name");if(e&&e.trim())return e.trim()}const i=document.title;if(i&&i.includes(" | ")){const e=i.split(" | ")[0];if(e&&"G'day Parks"!==e)return e}return e};getParkAddress=e=>{const t=document.getElementById("park_page_ga4_data");if(t){const e=t.getAttribute("data-park-address");if(e&&e.trim())return this.formatLocationId(e)}return`${e} Address`};getParkRegion=e=>{const t=document.getElementById("park_page_ga4_data");if(t){const e=t.getAttribute("data-region");if(e&&e.trim())return e.trim()}return"Region"};getParkState=e=>{const t=document.getElementById("park_page_ga4_data");if(t){const e=t.getAttribute("data-state");if(e&&e.trim())return e.trim()}return"State"};sendGoogleAnalyticsEvent=(e,t)=>{try{const i=this.generateGoogleAnalyticsEvent(e,t);i&&(window.dataLayer=window.dataLayer||[],dataLayer.push({ecommerce:null}),window.dataLayer.push(i))}catch(e){console.error("Error sending Google Analytics event:",e)}};extractNightStayRangeNumber=e=>e.match(/(\d+)\s*days?/)[1];extractNightStayRange=function(e){if(!e)return null;const t=e.find((e=>"MinimumNightStayCondition"===e.conditionCode)),i=e.find((e=>"MaximumNightStayCondition"===e.conditionCode));if(i&&t){return`${this.extractNightStayRangeNumber(t?.conditionOutcome)} - ${this.extractNightStayRangeNumber(i?.conditionOutcome)} Days`}return t?.conditionOutcome?t?.conditionOutcome||null:i?.conditionOutcome?i?.conditionOutcome||null:void 0};getNotificationDescription(e,t){if(!e.eligibility?.isEligible){const i=e.eligibility?.conditions?.filter((e=>!e.isConditionSatisfied))||[];if(i.length>0){let a="";i.forEach((t=>{switch(t.conditionCode){case"AccommodationInclusionCondition":case"BlackOutDateRangeCondtition":break;case"StayDateRangeCondition":case"DiscountStructureCondition":a+=t.conditionOutcome,a+="<br/>";break;case"BookingDateRangeCondition":"Deal price is same as the booking price."==t.conditionOutcome?e.code.includes("KSF")&&(a+="Booking must include at least one child<br/>"):(a+="Booking dates must be between "+t.conditionOutcome.replace(" and "," - "),a+="<br/>");break;case"MaximumNightStayCondition":a+=t.conditionOutcome.replace("days","nights "),a+="<br/>";break;case"MinimumNightStayCondition":a+=t.conditionOutcome.replace("days","nights stay"),a+="<br/>";break;case"CheckInDaysCondition":a+=t.conditionOutcome.replace("Any","any"),a+="<br/>";break;default:console.warn("Unhandled notification description",t)}}));let o=t.some((e=>e.DealApplied));return o&&(a="Another deal is applied"),""==a&&(a="Cannot apply this deal"),a.replace(/(<br\/>)(?!.*<br\/>)/,"")}return"Cannot apply this deal."}let i=t.some((e=>1==e.applied));return i?"Another deal is applied.":"Cannot apply this deal"}
1extractBookingPeriod(e){if(!e)return"";const t=e.find((e=>"BookingDateRangeCondition"===e.conditionCode));return t?.conditionOutcome?.replace("Booking must be made between, ","").replace(" and "," - ")||""}isBookingPeriodValid(e){if(!e)return!0;const t=e.find((e=>"BookingDateRangeCondition"===e.conditionCode));return t?.isConditionSatisfied??!1}isStayDatesValid(e){if(!e)return!0;const t=e.find((e=>"StayDateRangeCondition"===e.conditionCode));return t?.isConditionSatisfied??!0}isNightStayRangeValid(e){if(!e)return!0;const t=e.find((e=>"MinimumNightStayCondition"===e.conditionCode));return t?.isConditionSatisfied??!0}isCheckinDaysValid(e){if(!e)return!0;const t=e.find((e=>"CheckInDaysCondition"===e.conditionCode));return t?.isConditionSatisfied??!0}extractKeyValueConditions(e){if(!e)return{};const t=e.find((e=>"BookingDateRangeCondition"===e.conditionCode)),i=e.find((e=>"StayDateRangeCondition"===e.conditionCode)),a=e.find((e=>"CheckInDaysCondition"===e.conditionCode));let o=this.extractDateRange(t?.conditionOutcome),n=this.extractDateRange(i?.conditionOutcome),r={booking_placed_start_date:o?.startDate,booking_placed_end_date:o?.endDate,stay_start_date:n?.startDate,stay_end_date:n?.endDate,checkin_days:a?.conditionOutcome.replace("Check-in days needs to be ","")||""};return"Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday"==r.checkin_days&&(r.checkin_days="Any day of the week"),r}extractDateRange(e){let t=e.match(/(\d{1,2}\s+(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\s*-\s*(\d{1,2}\s+(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{4})/i);if(t){const e=t[2].match(/\d{4}$/)[0];return{startDate:`${t[1].trim()} ${e}`,endDate:t[2].trim(),originalText:t[0]}}return t=e.match(/(\d{1,2}\s+(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{4})\s+and\s+(\d{1,2}\s+(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{4})/i)||e.match(/(\d{1,2}\s+(?:January|February|March|April|May|June|July|August|September|October|November|December)\s+\d{4})\s+and\s+(\d{1,2}\s+(?:January|February|March|April|May|June|July|August|September|October|November|December)\s+\d{4})/i),t?{startDate:t[1].trim(),endDate:t[2].trim(),originalText:t[0]}:(console.warn("Failed to extract booking/stay date ranges from deal conditions"),null)}searchExperienceAPIForMessage(e,t,i,a){let o=!1;if(o=$(".pt-park-detail").length>=1?$(".pt-park-detail").attr("data-base-url"):$(".widget.accommodation-block").attr("data-api-baseurl"),!o)return;const n=`${o}/api/v1/parks/${a.propertyCode}/availability`,r=new URLSearchParams({checkIn:e.format("YYYY-MM-DD"),checkOut:t.format("YYYY-MM-DD"),adults:i.adults,children:i.kids,infants:i.infants}),s=a?.cartState?.orderId||a?.getStoredOrderId?.();s&&r.append("orderId",s);const l=`${n}?${r.toString()}`,c=$("html").hasClass("dhp-theme")?"DhpWeb":"GdayWeb";return $.ajax({url:l,type:"GET",headers:{"Gday-Caller":c,"Content-Type":"application/json"},dataType:"json"}).done((function(e){window.setTimeout((function(){let t=a.parseMessages(e?.result?.messages,a);a.handleMessages(t,a)}),500)}))}}"undefined"==typeof window||window.moment||Promise.resolve().then(i.t.bind(i,5093,23)).then((e=>{let{default:t}=e;window.moment=t}))},4821:function(e,t,i){var a={"./en-au":3872,"./en-au.js":3872};function o(e){var t=n(e);return i(t)}function n(e){if(!i.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}o.keys=function(){return Object.keys(a)},o.resolve=n,e.exports=o,o.id=4821}}]);
2//# sourceMappingURL=src_services_api-transformation-service_js-node_modules_moment_locale_sync_recursive_en-au.aa02e964591b49ca5dee.js.map

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.