"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)/./src/components/CameraCapture.tsx": /*!******************************************!*\ !*** ./src/components/CameraCapture.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 */ CameraCapture; }\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 _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/camera.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check-circle-2.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/upload.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/alert-circle.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/sparkles.js\");\n/* harmony import */ var _services_analyze_bottle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/services/analyze-bottle */ \"(app-pages-browser)/./src/services/analyze-bottle.ts\");\n/* harmony import */ var _services_save_bottle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/services/save-bottle */ \"(app-pages-browser)/./src/services/save-bottle.ts\");\n/* harmony import */ var _lib_supabase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/supabase */ \"(app-pages-browser)/./src/lib/supabase.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nfunction CameraCapture(param) {\n let { onImageCaptured, onAnalysisComplete, onSaveComplete } = param;\n _s();\n const fileInputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [isProcessing, setIsProcessing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isSaving, setIsSaving] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [previewUrl, setPreviewUrl] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [analysisResult, setAnalysisResult] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const handleCapture = async (event)=>{\n var _event_target_files;\n const file = (_event_target_files = event.target.files) === null || _event_target_files === void 0 ? void 0 : _event_target_files[0];\n if (!file) return;\n setIsProcessing(true);\n setError(null);\n setAnalysisResult(null);\n try {\n const compressedBase64 = await compressImage(file);\n setPreviewUrl(compressedBase64);\n if (onImageCaptured) {\n onImageCaptured(compressedBase64);\n }\n const response = await (0,_services_analyze_bottle__WEBPACK_IMPORTED_MODULE_2__.analyzeBottle)(compressedBase64);\n if (response.success && response.data) {\n setAnalysisResult(response.data);\n if (onAnalysisComplete) {\n onAnalysisComplete(response.data);\n }\n } else {\n setError(response.error || \"Analyse fehlgeschlagen.\");\n }\n } catch (err) {\n console.error(\"Processing failed:\", err);\n setError(\"Verarbeitung fehlgeschlagen. Bitte erneut versuchen.\");\n } finally{\n setIsProcessing(false);\n }\n };\n const handleSave = async ()=>{\n if (!analysisResult || !previewUrl) return;\n setIsSaving(true);\n setError(null);\n try {\n // Get current user (simple check for now, can be improved with Auth)\n const { data: { user } } = await _lib_supabase__WEBPACK_IMPORTED_MODULE_4__.supabase.auth.getUser();\n if (!user) {\n throw new Error(\"Bitte melde dich an, um Flaschen zu speichern.\");\n }\n const response = await (0,_services_save_bottle__WEBPACK_IMPORTED_MODULE_3__.saveBottle)(analysisResult, previewUrl, user.id);\n if (response.success) {\n setPreviewUrl(null);\n setAnalysisResult(null);\n if (onSaveComplete) onSaveComplete();\n // Optionale Erfolgsmeldung oder Redirect\n } else {\n setError(response.error || \"Speichern fehlgeschlagen.\");\n }\n } catch (err) {\n console.error(\"Save failed:\", err);\n setError(err instanceof Error ? err.message : \"Speichern fehlgeschlagen.\");\n } finally{\n setIsSaving(false);\n }\n };\n const compressImage = (file)=>{\n return new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (event)=>{\n var _event_target;\n const img = new Image();\n img.src = (_event_target = event.target) === null || _event_target === void 0 ? void 0 : _event_target.result;\n img.onload = ()=>{\n const canvas = document.createElement(\"canvas\");\n const MAX_WIDTH = 1024;\n let width = img.width;\n let height = img.height;\n if (width > MAX_WIDTH) {\n height = height * MAX_WIDTH / width;\n width = MAX_WIDTH;\n }\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Canvas context not available\"));\n return;\n }\n ctx.drawImage(img, 0, 0, width, height);\n const base64 = canvas.toDataURL(\"image/jpeg\", 0.8);\n resolve(base64);\n };\n img.onerror = reject;\n };\n reader.onerror = reject;\n });\n };\n const triggerUpload = ()=>{\n var _fileInputRef_current;\n (_fileInputRef_current = fileInputRef.current) === null || _fileInputRef_current === void 0 ? void 0 : _fileInputRef_current.click();\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-6 w-full max-w-md mx-auto p-6 bg-white dark:bg-zinc-900 rounded-3xl shadow-2xl border border-zinc-200 dark:border-zinc-800 transition-all hover:shadow-whisky-amber/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold text-zinc-800 dark:text-zinc-100 italic\",\n children: \"Magic Shot\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 132,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative group cursor-pointer w-full aspect-square rounded-2xl border-2 border-dashed border-zinc-300 dark:border-zinc-700 overflow-hidden flex items-center justify-center bg-zinc-50 dark:bg-zinc-800/50 hover:border-amber-500 transition-colors\",\n onClick: triggerUpload,\n children: [\n previewUrl ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: previewUrl,\n alt: \"Preview\",\n className: \"w-full h-full object-cover\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 139,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-2 text-zinc-400 group-hover:text-amber-500 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: 48,\n strokeWidth: 1.5\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 142,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium\",\n children: \"Flasche scannen\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 143,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 141,\n columnNumber: 21\n }, this),\n isProcessing && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-12 w-12 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 149,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 148,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 134,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"file\",\n accept: \"image/*\",\n capture: \"environment\",\n ref: fileInputRef,\n onChange: handleCapture,\n className: \"hidden\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 154,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: previewUrl && analysisResult ? handleSave : triggerUpload,\n disabled: isProcessing || isSaving,\n className: \"w-full py-4 px-6 bg-amber-600 hover:bg-amber-700 text-white rounded-xl font-semibold flex items-center justify-center gap-2 transition-all active:scale-[0.98] shadow-lg shadow-amber-600/20 disabled:opacity-50\",\n children: isSaving ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-5 w-5 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 170,\n columnNumber: 25\n }, this),\n \"Wird gespeichert...\"\n ]\n }, void 0, true) : previewUrl && analysisResult ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 175,\n columnNumber: 25\n }, this),\n \"Im Vault speichern\"\n ]\n }, void 0, true) : previewUrl ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 180,\n columnNumber: 25\n }, this),\n \"Neu aufnehmen\"\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 185,\n columnNumber: 25\n }, this),\n \"Kamera \\xf6ffnen\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 163,\n columnNumber: 13\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-red-500 text-sm bg-red-50 dark:bg-red-900/10 p-3 rounded-lg w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 193,\n columnNumber: 21\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 192,\n columnNumber: 17\n }, this),\n previewUrl && !isProcessing && !error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-3 w-full animate-in fade-in slide-in-from-top-4 duration-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-green-500 text-sm bg-green-50 dark:bg-green-900/10 p-3 rounded-lg w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 201,\n columnNumber: 25\n }, this),\n \"Bild erfolgreich analysiert\"\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 200,\n columnNumber: 21\n }, this),\n analysisResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 bg-zinc-50 dark:bg-zinc-800/50 rounded-2xl border border-zinc-200 dark:border-zinc-700\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 mb-3 text-amber-600 dark:text-amber-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: 18\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 208,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold text-sm uppercase tracking-wider\",\n children: \"Ergebnisse\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 209,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 207,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Name:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 213,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.name || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 214,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 212,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Distille:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 217,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.distillery || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 218,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 216,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Kategorie:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 221,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.category || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 222,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 220,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"ABV:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 225,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.abv ? \"\".concat(analysisResult.abv, \"%\") : \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 226,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 224,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 211,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 206,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 199,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 131,\n columnNumber: 9\n }, this);\n}\n_s(CameraCapture, \"wZak9A+cb4xl6YWwbmrwKL83yMo=\");\n_c = CameraCapture;\nvar _c;\n$RefreshReg$(_c, \"CameraCapture\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9jb21wb25lbnRzL0NhbWVyYUNhcHR1cmUudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWdEO0FBQ21DO0FBQ3pCO0FBQ047QUFFVjtBQVEzQixTQUFTVyxjQUFjLEtBQTJFO1FBQTNFLEVBQUVDLGVBQWUsRUFBRUMsa0JBQWtCLEVBQUVDLGNBQWMsRUFBc0IsR0FBM0U7O0lBQ2xDLE1BQU1DLGVBQWVkLDZDQUFNQSxDQUFtQjtJQUM5QyxNQUFNLENBQUNlLGNBQWNDLGdCQUFnQixHQUFHZiwrQ0FBUUEsQ0FBQztJQUNqRCxNQUFNLENBQUNnQixVQUFVQyxZQUFZLEdBQUdqQiwrQ0FBUUEsQ0FBQztJQUN6QyxNQUFNLENBQUNrQixZQUFZQyxjQUFjLEdBQUduQiwrQ0FBUUEsQ0FBZ0I7SUFDNUQsTUFBTSxDQUFDb0IsT0FBT0MsU0FBUyxHQUFHckIsK0NBQVFBLENBQWdCO0lBQ2xELE1BQU0sQ0FBQ3NCLGdCQUFnQkMsa0JBQWtCLEdBQUd2QiwrQ0FBUUEsQ0FBd0I7SUFFNUUsTUFBTXdCLGdCQUFnQixPQUFPQztZQUNaQTtRQUFiLE1BQU1DLFFBQU9ELHNCQUFBQSxNQUFNRSxNQUFNLENBQUNDLEtBQUssY0FBbEJILDBDQUFBQSxtQkFBb0IsQ0FBQyxFQUFFO1FBQ3BDLElBQUksQ0FBQ0MsTUFBTTtRQUVYWCxnQkFBZ0I7UUFDaEJNLFNBQVM7UUFDVEUsa0JBQWtCO1FBRWxCLElBQUk7WUFDQSxNQUFNTSxtQkFBbUIsTUFBTUMsY0FBY0o7WUFDN0NQLGNBQWNVO1lBRWQsSUFBSW5CLGlCQUFpQjtnQkFDakJBLGdCQUFnQm1CO1lBQ3BCO1lBRUEsTUFBTUUsV0FBVyxNQUFNekIsdUVBQWFBLENBQUN1QjtZQUVyQyxJQUFJRSxTQUFTQyxPQUFPLElBQUlELFNBQVNFLElBQUksRUFBRTtnQkFDbkNWLGtCQUFrQlEsU0FBU0UsSUFBSTtnQkFDL0IsSUFBSXRCLG9CQUFvQjtvQkFDcEJBLG1CQUFtQm9C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Q0FBS04sV0FBVTtrREFBNkM7Ozs7Ozs7Ozs7OzswQ0FFakUsOERBQUNEO2dDQUFJQyxXQUFVOztrREFDWCw4REFBQ0Q7d0NBQUlDLFdBQVU7OzBEQUNYLDhEQUFDTTtnREFBS04sV0FBVTswREFBZ0I7Ozs7OzswREFDaEMsOERBQUNNO2dEQUFLTixXQUFVOzBEQUFpQmhELGVBQWUrRCxJQUFJLElBQUk7Ozs7Ozs7Ozs7OztrREFFNUQsOERBQUNoQjt3Q0FBSUMsV0FBVTs7MERBQ1gsOERBQUNNO2dEQUFLTixXQUFVOzBEQUFnQjs7Ozs7OzBEQUNoQyw4REFBQ007Z0RBQUtOLFdBQVU7MERBQWlCaEQsZUFBZWdFLFVBQVUsSUFBSTs7Ozs7Ozs7Ozs7O2tEQUVsRSw4REFBQ2pCO3dDQUFJQyxXQUFVOzswREFDWCw4REFBQ007Z0RBQUtOLFdBQVU7MERBQWdCOzs7Ozs7MERBQ2hDLDhEQUFDTTtnREFBS04sV0FBVTswREFBaUJoRCxlQUFlaUUsUUFBUSxJQUFJOzs7Ozs7Ozs7Ozs7a0RBRWhFLDhEQUFDbEI7d0NBQUlDLFdBQVU7OzBEQUNYLDhEQUFDTTtnREFBS04sV0FBVTswREFBZ0I7Ozs7OzswREFDaEMsOERBQUNNO2dEQUFLTixXQUFVOzBEQUFpQmhELGVBQWVrRSxHQUFHLEdBQUcsR0FBc0IsT0FBbkJsRSxlQUFla0UsR0FBRyxFQUFDLE9BQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNySDtHQTNOd0IvRTtLQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9DYW1lcmFDYXB0dXJlLnRzeD8xYzM0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDYW1lcmEsIFVwbG9hZCwgQ2hlY2tDaXJjbGUyLCBBbGVydENpcmNsZSwgU3BhcmtsZXMgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHsgYW5hbHl6ZUJvdHRsZSB9IGZyb20gJ0Avc2VydmljZXMvYW5hbHl6ZS1ib3R0bGUnO1xuaW1wb3J0IHsgc2F2ZUJvdHRsZSB9IGZyb20gJ0Avc2VydmljZXMvc2F2ZS1ib3R0bGUnO1xuaW1wb3J0IHsgQm90dGxlTWV0YWRhdGEgfSBmcm9tICdAL3R5cGVzL3doaXNreSc7XG5pbXBvcnQgeyBzdXBhYmFzZSB9IGZyb20gJ0AvbGliL3N1cGFiYXNlJztcblxuaW50ZXJmYWNlIENhbWVyYUNhcHR1cmVQcm9wcyB7XG4gICAgb25JbWFnZUNhcHR1cmVkPzogKGJhc2U2NEltYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgb25BbmFseXNpc0NvbXBsZXRlPzogKGRhdGE6IEJvdHRsZU1ldGFkYXRhKSA9PiB2b2lkO1xuICAgIG9uU2F2ZUNvbXBsZXRlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2FtZXJhQ2FwdHVyZSh7IG9uSW1hZ2VDYXB0dXJlZCwgb25BbmFseXNpc0NvbXBsZXRlLCBvblNhdmVDb21wbGV0ZSB9OiBDYW1lcmFDYXB0dXJlUHJvcHMpIHtcbiAgICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2lzUHJvY2Vzc2luZywgc2V0SXNQcm9jZXNzaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNTYXZpbmcsIHNldElzU2F2aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcHJldmlld1VybCwgc2V0UHJldmlld1VybF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFthbmFseXNpc1Jlc3VsdCwgc2V0QW5hbHlzaXNSZXN1bHRdID0gdXNlU3RhdGU8Qm90dGxlTWV0YWRhdGEgfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0IGhhbmRsZUNhcHR1cmUgPSBhc3luYyAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXM/LlswXTtcbiAgICAgICAgaWYgKCFmaWxlKSByZXR1cm47XG5cbiAgICAgICAgc2V0SXNQcm9jZXNzaW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgICAgc2V0QW5hbHlzaXNSZXN1bHQobnVsbCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWRCYXNlNjQgPSBhd2FpdCBjb21wcmVzc0ltYWdlKGZpbGUpO1xuICAgICAgICAgICAgc2V0UHJldmlld1VybChjb21wcmVzc2VkQmFzZTY0KTtcblxuICAgICAgICAgICAgaWYgKG9uSW1hZ2VDYXB0dXJlZCkge1xuICAgICAgICAgICAgICAgIG9uSW1hZ2VDYXB0dXJlZChjb21wcmVzc2VkQmFzZTY0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhbmFseXplQm90dGxlKGNvbXByZXNzZWRCYXNlNjQpO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgc2V0QW5hbHlzaXNSZXN1bHQocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgaWYgKG9uQW5hbHlzaXNDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBvbkFuYWx5c2lzQ29tcGxldGUocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcihyZXNwb25zZS5lcnJvciB8fCAnQW5hbHlzZSBmZWhsZ2VzY2hsYWdlbi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdQcm9jZXNzaW5nIGZhaWxlZDonLCBlcnIpO1xuICAgICAgICAgICAgc2V0RXJyb3IoJ1ZlcmFyYmVpdHVuZyBmZWhsZ2VzY2hsYWdlbi4gQml0dGUgZXJuZXV0IHZlcnN1Y2hlbi4nKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNldElzUHJvY2Vzc2luZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2F2ZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKCFhbmFseXNpc1Jlc3VsdCB8fCAhcHJldmlld1VybCkgcmV0dXJuO1xuXG4gICAgICAgIHNldElzU2F2aW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gR2V0IGN1cnJlbnQgdXNlciAoc2ltcGxlIGNoZWNrIGZvciBub3csIGNhbiBiZSBpbXByb3ZlZCB3aXRoIEF1dGgpXG4gICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgdXNlciB9IH0gPSBhd2FpdCBzdXBhYmFzZS5hdXRoLmdldFVzZXIoKTtcbiAgICAgICAgICAgIGlmICghdXNlcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQml0dGUgbWVsZGUgZGljaCBhbiwgdW0gRmxhc2NoZW4genUgc3BlaWNoZXJuLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNhdmVCb3R0bGUoYW5hbHlzaXNSZXN1bHQsIHByZXZpZXdVcmwsIHVzZXIuaWQpO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHNldFByZXZpZXdVcmwobnVsbCk7XG4gICAgICAgICAgICAgICAgc2V0QW5hbHlzaXNSZXN1bHQobnVsbCk7XG4gICAgICAgICAgICAgICAgaWYgKG9uU2F2ZUNvbXBsZXRlKSBvblNhdmVDb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIC8vIE9wdGlvbmFsZSBFcmZvbGdzbWVsZHVuZyBvZGVyIFJlZGlyZWN0XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldEVycm9yKHJlc3BvbnNlLmVycm9yIHx8ICdTcGVpY2hlcm4gZmVobGdlc2NobGFnZW4uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignU2F2ZSBmYWlsZWQ6JywgZXJyKTtcbiAgICAgICAgICAgIHNldEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnU3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2VuLicpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgc2V0SXNTYXZpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbXByZXNzSW1hZ2UgPSAoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICAgICAgaW1nLnNyYyA9IGV2ZW50LnRhcmdldD8ucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgTUFYX1dJRFRIID0gMTAyNDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaGVpZ2h0ID0gaW1nLmhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGggPiBNQVhfV0lEVEgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCA9IChoZWlnaHQgKiBNQVhfV0lEVEgpIC8gd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IE1BWF9XSURUSDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWN0eCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ2FudmFzIGNvbnRleHQgbm90IGF2YWlsYWJsZScpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDAuOCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYmFzZTY0KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGltZy5vbmVycm9yID0gcmVqZWN0O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gcmVqZWN0O1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgdHJpZ2dlclVwbG9hZCA9ICgpID0+IHtcbiAgICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKCk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTYgdy1mdWxsIG1heC13LW1kIG14LWF1dG8gcC02IGJnLXdoaXRlIGRhcms6YmctemluYy05MDAgcm91bmRlZC0zeGwgc2hhZG93LTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtMjAwIGRhcms6Ym9yZGVyLXppbmMtODAwIHRyYW5zaXRpb24tYWxsIGhvdmVyOnNoYWRvdy13aGlza3ktYW1iZXIvMjBcIj5cbiAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC16aW5jLTgwMCBkYXJrOnRleHQtemluYy0xMDAgaXRhbGljXCI+TWFnaWMgU2hvdDwvaDI+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBncm91cCBjdXJzb3ItcG9pbnRlciB3LWZ1bGwgYXNwZWN0LXNxdWFyZSByb3VuZGVkLTJ4bCBib3JkZXItMiBib3JkZXItZGFzaGVkIGJvcmRlci16aW5jLTMwMCBkYXJrOmJvcmRlci16aW5jLTcwMCBvdmVyZmxvdy1oaWRkZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctemluYy01MCBkYXJrOmJnLXppbmMtODAwLzUwIGhvdmVyOmJvcmRlci1hbWJlci01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJVcGxvYWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3ByZXZpZXdVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtwcmV2aWV3VXJsfSBhbHQ9XCJQcmV2aWV3XCIgY2xhc3NOYW1lPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXJcIiAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC16aW5jLTQwMCBncm91cC1ob3Zlcjp0ZXh0LWFtYmVyLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENhbWVyYSBzaXplPXs0OH0gc3Ryb2tlV2lkdGg9ezEuNX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW1cIj5GbGFzY2hlIHNjYW5uZW48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7aXNQcm9jZXNzaW5nICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzUwIGJhY2tkcm9wLWJsdXItc20gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluIHJvdW5kZWQtZnVsbCBoLTEyIHctMTIgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKlwiXG4gICAgICAgICAgICAgICAgY2FwdHVyZT1cImVudmlyb25tZW50XCJcbiAgICAgICAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2FwdHVyZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3ByZXZpZXdVcmwgJiYgYW5hbHlzaXNSZXN1bHQgPyBoYW5kbGVTYXZlIDogdHJpZ2dlclVwbG9hZH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNQcm9jZXNzaW5nIHx8IGlzU2F2aW5nfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweS00IHB4LTYgYmctYW1iZXItNjAwIGhvdmVyOmJnLWFtYmVyLTcwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgZm9udC1zZW1pYm9sZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiB0cmFuc2l0aW9uLWFsbCBhY3RpdmU6c2NhbGUtWzAuOThdIHNoYWRvdy1sZyBzaGFkb3ctYW1iZXItNjAwLzIwIGRpc2FibGVkOm9wYWNpdHktNTBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpc1NhdmluZyA/IChcbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluIHJvdW5kZWQtZnVsbCBoLTUgdy01IGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBXaXJkIGdlc3BlaWNoZXJ0Li4uXG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICkgOiBwcmV2aWV3VXJsICYmIGFuYWx5c2lzUmVzdWx0ID8gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlMiBzaXplPXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIEltIFZhdWx0IHNwZWljaGVyblxuICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApIDogcHJldmlld1VybCA/IChcbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxVcGxvYWQgc2l6ZT17MjB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICBOZXUgYXVmbmVobWVuXG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2FtZXJhIHNpemU9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgS2FtZXJhIMO2ZmZuZW5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICB7ZXJyb3IgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1yZWQtNTAwIHRleHQtc20gYmctcmVkLTUwIGRhcms6YmctcmVkLTkwMC8xMCBwLTMgcm91bmRlZC1sZyB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPEFsZXJ0Q2lyY2xlIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7cHJldmlld1VybCAmJiAhaXNQcm9jZXNzaW5nICYmICFlcnJvciAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHctZnVsbCBhbmltYXRlLWluIGZhZGUtaW4gc2xpZGUtaW4tZnJvbS10b3AtNCBkdXJhdGlvbi01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LWdyZWVuLTUwMCB0ZXh0LXNtIGJnLWdyZWVuLTUwIGRhcms6YmctZ3JlZW4tOTAwLzEwIHAtMyByb3VuZGVkLWxnIHctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlMiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJpbGQgZXJmb2xncmVpY2ggYW5hbHlzaWVydFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICB7YW5hbHlzaXNSZXN1bHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTQgYmctemluYy01MCBkYXJrOmJnLXppbmMtODAwLzUwIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy03MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTMgdGV4dC1hbWJlci02MDAgZGFyazp0ZXh0LWFtYmVyLTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3BhcmtsZXMgc2l6ZT17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtYm9sZCB0ZXh0LXNtIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPkVyZ2Vibmlzc2U8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwXCI+TmFtZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkXCI+e2FuYWx5c2lzUmVzdWx0Lm5hbWUgfHwgJy0nfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC16aW5jLTUwMFwiPkRpc3RpbGxlOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57YW5hbHlzaXNSZXN1bHQuZGlzdGlsbGVyeSB8fCAnLSd9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwXCI+S2F0ZWdvcmllOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57YW5hbHlzaXNSZXN1bHQuY2F0ZWdvcnkgfHwgJy0nfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC16aW5jLTUwMFwiPkFCVjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkXCI+e2FuYWx5c2lzUmVzdWx0LmFidiA/IGAke2FuYWx5c2lzUmVzdWx0LmFidn0lYCA6ICctJ308L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJDYW1lcmEiLCJVcGxvYWQiLCJDaGVja0NpcmNsZTIiLCJBbGVydENpcmNsZSIsIlNwYXJrbGVzIiwiYW5hbHl6ZUJvdHRsZSIsInNhdmVCb3R0bGUiLCJzdXBhYmFzZSIsIkNhbWVyYUNhcHR1cmUiLCJvbkltYWdlQ2FwdHVyZWQiLCJvbkFuYWx5c2lzQ29tcGxldGUiLCJvblNhdmVDb21wbGV0ZSIsImZpbGVJbnB1dFJlZiIsImlzUHJvY2Vzc2luZyIsInNldElzUHJvY2Vzc2luZyIsImlzU2F2aW5nIiwic2V0SXNTYXZpbmciLCJwcmV2aWV3VXJsIiwic2V0UHJldmlld1VybCIsImVycm9yIiwic2V0RXJyb3IiLCJhbmFseXNpc1Jlc3VsdCIsInNldEFuYWx5c2lzUmVzdWx0IiwiaGFuZGxlQ2FwdHVyZSIsImV2ZW50IiwiZmlsZSIsInRhcmdldCIsImZpbGVzIiwiY29tcHJlc3NlZEJhc2U2NCIsImNvbXByZXNzSW1hZ2UiLCJyZXNwb25zZSIsInN1Y2Nlc3MiLCJkYXRhIiwiZXJyIiwiY29uc29sZSIsImhhbmRsZVNhdmUiLCJ1c2VyIiwiYXV0aCIsImdldFVzZXIiLCJFcnJvciIsImlkIiwibWVzc2FnZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJpbWciLCJJbWFnZSIsInNyYyIsInJlc3VsdCIsImNhbnZhcyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIk1BWF9XSURUSCIsIndpZHRoIiwiaGVpZ2h0IiwiY3R4IiwiZ2V0Q29udGV4dCIsImRyYXdJbWFnZSIsImJhc2U2NCIsInRvRGF0YVVSTCIsIm9uZXJyb3IiLCJ0cmlnZ2VyVXBsb2FkIiwiY3VycmVudCIsImNsaWNrIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDIiLCJvbkNsaWNrIiwiYWx0Iiwic2l6ZSIsInN0cm9rZVdpZHRoIiwic3BhbiIsImlucHV0IiwidHlwZSIsImFjY2VwdCIsImNhcHR1cmUiLCJyZWYiLCJvbkNoYW5nZSIsImJ1dHRvbiIsImRpc2FibGVkIiwibmFtZSIsImRpc3RpbGxlcnkiLCJjYXRlZ29yeSIsImFidiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/components/CameraCapture.tsx\n")); /***/ }) });