1 line
44 KiB
JSON
1 line
44 KiB
JSON
{"ast":null,"code":"var _jsxFileName = \"/home/gnx/Desktop/gnx-mail/frontend/src/pages/EmailDetail.js\",\n _s = $RefreshSig$();\nimport React from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { useQuery, useMutation, useQueryClient } from 'react-query';\nimport { ArrowLeft, Reply, Forward, Trash2, Archive, Star, MoreVertical, Paperclip, Clock, User } from 'lucide-react';\nimport { api, endpoints } from '../services/api';\nimport LoadingSpinner from '../components/LoadingSpinner';\nimport toast from 'react-hot-toast';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst EmailDetail = () => {\n _s();\n const {\n id\n } = useParams();\n const navigate = useNavigate();\n const queryClient = useQueryClient();\n const {\n data: email,\n isLoading\n } = useQuery(['email', id], () => api.get(endpoints.emailDetail(id)).then(res => res.data), {\n onSuccess: data => {\n // Mark as read when opened\n if (!data.is_read) {\n markAsReadMutation.mutate(id);\n }\n }\n });\n const markAsReadMutation = useMutation(emailId => api.patch(endpoints.emailDetail(emailId), {\n is_read: true\n }), {\n onSuccess: () => {\n queryClient.invalidateQueries(['emails']);\n queryClient.invalidateQueries(['email', id]);\n }\n });\n const starMutation = useMutation(({\n emailId,\n isStarred\n }) => api.patch(endpoints.emailDetail(emailId), {\n is_starred: !isStarred\n }), {\n onSuccess: () => {\n queryClient.invalidateQueries(['emails']);\n queryClient.invalidateQueries(['email', id]);\n toast.success('Email updated');\n }\n });\n const deleteMutation = useMutation(emailId => api.delete(endpoints.emailDetail(emailId)), {\n onSuccess: () => {\n toast.success('Email deleted');\n navigate('/inbox');\n }\n });\n const formatDate = dateString => {\n const date = new Date(dateString);\n return date.toLocaleString();\n };\n const handleStar = () => {\n starMutation.mutate({\n emailId: id,\n isStarred: email.is_starred\n });\n };\n const handleDelete = () => {\n if (window.confirm('Are you sure you want to delete this email?')) {\n deleteMutation.mutate(id);\n }\n };\n const handleReply = () => {\n navigate(`/compose?reply=${id}`);\n };\n const handleForward = () => {\n navigate(`/compose?forward=${id}`);\n };\n if (isLoading) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-center h-64\",\n children: /*#__PURE__*/_jsxDEV(LoadingSpinner, {\n size: \"lg\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 7\n }, this);\n }\n if (!email) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-center py-12\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Email not found\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"mt-1 text-sm text-gray-500\",\n children: \"The email you're looking for doesn't exist or has been deleted.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => navigate('/inbox'),\n className: \"mt-4 btn-primary\",\n children: \"Back to Inbox\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-w-4xl mx-auto space-y-6\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-between\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => navigate('/inbox'),\n className: \"text-gray-400 hover:text-gray-600\",\n children: /*#__PURE__*/_jsxDEV(ArrowLeft, {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-2xl font-bold text-gray-900\",\n children: \"Email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleStar,\n className: `p-2 rounded-md hover:bg-gray-100 ${email.is_starred ? 'text-yellow-500' : 'text-gray-400'}`,\n children: /*#__PURE__*/_jsxDEV(Star, {\n className: `h-5 w-5 ${email.is_starred ? 'fill-current' : ''}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleReply,\n className: \"p-2 rounded-md hover:bg-gray-100 text-gray-400\",\n children: /*#__PURE__*/_jsxDEV(Reply, {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleForward,\n className: \"p-2 rounded-md hover:bg-gray-100 text-gray-400\",\n children: /*#__PURE__*/_jsxDEV(Forward, {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleDelete,\n className: \"p-2 rounded-md hover:bg-gray-100 text-gray-400 hover:text-red-500\",\n children: /*#__PURE__*/_jsxDEV(Trash2, {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"p-2 rounded-md hover:bg-gray-100 text-gray-400\",\n children: /*#__PURE__*/_jsxDEV(MoreVertical, {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-4\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: email.subject\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-start space-x-3\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-shrink-0\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-10 w-10 rounded-full bg-gray-300 flex items-center justify-center\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-sm font-medium text-gray-700\",\n children: email.from_email.charAt(0).toUpperCase()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-1 min-w-0\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-between\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm font-medium text-gray-900\",\n children: email.from_email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center text-sm text-gray-500\",\n children: [/*#__PURE__*/_jsxDEV(Clock, {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 23\n }, this), formatDate(email.sent_at || email.created_at)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [email.priority === 'high' && /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"badge-danger\",\n children: \"High Priority\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 23\n }, this), email.priority === 'low' && /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"badge-gray\",\n children: \"Low Priority\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 23\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-2\",\n children: [email.to_emails && email.to_emails.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center text-sm\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-500 w-12\",\n children: \"To:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-900\",\n children: email.to_emails.join(', ')\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 17\n }, this), email.cc_emails && email.cc_emails.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center text-sm\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-500 w-12\",\n children: \"Cc:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-900\",\n children: email.cc_emails.join(', ')\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 17\n }, this), email.bcc_emails && email.bcc_emails.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center text-sm\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-500 w-12\",\n children: \"Bcc:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-900\",\n children: email.bcc_emails.join(', ')\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-body\",\n children: [email.attachments && email.attachments.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mb-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"text-sm font-medium text-gray-900 mb-3\",\n children: \"Attachments\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-2\",\n children: email.attachments.map(attachment => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-3 p-3 bg-gray-50 rounded-md\",\n children: [/*#__PURE__*/_jsxDEV(Paperclip, {\n className: \"h-4 w-4 text-gray-400\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-1\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm font-medium text-gray-900\",\n children: attachment.filename\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-xs text-gray-500\",\n children: [(attachment.size / 1024).toFixed(1), \" KB\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 23\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"text-sm text-primary-600 hover:text-primary-500\",\n children: \"Download\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 21\n }, this)]\n }, attachment.id, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"prose max-w-none\",\n children: email.body_html ? /*#__PURE__*/_jsxDEV(\"div\", {\n dangerouslySetInnerHTML: {\n __html: email.body_html\n },\n className: \"text-gray-900\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 15\n }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"whitespace-pre-wrap text-gray-900\",\n children: email.body_text\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-center space-x-4\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleReply,\n className: \"btn-primary\",\n children: [/*#__PURE__*/_jsxDEV(Reply, {\n className: \"h-4 w-4 mr-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 11\n }, this), \"Reply\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleForward,\n className: \"btn-secondary\",\n children: [/*#__PURE__*/_jsxDEV(Forward, {\n className: \"h-4 w-4 mr-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 11\n }, this), \"Forward\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleDelete,\n className: \"btn-danger\",\n children: [/*#__PURE__*/_jsxDEV(Trash2, {\n className: \"h-4 w-4 mr-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 11\n }, this), \"Delete\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n};\n_s(EmailDetail, \"8+LoJ+wc717RWZQQ4vrhM9d1CCU=\", false, function () {\n return [useParams, useNavigate, useQueryClient, useQuery, useMutation, useMutation, useMutation];\n});\n_c = EmailDetail;\nexport default EmailDetail;\nvar _c;\n$RefreshReg$(_c, \"EmailDetail\");","map":{"version":3,"names":["React","useParams","useNavigate","useQuery","useMutation","useQueryClient","ArrowLeft","Reply","Forward","Trash2","Archive","Star","MoreVertical","Paperclip","Clock","User","api","endpoints","LoadingSpinner","toast","jsxDEV","_jsxDEV","EmailDetail","_s","id","navigate","queryClient","data","email","isLoading","get","emailDetail","then","res","onSuccess","is_read","markAsReadMutation","mutate","emailId","patch","invalidateQueries","starMutation","isStarred","is_starred","success","deleteMutation","delete","formatDate","dateString","date","Date","toLocaleString","handleStar","handleDelete","window","confirm","handleReply","handleForward","className","children","size","fileName","_jsxFileName","lineNumber","columnNumber","onClick","subject","from_email","charAt","toUpperCase","sent_at","created_at","priority","to_emails","length","join","cc_emails","bcc_emails","attachments","map","attachment","filename","toFixed","body_html","dangerouslySetInnerHTML","__html","body_text","_c","$RefreshReg$"],"sources":["/home/gnx/Desktop/gnx-mail/frontend/src/pages/EmailDetail.js"],"sourcesContent":["import React from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { useQuery, useMutation, useQueryClient } from 'react-query';\nimport { \n ArrowLeft, \n Reply, \n Forward, \n Trash2, \n Archive, \n Star, \n MoreVertical,\n Paperclip,\n Clock,\n User\n} from 'lucide-react';\nimport { api, endpoints } from '../services/api';\nimport LoadingSpinner from '../components/LoadingSpinner';\nimport toast from 'react-hot-toast';\n\nconst EmailDetail = () => {\n const { id } = useParams();\n const navigate = useNavigate();\n const queryClient = useQueryClient();\n\n const { data: email, isLoading } = useQuery(\n ['email', id],\n () => api.get(endpoints.emailDetail(id)).then(res => res.data),\n {\n onSuccess: (data) => {\n // Mark as read when opened\n if (!data.is_read) {\n markAsReadMutation.mutate(id);\n }\n },\n }\n );\n\n const markAsReadMutation = useMutation(\n (emailId) => api.patch(endpoints.emailDetail(emailId), { is_read: true }),\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['emails']);\n queryClient.invalidateQueries(['email', id]);\n },\n }\n );\n\n const starMutation = useMutation(\n ({ emailId, isStarred }) => \n api.patch(endpoints.emailDetail(emailId), { is_starred: !isStarred }),\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['emails']);\n queryClient.invalidateQueries(['email', id]);\n toast.success('Email updated');\n },\n }\n );\n\n const deleteMutation = useMutation(\n (emailId) => api.delete(endpoints.emailDetail(emailId)),\n {\n onSuccess: () => {\n toast.success('Email deleted');\n navigate('/inbox');\n },\n }\n );\n\n const formatDate = (dateString) => {\n const date = new Date(dateString);\n return date.toLocaleString();\n };\n\n const handleStar = () => {\n starMutation.mutate({ emailId: id, isStarred: email.is_starred });\n };\n\n const handleDelete = () => {\n if (window.confirm('Are you sure you want to delete this email?')) {\n deleteMutation.mutate(id);\n }\n };\n\n const handleReply = () => {\n navigate(`/compose?reply=${id}`);\n };\n\n const handleForward = () => {\n navigate(`/compose?forward=${id}`);\n };\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <LoadingSpinner size=\"lg\" />\n </div>\n );\n }\n\n if (!email) {\n return (\n <div className=\"text-center py-12\">\n <h3 className=\"text-lg font-medium text-gray-900\">Email not found</h3>\n <p className=\"mt-1 text-sm text-gray-500\">\n The email you're looking for doesn't exist or has been deleted.\n </p>\n <button\n onClick={() => navigate('/inbox')}\n className=\"mt-4 btn-primary\"\n >\n Back to Inbox\n </button>\n </div>\n );\n }\n\n return (\n <div className=\"max-w-4xl mx-auto space-y-6\">\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center space-x-4\">\n <button\n onClick={() => navigate('/inbox')}\n className=\"text-gray-400 hover:text-gray-600\"\n >\n <ArrowLeft className=\"h-5 w-5\" />\n </button>\n <h2 className=\"text-2xl font-bold text-gray-900\">Email</h2>\n </div>\n <div className=\"flex items-center space-x-2\">\n <button\n onClick={handleStar}\n className={`p-2 rounded-md hover:bg-gray-100 ${\n email.is_starred ? 'text-yellow-500' : 'text-gray-400'\n }`}\n >\n <Star className={`h-5 w-5 ${email.is_starred ? 'fill-current' : ''}`} />\n </button>\n <button\n onClick={handleReply}\n className=\"p-2 rounded-md hover:bg-gray-100 text-gray-400\"\n >\n <Reply className=\"h-5 w-5\" />\n </button>\n <button\n onClick={handleForward}\n className=\"p-2 rounded-md hover:bg-gray-100 text-gray-400\"\n >\n <Forward className=\"h-5 w-5\" />\n </button>\n <button\n onClick={handleDelete}\n className=\"p-2 rounded-md hover:bg-gray-100 text-gray-400 hover:text-red-500\"\n >\n <Trash2 className=\"h-5 w-5\" />\n </button>\n <button className=\"p-2 rounded-md hover:bg-gray-100 text-gray-400\">\n <MoreVertical className=\"h-5 w-5\" />\n </button>\n </div>\n </div>\n\n {/* Email Content */}\n <div className=\"card\">\n <div className=\"card-header\">\n <div className=\"space-y-4\">\n {/* Subject */}\n <h3 className=\"text-lg font-medium text-gray-900\">{email.subject}</h3>\n \n {/* Sender Info */}\n <div className=\"flex items-start space-x-3\">\n <div className=\"flex-shrink-0\">\n <div className=\"h-10 w-10 rounded-full bg-gray-300 flex items-center justify-center\">\n <span className=\"text-sm font-medium text-gray-700\">\n {email.from_email.charAt(0).toUpperCase()}\n </span>\n </div>\n </div>\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-900\">\n {email.from_email}\n </p>\n <div className=\"flex items-center text-sm text-gray-500\">\n <Clock className=\"h-4 w-4 mr-1\" />\n {formatDate(email.sent_at || email.created_at)}\n </div>\n </div>\n <div className=\"flex items-center space-x-2\">\n {email.priority === 'high' && (\n <span className=\"badge-danger\">High Priority</span>\n )}\n {email.priority === 'low' && (\n <span className=\"badge-gray\">Low Priority</span>\n )}\n </div>\n </div>\n </div>\n </div>\n\n {/* Recipients */}\n <div className=\"space-y-2\">\n {email.to_emails && email.to_emails.length > 0 && (\n <div className=\"flex items-center text-sm\">\n <span className=\"text-gray-500 w-12\">To:</span>\n <span className=\"text-gray-900\">{email.to_emails.join(', ')}</span>\n </div>\n )}\n {email.cc_emails && email.cc_emails.length > 0 && (\n <div className=\"flex items-center text-sm\">\n <span className=\"text-gray-500 w-12\">Cc:</span>\n <span className=\"text-gray-900\">{email.cc_emails.join(', ')}</span>\n </div>\n )}\n {email.bcc_emails && email.bcc_emails.length > 0 && (\n <div className=\"flex items-center text-sm\">\n <span className=\"text-gray-500 w-12\">Bcc:</span>\n <span className=\"text-gray-900\">{email.bcc_emails.join(', ')}</span>\n </div>\n )}\n </div>\n </div>\n </div>\n\n <div className=\"card-body\">\n {/* Attachments */}\n {email.attachments && email.attachments.length > 0 && (\n <div className=\"mb-6\">\n <h4 className=\"text-sm font-medium text-gray-900 mb-3\">Attachments</h4>\n <div className=\"space-y-2\">\n {email.attachments.map((attachment) => (\n <div key={attachment.id} className=\"flex items-center space-x-3 p-3 bg-gray-50 rounded-md\">\n <Paperclip className=\"h-4 w-4 text-gray-400\" />\n <div className=\"flex-1\">\n <p className=\"text-sm font-medium text-gray-900\">{attachment.filename}</p>\n <p className=\"text-xs text-gray-500\">\n {(attachment.size / 1024).toFixed(1)} KB\n </p>\n </div>\n <button className=\"text-sm text-primary-600 hover:text-primary-500\">\n Download\n </button>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Email Body */}\n <div className=\"prose max-w-none\">\n {email.body_html ? (\n <div \n dangerouslySetInnerHTML={{ __html: email.body_html }}\n className=\"text-gray-900\"\n />\n ) : (\n <div className=\"whitespace-pre-wrap text-gray-900\">\n {email.body_text}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Actions */}\n <div className=\"flex items-center justify-center space-x-4\">\n <button\n onClick={handleReply}\n className=\"btn-primary\"\n >\n <Reply className=\"h-4 w-4 mr-2\" />\n Reply\n </button>\n <button\n onClick={handleForward}\n className=\"btn-secondary\"\n >\n <Forward className=\"h-4 w-4 mr-2\" />\n Forward\n </button>\n <button\n onClick={handleDelete}\n className=\"btn-danger\"\n >\n <Trash2 className=\"h-4 w-4 mr-2\" />\n Delete\n </button>\n </div>\n </div>\n );\n};\n\nexport default EmailDetail;\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,WAAW,QAAQ,kBAAkB;AACzD,SAASC,QAAQ,EAAEC,WAAW,EAAEC,cAAc,QAAQ,aAAa;AACnE,SACEC,SAAS,EACTC,KAAK,EACLC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,YAAY,EACZC,SAAS,EACTC,KAAK,EACLC,IAAI,QACC,cAAc;AACrB,SAASC,GAAG,EAAEC,SAAS,QAAQ,iBAAiB;AAChD,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,KAAK,MAAM,iBAAiB;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAEpC,MAAMC,WAAW,GAAGA,CAAA,KAAM;EAAAC,EAAA;EACxB,MAAM;IAAEC;EAAG,CAAC,GAAGvB,SAAS,CAAC,CAAC;EAC1B,MAAMwB,QAAQ,GAAGvB,WAAW,CAAC,CAAC;EAC9B,MAAMwB,WAAW,GAAGrB,cAAc,CAAC,CAAC;EAEpC,MAAM;IAAEsB,IAAI,EAAEC,KAAK;IAAEC;EAAU,CAAC,GAAG1B,QAAQ,CACzC,CAAC,OAAO,EAAEqB,EAAE,CAAC,EACb,MAAMR,GAAG,CAACc,GAAG,CAACb,SAAS,CAACc,WAAW,CAACP,EAAE,CAAC,CAAC,CAACQ,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACN,IAAI,CAAC,EAC9D;IACEO,SAAS,EAAGP,IAAI,IAAK;MACnB;MACA,IAAI,CAACA,IAAI,CAACQ,OAAO,EAAE;QACjBC,kBAAkB,CAACC,MAAM,CAACb,EAAE,CAAC;MAC/B;IACF;EACF,CACF,CAAC;EAED,MAAMY,kBAAkB,GAAGhC,WAAW,CACnCkC,OAAO,IAAKtB,GAAG,CAACuB,KAAK,CAACtB,SAAS,CAACc,WAAW,CAACO,OAAO,CAAC,EAAE;IAAEH,OAAO,EAAE;EAAK,CAAC,CAAC,EACzE;IACED,SAAS,EAAEA,CAAA,KAAM;MACfR,WAAW,CAACc,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;MACzCd,WAAW,CAACc,iBAAiB,CAAC,CAAC,OAAO,EAAEhB,EAAE,CAAC,CAAC;IAC9C;EACF,CACF,CAAC;EAED,MAAMiB,YAAY,GAAGrC,WAAW,CAC9B,CAAC;IAAEkC,OAAO;IAAEI;EAAU,CAAC,KACrB1B,GAAG,CAACuB,KAAK,CAACtB,SAAS,CAACc,WAAW,CAACO,OAAO,CAAC,EAAE;IAAEK,UAAU,EAAE,CAACD;EAAU,CAAC,CAAC,EACvE;IACER,SAAS,EAAEA,CAAA,KAAM;MACfR,WAAW,CAACc,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;MACzCd,WAAW,CAACc,iBAAiB,CAAC,CAAC,OAAO,EAAEhB,EAAE,CAAC,CAAC;MAC5CL,KAAK,CAACyB,OAAO,CAAC,eAAe,CAAC;IAChC;EACF,CACF,CAAC;EAED,MAAMC,cAAc,GAAGzC,WAAW,CAC/BkC,OAAO,IAAKtB,GAAG,CAAC8B,MAAM,CAAC7B,SAAS,CAACc,WAAW,CAACO,OAAO,CAAC,CAAC,EACvD;IACEJ,SAAS,EAAEA,CAAA,KAAM;MACff,KAAK,CAACyB,OAAO,CAAC,eAAe,CAAC;MAC9BnB,QAAQ,CAAC,QAAQ,CAAC;IACpB;EACF,CACF,CAAC;EAED,MAAMsB,UAAU,GAAIC,UAAU,IAAK;IACjC,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,UAAU,CAAC;IACjC,OAAOC,IAAI,CAACE,cAAc,CAAC,CAAC;EAC9B,CAAC;EAED,MAAMC,UAAU,GAAGA,CAAA,KAAM;IACvBX,YAAY,CAACJ,MAAM,CAAC;MAAEC,OAAO,EAAEd,EAAE;MAAEkB,SAAS,EAAEd,KAAK,CAACe;IAAW,CAAC,CAAC;EACnE,CAAC;EAED,MAAMU,YAAY,GAAGA,CAAA,KAAM;IACzB,IAAIC,MAAM,CAACC,OAAO,CAAC,6CAA6C,CAAC,EAAE;MACjEV,cAAc,CAACR,MAAM,CAACb,EAAE,CAAC;IAC3B;EACF,CAAC;EAED,MAAMgC,WAAW,GAAGA,CAAA,KAAM;IACxB/B,QAAQ,CAAC,kBAAkBD,EAAE,EAAE,CAAC;EAClC,CAAC;EAED,MAAMiC,aAAa,GAAGA,CAAA,KAAM;IAC1BhC,QAAQ,CAAC,oBAAoBD,EAAE,EAAE,CAAC;EACpC,CAAC;EAED,IAAIK,SAAS,EAAE;IACb,oBACER,OAAA;MAAKqC,SAAS,EAAC,uCAAuC;MAAAC,QAAA,eACpDtC,OAAA,CAACH,cAAc;QAAC0C,IAAI,EAAC;MAAI;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACzB,CAAC;EAEV;EAEA,IAAI,CAACpC,KAAK,EAAE;IACV,oBACEP,OAAA;MAAKqC,SAAS,EAAC,mBAAmB;MAAAC,QAAA,gBAChCtC,OAAA;QAAIqC,SAAS,EAAC,mCAAmC;QAAAC,QAAA,EAAC;MAAe;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACtE3C,OAAA;QAAGqC,SAAS,EAAC,4BAA4B;QAAAC,QAAA,EAAC;MAE1C;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAG,CAAC,eACJ3C,OAAA;QACE4C,OAAO,EAAEA,CAAA,KAAMxC,QAAQ,CAAC,QAAQ,CAAE;QAClCiC,SAAS,EAAC,kBAAkB;QAAAC,QAAA,EAC7B;MAED;QAAAE,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACN,CAAC;EAEV;EAEA,oBACE3C,OAAA;IAAKqC,SAAS,EAAC,6BAA6B;IAAAC,QAAA,gBAE1CtC,OAAA;MAAKqC,SAAS,EAAC,mCAAmC;MAAAC,QAAA,gBAChDtC,OAAA;QAAKqC,SAAS,EAAC,6BAA6B;QAAAC,QAAA,gBAC1CtC,OAAA;UACE4C,OAAO,EAAEA,CAAA,KAAMxC,QAAQ,CAAC,QAAQ,CAAE;UAClCiC,SAAS,EAAC,mCAAmC;UAAAC,QAAA,eAE7CtC,OAAA,CAACf,SAAS;YAACoD,SAAS,EAAC;UAAS;YAAAG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC3B,CAAC,eACT3C,OAAA;UAAIqC,SAAS,EAAC,kCAAkC;UAAAC,QAAA,EAAC;QAAK;UAAAE,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACxD,CAAC,eACN3C,OAAA;QAAKqC,SAAS,EAAC,6BAA6B;QAAAC,QAAA,gBAC1CtC,OAAA;UACE4C,OAAO,EAAEb,UAAW;UACpBM,SAAS,EAAE,oCACT9B,KAAK,CAACe,UAAU,GAAG,iBAAiB,GAAG,eAAe,EACrD;UAAAgB,QAAA,eAEHtC,OAAA,CAACV,IAAI;YAAC+C,SAAS,EAAE,WAAW9B,KAAK,CAACe,UAAU,GAAG,cAAc,GAAG,EAAE;UAAG;YAAAkB,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAClE,CAAC,eACT3C,OAAA;UACE4C,OAAO,EAAET,WAAY;UACrBE,SAAS,EAAC,gDAAgD;UAAAC,QAAA,eAE1DtC,OAAA,CAACd,KAAK;YAACmD,SAAS,EAAC;UAAS;YAAAG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACvB,CAAC,eACT3C,OAAA;UACE4C,OAAO,EAAER,aAAc;UACvBC,SAAS,EAAC,gDAAgD;UAAAC,QAAA,eAE1DtC,OAAA,CAACb,OAAO;YAACkD,SAAS,EAAC;UAAS;YAAAG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACzB,CAAC,eACT3C,OAAA;UACE4C,OAAO,EAAEZ,YAAa;UACtBK,SAAS,EAAC,mEAAmE;UAAAC,QAAA,eAE7EtC,OAAA,CAACZ,MAAM;YAACiD,SAAS,EAAC;UAAS;YAAAG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACxB,CAAC,eACT3C,OAAA;UAAQqC,SAAS,EAAC,gDAAgD;UAAAC,QAAA,eAChEtC,OAAA,CAACT,YAAY;YAAC8C,SAAS,EAAC;UAAS;YAAAG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAE;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC9B,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACN,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH,CAAC,eAGN3C,OAAA;MAAKqC,SAAS,EAAC,MAAM;MAAAC,QAAA,gBACnBtC,OAAA;QAAKqC,SAAS,EAAC,aAAa;QAAAC,QAAA,eAC1BtC,OAAA;UAAKqC,SAAS,EAAC,WAAW;UAAAC,QAAA,gBAExBtC,OAAA;YAAIqC,SAAS,EAAC,mCAAmC;YAAAC,QAAA,EAAE/B,KAAK,CAACsC;UAAO;YAAAL,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAK,CAAC,eAGtE3C,OAAA;YAAKqC,SAAS,EAAC,4BAA4B;YAAAC,QAAA,gBACzCtC,OAAA;cAAKqC,SAAS,EAAC,eAAe;cAAAC,QAAA,eAC5BtC,OAAA;gBAAKqC,SAAS,EAAC,qEAAqE;gBAAAC,QAAA,eAClFtC,OAAA;kBAAMqC,SAAS,EAAC,mCAAmC;kBAAAC,QAAA,EAChD/B,KAAK,CAACuC,UAAU,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC;gBAAC;kBAAAR,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OACrC;cAAC;gBAAAH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OACJ;YAAC;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACH,CAAC,eACN3C,OAAA;cAAKqC,SAAS,EAAC,gBAAgB;cAAAC,QAAA,eAC7BtC,OAAA;gBAAKqC,SAAS,EAAC,mCAAmC;gBAAAC,QAAA,gBAChDtC,OAAA;kBAAAsC,QAAA,gBACEtC,OAAA;oBAAGqC,SAAS,EAAC,mCAAmC;oBAAAC,QAAA,EAC7C/B,KAAK,CAACuC;kBAAU;oBAAAN,QAAA,EAAAC,YAAA;oBAAAC,UAAA;oBAAAC,YAAA;kBAAA,OAChB,CAAC,eACJ3C,OAAA;oBAAKqC,SAAS,EAAC,yCAAyC;oBAAAC,QAAA,gBACtDtC,OAAA,CAACP,KAAK;sBAAC4C,SAAS,EAAC;oBAAc;sBAAAG,QAAA,EAAAC,YAAA;sBAAAC,UAAA;sBAAAC,YAAA;oBAAA,OAAE,CAAC,EACjCjB,UAAU,CAACnB,KAAK,CAAC0C,OAAO,IAAI1C,KAAK,CAAC2C,UAAU,CAAC;kBAAA;oBAAAV,QAAA,EAAAC,YAAA;oBAAAC,UAAA;oBAAAC,YAAA;kBAAA,OAC3C,CAAC;gBAAA;kBAAAH,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OACH,CAAC,eACN3C,OAAA;kBAAKqC,SAAS,EAAC,6BAA6B;kBAAAC,QAAA,GACzC/B,KAAK,CAAC4C,QAAQ,KAAK,MAAM,iBACxBnD,OAAA;oBAAMqC,SAAS,EAAC,cAAc;oBAAAC,QAAA,EAAC;kBAAa;oBAAAE,QAAA,EAAAC,YAAA;oBAAAC,UAAA;oBAAAC,YAAA;kBAAA,OAAM,CACnD,EACApC,KAAK,CAAC4C,QAAQ,KAAK,KAAK,iBACvBnD,OAAA;oBAAMqC,SAAS,EAAC,YAAY;oBAAAC,QAAA,EAAC;kBAAY;oBAAAE,QAAA,EAAAC,YAAA;oBAAAC,UAAA;oBAAAC,YAAA;kBAAA,OAAM,CAChD;gBAAA;kBAAAH,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OACE,CAAC;cAAA;gBAAAH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OACH;YAAC;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACH,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACH,CAAC,eAGN3C,OAAA;YAAKqC,SAAS,EAAC,WAAW;YAAAC,QAAA,GACvB/B,KAAK,CAAC6C,SAAS,IAAI7C,KAAK,CAAC6C,SAAS,CAACC,MAAM,GAAG,CAAC,iBAC5CrD,OAAA;cAAKqC,SAAS,EAAC,2BAA2B;cAAAC,QAAA,gBACxCtC,OAAA;gBAAMqC,SAAS,EAAC,oBAAoB;gBAAAC,QAAA,EAAC;cAAG;gBAAAE,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAM,CAAC,eAC/C3C,OAAA;gBAAMqC,SAAS,EAAC,eAAe;gBAAAC,QAAA,EAAE/B,KAAK,CAAC6C,SAAS,CAACE,IAAI,CAAC,IAAI;cAAC;gBAAAd,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAO,CAAC;YAAA;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAChE,CACN,EACApC,KAAK,CAACgD,SAAS,IAAIhD,KAAK,CAACgD,SAAS,CAACF,MAAM,GAAG,CAAC,iBAC5CrD,OAAA;cAAKqC,SAAS,EAAC,2BAA2B;cAAAC,QAAA,gBACxCtC,OAAA;gBAAMqC,SAAS,EAAC,oBAAoB;gBAAAC,QAAA,EAAC;cAAG;gBAAAE,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAM,CAAC,eAC/C3C,OAAA;gBAAMqC,SAAS,EAAC,eAAe;gBAAAC,QAAA,EAAE/B,KAAK,CAACgD,SAAS,CAACD,IAAI,CAAC,IAAI;cAAC;gBAAAd,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAO,CAAC;YAAA;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAChE,CACN,EACApC,KAAK,CAACiD,UAAU,IAAIjD,KAAK,CAACiD,UAAU,CAACH,MAAM,GAAG,CAAC,iBAC9CrD,OAAA;cAAKqC,SAAS,EAAC,2BAA2B;cAAAC,QAAA,gBACxCtC,OAAA;gBAAMqC,SAAS,EAAC,oBAAoB;gBAAAC,QAAA,EAAC;cAAI;gBAAAE,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAM,CAAC,eAChD3C,OAAA;gBAAMqC,SAAS,EAAC,eAAe;gBAAAC,QAAA,EAAE/B,KAAK,CAACiD,UAAU,CAACF,IAAI,CAAC,IAAI;cAAC;gBAAAd,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAO,CAAC;YAAA;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACjE,CACN;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACE,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CAAC,eAEN3C,OAAA;QAAKqC,SAAS,EAAC,WAAW;QAAAC,QAAA,GAEvB/B,KAAK,CAACkD,WAAW,IAAIlD,KAAK,CAACkD,WAAW,CAACJ,MAAM,GAAG,CAAC,iBAChDrD,OAAA;UAAKqC,SAAS,EAAC,MAAM;UAAAC,QAAA,gBACnBtC,OAAA;YAAIqC,SAAS,EAAC,wCAAwC;YAAAC,QAAA,EAAC;UAAW;YAAAE,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAI,CAAC,eACvE3C,OAAA;YAAKqC,SAAS,EAAC,WAAW;YAAAC,QAAA,EACvB/B,KAAK,CAACkD,WAAW,CAACC,GAAG,CAAEC,UAAU,iBAChC3D,OAAA;cAAyBqC,SAAS,EAAC,uDAAuD;cAAAC,QAAA,gBACxFtC,OAAA,CAACR,SAAS;gBAAC6C,SAAS,EAAC;cAAuB;gBAAAG,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAE,CAAC,eAC/C3C,OAAA;gBAAKqC,SAAS,EAAC,QAAQ;gBAAAC,QAAA,gBACrBtC,OAAA;kBAAGqC,SAAS,EAAC,mCAAmC;kBAAAC,QAAA,EAAEqB,UAAU,CAACC;gBAAQ;kBAAApB,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAI,CAAC,eAC1E3C,OAAA;kBAAGqC,SAAS,EAAC,uBAAuB;kBAAAC,QAAA,GACjC,CAACqB,UAAU,CAACpB,IAAI,GAAG,IAAI,EAAEsB,OAAO,CAAC,CAAC,CAAC,EAAC,KACvC;gBAAA;kBAAArB,QAAA,EAAAC,YAAA;kBAAAC,UAAA;kBAAAC,YAAA;gBAAA,OAAG,CAAC;cAAA;gBAAAH,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OACD,CAAC,eACN3C,OAAA;gBAAQqC,SAAS,EAAC,iDAAiD;gBAAAC,QAAA,EAAC;cAEpE;gBAAAE,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAQ,CAAC;YAAA,GAVDgB,UAAU,CAACxD,EAAE;cAAAqC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAWlB,CACN;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH,CACN,eAGD3C,OAAA;UAAKqC,SAAS,EAAC,kBAAkB;UAAAC,QAAA,EAC9B/B,KAAK,CAACuD,SAAS,gBACd9D,OAAA;YACE+D,uBAAuB,EAAE;cAAEC,MAAM,EAAEzD,KAAK,CAACuD;YAAU,CAAE;YACrDzB,SAAS,EAAC;UAAe;YAAAG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAC1B,CAAC,gBAEF3C,OAAA;YAAKqC,SAAS,EAAC,mCAAmC;YAAAC,QAAA,EAC/C/B,KAAK,CAAC0D;UAAS;YAAAzB,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACb;QACN;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACE,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH,CAAC,eAGN3C,OAAA;MAAKqC,SAAS,EAAC,4CAA4C;MAAAC,QAAA,gBACzDtC,OAAA;QACE4C,OAAO,EAAET,WAAY;QACrBE,SAAS,EAAC,aAAa;QAAAC,QAAA,gBAEvBtC,OAAA,CAACd,KAAK;UAACmD,SAAS,EAAC;QAAc;UAAAG,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAC,SAEpC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACT3C,OAAA;QACE4C,OAAO,EAAER,aAAc;QACvBC,SAAS,EAAC,eAAe;QAAAC,QAAA,gBAEzBtC,OAAA,CAACb,OAAO;UAACkD,SAAS,EAAC;QAAc;UAAAG,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAC,WAEtC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACT3C,OAAA;QACE4C,OAAO,EAAEZ,YAAa;QACtBK,SAAS,EAAC,YAAY;QAAAC,QAAA,gBAEtBtC,OAAA,CAACZ,MAAM;UAACiD,SAAS,EAAC;QAAc;UAAAG,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAE,CAAC,UAErC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACN,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACH,CAAC;AAEV,CAAC;AAACzC,EAAA,CAjRID,WAAW;EAAA,QACArB,SAAS,EACPC,WAAW,EACRG,cAAc,EAECF,QAAQ,EAahBC,WAAW,EAUjBA,WAAW,EAYTA,WAAW;AAAA;AAAAmF,EAAA,GAxC9BjE,WAAW;AAmRjB,eAAeA,WAAW;AAAC,IAAAiE,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |