NeahFront2/.next/static/webpack/app/management/page.d1c7713e7a981e1c.hot-update.js
2025-04-08 20:36:59 +02:00

32 lines
77 KiB
JavaScript

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("app/management/page",{
/***/ "(app-pages-browser)/./components/management/management-tabs.tsx":
/*!***************************************************!*\
!*** ./components/management/management-tabs.tsx ***!
\***************************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ManagementTabs: function() { return /* binding */ ManagementTabs; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _components_ui_tabs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/tabs */ \"(app-pages-browser)/./components/ui/tabs.tsx\");\n/* harmony import */ var _components_groups_groups_table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/groups/groups-table */ \"(app-pages-browser)/./components/groups/groups-table.tsx\");\n/* harmony import */ var _components_users_users_table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/users/users-table */ \"(app-pages-browser)/./components/users/users-table.tsx\");\n/* __next_internal_client_entry_do_not_use__ ManagementTabs auto */ \n\n\n\nfunction ManagementTabs(param) {\n let { userRole = [] } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col mt-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_1__.Tabs, {\n defaultValue: \"users\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mb-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_1__.TabsList, {\n className: \"bg-black/20 border-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_1__.TabsTrigger, {\n value: \"users\",\n className: \"data-[state=active]:bg-blue-600 data-[state=active]:text-white text-gray-400\",\n children: \"Utilisateurs\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 17,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_1__.TabsTrigger, {\n value: \"groups\",\n className: \"data-[state=active]:bg-blue-600 data-[state=active]:text-white text-gray-400\",\n children: \"Groupes\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 23,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 16,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_1__.TabsContent, {\n value: \"users\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_users_users_table__WEBPACK_IMPORTED_MODULE_3__.UsersTable, {\n userRole: userRole\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_1__.TabsContent, {\n value: \"groups\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_groups_groups_table__WEBPACK_IMPORTED_MODULE_2__.GroupsTable, {\n userRole: userRole\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 36,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/management/management-tabs.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n_c = ManagementTabs;\nvar _c;\n$RefreshReg$(_c, \"ManagementTabs\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvbWFuYWdlbWVudC9tYW5hZ2VtZW50LXRhYnMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVnRjtBQUNqQjtBQUNIO0FBTXJELFNBQVNNLGVBQWUsS0FBc0M7UUFBdEMsRUFBRUMsV0FBVyxFQUFFLEVBQXVCLEdBQXRDO0lBQzdCLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVO2tCQUNiLDRFQUFDVCxxREFBSUE7WUFBQ1UsY0FBYTs7OEJBQ2pCLDhEQUFDRjtvQkFBSUMsV0FBVTs4QkFDYiw0RUFBQ1AseURBQVFBO3dCQUFDTyxXQUFVOzswQ0FDbEIsOERBQUNOLDREQUFXQTtnQ0FDVlEsT0FBTTtnQ0FDTkYsV0FBVTswQ0FDWDs7Ozs7OzBDQUdELDhEQUFDTiw0REFBV0E7Z0NBQ1ZRLE9BQU07Z0NBQ05GLFdBQVU7MENBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQU1MLDhEQUFDUiw0REFBV0E7b0JBQUNVLE9BQU07OEJBQ2pCLDRFQUFDTixxRUFBVUE7d0JBQUNFLFVBQVVBOzs7Ozs7Ozs7Ozs4QkFHeEIsOERBQUNOLDREQUFXQTtvQkFBQ1UsT0FBTTs4QkFDakIsNEVBQUNQLHdFQUFXQTt3QkFBQ0csVUFBVUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLakM7S0EvQmdCRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL21hbmFnZW1lbnQvbWFuYWdlbWVudC10YWJzLnRzeD8xNTE1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyBUYWJzLCBUYWJzQ29udGVudCwgVGFic0xpc3QsIFRhYnNUcmlnZ2VyIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS90YWJzXCI7XG5pbXBvcnQgeyBHcm91cHNUYWJsZSB9IGZyb20gXCJAL2NvbXBvbmVudHMvZ3JvdXBzL2dyb3Vwcy10YWJsZVwiO1xuaW1wb3J0IHsgVXNlcnNUYWJsZSB9IGZyb20gXCJAL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMtdGFibGVcIjtcblxuaW50ZXJmYWNlIE1hbmFnZW1lbnRUYWJzUHJvcHMge1xuICB1c2VyUm9sZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTWFuYWdlbWVudFRhYnMoeyB1c2VyUm9sZSA9IFtdIH06IE1hbmFnZW1lbnRUYWJzUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbXQtOFwiPlxuICAgICAgPFRhYnMgZGVmYXVsdFZhbHVlPVwidXNlcnNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItOFwiPlxuICAgICAgICAgIDxUYWJzTGlzdCBjbGFzc05hbWU9XCJiZy1ibGFjay8yMCBib3JkZXItMFwiPlxuICAgICAgICAgICAgPFRhYnNUcmlnZ2VyIFxuICAgICAgICAgICAgICB2YWx1ZT1cInVzZXJzXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0YS1bc3RhdGU9YWN0aXZlXTpiZy1ibHVlLTYwMCBkYXRhLVtzdGF0ZT1hY3RpdmVdOnRleHQtd2hpdGUgdGV4dC1ncmF5LTQwMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFV0aWxpc2F0ZXVyc1xuICAgICAgICAgICAgPC9UYWJzVHJpZ2dlcj5cbiAgICAgICAgICAgIDxUYWJzVHJpZ2dlciBcbiAgICAgICAgICAgICAgdmFsdWU9XCJncm91cHNcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYXRhLVtzdGF0ZT1hY3RpdmVdOmJnLWJsdWUtNjAwIGRhdGEtW3N0YXRlPWFjdGl2ZV06dGV4dC13aGl0ZSB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgR3JvdXBlc1xuICAgICAgICAgICAgPC9UYWJzVHJpZ2dlcj5cbiAgICAgICAgICA8L1RhYnNMaXN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8VGFic0NvbnRlbnQgdmFsdWU9XCJ1c2Vyc1wiPlxuICAgICAgICAgIDxVc2Vyc1RhYmxlIHVzZXJSb2xlPXt1c2VyUm9sZX0gLz5cbiAgICAgICAgPC9UYWJzQ29udGVudD5cbiAgICAgICAgXG4gICAgICAgIDxUYWJzQ29udGVudCB2YWx1ZT1cImdyb3Vwc1wiPlxuICAgICAgICAgIDxHcm91cHNUYWJsZSB1c2VyUm9sZT17dXNlclJvbGV9IC8+XG4gICAgICAgIDwvVGFic0NvbnRlbnQ+XG4gICAgICA8L1RhYnM+XG4gICAgPC9kaXY+XG4gICk7XG59ICJdLCJuYW1lcyI6WyJUYWJzIiwiVGFic0NvbnRlbnQiLCJUYWJzTGlzdCIsIlRhYnNUcmlnZ2VyIiwiR3JvdXBzVGFibGUiLCJVc2Vyc1RhYmxlIiwiTWFuYWdlbWVudFRhYnMiLCJ1c2VyUm9sZSIsImRpdiIsImNsYXNzTmFtZSIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/management/management-tabs.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/users/users-table.tsx":
/*!******************************************!*\
!*** ./components/users/users-table.tsx ***!
\******************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ UsersTable: function() { return /* binding */ UsersTable; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/table */ \"(app-pages-browser)/./components/ui/table.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next-auth/react */ \"(app-pages-browser)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_ui_pagination__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/pagination */ \"(app-pages-browser)/./components/ui/pagination.tsx\");\n/* harmony import */ var _barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Edit,MoreHorizontal,Trash,UserPlus!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/ellipsis.js\");\n/* harmony import */ var _barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Edit,MoreHorizontal,Trash,UserPlus!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js\");\n/* harmony import */ var _barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Edit,MoreHorizontal,Trash,UserPlus!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user-plus.js\");\n/* harmony import */ var _barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Edit,MoreHorizontal,Trash,UserPlus!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* __next_internal_client_entry_do_not_use__ UsersTable auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n// Constants for role names\nconst ROLES = {\n ADMIN: \"Admin\",\n TEACHER: \"Teacher\",\n STUDENT: \"Students\"\n};\nconst ITEMS_PER_PAGE = 10;\nfunction UsersTable(param) {\n let { userRole = [] } = param;\n var _session_user, _session_user_role, _session_user1, _session_user_role1, _session_user2;\n _s();\n const { data: session, status } = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_4__.useSession)();\n const [users, setUsers] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [currentPage, setCurrentPage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(1);\n const [searchTerm, setSearchTerm] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n fetchUsers();\n }, []);\n const fetchUsers = async ()=>{\n try {\n var _session_user;\n setLoading(true);\n const response = await fetch(\"/api/users\");\n const data = await response.json();\n console.log(\"Fetched users:\", data);\n console.log(\"Current user role:\", session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.role); // Debug log\n setUsers(data);\n } catch (error) {\n console.error(\"Error fetching users:\", error);\n } finally{\n setLoading(false);\n }\n };\n const filterUsers = (users)=>{\n console.log(\"Filtering users with role:\", userRole); // Debug log\n if (!Array.isArray(users)) return [];\n // If no role specified or user is admin, show all users\n if (!(userRole === null || userRole === void 0 ? void 0 : userRole.length) || userRole.includes(ROLES.ADMIN)) {\n console.log(\"Showing all users - admin or no role\");\n return users;\n }\n // If user is teacher, show teachers and students\n if (userRole.includes(ROLES.TEACHER)) {\n console.log(\"Filtering for teacher view\");\n return users.filter((user)=>{\n var _user_roles, _user_roles1;\n return ((_user_roles = user.roles) === null || _user_roles === void 0 ? void 0 : _user_roles.includes(ROLES.TEACHER)) || ((_user_roles1 = user.roles) === null || _user_roles1 === void 0 ? void 0 : _user_roles1.includes(ROLES.STUDENT));\n });\n }\n // If user is student, show only students\n if (userRole.includes(ROLES.STUDENT)) {\n console.log(\"Filtering for student view\");\n return users.filter((user)=>{\n var _user_roles;\n return (_user_roles = user.roles) === null || _user_roles === void 0 ? void 0 : _user_roles.includes(ROLES.STUDENT);\n });\n }\n // Default: show all users\n console.log(\"Default case: showing all users\");\n return users;\n };\n const canDelete = (targetUserRole)=>{\n if (!(userRole === null || userRole === void 0 ? void 0 : userRole.length)) return false;\n if (userRole.includes(ROLES.ADMIN)) return true;\n if (userRole.includes(ROLES.TEACHER)) {\n return targetUserRole.includes(ROLES.STUDENT);\n }\n return false;\n };\n const handleDelete = async (userId)=>{\n try {\n const response = await fetch(\"/api/users/\".concat(userId), {\n method: \"DELETE\"\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Delete error:\", data);\n // You might want to show an error message to the user here\n return;\n }\n // Remove the user from the local state\n setUsers((prevUsers)=>prevUsers.filter((user)=>user.id !== userId));\n // Optional: Show success message\n console.log(\"User deleted successfully\");\n } catch (error) {\n console.error(\"Error deleting user:\", error);\n // You might want to show an error message to the user here\n }\n };\n const filteredUsers = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n let filtered = filterUsers(users);\n // Apply search filter\n if (searchTerm) {\n filtered = filtered.filter((user)=>user.username.toLowerCase().includes(searchTerm.toLowerCase()) || user.email.toLowerCase().includes(searchTerm.toLowerCase()) || user.firstName.toLowerCase().includes(searchTerm.toLowerCase()) || user.lastName.toLowerCase().includes(searchTerm.toLowerCase()));\n }\n return filtered;\n }, [\n users,\n searchTerm,\n userRole\n ]);\n // Calculate pagination\n const totalPages = Math.ceil(filteredUsers.length / ITEMS_PER_PAGE);\n const paginatedUsers = filteredUsers.slice((currentPage - 1) * ITEMS_PER_PAGE, currentPage * ITEMS_PER_PAGE);\n const handlePageChange = (page)=>{\n setCurrentPage(page);\n };\n const handleAddUser = (newUser)=>{\n setUsers((prev)=>{\n const updated = [\n ...prev,\n newUser\n ];\n // Sort users by username\n return updated.sort((a, b)=>a.username.localeCompare(b.username));\n });\n // Reset to first page when adding new user\n setCurrentPage(1);\n };\n // First, let's debug the roles\n console.log(\"Current session:\", {\n role: session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.role,\n isAdmin: session === null || session === void 0 ? void 0 : (_session_user1 = session.user) === null || _session_user1 === void 0 ? void 0 : (_session_user_role = _session_user1.role) === null || _session_user_role === void 0 ? void 0 : _session_user_role.includes(\"Admin\"),\n isTeacher: session === null || session === void 0 ? void 0 : (_session_user2 = session.user) === null || _session_user2 === void 0 ? void 0 : (_session_user_role1 = _session_user2.role) === null || _session_user_role1 === void 0 ? void 0 : _session_user_role1.includes(\"Teacher\")\n });\n // Add this function for editing user\n const handleEdit = async (userId)=>{\n // TODO: Implement edit functionality\n console.log(\"Edit user:\", userId);\n };\n // Add this function for managing roles\n const handleManageRoles = async (userId)=>{\n // TODO: Implement role management\n console.log(\"Manage roles for user:\", userId);\n };\n if (!session) return null;\n if (loading) return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-4\",\n children: \"Loading...\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 198,\n columnNumber: 23\n }, this);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n placeholder: \"Rechercher un utilisateur...\",\n className: \"bg-black/20 border-0 rounded-md text-white/80 w-96\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 204,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"secondary\",\n children: \"Ajouter un utilisateur\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 209,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 203,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.Table, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHeader, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n children: \"Nom d'utilisateur\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 219,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n children: \"Pr\\xe9nom\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 220,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n children: \"Nom\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 221,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n children: \"Email\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 222,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n children: \"Date d'inscription\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 223,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n children: \"Roles\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 224,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, {\n className: \"text-right\",\n children: \"Actions\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 225,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 218,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 217,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableBody, {\n children: paginatedUsers.map((user)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n children: user.username\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 231,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n children: user.firstName\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 232,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n children: user.lastName\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 233,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n children: user.email\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 234,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n children: new Date(user.createdTimestamp).toLocaleDateString()\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 235,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n children: user.roles.join(\", \")\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 238,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, {\n className: \"text-right\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n className: \"h-8 w-8 p-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"Open menu\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 243,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 244,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 242,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 241,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenuContent, {\n align: \"end\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenuLabel, {\n children: \"Actions\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 248,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenuItem, {\n onClick: ()=>handleEdit(user.id),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"mr-2 h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 250,\n columnNumber: 25\n }, this),\n \"Modifier\"\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 249,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenuItem, {\n onClick: ()=>handleManageRoles(user.id),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"mr-2 h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 254,\n columnNumber: 25\n }, this),\n \"G\\xe9rer les r\\xf4les\"\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 253,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 257,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.DropdownMenuItem, {\n className: \"text-red-600\",\n onClick: ()=>handleDelete(user.id),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Edit_MoreHorizontal_Trash_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"mr-2 h-4 w-4\"\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 262,\n columnNumber: 25\n }, this),\n \"Supprimer\"\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 258,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 247,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 240,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 239,\n columnNumber: 17\n }, this)\n ]\n }, user.id, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 230,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 228,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 216,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_pagination__WEBPACK_IMPORTED_MODULE_5__.SimplePagination, {\n currentPage: currentPage,\n totalPages: totalPages,\n onPageChange: handlePageChange\n }, void 0, false, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 273,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-500 text-center mt-2\",\n children: [\n \"Affichage de \",\n Math.min(currentPage * ITEMS_PER_PAGE, filteredUsers.length),\n \" sur \",\n filteredUsers.length,\n \" utilisateurs\"\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 279,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 215,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alma/Downloads/neah/front/components/users/users-table.tsx\",\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n_s(UsersTable, \"eilWmTd+vXiJb4Tax/3n6sjZGlw=\", false, function() {\n return [\n next_auth_react__WEBPACK_IMPORTED_MODULE_4__.useSession\n ];\n});\n_c = UsersTable;\nvar _c;\n$RefreshReg$(_c, \"UsersTable\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMtdGFibGUudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcUQ7QUFRdEI7QUFDaUI7QUFDSDtBQUVpQjtBQUVPO0FBUTlCO0FBZ0J2QywyQkFBMkI7QUFDM0IsTUFBTXNCLFFBQVE7SUFDWkMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLFNBQVM7QUFDWDtBQUVBLE1BQU1DLGlCQUFpQjtBQUVoQixTQUFTQyxXQUFXLEtBQWtDO1FBQWxDLEVBQUVDLFdBQVcsRUFBRSxFQUFtQixHQUFsQztRQWtJakJDLGVBQ0dBLG9CQUFBQSxnQkFDRUEscUJBQUFBOztJQW5JYixNQUFNLEVBQUVDLE1BQU1ELE9BQU8sRUFBRUUsTUFBTSxFQUFFLEdBQUdyQiwyREFBVUE7SUFDNUMsTUFBTSxDQUFDc0IsT0FBT0MsU0FBUyxHQUFHakMsK0NBQVFBLENBQVMsRUFBRTtJQUM3QyxNQUFNLENBQUNrQyxTQUFTQyxXQUFXLEdBQUduQywrQ0FBUUEsQ0FBQztJQUN2QyxNQUFNLENBQUNvQyxhQUFhQyxlQUFlLEdBQUdyQywrQ0FBUUEsQ0FBQztJQUMvQyxNQUFNLENBQUNzQyxZQUFZQyxjQUFjLEdBQUd2QywrQ0FBUUEsQ0FBQztJQUU3Q0MsZ0RBQVNBLENBQUM7UUFDUnVDO0lBQ0YsR0FBRyxFQUFFO0lBRUwsTUFBTUEsYUFBYTtRQUNqQixJQUFJO2dCQUtnQ1g7WUFKbENNLFdBQVc7WUFDWCxNQUFNTSxXQUFXLE1BQU1DLE1BQU07WUFDN0IsTUFBTVosT0FBTyxNQUFNVyxTQUFTRSxJQUFJO1lBQ2hDQyxRQUFRQyxHQUFHLENBQUMsa0JBQWtCZjtZQUM5QmMsUUFBUUMsR0FBRyxDQUFDLHNCQUFzQmhCLG9CQUFBQSwrQkFBQUEsZ0JBQUFBLFFBQVNpQixJQUFJLGNBQWJqQixvQ0FBQUEsY0FBZWtCLElBQUksR0FBRyxZQUFZO1lBQ3BFZCxTQUFTSDtRQUNYLEVBQUUsT0FBT2tCLE9BQU87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RUFBaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUNBaEM3QjdDLEtBQUtpQixFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O2tDQTJDNUIsOERBQUNwRCx1RUFBZ0JBO3dCQUNmeUIsYUFBYUE7d0JBQ2JtQyxZQUFZQTt3QkFDWmtDLGNBQWM3Qjs7Ozs7O2tDQUdoQiw4REFBQ2M7d0JBQUlDLFdBQVU7OzRCQUF5Qzs0QkFDeENuQixLQUFLa0MsR0FBRyxDQUFDdEUsY0FBY1YsZ0JBQWdCc0MsY0FBY1osTUFBTTs0QkFBRTs0QkFBTVksY0FBY1osTUFBTTs0QkFBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtoSDtHQTNPZ0J6Qjs7UUFDb0JqQix1REFBVUE7OztLQUQ5QmlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMtdGFibGUudHN4P2Q1ZTkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG4gIFRhYmxlLFxuICBUYWJsZUJvZHksXG4gIFRhYmxlQ2VsbCxcbiAgVGFibGVIZWFkLFxuICBUYWJsZUhlYWRlcixcbiAgVGFibGVSb3csXG59IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvdGFibGVcIjtcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYnV0dG9uXCI7XG5pbXBvcnQgeyB1c2VTZXNzaW9uIH0gZnJvbSBcIm5leHQtYXV0aC9yZWFjdFwiO1xuaW1wb3J0IHsgQWRkVXNlckJ1dHRvbiB9IGZyb20gXCIuL2FkZC11c2VyLWJ1dHRvblwiO1xuaW1wb3J0IHsgU2ltcGxlUGFnaW5hdGlvbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvcGFnaW5hdGlvblwiO1xuaW1wb3J0IHsgSW5wdXQgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2lucHV0XCI7XG5pbXBvcnQgeyBNb3JlSG9yaXpvbnRhbCwgVHJhc2gsIEVkaXQsIFVzZXJQbHVzIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IHtcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVJdGVtLFxuICBEcm9wZG93bk1lbnVMYWJlbCxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yLFxuICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2Ryb3Bkb3duLW1lbnVcIjtcblxuaW50ZXJmYWNlIFVzZXIge1xuICBpZDogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgY3JlYXRlZFRpbWVzdGFtcDogbnVtYmVyO1xuICByb2xlczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBVc2Vyc1RhYmxlUHJvcHMge1xuICB1c2VyUm9sZT86IHN0cmluZ1tdO1xufVxuXG4vLyBDb25zdGFudHMgZm9yIHJvbGUgbmFtZXNcbmNvbnN0IFJPTEVTID0ge1xuICBBRE1JTjogXCJBZG1pblwiLFxuICBURUFDSEVSOiBcIlRlYWNoZXJcIixcbiAgU1RVREVOVDogXCJTdHVkZW50c1wiXG59IGFzIGNvbnN0O1xuXG5jb25zdCBJVEVNU19QRVJfUEFHRSA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gVXNlcnNUYWJsZSh7IHVzZXJSb2xlID0gW10gfTogVXNlcnNUYWJsZVByb3BzKSB7XG4gIGNvbnN0IHsgZGF0YTogc2Vzc2lvbiwgc3RhdHVzIH0gPSB1c2VTZXNzaW9uKCk7XG4gIGNvbnN0IFt1c2Vycywgc2V0VXNlcnNdID0gdXNlU3RhdGU8VXNlcltdPihbXSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbY3VycmVudFBhZ2UsIHNldEN1cnJlbnRQYWdlXSA9IHVzZVN0YXRlKDEpO1xuICBjb25zdCBbc2VhcmNoVGVybSwgc2V0U2VhcmNoVGVybV0gPSB1c2VTdGF0ZShcIlwiKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZldGNoVXNlcnMoKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGZldGNoVXNlcnMgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS91c2Vyc1wiKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBjb25zb2xlLmxvZyhcIkZldGNoZWQgdXNlcnM6XCIsIGRhdGEpO1xuICAgICAgY29uc29sZS5sb2coXCJDdXJyZW50IHVzZXIgcm9sZTpcIiwgc2Vzc2lvbj8udXNlcj8ucm9sZSk7IC8vIERlYnVnIGxvZ1xuICAgICAgc2V0VXNlcnMoZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBmZXRjaGluZyB1c2VyczpcIiwgZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyVXNlcnMgPSAodXNlcnM6IFVzZXJbXSkgPT4ge1xuICAgIGNvbnNvbGUubG9nKFwiRmlsdGVyaW5nIHVzZXJzIHdpdGggcm9sZTpcIiwgdXNlclJvbGUpOyAvLyBEZWJ1ZyBsb2dcbiAgICBcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodXNlcnMpKSByZXR1cm4gW107XG4gICAgXG4gICAgLy8gSWYgbm8gcm9sZSBzcGVjaWZpZWQgb3IgdXNlciBpcyBhZG1pbiwgc2hvdyBhbGwgdXNlcnNcbiAgICBpZiAoIXVzZXJSb2xlPy5sZW5ndGggfHwgdXNlclJvbGUuaW5jbHVkZXMoUk9MRVMuQURNSU4pKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlNob3dpbmcgYWxsIHVzZXJzIC0gYWRtaW4gb3Igbm8gcm9sZVwiKTtcbiAgICAgIHJldHVybiB1c2VycztcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgdXNlciBpcyB0ZWFjaGVyLCBzaG93IHRlYWNoZXJzIGFuZCBzdHVkZW50c1xuICAgIGlmICh1c2VyUm9sZS5pbmNsdWRlcyhST0xFUy5URUFDSEVSKSkge1xuICAgICAgY29uc29sZS5sb2coXCJGaWx0ZXJpbmcgZm9yIHRlYWNoZXIgdmlld1wiKTtcbiAgICAgIHJldHVybiB1c2Vycy5maWx0ZXIodXNlciA9PlxuICAgICAgICB1c2VyLnJvbGVzPy5pbmNsdWRlcyhST0xFUy5URUFDSEVSKSB8fCB1c2VyLnJvbGVzPy5pbmNsdWRlcyhST0xFUy5TVFVERU5UKVxuICAgICAgKTtcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgdXNlciBpcyBzdHVkZW50LCBzaG93IG9ubHkgc3R1ZGVudHNcbiAgICBpZiAodXNlclJvbGUuaW5jbHVkZXMoUk9MRVMuU1RVREVOVCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRmlsdGVyaW5nIGZvciBzdHVkZW50IHZpZXdcIik7XG4gICAgICByZXR1cm4gdXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5yb2xlcz8uaW5jbHVkZXMoUk9MRVMuU1RVREVOVCkpO1xuICAgIH1cbiAgICBcbiAgICAvLyBEZWZhdWx0OiBzaG93IGFsbCB1c2Vyc1xuICAgIGNvbnNvbGUubG9nKFwiRGVmYXVsdCBjYXNlOiBzaG93aW5nIGFsbCB1c2Vyc1wiKTtcbiAgICByZXR1cm4gdXNlcnM7XG4gIH07XG5cbiAgY29uc3QgY2FuRGVsZXRlID0gKHRhcmdldFVzZXJSb2xlOiBzdHJpbmdbXSkgPT4ge1xuICAgIGlmICghdXNlclJvbGU/Lmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIFxuICAgIGlmICh1c2VyUm9sZS5pbmNsdWRlcyhST0xFUy5BRE1JTikpIHJldHVybiB0cnVlO1xuICAgIGlmICh1c2VyUm9sZS5pbmNsdWRlcyhST0xFUy5URUFDSEVSKSkge1xuICAgICAgcmV0dXJuIHRhcmdldFVzZXJSb2xlLmluY2x1ZGVzKFJPTEVTLlNUVURFTlQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gYXN5bmMgKHVzZXJJZDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvdXNlcnMvJHt1c2VySWR9YCwge1xuICAgICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRGVsZXRlIGVycm9yOlwiLCBkYXRhKTtcbiAgICAgICAgLy8gWW91IG1pZ2h0IHdhbnQgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSB1c2VyIGhlcmVcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgdGhlIHVzZXIgZnJvbSB0aGUgbG9jYWwgc3RhdGVcbiAgICAgIHNldFVzZXJzKHByZXZVc2VycyA9PiBwcmV2VXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5pZCAhPT0gdXNlcklkKSk7XG4gICAgICBcbiAgICAgIC8vIE9wdGlvbmFsOiBTaG93IHN1Y2Nlc3MgbWVzc2FnZVxuICAgICAgY29uc29sZS5sb2coXCJVc2VyIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5XCIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZGVsZXRpbmcgdXNlcjpcIiwgZXJyb3IpO1xuICAgICAgLy8gWW91IG1pZ2h0IHdhbnQgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSB1c2VyIGhlcmVcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyZWRVc2VycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBmaWx0ZXJlZCA9IGZpbHRlclVzZXJzKHVzZXJzKTtcbiAgICBcbiAgICAvLyBBcHBseSBzZWFyY2ggZmlsdGVyXG4gICAgaWYgKHNlYXJjaFRlcm0pIHtcbiAgICAgIGZpbHRlcmVkID0gZmlsdGVyZWQuZmlsdGVyKHVzZXIgPT4gXG4gICAgICAgIHVzZXIudXNlcm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICAgIHVzZXIuZW1haWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICAgIHVzZXIuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSB8fFxuICAgICAgICB1c2VyLmxhc3ROYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKVxuICAgICAgKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGZpbHRlcmVkO1xuICB9LCBbdXNlcnMsIHNlYXJjaFRlcm0sIHVzZXJSb2xlXSk7XG5cbiAgLy8gQ2FsY3VsYXRlIHBhZ2luYXRpb25cbiAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGguY2VpbChmaWx0ZXJlZFVzZXJzLmxlbmd0aCAvIElURU1TX1BFUl9QQUdFKTtcbiAgY29uc3QgcGFnaW5hdGVkVXNlcnMgPSBmaWx0ZXJlZFVzZXJzLnNsaWNlKFxuICAgIChjdXJyZW50UGFnZSAtIDEpICogSVRFTVNfUEVSX1BBR0UsXG4gICAgY3VycmVudFBhZ2UgKiBJVEVNU19QRVJfUEFHRVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVBhZ2VDaGFuZ2UgPSAocGFnZTogbnVtYmVyKSA9PiB7XG4gICAgc2V0Q3VycmVudFBhZ2UocGFnZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQWRkVXNlciA9IChuZXdVc2VyOiBVc2VyKSA9PiB7XG4gICAgc2V0VXNlcnMocHJldiA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkID0gWy4uLnByZXYsIG5ld1VzZXJdO1xuICAgICAgLy8gU29ydCB1c2VycyBieSB1c2VybmFtZVxuICAgICAgcmV0dXJuIHVwZGF0ZWQuc29ydCgoYSwgYikgPT4gYS51c2VybmFtZS5sb2NhbGVDb21wYXJlKGIudXNlcm5hbWUpKTtcbiAgICB9KTtcbiAgICAvLyBSZXNldCB0byBmaXJzdCBwYWdlIHdoZW4gYWRkaW5nIG5ldyB1c2VyXG4gICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gIH07XG5cbiAgLy8gRmlyc3QsIGxldCdzIGRlYnVnIHRoZSByb2xlc1xuICBjb25zb2xlLmxvZyhcIkN1cnJlbnQgc2Vzc2lvbjpcIiwge1xuICAgIHJvbGU6IHNlc3Npb24/LnVzZXI/LnJvbGUsXG4gICAgaXNBZG1pbjogc2Vzc2lvbj8udXNlcj8ucm9sZT8uaW5jbHVkZXMoXCJBZG1pblwiKSxcbiAgICBpc1RlYWNoZXI6IHNlc3Npb24/LnVzZXI/LnJvbGU/LmluY2x1ZGVzKFwiVGVhY2hlclwiKVxuICB9KTtcblxuICAvLyBBZGQgdGhpcyBmdW5jdGlvbiBmb3IgZWRpdGluZyB1c2VyXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSBhc3luYyAodXNlcklkOiBzdHJpbmcpID0+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgZWRpdCBmdW5jdGlvbmFsaXR5XG4gICAgY29uc29sZS5sb2coXCJFZGl0IHVzZXI6XCIsIHVzZXJJZCk7XG4gIH07XG5cbiAgLy8gQWRkIHRoaXMgZnVuY3Rpb24gZm9yIG1hbmFnaW5nIHJvbGVzXG4gIGNvbnN0IGhhbmRsZU1hbmFnZVJvbGVzID0gYXN5bmMgKHVzZXJJZDogc3RyaW5nKSA9PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHJvbGUgbWFuYWdlbWVudFxuICAgIGNvbnNvbGUubG9nKFwiTWFuYWdlIHJvbGVzIGZvciB1c2VyOlwiLCB1c2VySWQpO1xuICB9O1xuXG4gIGlmICghc2Vzc2lvbikgcmV0dXJuIG51bGw7XG4gIGlmIChsb2FkaW5nKSByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBwLTRcIj5Mb2FkaW5nLi4uPC9kaXY+O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHsvKiBTZWFyY2ggYW5kIEFkZCBVc2VyIHJvdyAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIG1iLTZcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUmVjaGVyY2hlciB1biB1dGlsaXNhdGV1ci4uLlwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmxhY2svMjAgYm9yZGVyLTAgcm91bmRlZC1tZCB0ZXh0LXdoaXRlLzgwIHctOTZcIlxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIj5cbiAgICAgICAgICBBam91dGVyIHVuIHV0aWxpc2F0ZXVyXG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBUYWJsZSBjb250ZW50ICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgPFRhYmxlPlxuICAgICAgICAgIDxUYWJsZUhlYWRlcj5cbiAgICAgICAgICAgIDxUYWJsZVJvdz5cbiAgICAgICAgICAgICAgPFRhYmxlSGVhZD5Ob20gZCd1dGlsaXNhdGV1cjwvVGFibGVIZWFkPlxuICAgICAgICAgICAgICA8VGFibGVIZWFkPlByw6lub208L1RhYmxlSGVhZD5cbiAgICAgICAgICAgICAgPFRhYmxlSGVhZD5Ob208L1RhYmxlSGVhZD5cbiAgICAgICAgICAgICAgPFRhYmxlSGVhZD5FbWFpbDwvVGFibGVIZWFkPlxuICAgICAgICAgICAgICA8VGFibGVIZWFkPkRhdGUgZCdpbnNjcmlwdGlvbjwvVGFibGVIZWFkPlxuICAgICAgICAgICAgICA8VGFibGVIZWFkPlJvbGVzPC9UYWJsZUhlYWQ+XG4gICAgICAgICAgICAgIDxUYWJsZUhlYWQgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPkFjdGlvbnM8L1RhYmxlSGVhZD5cbiAgICAgICAgICAgIDwvVGFibGVSb3c+XG4gICAgICAgICAgPC9UYWJsZUhlYWRlcj5cbiAgICAgICAgICA8VGFibGVCb2R5PlxuICAgICAgICAgICAge3BhZ2luYXRlZFVzZXJzLm1hcCgodXNlcikgPT4gKFxuICAgICAgICAgICAgICA8VGFibGVSb3cga2V5PXt1c2VyLmlkfT5cbiAgICAgICAgICAgICAgICA8VGFibGVDZWxsPnt1c2VyLnVzZXJuYW1lfTwvVGFibGVDZWxsPlxuICAgICAgICAgICAgICAgIDxUYWJsZUNlbGw+e3VzZXIuZmlyc3ROYW1lfTwvVGFibGVDZWxsPlxuICAgICAgICAgICAgICAgIDxUYWJsZUNlbGw+e3VzZXIubGFzdE5hbWV9PC9UYWJsZUNlbGw+XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbD57dXNlci5lbWFpbH08L1RhYmxlQ2VsbD5cbiAgICAgICAgICAgICAgICA8VGFibGVDZWxsPlxuICAgICAgICAgICAgICAgICAge25ldyBEYXRlKHVzZXIuY3JlYXRlZFRpbWVzdGFtcCkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9XG4gICAgICAgICAgICAgICAgPC9UYWJsZUNlbGw+XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbD57dXNlci5yb2xlcy5qb2luKFwiLCBcIil9PC9UYWJsZUNlbGw+XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbCBjbGFzc05hbWU9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51VHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cImdob3N0XCIgY2xhc3NOYW1lPVwiaC04IHctOCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5PcGVuIG1lbnU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TW9yZUhvcml6b250YWwgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUNvbnRlbnQgYWxpZ249XCJlbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51TGFiZWw+QWN0aW9uczwvRHJvcGRvd25NZW51TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdCh1c2VyLmlkKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RWRpdCBjbGFzc05hbWU9XCJtci0yIGgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZXJcbiAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17KCkgPT4gaGFuZGxlTWFuYWdlUm9sZXModXNlci5pZCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFVzZXJQbHVzIGNsYXNzTmFtZT1cIm1yLTIgaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICBHw6lyZXIgbGVzIHLDtGxlc1xuICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51U2VwYXJhdG9yIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTYwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUodXNlci5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRyYXNoIGNsYXNzTmFtZT1cIm1yLTIgaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICBTdXBwcmltZXJcbiAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51Q29udGVudD5cbiAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsPlxuICAgICAgICAgICAgICA8L1RhYmxlUm93PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9UYWJsZUJvZHk+XG4gICAgICAgIDwvVGFibGU+XG5cbiAgICAgICAgPFNpbXBsZVBhZ2luYXRpb25cbiAgICAgICAgICBjdXJyZW50UGFnZT17Y3VycmVudFBhZ2V9XG4gICAgICAgICAgdG90YWxQYWdlcz17dG90YWxQYWdlc31cbiAgICAgICAgICBvblBhZ2VDaGFuZ2U9e2hhbmRsZVBhZ2VDaGFuZ2V9XG4gICAgICAgIC8+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDAgdGV4dC1jZW50ZXIgbXQtMlwiPlxuICAgICAgICAgIEFmZmljaGFnZSBkZSB7TWF0aC5taW4oY3VycmVudFBhZ2UgKiBJVEVNU19QRVJfUEFHRSwgZmlsdGVyZWRVc2Vycy5sZW5ndGgpfSBzdXIge2ZpbHRlcmVkVXNlcnMubGVuZ3RofSB1dGlsaXNhdGV1cnNcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJUYWJsZSIsIlRhYmxlQm9keSIsIlRhYmxlQ2VsbCIsIlRhYmxlSGVhZCIsIlRhYmxlSGVhZGVyIiwiVGFibGVSb3ciLCJCdXR0b24iLCJ1c2VTZXNzaW9uIiwiU2ltcGxlUGFnaW5hdGlvbiIsIk1vcmVIb3Jpem9udGFsIiwiVHJhc2giLCJFZGl0IiwiVXNlclBsdXMiLCJEcm9wZG93bk1lbnUiLCJEcm9wZG93bk1lbnVDb250ZW50IiwiRHJvcGRvd25NZW51SXRlbSIsIkRyb3Bkb3duTWVudUxhYmVsIiwiRHJvcGRvd25NZW51U2VwYXJhdG9yIiwiRHJvcGRvd25NZW51VHJpZ2dlciIsIlJPTEVTIiwiQURNSU4iLCJURUFDSEVSIiwiU1RVREVOVCIsIklURU1TX1BFUl9QQUdFIiwiVXNlcnNUYWJsZSIsInVzZXJSb2xlIiwic2Vzc2lvbiIsImRhdGEiLCJzdGF0dXMiLCJ1c2VycyIsInNldFVzZXJzIiwibG9hZGluZyIsInNldExvYWRpbmciLCJjdXJyZW50UGFnZSIsInNldEN1cnJlbnRQYWdlIiwic2VhcmNoVGVybSIsInNldFNlYXJjaFRlcm0iLCJmZXRjaFVzZXJzIiwicmVzcG9uc2UiLCJmZXRjaCIsImpzb24iLCJjb25zb2xlIiwibG9nIiwidXNlciIsInJvbGUiLCJlcnJvciIsImZpbHRlclVzZXJzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJmaWx0ZXIiLCJyb2xlcyIsImNhbkRlbGV0ZSIsInRhcmdldFVzZXJSb2xlIiwiaGFuZGxlRGVsZXRlIiwidXNlcklkIiwibWV0aG9kIiwib2siLCJwcmV2VXNlcnMiLCJpZCIsImZpbHRlcmVkVXNlcnMiLCJmaWx0ZXJlZCIsInVzZXJuYW1lIiwidG9Mb3dlckNhc2UiLCJlbWFpbCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwidG90YWxQYWdlcyIsIk1hdGgiLCJjZWlsIiwicGFnaW5hdGVkVXNlcnMiLCJzbGljZSIsImhhbmRsZVBhZ2VDaGFuZ2UiLCJwYWdlIiwiaGFuZGxlQWRkVXNlciIsIm5ld1VzZXIiLCJwcmV2IiwidXBkYXRlZCIsInNvcnQiLCJhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJpc0FkbWluIiwiaXNUZWFjaGVyIiwiaGFuZGxlRWRpdCIsImhhbmRsZU1hbmFnZVJvbGVzIiwiZGl2IiwiY2xhc3NOYW1lIiwiaW5wdXQiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJ2YXJpYW50IiwibWFwIiwiRGF0ZSIsImNyZWF0ZWRUaW1lc3RhbXAiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJqb2luIiwiYXNDaGlsZCIsInNwYW4iLCJhbGlnbiIsIm9uQ2xpY2siLCJvblBhZ2VDaGFuZ2UiLCJtaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/users/users-table.tsx\n"));
/***/ })
});