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]="106f950b-6f89-8d72-b2ad-249927c7e2a0")}catch(e){}}(); 2(globalThis["TURBOPACK"] || (globalThis["TURBOPACK"] = [])).push([typeof document === "object" ? document.currentScript : undefined, 3171481, ((__turbopack_context__) => { 4"use strict"; 5 6var __TURBOPACK__imported__module__271645__ = __turbopack_context__.i(271645); 7var __TURBOPACK__imported__module__343221__ = __turbopack_context__.i(343221); 8; 9; 10/* 11 * Copyright 2020 Adobe. All rights reserved. 12 * This file is licensed to you under the Apache License, Version 2.0 (the "License"); 13 * you may not use this file except in compliance with the License. You may obtain a copy 14 * of the License at http://www.apache.org/licenses/LICENSE-2.0 15 * 16 * Unless required by applicable law or agreed to in writing, software distributed under 17 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 18 * OF ANY KIND, either express or implied. See the License for the specific language 19 * governing permissions and limitations under the License. 20 */ function $371276a377320714$export$32d5543ab307c01(query) { 21 let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function'; 22 let [matches, setMatches] = (0, __TURBOPACK__imported__module__271645__["useState"])(()=>supportsMatchMedia ? window.matchMedia(query).matches : false); 23 (0, __TURBOPACK__imported__module__271645__["useEffect"])(()=>{ 24 if (!supportsMatchMedia) return; 25 let mq = window.matchMedia(query); 26 let onChange = (evt)=>{ 27 setMatches(evt.matches); 28 }; 29 mq.addListener(onChange); 30 return ()=>{ 31 mq.removeListener(onChange); 32 }; 33 }, [ 34 supportsMatchMedia, 35 query 36 ]); 37 // If in SSR, the media query should never match. Once the page hydrates, 38 // this will update and the real value will be returned. 39 let isSSR = (0, __TURBOPACK__imported__module__343221__["useIsSSR"])(); 40 return isSSR ? false : matches; 41} 42; 43__turbopack_context__.s([ 44 "useMediaQuery", 45 0, 46 $371276a377320714$export$32d5543ab307c01 47]); 48}), 49898879, ((__turbopack_context__, module, exports) => { 50"use strict"; 51 52Object.defineProperty(exports, "__esModule", { 53 value: true 54}); 55Object.defineProperty(exports, "default", { 56 enumerable: true, 57 get: function() { 58 return SideEffect; 59 } 60}); 61const _react = __turbopack_context__.r(271645); 62const isServer = typeof window === 'undefined'; 63const useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect; 64const useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect; 65function SideEffect(props) { 66 const { headManager, reduceComponentsToState } = props; 67 function emitChange() { 68 if (headManager && headManager.mountedInstances) { 69 const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean)); 70 headManager.updateHead(reduceComponentsToState(headElements)); 71 } 72 } 73 if (isServer) { 74 var _headManager_mountedInstances; 75 headManager === null || headManager === void 0 ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) === null || _headManager_mountedInstances === void 0 ? void 0 : _headManager_mountedInstances.add(props.children); 76 emitChange(); 77 } 78 useClientOnlyLayoutEffect(()=>{ 79 var _headManager_mountedInstances; 80 headManager === null || headManager === void 0 ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) === null || _headManager_mountedInstances === void 0 ? void 0 : _headManager_mountedInstances.add(props.children); 81 return ()=>{ 82 var _headManager_mountedInstances; 83 headManager === null || headManager === void 0 ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) === null || _headManager_mountedInstances === void 0 ? void 0 : _headManager_mountedInstances.delete(props.children); 84 }; 85 }); 86 // We need to call `updateHead` method whenever the `SideEffect` is trigger in all 87 // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s 88 // being rendered, we only trigger the method from the last one. 89 // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate` 90 // singleton in the layout effect pass, and actually trigger it in the effect pass. 91 useClientOnlyLayoutEffect(()=>{ 92 if (headManager) { 93 headManager._pendingUpdate = emitChange; 94 } 95 return ()=>{ 96 if (headManager) { 97 headManager._pendingUpdate = emitChange; 98 } 99 }; 100 }); 101 useClientOnlyEffect(()=>{ 102 if (headManager && headManager._pendingUpdate) { 103 headManager._pendingUpdate(); 104 headManager._pendingUpdate = null; 105 } 106 return ()=>{ 107 if (headManager && headManager._pendingUpdate) { 108 headManager._pendingUpdate(); 109 headManager._pendingUpdate = null; 110 } 111 }; 112 }); 113 return null; 114} 115}),
116325633, ((__turbopack_context__, module, exports) => { 117"use strict"; 118 119var __TURBOPACK__imported__module__247167__ = /*#__PURE__*/ __turbopack_context__.i(247167); 120'use client'; 121"use strict"; 122Object.defineProperty(exports, "__esModule", { 123 value: true 124}); 1250 && (module.exports = { 126 default: null, 127 defaultHead: null 128}); 129function _export(target, all) { 130 for(var name in all)Object.defineProperty(target, name, { 131 enumerable: true, 132 get: all[name] 133 }); 134} 135_export(exports, { 136 default: function() { 137 return _default; 138 }, 139 defaultHead: function() { 140 return defaultHead; 141 } 142}); 143const _interop_require_default = __turbopack_context__.r(563141); 144const _interop_require_wildcard = __turbopack_context__.r(151836); 145const _jsxruntime = __turbopack_context__.r(843476); 146const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r(271645)); 147const _sideeffect = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r(898879)); 148const _headmanagercontextsharedruntime = __turbopack_context__.r(742732); 149const _warnonce = __turbopack_context__.r(233525); 150function defaultHead() { 151 const head = [ 152 /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { 153 charSet: "utf-8" 154 }, "charset"), 155 /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { 156 name: "viewport", 157 content: "width=device-width" 158 }, "viewport") 159 ]; 160 return head; 161} 162function onlyReactElement(list, child) { 163 // React children can be "string" or "number" in this case we ignore them for backwards compat 164 if (typeof child === 'string' || typeof child === 'number') { 165 return list; 166 } 167 // Adds support for React.Fragment 168 if (child.type === _react.default.Fragment) { 169 return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{ 170 if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') { 171 return fragmentList; 172 } 173 return fragmentList.concat(fragmentChild); 174 }, [])); 175 } 176 return list.concat(child); 177} 178const METATYPES = [ 179 'name', 180 'httpEquiv', 181 'charSet', 182 'itemProp' 183]; 184/* 185 returns a function for filtering head child elements 186 which shouldn't be duplicated, like <title/> 187 Also adds support for deduplicated `key` properties 188*/ function unique() { 189 const keys = new Set(); 190 const tags = new Set(); 191 const metaTypes = new Set(); 192 const metaCategories = {}; 193 return (h)=>{ 194 let isUnique = true; 195 let hasKey = false; 196 if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) { 197 hasKey = true; 198 const key = h.key.slice(h.key.indexOf('$') + 1); 199 if (keys.has(key)) { 200 isUnique = false; 201 } else { 202 keys.add(key); 203 } 204 } 205 // eslint-disable-next-line default-case 206 switch(h.type){ 207 case 'title': 208 case 'base': 209 if (tags.has(h.type)) { 210 isUnique = false; 211 } else { 212 tags.add(h.type); 213 } 214 break; 215 case 'meta': 216 for(let i = 0, len = METATYPES.length; i < len; i++){ 217 const metatype = METATYPES[i]; 218 if (!h.props.hasOwnProperty(metatype)) continue; 219 if (metatype === 'charSet') { 220 if (metaTypes.has(metatype)) { 221 isUnique = false; 222 } else { 223 metaTypes.add(metatype); 224 } 225 } else { 226 const category = h.props[metatype]; 227 const categories = metaCategories[metatype] || new Set(); 228 if ((metatype !== 'name' || !hasKey) && categories.has(category)) { 229 isUnique = false; 230 } else { 231 categories.add(category); 232 metaCategories[metatype] = categories; 233 } 234 } 235 } 236 break; 237 } 238 return isUnique; 239 }; 240} 241/** 242 * 243 * @param headChildrenElements List of children of <Head> 244 */ function reduceComponents(headChildrenElements) { 245 return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead().reverse()).filter(unique()).reverse().map((c, i)=>{
246 const key = c.key || i; 247 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 248 ; 249 return /*#__PURE__*/ _react.default.cloneElement(c, { 250 key 251 }); 252 }); 253} 254/** 255 * This component injects elements to `<head>` of your page. 256 * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once. 257 */ function Head(param) { 258 let { children } = param; 259 const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext); 260 return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, { 261 reduceComponentsToState: reduceComponents, 262 headManager: headManager, 263 children: children 264 }); 265} 266const _default = Head; 267if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { 268 Object.defineProperty(exports.default, '__esModule', { 269 value: true 270 }); 271 Object.assign(exports.default, exports); 272 module.exports = exports.default; 273} 274}), 27565856, ((__turbopack_context__, module, exports) => { 276"use strict"; 277 278var __TURBOPACK__imported__module__247167__ = /*#__PURE__*/ __turbopack_context__.i(247167); 279"use strict"; 280Object.defineProperty(exports, "__esModule", { 281 value: true 282}); 283Object.defineProperty(exports, "RouterContext", { 284 enumerable: true, 285 get: function() { 286 return RouterContext; 287 } 288}); 289const _interop_require_default = __turbopack_context__.r(563141); 290const _react = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r(271645)); 291const RouterContext = _react.default.createContext(null); 292if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 293; 294}), 295488143, ((__turbopack_context__, module, exports) => { 296"use strict"; 297 298/** 299 * A shared function, used on both client and server, to generate a SVG blur placeholder. 300 */ Object.defineProperty(exports, "__esModule", { 301 value: true 302}); 303Object.defineProperty(exports, "getImageBlurSvg", { 304 enumerable: true, 305 get: function() { 306 return getImageBlurSvg; 307 } 308}); 309function getImageBlurSvg(param) { 310 let { widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit } = param; 311 const std = 20; 312 const svgWidth = blurWidth ? blurWidth * 40 : widthInt; 313 const svgHeight = blurHeight ? blurHeight * 40 : heightInt; 314 const viewBox = svgWidth && svgHeight ? "viewBox='0 0 ".concat(svgWidth, " ").concat(svgHeight, "'") : ''; 315 const preserveAspectRatio = viewBox ? 'none' : objectFit === 'contain' ? 'xMidYMid' : objectFit === 'cover' ? 'xMidYMid slice' : 'none'; 316 return "%3Csvg xmlns='http://www.w3.org/2000/svg' ".concat(viewBox, "%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='").concat(std, "'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='").concat(std, "'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='").concat(preserveAspectRatio, "' style='filter: url(%23b);' href='").concat(blurDataURL, "'/%3E%3C/svg%3E"); 317} 318}), 319987690, ((__turbopack_context__, module, exports) => { 320"use strict"; 321 322Object.defineProperty(exports, "__esModule", { 323 value: true 324}); 3250 && (module.exports = { 326 VALID_LOADERS: null, 327 imageConfigDefault: null 328}); 329function _export(target, all) { 330 for(var name in all)Object.defineProperty(target, name, { 331 enumerable: true, 332 get: all[name] 333 }); 334} 335_export(exports, { 336 VALID_LOADERS: function() { 337 return VALID_LOADERS; 338 }, 339 imageConfigDefault: function() { 340 return imageConfigDefault; 341 } 342}); 343const VALID_LOADERS = [ 344 'default', 345 'imgix', 346 'cloudinary', 347 'akamai', 348 'custom' 349]; 350const imageConfigDefault = { 351 deviceSizes: [ 352 640, 353 750, 354 828, 355 1080, 356 1200, 357 1920, 358 2048, 359 3840 360 ], 361 imageSizes: [ 362 32, 363 48, 364 64, 365 96, 366 128, 367 256, 368 384 369 ], 370 path: '/_next/image', 371 loader: 'default', 372 loaderFile: '', 373 /** 374 * @deprecated Use `remotePatterns` instead to protect your application from malicious users. 375 */ domains: [], 376 disableStaticImages: false, 377 minimumCacheTTL: 14400, 378 formats: [ 379 'image/webp' 380 ], 381 maximumDiskCacheSize: undefined, 382 maximumRedirects: 3, 383 maximumResponseBody: 50000000, 384 dangerouslyAllowLocalIP: false, 385 dangerouslyAllowSVG: false, 386 contentSecurityPolicy: "script-src 'none';
386 frame-src 'none'; sandbox;", 387 contentDispositionType: 'attachment', 388 localPatterns: undefined, 389 remotePatterns: [], 390 qualities: [ 391 75 392 ], 393 unoptimized: false, 394 customCacheHandler: false 395}; 396}), 397908927, ((__turbopack_context__, module, exports) => { 398"use strict"; 399 400var __TURBOPACK__imported__module__247167__ = /*#__PURE__*/ __turbopack_context__.i(247167); 401"use strict"; 402Object.defineProperty(exports, "__esModule", { 403 value: true 404}); 405Object.defineProperty(exports, "getImgProps", { 406 enumerable: true, 407 get: function() { 408 return getImgProps; 409 } 410}); 411const _warnonce = __turbopack_context__.r(233525); 412const _deploymentid = __turbopack_context__.r(543369); 413const _imageblursvg = __turbopack_context__.r(488143); 414const _imageconfig = __turbopack_context__.r(987690); 415const VALID_LOADING_VALUES = [ 416 'lazy', 417 'eager', 418 undefined 419]; 420// Object-fit values that are not valid background-size values 421const INVALID_BACKGROUND_SIZE_VALUES = [ 422 '-moz-initial', 423 'fill', 424 'none', 425 'scale-down', 426 undefined 427]; 428function isStaticRequire(src) { 429 return src.default !== undefined; 430} 431function isStaticImageData(src) { 432 return src.src !== undefined; 433} 434function isStaticImport(src) { 435 return !!src && typeof src === 'object' && (isStaticRequire(src) || isStaticImageData(src)); 436} 437const allImgs = new Map(); 438let perfObserver; 439function getInt(x) { 440 if (typeof x === 'undefined') { 441 return x; 442 } 443 if (typeof x === 'number') { 444 return Number.isFinite(x) ? x : NaN; 445 } 446 if (typeof x === 'string' && /^[0-9]+$/.test(x)) { 447 return parseInt(x, 10); 448 } 449 return NaN; 450} 451function getWidths(param, width, sizes) { 452 let { deviceSizes, allSizes } = param; 453 if (sizes) { 454 // Find all the "vw" percent sizes used in the sizes prop 455 const viewportWidthRe = /(^|\s)(1?\d?\d)vw/g; 456 const percentSizes = []; 457 for(let match; match = viewportWidthRe.exec(sizes); match){ 458 percentSizes.push(parseInt(match[2])); 459 } 460 if (percentSizes.length) { 461 const smallestRatio = Math.min(...percentSizes) * 0.01; 462 return { 463 widths: allSizes.filter((s)=>s >= deviceSizes[0] * smallestRatio), 464 kind: 'w' 465 }; 466 } 467 return { 468 widths: allSizes, 469 kind: 'w' 470 }; 471 } 472 if (typeof width !== 'number') { 473 return { 474 widths: deviceSizes, 475 kind: 'w' 476 }; 477 } 478 const widths = [ 479 ...new Set(// > are actually 3x in the green color, but only 1.5x in the red and 480 // > blue colors. Showing a 3x resolution image in the app vs a 2x 481 // > resolution image will be visually the same, though the 3x image 482 // > takes significantly more data. Even true 3x resolution screens are 483 // > wasteful as the human eye cannot see that level of detail without 484 // > something like a magnifying glass. 485 // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html 486 [ 487 width, 488 width * 2 /*, width * 3*/ 489 ].map((w)=>allSizes.find((p)=>p >= w) || allSizes[allSizes.length - 1])) 490 ]; 491 return { 492 widths, 493 kind: 'x' 494 }; 495} 496function generateImgAttrs(param) { 497 let { config, src, unoptimized, width, quality, sizes, loader } = param; 498 if (unoptimized) { 499 if (src.startsWith('/') && !src.startsWith('//')) { 500 let deploymentId = (0, _deploymentid.getDeploymentId)(); 501 if (deploymentId) { 502 // We unfortunately can't easily use `new URL()` here, because it normalizes the URL which causes 503 // double-encoding with the `encodeURIComponent(src)` below 504 const qIndex = src.indexOf('?'); 505 if (qIndex !== -1) { 506 const params = new URLSearchParams(src.slice(qIndex + 1)); 507 const srcDpl = params.get('dpl'); 508 if (!srcDpl) { 509 // src is missing the dpl parameter, but we have a deploymentId, so add it to the src URL 510 params.append('dpl', deploymentId); 511 src = src.slice(0, qIndex) + '?' + params.toString(); 512 } 513 } else { 514 // src is missing the dpl parameter, but we have a deploymentId, so add it to the src URL 515 src = src + "?dpl=".concat(deploymentId); 516 } 517 } 518 } 519 return { 520 src, 521 srcSet: undefined, 522 sizes: undefined 523 }; 524 } 525 const { widths, kind } = getWidths(config, width, sizes); 526 const last = widths.length - 1; 527 return { 528 sizes: !sizes && kind === 'w' ? '100vw' : sizes, 529 srcSet: widths.map((w, i)=>"".concat(loader({ 530 config, 531 src, 532 quality, 533 width: w 534 }), " ").concat(kind === 'w' ? w : i + 1).concat(kind)).join(', '), 535 // It's intended to keep `src` the last attribute because React updates 536 // attributes in order. If we keep `src` the first one, Safari will 537 // immediately start to fetch `src`, before `sizes` and `srcSet` are even 538 // updated by React. That causes multiple unnecessary requests if `srcSet` 539 // and `sizes` are defined. 540 // This bug cannot be reproduced in Chrome or Firefox. 541 src: loader({ 542 config, 543 src, 544 quality, 545 width: widths[last] 546 }) 547 }; 548} 549function getImgProps(param, _state) { 550 let { src, sizes, unoptimized = false, priority = false, preload = false, loading, className, quality, width, height, fill = false, style, overrideSrc, onLoad, onLoadingComplete, placeholder = 'empty', blurDataURL, fetchPriority, decoding = 'async', layout, objectFit, objectPosition, lazyBoundary, lazyRoot, ...rest } = param; 551 const { imgConf, showAltText, blurComplete, defaultLoader } = _state;
552 let config; 553 let c = imgConf || _imageconfig.imageConfigDefault; 554 if ('allSizes' in c) { 555 config = c; 556 } else { 557 var _c_qualities; 558 const allSizes = [ 559 ...c.deviceSizes, 560 ...c.imageSizes 561 ].sort((a, b)=>a - b); 562 const deviceSizes = c.deviceSizes.sort((a, b)=>a - b); 563 const qualities = (_c_qualities = c.qualities) === null || _c_qualities === void 0 ? void 0 : _c_qualities.sort((a, b)=>a - b); 564 config = { 565 ...c, 566 allSizes, 567 deviceSizes, 568 qualities 569 }; 570 } 571 if (typeof defaultLoader === 'undefined') { 572 throw Object.defineProperty(new Error('images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config'), "__NEXT_ERROR_CODE", { 573 value: "E163", 574 enumerable: false, 575 configurable: true 576 }); 577 } 578 let loader = rest.loader || defaultLoader; 579 // Remove property so it's not spread on <img> element 580 delete rest.loader; 581 delete rest.srcSet; 582 // This special value indicates that the user 583 // didn't define a "loader" prop or "loader" config. 584 const isDefaultLoader = '__next_img_default' in loader; 585 if (isDefaultLoader) { 586 if (config.loader === 'custom') { 587 throw Object.defineProperty(new Error('Image with src "'.concat(src, '" is missing "loader" prop.') + "\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader"), "__NEXT_ERROR_CODE", { 588 value: "E252", 589 enumerable: false, 590 configurable: true 591 }); 592 } 593 } else { 594 // The user defined a "loader" prop or config. 595 // Since the config object is internal only, we 596 // must not pass it to the user-defined "loader". 597 const customImageLoader = loader; 598 loader = (obj)=>{ 599 const { config: _, ...opts } = obj; 600 return customImageLoader(opts); 601 }; 602 } 603 if (layout) { 604 if (layout === 'fill') { 605 fill = true; 606 } 607 const layoutToStyle = { 608 intrinsic: { 609 maxWidth: '100%', 610 height: 'auto' 611 }, 612 responsive: { 613 width: '100%', 614 height: 'auto' 615 } 616 }; 617 const layoutToSizes = { 618 responsive: '100vw', 619 fill: '100vw' 620 }; 621 const layoutStyle = layoutToStyle[layout]; 622 if (layoutStyle) { 623 style = { 624 ...style, 625 ...layoutStyle 626 }; 627 } 628 const layoutSizes = layoutToSizes[layout]; 629 if (layoutSizes && !sizes) { 630 sizes = layoutSizes; 631 } 632 } 633 let staticSrc = ''; 634 let widthInt = getInt(width); 635 let heightInt = getInt(height); 636 let blurWidth; 637 let blurHeight; 638 if (isStaticImport(src)) { 639 const staticImageData = isStaticRequire(src) ? src.default : src; 640 if (!staticImageData.src) { 641 throw Object.defineProperty(new Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ".concat(JSON.stringify(staticImageData))), "__NEXT_ERROR_CODE", { 642 value: "E460", 643 enumerable: false, 644 configurable: true 645 }); 646 } 647 if (!staticImageData.height || !staticImageData.width) { 648 throw Object.defineProperty(new Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ".concat(JSON.stringify(staticImageData))), "__NEXT_ERROR_CODE", { 649 value: "E48", 650 enumerable: false, 651 configurable: true 652 }); 653 } 654 blurWidth = staticImageData.blurWidth; 655 blurHeight = staticImageData.blurHeight; 656 blurDataURL = blurDataURL || staticImageData.blurDataURL; 657 staticSrc = staticImageData.src; 658 if (!fill) { 659 if (!widthInt && !heightInt) { 660 widthInt = staticImageData.width; 661 heightInt = staticImageData.height; 662 } else if (widthInt && !heightInt) { 663 const ratio = widthInt / staticImageData.width; 664 heightInt = Math.round(staticImageData.height * ratio); 665 } else if (!widthInt && heightInt) { 666 const ratio = heightInt / staticImageData.height; 667 widthInt = Math.round(staticImageData.width * ratio); 668 } 669 } 670 } 671 src = typeof src === 'string' ? src : staticSrc; 672 let isLazy = !priority && !preload && (loading === 'lazy' || typeof loading === 'undefined'); 673 if (!src || src.startsWith('data:') || src.startsWith('blob:')) { 674 // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs 675 unoptimized = true; 676 isLazy = false;
677 } 678 if (config.unoptimized) { 679 unoptimized = true; 680 } 681 if (isDefaultLoader && !config.dangerouslyAllowSVG && src.split('?', 1)[0].endsWith('.svg')) { 682 // Special case to make svg serve as-is to avoid proxying 683 // through the built-in Image Optimization API. 684 unoptimized = true; 685 } 686 const qualityInt = getInt(quality); 687 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 688 ; 689 const imgStyle = Object.assign(fill ? { 690 position: 'absolute', 691 height: '100%', 692 width: '100%', 693 left: 0, 694 top: 0, 695 right: 0, 696 bottom: 0, 697 objectFit, 698 objectPosition 699 } : {}, showAltText ? {} : { 700 color: 'transparent' 701 }, style); 702 const backgroundImage = !blurComplete && placeholder !== 'empty' ? placeholder === 'blur' ? 'url("data:image/svg+xml;charset=utf-8,'.concat((0, _imageblursvg.getImageBlurSvg)({ 703 widthInt, 704 heightInt, 705 blurWidth, 706 blurHeight, 707 blurDataURL: blurDataURL || '', 708 objectFit: imgStyle.objectFit 709 }), '")') : 'url("'.concat(placeholder, '")') // assume `data:image/` 710 : null; 711 const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(imgStyle.objectFit) ? imgStyle.objectFit : imgStyle.objectFit === 'fill' ? '100% 100%' // the background-size equivalent of `fill` 712 : 'cover'; 713 let placeholderStyle = backgroundImage ? { 714 backgroundSize, 715 backgroundPosition: imgStyle.objectPosition || '50% 50%', 716 backgroundRepeat: 'no-repeat', 717 backgroundImage 718 } : {}; 719 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 720 ; 721 const imgAttributes = generateImgAttrs({ 722 config, 723 src, 724 unoptimized, 725 width: widthInt, 726 quality: qualityInt, 727 sizes, 728 loader 729 }); 730 const loadingFinal = isLazy ? 'lazy' : loading; 731 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 732 ; 733 const props = { 734 ...rest, 735 loading: loadingFinal, 736 fetchPriority, 737 width: widthInt, 738 height: heightInt, 739 decoding, 740 className, 741 style: { 742 ...imgStyle, 743 ...placeholderStyle 744 }, 745 sizes: imgAttributes.sizes, 746 srcSet: imgAttributes.srcSet, 747 src: overrideSrc || imgAttributes.src 748 }; 749 const meta = { 750 unoptimized, 751 preload: preload || priority, 752 placeholder, 753 fill 754 }; 755 return { 756 props, 757 meta 758 }; 759} 760}), 761918556, ((__turbopack_context__, module, exports) => { 762"use strict"; 763 764var __TURBOPACK__imported__module__247167__ = /*#__PURE__*/ __turbopack_context__.i(247167); 765"use strict"; 766Object.defineProperty(exports, "__esModule", { 767 value: true 768}); 769Object.defineProperty(exports, "ImageConfigContext", { 770 enumerable: true, 771 get: function() { 772 return ImageConfigContext; 773 } 774}); 775const _interop_require_default = __turbopack_context__.r(563141); 776const _react = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r(271645)); 777const _imageconfig = __turbopack_context__.r(987690); 778const ImageConfigContext = _react.default.createContext(_imageconfig.imageConfigDefault); 779if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 780; 781}), 782670965, ((__turbopack_context__, module, exports) => { 783"use strict"; 784 785Object.defineProperty(exports, "__esModule", { 786 value: true 787}); 788Object.defineProperty(exports, "findClosestQuality", { 789 enumerable: true, 790 get: function() { 791 return findClosestQuality; 792 } 793}); 794function findClosestQuality(quality, config) { 795 var _config_qualities; 796 const q = quality || 75; 797 if (!(config === null || config === void 0 ? void 0 : (_config_qualities = config.qualities) === null || _config_qualities === void 0 ? void 0 : _config_qualities.length)) { 798 return q; 799 } 800 return config.qualities.reduce((prev, cur)=>Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev, config.qualities[0]); 801} 802}), 8031948, ((__turbopack_context__, module, exports) => { 804"use strict"; 805 806var __TURBOPACK__imported__module__247167__ = /*#__PURE__*/ __turbopack_context__.i(247167); 807"use strict"; 808Object.defineProperty(exports, "__esModule", { 809 value: true 810}); 811Object.defineProperty(exports, "default", { 812 enumerable: true, 813 get: function() { 814 return _default; 815 } 816}); 817const _findclosestquality = __turbopack_context__.r(670965); 818const _deploymentid = __turbopack_context__.r(543369); 819function defaultLoader(param) { 820 let { config, src, width, quality } = param; 821 var _config_localPatterns; 822 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 823 ; 824 // Extract dpl parameter early so validation uses the clean URL. 825 // If a immutable asset token should be used, it was already added as a query parameter and will 826 // be extracted and reused here. 827 let deploymentId = (0, _deploymentid.getDeploymentId)(); 828 if (src.startsWith('/') && !src.startsWith('//')) { 829 // We unfortunately can't easily use `new URL()` here, because it normalizes the URL which causes 830 // double-encoding with the `encodeURIComponent(src)` below 831 const qIndex = src.indexOf('?'); 832 if (qIndex !== -1) { 833 const params = new URLSearchParams(src.slice(qIndex + 1)); 834 const srcDpl = params.get('dpl'); 835 if (srcDpl) { 836 deploymentId = srcDpl; 837 params.delete('dpl'); 838 const remaining = params.toString(); 839 src = src.slice(0, qIndex) + (remaining ? '?' + remaining : ''); 840 } 841 } 842 } 843 if (src.startsWith('/') && src.includes('?') && ((_config_localPatterns = config.localPatterns) === null || _config_localPatterns === void 0 ? void 0 : _config_localPatterns.length) === 1 && config.localPatterns[0].pathname === '**' && config.localPatterns[0].search === '') { 844 throw Object.defineProperty(new Error('Image with src "'.concat(src, '" is using a query string which is not configured in images.localPatterns.') + "\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns"), "__NEXT_ERROR_CODE", { 845 value: "E871", 846 enumerable: false, 847 configurable: true 848 }); 849 } 850 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 851 ; 852 const q = (0, _findclosestquality.findClosestQuality)(quality, config); 853 return "".concat(config.path, "?url=").concat(encodeURIComponent(src), "&w=").concat(width, "&q=").concat(q).concat(src.startsWith('/') && deploymentId ? "&dpl=".concat(deploymentId) : ''); 854} 855// We use this to determine if the import is the default loader 856// or a custom loader defined by the user in next.config.js 857defaultLoader.__next_img_default = true; 858const _default = defaultLoader; 859}),
860605500, ((__turbopack_context__, module, exports) => { 861"use strict"; 862 863var __TURBOPACK__imported__module__247167__ = /*#__PURE__*/ __turbopack_context__.i(247167); 864'use client'; 865"use strict"; 866Object.defineProperty(exports, "__esModule", { 867 value: true 868}); 869Object.defineProperty(exports, "Image", { 870 enumerable: true, 871 get: function() { 872 return Image; 873 } 874}); 875const _interop_require_default = __turbopack_context__.r(563141); 876const _interop_require_wildcard = __turbopack_context__.r(151836); 877const _jsxruntime = __turbopack_context__.r(843476); 878const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r(271645)); 879const _reactdom = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r(174080)); 880const _head = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r(325633)); 881const _getimgprops = __turbopack_context__.r(908927); 882const _imageconfig = __turbopack_context__.r(987690); 883const _imageconfigcontextsharedruntime = __turbopack_context__.r(918556); 884const _warnonce = __turbopack_context__.r(233525); 885const _routercontextsharedruntime = __turbopack_context__.r(65856); 886const _imageloader = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r(1948)); 887const _usemergedref = __turbopack_context__.r(818581); 888// This is replaced by webpack define plugin 889const configEnv = ("TURBOPACK compile-time value", { 890 "deviceSizes": ("TURBOPACK compile-time value", [ 891 ("TURBOPACK compile-time value", 640), 892 ("TURBOPACK compile-time value", 750), 893 ("TURBOPACK compile-time value", 828), 894 ("TURBOPACK compile-time value", 1080), 895 ("TURBOPACK compile-time value", 1200), 896 ("TURBOPACK compile-time value", 1920), 897 ("TURBOPACK compile-time value", 2048), 898 ("TURBOPACK compile-time value", 3840) 899 ]), 900 "imageSizes": ("TURBOPACK compile-time value", [ 901 ("TURBOPACK compile-time value", 32), 902 ("TURBOPACK compile-time value", 48), 903 ("TURBOPACK compile-time value", 64), 904 ("TURBOPACK compile-time value", 96), 905 ("TURBOPACK compile-time value", 128), 906 ("TURBOPACK compile-time value", 256), 907 ("TURBOPACK compile-time value", 384) 908 ]), 909 "qualities": ("TURBOPACK compile-time value", [ 910 ("TURBOPACK compile-time value", 75) 911 ]), 912 "path": ("TURBOPACK compile-time value", "/_next/image"), 913 "loader": ("TURBOPACK compile-time value", "default"), 914 "dangerouslyAllowSVG": ("TURBOPACK compile-time value", false), 915 "unoptimized": ("TURBOPACK compile-time value", false) 916}); 917if (typeof window === 'undefined') { 918 ; 919 globalThis.__NEXT_IMAGE_IMPORTED = true; 920} 921// See https://stackoverflow.com/q/39777833/266535 for why we use this ref 922// handler instead of the img's onLoad attribute. 923function handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput) { 924 const src = img === null || img === void 0 ? void 0 : img.src; 925 if (!img || img['data-loaded-src'] === src) { 926 return; 927 } 928 img['data-loaded-src'] = src; 929 const p = 'decode' in img ? img.decode() : Promise.resolve(); 930 p.catch(()=>{}).then(()=>{ 931 if (!img.parentElement || !img.isConnected) { 932 // Exit early in case of race condition: 933 // - onload() is called 934 // - decode() is called but incomplete 935 // - unmount is called 936 // - decode() completes 937 return; 938 } 939 if (placeholder !== 'empty') { 940 setBlurComplete(true); 941 } 942 if (onLoadRef === null || onLoadRef === void 0 ? void 0 : onLoadRef.current) { 943 // Since we don't have the SyntheticEvent here, 944 // we must create one with the same shape. 945 // See https://reactjs.org/docs/events.html 946 const event = new Event('load'); 947 Object.defineProperty(event, 'target', { 948 writable: false, 949 value: img 950 }); 951 let prevented = false; 952 let stopped = false; 953 onLoadRef.current({ 954 ...event, 955 nativeEvent: event, 956 currentTarget: img, 957 target: img, 958 isDefaultPrevented: ()=>prevented, 959 isPropagationStopped: ()=>stopped, 960 persist: ()=>{}, 961 preventDefault: ()=>{ 962 prevented = true; 963 event.preventDefault(); 964 }, 965 stopPropagation: ()=>{ 966 stopped = true; 967 event.stopPropagation(); 968 } 969 }); 970 } 971 if (onLoadingCompleteRef === null || onLoadingCompleteRef === void 0 ? void 0 : onLoadingCompleteRef.current) { 972 onLoadingCompleteRef.current(img); 973 } 974 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 975 ; 976 }); 977} 978function getDynamicProps(fetchPriority) { 979 if (Boolean(_react.use)) { 980 // In React 19.0.0 or newer, we must use camelCase 981 // prop to avoid "Warning: Invalid DOM property". 982 // See https://github.com/facebook/react/pull/25927 983 return { 984 fetchPriority 985 }; 986 } 987 // In React 18.2.0 or older, we must use lowercase prop 988 // to avoid "Warning: Invalid DOM property". 989 return { 990 fetchpriority: fetchPriority 991 }; 992} 993const ImageElement = /*#__PURE__*/ (0, _react.forwardRef)((param, forwardedRef)=>{ 994 let { src, srcSet, sizes, height, width, decoding, className, style, fetchPriority, placeholder, loading, unoptimized, fill, onLoadRef, onLoadingCompleteRef, setBlurComplete, setShowAltText, sizesInput, onLoad, onError, ...rest } = param; 995 const ownRef = (0, _react.useCallback)((img)=>{ 996 if (!img) { 997 return; 998 } 999 if (onError) { 1000 // If the image has an error before react hydrates, then the error is lost. 1001 // The workaround is to wait until the image is mounted which is after hydration, 1002 // then we set the src again to trigger the error handler (if there was an error). 1003 // eslint-disable-next-line no-self-assign 1004 img.src = img.src; 1005 } 1006 if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable 1007 ; 1008 if (img.complete) { 1009 handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput); 1010 } 1011 }, [ 1012 src, 1013 placeholder, 1014 onLoadRef, 1015 onLoadingCompleteRef, 1016 setBlurComplete, 1017 onError, 1018 unoptimized, 1019 sizesInput 1020 ]); 1021 const ref = (0, _usemergedref.useMergedRef)(forwardedRef, ownRef); 1022 return /*#__PURE__*/ (0, _jsxruntime.jsx)("img", { 1023 ...rest, 1024 ...getDynamicProps(fetchPriority), 1025 // It's intended to keep `loading` before `src` because React updates 1026 // props in order which causes Safari/Firefox to not lazy load properly. 1027 // See https://github.com/facebook/react/issues/25883 1028 loading: loading, 1029 width: width, 1030 height: height, 1031 decoding: decoding, 1032 "data-nimg": fill ? 'fill' : '1', 1033 className: className, 1034 style: style, 1035 // It's intended to keep `src` the last attribute because React updates 1036 // attributes in order. If we keep `src` the first one, Safari will 1037 // immediately start to fetch `src`, before `sizes` and `srcSet` are even 1038 // updated by React. That causes multiple unnecessary requests if `srcSet` 1039 // and `sizes` are defined. 1040 // This bug cannot be reproduced in Chrome or Firefox. 1041 sizes: sizes, 1042 srcSet: srcSet, 1043 src: src, 1044 ref: ref, 1045 onLoad: (event)=>{ 1046 const img = event.currentTarget; 1047 handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput); 1048 }, 1049 onError: (event)=>{ 1050 // if the real image fails to load, this will ensure "alt" is visible 1051 setShowAltText(true); 1052 if (placeholder !== 'empty') { 1053 // If the real image fails to load, this will still remove the placeholder. 1054 setBlurComplete(true); 1055 } 1056 if (onError) { 1057 onError(event); 1058 } 1059 } 1060 }); 1061}); 1062function ImagePreload(param) { 1063 let { isAppRouter, imgAttributes } = param; 1064 const opts = { 1065 as: 'image', 1066 imageSrcSet: imgAttributes.srcSet, 1067 imageSizes: imgAttributes.sizes, 1068 crossOrigin: imgAttributes.crossOrigin, 1069 referrerPolicy: imgAttributes.referrerPolicy, 1070 ...getDynamicProps(imgAttributes.fetchPriority) 1071 }; 1072 if (isAppRouter && _reactdom.default.preload) { 1073 _reactdom.default.preload(imgAttributes.src, opts); 1074 return null; 1075 } 1076 return /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, { 1077 children: /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { 1078 rel: "preload", 1079 // Note how we omit the `href` attribute, as it would only be relevant 1080 // for browsers that do not support `imagesrcset`, and in those cases 1081 // it would cause the incorrect image to be preloaded. 1082 // 1083 // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset 1084 href: imgAttributes.srcSet ? undefined : imgAttributes.src, 1085 ...opts 1086 }, '__nimg-' + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes) 1087 }); 1088} 1089const Image = /*#__PURE__*/ (0, _react.forwardRef)((props, forwardedRef)=>{ 1090 const pagesRouter = (0, _react.useContext)(_routercontextsharedruntime.RouterContext); 1091 // We're in the app directory if there is no pages router. 1092 const isAppRouter = !pagesRouter; 1093 const configContext = (0, _react.useContext)(_imageconfigcontextsharedruntime.ImageConfigContext); 1094 const config = (0, _react.useMemo)(()=>{ 1095 var _c_qualities; 1096 const c = configEnv || configContext || _imageconfig.imageConfigDefault; 1097 const allSizes = [ 1098 ...c.deviceSizes, 1099 ...c.imageSizes 1100 ].sort((a, b)=>a - b); 1101 const deviceSizes = c.deviceSizes.sort((a, b)=>a - b); 1102 const qualities = (_c_qualities = c.qualities) === null || _c_qualities === void 0 ? void 0 : _c_qualities.sort((a, b)=>a - b); 1103 return { 1104 ...c, 1105 allSizes, 1106 deviceSizes, 1107 qualities, 1108 // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include 1109 // security sensitive configs like `localPatterns`, which is needed 1110 // during the server render to ensure it's validated. Therefore use 1111 // configContext, which holds the config from the server for validation. 1112 localPatterns: typeof window === 'undefined' ? configContext === null || configContext === void 0 ? void 0 : configContext.localPatterns : c.localPatterns 1113 }; 1114 }, [ 1115 configContext 1116 ]); 1117 const { onLoad, onLoadingComplete } = props; 1118 const onLoadRef = (0, _react.useRef)(onLoad); 1119 (0, _react.useEffect)(()=>{ 1120 onLoadRef.current = onLoad; 1121 }, [ 1122 onLoad 1123 ]); 1124 const onLoadingCompleteRef = (0, _react.useRef)(onLoadingComplete); 1125 (0, _react.useEffect)(()=>{ 1126 onLoadingCompleteRef.current = onLoadingComplete; 1127 }, [ 1128 onLoadingComplete 1129 ]); 1130 const [blurComplete, setBlurComplete] = (0, _react.useState)(false); 1131 const [showAltText, setShowAltText] = (0, _react.useState)(false); 1132 const { props: imgAttributes, meta: imgMeta } = (0, _getimgprops.getImgProps)(props, { 1133 defaultLoader: _imageloader.default, 1134 imgConf: config, 1135 blurComplete, 1136 showAltText 1137 }); 1138 return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { 1139 children: [ 1140 /*#__PURE__*/ (0, _jsxruntime.jsx)(ImageElement, { 1141 ...imgAttributes, 1142 unoptimized: imgMeta.unoptimized, 1143 placeholder: imgMeta.placeholder, 1144 fill: imgMeta.fill, 1145 onLoadRef: onLoadRef, 1146 onLoadingCompleteRef: onLoadingCompleteRef, 1147 setBlurComplete: setBlurComplete, 1148 setShowAltText: setShowAltText, 1149 sizesInput: props.sizes, 1150 ref: forwardedRef 1151 }), 1152 imgMeta.preload ? /*#__PURE__*/ (0, _jsxruntime.jsx)(ImagePreload, { 1153 isAppRouter: isAppRouter, 1154 imgAttributes: imgAttributes 1155 }) : null 1156 ] 1157 }); 1158}); 1159if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { 1160 Object.defineProperty(exports.default, '__esModule', { 1161 value: true 1162 });
1163 Object.assign(exports.default, exports); 1164 module.exports = exports.default; 1165} 1166}), 1167288261, 803635, 116859844, 1169((__turbopack_context__) => { 1170"use strict"; 1171 1172// MERGED MODULE: [project]/node_modules/date-fns/setHours.js [app-client] (ecmascript) 1173; 1174var __TURBOPACK__imported__module__281092__ = __turbopack_context__.i(281092); 1175; 1176function setHours(date, hours, options) { 1177 const _date = (0, __TURBOPACK__imported__module__281092__["toDate"])(date, options === null || options === void 0 ? void 0 : options.in); 1178 _date.setHours(hours); 1179 return _date; 1180} 1181const __TURBOPACK__default__export__ = setHours; 1182__turbopack_context__.s([ 1183 "setHours", 1184 0, 1185 setHours 1186], 288261); 1187// MERGED MODULE: [project]/node_modules/date-fns/setMinutes.js [app-client] (ecmascript) 1188; 1189var __TURBOPACK__imported__module__281092__1 = __TURBOPACK__imported__module__281092__; 1190; 1191function setMinutes(date, minutes, options) { 1192 const date_ = (0, __TURBOPACK__imported__module__281092__1["toDate"])(date, options === null || options === void 0 ? void 0 : options.in); 1193 date_.setMinutes(minutes); 1194 return date_; 1195} 1196const __TURBOPACK__default__export__1 = setMinutes; 1197__turbopack_context__.s([ 1198 "setMinutes", 1199 0, 1200 setMinutes 1201], 803635); 1202// MERGED MODULE: [project]/node_modules/date-fns/setSeconds.js [app-client] (ecmascript) 1203; 1204var __TURBOPACK__imported__module__281092__2 = __TURBOPACK__imported__module__281092__; 1205; 1206function setSeconds(date, seconds, options) { 1207 const _date = (0, __TURBOPACK__imported__module__281092__2["toDate"])(date, options === null || options === void 0 ? void 0 : options.in); 1208 _date.setSeconds(seconds); 1209 return _date; 1210} 1211const __TURBOPACK__default__export__2 = setSeconds; 1212__turbopack_context__.s([ 1213 "setSeconds", 1214 0, 1215 setSeconds 1216], 59844); 1217}), 1218718580, ((__turbopack_context__) => { 1219"use strict"; 1220 1221// MERGED MODULE: [project]/src/lib/CategoryAvailabilityQuery.ts [app-client] (ecmascript) 1222; 1223var __TURBOPACK__imported__module__929387__ = __turbopack_context__.i(929387); 1224var __TURBOPACK__imported__module__109881__ = __turbopack_context__.i(109881); 1225var __TURBOPACK__imported__module__988052__ = __turbopack_context__.i(988052); 1226var __TURBOPACK__imported__module__183330__ = __turbopack_context__.i(183330); 1227var __TURBOPACK__imported__module__595727__ = __turbopack_context__.i(595727); 1228var __TURBOPACK__imported__module__401851__ = __turbopack_context__.i(401851); 1229var __TURBOPACK__imported__module__309000__ = __turbopack_context__.i(309000); 1230var __TURBOPACK__imported__module__385479__ = __turbopack_context__.i(385479); 1231var __TURBOPACK__imported__module__826514__ = __turbopack_context__.i(826514); 1232var __TURBOPACK__imported__module__288261__ = __turbopack_context__.i(288261); 1233// MERGED MODULE: [project]/node_modules/date-fns/setMilliseconds.js [app-client] (ecmascript) 1234; 1235var __TURBOPACK__imported__module__281092__ = __turbopack_context__.i(281092); 1236; 1237function setMilliseconds(date, milliseconds, options) { 1238 const _date = (0, __TURBOPACK__imported__module__281092__["toDate"])(date, options === null || options === void 0 ? void 0 : options.in); 1239 _date.setMilliseconds(milliseconds); 1240 return _date; 1241} 1242const __TURBOPACK__default__export__ = setMilliseconds; 1243var __TURBOPACK__imported__module__803635__ = __turbopack_context__.i(803635); 1244var __TURBOPACK__imported__module__59844__ = __turbopack_context__.i(59844); 1245var __TURBOPACK__imported__module__685149__ = __turbopack_context__.i(685149); 1246; 1247; 1248; 1249; 1250function toDutchTime(date) { 1251 const value = date instanceof Date ? date : (0, __TURBOPACK__imported__module__826514__["parseISO"])(date, { 1252 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1253 }); 1254 const zonedValue = new __TURBOPACK__imported__module__988052__["TZDate"](value, __TURBOPACK__imported__module__685149__["TIMEZONE"]); 1255 return date instanceof Date ? zonedValue : (0, __TURBOPACK__imported__module__309000__["formatISO"])(zonedValue, { 1256 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1257 }); 1258} 1259const CategoryAvailabilityQuery = function() { 1260 let now = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : __TURBOPACK__imported__module__988052__["TZDate"].tz(__TURBOPACK__imported__module__685149__["TIMEZONE"]); 1261 return { 1262 defaultPickupDate: ()=>{ 1263 return setMilliseconds((0, __TURBOPACK__imported__module__59844__["setSeconds"])((0, __TURBOPACK__imported__module__803635__["setMinutes"])((0, __TURBOPACK__imported__module__288261__["setHours"])((0, __TURBOPACK__imported__module__595727__["addDays"])(now, 1, { 1264 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1265 }), 8, { 1266 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1267 }), 0, { 1268 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1269 }), 0, { 1270 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1271 }), 0, { 1272 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1273 }); 1274 }, 1275 defaultReturnDate: (options)=>{ 1276 // If `pickupDate` was given, use it instead of the current date to calculate the return date. 1277 if (options === null || options === void 0 ? void 0 : options.pickupDate) { 1278 return setMilliseconds((0, __TURBOPACK__imported__module__59844__["setSeconds"])((0, __TURBOPACK__imported__module__803635__["setMinutes"])((0, __TURBOPACK__imported__module__288261__["setHours"])((0, __TURBOPACK__imported__module__595727__["addDays"])(options.pickupDate, 1), 8), 0), 0), 0); 1279 } 1280 return setMilliseconds((0, __TURBOPACK__imported__module__59844__["setSeconds"])((0, __TURBOPACK__imported__module__803635__["setMinutes"])((0, __TURBOPACK__imported__module__288261__["setHours"])((0, __TURBOPACK__imported__module__595727__["addDays"])(now, 2), 8), 0), 0), 0); 1281 }, 1282 parse: (query)=>{ 1283 __TURBOPACK__imported__module__183330__["addBreadcrumb"]({ 1284 category: "availability", 1285 message: "Parse availability query", 1286 level: "info", 1287 data: query 1288 }); 1289 const parsedQuery = parseAvailabilityQueryWithoutDefaults(query); 1290 return { 1291 ...parsedQuery, 1292 datePickup: parsedQuery.datePickup ? parsedQuery.datePickup : (0, __TURBOPACK__imported__module__309000__["formatISO"])(CategoryAvailabilityQuery(now).defaultPickupDate(), { 1293 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1294 }), 1295 dateReturn: parsedQuery.dateReturn || parsedQuery.dateReturn === null ? parsedQuery.dateReturn : (0, __TURBOPACK__imported__module__309000__["formatISO"])(CategoryAvailabilityQuery(now).defaultReturnDate(), { 1296 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1297 }) 1298 }; 1299 }, 1300 serialize: (query)=>{ 1301 return serializeAvailabilityQuery(query); 1302 }, 1303 serializeAsSearchParams: function(query) { 1304 let init = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : new URLSearchParams(); 1305 return serializeAvailabilityQueryAsSearchParams(query, init); 1306 } 1307 }; 1308}; 1309function getDefaultReturnTimeForDay() {} 1310const serializeAvailabilityQueryAsSearchParams = (query, init)=>{ 1311 const params = new URLSearchParams(init); 1312 // Clear the values we're setting from the query to prevent leaving them in the URL empty. 1313 // E.g. /voertuigen?km=&seats=&fuels= 1314 params.delete("addons"); 1315 params.delete("transmissions"); 1316 params.delete("fuels"); 1317 params.delete("from"); 1318 params.delete("km"); 1319 params.delete("pickup"); 1320 params.delete("seats"); 1321 params.delete("types"); 1322 params.delete("cargoTypes"); 1323 params.delete("hasLiftGate"); 1324 params.delete("sort"); 1325 params.delete("to"); 1326 params.delete("return");
1327 Object.entries(serializeAvailabilityQuery(query)).forEach((param)=>{ 1328 let [key, value] = param; 1329 params.set(key, value); 1330 }); 1331 return params; 1332}; 1333function parseAvailabilityQueryWithoutDefaults(query) { 1334 const locationId = query.from ? parseInt(query.from, 10) || undefined : undefined; 1335 const returnLocationId = query.to ? parseInt(query.to, 10) || undefined : undefined; 1336 let dateReturn = undefined; 1337 let datePickup = undefined; 1338 if (!!query.return) { 1339 try { 1340 dateReturn = (0, __TURBOPACK__imported__module__309000__["formatISO"])((0, __TURBOPACK__imported__module__385479__["parse"])(query.return, "dd-MM-yyyy HH:mm", new __TURBOPACK__imported__module__988052__["TZDate"](0, 0, 0, 0, 0, 0, 0), { 1341 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1342 }), { 1343 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1344 }); 1345 } catch (unused) { 1346 // no-op 1347 } 1348 } 1349 if (!!query.pickup) { 1350 try { 1351 datePickup = (0, __TURBOPACK__imported__module__309000__["formatISO"])((0, __TURBOPACK__imported__module__385479__["parse"])(query.pickup, "dd-MM-yyyy HH:mm", new __TURBOPACK__imported__module__988052__["TZDate"](0, 0, 0, 0, 0, 0, 0), { 1352 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1353 }), { 1354 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1355 }); 1356 } catch (unused) { 1357 // no-op 1358 } 1359 } 1360 if (query.return === "") { 1361 dateReturn = null; 1362 } 1363 return { 1364 locationId: locationId !== undefined && !isNaN(locationId) ? locationId : undefined, 1365 returnLocationId: returnLocationId !== undefined && !isNaN(returnLocationId) ? returnLocationId : undefined, 1366 datePickup, 1367 dateReturn, 1368 filters: { 1369 expectedKilometers: query.km ? parseInt(query.km) || undefined : undefined, 1370 fuels: query.fuels ? query.fuels.split(",") : undefined, 1371 transmissions: query.transmissions ? query.transmissions.split(",") : undefined, 1372 seats: query.seats ? query.seats.split(",").map((value)=>parseInt(value) || undefined).filter((it)=>it !== undefined) : undefined, 1373 addons: query.addons ? query.addons.split(",").map((value)=>parseInt(value) || undefined).filter((it)=>it !== undefined) : undefined, 1374 vehicleTypes: query.types ? query.types.split(",").map((value)=>value) : undefined, 1375 cargoTypes: query.cargoTypes ? query.cargoTypes.split(",") : undefined, 1376 hasLiftGate: query.hasLiftGate === "true" ? true : undefined 1377 }, 1378 sorting: query.sort 1379 }; 1380} 1381const serializeAvailabilityQuery = (query)=>{ 1382 var _query_filters, _query_filters1, _query_returnLocationId, _query_locationId, _query_filters_expectedKilometers, _query_filters2, _query_filters_transmissions, _query_filters3, _query_filters_fuels, _query_filters4, _query_filters_addons, _query_filters5, _query_filters_seats, _query_filters6, _query_filters_vehicleTypes, _query_filters7, _query_filters_cargoTypes, _query_filters8; 1383 const hasLiftGateEnabled = ((_query_filters = query.filters) === null || _query_filters === void 0 ? void 0 : _query_filters.hasLiftGate) === true || ((_query_filters1 = query.filters) === null || _query_filters1 === void 0 ? void 0 : _query_filters1.hasLiftGate) === "true"; 1384 const serializedQuery = { 1385 to: (_query_returnLocationId = query.returnLocationId) === null || _query_returnLocationId === void 0 ? void 0 : _query_returnLocationId.toString(), 1386 from: (_query_locationId = query.locationId) === null || _query_locationId === void 0 ? void 0 : _query_locationId.toString(), 1387 pickup: query.datePickup ? (0, __TURBOPACK__imported__module__401851__["format"])(query.datePickup, "dd-MM-yyyy HH:mm", { 1388 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1389 }) : undefined, 1390 return: query.dateReturn ? (0, __TURBOPACK__imported__module__401851__["format"])(query.dateReturn, "dd-M
1390M-yyyy HH:mm", { 1391 in: (0, __TURBOPACK__imported__module__109881__["tz"])(__TURBOPACK__imported__module__685149__["TIMEZONE"]) 1392 }) : query.dateReturn === null ? "" : undefined, 1393 km: (_query_filters2 = query.filters) === null || _query_filters2 === void 0 ? void 0 : (_query_filters_expectedKilometers = _query_filters2.expectedKilometers) === null || _query_filters_expectedKilometers === void 0 ? void 0 : _query_filters_expectedKilometers.toString(), 1394 transmissions: (_query_filters3 = query.filters) === null || _query_filters3 === void 0 ? void 0 : (_query_filters_transmissions = _query_filters3.transmissions) === null || _query_filters_transmissions === void 0 ? void 0 : _query_filters_transmissions.join(","), 1395 fuels: (_query_filters4 = query.filters) === null || _query_filters4 === void 0 ? void 0 : (_query_filters_fuels = _query_filters4.fuels) === null || _query_filters_fuels === void 0 ? void 0 : _query_filters_fuels.join(","), 1396 sort: query.sorting, 1397 addons: (_query_filters5 = query.filters) === null || _query_filters5 === void 0 ? void 0 : (_query_filters_addons = _query_filters5.addons) === null || _query_filters_addons === void 0 ? void 0 : _query_filters_addons.join(","), 1398 seats: (_query_filters6 = query.filters) === null || _query_filters6 === void 0 ? void 0 : (_query_filters_seats = _query_filters6.seats) === null || _query_filters_seats === void 0 ? void 0 : _query_filters_seats.join(","), 1399 types: (_query_filters7 = query.filters) === null || _query_filters7 === void 0 ? void 0 : (_query_filters_vehicleTypes = _query_filters7.vehicleTypes) === null || _query_filters_vehicleTypes === void 0 ? void 0 : _query_filters_vehicleTypes.join(","), 1400 cargoTypes: (_query_filters8 = query.filters) === null || _query_filters8 === void 0 ? void 0 : (_query_filters_cargoTypes = _query_filters8.cargoTypes) === null || _query_filters_cargoTypes === void 0 ? void 0 : _query_filters_cargoTypes.join(","), 1401 hasLiftGate: hasLiftGateEnabled ? "true" : undefined 1402 }; 1403 return Object.fromEntries(Object.entries(serializedQuery).filter((param)=>{ 1404 let [key, value] = param; 1405 if (key === "return" && value === "") { 1406 return true; 1407 } 1408 return !(value === undefined || Array.isArray(value) && value.length === 0 || typeof value === "object" && Object.keys(value).length === 0 || value === ""); 1409 })); 1410}; 1411const __TURBOPACK__default__export__1 = CategoryAvailabilityQuery; 1412__turbopack_context__.s([ 1413 "default", 1414 0, 1415 __TURBOPACK__default__export__1, 1416 "serializeAvailabilityQuery", 1417 0, 1418 serializeAvailabilityQuery, 1419 "serializeAvailabilityQueryAsSearchParams", 1420 0, 1421 serializeAvailabilityQueryAsSearchParams, 1422 "toDutchTime", 1423 0, 1424 toDutchTime 1425], 718580); 1426}), 1427]); 1428 1429//# debugId=106f950b-6f89-8d72-b2ad-249927c7e2a0
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.