{"ast":null,"code":"var _jsxFileName = \"C:\\\\laragon\\\\www\\\\itokin\\\\DriverOPCDA\\\\frontend\\\\src\\\\App.js\",\n    _s = $RefreshSig$();\n\nimport React from \"react\";\nimport { useEffect } from \"react\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport clsx from \"clsx\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport PropTypes from \"prop-types\";\nimport Drawer from \"@material-ui/core/Drawer\";\nimport AppBar from \"@material-ui/core/AppBar\";\nimport Toolbar from \"@material-ui/core/Toolbar\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Divider from \"@material-ui/core/Divider\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Hidden from \"@material-ui/core/Hidden\";\nimport * as Icon from \"@material-ui/icons\";\nimport AppStyles from './config/AppStyles';\nimport logo from './assets/logo_groot.png'; // component\n\nimport LeftMenu from './components/layouts/LeftMenu'; // page\n\nimport PageDashboard from './components/pages/Dashboard';\nimport PageAdministrator from './components/pages/Administrator';\nimport PageUserManagement from './components/pages/UserManagement';\nimport PageUserAdd from \"./components/pages/UserAdd\";\nimport PageUserEdit from \"./components/pages/UserEdit\";\nimport PageRoleManagement from \"./components/pages/RoleManagement\";\nimport PageRoleAdd from \"./components/pages/RoleAdd\";\nimport PageRoleEdit from \"./components/pages/RoleEdit\";\nimport PageTagGroup from \"./components/pages/TagGroup\";\nimport PageTagGroupDetail from \"./components/pages/TagGroupDetail\";\nimport PageTagGroupAdd from \"./components/pages/TagGroupAdd\";\nimport PageTagGroupEdit from \"./components/pages/TagGroupEdit\";\nimport PageTagAdd from \"./components/pages/TagAdd\";\nimport PageTagEdit from \"./components/pages/TagEdit\";\nimport PageOpcRealtime from \"./components/pages/OpcRealtime\";\nimport PageLogin from \"./components/pages/Login\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction App(props) {\n  _s();\n\n  const theme = useTheme();\n  const {\n    window\n  } = props;\n  const classes = AppStyles(); // --- toggle on mobile\n\n  const [mobileOpen, setMobileOpen] = React.useState(false);\n\n  const handleDrawerToggle = () => {\n    setMobileOpen(!mobileOpen);\n  }; // --- toggle on desktop\n\n\n  const [toggle, setToggle] = React.useState(true);\n\n  const desktopToggle = () => {\n    setToggle(!toggle);\n  };\n\n  useEffect(() => {\n    console.log(\"BEGIN\");\n    return () => {};\n  }, []);\n  const container = window !== undefined ? () => window().document.body : undefined;\n  return /*#__PURE__*/_jsxDEV(Router, {\n    children: /*#__PURE__*/_jsxDEV(Switch, {\n      children: [/*#__PURE__*/_jsxDEV(Route, {\n        exact: true,\n        path: \"/login\",\n        component: () => /*#__PURE__*/_jsxDEV(PageLogin, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 87,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 83,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Route, {\n        path: \"/\",\n        component: () => /*#__PURE__*/_jsxDEV(\"div\", {\n          className: classes.root,\n          children: [/*#__PURE__*/_jsxDEV(CssBaseline, {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 94,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(AppBar, {\n            color: \"inherit\",\n            position: \"fixed\",\n            className: clsx(classes.appBarToggled, {\n              [classes.appBar]: toggle\n            }),\n            children: /*#__PURE__*/_jsxDEV(Toolbar, {\n              children: [/*#__PURE__*/_jsxDEV(IconButton, {\n                color: \"inherit\",\n                \"aria-label\": \"open drawer\",\n                edge: \"start\",\n                onClick: handleDrawerToggle,\n                className: classes.menuButtonMobile,\n                children: /*#__PURE__*/_jsxDEV(Icon.Menu, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 110,\n                  columnNumber: 21\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 103,\n                columnNumber: 19\n              }, this), /*#__PURE__*/_jsxDEV(IconButton, {\n                color: \"inherit\",\n                \"aria-label\": \"open drawer\",\n                edge: \"start\",\n                onClick: desktopToggle,\n                className: classes.menuButtonDesktop,\n                children: /*#__PURE__*/_jsxDEV(Icon.Menu, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 120,\n                  columnNumber: 21\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 113,\n                columnNumber: 19\n              }, this), /*#__PURE__*/_jsxDEV(Typography, {\n                variant: \"h6\",\n                noWrap: true,\n                children: \"Tankvision Endress+Hauser\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 122,\n                columnNumber: 19\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 102,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 95,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"nav\", {\n            className: classes.drawer,\n            \"aria-label\": \"mailbox folders\",\n            children: [/*#__PURE__*/_jsxDEV(Hidden, {\n              smUp: true,\n              implementation: \"css\",\n              children: /*#__PURE__*/_jsxDEV(Drawer, {\n                container: container,\n                variant: \"temporary\",\n                anchor: theme.direction === \"rtl\" ? \"right\" : \"left\",\n                open: mobileOpen,\n                onClose: handleDrawerToggle,\n                classes: {\n                  paper: classes.drawerPaper\n                },\n                ModalProps: {\n                  keepMounted: true // Better open performance on mobile.\n\n                },\n                children: [/*#__PURE__*/_jsxDEV(Divider, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 143,\n                  columnNumber: 21\n                }, this), /*#__PURE__*/_jsxDEV(LeftMenu, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 144,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 130,\n                columnNumber: 19\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 129,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Hidden, {\n              xsDown: true,\n              implementation: \"css\",\n              children: /*#__PURE__*/_jsxDEV(Drawer, {\n                classes: {\n                  paper: classes.drawerPaper\n                },\n                variant: \"persistent\",\n                anchor: \"left\",\n                open: toggle,\n                children: [/*#__PURE__*/_jsxDEV(\"div\", {\n                  className: classes.toolbar,\n                  children: /*#__PURE__*/_jsxDEV(AppBar, {\n                    color: \"inherit\",\n                    children: /*#__PURE__*/_jsxDEV(Toolbar, {\n                      children: /*#__PURE__*/_jsxDEV(\"img\", {\n                        src: logo,\n                        alt: \"logo\",\n                        className: classes.logo\n                      }, void 0, false, {\n                        fileName: _jsxFileName,\n                        lineNumber: 159,\n                        columnNumber: 27\n                      }, this)\n                    }, void 0, false, {\n                      fileName: _jsxFileName,\n                      lineNumber: 158,\n                      columnNumber: 25\n                    }, this)\n                  }, void 0, false, {\n                    fileName: _jsxFileName,\n                    lineNumber: 157,\n                    columnNumber: 23\n                  }, this)\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 156,\n                  columnNumber: 21\n                }, this), /*#__PURE__*/_jsxDEV(Divider, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 163,\n                  columnNumber: 21\n                }, this), /*#__PURE__*/_jsxDEV(LeftMenu, {}, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 164,\n                  columnNumber: 21\n                }, this)]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 148,\n                columnNumber: 19\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 147,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 127,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            className: classes.baseLayout\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 169,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(Switch, {\n            children: [/*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/\",\n              component: () => /*#__PURE__*/_jsxDEV(PageDashboard, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 176,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 172,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/dashboard\",\n              component: () => /*#__PURE__*/_jsxDEV(PageDashboard, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 188,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 184,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/administrator\",\n              component: () => /*#__PURE__*/_jsxDEV(PageAdministrator, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 200,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 196,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/users\",\n              component: () => /*#__PURE__*/_jsxDEV(PageUserManagement, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 214,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 210,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/users/add\",\n              component: () => /*#__PURE__*/_jsxDEV(PageUserAdd, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 226,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 222,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/users/edit/:id\",\n              component: () => /*#__PURE__*/_jsxDEV(PageUserEdit, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 238,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 234,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/roles\",\n              component: () => /*#__PURE__*/_jsxDEV(PageRoleManagement, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 252,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 248,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/roles/add\",\n              component: () => /*#__PURE__*/_jsxDEV(PageRoleAdd, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 265,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 261,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/roles/edit/:id\",\n              component: () => /*#__PURE__*/_jsxDEV(PageRoleEdit, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 278,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 274,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/opc/tag-groups\",\n              component: () => /*#__PURE__*/_jsxDEV(PageTagGroup, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 292,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 288,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/opc/tag-groups/detail/:id\",\n              component: () => /*#__PURE__*/_jsxDEV(PageTagGroupDetail, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 305,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 301,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/opc/tag-groups/add\",\n              component: () => /*#__PURE__*/_jsxDEV(PageTagGroupAdd, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 317,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 313,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/opc/tag-groups/edit/:id\",\n              component: () => /*#__PURE__*/_jsxDEV(PageTagGroupEdit, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 329,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 325,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/opc/tags/add/:id\",\n              component: () => /*#__PURE__*/_jsxDEV(PageTagAdd, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 343,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 339,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/opc/tags/edit/:id\",\n              component: () => /*#__PURE__*/_jsxDEV(PageTagEdit, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 355,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 351,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Route, {\n              exact: true,\n              path: \"/opc/realtime\",\n              component: () => /*#__PURE__*/_jsxDEV(PageOpcRealtime, {\n                content: clsx(classes.content, {\n                  [classes.contentToggle]: toggle\n                }),\n                toolbar: classes.toolbar\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 369,\n                columnNumber: 21\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 365,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 171,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 93,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 90,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 82,\n      columnNumber: 7\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 81,\n    columnNumber: 5\n  }, this);\n}\n\n_s(App, \"1nVTg4TkFHWkjFOw7uCPh63n2F4=\", false, function () {\n  return [useTheme];\n});\n\n_c = App;\nApp.propTypes = {\n  /**\r\n   * Injected by the documentation to work in an iframe.\r\n   * You won't need it on your project.\r\n   */\n  window: PropTypes.func\n};\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/src/App.js"],"names":["React","useEffect","BrowserRouter","Router","Route","Switch","clsx","useTheme","PropTypes","Drawer","AppBar","Toolbar","CssBaseline","Typography","Divider","IconButton","Hidden","Icon","AppStyles","logo","LeftMenu","PageDashboard","PageAdministrator","PageUserManagement","PageUserAdd","PageUserEdit","PageRoleManagement","PageRoleAdd","PageRoleEdit","PageTagGroup","PageTagGroupDetail","PageTagGroupAdd","PageTagGroupEdit","PageTagAdd","PageTagEdit","PageOpcRealtime","PageLogin","App","props","theme","window","classes","mobileOpen","setMobileOpen","useState","handleDrawerToggle","toggle","setToggle","desktopToggle","console","log","container","undefined","document","body","root","appBarToggled","appBar","menuButtonMobile","menuButtonDesktop","drawer","direction","paper","drawerPaper","keepMounted","toolbar","baseLayout","content","contentToggle","propTypes","func"],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { useEffect} from \"react\";\r\nimport {\r\n  BrowserRouter as Router,\r\n  Route,\r\n  Switch\r\n} from \"react-router-dom\";\r\nimport clsx from \"clsx\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Hidden from \"@material-ui/core/Hidden\";\r\nimport * as Icon from \"@material-ui/icons\";\r\n\r\nimport AppStyles from './config/AppStyles';\r\nimport logo from './assets/logo_groot.png'\r\n\r\n// component\r\nimport LeftMenu from './components/layouts/LeftMenu'\r\n\r\n// page\r\nimport PageDashboard from './components/pages/Dashboard'\r\nimport PageAdministrator from './components/pages/Administrator'\r\n\r\nimport PageUserManagement from './components/pages/UserManagement'\r\nimport PageUserAdd from \"./components/pages/UserAdd\";\r\nimport PageUserEdit from \"./components/pages/UserEdit\";\r\n\r\nimport PageRoleManagement from \"./components/pages/RoleManagement\";\r\nimport PageRoleAdd from \"./components/pages/RoleAdd\";\r\nimport PageRoleEdit from \"./components/pages/RoleEdit\";\r\n\r\nimport PageTagGroup from \"./components/pages/TagGroup\"\r\nimport PageTagGroupDetail from \"./components/pages/TagGroupDetail\"\r\nimport PageTagGroupAdd from \"./components/pages/TagGroupAdd\"\r\nimport PageTagGroupEdit from \"./components/pages/TagGroupEdit\"\r\nimport PageTagAdd from \"./components/pages/TagAdd\"\r\nimport PageTagEdit from \"./components/pages/TagEdit\"\r\n\r\nimport PageOpcRealtime from \"./components/pages/OpcRealtime\"\r\n\r\nimport PageLogin from \"./components/pages/Login\"\r\n\r\n\r\nfunction App(props) {\r\n  const theme = useTheme();\r\n  const { window } = props;\r\n  const classes = AppStyles();\r\n\r\n  // --- toggle on mobile\r\n  const [mobileOpen, setMobileOpen] = React.useState(false);\r\n  const handleDrawerToggle = () => {\r\n    setMobileOpen(!mobileOpen);\r\n  };\r\n  \r\n  // --- toggle on desktop\r\n  const [toggle, setToggle] = React.useState(true);\r\n  const desktopToggle = () => {\r\n    setToggle(!toggle);\r\n  };\r\n  \r\n  useEffect(() => {\r\n    console.log(\"BEGIN\")\r\n    return () => {\r\n    };\r\n  }, []);\r\n  const container = window !== undefined ? () => window().document.body : undefined;\r\n  \r\n  \r\n\r\n  return (\r\n\r\n    \r\n    <Router>\r\n      <Switch>\r\n        <Route\r\n          exact\r\n          path=\"/login\"\r\n          component={() => (\r\n            <PageLogin></PageLogin>\r\n          )}\r\n        />\r\n        <Route\r\n          path=\"/\"\r\n          component={() => (\r\n            <div className={classes.root}>\r\n              <CssBaseline />\r\n              <AppBar\r\n                color=\"inherit\"\r\n                position=\"fixed\"\r\n                className={clsx(classes.appBarToggled, {\r\n                  [classes.appBar]: toggle,\r\n                })}\r\n              >\r\n                <Toolbar>\r\n                  <IconButton\r\n                    color=\"inherit\"\r\n                    aria-label=\"open drawer\"\r\n                    edge=\"start\"\r\n                    onClick={handleDrawerToggle}\r\n                    className={classes.menuButtonMobile}\r\n                  >\r\n                    <Icon.Menu />\r\n                  </IconButton>\r\n\r\n                  <IconButton\r\n                    color=\"inherit\"\r\n                    aria-label=\"open drawer\"\r\n                    edge=\"start\"\r\n                    onClick={desktopToggle}\r\n                    className={classes.menuButtonDesktop}\r\n                  >\r\n                    <Icon.Menu />\r\n                  </IconButton>\r\n                  <Typography variant=\"h6\" noWrap>\r\n                    Tankvision Endress+Hauser\r\n            </Typography>\r\n                </Toolbar>\r\n              </AppBar>\r\n              <nav className={classes.drawer} aria-label=\"mailbox folders\">\r\n                {/* The implementation can be swapped with js to avoid SEO duplication of links. */}\r\n                <Hidden smUp implementation=\"css\">\r\n                  <Drawer\r\n                    container={container}\r\n                    variant=\"temporary\"\r\n                    anchor={theme.direction === \"rtl\" ? \"right\" : \"left\"}\r\n                    open={mobileOpen}\r\n                    onClose={handleDrawerToggle}\r\n                    classes={{\r\n                      paper: classes.drawerPaper,\r\n                    }}\r\n                    ModalProps={{\r\n                      keepMounted: true, // Better open performance on mobile.\r\n                    }}\r\n                  >\r\n                    <Divider />\r\n                    <LeftMenu />\r\n                  </Drawer>\r\n                </Hidden>\r\n                <Hidden xsDown implementation=\"css\">\r\n                  <Drawer\r\n                    classes={{\r\n                      paper: classes.drawerPaper,\r\n                    }}\r\n                    variant=\"persistent\"\r\n                    anchor=\"left\"\r\n                    open={toggle}\r\n                  >\r\n                    <div className={classes.toolbar}>\r\n                      <AppBar color=\"inherit\">\r\n                        <Toolbar>\r\n                          <img src={logo} alt=\"logo\" className={classes.logo} />\r\n                        </Toolbar>\r\n                      </AppBar>\r\n                    </div>\r\n                    <Divider />\r\n                    <LeftMenu />\r\n                  </Drawer>\r\n                </Hidden>\r\n              </nav>\r\n\r\n              <div className={classes.baseLayout}></div>\r\n              {/* MAIN CONTENT AREA */}\r\n              <Switch>\r\n                <Route\r\n                  exact\r\n                  path=\"/\"\r\n                  component={() => (\r\n                    <PageDashboard\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n                <Route\r\n                  exact\r\n                  path=\"/dashboard\"\r\n                  component={() => (\r\n                    <PageDashboard\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n                <Route\r\n                  exact\r\n                  path=\"/administrator\"\r\n                  component={() => (\r\n                    <PageAdministrator\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                {/* users route */}\r\n                <Route\r\n                  exact\r\n                  path=\"/users\"\r\n                  component={() => (\r\n                    <PageUserManagement\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n                <Route\r\n                  exact\r\n                  path=\"/users/add\"\r\n                  component={() => (\r\n                    <PageUserAdd\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n                <Route\r\n                  exact\r\n                  path=\"/users/edit/:id\"\r\n                  component={() => (\r\n                    <PageUserEdit\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                {/* roles route */}\r\n                <Route\r\n                  exact\r\n                  path=\"/roles\"\r\n                  component={() => (\r\n                    <PageRoleManagement\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                <Route\r\n                  exact\r\n                  path=\"/roles/add\"\r\n                  component={() => (\r\n                    <PageRoleAdd\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                <Route\r\n                  exact\r\n                  path=\"/roles/edit/:id\"\r\n                  component={() => (\r\n                    <PageRoleEdit\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                {/* tag groups route */}\r\n                <Route\r\n                  exact\r\n                  path=\"/opc/tag-groups\"\r\n                  component={() => (\r\n                    <PageTagGroup\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                <Route\r\n                  exact\r\n                  path=\"/opc/tag-groups/detail/:id\"\r\n                  component={() => (\r\n                    <PageTagGroupDetail\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n                <Route\r\n                  exact\r\n                  path=\"/opc/tag-groups/add\"\r\n                  component={() => (\r\n                    <PageTagGroupAdd\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n                <Route\r\n                  exact\r\n                  path=\"/opc/tag-groups/edit/:id\"\r\n                  component={() => (\r\n                    <PageTagGroupEdit\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                {/* tags route */}\r\n                <Route\r\n                  exact\r\n                  path=\"/opc/tags/add/:id\"\r\n                  component={() => (\r\n                    <PageTagAdd\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n                <Route\r\n                  exact\r\n                  path=\"/opc/tags/edit/:id\"\r\n                  component={() => (\r\n                    <PageTagEdit\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n\r\n                {/* OPC REALTIME ROUTE */}\r\n                <Route\r\n                  exact\r\n                  path=\"/opc/realtime\"\r\n                  component={() => (\r\n                    <PageOpcRealtime\r\n                      content={clsx(classes.content, {\r\n                        [classes.contentToggle]: toggle,\r\n                      })}\r\n                      toolbar={classes.toolbar}\r\n                    />\r\n                  )}\r\n                />\r\n              </Switch>\r\n            </div>\r\n          )}\r\n        />\r\n        </Switch>\r\n      \r\n    </Router>\r\n  );\r\n}\r\n\r\nApp.propTypes = {\r\n  /**\r\n   * Injected by the documentation to work in an iframe.\r\n   * You won't need it on your project.\r\n   */\r\n  window: PropTypes.func,\r\n};\r\nexport default App"]},"metadata":{},"sourceType":"module"}