/* * 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/). */ (() => { var exports = {}; exports.id = "app/dashboard/contracts/page"; exports.ids = ["app/dashboard/contracts/page"]; exports.modules = { /***/ "../../client/components/action-async-storage.external": /*!*******************************************************************************!*\ !*** external "next/dist/client/components/action-async-storage.external.js" ***! \*******************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/client/components/action-async-storage.external.js"); /***/ }), /***/ "../../client/components/request-async-storage.external": /*!********************************************************************************!*\ !*** external "next/dist/client/components/request-async-storage.external.js" ***! \********************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/client/components/request-async-storage.external.js"); /***/ }), /***/ "../../client/components/static-generation-async-storage.external": /*!******************************************************************************************!*\ !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***! \******************************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/client/components/static-generation-async-storage.external.js"); /***/ }), /***/ "next/dist/compiled/next-server/app-page.runtime.dev.js": /*!*************************************************************************!*\ !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***! \*************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2Fpage&page=%2Fdashboard%2Fcontracts%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2Fpage&page=%2Fdashboard%2Fcontracts%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9100\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: [\n 'dashboard',\n {\n children: [\n 'contracts',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/contracts/page.js */ \"(rsc)/./src/app/dashboard/contracts/page.js\")), \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\"],\n \n }]\n },\n {\n \n \n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/layout.js */ \"(rsc)/./src/app/dashboard/layout.js\")), \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\"],\n \n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.js */ \"(rsc)/./src/app/layout.js\")), \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/layout.js\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/dashboard/contracts/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/dashboard/contracts/page\",\n pathname: \"/dashboard/contracts\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZkYXNoYm9hcmQlMkZjb250cmFjdHMlMkZwYWdlJnBhZ2U9JTJGZGFzaGJvYXJkJTJGY29udHJhY3RzJTJGcGFnZSZhcHBQYXRocz0lMkZkYXNoYm9hcmQlMkZjb250cmFjdHMlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGZGFzaGJvYXJkJTJGY29udHJhY3RzJTJGcGFnZS5qcyZhcHBEaXI9JTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmdhbmRhbnhpYW5nemhhbyUyRkRlc2t0b3AlMkYlRTUlOTAlODglRTUlOTAlOEMlRTYlQjUlODElRTglQkQlQUMlRTUlQUUlQTElRTYlODklQjklRTclQjMlQkIlRTclQkIlOUYmaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxhQUFhLHNCQUFzQjtBQUNpRTtBQUNyQztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakMsdUJBQXVCLHNMQUFnSDtBQUN2STtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHlCQUF5QixzS0FBd0c7QUFDakk7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EseUJBQXlCLGtKQUE4RjtBQUN2SCxvQkFBb0IsME5BQWdGO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUN1QjtBQUM2RDtBQUNwRiw2QkFBNkIsbUJBQW1CO0FBQ2hEO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUN1RDtBQUN2RDtBQUNPLHdCQUF3Qiw4R0FBa0I7QUFDakQ7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLz8wNWY3Il0sInNvdXJjZXNDb250ZW50IjpbIlwiVFVSQk9QQUNLIHsgdHJhbnNpdGlvbjogbmV4dC1zc3IgfVwiO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuLy8gV2UgaW5qZWN0IHRoZSB0cmVlIGFuZCBwYWdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgdHJlZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJ2Rhc2hib2FyZCcsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJ2NvbnRyYWN0cycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9nYW5kYW54aWFuZ3poYW8vRGVza3RvcC/lkIjlkIzmtYHovazlrqHmibnns7vnu58vc3JjL2FwcC9kYXNoYm9hcmQvY29udHJhY3RzL3BhZ2UuanNcIiksIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2Rhc2hib2FyZC9jb250cmFjdHMvcGFnZS5qc1wiXSxcbiAgICAgICAgICBcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgXVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAnbGF5b3V0JzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2Rhc2hib2FyZC9sYXlvdXQuanNcIiksIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2Rhc2hib2FyZC9sYXlvdXQuanNcIl0sXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgXVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAnbGF5b3V0JzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2xheW91dC5qc1wiKSwgXCIvVXNlcnMvZ2FuZGFueGlhbmd6aGFvL0Rlc2t0b3Av5ZCI5ZCM5rWB6L2s5a6h5om557O757ufL3NyYy9hcHAvbGF5b3V0LmpzXCJdLFxuJ25vdC1mb3VuZCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIiksIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiXSxcbiAgICAgICAgXG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LmNoaWxkcmVuO1xuY29uc3QgcGFnZXMgPSBbXCIvVXNlcnMvZ2FuZGFueGlhbmd6aGFvL0Rlc2t0b3Av5ZCI5ZCM5rWB6L2s5a6h5om557O757ufL3NyYy9hcHAvZGFzaGJvYXJkL2NvbnRyYWN0cy9wYWdlLmpzXCJdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvZGFzaGJvYXJkL2NvbnRyYWN0cy9wYWdlXCI7XG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIjtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFBhZ2VSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgIHBhZ2U6IFwiL2Rhc2hib2FyZC9jb250cmFjdHMvcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvZGFzaGJvYXJkL2NvbnRyYWN0c1wiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiLFxuICAgICAgICBhcHBQYXRoczogW11cbiAgICB9LFxuICAgIHVzZXJsYW5kOiB7XG4gICAgICAgIGxvYWRlclRyZWU6IHRyZWVcbiAgICB9XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2Fpage&page=%2Fdashboard%2Fcontracts%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(ssr)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2FuZGFueGlhbmd6aGFvJTJGRGVza3RvcCUyRiVFNSU5MCU4OCVFNSU5MCU4QyVFNiVCNSU4MSVFOCVCRCVBQyVFNSVBRSVBMSVFNiU4OSVCOSVFNyVCMyVCQiVFNyVCQiU5RiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmFwcC1yb3V0ZXIuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdhbmRhbnhpYW5nemhhbyUyRkRlc2t0b3AlMkYlRTUlOTAlODglRTUlOTAlOEMlRTYlQjUlODElRTglQkQlQUMlRTUlQUUlQTElRTYlODklQjklRTclQjMlQkIlRTclQkIlOUYlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZub3QtZm91bmQtYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQW1JO0FBQ25JO0FBQ0Esb09BQW9JO0FBQ3BJO0FBQ0EsME9BQXVJO0FBQ3ZJO0FBQ0Esd09BQXNJO0FBQ3RJO0FBQ0Esa1BBQTJJO0FBQzNJO0FBQ0Esc1FBQXFKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLz80ODQ2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9nYW5kYW54aWFuZ3poYW8vRGVza3RvcC/lkIjlkIzmtYHovazlrqHmibnns7vnu58vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2FuZGFueGlhbmd6aGFvL0Rlc2t0b3Av5ZCI5ZCM5rWB6L2s5a6h5om557O757ufL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanNcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Fcontracts%2Fpage.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Fcontracts%2Fpage.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/contracts/page.js */ \"(ssr)/./src/app/dashboard/contracts/page.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2FuZGFueGlhbmd6aGFvJTJGRGVza3RvcCUyRiVFNSU5MCU4OCVFNSU5MCU4QyVFNiVCNSU4MSVFOCVCRCVBQyVFNSVBRSVBMSVFNiU4OSVCOSVFNyVCMyVCQiVFNyVCQiU5RiUyRnNyYyUyRmFwcCUyRmRhc2hib2FyZCUyRmNvbnRyYWN0cyUyRnBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLHNMQUFnSCIsInNvdXJjZXMiOlsid2VicGFjazovL2NvbnRyYWN0LWFwcHJvdmFsLXN5c3RlbS8/NDgzYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9nYW5kYW54aWFuZ3poYW8vRGVza3RvcC/lkIjlkIzmtYHovazlrqHmibnns7vnu58vc3JjL2FwcC9kYXNoYm9hcmQvY29udHJhY3RzL3BhZ2UuanNcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Fcontracts%2Fpage.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Flayout.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Flayout.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/layout.js */ \"(ssr)/./src/app/dashboard/layout.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2FuZGFueGlhbmd6aGFvJTJGRGVza3RvcCUyRiVFNSU5MCU4OCVFNSU5MCU4QyVFNiVCNSU4MSVFOCVCRCVBQyVFNSVBRSVBMSVFNiU4OSVCOSVFNyVCMyVCQiVFNyVCQiU5RiUyRnNyYyUyRmFwcCUyRmRhc2hib2FyZCUyRmxheW91dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsc0tBQXdHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLz8wM2MzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2Rhc2hib2FyZC9sYXlvdXQuanNcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Flayout.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (() => { /***/ }), /***/ "(ssr)/./src/app/dashboard/contracts/page.js": /*!*********************************************!*\ !*** ./src/app/dashboard/contracts/page.js ***! \*********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ContractsPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../layout */ \"(ssr)/./src/app/dashboard/layout.js\");\n/* harmony import */ var _lib_auth_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/auth-client */ \"(ssr)/./src/lib/auth-client.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nconst PAGE_SIZE = 10;\nfunction Toast({ message, type, onClose }) {\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const timer = setTimeout(onClose, 3000);\n return ()=>clearTimeout(timer);\n }, [\n onClose\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `toast toast-${type}`,\n children: [\n type === \"success\" ? \"✅\" : type === \"error\" ? \"❌\" : \"ℹ️\",\n \" \",\n message\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\nfunction ContractsPage() {\n const user = (0,_layout__WEBPACK_IMPORTED_MODULE_3__.useUser)();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n // 筛选状态\n const [filters, setFilters] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n status: \"\",\n date_from: \"\",\n date_to: \"\",\n search: \"\"\n });\n const [appliedFilters, setAppliedFilters] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n status: \"\",\n date_from: \"\",\n date_to: \"\",\n search: \"\"\n });\n // 数据状态\n const [contracts, setContracts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [page, setPage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(1);\n const [total, setTotal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [exporting, setExporting] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [toasts, setToasts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const showToast = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((message, type = \"info\")=>{\n const id = Date.now();\n setToasts((prev)=>[\n ...prev,\n {\n id,\n message,\n type\n }\n ]);\n }, []);\n const removeToast = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((id)=>{\n setToasts((prev)=>prev.filter((t)=>t.id !== id));\n }, []);\n // 构建查询参数\n const buildQuery = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((pageNum, filterObj)=>{\n const params = new URLSearchParams();\n params.set(\"page\", pageNum);\n params.set(\"page_size\", PAGE_SIZE);\n if (filterObj.status) params.set(\"status\", filterObj.status);\n if (filterObj.date_from) params.set(\"date_from\", filterObj.date_from);\n if (filterObj.date_to) params.set(\"date_to\", filterObj.date_to);\n if (filterObj.search) params.set(\"search\", filterObj.search);\n return params.toString();\n }, []);\n // 加载数据\n const loadContracts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async (pageNum = 1, filterObj = appliedFilters)=>{\n setLoading(true);\n try {\n const query = buildQuery(pageNum, filterObj);\n const res = await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(`/api/contracts?${query}`);\n const data = await res.json();\n setContracts(data.contracts || []);\n setTotal(data.total || 0);\n setPage(pageNum);\n } catch (err) {\n showToast(\"加载合同列表失败\", \"error\");\n } finally{\n setLoading(false);\n }\n }, [\n appliedFilters,\n buildQuery,\n showToast\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n loadContracts(1, appliedFilters);\n }, []);\n // 查询\n const handleSearch = ()=>{\n setAppliedFilters({\n ...filters\n });\n loadContracts(1, {\n ...filters\n });\n };\n // 重置\n const handleReset = ()=>{\n const empty = {\n status: \"\",\n date_from: \"\",\n date_to: \"\",\n search: \"\"\n };\n setFilters(empty);\n setAppliedFilters(empty);\n loadContracts(1, empty);\n };\n // 导出\n const handleExport = async ()=>{\n setExporting(true);\n try {\n const params = new URLSearchParams();\n if (appliedFilters.status) params.set(\"status\", appliedFilters.status);\n if (appliedFilters.date_from) params.set(\"date_from\", appliedFilters.date_from);\n if (appliedFilters.date_to) params.set(\"date_to\", appliedFilters.date_to);\n if (appliedFilters.search) params.set(\"search\", appliedFilters.search);\n const res = await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(`/api/contracts/export?${params.toString()}`);\n if (!res.ok) throw new Error(\"导出失败\");\n const blob = await res.blob();\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `合同列表_${new Date().toLocaleDateString(\"zh-CN\")}.xlsx`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n showToast(\"导出成功\", \"success\");\n } catch (err) {\n showToast(\"导出失败,请稍后重试\", \"error\");\n } finally{\n setExporting(false);\n }\n };\n const formatDate = (dateStr)=>{\n if (!dateStr) return \"-\";\n return new Date(dateStr).toLocaleDateString(\"zh-CN\");\n };\n const formatMoney = (val)=>{\n if (val == null) return \"-\";\n return new Intl.NumberFormat(\"zh-CN\", {\n style: \"currency\",\n currency: \"CNY\"\n }).format(val);\n };\n const totalPages = Math.ceil(total / PAGE_SIZE);\n // 生成分页页码\n const getPageNumbers = ()=>{\n const pages = [];\n const maxVisible = 5;\n let start = Math.max(1, page - Math.floor(maxVisible / 2));\n let end = Math.min(totalPages, start + maxVisible - 1);\n if (end - start + 1 < maxVisible) {\n start = Math.max(1, end - maxVisible + 1);\n }\n for(let i = start; i <= end; i++){\n pages.push(i);\n }\n return pages;\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-fadeIn\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"toast-container\",\n children: toasts.map((t)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Toast, {\n message: t.message,\n type: t.type,\n onClose: ()=>removeToast(t.id)\n }, t.id, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 165,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 163,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"page-header\",\n children: [\n /*#__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)(\"h1\", {\n className: \"page-title\",\n children: \"合同流转\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 171,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"page-subtitle\",\n children: \"管理和查看所有合同信息\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 172,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 170,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n gap: \"12px\"\n },\n children: [\n user?.role === \"employee\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-primary\",\n onClick: ()=>router.push(\"/dashboard/contracts/create\"),\n children: \"➕ 新建合同\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 176,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-outline\",\n onClick: handleExport,\n disabled: exporting,\n children: exporting ? \"⏳ 导出中...\" : \"\\uD83D\\uDCE5 导出 Excel\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 183,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 174,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 169,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"filter-bar\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: \"form-select\",\n value: filters.status,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n status: e.target.value\n })),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"\",\n children: \"全部状态\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 200,\n columnNumber: 11\n }, this),\n Object.entries(_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.STATUS_NAMES).map(([key, label])=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: key,\n children: label\n }, key, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 202,\n columnNumber: 13\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 195,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"form-input\",\n value: filters.date_from,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n date_from: e.target.value\n })),\n placeholder: \"开始日期\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 206,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"form-input\",\n value: filters.date_to,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n date_to: e.target.value\n })),\n placeholder: \"结束日期\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 214,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: \"form-input\",\n value: filters.search,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n search: e.target.value\n })),\n placeholder: \"搜索项目名称 / 合作单位...\",\n onKeyDown: (e)=>{\n if (e.key === \"Enter\") handleSearch();\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 222,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"filter-actions\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-primary btn-sm\",\n onClick: handleSearch,\n children: \"\\uD83D\\uDD0D 查询\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 232,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-ghost btn-sm\",\n onClick: handleReset,\n children: \"\\uD83D\\uDD04 重置\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 235,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 231,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 194,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n style: {\n padding: 0\n },\n children: loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"loading-overlay\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"loading-spinner\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 246,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 245,\n columnNumber: 13\n }, this) : contracts.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"empty-state\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"empty-state-icon\",\n children: \"\\uD83D\\uDCED\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 250,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"empty-state-text\",\n children: \"暂无合同数据\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 251,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 249,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"table-container\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n className: \"data-table\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"经办日期\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 258,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"项目名称\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 259,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"合作单位\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 260,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"合同金额\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 261,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"收/付款\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 263,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"状态\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 264,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"操作\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 265,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 257,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 256,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n children: contracts.map((c)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: formatDate(c.created_at)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 271,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: `/dashboard/contracts/${c.id}`,\n onClick: (e)=>{\n e.preventDefault();\n router.push(`/dashboard/contracts/${c.id}`);\n },\n style: {\n fontWeight: 600,\n color: \"var(--primary)\"\n },\n children: c.project_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 273,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 272,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: c.partner_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 281,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n style: {\n fontWeight: 600,\n color: \"var(--text-dark)\"\n },\n children: formatMoney(c.contract_amount)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 282,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: c.payment_type === \"receive\" ? \"收款\" : c.payment_type === \"pay\" ? \"付款\" : \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 286,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `status-badge status-${c.status}`,\n children: _lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.STATUS_NAMES[c.status] || c.status\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 288,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 287,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-outline btn-sm\",\n onClick: ()=>router.push(`/dashboard/contracts/${c.id}`),\n children: \"查看\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 293,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 292,\n columnNumber: 23\n }, this)\n ]\n }, c.id, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 270,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 268,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 255,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 254,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 243,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 242,\n columnNumber: 7\n }, this),\n totalPages > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pagination\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"pagination-btn\",\n disabled: page <= 1,\n onClick: ()=>loadContracts(page - 1, appliedFilters),\n children: \"‹ 上一页\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 312,\n columnNumber: 11\n }, this),\n getPageNumbers().map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: `pagination-btn ${p === page ? \"active\" : \"\"}`,\n onClick: ()=>loadContracts(p, appliedFilters),\n children: p\n }, p, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 321,\n columnNumber: 13\n }, this)),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"pagination-btn\",\n disabled: page >= totalPages,\n onClick: ()=>loadContracts(page + 1, appliedFilters),\n children: \"下一页 ›\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 330,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n marginLeft: \"12px\",\n fontSize: \"13px\",\n color: \"var(--gray-500)\"\n },\n children: [\n \"共 \",\n total,\n \" 条\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 338,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 311,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 161,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL2Rhc2hib2FyZC9jb250cmFjdHMvcGFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDeUQ7QUFDYjtBQUNSO0FBQ21EO0FBRXZGLE1BQU1TLFlBQVk7QUFFbEIsU0FBU0MsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFO0lBQ3ZDWixnREFBU0EsQ0FBQztRQUNSLE1BQU1hLFFBQVFDLFdBQVdGLFNBQVM7UUFDbEMsT0FBTyxJQUFNRyxhQUFhRjtJQUM1QixHQUFHO1FBQUNEO0tBQVE7SUFDWixxQkFDRSw4REFBQ0k7UUFBSUMsV0FBVyxDQUFDLFlBQVksRUFBRU4sS0FBSyxDQUFDOztZQUNsQ0EsU0FBUyxZQUFZLE1BQU1BLFNBQVMsVUFBVSxNQUFNO1lBQUs7WUFBRUQ7Ozs7Ozs7QUFHbEU7QUFFZSxTQUFTUTtJQUN0QixNQUFNQyxPQUFPaEIsZ0RBQU9BO0lBQ3BCLE1BQU1pQixTQUFTbEIsMERBQVNBO0lBRXhCLE9BQU87SUFDUCxNQUFNLENBQUNtQixTQUFTQyxXQUFXLEdBQUd2QiwrQ0FBUUEsQ0FBQztRQUNyQ3dCLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLFFBQVE7SUFDVjtJQUNBLE1BQU0sQ0FBQ0MsZ0JBQWdCQyxrQkFBa0IsR0FBRzdCLCtDQUFRQSxDQUFDO1FBQ25Ed0IsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsUUFBUTtJQUNWO0lBRUEsT0FBTztJQUNQLE1BQU0sQ0FBQ0csV0FBV0MsYUFBYSxHQUFHL0IsK0NBQVFBLENBQUMsRUFBRTtJQUM3QyxNQUFNLENBQUNnQyxTQUFTQyxXQUFXLEdBQUdqQywrQ0FBUUEsQ0FBQztJQUN2QyxNQUFNLENBQUNrQyxNQUFNQyxRQUFRLEdBQUduQywrQ0FBUUEsQ0FBQztJQUNqQyxNQUFNLENBQUNvQyxPQUFPQyxTQUFTLEdBQUdyQywrQ0FBUUEsQ0FBQztJQUNuQyxNQUFNLENBQUNzQyxXQUFXQyxhQUFh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LFdBQVU7d0JBQ1ZpRyxVQUFVakYsUUFBUTt3QkFDbEJnRixTQUFTLElBQU16RCxjQUFjdkIsT0FBTyxHQUFHTjtrQ0FDeEM7Ozs7OztvQkFJQXFFLGlCQUFpQlUsR0FBRyxDQUFDLENBQUNFLGtCQUNyQiw4REFBQ0k7NEJBRUMvRixXQUFXLENBQUMsZUFBZSxFQUFFMkYsTUFBTTNFLE9BQU8sV0FBVyxHQUFHLENBQUM7NEJBQ3pEZ0YsU0FBUyxJQUFNekQsY0FBY29ELEdBQUdqRjtzQ0FFL0JpRjsyQkFKSUE7Ozs7O2tDQVFULDhEQUFDSTt3QkFDQy9GLFdBQVU7d0JBQ1ZpRyxVQUFVakYsUUFBUTREO3dCQUNsQm9CLFNBQVMsSUFBTXpELGNBQWN2QixPQUFPLEdBQUdOO2tDQUN4Qzs7Ozs7O2tDQUlELDhEQUFDc0g7d0JBQUt2RCxPQUFPOzRCQUFFd0QsWUFBWTs0QkFBUUMsVUFBVTs0QkFBUVAsT0FBTzt3QkFBa0I7OzRCQUFHOzRCQUM1RXpHOzRCQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTXJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLy4vc3JjL2FwcC9kYXNoYm9hcmQvY29udHJhY3RzL3BhZ2UuanM/Zjc2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vbGF5b3V0JztcbmltcG9ydCB7IGF1dGhGZXRjaCwgU1RBVFVTX05BTUVTLCBST0xFX05BTUVTLCBTVEFUVVNfQ09MT1JTIH0gZnJvbSAnQC9saWIvYXV0aC1jbGllbnQnO1xuXG5jb25zdCBQQUdFX1NJWkUgPSAxMDtcblxuZnVuY3Rpb24gVG9hc3QoeyBtZXNzYWdlLCB0eXBlLCBvbkNsb3NlIH0pIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQob25DbG9zZSwgMzAwMCk7XG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lcik7XG4gIH0sIFtvbkNsb3NlXSk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2B0b2FzdCB0b2FzdC0ke3R5cGV9YH0+XG4gICAgICB7dHlwZSA9PT0gJ3N1Y2Nlc3MnID8gJ+KchScgOiB0eXBlID09PSAnZXJyb3InID8gJ+KdjCcgOiAn4oS577iPJ30ge21lc3NhZ2V9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvbnRyYWN0c1BhZ2UoKSB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKCk7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpO1xuXG4gIC8vIOetm+mAieeKtuaAgVxuICBjb25zdCBbZmlsdGVycywgc2V0RmlsdGVyc10gPSB1c2VTdGF0ZSh7XG4gICAgc3RhdHVzOiAnJyxcbiAgICBkYXRlX2Zyb206ICcnLFxuICAgIGRhdGVfdG86ICcnLFxuICAgIHNlYXJjaDogJycsXG4gIH0pO1xuICBjb25zdCBbYXBwbGllZEZpbHRlcnMsIHNldEFwcGxpZWRGaWx0ZXJzXSA9IHVzZVN0YXRlKHtcbiAgICBzdGF0dXM6ICcnLFxuICAgIGRhdGVfZnJvbTogJycsXG4gICAgZGF0ZV90bzogJycsXG4gICAgc2VhcmNoOiAnJyxcbiAgfSk7XG5cbiAgLy8g5pWw5o2u54q25oCBXG4gIGNvbnN0IFtjb250cmFjdHMsIHNldENvbnRyYWN0c10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbcGFnZSwgc2V0UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgY29uc3QgW3RvdGFsLCBzZXRUb3RhbF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2V4cG9ydGluZywgc2V0RXhwb3J0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3RvYXN0cywgc2V0VG9hc3RzXSA9IHVzZVN0YXRlKFtdKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSB1c2VDYWxsYmFjaygobWVzc2FnZSwgdHlwZSA9ICdpbmZvJykgPT4ge1xuICAgIGNvbnN0IGlkID0gRGF0ZS5ub3coKTtcbiAgICBzZXRUb2FzdHMocHJldiA9PiBbLi4ucHJldiwgeyBpZCwgbWVzc2FnZSwgdHlwZSB9XSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCByZW1vdmVUb2FzdCA9IHVzZUNhbGxiYWNrKChpZCkgPT4ge1xuICAgIHNldFRvYXN0cyhwcmV2ID0+IHByZXYuZmlsdGVyKHQgPT4gdC5pZCAhPT0gaWQpKTtcbiAgfSwgW10pO1xuXG4gIC8vIOaehOW7uuafpeivouWPguaVsFxuICBjb25zdCBidWlsZFF1ZXJ5ID0gdXNlQ2FsbGJhY2soKHBhZ2VOdW0sIGZpbHRlck9iaikgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuc2V0KCdwYWdlJywgcGFnZU51bSk7XG4gICAgcGFyYW1zLnNldCgncGFnZV9zaXplJywgUEFHRV9TSVpFKTtcbiAgICBpZiAoZmlsdGVyT2JqLnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgZmlsdGVyT2JqLnN0YXR1cyk7XG4gICAgaWYgKGZpbHRlck9iai5kYXRlX2Zyb20pIHBhcmFtcy5zZXQoJ2RhdGVfZnJvbScsIGZpbHRlck9iai5kYXRlX2Zyb20pO1xuICAgIGlmIChmaWx0ZXJPYmouZGF0ZV90bykgcGFyYW1zLnNldCgnZGF0ZV90bycsIGZpbHRlck9iai5kYXRlX3RvKTtcbiAgICBpZiAoZmlsdGVyT2JqLnNlYXJjaCkgcGFyYW1zLnNldCgnc2VhcmNoJywgZmlsdGVyT2JqLnNlYXJjaCk7XG4gICAgcmV0dXJuIHBhcmFtcy50b1N0cmluZygpO1xuICB9LCBbXSk7XG5cbiAgLy8g5Yqg6L295pWw5o2uXG4gIGNvbnN0IGxvYWRDb250cmFjdHMgPSB1c2VDYWxsYmFjayhhc3luYyAocGFnZU51bSA9IDEsIGZpbHRlck9iaiA9IGFwcGxpZWRGaWx0ZXJzKSA9PiB7XG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBidWlsZFF1ZXJ5KHBhZ2VOdW0sIGZpbHRlck9iaik7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBhdXRoRmV0Y2goYC9hcGkvY29udHJhY3RzPyR7cXVlcnl9YCk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICAgIHNldENvbnRyYWN0cyhkYXRhLmNvbnRyYWN0cyB8fCBbXSk7XG4gICAgICBzZXRUb3RhbChkYXRhLnRvdGFsIHx8IDApO1xuICAgICAgc2V0UGFnZShwYWdlTnVtKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNob3dUb2FzdCgn5Yqg6L295ZCI5ZCM5YiX6KGo5aSx6LSlJywgJ2Vycm9yJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfSwgW2FwcGxpZWRGaWx0ZXJzLCBidWlsZFF1ZXJ5LCBzaG93VG9hc3RdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvYWRDb250cmFjdHMoMSwgYXBwbGllZEZpbHRlcnMpO1xuICB9LCBbXSk7XG5cbiAgLy8g5p+l6K+iXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICBzZXRBcHBsaWVkRmlsdGVycyh7IC4uLmZpbHRlcnMgfSk7XG4gICAgbG9hZENvbnRyYWN0cygxLCB7IC4uLmZpbHRlcnMgfSk7XG4gIH07XG5cbiAgLy8g6YeN572uXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIGNvbnN0IGVtcHR5ID0geyBzdGF0dXM6ICcnLCBkYXRlX2Zyb206ICcnLCBkYXRlX3RvOiAnJywgc2VhcmNoOiAnJyB9O1xuICAgIHNldEZpbHRlcnMoZW1wdHkpO1xuICAgIHNldEFwcGxpZWRGaWx0ZXJzKGVtcHR5KTtcbiAgICBsb2FkQ29udHJhY3RzKDEsIGVtcHR5KTtcbiAgfTtcblxuICAvLyDlr7zlh7pcbiAgY29uc3QgaGFuZGxlRXhwb3J0ID0gYXN5bmMgKCkgPT4ge1xuICAgIHNldEV4cG9ydGluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgaWYgKGFwcGxpZWRGaWx0ZXJzLnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgYXBwbGllZEZpbHRlcnMuc3RhdHVzKTtcbiAgICAgIGlmIChhcHBsaWVkRmlsdGVycy5kYXRlX2Zyb20pIHBhcmFtcy5zZXQoJ2RhdGVfZnJvbScsIGFwcGxpZWRGaWx0ZXJzLmRhdGVfZnJvbSk7XG4gICAgICBpZiAoYXBwbGllZEZpbHRlcnMuZGF0ZV90bykgcGFyYW1zLnNldCgnZGF0ZV90bycsIGFwcGxpZWRGaWx0ZXJzLmRhdGVfdG8pO1xuICAgICAgaWYgKGFwcGxpZWRGaWx0ZXJzLnNlYXJjaCkgcGFyYW1zLnNldCgnc2VhcmNoJywgYXBwbGllZEZpbHRlcnMuc2VhcmNoKTtcblxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYXV0aEZldGNoKGAvYXBpL2NvbnRyYWN0cy9leHBvcnQ/JHtwYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ+WvvOWHuuWksei0pScpO1xuXG4gICAgICBjb25zdCBibG9iID0gYXdhaXQgcmVzLmJsb2IoKTtcbiAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgIGEuZG93bmxvYWQgPSBg5ZCI5ZCM5YiX6KGoXyR7bmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ3poLUNOJyl9Lnhsc3hgO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgIGEuY2xpY2soKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgc2hvd1RvYXN0KCflr7zlh7rmiJDlip8nLCAnc3VjY2VzcycpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2hvd1RvYXN0KCflr7zlh7rlpLHotKXvvIzor7fnqI3lkI7ph43or5UnLCAnZXJyb3InKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0RXhwb3J0aW5nKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyKSA9PiB7XG4gICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gJy0nO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlU3RyKS50b0xvY2FsZURhdGVTdHJpbmcoJ3poLUNOJyk7XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0TW9uZXkgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSByZXR1cm4gJy0nO1xuICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ3poLUNOJywgeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6ICdDTlknIH0pLmZvcm1hdCh2YWwpO1xuICB9O1xuXG4gIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodG90YWwgLyBQQUdFX1NJWkUpO1xuXG4gIC8vIOeUn+aIkOWIhumhtemhteeggVxuICBjb25zdCBnZXRQYWdlTnVtYmVycyA9ICgpID0+IHtcbiAgICBjb25zdCBwYWdlcyA9IFtdO1xuICAgIGNvbnN0IG1heFZpc2libGUgPSA1O1xuICAgIGxldCBzdGFydCA9IE1hdGgubWF4KDEsIHBhZ2UgLSBNYXRoLmZsb29yKG1heFZpc2libGUgLyAyKSk7XG4gICAgbGV0IGVuZCA9IE1hdGgubWluKHRvdGFsUGFnZXMsIHN0YXJ0ICsgbWF4VmlzaWJsZSAtIDEpO1xuICAgIGlmIChlbmQgLSBzdGFydCArIDEgPCBtYXhWaXNpYmxlKSB7XG4gICAgICBzdGFydCA9IE1hdGgubWF4KDEsIGVuZCAtIG1heFZpc2libGUgKyAxKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICBwYWdlcy5wdXNoKGkpO1xuICAgIH1cbiAgICByZXR1cm4gcGFnZXM7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtZmFkZUluXCI+XG4gICAgICB7LyogVG9hc3Qg6YCa55+lICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0b2FzdC1jb250YWluZXJcIj5cbiAgICAgICAge3RvYXN0cy5tYXAodCA9PiAoXG4gICAgICAgICAgPFRvYXN0IGtleT17dC5pZH0gbWVzc2FnZT17dC5tZXNzYWdlfSB0eXBlPXt0LnR5cGV9IG9uQ2xvc2U9eygpID0+IHJlbW92ZVRvYXN0KHQuaWQpfSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInBhZ2UtdGl0bGVcIj7lkIjlkIzmtYHovaw8L2gxPlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInBhZ2Utc3VidGl0bGVcIj7nrqHnkIblkozmn6XnnIvmiYDmnInlkIjlkIzkv6Hmga88L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcgfX0+XG4gICAgICAgICAge3VzZXI/LnJvbGUgPT09ICdlbXBsb3llZScgJiYgKFxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiByb3V0ZXIucHVzaCgnL2Rhc2hib2FyZC9jb250cmFjdHMvY3JlYXRlJyl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOKelSDmlrDlu7rlkIjlkIxcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1vdXRsaW5lXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cG9ydH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtleHBvcnRpbmd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2V4cG9ydGluZyA/ICfij7Mg5a+85Ye65LitLi4uJyA6ICfwn5OlIOWvvOWHuiBFeGNlbCd9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiDnrZvpgInmoI8gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1iYXJcIj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tc2VsZWN0XCJcbiAgICAgICAgICB2YWx1ZT17ZmlsdGVycy5zdGF0dXN9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRGaWx0ZXJzKHByZXYgPT4gKHsgLi4ucHJldiwgc3RhdHVzOiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+5YWo6YOo54q25oCBPC9vcHRpb24+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKFNUQVRVU19OQU1FUykubWFwKChba2V5LCBsYWJlbF0pID0+IChcbiAgICAgICAgICAgIDxvcHRpb24ga2V5PXtrZXl9IHZhbHVlPXtrZXl9PntsYWJlbH08L29wdGlvbj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9zZWxlY3Q+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0taW5wdXRcIlxuICAgICAgICAgIHZhbHVlPXtmaWx0ZXJzLmRhdGVfZnJvbX1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEZpbHRlcnMocHJldiA9PiAoeyAuLi5wcmV2LCBkYXRlX2Zyb206IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIuW8gOWni+aXpeacn1wiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0taW5wdXRcIlxuICAgICAgICAgIHZhbHVlPXtmaWx0ZXJzLmRhdGVfdG99XG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRGaWx0ZXJzKHByZXYgPT4gKHsgLi4ucHJldiwgZGF0ZV90bzogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1pbnB1dFwiXG4gICAgICAgICAgdmFsdWU9e2ZpbHRlcnMuc2VhcmNofVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0RmlsdGVycyhwcmV2ID0+ICh7IC4uLnByZXYsIHNlYXJjaDogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwi5pCc57Si6aG555uu5ZCN56ewIC8g5ZCI5L2c5Y2V5L2NLi4uXCJcbiAgICAgICAgICBvbktleURvd249eyhlKSA9PiB7IGlmIChlLmtleSA9PT0gJ0VudGVyJykgaGFuZGxlU2VhcmNoKCk7IH19XG4gICAgICAgIC8+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0+XG4gICAgICAgICAgICDwn5SNIOafpeivolxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGJ0bi1naG9zdCBidG4tc21cIiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+XG4gICAgICAgICAgICDwn5SEIOmHjee9rlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Lyog5pWw5o2u6KGo5qC8ICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCIgc3R5bGU9e3sgcGFkZGluZzogMCB9fT5cbiAgICAgICAgICB7bG9hZGluZyA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZy1vdmVybGF5XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZy1zcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogY29udHJhY3RzLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlbXB0eS1zdGF0ZS1pY29uXCI+8J+TrTwvZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJlbXB0eS1zdGF0ZS10ZXh0XCI+5pqC5peg5ZCI5ZCM5pWw5o2uPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFibGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJkYXRhLXRhYmxlXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGg+57uP5Yqe5pel5pyfPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoPumhueebruWQjeensDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aD7lkIjkvZzljZXkvY08L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGg+5ZCI5ZCM6YeR6aKdPC90aD5cbiAgICAgICAgICAgICAgICAgICAgey8qIDx0aD7pooTkvLDliKnmtqY8L3RoPiAqL31cbiAgICAgICAgICAgICAgICAgICAgPHRoPuaUti/ku5jmrL48L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGg+54q25oCBPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoPuaTjeS9nDwvdGg+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAge2NvbnRyYWN0cy5tYXAoKGMpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17Yy5pZH0+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPntmb3JtYXREYXRlKGMuY3JlYXRlZF9hdCl9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2Rhc2hib2FyZC9jb250cmFjdHMvJHtjLmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7IGUucHJldmVudERlZmF1bHQoKTsgcm91dGVyLnB1c2goYC9kYXNoYm9hcmQvY29udHJhY3RzLyR7Yy5pZH1gKTsgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgZm9udFdlaWdodDogNjAwLCBjb2xvcjogJ3ZhcigtLXByaW1hcnkpJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Yy5wcm9qZWN0X25hbWUgfHwgJy0nfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPntjLnBhcnRuZXJfbmFtZSB8fCAnLSd9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3sgZm9udFdlaWdodDogNjAwLCBjb2xvcjogJ3ZhcigtLXRleHQtZGFyayknIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAge2Zvcm1hdE1vbmV5KGMuY29udHJhY3RfYW1vdW50KX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGQ+e2MucGF5bWVudF90eXBlID09PSAncGF5JyA/ICctJyA6IGZvcm1hdE1vbmV5KGMuZXN0aW1hdGVkX3Byb2ZpdCl9PC90ZD4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPntjLnBheW1lbnRfdHlwZSA9PT0gJ3JlY2VpdmUnID8gJ+aUtuasvicgOiBjLnBheW1lbnRfdHlwZSA9PT0gJ3BheScgPyAn5LuY5qy+JyA6ICctJ308L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YHN0YXR1cy1iYWRnZSBzdGF0dXMtJHtjLnN0YXR1c31gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge1NUQVRVU19OQU1FU1tjLnN0YXR1c10gfHwgYy5zdGF0dXN9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tb3V0bGluZSBidG4tc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiByb3V0ZXIucHVzaChgL2Rhc2hib2FyZC9jb250cmFjdHMvJHtjLmlkfWApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICDmn6XnnItcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIOWIhumhtSAqL31cbiAgICAgIHt0b3RhbFBhZ2VzID4gMCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFnaW5hdGlvblwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInBhZ2luYXRpb24tYnRuXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtwYWdlIDw9IDF9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBsb2FkQ29udHJhY3RzKHBhZ2UgLSAxLCBhcHBsaWVkRmlsdGVycyl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAg4oC5IOS4iuS4gOmhtVxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAge2dldFBhZ2VOdW1iZXJzKCkubWFwKChwKSA9PiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGtleT17cH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcGFnaW5hdGlvbi1idG4gJHtwID09PSBwYWdlID8gJ2FjdGl2ZScgOiAnJ31gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBsb2FkQ29udHJhY3RzKHAsIGFwcGxpZWRGaWx0ZXJzKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3B9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICApKX1cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInBhZ2luYXRpb24tYnRuXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtwYWdlID49IHRvdGFsUGFnZXN9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBsb2FkQ29udHJhY3RzKHBhZ2UgKyAxLCBhcHBsaWVkRmlsdGVycyl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAg5LiL5LiA6aG1IOKAulxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgbWFyZ2luTGVmdDogJzEycHgnLCBmb250U2l6ZTogJzEzcHgnLCBjb2xvcjogJ3ZhcigtLWdyYXktNTAwKScgfX0+XG4gICAgICAgICAgICDlhbEge3RvdGFsfSDmnaFcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwidXNlUm91dGVyIiwidXNlVXNlciIsImF1dGhGZXRjaCIsIlNUQVRVU19OQU1FUyIsIlJPTEVfTkFNRVMiLCJTVEFUVVNfQ09MT1JTIiwiUEFHRV9TSVpFIiwiVG9hc3QiLCJtZXNzYWdlIiwidHlwZSIsIm9uQ2xvc2UiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJkaXYiLCJjbGFzc05hbWUiLCJDb250cmFjdHNQYWdlIiwidXNlciIsInJvdXRlciIsImZpbHRlcnMiLCJzZXRGaWx0ZXJzIiwic3RhdHVzIiwiZGF0ZV9mcm9tIiwiZGF0ZV90byIsInNlYXJjaCIsImFwcGxpZWRGaWx0ZXJzIiwic2V0QXBwbGllZEZpbHRlcnMiLCJjb250cmFjdHMiLCJzZXRDb250cmFjdHMiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsInBhZ2UiLCJzZXRQYWdlIiwidG90YWwiLCJzZXRUb3RhbCIsImV4cG9ydGluZyIsInNldEV4cG9ydGluZyIsInRvYXN0cyIsInNldFRvYXN0cyIsInNob3dUb2FzdCIsImlkIiwiRGF0ZSIsIm5vdyIsInByZXYiLCJyZW1vdmVUb2FzdCIsImZpbHRlciIsInQiLCJidWlsZFF1ZXJ5IiwicGFnZU51bSIsImZpbHRlck9iaiIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNldCIsInRvU3RyaW5nIiwibG9hZENvbnRyYWN0cyIsInF1ZXJ5IiwicmVzIiwiZGF0YSIsImpzb24iLCJlcnIiLCJoYW5kbGVTZWFyY2giLCJoYW5kbGVSZXNldCIsImVtcHR5IiwiaGFuZGxlRXhwb3J0Iiwib2siLCJFcnJvciIsImJsb2IiLCJ1cmwiLCJ3aW5kb3ciLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJhIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsImRvd25sb2FkIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsInJldm9rZU9iamVjdFVSTCIsImZvcm1hdERhdGUiLCJkYXRlU3RyIiwiZm9ybWF0TW9uZXkiLCJ2YWwiLCJJbnRsIiwiTnVtYmVyRm9ybWF0Iiwic3R5bGUiLCJjdXJyZW5jeSIsImZvcm1hdCIsInRvdGFsUGFnZXMiLCJNYXRoIiwiY2VpbCIsImdldFBhZ2VOdW1iZXJzIiwicGFnZXMiLCJtYXhWaXNpYmxlIiwic3RhcnQiLCJtYXgiLCJmbG9vciIsImVuZCIsIm1pbiIsImkiLCJwdXNoIiwibWFwIiwiaDEiLCJwIiwiZGlzcGxheSIsImdhcCIsInJvbGUiLCJidXR0b24iLCJvbkNsaWNrIiwiZGlzYWJsZWQiLCJzZWxlY3QiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiZSIsInRhcmdldCIsIm9wdGlvbiIsIk9iamVjdCIsImVudHJpZXMiLCJrZXkiLCJsYWJlbCIsImlucHV0IiwicGxhY2Vob2xkZXIiLCJvbktleURvd24iLCJwYWRkaW5nIiwibGVuZ3RoIiwidGFibGUiLCJ0aGVhZCIsInRyIiwidGgiLCJ0Ym9keSIsImMiLCJ0ZCIsImNyZWF0ZWRfYXQiLCJwcmV2ZW50RGVmYXVsdCIsImZvbnRXZWlnaHQiLCJjb2xvciIsInByb2plY3RfbmFtZSIsInBhcnRuZXJfbmFtZSIsImNvbnRyYWN0X2Ftb3VudCIsInBheW1lbnRfdHlwZSIsInNwYW4iLCJtYXJnaW5MZWZ0IiwiZm9udFNpemUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/app/dashboard/contracts/page.js\n"); /***/ }), /***/ "(ssr)/./src/app/dashboard/layout.js": /*!*************************************!*\ !*** ./src/app/dashboard/layout.js ***! \*************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DashboardLayout),\n/* harmony export */ useUser: () => (/* binding */ useUser)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _lib_auth_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/auth-client */ \"(ssr)/./src/lib/auth-client.js\");\n/* harmony import */ var _dashboard_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dashboard.css */ \"(ssr)/./src/app/dashboard/dashboard.css\");\n/* __next_internal_client_entry_do_not_use__ useUser,default auto */ \n\n\n\n\nconst UserContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);\nconst useUser = ()=>(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(UserContext);\nconst ALL_MENUS = [\n {\n key: \"dashboard\",\n label: \"工作台\",\n icon: \"\\uD83D\\uDCCA\",\n path: \"/dashboard\"\n },\n {\n key: \"contracts\",\n label: \"合同流转\",\n icon: \"\\uD83D\\uDCCB\",\n path: \"/dashboard/contracts\"\n },\n {\n key: \"partners\",\n label: \"合作单位\",\n icon: \"\\uD83C\\uDFE2\",\n path: \"/dashboard/partners\"\n },\n {\n key: \"users\",\n label: \"用户管理\",\n icon: \"\\uD83D\\uDC65\",\n path: \"/dashboard/users\"\n },\n {\n key: \"departments\",\n label: \"部门管理\",\n icon: \"\\uD83C\\uDFDB️\",\n path: \"/dashboard/departments\"\n },\n {\n key: \"settings\",\n label: \"系统配置\",\n icon: \"⚙️\",\n path: \"/dashboard/settings\"\n },\n {\n key: \"permissions\",\n label: \"权限配置\",\n icon: \"\\uD83D\\uDD10\",\n path: \"/dashboard/permissions\"\n }\n];\nfunction DashboardLayout({ children }) {\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const [user, setUser] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [permissions, setPermissions] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [collapsed, setCollapsed] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const token = (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.getToken)();\n if (!token) {\n router.replace(\"/login\");\n return;\n }\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.authFetch)(\"/api/auth/me\").then((r)=>r.json()).then((data)=>{\n if (data.error) {\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.clearToken)();\n router.replace(\"/login\");\n return;\n }\n setUser(data.user);\n setPermissions(data.permissions || []);\n setLoading(false);\n }).catch(()=>{\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.clearToken)();\n router.replace(\"/login\");\n });\n }, [\n router\n ]);\n const handleLogout = ()=>{\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.clearToken)();\n router.replace(\"/login\");\n };\n const visibleMenus = ALL_MENUS.filter((menu)=>{\n if (!user) return false;\n if (user.role === \"admin\") return true;\n const perm = permissions.find((p)=>p.menu_key === menu.key);\n return perm ? perm.visible === 1 : false;\n });\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n minHeight: \"100vh\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"loading-spinner\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 66,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(UserContext.Provider, {\n value: user,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"dashboard-layout\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: `sidebar ${collapsed ? \"collapsed\" : \"\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar-header\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar-logo\",\n children: \"\\uD83D\\uDCC4\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sidebar-brand\",\n children: \"合同审批系统\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 78,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 76,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"sidebar-nav\",\n children: visibleMenus.map((menu)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: menu.path,\n className: `nav-item ${pathname === menu.path || menu.key !== \"dashboard\" && pathname.startsWith(menu.path) ? \"active\" : \"\"}`,\n onClick: (e)=>{\n e.preventDefault();\n router.push(menu.path);\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"nav-item-icon\",\n children: menu.icon\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 88,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"nav-item-text\",\n children: menu.label\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 89,\n columnNumber: 17\n }, this)\n ]\n }, menu.key, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 82,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 80,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar-footer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"sidebar-toggle\",\n onClick: ()=>setCollapsed(!collapsed),\n children: collapsed ? \"→\" : \"← 收起菜单\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 93,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 75,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `main-content ${collapsed ? \"collapsed\" : \"\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"top-header\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"header-left\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"header-title\",\n children: visibleMenus.find((m)=>pathname === m.path || m.key !== \"dashboard\" && pathname.startsWith(m.path))?.label || \"工作台\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 103,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 102,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"header-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"user-info\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"user-avatar\",\n children: user?.real_name?.[0]\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 109,\n columnNumber: 17\n }, this),\n /*#__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: \"user-name\",\n children: user?.real_name\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 111,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"user-role\",\n children: _lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.ROLE_NAMES[user?.role] || user?.role\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 112,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 110,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 108,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"logout-btn\",\n onClick: handleLogout,\n children: \"退出登录\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 115,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 107,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 101,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"page-content\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 118,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 100,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 74,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 73,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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MEIsQ0FBQUEsSUFBS2pELGFBQWFpRCxFQUFFckQsSUFBSSxJQUFLcUQsRUFBRXhELEdBQUcsS0FBSyxlQUFlTyxTQUFTMEMsVUFBVSxDQUFDTyxFQUFFckQsSUFBSSxJQUFLRixTQUFTOzs7Ozs7Ozs7Ozs4Q0FHckgsOERBQUNpQztvQ0FBSU0sV0FBVTs7c0RBQ2IsOERBQUNOOzRDQUFJTSxXQUFVOzs4REFDYiw4REFBQ047b0RBQUlNLFdBQVU7OERBQWVoQyxNQUFNaUQsV0FBVyxDQUFDLEVBQUU7Ozs7Ozs4REFDbEQsOERBQUN2Qjs7c0VBQ0MsOERBQUNBOzREQUFJTSxXQUFVO3NFQUFhaEMsTUFBTWlEOzs7Ozs7c0VBQ2xDLDhEQUFDYjs0REFBS0osV0FBVTtzRUFBYTVDLHdEQUFVLENBQUNZLE1BQU1vQixLQUFLLElBQUlwQixNQUFNb0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztzREFHakUsOERBQUMwQjs0Q0FBT2QsV0FBVTs0Q0FBYVUsU0FBUzFCO3NEQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBRzFELDhEQUFDa0M7NEJBQUtsQixXQUFVO3NDQUNibkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jb250cmFjdC1hcHByb3ZhbC1zeXN0ZW0vLi9zcmMvYXBwL2Rhc2hib2FyZC9sYXlvdXQuanM/ZjcxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUm91dGVyLCB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRUb2tlbiwgY2xlYXJUb2tlbiwgZ2V0VXNlciwgYXV0aEZldGNoLCBST0xFX05BTUVTIH0gZnJvbSAnQC9saWIvYXV0aC1jbGllbnQnO1xuaW1wb3J0ICcuL2Rhc2hib2FyZC5jc3MnO1xuXG5jb25zdCBVc2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQobnVsbCk7XG5leHBvcnQgY29uc3QgdXNlVXNlciA9ICgpID0+IHVzZUNvbnRleHQoVXNlckNvbnRleHQpO1xuXG5jb25zdCBBTExfTUVOVVMgPSBbXG4gIHsga2V5OiAnZGFzaGJvYXJkJywgbGFiZWw6ICflt6XkvZzlj7AnLCBpY29uOiAn8J+TiicsIHBhdGg6ICcvZGFzaGJvYXJkJyB9LFxuICB7IGtleTogJ2NvbnRyYWN0cycsIGxhYmVsOiAn5ZCI5ZCM5rWB6L2sJywgaWNvbjogJ/Cfk4snLCBwYXRoOiAnL2Rhc2hib2FyZC9jb250cmFjdHMnIH0sXG4gIHsga2V5OiAncGFydG5lcnMnLCBsYWJlbDogJ+WQiOS9nOWNleS9jScsIGljb246ICfwn4+iJywgcGF0aDogJy9kYXNoYm9hcmQvcGFydG5lcnMnIH0sXG4gIHsga2V5OiAndXNlcnMnLCBsYWJlbDogJ+eUqOaIt+euoeeQhicsIGljb246ICfwn5GlJywgcGF0aDogJy9kYXNoYm9hcmQvdXNlcnMnIH0sXG4gIHsga2V5OiAnZGVwYXJ0bWVudHMnLCBsYWJlbDogJ+mDqOmXqOeuoeeQhicsIGljb246ICfwn4+b77iPJywgcGF0aDogJy9kYXNoYm9hcmQvZGVwYXJ0bWVudHMnIH0sXG4gIHsga2V5OiAnc2V0dGluZ3MnLCBsYWJlbDogJ+ezu+e7n+mFjee9ricsIGljb246ICfimpnvuI8nLCBwYXRoOiAnL2Rhc2hib2FyZC9zZXR0aW5ncycgfSxcbiAgeyBrZXk6ICdwZXJtaXNzaW9ucycsIGxhYmVsOiAn5p2D6ZmQ6YWN572uJywgaWNvbjogJ/CflJAnLCBwYXRoOiAnL2Rhc2hib2FyZC9wZXJtaXNzaW9ucycgfSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERhc2hib2FyZExheW91dCh7IGNoaWxkcmVuIH0pIHtcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKTtcbiAgY29uc3QgW3VzZXIsIHNldFVzZXJdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtwZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRva2VuID0gZ2V0VG9rZW4oKTtcbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICByb3V0ZXIucmVwbGFjZSgnL2xvZ2luJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF1dGhGZXRjaCgnL2FwaS9hdXRoL21lJylcbiAgICAgIC50aGVuKHIgPT4gci5qc29uKCkpXG4gICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICBjbGVhclRva2VuKCk7XG4gICAgICAgICAgcm91dGVyLnJlcGxhY2UoJy9sb2dpbicpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRVc2VyKGRhdGEudXNlcik7XG4gICAgICAgIHNldFBlcm1pc3Npb25zKGRhdGEucGVybWlzc2lvbnMgfHwgW10pO1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICBjbGVhclRva2VuKCk7XG4gICAgICAgIHJvdXRlci5yZXBsYWNlKCcvbG9naW4nKTtcbiAgICAgIH0pO1xuICB9LCBbcm91dGVyXSk7XG5cbiAgY29uc3QgaGFuZGxlTG9nb3V0ID0gKCkgPT4ge1xuICAgIGNsZWFyVG9rZW4oKTtcbiAgICByb3V0ZXIucmVwbGFjZSgnL2xvZ2luJyk7XG4gIH07XG5cbiAgY29uc3QgdmlzaWJsZU1lbnVzID0gQUxMX01FTlVTLmZpbHRlcihtZW51ID0+IHtcbiAgICBpZiAoIXVzZXIpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodXNlci5yb2xlID09PSAnYWRtaW4nKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBwZXJtID0gcGVybWlzc2lvbnMuZmluZChwID0+IHAubWVudV9rZXkgPT09IG1lbnUua2V5KTtcbiAgICByZXR1cm4gcGVybSA/IHBlcm0udmlzaWJsZSA9PT0gMSA6IGZhbHNlO1xuICB9KTtcblxuICBpZiAobG9hZGluZykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgbWluSGVpZ2h0OiAnMTAwdmgnIH19PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFVzZXJDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1c2VyfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGFzaGJvYXJkLWxheW91dFwiPlxuICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPXtgc2lkZWJhciAke2NvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJyd9YH0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyLWxvZ29cIj7wn5OEPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzaWRlYmFyLWJyYW5kXCI+5ZCI5ZCM5a6h5om557O757ufPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwic2lkZWJhci1uYXZcIj5cbiAgICAgICAgICAgIHt2aXNpYmxlTWVudXMubWFwKG1lbnUgPT4gKFxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGtleT17bWVudS5rZXl9XG4gICAgICAgICAgICAgICAgaHJlZj17bWVudS5wYXRofVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YG5hdi1pdGVtICR7cGF0aG5hbWUgPT09IG1lbnUucGF0aCB8fCAobWVudS5rZXkgIT09ICdkYXNoYm9hcmQnICYmIHBhdGhuYW1lLnN0YXJ0c1dpdGgobWVudS5wYXRoKSkgPyAnYWN0aXZlJyA6ICcnfWB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyByb3V0ZXIucHVzaChtZW51LnBhdGgpOyB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWl0ZW0taWNvblwiPnttZW51Lmljb259PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1pdGVtLXRleHRcIj57bWVudS5sYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhci1mb290ZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwic2lkZWJhci10b2dnbGVcIiBvbkNsaWNrPXsoKSA9PiBzZXRDb2xsYXBzZWQoIWNvbGxhcHNlZCl9PlxuICAgICAgICAgICAgICB7Y29sbGFwc2VkID8gJ+KGkicgOiAn4oaQIOaUtui1t+iPnOWNlSd9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YG1haW4tY29udGVudCAke2NvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJyd9YH0+XG4gICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJ0b3AtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci1sZWZ0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHt2aXNpYmxlTWVudXMuZmluZChtID0+IHBhdGhuYW1lID09PSBtLnBhdGggfHwgKG0ua2V5ICE9PSAnZGFzaGJvYXJkJyAmJiBwYXRobmFtZS5zdGFydHNXaXRoKG0ucGF0aCkpKT8ubGFiZWwgfHwgJ+W3peS9nOWPsCd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItcmlnaHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1c2VyLWluZm9cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVzZXItYXZhdGFyXCI+e3VzZXI/LnJlYWxfbmFtZT8uWzBdfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVzZXItbmFtZVwiPnt1c2VyPy5yZWFsX25hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ1c2VyLXJvbGVcIj57Uk9MRV9OQU1FU1t1c2VyPy5yb2xlXSB8fCB1c2VyPy5yb2xlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwibG9nb3V0LWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUxvZ291dH0+6YCA5Ye655m75b2VPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJwYWdlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L21haW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Vc2VyQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlUm91dGVyIiwidXNlUGF0aG5hbWUiLCJnZXRUb2tlbiIsImNsZWFyVG9rZW4iLCJnZXRVc2VyIiwiYXV0aEZldGNoIiwiUk9MRV9OQU1FUyIsIlVzZXJDb250ZXh0IiwidXNlVXNlciIsIkFMTF9NRU5VUyIsImtleSIsImxhYmVsIiwiaWNvbiIsInBhdGgiLCJEYXNoYm9hcmRMYXlvdXQiLCJjaGlsZHJlbiIsInJvdXRlciIsInBhdGhuYW1lIiwidXNlciIsInNldFVzZXIiLCJwZXJtaXNzaW9ucyIsInNldFBlcm1pc3Npb25zIiwiY29sbGFwc2VkIiwic2V0Q29sbGFwc2VkIiwibG9hZGluZyIsInNldExvYWRpbmciLCJ0b2tlbiIsInJlcGxhY2UiLCJ0aGVuIiwiciIsImpzb24iLCJkYXRhIiwiZXJyb3IiLCJjYXRjaCIsImhhbmRsZUxvZ291dCIsInZpc2libGVNZW51cyIsImZpbHRlciIsIm1lbnUiLCJyb2xlIiwicGVybSIsImZpbmQiLCJwIiwibWVudV9rZXkiLCJ2aXNpYmxlIiwiZGl2Iiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwibWluSGVpZ2h0IiwiY2xhc3NOYW1lIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImFzaWRlIiwic3BhbiIsIm5hdiIsIm1hcCIsImEiLCJocmVmIiwic3RhcnRzV2l0aCIsIm9uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJwdXNoIiwiYnV0dG9uIiwiaGVhZGVyIiwibSIsInJlYWxfbmFtZSIsIm1haW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/app/dashboard/layout.js\n"); /***/ }), /***/ "(ssr)/./src/lib/auth-client.js": /*!********************************!*\ !*** ./src/lib/auth-client.js ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ROLE_NAMES: () => (/* binding */ ROLE_NAMES),\n/* harmony export */ STATUS_COLORS: () => (/* binding */ STATUS_COLORS),\n/* harmony export */ STATUS_NAMES: () => (/* binding */ STATUS_NAMES),\n/* harmony export */ authFetch: () => (/* binding */ authFetch),\n/* harmony export */ clearToken: () => (/* binding */ clearToken),\n/* harmony export */ getToken: () => (/* binding */ getToken),\n/* harmony export */ getUser: () => (/* binding */ getUser),\n/* harmony export */ setToken: () => (/* binding */ setToken),\n/* harmony export */ setUser: () => (/* binding */ setUser)\n/* harmony export */ });\n// 客户端认证工具函数\n// 获取存储的 Token\nfunction getToken() {\n if (true) return null;\n return localStorage.getItem(\"token\");\n}\n// 设置 Token\nfunction setToken(token) {\n localStorage.setItem(\"token\", token);\n}\n// 清除 Token\nfunction clearToken() {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"user\");\n}\n// 获取存储的用户信息\nfunction getUser() {\n if (true) return null;\n const user = localStorage.getItem(\"user\");\n return user ? JSON.parse(user) : null;\n}\n// 设置用户信息\nfunction setUser(user) {\n localStorage.setItem(\"user\", JSON.stringify(user));\n}\n// 带认证的 fetch 请求\nasync function authFetch(url, options = {}) {\n const token = getToken();\n const headers = {\n ...options.headers\n };\n if (token) {\n headers[\"Authorization\"] = `Bearer ${token}`;\n }\n // 如果不是 FormData,设置 Content-Type\n if (!(options.body instanceof FormData)) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n const response = await fetch(url, {\n ...options,\n headers\n });\n // 401 未授权,跳转登录\n if (response.status === 401) {\n clearToken();\n if (false) {}\n throw new Error(\"未登录或登录已过期\");\n }\n return response;\n}\n// 角色中文名称映射\nconst ROLE_NAMES = {\n admin: \"系统管理员\",\n employee: \"员工\",\n supervisor: \"部门主管\",\n finance: \"财务部\",\n secretary: \"秘书长\"\n};\n// 状态中文名称映射\nconst STATUS_NAMES = {\n draft: \"草稿\",\n pending_supervisor: \"待初审\",\n pending_finance: \"待财务审核\",\n pending_secretary: \"待终审\",\n approved: \"已通过\",\n rejected: \"已驳回\"\n};\n// 状态颜色映射\nconst STATUS_COLORS = {\n draft: \"#6b7280\",\n pending_supervisor: \"#3b82f6\",\n pending_finance: \"#f59e0b\",\n pending_secretary: \"#8b5cf6\",\n approved: \"#10b981\",\n rejected: \"#ef4444\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL2F1dGgtY2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLFlBQVk7QUFFWixjQUFjO0FBQ1AsU0FBU0E7SUFDZCxJQUFJLElBQWtCLEVBQWEsT0FBTztJQUMxQyxPQUFPQyxhQUFhQyxPQUFPLENBQUM7QUFDOUI7QUFFQSxXQUFXO0FBQ0osU0FBU0MsU0FBU0MsS0FBSztJQUM1QkgsYUFBYUksT0FBTyxDQUFDLFNBQVNEO0FBQ2hDO0FBRUEsV0FBVztBQUNKLFNBQVNFO0lBQ2RMLGFBQWFNLFVBQVUsQ0FBQztJQUN4Qk4sYUFBYU0sVUFBVSxDQUFDO0FBQzFCO0FBRUEsWUFBWTtBQUNMLFNBQVNDO0lBQ2QsSUFBSSxJQUFrQixFQUFhLE9BQU87SUFDMUMsTUFBTUMsT0FBT1IsYUFBYUMsT0FBTyxDQUFDO0lBQ2xDLE9BQU9PLE9BQU9DLEtBQUtDLEtBQUssQ0FBQ0YsUUFBUTtBQUNuQztBQUVBLFNBQVM7QUFDRixTQUFTRyxRQUFRSCxJQUFJO0lBQzFCUixhQUFhSSxPQUFPLENBQUMsUUFBUUssS0FBS0csU0FBUyxDQUFDSjtBQUM5QztBQUVBLGdCQUFnQjtBQUNULGVBQWVLLFVBQVVDLEdBQUcsRUFBRUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTVosUUFBUUo7SUFDZCxNQUFNaUIsVUFBVTtRQUNkLEdBQUdELFFBQVFDLE9BQU87SUFDcEI7SUFFQSxJQUFJYixPQUFPO1FBQ1RhLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLE9BQU8sRUFBRWIsTUFBTSxDQUFDO0lBQzlDO0lBRUEsZ0NBQWdDO0lBQ2hDLElBQUksQ0FBRVksQ0FBQUEsUUFBUUUsSUFBSSxZQUFZQyxRQUFPLEdBQUk7UUFDdkNGLE9BQU8sQ0FBQyxlQUFlLEdBQUc7SUFDNUI7SUFFQSxNQUFNRyxXQUFXLE1BQU1DLE1BQU1OLEtBQUs7UUFDaEMsR0FBR0MsT0FBTztRQUNWQztJQUNGO0lBRUEsZUFBZTtJQUNmLElBQUlHLFNBQVNFLE1BQU0sS0FBSyxLQUFLO1FBQzNCaEI7UUFDQSxJQUFJLEtBQWtCLEVBQWEsRUFFbEM7UUFDRCxNQUFNLElBQUlvQixNQUFNO0lBQ2xCO0lBRUEsT0FBT047QUFDVDtBQUVBLFdBQVc7QUFDSixNQUFNTyxhQUFhO0lBQ3hCQyxPQUFPO0lBQ1BDLFVBQVU7SUFDVkMsWUFBWTtJQUNaQyxTQUFTO0lBQ1RDLFdBQVc7QUFDYixFQUFFO0FBRUYsV0FBVztBQUNKLE1BQU1DLGVBQWU7SUFDMUJDLE9BQU87SUFDUEMsb0JBQW9CO0lBQ3BCQyxpQkFBaUI7SUFDakJDLG1CQUFtQjtJQUNuQkMsVUFBVTtJQUNWQyxVQUFVO0FBQ1osRUFBRTtBQUVGLFNBQVM7QUFDRixNQUFNQyxnQkFBZ0I7SUFDM0JOLE9BQU87SUFDUEMsb0JBQW9CO0lBQ3BCQyxpQkFBaUI7SUFDakJDLG1CQUFtQjtJQUNuQkMsVUFBVTtJQUNWQyxVQUFVO0FBQ1osRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL2NvbnRyYWN0LWFwcHJvdmFsLXN5c3RlbS8uL3NyYy9saWIvYXV0aC1jbGllbnQuanM/N2VjZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyDlrqLmiLfnq6/orqTor4Hlt6Xlhbflh73mlbBcblxuLy8g6I635Y+W5a2Y5YKo55qEIFRva2VuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW4oKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGw7XG4gIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW4nKTtcbn1cblxuLy8g6K6+572uIFRva2VuXG5leHBvcnQgZnVuY3Rpb24gc2V0VG9rZW4odG9rZW4pIHtcbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rva2VuJywgdG9rZW4pO1xufVxuXG4vLyDmuIXpmaQgVG9rZW5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclRva2VuKCkge1xuICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG9rZW4nKTtcbiAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3VzZXInKTtcbn1cblxuLy8g6I635Y+W5a2Y5YKo55qE55So5oi35L+h5oGvXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlcigpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgdXNlciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyJyk7XG4gIHJldHVybiB1c2VyID8gSlNPTi5wYXJzZSh1c2VyKSA6IG51bGw7XG59XG5cbi8vIOiuvue9rueUqOaIt+S/oeaBr1xuZXhwb3J0IGZ1bmN0aW9uIHNldFVzZXIodXNlcikge1xuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlcicsIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcbn1cblxuLy8g5bim6K6k6K+B55qEIGZldGNoIOivt+axglxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGF1dGhGZXRjaCh1cmwsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB0b2tlbiA9IGdldFRva2VuKCk7XG4gIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgLi4ub3B0aW9ucy5oZWFkZXJzLFxuICB9O1xuICBcbiAgaWYgKHRva2VuKSB7XG4gICAgaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYEJlYXJlciAke3Rva2VufWA7XG4gIH1cbiAgXG4gIC8vIOWmguaenOS4jeaYryBGb3JtRGF0Ye+8jOiuvue9riBDb250ZW50LVR5cGVcbiAgaWYgKCEob3B0aW9ucy5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpKSB7XG4gICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbic7XG4gIH1cblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgaGVhZGVycyxcbiAgfSk7XG5cbiAgLy8gNDAxIOacquaOiOadg++8jOi3s+i9rOeZu+W9lVxuICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgICBjbGVhclRva2VuKCk7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbG9naW4nO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ+acqueZu+W9leaIlueZu+W9leW3sui/h+acnycpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG4vLyDop5LoibLkuK3mloflkI3np7DmmKDlsIRcbmV4cG9ydCBjb25zdCBST0xFX05BTUVTID0ge1xuICBhZG1pbjogJ+ezu+e7n+euoeeQhuWRmCcsXG4gIGVtcGxveWVlOiAn5ZGY5belJyxcbiAgc3VwZXJ2aXNvcjogJ+mDqOmXqOS4u+euoScsXG4gIGZpbmFuY2U6ICfotKLliqHpg6gnLFxuICBzZWNyZXRhcnk6ICfnp5jkuabplb8nLFxufTtcblxuLy8g54q25oCB5Lit5paH5ZCN56ew5pig5bCEXG5leHBvcnQgY29uc3QgU1RBVFVTX05BTUVTID0ge1xuICBkcmFmdDogJ+iNieeovycsXG4gIHBlbmRpbmdfc3VwZXJ2aXNvcjogJ+W+heWIneWuoScsXG4gIHBlbmRpbmdfZmluYW5jZTogJ+W+hei0ouWKoeWuoeaguCcsXG4gIHBlbmRpbmdfc2VjcmV0YXJ5OiAn5b6F57uI5a6hJyxcbiAgYXBwcm92ZWQ6ICflt7LpgJrov4cnLFxuICByZWplY3RlZDogJ+W3sumps+WbnicsXG59O1xuXG4vLyDnirbmgIHpopzoibLmmKDlsIRcbmV4cG9ydCBjb25zdCBTVEFUVVNfQ09MT1JTID0ge1xuICBkcmFmdDogJyM2YjcyODAnLFxuICBwZW5kaW5nX3N1cGVydmlzb3I6ICcjM2I4MmY2JyxcbiAgcGVuZGluZ19maW5hbmNlOiAnI2Y1OWUwYicsXG4gIHBlbmRpbmdfc2VjcmV0YXJ5OiAnIzhiNWNmNicsXG4gIGFwcHJvdmVkOiAnIzEwYjk4MScsXG4gIHJlamVjdGVkOiAnI2VmNDQ0NCcsXG59O1xuIl0sIm5hbWVzIjpbImdldFRva2VuIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInNldFRva2VuIiwidG9rZW4iLCJzZXRJdGVtIiwiY2xlYXJUb2tlbiIsInJlbW92ZUl0ZW0iLCJnZXRVc2VyIiwidXNlciIsIkpTT04iLCJwYXJzZSIsInNldFVzZXIiLCJzdHJpbmdpZnkiLCJhdXRoRmV0Y2giLCJ1cmwiLCJvcHRpb25zIiwiaGVhZGVycyIsImJvZHkiLCJGb3JtRGF0YSIsInJlc3BvbnNlIiwiZmV0Y2giLCJzdGF0dXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJFcnJvciIsIlJPTEVfTkFNRVMiLCJhZG1pbiIsImVtcGxveWVlIiwic3VwZXJ2aXNvciIsImZpbmFuY2UiLCJzZWNyZXRhcnkiLCJTVEFUVVNfTkFNRVMiLCJkcmFmdCIsInBlbmRpbmdfc3VwZXJ2aXNvciIsInBlbmRpbmdfZmluYW5jZSIsInBlbmRpbmdfc2VjcmV0YXJ5IiwiYXBwcm92ZWQiLCJyZWplY3RlZCIsIlNUQVRVU19DT0xPUlMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/auth-client.js\n"); /***/ }), /***/ "(ssr)/./src/app/dashboard/dashboard.css": /*!*****************************************!*\ !*** ./src/app/dashboard/dashboard.css ***! \*****************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"abd70d2a063c\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL2Rhc2hib2FyZC9kYXNoYm9hcmQuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLy4vc3JjL2FwcC9kYXNoYm9hcmQvZGFzaGJvYXJkLmNzcz9mOGM3Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiYWJkNzBkMmEwNjNjXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/app/dashboard/dashboard.css\n"); /***/ }), /***/ "(rsc)/./src/app/globals.css": /*!*****************************!*\ !*** ./src/app/globals.css ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"5219fd8ccaad\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLy4vc3JjL2FwcC9nbG9iYWxzLmNzcz9kMTZmIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiNTIxOWZkOGNjYWFkXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n"); /***/ }), /***/ "(rsc)/./src/app/dashboard/contracts/page.js": /*!*********************************************!*\ !*** ./src/app/dashboard/contracts/page.js ***! \*********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js"); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js#default`)); /***/ }), /***/ "(rsc)/./src/app/dashboard/layout.js": /*!*************************************!*\ !*** ./src/app/dashboard/layout.js ***! \*************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), /* harmony export */ useUser: () => (/* binding */ e0) /* harmony export */ }); /* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js"); const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js#useUser`); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js#default`)); /***/ }), /***/ "(rsc)/./src/app/layout.js": /*!***************************!*\ !*** ./src/app/layout.js ***! \***************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\nconst metadata = {\n title: \"合同流转审批系统\",\n description: \"企业合同流转审批管理平台\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"zh-CN\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: children\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/layout.js\",\n lineNumber: 11,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/layout.js\",\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUI7QUFFaEIsTUFBTUEsV0FBVztJQUN0QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2YsRUFBRTtBQUVhLFNBQVNDLFdBQVcsRUFBRUMsUUFBUSxFQUFFO0lBQzdDLHFCQUNFLDhEQUFDQztRQUFLQyxNQUFLO2tCQUNULDRFQUFDQztzQkFBTUg7Ozs7Ozs7Ozs7O0FBR2IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jb250cmFjdC1hcHByb3ZhbC1zeXN0ZW0vLi9zcmMvYXBwL2xheW91dC5qcz81YjE5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9nbG9iYWxzLmNzcyc7XG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YSA9IHtcbiAgdGl0bGU6ICflkIjlkIzmtYHovazlrqHmibnns7vnu58nLFxuICBkZXNjcmlwdGlvbjogJ+S8geS4muWQiOWQjOa1gei9rOWuoeaJueeuoeeQhuW5s+WPsCcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSb290TGF5b3V0KHsgY2hpbGRyZW4gfSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJ6aC1DTlwiPlxuICAgICAgPGJvZHk+e2NoaWxkcmVufTwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG4iXSwibmFtZXMiOlsibWV0YWRhdGEiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJib2R5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.js\n"); /***/ }) }; ; // load runtime var __webpack_require__ = require("../../../webpack-runtime.js"); __webpack_require__.C(exports); var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2Fpage&page=%2Fdashboard%2Fcontracts%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"))); module.exports = __webpack_exports__; })();