{"version":3,"file":"app.js","mappings":"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","sources":["webpack://terra/webpack/runtime/chunk loaded","webpack://terra/webpack/runtime/create fake namespace object","webpack://terra/webpack/runtime/load script","webpack://terra/./client/components/elements/DialodYesNo.tsx","webpack://terra/./client/services/token.tsx","webpack://terra/./client/components/Header.tsx","webpack://terra/./client/components/elements/ListAndView.tsx","webpack://terra/./client/components/map/GeoJson.tsx","webpack://terra/./client/components/map/MarkerIcon.tsx","webpack://terra/./client/components/map/OpenStreetMaps.tsx","webpack://terra/./client/components/field/List.tsx","webpack://terra/./client/utils/upload.tsx","webpack://terra/./client/components/field/Add.tsx","webpack://terra/./client/components/field/AddWithCompany.tsx","webpack://terra/./client/components/elements/JsonViewer.tsx","webpack://terra/./client/components/elements/TabPanel.tsx","webpack://terra/./client/components/field/Filed.Info.tsx","webpack://terra/./client/components/Fields.tsx","webpack://terra/./client/controllers/home.tsx","webpack://terra/./client/controllers/login.tsx","webpack://terra/./client/components/elements/DateFiled.tsx","webpack://terra/./client/components/nvdi/Add.tsx","webpack://terra/./client/themes/NdviTheme.tsx","webpack://terra/./client/components/nvdi/List.tsx","webpack://terra/./client/components/nvdi/Ndvi.Info.tsx","webpack://terra/./client/components/nvdi/AddWithGoogle.tsx","webpack://terra/./client/components/nvdi/ValueSelectedPanel.tsx","webpack://terra/./client/components/nvdi/ProcessList.tsx","webpack://terra/./client/components/Nvdi.tsx","webpack://terra/./client/controllers/nvdi.tsx","webpack://terra/./client/components/elements/TabElement.tsx","webpack://terra/./client/components/statistic/Chart.tsx","webpack://terra/./client/components/statistic/ChartContainer.tsx","webpack://terra/./client/components/statistic/ChartTabs.tsx","webpack://terra/./client/components/Statistic.tsx","webpack://terra/./client/controllers/statistic.tsx","webpack://terra/./client/components/elements/StorageAppBar.tsx","webpack://terra/./client/components/storage/Import.tsx","webpack://terra/./client/components/admin/Password.tsx","webpack://terra/./client/components/storage/Create.tsx","webpack://terra/./client/components/storage/Update.tsx","webpack://terra/./client/components/storage/EditInMap.tsx","webpack://terra/./client/components/storage/AutoApload.tsx","webpack://terra/./client/components/elements/StorageTable.tsx","webpack://terra/./client/components/storage/DataGrid.tsx","webpack://terra/./client/components/Storage.tsx","webpack://terra/./client/controllers/storage.tsx","webpack://terra/./client/components/fligth/List.tsx","webpack://terra/./client/components/fligth/Add.tsx","webpack://terra/./client/components/Fligths.tsx","webpack://terra/./client/controllers/flight.tsx","webpack://terra/./client/components/fertilizer/Add.tsx","webpack://terra/./client/components/fertilizer/List.tsx","webpack://terra/./client/components/fertilizer/chats/Fact.tsx","webpack://terra/./client/components/fertilizer/TiffInfo.tsx","webpack://terra/./client/components/fertilizer/Fertilizer.Info.tsx","webpack://terra/./client/components/fertilizer/Variants.tsx","webpack://terra/./client/components/Fertilizer.tsx","webpack://terra/./client/controllers/fertilizer.tsx","webpack://terra/./client/components/weed/ListWeed.tsx","webpack://terra/./client/components/Weed.tsx","webpack://terra/./client/controllers/weed.tsx","webpack://terra/./index.tsx","webpack://terra/./client/app.tsx","webpack://terra/webpack/bootstrap","webpack://terra/webpack/runtime/compat get default export","webpack://terra/webpack/runtime/define property getters","webpack://terra/webpack/runtime/get javascript update chunk filename","webpack://terra/webpack/runtime/get update manifest filename","webpack://terra/webpack/runtime/global","webpack://terra/webpack/runtime/hasOwnProperty shorthand","webpack://terra/webpack/runtime/make namespace object","webpack://terra/webpack/runtime/hot module replacement","webpack://terra/webpack/runtime/publicPath","webpack://terra/webpack/runtime/jsonp chunk loading","webpack://terra/webpack/runtime/nonce","webpack://terra/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"terra:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Chip, Divider, Typography } from '@mui/material';\nexport default function DialogYesNo(_a) {\n var _b;\n var props = __rest(_a, []);\n const [open, setOpen] = React.useState(props.open);\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n }, open: props.open, maxWidth: 'sm', onClose: props.no },\n React.createElement(DialogTitle, null, props.title),\n React.createElement(DialogContent, null,\n React.createElement(DialogContentText, null, props.question),\n props.description && ((_b = props.description) === null || _b === void 0 ? void 0 : _b.values.length) > 0 && (React.createElement(React.Fragment, null,\n React.createElement(Divider, { sx: { marginTop: '16px' } }),\n React.createElement(DialogContent, { sx: { padding: '20px 0px' } },\n React.createElement(Stack, { spacing: 2 },\n React.createElement(Typography, { variant: \"caption\" }, props.description.title),\n React.createElement(Box, null,\n React.createElement(Stack, { direction: 'row', spacing: 2 }, props.description.values.map((v) => (React.createElement(Chip, { label: v, sx: { border: '1px dashed', backgroundColor: 'white', borderRadius: '6px' } })))))))))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: props.yes }, \"\\u0414\\u0430\"),\n React.createElement(Button, { onClick: () => props.no(false), autoFocus: true }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","import { useState } from 'react';\nconst useToken = () => {\n const getToken = () => {\n const userToken = localStorage.getItem('token');\n return userToken && userToken;\n };\n const [token, setToken] = useState(getToken());\n const saveToken = (userToken) => {\n localStorage.setItem('token', userToken || '');\n setToken(userToken);\n };\n const parseJwt = (value) => {\n if (value === null)\n return null;\n try {\n var base64Url = value.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n return JSON.parse(jsonPayload);\n }\n catch (e) {\n return null;\n }\n };\n const verify = () => {\n let accessToken = getToken();\n if (accessToken === null) {\n return false;\n }\n const decodedJwt = parseJwt(accessToken);\n if (decodedJwt === null) {\n removeToken();\n return false;\n }\n if (decodedJwt.exp * 1000 < Date.now()) {\n removeToken();\n return false;\n }\n return true;\n };\n const removeToken = () => {\n localStorage.removeItem(\"token\");\n setToken(null);\n };\n return {\n setToken: saveToken,\n token,\n removeToken,\n verify,\n parseJwt\n };\n};\nexport default useToken;\n","import * as React from 'react';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\nimport MuiDrawer from '@mui/material/Drawer';\nimport MuiAppBar from '@mui/material/AppBar';\nimport Toolbar from '@mui/material/Toolbar';\nimport List from '@mui/material/List';\nimport BarChartIcon from '@mui/icons-material/BarChart';\nimport Typography from '@mui/material/Typography';\nimport Divider from '@mui/material/Divider';\nimport IconButton from '@mui/material/IconButton';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport ShareLocationIcon from '@mui/icons-material/ShareLocation';\nimport StorageIcon from '@mui/icons-material/Storage';\nimport { Button, Skeleton } from '@mui/material';\nimport { useNavigate } from 'react-router-dom';\nimport DialogYesNo from './elements/DialodYesNo';\nimport useScrollTrigger from '@mui/material/useScrollTrigger';\nimport ApiIcon from '@mui/icons-material/Api';\nimport ExtensionIcon from '@mui/icons-material/Extension';\nimport RouteIcon from '@mui/icons-material/Route';\nimport GrassIcon from '@mui/icons-material/BlurLinear';\nimport { forwardRef } from 'react';\nimport useToken from '../services/token';\nimport MacroOffIcon from '@mui/icons-material/MacroOff';\nconst drawerWidth = 240;\nfunction ElevationScroll(props) {\n const { children, window } = props;\n const trigger = useScrollTrigger({\n disableHysteresis: true,\n threshold: 0,\n target: window ? window() : undefined,\n });\n return React.cloneElement(children, {\n elevation: trigger ? 4 : 0,\n });\n}\nconst openedMixin = (theme) => ({\n width: drawerWidth,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n overflowX: 'hidden',\n});\nconst closedMixin = (theme) => ({\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: 'hidden',\n width: `calc(${theme.spacing(7)} + 1px)`,\n [theme.breakpoints.up('sm')]: {\n width: `calc(${theme.spacing(8)} + 1px)`,\n },\n});\nconst DrawerHeader = styled('div')(({ theme }) => (Object.assign({ display: 'flex', alignItems: 'center', justifyContent: 'flex-end', padding: theme.spacing(0, 1) }, theme.mixins.toolbar)));\nconst AppBar = styled(MuiAppBar, {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => (Object.assign({ zIndex: theme.zIndex.drawer + 1, transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }) }, (open && {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n}))));\nconst Drawer = styled(MuiDrawer, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => (Object.assign(Object.assign({ width: drawerWidth, flexShrink: 0, whiteSpace: 'nowrap', boxSizing: 'border-box' }, (open && Object.assign(Object.assign({}, openedMixin(theme)), { '& .MuiDrawer-paper': openedMixin(theme) }))), (!open && Object.assign(Object.assign({}, closedMixin(theme)), { '& .MuiDrawer-paper': closedMixin(theme) })))));\nconst MiniDrawer = forwardRef((props, ref) => {\n const theme = useTheme();\n const [open, setOpen] = React.useState(false);\n const [dialogOpen, setDialogOpen] = React.useState(false);\n const [username, setUserName] = React.useState('');\n const { token, parseJwt } = useToken();\n const navigate = useNavigate();\n React.useEffect(() => {\n if (token) {\n const payload = parseJwt(token);\n if (payload) {\n setUserName(payload.username);\n }\n }\n }, []);\n const handleDrawerOpen = () => {\n setOpen(true);\n };\n const handleDrawerClose = () => {\n setOpen(false);\n };\n const logout = () => {\n window.localStorage.removeItem(\"token\");\n window.location.href = \"/login\";\n };\n return (React.createElement(Box, { sx: { display: 'flex', height: '100%' } },\n React.createElement(ElevationScroll, { window: () => { return window; } },\n React.createElement(AppBar, { position: \"fixed\", open: open },\n React.createElement(Toolbar, null,\n React.createElement(IconButton, { color: \"inherit\", \"aria-label\": \"open drawer\", onClick: handleDrawerOpen, edge: \"start\", sx: Object.assign({ marginRight: 5 }, (open && { display: 'none' })) },\n React.createElement(MenuIcon, null)),\n React.createElement(Typography, { variant: \"h6\", noWrap: true, component: \"div\", sx: { flexGrow: 1 } }, \"Precision Agriculture Framework\"),\n username == ''\n ?\n (React.createElement(Skeleton, { width: 60 }))\n :\n (React.createElement(Typography, { variant: \"button\", display: \"block\", gutterBottom: true, sx: { marginTop: '6px' } }, username)),\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true, sx: { marginLeft: '16px', marginRight: '8px', height: '25px', marginTop: '19px', borderColor: 'white' } }),\n React.createElement(Button, { color: \"inherit\", onClick: () => setDialogOpen(true) }, \"\\u0412\\u044B\\u0445\\u043E\\u0434\")))),\n React.createElement(Drawer, { variant: \"permanent\", open: open },\n React.createElement(DrawerHeader, null,\n React.createElement(IconButton, { onClick: handleDrawerClose }, theme.direction === 'rtl' ? React.createElement(ChevronRightIcon, null) : React.createElement(ChevronLeftIcon, null))),\n React.createElement(Divider, null),\n React.createElement(List, null,\n React.createElement(ListItem, { key: 'fields', disablePadding: true, sx: { display: 'block' }, onClick: () => navigate('/') },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(ShareLocationIcon, { color: props.type == 'fields' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'Опытные участки', sx: { opacity: open ? 1 : 0 } }))),\n React.createElement(ListItem, { key: 'nvdi', disablePadding: true, sx: { display: 'block' }, onClick: () => navigate('/ndvi') },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(ExtensionIcon, { color: props.type == 'nvdi' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'NDVI', sx: { opacity: open ? 1 : 0 } }))),\n React.createElement(ListItem, { key: 'weed', disablePadding: true, sx: { display: 'block' }, onClick: () => navigate('/weed') },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(MacroOffIcon, { color: props.type == 'weed' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'Засоренность', sx: { opacity: open ? 1 : 0 } }))),\n React.createElement(ListItem, { key: 'fertilizer', disablePadding: true, sx: { display: 'block' }, onClick: () => navigate('/fertilizer') },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(GrassIcon, { color: props.type == 'fertilizer' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'Удобрения', sx: { opacity: open ? 1 : 0 } }))),\n React.createElement(Divider, null),\n React.createElement(ListItem, { key: 'stat', disablePadding: true, sx: { display: 'block' }, onClick: () => navigate('/statistic') },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(BarChartIcon, { color: props.type == 'stat' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'Статистика', sx: { opacity: open ? 1 : 0 } }))),\n React.createElement(ListItem, { key: 'stat', disablePadding: true, sx: { display: 'block' }, onClick: () => navigate('/flight') },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(RouteIcon, { color: props.type == 'flight' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'Полеты', sx: { opacity: open ? 1 : 0 } })))),\n React.createElement(Divider, null),\n React.createElement(List, null,\n React.createElement(ListItem, { key: 'storage', disablePadding: true, sx: { display: 'block' }, onClick: () => navigate('/storage') },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(StorageIcon, { color: props.type == 'storage' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'Данные', sx: { opacity: open ? 1 : 0 } }))),\n React.createElement(ListItem, { key: 'api', disablePadding: true, sx: { display: 'block' }, onClick: () => window.location.href = '/docs' },\n React.createElement(ListItemButton, { sx: {\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n px: 2.5,\n } },\n React.createElement(ListItemIcon, { sx: {\n minWidth: 0,\n mr: open ? 3 : 'auto',\n justifyContent: 'center',\n } },\n React.createElement(ApiIcon, { color: props.type == 'api' ? 'primary' : 'inherit' })),\n React.createElement(ListItemText, { primary: 'Api Сервис', sx: { opacity: open ? 1 : 0 } }))))),\n React.createElement(Box, { component: \"main\", sx: {\n flexGrow: 1,\n p: 0, flex: '1 1 auto',\n position: 'relative',\n display: 'flex',\n flexDirection: 'column'\n } },\n React.createElement(DrawerHeader, null),\n props.children),\n React.createElement(DialogYesNo, { title: '\\u0412\\u044B\\u0445\\u043E\\u0434', question: '\\u0412\\u044B \\u0445\\u043E\\u0442\\u0438\\u0442\\u0435 \\u0432\\u044B\\u0439\\u0442\\u0438 \\u0438\\u0437 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u044B?', yes: logout, no: (x) => setDialogOpen(x), open: dialogOpen })));\n});\nexport default MiniDrawer;\n","import { Box, Grid } from '@mui/material';\nimport React from 'react';\nfunction ListAndView({ left, view }) {\n return (React.createElement(React.Fragment, null,\n React.createElement(Grid, { container: true, spacing: 0, sx: { marginTop: '0px !important', height: '100%' } },\n React.createElement(Grid, { item: true, xs: \"auto\" },\n React.createElement(Box, { sx: {\n minWidth: '334px',\n height: '100%'\n } }, left)),\n React.createElement(Grid, { item: true, xs: true }, view))));\n}\nexport default ListAndView;\n","import L from \"leaflet\";\nimport { GeoJSON, useMap, Polygon, CircleMarker } from \"react-leaflet\";\nimport axios from \"axios\";\nimport React, { forwardRef, useImperativeHandle } from 'react';\nimport * as turf from '@turf/turf';\nconst GeoJson = forwardRef((props, ref) => {\n const [data, setData] = React.useState(null);\n const [center, setCenter] = React.useState({ lat: 49.9714, lng: 82.6059 });\n const [geometryBound, setGeometryBound] = React.useState(null);\n const map = useMap();\n const ref_geo = React.useRef(null);\n useImperativeHandle(ref, () => ({\n changeUrl: get_data\n }));\n React.useEffect(() => {\n get_data(props.url, props.token, { lat: 49.9714, lng: 82.6059 });\n }, []);\n const get_data = (url, token, center) => {\n props.setLoad(true);\n setData(null);\n setCenter(center);\n if (url && token) {\n axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n setData(responce.data);\n if (props.createBoundExtend) {\n const allPolygons = responce.data.features\n .filter((feature) => feature.geometry.type === 'Polygon' || feature.geometry.type === 'MultiPolygon');\n try {\n const allPolygonGeometries = allPolygons.map((polygon) => polygon.geometry);\n const unioned = allPolygonGeometries.length > 1 ? allPolygonGeometries.reduce((acc, curr) => {\n return turf.union(acc, curr);\n }) : turf.feature(allPolygonGeometries[0]);\n setGeometryBound(unioned.geometry);\n }\n catch (_a) {\n console.error(\"Bounds error\");\n }\n }\n }\n props.setLoad(false);\n })\n .catch(() => {\n props.setLoad(false);\n });\n }\n };\n const get_polygon = (coords) => {\n return coords.map((coords) => {\n return {\n lat: coords[1],\n lng: coords[0]\n };\n });\n };\n const get_color = (value, inner, isgrey = false) => {\n let options = {\n color: '#2e7d32',\n stroke: false,\n fillOpacity: .6,\n strokeWidth: 0\n };\n if (isgrey == true) {\n options.color = 'white';\n return options;\n }\n if (inner.fill !== undefined) {\n options.color = inner.fill;\n if (inner.fill == 'white'\n || (value == 100 && props.scipBorder == undefined)) {\n options.color = 'white';\n options.stroke = true;\n options.fillOpacity = 0;\n options.strokeWidth = 1;\n }\n }\n else {\n if (value <= 0.1) {\n options.color = '#d32f2f';\n }\n else if (value > 0.1 && value <= 0.2) {\n options.color = '#ef6c00';\n }\n else if (value > 0.2 && value < 0.39) {\n options.color = '#827717';\n }\n else if (value > 0.39 && value < 0.59) {\n options.color = '#689f38';\n }\n else if (value == 100) {\n options.color = 'white';\n options.stroke = true;\n options.fillOpacity = 0;\n options.strokeWidth = 1;\n }\n }\n return options;\n };\n if (data) {\n const geojsonObject = L.geoJSON(data);\n let bounds = geojsonObject.getBounds();\n let expression = {\n padding: {\n x: 30, y: 30\n },\n maxZoom: 17\n };\n map.flyToBounds(bounds, expression);\n }\n return (React.createElement(React.Fragment, null, data\n &&\n (React.createElement(React.Fragment, null,\n geometryBound && (React.createElement(Polygon, { positions: get_polygon(geometryBound.coordinates[0]), pathOptions: {\n color: 'white',\n stroke: true,\n fillOpacity: 0,\n strokeWidth: 1\n } })),\n props.draw ? (data.features\n .filter(f => f.geometry !== null)\n .map((f, index) => {\n var _a, _b;\n let isgrey = false;\n if (props.filterId && props.filterId.length > 0) {\n isgrey = !((_a = props.filterId) === null || _a === void 0 ? void 0 : _a.includes((_b = (f.id || '')) === null || _b === void 0 ? void 0 : _b.toString()));\n }\n let options = undefined;\n if (f.id) {\n options = get_color(f.id, f.properties, isgrey);\n }\n let poligons = [];\n if (f.geometry) {\n if (f.geometry.type == \"Polygon\") {\n poligons = get_polygon(f.geometry.coordinates[0]);\n }\n else if (f.geometry.type == \"MultiPolygon\") {\n poligons = f.geometry.coordinates.map((poligon) => {\n return poligon.map((inner) => {\n return get_polygon(inner);\n });\n });\n }\n }\n if (f.geometry.type == \"Polygon\" || f.geometry.type == \"MultiPolygon\") {\n return options !== undefined\n ?\n React.createElement(Polygon, { key: `polygon_${index}`, pathOptions: options, positions: poligons })\n :\n React.createElement(Polygon, { key: `polygon_${index}`, positions: poligons });\n }\n else if (f.geometry.type == \"Point\") {\n return React.createElement(CircleMarker, { center: [f.geometry.coordinates[1], f.geometry.coordinates[0]], radius: 5, stroke: false, color: \"white\", fillOpacity: 1 });\n }\n }))\n : (React.createElement(GeoJSON, { ref: ref_geo, data: data, style: {\n color: data.features.filter(x => x.geometry.type == 'LineString') ? '#ffc107' : 'white',\n fillColor: '#ffc107',\n stroke: true,\n fillOpacity: 0.3\n } }))))));\n});\nexport default GeoJson;\n","import L from 'leaflet';\nexport const getMarkerIcon = (value) => {\n let url = `/static/images/${value}.png`;\n return L.icon({\n iconUrl: url,\n iconSize: [40, 40],\n iconAnchor: [20, 35],\n tooltipAnchor: [20, -20]\n });\n};\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport { MapContainer, TileLayer, LayersControl, FeatureGroup, Circle, Marker, Tooltip } from 'react-leaflet';\nimport 'leaflet/dist/leaflet.css';\nimport 'leaflet-draw/dist/leaflet.draw.css';\nimport L, { latLng, latLngBounds } from 'leaflet';\nimport GeoJson from './GeoJson';\nimport { LinearProgress } from '@mui/material';\nimport { EditControl } from 'react-leaflet-draw';\nimport drawLocales from 'leaflet-draw-locales';\nimport axios from 'axios';\nimport { getMarkerIcon } from './MarkerIcon';\ndrawLocales('ru');\nconst { BaseLayer } = LayersControl;\nconst OpenStreetMaps = forwardRef((props, ref) => {\n const map = React.useRef(null);\n const geo = React.useRef(null);\n const feature = React.useRef(null);\n const [load, setLoad] = React.useState(false);\n const [json, setJson] = React.useState(null);\n const [center, setCenter] = React.useState({ lat: 49.9714, lng: 82.6059 });\n const [stantions, setStantions] = React.useState([]);\n const [filterId, setFilterId] = React.useState([]);\n useImperativeHandle(ref, () => ({\n setFly: Fly,\n setUrl: setUrl,\n invalidateSize: () => {\n var _a;\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.invalidateSize();\n },\n setFilterId: setFilterId,\n setEditebleObject: setEditebleObject\n }));\n React.useEffect(() => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition((position) => {\n setCenter({\n lat: position.coords.latitude,\n lng: position.coords.longitude\n });\n }, (error) => {\n });\n }\n }, []);\n React.useEffect(() => {\n if (map.current) {\n const gridLayer = L.gridLayer({}).addTo(map.current);\n map.current.on('resize', () => {\n gridLayer.redraw();\n });\n }\n }, [map.current]);\n React.useEffect(() => {\n if (props.setJson) {\n props.setJson(json);\n }\n }, [json]);\n React.useEffect(() => {\n }, [filterId]);\n React.useEffect(() => {\n if (props.showStantions) {\n axios.get(`/${props.showStantions}/list`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data) {\n let st_items = response.data.items.map((st) => {\n let s = {\n coord: { lat: st.stantions_latitude_center, lng: st.stantions_longitude_center },\n radius: st.stantions_radius,\n name: st.stantions_name,\n distance: 0,\n type: st.type || 'meteo'\n };\n return s;\n });\n setStantions(st_items);\n }\n });\n }\n }, [, props.showStantions]);\n React.useEffect(() => {\n var _a, _b;\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setView(center, (_b = map.current) === null || _b === void 0 ? void 0 : _b.getZoom());\n }, [center]);\n const Fly = (x, zoom) => {\n var _a;\n setCenter(x);\n if (zoom) {\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setZoom(zoom);\n }\n };\n const setUrl = (x, y) => {\n var _a, _b, _c, _d;\n if (x) {\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setView(y, (_b = map.current) === null || _b === void 0 ? void 0 : _b.getZoom());\n (_c = map.current) === null || _c === void 0 ? void 0 : _c.invalidateSize();\n (_d = geo.current) === null || _d === void 0 ? void 0 : _d.changeUrl(x, props.token, y);\n }\n };\n // Создадим объекты для редактирования\n // Используется в агрохимическом анализе\n const setEditebleObject = (url) => {\n if (url) {\n axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n var _a, _b, _c;\n if (response.data && feature.current) {\n ;\n const mapBounds = latLngBounds(response.data.features.map(point => latLng(point.geometry.coordinates[1], point.geometry.coordinates[0])));\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setMaxBounds(mapBounds);\n (_b = map.current) === null || _b === void 0 ? void 0 : _b.setZoom(((_c = map.current) === null || _c === void 0 ? void 0 : _c.getMaxZoom()) - 1);\n response.data.features.map((f, index) => {\n const options = {\n radius: 5,\n stroke: false,\n fillColor: 'rgb(255, 193, 7)',\n fillOpacity: 1,\n id: f.properties.id || 0\n };\n const circleMarker = L.circleMarker([f.geometry.coordinates[1], f.geometry.coordinates[0]], options);\n const popupContent = `\n
\n

ID: ${f.properties.id || 0}

\n
Азот: ${f.properties.nitrogen}
\n
Фосфор: ${f.properties.phosphorus}
\n
Калий: ${f.properties.potassium}
\n
\n `;\n circleMarker.bindPopup(popupContent);\n circleMarker.addTo(feature.current);\n });\n }\n });\n }\n };\n const createdMap = (e) => {\n if (feature.current) {\n const drawnItems = feature.current._layers;\n if (Object.keys(drawnItems).length > 1) {\n Object.keys(drawnItems).forEach((layerid, index) => {\n if (index > 0)\n return;\n const layer = drawnItems[layerid];\n feature.current.removeLayer(layer);\n });\n }\n }\n buildJson(e);\n };\n const editedMap = (e) => {\n buildJson(e);\n };\n const deletedMap = (e) => {\n setJson(null);\n };\n const buildJson = (e) => {\n var _a;\n const { layerType, layer } = e;\n if (layerType == \"polygon\") {\n layer.getLatLngs().map((ll) => {\n let coodinates = ll.map((coord) => {\n return [\n coord.lat,\n coord.lng\n ];\n });\n let json = {\n type: 'Feature',\n geometry: {\n type: 'Polygon',\n coordinates: coodinates,\n },\n properties: {},\n };\n setJson(json);\n });\n }\n // Используется для редактирования Агрохимического анализа\n if (layerType == undefined && ((_a = props.editMode) === null || _a === void 0 ? void 0 : _a.remove) == false) {\n const { layers } = e;\n const markers = [];\n layers.getLayers().map((l) => {\n const id = l.options.id;\n const coords = l.getLatLng();\n markers.push({\n id,\n coords\n });\n });\n if (props.setEditResult !== undefined) {\n props.setEditResult(markers);\n }\n }\n };\n return (React.createElement(\"div\", { style: { height: '100%', width: '100%', display: 'flex', flexDirection: 'column' } },\n load === true && (React.createElement(LinearProgress, { color: \"success\" })),\n React.createElement(MapContainer, { center: props.center || [49.9714, 82.6059], zoom: 13, ref: map, style: { width: '100%', height: '100%' } },\n props.editMode !== undefined && (React.createElement(FeatureGroup, { ref: feature },\n React.createElement(EditControl, { position: 'topleft', onCreated: createdMap, onEdited: editedMap, onDeleted: deletedMap, draw: {\n rectangle: false,\n polyline: false,\n circle: false,\n circlemarker: props.editMode.circlemarker == true ? {\n allowIntersection: false,\n edit: true,\n showLength: false,\n metric: false,\n feet: true,\n showArea: false\n } : false,\n marker: false,\n polygon: props.editMode.polygon == true ? {\n allowIntersection: false,\n edit: false,\n showLength: true,\n metric: true,\n feet: false,\n showArea: true\n } : false\n }, edit: {\n edit: true,\n remove: props.editMode.remove\n }, onDrawStart: (e) => {\n if (json !== null) {\n return false;\n }\n } }))),\n React.createElement(LayersControl, null,\n React.createElement(BaseLayer, { checked: props.layerIndex == undefined || true, name: \"ArcGIS World - \\u0441\\u043F\\u0443\\u0442\\u043D\\u0438\\u043A\" },\n React.createElement(TileLayer, { url: 'https://{s}.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}}/{y}/{x} ', maxZoom: 17, subdomains: ['server'] })),\n React.createElement(BaseLayer, { checked: props.layerIndex ? props.layerIndex == 1 : false, name: \"Google map - \\u0441\\u043F\\u0443\\u0442\\u043D\\u0438\\u043A\" },\n React.createElement(TileLayer, { url: 'https://{s}.google.com/vt/lyrs=y&x={x}&y={y}&z={z}&s=Ga&hl=ru', maxZoom: 20, subdomains: ['mt1', 'mt2', 'mt3'] })),\n React.createElement(BaseLayer, { checked: props.layerIndex ? props.layerIndex == 2 : false, name: \"Map data \\u00A9 OpenStreetMap - \\u0440\\u0435\\u043B\\u044C\\u0435\\u0444\" },\n React.createElement(TileLayer, { url: 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', maxZoom: 20 }))),\n stantions.length > 0 && (stantions.map((stantion, index) => {\n return (React.createElement(React.Fragment, null,\n stantion.radius > 0 && (React.createElement(Circle, { key: `circle_${index}`, center: stantion.coord, radius: stantion.radius, color: 'rgba(254,231,218,89)', fillColor: 'rgba(254,231,218,89)' })),\n React.createElement(Marker, { key: `marker_${index}`, icon: getMarkerIcon(stantion.type), position: stantion.coord },\n React.createElement(Tooltip, { direction: \"auto\", offset: [0, 0], opacity: 1, permanent: props.tollTip == undefined ? false : props.tollTip }, stantion.name))));\n })),\n props.item > 0 && (React.createElement(GeoJson, { ref: geo, url: props.url, draw: props.draw, scipBorder: props.scipBorder, createBoundExtend: props.createBoundExtend, token: props.token, filterId: filterId, setLoad: setLoad })),\n props.customControl)));\n});\nexport default OpenStreetMaps;\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport { Avatar, Divider, LinearProgress, List, ListItem, ListItemAvatar, ListItemButton, ListItemText, ListSubheader, Typography } from '@mui/material';\nimport axios from 'axios';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport PriorityHighIcon from '@mui/icons-material/PriorityHigh';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst ListField = forwardRef((props, ref) => {\n const [list, setList] = React.useState([]);\n const [listGroup, setListGroup] = React.useState([]);\n const [current, setCurrent] = React.useState(null);\n const [load, setLoad] = React.useState(false);\n const gruppedFormat = 'YYYY-MM-DD';\n useImperativeHandle(ref, () => ({\n update: update\n }));\n React.useEffect(() => {\n update();\n }, []);\n React.useEffect(() => {\n }, [props.progressItems]);\n const update = () => {\n if (props.token) {\n setLoad(true);\n axios.get('/field/list', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let items = responce.data.map((i) => {\n i.date_created = new Date(i.date_created);\n return i;\n });\n let groups = items.map((i) => {\n return dayjs(i.date_created).format(gruppedFormat);\n });\n setListGroup([...new Set(groups)]);\n setList(items);\n setLoad(false);\n }\n });\n }\n };\n React.useEffect(() => {\n props.select(current);\n }, [current]);\n return (React.createElement(React.Fragment, null,\n load == true && (React.createElement(React.Fragment, null,\n React.createElement(LinearProgress, { color: \"success\" }),\n listGroup.length == 0 && (React.createElement(Typography, { variant: 'caption', component: 'div', align: 'center', style: { color: 'grey', paddingTop: '16px' } }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0441\\u043F\\u0438\\u0441\\u043A\\u0430 ...\")))),\n listGroup.map((g, li) => {\n return (React.createElement(List, { sx: { width: '100%', maxWidth: 360, bgcolor: 'background.paper' }, key: `li_${li}`, component: \"nav\", subheader: React.createElement(ListSubheader, { component: \"div\", id: \"nested-list-subheader\" }, dayjs(g).format('ll')) }, list.filter(x => dayjs(x.date_created).format(gruppedFormat) === g)\n .map((item) => (React.createElement(\"div\", { key: `cont_${item.id}` },\n React.createElement(ListItem, { key: `l_${item.id}`, disablePadding: true },\n React.createElement(ListItemButton, { disabled: props.progressItems.filter(x => x == item.id).length > 0, selected: (current === null || current === void 0 ? void 0 : current.id) == item.id, onClick: () => setCurrent(item) },\n React.createElement(ListItemAvatar, null,\n React.createElement(Avatar, { src: `/field/image/${item.id}`, alt: item.name, sx: { backgroundColor: '#bdbdbd' }, imgProps: {\n style: {\n width: '28px',\n height: '28px'\n }\n } })),\n React.createElement(ListItemText, { primary: item.name.charAt(0).toUpperCase() + item.name.slice(1), secondary: props.progressItems.filter(x => x == item.id).length === 0\n ?\n `Создано: ${dayjs(item.date_created).format('lll')}`\n :\n React.createElement(LinearProgress, { variant: 'indeterminate', sx: { margin: '8px 0px' } }) }),\n !item.plot_count && props.showWarning == true && (React.createElement(PriorityHighIcon, { color: 'warning', fontSize: 'small', sx: {\n position: 'absolute',\n left: '44px',\n bottom: '17px',\n backgroundColor: 'white',\n borderRadius: '50%',\n fontSize: '0.9rem'\n } })))),\n React.createElement(Divider, { key: `d_${item.id}`, variant: \"fullWidth\", component: \"li\" }))))));\n })));\n});\nexport default ListField;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { useState } from \"react\";\nimport axios from \"axios\";\nexport const useUploadForm = (url) => {\n const [isSuccess, setIsSuccess] = useState(false);\n const [progress, setProgress] = useState(0);\n const destroyControls = () => {\n setProgress(0);\n };\n const uploadForm = (token, formData) => __awaiter(void 0, void 0, void 0, function* () {\n if (token === null) {\n return {\n status: 403,\n data: null\n };\n }\n setIsSuccess(false);\n let res = yield axios.post(url, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n \"Authorization\": `Bearer ${token}`\n },\n onUploadProgress: (progressEvent) => {\n if (progressEvent.total !== undefined) {\n const progress = (progressEvent.loaded / progressEvent.total) * 50;\n setProgress(progress);\n }\n },\n onDownloadProgress: (progressEvent) => {\n if (progressEvent.total !== undefined) {\n const progress = 50 + (progressEvent.loaded / progressEvent.total) * 50;\n setProgress(progress);\n }\n },\n });\n setIsSuccess(true);\n return {\n status: res.status,\n data: res.data\n };\n });\n return {\n uploadForm,\n destroyControls,\n isSuccess,\n progress\n };\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Alert, Divider, LinearProgress, Typography } from '@mui/material';\nimport { useUploadForm } from '../../utils/upload';\nimport { useSnackbar } from 'notistack';\nexport default function AddFieldDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const { uploadForm, destroyControls, progress, isSuccess } = useUploadForm(\"/field/create\");\n const [name, setName] = React.useState('');\n const [fileZip, setFile] = React.useState(null);\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const fileChange = (event) => {\n setFile(event.target.files ? event.target.files[0] : null);\n };\n React.useEffect(() => {\n setAccess(fileZip !== null\n && name !== '');\n }, [name, fileZip]);\n const create = () => __awaiter(this, void 0, void 0, function* () {\n if (fileZip !== null\n && name !== '') {\n const formData = new FormData();\n formData.append(\"name\", name);\n formData.append(\"zip\", fileZip);\n yield uploadForm(props.token, formData)\n .then(function (response) {\n if (response.data.error !== null) {\n setError(response.data.error);\n destroy();\n let error = response.data.error;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n }\n else {\n destroy();\n if (props.update != undefined) {\n props.update();\n }\n props.setState(false);\n enqueueSnackbar('Поле успешно добавлена', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n setError(error);\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n }\n });\n const destroy = () => __awaiter(this, void 0, void 0, function* () {\n setName('');\n setFile(null);\n setError(null);\n destroyControls();\n });\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u0438\\u0442\\u044C shp \\u0444\\u0430\\u0439\\u043B\"),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u0417\\u0430\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u043F\\u043E\\u043B\\u044F \\u0434\\u043B\\u044F \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u043F\\u043E\\u043B\\u044F \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435\")),\n React.createElement(Alert, { severity: \"warning\", sx: { margin: '0px 16px' } }, \"\\u0410\\u0440\\u0445\\u0438\\u0432 \\u0444\\u043E\\u0440\\u043C\\u0430\\u0442\\u0430 .zip. \\u0412 \\u0430\\u0440\\u0445\\u0438\\u0432\\u0435 \\u043E\\u0431\\u044F\\u0437\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u044B \\u0444\\u0430\\u0439\\u043B\\u044B \\u0444\\u043E\\u0440\\u043C\\u0430\\u0442\\u0430 .shp \\u0438 .shx\"),\n React.createElement(Divider, { variant: \"middle\", sx: { marginTop: '16px' } }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(TextField, { margin: \"dense\", id: \"name\", label: \"\\u041D\\u0430\\u0438\\u043C\\u0435\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\", fullWidth: true, inputProps: {\n maxLength: props.maxLength\n }, variant: \"filled\", onChange: (e) => setName(e.target.value) }),\n React.createElement(Box, { component: \"span\", sx: { p: 2, border: '1px dashed grey', display: 'flex', justifyContent: 'center' } },\n React.createElement(Stack, { spacing: 2 },\n React.createElement(Button, { variant: \"text\", component: \"label\" },\n \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0444\\u0430\\u0439\\u043B\",\n React.createElement(\"input\", { hidden: true, accept: \".zip\", multiple: false, type: \"file\", onChange: fileChange })),\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, fileZip !== null ? fileZip.name : 'Файл не выбран'))),\n progress > 0 && access == true && (React.createElement(LinearProgress, { variant: \"determinate\", value: progress })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: create, disabled: !access || progress > 0 }, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.setState(false), disabled: progress > 0 }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Divider, LinearProgress, Typography } from '@mui/material';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport OpenStreetMaps from '../map/OpenStreetMaps';\nimport axios from 'axios';\nimport { useSnackbar } from 'notistack';\nexport default function AddFieldWithCompanyDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const map = React.useRef(null);\n const [company, setCompany] = React.useState(null);\n const [companies, setCompanies] = React.useState([]);\n const [name, setName] = React.useState('');\n const [search, setSearch] = React.useState('');\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const [progress, setProgress] = React.useState(false);\n const [selectedElement, setSelectedElement] = React.useState(0);\n const [center, setCenter] = React.useState({ lat: 49.9714, lng: 82.6059 });\n const [json, setJson] = React.useState(null);\n React.useEffect(() => {\n get_companies();\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition((position) => {\n setCenter({\n lat: position.coords.latitude,\n lng: position.coords.longitude\n });\n }, (error) => {\n });\n }\n }, []);\n React.useEffect(() => {\n setAccess(json === null || name.length == 0);\n }, [json, name]);\n React.useEffect(() => {\n if (company !== null) {\n setCenter({ lat: company.latitude, lng: company.longitude });\n if (name == '') {\n let fullname = company.name.split(',')[0];\n setName(fullname);\n }\n }\n }, [company]);\n React.useEffect(() => {\n if (map.current) {\n map.current.setFly(center, 13);\n }\n }, [center]);\n React.useEffect(() => {\n if (search.length > 3) {\n get_companies(search == '' ? undefined : search);\n }\n if (search == '') {\n get_companies();\n }\n }, [search]);\n const get_companies = (search) => {\n axios.get(`/field/company/list?limit=100${search ? '&name__like=' + search : ''}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data) {\n setCompanies(response.data.items.map((x) => {\n x.label = x.name;\n return x;\n }));\n }\n });\n };\n const create = () => __awaiter(this, void 0, void 0, function* () {\n if (json !== null\n && name !== '') {\n try {\n json.id = 0;\n let geo = {\n type: \"FeatureCollection\",\n features: [\n json\n ]\n };\n let build = JSON.parse(JSON.stringify(geo));\n if (build.features.length > 0) {\n let coords = build.features[0].geometry.coordinates.map((c) => {\n c = [c[1], c[0]];\n return c;\n });\n build.features[0].geometry.coordinates = [\n coords\n ];\n }\n const formData = new FormData();\n formData.append(\"name\", name);\n formData.append(\"geo\", JSON.stringify(build));\n setProgress(true);\n axios.post(\"/field/create_with_map\", formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data.error !== null) {\n setError(response.data.error);\n let error = response.data.error;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n destroy();\n }\n else {\n destroy();\n if (props.update != undefined) {\n props.update();\n }\n props.setState(false);\n enqueueSnackbar('Поле успешно добавлена', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n setError(error);\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n }\n catch (e) {\n alert(e);\n }\n }\n });\n const destroy = () => __awaiter(this, void 0, void 0, function* () {\n setError(null);\n setName('');\n setProgress(false);\n });\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'md', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u043F\\u043E\\u043B\\u0435\"),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u0417\\u0430\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u043F\\u043E\\u043B\\u044F \\u0434\\u043B\\u044F \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u043F\\u043E\\u043B\\u044F \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Autocomplete, { value: company, onChange: (e, newValue) => {\n setCompany(newValue);\n }, onInputChange: (event, newInputValue) => {\n setSearch(newInputValue);\n }, disablePortal: true, id: \"combo-box-demo\", options: companies, sx: { width: 'auto' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u041F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u0435\" })) }),\n React.createElement(TextField, { margin: \"dense\", id: \"name\", label: \"\\u041D\\u0430\\u0438\\u043C\\u0435\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\", fullWidth: true, variant: \"filled\", inputProps: {\n maxLength: props.maxLength\n }, value: name, onChange: (e) => setName(e.target.value) }),\n React.createElement(Box, { component: \"span\", sx: { p: 0, border: '1px dashed grey', display: 'flex', width: '700px', height: '480px' } },\n React.createElement(OpenStreetMaps, { ref: map, token: props.token, url: '/field/get/1', center: center, editMode: {\n polygon: true,\n circlemarker: false,\n remove: true\n }, setJson: setJson, item: selectedElement })),\n progress == true && (React.createElement(LinearProgress, null)))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { disabled: access || progress, onClick: () => create() }, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { disabled: progress, onClick: () => props.setState(false) }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { JsonViewer } from '@textea/json-viewer';\nimport axios from 'axios';\nexport default function DialogJsonViewer(_a) {\n var props = __rest(_a, []);\n const [data, setData] = React.useState({});\n React.useEffect(() => {\n if (props.url && props.token) {\n axios.get(props.url, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n setData(responce.data);\n }\n });\n }\n }, [, props.url]);\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n }, open: props.open, maxWidth: 'sm', onClose: props.close },\n React.createElement(DialogTitle, { id: \"alert-dialog-title\" }, props.title),\n React.createElement(DialogContent, { sx: { minWidth: '500px', maxHeight: '500px' } },\n React.createElement(JsonViewer, { editable: false, value: data })),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: () => props.close(false), autoFocus: true }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\")))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CardContent from \"@mui/material/CardContent\";\nimport * as React from 'react';\nexport default function TabPanel(props) {\n const { children, value, index, padding } = props, other = __rest(props, [\"children\", \"value\", \"index\", \"padding\"]);\n return (React.createElement(\"div\", Object.assign({ role: \"tabpanel\", hidden: value !== index, id: `simple-tabpanel-${index}`, \"aria-labelledby\": `simple-tab-${index}`, style: { flex: '1 1 auto', overflowY: 'auto', height: 'calc(0px)' } }, other), value === index && (React.createElement(CardContent, { sx: { pt: '24px', backgroundColor: 'white', padding: (padding ? padding : '32px 16px 16px') } }, children))));\n}\n","import { AppBar, Avatar, Box, Button, Card, CardActions, CardContent, Chip, Divider, Grid, List, ListItem, ListItemAvatar, ListItemText, Stack, Tab, Tabs, Typography } from '@mui/material';\nimport axios from 'axios';\nimport React, { useImperativeHandle, forwardRef } from 'react';\nimport OnlinePredictionIcon from '@mui/icons-material/OnlinePrediction';\nimport dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport DialogJsonViewer from '../elements/JsonViewer';\nimport TabPanel from '../elements/TabPanel';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst FieldInfoPanel = forwardRef((props, ref) => {\n const [value, setValue] = React.useState(0);\n const [detail, setDetail] = React.useState(null);\n const [cutures, setCultures] = React.useState([]);\n const [jsonDialog, setJsonDialog] = React.useState(false);\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n useImperativeHandle(ref, () => ({}));\n React.useEffect(() => {\n if (props.token) {\n axios.get(`/field/detail/${props.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let detail = responce.data;\n let stant_arr = detail.stantions.map((s) => {\n let stantion = {\n coord: {\n lat: s.stantions_latitude_center,\n lng: s.stantions_longitude_center\n },\n name: s.stantions_name,\n radius: s.stantions_radius,\n distance: s.distance,\n type: 'meteo'\n };\n return stantion;\n });\n detail.stantions = stant_arr;\n setDetail(detail);\n }\n });\n axios.get(`/plot/list?field__id=${props.id}&limit=50&offset=0`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let detail = responce.data.items;\n let cultures = detail.map((x) => {\n return { name: x['plot_culture']['cultures_name'], grade: x['plot_grade']['grade_name'], code: x['plot_culture']['cultures_code'] };\n });\n const result = Object.values(cultures.reduce((acc, obj) => (Object.assign(Object.assign({}, acc), { [obj.name]: obj })), {}));\n setCultures(result);\n }\n });\n }\n }, [, props.id]);\n const toShp = () => {\n if (props.id) {\n window.location.href = `/field/shp/${props.id}`;\n }\n };\n return (React.createElement(Box, { sx: { width: '350px', flex: '1 1 auto', display: 'flex', flexDirection: 'column' } },\n detail !== null && (React.createElement(Card, { sx: { minWidth: 275, border: 'none', boxShadow: 'none', borderRadius: 0, display: 'flex', flexDirection: 'column', flex: '1 1 auto' } },\n React.createElement(CardContent, { sx: { pt: '32px', color: 'white', backgroundColor: 'rgb(18, 113, 71)' } },\n React.createElement(Typography, { variant: 'h5', component: 'div', sx: { fontWeight: 200 } }, detail.name),\n React.createElement(Typography, { sx: { fontWeight: 200, mb: 1.5, opacity: 0.6 } }, dayjs(detail.created).format('LLLL')),\n React.createElement(Stack, { direction: 'row', spacing: 1, sx: { alignItems: 'center', position: 'relative' } },\n React.createElement(Typography, { variant: \"h2\", gutterBottom: true }, detail.hkr.toFixed(2)),\n React.createElement(Typography, { variant: \"h4\", gutterBottom: true, sx: { opacity: 0.6 } }, \"\\u0433\\u0430\"),\n detail.from_file == false && (React.createElement(Chip, { label: \"shp\", size: \"small\", sx: { position: 'absolute', right: '0px', color: 'white', opacity: '0.8' } })))),\n React.createElement(Box, { sx: { width: '100%', bgcolor: 'background.paper' } },\n React.createElement(AppBar, { position: \"relative\", sx: { boxShadow: 'none' } },\n React.createElement(Tabs, { value: value, onChange: handleChange, textColor: \"inherit\", indicatorColor: \"secondary\" },\n React.createElement(Tab, { label: \"\\u041E\\u0431\\u0449\\u0430\\u044F\" }),\n React.createElement(Tab, { label: \"\\u0421\\u0442\\u0430\\u043D\\u0446\\u0438\\u0438\" }),\n React.createElement(Tab, { label: \"\\u041A\\u0443\\u043B\\u044C\\u0442\\u0443\\u0440\\u044B\" })))),\n React.createElement(TabPanel, { value: value, index: 0 },\n React.createElement(\"div\", null,\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u041A\\u043E\\u043E\\u0440\\u0434\\u0438\\u043D\\u0430\\u0442\\u044B\"),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '80px', color: 'grey' }, gutterBottom: true }, \"\\u0428\\u0438\\u0440\\u043E\\u0442\\u0430\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, detail.lat.toFixed(6)))),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '80px', color: 'grey' }, gutterBottom: true }, \"\\u0414\\u043E\\u043B\\u0433\\u043E\\u0442\\u0430\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, detail.lng.toFixed(6)))),\n detail.alt && (React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '80px', color: 'grey' }, gutterBottom: true }, \"\\u0412\\u044B\\u0441\\u043E\\u0442\\u0430\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, detail.alt))))),\n React.createElement(\"div\", { style: { marginTop: '16px' } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0420\\u0430\\u0437\\u043C\\u0435\\u0440\"),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '80px', color: 'grey' }, gutterBottom: true }, \"\\u041A\\u043C\\u00B2\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `~${detail.km.toFixed(2)}`))))),\n React.createElement(TabPanel, { value: value, index: 1, padding: '0px' },\n React.createElement(List, { sx: { width: '100%', maxWidth: 350, bgcolor: 'background.paper' } }, detail.stantions.map((s, index) => {\n return (React.createElement(ListItem, { key: `stantion_${index}_${s.name}` },\n React.createElement(ListItemAvatar, null,\n React.createElement(Avatar, null,\n React.createElement(OnlinePredictionIcon, null))),\n React.createElement(ListItemText, { primary: s.name, secondary: `Дистранция: ${s.distance.toFixed(2)} km` })));\n }))),\n React.createElement(TabPanel, { value: value, index: 2, padding: '0px' },\n React.createElement(List, { sx: { width: '100%', maxWidth: 350, bgcolor: 'background.paper' } }, cutures.map((culture, index) => {\n return (React.createElement(React.Fragment, null,\n React.createElement(ListItem, { key: `culture_${index}_${culture.name}` },\n React.createElement(ListItemAvatar, null,\n React.createElement(Avatar, { src: `/static/images/culture_${culture.code}.svg` })),\n React.createElement(ListItemText, { primary: culture.name, secondary: `Сорт: ${culture.grade}` })),\n React.createElement(Divider, { component: \"li\" })));\n }))),\n React.createElement(CardActions, { style: { margin: '0px 16px' } },\n React.createElement(Button, { size: \"small\", onClick: () => setJsonDialog(true) }, \"Geo JSON\"),\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true, sx: { marginLeft: '8px' } }),\n React.createElement(Button, { size: \"small\", onClick: () => toShp() }, \"SHP\"),\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true, sx: { marginLeft: '8px' } }),\n React.createElement(Button, { size: \"small\", color: \"error\", disabled: detail.can_delete, onClick: () => props.delete(props.id, detail.relations) }, \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\")))),\n React.createElement(DialogJsonViewer, { token: props.token, url: `/field/geo/${props.id}`, open: jsonDialog, title: \"GeoJson\", close: setJsonDialog })));\n});\nexport default FieldInfoPanel;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Link from '@mui/material/Link';\nimport { Box, Divider, Grid, IconButton, Stack, Tooltip, Typography } from '@mui/material';\nimport ListAndView from './elements/ListAndView';\nimport NoteAddIcon from '@mui/icons-material/NoteAdd';\nimport AddLocationAltIcon from '@mui/icons-material/AddLocationAlt';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport OpenStreetMaps from './map/OpenStreetMaps';\nimport ListField from './field/List';\nimport AddFieldDialog from './field/Add';\nimport AddFieldWithCompanyDialog from './field/AddWithCompany';\nimport FieldInfoPanel from './field/Filed.Info';\nimport axios from 'axios';\nimport DialogYesNo from './elements/DialodYesNo';\nconst Fields = (_a) => {\n var props = __rest(_a, []);\n const maxNameLength = 43;\n const [field, setField] = React.useState(null);\n const [addDialog, setAddDialog] = React.useState(false);\n const [addWithCompanyDialog, setAddWithCompanyDialog] = React.useState(false);\n const [deleteDialog, setDeleteDialog] = React.useState(false);\n const [relations, setRelations] = React.useState([]);\n const map = React.useRef(null);\n const list = React.useRef(null);\n React.useEffect(() => {\n if (map.current) {\n if (field) {\n let latlng = { lat: 49.9714, lng: 82.6059 };\n if (field.latitude_center && field.longitude_center) {\n if (field.latitude_center > 1 && field.longitude_center > 1) {\n latlng = {\n lat: field === null || field === void 0 ? void 0 : field.longitude_center,\n lng: field === null || field === void 0 ? void 0 : field.latitude_center\n };\n }\n }\n map.current.setUrl(`/field/get/${field === null || field === void 0 ? void 0 : field.id}`, latlng);\n }\n }\n }, [field]);\n const deleteListItem = () => {\n axios.delete(`/field/delete/${field === null || field === void 0 ? void 0 : field.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n var _a, _b;\n if (responce.data) {\n if (responce.data.result) {\n setField(null);\n setDeleteDialog(false);\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.invalidateSize();\n (_b = list.current) === null || _b === void 0 ? void 0 : _b.update();\n }\n }\n });\n };\n const updateListItems = () => {\n var _a;\n (_a = list.current) === null || _a === void 0 ? void 0 : _a.update();\n };\n const deleteField = (x, relations) => {\n setRelations(relations);\n setDeleteDialog(true);\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto', pt: '20px' } },\n React.createElement(Breadcrumbs, { \"aria-label\": \"breadcrumb\", sx: { pl: 3 } },\n React.createElement(Link, { underline: \"hover\", color: \"inherit\", href: \"/\" }, \"Agriculture\"),\n React.createElement(Typography, { color: \"text.primary\" }, \"\\u041E\\u043F\\u044B\\u0442\\u043D\\u044B\\u0435 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438\")),\n React.createElement(Divider, null),\n React.createElement(ListAndView, { left: React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: {\n backgroundColor: '#fafafa',\n height: '52px',\n borderBottom: '1px solid #eaeaea',\n display: 'flex',\n alignItems: 'center',\n padding: '0px 16px'\n } },\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u043F\\u043E\\u043B\\u0435 \\u0438\\u0437 \\u0444\\u0430\\u0439\\u043B\\u0430\" },\n React.createElement(IconButton, { color: \"success\", onClick: () => setAddDialog(true) },\n React.createElement(NoteAddIcon, null))),\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u043F\\u043E\\u043B\\u0435 \\u043F\\u043E \\u043A\\u0430\\u0440\\u0442\\u0435\" },\n React.createElement(IconButton, { color: \"success\", onClick: () => setAddWithCompanyDialog(true) },\n React.createElement(AddLocationAltIcon, null))),\n React.createElement(Divider, { orientation: 'vertical', flexItem: true, sx: { margin: '0px 8px' } }),\n React.createElement(Tooltip, { title: \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C \\u0441\\u043F\\u0438\\u0441\\u043E\\u043A\" },\n React.createElement(IconButton, { onClick: () => updateListItems() },\n React.createElement(RefreshIcon, null)))),\n React.createElement(Box, { sx: {\n height: 'calc(100vh - 180px)',\n overflowY: 'scroll',\n \"&::-webkit-scrollbar\": {\n width: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(ListField, { ref: list, token: props.token, progressItems: [], showWarning: true, select: setField }))), view: React.createElement(Grid, { container: true, spacing: 0, sx: { marginTop: '0px !important', height: '100%' } },\n field !== null\n &&\n (React.createElement(Grid, { item: true, xs: \"auto\", style: { display: 'flex' } },\n React.createElement(FieldInfoPanel, { token: props.token, id: field.id, delete: deleteField }))),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(OpenStreetMaps, { ref: map, token: props.token, url: null, showStantions: `stantions`, item: field == null ? 0 : field.id }))) })),\n React.createElement(AddFieldDialog, { token: props.token, open: addDialog, maxLength: maxNameLength, update: updateListItems, setState: setAddDialog }),\n React.createElement(AddFieldWithCompanyDialog, { token: props.token, open: addWithCompanyDialog, maxLength: maxNameLength, update: updateListItems, setState: setAddWithCompanyDialog }),\n React.createElement(DialogYesNo, { title: '\\u0423\\u0434\\u0430\\u043B\\u0435\\u043D\\u0438\\u0435', question: `Вы хотите удалить поле ${field === null || field === void 0 ? void 0 : field.name} без возможности восстановления?`, open: deleteDialog, description: {\n title: \"Будут удалены следующие связанные данные:\",\n values: relations\n }, yes: () => deleteListItem(), no: setDeleteDialog })));\n};\nexport default Fields;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport MiniDrawer from '../components/Header';\nimport Fields from '../components/Fields';\nconst Home = (_a) => {\n var props = __rest(_a, []);\n return (React.createElement(MiniDrawer, { type: 'fields' },\n React.createElement(Fields, { token: props.token })));\n};\nexport default Home;\n","import { Typography } from '@mui/material';\nimport React, { useState } from 'react';\nimport TextField from '@mui/material/TextField';\nimport Stack from '@mui/material/Stack';\nimport Button from '@mui/material/Button';\nimport axios from \"axios\";\nimport useToken from '../services/token';\nconst Login = () => {\n const { token, removeToken, setToken } = useToken();\n const [userName, setUserName] = useState('');\n const [password, setPassword] = useState('');\n const [error, setError] = useState(null);\n const handleKeyDown = (key) => {\n if (key === 'Enter') {\n sign();\n }\n };\n const sign = () => {\n if ((userName == \"\") && (password == \"\")) {\n return;\n }\n else {\n let data = new FormData();\n data.append('username', userName);\n data.append('password', password);\n axios({\n method: \"post\",\n url: \"/login\",\n data: data,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n })\n .then(function (response) {\n if (response.data.access_token) {\n setToken(response.data.access_token);\n window.location.href = \"/\";\n }\n if (response.data.message) {\n setError(response.data.message);\n }\n })\n .catch(function (error) {\n setError(error);\n });\n }\n };\n return (React.createElement(\"div\", { id: \"fullPage\" },\n React.createElement(\"div\", { id: \"brandingWrapper\", className: \"float\" },\n React.createElement(\"div\", { id: \"branding\", className: \"illustrationClass\" })),\n React.createElement(\"div\", { id: \"contentWrapper\", className: 'float' },\n React.createElement(\"div\", { id: \"content\" },\n React.createElement(\"div\", { id: \"header\" },\n React.createElement(Typography, { variant: 'h4' }, \"Agriculture\")),\n React.createElement(\"div\", { id: \"workArea\" },\n React.createElement(\"div\", { style: { marginBottom: '30px' } },\n React.createElement(\"div\", null,\n React.createElement(\"div\", { style: { marginBottom: '30px' } },\n React.createElement(Typography, { variant: 'body1' }, \"\\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u044C \\u0432\\u0445\\u043E\\u0434, \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \\u0443\\u0447\\u0435\\u0442\\u043D\\u0443\\u044E \\u0437\\u0430\\u043F\\u0438\\u0441\\u044C \\u043E\\u0440\\u0433\\u0430\\u043D\\u0438\\u0437\\u0430\\u0446\\u0438\\u0438.\")),\n React.createElement(\"div\", { id: \"error\", className: \"fieldMargin error smallText\", style: { display: error == null ? 'none' : 'block' } },\n React.createElement(Typography, { variant: 'caption', id: \"errorText\" }, error)),\n React.createElement(\"div\", null,\n React.createElement(Stack, { spacing: 1 },\n React.createElement(TextField, { required: true, id: \"outlined-required\", label: \"\\u0418\\u043C\\u044F \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044F\", onChange: (e) => setUserName(e.target.value), onKeyDown: (e) => handleKeyDown(e.key) }),\n React.createElement(TextField, { required: true, id: \"outlined-password-input\", label: \"\\u041F\\u0430\\u0440\\u043E\\u043B\\u044C\", type: \"password\", autoComplete: \"current-password\", onKeyDown: (e) => handleKeyDown(e.key), onChange: (e) => setPassword(e.target.value) })),\n React.createElement(\"div\", { className: \"submitMargin\" },\n React.createElement(Button, { onClick: () => sign(), variant: \"contained\" }, \"\\u0412\\u0445\\u043E\\u0434\"))))))),\n React.createElement(\"div\", { id: \"footer\" },\n React.createElement(\"div\", { id: \"footerLinks\" },\n React.createElement(Typography, { variant: 'caption' }, \"\\u0412\\u041A\\u0423 \\u0438\\u043C. \\u0421.\\u0410\\u043C\\u0430\\u043D\\u0436\\u043E\\u043B\\u043E\\u0432\\u0430\"))))));\n};\nexport default Login;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport TextField from '@mui/material/TextField';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport 'dayjs/locale/ru';\nimport * as dayjs from 'dayjs';\nexport default function DateFiled(_a) {\n var props = __rest(_a, []);\n const disableWeekends = (date) => {\n if (!props.min)\n return false;\n return date < dayjs(props.min) || date > dayjs(props.max);\n };\n return (React.createElement(LocalizationProvider, { dateAdapter: AdapterDayjs, adapterLocale: 'ru' },\n React.createElement(DatePicker, { label: props.label ? props.label : \"Дата\", value: props.value, onChange: (newValue) => {\n props.setValue(newValue);\n }, disabled: props.disabled ? props.disabled : false, shouldDisableDate: disableWeekends, renderInput: (params) => React.createElement(TextField, Object.assign({ margin: \"normal\", sx: { marginTop: '16px !important', width: '100%' }, variant: \"filled\" }, params)) })));\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DateFiled from '../elements/DateFiled';\nimport { Box, Stack } from '@mui/system';\nimport { Divider, FormControl, InputLabel, LinearProgress, MenuItem, Select, Typography } from '@mui/material';\nimport { useUploadForm } from '../../utils/upload';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport axios from 'axios';\nimport { useSnackbar } from 'notistack';\nexport default function AddDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const { uploadForm, destroyControls, progress, isSuccess } = useUploadForm(\"/ndvi/create\");\n const [name, setName] = React.useState('');\n const [field, setField] = React.useState(null);\n const [fields, setFields] = React.useState([]);\n const [bands, setBands] = React.useState([]);\n const [date_begion, setDateBegin] = React.useState(null);\n const [date_end, setDateEnd] = React.useState(null);\n const [fileTiff, setFileTiff] = React.useState(null);\n const [red, setRed] = React.useState(4);\n const [nir, setNir] = React.useState(8);\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const [as_task, setAsTask] = React.useState(false);\n const fileChange = (event) => {\n setFileTiff(event.target.files ? event.target.files[0] : null);\n if (event.target.files) {\n const size = event.target.files[0].size / (1024 * 1024);\n setAsTask(size > 1);\n }\n };\n React.useEffect(() => {\n if (props.token) {\n axios.get('/field/list', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let lds = responce.data.map(f => {\n f.label = f.name;\n return f;\n });\n setFields(lds);\n }\n });\n }\n }, []);\n React.useEffect(() => {\n if (fileTiff && as_task == false) {\n getBands(fileTiff);\n }\n else {\n let _bands = [];\n [1, 2, 3, 4, 5, 6, 7, 8, 9].map((x) => {\n _bands.push({\n index: x,\n name: `Канал ${x}`\n });\n });\n setBands(_bands);\n }\n }, [fileTiff]);\n React.useEffect(() => {\n setAccess(date_begion !== null && date_end !== null\n && fileTiff !== null\n && name !== '' && field !== null);\n }, [name, date_begion, date_end, fileTiff]);\n const create = () => __awaiter(this, void 0, void 0, function* () {\n if (date_begion !== null && date_end !== null\n && fileTiff !== null\n && name !== '' && field !== null) {\n const formData = new FormData();\n formData.append(\"name\", name);\n formData.append(\"field\", field === null || field === void 0 ? void 0 : field.id.toString());\n formData.append(\"date_begin\", date_begion.format('YYYY-MM-DD'));\n formData.append(\"date_end\", date_end.format('YYYY-MM-DD'));\n formData.append(\"tif\", fileTiff);\n formData.append(\"red\", red.toString());\n formData.append(\"nir\", nir.toString());\n formData.append(\"task\", as_task.toString());\n yield uploadForm(props.token, formData)\n .then(function (response) {\n if (response.data.error !== null) {\n setError(response.data.error);\n destroy();\n let error = response.data.error;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n }\n else {\n destroy();\n if (props.update) {\n props.update();\n }\n props.setState(false);\n enqueueSnackbar('Запись успешно добавлена', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n setError(error);\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n destroy();\n });\n }\n });\n const getBands = (_file) => __awaiter(this, void 0, void 0, function* () {\n if (_file !== null) {\n const formData = new FormData();\n formData.append(\"tif\", _file);\n yield axios.post('/ndvi/bands', formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n setBands(response.data);\n })\n .catch((error) => {\n setError(error);\n });\n }\n });\n const destroy = () => __awaiter(this, void 0, void 0, function* () {\n setName('');\n setDateBegin(null);\n setDateEnd(null);\n setFileTiff(null);\n setError(null);\n setField(null);\n destroyControls();\n });\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442\"),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"NDVI (Normalized Difference Vegetation Index) \\u2014 \\u043D\\u043E\\u0440\\u043C\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u043E\\u0442\\u043D\\u043E\\u0441\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0438\\u043D\\u0434\\u0435\\u043A\\u0441 \\u0440\\u0430\\u0441\\u0442\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u0438 \\u2014 \\u043F\\u0440\\u043E\\u0441\\u0442\\u043E\\u0439 \\u043F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u0435\\u043B\\u044C \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u0444\\u043E\\u0442\\u043E\\u0441\\u0438\\u043D\\u0442\\u0435\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u0430\\u043A\\u0442\\u0438\\u0432\\u043D\\u043E\\u0439 \\u0431\\u0438\\u043E\\u043C\\u0430\\u0441\\u0441\\u044B (\\u043E\\u0431\\u044B\\u0447\\u043D\\u043E \\u043D\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u043C\\u044B\\u0439 \\u0432\\u0435\\u0433\\u0435\\u0442\\u0430\\u0446\\u0438\\u043E\\u043D\\u043D\\u044B\\u043C \\u0438\\u043D\\u0434\\u0435\\u043A\\u0441\\u043E\\u043C).\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Autocomplete, { value: field, onChange: (event, newValue) => {\n setField(newValue);\n }, disablePortal: true, id: \"combo-box-demo\", options: fields, sx: { width: 'auto' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u041F\\u043E\\u043B\\u0435\" })) }),\n React.createElement(TextField, { margin: \"dense\", id: \"name\", label: \"\\u041D\\u0430\\u0438\\u043C\\u0435\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\", fullWidth: true, variant: \"filled\", inputProps: {\n maxLength: props.maxLength\n }, onChange: (e) => setName(e.target.value) }),\n React.createElement(DateFiled, { value: date_begion, setValue: setDateBegin, label: \"\\u0414\\u0430\\u0442\\u0430 \\u043D\\u0430\\u0447\\u0430\\u043B\\u0430\" }),\n React.createElement(DateFiled, { value: date_end, setValue: setDateEnd, label: \"\\u0414\\u0430\\u0442\\u0430 \\u043E\\u043A\\u043E\\u043D\\u0447\\u0430\\u043D\\u0438\\u044F\" }),\n React.createElement(Box, { component: \"span\", sx: { p: 2, border: '1px dashed grey', display: 'flex', justifyContent: 'center' } },\n React.createElement(Stack, { spacing: 2 },\n React.createElement(Button, { variant: \"text\", component: \"label\" },\n \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0444\\u0430\\u0439\\u043B\",\n React.createElement(\"input\", { hidden: true, accept: \".tif\", multiple: false, type: \"file\", onChange: fileChange })),\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, fileTiff !== null ? fileTiff.name : 'Файл GeoTIFF не выбран'))),\n React.createElement(Stack, { direction: 'row', spacing: 2 },\n React.createElement(FormControl, { fullWidth: true },\n React.createElement(InputLabel, null, \"RED\"),\n React.createElement(Select, { value: red, label: \"RED\", disabled: bands.length == 0, onChange: (e) => setRed(e.target.value) }, bands.length == 0\n ?\n (React.createElement(MenuItem, { value: 4 }, \"B4\"))\n :\n (bands.map((b, index) => {\n return (React.createElement(MenuItem, { key: `menu-item-key-${index}`, value: b.index }, b.name));\n })))),\n React.createElement(FormControl, { fullWidth: true },\n React.createElement(InputLabel, null, \"IR\"),\n React.createElement(Select, { value: nir, label: \"IR\", disabled: bands.length == 0, onChange: (e) => setNir(e.target.value) }, bands.length == 0\n ?\n (React.createElement(MenuItem, { value: 8 }, \"B8\"))\n :\n (bands.map((b, index) => {\n return (React.createElement(MenuItem, { key: `menu-item-key-2-${index}`, value: b.index }, b.name));\n }))))),\n progress > 0 && access == true && (React.createElement(LinearProgress, { variant: \"determinate\", value: progress })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: create, disabled: !access || progress > 0 }, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.setState(false), disabled: progress > 0 }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","import { createTheme } from '@mui/material/styles';\nexport const darkBluenTheme = createTheme({\n palette: {\n primary: {\n main: \"rgb(19, 95, 167)\"\n }\n }\n});\nexport const blueTheme = createTheme({\n palette: {\n primary: {\n main: '#b2dfdb'\n }\n }\n});\nexport const greenTheme = createTheme({\n palette: {\n primary: {\n main: '#127147'\n }\n }\n});\nexport const orangeTheme = createTheme({\n palette: {\n primary: {\n main: '#ef6c00'\n }\n }\n});\nexport const redTheme = createTheme({\n palette: {\n primary: {\n main: '#d32f2f'\n }\n }\n});\nexport const yellowTheme = createTheme({\n palette: {\n primary: {\n main: '#827717'\n }\n }\n});\nexport const yellowGreenTheme = createTheme({\n palette: {\n primary: {\n main: '#689f38'\n }\n }\n});\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport { Avatar, Divider, LinearProgress, List, ListItemAvatar, ListItemButton, ListItemText, ListSubheader, ThemeProvider, Typography } from '@mui/material';\nimport axios from 'axios';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport { greenTheme } from './../../themes/NdviTheme';\nimport { styled } from '@mui/material/styles';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst SmallAvatar = styled(Avatar)(({ theme }) => ({\n width: 18,\n height: 18,\n border: `2px solid ${theme.palette.background.paper}`,\n}));\nconst ListNdvi = forwardRef((props, ref) => {\n const [list, setList] = React.useState([]);\n const [current, setCurrent] = React.useState(null);\n const [listGroup, setListGroup] = React.useState([]);\n const [load, setLoad] = React.useState(false);\n useImperativeHandle(ref, () => ({\n update: update\n }));\n React.useEffect(() => {\n update();\n }, []);\n React.useEffect(() => {\n props.select(current);\n }, [current]);\n const update = () => {\n if (props.token) {\n setLoad(true);\n axios.get('/ndvi/list', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let groups = responce.data.map((i) => {\n return i.ndvi_field.name;\n });\n setList(responce.data);\n setListGroup([...new Set(groups)]);\n setLoad(false);\n }\n });\n }\n };\n return (React.createElement(React.Fragment, null,\n load == true && (React.createElement(React.Fragment, null,\n React.createElement(LinearProgress, { color: \"success\" }),\n listGroup.length == 0 && (React.createElement(Typography, { variant: 'caption', component: 'div', align: 'center', style: { color: 'grey', paddingTop: '16px' } }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0441\\u043F\\u0438\\u0441\\u043A\\u0430 ...\")))),\n listGroup.map((g, index) => {\n return (React.createElement(List, { key: `list-group-ndvi-${index}`, sx: { width: '100%', maxWidth: 360, bgcolor: 'background.paper' }, component: \"nav\", subheader: React.createElement(ListSubheader, { component: \"div\", id: \"nested-list-subheader\" }, g.length > 45 ? `${g.substring(0, 42)}...` : g) }, list.filter(f => f.ndvi_field.name == g)\n .map((item) => (React.createElement(\"div\", { key: `cont_${item.id}` },\n React.createElement(ListItemButton, { key: `l_${item.id}`, selected: (current === null || current === void 0 ? void 0 : current.id) == item.id, onClick: () => setCurrent(item) },\n React.createElement(ListItemAvatar, null,\n React.createElement(ThemeProvider, { theme: greenTheme },\n React.createElement(Avatar, { src: `/ndvi/image/${item.id}/${item.ndvi_field.id}`, alt: item.ndvi_field.name, sx: { backgroundColor: '#bdbdbd' }, imgProps: {\n style: {\n width: '28px',\n height: '28px'\n }\n } }))),\n React.createElement(ListItemText, { primary: `С ${dayjs(item.ndvi_date_begin).format('D MMM')} по ${dayjs(item.ndvi_date_end).format('ll')}`, secondary: `${item.ndvi_name}, ${dayjs(item.ndvi_date_created).format('D MMM')}` })),\n React.createElement(Divider, { key: `d_${item.id}`, variant: \"fullWidth\", component: \"li\" }))))));\n })));\n});\nexport default ListNdvi;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { AppBar, Box, Button, Card, CardActions, CardContent, Divider, LinearProgress, Stack, Tab, Tabs, ThemeProvider, Typography } from '@mui/material';\nimport axios from 'axios';\nimport React, { useImperativeHandle, forwardRef } from 'react';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport { greenTheme, orangeTheme, redTheme, yellowGreenTheme, yellowTheme } from './../../themes/NdviTheme';\nimport DialogJsonViewer from '../elements/JsonViewer';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nfunction TabPanel(props) {\n const { children, value, index } = props, other = __rest(props, [\"children\", \"value\", \"index\"]);\n return (React.createElement(\"div\", Object.assign({ role: \"tabpanel\", hidden: value !== index, id: `simple-tabpanel-${index}`, \"aria-labelledby\": `simple-tab-${index}`, style: {\n flex: '1 1 auto',\n overflowY: 'auto',\n height: 'calc(0px)'\n } }, other), value === index && (React.createElement(CardContent, { sx: { pt: '24px', backgroundColor: 'white' } }, children))));\n}\nconst NdviInfoPanel = forwardRef((props, ref) => {\n var _a;\n const [value, setValue] = React.useState(0);\n const [detail, setDetail] = React.useState(null);\n const [maxValue, setMaxValue] = React.useState([]);\n const [jsonDialog, setJsonDialog] = React.useState(false);\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n useImperativeHandle(ref, () => ({}));\n React.useEffect(() => {\n if (props.token) {\n axios.get(`/ndvi/meta/${props.field.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n var _a;\n if (responce.data) {\n let detail = responce.data;\n let max = Math.max(...Object.values(detail.percents).map(o => o));\n let target = Object.entries(detail.percents).filter(x => x[1] === max)[0];\n setMaxValue([Number(target[0]), max]);\n setDetail(detail);\n if (props.filterPanel.current) {\n (_a = props.filterPanel.current) === null || _a === void 0 ? void 0 : _a.setValues(Object.entries(detail.percents).map((v) => {\n return [v[0], v[1], get_color(Number(v[0]))];\n }));\n }\n }\n });\n }\n }, [, props.field.id]);\n const get_color = (value) => {\n if (value <= 0.1) {\n return redTheme;\n }\n else if (value > 0.1 && value <= 0.2) {\n return orangeTheme;\n }\n else if (value > 0.2 && value < 0.39) {\n return yellowTheme;\n }\n else if (value > 0.39 && value < 0.59) {\n return yellowGreenTheme;\n }\n return greenTheme;\n };\n return (React.createElement(Box, { sx: { width: '350px', flex: '1 1 auto', display: 'flex', flexDirection: 'column' } },\n detail !== null && maxValue.length == 2 && (React.createElement(Card, { sx: { minWidth: 275, border: 'none', boxShadow: 'none', borderRadius: 0, display: 'flex', flexDirection: 'column', flex: '1 1 auto' } },\n React.createElement(CardContent, { sx: { pt: '32px', color: 'white', backgroundColor: `rgb(18, 113, 71)` } },\n React.createElement(Typography, { variant: 'h5', component: 'div', sx: { fontWeight: 200 } }, detail.name),\n React.createElement(Typography, { sx: { fontWeight: 200, mb: 1.5, opacity: 0.6 } }, `c ${dayjs(detail.begin).format('LL')} по ${dayjs(detail.end).format('LL')}`),\n React.createElement(Stack, { direction: 'row', spacing: 1, sx: { alignItems: 'center', position: 'relative' } },\n React.createElement(Typography, { variant: \"h2\", gutterBottom: true }, maxValue[1].toFixed(2)),\n React.createElement(Typography, { variant: \"h4\", gutterBottom: true, sx: { opacity: 0.6 } }, \"%\"))),\n React.createElement(Box, { sx: { width: '100%', bgcolor: 'background.paper' } },\n React.createElement(AppBar, { position: \"relative\", sx: { boxShadow: 'none' }, style: { backgroundColor: `rgb(18, 113, 71)` } },\n React.createElement(Tabs, { value: value, onChange: handleChange, textColor: \"inherit\", indicatorColor: \"secondary\" },\n React.createElement(Tab, { label: \"\\u041E\\u0431\\u0449\\u0430\\u044F\" })))),\n React.createElement(TabPanel, { value: value, index: 0 },\n React.createElement(Stack, { spacing: 2 },\n props.field.ndvi_auto == true && (React.createElement(Box, null,\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u041A\\u043E\\u043B\\u043B\\u0435\\u043A\\u0446\\u0438\\u044F\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true }, (_a = props.field.ndvi_collection_name) === null || _a === void 0 ? void 0 : _a.split('/')[0]))),\n React.createElement(Box, null,\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u041F\\u043E\\u043B\\u0435\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true }, props.field.ndvi_field.name)),\n React.createElement(Box, null,\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u0435\\u043B\\u0438\"),\n React.createElement(Stack, { spacing: 4, sx: { marginTop: '16px' } }, Object.entries(detail.percents).map(t => {\n return (React.createElement(Stack, { direction: 'row', spacing: 2 },\n React.createElement(Typography, { variant: 'caption' }, Number(t[0])),\n React.createElement(Box, { sx: { width: '100%', marginTop: '8px !important' } },\n React.createElement(ThemeProvider, { theme: get_color(Number(t[0])) },\n React.createElement(LinearProgress, { variant: \"determinate\", color: \"primary\", value: t[1] }))),\n React.createElement(Typography, { variant: 'caption', sx: { whiteSpace: 'nowrap' } },\n Number(t[1]).toFixed(1),\n \"%\")));\n }))))),\n React.createElement(CardActions, { style: { margin: '0px 16px' } },\n React.createElement(Button, { size: \"small\", onClick: () => setJsonDialog(true) }, \"Geo JSON\"),\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true, sx: { marginLeft: '8px' } }),\n React.createElement(Button, { size: \"small\", color: \"error\", onClick: () => props.delete(props.field.id) }, \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\")))),\n React.createElement(DialogJsonViewer, { token: props.token, url: `/ndvi/get/${props.field.id}`, open: jsonDialog, title: \"GeoJson\", close: setJsonDialog })));\n});\nexport default NdviInfoPanel;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DateFiled from '../elements/DateFiled';\nimport { Box, Stack } from '@mui/system';\nimport { CircularProgress, Divider, LinearProgress, Typography } from '@mui/material';\nimport ImageIcon from '@mui/icons-material/Image';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport axios from 'axios';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport { useSnackbar } from 'notistack';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nexport default function AddWithGoogleDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const [year, setYear] = React.useState(2023);\n const [field, setField] = React.useState(null);\n const [collection, setCollection] = React.useState({\n id: 1,\n collection_name: 'COPERNICUS/S2',\n label: 'COPERNICUS'\n });\n const [fields, setFields] = React.useState([]);\n const [collections, setCollections] = React.useState([]);\n const [years, setYears] = React.useState([2023, 2022, 2021, 2020, 2019, 2018]);\n const [image, setImage] = React.useState(null);\n const [images, setImages] = React.useState(null);\n const [period, setPeriod] = React.useState(null);\n const [date_begion, setDateBegin] = React.useState(null);\n const [date_end, setDateEnd] = React.useState(null);\n const [cloudWithOut, setCloudWithOut] = React.useState(false);\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const [progress, setProgress] = React.useState(false);\n React.useEffect(() => {\n if (props.token) {\n // Получить поля\n axios.get('/field/list', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let lds = responce.data.map(f => {\n f.label = f.name;\n return f;\n });\n setFields(lds);\n }\n });\n // Получить доступные коллекции\n axios.get('/collection/list?limit=50', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let collect_ids = responce.data.items.map(c => {\n c.label = c.collection_name.split('/')[0];\n return c;\n });\n setCollections(collect_ids);\n }\n });\n }\n }, []);\n React.useEffect(() => {\n let access = images !== null\n && field !== null && collection !== null && year !== null\n && date_begion !== null && date_end !== null;\n if (date_begion && date_end) {\n access = date_begion < date_end;\n }\n setAccess(access);\n }, [field,\n collection,\n year,\n images,\n date_begion,\n date_end]);\n React.useEffect(() => {\n if (field !== null && collection !== null && year !== null) {\n if (props.token) {\n setImages(null);\n setPeriod(null);\n axios.get(`/ndvi/ee/${field.id}/${collection.id}/${year}/images`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n setImages(responce.data);\n }\n });\n }\n }\n }, [field, collection, year]);\n React.useEffect(() => {\n let dates = images === null || images === void 0 ? void 0 : images.features.filter(x => x.bands.filter(y => y.id == 'B4' || y.id == 'B8') && x.type == 'Image').map(f => {\n return new Date(f.properties['system:time_start']);\n });\n if (dates) {\n const maxDate = new Date(Math.max.apply(null, dates));\n const minDate = new Date(Math.min.apply(null, dates));\n setPeriod({\n min: minDate,\n max: maxDate\n });\n setDateBegin(dayjs(minDate));\n setDateEnd(dayjs(maxDate));\n }\n }, [images]);\n const create = () => __awaiter(this, void 0, void 0, function* () {\n if (images !== null && field !== null\n && date_begion !== null && date_end !== null) {\n setProgress(true);\n axios.post(\"/ndvi/ee/create\", JSON.stringify({\n ndvi_field_id: field === null || field === void 0 ? void 0 : field.id,\n ndvi_date_begin: date_begion.format('YYYY-MM-DD'),\n ndvi_date_end: date_end.format('YYYY-MM-DD'),\n ndvi_collection: collection === null || collection === void 0 ? void 0 : collection.id,\n ndvi_with_out_cloud: cloudWithOut\n }), {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data.error !== null) {\n setError(response.data.error);\n destroy();\n let error = response.data.error;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n }\n else {\n destroy();\n if (props.update != undefined) {\n props.update();\n }\n props.setState(false);\n enqueueSnackbar('Запись успешно добавлена', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n setError(error);\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n destroy();\n });\n }\n });\n const destroy = () => __awaiter(this, void 0, void 0, function* () {\n setError(null);\n setField(null);\n setImage(null);\n setImages(null);\n setProgress(false);\n });\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'md', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442\"),\n React.createElement(DialogContent, { sx: { width: '570px' } },\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"NDVI (Normalized Difference Vegetation Index) \\u2014 \\u043D\\u043E\\u0440\\u043C\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u043E\\u0442\\u043D\\u043E\\u0441\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0438\\u043D\\u0434\\u0435\\u043A\\u0441 \\u0440\\u0430\\u0441\\u0442\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u0438 \\u2014 \\u043F\\u0440\\u043E\\u0441\\u0442\\u043E\\u0439 \\u043F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u0435\\u043B\\u044C \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u0444\\u043E\\u0442\\u043E\\u0441\\u0438\\u043D\\u0442\\u0435\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u0430\\u043A\\u0442\\u0438\\u0432\\u043D\\u043E\\u0439 \\u0431\\u0438\\u043E\\u043C\\u0430\\u0441\\u0441\\u044B (\\u043E\\u0431\\u044B\\u0447\\u043D\\u043E \\u043D\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u043C\\u044B\\u0439 \\u0432\\u0435\\u0433\\u0435\\u0442\\u0430\\u0446\\u0438\\u043E\\u043D\\u043D\\u044B\\u043C \\u0438\\u043D\\u0434\\u0435\\u043A\\u0441\\u043E\\u043C).\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Stack, { spacing: 2, direction: 'row' },\n React.createElement(Autocomplete, { value: year, onChange: (event, newValue) => {\n setYear(newValue);\n }, disabled: progress, options: years, sx: { width: '50%' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u0413\\u043E\\u0434\" })) }),\n React.createElement(Autocomplete, { value: collection, onChange: (event, newValue) => {\n setCollection(newValue);\n }, disabled: progress, options: collections, sx: { width: '50%' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u041A\\u043E\\u043B\\u043B\\u0435\\u043A\\u0446\\u0438\\u044F\" })) })),\n React.createElement(Autocomplete, { value: field, onChange: (event, newValue) => {\n setField(newValue);\n }, disabled: progress, options: fields, sx: { width: 'auto' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u041F\\u043E\\u043B\\u0435\" })) }),\n React.createElement(Stack, { spacing: 2, direction: 'row' },\n React.createElement(DateFiled, { value: date_begion, setValue: setDateBegin, label: \"\\u0414\\u0430\\u0442\\u0430 \\u043D\\u0430\\u0447\\u0430\\u043B\\u0430\", min: period === null || period === void 0 ? void 0 : period.min, max: period === null || period === void 0 ? void 0 : period.max, disabled: period == null || progress }),\n React.createElement(DateFiled, { value: date_end, setValue: setDateEnd, min: period === null || period === void 0 ? void 0 : period.min, max: period === null || period === void 0 ? void 0 : period.max, label: \"\\u0414\\u0430\\u0442\\u0430 \\u043E\\u043A\\u043E\\u043D\\u0447\\u0430\\u043D\\u0438\\u044F\", disabled: period == null || progress })),\n React.createElement(Box, { component: \"span\", sx: { p: 2, border: '1px dashed grey', display: 'flex', justifyContent: 'center', minHeight: '100px', alignItems: 'center' } },\n React.createElement(Stack, { spacing: 2, sx: { maxHeight: '400px', overflowX: 'hidden' } },\n images !== null && (React.createElement(React.Fragment, null,\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, `Найдено ${images === null || images === void 0 ? void 0 : images.features.length} изображений в коллекции ${collection === null || collection === void 0 ? void 0 : collection.label}`),\n React.createElement(List, null, images === null || images === void 0 ? void 0 : images.features.filter(x => x.bands.filter(y => y.id == 'B4' || y.id == 'B8') && x.type == 'Image').slice(0, 3).map((f) => {\n return (React.createElement(ListItem, { disablePadding: true },\n React.createElement(ListItem, null,\n React.createElement(ListItemIcon, null,\n React.createElement(ImageIcon, null)),\n React.createElement(ListItemText, { primary: dayjs(new Date(f.properties['system:time_start'])).format('llll'), secondary: f.id }))));\n })))),\n (images === null && field !== null && collection !== null && year !== null) ? (React.createElement(\"div\", { style: { height: '54px' } },\n React.createElement(CircularProgress, null)))\n :\n (React.createElement(React.Fragment, null)),\n field == null && collection == null && year == null && (React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, \"\\u041D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u0442\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0440\\u0442\\u044B \\u0434\\u043B\\u044F \\u043F\\u043E\\u043B\\u0443\\u0447\\u0430\\u0435\\u043D\\u0438\\u044F \\u043A\\u043E\\u043B\\u043B\\u0435\\u043A\\u0446\\u0438\\u0438 \\u0441\\u043D\\u0438\\u043C\\u043A\\u043E\\u0432\")))),\n access == true && progress == true && (React.createElement(LinearProgress, null)))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: create, disabled: !access || progress == true }, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => {\n destroy();\n props.setState(false);\n }, disabled: progress == true }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","import { Checkbox, Paper } from '@mui/material';\nimport React, { useImperativeHandle, forwardRef } from 'react';\nimport Control from 'react-leaflet-custom-control';\nimport CircleOutlinedIcon from '@mui/icons-material/CircleOutlined';\nimport CircleIcon from '@mui/icons-material/CircleSharp';\nimport { ThemeProvider } from '@emotion/react';\nconst ValueSelectedPanel = forwardRef((props, ref) => {\n const [values, setValues] = React.useState([]);\n const [selected, setSelected] = React.useState([]);\n React.useEffect(() => {\n var _a;\n (_a = props.map.current) === null || _a === void 0 ? void 0 : _a.setFilterId([]);\n setSelected([...values.map(x => x[0]), \"100.0\"]);\n }, [values]);\n const handleChangeFilter = (target, checked) => {\n var _a;\n let filter = [];\n if (checked) {\n filter = [...selected.filter(x => x !== target), target];\n }\n else {\n filter = selected.filter(x => x !== target);\n }\n (_a = props.map.current) === null || _a === void 0 ? void 0 : _a.setFilterId(filter);\n setSelected(filter);\n };\n useImperativeHandle(ref, () => ({\n setValues: setValues\n }));\n return (React.createElement(Control, { prepend: true, position: 'bottomleft' },\n React.createElement(Paper, { sx: { opacity: '0.8' } }, values.filter(x => x[1] !== 100).map((i, index) => {\n return (React.createElement(ThemeProvider, { theme: i[2] },\n React.createElement(Checkbox, { checked: selected.length > 0 ? selected.includes(i[0]) : true, onChange: (e, v) => handleChangeFilter(i[0], v), sx: {\n padding: '4px 9px',\n color: i[2].palette.primary.main,\n '&.Mui-checked': {\n color: i[2].palette.primary.main,\n },\n }, icon: React.createElement(CircleOutlinedIcon, null), checkedIcon: React.createElement(CircleIcon, null) })));\n }))));\n});\nexport default ValueSelectedPanel;\n","import React, { forwardRef } from 'react';\nimport { Avatar, Divider, LinearProgress, List, ListItem, ListItemAvatar, ListItemButton, ListItemText, ListSubheader } from '@mui/material';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst ProcessList = forwardRef((props, ref) => {\n return (React.createElement(React.Fragment, null, props.items.length > 0\n ?\n (React.createElement(List, { sx: { width: '100%', maxWidth: 360, bgcolor: 'background.paper' }, component: \"nav\", subheader: React.createElement(ListSubheader, { component: \"div\", id: \"nested-list-subheader\" }, `В обработке...`) }, props.items.map((item) => (React.createElement(\"div\", { key: `process_${item.field}` },\n React.createElement(ListItem, { key: `process_l_${item.field}`, disablePadding: true },\n React.createElement(ListItemButton, { disabled: true },\n React.createElement(ListItemAvatar, null,\n React.createElement(Avatar, { src: `/field/image/${item.field}`, sx: { backgroundColor: '#bdbdbd' }, imgProps: {\n style: {\n width: '28px',\n height: '28px'\n }\n } })),\n React.createElement(ListItemText, { primary: `С ${dayjs(item.begin).format('D MMM')} по ${dayjs(item.end).format('ll')}`, secondary: React.createElement(LinearProgress, { variant: 'indeterminate', sx: { margin: '8px 0px' } }) }))),\n React.createElement(Divider, { key: `process_d_${item.field}`, variant: \"fullWidth\", component: \"li\" }))))))\n :\n (React.createElement(React.Fragment, null))));\n});\nexport default ProcessList;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Box, Divider, Grid, IconButton, Stack, Tooltip, Typography } from '@mui/material';\nimport React from 'react';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Link from '@mui/material/Link';\nimport NoteAddIcon from '@mui/icons-material/NoteAdd';\nimport ListAndView from './elements/ListAndView';\nimport AddDialog from './nvdi/Add';\nimport ScienceIcon from '@mui/icons-material/Science';\nimport ListNdvi from './nvdi/List';\nimport OpenStreetMaps from './map/OpenStreetMaps';\nimport NdviInfoPanel from './nvdi/Ndvi.Info';\nimport DialogYesNo from './elements/DialodYesNo';\nimport axios from 'axios';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport AddWithGoogleDialog from './nvdi/AddWithGoogle';\nimport ValueSelectedPanel from './nvdi/ValueSelectedPanel';\nimport { useSSE } from 'react-hooks-sse';\nimport ProcessList from './nvdi/ProcessList';\nfunction usePreviousProgress(value) {\n const ref = React.useRef();\n React.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\nfunction Nvdis(_a) {\n var props = __rest(_a, []);\n const maxNameLength = 43;\n const [selectedElement, setSelectedElement] = React.useState(null);\n const [addDialog, setAddDialog] = React.useState(false);\n const [deleteDialog, setDeleteDialog] = React.useState(false);\n const [addGoogleDialog, setAddWithGoogleDialog] = React.useState(false);\n const [progressItems, setProgressItems] = React.useState([]);\n const prevProgressItems = usePreviousProgress(progressItems);\n const map = React.useRef(null);\n const list = React.useRef(null);\n const filter = React.useRef(null);\n const tasks = useSSE('ndvi', {\n value: []\n });\n React.useEffect(() => {\n var _a;\n if (prevProgressItems) {\n if ((prevProgressItems === null || prevProgressItems === void 0 ? void 0 : prevProgressItems.length) > 0 && tasks.value.length == 0) {\n (_a = list.current) === null || _a === void 0 ? void 0 : _a.update();\n }\n }\n setProgressItems(tasks.value.map((v) => {\n let p = {\n begin: v.info.begin,\n end: v.info.end,\n field: v.info.field\n };\n return p;\n }));\n }, [tasks.value]);\n React.useEffect(() => {\n var _a;\n if (map.current !== null && selectedElement !== null) {\n let latlng = { lat: selectedElement.ndvi_field.longitude_center, lng: selectedElement.ndvi_field.latitude_center };\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setUrl(`/ndvi/get/${selectedElement.id}`, latlng);\n }\n }, [selectedElement]);\n const deleteListItem = () => {\n if (selectedElement !== null) {\n axios.delete(`/ndvi/delete/${selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n var _a, _b;\n if (responce.data) {\n if (responce.data.result) {\n setSelectedElement(null);\n setDeleteDialog(false);\n (_a = list.current) === null || _a === void 0 ? void 0 : _a.update();\n (_b = map.current) === null || _b === void 0 ? void 0 : _b.invalidateSize();\n }\n }\n });\n }\n };\n const updateListItems = () => {\n var _a;\n (_a = list.current) === null || _a === void 0 ? void 0 : _a.update();\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto', pt: '20px' } },\n React.createElement(Breadcrumbs, { \"aria-label\": \"breadcrumb\", sx: { pl: 3 } },\n React.createElement(Link, { underline: \"hover\", color: \"inherit\", href: \"/\" }, \"Agriculture\"),\n React.createElement(Typography, { color: \"text.primary\" }, \"NDVI\")),\n React.createElement(Divider, null),\n React.createElement(ListAndView, { left: React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: {\n backgroundColor: '#fafafa',\n height: '52px',\n borderBottom: '1px solid #eaeaea',\n display: 'flex',\n alignItems: 'center',\n padding: '0px 16px'\n } },\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442 \\u0438\\u0437 \\u0444\\u0430\\u0439\\u043B\\u0430\" },\n React.createElement(IconButton, { onClick: () => setAddDialog(true), \"aria-label\": \"fingerprint\", color: \"success\" },\n React.createElement(NoteAddIcon, null))),\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u0438\\u0437 Earthengine Google\" },\n React.createElement(IconButton, { \"aria-label\": \"fingerprint\", color: \"success\", onClick: () => setAddWithGoogleDialog(true) },\n React.createElement(ScienceIcon, null))),\n React.createElement(Divider, { orientation: 'vertical', flexItem: true, sx: { margin: '0px 8px' } }),\n React.createElement(Tooltip, { title: \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C\" },\n React.createElement(IconButton, { \"aria-label\": \"fingerprint\", onClick: () => updateListItems() },\n React.createElement(RefreshIcon, null)))),\n React.createElement(Box, { sx: {\n height: 'calc(100vh - 180px)',\n overflowY: 'scroll',\n \"&::-webkit-scrollbar\": {\n width: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(ProcessList, { items: progressItems }),\n React.createElement(ListNdvi, { ref: list, token: props.token, select: setSelectedElement }))), view: React.createElement(Grid, { container: true, spacing: 0, sx: { marginTop: '0px !important', height: '100%' } },\n selectedElement !== null\n &&\n (React.createElement(Grid, { item: true, xs: \"auto\", style: { display: 'flex' } },\n React.createElement(NdviInfoPanel, { token: props.token, field: selectedElement, filterPanel: filter, delete: (x) => setDeleteDialog(true) }))),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(OpenStreetMaps, { token: props.token, ref: map, url: `/ndvi/get/${selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.id}`, draw: true, createBoundExtend: true, customControl: React.createElement(ValueSelectedPanel, { ref: filter, map: map }), item: selectedElement === null ? 0 : selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.id }))) })),\n React.createElement(AddDialog, { token: props.token, open: addDialog, maxLength: maxNameLength, update: updateListItems, setState: setAddDialog }),\n React.createElement(AddWithGoogleDialog, { token: props.token, open: addGoogleDialog, update: updateListItems, setState: setAddWithGoogleDialog }),\n React.createElement(DialogYesNo, { title: '\\u0423\\u0434\\u0430\\u043B\\u0435\\u043D\\u0438\\u0435', question: `Вы хотите удалить ${selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.ndvi_name} без возможности восстановления?`, open: deleteDialog, yes: () => deleteListItem(), no: setDeleteDialog })));\n}\nexport default Nvdis;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport MiniDrawer from '../components/Header';\nimport Nvdis from '../components/Nvdi';\nconst Nvdi = (_a) => {\n var props = __rest(_a, []);\n return (React.createElement(MiniDrawer, { type: 'nvdi' },\n React.createElement(Nvdis, { token: props.token })));\n};\nexport default Nvdi;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nexport default function TabElement(props) {\n const { children, value, index } = props, other = __rest(props, [\"children\", \"value\", \"index\"]);\n return (React.createElement(\"div\", Object.assign({ role: \"tabpanel\", hidden: value !== index, id: `simple-tabpanel-${index}`, \"aria-labelledby\": `simple-tab-${index}`, style: { marginTop: '0px' } }, other), value === index && (React.createElement(React.Fragment, null, children))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { Vega } from 'react-vega';\nimport axios from 'axios';\nfunction Chart(_a) {\n var props = __rest(_a, []);\n const [config, setConfig] = React.useState({});\n React.useEffect(() => {\n axios.get(`/statistic/config/${props.pages}?${Date.now()}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n setConfig(responce.data);\n }\n })\n .catch(function (reason) {\n });\n }, [, props.pages]);\n return (React.createElement(Vega, { spec: config, actions: false }));\n}\nexport default Chart;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { Box } from '@mui/material';\nimport Chart from './Chart';\nimport Grid from '@mui/material/Unstable_Grid2';\nfunction ChartContainer(_a) {\n var props = __rest(_a, []);\n return (React.createElement(React.Fragment, null,\n React.createElement(Box, { sx: {\n flexGrow: 1,\n paddingLeft: '16px',\n height: 'calc(100vh - 179px)',\n overflow: 'auto',\n '& > :not(style)': {\n m: 1\n },\n \"&::-webkit-scrollbar\": {\n width: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(Grid, { sx: {\n paddingTop: '16px'\n }, container: true, spacing: 6 }, props.chart.pages.map((page, index) => {\n return (React.createElement(Grid, { key: index, xs: 'auto', minHeight: 450 },\n React.createElement(Chart, { token: props.token, pages: page, title: '' })));\n })))));\n}\nexport default ChartContainer;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Stack, Typography } from '@mui/material';\nimport React from 'react';\nimport Tabs, { tabsClasses } from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport Box from '@mui/material/Box';\nimport axios from 'axios';\nimport TabElement from '../elements/TabElement';\nimport ChartContainer from './ChartContainer';\nimport TerrainIcon from '@mui/icons-material/Terrain';\nfunction ChartTabs(_a) {\n var props = __rest(_a, []);\n const [value, setValue] = React.useState(0);\n const [tabs, setTabs] = React.useState([]);\n const [pages, setPages] = React.useState([]);\n React.useEffect(() => {\n var _a;\n if (props.token && props.field) {\n axios.get(`/statistic/get/${(_a = props.field) === null || _a === void 0 ? void 0 : _a.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let list = responce.data;\n list.sort((a, b) => {\n if (a < b) {\n return 1;\n }\n if (a > b) {\n return -1;\n }\n return 0;\n });\n let tabs = [];\n if (list.some(v => v.includes('pdsi_'))) {\n tabs.push({\n active: true,\n index: 0,\n model: 'PDSI',\n prefix: 'pdsi',\n title: 'Интенсивность засухи'\n });\n }\n if (list.some(v => v.includes('temperature_') || v.includes('precipitation_'))) {\n tabs.push({\n active: true,\n index: 1,\n model: 'TEMP',\n prefix: 'temp',\n title: 'Исторический климат'\n });\n }\n setTabs(tabs);\n setPages(list);\n }\n });\n }\n else {\n setTabs([]);\n setPages([]);\n }\n }, [props.field, props.loaded]);\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto' } },\n React.createElement(Box, { sx: { maxWidth: { marginTop: '0px !important' }, bgcolor: 'background.paper' } },\n React.createElement(Tabs, { value: value, onChange: handleChange, variant: \"scrollable\", scrollButtons: true, \"aria-label\": \"visible arrows tabs example\", sx: {\n [`& .${tabsClasses.scrollButtons}`]: {\n '&.Mui-disabled': { opacity: 0.3 },\n },\n borderBottom: '1px solid #eee',\n minHeight: '52px'\n } }, (props.loaded == true ? [] : tabs).map((t, index) => {\n return (React.createElement(Tab, { key: `tab_${index}`, label: t.title, disabled: !t.active }));\n }))),\n props.loaded == false && (React.createElement(React.Fragment, null, tabs.map((t, index) => {\n return (React.createElement(TabElement, { key: `tab_panel_${index}`, value: value, index: index },\n React.createElement(React.Fragment, null,\n t.prefix == 'pdsi' && (React.createElement(ChartContainer, { token: props.token, chart: {\n title: t.title,\n pages: pages.filter(x => x.includes('pdsi_'))\n } })),\n t.prefix == 'temp' && (React.createElement(ChartContainer, { token: props.token, chart: {\n title: t.title,\n pages: pages.filter(x => !x.includes('pdsi_'))\n } })))));\n }))),\n props.field == null && (React.createElement(Box, { sx: {\n display: 'flex',\n justifyContent: 'center',\n flexWrap: 'wrap',\n height: 'calc(100vh - 250px)',\n flexDirection: 'column'\n } },\n React.createElement(Box, { sx: { margin: '0 auto', border: \"1px solid lightgray\", borderRadius: \"50%\", padding: \"24px\", marginBottom: '24px' } },\n React.createElement(TerrainIcon, { sx: { width: 150, height: 150, color: '#D8D8D8' } })),\n React.createElement(Typography, { sx: { margin: '0 auto', color: 'rgba(0, 0, 0, 0.6)' }, variant: \"subtitle1\" }, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442 \\u0432 \\u0441\\u043F\\u0438\\u0441\\u043A\\u0435 \\u0434\\u043B\\u044F \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F \\u0433\\u0440\\u0430\\u0444\\u0438\\u043A\\u043E\\u0432\"),\n React.createElement(Typography, { sx: { margin: '0 auto', color: 'rgba(0, 0, 0, 0.6)', maxWidth: '500px', textAlign: 'center', marginTop: '8px', fontSize: '0.8rem' }, variant: \"body2\" }, \"\\u0414\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0432\\u0437\\u044F\\u0442\\u044B \\u0437\\u0430 \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043D\\u0438\\u0435 10 \\u043B\\u0435\\u0442 \\u0438\\u0437 \\u043A\\u043E\\u043B\\u043B\\u0435\\u043A\\u0446\\u0438\\u0438 TerraClimate \\u2014 \\u044D\\u0442\\u043E \\u043D\\u0430\\u0431\\u043E\\u0440 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0435\\u0436\\u0435\\u043C\\u0435\\u0441\\u044F\\u0447\\u043D\\u043E\\u0433\\u043E \\u043A\\u043B\\u0438\\u043C\\u0430\\u0442\\u0430 \\u0438 \\u043A\\u043B\\u0438\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0433\\u043E \\u0432\\u043E\\u0434\\u043D\\u043E\\u0433\\u043E \\u0431\\u0430\\u043B\\u0430\\u043D\\u0441\\u0430 \\u0434\\u043B\\u044F \\u0433\\u043B\\u043E\\u0431\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0437\\u0435\\u043C\\u043D\\u044B\\u0445 \\u043F\\u043E\\u0432\\u0435\\u0440\\u0445\\u043D\\u043E\\u0441\\u0442\\u0435\\u0439. \\u041E\\u043D \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442 \\u0438\\u043D\\u0442\\u0435\\u0440\\u043F\\u043E\\u043B\\u044F\\u0446\\u0438\\u044E \\u0441 \\u043A\\u043B\\u0438\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0439 \\u043F\\u043E\\u0434\\u0434\\u0435\\u0440\\u0436\\u043A\\u043E\\u0439, \\u0441\\u043E\\u0447\\u0435\\u0442\\u0430\\u044F \\u043A\\u043B\\u0438\\u043C\\u0430\\u0442\\u043E\\u043B\\u043E\\u0433\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0435 \\u043D\\u043E\\u0440\\u043C\\u044B \\u0441 \\u0432\\u044B\\u0441\\u043E\\u043A\\u0438\\u043C \\u043F\\u0440\\u043E\\u0441\\u0442\\u0440\\u0430\\u043D\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u043C \\u0440\\u0430\\u0437\\u0440\\u0435\\u0448\\u0435\\u043D\\u0438\\u0435\\u043C.\"))))));\n}\nexport default ChartTabs;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Box, Divider, IconButton, Menu, MenuItem, Stack, Tooltip, Typography } from '@mui/material';\nimport React from 'react';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Link from '@mui/material/Link';\nimport ListAndView from './elements/ListAndView';\nimport ListField from './field/List';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport ChartTabs from './statistic/ChartTabs';\nimport PlayCircleOutlineIcon from '@mui/icons-material/PlayCircleOutline';\nimport DialogYesNo from './elements/DialodYesNo';\nimport axios from 'axios';\nimport { useSnackbar } from 'notistack';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport { useSSE } from 'react-hooks-sse';\nfunction Statistics(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const [field, setField] = React.useState(null);\n const [buildDialog, setBuildDialog] = React.useState(false);\n const [progress, setProgress] = React.useState([]);\n const [alhorMore, setAlhorMore] = React.useState(null);\n const list = React.useRef(null);\n const tasks = useSSE('tasks', {\n value: []\n });\n React.useEffect(() => {\n setProgress(tasks.value.map(x => Number(x._id.replace(\"history:\", \"\"))));\n }, [tasks.value]);\n const more_click = (event) => {\n setAlhorMore(event.currentTarget);\n };\n const more_close = () => {\n setAlhorMore(null);\n };\n const report_download = (url) => {\n more_close();\n window.location.href = url;\n };\n const rebuild = () => {\n if (props.token && field) {\n setField(null);\n axios.get(`/statistic/calc/${field === null || field === void 0 ? void 0 : field.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n enqueueSnackbar('Процесс построения отчета запущен', { variant: 'success', autoHideDuration: 1000 });\n setBuildDialog(false);\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n setBuildDialog(false);\n });\n }\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto', pt: '20px' } },\n React.createElement(Breadcrumbs, { \"aria-label\": \"breadcrumb\", sx: { pl: 3 } },\n React.createElement(Link, { underline: \"hover\", color: \"inherit\", href: \"/\" }, \"Agriculture\"),\n React.createElement(Typography, { color: \"text.primary\" }, \"\\u0421\\u0442\\u0430\\u0442\\u0438\\u0441\\u0442\\u0438\\u043A\\u0430\")),\n React.createElement(Divider, null),\n React.createElement(ListAndView, { left: React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: {\n backgroundColor: '#fafafa',\n height: '52px',\n borderBottom: '1px solid #eaeaea',\n display: 'flex',\n alignItems: 'center',\n padding: '0px 16px'\n } },\n React.createElement(Tooltip, { title: \"\\u041F\\u0435\\u0440\\u0435\\u0441\\u043E\\u0431\\u0440\\u0430\\u0442\\u044C \\u0433\\u0440\\u0430\\u0444\\u0438\\u043A\\u0438\" },\n React.createElement(IconButton, { \"aria-label\": \"fingerprint\", color: \"success\", disabled: field == null || tasks.value.filter(x => x._id == `history:${field === null || field === void 0 ? void 0 : field.id}`).length > 0, onClick: () => setBuildDialog(true) },\n React.createElement(PlayCircleOutlineIcon, null))),\n React.createElement(Tooltip, { title: \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C\" },\n React.createElement(IconButton, { \"aria-label\": \"fingerprint\" },\n React.createElement(RefreshIcon, null))),\n React.createElement(Divider, { orientation: 'vertical', flexItem: true, sx: { margin: '0px 8px' } }),\n React.createElement(IconButton, { disabled: field == null || tasks.value.filter(x => x._id == `history:${field === null || field === void 0 ? void 0 : field.id}`).length > 0, onClick: more_click },\n React.createElement(MoreVertIcon, null)),\n React.createElement(Menu, { id: \"basic-menu\", anchorEl: alhorMore, open: alhorMore !== null, onClose: more_close, MenuListProps: {\n 'aria-labelledby': 'basic-button',\n } },\n React.createElement(MenuItem, { onClick: () => report_download(`/statistic/export/drought/${field === null || field === void 0 ? void 0 : field.id}/xlsx`) }, \"\\u042D\\u043A\\u0441\\u043F\\u043E\\u0440\\u0442 \\u0437\\u0430\\u0441\\u0443\\u0445\\u0438\"),\n React.createElement(MenuItem, { onClick: () => report_download(`/statistic/export/climate/${field === null || field === void 0 ? void 0 : field.id}/xlsx`) }, \"\\u042D\\u043A\\u0441\\u043F\\u043E\\u0440\\u0442 \\u0442\\u0435\\u043C\\u043F\\u0435\\u0440\\u0430\\u0442\\u0443\\u0440\\u044B\"),\n React.createElement(MenuItem, { onClick: () => report_download(`/statistic/export/precipitation/${field === null || field === void 0 ? void 0 : field.id}/xlsx`) }, \"\\u042D\\u043A\\u0441\\u043F\\u043E\\u0440\\u0442 \\u043E\\u0441\\u0430\\u0434\\u043A\\u043E\\u0432\"))),\n React.createElement(Box, { sx: {\n height: 'calc(100vh - 180px)',\n overflowY: 'scroll',\n \"&::-webkit-scrollbar\": {\n width: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(ListField, { ref: list, showWarning: false, progressItems: progress, token: props.token, select: setField }))), view: React.createElement(ChartTabs, { token: props.token, field: field, loaded: tasks.value.filter(x => x._id == `history:${field === null || field === void 0 ? void 0 : field.id}`).length > 0 }) })),\n React.createElement(DialogYesNo, { title: '\\u0413\\u0440\\u0430\\u0444\\u0438\\u043A', question: `Вы хотите пересобрать данные и построить графики для поля ${field === null || field === void 0 ? void 0 : field.name} повторно?`, open: buildDialog, yes: () => rebuild(), no: setBuildDialog })));\n}\nexport default Statistics;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport MiniDrawer from '../components/Header';\nimport Statistics from '../components/Statistic';\nconst Statistic = (_a) => {\n var props = __rest(_a, []);\n const drawler = React.useRef(null);\n return (React.createElement(MiniDrawer, { type: 'stat', ref: drawler },\n React.createElement(Statistics, { token: props.token })));\n};\nexport default Statistic;\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\nimport IconButton from '@mui/material/IconButton';\nimport AddIcon from '@mui/icons-material/Add';\nimport ImportIcon from '@mui/icons-material/UploadFile';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport EditIcon from '@mui/icons-material/Edit';\nimport DialogYesNo from './DialodYesNo';\nimport { Tooltip } from '@mui/material';\nimport EditLocationIcon from '@mui/icons-material/EditLocation';\nimport CloudDownloadIcon from '@mui/icons-material/CloudDownload';\nconst StorageAppBar = forwardRef((props, ref) => {\n const [selected, setSelected] = React.useState([]);\n const [deleteDialog, setDeleteDialog] = React.useState(false);\n const editMapsModels = ['agrochemical'];\n const autoUploadsModels = ['meteo'];\n React.useEffect(() => {\n }, [, selected]);\n useImperativeHandle(ref, () => ({\n setItems: changeSelectedItems,\n selected: selected,\n destroy: resertSelectedItems\n }));\n const changeSelectedItems = (state, value) => {\n let buf = selected.filter(x => x !== value);\n if (state === true) {\n buf.push(value);\n }\n setSelected(buf);\n return buf;\n };\n const resertSelectedItems = () => {\n setSelected([]);\n return [];\n };\n const deleteSelectedItems = () => {\n props.delete(selected);\n setDeleteDialog(false);\n };\n return (React.createElement(React.Fragment, null,\n props.meta !== null && (React.createElement(React.Fragment, null,\n React.createElement(Box, { sx: {\n display: 'flex',\n mt: '0px !important',\n p: '4px 16px',\n paddingTop: '6px',\n alignItems: 'center',\n width: 'auto',\n bgcolor: 'background.paper',\n color: 'text.secondary',\n '& svg': {\n m: 1.5,\n },\n '& hr': {\n mx: 0.5,\n }\n } },\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\" },\n React.createElement(\"span\", null,\n React.createElement(IconButton, { onClick: () => props.create(true), sx: { width: '40px', height: '40px' }, disabled: !props.meta.create_variant.includes(1) },\n React.createElement(AddIcon, null)))),\n React.createElement(Tooltip, { title: \"\\u0418\\u043C\\u043F\\u043E\\u0440\\u0442 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445\" },\n React.createElement(\"span\", null,\n React.createElement(IconButton, { onClick: () => props.import(true), sx: { width: '40px', height: '40px' }, disabled: !props.meta.create_variant.includes(2) },\n React.createElement(ImportIcon, null)))),\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true }),\n props.meta.create_variant.includes(3) && (React.createElement(\"span\", null,\n React.createElement(IconButton, { onClick: () => props.update(selected.length > 0 ? selected[0] : 0), sx: { width: '40px', height: '40px' }, disabled: selected.length !== 1 },\n React.createElement(EditIcon, null)))),\n React.createElement(Tooltip, { title: \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\" },\n React.createElement(\"span\", null,\n React.createElement(IconButton, { onClick: () => setDeleteDialog(true), sx: { width: '40px', height: '40px' }, disabled: selected.length === 0 },\n React.createElement(DeleteIcon, null)))),\n editMapsModels.includes(props.model) && props.editmap !== undefined && (React.createElement(React.Fragment, null,\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true }),\n React.createElement(Tooltip, { title: \"\\u0420\\u0435\\u0434\\u0430\\u043A\\u0442\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043A\\u0430\\u0440\\u0442\\u0435\" },\n React.createElement(\"span\", null,\n React.createElement(IconButton, { onClick: () => props.editmap ? props.editmap(true) : () => { }, sx: { width: '40px', height: '40px' }, disabled: props.editmap == undefined },\n React.createElement(EditLocationIcon, null)))))),\n autoUploadsModels.includes(props.model) && props.autoupload !== undefined && (React.createElement(React.Fragment, null,\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true }),\n React.createElement(Tooltip, { title: \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u0438\\u0442\\u044C \\u0438\\u0437 \\u0432\\u043D\\u0435\\u0448\\u043D\\u0435\\u0433\\u043E \\u0438\\u0441\\u0442\\u043E\\u0447\\u043D\\u0438\\u043A\\u0430\" },\n React.createElement(\"span\", null,\n React.createElement(IconButton, { onClick: () => props.autoupload ? props.autoupload(true) : () => { }, sx: { width: '40px', height: '40px' }, disabled: props.autoupload == undefined },\n React.createElement(CloudDownloadIcon, null))))))),\n props.children)),\n React.createElement(DialogYesNo, { open: deleteDialog, no: setDeleteDialog, question: `Данные будут удалены безвозвратно. Вы действительно хотите удалить ${selected.length} элементов?`, title: 'Удаление объектов', yes: deleteSelectedItems })));\n});\nexport default StorageAppBar;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Divider, LinearProgress, Typography } from '@mui/material';\nimport { useUploadForm } from '../../utils/upload';\nimport { useSnackbar } from 'notistack';\nexport default function ImportDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const { uploadForm, destroyControls, progress, isSuccess } = useUploadForm(`/${props.model}/import`);\n const [fileXls, setFile] = React.useState(null);\n const [stantion, setStantion] = React.useState(1);\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const fileChange = (event) => {\n setFile(event.target.files ? event.target.files[0] : null);\n };\n React.useEffect(() => {\n if (props.model === 'meteo') {\n setAccess(fileXls !== null && stantion > 0);\n }\n else {\n setAccess(fileXls !== null);\n }\n }, [fileXls]);\n const import_file = () => __awaiter(this, void 0, void 0, function* () {\n if (fileXls !== null) {\n const formData = new FormData();\n formData.append(\"xls\", fileXls);\n if (props.model === 'meteo') {\n formData.append(\"stantion\", stantion.toString());\n }\n yield uploadForm(props.token, formData)\n .then(function (response) {\n if (response.data.error !== null) {\n setError(response.data.error);\n alert(response.data.error);\n destroy();\n let error = response.data.error;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n }\n else {\n destroy();\n props.setState(false);\n if (props.refresh) {\n props.refresh();\n }\n enqueueSnackbar('Успешный импорт', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n setError(error);\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n }\n });\n const destroy = () => __awaiter(this, void 0, void 0, function* () {\n setFile(null);\n setError(null);\n destroyControls();\n });\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, `Импорт в ${props.title}`),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u0418\\u043C\\u043F\\u043E\\u0440\\u0442 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u2014 \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445, \\u0432\\u0441\\u0442\\u0430\\u0432\\u043A\\u0430 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0438\\u0437 \\u0432\\u043D\\u0435\\u0448\\u043D\\u0438\\u0445 \\u0438\\u0441\\u0442\\u043E\\u0447\\u043D\\u0438\\u043A\\u043E\\u0432 \\u0432 \\u0431\\u0430\\u0437\\u0443 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445.\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Typography, { variant: 'body2' }, props.meta.accept == '.csv' && ('Разделитилем для формата CSV должно быть ; (точка с запятой)')),\n props.model === 'meteo' && (React.createElement(TextField, { margin: \"dense\", id: \"stantion\", label: \"\\u0421\\u0442\\u0430\\u043D\\u0446\\u0438\\u044F\", fullWidth: true, type: \"number\", variant: \"filled\", onChange: (e) => setStantion(Number(e.target.value)) })),\n React.createElement(Box, { component: \"span\", sx: { p: 2, border: '1px dashed grey', display: 'flex', justifyContent: 'center' } },\n React.createElement(Stack, { spacing: 2 },\n React.createElement(Button, { variant: \"text\", component: \"label\" },\n \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0444\\u0430\\u0439\\u043B\",\n React.createElement(\"input\", { hidden: true, accept: props.meta.accept, multiple: false, type: \"file\", onChange: fileChange })),\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, fileXls !== null ? fileXls.name : 'Файл не выбран'))),\n progress > 0 && access == true && (React.createElement(LinearProgress, { variant: \"determinate\", value: progress })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: import_file, disabled: !access || progress > 0 }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u0438\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.setState(false), disabled: progress > 0 }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","import React, { useImperativeHandle, forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport { Stack, TextField } from '@mui/material';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst Password = forwardRef((props, ref) => {\n const [value, setValue] = React.useState();\n const [value_check, setValueCheck] = React.useState();\n useImperativeHandle(ref, () => ({}));\n React.useEffect(() => {\n if (value && value_check) {\n if ((value === null || value === void 0 ? void 0 : value.target.value) == (value_check === null || value_check === void 0 ? void 0 : value_check.target.value)) {\n props.setPassword(value);\n }\n else {\n props.setPassword(null);\n }\n }\n }, [value, value_check]);\n return (React.createElement(Stack, { component: \"form\", sx: {\n width: 'auto',\n minWidth: '340px'\n }, spacing: 2, noValidate: true, autoComplete: \"off\" },\n React.createElement(TextField, { autoComplete: 'new-password', disabled: props.disabled, onChange: (e) => setValue(e), type: 'password', key: `field_password}`, label: 'Пароль', id: 'password', variant: \"filled\" }),\n React.createElement(TextField, { autoComplete: 'new-password', disabled: props.disabled, onChange: (e) => setValueCheck(e), type: 'password', key: `field_password-check`, label: 'Повторить пароль', id: 'password-check', variant: \"filled\", error: (value === null || value === void 0 ? void 0 : value.target.value) != (value_check === null || value_check === void 0 ? void 0 : value_check.target.value), helperText: (value === null || value === void 0 ? void 0 : value.target.value) != (value_check === null || value_check === void 0 ? void 0 : value_check.target.value) ? 'Пароли не совпадают' : '' })));\n});\nexport default Password;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Divider, FormControlLabel, Switch, Typography } from '@mui/material';\nimport axios from 'axios';\nimport Select from '@mui/material/Select';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormControl from '@mui/material/FormControl';\nimport { useSnackbar } from 'notistack';\nimport Password from '../admin/Password';\nexport default function CreateDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const [relationData, setRelationData] = React.useState([]);\n const [filterData, setFilterData] = React.useState([]);\n const data = React.useRef([]);\n React.useEffect(() => {\n if (props.meta.create_variant.includes(1)) {\n let urls = props.meta.columns.filter(x => x.relation.length > 0)\n .map((rel) => {\n let promise = {\n url: `/${rel.relation[0]._to}/list?limit=100`,\n get: axios.get(`/${rel.relation[0]._to}/list?limit=100`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n }),\n view: rel.relation[0]._view\n };\n return promise;\n });\n if (urls.length > 0) {\n axios.all(urls.map(x => x.get))\n .then(axios.spread((...res) => {\n let items = res.map((config) => {\n let view = urls.filter(x => x.url === config.config.url);\n let data_items = 'items' in config.data ? config.data.items : config.data;\n let r = {\n url: config.config.url,\n data: data_items.map((item) => {\n let value = {\n value: item.id,\n name: view[0].view in item ? item[view[0].view] : ''\n };\n return value;\n })\n };\n return r;\n });\n setRelationData(items);\n }));\n }\n }\n }, [props.meta.columns]);\n const change = (name, e, checked = null) => {\n let fv = {\n name: name,\n value: e == null ? '' : (checked || e.target.value)\n };\n let fields = data.current.filter(x => x.name !== name);\n fields.push(fv);\n data.current = fields;\n check();\n };\n const open = (name) => {\n let table_name = name.split('_').slice(1, 2)[0];\n if (table_name !== undefined) {\n let index = props.meta.columns.findIndex(x => x.name == name);\n let relations = props.meta.columns.slice(0, index);\n let tables = relations.filter(x => x.name != name && x.relation.length > 0);\n let current = props.meta.columns.filter(x => x.name == name)[0];\n let filter = tables.map((x) => {\n var _a;\n if (data.current) {\n let values = (_a = data.current) === null || _a === void 0 ? void 0 : _a.filter(y => y.name == x.name);\n if (values.length > 0) {\n let _name = [table_name].concat(x.name.split('_').slice(1)).join('_');\n return `${_name}=${values[0].value}`;\n }\n }\n return '';\n });\n filter = filter.filter(x => x !== '');\n let url = `/${current.relation[0]._to}/list?limit=100${filter.length > 0 ? '&' : ''}${filter.join('&')}`;\n axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data) {\n let fl = {\n name: name,\n value: response.data.items.map((x) => x.id)\n };\n setFilterData([fl]);\n }\n });\n }\n };\n const check = () => {\n let names = props.meta.columns.filter(x => x.name !== 'id').map((x) => {\n return x.name;\n });\n let mod = data.current.filter(x => names.includes(x.name) == true && x.value !== '');\n setAccess(mod.length == names.length);\n };\n const create = () => {\n let data_value = {\n id: \"0\"\n };\n data.current.forEach((e) => {\n data_value[e.name] = e.value;\n });\n axios.post(`${props.model}/create`, JSON.stringify(data_value), {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n if (props.refresh) {\n props.refresh();\n }\n props.setState(false);\n enqueueSnackbar('Запись успешно добавлена', { variant: 'success' });\n }\n })\n .catch((reason) => {\n let error = reason.response.data.detail || reason.message;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n };\n const getType = (type) => {\n if (type == 'integer' || type == 'double') {\n return 'number';\n }\n else if (type == 'datetime') {\n return 'datetime-local';\n }\n else if (type == 'date') {\n return 'date';\n }\n else if (type == 'boolean') {\n return 'boolean';\n }\n else {\n return 'text';\n }\n };\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, `Создать запись в ${props.title}`),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u043D\\u043E\\u0432\\u0443\\u044E \\u0437\\u0430\\u043F\\u0438\\u0441\\u044C \\u0432 \\u0442\\u0430\\u0431\\u043B\\u0438\\u0446\\u0443\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Stack, { component: \"form\", sx: {\n width: 'auto',\n minWidth: '340px'\n }, spacing: 2, noValidate: true, autoComplete: \"off\" }, props.meta.columns.filter(x => x.name !== 'id')\n .map((column, index) => {\n let _type = getType(column.type_);\n if (column.name == 'password') {\n _type = 'password';\n }\n return (column.relation.length == 0\n ?\n (React.createElement(React.Fragment, null, _type !== 'boolean'\n ?\n (React.createElement(React.Fragment, null, _type == 'password'\n ?\n (React.createElement(Password, { disabled: props.token == null, setPassword: (value) => change(column.name, value) }))\n :\n (React.createElement(TextField, { disabled: props.token == null, onChange: (e) => change(column.name, e), type: _type, key: `field_${column.name}`, label: column.type_.includes('date') ? '' : column.description.replace(`${props.prefix}_`, ''), helperText: column.type_.includes('date') == false ? '' : column.description.replace(`${props.prefix}_`, ''), id: column.name, variant: \"filled\" }))))\n :\n (React.createElement(FormControlLabel, { disabled: props.token == null, key: `field_${column.name}`, control: React.createElement(Switch, { id: column.name, onChange: (e, c) => change(column.name, e, c), name: column.name }), label: column.type_.includes('date') ? '' : column.description.replace(`${props.prefix}_`, '') }))))\n :\n (React.createElement(FormControl, { key: `field_for__${column.name}`, fullWidth: true, variant: \"filled\" },\n React.createElement(Select, { labelId: \"demo-simple-select-label\", id: column.name, key: `field_${column.name}`, onChange: (e) => change(column.name, e), onOpen: e => open(column.name), disabled: props.token == null }, relationData.filter(x => x.url === `/${column.relation[0]._to}/list?limit=100`)\n .map((item) => {\n return (item.data.map((kv) => {\n let disabled = false;\n if (filterData.length > 0) {\n let filter = filterData.filter(x => x.name == column.name);\n if (filter.length > 0) {\n disabled = !filter[0].value.includes(kv.value);\n }\n }\n return (React.createElement(MenuItem, { disabled: disabled, value: kv.value }, kv.name));\n }));\n })),\n React.createElement(FormHelperText, null, column.description.replace(`${props.prefix}_`, '')))));\n })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: () => create(), disabled: !access }, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.setState(false) }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Divider, FormControlLabel, Switch, Typography } from '@mui/material';\nimport axios from 'axios';\nimport Select from '@mui/material/Select';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormControl from '@mui/material/FormControl';\nimport { useSnackbar } from 'notistack';\nimport Password from '../admin/Password';\nexport default function UpdateDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const [relationData, setRelationData] = React.useState([]);\n const data = React.useRef([]);\n React.useEffect(() => {\n if (props.meta.create_variant.includes(1)) {\n let urls = props.meta.columns.filter(x => x.relation.length > 0)\n .map((rel) => {\n let promise = {\n url: `/${rel.relation[0]._to}/list?limit=100`,\n get: axios.get(`/${rel.relation[0]._to}/list?limit=100`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n }),\n view: rel.relation[0]._view\n };\n return promise;\n });\n if (urls.length > 0) {\n axios.all(urls.map(x => x.get))\n .then(axios.spread((...res) => {\n let items = res.map((config) => {\n let view = urls.filter(x => x.url === config.config.url);\n let data_items = 'items' in config.data ? config.data.items : config.data;\n let r = {\n url: config.config.url,\n data: data_items.map((item) => {\n let value = {\n value: item.id,\n name: view[0].view in item ? item[view[0].view] : ''\n };\n return value;\n })\n };\n return r;\n });\n setRelationData(items);\n }));\n }\n }\n }, [props.meta.columns]);\n React.useEffect(() => {\n let defaultValues = props.meta.columns.filter(x => x.name !== 'id').map((x) => {\n return {\n name: x.name,\n value: props.item[x.name]\n };\n });\n data.current = defaultValues;\n check();\n }, [props.item]);\n const change = (name, e, checked = null) => {\n let fv = {\n name: name,\n value: e == null ? '' : (checked || e.target.value)\n };\n let fields = data.current.filter(x => x.name !== name);\n fields.push(fv);\n data.current = fields;\n check();\n };\n const check = () => {\n let names = props.meta.columns.filter(x => x.name !== 'id').map((x) => {\n return x.name;\n });\n let mod = data.current.filter(x => names.includes(x.name) == true && x.value !== '');\n setAccess(mod.length == names.length);\n };\n const update = () => {\n let data_value = {\n id: \"0\"\n };\n data.current.forEach((e) => {\n data_value[e.name] = e.value;\n });\n axios.put(`${props.model}/update/${props.item.id}`, JSON.stringify(data_value), {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n if (props.refresh) {\n props.refresh();\n }\n props.setState(false);\n enqueueSnackbar('Запись успешно обновленая', { variant: 'success' });\n }\n })\n .catch((reason) => {\n let deatailisArray = Array.isArray(reason.response.data.detail);\n let error = (deatailisArray == false ? reason.response.data.detail : reason.response.data.detail[0].msg) || reason.message;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n };\n const getType = (type) => {\n if (type == 'integer' || type == 'double') {\n return 'number';\n }\n else if (type == 'datetime') {\n return 'datetime-local';\n }\n else if (type == 'date') {\n return 'date';\n }\n else if (type == 'boolean') {\n return 'boolean';\n }\n else {\n return 'text';\n }\n };\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, `Обновить ${props.title}`),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C \\u0437\\u0430\\u043F\\u0438\\u0441\\u044C \\u0432 \\u0442\\u0430\\u0431\\u043B\\u0438\\u0446\\u0435\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Stack, { component: \"form\", sx: {\n width: 'auto',\n minWidth: '340px'\n }, spacing: 2, noValidate: true, autoComplete: \"off\" }, props.meta.columns.filter(x => x.name !== 'id')\n .map((column, index) => {\n var _a;\n let _type = getType(column.type_);\n if (column.name == 'password') {\n _type = 'password';\n }\n return (column.relation.length == 0\n ?\n (React.createElement(React.Fragment, null, _type !== 'boolean'\n ?\n (React.createElement(React.Fragment, null, _type == 'password'\n ?\n (React.createElement(Password, { disabled: props.token == null, setPassword: (value) => change(column.name, value) }))\n :\n (React.createElement(TextField, { autoComplete: 'new-password', disabled: props.token == null || column.name == 'username', onChange: (e) => change(column.name, e), type: _type, key: `field_${column.name}`, label: column.type_.includes('date') ? '' : column.description.replace(`${props.prefix}_`, ''), helperText: column.type_.includes('date') == false ? '' : column.description.replace(`${props.prefix}_`, ''), id: column.name, defaultValue: column.name != 'password' ? props.item[column.name] : '', variant: \"filled\" }))))\n :\n (React.createElement(FormControlLabel, { disabled: props.token == null, key: `field_${column.name}`, control: React.createElement(Switch, { id: column.name, onChange: (e, c) => change(column.name, e, c), defaultChecked: props.item[column.name], name: column.name }), label: column.type_.includes('date') ? '' : column.description.replace(`${props.prefix}_`, '') }))))\n :\n (React.createElement(FormControl, { key: `field_for__${column.name}`, fullWidth: true, variant: \"filled\" },\n React.createElement(Select, { defaultValue: (_a = props.item[column.relation[0]._fk.replace('_id', '')]) === null || _a === void 0 ? void 0 : _a.id, id: column.name, key: `field_${column.name}`, onChange: (e) => change(column.name, e), disabled: props.token == null }, relationData.filter(x => x.url === `/${column.relation[0]._to}/list?limit=100`)\n .map((item) => {\n return (item.data.map((kv) => {\n return (React.createElement(MenuItem, { value: kv.value }, kv.name));\n }));\n })),\n React.createElement(FormHelperText, null, column.description.replace(`${props.prefix}_`, '')))));\n })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: () => update(), disabled: !access }, \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.setState(false) }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Divider } from '@mui/material';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport OpenStreetMaps from '../map/OpenStreetMaps';\nimport axios from 'axios';\nexport default function EditInMapDialog(_a) {\n var props = __rest(_a, []);\n const map = React.useRef(null);\n const [field, setField] = React.useState(null);\n const [date, setDate] = React.useState(null);\n const [fields, setFields] = React.useState([]);\n const [dates, setDates] = React.useState([]);\n const [selectedElement, setSelectedElement] = React.useState(0);\n const [center, setCenter] = React.useState({ lat: 49.9714, lng: 82.6059 });\n React.useEffect(() => {\n if (props.reference) {\n get_fields();\n get_dates();\n }\n }, [props.reference]);\n React.useEffect(() => {\n var _a;\n if (props.open == true\n && field != null\n && date != null) {\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setEditebleObject(`${props.reference}/edit/map/${field === null || field === void 0 ? void 0 : field.id}/${date === null || date === void 0 ? void 0 : date.id}`);\n }\n }, [field, date]);\n const get_fields = () => {\n setFields([\n {\n id: 1,\n label: \"Опытное поле\",\n name: '',\n date_created: new Date(),\n file_path: '',\n latitude_center: 0,\n longitude_center: 0,\n user_id: 1,\n plot_count: 0\n }\n ]);\n };\n const get_dates = () => {\n setDates([\n {\n id: '2022-09-06',\n label: '2022-09-06'\n }\n ]);\n };\n const get_data = () => {\n axios.get(`/${props.reference}/edit/map/data`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data) {\n console.log(response.data);\n }\n });\n };\n const save = (data) => {\n axios.put(`${props.reference}/edit/map/${field === null || field === void 0 ? void 0 : field.id}/${date === null || date === void 0 ? void 0 : date.id}`, JSON.stringify(data), {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n console.log(responce.data);\n }\n })\n .catch((reason) => {\n });\n };\n const close = () => {\n props.setState(false);\n };\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'md', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, \"\\u0420\\u0435\\u0434\\u0430\\u043A\\u0442\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043A\\u0430\\u0440\\u0442\\u0435\"),\n React.createElement(DialogContent, null,\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Stack, { spacing: 2, direction: 'row', divider: React.createElement(Divider, { orientation: \"vertical\", flexItem: true }) },\n React.createElement(Autocomplete, { value: field, onChange: (e, newValue) => {\n setField(newValue);\n }, disablePortal: true, id: \"combo-box-demo\", options: fields, sx: { width: '50%' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u0423\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\" })) }),\n React.createElement(Autocomplete, { value: date, onChange: (e, newValue) => {\n setDate(newValue);\n }, disablePortal: true, id: \"combo-box-demo\", options: dates, sx: { width: '50%' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043C\\u0435\\u0440\\u043E\\u0432\" })) })),\n React.createElement(Box, { component: \"span\", sx: { p: 0, border: '1px dashed grey', display: 'flex', width: '700px', height: '480px' } },\n React.createElement(OpenStreetMaps, { ref: map, token: props.token, url: null, center: center, editMode: {\n polygon: false,\n circlemarker: false,\n remove: false\n }, setEditResult: save, draw: false, item: 0 })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: () => close() }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\")))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Divider, FormControlLabel, Switch, Typography } from '@mui/material';\nimport axios from 'axios';\nimport Select from '@mui/material/Select';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormControl from '@mui/material/FormControl';\nimport { useSnackbar } from 'notistack';\nimport Password from '../admin/Password';\nexport default function AutoUploadDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const [relationData, setRelationData] = React.useState([]);\n const [filterData, setFilterData] = React.useState([]);\n const data = React.useRef([]);\n React.useEffect(() => {\n let urls = props.columns.filter(x => x.relation.length > 0)\n .map((rel) => {\n let promise = {\n url: `/${rel.relation[0]._to}/list?limit=100`,\n get: axios.get(`/${rel.relation[0]._to}/list?limit=100`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n }),\n view: rel.relation[0]._view\n };\n return promise;\n });\n if (urls.length > 0) {\n axios.all(urls.map(x => x.get))\n .then(axios.spread((...res) => {\n let items = res.map((config) => {\n let view = urls.filter(x => x.url === config.config.url);\n let data_items = 'items' in config.data ? config.data.items : config.data;\n let r = {\n url: config.config.url,\n data: data_items.map((item) => {\n let value = {\n value: item.id,\n name: view[0].view in item ? item[view[0].view] : ''\n };\n return value;\n })\n };\n return r;\n });\n setRelationData(items);\n }));\n }\n }, [props.columns]);\n const change = (name, e, checked = null) => {\n let fv = {\n name: name,\n value: e == null ? '' : (checked || e.target.value)\n };\n let fields = data.current.filter(x => x.name !== name);\n fields.push(fv);\n data.current = fields;\n check();\n };\n const open = (name) => {\n let table_name = name.split('_').slice(1, 2)[0];\n if (table_name !== undefined) {\n let index = props.columns.findIndex(x => x.name == name);\n let relations = props.columns.slice(0, index);\n let tables = relations.filter(x => x.name != name && x.relation.length > 0);\n let current = props.columns.filter(x => x.name == name)[0];\n let filter = tables.map((x) => {\n var _a;\n if (data.current) {\n let values = (_a = data.current) === null || _a === void 0 ? void 0 : _a.filter(y => y.name == x.name);\n if (values.length > 0) {\n let _name = [table_name].concat(x.name.split('_').slice(1)).join('_');\n return `${_name}=${values[0].value}`;\n }\n }\n return '';\n });\n filter = filter.filter(x => x !== '');\n let url = `/${current.relation[0]._to}/list?limit=100${filter.length > 0 ? '&' : ''}${filter.join('&')}`;\n axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data) {\n let fl = {\n name: name,\n value: response.data.items.map((x) => x.id)\n };\n setFilterData([fl]);\n }\n });\n }\n };\n const check = () => {\n let names = props.columns.filter(x => x.name !== 'id').map((x) => {\n return x.name;\n });\n let mod = data.current.filter(x => names.includes(x.name) == true && x.value !== '');\n setAccess(mod.length == names.length);\n };\n const upload = () => {\n let data_value = {\n id: \"0\"\n };\n data.current.forEach((e) => {\n data_value[e.name] = e.value;\n });\n axios.post(`${props.model}/autoupload`, JSON.stringify(data_value), {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n if (props.refresh) {\n props.refresh();\n }\n props.setState(false);\n if (responce.data.success == true) {\n enqueueSnackbar(`Данные успешно загружены (${responce.data.count})`, { variant: 'success' });\n }\n else {\n enqueueSnackbar(responce.data.error, { variant: 'error' });\n }\n }\n })\n .catch((reason) => {\n let error = reason.response.data.detail || reason.message;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n };\n const getType = (type) => {\n if (type == 'integer' || type == 'double') {\n return 'number';\n }\n else if (type == 'datetime') {\n return 'datetime-local';\n }\n else if (type == 'date') {\n return 'date';\n }\n else if (type == 'boolean') {\n return 'boolean';\n }\n else {\n return 'text';\n }\n };\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, `Загрузить в ${props.title}`),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0438\\u0437 \\u0432\\u043D\\u0435\\u0448\\u043D\\u0435\\u0433\\u043E \\u0438\\u0441\\u0442\\u043E\\u0447\\u043D\\u0438\\u043A\\u0430\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Stack, { component: \"form\", sx: {\n width: 'auto',\n minWidth: '340px'\n }, spacing: 2, noValidate: true, autoComplete: \"off\" }, props.columns.filter(x => x.name !== 'id')\n .map((column, index) => {\n let _type = getType(column.type_);\n if (column.name == 'password') {\n _type = 'password';\n }\n return (column.relation.length == 0\n ?\n (React.createElement(React.Fragment, null, _type !== 'boolean'\n ?\n (React.createElement(React.Fragment, null, _type == 'password'\n ?\n (React.createElement(Password, { disabled: props.token == null, setPassword: (value) => change(column.name, value) }))\n :\n (React.createElement(TextField, { disabled: props.token == null, onChange: (e) => change(column.name, e), type: _type, key: `field_${column.name}`, label: column.type_.includes('date') ? '' : column.description.replace(`${props.prefix}_`, ''), helperText: column.type_.includes('date') == false ? '' : column.description.replace(`${props.prefix}_`, ''), id: column.name, variant: \"filled\" }))))\n :\n (React.createElement(FormControlLabel, { disabled: props.token == null, key: `field_${column.name}`, control: React.createElement(Switch, { id: column.name, onChange: (e, c) => change(column.name, e, c), name: column.name }), label: column.type_.includes('date') ? '' : column.description.replace(`${props.prefix}_`, '') }))))\n :\n (React.createElement(FormControl, { key: `field_for__${column.name}`, fullWidth: true, variant: \"filled\" },\n React.createElement(Select, { labelId: \"demo-simple-select-label\", id: column.name, key: `field_${column.name}`, onChange: (e) => change(column.name, e), onOpen: e => open(column.name), disabled: props.token == null }, relationData.filter(x => x.url === `/${column.relation[0]._to}/list?limit=100`)\n .map((item) => {\n return (item.data.map((kv) => {\n let disabled = false;\n if (filterData.length > 0) {\n let filter = filterData.filter(x => x.name == column.name);\n if (filter.length > 0) {\n disabled = !filter[0].value.includes(kv.value);\n }\n }\n return (React.createElement(MenuItem, { disabled: disabled, value: kv.value }, kv.name));\n }));\n })),\n React.createElement(FormHelperText, null, column.description.replace(`${props.prefix}_`, '')))));\n })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: () => upload(), disabled: !access }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u0438\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.setState(false) }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Paper from '@mui/material/Paper';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TablePagination from '@mui/material/TablePagination';\nimport TableRow from '@mui/material/TableRow';\nimport axios from 'axios';\nimport { Checkbox, Grid } from '@mui/material';\nimport StorageAppBar from './StorageAppBar';\nimport ImportDialog from '../storage/Import';\nimport CreateDialog from '../storage/Create';\nimport { useSnackbar } from 'notistack';\nimport UpdateDialog from '../storage/Update';\nimport EditInMapDialog from '../storage/EditInMap';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport AutoUploadDialog from '../storage/AutoApload';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nexport default function StorageTable(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(50);\n const [columns, setColumns] = React.useState([]);\n const [data, setData] = React.useState(null);\n const [countData, setCountData] = React.useState(0);\n const [createDialog, setCreateDialog] = React.useState(false);\n const [updateDialog, setUpdateDialog] = React.useState(false);\n const [importDialog, setImportDialog] = React.useState(false);\n const [editMapDialog, setEditMapDialog] = React.useState(false);\n const [metaAutoUpload, setMetaAutoUpload] = React.useState(null);\n const [autoUploadDialog, setAutoUploadDialog] = React.useState(false);\n const [selected, setSelected] = React.useState([]);\n const tableBar = React.useRef(null);\n React.useEffect(() => {\n if (props.token) {\n get();\n check_autoupload(props.model);\n }\n }, [, page, rowsPerPage]);\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n const refresh = () => {\n if (props.token) {\n get();\n }\n };\n const check_autoupload = (model) => {\n if (model != '') {\n axios.get(`${model}/autoupload`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n }).\n then((responce) => {\n if (responce.data) {\n setMetaAutoUpload(responce.data);\n }\n })\n .catch((reason) => {\n setMetaAutoUpload(null);\n });\n }\n return false;\n };\n const get = () => {\n let col = props.meta.columns\n .filter(x => x.name !== 'id')\n .map((item) => {\n let _width = 100;\n if (item.type_ == 'datetime') {\n _width = 150;\n }\n if (item.type_ == 'integer' || item.type_ == 'double') {\n _width = 60;\n }\n let label = item.description.replace(`${props.prefix}_`, '').toUpperCase();\n let relation = null;\n let id = item.name;\n if (item.relation.length > 0) {\n relation = item.relation[0]._view;\n label = label.replace('_ID', '');\n id = item.relation[0]._fk.replace('_id', '');\n }\n return {\n id: id,\n label: label,\n minWidth: _width,\n relation: relation\n };\n });\n setColumns(col);\n axios.get(`${props.model}/list?limit=${rowsPerPage}&offset=${page * rowsPerPage}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n }).\n then((responce) => {\n if (responce.data) {\n setData(responce.data.items);\n setCountData(responce.data.total);\n }\n });\n };\n const toggleCheckBox = (select, value) => {\n if (tableBar.current) {\n setSelected(tableBar.current.setItems(select, value));\n }\n };\n const deleteRows = (values) => {\n let data = {\n items: selected\n };\n axios.delete(`${props.model}/delete`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n },\n data: JSON.stringify(data)\n })\n .then((responce) => {\n if (responce.data) {\n if (tableBar.current) {\n setSelected(tableBar.current.destroy());\n }\n get();\n enqueueSnackbar('Записи удалены', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch((reason) => {\n if (tableBar.current) {\n setSelected(tableBar.current.destroy());\n }\n let error = reason.response.data.detail || reason.message;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n };\n const updateRow = (value) => {\n if (value) {\n setUpdateDialog(true);\n }\n };\n const editMapData = () => {\n };\n const resertSelected = () => {\n if (tableBar.current) {\n setSelected(tableBar.current.destroy());\n }\n };\n return (React.createElement(Paper, { sx: { width: '100%', overflow: 'hidden', margin: '0px !important', boxShadow: 'none' } },\n React.createElement(Grid, { container: true, sx: { borderBottom: (theme) => `1px solid ${theme.palette.divider}` } },\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(StorageAppBar, { ref: tableBar, model: props.model, meta: props.meta, import: setImportDialog, create: setCreateDialog, update: updateRow, delete: deleteRows, editmap: setEditMapDialog, autoupload: metaAutoUpload ? setAutoUploadDialog : undefined },\n React.createElement(React.Fragment, null,\n React.createElement(ImportDialog, { token: props.token, model: props.model, open: importDialog, title: props.title, meta: props.meta, setState: setImportDialog, refresh: refresh }),\n React.createElement(CreateDialog, { token: props.token, model: props.model, open: createDialog, title: props.title, meta: props.meta, prefix: props.prefix, setState: setCreateDialog, refresh: refresh }),\n selected.length > 0\n && data\n && props.meta.create_variant.includes(3)\n && (React.createElement(UpdateDialog, { item: (data === null || data === void 0 ? void 0 : data.filter(x => x.id == selected[0]).length) > 0 ? data === null || data === void 0 ? void 0 : data.filter(x => x.id == selected[0])[0] : 0, token: props.token, model: props.model, open: updateDialog, title: props.title, meta: props.meta, prefix: props.prefix, setState: setUpdateDialog, refresh: refresh })),\n editMapDialog == true && (React.createElement(EditInMapDialog, { open: editMapDialog, setState: setEditMapDialog, reference: props.model, token: props.token })),\n metaAutoUpload != null && (React.createElement(AutoUploadDialog, { token: props.token, model: props.model, open: autoUploadDialog, title: props.title, columns: metaAutoUpload, prefix: props.prefix, setState: setAutoUploadDialog, refresh: refresh }))))),\n React.createElement(Grid, { item: true, xs: \"auto\" },\n React.createElement(TablePagination, { labelRowsPerPage: '\\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E: ', labelDisplayedRows: (info) => {\n return `${info.from}–${info.to} из ${info.count !== -1 ? info.count : `больше чем ${info.to}`}`;\n }, rowsPerPageOptions: [25, 50, 100], component: \"div\", count: countData, rowsPerPage: rowsPerPage, page: page, onPageChange: handleChangePage, onRowsPerPageChange: handleChangeRowsPerPage }))),\n React.createElement(TableContainer, { sx: {\n height: 'calc(100vh - 228px)',\n width: 'calc(100vw - 65px)',\n \"&::-webkit-scrollbar\": {\n width: 8,\n height: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(Table, { stickyHeader: true, \"aria-label\": \"sticky table\", size: \"small\" },\n React.createElement(TableHead, null,\n React.createElement(TableRow, null,\n React.createElement(TableCell, { padding: \"checkbox\", style: { backgroundColor: 'white' } },\n React.createElement(Checkbox, { color: \"primary\", disabled: selected.length === 0, checked: selected.length !== 0, onChange: () => resertSelected(), inputProps: {\n 'aria-label': 'select all desserts',\n } })),\n columns.map((column, index) => {\n return (React.createElement(TableCell, { key: `t_${index}`, align: column.align, style: { minWidth: column.minWidth, backgroundColor: 'white', whiteSpace: 'nowrap' } }, column.label));\n }))),\n React.createElement(TableBody, null, data !== null && (React.createElement(React.Fragment, null, data.map((row, index) => {\n const labelId = `enhanced-table-checkbox-${index}`;\n const id = Number(row['id']);\n return (React.createElement(TableRow, { key: `tr_${index}`, selected: selected.includes(id), hover: true, role: \"checkbox\", tabIndex: -1 },\n React.createElement(TableCell, { padding: \"checkbox\" },\n React.createElement(Checkbox, { checked: selected.includes(id), onChange: (e) => toggleCheckBox(e.target.checked, id), color: \"primary\", inputProps: {\n 'aria-labelledby': labelId,\n } })),\n columns.map((column) => {\n let value = '';\n if (column.relation) {\n try {\n value = row[column.id][column.relation];\n }\n catch (_a) { }\n }\n else {\n value = row[column.id];\n if (!isNaN(value)) {\n value = value % 1 !== 0 ? Number(value).toFixed(2) : value;\n }\n if (typeof (value) == typeof (true)) {\n value = value == true ? 'Да' : 'Нет';\n }\n if (column.id == 'password') {\n value = '*******';\n }\n if (column.id.indexOf('_datetime') > 0 && typeof (value) == typeof ('')) {\n value = dayjs(value).format('lll');\n }\n }\n return (React.createElement(TableCell, { key: column.id, align: column.align, style: { whiteSpace: column.relation ? 'nowrap' : 'normal' } }, value));\n })));\n }))))))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport axios from 'axios';\nimport React from 'react';\nimport StorageTable from '../elements/StorageTable';\nfunction DataGrid(_a) {\n var props = __rest(_a, []);\n const [meta, setMeta] = React.useState(null);\n React.useEffect(() => {\n if (props.token) {\n axios.get(`${props.model}/columns`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n }).\n then((responce) => {\n if (responce.data) {\n setMeta(responce.data);\n }\n });\n }\n }, []);\n return (React.createElement(React.Fragment, null, meta !== null && (React.createElement(React.Fragment, null,\n React.createElement(StorageTable, { meta: meta, token: props.token, title: props.title, model: props.model, prefix: props.prefix })))));\n}\nexport default DataGrid;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Divider, Stack, Typography } from '@mui/material';\nimport React from 'react';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Link from '@mui/material/Link';\nimport Tabs, { tabsClasses } from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport Box from '@mui/material/Box';\nimport DataGrid from './storage/DataGrid';\nimport axios from 'axios';\nimport TabElement from './elements/TabElement';\nfunction Storages(_a) {\n var props = __rest(_a, []);\n const [value, setValue] = React.useState(0);\n const [tabs, setTabs] = React.useState([]);\n React.useEffect(() => {\n if (props.token) {\n axios.get(`/storage/tabs`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n }).\n then((responce) => {\n if (responce.data) {\n let data = responce.data;\n setTabs(data);\n }\n });\n }\n }, []);\n React.useEffect(() => {\n }, [tabs]);\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto', pt: '20px' } },\n React.createElement(Breadcrumbs, { \"aria-label\": \"breadcrumb\", sx: { pl: 3 } },\n React.createElement(Link, { underline: \"hover\", color: \"inherit\", href: \"/\" }, \"Agriculture\"),\n React.createElement(Typography, { color: \"text.primary\" }, \"\\u0414\\u0430\\u043D\\u043D\\u044B\\u0435\")),\n React.createElement(Divider, null),\n React.createElement(Box, { sx: { marginTop: '0px !important', bgcolor: 'background.paper' } },\n React.createElement(Tabs, { value: value, onChange: handleChange, variant: \"scrollable\", scrollButtons: true, sx: {\n [`& .${tabsClasses.scrollButtons}`]: {\n '&.Mui-disabled': { opacity: 0.3 },\n },\n borderBottom: '1px solid #eee',\n maxWidth: 'calc(100vw - 65px)'\n } }, tabs.map((t, index) => {\n return (React.createElement(Tab, { key: `tab_${index}`, label: t.title, disabled: !t.active, sx: {\n borderLeft: (t.model == 'user' ? 'dashed 1px lightgrey' : 'none')\n } }));\n }))),\n tabs.map((t, index) => {\n return (React.createElement(TabElement, { key: `tab_panel_${index}`, value: value, index: index },\n React.createElement(DataGrid, { token: props.token, title: t.title, model: t.model, prefix: t.prefix })));\n }))));\n}\nexport default Storages;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport MiniDrawer from '../components/Header';\nimport Storages from '../components/Storage';\nconst Storage = (_a) => {\n var props = __rest(_a, []);\n const drawler = React.useRef(null);\n return (React.createElement(MiniDrawer, { type: 'storage', ref: drawler },\n React.createElement(Storages, { token: props.token })));\n};\nexport default Storage;\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport { Avatar, Divider, List, ListItem, ListItemAvatar, ListItemButton, ListItemText, ListSubheader } from '@mui/material';\nimport axios from 'axios';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport RouteIcon from '@mui/icons-material/Route';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst ListFlight = forwardRef((props, ref) => {\n const [list, setList] = React.useState([]);\n const [listGroup, setListGroup] = React.useState([]);\n const [current, setCurrent] = React.useState(null);\n const gruppedFormat = 'YYYY-MM-DD';\n useImperativeHandle(ref, () => ({\n update: update\n }));\n React.useEffect(() => {\n update();\n }, []);\n const update = () => {\n if (props.token) {\n axios.get('/flight/list', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let items = responce.data.map((i) => {\n i.date_created = new Date(i.date_created);\n return i;\n });\n let groups = items.map((i) => {\n return dayjs(i.date_created).format(gruppedFormat);\n });\n setListGroup([...new Set(groups)]);\n setList(items);\n }\n });\n }\n };\n React.useEffect(() => {\n props.select(current);\n }, [current]);\n return (React.createElement(React.Fragment, null, listGroup.map((g, li) => {\n return (React.createElement(List, { sx: { width: '100%', maxWidth: 360, bgcolor: 'background.paper' }, key: `li_${li}`, component: \"nav\", subheader: React.createElement(ListSubheader, { component: \"div\", id: \"nested-list-subheader\" }, dayjs(g).format('ll')) }, list.filter(x => dayjs(x.date_created).format(gruppedFormat) === g)\n .map((item) => (React.createElement(\"div\", { key: `cont_${item.id}` },\n React.createElement(ListItem, { key: `l_${item.id}`, disablePadding: true },\n React.createElement(ListItemButton, { selected: (current === null || current === void 0 ? void 0 : current.id) == item.id, onClick: () => setCurrent(item) },\n React.createElement(ListItemAvatar, null,\n React.createElement(Avatar, { alt: item.name, sx: { backgroundColor: '#bdbdbd' }, imgProps: {\n style: {\n width: '28px',\n height: '28px'\n }\n } },\n React.createElement(RouteIcon, null))),\n React.createElement(ListItemText, { primary: item.name.charAt(0).toUpperCase() + item.name.slice(1), secondary: `Точек пролета: ${item.flights_count}` }))),\n React.createElement(Divider, { key: `d_${item.id}`, variant: \"fullWidth\", component: \"li\" }))))));\n })));\n});\nexport default ListFlight;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Box, Stack } from '@mui/system';\nimport { Alert, Divider, LinearProgress, Typography } from '@mui/material';\nimport { useUploadForm } from '../../utils/upload';\nimport { useSnackbar } from 'notistack';\nimport DateFiled from '../elements/DateFiled';\nexport default function AddFlightDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const { uploadForm, destroyControls, progress, isSuccess } = useUploadForm(\"/flight/create\");\n const [name, setName] = React.useState('');\n const [date_begion, setDateBegin] = React.useState(null);\n const [fileMrk, setFile] = React.useState(null);\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const fileChange = (event) => {\n setFile(event.target.files ? event.target.files[0] : null);\n };\n React.useEffect(() => {\n setAccess(fileMrk !== null\n && name !== ''\n && date_begion !== null);\n }, [name, fileMrk]);\n const create = () => __awaiter(this, void 0, void 0, function* () {\n if (fileMrk !== null\n && name !== ''\n && date_begion !== null) {\n const formData = new FormData();\n formData.append(\"name\", name);\n formData.append(\"date\", date_begion.format('YYYY-MM-DD'));\n formData.append(\"mrk\", fileMrk);\n yield uploadForm(props.token, formData)\n .then(function (response) {\n if (response.data.error !== null) {\n setError(response.data.error);\n destroy();\n let error = response.data.error;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n }\n else {\n destroy();\n if (props.update != undefined) {\n props.update();\n }\n props.setState(false);\n enqueueSnackbar('Полет успешно добавлен', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n setError(error);\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n });\n }\n });\n const destroy = () => __awaiter(this, void 0, void 0, function* () {\n setName('');\n setFile(null);\n setError(null);\n setDateBegin(null);\n destroyControls();\n });\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u0438\\u0442\\u044C mrk \\u0444\\u0430\\u0439\\u043B\"),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u0417\\u0430\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u043F\\u043E\\u043B\\u044F \\u0434\\u043B\\u044F \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u043E\\u0432\\u043E\\u0439 \\u0442\\u0440\\u0430\\u0435\\u043A\\u0442\\u043E\\u0440\\u0438\\u0438 \\u043F\\u043E\\u043B\\u0435\\u0442\\u0430\")),\n React.createElement(Alert, { severity: \"warning\", sx: { margin: '0px 16px' } }, \"\\u0424\\u0430\\u0439\\u043B \\u0434\\u043E\\u043B\\u0436\\u0435\\u043D \\u0431\\u044B\\u0442\\u044C \\u0432 \\u0444\\u043E\\u0440\\u043C\\u0430\\u0442\\u0435 .mrk\"),\n React.createElement(Divider, { variant: \"middle\", sx: { marginTop: '16px' } }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(TextField, { margin: \"dense\", id: \"name\", label: \"\\u041D\\u0430\\u0438\\u043C\\u0435\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\", fullWidth: true, inputProps: {\n maxLength: props.maxLength\n }, variant: \"filled\", onChange: (e) => setName(e.target.value) }),\n React.createElement(DateFiled, { value: date_begion, setValue: setDateBegin, label: \"\\u0414\\u0430\\u0442\\u0430 \\u043F\\u043E\\u043B\\u0435\\u0442\\u0430\" }),\n React.createElement(Box, { component: \"span\", sx: { p: 2, border: '1px dashed grey', display: 'flex', justifyContent: 'center' } },\n React.createElement(Stack, { spacing: 2 },\n React.createElement(Button, { variant: \"text\", component: \"label\" },\n \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0444\\u0430\\u0439\\u043B\",\n React.createElement(\"input\", { hidden: true, accept: \".mrk\", multiple: false, type: \"file\", onChange: fileChange })),\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, fileMrk !== null ? fileMrk.name : 'Файл не выбран'))),\n progress > 0 && access == true && (React.createElement(LinearProgress, { variant: \"determinate\", value: progress })))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: create, disabled: !access || progress > 0 }, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.setState(false), disabled: progress > 0 }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Link from '@mui/material/Link';\nimport { Box, Divider, Grid, IconButton, Stack, Tooltip, Typography } from '@mui/material';\nimport ListAndView from './elements/ListAndView';\nimport NoteAddIcon from '@mui/icons-material/NoteAdd';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport OpenStreetMaps from './map/OpenStreetMaps';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport axios from 'axios';\nimport DialogYesNo from './elements/DialodYesNo';\nimport ListFlight from './fligth/List';\nimport AddFlightDialog from './fligth/Add';\nconst Fligths = (_a) => {\n var props = __rest(_a, []);\n const maxNameLength = 43;\n const [fligth, setFligth] = React.useState(null);\n const [addDialog, setAddDialog] = React.useState(false);\n const [deleteDialog, setDeleteDialog] = React.useState(false);\n const map = React.useRef(null);\n const list = React.useRef(null);\n React.useEffect(() => {\n if (map.current) {\n if (fligth) {\n let latlng = { lat: 49.9714, lng: 82.6059 };\n axios.get(`/flight/points/${fligth === null || fligth === void 0 ? void 0 : fligth.id}/list`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data) {\n response.data.items.map((point) => {\n var _a;\n latlng = {\n lat: point.stantions_latitude_center,\n lng: point.stantions_longitude_center\n };\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setUrl(`/flight/get/${fligth === null || fligth === void 0 ? void 0 : fligth.id}`, latlng);\n });\n }\n });\n }\n }\n }, [fligth]);\n const deleteListItem = () => {\n axios.delete(`/flight/delete/${fligth === null || fligth === void 0 ? void 0 : fligth.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n var _a, _b;\n if (responce.data) {\n if (responce.data.result) {\n setFligth(null);\n setDeleteDialog(false);\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.invalidateSize();\n (_b = list.current) === null || _b === void 0 ? void 0 : _b.update();\n }\n }\n });\n };\n const updateListItems = () => {\n var _a;\n (_a = list.current) === null || _a === void 0 ? void 0 : _a.update();\n };\n const deleteItem = (x) => {\n setDeleteDialog(true);\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto', pt: '20px' } },\n React.createElement(Breadcrumbs, { \"aria-label\": \"breadcrumb\", sx: { pl: 3 } },\n React.createElement(Link, { underline: \"hover\", color: \"inherit\", href: \"/\" }, \"Agriculture\"),\n React.createElement(Typography, { color: \"text.primary\" }, \"\\u041F\\u043E\\u043B\\u0435\\u0442\\u044B\")),\n React.createElement(Divider, null),\n React.createElement(ListAndView, { left: React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: {\n backgroundColor: '#fafafa',\n height: '52px',\n borderBottom: '1px solid #eaeaea',\n display: 'flex',\n alignItems: 'center',\n padding: '0px 16px'\n } },\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\" },\n React.createElement(IconButton, { color: \"success\", onClick: () => setAddDialog(true) },\n React.createElement(NoteAddIcon, null))),\n React.createElement(Tooltip, { title: \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\" },\n React.createElement(IconButton, { disabled: fligth == null, color: \"error\", onClick: () => deleteItem(fligth === null || fligth === void 0 ? void 0 : fligth.id) },\n React.createElement(DeleteIcon, null))),\n React.createElement(Divider, { orientation: 'vertical', flexItem: true, sx: { margin: '0px 8px' } }),\n React.createElement(Tooltip, { title: \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C \\u0441\\u043F\\u0438\\u0441\\u043E\\u043A\" },\n React.createElement(IconButton, { onClick: () => updateListItems() },\n React.createElement(RefreshIcon, null)))),\n React.createElement(Box, { sx: {\n height: 'calc(100vh - 180px)',\n overflowY: 'scroll',\n \"&::-webkit-scrollbar\": {\n width: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(ListFlight, { ref: list, token: props.token, select: setFligth }))), view: React.createElement(Grid, { container: true, spacing: 0, sx: { marginTop: '0px !important', height: '100%' } },\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(OpenStreetMaps, { ref: map, token: props.token, url: null, tollTip: false, showStantions: `flight/points/${fligth == null ? 0 : fligth.id}`, item: fligth == null ? 0 : fligth.id }))) })),\n React.createElement(AddFlightDialog, { token: props.token, open: addDialog, maxLength: maxNameLength, update: updateListItems, setState: setAddDialog }),\n React.createElement(DialogYesNo, { title: '\\u0423\\u0434\\u0430\\u043B\\u0435\\u043D\\u0438\\u0435', question: `Вы хотите удалить данные о полете ${fligth === null || fligth === void 0 ? void 0 : fligth.name} без возможности восстановления?`, open: deleteDialog, yes: () => deleteListItem(), no: setDeleteDialog })));\n};\nexport default Fligths;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport Fligths from '../components/Fligths';\nimport MiniDrawer from '../components/Header';\nconst Flight = (_a) => {\n var props = __rest(_a, []);\n const drawler = React.useRef(null);\n return (React.createElement(MiniDrawer, { type: 'flight', ref: drawler },\n React.createElement(Fligths, { token: props.token })));\n};\nexport default Flight;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Stack } from '@mui/system';\nimport { Alert, Autocomplete, Divider, LinearProgress } from '@mui/material';\nimport { useSnackbar } from 'notistack';\nimport axios from 'axios';\nexport default function AddFertilizerDialog(_a) {\n var props = __rest(_a, []);\n const { enqueueSnackbar } = useSnackbar();\n const [field, setField] = React.useState(null);\n const [fields, setFields] = React.useState([]);\n const [culture, setCulture] = React.useState(null);\n const [cultures, setCultures] = React.useState([]);\n const [grade, setGrade] = React.useState(null);\n const [grades, setGrades] = React.useState([]);\n const [ey, setEy] = React.useState(0);\n const [nitrogenMax, setNitrogenMax] = React.useState(0);\n const [phosphor, setPhosphor] = React.useState(0);\n const [kalium, setKalium] = React.useState(0);\n const [threshold, setThreshold] = React.useState(0.3);\n const [error, setError] = React.useState(null);\n const [access, setAccess] = React.useState(false);\n const [progress, setProgress] = React.useState(false);\n React.useEffect(() => {\n if (props.token) {\n /** Поля */\n axios.get('/fertilizer/field/list', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let lds = responce.data.map(f => {\n f.label = f.name;\n return f;\n });\n setFields(lds);\n }\n });\n /** Культуры */\n axios.get('/culture/list?limit=50&offset=0', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let cltrs = responce.data.items.map(c => {\n c.label = c.cultures_name;\n return c;\n });\n setCultures(cltrs);\n }\n });\n }\n }, []);\n React.useEffect(() => {\n setAccess(field !== null\n && culture !== null\n && grade !== null\n && ey > 0\n && nitrogenMax > 0);\n }, [field, culture, grade, ey, nitrogenMax]);\n React.useEffect(() => {\n setGrades([]);\n if (culture) {\n axios.get(`/grades/list?limit=100&grade_culture_id=${culture.id}&&grade_nitrogen__gte=0`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let grds = responce.data.items.map(g => {\n g.label = g.grade_name;\n return g;\n });\n setGrades(grds);\n }\n });\n }\n }, [culture]);\n const calc_nitrogen_norm = (value) => {\n if (field !== null\n && culture !== null\n && grade !== null\n && value > 0\n && nitrogenMax == 0) {\n axios.post(\"/fertilizer/nitrogen/calc\", JSON.stringify({\n field: field === null || field === void 0 ? void 0 : field.id,\n culture: culture === null || culture === void 0 ? void 0 : culture.id,\n grade: grade === null || grade === void 0 ? void 0 : grade.id,\n ey: value,\n phosphorus: 0,\n potassium: 0,\n nitrogenmax: 0,\n threshold: 0.3\n }), {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data) {\n setNitrogenMax(Math.round((response.data + Number.EPSILON) * 100) / 100);\n setPhosphor(40);\n setKalium(40);\n }\n });\n }\n };\n const create = () => __awaiter(this, void 0, void 0, function* () {\n if (field !== null && culture !== null && grade !== null) {\n setProgress(true);\n axios.post(\"/fertilizer/create\", JSON.stringify({\n field: field === null || field === void 0 ? void 0 : field.id,\n culture: culture === null || culture === void 0 ? void 0 : culture.id,\n grade: grade === null || grade === void 0 ? void 0 : grade.id,\n ey: ey,\n phosphorus: phosphor,\n potassium: kalium,\n nitrogenmax: nitrogenMax,\n threshold: threshold\n }), {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((response) => {\n if (response.data.error !== null) {\n setError(response.data.error);\n destroy();\n let error = response.data.error;\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n }\n else {\n destroy();\n if (props.update != undefined) {\n props.update();\n }\n props.setState(false);\n enqueueSnackbar('Запись успешно добавлена', { variant: 'success', autoHideDuration: 1000 });\n }\n })\n .catch(function (reason) {\n let error = reason.response.data.detail || reason.message;\n setError(error);\n enqueueSnackbar(error.length > 100 ? `${error.substring(0, 97)}...` : error, { variant: 'error' });\n destroy();\n });\n }\n });\n const destroy = () => __awaiter(this, void 0, void 0, function* () {\n setEy(0);\n setPhosphor(0);\n setKalium(0);\n setNitrogenMax(0);\n setField(null);\n setCulture(null);\n setGrade(null);\n setError(null);\n setProgress(false);\n });\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { maxWidth: 'xs', open: props.open, BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n } },\n React.createElement(DialogTitle, null, \"\\u0420\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u0442\\u044C \\u0443\\u0434\\u043E\\u0431\\u0440\\u0435\\u043D\\u0438\\u044F\"),\n React.createElement(DialogContent, { sx: { minWidth: '396px' } },\n React.createElement(Alert, { severity: \"warning\", sx: { margin: '0px 16px' } }, \"\\u0414\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u044B \\u043F\\u043E\\u043B\\u044F \\u0434\\u043B\\u044F \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0445 \\u0437\\u0430\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u044B \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0430\\u0433\\u0440\\u043E\\u0445\\u0438\\u043C\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0433\\u043E \\u0430\\u043D\\u0430\\u043B\\u0438\\u0437\\u0430, \\u0430 \\u0442\\u0430\\u043A\\u0436\\u0435 \\u0441\\u043E\\u0440\\u0442\\u0430 \\u043A\\u0443\\u043B\\u044C\\u0442\\u0443\\u0440 \\u0441 \\u0437\\u0430\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u044B\\u043C\\u0438 \\u043D\\u043E\\u0440\\u043C\\u0430\\u043C\\u0438.\"),\n React.createElement(Divider, { variant: \"middle\", sx: { marginTop: '16px' } }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Autocomplete, { value: field, onChange: (event, newValue) => {\n setField(newValue);\n }, disablePortal: true, id: \"combo-box-demo\", options: fields, sx: { width: 'auto' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u041F\\u043E\\u043B\\u0435\" })) }),\n React.createElement(Autocomplete, { value: culture, onChange: (event, newCulture) => {\n setCulture(newCulture);\n }, disablePortal: true, id: \"combo-box-demo\", options: cultures, sx: { width: 'auto' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u041A\\u0443\\u043B\\u044C\\u0442\\u0443\\u0440\\u0430\" })) }),\n React.createElement(Autocomplete, { value: grade, onChange: (event, newGrade) => {\n setGrade(newGrade);\n }, disablePortal: true, disabled: grades.length == 0, id: \"combo-box-demo\", options: grades, sx: { width: 'auto' }, renderInput: (params) => React.createElement(TextField, Object.assign({}, params, { label: \"\\u0421\\u043E\\u0440\\u0442\" })) }),\n React.createElement(TextField, { value: ey, margin: \"dense\", id: \"name\", label: \"\\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u0443\\u044E\\u043C\\u0430\\u044F \\u0443\\u0440\\u043E\\u0436\\u0430\\u0439\\u043D\\u043E\\u0441\\u0442\\u044C (\\u0446/\\u0413\\u0410)\", fullWidth: true, type: 'number', variant: \"filled\", onBlur: (e) => calc_nitrogen_norm(Number(e.target.value)), onChange: (e) => setEy(Number(e.target.value)) })),\n React.createElement(Divider, { variant: \"middle\", sx: { marginTop: '16px' } }),\n React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(TextField, { sx: {\n marginTop: '8px !important'\n }, value: nitrogenMax, margin: \"dense\", id: \"name\", label: \"\\u041D\\u043E\\u0440\\u043C\\u0430 \\u0430\\u0437\\u043E\\u0442\\u0430 (\\u043A\\u0433/\\u0413\\u0410)\", fullWidth: true, type: 'number', variant: \"filled\", onChange: (e) => setNitrogenMax(Number(e.target.value)) }),\n React.createElement(TextField, { value: phosphor, margin: \"dense\", id: \"name\", label: \"\\u041D\\u043E\\u0440\\u043C\\u0430 \\u0444\\u043E\\u0441\\u0444\\u043E\\u0440\\u0430 (\\u043A\\u0433/\\u0413\\u0410)\", fullWidth: true, type: 'number', variant: \"filled\", onChange: (e) => setPhosphor(Number(e.target.value)) }),\n React.createElement(TextField, { value: kalium, margin: \"dense\", id: \"name\", label: \"\\u041D\\u043E\\u0440\\u043C\\u0430 \\u043A\\u0430\\u043B\\u0438\\u044F (\\u043A\\u0433/\\u0413\\u0410)\", fullWidth: true, type: 'number', variant: \"filled\", onChange: (e) => setKalium(Number(e.target.value)) }),\n React.createElement(TextField, { value: threshold, margin: \"dense\", id: \"threshold\", label: \"\\u041F\\u043E\\u0440\\u043E\\u0433\\u043E\\u0432\\u043E\\u0435 \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0432\\u0435\\u0433\\u0435\\u0442\\u0430\\u0446\\u0438\\u043E\\u043D\\u043D\\u043E\\u0433\\u043E \\u0438\\u043D\\u0434\\u0435\\u043A\\u0441\\u0430\", fullWidth: true, type: 'number', variant: \"filled\", onChange: (e) => setThreshold(Number(e.target.value)) }),\n progress == true && (React.createElement(LinearProgress, null)))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: create, disabled: !access || progress == true }, \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => { props.setState(false); destroy(); } }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport { Avatar, Divider, LinearProgress, List, ListItem, ListItemAvatar, ListItemButton, ListItemText, ListSubheader, Typography } from '@mui/material';\nimport axios from 'axios';\nimport * as dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport { styled } from '@mui/material/styles';\nimport Badge from '@mui/material/Badge';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst StyledBadge = styled(Badge)(({ theme }) => ({\n '& .MuiBadge-badge': {\n right: -3,\n top: 13,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n}));\nconst ListFertilizers = forwardRef((props, ref) => {\n const [list, setList] = React.useState([]);\n const [group, setGroup] = React.useState([]);\n const [current, setCurrent] = React.useState(null);\n const [load, setLoad] = React.useState(false);\n useImperativeHandle(ref, () => ({\n update: update\n }));\n React.useEffect(() => {\n update();\n }, []);\n const update = () => {\n if (props.token) {\n setLoad(true);\n axios.get('/fertilizer/list', {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n var items = responce.data;\n var groups = [...new Set(items.map(item => item.fertilizer_culture.cultures_name))];\n setGroup(groups);\n setList(items);\n setLoad(false);\n }\n });\n }\n };\n React.useEffect(() => {\n props.select(current);\n }, [current]);\n return (React.createElement(React.Fragment, null,\n load == true && (React.createElement(React.Fragment, null,\n React.createElement(LinearProgress, { color: \"success\" }),\n group.length == 0 && (React.createElement(Typography, { variant: 'caption', component: 'div', align: 'center', style: { color: 'grey', paddingTop: '16px' } }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0441\\u043F\\u0438\\u0441\\u043A\\u0430 ...\")))),\n group.map((culture, index) => {\n return (React.createElement(List, { sx: { width: '100%', maxWidth: 360, bgcolor: 'background.paper' }, key: `fertilizer_group_${index}`, component: \"nav\", subheader: React.createElement(ListSubheader, { component: \"div\", id: \"nested-list-subheader\" }, culture) }, list.filter(c => c.fertilizer_culture.cultures_name == culture)\n .map((item) => (React.createElement(\"div\", { key: `cont_${item.id}` },\n React.createElement(ListItem, { key: `l_${item.id}`, disablePadding: true },\n React.createElement(ListItemButton, { selected: (current === null || current === void 0 ? void 0 : current.id) == item.id, onClick: () => setCurrent(item) },\n React.createElement(ListItemAvatar, null,\n React.createElement(Avatar, { src: `/fertilizer/image/${item.id}`, alt: item.fertilizer_field.name, sx: { backgroundColor: '#bdbdbd' }, imgProps: {\n style: {\n width: '28px',\n height: '28px'\n }\n } })),\n React.createElement(ListItemText, { primary: item.fertilizer_field.name.charAt(0).toUpperCase() + item.fertilizer_field.name.slice(1), secondary: `Сорт: ${item.fertilizer_grade.grade_name} - EY: ${item.fertilizer_ey}` }))),\n React.createElement(Divider, { key: `d_${item.id}`, variant: \"fullWidth\", component: \"li\" }))))));\n })));\n});\nexport default ListFertilizers;\n","import React, { forwardRef } from \"react\";\nimport axios from 'axios';\nimport Highcharts from \"highcharts/highstock\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport highchartsExporting from \"highcharts/modules/exporting\";\nimport highchartsExportData from \"highcharts/modules/export-data\";\nimport highchartsAccessibility from \"highcharts/modules/accessibility\";\nimport { Grid, Typography } from \"@mui/material\";\nhighchartsExporting(Highcharts);\nhighchartsExportData(Highcharts);\nhighchartsAccessibility(Highcharts);\nconst FactChart = forwardRef((props, ref) => {\n const [options, setOptions] = React.useState(null);\n const [list, setList] = React.useState([]);\n const [summ, setSumm] = React.useState(0);\n const [area, setArea] = React.useState(0);\n React.useEffect(() => {\n setOptions(null);\n axios.get(`/fertilizer/detail/chart/${props.id}/${props.band}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n let detail = responce.data;\n let data = detail.items;\n setList(data);\n setSumm(detail.summ);\n setArea(detail.area);\n let categories = data.map((x) => {\n return x.value.toString();\n });\n let values = data.map((x) => {\n return {\n y: x.summ,\n color: x.color\n };\n });\n let colors = data.map((x) => {\n return x.color;\n });\n const max = data.map(x => x.summ).reduce((acc, val) => {\n return acc > val ? acc : val;\n });\n setOptions({\n credits: {\n enabled: false\n },\n chart: {\n type: 'column',\n height: 140,\n style: {\n fontFamily: '\"Roboto\",\"Helvetica\",\"Arial\",sans-serif'\n }\n },\n title: {\n text: undefined\n },\n xAxis: {\n categories: categories\n },\n yAxis: {\n title: {\n text: undefined\n }\n },\n series: [{\n name: 'Количество',\n type: 'column',\n data: values,\n maxPointWidth: 25\n }],\n exporting: {\n buttons: {\n contextButton: {\n enabled: false\n }\n }\n },\n legend: {\n enabled: false\n },\n tooltip: {\n formatter: function () {\n let item = data.filter(x => x.value == Number(this.x));\n return '' + 'Площадь: ' + item[0].ha + ' га
' + 'Удобрений: ' + item[0].summ + ' кг';\n },\n outside: true\n },\n colors: colors,\n plotOptions: {\n series: {\n cursor: 'pointer',\n point: {\n events: {\n click: function () {\n const chart = this.series.chart;\n const colors = chart.options.colors;\n const data = this.series.data;\n let greys = data.filter(x => x.color == 'grey').length;\n let selected = this.color !== 'grey' && greys > 0;\n if (selected) {\n data.forEach((point, i) => point.color = colors ? colors[i] : 'grey');\n }\n else {\n data.forEach((point, i) => {\n if (point !== this) {\n point.color = 'grey';\n }\n else {\n point.color = colors ? colors[i] : 'grey';\n }\n });\n }\n chart.redraw();\n greys = data.filter(x => x.color == 'grey').length;\n let filterMap = data.filter(x => x.color !== 'grey')\n .map(x => (Number(x.category) ^ 0) === Number(x.category)\n ? `${x.category.toString()}.0`\n : `${x.category.toString()}`);\n console.log(filterMap);\n props.filterMap(greys == 0 ? [] : filterMap);\n }\n }\n }\n }\n },\n });\n }\n });\n }, [props.id, props.band]);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: { maxHeight: '140px', marginLeft: '-10px', marginTop: '10px', marginBottom: '10px' } }, options !== null && (React.createElement(HighchartsReact, { highcharts: Highcharts, options: options }))),\n options !== null && summ > 0 && (React.createElement(React.Fragment, null,\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u0424\\u0430\\u043A\\u0442\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${summ.toFixed(2)} кг`)))))));\n});\nexport default FactChart;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { Divider, IconButton } from '@mui/material';\nimport axios from 'axios';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport DownloadIcon from '@mui/icons-material/Download';\nexport default function TiffInfoDialog(_a) {\n var props = __rest(_a, []);\n const [open, setOpen] = React.useState(props.open);\n const [tiff, setTiff] = React.useState(null);\n React.useEffect(() => {\n if (props.open == true) {\n setTiff(null);\n axios.get(`/fertilizer/tiff/detail/${props.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n if (responce.data) {\n setTiff(responce.data);\n }\n });\n }\n }, [props.open]);\n const export_band = (id, band) => {\n window.location.href = `/fertilizer/tiff/export/${id}/${band}`;\n };\n return (React.createElement(\"div\", null,\n React.createElement(Dialog, { BackdropProps: {\n style: {\n backdropFilter: \"blur(3px)\"\n }\n }, open: props.open, maxWidth: 'md', onClose: props.close },\n React.createElement(DialogTitle, null, \"\\u0418\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F \\u043E TIF \\u0444\\u0430\\u0439\\u043B\\u0435\"),\n React.createElement(DialogContent, null, props.open == true && tiff && (React.createElement(React.Fragment, null,\n React.createElement(DialogContentText, null),\n React.createElement(Divider, { sx: { marginTop: '16px' } }),\n React.createElement(DialogContent, { sx: { padding: '20px 0px' } },\n React.createElement(TableContainer, { component: 'div' },\n React.createElement(Table, { sx: { minWidth: 650 }, size: \"small\", \"aria-label\": \"a dense table\" },\n React.createElement(TableHead, null,\n React.createElement(TableRow, null,\n React.createElement(TableCell, null, \"Number\"),\n React.createElement(TableCell, { align: \"left\" }, \"Band\"),\n React.createElement(TableCell, { align: \"right\" }, \"No-Data\"),\n React.createElement(TableCell, { align: \"right\" }, \"Min\"),\n React.createElement(TableCell, { align: \"right\" }, \"Max\"),\n React.createElement(TableCell, { align: \"center\" }))),\n React.createElement(TableBody, null, tiff === null || tiff === void 0 ? void 0 : tiff.bands.map((band) => (React.createElement(TableRow, { key: band.id, sx: { '&:last-child td, &:last-child th': { border: 0 } } },\n React.createElement(TableCell, { component: \"th\", scope: \"row\" }, band.id),\n React.createElement(TableCell, { align: \"left\" }, band.band),\n React.createElement(TableCell, { align: \"right\" }, band.nodata),\n React.createElement(TableCell, { align: \"right\" }, band.min),\n React.createElement(TableCell, { align: \"right\" }, band.max),\n React.createElement(TableCell, { align: \"center\" },\n React.createElement(IconButton, { disabled: band.min == 0 && band.max == 0, onClick: () => export_band(props.id, band.id) },\n React.createElement(DownloadIcon, null))))))))))))),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: props.download }, \"\\u0421\\u043A\\u0430\\u0447\\u0430\\u0442\\u044C\"),\n React.createElement(Button, { onClick: () => props.close(false), autoFocus: true }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")))));\n}\n","import { AppBar, Box, Button, Card, CardActions, CardContent, Divider, Grid, Stack, Tab, Tabs, Typography, ThemeProvider } from '@mui/material';\nimport axios from 'axios';\nimport React, { useImperativeHandle, forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport * as isLeapYear from 'dayjs/plugin/isLeapYear';\nimport 'dayjs/locale/ru';\nimport TabPanel from '../elements/TabPanel';\nimport FactChart from './chats/Fact';\nimport { orangeTheme, darkBluenTheme } from './../../themes/NdviTheme';\nimport TiffInfoDialog from './TiffInfo';\ndayjs.extend(isLeapYear);\ndayjs.locale('ru');\nconst FertilizerInfoPanel = forwardRef((props, ref) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const defaultBandForTabs = [\n 4, 6, 7\n ];\n const [value, setValue] = React.useState(0);\n const [detail, setDetail] = React.useState(null);\n const [tiffDialog, setTiffDialog] = React.useState(false);\n const [band, setBand] = React.useState(defaultBandForTabs[0]);\n const [changeNorm, setChangeNorm] = React.useState(false);\n const handleChange = (event, newValue) => {\n setBand(defaultBandForTabs[newValue]);\n setValue(newValue);\n props.changeTab(newValue);\n };\n useImperativeHandle(ref, () => ({\n setCurrentTab: setValue,\n setBand: setBand\n }));\n React.useEffect(() => {\n if (props.token) {\n axios.get(`/fertilizer/detail/${props.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n var _a;\n if (responce.data) {\n let data = responce.data;\n setDetail(data);\n setChangeNorm(Number(data.fertilizer_nitrogen_max.toFixed(2)) == Number((_a = data.nitrogen_result) === null || _a === void 0 ? void 0 : _a.nr.toFixed(2)));\n }\n });\n }\n }, [, props.id]);\n const dowloadTiff = () => {\n window.location.href = `/fertilizer/${props.id}/tif`;\n };\n return (React.createElement(Box, { sx: { width: '350px', flex: '1 1 auto', display: 'flex', flexDirection: 'column' } },\n detail !== null && (React.createElement(Card, { sx: { minWidth: 275, border: 'none', boxShadow: 'none', borderRadius: 0, display: 'flex', flexDirection: 'column', flex: '1 1 auto' } },\n React.createElement(CardContent, { sx: { pt: '32px', color: 'white', backgroundColor: 'rgb(18, 113, 71)' } },\n React.createElement(Typography, { variant: 'h5', component: 'div', sx: { fontWeight: 200 } }, detail.fertilizer_field.name),\n React.createElement(Typography, { sx: { fontWeight: 200, mb: 1.5, opacity: 0.6 } }, `${detail.fertilizer_culture.cultures_name} - ${detail.fertilizer_grade.grade_name}`),\n React.createElement(Stack, { direction: 'row', spacing: 1, sx: { alignItems: 'center', position: 'relative' } },\n React.createElement(Typography, { variant: \"h2\", gutterBottom: true }, detail.fertilizer_ey.toFixed(1)),\n React.createElement(Typography, { variant: \"h4\", gutterBottom: true, sx: { opacity: 0.6 } }, \"\\u0446/\\u0413\\u0410\"))),\n React.createElement(Box, { sx: { width: '100%', bgcolor: 'background.paper' } },\n React.createElement(AppBar, { position: \"relative\", sx: { boxShadow: 'none' } },\n React.createElement(Tabs, { value: value, onChange: handleChange, textColor: \"inherit\", indicatorColor: \"secondary\" },\n React.createElement(Tab, { label: \"\\u0410\\u0437\\u043E\\u0442\" }),\n React.createElement(Tab, { label: \"\\u0424\\u043E\\u0441\\u0444\\u043E\\u0440\" }),\n React.createElement(Tab, { label: \"\\u041A\\u0430\\u043B\\u0438\\u0439\" })))),\n React.createElement(TabPanel, { value: value, index: 0 },\n changeNorm == false && (React.createElement(\"div\", null,\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0412\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B\"),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u0414\\u043E\\u0437\\u0430\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", color: (Number(detail.fertilizer_nitrogen_max.toFixed(2)) - Number((_a = detail.nitrogen_result) === null || _a === void 0 ? void 0 : _a.nr.toFixed(2))) > 0 ? \"error\" : \"inherit\", gutterBottom: true, sx: { fontWeight: 200 } }, `${detail.fertilizer_nitrogen_max.toFixed(2)} кг`))))),\n React.createElement(\"div\", { style: { marginTop: `${changeNorm == true ? '0px' : '16px'}` } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0420\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\"),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041D\\u0430 \\u0433\\u0435\\u043A\\u0442\\u0430\\u0440\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_b = detail.nitrogen_result) === null || _b === void 0 ? void 0 : _b.nr.toFixed(2)} кг`))),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041F\\u043B\\u043E\\u0449\\u0430\\u0434\\u044C\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${detail.hkr.toFixed(2)} га`))),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041F\\u043B\\u0430\\u043D\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_c = detail.nitrogen_result) === null || _c === void 0 ? void 0 : _c.result.toFixed(2)} кг`)))),\n props.variants,\n React.createElement(\"div\", { style: { marginTop: '16px' } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0413\\u0440\\u0430\\u0444\\u0438\\u043A\"),\n React.createElement(FactChart, { token: props.token, id: detail.id, band: band, filterMap: props.filterMap }))),\n React.createElement(ThemeProvider, { theme: darkBluenTheme },\n React.createElement(TabPanel, { value: value, index: 1 },\n React.createElement(\"div\", null,\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0412\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B\"),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041D\\u0430 \\u0433\\u0435\\u043A\\u0442\\u0430\\u0440\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_d = detail.fertilizer_phosphorus_norm) === null || _d === void 0 ? void 0 : _d.toFixed(2)} кг`))),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041F\\u043B\\u043E\\u0449\\u0430\\u0434\\u044C\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_e = detail.phosphorus_result) === null || _e === void 0 ? void 0 : _e.hkr.toFixed(2)} га`))),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041F\\u043B\\u0430\\u043D\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_f = detail.phosphorus_result) === null || _f === void 0 ? void 0 : _f.result.toFixed(2)} кг`)))),\n props.variants,\n React.createElement(\"div\", { style: { marginTop: '16px' } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0413\\u0440\\u0430\\u0444\\u0438\\u043A\"),\n React.createElement(FactChart, { token: props.token, id: detail.id, band: band, filterMap: props.filterMap })))),\n React.createElement(ThemeProvider, { theme: orangeTheme },\n React.createElement(TabPanel, { value: value, index: 2 },\n React.createElement(\"div\", null,\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0412\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B\"),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041D\\u0430 \\u0433\\u0435\\u043A\\u0442\\u0430\\u0440\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_g = detail.fertilizer_potassium_norm) === null || _g === void 0 ? void 0 : _g.toFixed(2)} кг`))),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041F\\u043B\\u043E\\u0449\\u0430\\u0434\\u044C\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_h = detail.potassium_result) === null || _h === void 0 ? void 0 : _h.hkr.toFixed(2)} га`))),\n React.createElement(Grid, { container: true },\n React.createElement(Grid, { item: true, xs: \"auto\", sx: { alignItems: 'center', display: 'flex' } },\n React.createElement(Typography, { variant: 'overline', style: { width: '100px', color: 'grey' }, gutterBottom: true }, \"\\u041F\\u043B\\u0430\\u043D\")),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(Typography, { variant: \"h6\", gutterBottom: true, sx: { fontWeight: 200 } }, `${(_j = detail.potassium_result) === null || _j === void 0 ? void 0 : _j.result.toFixed(2)} кг`)))),\n props.variants,\n React.createElement(\"div\", { style: { marginTop: '16px' } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0413\\u0440\\u0430\\u0444\\u0438\\u043A\"),\n React.createElement(FactChart, { token: props.token, id: detail.id, band: band, filterMap: props.filterMap })))),\n React.createElement(CardActions, { style: { margin: '0px 16px' } },\n React.createElement(Button, { size: \"small\", onClick: () => setTiffDialog(true) }, \"TIFF\"),\n React.createElement(Divider, { orientation: \"vertical\", variant: \"middle\", flexItem: true, sx: { marginLeft: '8px' } }),\n React.createElement(Button, { size: \"small\", color: \"error\", disabled: false, onClick: () => props.delete(props.id) }, \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\")))),\n React.createElement(TiffInfoDialog, { token: props.token, id: props.id, close: setTiffDialog, download: dowloadTiff, open: tiffDialog })));\n});\nexport default FertilizerInfoPanel;\n","import { ThemeProvider } from '@mui/material';\nimport React, { useImperativeHandle, forwardRef } from 'react';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nexport class VariantItem {\n}\nconst Variants = forwardRef((props, ref) => {\n var _a;\n const [value, setValue] = React.useState(((_a = props.items.filter(x => x.disabled == false)[0]) === null || _a === void 0 ? void 0 : _a.index) || 0);\n const handleChange = (event) => {\n let item = Number(event.target.value);\n setValue(item);\n props.change(item);\n };\n useImperativeHandle(ref, () => ({\n setValue: setValue\n }));\n return (React.createElement(ThemeProvider, { theme: props.theme },\n React.createElement(FormControl, { sx: { m: '8px 0px', width: '100%' }, size: \"small\" },\n React.createElement(Select, { value: value, onChange: handleChange }, props.items.map((v, i) => {\n return (React.createElement(MenuItem, { disabled: v.disabled, selected: value == v.index, value: v.index }, v.title));\n })))));\n});\nexport default Variants;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Box, Divider, Grid, IconButton, Stack, Tooltip, Typography } from '@mui/material';\nimport React from 'react';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Link from '@mui/material/Link';\nimport ListAndView from './elements/ListAndView';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport DialogYesNo from './elements/DialodYesNo';\nimport { useSnackbar } from 'notistack';\nimport AddFertilizerDialog from './fertilizer/Add';\nimport OpenStreetMaps from './map/OpenStreetMaps';\nimport LoupeIcon from '@mui/icons-material/Loupe';\nimport ListFertilizers from './fertilizer/List';\nimport FertilizerInfoPanel from './fertilizer/Fertilizer.Info';\nimport axios from 'axios';\nimport { darkBluenTheme, orangeTheme } from '../themes/NdviTheme';\nimport { useTheme } from '@mui/material/styles';\nimport Variants from './fertilizer/Variants';\nfunction Fertilizers(_a) {\n var props = __rest(_a, []);\n const current_theme = useTheme();\n const { enqueueSnackbar } = useSnackbar();\n const map = React.useRef(null);\n const list = React.useRef(null);\n const panel = React.useRef(null);\n const variants = React.useRef(null);\n const [selectedTab, setSelectedTab] = React.useState(0);\n const [selectedElement, setSelectedElement] = React.useState(null);\n const [addDialog, setAddDialog] = React.useState(false);\n const [deleteDialog, setDeleteDialog] = React.useState(false);\n const [mapIndex, setMapIndex] = React.useState(0);\n const bands = [\n { url: '/fertilizer/map/4/false/', chart: true, id: 4 },\n { url: '/fertilizer/map/6/false/', chart: true, id: 6 },\n { url: '/fertilizer/map/7/false/', chart: true, id: 7 },\n { url: '/fertilizer/map/2/false/', chart: true, id: 2 },\n { url: '/fertilizer/map/3/false/', chart: true, id: 3 },\n { url: '/fertilizer/map/5/false/', chart: true, id: 5 },\n { url: '/fertilizer/map/1/false/', chart: true, id: 1 },\n ];\n React.useEffect(() => {\n var _a, _b;\n if (map.current) {\n if (selectedElement) {\n let latlng = { lat: 49.9714, lng: 82.6059 };\n if (selectedElement.fertilizer_field.latitude_center\n && selectedElement.fertilizer_field.longitude_center) {\n if (selectedElement.fertilizer_field.latitude_center > 1\n && selectedElement.fertilizer_field.longitude_center > 1) {\n latlng = {\n lat: (_a = selectedElement.fertilizer_field) === null || _a === void 0 ? void 0 : _a.longitude_center,\n lng: (_b = selectedElement.fertilizer_field) === null || _b === void 0 ? void 0 : _b.latitude_center\n };\n }\n }\n map.current.setUrl(`${bands[mapIndex].url}${selectedElement.id}`, latlng);\n map.current.setFilterId([]);\n }\n setSelectedTab(0);\n if (panel.current) {\n panel.current.setCurrentTab(0);\n }\n }\n }, [selectedElement]);\n React.useEffect(() => {\n var _a, _b, _c;\n if (map.current) {\n if (selectedElement) {\n let latlng = { lat: 49.9714, lng: 82.6059 };\n if (selectedElement.fertilizer_field.latitude_center\n && selectedElement.fertilizer_field.longitude_center) {\n if (selectedElement.fertilizer_field.latitude_center > 1\n && selectedElement.fertilizer_field.longitude_center > 1) {\n latlng = {\n lat: (_a = selectedElement.fertilizer_field) === null || _a === void 0 ? void 0 : _a.longitude_center,\n lng: (_b = selectedElement.fertilizer_field) === null || _b === void 0 ? void 0 : _b.latitude_center\n };\n }\n }\n map.current.setUrl(`${bands[mapIndex].url}${selectedElement.id}`, latlng);\n map.current.setFilterId([]);\n (_c = panel.current) === null || _c === void 0 ? void 0 : _c.setBand(bands[mapIndex].id);\n }\n if (variants.current) {\n variants.current.setValue(mapIndex);\n }\n }\n }, [mapIndex]);\n React.useEffect(() => {\n setMapIndex(selectedTab);\n }, [selectedTab]);\n const updateListItems = () => {\n var _a;\n (_a = list.current) === null || _a === void 0 ? void 0 : _a.update();\n };\n const deleteListItem = (x) => {\n if (selectedElement !== null) {\n axios.delete(`/fertilizer/delete/${selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.id}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${props.token}`\n }\n })\n .then((responce) => {\n var _a, _b;\n if (responce.data) {\n if (responce.data.success) {\n setSelectedElement(null);\n setDeleteDialog(false);\n (_a = list.current) === null || _a === void 0 ? void 0 : _a.update();\n (_b = map.current) === null || _b === void 0 ? void 0 : _b.invalidateSize();\n }\n }\n });\n }\n };\n const filter = (items) => {\n var _a;\n (_a = map.current) === null || _a === void 0 ? void 0 : _a.setFilterId(items);\n };\n const get_variants = (tab) => {\n if (tab == 0) {\n return [\n { index: 0, title: 'По данным NDVI', disabled: false },\n { index: 5, title: 'По агрохимическому анализу', disabled: false },\n { index: 6, title: 'Фактические значения', disabled: false, devider: true }\n ];\n }\n else if (tab == 1) {\n return [\n { index: 1, title: 'По данным NDVI', disabled: false },\n { index: 3, title: 'Фактические значения', disabled: false, devider: true }\n ];\n }\n else if (tab == 2) {\n return [\n { index: 2, title: 'По данным NDVI', disabled: false },\n { index: 4, title: 'Фактические значения', disabled: false, devider: true }\n ];\n }\n else {\n return [];\n }\n };\n const get_theme_by_tab = (tab) => {\n if (tab == 1) {\n return darkBluenTheme;\n }\n else if (tab == 2) {\n return orangeTheme;\n }\n else {\n return current_theme;\n }\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto', pt: '20px' } },\n React.createElement(Breadcrumbs, { \"aria-label\": \"breadcrumb\", sx: { pl: 3 } },\n React.createElement(Link, { underline: \"hover\", color: \"inherit\", href: \"/\" }, \"Agriculture\"),\n React.createElement(Typography, { color: \"text.primary\" }, \"\\u0423\\u0434\\u043E\\u0431\\u0440\\u0435\\u043D\\u0438\\u044F\")),\n React.createElement(Divider, null),\n React.createElement(ListAndView, { left: React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: {\n backgroundColor: '#fafafa',\n height: '52px',\n borderBottom: '1px solid #eaeaea',\n display: 'flex',\n alignItems: 'center',\n padding: '0px 16px'\n } },\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\" },\n React.createElement(IconButton, { color: \"success\", onClick: () => setAddDialog(true) },\n React.createElement(LoupeIcon, null))),\n React.createElement(Tooltip, { title: \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C\" },\n React.createElement(IconButton, { onClick: () => updateListItems() },\n React.createElement(RefreshIcon, null)))),\n React.createElement(Box, { sx: {\n height: 'calc(100vh - 180px)',\n overflowY: 'scroll',\n \"&::-webkit-scrollbar\": {\n width: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(ListFertilizers, { ref: list, token: props.token, select: setSelectedElement }))), view: React.createElement(Grid, { container: true, spacing: 0, sx: { marginTop: '0px !important', height: '100%' } },\n selectedElement !== null\n &&\n (React.createElement(Grid, { item: true, xs: \"auto\", style: { display: 'flex' } },\n React.createElement(FertilizerInfoPanel, { ref: panel, token: props.token, id: selectedElement.id, extendChartData: bands[mapIndex].chart, variants: React.createElement(\"div\", { style: { marginTop: '8px' } },\n React.createElement(Variants, { ref: variants, item: selectedElement, items: get_variants(selectedTab), theme: get_theme_by_tab(selectedTab), selected: 0, change: setMapIndex })), delete: (x) => setDeleteDialog(true), filterMap: filter, changeTab: setSelectedTab }))),\n React.createElement(Grid, { item: true, xs: true },\n React.createElement(OpenStreetMaps, { ref: map, token: props.token, url: null, draw: true, scipBorder: true, createBoundExtend: true, item: selectedElement == null ? 0 : selectedElement.fertilizer_field_id }))) })),\n React.createElement(AddFertilizerDialog, { token: props.token, open: addDialog, update: updateListItems, setState: setAddDialog }),\n selectedElement !== null && (React.createElement(DialogYesNo, { title: '\\u0423\\u0434\\u0430\\u043B\\u0435\\u043D\\u0438\\u0435', question: `Вы хотите удалить без возможности восстановления?`, open: deleteDialog, yes: () => deleteListItem(selectedElement.id), no: setDeleteDialog }))));\n}\nexport default Fertilizers;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport MiniDrawer from '../components/Header';\nimport Fertilizers from '../components/Fertilizer';\nconst Fertilizer = (_a) => {\n var props = __rest(_a, []);\n const drawler = React.useRef(null);\n return (React.createElement(MiniDrawer, { type: 'fertilizer', ref: drawler },\n React.createElement(Fertilizers, { token: props.token })));\n};\nexport default Fertilizer;\n","import React from 'react';\nimport { List, ListItemText, ListItemButton, ListSubheader } from '@mui/material';\nimport Avatar from '@mui/material/Avatar';\n// setOpenDeleteDialog, setDeleteIndex\nconst ListWeed = ({ uploadedFiles, selectedFile, onSelect }) => {\n // Group the files by CropCollection\n const groupedFiles = uploadedFiles.reduce((acc, file) => {\n const { CropCollection } = file;\n if (!acc[CropCollection]) {\n acc[CropCollection] = [];\n }\n acc[CropCollection].push(file);\n return acc;\n }, {});\n function removeFileExtension(filename) {\n return filename.replace(/\\.[^/.]+$/, \"\");\n }\n return (React.createElement(List, { sx: { width: '100%', maxWidth: 360, bgcolor: 'background.paper' } }, Object.keys(groupedFiles).sort().map((CropCollection) => (React.createElement(React.Fragment, { key: CropCollection },\n React.createElement(ListSubheader, { component: \"div\", id: \"nested-list-subheader\" }, CropCollection),\n groupedFiles[CropCollection].sort((a, b) => new Date(b.uploadedDate).getTime() - new Date(a.uploadedDate).getTime()).map(({ fileName, uploadedDate }, index) => (React.createElement(ListItemButton, { key: fileName, selected: fileName === selectedFile, onClick: () => onSelect(fileName) },\n React.createElement(Avatar, { alt: fileName, src: `/weed/avatar/${fileName}`, style: { marginRight: '16px' } }),\n React.createElement(ListItemText, { primary: removeFileExtension(fileName), secondary: uploadedDate })))))))));\n};\nexport default ListWeed;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport Link from '@mui/material/Link';\nimport { Box, Button, Tooltip, IconButton, Divider, Grid, Stack, Typography, Dialog, DialogTitle, DialogContent, DialogActions, DialogContentText, TextField, Card, CardContent, FormControl, InputLabel, Select, MenuItem, RadioGroup, FormControlLabel, Radio } from '@mui/material';\nimport ListAndView from './elements/ListAndView';\nimport NoteAddIcon from '@mui/icons-material/NoteAdd';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport ListWeed from './weed/ListWeed';\nconst Weeds = (_a) => {\n var props = __rest(_a, []);\n const [selectedFiles, setSelectedFiles] = React.useState(null);\n const [uploadedFiles, setUploadedFiles] = React.useState([]);\n const [uploadedTIFF, setUploadedTIFF] = React.useState(null);\n const [xTiles, setXTiles] = React.useState(1); // default value is 1\n const [yTiles, setYTiles] = React.useState(1); // default value is 1\n const tileOptions = Array.from({ length: 50 }, (_, i) => i + 1);\n const [predTiffPath, setPredTiffPath] = React.useState(null);\n const [openDeleteDialog, setOpenDeleteDialog] = React.useState(false);\n const [deleteIndex, setDeleteIndex] = React.useState(-1); // Store the index of the file to be deleted\n const [selectedImage, setSelectedImage] = React.useState(null);\n const [predictionImage, setPredictionImage] = React.useState(null);\n const [SelectedModel, SetSelectedModel] = React.useState(null);\n const [isPredictionLoading, setIsPredictionLoading] = React.useState(false);\n const [isLoading, setIsLoading] = React.useState(false);\n const [statistics, setStatistics] = React.useState({});\n const [openAddDialog, setOpenAddDialog] = React.useState(false);\n const [analysisOption, setAnalysisOption] = React.useState(\"single\"); // \"single\" or \"wholeField\"\n const [customFilename, setCustomFilename] = React.useState('');\n const [selectedCropType, setSelectedCropType] = React.useState('');\n const [CropCollection, SetCropCollection] = React.useState('');\n const [metaInfo, setMetaInfo] = React.useState(null);\n React.useEffect(() => {\n if (selectedImage) {\n fetch(`/weed/get-metafile/${selectedImage}`)\n .then(response => response.json())\n .then(data => {\n setMetaInfo(data.metainfo[0]); // assuming that the API returns an array and you want the first element\n })\n .catch(error => {\n console.error(error);\n });\n }\n }, [selectedImage]);\n const handleFileSelect = (event) => {\n if (event.target.files) {\n setSelectedFiles(event.target.files);\n }\n };\n React.useEffect(() => {\n // Prevent fetching if we've already fetched twice\n // Fetch the list of uploaded files from the backend and update the state\n fetch('/weed/get-uploaded-files')\n .then(response => response.json())\n .then(data => {\n setUploadedFiles(data.uploadedFiles); // Update the state with the fetched data\n })\n .catch(error => {\n console.error(error);\n });\n }, []); // Empty dependency array means this effect runs only once after component mounts\n const handleImageSelect = (fileName) => {\n setSelectedImage(fileName);\n SetSelectedModel(null);\n setUploadedTIFF(null);\n };\n const handleFileUpload = () => {\n if (selectedFiles) {\n const formData = new FormData();\n for (let i = 0; i < selectedFiles.length; i++) {\n formData.append('files', selectedFiles[i]);\n }\n formData.append('selectedCropType', selectedCropType);\n formData.append('CropCollection', CropCollection);\n formData.append('customFilename', customFilename);\n // Use fetch or your preferred method to send the formData to the backend\n fetch('/weed/upload-files', {\n method: 'POST',\n body: formData,\n })\n .then(response => response.json())\n .then(data => {\n // Handle the response from the server\n console.log(data);\n // Update the list of uploaded files and clear the selectedFiles\n // setUploadedFiles([...uploadedFiles, ...data.saved_files]);\n setSelectedFiles(null);\n setSelectedCropType('');\n SetCropCollection('');\n setCustomFilename('');\n fetch('/weed/get-uploaded-files')\n .then(response => response.json())\n .then(data => {\n setUploadedFiles(data.uploadedFiles); // Update the state with the fetched data\n })\n .catch(error => {\n console.error(error);\n });\n })\n .catch(error => {\n // Handle errors\n console.error(error);\n });\n }\n };\n const handleFileUploadTiff = () => {\n if (selectedFiles) {\n setIsLoading(true); // Start loading\n const formData = new FormData();\n for (let i = 0; i < selectedFiles.length; i++) {\n formData.append('files', selectedFiles[i]);\n }\n if (SelectedModel) {\n formData.append('model_name', SelectedModel);\n }\n formData.append('x_tiles', xTiles.toString());\n formData.append('y_tiles', yTiles.toString());\n // Use fetch or your preferred method to send the formData to the backend\n fetch('/weed/upload-files-tiff', {\n method: 'POST',\n body: formData,\n })\n .then(response => response.json())\n .then(data => {\n // Handle the response from the server\n console.log(data);\n const { image, prediction, statistics, predtiff_path } = data;\n const uploadedImageUrl = `data:image/jpeg;base64,${image}`;\n const predictionImageUrl = `data:image/jpeg;base64,${prediction}`;\n // Update the list of uploaded files and clear the selectedFiles\n // setUploadedFiles([...uploadedFiles, ...data.saved_files]);\n setPredictionImage(predictionImageUrl);\n setUploadedTIFF(uploadedImageUrl);\n setStatistics(statistics);\n setPredTiffPath(predtiff_path);\n setSelectedFiles(null);\n setIsLoading(false);\n setSelectedImage(null);\n })\n .catch(error => {\n console.error(error);\n setIsLoading(false);\n });\n }\n };\n const download_predTiffPath = () => {\n if (predTiffPath) {\n const fileName = predTiffPath.split('/').pop();\n const predtiffUrl = `/weed/get-prediction-tiff/${fileName}`;\n // Create a hyperlink element and trigger download\n const link = document.createElement('a');\n link.href = predtiffUrl;\n link.download = fileName || 'prediction.tif'; // Provide a default name if fileName is not extracted\n document.body.appendChild(link);\n link.click();\n // Cleanup: remove the link from the DOM\n document.body.removeChild(link);\n }\n };\n const handleFileDelete = () => {\n const index = uploadedFiles.findIndex(file => file.fileName === selectedImage);\n // Use fetch or your preferred method to send the delete request to the backend\n fetch(`/weed/delete-file/${selectedImage}`, {\n method: 'DELETE',\n })\n .then(response => response.json())\n .then(data => {\n // Handle the response from the server\n console.log(data);\n // Remove the deleted file from the uploadedFiles state\n const updatedFiles = [...uploadedFiles];\n updatedFiles.splice(index, 1);\n setUploadedFiles(updatedFiles);\n })\n .catch(error => {\n // Handle errors\n console.error(error);\n });\n };\n const handlePrediction = (selectedImage, model_name) => {\n setIsPredictionLoading(true); // Start loading\n if (selectedImage) {\n // Send a request to your backend API to get the prediction image\n const formData = new FormData();\n formData.append('image_name', selectedImage);\n formData.append('model_name', model_name);\n fetch(`/weed/predict-image`, {\n method: 'POST',\n body: formData,\n })\n .then(response => response.json())\n .then(data => {\n const { image, statistics } = data;\n const predictionImageUrl = `data:image/png;base64,${image}`;\n setPredictionImage(predictionImageUrl);\n // You can set these statistics to your state\n setStatistics(statistics);\n setIsPredictionLoading(false); // Stop loading\n })\n .catch(error => {\n console.error(error);\n setIsPredictionLoading(false); // Stop loading\n });\n }\n };\n const handleDownloadPredictionGeotiff = (selectedImage, model_name) => {\n if (selectedImage) {\n const formData = new FormData();\n formData.append('image_name', selectedImage);\n formData.append('model_name', model_name);\n fetch(`/weed/predict-geotiff`, {\n method: 'POST',\n body: formData,\n })\n .then(response => response.blob())\n .then(blob => {\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `${selectedImage}_predicted.tif`);\n document.body.appendChild(link);\n link.click();\n })\n .catch(error => {\n console.error(error);\n });\n }\n };\n const handleDownloadPrediction = (Image) => {\n // Create an anchor element and trigger download\n if (Image) {\n const link = document.createElement('a');\n link.href = Image;\n link.download = 'download_img';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n };\n const handleDownloadSelectedImage = (Image) => {\n fetch(`/weed/get-image/${Image}`, {\n method: 'GET',\n })\n .then(response => response.blob())\n .then(blob => {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = Image;\n document.body.appendChild(a);\n a.click();\n a.remove();\n })\n .catch((error) => console.error(\"Error fetching the image:\", error));\n };\n const handleAddDialogOpen = () => {\n setOpenAddDialog(true);\n };\n const handleAddDialogClose = () => {\n setOpenAddDialog(false);\n };\n const getCollectionsForCrop = (cropType) => {\n switch (cropType) {\n case \"Хлопок\":\n return [\n \"Хлопок: до начала цветения (высота 5 м)\"\n ];\n case \"Пшеница\":\n return [\n \"Пшеница: не определено\"\n ];\n case \"Ячмень\":\n return [\n \"Ячмень: Сентябрь (высота 20 м)\"\n ];\n case \"Соя\":\n return [\n \"Соя: не определено\"\n ];\n default:\n return [];\n }\n };\n const getModelsForCollection = () => {\n switch (metaInfo === null || metaInfo === void 0 ? void 0 : metaInfo.CropCollection) {\n case \"Хлопок: до начала цветения (высота 5 м)\":\n return [\n \"Хлопок - Гумай, Вьюнок, Портулак (5м)\"\n ];\n case \"Ячмень: Сентябрь (высота 20 м)\":\n return [\n \"Ячмень - Сорняк (20м)\"\n ];\n default:\n return [];\n }\n };\n const getAllModels = () => {\n return [\n \"Хлопок - Гумай, Вьюнок, Портулак (5м)\",\n \"Ячмень - Сорняк (20м)\"\n ];\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Stack, { spacing: 2, sx: { padding: '0px', flex: '1 1 auto', pt: '20px' } },\n React.createElement(Breadcrumbs, { \"aria-label\": \"breadcrumb\", sx: { pl: 3 } },\n React.createElement(Link, { underline: \"hover\", color: \"inherit\", href: \"/\" }, \"Agriculture\"),\n React.createElement(Typography, { color: \"text.primary\" }, \"\\u041A\\u0430\\u0440\\u0442\\u0430 \\u0437\\u0430\\u0441\\u043E\\u0440\\u0435\\u043D\\u043D\\u043E\\u0441\\u0442\\u0438\")),\n React.createElement(Divider, null),\n React.createElement(ListAndView, { left: React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: {\n backgroundColor: '#fafafa',\n height: '52px',\n borderBottom: '1px solid #eaeaea',\n display: 'flex',\n alignItems: 'center',\n padding: '0px 16px'\n } },\n React.createElement(Tooltip, { title: \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442 \\u0438\\u0437 \\u0444\\u0430\\u0439\\u043B\\u0430\" },\n React.createElement(IconButton, { onClick: handleAddDialogOpen, \"aria-label\": \"fingerprint\", color: \"success\" },\n React.createElement(NoteAddIcon, null))),\n React.createElement(Dialog, { maxWidth: 'xs', open: openAddDialog, onClose: handleAddDialogClose },\n React.createElement(DialogTitle, null, \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442\"),\n React.createElement(DialogContent, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u041C\\u043E\\u0434\\u0443\\u043B\\u044C \\u0440\\u0430\\u0441\\u043F\\u043E\\u0437\\u043D\\u0430\\u0432\\u0430\\u043D\\u0438\\u044F \\u0441\\u043E\\u0440\\u043D\\u044F\\u043A\\u043E\\u0432 \\u2014 \\u044D\\u0442\\u043E \\u043C\\u043E\\u0434\\u0443\\u043B\\u044C, \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0439 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442 \\u0432\\u043E\\u0437\\u043C\\u043E\\u0436\\u043D\\u043E\\u0441\\u0442\\u0438 \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u0439, \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0441 \\u043F\\u043E\\u043C\\u043E\\u0449\\u044C\\u044E \\u0434\\u0440\\u043E\\u043D\\u043E\\u0432, \\u0434\\u043B\\u044F \\u0438\\u0434\\u0435\\u043D\\u0442\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u0438 \\u0434\\u0438\\u0444\\u0444\\u0435\\u0440\\u0435\\u043D\\u0446\\u0438\\u0430\\u0446\\u0438\\u0438 \\u0441\\u043E\\u0440\\u043D\\u044F\\u043A\\u043E\\u0432 \\u043E\\u0442 \\u0441\\u0435\\u043B\\u044C\\u0441\\u043A\\u043E\\u0445\\u043E\\u0437\\u044F\\u0439\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043A\\u0443\\u043B\\u044C\\u0442\\u0443\\u0440. \\u041E\\u0431\\u0440\\u0430\\u0431\\u0430\\u0442\\u044B\\u0432\\u0430\\u044F \\u0430\\u044D\\u0440\\u043E\\u0444\\u043E\\u0442\\u043E\\u0441\\u043D\\u0438\\u043C\\u043A\\u0438 \\u0432\\u044B\\u0441\\u043E\\u043A\\u043E\\u0433\\u043E \\u0440\\u0430\\u0437\\u0440\\u0435\\u0448\\u0435\\u043D\\u0438\\u044F, \\u044D\\u0442\\u043E\\u0442 \\u043C\\u043E\\u0434\\u0443\\u043B\\u044C \\u043F\\u0440\\u0438\\u043C\\u0435\\u043D\\u044F\\u0435\\u0442 \\u0430\\u043B\\u0433\\u043E\\u0440\\u0438\\u0442\\u043C\\u044B \\u043A\\u043E\\u043C\\u043F\\u044C\\u044E\\u0442\\u0435\\u0440\\u043D\\u043E\\u0433\\u043E \\u0437\\u0440\\u0435\\u043D\\u0438\\u044F \\u0434\\u043B\\u044F \\u043E\\u0431\\u043D\\u0430\\u0440\\u0443\\u0436\\u0435\\u043D\\u0438\\u044F \\u043D\\u0435\\u0436\\u0435\\u043B\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0432\\u0438\\u0434\\u043E\\u0432 \\u0440\\u0430\\u0441\\u0442\\u0435\\u043D\\u0438\\u0439 \\u043D\\u0430 \\u0441\\u0435\\u043B\\u044C\\u0441\\u043A\\u043E\\u0445\\u043E\\u0437\\u044F\\u0439\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043F\\u043E\\u043B\\u044F\\u0445.\")),\n React.createElement(Divider, { variant: \"middle\" }),\n React.createElement(RadioGroup, { row: true, value: analysisOption, onChange: (e) => setAnalysisOption(e.target.value) },\n React.createElement(FormControlLabel, { value: \"single\", control: React.createElement(Radio, null), label: \"\\u0410\\u043D\\u0430\\u043B\\u0438\\u0437 \\u043E\\u0434\\u0438\\u043D\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F\" }),\n React.createElement(FormControlLabel, { value: \"wholeField\", control: React.createElement(Radio, null), label: \"\\u0410\\u043D\\u0430\\u043B\\u0438\\u0437 \\u043A\\u0440\\u0443\\u043F\\u043D\\u043E\\u0433\\u043E \\u0441\\u043D\\u0438\\u043C\\u043A\\u0430\" })),\n analysisOption === \"single\" && (React.createElement(Stack, { spacing: 2, direction: 'column', sx: { padding: '0px 16px', marginTop: '16px' } },\n React.createElement(Box, { component: \"span\", sx: { p: 2, border: '1px dashed grey', display: 'flex', justifyContent: 'center' } },\n React.createElement(Stack, { spacing: 2 },\n React.createElement(Button, { variant: \"text\", component: \"label\" },\n \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0444\\u0430\\u0439\\u043B\",\n React.createElement(\"input\", { hidden: true, type: \"file\", accept: \".png,.jpg,.jpeg,.tif,.tiff\", onChange: handleFileSelect })),\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, selectedFiles !== null ? selectedFiles[0].name : 'Изображение не выбрано'))),\n React.createElement(FormControl, { fullWidth: true, margin: \"normal\" },\n React.createElement(InputLabel, { id: \"select-croptype\" }, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043A\\u0443\\u043B\\u044C\\u0442\\u0443\\u0440\\u0443\"),\n React.createElement(Select, { labelId: \"select-croptype\", label: \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043A\\u0443\\u043B\\u044C\\u0442\\u0443\\u0440\\u0443\", value: selectedCropType, onChange: (e) => setSelectedCropType(e.target.value) },\n React.createElement(MenuItem, { value: \"Хлопок\" }, \"\\u0425\\u043B\\u043E\\u043F\\u043E\\u043A\"),\n React.createElement(MenuItem, { value: \"Пшеница\" }, \"\\u041F\\u0448\\u0435\\u043D\\u0438\\u0446\\u0430\"),\n React.createElement(MenuItem, { value: \"Ячмень\" }, \"\\u042F\\u0447\\u043C\\u0435\\u043D\\u044C\"),\n React.createElement(MenuItem, { value: \"Соя\" }, \"\\u0421\\u043E\\u044F\"))),\n React.createElement(FormControl, { fullWidth: true, margin: \"normal\" },\n React.createElement(InputLabel, { id: \"select-cropcollection\" }, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043A\\u043E\\u043B\\u043B\\u0435\\u043A\\u0446\\u0438\\u044E\"),\n React.createElement(Select, { labelId: \"select-cropcollection\", label: \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043A\\u043E\\u043B\\u043B\\u0435\\u043A\\u0446\\u0438\\u044E\", value: CropCollection, onChange: (e) => SetCropCollection(e.target.value) }, getCollectionsForCrop(selectedCropType).map(collection => (React.createElement(MenuItem, { key: collection, value: collection }, collection))))),\n React.createElement(TextField, { label: \"\\u0418\\u043C\\u044F \\u0444\\u0430\\u0439\\u043B\\u0430\" // Input field for custom filename\n , value: customFilename, onChange: (e) => setCustomFilename(e.target.value), fullWidth: true, margin: \"normal\" }))),\n analysisOption === \"wholeField\" && (React.createElement(React.Fragment, null,\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"\\u041F\\u0440\\u0438 \\u0432\\u044B\\u0431\\u043E\\u0440\\u0435 \\u0434\\u0430\\u043D\\u043D\\u043E\\u0439 \\u043E\\u043F\\u0446\\u0438\\u0438 \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u0435 \\u043D\\u0435 \\u0441\\u043E\\u0445\\u0440\\u0430\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043D\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0435, \\u0432\\u044B \\u043F\\u043E\\u043B\\u0443\\u0447\\u0430\\u0435\\u0442\\u0435 \\u0432\\u0440\\u0435\\u043C\\u0435\\u043D\\u043D\\u0443\\u044E \\u0441\\u0441\\u044B\\u043B\\u043A\\u0443 \\u043D\\u0430 \\u0441\\u043A\\u0430\\u0447\\u0438\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0441\\u0440\\u0430\\u0437\\u0443 \\u043F\\u043E\\u0441\\u043B\\u0435 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438.\")),\n React.createElement(Box, { sx: { padding: '0px 16px 16px 16px' } },\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"1. \\u0418\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u0435 \\u0434\\u043E\\u043B\\u0436\\u043D\\u043E \\u0431\\u044B\\u0442\\u044C \\u0432 \\u0444\\u043E\\u0440\\u043C\\u0430\\u0442\\u0435 tif\"),\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\" }, \"2. \\u0412 \\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0438\\u0438 \\u0441 \\u0432\\u044B\\u0431\\u0440\\u0430\\u043D\\u043D\\u043E\\u0439 \\u043C\\u043E\\u0434\\u0435\\u043B\\u044C\\u044E \\u0438 \\u0432\\u044B\\u0441\\u043E\\u0442\\u043E\\u0439 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0436\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F \\u0432\\u044B\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442\\u0441\\u044F \\u043D\\u0430 \\u0441\\u043A\\u043E\\u043B\\u044C\\u043A\\u043E \\u0444\\u0440\\u0430\\u0433\\u043C\\u0435\\u043D\\u0442\\u043E\\u0432 \\u043F\\u043E \\u0433\\u043E\\u0440\\u0438\\u0437\\u043E\\u043D\\u0442\\u0430\\u043B\\u0438 \\u0438 \\u0432\\u0435\\u0440\\u0442\\u0438\\u043A\\u0430\\u043B\\u0438 \\u0431\\u0443\\u0434\\u0435\\u0442 \\u043F\\u043E\\u0434\\u0435\\u043B\\u0435\\u043D\\u043E \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u0435 \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438\")),\n React.createElement(Box, { component: \"span\", sx: { p: 2, border: '1px dashed grey', display: 'flex', justifyContent: 'center' } },\n React.createElement(Stack, { spacing: 2 },\n React.createElement(Button, { variant: \"text\", component: \"label\" },\n \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0444\\u0430\\u0439\\u043B\",\n React.createElement(\"input\", { hidden: true, type: \"file\", accept: \".tif,.tiff\", onChange: handleFileSelect })),\n React.createElement(Typography, { color: \"text.secondary\", variant: \"body2\", sx: { textAlign: 'center' } }, selectedFiles !== null ? selectedFiles[0].name : 'Изображение не выбрано'))),\n React.createElement(FormControl, { fullWidth: true, margin: \"normal\" },\n React.createElement(InputLabel, { id: \"select-model\" }, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043C\\u043E\\u0434\\u0435\\u043B\\u044C \\u0434\\u043B\\u044F \\u043F\\u0440\\u0435\\u0434\\u0441\\u043A\\u0430\\u0437\\u0430\\u043D\\u0438\\u044F\"),\n React.createElement(Select, { labelId: \"select-model\", label: \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043C\\u043E\\u0434\\u0435\\u043B\\u044C \\u0434\\u043B\\u044F \\u043F\\u0440\\u0435\\u0434\\u0441\\u043A\\u0430\\u0437\\u0430\\u043D\\u0438\\u044F\", value: SelectedModel, onChange: (e) => SetSelectedModel(e.target.value) }, getAllModels().map(model => (React.createElement(MenuItem, { key: model, value: model }, model))))),\n React.createElement(FormControl, { fullWidth: true, margin: \"normal\" },\n React.createElement(InputLabel, { shrink: true, id: \"select-x-tiles\" }, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u0447\\u0438\\u0441\\u043B\\u043E \\u0444\\u0440\\u0430\\u0433\\u043C\\u0435\\u043D\\u0442\\u043E\\u0432 \\u043F\\u043E \\u043E\\u0441\\u0438 X\"),\n React.createElement(Select, { labelId: \"select-x-tiles\", label: \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u043B\\u0438\\u0442\\u043E\\u043A \\u043F\\u043E \\u043E\\u0441\\u0438 X\", value: xTiles, onChange: (e) => setXTiles(Number(e.target.value)), MenuProps: {\n PaperProps: {\n style: {\n maxHeight: '200px' // or any other value you see fit\n }\n }\n } }, tileOptions.map(option => (React.createElement(MenuItem, { key: option, value: option }, option))))),\n React.createElement(FormControl, { fullWidth: true, margin: \"normal\" },\n React.createElement(InputLabel, { shrink: true, id: \"select-y-tiles\" }, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u0447\\u0438\\u0441\\u043B\\u043E \\u0444\\u0440\\u0430\\u0433\\u043C\\u0435\\u043D\\u0442\\u043E\\u0432 \\u043F\\u043E \\u043E\\u0441\\u0438 Y\"),\n React.createElement(Select, { labelId: \"select-y-tiles\", label: \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u043B\\u0438\\u0442\\u043E\\u043A \\u043F\\u043E \\u043E\\u0441\\u0438 Y\", value: yTiles, onChange: (e) => setYTiles(Number(e.target.value)), MenuProps: {\n PaperProps: {\n style: {\n maxHeight: '200px' // or any other value you see fit\n }\n }\n } }, tileOptions.map(option => (React.createElement(MenuItem, { key: option, value: option }, option)))))))),\n analysisOption === \"single\" && (React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: handleAddDialogClose }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"),\n React.createElement(Button, { onClick: () => { handleAddDialogClose(); handleFileUpload(); } }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u0438\\u0442\\u044C\"))),\n analysisOption === \"wholeField\" && (React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: handleAddDialogClose }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"),\n React.createElement(Button, { onClick: () => { handleAddDialogClose(); handleFileUploadTiff(); } }, \"\\u0410\\u043D\\u0430\\u043B\\u0438\\u0437\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\"))))),\n React.createElement(Box, { sx: {\n height: 'calc(100vh - 180px)',\n overflowY: 'scroll',\n \"&::-webkit-scrollbar\": {\n width: 8\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#F1F1F1\"\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: \"#C1C1C1\",\n borderRadius: 2\n }\n } },\n React.createElement(Dialog, { open: openDeleteDialog, onClose: () => setOpenDeleteDialog(false) },\n React.createElement(DialogTitle, null, \"\\u041F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435 \\u0443\\u0434\\u0430\\u043B\\u0435\\u043D\\u0438\\u044F\"),\n React.createElement(DialogContent, null,\n React.createElement(DialogContentText, null, \"\\u0412\\u044B \\u0443\\u0432\\u0435\\u0440\\u0435\\u043D\\u044B \\u0447\\u0442\\u043E \\u0445\\u043E\\u0442\\u0438\\u0442\\u0435 \\u0443\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C \\u0434\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0444\\u0430\\u0439\\u043B?\")),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: () => setOpenDeleteDialog(false), color: \"primary\" }, \"\\u041D\\u0430\\u0437\\u0430\\u0434\"),\n React.createElement(Button, { onClick: () => {\n setOpenDeleteDialog(false);\n handleFileDelete();\n }, color: \"primary\", autoFocus: true }, \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\"))),\n React.createElement(ListWeed, { uploadedFiles: uploadedFiles, selectedFile: selectedImage, onSelect: handleImageSelect }))), view: React.createElement(Grid, { container: true, spacing: 0, sx: { marginTop: '0px !important', height: '100%' } },\n React.createElement(Grid, { item: true, xs: true },\n isLoading &&\n //
Loading...
\n React.createElement(React.Fragment, null,\n React.createElement(Box, { display: \"flex\", justifyContent: \"center\", alignItems: \"center\", height: \"50vh\" },\n React.createElement(CircularProgress, null),\n React.createElement(Box, { sx: { padding: '16px' } },\n React.createElement(Typography, { variant: 'body1' }, \"\\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043D\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\"),\n React.createElement(Typography, { variant: 'body1' }, \"\\u0438 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0430 \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F...\")))),\n uploadedTIFF && (React.createElement(Box, { sx: { width: '350px', flex: '1 1 auto', display: 'flex', flexDirection: 'column' } },\n React.createElement(Card, { sx: { minWidth: 275, border: 'none', boxShadow: 'none', borderRadius: 0, display: 'flex', flexDirection: 'column', flex: '1 1 auto' } },\n React.createElement(CardContent, { sx: { pt: '32px', color: 'white', backgroundColor: `rgb(18, 113, 71)` } },\n React.createElement(Stack, { direction: 'row', spacing: 1, sx: { alignItems: 'center', position: 'relative' } },\n React.createElement(Typography, { variant: \"h5\", gutterBottom: true, sx: { fontWeight: 200 } }, \"\\u0410\\u043D\\u0430\\u043B\\u0438\\u0437 Tiff \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F\"))),\n React.createElement(\"div\", null,\n React.createElement(\"img\", { src: uploadedTIFF, alt: \"tiff\", style: { width: '100%', height: 'auto' } }))))),\n selectedImage && (React.createElement(Box, { sx: { width: '350px', flex: '1 1 auto', display: 'flex', flexDirection: 'column' } },\n React.createElement(Card, { sx: { minWidth: 275, border: 'none', boxShadow: 'none', borderRadius: 0, display: 'flex', flexDirection: 'column', flex: '1 1 auto' } },\n React.createElement(CardContent, { sx: { pt: '32px', color: 'white', backgroundColor: `rgb(18, 113, 71)` } },\n React.createElement(Stack, { direction: 'row', spacing: 1, sx: { alignItems: 'center', position: 'relative' } },\n React.createElement(Typography, { variant: \"h5\", gutterBottom: true, sx: { fontWeight: 200 } }, \"\\u0421\\u0432\\u0435\\u0434\\u0435\\u043D\\u0438\\u044F \\u043E \\u0444\\u0430\\u0439\\u043B\\u0435\"))),\n React.createElement(\"div\", { style: { marginTop: 2 } },\n React.createElement(\"img\", { src: `/weed/get-image-compressed/${selectedImage}`, alt: \"Selected\", style: { width: '100%', height: 'auto' } }))),\n React.createElement(Box, { sx: { marginTop: 2, marginLeft: 2 } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0424\\u043E\\u0440\\u043C\\u0430\\u0442 \\u0438\\u0437\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true }, (metaInfo === null || metaInfo === void 0 ? void 0 : metaInfo.format) || 'Loading...')),\n React.createElement(Box, { sx: { marginTop: 2, marginLeft: 2 } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0422\\u0438\\u043F \\u043A\\u0443\\u043B\\u044C\\u0442\\u0443\\u0440\\u044B\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true }, (metaInfo === null || metaInfo === void 0 ? void 0 : metaInfo.selectedCropType) || 'Loading...')),\n React.createElement(Box, { sx: { marginTop: 2, marginLeft: 2 } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u041A\\u043E\\u043B\\u043B\\u0435\\u043A\\u0446\\u0438\\u044F\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true }, (metaInfo === null || metaInfo === void 0 ? void 0 : metaInfo.CropCollection) || 'Loading...')),\n React.createElement(Box, { sx: { marginTop: 2, marginLeft: 2 } },\n React.createElement(Typography, { variant: \"caption\", display: \"block\", color: 'primary.main', gutterBottom: true }, \"\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true }, metaInfo ? new Date(metaInfo.uploadedDate).toISOString().split('T')[0] + ' ' + new Date(metaInfo.uploadedDate).toTimeString().split(' ')[0] : 'Loading...')),\n React.createElement(FormControl, { fullWidth: true, margin: \"normal\" },\n React.createElement(InputLabel, { id: \"select-model\" }, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043C\\u043E\\u0434\\u0435\\u043B\\u044C \\u0434\\u043B\\u044F \\u043F\\u0440\\u0435\\u0434\\u0441\\u043A\\u0430\\u0437\\u0430\\u043D\\u0438\\u044F\"),\n React.createElement(Select, { labelId: \"select-model\", label: \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0438\\u0442\\u0435 \\u043C\\u043E\\u0434\\u0435\\u043B\\u044C \\u0434\\u043B\\u044F \\u043F\\u0440\\u0435\\u0434\\u0441\\u043A\\u0430\\u0437\\u0430\\u043D\\u0438\\u044F\", value: SelectedModel, onChange: (e) => SetSelectedModel(e.target.value) }, getModelsForCollection().map(model => (React.createElement(MenuItem, { key: model, value: model }, model))))),\n SelectedModel &&\n React.createElement(Button, { variant: \"contained\", color: \"primary\", sx: { marginTop: 2 }, onClick: () => handlePrediction(selectedImage, SelectedModel) }, \"\\u041F\\u043E\\u043B\\u0443\\u0447\\u0438\\u0442\\u044C \\u043F\\u0440\\u0435\\u0434\\u0441\\u043A\\u0430\\u0437\\u0430\\u043D\\u0438\\u0435\"),\n React.createElement(Grid, { container: true, spacing: 2, sx: { marginTop: 2, marginBottom: 2 } },\n React.createElement(Grid, { item: true, xs: 6 },\n React.createElement(Button, { color: \"error\", fullWidth: true, onClick: () => { {\n setOpenDeleteDialog(true);\n } } }, \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\")),\n React.createElement(Grid, { item: true, xs: 6 },\n React.createElement(Button, { color: \"primary\", fullWidth: true, onClick: () => handleDownloadSelectedImage(selectedImage) }, \"\\u042D\\u043A\\u0441\\u043F\\u043E\\u0440\\u0442\")))))),\n React.createElement(Grid, { item: true, xs: true },\n isPredictionLoading && (React.createElement(\"div\", null,\n React.createElement(Typography, { variant: \"h6\" }, \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430...\"))),\n predictionImage && (React.createElement(Box, { sx: { width: '350px', flex: '1 1 auto', display: 'flex', flexDirection: 'column' } },\n React.createElement(Card, { sx: { minWidth: 275, border: 'none', boxShadow: 'none', borderRadius: 0, display: 'flex', flexDirection: 'column', flex: '1 1 auto' } },\n React.createElement(CardContent, { sx: { pt: '32px', color: 'white', backgroundColor: `rgb(18, 113, 71)` } },\n React.createElement(Stack, { direction: 'row', spacing: 1, sx: { alignItems: 'center', position: 'relative' } },\n React.createElement(Typography, { variant: \"h5\", gutterBottom: true, sx: { fontWeight: 200 } }, \"\\u0412\\u044B\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435 \\u0441\\u043E\\u0440\\u043D\\u044F\\u043A\\u043E\\u0432\"))),\n React.createElement(\"div\", { style: { marginTop: 2 } },\n React.createElement(\"img\", { src: predictionImage, alt: \"Prediction\", style: { width: '100%', height: 'auto' } })),\n statistics && SelectedModel === \"Хлопок - Гумай, Вьюнок, Портулак (5м)\" && (React.createElement(React.Fragment, null,\n React.createElement(Box, { sx: { marginTop: 2, marginLeft: 2 } },\n React.createElement(Typography, { display: \"block\", gutterBottom: true },\n \"\\u0424\\u043E\\u043D: \",\n (statistics === null || statistics === void 0 ? void 0 : statistics.unlabeled) != null ? statistics.unlabeled.toFixed(2) : 'Loading...',\n \"%\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true },\n \"\\u0413\\u0443\\u043C\\u0430\\u0439: \",\n (statistics === null || statistics === void 0 ? void 0 : statistics.johnson_grass) != null ? statistics.johnson_grass.toFixed(2) : 'Loading...',\n \"%\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true },\n \"\\u0412\\u044C\\u044E\\u043D\\u043E\\u043A \\u043F\\u043E\\u043B\\u0435\\u0432\\u043E\\u0439: \",\n (statistics === null || statistics === void 0 ? void 0 : statistics.field_bindweed) != null ? statistics.field_bindweed.toFixed(2) : 'Loading...',\n \"%\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true },\n \"\\u041F\\u043E\\u0440\\u0442\\u0443\\u043B\\u0430\\u043A \\u043E\\u0433\\u043E\\u0440\\u043E\\u0434\\u043D\\u044B\\u0439: \",\n (statistics === null || statistics === void 0 ? void 0 : statistics.purslane) != null ? statistics.purslane.toFixed(2) : 'Loading...',\n \"%\")))),\n statistics && SelectedModel === \"Ячмень - Сорняк (20м)\" && (React.createElement(React.Fragment, null,\n React.createElement(Box, { sx: { marginTop: 2, marginLeft: 2 } },\n React.createElement(Typography, { display: \"block\", gutterBottom: true },\n \"\\u0424\\u043E\\u043D: \",\n (statistics === null || statistics === void 0 ? void 0 : statistics.unlabeled) != null ? statistics.unlabeled.toFixed(2) : 'Loading...',\n \"%\"),\n React.createElement(Typography, { display: \"block\", gutterBottom: true },\n \"\\u0421\\u043E\\u0440\\u043D\\u044F\\u043A: \",\n (statistics === null || statistics === void 0 ? void 0 : statistics.weed) != null ? statistics.weed.toFixed(2) : 'Loading...',\n \"%\")))),\n React.createElement(Button, { color: \"primary\", sx: { marginTop: 2 }, onClick: () => handleDownloadPrediction(predictionImage) }, \"\\u042D\\u043A\\u0441\\u043F\\u043E\\u0440\\u0442 \\u0432 PNG\"),\n selectedImage && SelectedModel && (React.createElement(Button, { color: \"primary\", sx: { marginTop: 2 }, onClick: () => handleDownloadPredictionGeotiff(selectedImage, SelectedModel) }, \"\\u042D\\u043A\\u0441\\u043F\\u043E\\u0440\\u0442 \\u0432 GeoTIFF\")),\n predTiffPath && uploadedTIFF && (React.createElement(React.Fragment, null,\n React.createElement(Button, { color: \"primary\", sx: { marginTop: 2 }, onClick: () => download_predTiffPath() }, \"\\u042D\\u043A\\u0441\\u043F\\u043E\\u0440\\u0442 \\u0432 GeoTIFF\"),\n React.createElement(Typography, { sx: { padding: '16px' } }, \"(\\u0421\\u043A\\u0430\\u0447\\u0438\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u043E \\u0432 \\u0442\\u0435\\u0447\\u0435\\u043D\\u0438\\u0438 \\u0447\\u0430\\u0441\\u0430)\")))))))) }))));\n};\nexport default Weeds;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport MiniDrawer from '../components/Header';\nimport Weeds from '../components/Weed';\nconst Weed = (_a) => {\n var props = __rest(_a, []);\n const drawler = React.useRef(null);\n return (React.createElement(MiniDrawer, { type: 'weed', ref: drawler },\n React.createElement(Weeds, { token: props.token })));\n};\nexport default Weed;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { createTheme, ThemeProvider, responsiveFontSizes } from '@mui/material/styles';\nimport App from './client/app';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport { SnackbarProvider } from 'notistack';\nlet theme = createTheme({\n palette: {\n background: {\n default: '#424242',\n },\n primary: {\n main: '#127147'\n },\n secondary: {\n main: '#ffc107'\n }\n }\n});\ntheme = responsiveFontSizes(theme);\nconst root = ReactDOM.createRoot(document.getElementById(\"app\"));\nroot.render(React.createElement(ThemeProvider, { theme: theme },\n React.createElement(Router, null,\n React.createElement(SnackbarProvider, { maxSnack: 7 },\n React.createElement(App, null)))));\n","import React from 'react';\nimport { Route, Routes, Navigate, useNavigate } from 'react-router-dom';\nimport Home from './controllers/home';\nimport Login from './controllers/login';\nimport Nvdi from './controllers/nvdi';\nimport Statistic from './controllers/statistic';\nimport Storage from './controllers/storage';\nimport useToken from './services/token';\nimport { SSEProvider } from 'react-hooks-sse';\nimport Flight from './controllers/flight';\nimport Fertilizer from './controllers/fertilizer';\nimport Weed from './controllers/weed';\nconst App = () => {\n const { token, verify, removeToken } = useToken();\n const navigate = useNavigate();\n React.useEffect(() => {\n if (!token && token !== \"\" && token !== undefined) {\n removeToken();\n navigate('/login');\n }\n else {\n if (verify() === false) {\n removeToken();\n navigate('/login');\n }\n }\n }, []);\n return (!token && token !== \"\" && token !== undefined\n ?\n React.createElement(Login, null)\n :\n React.createElement(SSEProvider, { endpoint: `/sse/${token}` },\n React.createElement(Routes, null,\n React.createElement(Route, { path: \"/\", element: React.createElement(Home, { token: token }) }),\n React.createElement(Route, { path: \"/storage\", element: React.createElement(Storage, { token: token }) }),\n React.createElement(Route, { path: \"/ndvi\", element: React.createElement(Nvdi, { token: token }) }),\n React.createElement(Route, { path: \"/fertilizer\", element: React.createElement(Fertilizer, { token: token }) }),\n React.createElement(Route, { path: \"/statistic\", element: React.createElement(Statistic, { token: token }) }),\n React.createElement(Route, { path: \"/flight\", element: React.createElement(Flight, { token: token }) }),\n React.createElement(Route, { path: \"/login\", element: React.createElement(Navigate, { to: \"/\" }) }),\n React.createElement(Route, { path: \"/weed\", element: React.createElement(Weed, { token: token }) }))));\n};\nexport default App;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\tif (cachedModule.error !== undefined) throw cachedModule.error;\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\ttry {\n\t\tvar execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ };\n\t\t__webpack_require__.i.forEach(function(handler) { handler(execOptions); });\n\t\tmodule = execOptions.module;\n\t\texecOptions.factory.call(module.exports, module, module.exports, execOptions.require);\n\t} catch(e) {\n\t\tmodule.error = e;\n\t\tthrow e;\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n// expose the module execution interceptor\n__webpack_require__.i = [];\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// This function allow to reference all chunks\n__webpack_require__.hu = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"hot/hot-update.js\";\n};","__webpack_require__.hmrF = () => (\"hot/hot-update.json\");","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var currentModuleData = {};\nvar installedModules = __webpack_require__.c;\n\n// module and require creation\nvar currentChildModule;\nvar currentParents = [];\n\n// status\nvar registeredStatusHandlers = [];\nvar currentStatus = \"idle\";\n\n// while downloading\nvar blockingPromises = 0;\nvar blockingPromisesWaiting = [];\n\n// The update info\nvar currentUpdateApplyHandlers;\nvar queuedInvalidatedModules;\n\n// eslint-disable-next-line no-unused-vars\n__webpack_require__.hmrD = currentModuleData;\n\n__webpack_require__.i.push(function (options) {\n\tvar module = options.module;\n\tvar require = createRequire(options.require, options.id);\n\tmodule.hot = createModuleHotObject(options.id, module);\n\tmodule.parents = currentParents;\n\tmodule.children = [];\n\tcurrentParents = [];\n\toptions.require = require;\n});\n\n__webpack_require__.hmrC = {};\n__webpack_require__.hmrI = {};\n\nfunction createRequire(require, moduleId) {\n\tvar me = installedModules[moduleId];\n\tif (!me) return require;\n\tvar fn = function (request) {\n\t\tif (me.hot.active) {\n\t\t\tif (installedModules[request]) {\n\t\t\t\tvar parents = installedModules[request].parents;\n\t\t\t\tif (parents.indexOf(moduleId) === -1) {\n\t\t\t\t\tparents.push(moduleId);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentParents = [moduleId];\n\t\t\t\tcurrentChildModule = request;\n\t\t\t}\n\t\t\tif (me.children.indexOf(request) === -1) {\n\t\t\t\tme.children.push(request);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"[HMR] unexpected require(\" +\n\t\t\t\t\trequest +\n\t\t\t\t\t\") from disposed module \" +\n\t\t\t\t\tmoduleId\n\t\t\t);\n\t\t\tcurrentParents = [];\n\t\t}\n\t\treturn require(request);\n\t};\n\tvar createPropertyDescriptor = function (name) {\n\t\treturn {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn require[name];\n\t\t\t},\n\t\t\tset: function (value) {\n\t\t\t\trequire[name] = value;\n\t\t\t}\n\t\t};\n\t};\n\tfor (var name in require) {\n\t\tif (Object.prototype.hasOwnProperty.call(require, name) && name !== \"e\") {\n\t\t\tObject.defineProperty(fn, name, createPropertyDescriptor(name));\n\t\t}\n\t}\n\tfn.e = function (chunkId) {\n\t\treturn trackBlockingPromise(require.e(chunkId));\n\t};\n\treturn fn;\n}\n\nfunction createModuleHotObject(moduleId, me) {\n\tvar _main = currentChildModule !== moduleId;\n\tvar hot = {\n\t\t// private stuff\n\t\t_acceptedDependencies: {},\n\t\t_acceptedErrorHandlers: {},\n\t\t_declinedDependencies: {},\n\t\t_selfAccepted: false,\n\t\t_selfDeclined: false,\n\t\t_selfInvalidated: false,\n\t\t_disposeHandlers: [],\n\t\t_main: _main,\n\t\t_requireSelf: function () {\n\t\t\tcurrentParents = me.parents.slice();\n\t\t\tcurrentChildModule = _main ? undefined : moduleId;\n\t\t\t__webpack_require__(moduleId);\n\t\t},\n\n\t\t// Module API\n\t\tactive: true,\n\t\taccept: function (dep, callback, errorHandler) {\n\t\t\tif (dep === undefined) hot._selfAccepted = true;\n\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n\t\t\telse if (typeof dep === \"object\" && dep !== null) {\n\t\t\t\tfor (var i = 0; i < dep.length; i++) {\n\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function () {};\n\t\t\t\t\thot._acceptedErrorHandlers[dep[i]] = errorHandler;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thot._acceptedDependencies[dep] = callback || function () {};\n\t\t\t\thot._acceptedErrorHandlers[dep] = errorHandler;\n\t\t\t}\n\t\t},\n\t\tdecline: function (dep) {\n\t\t\tif (dep === undefined) hot._selfDeclined = true;\n\t\t\telse if (typeof dep === \"object\" && dep !== null)\n\t\t\t\tfor (var i = 0; i < dep.length; i++)\n\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n\t\t\telse hot._declinedDependencies[dep] = true;\n\t\t},\n\t\tdispose: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\taddDisposeHandler: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\tremoveDisposeHandler: function (callback) {\n\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n\t\t},\n\t\tinvalidate: function () {\n\t\t\tthis._selfInvalidated = true;\n\t\t\tswitch (currentStatus) {\n\t\t\t\tcase \"idle\":\n\t\t\t\t\tcurrentUpdateApplyHandlers = [];\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tsetStatus(\"ready\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ready\":\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"prepare\":\n\t\t\t\tcase \"check\":\n\t\t\t\tcase \"dispose\":\n\t\t\t\tcase \"apply\":\n\t\t\t\t\t(queuedInvalidatedModules = queuedInvalidatedModules || []).push(\n\t\t\t\t\t\tmoduleId\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// ignore requests in error states\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t// Management API\n\t\tcheck: hotCheck,\n\t\tapply: hotApply,\n\t\tstatus: function (l) {\n\t\t\tif (!l) return currentStatus;\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\taddStatusHandler: function (l) {\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\tremoveStatusHandler: function (l) {\n\t\t\tvar idx = registeredStatusHandlers.indexOf(l);\n\t\t\tif (idx >= 0) registeredStatusHandlers.splice(idx, 1);\n\t\t},\n\n\t\t//inherit from previous dispose call\n\t\tdata: currentModuleData[moduleId]\n\t};\n\tcurrentChildModule = undefined;\n\treturn hot;\n}\n\nfunction setStatus(newStatus) {\n\tcurrentStatus = newStatus;\n\tvar results = [];\n\n\tfor (var i = 0; i < registeredStatusHandlers.length; i++)\n\t\tresults[i] = registeredStatusHandlers[i].call(null, newStatus);\n\n\treturn Promise.all(results);\n}\n\nfunction unblock() {\n\tif (--blockingPromises === 0) {\n\t\tsetStatus(\"ready\").then(function () {\n\t\t\tif (blockingPromises === 0) {\n\t\t\t\tvar list = blockingPromisesWaiting;\n\t\t\t\tblockingPromisesWaiting = [];\n\t\t\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\t\t\tlist[i]();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction trackBlockingPromise(promise) {\n\tswitch (currentStatus) {\n\t\tcase \"ready\":\n\t\t\tsetStatus(\"prepare\");\n\t\t/* fallthrough */\n\t\tcase \"prepare\":\n\t\t\tblockingPromises++;\n\t\t\tpromise.then(unblock, unblock);\n\t\t\treturn promise;\n\t\tdefault:\n\t\t\treturn promise;\n\t}\n}\n\nfunction waitForBlockingPromises(fn) {\n\tif (blockingPromises === 0) return fn();\n\treturn new Promise(function (resolve) {\n\t\tblockingPromisesWaiting.push(function () {\n\t\t\tresolve(fn());\n\t\t});\n\t});\n}\n\nfunction hotCheck(applyOnUpdate) {\n\tif (currentStatus !== \"idle\") {\n\t\tthrow new Error(\"check() is only allowed in idle status\");\n\t}\n\treturn setStatus(\"check\")\n\t\t.then(__webpack_require__.hmrM)\n\t\t.then(function (update) {\n\t\t\tif (!update) {\n\t\t\t\treturn setStatus(applyInvalidatedModules() ? \"ready\" : \"idle\").then(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn setStatus(\"prepare\").then(function () {\n\t\t\t\tvar updatedModules = [];\n\t\t\t\tcurrentUpdateApplyHandlers = [];\n\n\t\t\t\treturn Promise.all(\n\t\t\t\t\tObject.keys(__webpack_require__.hmrC).reduce(function (\n\t\t\t\t\t\tpromises,\n\t\t\t\t\t\tkey\n\t\t\t\t\t) {\n\t\t\t\t\t\t__webpack_require__.hmrC[key](\n\t\t\t\t\t\t\tupdate.c,\n\t\t\t\t\t\t\tupdate.r,\n\t\t\t\t\t\t\tupdate.m,\n\t\t\t\t\t\t\tpromises,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers,\n\t\t\t\t\t\t\tupdatedModules\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn promises;\n\t\t\t\t\t},\n\t\t\t\t\t[])\n\t\t\t\t).then(function () {\n\t\t\t\t\treturn waitForBlockingPromises(function () {\n\t\t\t\t\t\tif (applyOnUpdate) {\n\t\t\t\t\t\t\treturn internalApply(applyOnUpdate);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn setStatus(\"ready\").then(function () {\n\t\t\t\t\t\t\t\treturn updatedModules;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n}\n\nfunction hotApply(options) {\n\tif (currentStatus !== \"ready\") {\n\t\treturn Promise.resolve().then(function () {\n\t\t\tthrow new Error(\n\t\t\t\t\"apply() is only allowed in ready status (state: \" +\n\t\t\t\t\tcurrentStatus +\n\t\t\t\t\t\")\"\n\t\t\t);\n\t\t});\n\t}\n\treturn internalApply(options);\n}\n\nfunction internalApply(options) {\n\toptions = options || {};\n\n\tapplyInvalidatedModules();\n\n\tvar results = currentUpdateApplyHandlers.map(function (handler) {\n\t\treturn handler(options);\n\t});\n\tcurrentUpdateApplyHandlers = undefined;\n\n\tvar errors = results\n\t\t.map(function (r) {\n\t\t\treturn r.error;\n\t\t})\n\t\t.filter(Boolean);\n\n\tif (errors.length > 0) {\n\t\treturn setStatus(\"abort\").then(function () {\n\t\t\tthrow errors[0];\n\t\t});\n\t}\n\n\t// Now in \"dispose\" phase\n\tvar disposePromise = setStatus(\"dispose\");\n\n\tresults.forEach(function (result) {\n\t\tif (result.dispose) result.dispose();\n\t});\n\n\t// Now in \"apply\" phase\n\tvar applyPromise = setStatus(\"apply\");\n\n\tvar error;\n\tvar reportError = function (err) {\n\t\tif (!error) error = err;\n\t};\n\n\tvar outdatedModules = [];\n\tresults.forEach(function (result) {\n\t\tif (result.apply) {\n\t\t\tvar modules = result.apply(reportError);\n\t\t\tif (modules) {\n\t\t\t\tfor (var i = 0; i < modules.length; i++) {\n\t\t\t\t\toutdatedModules.push(modules[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn Promise.all([disposePromise, applyPromise]).then(function () {\n\t\t// handle errors in accept handlers and self accepted module load\n\t\tif (error) {\n\t\t\treturn setStatus(\"fail\").then(function () {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\n\t\tif (queuedInvalidatedModules) {\n\t\t\treturn internalApply(options).then(function (list) {\n\t\t\t\toutdatedModules.forEach(function (moduleId) {\n\t\t\t\t\tif (list.indexOf(moduleId) < 0) list.push(moduleId);\n\t\t\t\t});\n\t\t\t\treturn list;\n\t\t\t});\n\t\t}\n\n\t\treturn setStatus(\"idle\").then(function () {\n\t\t\treturn outdatedModules;\n\t\t});\n\t});\n}\n\nfunction applyInvalidatedModules() {\n\tif (queuedInvalidatedModules) {\n\t\tif (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = [];\n\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\tqueuedInvalidatedModules.forEach(function (moduleId) {\n\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\tmoduleId,\n\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t\tqueuedInvalidatedModules = undefined;\n\t\treturn true;\n\t}\n}","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || {\n\t\"app\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\nvar currentUpdatedModulesList;\nvar waitingUpdateResolves = {};\nfunction loadUpdateChunk(chunkId, updatedModulesList) {\n\tcurrentUpdatedModulesList = updatedModulesList;\n\treturn new Promise((resolve, reject) => {\n\t\twaitingUpdateResolves[chunkId] = resolve;\n\t\t// start update chunk loading\n\t\tvar url = __webpack_require__.p + __webpack_require__.hu(chunkId);\n\t\t// create error before stack unwound to get useful stacktrace later\n\t\tvar error = new Error();\n\t\tvar loadingEnded = (event) => {\n\t\t\tif(waitingUpdateResolves[chunkId]) {\n\t\t\t\twaitingUpdateResolves[chunkId] = undefined\n\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\terror.message = 'Loading hot update chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\terror.type = errorType;\n\t\t\t\terror.request = realSrc;\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\t\t__webpack_require__.l(url, loadingEnded);\n\t});\n}\n\nself[\"webpackHotUpdateterra\"] = (chunkId, moreModules, runtime) => {\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\tcurrentUpdate[moduleId] = moreModules[moduleId];\n\t\t\tif(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId);\n\t\t}\n\t}\n\tif(runtime) currentUpdateRuntime.push(runtime);\n\tif(waitingUpdateResolves[chunkId]) {\n\t\twaitingUpdateResolves[chunkId]();\n\t\twaitingUpdateResolves[chunkId] = undefined;\n\t}\n};\n\nvar currentUpdateChunks;\nvar currentUpdate;\nvar currentUpdateRemovedChunks;\nvar currentUpdateRuntime;\nfunction applyHandler(options) {\n\tif (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr;\n\tcurrentUpdateChunks = undefined;\n\tfunction getAffectedModuleEffects(updateModuleId) {\n\t\tvar outdatedModules = [updateModuleId];\n\t\tvar outdatedDependencies = {};\n\n\t\tvar queue = outdatedModules.map(function (id) {\n\t\t\treturn {\n\t\t\t\tchain: [id],\n\t\t\t\tid: id\n\t\t\t};\n\t\t});\n\t\twhile (queue.length > 0) {\n\t\t\tvar queueItem = queue.pop();\n\t\t\tvar moduleId = queueItem.id;\n\t\t\tvar chain = queueItem.chain;\n\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\tif (\n\t\t\t\t!module ||\n\t\t\t\t(module.hot._selfAccepted && !module.hot._selfInvalidated)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (module.hot._selfDeclined) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"self-declined\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (module.hot._main) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"unaccepted\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n\t\t\t\tvar parentId = module.parents[i];\n\t\t\t\tvar parent = __webpack_require__.c[parentId];\n\t\t\t\tif (!parent) continue;\n\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"declined\",\n\t\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\tparentId: parentId\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n\t\t\t\t\tif (!outdatedDependencies[parentId])\n\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdelete outdatedDependencies[parentId];\n\t\t\t\toutdatedModules.push(parentId);\n\t\t\t\tqueue.push({\n\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\tid: parentId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: \"accepted\",\n\t\t\tmoduleId: updateModuleId,\n\t\t\toutdatedModules: outdatedModules,\n\t\t\toutdatedDependencies: outdatedDependencies\n\t\t};\n\t}\n\n\tfunction addAllToSet(a, b) {\n\t\tfor (var i = 0; i < b.length; i++) {\n\t\t\tvar item = b[i];\n\t\t\tif (a.indexOf(item) === -1) a.push(item);\n\t\t}\n\t}\n\n\t// at begin all updates modules are outdated\n\t// the \"outdated\" status can propagate to parents if they don't accept the children\n\tvar outdatedDependencies = {};\n\tvar outdatedModules = [];\n\tvar appliedUpdate = {};\n\n\tvar warnUnexpectedRequire = function warnUnexpectedRequire(module) {\n\t\tconsole.warn(\n\t\t\t\"[HMR] unexpected require(\" + module.id + \") to disposed module\"\n\t\t);\n\t};\n\n\tfor (var moduleId in currentUpdate) {\n\t\tif (__webpack_require__.o(currentUpdate, moduleId)) {\n\t\t\tvar newModuleFactory = currentUpdate[moduleId];\n\t\t\t/** @type {TODO} */\n\t\t\tvar result;\n\t\t\tif (newModuleFactory) {\n\t\t\t\tresult = getAffectedModuleEffects(moduleId);\n\t\t\t} else {\n\t\t\t\tresult = {\n\t\t\t\t\ttype: \"disposed\",\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\t/** @type {Error|false} */\n\t\t\tvar abortError = false;\n\t\t\tvar doApply = false;\n\t\t\tvar doDispose = false;\n\t\t\tvar chainInfo = \"\";\n\t\t\tif (result.chain) {\n\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n\t\t\t}\n\t\t\tswitch (result.type) {\n\t\t\t\tcase \"self-declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\t\" in \" +\n\t\t\t\t\t\t\t\tresult.parentId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"unaccepted\":\n\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n\t\t\t\t\tif (!options.ignoreUnaccepted)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"accepted\":\n\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n\t\t\t\t\tdoApply = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"disposed\":\n\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n\t\t\t\t\tdoDispose = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n\t\t\t}\n\t\t\tif (abortError) {\n\t\t\t\treturn {\n\t\t\t\t\terror: abortError\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (doApply) {\n\t\t\t\tappliedUpdate[moduleId] = newModuleFactory;\n\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n\t\t\t\t\tif (__webpack_require__.o(result.outdatedDependencies, moduleId)) {\n\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n\t\t\t\t\t\taddAllToSet(\n\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (doDispose) {\n\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n\t\t\t}\n\t\t}\n\t}\n\tcurrentUpdate = undefined;\n\n\t// Store self accepted outdated modules to require them later by the module system\n\tvar outdatedSelfAcceptedModules = [];\n\tfor (var j = 0; j < outdatedModules.length; j++) {\n\t\tvar outdatedModuleId = outdatedModules[j];\n\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\tif (\n\t\t\tmodule &&\n\t\t\t(module.hot._selfAccepted || module.hot._main) &&\n\t\t\t// removed self-accepted modules should not be required\n\t\t\tappliedUpdate[outdatedModuleId] !== warnUnexpectedRequire &&\n\t\t\t// when called invalidate self-accepting is not possible\n\t\t\t!module.hot._selfInvalidated\n\t\t) {\n\t\t\toutdatedSelfAcceptedModules.push({\n\t\t\t\tmodule: outdatedModuleId,\n\t\t\t\trequire: module.hot._requireSelf,\n\t\t\t\terrorHandler: module.hot._selfAccepted\n\t\t\t});\n\t\t}\n\t}\n\n\tvar moduleOutdatedDependencies;\n\n\treturn {\n\t\tdispose: function () {\n\t\t\tcurrentUpdateRemovedChunks.forEach(function (chunkId) {\n\t\t\t\tdelete installedChunks[chunkId];\n\t\t\t});\n\t\t\tcurrentUpdateRemovedChunks = undefined;\n\n\t\t\tvar idx;\n\t\t\tvar queue = outdatedModules.slice();\n\t\t\twhile (queue.length > 0) {\n\t\t\t\tvar moduleId = queue.pop();\n\t\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\t\tif (!module) continue;\n\n\t\t\t\tvar data = {};\n\n\t\t\t\t// Call dispose handlers\n\t\t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n\t\t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n\t\t\t\t\tdisposeHandlers[j].call(null, data);\n\t\t\t\t}\n\t\t\t\t__webpack_require__.hmrD[moduleId] = data;\n\n\t\t\t\t// disable module (this disables requires from this module)\n\t\t\t\tmodule.hot.active = false;\n\n\t\t\t\t// remove module from cache\n\t\t\t\tdelete __webpack_require__.c[moduleId];\n\n\t\t\t\t// when disposing there is no need to call dispose handler\n\t\t\t\tdelete outdatedDependencies[moduleId];\n\n\t\t\t\t// remove \"parents\" references from all children\n\t\t\t\tfor (j = 0; j < module.children.length; j++) {\n\t\t\t\t\tvar child = __webpack_require__.c[module.children[j]];\n\t\t\t\t\tif (!child) continue;\n\t\t\t\t\tidx = child.parents.indexOf(moduleId);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tchild.parents.splice(idx, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// remove outdated dependency from module children\n\t\t\tvar dependency;\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tmodule = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tidx = module.children.indexOf(dependency);\n\t\t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tapply: function (reportError) {\n\t\t\t// insert new code\n\t\t\tfor (var updateModuleId in appliedUpdate) {\n\t\t\t\tif (__webpack_require__.o(appliedUpdate, updateModuleId)) {\n\t\t\t\t\t__webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// run new runtime modules\n\t\t\tfor (var i = 0; i < currentUpdateRuntime.length; i++) {\n\t\t\t\tcurrentUpdateRuntime[i](__webpack_require__);\n\t\t\t}\n\n\t\t\t// call accept handlers\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tvar callbacks = [];\n\t\t\t\t\t\tvar errorHandlers = [];\n\t\t\t\t\t\tvar dependenciesForCallbacks = [];\n\t\t\t\t\t\tfor (var j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tvar dependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tvar acceptCallback =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedDependencies[dependency];\n\t\t\t\t\t\t\tvar errorHandler =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedErrorHandlers[dependency];\n\t\t\t\t\t\t\tif (acceptCallback) {\n\t\t\t\t\t\t\t\tif (callbacks.indexOf(acceptCallback) !== -1) continue;\n\t\t\t\t\t\t\t\tcallbacks.push(acceptCallback);\n\t\t\t\t\t\t\t\terrorHandlers.push(errorHandler);\n\t\t\t\t\t\t\t\tdependenciesForCallbacks.push(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var k = 0; k < callbacks.length; k++) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcallbacks[k].call(null, moduleOutdatedDependencies);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tif (typeof errorHandlers[k] === \"function\") {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\terrorHandlers[k](err, {\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k]\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} catch (err2) {\n\t\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\t\terror: err2,\n\t\t\t\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\t\treportError(err2);\n\t\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Load self accepted modules\n\t\t\tfor (var o = 0; o < outdatedSelfAcceptedModules.length; o++) {\n\t\t\t\tvar item = outdatedSelfAcceptedModules[o];\n\t\t\t\tvar moduleId = item.module;\n\t\t\t\ttry {\n\t\t\t\t\titem.require(moduleId);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (typeof item.errorHandler === \"function\") {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\titem.errorHandler(err, {\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\tmodule: __webpack_require__.c[moduleId]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (err2) {\n\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\t\terror: err2,\n\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\treportError(err2);\n\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\ttype: \"self-accept-errored\",\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn outdatedModules;\n\t\t}\n\t};\n}\n__webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) {\n\tif (!currentUpdate) {\n\t\tcurrentUpdate = {};\n\t\tcurrentUpdateRuntime = [];\n\t\tcurrentUpdateRemovedChunks = [];\n\t\tapplyHandlers.push(applyHandler);\n\t}\n\tif (!__webpack_require__.o(currentUpdate, moduleId)) {\n\t\tcurrentUpdate[moduleId] = __webpack_require__.m[moduleId];\n\t}\n};\n__webpack_require__.hmrC.jsonp = function (\n\tchunkIds,\n\tremovedChunks,\n\tremovedModules,\n\tpromises,\n\tapplyHandlers,\n\tupdatedModulesList\n) {\n\tapplyHandlers.push(applyHandler);\n\tcurrentUpdateChunks = {};\n\tcurrentUpdateRemovedChunks = removedChunks;\n\tcurrentUpdate = removedModules.reduce(function (obj, key) {\n\t\tobj[key] = false;\n\t\treturn obj;\n\t}, {});\n\tcurrentUpdateRuntime = [];\n\tchunkIds.forEach(function (chunkId) {\n\t\tif (\n\t\t\t__webpack_require__.o(installedChunks, chunkId) &&\n\t\t\tinstalledChunks[chunkId] !== undefined\n\t\t) {\n\t\t\tpromises.push(loadUpdateChunk(chunkId, updatedModulesList));\n\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t} else {\n\t\t\tcurrentUpdateChunks[chunkId] = false;\n\t\t}\n\t});\n\tif (__webpack_require__.f) {\n\t\t__webpack_require__.f.jsonpHmr = function (chunkId, promises) {\n\t\t\tif (\n\t\t\t\tcurrentUpdateChunks &&\n\t\t\t\t__webpack_require__.o(currentUpdateChunks, chunkId) &&\n\t\t\t\t!currentUpdateChunks[chunkId]\n\t\t\t) {\n\t\t\t\tpromises.push(loadUpdateChunk(chunkId));\n\t\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t\t}\n\t\t};\n\t}\n};\n\n__webpack_require__.hmrM = () => {\n\tif (typeof fetch === \"undefined\") throw new Error(\"No browser support: need fetch API\");\n\treturn fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => {\n\t\tif(response.status === 404) return; // no update available\n\t\tif(!response.ok) throw new Error(\"Failed to fetch update manifest \" + response.statusText);\n\t\treturn response.json();\n\t});\n};\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkterra\"] = self[\"webpackChunkterra\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"vendors\"], () => (__webpack_require__(4624)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","DialogYesNo","_a","_b","props","open","setOpen","Dialog","BackdropProps","style","backdropFilter","maxWidth","onClose","no","DialogTitle","title","DialogContent","DialogContentText","question","description","values","Divider","sx","marginTop","padding","Stack","spacing","Typography","variant","direction","map","v","Chip","label","border","backgroundColor","borderRadius","DialogActions","Button","onClick","yes","autoFocus","getToken","userToken","localStorage","getItem","token","setToken","useState","parseJwt","value","base64","split","replace","jsonPayload","decodeURIComponent","window","atob","c","charCodeAt","toString","slice","join","JSON","parse","removeToken","removeItem","setItem","verify","accessToken","decodedJwt","exp","Date","now","ElevationScroll","children","trigger","useScrollTrigger","disableHysteresis","threshold","target","undefined","elevation","openedMixin","theme","width","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","closedMixin","leavingScreen","breakpoints","up","DrawerHeader","styled","assign","display","alignItems","justifyContent","mixins","toolbar","shouldForwardProp","prop","zIndex","drawer","marginLeft","flexShrink","whiteSpace","boxSizing","MiniDrawer","forwardRef","ref","useTheme","dialogOpen","setDialogOpen","username","setUserName","navigate","payload","Box","height","position","Toolbar","IconButton","color","edge","marginRight","Menu","noWrap","component","flexGrow","Skeleton","gutterBottom","orientation","flexItem","borderColor","ChevronRight","ChevronLeft","List","ListItem","key","disablePadding","ListItemButton","minHeight","px","ListItemIcon","minWidth","mr","ShareLocation","type","ListItemText","primary","opacity","Extension","MacroOff","BarChart","Route","Storage","location","href","Api","flex","flexDirection","x","left","view","Grid","container","item","xs","data","setData","center","setCenter","lat","lng","geometryBound","setGeometryBound","ref_geo","useImperativeHandle","changeUrl","get_data","url","setLoad","axios","headers","then","responce","createBoundExtend","allPolygons","features","filter","feature","geometry","allPolygonGeometries","polygon","unioned","reduce","acc","curr","console","error","catch","get_polygon","coords","bounds","getBounds","expression","y","maxZoom","flyToBounds","Polygon","positions","coordinates","pathOptions","stroke","fillOpacity","strokeWidth","draw","f","index","options","isgrey","filterId","includes","id","inner","fill","scipBorder","get_color","properties","poligons","poligon","CircleMarker","radius","GeoJSON","fillColor","getMarkerIcon","iconUrl","iconSize","iconAnchor","tooltipAnchor","BaseLayer","LayersControl","geo","load","json","setJson","stantions","setStantions","setFilterId","setFly","Fly","setUrl","invalidateSize","current","setEditebleObject","navigator","geolocation","getCurrentPosition","latitude","longitude","gridLayer","addTo","on","redraw","showStantions","response","st_items","items","st","coord","stantions_latitude_center","stantions_longitude_center","stantions_radius","name","stantions_name","distance","setView","getZoom","zoom","setZoom","_c","_d","mapBounds","latLngBounds","point","latLng","setMaxBounds","getMaxZoom","circleMarker","popupContent","nitrogen","phosphorus","potassium","bindPopup","buildJson","layerType","layer","getLatLngs","ll","coodinates","editMode","remove","layers","markers","getLayers","l","getLatLng","push","setEditResult","LinearProgress","MapContainer","FeatureGroup","onCreated","drawnItems","_layers","keys","forEach","layerid","removeLayer","onEdited","onDeleted","rectangle","polyline","circle","circlemarker","allowIntersection","edit","showLength","metric","feet","showArea","marker","onDrawStart","checked","layerIndex","TileLayer","subdomains","stantion","Circle","C","Marker","icon","offset","permanent","tollTip","customControl","isLeapYear","list","setList","listGroup","setListGroup","setCurrent","gruppedFormat","update","progressItems","date_created","groups","format","Set","select","align","paddingTop","g","li","bgcolor","subheader","ListSubheader","disabled","selected","ListItemAvatar","Avatar","src","alt","imgProps","charAt","toUpperCase","secondary","margin","plot_count","showWarning","PriorityHigh","fontSize","bottom","useUploadForm","isSuccess","setIsSuccess","progress","setProgress","uploadForm","formData","__awaiter","thisArg","_arguments","generator","status","res","onUploadProgress","progressEvent","total","loaded","onDownloadProgress","P","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","apply","destroyControls","AddFieldDialog","enqueueSnackbar","setName","fileZip","setFile","setError","access","setAccess","destroy","this","Alert","severity","TextField","fullWidth","inputProps","maxLength","onChange","hidden","accept","multiple","event","files","textAlign","FormData","append","substring","setState","autoHideDuration","reason","detail","message","AddFieldWithCompanyDialog","company","setCompany","companies","setCompanies","search","setSearch","selectedElement","setSelectedElement","get_companies","fullname","build","stringify","alert","Autocomplete","newValue","onInputChange","newInputValue","disablePortal","renderInput","params","DialogJsonViewer","close","maxHeight","editable","TabPanel","other","role","overflowY","CardContent","pt","setValue","setDetail","cutures","setCultures","jsonDialog","setJsonDialog","stant_arr","cultures","grade","code","obj","Card","boxShadow","fontWeight","mb","created","hkr","toFixed","from_file","size","right","AppBar","Tabs","textColor","indicatorColor","Tab","km","OnlinePrediction","culture","CardActions","can_delete","delete","relations","field","setField","addDialog","setAddDialog","addWithCompanyDialog","setAddWithCompanyDialog","deleteDialog","setDeleteDialog","setRelations","latlng","latitude_center","longitude_center","updateListItems","Breadcrumbs","pl","Link","underline","borderBottom","Tooltip","NoteAdd","AddLocationAlt","Refresh","userName","password","setPassword","handleKeyDown","sign","method","access_token","className","marginBottom","required","onKeyDown","autoComplete","DateFiled","LocalizationProvider","dateAdapter","AdapterDayjs","adapterLocale","DatePicker","shouldDisableDate","date","min","max","AddDialog","fields","setFields","bands","setBands","date_begion","setDateBegin","date_end","setDateEnd","fileTiff","setFileTiff","red","setRed","nir","setNir","as_task","setAsTask","lds","getBands","_bands","_file","FormControl","InputLabel","Select","MenuItem","b","darkBluenTheme","createTheme","palette","main","greenTheme","orangeTheme","redTheme","yellowTheme","yellowGreenTheme","background","paper","ndvi_field","ThemeProvider","ndvi_date_begin","ndvi_date_end","ndvi_name","ndvi_date_created","maxValue","setMaxValue","Math","percents","o","entries","Number","filterPanel","setValues","begin","end","ndvi_auto","ndvi_collection_name","AddWithGoogleDialog","year","setYear","collection","setCollection","collection_name","collections","setCollections","years","setYears","image","setImage","images","setImages","period","setPeriod","cloudWithOut","setCloudWithOut","collect_ids","dates","maxDate","minDate","Image","CircularProgress","ndvi_field_id","ndvi_collection","ndvi_with_out_cloud","setSelected","Control","prepend","Paper","Checkbox","handleChangeFilter","CircleOutlined","checkedIcon","addGoogleDialog","setAddWithGoogleDialog","setProgressItems","prevProgressItems","usePreviousProgress","tasks","info","Science","Nvdi","TabElement","config","setConfig","pages","Vega","spec","actions","paddingLeft","overflow","m","chart","page","tabs","setTabs","setPages","sort","a","some","active","model","prefix","scrollButtons","tabsClasses","flexWrap","Terrain","buildDialog","setBuildDialog","alhorMore","setAlhorMore","_id","more_close","report_download","PlayCircleOutline","currentTarget","MoreVert","anchorEl","MenuListProps","drawler","Statistic","setItems","changeSelectedItems","resertSelectedItems","state","buf","meta","mt","mx","create_variant","Add","import","Edit","Delete","editmap","EditLocation","autoupload","CloudDownload","ImportDialog","fileXls","setStantion","refresh","value_check","setValueCheck","noValidate","helperText","CreateDialog","relationData","setRelationData","filterData","setFilterData","urls","columns","relation","rel","_to","get","_view","data_items","change","fv","check","names","mod","column","_type","type_","FormControlLabel","control","Switch","labelId","onOpen","table_name","findIndex","tables","concat","fl","kv","FormHelperText","data_value","UpdateDialog","defaultValues","defaultValue","defaultChecked","_fk","Array","isArray","msg","EditInMapDialog","setDate","setDates","reference","get_fields","get_dates","file_path","user_id","divider","log","AutoUploadDialog","success","count","upload","StorageTable","setPage","rowsPerPage","setRowsPerPage","setColumns","countData","setCountData","createDialog","setCreateDialog","updateDialog","setUpdateDialog","importDialog","setImportDialog","editMapDialog","setEditMapDialog","metaAutoUpload","setMetaAutoUpload","autoUploadDialog","setAutoUploadDialog","tableBar","check_autoupload","col","_width","TablePagination","labelRowsPerPage","labelDisplayedRows","from","to","rowsPerPageOptions","onPageChange","newPage","onRowsPerPageChange","TableContainer","Table","stickyHeader","TableHead","TableRow","TableCell","TableBody","row","hover","tabIndex","toggleCheckBox","isNaN","setMeta","borderLeft","flights_count","AddFlightDialog","fileMrk","fligth","setFligth","AddFertilizerDialog","setCulture","setGrade","grades","setGrades","ey","setEy","nitrogenMax","setNitrogenMax","phosphor","setPhosphor","kalium","setKalium","setThreshold","cltrs","cultures_name","grds","grade_name","newCulture","newGrade","onBlur","calc_nitrogen_norm","nitrogenmax","round","EPSILON","Badge","top","group","setGroup","fertilizer_culture","fertilizer_field","fertilizer_grade","fertilizer_ey","setOptions","summ","setSumm","area","setArea","band","categories","colors","val","credits","enabled","fontFamily","text","xAxis","yAxis","series","maxPointWidth","exporting","buttons","contextButton","legend","tooltip","formatter","ha","outside","plotOptions","cursor","events","click","greys","filterMap","category","highcharts","TiffInfoDialog","tiff","setTiff","scope","nodata","export_band","Download","download","_e","_f","_g","_h","_j","defaultBandForTabs","tiffDialog","setTiffDialog","setBand","changeNorm","setChangeNorm","setCurrentTab","fertilizer_nitrogen_max","nitrogen_result","nr","changeTab","variants","Fact","fertilizer_phosphorus_norm","phosphorus_result","fertilizer_potassium_norm","potassium_result","current_theme","panel","selectedTab","setSelectedTab","mapIndex","setMapIndex","Loupe","extendChartData","tab","devider","get_theme_by_tab","fertilizer_field_id","Fertilizer","uploadedFiles","selectedFile","onSelect","groupedFiles","file","CropCollection","uploadedDate","getTime","fileName","filename","selectedFiles","setSelectedFiles","setUploadedFiles","uploadedTIFF","setUploadedTIFF","xTiles","setXTiles","yTiles","setYTiles","tileOptions","_","predTiffPath","setPredTiffPath","openDeleteDialog","setOpenDeleteDialog","deleteIndex","setDeleteIndex","selectedImage","setSelectedImage","predictionImage","setPredictionImage","SelectedModel","SetSelectedModel","isPredictionLoading","setIsPredictionLoading","isLoading","setIsLoading","statistics","setStatistics","openAddDialog","setOpenAddDialog","analysisOption","setAnalysisOption","customFilename","setCustomFilename","selectedCropType","setSelectedCropType","SetCropCollection","metaInfo","setMetaInfo","fetch","metainfo","handleFileSelect","handleAddDialogClose","RadioGroup","Radio","cropType","getCollectionsForCrop","shrink","MenuProps","PaperProps","option","body","handleFileUpload","prediction","predtiff_path","uploadedImageUrl","handleFileUploadTiff","updatedFiles","splice","handleFileDelete","toISOString","toTimeString","getModelsForCollection","model_name","handlePrediction","blob","URL","createObjectURL","document","createElement","appendChild","handleDownloadSelectedImage","unlabeled","johnson_grass","field_bindweed","purslane","weed","link","removeChild","handleDownloadPrediction","setAttribute","handleDownloadPredictionGeotiff","pop","predtiffUrl","download_predTiffPath","Weed","default","responsiveFontSizes","getElementById","render","maxSnack","endpoint","path","element","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","execOptions","factory","__webpack_modules__","require","handler","O","chunkIds","fn","priority","notFulfilled","Infinity","j","every","r","n","getter","__esModule","d","getPrototypeOf","mode","ns","def","getOwnPropertyNames","definition","defineProperty","enumerable","hu","chunkId","hmrF","globalThis","Function","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","setTimeout","bind","head","Symbol","toStringTag","currentChildModule","currentUpdateApplyHandlers","queuedInvalidatedModules","currentModuleData","installedModules","currentParents","registeredStatusHandlers","currentStatus","blockingPromises","blockingPromisesWaiting","setStatus","newStatus","results","all","unblock","hotCheck","applyOnUpdate","Error","hmrM","updatedModules","hmrC","promises","internalApply","applyInvalidatedModules","hotApply","errors","Boolean","disposePromise","dispose","applyPromise","reportError","err","outdatedModules","modules","hmrI","hmrD","me","_main","hot","request","parents","warn","createPropertyDescriptor","configurable","set","promise","trackBlockingPromise","createRequire","_acceptedDependencies","_acceptedErrorHandlers","_declinedDependencies","_selfAccepted","_selfDeclined","_selfInvalidated","_disposeHandlers","_requireSelf","dep","callback","errorHandler","decline","addDisposeHandler","removeDisposeHandler","idx","invalidate","addStatusHandler","removeStatusHandler","scriptUrl","importScripts","currentScript","baseURI","self","currentUpdatedModulesList","currentUpdateChunks","currentUpdate","currentUpdateRemovedChunks","currentUpdateRuntime","installedChunks","hmrS_jsonp","waitingUpdateResolves","loadUpdateChunk","updatedModulesList","errorType","realSrc","applyHandler","getAffectedModuleEffects","updateModuleId","outdatedDependencies","queue","chain","queueItem","parentId","parent","addAllToSet","jsonpHmr","appliedUpdate","warnUnexpectedRequire","newModuleFactory","abortError","doApply","doDispose","chainInfo","onDeclined","ignoreDeclined","onUnaccepted","ignoreUnaccepted","onAccepted","onDisposed","moduleOutdatedDependencies","outdatedSelfAcceptedModules","outdatedModuleId","dependency","disposeHandlers","child","callbacks","errorHandlers","dependenciesForCallbacks","acceptCallback","k","dependencyId","err2","onErrored","originalError","ignoreErrored","moreModules","runtime","jsonp","applyHandlers","removedChunks","removedModules","ok","statusText","webpackJsonpCallback","parentChunkLoadingFunction","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}