1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[949],{24949:(e,o,t)=>{t.r(o),t.d(o,{RightDrawer:()=>g});var r=t(14232),n=t(91289),i=t(18847),a=t.n(i);let s=0,l=[{Ship:"CQ",SailDate:"2023-07-31T00:00:00",Duration:4,OfferCode:"TF2",OfferID:224944,UpgradeFrom:null,CategoryCode:"1A",Disclaimer:"Save up to 10%. Guest may reprice booking if a lower cruise rate offered to the general public is available based on the total cabin occupancy & not from the booked ancillary services or group rates. Guest assumes terms and conditions of new offer and may forfeit features associated with original fare (i.e. cabin assignment, onboard credit, upgrade, special deposit/payment terms). Offer applies to cabin assignment categories. Refundable reduced deposit of USD $49.00 per person. Offer includes non-refundable Bar onboard credit of USD $25.00 per person, USD $50.00 per cabin. Offer includes non-refundable Spa onboard credit of USD $25.00 per person, USD $50.00 per cabin. Minimum age of 16 required. Alternate non-refundable onboard credit in gift shop available. Change sailing fee of USD $10.00 per person applies. Bookings made as part of a group will include their amenities. Cruise rates are in US Dollars, average per person and based on double occupancy. Offer is capacity controlled and is not combinable with any other discount or promotional offer. Rates may vary by ship, stateroom type and sail date. Change fees are not assessed outside of the final payment window. Category restrictions and exclusions apply. Carnival reserves the right to withdraw and/or change offer at any time without prior notice. Offer is for the cruise fare only and does not include Taxes, Fees and Port Expenses. Taxes, Fees and Port Expenses range from USD $63.14 to $427.64, and are assessed on a per guest basis for all guests according to the itinerary. Ships' Registry: The Bahamas, Panama & Malta.",NonRefObcAmount:"100.00",RefObcAmount:"0",SailingCurrencyCode:"USD",BulletList:[{Type:"CN",SubType:"AS",Text:"Choose your room location.",BenefitInd:"Y"},{Type:"OG",SubType:"BR",Text:"Includes Bar onboard credit of USD $50.00 per cabin.",BenefitInd:"Y"},{Type:"OG",SubType:"SP",Text:"Includes Spa onboard credit of USD $50.00 per cabin.",BenefitInd:"Y"},{Type:"PP",SubType:"NA",Text:"Includes price protection.",BenefitInd:"Y"},{Type:"RD",SubType:"ID",Text:"Reduced deposit of USD $49.00 per person.",BenefitInd:"Y"},{Type:"CS",SubType:"NA",Text:"A USD $10.00 per person fee will be assessed for ship/sail date changes made prior to final payment date.",BenefitInd:"N"},{Type:"MC",SubType:"SV",Text:"Save up to 10%.",BenefitInd:"Y"},{Type:"YS",SubType:"SV",Text:"Price Protection.",BenefitInd:null},{Type:"KS",SubType:"NA",Text:"Minimum Category of 1A required.",BenefitInd:"N"}],Name:"Best Cruise Ever (SHOPv1)"}];var d=t(70964);let c=d.default.div` 2 display: flex; 3 flex-direction: column; 4 height: 100vh; 5 background-color: white; 6 box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15); 7 pointer-events: auto; 8 position: relative; 9 z-index: 1; 10`,u=d.default.div` 11 padding: var(--spacing_token_l, 24px); 12 border-bottom: 1px solid var(--alto, #ddd); 13 background-color: var(--bondi-blue, #10559a); 14 color: white; 15 display: flex; 16 justify-content: space-between; 17 align-items: center; 18 19 h2 { 20 margin: 0; 21 font-size: 24px; 22 font-weight: 600; 23 font-family: 'Tempo', sans-serif; 24 } 25`,p=d.default.button` 26 background: transparent; 27 border: none; 28 color: white; 29 cursor: pointer; 30 padding: 8px; 31 display: flex; 32 align-items: center; 33 justify-content: center; 34 border-radius: 4px; 35 transition: background-color 0.2s; 36 37 &:hover { 38 background-color: rgba(255, 255, 255, 0.2); 39 } 40 41 &:focus { 42 outline: 2px solid white; 43 outline-offset: 2px; 44 } 45 46 svg { 47 width: 24px; 48 height: 24px; 49 } 50`,f=d.default.div` 51 flex: 1; 52 overflow-y: auto; 53 padding: var(--spacing_token_l, 24px); 54 55 /* Custom scrollbar styling */ 56 &::-webkit-scrollbar {
57 width: 8px; 58 } 59 60 &::-webkit-scrollbar-track { 61 background: #f1f1f1; 62 } 63 64 &::-webkit-scrollbar-thumb { 65 background: #888; 66 border-radius: 4px; 67 } 68 69 &::-webkit-scrollbar-thumb:hover { 70 background: #555; 71 } 72`,b=d.default.div` 73 padding: var(--spacing_token_m, 16px) var(--spacing_token_l, 24px); 74 border-top: 1px solid var(--alto, #ddd); 75 background-color: #f9f9f9; 76 77 p { 78 margin: 0; 79 font-size: 14px; 80 color: var(--tundora, #4a4a4a); 81 } 82`,m=d.default.div` 83 margin-bottom: var(--spacing_token_l, 24px); 84 85 p { 86 margin-bottom: var(--spacing_token_m, 16px); 87 line-height: 1.6; 88 color: var(--tundora, #4a4a4a); 89 font-size: 14px; 90 } 91`;var h=t(37876);let y=a()(()=>Promise.all([t.e(793),t.e(520),t.e(637),t.e(800)]).then(t.bind(t,11781)),{ssr:!1}),g=e=>{let o,{isOpen:t,onClose:i,sailings:a,stateroomMetaInformation:d,pricingGridResources:g,itineraryIndex:w=0,testId:x="drawer"}=e,v=(0,r.useRef)(null),k=(0,r.useRef)(null),[T,S]=(0,r.useState)(a),C=(0,n.Gu)(),D=(0,r.useCallback)((e,o,t)=>new Promise(t=>{setTimeout(()=>{let r=l[0];S(t=>t.map((t,n)=>{if(n!==o)return t;let i={...t.rooms};
91return Object.keys(i).forEach(o=>{i[o]?.metacode===e.metacode&&(i[o]={...i[o],rateName:r.Name,disclaimer:r.Disclaimer,rateAttributes:r.BulletList.map(e=>({isBenefit:"Y"===e.BenefitInd||null===e.BenefitInd,description:e.Text}))})}),{...t,rooms:i}})),t()},2e3)}),[]);o=(0,r.useRef)(!1),(0,r.useEffect)(()=>{if("u">typeof document){if(t&&!o.current){if(1==++s){let e=window.scrollY;document.documentElement.classList.add("scroll-locked"),document.body.classList.add("scroll-locked"),document.body.style.top=`-${e}px`}o.current=!0}else if(!t&&o.current){if(0==--s){let e=document.body.style.top;document.documentElement.classList.remove("scroll-locked"),document.body.classList.remove("scroll-locked"),document.body.style.top="",e&&window.scrollTo(0,-1*parseInt(e||"0"))}o.current=!1}return()=>{if(o.current){if(0==--s){let e=document.body.style.top;document.documentElement.classList.remove("scroll-locked"),document.body.classList.remove("scroll-locked"),document.body.style.top="",e&&window.scrollTo(0,-1*parseInt(e||"0"))}o.current=!1}}}},[t]);let I={overlay:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:9999,pointerEvents:"none"},content:{position:"fixed",top:0,right:0,bottom:0,left:"auto",width:C.isMobile?"100%":C.isTablet?"500px":"665px",height:"100vh",border:"none",background:"transparent",padding:0,overflow:"visible",borderRadius:0}};return(0,h.jsx)(n.$3,{modalIsOpen:t,onClose:i,onAfterOpen:()=>{"u">typeof document&&(document.body.style.overflow="hidden",document.body.style.position="fixed",document.body.style.width="100%",document.documentElement.style.overflow="hidden")},onAfterClose:()=>{"u">typeof document&&(document.body.style.overflow="",document.body.style.position="",document.body.style.width="",document.documentElement.style.overflow="")},customStyles:I,testId:x,ariaDescribedBy:"drawer-content",shouldCloseOnEsc:!0,shouldCloseOnOverlayClick:!0,shouldReturnFocusAfterClose:!1,bodyClassName:"",children:(0,h.jsxs)(c,{children:[(0,h.jsxs)(u,{ref:k,children:[(0,h.jsx)("h2",{id:"drawer-title",children:"Pricing Grid"}),(0,h.jsx)(p,{onClick:i,"aria-label":"Close drawer",type:"button",children:(0,h.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,h.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,h.jsxs)(f,{ref:v,id:"drawer-content",children:[(0,h.jsxs)(m,{children:[(0,h.jsx)("p",{children:"This drawer contains the complete pricing grid. You can scroll within the drawer without affecting the main body scroll."}),(0,h.jsx)("p",{children:"This drawer contains the complete pricing grid. You can scroll within the drawer without affecting the main body scroll."}),(0,h.jsx)("p",{children:'When clicking the "Extra Value" button (red label), the modal will position correctly and recalculate its position when scrolling.'})]}),(0,h.jsx)(y,{sailings:T,stateroomMetaInformation:d,pricingGridResources:g,itineraryIndex:w,testId:`${x}_pricing_grid`,drawerBodyRef:v,drawerHeaderRef:k,onAfterOpenExtraValueModal:()=>{console.log("[RightDrawer] ExtraValueModal opened - maintaining drawer scroll lock")},onAfterCloseExtraValueModal:()=>{console.log("[RightDrawer] ExtraValueModal closed - maintaining drawer scroll lock")},repositionOnContentLoad:!0,fetchTermsAndConditions:D})]}),(0,h.jsx)(b,{children:(0,h.jsx)("p",{children:"Drawer with internal scroll - The body does not scroll while this drawer is open"})})]})})}}}]); 92//# sourceMappingURL=949.b07d2ac5519906a6.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.