PageSourceSearch

https://balmytrip.com/_next/static/chunks/90992-0878dbe2d3b3c5ae.js

js balmytrip.com collected 2026-10-09 03:51:29 UTC 22,101 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[90992],{90992:(e,t,a)=>{a.d(t,{Cj:()=>o.getInitialState,Hl:()=>c,hf:()=>l});var r=a(95155),i=a(12115),o=a(13792);function n(e,t,a){if(!e||0===Object.keys(e).length)return e||{};let r={...e},i=a||t?.product?.defaultRoute||Object.keys(t?.product?.hotelSequenceMapping||{})[0],o=t?.product?.hotelSequenceMapping?.[i]||t?.product?.inventory?.hotels||[],n={};return o.forEach(e=>{e.key&&(n[e.key]=(n[e.key]||0)+1)}),Object.keys(n).forEach(e=>{n[e]>1&&r[e]&&(r[`${e}_0`]||(r[`${e}_0`]=r[e]),delete r[e])}),r}function d(e,t){switch(t.type){case"SET_ADULTS":return{...e,adults:t.payload};case"SET_DATE":return{...e,travelDate:t.payload};case"SET_NATIONALITY":{let a=t.payload,r=!e.currencyManuallySet;return{...e,nationality:a,...r?{settlementCurrency:"foreign"===a?"USD":"INR"}:{}}}case"SET_CURRENCY":{let a=void 0===t.manual||t.manual;return{...e,settlementCurrency:t.payload,currencyManuallySet:e.currencyManuallySet||a}}case"SET_SPEEDBOAT_SELECTION":{let{key:a,selection:r}=t.payload,i={...e.speedboatSelections};return r?i[a]=r:delete i[a],{...e,speedboatSelections:i}}case"SET_ROUTE":{let a=t.payload,r=(e.config.product.hotelSequenceMapping??e.config.product.routes??{})[a]||[],i={...e.selections},o={...e.childSelections};r.forEach((e,t)=>{i[`${e.key}_${t}`]=!0,o[`${e.key}_${t}`]=!0,i[e.key]=!0,o[e.key]=!0}),Object.keys(i).some(e=>("privatePool"===e||e.startsWith("privatePool_"))&&i[e])||(i.floatingBf=!1,o.floatingBf=!1);let n=e.config.product.routeActivitiesMapping??e.config.product.activitiesMapping??{},d=n[e.activeRoute]||[],s=n[a]||[];if(s.length>0){let e=new Set(s.map(e=>e.key));d.forEach(t=>{!e.has(t.key)&&("Mandatory"===t.addonType||t.isIncluded||t.isMandatory||t.mandatory||t.isTransfer||t.key?.toLowerCase().startsWith("trf-"))&&(i[t.key]=!1,o[t.key]=!1)}),s.forEach(e=>{("Mandatory"===e.addonType||e.isIncluded||e.isMandatory||e.mandatory||e.isTransfer||e.key?.toLowerCase().startsWith("trf-"))&&(i[e.key]=!0,o[e.key]=!0)}
1),Object.keys(i).forEach(e=>{if(e.includes("::")){let[t,a]=e.split("::"),r=parseInt(a,10),n=s.find(e=>e.key===t);if(n){let t=n.relativeDay??n.day;void 0!==t&&t!==r&&(delete i[e],delete o[e])}}})}return{...e,activeRoute:a,selections:i,childSelections:o,activeDay:1,hotelNightsOverrides:{},hotelCheckInDayOverrides:{},adminCustomDays:[],dayOrder:Array.from({length:e.config.product.durationDays},(e,t)=>t+1)}}case"TOGGLE_ITEM":{let{key:a,value:r}=t.payload,i={...e.selections,[a]:r},o={...e.childSelections,[a]:r},n=a.match(/^(.+)_(\d+)$/);if(n){let e=n[1];i[e]=r,o[e]=r}let d=a.match(/^(.+)::(\d+)$/);if(d){let e=d[1],t=e.toLowerCase(),a=parseInt(d[2]);if(i[e]=r,i[t]=r,o[e]=r,o[t]=r,r){let e=["upg-pbl-city","act-ctb","act-wan"],r=["act-rnb","act-bar","act-jb","act-ctb","act-wan","act-mh","act-mhnb","upg-pbl-city"];(e.includes(t)||r.includes(t))&&Object.keys(i).forEach(n=>{let d=n.match(/^(.+)::(\d+)$/);if(d&&parseInt(d[2])===a&&d[1].toLowerCase()!==t){let t=d[1].toLowerCase();(e.includes(t)||r.includes(t))&&(delete i[n],delete o[n])}})}}r&&("mtBaturHotSpring"===a?(i.mtBaturJeep=!1,i.mtBaturJeepHotSpring=!1,o.mtBaturJeep=!1,o.mtBaturJeepHotSpring=!1):"mtBaturJeep"===a?(i.mtBaturHotSpring=!1,i.mtBaturJeepHotSpring=!1,o.mtBaturHotSpring=!1,o.mtBaturJeepHotSpring=!1):"mtBaturJeepHotSpring"===a&&(i.mtBaturHotSpring=!1,i.mtBaturJeep=!1,o.mtBaturHotSpring=!1,o.mtBaturJeep=!1)),"TRF-KBV-06"===a&&(r?(i["TRF-KBV-02"]=!1,o["TRF-KBV-02"]=!1):(i["TRF-KBV-02"]=!0,o["TRF-KBV-02"]=!0));let s=Object.keys(i).some(e=>("privatePool"===e||e.startsWith("privatePool_"))&&i[e]);s||(i.floatingBf=!1,o.floatingBf=!1);let l=!0===e.selections.floatingBf||void 0===e.selections.floatingBf,c=!s&&l&&!1===i.floatingBf&&("privatePool"===a||a.startsWith("privatePool_"));return"kecakDance"===a&&(o.kecakDance=r),{...e,selections:i,childSelections:o,...c&&{activeModal:"floatingBfRemoved",modalData:null}}}case"TOGGLE_CHILD_ITEM":{let{key:a,value:r}=t.payload,i={...e.childSelections,[a]:r},o={...e.selections,[a]:r};return Object.keys(o).forEach(e=>{e.startsWith(a+"_")&&/^.+_\d+$/.test(e)&&(o[e]=r,i[e]=r)}),r&&("mtBaturHotSpring"===a?(i.mtBaturJeep=!1,i.mtBaturJeepHotSpring=!1,o.mtBaturJeep=!1,o.mtBaturJeepHotSpring=!1):"mtBaturJeep"===a?(i.mtBaturHotSpring=!1,i.mtBaturJeepHotSpring=!1,o.mtBaturHotSpring=!1,o.mtBaturJeepHotSpring=!1):"mtBaturJeepHotSpring"===a&&(i.mtBaturHotSpring=!1,i.mtBaturJeep=!1,o.mtBaturHotSpring=!1,o.mtBaturJeep=!1)),"TRF-KBV-06"===a&&(r?(o["TRF-KBV-02"]=!1,i["TRF-KBV-02"]=!1):(o["TRF-KBV-02"]=!0,i["TRF-KBV-02"]=!0)),Object.keys(o).some(e=>("privatePool"===e||e.startsWith("privatePool_"))&&o[e])||(o.floatingBf=!1,i.floatingBf=!1),"kecakDance"===a&&(o.kecakDance=r),{...e,childSelections:i,selections:o}}case"SET_CHILDREN":if(!t.payload){let t=(0,o.getInitialState)(e.config);return{...e,hasChildren:!1,childCounts:{infant:0,bedshare:0,young:0,older:0},childDobs:{},childHeights:{},childSelections:t.childSelections}}return{...e,hasChildren:!0};case"SET_CHILD_COUNTS":return{...e,childCounts:t.payload};case"SET_CHILD_DOB":return{...e,childDobs:{...e.childDobs,[t.payload.key]:t.payload.value}};case"SET_CHILD_HEIGHT":return{...e,childHeights:{...e.childHeights,[t.payload.key]:t.payload.value}};case"SET_PROMO":return{...e,promoCode:t.payload};case"TOGGLE_COA":if(e.config?.product?.destinationKey==="vietnam"||e.config?.profile?.destinationKey==="vietnam"||e.config?.product?.coaEligible===!1||e.config?.profile?.destinationKey==="mauritius")return{...e,coaActive:!1};return{...e,coaActive:t.payload};case"SET_COA_CURRENCY":return{...e,coaCurrency:t.payload};case"SET_CUSTOM_HOTEL":{let a=t.payload.key.replace(/_\d+$/,""),r={...e.customHotels};return a!==t.payload.key&&delete r[a],r[t.payload.key]={hotelName:t.payload.hotelName,roomCategory:t.payload.roomCategory,adultsPrice:t.payload.adultsPrice,costPrice:t.payload.costPrice,includesKids:t.payload.includesKids,totalPriceWithKids:t.payload.totalPriceWithKids,...t.payload.webUrl&&{webUrl:t.payload.webUrl},...t.payload.mapUrl&&{mapUrl:t.payload.mapUrl}},{...e,customHotels:r}}case"REMOVE_CUSTOM_HOTEL":{let a={...e.customHotels};delete a[t.payload.key];let r=t.payload.key.replace(/_\d+$/,"");return r!==t.payload.key&&delete a[r],{...e,customHotels:a}}case"SET_HOTEL_OPTION":return{...e,selectedHotelOptions:{...e.selectedHotelOptions,[t.payload.locationKey]:t.payload.optionId}};case"OPEN_MODAL":return{...e,activeModal:t.payload.name,modalData:t.payload.data||null};case"CLOSE_MODAL":return{...e,activeModal:null,modalData:null};case"SET_DESIGN_THEME":return{...e,designTheme:t.payload};case"SET_ACTIVE_DAY":return{...e,activeDay:t.payload};case"SET_AIRLINE_ATTACHMENTS":return{...e,airlineAttachments:t.payload};case"SET_PARSED_FLIGHTS":return{...e,parsedFlights:t.payload};case"SET_ADMIN_FLIGHT_CONFIG":{let a=t.payload,r={...e.selections};return a&&a.sellingPrice>0&&(r.flightAddon=!0),{...e,adminFlightConfig:a,selections:r}}case"SET_ADMIN_DISCOUNT":return{...e,customAdminDiscount:t.payload};case"UPDATE_HOTEL_PRICE":{let{routeKey:a,hotelKey:r,hotelIndex:i,sp:o,cp:n}=t.payload,d={...e.config};d.product.excelMatrix||(d.product.excelMatrix={});let s=d.product.excelMatrix,l=e.adults;s[l]||(s[l]={hotels:{},activities:{}}),s[l].hotels||(s[l].hotels={});let c={...d.product.hotelSequenceMapping};if(c[a]){let e=[...c[a]],t="number"==typeof i&&i>
1=0&&i<e.length?i:e.findIndex(e=>e.key===r);t>=0&&(e[t]={...e[t],adminSpOverride:o,adminCpOverride:n}),c[a]=e}if(d.product.routes?.[a]){let e={...d.product.routes},t=[...e[a]],s="number"==typeof i&&i>=0&&i<t.length?i:t.findIndex(e=>e.key===r);s>=0&&(t[s]={...t[s],adminSpOverride:o,adminCpOverride:n}),e[a]=t,d.product.routes=e}if(d.product.inventory?.hotels){let e=[...d.product.inventory.hotels],t="number"==typeof i&&i>=0&&i<e.length?i:e.findIndex(e=>e.key===r);t>=0&&(e[t]={...e[t],adminSpOverride:o,adminCpOverride:n}),d.product.inventory={...d.product.inventory,hotels:e}}return d.product.hotelSequenceMapping=c,{...e,config:d}}case"UPDATE_ACTIVITY_PRICE":{let{activityKey:a,sp:r,cp:i,margin:o}=t.payload,n={...e.activityPriceOverrides};n[a]={sp:r,cp:i};let d={...e.config},s={...d.product.inventory},l=[...s.activities||[]],c=l.findIndex(e=>e.key===a);if(c>=0)l[c]={...l[c],price:r,cost:i,margin:o},s.activities=l;else{let e=[...s.protection||[]],t=e.findIndex(e=>e.key===a);t>=0&&(e[t]={...e[t],price:r,cost:i,margin:o},s.protection=e)}return d.product.inventory=s,{...e,config:d,activityPriceOverrides:n}}case"UPDATE_MARGIN":{let a={...e.config};a.product.excelMatrix||(a.product.excelMatrix={});let r=e.adults;return a.product.excelMatrix[r]||(a.product.excelMatrix[r]={hotels:{},activities:{}}),a.product.excelMatrix[r].margin=t.payload.margin,{...e,config:a}}case"UPDATE_TRANSFER_MATRIX":default:return e;case"SET_SAILING":{let{sector:a,sailing:r}=t.payload;return{...e,selectedSailings:{...e.selectedSailings,[a]:r}}}case"SET_ACTIVITY_HEADCOUNT":{let{key:a,count:r}=t.payload,i={...e.activityHeadcountOverrides};return r>=e.adults+(e.hasChildren?e.childCounts.infant+e.childCounts.bedshare+e.childCounts.young+e.childCounts.older:0)?delete i[a]:i[a]=r,{...e,activityHeadcountOverrides:i}}case"SET_SCHEDULE_OVERRIDE":{let{day:a,key:r,time:i}=t.payload,o=String(a),n={...e.scheduleTimeOverrides[o]||{}};return n[r]=i,{...e,scheduleTimeOverrides:{...e.scheduleTimeOverrides,[o]:n}}}case"CLEAR_SCHEDULE_OVERRIDE":{let{day:a,key:r}=t.payload,i=String(a),o={...e.scheduleTimeOverrides[i]||{}};delete o[r];let n={...e.scheduleTimeOverrides};return 0===Object.keys(o).length?delete n[i]:n[i]=o,{...e,scheduleTimeOverrides:n}}case"SET_DISABLE_GROUP_DISCOUNT":return{...e,disableGroupDiscount:t.payload};case"SET_ACTIVITY_MARKUP_OVERRIDE":{let{key:a,pct:r}=t.payload,i={...e.activityMarkupOverrides};return 0===r?delete i[a]:i[a]=r,{...e,activityMarkupOverrides:i}}case"SET_TRANSPORT_MARKUP_OVERRIDE":return{...e,transportMarkupOverride:Math.min(5e4,Math.max(0,t.payload||0))};case"ADD_EXTRA_HOTEL":return{...e,adminExtraHotels:[...e.adminExtraHotels,t.payload]};case"REMOVE_EXTRA_HOTEL":return{...e,adminExtraHotels:e.adminExtraHotels.filter(e=>e.id!==t.payload.id)};case"UPDATE_EXTRA_HOTEL":return{...e,adminExtraHotels:e.adminExtraHotels.map(e=>e.id===t.payload.id?{...e,[t.payload.field]:t.payload.value}:e)};case"SET_HOTEL_NIGHTS":{let{key:a,nights:r,baseNights:i,insertAfterDay:o,hotelTitle:n}=t.payload,d=Math.max(1,r),s={...e.hotelNightsOverrides,[a]:d},l=e.adminCustomDays.filter(e=>"hotel_extension"!==e.source||e.linkedHotelKey!==a),c=d-i;if(c>0)for(let e=0;e<c;e++)l.push({id:`leisure_${a}_${e}_${Date.now()}`,insertAfterDay:o-1,title:`Leisure Day at ${n}`,description:"Free day to explore at your own pace. Relax at the hotel, visit nearby attractions, or simply unwind.",timeRange:"",importantNote:"",noteVariant:"info",addons:[],hotelName:n,hotelCategory:"",source:"hotel_extension",linkedHotelKey:a});return{...e,hotelNightsOverrides:s,adminCustomDays:l}}case"SET_HOTEL_CHECKIN_DAY":{let{key:a,checkInDay:r}=t.payload;return{...e,hotelCheckInDayOverrides:{...e.hotelCheckInDayOverrides,[a]:r}}}case"ADD_CUSTOM_DAY":{let a={id:`cd_${Date.now()}`,insertAfterDay:t.payload.insertAfterDay,title:"",description:"",timeRange:"",importantNote:"",noteVariant:"info",addons:[],hotelName:"",hotelCategory:""};return{...e,adminCustomDays:[...e.adminCustomDays,a]}}case"REMOVE_CUSTOM_DAY":return{...e,adminCustomDays:e.adminCustomDays.filter(e=>e.id!==t.payload.dayId)};case"UPDATE_CUSTOM_DAY":return{...e,adminCustomDays:e.adminCustomDays.map(e=>e.id===t.payload.dayId?{...e,[t.payload.field]:t.payload.value}:e)};case"ADD_CUSTOM_DAY_ADDON":return{...e,adminCustomDays:e.adminCustomDays.map(e=>e.id===t.payload.dayId?{...e,addons:[...e.addons,t.payload.addon]}:e)};case"REMOVE_CUSTOM_DAY_ADDON":return{...e,adminCustomDays:e.adminCustomDays.map(e=>e.id===t.payload.dayId?{...e,addons:e.addons.filter(e=>e.id!==t.payload.addonId)}:e)};case"UPDATE_CUSTOM_DAY_ADDON":return{...e,adminCustomDays:e.adminCustomDays.map(e=>e.id===t.payload.dayId?{...e,addons:e.addons.map(e=>e.id===t.payload.addonId?{...e,[t.payload.field]:t.payload.value}:e)}:e)};case"ADD_REGULAR_DAY_ADDON":{let{dayIndex:a,addon:r}=t.payload,i=e.adminDayAddons?.[a]||[];return{...e,adminDayAddons:{...e.adminDayAddons,[a]:[...i,r]}}}case"REMOVE_REGULAR_DAY_ADDON":{let{dayIndex:a,addonId:r}=t.payload,i=e.adminDayAddons?.[a]||[];return{...e,adminDayAddons:{...e.adminDayAddons,[a]:i.filter(e=>e.id!==r)}}}case"UPDATE_REGULAR_DAY_ADDON":{let{dayIndex:a,addonId:r,field:i,value:o}=t.payload,n=e.adminDayAddons?.[a]||[];return{...e,adminDayAddons:{...e.adminDayAddons,[a]:n.map(e=>e.id===r?{...e,[i]:o}:e)}}}case"SWAP_DAYS":{let{posA:a,posB:r}=t.payload,i=[...e.dayOrder];if(a<0||r<0||a>=i.length||r>=i.length)return e;return[i[a],i[r]]=[i[r],i[a]],{...e,dayOrder:i}}case"SET_DAY_ORDER":return{...e,dayOrder:t.payload};case"SET_ADMIN_PACKAGE_TITLE":return{...e,adminPackageTitle:t.payload};case"SET_ADMIN_PACKAGE_SUBTITLE":return{...e,adminPackageSubtitle:t.payload};case"ADD_ADMIN_INCLUSION":return{...e,adminCustomInclusions:[...e.adminCustomInclusions||[],t.payload]};case"REMOVE_ADMIN_INCLUSION":return{...e,adminRemovedInclusions:[...e.adminRemovedInclusions||[],t.payload]};case"RESTORE_ADMIN_INCLUSION":return{...e,adminRemovedInclusions:(e.adminRemovedInclusions||[]).filter(e=>e!==t.payload)};case"EDIT_ADMIN_INCLUSION":return{...e,adminEditedInclusions:{...e.adminEditedInclusions||{},[t.payload.original]:t.payload.newText}};case"REMOVE_CUSTOM_ADMIN_INCLUSION":return{...e,adminCustomInclusions:(e.adminCustomInclusions||[]).filter(e=>e!==t.payload)};case"SWAP_DAY_EXPERIENCE":{let{dayIndex:a,experience:r}=t.payload;return{...e,dayExperienceOverrides:{...e.dayExperienceOverrides||{},[a]:r}}}case"RESET_DAY_EXPERIENCE":{let{dayIndex:a}=t.payload,r={...e.dayExperienceOverrides||{}};return delete r[a],{...e,dayExperienceOverrides:r}}case"RESET_ALL":return(0,o.getInitialState)(e.config);case"RESTORE_PACKAGE_CONFIG":{let a=t.payload,r=a.route||e.activeRoute,i=a.customHotels?n({...e.customHotels,...a.customHotels},e.config,r):e.customHotels;return{...e,...a.selections&&{selections:{...e.selections,...a.selections}},customHotels:i,...a.route&&{activeRoute:a.route},...void 0!==a.adminFlightConfig&&{adminFlightConfig:a.adminFlightConfig},...a.selectedHotelOptions&&{selectedHotelOptions:{...e.selectedHotelOptions,...a.selectedHotelOptions}}}}case"HYDRATE_FULL_STATE":{let a=t.payload,r=a.activeRoute||e.activeRoute,i=a.customHotels?n(a.customHotels,e.config,r):e.customHotels;return{...e,...a,customHotels:i,config:e.config,isAdmin:e.isAdmin}}case"SET_SOLO_TRANSPORT":return{...e,soloTransportStrategy:t.payload};case"TOGGLE_GENX_MODE":return{...e,genxTransportMode:!e.genxTransportMode};case"ADMIN_REMOVE_DAY":{let a=[...e.adminRemovedDays||[],t.payload.dayIndex];return{...e,adminRemovedDays:a}}case"ADMIN_RESTORE_DAY":return{...e,adminRemovedDays:(e.adminRemovedDays||[]).filter(e=>e!==t.payload.dayIndex)};case"SET_DAY_TITLE_OVERRIDE":{let a={...e.adminDayTitleOverrides||{}};return a[t.payload.dayIndex]={title:t.payload.title,highlights:t.payload.highlights},{...e,adminDayTitleOverrides:a}}case"CLEAR_DAY_TITLE_OVERRIDE":{let a={...e.adminDayTitleOverrides||{}};return delete a[t.payload.dayIndex],{...e,adminDayTitleOverrides:a}}case"ADMIN_UNDO_SNAPSHOT":return{...e,...t.payload}}}let s=(0,i.createContext)(void 0);function l({children:e,initialConfig:t,isAdmin:a=!1,hubPresets:c,editQuoteId:u}){let y=t||o.defaultMockConfig,[m,p]=(0,i.useReducer)(d,void 0,()=>{let e={...(0,o.getInitialState)(y),isAdmin:a},t=null,r=!1;try{t=localStorage.getItem("bt_currency");let a=localStorage.getItem("bt_currency_manual");r="true"===a||!!(t&&t!==e.settlementCurrency)}catch(e){}if(r&&t&&(e.settlementCurrency=t,e.currencyManuallySet=!0),c&&Object.keys(c).length>0){let e=c.routeHint?{...(0,o.getInitialState)(y,c.routeHint),isAdmin:a}:{...(0,o.getInitialState)(y),isAdmin:a},t={};return c.travelDate&&(t.travelDate=c.travelDate),c.adults&&(t.adults=Math.min(20,Math.max(1,c.adults))),c.children&&c.children>0&&(t.hasChildren=!0,t.childCounts={infant:0,bedshare:0,young:Math.min(c.children,4),older:0}),c.coa&&(t.coaActive=!0),{...e,...t,config:y,isAdmin:a}}try{let{destinationKey:t}=y.profile,{productId:r}=y.product,i=`bt_itinerary_state_${t}_${r}`,o=`bt_pdf_active_${t}_${r}`,d=sessionStorage.getItem(o);if(u){let o=`bt_revision_active_${t}_${r}`;if(sessionStorage.getItem(o)===String(u)){let o=localStorage.getItem(i);if(o)try{let i=JSON.parse(o);if(i&&i.selections){let o={...e,...i,config:y,isAdmin:a};o.customHotels&&(o.customHotels=n(o.customHotels,y,o.activeRoute));try{let e=sessionStorage.getItem(`bt_admin_session_${t}_${r}`);if(e){let t=JSON.parse(e);t.adminCustomDays&&(o.adminCustomDays=t.adminCustomDays),t.adminExtraHotels&&(o.adminExtraHotels=t.adminExtraHotels),t.activityPriceOverrides&&(o.activityPriceOverrides=t.activityPriceOverrides),t.adminDayAddons&&(o.adminDayAddons=t.adminDayAddons),t.dayExperienceOverrides&&(o.dayExperienceOverrides=t.dayExperienceOverrides),t.dayOrder&&(o.dayOrder=t.dayOrder)}}catch{}return o}}catch{}}else localStorage.removeItem(i);return e}if(d){sessionStorage.removeItem(o);let d=localStorage.getItem(i);if(d){let i=JSON.parse(d),o={...e,...i,config:y,isAdmin:a};o.customHotels&&(o.customHotels=n(o.customHotels,y,o.activeRoute));try{let e=`bt_admin_session_${t}_${r}`,a=sessionStorage.getItem(e);if(a){let e=JSON.parse(a);e.adminCustomDays&&(o.adminCustomDays=e.adminCustomDays),e.adminExtraHotels&&(o.adminExtraHotels=e.adminExtraHotels),e.activityPriceOverrides&&(o.activityPriceOverrides=e.activityPriceOverrides),e.adminDayAddons&&(o.adminDayAddons=e.adminDayAddons),e.dayExperienceOverrides&&(o.dayExperienceOverrides=e.dayExperienceOverrides),e.dayOrder&&(o.dayOrder=e.dayOrder)}}catch{}return o}}else localStorage.removeItem(i)}catch(e){}return e}),_=i.useRef(!u);(0,i.useEffect)(()=>
1{if(!u)return;let e=y.profile.destinationKey,t=y.product.productId,a=`bt_editQuoteId_${e}_${t}`;sessionStorage.setItem(a,String(u));let r=`bt_itinerary_state_${e}_${t}`,i=`bt_revision_active_${e}_${t}`;if(sessionStorage.getItem(i)===String(u)){let e=localStorage.getItem(r);if(e)try{let t=JSON.parse(e);if(t&&t.selections){_.current=!0;return}}catch{}}localStorage.removeItem(r),sessionStorage.setItem(i,String(u));let o=!1;return async function(){try{let r=await fetch(`/api/admin/quotes/${u}/config`,{credentials:"include"});if(!r.ok){console.error("[ItineraryContext] Failed to fetch parent quote config:",r.status),sessionStorage.removeItem(a),_.current=!0;return}let i=await r.json();if(o)return;let n=i.packageConfig;if(!n||"object"!=typeof n||0===Object.keys(n).length){sessionStorage.removeItem(a),_.current=!0;return}p({type:"HYDRATE_FULL_STATE",payload:n});let d={};for(let e of["adminCustomDays","adminExtraHotels","activityPriceOverrides","adminDayAddons","dayOrder","dayExperienceOverrides","adminPackageTitle","adminPackageSubtitle","adminCustomInclusions","adminRemovedInclusions","adminEditedInclusions","transportMarkupOverride","activityMarkupOverrides","disableGroupDiscount","activityHeadcountOverrides","scheduleTimeOverrides"])void 0!==n[e]&&null!==n[e]&&(d[e]=n[e]);Object.keys(d).length>0&&sessionStorage.setItem(`bt_admin_session_${e}_${t}`,JSON.stringify(d)),i.customerName&&sessionStorage.setItem("quoteCustomerName",i.customerName),i.customerEmail&&sessionStorage.setItem("quoteCustomerEmail",i.customerEmail),_.current=!0}catch(e){console.error("[ItineraryContext] Error fetching parent quote config:",e),sessionStorage.removeItem(a),_.current=!0}}(),()=>{o=!0}},[u,y.profile.destinationKey,y.product.productId,p]);let E=(0,i.useMemo)(()=>{if("andaman"!==m.config.profile.destinationKey||!m.travelDate)return m;let e=m.travelDate.split("-").map(Number);if(3!==e.length||1!==new Date(e[0],e[1]-1,e[2]).getDay())return m;let t=JSON.parse(JSON.stringify(m.config)),a=t.product.routeActivitiesMapping||{},r=t.product.hotelSequenceMapping||{},i=!1,o=-1;for(let e of Object.keys(a)){let t=a[e],n=r[e]||[],d=t.findIndex(e=>"act-cj"===e.key&&1===e.relativeDay);if(-1===d)continue;let s=n.find(e=>e.baseStart>1&&("PBL"===e.locationKey||"portblair"===e.locationKey||e.key?.toLowerCase().includes("pbl"))),l=t.findIndex(e=>"act-sls"===e.key&&1===e.relativeDay);if(s)o=s.baseStart,t[d].relativeDay=o,-1!==l&&(t[l].relativeDay=o),i=!0,t.push({key:"act-ctb",relativeDay:1,addonType:"Optional",allocationLabel:"Package - Optional Add-on"}),a[e]=t.filter(e=>e.relativeDay!==o||"Optional"!==e.addonType||"act-sls"===e.key);else{t.splice(d,1);let r=t.findIndex(e=>"act-sls"===e.key&&1===e.relativeDay);-1!==r&&t.splice(r,1),o=-1,i=!0,t.push({key:"act-ctb",relativeDay:1,addonType:"Optional",allocationLabel:"Package - Optional Add-on"}),a[e]=t}}return i?{...m,config:t,mondayShiftDay:o}:m},[m]);return(0,i.useEffect)(()=>{if(_.current)try{let{destinationKey:e}=m.config.profile,{productId:t}=m.config.product,a=`bt_itinerary_state_${e}_${t}`,{config:r,adminCustomDays:i,adminExtraHotels:o,activityPriceOverrides:n,adminDayAddons:d,dayOrder:s,...l}=m;localStorage.setItem(a,JSON.stringify(l));let c={};m.adminCustomDays?.length>0&&(c.adminCustomDays=m.adminCustomDays),m.adminExtraHotels?.length>0&&(c.adminExtraHotels=m.adminExtraHotels),Object.keys(m.activityPriceOverrides||{}).length>0&&(c.activityPriceOverrides=m.activityPriceOverrides),Object.keys(m.adminDayAddons||{}).length>0&&(c.adminDayAddons=m.adminDayAddons),Object.keys(m.dayExperienceOverrides||{}).length>0&&(c.dayExperienceOverrides=m.dayExperienceOverrides),m.dayOrder?.length>0&&(c.dayOrder=m.dayOrder),m.adminRemovedDays?.length&&(c.adminRemovedDays=m.adminRemovedDays),m.adminDayTitleOverrides&&Object.keys(m.adminDayTitleOverrides).length>0&&(c.adminDayTitleOverrides=m.adminDayTitleOverrides),Object.keys(c).length>0?sessionStorage.setItem(`bt_admin_session_${e}_${t}`,JSON.stringify(c)):sessionStorage.removeItem(`bt_admin_session_${e}_${t}`)}catch(e){}},[m]),(0,r.jsx)(s.Provider,{value:{state:E,dispatch:p},children:e})}function c(){let e=(0,i.useContext)(s);if(!e)throw Error("useItinerary must be used within an ItineraryProvi
1der");return e}}}]);

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.