Files
holiday-travel-app/.next/static/webpack/app/page.ad6fb492805dd11d.hot-update.js

22 lines
62 KiB
JavaScript

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("app/page",{
/***/ "(app-pages-browser)/./app/page.tsx":
/*!**********************!*\
!*** ./app/page.tsx ***!
\**********************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Page; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/Section */ \"(app-pages-browser)/./components/Section.tsx\");\n/* harmony import */ var _components_DealCard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/DealCard */ \"(app-pages-browser)/./components/DealCard.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction Page() {\n _s();\n const [origin, setOrigin] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"YOW\");\n const [dest, setDest] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"CUN,PUJ,MBJ\");\n const [startDate, setStartDate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Date().toISOString().slice(0, 10));\n const [endDate, setEndDate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Date(Date.now() + 1000 * 60 * 60 * 24 * 60).toISOString().slice(0, 10));\n const [minN, setMinN] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(5);\n const [maxN, setMaxN] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(9);\n const [budget, setBudget] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [nonStop, setNonStop] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [results, setResults] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [useDeals, setUseDeals] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [useSky, setUseSky] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [useG, setUseG] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [useAC, setUseAC] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [useAT, setUseAT] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n async function onSubmit(e) {\n e.preventDefault();\n setLoading(true);\n setResults([]);\n const payload = {\n origin: origin.trim().toUpperCase(),\n destinations: dest.split(\",\").map((s)=>s.trim().toUpperCase()).filter(Boolean),\n startDate,\n endDate,\n tripLengthMin: Number(minN),\n tripLengthMax: Number(maxN),\n budget: budget === \"\" ? null : Number(budget),\n currency: \"CAD\",\n nonStopOnly: nonStop,\n sources: [\n useDeals ? \"Deals\" : \"\",\n useSky ? \"Skyscanner\" : \"\",\n useG ? \"GoogleFlights\" : \"\",\n useAC ? \"AirCanada\" : \"\"\n ].filter(Boolean)\n };\n const res = await fetch(\"/api/search\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\"\n },\n body: JSON.stringify(payload)\n });\n const data = await res.json();\n // Sort by destination, then by source/provider\n const sorted = (data.results || []).sort((a, b)=>{\n // First sort by destination\n const destCompare = (a.destination || \"\").localeCompare(b.destination || \"\");\n if (destCompare !== 0) return destCompare;\n // Then by source/provider\n return (a.source || \"\").localeCompare(b.source || \"\");\n });\n setResults(sorted);\n setLoading(false);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Section__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: \"Your trip idea\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n className: \"grid md:grid-cols-4 gap-4\",\n onSubmit: onSubmit,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"From (IATA)\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 71,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n className: \"input\",\n value: origin,\n onChange: (e)=>setOrigin(e.target.value.toUpperCase()),\n maxLength: 4,\n placeholder: \"YOW\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 72,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 70,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:col-span-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"To (IATA, comma-separated)\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 75,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n className: \"input\",\n value: dest,\n onChange: (e)=>setDest(e.target.value),\n placeholder: \"CUN,PUJ,MBJ\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 76,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 74,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Start date\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 79,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"input\",\n value: startDate,\n onChange: (e)=>setStartDate(e.target.value)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 78,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"End date\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 83,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"input\",\n value: endDate,\n onChange: (e)=>setEndDate(e.target.value)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 84,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 82,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Trip length (min)\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 87,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n className: \"input\",\n value: minN,\n onChange: (e)=>setMinN(Number(e.target.value)),\n min: 1\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 88,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 86,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Trip length (max)\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n className: \"input\",\n value: maxN,\n onChange: (e)=>setMaxN(Number(e.target.value)),\n min: minN\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 92,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 90,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Budget (CAD)\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 95,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n className: \"input\",\n value: budget,\n onChange: (e)=>setBudget(e.target.value === \"\" ? \"\" : Number(e.target.value))\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 96,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 94,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-end gap-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"inline-flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: nonStop,\n onChange: (e)=>setNonStop(e.target.checked)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 100,\n columnNumber: 15\n }, this),\n \"Non-stop only\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 99,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 98,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:col-span-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Sources\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 105,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"inline-flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: useDeals,\n onChange: (e)=>setUseDeals(e.target.checked)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 107,\n columnNumber: 65\n }, this),\n \" Deal sites (YOW/YYZ/YUL/etc.)\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 107,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"inline-flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: useSky,\n onChange: (e)=>setUseSky(e.target.checked)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 108,\n columnNumber: 65\n }, this),\n \" Skyscanner links\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 108,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"inline-flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: useG,\n onChange: (e)=>setUseG(e.target.checked)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 109,\n columnNumber: 65\n }, this),\n \" Google Flights links\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 109,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"inline-flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: useAC,\n onChange: (e)=>setUseAC(e.target.checked)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 110,\n columnNumber: 65\n }, this),\n \" Air Canada links\"\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 110,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 106,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 104,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:col-span-4 flex gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn\",\n type: \"submit\",\n disabled: loading,\n children: loading ? \"Searching...\" : \"Search deals & dates\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 114,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn\",\n type: \"button\",\n onClick: ()=>{\n localStorage.setItem(\"lastSearch\", JSON.stringify({\n origin,\n dest,\n startDate,\n endDate,\n minN,\n maxN,\n budget,\n nonStop,\n useDeals,\n useSky,\n useG,\n useAC\n }));\n alert(\"Saved to this browser.\");\n },\n children: \"Save search\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 115,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn\",\n type: \"button\",\n onClick: ()=>{\n const raw = localStorage.getItem(\"lastSearch\");\n if (raw) {\n const s = JSON.parse(raw);\n setOrigin(s.origin);\n setDest(s.dest);\n setStartDate(s.startDate);\n setEndDate(s.endDate);\n setMinN(s.minN);\n setMaxN(s.maxN);\n setBudget(s.budget);\n setNonStop(s.nonStop);\n setUseDeals(s.useDeals);\n setUseSky(s.useSky);\n setUseG(s.useG);\n setUseAC(s.useAC);\n } else alert(\"No saved search found.\");\n },\n children: \"Load last\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 119,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 113,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 69,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 68,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Section__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: \"Results\",\n children: [\n !loading && results.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"opacity-70\",\n children: \"No results yet. Fill the form and hit search.\"\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 136,\n columnNumber: 11\n }, this),\n results.length > 0 && (()=>{\n // Group by destination\n const grouped = {};\n results.forEach((r)=>{\n const dest = r.destination || \"Unknown\";\n if (!grouped[dest]) grouped[dest] = [];\n grouped[dest].push(r);\n });\n return Object.keys(grouped).sort().map((destination)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold mb-4 border-b border-slate-300 dark:border-slate-700 pb-2\",\n children: destination\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 149,\n columnNumber: 15\n }, this),\n (()=>{\n // Group by source/provider within this destination\n const bySource = {};\n grouped[destination].forEach((r)=>{\n const src = r.source || \"Other\";\n if (!bySource[src]) bySource[src] = [];\n bySource[src].push(r);\n });\n return Object.keys(bySource).sort().map((source)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-sm font-semibold mb-3 text-slate-600 dark:text-slate-400 uppercase tracking-wide\",\n children: source\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 163,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid md:grid-cols-2 gap-4\",\n children: bySource[source].map((r)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_DealCard__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n deal: r\n }, r.id, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 167,\n columnNumber: 57\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 166,\n columnNumber: 21\n }, this)\n ]\n }, source, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 162,\n columnNumber: 19\n }, this));\n })()\n ]\n }, destination, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 148,\n columnNumber: 13\n }, this));\n })()\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 134,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\Projects\\\\Dev\\\\Holiday Travel App\\\\app\\\\page.tsx\",\n lineNumber: 67,\n columnNumber: 5\n }, this);\n}\n_s(Page, \"+JSL4vWMYmG0qI5j6at7NZ/ledQ=\");\n_c = Page;\nvar _c;\n$RefreshReg$(_c, \"Page\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QkFDckMsOERBQUNPO2dDQUFzQkgsV0FBVTs7a0RBQy9CLDhEQUFDOEI7d0NBQUc5QixXQUFVO2tEQUNYSjs7Ozs7O29DQUVEO3dDQUNBLG1EQUFtRDt3Q0FDbkQsTUFBTW1DLFdBQWtDLENBQUM7d0NBQ3pDUCxPQUFPLENBQUM1QixZQUFZLENBQUM2QixPQUFPLENBQUMsQ0FBQ0M7NENBQzVCLE1BQU1NLE1BQU1OLEVBQUU1QixNQUFNLElBQUk7NENBQ3hCLElBQUksQ0FBQ2lDLFFBQVEsQ0FBQ0MsSUFBSSxFQUFFRCxRQUFRLENBQUNDLElBQUksR0FBRyxFQUFFOzRDQUN0Q0QsUUFBUSxDQUFDQyxJQUFJLENBQUNMLElBQUksQ0FBQ0Q7d0NBQ3JCO3dDQUVBLE9BQU9FLE9BQU9DLElBQUksQ0FBQ0UsVUFBVXZDLElBQUksR0FBR3BCLEdBQUcsQ0FBQzBCLENBQUFBLHVCQUN0Qyw4REFBQ0s7Z0RBQWlCSCxXQUFVOztrRUFDMUIsOERBQUNpQzt3REFBR2pDLFdBQVU7a0VBQ1hGOzs7Ozs7a0VBRUgsOERBQUNLO3dEQUFJSCxXQUFVO2tFQUNaK0IsUUFBUSxDQUFDakMsT0FBTyxDQUFDMUIsR0FBRyxDQUFDLENBQUNzRCxrQkFBVyw4REFBQ2xHLDREQUFRQTtnRUFBWTBHLE1BQU1SOytEQUFaQSxFQUFFUyxFQUFFOzs7Ozs7Ozs7OzsrQ0FML0NyQzs7Ozs7b0NBU2Q7OytCQXZCUUY7Ozs7O29CQTBCZDs7Ozs7Ozs7Ozs7OztBQUlSO0dBdkt3Qm5FO0tBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9wYWdlLnRzeD83NjAzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTZWN0aW9uIGZyb20gXCJAL2NvbXBvbmVudHMvU2VjdGlvblwiO1xuaW1wb3J0IERlYWxDYXJkIGZyb20gXCJAL2NvbXBvbmVudHMvRGVhbENhcmRcIjtcblxudHlwZSBSZXN1bHQgPSB7XG4gIHJlc3VsdHM6IGFueVtdXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICBjb25zdCBbb3JpZ2luLCBzZXRPcmlnaW5dID0gdXNlU3RhdGUoXCJZT1dcIik7XG4gIGNvbnN0IFtkZXN0LCBzZXREZXN0XSA9IHVzZVN0YXRlKFwiQ1VOLFBVSixNQkpcIik7XG4gIGNvbnN0IFtzdGFydERhdGUsIHNldFN0YXJ0RGF0ZV0gPSB1c2VTdGF0ZShuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwxMCkpO1xuICBjb25zdCBbZW5kRGF0ZSwgc2V0RW5kRGF0ZV0gPSB1c2VTdGF0ZShuZXcgRGF0ZShEYXRlLm5vdygpICsgMTAwMCo2MCo2MCoyNCo2MCkudG9JU09TdHJpbmcoKS5zbGljZSgwLDEwKSk7XG4gIGNvbnN0IFttaW5OLCBzZXRNaW5OXSA9IHVzZVN0YXRlKDUpO1xuICBjb25zdCBbbWF4Tiwgc2V0TWF4Tl0gPSB1c2VTdGF0ZSg5KTtcbiAgY29uc3QgW2J1ZGdldCwgc2V0QnVkZ2V0XSA9IHVzZVN0YXRlPG51bWJlciB8ICcnPignJyk7XG4gIGNvbnN0IFtub25TdG9wLCBzZXROb25TdG9wXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcmVzdWx0cywgc2V0UmVzdWx0c10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbdXNlRGVhbHMsIHNldFVzZURlYWxzXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbdXNlU2t5LCBzZXRVc2VTa3ldID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFt1c2VHLCBzZXRVc2VHXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbdXNlQUMsIHNldFVzZUFDXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbdXNlQVQsIHNldFVzZUFUXSA9IHVzZVN0YXRlKHRydWUpO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIG9uU3VibWl0KGU6IFJlYWN0LkZvcm1FdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgIHNldFJlc3VsdHMoW10pO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIG9yaWdpbjogb3JpZ2luLnRyaW0oKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgZGVzdGluYXRpb25zOiBkZXN0LnNwbGl0KCcsJykubWFwKHMgPT4gcy50cmltKCkudG9VcHBlckNhc2UoKSkuZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgc3RhcnREYXRlLCBlbmREYXRlLFxuICAgICAgdHJpcExlbmd0aE1pbjogTnVtYmVyKG1pbk4pLCB0cmlwTGVuZ3RoTWF4OiBOdW1iZXIobWF4TiksXG4gICAgICBidWRnZXQ6IGJ1ZGdldCA9PT0gJycgPyBudWxsIDogTnVtYmVyKGJ1ZGdldCksXG4gICAgICBjdXJyZW5jeTogXCJDQURcIixcbiAgICAgIG5vblN0b3BPbmx5OiBub25TdG9wLFxuICAgICAgc291cmNlczogW1xuICAgICAgICB1c2VEZWFscyA/IFwiRGVhbHNcIiA6IFwiXCIsXG4gICAgICAgIHVzZVNreSA/IFwiU2t5c2Nhbm5lclwiIDogXCJcIixcbiAgICAgICAgdXNlRyA/IFwiR29vZ2xlRmxpZ2h0c1wiIDogXCJcIixcbiAgICAgICAgdXNlQUMgPyBcIkFpckNhbmFkYVwiIDogXCJcIlxuICAgICAgXS5maWx0ZXIoQm9vbGVhbilcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goXCIvYXBpL3NlYXJjaFwiLCB7IG1ldGhvZDogXCJQT1NUXCIsIGhlYWRlcnM6IHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkgfSk7XG4gICAgY29uc3QgZGF0YTogUmVzdWx0ID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICBcbiAgICAvLyBTb3J0IGJ5IGRlc3RpbmF0aW9uLCB0aGVuIGJ5IHNvdXJjZS9wcm92aWRlclxuICAgIGNvbnN0IHNvcnRlZCA9IChkYXRhLnJlc3VsdHMgfHwgW10pLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAvLyBGaXJzdCBzb3J0IGJ5IGRlc3RpbmF0aW9uXG4gICAgICBjb25zdCBkZXN0Q29tcGFyZSA9IChhLmRlc3RpbmF0aW9uIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuZGVzdGluYXRpb24gfHwgJycpO1xuICAgICAgaWYgKGRlc3RDb21wYXJlICE9PSAwKSByZXR1cm4gZGVzdENvbXBhcmU7XG4gICAgICBcbiAgICAgIC8vIFRoZW4gYnkgc291cmNlL3Byb3ZpZGVyXG4gICAgICByZXR1cm4gKGEuc291cmNlIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuc291cmNlIHx8ICcnKTtcbiAgICB9KTtcbiAgICBcbiAgICBzZXRSZXN1bHRzKHNvcnRlZCk7XG4gICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxtYWluIGNsYXNzTmFtZT1cInNwYWNlLXktNlwiPlxuICAgICAgPFNlY3Rpb24gdGl0bGU9XCJZb3VyIHRyaXAgaWRlYVwiPlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJncmlkIG1kOmdyaWQtY29scy00IGdhcC00XCIgb25TdWJtaXQ9e29uU3VibWl0fT5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+RnJvbSAoSUFUQSk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzTmFtZT1cImlucHV0XCIgdmFsdWU9e29yaWdpbn0gb25DaGFuZ2U9e2U9PnNldE9yaWdpbihlLnRhcmdldC52YWx1ZS50b1VwcGVyQ2FzZSgpKX0gbWF4TGVuZ3RoPXs0fSBwbGFjZWhvbGRlcj1cIllPV1wiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpjb2wtc3Bhbi0zXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5UbyAoSUFUQSwgY29tbWEtc2VwYXJhdGVkKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3NOYW1lPVwiaW5wdXRcIiB2YWx1ZT17ZGVzdH0gb25DaGFuZ2U9e2U9PnNldERlc3QoZS50YXJnZXQudmFsdWUpfSBwbGFjZWhvbGRlcj1cIkNVTixQVUosTUJKXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+U3RhcnQgZGF0ZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGVcIiBjbGFzc05hbWU9XCJpbnB1dFwiIHZhbHVlPXtzdGFydERhdGV9IG9uQ2hhbmdlPXtlPT5zZXRTdGFydERhdGUoZS50YXJnZXQudmFsdWUpfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5FbmQgZGF0ZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGVcIiBjbGFzc05hbWU9XCJpbnB1dFwiIHZhbHVlPXtlbmREYXRlfSBvbkNoYW5nZT17ZT0+c2V0RW5kRGF0ZShlLnRhcmdldC52YWx1ZSl9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPlRyaXAgbGVuZ3RoIChtaW4pPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3NOYW1lPVwiaW5wdXRcIiB2YWx1ZT17bWluTn0gb25DaGFuZ2U9e2U9PnNldE1pbk4oTnVtYmVyKGUudGFyZ2V0LnZhbHVlKSl9IG1pbj17MX0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+VHJpcCBsZW5ndGggKG1heCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzc05hbWU9XCJpbnB1dFwiIHZhbHVlPXttYXhOfSBvbkNoYW5nZT17ZT0+c2V0TWF4TihOdW1iZXIoZS50YXJnZXQudmFsdWUpKX0gbWluPXttaW5OfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5CdWRnZXQgKENBRCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzc05hbWU9XCJpbnB1dFwiIHZhbHVlPXtidWRnZXR9IG9uQ2hhbmdlPXtlPT5zZXRCdWRnZXQoZS50YXJnZXQudmFsdWUgPT09ICcnID8gJycgOiBOdW1iZXIoZS50YXJnZXQudmFsdWUpKX0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtZW5kIGdhcC0zXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjaGVja2VkPXtub25TdG9wfSBvbkNoYW5nZT17ZT0+c2V0Tm9uU3RvcChlLnRhcmdldC5jaGVja2VkKX0gLz5cbiAgICAgICAgICAgICAgTm9uLXN0b3Agb25seVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1kOmNvbC1zcGFuLTRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPlNvdXJjZXM8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBnYXAtM1wiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQ9e3VzZURlYWxzfSBvbkNoYW5nZT17ZT0+c2V0VXNlRGVhbHMoZS50YXJnZXQuY2hlY2tlZCl9IC8+IERlYWwgc2l0ZXMgKFlPVy9ZWVovWVVML2V0Yy4pPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjaGVja2VkPXt1c2VTa3l9IG9uQ2hhbmdlPXtlPT5zZXRVc2VTa3koZS50YXJnZXQuY2hlY2tlZCl9IC8+IFNreXNjYW5uZXIgbGlua3M8L2xhYmVsPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQ9e3VzZUd9IG9uQ2hhbmdlPXtlPT5zZXRVc2VHKGUudGFyZ2V0LmNoZWNrZWQpfSAvPiBHb29nbGUgRmxpZ2h0cyBsaW5rczwvbGFiZWw+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZD17dXNlQUN9IG9uQ2hhbmdlPXtlPT5zZXRVc2VBQyhlLnRhcmdldC5jaGVja2VkKX0gLz4gQWlyIENhbmFkYSBsaW5rczwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1kOmNvbC1zcGFuLTQgZmxleCBnYXAtM1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG5cIiB0eXBlPVwic3VibWl0XCIgZGlzYWJsZWQ9e2xvYWRpbmd9Pntsb2FkaW5nID8gXCJTZWFyY2hpbmcuLi5cIiA6IFwiU2VhcmNoIGRlYWxzICYgZGF0ZXNcIn08L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuXCIgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpPT57XG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibGFzdFNlYXJjaFwiLCBKU09OLnN0cmluZ2lmeSh7b3JpZ2luLGRlc3Qsc3RhcnREYXRlLGVuZERhdGUsbWluTixtYXhOLGJ1ZGdldCxub25TdG9wLHVzZURlYWxzLHVzZVNreSx1c2VHLHVzZUFDfSkpO1xuICAgICAgICAgICAgICBhbGVydChcIlNhdmVkIHRvIHRoaXMgYnJvd3Nlci5cIik7XG4gICAgICAgICAgICB9fT5TYXZlIHNlYXJjaDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG5cIiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCk9PntcbiAgICAgICAgICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYXN0U2VhcmNoXCIpO1xuICAgICAgICAgICAgICBpZiAocmF3KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IEpTT04ucGFyc2UocmF3KTtcbiAgICAgICAgICAgICAgICBzZXRPcmlnaW4ocy5vcmlnaW4pOyBzZXREZXN0KHMuZGVzdCk7XG4gICAgICAgICAgICAgICAgc2V0U3RhcnREYXRlKHMuc3RhcnREYXRlKTsgc2V0RW5kRGF0ZShzLmVuZERhdGUpO1xuICAgICAgICAgICAgICAgIHNldE1pbk4ocy5taW5OKTsgc2V0TWF4TihzLm1heE4pO1xuICAgICAgICAgICAgICAgIHNldEJ1ZGdldChzLmJ1ZGdldCk7IHNldE5vblN0b3Aocy5ub25TdG9wKTtcbiAgICAgICAgICAgICAgICBzZXRVc2VEZWFscyhzLnVzZURlYWxzKTsgc2V0VXNlU2t5KHMudXNlU2t5KTsgc2V0VXNlRyhzLnVzZUcpOyBzZXRVc2VBQyhzLnVzZUFDKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGFsZXJ0KFwiTm8gc2F2ZWQgc2VhcmNoIGZvdW5kLlwiKTtcbiAgICAgICAgICAgIH19PkxvYWQgbGFzdDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L1NlY3Rpb24+XG5cbiAgICAgIDxTZWN0aW9uIHRpdGxlPVwiUmVzdWx0c1wiPlxuICAgICAgICB7IWxvYWRpbmcgJiYgcmVzdWx0cy5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BhY2l0eS03MFwiPk5vIHJlc3VsdHMgeWV0LiBGaWxsIHRoZSBmb3JtIGFuZCBoaXQgc2VhcmNoLjwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cmVzdWx0cy5sZW5ndGggPiAwICYmICgoKSA9PiB7XG4gICAgICAgICAgLy8gR3JvdXAgYnkgZGVzdGluYXRpb25cbiAgICAgICAgICBjb25zdCBncm91cGVkOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcbiAgICAgICAgICByZXN1bHRzLmZvckVhY2goKHI6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGVzdCA9IHIuZGVzdGluYXRpb24gfHwgJ1Vua25vd24nO1xuICAgICAgICAgICAgaWYgKCFncm91cGVkW2Rlc3RdKSBncm91cGVkW2Rlc3RdID0gW107XG4gICAgICAgICAgICBncm91cGVkW2Rlc3RdLnB1c2gocik7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgXG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGdyb3VwZWQpLnNvcnQoKS5tYXAoZGVzdGluYXRpb24gPT4gKFxuICAgICAgICAgICAgPGRpdiBrZXk9e2Rlc3RpbmF0aW9ufSBjbGFzc05hbWU9XCJtYi04XCI+XG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi00IGJvcmRlci1iIGJvcmRlci1zbGF0ZS0zMDAgZGFyazpib3JkZXItc2xhdGUtNzAwIHBiLTJcIj5cbiAgICAgICAgICAgICAgICB7ZGVzdGluYXRpb259XG4gICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEdyb3VwIGJ5IHNvdXJjZS9wcm92aWRlciB3aXRoaW4gdGhpcyBkZXN0aW5hdGlvblxuICAgICAgICAgICAgICAgIGNvbnN0IGJ5U291cmNlOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcbiAgICAgICAgICAgICAgICBncm91cGVkW2Rlc3RpbmF0aW9uXS5mb3JFYWNoKChyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNyYyA9IHIuc291cmNlIHx8ICdPdGhlcic7XG4gICAgICAgICAgICAgICAgICBpZiAoIWJ5U291cmNlW3NyY10pIGJ5U291cmNlW3NyY10gPSBbXTtcbiAgICAgICAgICAgICAgICAgIGJ5U291cmNlW3NyY10ucHVzaChyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoYnlTb3VyY2UpLnNvcnQoKS5tYXAoc291cmNlID0+IChcbiAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtzb3VyY2V9IGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCBtYi0zIHRleHQtc2xhdGUtNjAwIGRhcms6dGV4dC1zbGF0ZS00MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7c291cmNlfVxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgbWQ6Z3JpZC1jb2xzLTIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7YnlTb3VyY2Vbc291cmNlXS5tYXAoKHI6IGFueSkgPT4gPERlYWxDYXJkIGtleT17ci5pZH0gZGVhbD17cn0gLz4pfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSk7XG4gICAgICAgIH0pKCl9XG4gICAgICA8L1NlY3Rpb24+XG4gICAgPC9tYWluPlxuICApO1xufVxuIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwiU2VjdGlvbiIsIkRlYWxDYXJkIiwiUGFnZSIsIm9yaWdpbiIsInNldE9yaWdpbiIsImRlc3QiLCJzZXREZXN0Iiwic3RhcnREYXRlIiwic2V0U3RhcnREYXRlIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwic2xpY2UiLCJlbmREYXRlIiwic2V0RW5kRGF0ZSIsIm5vdyIsIm1pbk4iLCJzZXRNaW5OIiwibWF4TiIsInNldE1heE4iLCJidWRnZXQiLCJzZXRCdWRnZXQiLCJub25TdG9wIiwic2V0Tm9uU3RvcCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwicmVzdWx0cyIsInNldFJlc3VsdHMiLCJ1c2VEZWFscyIsInNldFVzZURlYWxzIiwidXNlU2t5Iiwic2V0VXNlU2t5IiwidXNlRyIsInNldFVzZUciLCJ1c2VBQyIsInNldFVzZUFDIiwidXNlQVQiLCJzZXRVc2VBVCIsIm9uU3VibWl0IiwiZSIsInByZXZlbnREZWZhdWx0IiwicGF5bG9hZCIsInRyaW0iLCJ0b1VwcGVyQ2FzZSIsImRlc3RpbmF0aW9ucyIsInNwbGl0IiwibWFwIiwicyIsImZpbHRlciIsIkJvb2xlYW4iLCJ0cmlwTGVuZ3RoTWluIiwiTnVtYmVyIiwidHJpcExlbmd0aE1heCIsImN1cnJlbmN5Iiwibm9uU3RvcE9ubHkiLCJzb3VyY2VzIiwicmVzIiwiZmV0Y2giLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJkYXRhIiwianNvbiIsInNvcnRlZCIsInNvcnQiLCJhIiwiYiIsImRlc3RDb21wYXJlIiwiZGVzdGluYXRpb24iLCJsb2NhbGVDb21wYXJlIiwic291cmNlIiwibWFpbiIsImNsYXNzTmFtZSIsInRpdGxlIiwiZm9ybSIsImRpdiIsImxhYmVsIiwiaW5wdXQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwidGFyZ2V0IiwibWF4TGVuZ3RoIiwicGxhY2Vob2xkZXIiLCJ0eXBlIiwibWluIiwiY2hlY2tlZCIsImJ1dHRvbiIsImRpc2FibGVkIiwib25DbGljayIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJhbGVydCIsInJhdyIsImdldEl0ZW0iLCJwYXJzZSIsImxlbmd0aCIsImdyb3VwZWQiLCJmb3JFYWNoIiwiciIsInB1c2giLCJPYmplY3QiLCJrZXlzIiwiaDMiLCJieVNvdXJjZSIsInNyYyIsImg0IiwiZGVhbCIsImlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/page.tsx\n"));
/***/ })
});