1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="26012f16-abd9-1700-e28a-c25517740e3b")}catch(e){}}(); 2(globalThis["TURBOPACK"] || (globalThis["TURBOPACK"] = [])).push([typeof document === "object" ? document.currentScript : undefined, 344038, ((__turbopack_context__) => { 4"use strict"; 5 6var __TURBOPACK__imported__module__843476__ = __turbopack_context__.i(843476); 7var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 8; 9; 10const SvgPassengerCar = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("svg", { 11 xmlns: "http://www.w3.org/2000/svg", 12 width: 24, 13 height: 24, 14 fill: "none", 15 viewBox: "0 0 24 24", 16 ref: ref, 17 ...props, 18 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("path", { 19 fill: "currentColor", 20 d: "M21.375 12.417v6.25a.8.8 0 0 1-.275.589 1 1 0 0 1-.663.244H19.5a1 1 0 0 1-.663-.244.8.8 0 0 1-.274-.59v-.833H5.438v.834a.8.8 0 0 1-.275.589 1 1 0 0 1-.663.244h-.937a1 1 0 0 1-.663-.244.8.8 0 0 1-.275-.59v-6.25l-1.165-.258a.96.96 0 0 1-.512-.295.78.78 0 0 1-.198-.513v-.6c0-.11.05-.216.137-.295a.5.5 0 0 1 .332-.122h1.758L4.98 5.582c.134-.318.374-.592.688-.785A2.04 2.04 0 0 1 6.737 4.5h10.526c.382 0 .755.104 1.068.297s.554.467.688.785l2.004 4.751h1.758a.5.5 0 0 1 .332.122.4.4 0 0 1 .137.295v.6c0 .186-.07.366-.198.513a.96.96 0 0 1-.512.295zM4.5 13.667v1.666a.8.8 0 0 0 .275.59 1 1 0 0 0 .662.244H8.48c.08 0 .16-.02.23-.055a.45.45 0 0 0 .171-.148.38.38 0 0 0 .01-.41q-1.131-1.888-4.391-1.887m15 0q-3.259 0-4.393 1.886a.38.38 0 0 0 .011.411.45.45 0 0 0 .171.149c.07.035.15.054.231.054h3.043a1 1 0 0 0 .662-.244.8.8 0 0 0 .275-.59zm-13.125-7.5L4.912 10.07a.75.75 0 0 0-.038.389c.023.13.08.254.166.361s.201.195.333.255c.133.06.279.092.427.092h12.4c.148 0 .294-.032.427-.092a.9.9 0 0 0 .333-.255.8.8 0 0 0 .166-.361.75.75 0 0 0-.038-.389l-1.463-3.903z" 21 }) 22 }); 23const ForwardRef = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__["forwardRef"])(SvgPassengerCar); 24const Memo = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__["memo"])(ForwardRef); 25const __TURBOPACK__default__export__ = Memo; 26__turbopack_context__.s([ 27 "default", 28 0, 29 __TURBOPACK__default__export__ 30]); 31}), 3217198, ((__turbopack_context__) => { 33"use strict"; 34 35var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 36var __TURBOPACK__imported__module__408155__ = __turbopack_context__.i(408155); 37var __TURBOPACK__imported__module__768834__ = __turbopack_context__.i(768834); 38"use client"; 39; 40; 41; 42const createRentalWidgetStore = ()=>{ 43 return (0, __TURBOPACK__imported__module__408155__["createStore"])()((set)=>({ 44 currentActiveElement: null, 45 setCurrentActiveElement: (element)=>set((state)=>({ 46 ...state, 47 currentActiveElement: element 48 })) 49 })); 50}; 51const RentalWidgetContext = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__["createContext"])(null); 52function useRentalWidgetStore() { 53 const store = (0, __TURBOPACK__imported__module__271645__["useContext"])(RentalWidgetContext); 54 if (!store) throw new Error("Missing RentalWidgetContext.Provider in the tree"); 55 return store; 56} 57function useRentalWidgetState(selector) { 58 const store = useRentalWidgetStore(); 59 return (0, __TURBOPACK__imported__module__768834__["useStore"])(store, selector); 60} 61__turbopack_context__.s([ 62 "RentalWidgetContext", 63 0, 64 RentalWidgetContext, 65 "createRentalWidgetStore", 66 0, 67 createRentalWidgetStore, 68 "useRentalWidgetState", 69 0, 70 useRentalWidgetState, 71 "useRentalWidgetStore", 72 0, 73 useRentalWidgetStore 74]); 75}), 7635404, ((__turbopack_context__) => { 77"use strict"; 78 79var __TURBOPACK__imported__module__843476__ = __turbopack_context__.i(843476); 80var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 81var __TURBOPACK__imported__module__218330__ = __turbopack_context__.i(218330); 82var __TURBOPACK__imported__module__735436__ = __turbopack_context__.i(735436);
83var __TURBOPACK__imported__module__773447__ = __turbopack_context__.i(773447); 84var __TURBOPACK__imported__module__948148__ = __turbopack_context__.i(948148); 85var __TURBOPACK__imported__module__17198__ = __turbopack_context__.i(17198); 86; 87; 88; 89; 90; 91; 92const ConnectedLocationPicker = /*#__PURE__*/ __TURBOPACK__imported__module__271645__["default"].memo(function ConnectedLocationPicker(param) { 93 let { ref, mode = "pickup_and_return", errors = [], anchor, align, label, className, popupClassName, triggerClassName, showLocationInfo = true, onSelect } = param; 94 const isReturn = mode === "return"; 95 const widgetStore = (0, __TURBOPACK__imported__module__17198__["useRentalWidgetStore"])(); 96 const t = (0, __TURBOPACK__imported__module__948148__["useTranslations"])(isReturn ? "LocationPicker.returnLocation" : "LocationPicker"); 97 const element = isReturn ? "return_location" : "location"; 98 const open = (0, __TURBOPACK__imported__module__17198__["useRentalWidgetState"])((state)=>state.currentActiveElement === element); 99 const onOpenChange = (0, __TURBOPACK__imported__module__271645__["useCallback"])((open)=>{ 100 const state = widgetStore.getState(); 101 state.setCurrentActiveElement(open ? element : null); 102 }, [ 103 widgetStore, 104 element 105 ]); 106 const locations = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.locations); 107 const pickupLocation = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.locations.find((location)=>location.id === state.config.locationId)); 108 const returnLocation = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.locations.find((location)=>location.id === state.config.returnLocationId)); 109 const error = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 110 const fields = []; 111 if (mode === "return") fields.push("returnLocationId"); 112 if (mode === "pickup") fields.push("locationId"); 113 if (mode === "pickup_and_return") fields.push("locationId", "returnLocationId"); 114 return errors.some((it)=>fields.includes(it.field)); 115 }, [ 116 errors, 117 mode 118 ]); 119 const setReturnLocationId = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.setReturnLocationId); 120 const setLocationId = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.setLocationId); 121 const handleOnChangeLocation = (0, __TURBOPACK__imported__module__271645__["useCallback"])((location)=>{ 122 if (mode === "return") { 123 setReturnLocationId(location === null || location === void 0 ? void 0 : location.id); 124 return; 125 } 126 if (mode === "pickup") { 127 setLocationId(location === null || location === void 0 ? void 0 : location.id); 128 } else { 129 setLocationId(location === null || location === void 0 ? void 0 : location.id); 130 setReturnLocationId(location === null || location === void 0 ? void 0 : location.id); 131 } 132 // Advance to the next field once a pickup location is actually chosen. 133 if (location) { 134 onSelect === null || onSelect === void 0 ? void 0 : onSelect(); 135 } 136 }, [ 137 mode, 138 setLocationId, 139 setReturnLocationId, 140 onSelect 141 ]); 142 const handleOnChangeReturnLocation = (0, __TURBOPACK__imported__module__271645__["useCallback"])((location)=>{ 143 setReturnLocationId(location === null || location === void 0 ? void 0 : location.id); 144 }, [ 145 setReturnLocationId 146 ]); 147 const value = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 148 if (mode === "return") { 149 return { 150 pickupLocation, 151 returnLocation: returnLocation !== null && returnLocation !== void 0 ? returnLocation : pickupLocation 152 }; 153 } 154 return { 155 pickupLocation, 156 returnLocation: (returnLocation === null || returnLocation === void 0 ? void 0 : returnLocation.id) === (pickupLocation === null || pickupLocation === void 0 ? void 0 : pickupLocation.id) ? undefined : returnLocation 157 }; 158 }, [ 159 mode, 160 pickupLocation, 161 returnLocation 162 ]); 163 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__735436__["default"], { 164 ref: ref, 165 mode: mode, 166 align: align, 167 label: label !== null && label !== void 0 ? label : t("label"), 168 anchor: anchor, 169 locations: locations, 170 className: className, 171 popupClassName: popupClassName, 172 triggerClassName: triggerClassName, 173 showLocationInfo: !isReturn && showLocationInfo, 174 onChangeLocation: handleOnChangeLocation, 175 onChangeReturnLocation: handleOnChangeReturnLocation, 176 value: value, 177 error: error, 178 open: open, 179 onOpenChange: onOpenChange 180 }); 181}); 182__turbopack_context__.s([ 183 "ConnectedLocationPicker", 184 0, 185 ConnectedLocationPicker 186]); 187}), 188394973, 893980, 189((__turbopack_context__) => { 190"use strict"; 191 192// MERGED MODULE: [project]/src/components/widgets/_components/MainCategoryPicker.tsx [app-client] (ecmascript) 193; 194var __TURBOPACK__imported__module__843476__ = __turbopack_context__.i(843476);
195var __TURBOPACK__imported__module__774084__ = __turbopack_context__.i(774084); 196var __TURBOPACK__imported__module__501804__ = __turbopack_context__.i(501804); 197var __TURBOPACK__imported__module__47660__ = __turbopack_context__.i(47660); 198var __TURBOPACK__imported__module__773447__ = __turbopack_context__.i(773447); 199var __TURBOPACK__imported__module__948148__ = __turbopack_context__.i(948148); 200// MERGED MODULE: [project]/src/icon/vehicle-categories/CarTransporter.tsx [app-client] (ecmascript) 201; 202var __TURBOPACK__imported__module__843476__1 = __TURBOPACK__imported__module__843476__; 203var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 204; 205; 206const SvgCarTransporter = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("svg", { 207 xmlns: "http://www.w3.org/2000/svg", 208 width: 24, 209 height: 24, 210 fill: "none", 211 viewBox: "0 0 24 24", 212 ref: ref, 213 ...props, 214 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("path", { 215 fill: "#050C43", 216 fillRule: "evenodd", 217 d: "M16.75 5.25h2.622a.75.75 0 0 1 .603.304l2.628 3.553a.75.75 0 0 1 .147.446V14.5a.75.75 0 0 1-.75.75h-1.285a3.5 3.5 0 0 1-6.93 0h-5.07a3.5 3.5 0 0 1-6.93 0H.75v-3a1 1 0 0 1 1-1h13.206v-6zm0 2v3h4v-.285L18.742 7.25zm-9.688 7.719a1.781 1.781 0 1 1-3.562 0 1.781 1.781 0 0 1 3.562 0m10.22 1.781a1.781 1.781 0 1 0 0-3.563 1.781 1.781 0 0 0 0 3.563", 218 clipRule: "evenodd" 219 }) 220 }); 221const ForwardRef = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__["forwardRef"])(SvgCarTransporter); 222const Memo = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__["memo"])(ForwardRef); 223const __TURBOPACK__default__export__ = Memo; 224// MERGED MODULE: [project]/src/icon/vehicle-categories/DeliveryVan.tsx [app-client] (ecmascript) 225; 226var __TURBOPACK__imported__module__843476__2 = __TURBOPACK__imported__module__843476__; 227var __TURBOPACK__imported__module__271645__1 = __TURBOPACK__imported__module__271645__; 228; 229; 230const SvgDeliveryVan = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__2["jsx"])("svg", { 231 xmlns: "http://www.w3.org/2000/svg", 232 width: 24, 233 height: 24, 234 fill: "none",
235 viewBox: "0 0 24 24", 236 ref: ref, 237 ...props, 238 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__2["jsx"])("path", { 239 fill: "#050C43", 240 fillRule: "evenodd", 241 d: "m20.02 9.728 2.89 2.095a.82.82 0 0 1 .34.664v4.526a.82.82 0 0 1-.824.822h-2.46a2.498 2.498 0 0 1-4.708 0H6.763a2.497 2.497 0 0 1-4.708 0h-.481a.82.82 0 0 1-.824-.822V5.321c0-.453.369-.821.824-.821h13.75c.246 0 .48.11.636.3zM3.563 17.013a.846.846 0 0 0 1.693 0 .846.846 0 0 0-1.694 0m13.202 0a.846.846 0 0 0 1.694 0 .846.846 0 0 0-1.694 0M13.93 6.936a.82.82 0 0 1 .915.253l2.291 2.796a.824.824 0 0 1-.602 1.39h-2.326a.824.824 0 0 1-.824-.826V7.713c0-.349.219-.66.546-.777", 242 clipRule: "evenodd" 243 }) 244 }); 245const ForwardRef1 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__1["forwardRef"])(SvgDeliveryVan); 246const Memo1 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__1["memo"])(ForwardRef1); 247const __TURBOPACK__default__export__1 = Memo1; 248// MERGED MODULE: [project]/src/icon/vehicle-categories/Electric.tsx [app-client] (ecmascript) 249; 250var __TURBOPACK__imported__module__843476__3 = __TURBOPACK__imported__module__843476__; 251var __TURBOPACK__imported__module__271645__2 = __TURBOPACK__imported__module__271645__; 252; 253; 254const SvgElectric = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__3["jsx"])("svg", { 255 xmlns: "http://www.w3.org/2000/svg", 256 width: 24, 257 height: 24, 258 fill: "none",
259 viewBox: "0 0 24 24", 260 ref: ref, 261 ...props, 262 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__3["jsx"])("path", { 263 fill: "currentColor", 264 d: "M3.375 19.083V4.708a.96.96 0 0 1 .958-.958h8.625a.96.96 0 0 1 .958.958v7.667h1.917a1.917 1.917 0 0 1 1.917 1.917v3.833a.958.958 0 0 0 1.916 0v-6.708H17.75a.96.96 0 0 1-.959-.959V7.022l-1.588-1.588 1.356-1.355 4.743 4.743a.96.96 0 0 1 .281.678v8.625a2.875 2.875 0 1 1-5.75 0v-3.833h-1.917v4.791h.959V21H2.416v-1.917zm5.75-7.666V7.583l-3.833 5.75h2.874v3.834L12 11.417z" 265 }) 266 }); 267const ForwardRef2 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__2["forwardRef"])(SvgElectric); 268const Memo2 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__2["memo"])(ForwardRef2); 269const __TURBOPACK__default__export__2 = Memo2; 270__turbopack_context__.s([ 271 "default", 272 0, 273 __TURBOPACK__default__export__2 274], 893980); 275// MERGED MODULE: [project]/src/icon/vehicle-categories/PassengerBus.tsx [app-client] (ecmascript) 276; 277var __TURBOPACK__imported__module__843476__4 = __TURBOPACK__imported__module__843476__; 278var __TURBOPACK__imported__module__271645__3 = __TURBOPACK__imported__module__271645__; 279; 280; 281const SvgPassengerBus = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__4["jsx"])("svg", { 282 xmlns: "http://www.w3.org/2000/svg", 283 width: 24, 284 height: 24, 285 fill: "none",
286 viewBox: "0 0 24 24", 287 ref: ref, 288 ...props, 289 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__4["jsx"])("path", { 290 fill: "#050C43", 291 fillRule: "evenodd", 292 d: "m20.02 10.076 2.89 1.934a.74.74 0 0 1 .34.613v4.178c0 .419-.369.758-.824.758h-2.46c-.341.894-1.267 1.537-2.354 1.537s-2.013-.643-2.354-1.537H6.763c-.341.894-1.267 1.537-2.354 1.537-1.086 0-2.012-.643-2.354-1.537h-.481c-.455 0-.824-.34-.824-.758V6.008c0-.419.369-.758.824-.758h13.75c.246 0 .48.102.636.277zM3.563 16.801c0 .43.38.779.846.779.467 0 .847-.35.847-.78 0-.429-.38-.778-.847-.778s-.846.35-.846.779m13.202 0c0 .43.38.779.847.779s.847-.35.847-.78c0-.429-.38-.778-.847-.778s-.847.35-.847.779M13.93 7.499a.87.87 0 0 1 .915.233l2.291 2.581a.73.73 0 0 1 .222.52c0 .421-.369.762-.824.762h-2.326c-.455 0-.824-.34-.824-.762V8.216c0-.322.219-.609.546-.717m-5.68.832c0-.478.42-.866.938-.866h1.874c.518 0 .938.388.938.866v2.423c0 .478-.42.865-.937.865H9.187c-.517 0-.937-.387-.937-.865zM4.5 7.465c-.518 0-.937.388-.937.866v2.423c0 .478.42.865.937.865h1.875c.518 0 .938-.387.938-.865V8.33c0-.478-.42-.866-.938-.866z", 293 clipRule: "evenodd" 294 }) 295 }); 296const ForwardRef3 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__3["forwardRef"])(SvgPassengerBus); 297const Memo3 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__3["memo"])(ForwardRef3); 298const __TURBOPACK__default__export__3 = Memo3; 299var __TURBOPACK__imported__module__44038__ = __turbopack_context__.i(44038); 300// MERGED MODULE: [project]/src/icon/vehicle-categories/Pickup.tsx [app-client] (ecmascript) 301; 302var __TURBOPACK__imported__module__843476__5 = __TURBOPACK__imported__module__843476__; 303var __TURBOPACK__imported__module__271645__4 = __TURBOPACK__imported__module__271645__; 304; 305; 306const SvgPickup = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__5["jsx"])("svg", { 307 xmlns: "http://www.w3.org/2000/svg", 308 width: 32, 309 height: 32, 310 fill: "none",
311 viewBox: "0 0 32 32", 312 ref: ref, 313 ...props, 314 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__5["jsx"])("path", { 315 fill: "#050C43", 316 d: "M25.83 7a1 1 0 0 1 .803.405l3.505 4.738a1 1 0 0 1 .195.594v6.596a1 1 0 0 1-1 1H27.62a4.668 4.668 0 0 1-9.24 0h-6.76a4.668 4.668 0 0 1-9.24 0H1v-8A1.333 1.333 0 0 1 2.333 11h15.608V7zM7.041 17.583a2.375 2.375 0 1 0 0 4.75 2.375 2.375 0 0 0 0-4.75m16 0a2.375 2.375 0 1 0 0 4.75 2.375 2.375 0 0 0 0-4.75m-2.709-3.916h7.334v-.38l-2.678-3.62h-4.656z" 317 }) 318 }); 319const ForwardRef4 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__4["forwardRef"])(SvgPickup); 320const Memo4 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__4["memo"])(ForwardRef4); 321const __TURBOPACK__default__export__4 = Memo4; 322// MERGED MODULE: [project]/src/icon/vehicle-categories/RefrigeratedVan.tsx [app-client] (ecmascript) 323; 324var __TURBOPACK__imported__module__843476__6 = __TURBOPACK__imported__module__843476__; 325var __TURBOPACK__imported__module__271645__5 = __TURBOPACK__imported__module__271645__; 326; 327; 328const SvgRefrigeratedVan = (props, ref)=>
328/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__6["jsxs"])("svg", { 329 xmlns: "http://www.w3.org/2000/svg", 330 width: 24, 331 height: 24, 332 fill: "none", 333 viewBox: "0 0 24 24", 334 ref: ref, 335 ...props, 336 children: [ 337 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__6["jsx"])("path", { 338 fill: "currentColor", 339 fillRule: "evenodd", 340 d: "m22.91 11.823-2.89-2.095L15.96 4.8a.83.83 0 0 0-.636-.3H1.574a.82.82 0 0 0-.824.821v11.692c0 .454.369.822.824.822h.481a2.497 2.497 0 0 0 4.708 0h8.495a2.498 2.498 0 0 0 4.708 0h2.46a.82.82 0 0 0 .824-.822v-4.526a.82.82 0 0 0-.34-.664m-18.5 6.035a.846.846 0 0 1-.848-.845.846.846 0 0 1 1.694 0c0 .466-.38.845-.847.845m13.202 0a.846.846 0 0 1-.847-.845.846.846 0 0 1 1.694 0c0 .466-.38.845-.847.845M14.845 7.189a.823.823 0 0 0-1.46.524v2.836c0 .456.368.825.823.825h2.326a.824.824 0 0 0 .602-1.39zm-6.32-.546-.533-.533L6.75 7.35 5.508 6.11l-.533.533 1.398 1.398v1.454l-1.417-.818-.469-1.752-.729.195.455 1.696-1.696.455.195.728 2.067-.553 1.217.702-1.532.884-1.752-.47-.195.73 1.696.454-.455 1.696.729.195.554-2.067 1.332-.769v1.72l-1.398 1.398.533.533 1.242-1.241 1.242 1.241.533-.533-1.402-1.402v-1.718l1.336.77.554 2.068.728-.195-.454-1.696 1.696-.455-.195-.728-1.752.47-1.532-.885 1.217-.702 2.067.553.195-.728-1.696-.455.454-1.696-.728-.195-.47 1.752-1.42.82V8.046z", 341 clipRule: "evenodd" 342 }), 343 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__
3436["jsx"])("rect", { 344 width: 6.75, 345 height: 2.25, 346 x: 4.5, 347 y: 3, 348 fill: "#50557B", 349 rx: 0.75 350 }) 351 ] 352 }); 353const ForwardRef5 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__5["forwardRef"])(SvgRefrigeratedVan); 354const Memo5 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__5["memo"])(ForwardRef5); 355const __TURBOPACK__default__export__5 = Memo5; 356// MERGED MODULE: [project]/src/icon/vehicle-categories/Truck.tsx [app-client] (ecmascript) 357; 358var __TURBOPACK__imported__module__843476__7 = __TURBOPACK__imported__module__843476__; 359var __TURBOPACK__imported__module__271645__6 = __TURBOPACK__imported__module__271645__; 360; 361; 362const SvgTruck = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__7["jsx"])("svg", { 363 xmlns: "http://www.w3.org/2000/svg", 364 width: 24, 365 height: 24, 366 fill: "none", 367 viewBox: "0 0 24 24", 368 ref: ref, 369 ...props, 370 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__7["jsx"])("path", { 371 fill: "#050C43", 372 fillRule: "evenodd", 373 d: "M17 8h2.622a.75.75 0 0 1 .603.304l2.628 3.553a.75.75 0 0 1 .147.446v4.947a.75.75 0 0 1-.75.75h-1.285a3.5 3.5 0 0 1-6.93 0h-5.07a3.5 3.5 0 0 1-6.93 0H1V6a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1zm0 2v3h4v-.285L18.992 10zm-9.688 7.72a1.781 1.781 0 1 1-3.562 0 1.781 1.781 0 0 1 3.562 0m10.22 1.78a1.781 1.781 0 1 0 0-3.562 1.781 1.781 0 0 0 0 3.562", 374 clipRule: "evenodd" 375 }) 376 }); 377const ForwardRef6 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__6["forwardRef"])(SvgTruck); 378const Memo6 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__6["memo"])(ForwardRef6); 379const __TURBOPACK__default__export__6 = Memo6; 380// MERGED MODULE: [project]/src/icon/vehicle-categories/Wintersport.tsx [app-client] (ecmascript) 381; 382var __TURBOPACK__imported__module__843476__8 = __TURBOPACK__imported__module__843476__; 383var __TURBOPACK__imported__module__271645__7 = __TURBOPACK__imported__module__271645__; 384; 385; 386const SvgWintersport = (props, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__8["jsx"])("svg", { 387 xmlns: "http://www.w3.org/2000/svg", 388 width: 32, 389 height: 32, 390 fill: "none",
391 viewBox: "0 0 32 32", 392 ref: ref, 393 ...props, 394 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__8["jsx"])("g", { 395 fill: "#050C43", 396 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__8["jsx"])("path", { 397 d: "M25.994 27.205a.926.926 0 0 0-1.226.442.927.927 0 0 1-1.222.443l-5.969-2.822-.007-.003 1.949-4.14a1.79 1.79 0 0 0-.226-1.895l-2.769-3.455 1.686-1.336c.168.136 5.38 2.523 5.318 2.494.93.43 2.027.018 2.45-.883a1.823 1.823 0 0 0-.891-2.427l-2.641-1.22-1.526-4.15a1.86 1.86 0 0 0-2.373-1.096c-.295.114-2.856 2.156-4.431 3.408l-3.791-1.75-4.6-2.366a.926.926 0 0 0-1.225.442.91.91 0 0 0 .446 1.213l7.556 3.73c-.062.049-.464.334-.92.692-.393.31-.64.75-.695 1.239-.054.477.083.944.385 1.316l4.42 5.529-1.466 3.111-8.914-4.116a.926.926 0 0 0-1.225.442.91.91 0 0 0 .446 1.213l18.223 8.48.008.004c1.382.638 3.031.043 3.676-1.326a.91.91 0 0 0-.446-1.213M26.803 4.094A3.21 3.21 0 0 0 23.788 2c-1.188 0-2.36.662-2.914 1.838a3.17 3.17 0 0 0 1.554 4.226c.431.199.887.3 1.355.3 2.22 0 3.786-2.188 3.02-4.27" 398 }) 399 }) 400 }); 401const ForwardRef7 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__7["forwardRef"])(SvgWintersport); 402const Memo7 = /*#__PURE__*/ (0, __TURBOPACK__imported__module__271645__7["memo"])(ForwardRef7); 403const __TURBOPACK__default__export__7 = Memo7; 404var __TURBOPACK__imported__module__945060__ = __turbopack_context__.i(945060); 405var __TURBOPACK__imported__module__480630__ = __turbopack_context__.i(480630); 406; 407; 408; 409; 410; 411; 412; 413; 414; 415; 416; 417; 418; 419; 420; 421; 422// Mapping of vehicle category titles (from mainCategory.title['en_US']) to corresponding icons. 423const VEHICLE_ITEM_MAPPINGS = { 424 "Passenger cars": __TURBOPACK__imported__module__44038__["default"], 425 "Passenger buses": __TURBOPACK__default__export__3, 426 "Electric": __TURBOPACK__default__export__2, 427 "Delivery vans": __TURBOPACK__default__export__1, 428 "Refrigerated vans": __TURBOPACK__default__export__5, 429 "Wheelchair buses": __TURBOPACK__default__export__3, 430 "Car transporters": __TURBOPACK__default__export__, 431 "Winter sports": __TURBOPACK__default__export__7, 432 "Trucks": __TURBOPACK__default__export__6, 433 "Pick-ups": __TURBOPACK__default__export__4, 434 "fallback": __TURBOPACK__imported__module__44038__["default"] 435}; 436function getIconForMainCategory(category) { 437 return VEHICLE_ITEM_MAPPINGS[category === null || category === void 0 ? void 0 : category.title["en_US"]] || VEHICLE_ITEM_MAPPINGS["fallback"]; 438} 439function MainCategoryPicker(param) { 440 let { mainCategories, value, onChange, onSelect, error, ref, open, onOpenChange, onHoverCategory } = param; 441 const apiLocale = (0, __TURBOPACK__imported__module__501804__["default"])(); 442 const activeMainCategory = mainCategories.find((it)=>it.id.toString() === value); 443 const LabelIconComponent = getIconForMainCategory(activeMainCategory); 444 const t = (0, __TURBOPACK__imported__module__948148__["useTranslations"])("NewRentalWidget"); 445 const { onItemPointerDown, onItemPointerUp } = (0, __TURBOPACK__imported__module__47660__["useSelectItemSelect"])(open, onSelect); 446 const items = mainCategories.map((item)=>{ 447 const IconComponent = getIconForMainCategory(item); 448 return { 449 id: item.id.toString(), 450 label: item.title[apiLocale] || "", 451 icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(IconComponent, { 452 className: "w-3 h-3" 453 }), 454 category: item 455 }; 456 }); 457 const handleKeyDown = (event)=>{ 458 if (event.key !== "Enter" && event.key !== " ") { 459 return; 460 } 461 onSelect === null || onSelect === void 0 ? void 0 : onSelect(); 462 }; 463 // Only suppress Radix's focus restoration if we have our own handler setup for focus management 464 const handleCloseAutoFocus = (event)=>{ 465 if (!onSelect) { 466 return; 467 } 468 event.preventDefault(); 469 }; 470 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])(__TURBOPACK__imported__module__480630__["SelectRoot"], { 471 value: value, 472 onValueChange: onChange, 473 open: open, 474 onOpenChange: onOpenChange, 475 children: [ 476 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__480630__["SelectTrigger"], { 477 ref: ref, 478 "aria-label": t("mainCategory.label"), 479 error: error, 480 className: "rounded-tl rounded-tr xl:rounded-bl xl:rounded-tr-none", 481 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__480630__["SelectFieldset"], { 482 label: t("mainCategory.label"), 483 error: error, 484 isOpen: open, 485 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])("div", { 486 className: "flex items-center gap-1", 487 children: [ 488 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("div", { 489 className: "shrink-0", 490 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(LabelIconComponent, { 491 className: "h-2 w-2" 492 }) 493 }), 494 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])("div", { 495 className: "text-14 flex-1 flex gap-0.5 font-inter", 496 children: [ 497 !!activeMainCategory && /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("div", { 498 className: "text-left flex-1 w-0 truncate", 499 children: activeMainCategory.title[apiLocale] 500 }), 501 !activeMainCategory && /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("div", { 502 className: (0, __TURBOPACK__imported__module__945060__["cn"])("flex-1 w-0 text-left truncate transition duration-200", !open ? "opacity-50" : "opacity-0"), 503 children: t("mainCategory.placeholder") 504 }) 505 ] 506 }) 507 ] 508 }) 509 }) 510 }), 511 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__480630__["SelectContent"], { 512 onCloseAutoFocus: handleCloseAutoFocus, 513 children: items.map((item)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__480630__["SelectItem"], { 514 value: item.id, 515 icon: item.icon, 516 onFocus: ()=>
516onHoverCategory === null || onHoverCategory === void 0 ? void 0 : onHoverCategory(item.category), 517 onMouseOver: ()=>onHoverCategory === null || onHoverCategory === void 0 ? void 0 : onHoverCategory(item.category), 518 onPointerDown: onItemPointerDown, 519 onPointerUp: onItemPointerUp, 520 onKeyDown: handleKeyDown, 521 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__774084__["Select"].ItemText, { 522 children: item.label 523 }) 524 }, item.id)) 525 }) 526 ] 527 }); 528} 529__turbopack_context__.s([ 530 "default", 531 0, 532 MainCategoryPicker 533], 394973); 534}), 535653362, ((__turbopack_context__) => { 536"use strict"; 537 538var __TURBOPACK__imported__module__843476__ = __turbopack_context__.i(843476); 539var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 540var __TURBOPACK__imported__module__218330__ = __turbopack_context__.i(218330); 541var __TURBOPACK__imported__module__394973__ = __turbopack_context__.i(394973); 542var __TURBOPACK__imported__module__852963__ = __turbopack_context__.i(852963); 543var __TURBOPACK__imported__module__17198__ = __turbopack_context__.i(17198); 544; 545; 546; 547; 548; 549; 550const ConnectedMainCategoryPicker = /*#__PURE__*/ __TURBOPACK__imported__module__271645__["default"].memo(function ConnectedMainCategoryPicker(param) { 551 let { ref, errors = [], onSelect } = param; 552 const widgetStore = (0, __TURBOPACK__imported__module__17198__["useRentalWidgetStore"])(); 553 const mainCategoryId = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.config.mainCategoryId); 554 const open = (0, __TURBOPACK__imported__module__17198__["useRentalWidgetState"])((state)=>state.currentActiveElement === "category"); 555 const onOpenChange = (0, __TURBOPACK__imported__module__271645__["useCallback"])((open)=>{ 556 const state = widgetStore.getState(); 557 state.setCurrentActiveElement(open ? "category" : null); 558 }, [ 559 widgetStore 560 ]); 561 const error = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>errors.filter((it)=>it.field === "mainCategoryId").length > 0, [ 562 errors 563 ]); 564 const { data: mainCategories = [] } = (0, __TURBOPACK__imported__module__852963__["useMainCategoryList"])({ 565 queryOptions: { 566 select: (data)=>data.mainCategories, 567 staleTime: Infinity 568 } 569 }); 570 const setMainCategoryId = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.setMainCategoryId); 571 const onChange = (0, __TURBOPACK__imported__module__271645__["useCallback"])((newValue)=>{ 572 setMainCategoryId(parseInt(newValue)); 573 }, [ 574 setMainCategoryId 575 ]); 576 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__394973__["default"], { 577 ref: ref, 578 mainCategories: mainCategories, 579 value: mainCategoryId ? mainCategoryId.toString() : "", 580 error: error, 581 onChange: onChange, 582 onSelect: onSelect, 583 open: open, 584 onOpenChange: onOpenChange 585 }); 586}); 587__turbopack_context__.s([ 588 "ConnectedMainCategoryPicker", 589 0, 590 ConnectedMainCategoryPicker 591]); 592}), 593176403, ((__turbopack_context__) => { 594"use strict"; 595 596// MERGED MODULE: [project]/src/components/widgets/RentalWidget/ConnectedRentalWidgetDatePicker.tsx [app-client] (ecmascript) 597; 598var __TURBOPACK__imported__module__843476__ = __turbopack_context__.i(843476); 599var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 600var __TURBOPACK__imported__module__929387__ = __turbopack_context__.i(929387); 601var __TURBOPACK__imported__module__988052__ = __turbopack_context__.i(988052); 602var __TURBOPACK__imported__module__299378__ = __turbopack_context__.i(299378); 603var __TURBOPACK__imported__module__974875__ = __turbopack_context__.i(974875); 604var __TURBOPACK__imported__module__685149__ = __turbopack_context__.i(685149); 605var __TURBOPACK__imported__module__218330__ = __turbopack_context__.i(218330); 606var __TURBOPACK__imported__module__105047__ = __turbopack_context__.i(105047); 607var __TURBOPACK__imported__module__702305__ = __turbopack_context__.i(702305); 608var __TURBOPACK__imported__module__478569__ = __turbopack_context__.i(478569); 609var __TURBOPACK__imported__module__864516__ = __turbopack_context__.i(864516);
610var __TURBOPACK__imported__module__773447__ = __turbopack_context__.i(773447); 611var __TURBOPACK__imported__module__948148__ = __turbopack_context__.i(948148); 612var __TURBOPACK__imported__module__17198__ = __turbopack_context__.i(17198); 613// MERGED MODULE: [project]/src/components/widgets/RentalWidget/_components/RentalWidgetDatePicker.tsx [app-client] (ecmascript) 614; 615var __TURBOPACK__imported__module__843476__1 = __TURBOPACK__imported__module__843476__; 616var __TURBOPACK__imported__module__271645__1 = __TURBOPACK__imported__module__271645__; 617var __TURBOPACK__imported__module__867228__ = __turbopack_context__.i(867228); 618var __TURBOPACK__imported__module__882179__ = __turbopack_context__.i(882179); 619var __TURBOPACK__imported__module__401851__ = __turbopack_context__.i(401851); 620var __TURBOPACK__imported__module__127923__ = __turbopack_context__.i(127923); 621var __TURBOPACK__imported__module__774084__ = __turbopack_context__.i(774084); 622var __TURBOPACK__imported__module__697791__ = __turbopack_context__.i(697791); 623var __TURBOPACK__imported__module__47897__ = __turbopack_context__.i(47897); 624var __TURBOPACK__imported__module__949907__ = __turbopack_context__.i(949907); 625var __TURBOPACK__imported__module__710007__ = __turbopack_context__.i(710007); 626var __TURBOPACK__imported__module__108956__ = __turbopack_context__.i(108956); 627var __TURBOPACK__imported__module__690740__ = __turbopack_context__.i(690740); 628var __TURBOPACK__imported__module__480630__ = __turbopack_context__.i(480630); 629var __TURBOPACK__imported__module__107282__ = __turbopack_context__.i(107282); 630var __TURBOPACK__imported__module__812440__ = __turbopack_context__.i(812440); 631var __TURBOPACK__imported__module__773447__1 = __TURBOPACK__imported__module__773447__; 632var __TURBOPACK__imported__module__948148__1 = __TURBOPACK__imported__module__948148__; 633var __TURBOPACK__imported__module__861745__ = __turbopack_context__.i(861745); 634var __TURBOPACK__imported__module__945060__ = __turbopack_context__.i(945060); 635var __TURBOPACK__imported__module__685149__1 = __TURBOPACK__imported__module__685149__; 636var __TURBOPACK__imported__module__307741__ = __turbopack_context__.i(307741); 637"use client"; 638; 639; 640; 641; 642; 643; 644; 645; 646; 647; 648; 649; 650; 651; 652; 653; 654; 655; 656; 657const RentalWidgetDatePicker = /*#__PURE__*/ __TURBOPACK__imported__module__271645__1["default"].memo(function RentalWidgetDatePicker(param) { 658 let { className, triggerClassName, onOpenChangeDatePicker, onOpenChangePickupTimePicker, onOpenChangeReturnTimePicker, onApply, open, value, error, disabled, slots, ref, refs: _refs, onDayClick, onChangeReturnTime: _onChangeReturnTime, onChangePickupTime: _onChangePickupTime, ...props } = param; 659 var _ref; 660 const isDesktop = (0, __TURBOPACK__imported__module__867228__["useMediaQuery"])(__TURBOPACK__imported__module__685149__1["MEDIA_QUERY_DESKTOP"]); 661 const datePickerOpen = open === "date"; 662 const formatter = (0, __TURBOPACK__imported__module__948148__1["useFormatter"])(); 663 const portal = (0, __TURBOPACK__imported__module__307741__["usePortal"])(); 664 const t = (0, __TURBOPACK__imported__module__948148__1["useTranslations"])("NewRentalWidget"); 665 const locale = (0, __TURBOPACK__imported__module__861745__["useLocale"])(); 666 const onChangeReturnTime = (0, __TURBOPACK__imported__module__271645__1["useCallback"])((newTimeValue)=>{ 667 if (!(value === null || value === void 0 ? void 0 : value.to)) { 668 return; 669 } 670 const to = (0, __TURBOPACK__imported__module__690740__["parseTimeString"])(newTimeValue, value.to); 671 _onChangeReturnTime === null || _onChangeReturnTime === void 0 ? void 0 : _onChangeReturnTime(to); 672 }, [ 673 _onChangeReturnTime, 674 value === null || value === void 0 ? void 0 : value.to 675 ]); 676 const onChangePickupTime = (0, __TURBOPACK__imported__module__271645__1["useCallback"])((newTimeValue)=>{ 677 if (!(value === null || value === void 0 ? void 0 : value.from)) { 678 return; 679 } 680 const from = (0, __TURBOPACK__imported__module__690740__["parseTimeString"])(newTimeValue, value.from); 681 _onChangePickupTime === null || _onChangePickupTime === void 0 ? void 0 : _onChangePickupTime(from); 682 }, [ 683 _onChangePickupTime, 684 value === null || value === void 0 ? void 0 : value.from 685 ]); 686 const onRootTrigger = (0, __TURBOPACK__imported__module__271645__1["useCallback"])((event)=>{ 687 var _rootTriggerRef_current; 688 if (event.target instanceof HTMLButtonElement || !((_rootTriggerRef_current = rootTriggerRef.current) === null || _rootTriggerRef_current === void 0 ? void 0 : _rootTriggerRef_current.contains(event.target))) { 689 return; 690 } 691 event.preventDefault(); 692 onOpenChangeDatePicker === null || onOpenChangeDatePicker === void 0 ? void 0 : onOpenChangeDatePicker(!open); 693 }, [ 694 open, 695 onOpenChangeDatePicker 696 ]); 697 const rootTriggerRef = (0, __TURBOPACK__imported__module__271645__1["useRef"])(null); 698 const pickupTriggerRef = (0, __TURBOPACK__imported__module__271645__1["useRef"])(null); 699 const returnTriggerRef = (0, __TURBOPACK__imported__module__271645__1["useRef"])(null); 700 // This ref tracks which of our `<Popover.Trigger>`s triggered the popover. 701 const currentTriggerRef = (0, __TURBOPACK__imported__module__271645__1["useRef"])(null); 702 const _pickupTriggerRef = (0, __TURBOPACK__imported__module__882179__["mergeRefs"])(pickupTriggerRef, ref); 703 // For accessibility, we need to move the focus back to the trigger element. 704 // Because we trigger the popover `onMouseDown` on the root element, we have to manually 705 // implement focus restoration. 706 const onCloseAutoFocus = (0, __TURBOPACK__imported__module__271645__1["useCallback"])((event)=>{ 707 var _ref; 708 var _currentTriggerRef_current; 709 event.preventDefault(); 710 // This `.current?.current` may look a bit weird, but our ref object points to either 711 // of the other trigger ref objects. 712 // Keeping a reference to the ref objects instead of their values makes sure we always 713 // have access to the latest values without doing some more complex synchronisation. 714 const currentTrigger = (_ref = (_currentTriggerRef_current = currentTriggerRef.current) === null || _currentTriggerRef_current === void 0 ? void 0 : _currentTriggerRef_current.current) !== null && _ref !== void 0 ? _ref : pickupTriggerRef.current; 715 currentTrigger === null || currentTrigger === void 0 ? void 0 : currentTrigger.focus({ 716 preventScroll: true 717 }); 718 // Make sure to clear the currentTrigger ref, otherwise we'll focus the wrong element 719 // next time the root trigger is used. 720 currentTriggerRef.current = null; 721 }, []); 722 const onInteractOutside = (0, __TURBOPACK__imported__module__271645__1["useCallback"])((event)=>{ 723 var _rootTriggerRef_current; 724 // Prevent automatically closing the popover when interacting with the root trigger 725 // element. Not doing this will cause the popover to be closed before the root trigger 726 // can determine if the popover should be opened or closed. 727 if (event.target === rootTriggerRef.current || ((_rootTriggerRef_current = rootTriggerRef.current) === null || _rootTriggerRef_current === void 0 ? void 0 : _rootTriggerRef_current.contains(event.target))) { 728 event.preventDefault(); 729 } 730 }, []); 731 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])(__TURBOPACK__imported__module__127923__["Popover"].Root, { 732 open: datePickerOpen, 733 onOpenChange: onOpenChangeDatePicker, 734 children: [ 735 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__127923__["Popover"].Anchor, { 736 asChild: true, 737 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("div", { 738 ref: rootTriggerRef, 739 className: (0, __TURBOPACK__imported__module__945060__["cn"])("focus:outline-none ring-blue-500 h-full w-full focus-within:ring-[0.125rem] ring-inset px-[1.5rem] xl:px-[0.75rem] 2xl:px-[1.5rem] py-[0.59375rem] xl:rounded-tr rounded-br rounded-bl xl:rounded-bl-none xl:rounded-br", { 740 "ring-[0.125rem]": datePickerOpen 741 }, triggerClassName, className), 742 onClick: onRootTrigger, 743 onMouseDown: (event)=>{ 744 var _pickupTriggerRef_current; 745 event.preventDefault(); 746 (_pickupTriggerRef_current = pickupTriggerRef.current) === null || _pickupTriggerRef_current === void 0 ? void 0 : _pickupTriggerRef_current.focus({ 747 preventScroll: true 748 }); 749 }, 750 ...props, 751 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__480630__["SelectFieldset"], { 752 error: !!error, 753 isOpen: open !== false, 754 label: t("date_picker.label"), 755 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("div", { 756 className: "flex min-w-0 items-center overflow-x-auto", 757 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])("div", { 758 className: "mt-[2px] flex min-w-max items-center gap-x-[0.5rem] whitespace-nowrap pb-1", 759 children: [ 760 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("div", { 761 className: "relative shrink-0", 762 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("span", { 763 className: "h-[16px] w-[16px] flex items-center justify-center", 764 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(CalendarIcon, { 765 className: (0, __TURBOPACK__imported__module__945060__["cn"])("w-full", { 766 "text-dark-300": !value, 767 "text-brand-600": !!value 768 }) 769 }) 770 }) 771 }), 772 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])("div", { 773 className: "flex items-center gap-x-[0.125rem]", 774 children: [ 775 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__127923__["Popover"].Trigger, { 776 asChild: true, 777 ref: _pickupTriggerRef, 778 onClick: ()=>{ 779 currentTriggerRef.current = pickupTriggerRef; 780 }, 781 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(RentalWidgetDatePickerSegment, { 782 active: open === "date", 783 "aria-label": !!(value === null || value === void 0 ? void 0 : value.from) ? "".concat(formatter.dateTime(value.from, { 784 day: "numeric", 785 month: "long", 786 year: "numeric" 787 }), ", ").concat(t("date_picker.pickup.date.label")) : t("date_picker.pickup.date.label"), 788 children: !!value && !!value.from ? formatter.dateTime(value.from, { 789 day: "numeric", 790 month: "short" 791 }) : t("date_picker.pickup.date.placeholder") 792 }) 793 }), 794 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(RentalWidgetDatePickerTimePicker, { 795 value: !!(value === null || value === void 0 ? void 0 : value.from) ? (0, __TURBOPACK__imported__module__401851__["format"])(value.from, "HH:mm") : undefined, 796 slots: slots, 797 onOpenChange: onOpenChangePickupTimePicker, 798 onChange: onChangePickupTime, 799 label: t("date_picker.pickup.time.label") 800 }) 801 ] 802 }), 803 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("div", { 804 className: "h-[1px] w-[6px] bg-brand-200" 805 }), 806 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])("div", { 807 className: "flex items-center gap-x-[0.125rem]", 808 children: [ 809 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__127923__["Popover"].Trigger, { 810 asChild: true, 811 ref: returnTriggerRef, 812 onClick: ()=>{ 813 currentTriggerRef.current = returnTriggerRef; 814 }, 815 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(RentalWidgetDatePickerSegment, { 816 active: open === "date", 817 "aria-label": !!(value === null || value === void 0 ? void 0 : value.to) ? "".concat(formatter.dateTime(value.to, { 818 day: "numeric", 819 month: "long", 820 year: "numeric" 821 }), ", ").concat(t("date_picker.return.date.label")) : t("date_picker.return.date.label"), 822 children: !!value && !!value.to ? formatter.dateTime(value.to, { 823 day: "numeric", 824 month: "short" 825 }) : t("date_picker.return.date.placeholder") 826 }) 827 }), 828 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(RentalWidgetDatePickerTimePicker, { 829 value: !!(value === null || value === void 0 ? void 0 : value.to) ? (0, __TURBOPACK__imported__module__690740__["asTimeStr
829ing"])(value.to) : undefined, 830 onOpenChange: onOpenChangeReturnTimePicker, 831 onChange: onChangeReturnTime, 832 label: t("date_picker.return.time.label"), 833 disabled: !(value === null || value === void 0 ? void 0 : value.to) 834 }) 835 ] 836 }) 837 ] 838 }) 839 }) 840 }) 841 }) 842 }), 843 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__127923__["Popover"].Portal, { 844 container: portal, 845 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__127923__["Popover"].Content, { 846 className: "max-w-(--radix-popover-trigger-width) sm:max-w-full rounded bg-white border border-brand-100 px-3 pb-2 pt-1 shadow-lg flex items-center justify-center", 847 sideOffset: 5, 848 avoidCollisions: false, 849 collisionPadding: __TURBOPACK__imported__module__812440__["PICKER_COLLISION_PADDING"], 850 side: "bottom", 851 align: "end", 852 onCloseAutoFocus: onCloseAutoFocus, 853 onInteractOutside: onInteractOutside, 854 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])("div", { 855 children: [ 856 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__697791__["DayPicker"], { 857 locale: locale === "nl" ? __TURBOPACK__imported__module__949907__["nl"] : __TURBOPACK__imported__module__47897__["enGB"], 858 classNames: { 859 day: "font-inter", 860 weekday: "font-inter font-normal text-sm text-dark-300", 861 disabled: "line-through text-dark-300", 862 caption_label: "text-brand-500 font-semibold flex items-center justify-center" 863 }, 864 defaultMonth: value === null || value === void 0 ? void 0 : value.from, 865 mode: "range", 866 // `onSelect` is required for `selected` to work as a prop 867 onSelect: ()=>{}, 868 selected: { 869 from: value === null || value === void 0 ? void 0 : value.from, 870 to: (_ref = value === null || value === void 0 ? void 0 : value.to) !== null && _ref !== void 0 ? _ref : undefined 871 }, 872 onDayClick: onDayClick, 873 numberOfMonths: isDesktop ? 2 : 1, 874 disabled: disabled 875 }), 876 onApply && /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("div", { 877 className: "flex justify-end", 878 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__710007__["default"], { 879 variant: "transparent", 880 disabled: !(value === null || value === void 0 ? void 0 : value.from) || !value.to, 881 onClick: onApply, 882 children: t("date_picker.apply") 883 }) 884 }), 885 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__107282__["WidgetErrorBar"], { 886 show: !!error, 887 message: error 888 }) 889 ] 890 }) 891 }) 892 }) 893 ] 894 }); 895}); 896const RentalWidgetDatePickerTimePicker = /*#__PURE__*/ __TURBOPACK__imported__module__271645__1["default"].memo(function Re
896ntalWidgetDatePickerTimePicker(param) { 897 let { label, value, onChange, onOpenChange, slots: _slots, disabled = false } = param; 898 const now = (0, __TURBOPACK__imported__module__773447__1["useNow"])(); 899 const slots = __TURBOPACK__imported__module__271645__1["default"].useMemo(()=>{ 900 return _slots !== null && _slots !== void 0 ? _slots : (0, __TURBOPACK__imported__module__108956__["getTimeSlots"])({ 901 date: now 902 }); 903 }, [ 904 _slots, 905 now 906 ]); 907 const portal = (0, __TURBOPACK__imported__module__307741__["usePortal"])(); 908 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])(__TURBOPACK__imported__module__774084__["Select"].Root, { 909 value: value !== null && value !== void 0 ? value : "", 910 onValueChange: onChange, 911 disabled: disabled !== null && disabled !== void 0 ? disabled : slots.length === 0, 912 onOpenChange: onOpenChange, 913 children: [ 914 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__774084__["Select"].Trigger, { 915 asChild: true, 916 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(RentalWidgetDatePickerSegment, { 917 className: "data-[state=open]:bg-blue-100 data-[state=open]:text-dark-500", 918 "aria-label": label, 919 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("span", { 920 className: "pointer-events-none", 921 children: !!value ? value : "--:--" 922 }) 923 }) 924 }), 925 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__774084__["Select"].Portal, { 926 container: portal, 927 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])(__TURBOPACK__imported__module__774084__["Select"].Content, { 928 className: "isolate overflow-hidden relative rounded w-[170px] max-h-[min(300px,var(--radix-select-content-available-height))] bg-white border border-brand-100 shadow-lg flex items-center justify-center", 929 position: "popper", 930 side: "bottom", 931 avoidCollisions: false, 932 collisionPadding: __TURBOPACK__imported__module__812440__["PICKER_COLLISION_PADDING"], 933 sideOffset: 15, 934 align: "center", 935 children: [ 936 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__774084__["Select"].ScrollUpButton, { 937 className: "pointer-events-none z-10 h-[20px] absolute top-0 left-0 right-0 w-full bg-[linear-gradient(180deg,rgba(255,255,255,0.85)_0%,rgba(255,255,255,0.50)_60%,rgba(0,0,0,0)_100%)]" 938 }), 939 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__774084__["Select"].Viewport, { 940 className: "divide-y divide-brand-100 w-full", 941 children: slots.map((slot)=>{ 942 const value = (0, __TURBOPACK__imported__module__690740__["asTimeString"])(slot); 943 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsxs"])(__TURBOPACK__imported__module__774084__["Select"].Item, { 944 value: value, 945 className: "relative h-[46px] w-full text-16 font-inter text-dark-500 font-medium flex items-center justify-center data-highlighted:bg-brand-50/50 select-none", 946 children: [ 947 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__774084__["Select"].ItemText, { 948 children: value 949 }), 950 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__7
95074084__["Select"].ItemIndicator, { 951 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("svg", { 952 width: "20", 953 height: "20", 954 viewBox: "0 0 20 20", 955 fill: "none", 956 xmlns: "http://www.w3.org/2000/svg", 957 className: "absolute top-[25%] right-[24px]", 958 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("path", { 959 fillRule: "evenodd", 960 clipRule: "evenodd", 961 d: "M17.5755 5.18325C17.8196 5.42732 17.8196 5.82305 17.5755 6.06713L8.38358 15.2591C7.89543 15.7472 7.10397 15.7472 6.61582 15.2591L1.79888 10.4421C1.5548 10.1981 1.5548 9.80232 1.79888 9.55825L2.68276 8.67436C2.92684 8.43029 3.32257 8.43029 3.56664 8.67436L7.05776 12.1655C7.30184 12.4096 7.69757 12.4096 7.94164 12.1655L15.8078 4.29936C16.0518 4.05529 16.4476 4.05529 16.6916 4.29936L17.5755 5.18325Z", 962 fill: "#105DFD" 963 }) 964 }) 965 }) 966 ] 967 }, value); 968 }) 969 }), 970 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])(__TURBOPACK__imported__module__774084__["Select"].ScrollDownButton, { 971 className: "pointer-events-none z-10 h-[20px] absolute bottom-0 left-0 right-0 w-full bg-[linear-gradient(180deg,rgba(255,255,255,0.85)_0%,rgba(255,255,255,0.50)_60%,rgba(0,0,0,0)_100%)] transform rotate-180" 972 }) 973 ] 974 }) 975 }) 976 ] 977 }); 978}); 979function RentalWidgetDatePickerSegment(param) { 980 let { active = false, className, ...props } = param; 981 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("button", { 982 suppressHydrationWarning: true, 983 type: "button", 984 className: (0, __TURBOPACK__imported__module__945060__["cn"])("select-none rounded h-[1.375rem] whitespace-nowrap px-[0.375rem] text-14 inline-flex items-center justify-center font-inter focus:bg-blue-100 focus:text-dark-500", { 985 "bg-blue-100 text-dark-500": active, 986 "bg-gray-50 text-dark-400 hover:bg-gray-100": !active 987 }, className), 988 ...props 989 }); 990} 991const CalendarIcon = /*#__PURE__*/ __TURBOPACK__imported__module__271645__1["default"].memo(function CalendarIcon(props) { 992 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("svg", { 993 width: "16", 994 height: "17",
995 viewBox: "0 0 16 17", 996 fill: "none", 997 xmlns: "http://www.w3.org/2000/svg", 998 ...props, 999 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__1["jsx"])("path", { 1000 fillRule: "evenodd", 1001 clipRule: "evenodd", 1002 d: "M4.04545 2.13636C4.04545 1.78491 4.33036 1.5 4.68182 1.5C5.03327 1.5 5.31818 1.78491 5.31818 2.13636V2.77273H10.4091V2.13636C10.4091 1.78491 10.694 1.5 11.0455 1.5C11.3969 1.5 11.6818 1.78491 11.6818 2.13636V2.77273H12.9545C13.6575 2.77273 14.2273 3.34255 14.2273 4.04545V14.2273C14.2273 14.9302 13.6575 15.5 12.9545 15.5H2.77273C2.06982 15.5 1.5 14.9302 1.5 14.2273V4.04545C1.5 3.34255 2.06982 2.77273 2.77273 2.77273H4.04545V2.13636ZM12.9545 5.95455H2.77273V7.22727H12.9545V5.95455Z", 1003 fill: "currentColor" 1004 }) 1005 }); 1006}); 1007; 1008; 1009; 1010; 1011; 1012; 1013; 1014; 1015; 1016; 1017; 1018; 1019; 1020const ConnectedRentalWidgetDatePicker = /*#__PURE__*/ __TURBOPACK__imported__module__271645__["default"].memo(function ConnectedRentalWidgetDatePicker(param) { 1021 let { ref, refs, errors: _errors = [], className, triggerClassName, isMobileCollapsed = false, onExpandMobileCollapsed, onSelect } = param; 1022 const t = (0, __TURBOPACK__imported__module__948148__["useTranslations"])("NewRentalWidget"); 1023 const currentActiveElement = (0, __TURBOPACK__imported__module__17198__["useRentalWidgetState"])((state)=>state.currentActiveElement); 1024 const store = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStoreContext"])(); 1025 const value = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>{ 1026 return { 1027 from: state.config.datePickup, 1028 to: state.config.dateReturn 1029 }; 1030 }); 1031 // Instead of using useNow() here, the now value from the store is used to keep in sync with all 1032 // other store state. 1033 const now = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.now); 1034 const errors = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>_errors.filter((it)=>it.field === "datePickup" || it.field === "dateReturn"), [ 1035 _errors 1036 ]); 1037 const locations = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>{ 1038 return state.locations; 1039 }); 1040 // Read from the store to keep a single source of truth. 1041 const bookingOffsetMinutes = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.bookingOffsetMinutes); 1042 // By extracting most values separately from the store, we optimize rendering. 1043 // This is because we can skip expensive isEqual() checks and repetitive computation by 1044 // utilising useMemo(). 1045 const datePickup = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.config.datePickup); 1046 const locationId = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>state.config.locationId); 1047 const location = locations.find((it)=>it.id === locationId); 1048 const minPickupDate = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1049 return (0, __TURBOPACK__imported__module__105047__["findFirstAvailableDateByLocation"])(now, location); 1050 }, [ 1051 location, 1052 now 1053 ]); 1054 const minPickupTime = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1055 return (0, __TURBOPACK__imported__module__702305__["getMinPickupTime"])({ 1056 locations, 1057 now, 1058 date: minPickupDate, 1059 bookingOffsetMinutes 1060 }); 1061 }, [ 1062 bookingOffsetMinutes, 1063 locations, 1064 minPickupDate, 1065 now 1066 ]); 1067 const minPickupTimeForValue = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1068 if (!datePickup) { 1069 return null; 1070 } 1071 return (0, __TURBOPACK__imported__module__702305__["getMinPickupTime"])({ 1072 locations, 1073 now, 1074 date: datePickup, 1075 bookingOffsetMinutes 1076 }); 1077 }, [ 1078 bookingOffsetMinutes, 1079 datePickup, 1080 locations, 1081 now 1082 ]); 1083 const maxPickupTimeForValue = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1084 if (!datePickup) { 1085 return null; 1086 } 1087 return (0, __TURBOPACK__imported__module__702305__["getMaxPickupTime"])({ 1088 locations, 1089 now, 1090 date: datePickup, 1091 bookingOffsetMinutes 1092 }); 1093 }, [ 1094 bookingOffsetMinutes, 1095 datePickup, 1096 locations, 1097 now 1098 ]); 1099 const slots = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1100 let range; 1101 if (!!location && !!datePickup) { 1102 range = (0, __TURBOPACK__imported__module__478569__["getRangeForLocation"])({ 1103 now, 1104 date: datePickup, 1105 location, 1106 bookingOffsetMinutes 1107 }); 1108 } else if (!!minPickupTimeForValue && !!maxPickupTimeForValue) { 1109 range = { 1110 from: minPickupTimeForValue, 1111 to: maxPickupTimeForValue 1112 }; 1113 } else { 1114 range = []; 1115 } 1116 return (0, __TURBOPACK__imported__module__864516__["getTimeSlotsForRange"])({ 1117 range 1118 }); 1119 }, [ 1120 bookingOffsetMinutes, 1121 datePickup, 1122 location, 1123 maxPickupTimeForValue, 1124 minPickupTimeForValue, 1125 now 1126 ]); 1127 // We'll create a array of closed dates so those can be disabled on the date dropdown to avoid 1128 // "closed at this time" errors 1129 const disabledPickupDates = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1130 if (!location) { 1131 return []; 1132 } 1133 return (0, __TURBOPACK__imported__module__702305__["getDisabledPickupDatesForLocation"])({ 1134 now, 1135 location, 1136 bookingOffsetMinutes 1137 }); 1138 }, [ 1139 bookingOffsetMinutes, 1140 location, 1141 now 1142 ]); 1143 const disabled = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1144 return [ 1145 { 1146 after: (0, __TURBOPACK__imported__module__299378__["addYears"])(now, 1) 1147 }, 1148 { 1149 before: minPickupTime !== null && minPickupTime !== void 0 ? minPickupTime : minPickupDate 1150 }, 1151 ...disabledPickupDates 1152 ]; 1153 }, [ 1154 disabledPickupDates, 1155 minPickupDate, 1156 minPickupTime, 1157 now 1158 ]); 1159 const widgetStore = (0, __TURBOPACK__imported__module__17198__["useRentalWidgetStore"])(); 1160 const error = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1161 let error = errors === null || errors === void 0 ? void 0 : errors[0]; 1162 if (currentActiveElement === "date") { 1163 var _errors_filter; 1164 error = (_errors_filter = errors.filter((it)=>it.type !== "date_return_required")) === null || _errors_filter === void 0 ? void 0 : _errors_filter[0]; 1165 } 1166 if (!!(error === null || error === void 0 ? void 0 : error.type) && t.has("errors.".concat(error.type))) { 1167 return t("errors.".concat(error.type)); 1168 } 1169 return error === null || error === void 0 ? void 0 : error.message; 1170 }, [ 1171 currentActiveElement, 1172 errors, 1173 t 1174 ]); 1175 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(RentalWidgetDatePicker, { 1176 ref: ref, 1177 refs: refs, 1178 value: value, 1179 error: error, 1180 className: className, 1181 triggerClassName: triggerClassName, 1182 open: currentActiveElement && [ 1183 "date", 1184 "return_time", 1185 "return_location" 1186 ].includes(currentActiveElement) ? currentActiveElement : false, 1187 onOpenChangeDatePicker: (open)=>{ 1188 if (open && isMobileCollapsed) { 1189 onExpandMobileCollapsed === null || onExpandMobileCollapsed === void 0 ? void 0 : onExpandMobileCollapsed(true); 1190 return; 1191 } 1192 const state = widgetStore.getState(); 1193 state.setCurrentActiveElement(open ? "date" : null); 1194 }, 1195 onOpenChangePickupTimePicker: (open)=>{ 1196 if (open && isMobileCollapsed) { 1197 onExpandMobileCollapsed === null || onExpandMobileCollapsed === void 0 ? void 0 : onExpandMobileCollapsed(true); 1198 return; 1199 } 1200 const state = widgetStore.getState(); 1201 state.setCurrentActiveElement(open ? "pickup_time" : null); 1202 }, 1203 onApply: ()=>{ 1204 const state = widgetStore.getState(); 1205 state.setCurrentActiveElement(null); 1206 onSelect === null || onSelect === void 0 ? void 0 : onSelect(); 1207 }, 1208 onOpenChangeReturnTimePicker: (open)=>{ 1209 if (open && isMobileCollapsed) { 1210 onExpandMobileCollapsed === null || onExpandMobileCollapsed === void 0 ? void 0 : onExpandMobileCollapsed(true); 1211 return; 1212 } 1213 const state = widgetStore.getState(); 1214 state.setCurrentActiveElement(open ? "return_time" : null); 1215 }, 1216 onChangePickupTime: (date)=>{ 1217 const state = store.getState(); 1218 state.setRentalPeriod({ 1219 from: date,
1220 to: state.config.dateReturn 1221 }); 1222 }, 1223 onChangeReturnTime: (date)=>{ 1224 const state = store.getState(); 1225 state.setRentalPeriod({ 1226 from: state.config.datePickup, 1227 to: date 1228 }); 1229 }, 1230 onDayClick: (date)=>{ 1231 const state = store.getState(); 1232 if (!!state.config.datePickup && !!state.config.dateReturn) { 1233 state.setRentalPeriod({ 1234 from: new __TURBOPACK__imported__module__988052__["TZDate"](date).withTimeZone(__TURBOPACK__imported__module__685149__["TIMEZONE"]), 1235 to: null 1236 }); 1237 } 1238 if (!!state.config.datePickup && !state.config.dateReturn) { 1239 const _to = new __TURBOPACK__imported__module__988052__["TZDate"](date).withTimeZone(__TURBOPACK__imported__module__685149__["TIMEZONE"]); 1240 const _from = new __TURBOPACK__imported__module__988052__["TZDate"](state.config.datePickup).withTimeZone(__TURBOPACK__imported__module__685149__["TIMEZONE"]); 1241 if ((0, __TURBOPACK__imported__module__974875__["isBefore"])(_to, _from)) { 1242 _from.setHours(8, 0, 0, 0); 1243 return state.setRentalPeriod({ 1244 from: _to, 1245 to: _from 1246 }); 1247 } 1248 _to.setHours(8, 0, 0, 0); 1249 state.setRentalPeriod({ 1250 from: _from, 1251 to: _to 1252 }); 1253 } 1254 }, 1255 // TODO: Calculate slots for return time picker as well. E.g. when pickup date and return 1256 // date are the same day and pickup time is 8:00 we should only offer return slots from 1257 // 09:00. 1258 slots: slots, 1259 disabled: disabled 1260 }); 1261}); 1262__turbopack_context__.s([ 1263 "ConnectedRentalWidgetDatePicker", 1264 0, 1265 ConnectedRentalWidgetDatePicker 1266], 176403); 1267}), 1268958425, ((__turbopack_context__) => { 1269"use strict"; 1270 1271var __TURBOPACK__imported__module__843476__ = __turbopack_context__.i(843476); 1272var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 1273var __TURBOPACK__imported__module__867228__ = __turbopack_context__.i(867228); 1274var __TURBOPACK__imported__module__209019__ = __turbopack_context__.i(209019); 1275var __TURBOPACK__imported__module__401851__ = __turbopack_context__.i(401851); 1276var __TURBOPACK__imported__module__768834__ = __turbopack_context__.i(768834); 1277var __TURBOPACK__imported__module__685149__ = __turbopack_context__.i(685149); 1278var __TURBOPACK__imported__module__432082__ = __turbopack_context__.i(432082); 1279var __TURBOPACK__imported__module__218330__ = __turbopack_context__.i(218330); 1280var __TURBOPACK__imported__module__710007__ = __turbopack_context__.i(710007); 1281var __TURBOPACK__imported__module__107282__ = __turbopack_context__.i(107282); 1282var __TURBOPACK__imported__module__697329__ = __turbopack_context__.i(697329); 1283var __TURBOPACK__imported__module__852963__ = __turbopack_context__.i(852963); 1284var __TURBOPACK__imported__module__501804__ = __turbopack_context__.i(501804); 1285var __TURBOPACK__imported__module__773447__ = __turbopack_context__.i(773447); 1286var __TURBOPACK__imported__module__948148__ = __turbopack_context__.i(948148); 1287var __TURBOPACK__imported__module__966601__ = __turbopack_context__.i(966601); 1288var __TURBOPACK__imported__module__945060__ = __turbopack_context__.i(945060); 1289var __TURBOPACK__imported__module__35404__ = __turbopack_context__.i(35404); 1290var __TURBOPACK__imported__module__653362__ = __turbopack_context__.i(653362); 1291var __TURBOPACK__imported__module__176403__ = __turbopack_context__.i(176403); 1292var __TURBOPACK__imported__module__17198__ = __turbopack_context__.i(17198); 1293"use client"; 1294; 1295; 1296; 1297; 1298; 1299; 1300; 1301; 1302; 1303; 1304; 1305; 1306; 1307; 1308; 1309; 1310; 1311; 1312; 1313; 1314; 1315function RentalWidgetLegacy(param) { 1316 let { footer, className, onSubmit, variant, onInteract, isMobileCollapsed = false, onExpandMobileCollapsed, validate, ref } = param; 1317 const widgetStore = (0, __TURBOPACK__imported__module__271645__["useRef"])((0, __TURBOPACK__imported__module__17198__["createRentalWidgetStore"])()).current; 1318 const containerRef = (0, __TURBOPACK__imported__module__271645__["useRef"])(null); 1319 const rootRef = (0, __TURBOPACK__imported__module__271645__["useRef"])(null); 1320 const locationRef = (0, __TURBOPACK__imported__module__271645__["useRef"])(null); 1321 const dateRef = (0, __TURBOPACK__imported__module__271645__["useRef"])(null); 1322 const categoryRef = (0, __TURBOPACK__imported__module__271645__["useRef"])(null); 1323 const searchButtonRef = (0, __TURBOPACK__imported__module__271645__["useRef"])(null); 1324 const refs = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1325 return { 1326 container: containerRef, 1327 root: rootRef, 1328 location: locationRef, 1329 date: dateRef, 1330 category: categoryRef 1331 }; 1332 }, []); 1333 (0, __TURBOPACK__imported__module__271645__["useImperativeHandle"])(ref, ()=>refs, [ 1334 refs 1335 ]); 1336 const currentActiveElement = (0, __TURBOPACK__imported__module__768834__["useStore"])(widgetStore, (state)=>state.currentActiveElement); 1337 (0, __TURBOPACK__imported__module__271645__["useEffect"])(()=>{ 1338 const unsubscribe = widgetStore.subscribe((state, prevState)=>{ 1339 if (prevState.currentActiveElement === null && !!state.currentActiveElement) { 1340 onInteract === null || onInteract === void 0 ? void 0 : onInteract(); 1341 } 1342 }); 1343 return unsubscribe; 1344 }, [ 1345 widgetStore, 1346 onInteract 1347 ]); 1348 const store = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStoreContext"])(); 1349 const t = (0, __TURBOPACK__imported__module__948148__["useTranslations"])("NewRentalWidget"); 1350 const apiLocale = (0, __TURBOPACK__imported__module__501804__["default"])(); 1351 const isDesktop = (0, __TURBOPACK__imported__module__867228__["useMediaQuery"])(__TURBOPACK__imported__module__685149__["MEDIA_QUERY_DESKTOP"]); 1352 const { data: { mainCategories } = {} }
1352 = (0, __TURBOPACK__imported__module__852963__["useMainCategoryList"])({ 1353 queryOptions: { 1354 staleTime: Infinity 1355 } 1356 }); 1357 const errors = (0, __TURBOPACK__imported__module__218330__["useCarRentalConfigurationStore"])((state)=>!!validate ? validate(state) : state.errors); 1358 const error = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1359 if (currentActiveElement === "date") { 1360 return errors.filter((it)=>it.field !== "dateReturn" && it.field !== "datePickup")[0]; 1361 } 1362 return errors[0]; 1363 }, [ 1364 errors, 1365 currentActiveElement 1366 ]); 1367 const errorMessage = (0, __TURBOPACK__imported__module__271645__["useMemo"])(()=>{ 1368 if (!!(error === null || error === void 0 ? void 0 : error.type) && t.has("errors.".concat(error.type))) { 1369 return t("errors.".concat(error.type)); 1370 } 1371 return error === null || error === void 0 ? void 0 : error.message; 1372 }, [ 1373 error === null || error === void 0 ? void 0 : error.message, 1374 error === null || error === void 0 ? void 0 : error.type, 1375 t 1376 ]); 1377 const pushSearchInitiatedEvent = (0, __TURBOPACK__imported__module__271645__["useCallback"])((config, locations)=>{ 1378 var _config_dateReturn, _ref, _ref1; 1379 var _mainCategory_title, _pickupLocation_name, _dropoffLocation_name, _pickupLocation_name1; 1380 if (!config.datePickup || !config.locationId) { 1381 return; 1382 } 1383 const mainCategory = mainCategories === null || mainCategories === void 0 ? void 0 : mainCategories.find((category)=>category.id === config.mainCategoryId); 1384 const pickupDate = config.datePickup; 1385 const returnDate = (_config_dateReturn = config.dateReturn) !== null && _config_dateReturn !== void 0 ? _config_dateReturn : pickupDate; 1386 const pickupLocation = locations.find((location)=>location.id === config.locationId); 1387 const dropoffLocation = locations.find((location)=>location.id === config.returnLocationId); 1388 const rentalDuration = (0, __TURBOPACK__imported__module__209019__["differenceInDays"])(returnDate, pickupDate); 1389 (0, __TURBOPACK__imported__module__432082__["dataLayer"])({ 1390 event: "search_initiated", 1391 vehicleCategory: (_ref = mainCategory === null || mainCategory === void 0 ? void 0 : (_mainCategory_title = mainCategory.title) === null || _mainCategory_title === void 0 ? void 0 : _mainCategory_title[apiLocale]) !== null && _ref !== void 0 ? _ref : mainCategory === null || mainCategory === void 0 ? void 0 : mainCategory.shortName, 1392 pickup_location: pickupLocation === null || pickupLocation === void 0 ? void 0 : (_pickupLocation_name = pickupLocation.name) === null || _pickupLocation_name === void 0 ? void 0 : _pickupLocation_name[apiLocale], 1393 dropoff_location: (_ref1 = dropoffLocation === null || dropoffLocation === void 0 ? void 0 : (_dropoffLocation_name = dropoffLocation.name) === null || _dropoffLocation_name === void 0 ? void 0 : _dropoffLocation_name[apiLocale]) !== null && _ref1 !== void 0 ? _ref1 : pickupLocation === null || pickupLocation === void 0 ? void 0 : (_pickupLocation_name1 = pickupLocation.name) === null || _pickupLocation_name1 === void 0 ? void 0 : _pickupLocation_name1[apiLocale], 1394 pickup_date: (0, __TURBOPACK__imported__module__401851__["format"])(pickupDate, "yyyy-MM-dd"), 1395 pickup_time: (0, __TURBOPACK__imported__module__401851__["format"])(pickupDate, "HH:mm"), 1396 dropoff_date: (0, __TURBOPACK__imported__module__401851__["format"])(returnDate, "yyyy-MM-dd"), 1397 dropoff_time: (0, __TURBOPACK__imported__module__401851__["format"])(returnDate, "HH:mm"), 1398 rental_duration: rentalDuration 1399 }); 1400 }, [ 1401 apiLocale, 1402 mainCategories 1403 ]); 1404 const advancedField = (0, __TURBOPACK__imported__module__271645__["useCallback"])((from)=>{ 1405 if (!isDesktop) { 1406 return; 1407 } 1408 const config = store.getState().config; 1409 const setActive = (element)=>()=>widgetStore.getState().setCurrentActiveElement(element); 1410 const fields = [ 1411 { 1412 key: "category", 1413 filled: !!config.mainCategoryId, 1414 open: setActive("category") 1415 }, 1416 { 1417 key: "location", 1418 filled: !!config.locationId, 1419 open: setActive("location") 1420 }, 1421 { 1422 key: "date", 1423 filled: !!config.datePickup && !!config.dateReturn, 1424 open: setActive("date") 1425 } 1426 ]; 1427 const next = (0, __TURBOPACK__imported__module__697329__["getNextUnfilledField"])(fields, from); 1428 if (next) { 1429 requestAnimationFrame(next.open); 1430 return; 1431 } 1432 requestAnimationFrame(()=>{ 1433 var _searchButtonRef_current; 1434 return (_searchButtonRef_current = searchButtonRef.current) === null || _searchButtonRef_current === void 0 ? void 0 : _searchButtonRef_current.focus(); 1435 }); 1436 }, [ 1437 isDesktop, 1438 store, 1439 widgetStore 1440 ]); 1441 const handleSearch = (0, __TURBOPACK__imported__module__271645__["useCallback"])(()=>{ 1442 const state = store.getState(); 1443 const hasMissingRequiredInput = !state.config.mainCategoryId || !state.config.locationId || !state.config.datePickup || !state.config.dateReturn; 1444 if (hasMissingRequiredInput) { 1445 if (isMobileCollapsed) { 1446 onExpandMobileCollapsed === null || onExpandMobileCollapsed === void 0 ? void 0 : onExpandMobileCollapsed(true); 1447 return; 1448 } 1449 // On desktop we'll open the first field that is invali
1449d. 1450 if (isDesktop) { 1451 if (!state.config.mainCategoryId) { 1452 var _categoryRef_current; 1453 widgetStore.getState().setCurrentActiveElement("category"); 1454 (_categoryRef_current = categoryRef.current) === null || _categoryRef_current === void 0 ? void 0 : _categoryRef_current.focus(); 1455 return; 1456 } 1457 if (!state.config.locationId) { 1458 var _locationRef_current; 1459 widgetStore.getState().setCurrentActiveElement("location"); 1460 (_locationRef_current = locationRef.current) === null || _locationRef_current === void 0 ? void 0 : _locationRef_current.focus(); 1461 return; 1462 } 1463 if (!state.config.datePickup || !state.config.dateReturn) { 1464 var _dateRef_current; 1465 widgetStore.getState().setCurrentActiveElement("date"); 1466 (_dateRef_current = dateRef.current) === null || _dateRef_current === void 0 ? void 0 : _dateRef_current.focus(); 1467 return; 1468 } 1469 } 1470 } 1471 pushSearchInitiatedEvent(state.config, state.locations); 1472 onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(state.config); 1473 }, [ 1474 isDesktop, 1475 isMobileCollapsed, 1476 store, 1477 widgetStore, 1478 pushSearchInitiatedEvent, 1479 onExpandMobileCollapsed, 1480 onSubmit 1481 ]); 1482 const lastFieldTriggerClassName = isMobileCollapsed ? "rounded-tl rounded-tr rounded-bl-none rounded-br-none py-[0.75rem]" : undefined; 1483 return /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__17198__["RentalWidgetContext"].Provider, { 1484 value: widgetStore, 1485 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])("div", { 1486 ref: containerRef, 1487 className: className, 1488 "data-testid": "RentalWidget.A", 1489 children: [ 1490 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("div", { 1491 className: (0, __TURBOPACK__imported__module__945060__["cn"])("relative"), 1492 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])(__TURBOPACK__imported__module__107282__["WidgetWrapper"], { 1493 variant: variant, 1494 ref: rootRef, 1495 error: !!errorMessage, 1496 children: [ 1497 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])(__TURBOPACK__imported__module__107282__["WidgetFieldsBorder"], { 1498 children: [ 1499 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])(__TURBOPACK__imported__module__107282__["WidgetFields"], { 1500 variant: variant, 1501 children: [ 1502 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__107282__["CollapsibleWidgetField"], { 1503 isCollapsed: isMobileCollapsed, 1504 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__653362__["ConnectedMainCategoryPicker"], { 1505 ref: categoryRef, 1506 errors: errors, 1507 onSelect: ()=>advancedField("category") 1508 }) 1509 }), 1510 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__107282__["CollapsibleWidgetDivider"], { 1511 variant: variant, 1512 isMobileCollapsed: isMobileCollapsed 1513 }), 1514 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__107282__["CollapsibleWidgetField"], { 1515 isCollapsed: isMobileCollapsed, 1516 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__35404__["ConnectedLocationPicker"], { 1517 ref: locationRef, 1518 mode: "pickup", 1519 anchor: rootRef, 1520 errors: errors, 1521 onSelect: ()=>advancedField("location") 1522 }) 1523 }), 1524 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__107282__["CollapsibleWidgetDivider"], { 1525 variant: variant, 1526 isMobileCollapsed: isMobileCollapsed 1527 }), 1528 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__107282__["WidgetFieldWrapper"], { 1529 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__176403__["ConnectedRentalWidgetDatePicker"], { 1530 errors: errors, 1531 ref: dateRef, 1532 refs: refs, 1533 triggerClassName: lastFieldTriggerClassName, 1534 isMobileCollapsed: isMobileCollapsed, 1535 onExpandMobileCollapsed: onExpandMobileCollapsed, 1536 onSelect: ()=>advancedField("date") 1537 }) 1538 }) 1539 ] 1540 }), 1541 !!onSubmit && /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("div", { 1542 className: (0, __TURBOPACK__imported__module__945060__["cn"])("h-full flex items-center justify-center ", { 1543 "bg-[#f0c800] pl-[4px]": variant === "prominent", 1544 "px-1": variant === "default" 1545 }), 1546 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])(__TURBOPACK__imported__module__710007__["default"], { 1547 ref: searchButtonRef, 1548 onClick: handleSearch, 1549 className: (0, __TURBOPACK__imported__module__945060__["cn"])("hidden xl:flex px-4", { 1550 "h-full": variant === "prominent", 1551 "h-[3.1rem]": variant === "default" 1552 }), 1553 children: [ 1554 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__966601__["default"], { 1555 className: "relative w-2 h-2 mr-1 -top-[1px]", 1556 "aria-hidden": "true" 1557 }), 1558 t("searchShort") 1559 ] 1560 }) 1561 }) 1562 ] 1563 }), 1564 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__107282__["WidgetErrorBar"], { 1565 show: !!errorMessage, 1566 message: errorMessage 1567 }), 1568 !!onSubmit && /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])("div", { 1569 className: "border-t border-brand-100 xl:hidden relative w-full px-2 py-1", 1570 children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsxs"])(__TURBOPACK__imported__module__710007__["default"], { 1571 onClick: handleSearch, 1572 className: "w-full items-center justify-center", 1573 children: [ 1574 /*#__PURE__*/ (0, __TURBOPACK__imported__module__843476__["jsx"])(__TURBOPACK__imported__module__966601__["default"], { 1575 className: "relative w-2 h-2 mr-1 -top-[1px]", 1576 "aria-hidden": "true" 1577 }), 1578 t("searchVehicle") 1579 ] 1580 }) 1581 }) 1582 ] 1583 }) 1584 }), 1585 footer 1586 ] 1587 }) 1588 }); 1589} 1590__turbopack_context__.s([ 1591 "default", 1592 0, 1593 RentalWidgetLegacy 1594]); 1595}), 1596]); 1597 1598//# debugId=26012f16-abd9-1700-e28a-c25517740e3b
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.