@expcluster/permission-groups 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/controller.ts +434 -0
- package/dist/browser/messages.d.ts +527 -0
- package/dist/browser/messages.d.ts.map +1 -0
- package/dist/browser/messages.js +561 -0
- package/dist/browser/messages.js.map +1 -0
- package/dist/browser/package.json +49 -0
- package/dist/browser/tsconfig.browser.tsbuildinfo +1 -0
- package/dist/browser/web/components/AssignmentForm.d.ts +7 -0
- package/dist/browser/web/components/AssignmentForm.d.ts.map +1 -0
- package/dist/browser/web/components/AssignmentForm.js +29 -0
- package/dist/browser/web/components/AssignmentForm.js.map +1 -0
- package/dist/browser/web/components/AssignmentsTable.d.ts +2 -0
- package/dist/browser/web/components/AssignmentsTable.d.ts.map +1 -0
- package/dist/browser/web/components/AssignmentsTable.js +61 -0
- package/dist/browser/web/components/AssignmentsTable.js.map +1 -0
- package/dist/browser/web/components/DeleteConfirm.d.ts +6 -0
- package/dist/browser/web/components/DeleteConfirm.d.ts.map +1 -0
- package/dist/browser/web/components/DeleteConfirm.js +7 -0
- package/dist/browser/web/components/DeleteConfirm.js.map +1 -0
- package/dist/browser/web/components/GroupForm.d.ts +5 -0
- package/dist/browser/web/components/GroupForm.d.ts.map +1 -0
- package/dist/browser/web/components/GroupForm.js +22 -0
- package/dist/browser/web/components/GroupForm.js.map +1 -0
- package/dist/browser/web/components/GroupViewPage.d.ts +2 -0
- package/dist/browser/web/components/GroupViewPage.d.ts.map +1 -0
- package/dist/browser/web/components/GroupViewPage.js +161 -0
- package/dist/browser/web/components/GroupViewPage.js.map +1 -0
- package/dist/browser/web/components/GroupsTable.d.ts +2 -0
- package/dist/browser/web/components/GroupsTable.d.ts.map +1 -0
- package/dist/browser/web/components/GroupsTable.js +29 -0
- package/dist/browser/web/components/GroupsTable.js.map +1 -0
- package/dist/browser/web/components/RoleMappingForm.d.ts +7 -0
- package/dist/browser/web/components/RoleMappingForm.d.ts.map +1 -0
- package/dist/browser/web/components/RoleMappingForm.js +32 -0
- package/dist/browser/web/components/RoleMappingForm.js.map +1 -0
- package/dist/browser/web/components/RoleMappingsTable.d.ts +2 -0
- package/dist/browser/web/components/RoleMappingsTable.d.ts.map +1 -0
- package/dist/browser/web/components/RoleMappingsTable.js +64 -0
- package/dist/browser/web/components/RoleMappingsTable.js.map +1 -0
- package/dist/browser/web/index.d.ts +13 -0
- package/dist/browser/web/index.d.ts.map +1 -0
- package/dist/browser/web/index.js +60 -0
- package/dist/browser/web/index.js.map +1 -0
- package/dist/node/controller.d.ts +37 -0
- package/dist/node/controller.d.ts.map +1 -0
- package/dist/node/controller.js +372 -0
- package/dist/node/controller.js.map +1 -0
- package/dist/node/index.d.ts +10 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +196 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/instance.d.ts +40 -0
- package/dist/node/instance.d.ts.map +1 -0
- package/dist/node/instance.js +155 -0
- package/dist/node/instance.js.map +1 -0
- package/dist/node/messages.d.ts +527 -0
- package/dist/node/messages.d.ts.map +1 -0
- package/dist/node/messages.js +620 -0
- package/dist/node/messages.js.map +1 -0
- package/dist/node/tsconfig.node.tsbuildinfo +1 -0
- package/dist/web/manifest.json +10 -0
- package/dist/web/static/exp_groups.afefd90b210f7c8e0df2.js +543 -0
- package/dist/web/static/index_ts.f7d30aa0c13ff0be393a.js +22 -0
- package/dist/web/static/main.c2178975889c1c720e80.js +653 -0
- package/dist/web/static/messages_ts.65a81c17fb37953c5d68.js +22 -0
- package/dist/web/static/package_json.aab0d3f37da0567c250c.js +22 -0
- package/dist/web/static/vendors-node_modules_pnpm_ant-design_icons_6_2_3_rea_94b50600dfe79448cabf92d130d83059_node_mo-c79f54.cf768c64b40c811ce6c9.js +273 -0
- package/dist/web/static/vendors-node_modules_pnpm_sinclair_typebox_0_30_4_node_modules_sinclair_typebox_typebox_js.7fa46fac84f2e9324e54.js +22 -0
- package/dist/web/static/web_index_tsx-webpack_sharing_consume_default_react.b4766180f4d467b7b24f.js +102 -0
- package/index.ts +183 -0
- package/instance.ts +171 -0
- package/messages.ts +692 -0
- package/module/control.lua +438 -0
- package/module/globals.lua +11 -0
- package/module/module.json +12 -0
- package/module/module_exports.lua +3 -0
- package/package.json +47 -0
- package/tsconfig.browser.json +4 -0
- package/tsconfig.json +7 -0
- package/tsconfig.node.json +5 -0
- package/web/components/AssignmentForm.tsx +74 -0
- package/web/components/AssignmentsTable.tsx +111 -0
- package/web/components/DeleteConfirm.tsx +16 -0
- package/web/components/GroupForm.tsx +45 -0
- package/web/components/GroupViewPage.tsx +287 -0
- package/web/components/GroupsTable.tsx +49 -0
- package/web/components/RoleMappingForm.tsx +106 -0
- package/web/components/RoleMappingsTable.tsx +107 -0
- package/web/index.tsx +108 -0
- package/webpack.config.js +34 -0
package/dist/web/static/web_index_tsx-webpack_sharing_consume_default_react.b4766180f4d467b7b24f.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
4
|
+
* This devtool is neither made for production nor for readable output files.
|
|
5
|
+
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
6
|
+
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
7
|
+
* or disable the default devtool with "devtool: false".
|
|
8
|
+
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
9
|
+
*/
|
|
10
|
+
(self["webpackChunk_expcluster_permission_groups"] = self["webpackChunk_expcluster_permission_groups"] || []).push([["web_index_tsx-webpack_sharing_consume_default_react"],{
|
|
11
|
+
|
|
12
|
+
/***/ 275
|
|
13
|
+
/*!*******************************************!*\
|
|
14
|
+
!*** ./web/components/AssignmentForm.tsx ***!
|
|
15
|
+
\*******************************************/
|
|
16
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
17
|
+
|
|
18
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AssignmentForm)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../messages */ 40);\n\n\n\n\n\nfunction AssignmentForm({ open, setOpen, initial }) {\n const control = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__.ControlContext);\n const plugin = control.plugins.get(\"exp_groups\");\n const [groups] = plugin.useGroups();\n const [users] = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__.useUsers)();\n const [form] = antd__WEBPACK_IMPORTED_MODULE_2__.Form.useForm();\n function submit(values) {\n if (initial) {\n control.send(new _messages__WEBPACK_IMPORTED_MODULE_4__.AssignmentUpdateRequest(new _messages__WEBPACK_IMPORTED_MODULE_4__.AssignmentRecord(values.name, values.groupId)));\n } else {\n control.send(new _messages__WEBPACK_IMPORTED_MODULE_4__.AssignmentCreateRequest(values.name, values.groupId));\n }\n setOpen(false);\n }\n ;(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (open) {\n form.resetFields();\n form.setFieldsValue(initial);\n }\n }, [\n open,\n initial\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Modal, {\n title: initial ? \"Edit Assignment\" : \"Create Assignment\",\n open: open,\n onCancel: ()=>setOpen(false),\n onOk: ()=>form.submit(),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form, {\n form: form,\n onFinish: submit,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"name\",\n label: \"Player\",\n rules: [\n {\n required: true\n }\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select, {\n disabled: Boolean(initial),\n showSearch: true,\n children: [\n ...users.values()\n ].map((u)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select.Option, {\n value: u.name,\n children: u.name\n }, u.name, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 56,\n columnNumber: 7\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 54,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 53,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"groupId\",\n label: \"Group\",\n rules: [\n {\n required: true\n }\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select, {\n children: [\n ...groups.values()\n ].map((g)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select.Option, {\n value: g.id,\n children: g.name\n }, g.id, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 66,\n columnNumber: 7\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 64,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 63,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 52,\n columnNumber: 3\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentForm.tsx\",\n lineNumber: 46,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjc1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBcUQ7QUFDVjtBQUVrQjtBQUNsQjtBQUc1QixTQUFTUyxlQUFlLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBSTlEO0lBQ0EsTUFBTUMsVUFBVVosaURBQVVBLENBQUNLLDZEQUFjQTtJQUN6QyxNQUFNUSxTQUFTRCxRQUFRRSxPQUFPLENBQUNDLEdBQUcsQ0FBQztJQUVuQyxNQUFNLENBQUNDLE9BQU8sR0FBR0gsT0FBT0ksU0FBUztJQUNqQyxNQUFNLENBQUNDLE1BQU0sR0FBR1osMkRBQVFBO0lBRXhCLE1BQU0sQ0FBQ2EsS0FBSyxHQUFHaEIsc0NBQUlBLENBQUNpQixPQUFPO0lBRTNCLFNBQVNDLE9BQU9DLE1BQVc7UUFDMUIsSUFBSVgsU0FBUztZQUNaQyxRQUFRVyxJQUFJLENBQUMsSUFBSWhCLDhEQUFnQyxDQUNoRCxJQUFJQSx1REFBeUIsQ0FDNUJlLE9BQU9JLElBQUksRUFDWEosT0FBT0ssT0FBTztRQUdqQixPQUFPO1lBQ05mLFFBQVFXLElBQUksQ0FBQyxJQUFJaEIsOERBQWdDLENBQ2hEZSxPQUFPSSxJQUFJLEVBQ1hKLE9BQU9LLE9BQU87UUFFaEI7UUFFQWpCLFFBQVE7SUFDVDtJQUVBVCxpREFBU0EsQ0FBQztRQUNULElBQUlRLE1BQU07WUFDVFUsS0FBS1UsV0FBVztZQUNoQlYsS0FBS1csY0FBYyxDQUFDbkI7UUFDckI7SUFDRCxHQUFHO1FBQUNGO1FBQU1FO0tBQVE7SUFFbEIscUJBQU8sOERBQUNULHVDQUFLQTtRQUNaNkIsT0FBT3BCLFVBQVUsb0JBQW9CO1FBQ3JDRixNQUFNQTtRQUNOdUIsVUFBVSxJQUFNdEIsUUFBUTtRQUN4QnVCLE1BQU0sSUFBTWQsS0FBS0UsTUFBTTtrQkFFdkIsNEVBQUNsQixzQ0FBSUE7WUFBQ2dCLE1BQU1BO1lBQU1lLFVBQVViOzs4QkFDM0IsOERBQUNsQixzQ0FBSUEsQ0FBQ2dDLElBQUk7b0JBQUNULE1BQUs7b0JBQU9VLE9BQU07b0JBQVNDLE9BQU87d0JBQUM7NEJBQUVDLFVBQVU7d0JBQUs7cUJBQUU7OEJBQ2hFLDRFQUFDbEMsd0NBQU1BO3dCQUFDbUMsVUFBVUMsUUFBUTdCO3dCQUFVOEIsVUFBVTtrQ0FDNUM7K0JBQUl2QixNQUFNSSxNQUFNO3lCQUFHLENBQUNvQixHQUFHLENBQUNDLENBQUFBLGtCQUN4Qiw4REFBQ3ZDLHdDQUFNQSxDQUFDd0MsTUFBTTtnQ0FBY0MsT0FBT0YsRUFBRWpCLElBQUk7MENBQ3ZDaUIsRUFBRWpCLElBQUk7K0JBRFlpQixFQUFFakIsSUFBSTs7Ozs7Ozs7Ozs7Ozs7OzhCQU83Qiw4REFBQ3ZCLHNDQUFJQSxDQUFDZ0MsSUFBSTtvQkFBQ1QsTUFBSztvQkFBVVUsT0FBTTtvQkFBUUMsT0FBTzt3QkFBQzs0QkFBRUMsVUFBVTt3QkFBSztxQkFBRTs4QkFDbEUsNEVBQUNsQyx3Q0FBTUE7a0NBQ0w7K0JBQUlZLE9BQU9NLE1BQU07eUJBQUcsQ0FBQ29CLEdBQUcsQ0FBQ0ksQ0FBQUEsa0JBQ3pCLDhEQUFDMUMsd0NBQU1BLENBQUN3QyxNQUFNO2dDQUFZQyxPQUFPQyxFQUFFQyxFQUFFOzBDQUNuQ0QsRUFBRXBCLElBQUk7K0JBRFlvQixFQUFFQyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVE5QiIsInNvdXJjZXMiOlsid2VicGFjazovL0BleHBjbHVzdGVyL3Blcm1pc3Npb24tZ3JvdXBzLy4vd2ViL2NvbXBvbmVudHMvQXNzaWdubWVudEZvcm0udHN4PzI2NjIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBNb2RhbCwgRm9ybSwgU2VsZWN0IH0gZnJvbSBcImFudGRcIjtcclxuXHJcbmltcG9ydCB7IENvbnRyb2xDb250ZXh0LCB1c2VVc2VycyB9IGZyb20gXCJAY2x1c3RlcmlvL3dlYl91aVwiO1xyXG5pbXBvcnQgKiBhcyBtZXNzYWdlcyBmcm9tIFwiLi4vLi4vbWVzc2FnZXNcIjtcclxuaW1wb3J0IHR5cGUgeyBXZWJQbHVnaW4gfSBmcm9tIFwiLi5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFzc2lnbm1lbnRGb3JtKHsgb3Blbiwgc2V0T3BlbiwgaW5pdGlhbCB9OiB7XHJcblx0b3BlbjogYm9vbGVhbixcclxuXHRzZXRPcGVuOiAob3BlbjogYm9vbGVhbikgPT4gdm9pZCxcclxuXHRpbml0aWFsPzogbWVzc2FnZXMuQXNzaWdubWVudFJlY29yZCxcclxufSkge1xyXG5cdGNvbnN0IGNvbnRyb2wgPSB1c2VDb250ZXh0KENvbnRyb2xDb250ZXh0KTtcclxuXHRjb25zdCBwbHVnaW4gPSBjb250cm9sLnBsdWdpbnMuZ2V0KFwiZXhwX2dyb3Vwc1wiKSBhcyBXZWJQbHVnaW47XHJcblxyXG5cdGNvbnN0IFtncm91cHNdID0gcGx1Z2luLnVzZUdyb3VwcygpO1xyXG5cdGNvbnN0IFt1c2Vyc10gPSB1c2VVc2VycygpO1xyXG5cclxuXHRjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcclxuXHJcblx0ZnVuY3Rpb24gc3VibWl0KHZhbHVlczogYW55KSB7XHJcblx0XHRpZiAoaW5pdGlhbCkge1xyXG5cdFx0XHRjb250cm9sLnNlbmQobmV3IG1lc3NhZ2VzLkFzc2lnbm1lbnRVcGRhdGVSZXF1ZXN0KFxyXG5cdFx0XHRcdG5ldyBtZXNzYWdlcy5Bc3NpZ25tZW50UmVjb3JkKFxyXG5cdFx0XHRcdFx0dmFsdWVzLm5hbWUsXHJcblx0XHRcdFx0XHR2YWx1ZXMuZ3JvdXBJZCxcclxuXHRcdFx0XHQpXHJcblx0XHRcdCkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29udHJvbC5zZW5kKG5ldyBtZXNzYWdlcy5Bc3NpZ25tZW50Q3JlYXRlUmVxdWVzdChcclxuXHRcdFx0XHR2YWx1ZXMubmFtZSxcclxuXHRcdFx0XHR2YWx1ZXMuZ3JvdXBJZCxcclxuXHRcdFx0KSk7XHJcblx0XHR9XHJcblxyXG5cdFx0c2V0T3BlbihmYWxzZSk7XHJcblx0fVxyXG5cclxuXHR1c2VFZmZlY3QoKCkgPT4ge1xyXG5cdFx0aWYgKG9wZW4pIHtcclxuXHRcdFx0Zm9ybS5yZXNldEZpZWxkcygpO1xyXG5cdFx0XHRmb3JtLnNldEZpZWxkc1ZhbHVlKGluaXRpYWwpO1xyXG5cdFx0fVxyXG5cdH0sIFtvcGVuLCBpbml0aWFsXSk7XHJcblxyXG5cdHJldHVybiA8TW9kYWxcclxuXHRcdHRpdGxlPXtpbml0aWFsID8gXCJFZGl0IEFzc2lnbm1lbnRcIiA6IFwiQ3JlYXRlIEFzc2lnbm1lbnRcIn1cclxuXHRcdG9wZW49e29wZW59XHJcblx0XHRvbkNhbmNlbD17KCkgPT4gc2V0T3BlbihmYWxzZSl9XHJcblx0XHRvbk9rPXsoKSA9PiBmb3JtLnN1Ym1pdCgpfVxyXG5cdD5cclxuXHRcdDxGb3JtIGZvcm09e2Zvcm19IG9uRmluaXNoPXtzdWJtaXR9PlxyXG5cdFx0XHQ8Rm9ybS5JdGVtIG5hbWU9XCJuYW1lXCIgbGFiZWw9XCJQbGF5ZXJcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUgfV19PlxyXG5cdFx0XHRcdDxTZWxlY3QgZGlzYWJsZWQ9e0Jvb2xlYW4oaW5pdGlhbCl9IHNob3dTZWFyY2g+XHJcblx0XHRcdFx0XHR7Wy4uLnVzZXJzLnZhbHVlcygpXS5tYXAodSA9PiAoXHJcblx0XHRcdFx0XHRcdDxTZWxlY3QuT3B0aW9uIGtleT17dS5uYW1lfSB2YWx1ZT17dS5uYW1lfT5cclxuXHRcdFx0XHRcdFx0XHR7dS5uYW1lfVxyXG5cdFx0XHRcdFx0XHQ8L1NlbGVjdC5PcHRpb24+XHJcblx0XHRcdFx0XHQpKX1cclxuXHRcdFx0XHQ8L1NlbGVjdD5cclxuXHRcdFx0PC9Gb3JtLkl0ZW0+XHJcblxyXG5cdFx0XHQ8Rm9ybS5JdGVtIG5hbWU9XCJncm91cElkXCIgbGFiZWw9XCJHcm91cFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSB9XX0+XHJcblx0XHRcdFx0PFNlbGVjdD5cclxuXHRcdFx0XHRcdHtbLi4uZ3JvdXBzLnZhbHVlcygpXS5tYXAoZyA9PiAoXHJcblx0XHRcdFx0XHRcdDxTZWxlY3QuT3B0aW9uIGtleT17Zy5pZH0gdmFsdWU9e2cuaWR9PlxyXG5cdFx0XHRcdFx0XHRcdHtnLm5hbWV9XHJcblx0XHRcdFx0XHRcdDwvU2VsZWN0Lk9wdGlvbj5cclxuXHRcdFx0XHRcdCkpfVxyXG5cdFx0XHRcdDwvU2VsZWN0PlxyXG5cdFx0XHQ8L0Zvcm0uSXRlbT5cclxuXHRcdDwvRm9ybT5cclxuXHQ8L01vZGFsPjtcclxufVxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwiTW9kYWwiLCJGb3JtIiwiU2VsZWN0IiwiQ29udHJvbENvbnRleHQiLCJ1c2VVc2VycyIsIm1lc3NhZ2VzIiwiQXNzaWdubWVudEZvcm0iLCJvcGVuIiwic2V0T3BlbiIsImluaXRpYWwiLCJjb250cm9sIiwicGx1Z2luIiwicGx1Z2lucyIsImdldCIsImdyb3VwcyIsInVzZUdyb3VwcyIsInVzZXJzIiwiZm9ybSIsInVzZUZvcm0iLCJzdWJtaXQiLCJ2YWx1ZXMiLCJzZW5kIiwiQXNzaWdubWVudFVwZGF0ZVJlcXVlc3QiLCJBc3NpZ25tZW50UmVjb3JkIiwibmFtZSIsImdyb3VwSWQiLCJBc3NpZ25tZW50Q3JlYXRlUmVxdWVzdCIsInJlc2V0RmllbGRzIiwic2V0RmllbGRzVmFsdWUiLCJ0aXRsZSIsIm9uQ2FuY2VsIiwib25PayIsIm9uRmluaXNoIiwiSXRlbSIsImxhYmVsIiwicnVsZXMiLCJyZXF1aXJlZCIsImRpc2FibGVkIiwiQm9vbGVhbiIsInNob3dTZWFyY2giLCJtYXAiLCJ1IiwiT3B0aW9uIiwidmFsdWUiLCJnIiwiaWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///275\n\n}");
|
|
19
|
+
|
|
20
|
+
/***/ },
|
|
21
|
+
|
|
22
|
+
/***/ 560
|
|
23
|
+
/*!*********************************************!*\
|
|
24
|
+
!*** ./web/components/AssignmentsTable.tsx ***!
|
|
25
|
+
\*********************************************/
|
|
26
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
27
|
+
|
|
28
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AssignmentsTable)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ant-design/icons */ 893);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ant-design/icons */ 317);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../messages */ 40);\n/* harmony import */ var _AssignmentForm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AssignmentForm */ 275);\n/* harmony import */ var _DeleteConfirm__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DeleteConfirm */ 844);\n\n\n\n\n\n\n\n\nconst strcmp = new Intl.Collator(undefined, {\n numeric: true,\n sensitivity: \"base\"\n}).compare;\nfunction AssignmentsTable() {\n const control = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_5__.ControlContext);\n const plugin = control.plugins.get(\"exp_groups\");\n const account = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_5__.useAccount)();\n const searchInput = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [assignments, assignmentsSynced] = plugin.useAssignments();\n const [groups, groupsSynced] = plugin.useGroups();\n const [editing, setEditing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const assignmentsArray = [\n ...assignments.values()\n ];\n const groupFilters = [\n ...groups.values()\n ].filter((group)=>assignmentsArray.some((assignment)=>assignment.groupId === group.id)).map((group)=>({\n text: group.name,\n value: group.id\n }));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Table, {\n columns: [\n {\n title: \"Player\",\n dataIndex: \"name\",\n sorter: (a, b)=>strcmp(a.name, b.name),\n filterIcon: (filtered)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n style: {\n color: filtered ? \"#1677ff\" : undefined\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 41,\n columnNumber: 7\n }, this),\n onFilter: (value, record)=>record.name.toLowerCase().includes(String(value).toLowerCase()),\n filterDropdownProps: {\n onOpenChange: (open)=>open && setTimeout(()=>searchInput.current?.select(), 100)\n },\n filterDropdown: ({ selectedKeys, setSelectedKeys, confirm, clearFilters })=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n padding: 4\n },\n onKeyDown: (e)=>e.stopPropagation(),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Input.Search, {\n allowClear: true,\n ref: searchInput,\n placeholder: \"Search username\",\n value: selectedKeys[0],\n onChange: (e)=>setSelectedKeys([\n e.target.value\n ]),\n onSearch: ()=>confirm({\n closeDropdown: false\n }),\n onClear: ()=>{\n clearFilters?.({\n closeDropdown: false\n });\n confirm({\n closeDropdown: true\n });\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 51,\n columnNumber: 8\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 50,\n columnNumber: 7\n }, this)\n },\n {\n title: \"Group\",\n width: \"40%\",\n filters: groupFilters,\n onFilter: (value, record)=>record.groupId === value,\n render: (_, a)=>groups.get(a.groupId)?.name ?? a.groupId\n },\n ...account.hasAnyPermission(\"exp_groups.assignment.update\", \"exp_groups.assignment.delete\") ? [\n {\n title: \"Actions\",\n width: \"10%\",\n render: (_, record)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Space, {\n children: [\n account.hasPermission(\"exp_groups.assignment.update\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Button, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 86,\n columnNumber: 23\n }, this),\n onClick: ()=>{\n setEditing(record);\n setOpen(true);\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 86,\n columnNumber: 9\n }, this),\n account.hasPermission(\"exp_groups.assignment.delete\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DeleteConfirm__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n onConfirm: ()=>control.send(new _messages__WEBPACK_IMPORTED_MODULE_6__.AssignmentDeleteRequest(record.name))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 91,\n columnNumber: 66\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 84,\n columnNumber: 7\n }, this)\n }\n ] : []\n ],\n dataSource: assignmentsArray,\n loading: !assignmentsSynced || !groupsSynced,\n rowKey: (a)=>a.name,\n pagination: {\n defaultPageSize: 50,\n showSizeChanger: true,\n pageSizeOptions: [\n \"10\",\n \"20\",\n \"50\",\n \"100\",\n \"200\"\n ],\n showTotal: (total)=>`${total} Assignments`\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 34,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_AssignmentForm__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n open: open,\n setOpen: setOpen,\n initial: editing\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\AssignmentsTable.tsx\",\n lineNumber: 109,\n columnNumber: 3\n }, this)\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFHSSxRQUFRTSxFQUFFVixPQUFPO29CQUUxQzt1QkFDSW5CLFFBQVFvRSxnQkFBZ0IsQ0FDM0IsZ0NBQ0Esa0NBQ0c7d0JBQUM7NEJBQ0oxQyxPQUFPOzRCQUNQc0MsT0FBTzs0QkFDUEUsUUFBUSxDQUFDQyxHQUFRL0IsdUJBQ2hCLDhEQUFDekQsdUNBQUtBOzt3Q0FDSnFCLFFBQVFxRSxhQUFhLENBQUMsaURBQ3RCLDhEQUFDM0Ysd0NBQU1BOzRDQUFDNEYsb0JBQU0sOERBQUN6Rix5REFBWUE7Ozs7OzRDQUFLMEYsU0FBUztnREFDeEM5RCxXQUFXMkI7Z0RBQ1h6QixRQUFROzRDQUNUOzs7Ozs7d0NBRUFYLFFBQVFxRSxhQUFhLENBQUMsaURBQW1DLDhEQUFDbEYsc0RBQWNBOzRDQUN4RXFGLFdBQVcsSUFBTTVFLFFBQVE2RSxJQUFJLENBQUMsSUFBSXhGLDhEQUF1QkEsQ0FBQ21ELE9BQU9iLElBQUk7Ozs7Ozs7Ozs7Ozt3QkFJekU7cUJBQUUsR0FBRyxFQUFFO2lCQUNQO2dCQUNEbUQsWUFBWTlEO2dCQUNaK0QsU0FBUyxDQUFDeEUscUJBQXFCLENBQUNHO2dCQUNoQ3NFLFFBQVEsQ0FBQy9DLElBQU1BLEVBQUVOLElBQUk7Z0JBQ3JCc0QsWUFBWTtvQkFDWEMsaUJBQWlCO29CQUNqQkMsaUJBQWlCO29CQUNqQkMsaUJBQWlCO3dCQUFDO3dCQUFNO3dCQUFNO3dCQUFNO3dCQUFPO3FCQUFNO29CQUNqREMsV0FBVyxDQUFDQyxRQUFrQixHQUFHQSxNQUFNLFlBQVksQ0FBQztnQkFDckQ7Ozs7OzswQkFHRCw4REFBQ2hHLHVEQUFjQTtnQkFBQ3dCLE1BQU1BO2dCQUFNQyxTQUFTQTtnQkFBU3dFLFNBQVMzRTs7Ozs7Ozs7QUFFekQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZXhwY2x1c3Rlci9wZXJtaXNzaW9uLWdyb3Vwcy8uL3dlYi9jb21wb25lbnRzL0Fzc2lnbm1lbnRzVGFibGUudHN4P2Q0MWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZVN0YXRlLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVGFibGUsIEJ1dHRvbiwgU3BhY2UsIElucHV0LCBJbnB1dFJlZiB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IEVkaXRPdXRsaW5lZCwgU2VhcmNoT3V0bGluZWQgfSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuXHJcbmltcG9ydCB7IENvbnRyb2xDb250ZXh0LCB1c2VBY2NvdW50IH0gZnJvbSBcIkBjbHVzdGVyaW8vd2ViX3VpXCI7XHJcbmltcG9ydCB7IEFzc2lnbm1lbnREZWxldGVSZXF1ZXN0LCBBc3NpZ25tZW50UmVjb3JkIH0gZnJvbSBcIi4uLy4uL21lc3NhZ2VzXCI7XHJcbmltcG9ydCB0eXBlIHsgV2ViUGx1Z2luIH0gZnJvbSBcIi4uXCI7XHJcblxyXG5pbXBvcnQgQXNzaWdubWVudEZvcm0gZnJvbSBcIi4vQXNzaWdubWVudEZvcm1cIjtcclxuaW1wb3J0IERlbGV0ZWRDb25maXJtIGZyb20gXCIuL0RlbGV0ZUNvbmZpcm1cIjtcclxuXHJcbmNvbnN0IHN0cmNtcCA9IG5ldyBJbnRsLkNvbGxhdG9yKHVuZGVmaW5lZCwgeyBudW1lcmljOiB0cnVlLCBzZW5zaXRpdml0eTogXCJiYXNlXCIgfSkuY29tcGFyZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFzc2lnbm1lbnRzVGFibGUoKSB7XHJcblx0Y29uc3QgY29udHJvbCA9IHVzZUNvbnRleHQoQ29udHJvbENvbnRleHQpO1xyXG5cdGNvbnN0IHBsdWdpbiA9IGNvbnRyb2wucGx1Z2lucy5nZXQoXCJleHBfZ3JvdXBzXCIpIGFzIFdlYlBsdWdpbjtcclxuXHRjb25zdCBhY2NvdW50ID0gdXNlQWNjb3VudCgpO1xyXG5cclxuXHRjb25zdCBzZWFyY2hJbnB1dCA9IHVzZVJlZjxJbnB1dFJlZj4obnVsbCk7XHJcblxyXG5cdGNvbnN0IFthc3NpZ25tZW50cywgYXNzaWdubWVudHNTeW5jZWRdID0gcGx1Z2luLnVzZUFzc2lnbm1lbnRzKCk7XHJcblx0Y29uc3QgW2dyb3VwcywgZ3JvdXBzU3luY2VkXSA9IHBsdWdpbi51c2VHcm91cHMoKTtcclxuXHJcblx0Y29uc3QgW2VkaXRpbmcsIHNldEVkaXRpbmddID0gdXNlU3RhdGU8QXNzaWdubWVudFJlY29yZCB8IHVuZGVmaW5lZD4oKTtcclxuXHRjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG5cdGNvbnN0IGFzc2lnbm1lbnRzQXJyYXkgPSBbLi4uYXNzaWdubWVudHMudmFsdWVzKCldO1xyXG5cclxuXHRjb25zdCBncm91cEZpbHRlcnMgPSBbLi4uZ3JvdXBzLnZhbHVlcygpXVxyXG5cdFx0LmZpbHRlcihncm91cCA9PiBhc3NpZ25tZW50c0FycmF5LnNvbWUoYXNzaWdubWVudCA9PiBhc3NpZ25tZW50Lmdyb3VwSWQgPT09IGdyb3VwLmlkKSlcclxuXHRcdC5tYXAoZ3JvdXAgPT4gKHsgdGV4dDogZ3JvdXAubmFtZSwgdmFsdWU6IGdyb3VwLmlkIH0pKVxyXG5cclxuXHRyZXR1cm4gPD5cclxuXHRcdDxUYWJsZVxyXG5cdFx0XHRjb2x1bW5zPXtbXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0dGl0bGU6IFwiUGxheWVyXCIsXHJcblx0XHRcdFx0XHRkYXRhSW5kZXg6IFwibmFtZVwiLFxyXG5cdFx0XHRcdFx0c29ydGVyOiAoYTogQXNzaWdubWVudFJlY29yZCwgYjogQXNzaWdubWVudFJlY29yZCkgPT4gc3RyY21wKGEubmFtZSwgYi5uYW1lKSxcclxuXHRcdFx0XHRcdGZpbHRlckljb246IChmaWx0ZXJlZDogYm9vbGVhbikgPT4gKFxyXG5cdFx0XHRcdFx0XHQ8U2VhcmNoT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IGZpbHRlcmVkID8gXCIjMTY3N2ZmXCIgOiB1bmRlZmluZWQgfX0gLz5cclxuXHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRvbkZpbHRlcjogKHZhbHVlLCByZWNvcmQ6IEFzc2lnbm1lbnRSZWNvcmQpID0+IChcclxuXHRcdFx0XHRcdFx0cmVjb3JkLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCkpXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0ZmlsdGVyRHJvcGRvd25Qcm9wczoge1xyXG5cdFx0XHRcdFx0XHRvbk9wZW5DaGFuZ2U6IChvcGVuOiBib29sZWFuKSA9PiBvcGVuICYmIHNldFRpbWVvdXQoKCkgPT4gc2VhcmNoSW5wdXQuY3VycmVudD8uc2VsZWN0KCksIDEwMCksXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmlsdGVyRHJvcGRvd246ICh7IHNlbGVjdGVkS2V5cywgc2V0U2VsZWN0ZWRLZXlzLCBjb25maXJtLCBjbGVhckZpbHRlcnMgfSkgPT4gKFxyXG5cdFx0XHRcdFx0XHQ8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6IDQgfX0gb25LZXlEb3duPXsoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX0+XHJcblx0XHRcdFx0XHRcdFx0PElucHV0LlNlYXJjaFxyXG5cdFx0XHRcdFx0XHRcdFx0YWxsb3dDbGVhclxyXG5cdFx0XHRcdFx0XHRcdFx0cmVmPXtzZWFyY2hJbnB1dH1cclxuXHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXtcIlNlYXJjaCB1c2VybmFtZVwifVxyXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9e3NlbGVjdGVkS2V5c1swXX1cclxuXHRcdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VsZWN0ZWRLZXlzKFtlLnRhcmdldC52YWx1ZV0pfVxyXG5cdFx0XHRcdFx0XHRcdFx0b25TZWFyY2g9eygpID0+IGNvbmZpcm0oeyBjbG9zZURyb3Bkb3duOiBmYWxzZSB9KX1cclxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xlYXI9eygpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xlYXJGaWx0ZXJzPy4oeyBjbG9zZURyb3Bkb3duOiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uZmlybSh7IGNsb3NlRHJvcGRvd246IHRydWUgfSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9fVxyXG5cdFx0XHRcdFx0XHRcdC8+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdHRpdGxlOiBcIkdyb3VwXCIsXHJcblx0XHRcdFx0XHR3aWR0aDogXCI0MCVcIixcclxuXHRcdFx0XHRcdGZpbHRlcnM6IGdyb3VwRmlsdGVycyxcclxuXHRcdFx0XHRcdG9uRmlsdGVyOiAodmFsdWUsIHJlY29yZDogQXNzaWdubWVudFJlY29yZCkgPT4gKFxyXG5cdFx0XHRcdFx0XHRyZWNvcmQuZ3JvdXBJZCA9PT0gdmFsdWVcclxuXHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRyZW5kZXI6IChfOiBhbnksIGE6IGFueSkgPT4gKFxyXG5cdFx0XHRcdFx0XHRncm91cHMuZ2V0KGEuZ3JvdXBJZCk/Lm5hbWUgPz8gYS5ncm91cElkXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Li4uKGFjY291bnQuaGFzQW55UGVybWlzc2lvbihcclxuXHRcdFx0XHRcdFwiZXhwX2dyb3Vwcy5hc3NpZ25tZW50LnVwZGF0ZVwiLFxyXG5cdFx0XHRcdFx0XCJleHBfZ3JvdXBzLmFzc2lnbm1lbnQuZGVsZXRlXCIsXHJcblx0XHRcdFx0KSA/IFt7XHJcblx0XHRcdFx0XHR0aXRsZTogXCJBY3Rpb25zXCIsXHJcblx0XHRcdFx0XHR3aWR0aDogXCIxMCVcIixcclxuXHRcdFx0XHRcdHJlbmRlcjogKF86IGFueSwgcmVjb3JkOiBBc3NpZ25tZW50UmVjb3JkKSA9PiAoXHJcblx0XHRcdFx0XHRcdDxTcGFjZT5cclxuXHRcdFx0XHRcdFx0XHR7YWNjb3VudC5oYXNQZXJtaXNzaW9uKFwiZXhwX2dyb3Vwcy5hc3NpZ25tZW50LnVwZGF0ZVwiKSAmJlxyXG5cdFx0XHRcdFx0XHRcdFx0PEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSBvbkNsaWNrPXsoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHNldEVkaXRpbmcocmVjb3JkKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2V0T3Blbih0cnVlKTtcclxuXHRcdFx0XHRcdFx0XHRcdH19IC8+XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHthY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLmFzc2lnbm1lbnQuZGVsZXRlXCIpICYmIDxEZWxldGVkQ29uZmlybVxyXG5cdFx0XHRcdFx0XHRcdFx0b25Db25maXJtPXsoKSA9PiBjb250cm9sLnNlbmQobmV3IEFzc2lnbm1lbnREZWxldGVSZXF1ZXN0KHJlY29yZC5uYW1lKSl9XHJcblx0XHRcdFx0XHRcdFx0Lz59XHJcblx0XHRcdFx0XHRcdDwvU3BhY2U+XHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdH1dIDogW10pLFxyXG5cdFx0XHRdfVxyXG5cdFx0XHRkYXRhU291cmNlPXthc3NpZ25tZW50c0FycmF5fVxyXG5cdFx0XHRsb2FkaW5nPXshYXNzaWdubWVudHNTeW5jZWQgfHwgIWdyb3Vwc1N5bmNlZH1cclxuXHRcdFx0cm93S2V5PXsoYSkgPT4gYS5uYW1lfVxyXG5cdFx0XHRwYWdpbmF0aW9uPXt7XHJcblx0XHRcdFx0ZGVmYXVsdFBhZ2VTaXplOiA1MCxcclxuXHRcdFx0XHRzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcblx0XHRcdFx0cGFnZVNpemVPcHRpb25zOiBbXCIxMFwiLCBcIjIwXCIsIFwiNTBcIiwgXCIxMDBcIiwgXCIyMDBcIl0sXHJcblx0XHRcdFx0c2hvd1RvdGFsOiAodG90YWw6IG51bWJlcikgPT4gYCR7dG90YWx9IEFzc2lnbm1lbnRzYCxcclxuXHRcdFx0fX1cclxuXHRcdC8+XHJcblxyXG5cdFx0PEFzc2lnbm1lbnRGb3JtIG9wZW49e29wZW59IHNldE9wZW49e3NldE9wZW59IGluaXRpYWw9e2VkaXRpbmd9IC8+XHJcblx0PC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsInVzZVJlZiIsIlRhYmxlIiwiQnV0dG9uIiwiU3BhY2UiLCJJbnB1dCIsIkVkaXRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiQ29udHJvbENvbnRleHQiLCJ1c2VBY2NvdW50IiwiQXNzaWdubWVudERlbGV0ZVJlcXVlc3QiLCJBc3NpZ25tZW50Rm9ybSIsIkRlbGV0ZWRDb25maXJtIiwic3RyY21wIiwiSW50bCIsIkNvbGxhdG9yIiwidW5kZWZpbmVkIiwibnVtZXJpYyIsInNlbnNpdGl2aXR5IiwiY29tcGFyZSIsIkFzc2lnbm1lbnRzVGFibGUiLCJjb250cm9sIiwicGx1Z2luIiwicGx1Z2lucyIsImdldCIsImFjY291bnQiLCJzZWFyY2hJbnB1dCIsImFzc2lnbm1lbnRzIiwiYXNzaWdubWVudHNTeW5jZWQiLCJ1c2VBc3NpZ25tZW50cyIsImdyb3VwcyIsImdyb3Vwc1N5bmNlZCIsInVzZUdyb3VwcyIsImVkaXRpbmciLCJzZXRFZGl0aW5nIiwib3BlbiIsInNldE9wZW4iLCJhc3NpZ25tZW50c0FycmF5IiwidmFsdWVzIiwiZ3JvdXBGaWx0ZXJzIiwiZmlsdGVyIiwiZ3JvdXAiLCJzb21lIiwiYXNzaWdubWVudCIsImdyb3VwSWQiLCJpZCIsIm1hcCIsInRleHQiLCJuYW1lIiwidmFsdWUiLCJjb2x1bW5zIiwidGl0bGUiLCJkYXRhSW5kZXgiLCJzb3J0ZXIiLCJhIiwiYiIsImZpbHRlckljb24iLCJmaWx0ZXJlZCIsInN0eWxlIiwiY29sb3IiLCJvbkZpbHRlciIsInJlY29yZCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJTdHJpbmciLCJmaWx0ZXJEcm9wZG93blByb3BzIiwib25PcGVuQ2hhbmdlIiwic2V0VGltZW91dCIsImN1cnJlbnQiLCJzZWxlY3QiLCJmaWx0ZXJEcm9wZG93biIsInNlbGVjdGVkS2V5cyIsInNldFNlbGVjdGVkS2V5cyIsImNvbmZpcm0iLCJjbGVhckZpbHRlcnMiLCJkaXYiLCJwYWRkaW5nIiwib25LZXlEb3duIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIlNlYXJjaCIsImFsbG93Q2xlYXIiLCJyZWYiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwidGFyZ2V0Iiwib25TZWFyY2giLCJjbG9zZURyb3Bkb3duIiwib25DbGVhciIsIndpZHRoIiwiZmlsdGVycyIsInJlbmRlciIsIl8iLCJoYXNBbnlQZXJtaXNzaW9uIiwiaGFzUGVybWlzc2lvbiIsImljb24iLCJvbkNsaWNrIiwib25Db25maXJtIiwic2VuZCIsImRhdGFTb3VyY2UiLCJsb2FkaW5nIiwicm93S2V5IiwicGFnaW5hdGlvbiIsImRlZmF1bHRQYWdlU2l6ZSIsInNob3dTaXplQ2hhbmdlciIsInBhZ2VTaXplT3B0aW9ucyIsInNob3dUb3RhbCIsInRvdGFsIiwiaW5pdGlhbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///560\n\n}");
|
|
29
|
+
|
|
30
|
+
/***/ },
|
|
31
|
+
|
|
32
|
+
/***/ 844
|
|
33
|
+
/*!******************************************!*\
|
|
34
|
+
!*** ./web/components/DeleteConfirm.tsx ***!
|
|
35
|
+
\******************************************/
|
|
36
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
37
|
+
|
|
38
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DeletedConfirm)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ant-design/icons */ 370);\n\n\n\n\nfunction DeletedConfirm(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Popconfirm, {\n title: \"Delete?\",\n okText: \"Delete\",\n okButtonProps: {\n danger: true\n },\n onConfirm: props.onConfirm,\n placement: props.placement,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Button, {\n danger: true,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\DeleteConfirm.tsx\",\n lineNumber: 14,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\DeleteConfirm.tsx\",\n lineNumber: 14,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\DeleteConfirm.tsx\",\n lineNumber: 7,\n columnNumber: 12\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODQ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTBCO0FBQ2dCO0FBQ1M7QUFHcEMsU0FBU0ksZUFBZUMsS0FBOEQ7SUFDakcscUJBQU8sOERBQUNILDRDQUFVQTtRQUNkSSxPQUFNO1FBQ05DLFFBQU87UUFDYkMsZUFBZTtZQUFFQyxRQUFRO1FBQUs7UUFDeEJDLFdBQVdMLE1BQU1LLFNBQVM7UUFDMUJDLFdBQVdOLE1BQU1NLFNBQVM7a0JBRTFCLDRFQUFDVix3Q0FBTUE7WUFBQ1EsTUFBTTtZQUFDRyxvQkFBTSw4REFBQ1QseURBQWNBOzs7Ozs7Ozs7Ozs7Ozs7QUFFNUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZXhwY2x1c3Rlci9wZXJtaXNzaW9uLWdyb3Vwcy8uL3dlYi9jb21wb25lbnRzL0RlbGV0ZUNvbmZpcm0udHN4P2ZiNDkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBCdXR0b24sIFBvcGNvbmZpcm0gfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBUb29sdGlwUGxhY2VtZW50IH0gZnJvbSBcImFudGQvZXMvdG9vbHRpcFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRGVsZXRlZENvbmZpcm0ocHJvcHM6IHsgb25Db25maXJtOiAoKSA9PiB2b2lkLCBwbGFjZW1lbnQ/OiBUb29sdGlwUGxhY2VtZW50IH0pIHtcclxuICAgIHJldHVybiA8UG9wY29uZmlybVxyXG4gICAgICAgIHRpdGxlPVwiRGVsZXRlP1wiXHJcbiAgICAgICAgb2tUZXh0PVwiRGVsZXRlXCJcclxuXHRcdG9rQnV0dG9uUHJvcHM9e3sgZGFuZ2VyOiB0cnVlIH19XHJcbiAgICAgICAgb25Db25maXJtPXtwcm9wcy5vbkNvbmZpcm19XHJcbiAgICAgICAgcGxhY2VtZW50PXtwcm9wcy5wbGFjZW1lbnR9XHJcbiAgICA+XHJcbiAgICAgICAgPEJ1dHRvbiBkYW5nZXIgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSAvPlxyXG4gICAgPC9Qb3Bjb25maXJtPlxyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkJ1dHRvbiIsIlBvcGNvbmZpcm0iLCJEZWxldGVPdXRsaW5lZCIsIkRlbGV0ZWRDb25maXJtIiwicHJvcHMiLCJ0aXRsZSIsIm9rVGV4dCIsIm9rQnV0dG9uUHJvcHMiLCJkYW5nZXIiLCJvbkNvbmZpcm0iLCJwbGFjZW1lbnQiLCJpY29uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///844\n\n}");
|
|
39
|
+
|
|
40
|
+
/***/ },
|
|
41
|
+
|
|
42
|
+
/***/ 587
|
|
43
|
+
/*!**************************************!*\
|
|
44
|
+
!*** ./web/components/GroupForm.tsx ***!
|
|
45
|
+
\**************************************/
|
|
46
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
47
|
+
|
|
48
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GroupForm)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ 226);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../messages */ 40);\n\n\n\n\n\n\nfunction GroupForm({ open, setOpen }) {\n const control = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.ControlContext);\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();\n const [form] = antd__WEBPACK_IMPORTED_MODULE_2__.Form.useForm();\n async function submit(values) {\n const group = await control.send(new _messages__WEBPACK_IMPORTED_MODULE_5__.GroupCreateRequest(values.name, new _messages__WEBPACK_IMPORTED_MODULE_5__.GroupPermissions(Boolean(values.isBlacklist), [])));\n navigate(`/permission_groups/${group.id}/view`);\n setOpen(false);\n }\n ;(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (open) form.resetFields();\n }, [\n open\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Modal, {\n title: \"Create Group\",\n open: open,\n onCancel: ()=>setOpen(false),\n onOk: ()=>form.submit(),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form, {\n form: form,\n onFinish: submit,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"name\",\n label: \"Name\",\n rules: [\n {\n required: true\n }\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Input, {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupForm.tsx\",\n lineNumber: 37,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupForm.tsx\",\n lineNumber: 36,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"isBlacklist\",\n label: \"Grant all by default\",\n valuePropName: \"checked\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Switch, {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupForm.tsx\",\n lineNumber: 41,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupForm.tsx\",\n lineNumber: 40,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupForm.tsx\",\n lineNumber: 35,\n columnNumber: 3\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupForm.tsx\",\n lineNumber: 29,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTg3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFxRDtBQUNIO0FBQ0g7QUFFSTtBQUNSO0FBRTVCLFNBQVNVLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBR2hEO0lBQ0EsTUFBTUMsVUFBVVosaURBQVVBLENBQUNPLDZEQUFjQTtJQUN6QyxNQUFNTSxXQUFXUCw2REFBV0E7SUFFNUIsTUFBTSxDQUFDUSxLQUFLLEdBQUdYLHNDQUFJQSxDQUFDWSxPQUFPO0lBRTNCLGVBQWVDLE9BQU9DLE1BQVc7UUFDaEMsTUFBTUMsUUFBUSxNQUFNTixRQUFRTyxJQUFJLENBQUMsSUFBSVgseURBQTJCLENBQy9EUyxPQUFPSSxJQUFJLEVBQUUsSUFBSWIsdURBQXlCLENBQUNlLFFBQVFOLE9BQU9PLFdBQVcsR0FBRyxFQUFFO1FBRTNFWCxTQUFTLENBQUMsbUJBQW1CLEVBQUVLLE1BQU1PLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDOUNkLFFBQVE7SUFDVDtJQUVBVixpREFBU0EsQ0FBQztRQUNULElBQUlTLE1BQU1JLEtBQUtZLFdBQVc7SUFDM0IsR0FBRztRQUFDaEI7S0FBSztJQUVULHFCQUFPLDhEQUFDUix1Q0FBS0E7UUFDWnlCLE9BQU07UUFDTmpCLE1BQU1BO1FBQ05rQixVQUFVLElBQU1qQixRQUFRO1FBQ3hCa0IsTUFBTSxJQUFNZixLQUFLRSxNQUFNO2tCQUV2Qiw0RUFBQ2Isc0NBQUlBO1lBQUNXLE1BQU1BO1lBQU1nQixVQUFVZDs7OEJBQzNCLDhEQUFDYixzQ0FBSUEsQ0FBQzRCLElBQUk7b0JBQUNWLE1BQUs7b0JBQU9XLE9BQU07b0JBQU9DLE9BQU87d0JBQUM7NEJBQUVDLFVBQVU7d0JBQUs7cUJBQUU7OEJBQzlELDRFQUFDOUIsdUNBQUtBOzs7Ozs7Ozs7OzhCQUdQLDhEQUFDRCxzQ0FBSUEsQ0FBQzRCLElBQUk7b0JBQUNWLE1BQUs7b0JBQWNXLE9BQU07b0JBQXVCRyxlQUFjOzhCQUN4RSw0RUFBQzlCLHdDQUFNQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSVgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZXhwY2x1c3Rlci9wZXJtaXNzaW9uLWdyb3Vwcy8uL3dlYi9jb21wb25lbnRzL0dyb3VwRm9ybS50c3g/NDg2MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IE1vZGFsLCBGb3JtLCBJbnB1dCwgU3dpdGNoIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5cclxuaW1wb3J0IHsgQ29udHJvbENvbnRleHQgfSBmcm9tIFwiQGNsdXN0ZXJpby93ZWJfdWlcIjtcclxuaW1wb3J0ICogYXMgbWVzc2FnZXMgZnJvbSBcIi4uLy4uL21lc3NhZ2VzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBHcm91cEZvcm0oeyBvcGVuLCBzZXRPcGVuIH06IHtcclxuXHRvcGVuOiBib29sZWFuLFxyXG5cdHNldE9wZW46IChvcGVuOiBib29sZWFuKSA9PiB2b2lkLFxyXG59KSB7XHJcblx0Y29uc3QgY29udHJvbCA9IHVzZUNvbnRleHQoQ29udHJvbENvbnRleHQpO1xyXG5cdGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcclxuXHJcblx0Y29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XHJcblxyXG5cdGFzeW5jIGZ1bmN0aW9uIHN1Ym1pdCh2YWx1ZXM6IGFueSkge1xyXG5cdFx0Y29uc3QgZ3JvdXAgPSBhd2FpdCBjb250cm9sLnNlbmQobmV3IG1lc3NhZ2VzLkdyb3VwQ3JlYXRlUmVxdWVzdChcclxuXHRcdFx0dmFsdWVzLm5hbWUsIG5ldyBtZXNzYWdlcy5Hcm91cFBlcm1pc3Npb25zKEJvb2xlYW4odmFsdWVzLmlzQmxhY2tsaXN0KSwgW10pXHJcblx0XHQpKTtcclxuXHRcdG5hdmlnYXRlKGAvcGVybWlzc2lvbl9ncm91cHMvJHtncm91cC5pZH0vdmlld2ApO1xyXG5cdFx0c2V0T3BlbihmYWxzZSk7XHJcblx0fVxyXG5cclxuXHR1c2VFZmZlY3QoKCkgPT4ge1xyXG5cdFx0aWYgKG9wZW4pIGZvcm0ucmVzZXRGaWVsZHMoKTtcclxuXHR9LCBbb3Blbl0pO1xyXG5cclxuXHRyZXR1cm4gPE1vZGFsXHJcblx0XHR0aXRsZT1cIkNyZWF0ZSBHcm91cFwiXHJcblx0XHRvcGVuPXtvcGVufVxyXG5cdFx0b25DYW5jZWw9eygpID0+IHNldE9wZW4oZmFsc2UpfVxyXG5cdFx0b25Paz17KCkgPT4gZm9ybS5zdWJtaXQoKX1cclxuXHQ+XHJcblx0XHQ8Rm9ybSBmb3JtPXtmb3JtfSBvbkZpbmlzaD17c3VibWl0fT5cclxuXHRcdFx0PEZvcm0uSXRlbSBuYW1lPVwibmFtZVwiIGxhYmVsPVwiTmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSB9XX0+XHJcblx0XHRcdFx0PElucHV0IC8+XHJcblx0XHRcdDwvRm9ybS5JdGVtPlxyXG5cclxuXHRcdFx0PEZvcm0uSXRlbSBuYW1lPVwiaXNCbGFja2xpc3RcIiBsYWJlbD1cIkdyYW50IGFsbCBieSBkZWZhdWx0XCIgdmFsdWVQcm9wTmFtZT1cImNoZWNrZWRcIj5cclxuXHRcdFx0XHQ8U3dpdGNoIC8+XHJcblx0XHRcdDwvRm9ybS5JdGVtPlxyXG5cdFx0PC9Gb3JtPlxyXG5cdDwvTW9kYWw+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJNb2RhbCIsIkZvcm0iLCJJbnB1dCIsIlN3aXRjaCIsInVzZU5hdmlnYXRlIiwiQ29udHJvbENvbnRleHQiLCJtZXNzYWdlcyIsIkdyb3VwRm9ybSIsIm9wZW4iLCJzZXRPcGVuIiwiY29udHJvbCIsIm5hdmlnYXRlIiwiZm9ybSIsInVzZUZvcm0iLCJzdWJtaXQiLCJ2YWx1ZXMiLCJncm91cCIsInNlbmQiLCJHcm91cENyZWF0ZVJlcXVlc3QiLCJuYW1lIiwiR3JvdXBQZXJtaXNzaW9ucyIsIkJvb2xlYW4iLCJpc0JsYWNrbGlzdCIsImlkIiwicmVzZXRGaWVsZHMiLCJ0aXRsZSIsIm9uQ2FuY2VsIiwib25PayIsIm9uRmluaXNoIiwiSXRlbSIsImxhYmVsIiwicnVsZXMiLCJyZXF1aXJlZCIsInZhbHVlUHJvcE5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///587\n\n}");
|
|
49
|
+
|
|
50
|
+
/***/ },
|
|
51
|
+
|
|
52
|
+
/***/ 639
|
|
53
|
+
/*!******************************************!*\
|
|
54
|
+
!*** ./web/components/GroupViewPage.tsx ***!
|
|
55
|
+
\******************************************/
|
|
56
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
57
|
+
|
|
58
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GroupViewPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router-dom */ 226);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _DeleteConfirm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DeleteConfirm */ 844);\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../messages */ 40);\n\n\n\n\n\n\n\nconst DOMAIN_MAPPING = {\n \"Admin\": [\n \"admin\",\n \"cheat\",\n \"permission\",\n \"infinity\",\n \"editor\",\n \"spawn\"\n ],\n \"Building & Crafting\": [\n \"mining\",\n \"build\",\n \"craft\",\n \"deconstruct\",\n \"rotate\",\n \"entity\"\n ],\n \"Inventory\": [\n \"inventory\",\n \"stack\",\n \"cursor\",\n \"slot\",\n \"quick_bar\",\n \"item\",\n \"equipment\"\n ],\n \"Blueprints\": [\n \"blueprint\",\n \"copy\",\n \"paste\",\n \"undo\",\n \"redo\",\n \"upgrade\"\n ],\n \"Trains\": [\n \"train\",\n \"station\",\n \"schedule\",\n \"interrupt\",\n \"rolling_stock\"\n ],\n \"Circuit Network\": [\n \"combinator\",\n \"circuit\",\n \"signal\",\n \"wire\",\n \"cable\",\n \"speaker\",\n \"display_panel\"\n ],\n \"GUI\": [\n \"gui\",\n \"open\"\n ],\n \"Pins & Alerts\": [\n \"pin\",\n \"alert\",\n \"tag\"\n ],\n \"Logistics\": [\n \"logistic\",\n \"filter\",\n \"request\"\n ],\n \"Space\": [\n \"space\",\n \"surface\",\n \"planet\",\n \"rocket\"\n ],\n \"Toggles\": [\n \"toggle\",\n \"switch\",\n \"swap\",\n \"set\"\n ]\n};\nfunction getDomain(name) {\n const n = name.toLowerCase();\n for (const [domain, keywords] of Object.entries(DOMAIN_MAPPING)){\n if (keywords.some((k)=>n.includes(k))) return domain;\n }\n return \"Other\";\n}\nfunction GroupViewPage() {\n const control = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.ControlContext);\n const plugin = control.plugins.get(\"exp_groups\");\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useNavigate)();\n const account = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.useAccount)();\n const { id } = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useParams)();\n const groupId = Number(id);\n const [groups, synced] = plugin.useGroups();\n const group = groups.get(groupId);\n const [name, setName] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const defaultModPack = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.useDefaultModPack)();\n const [definesJson, setDefinesJson] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [permissionState, setPermissionState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const [baselineState, setBaselineState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const [search, setSearch] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const canUpdate = Boolean(account.hasPermission(\"exp_groups.group.update\"));\n const canDelete = Boolean(account.hasPermission(\"exp_groups.group.delete\"));\n // fetch defines\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!defaultModPack?.exportManifest?.assets?.defines) return;\n if (definesJson) return;\n const assetName = defaultModPack.exportManifest.assets.defines;\n (async ()=>{\n const response = await fetch(`${staticRoot}${assetName}`);\n const json = await response.json();\n setDefinesJson(json.input_action ?? {});\n })().catch((0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.notifyErrorHandler)(\"Failed to load permissions\"));\n }, [\n defaultModPack\n ]);\n // initialise permissions\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!group || !definesJson) return;\n if (Object.keys(permissionState).length) return;\n const { isBlacklist, permissions } = group.permissions;\n const base = Object.fromEntries(Object.keys(definesJson).map((p)=>[\n p,\n isBlacklist !== permissions.includes(p)\n ]));\n setPermissionState(base);\n setBaselineState(base);\n }, [\n group,\n definesJson\n ]);\n // sync name\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (group) setName(group.name);\n }, [\n group\n ]);\n // derived data\n const allPermissions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>Object.keys(definesJson ?? {}), [\n definesJson\n ]);\n const filtered = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>allPermissions.filter((p)=>p.toLowerCase().includes(search.toLowerCase())), [\n allPermissions,\n search\n ]);\n const grouped = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const map = new Map();\n for (const p of filtered){\n const domain = getDomain(p);\n if (!map.has(domain)) map.set(domain, []);\n map.get(domain).push(p);\n }\n const sorted = [\n ...map.entries()\n ].sort(([a], [b])=>a.localeCompare(b));\n for (const [, perms] of sorted){\n perms.sort((a, b)=>a.localeCompare(b));\n }\n return sorted;\n }, [\n filtered\n ]);\n const permissionChanged = Object.keys(permissionState).some((k)=>permissionState[k] !== baselineState[k]);\n const metaChanged = group ? name !== group.name : false;\n const edited = permissionChanged || metaChanged;\n function applyChanges() {\n if (!group) return;\n const whitelist = [];\n const blacklist = [];\n for (const [perm, enabled] of Object.entries(permissionState)){\n if (enabled) whitelist.push(perm);\n else blacklist.push(perm);\n }\n const isBlacklist = blacklist.length < whitelist.length;\n const permissions = isBlacklist ? blacklist : whitelist;\n control.send(new _messages__WEBPACK_IMPORTED_MODULE_6__.GroupUpdateRequest(new _messages__WEBPACK_IMPORTED_MODULE_6__.GroupRecord(group.id, name, new _messages__WEBPACK_IMPORTED_MODULE_6__.GroupPermissions(isBlacklist, permissions)))).then(()=>setBaselineState(permissionState)).catch((0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.notifyErrorHandler)(\"Error applying changes\"));\n }\n function revertChanges() {\n if (!group) return;\n setPermissionState(baselineState);\n setName(group.name);\n }\n if (!synced) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.PageLayout, {\n nav: [\n {\n name: \"exp_groups\"\n },\n {\n name: String(groupId)\n }\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Spin, {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 157,\n columnNumber: 4\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 156,\n columnNumber: 10\n }, this);\n }\n if (!group) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.PageLayout, {\n nav: [\n {\n name: \"exp_groups\"\n },\n {\n name: String(groupId)\n }\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.PageHeader, {\n title: \"Group not found\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 163,\n columnNumber: 4\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 162,\n columnNumber: 10\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.PageLayout, {\n nav: [\n {\n name: \"Permission Groups\",\n path: \"/permission_groups\"\n },\n {\n name: group.name\n }\n ],\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.PageHeader, {\n title: group.name,\n extra: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Space, {\n wrap: true,\n children: canDelete && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DeleteConfirm__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n placement: \"bottomRight\",\n onConfirm: async ()=>{\n control.send(new _messages__WEBPACK_IMPORTED_MODULE_6__.GroupDeleteRequest(group.id));\n navigate(`/permission_groups`);\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 171,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 170,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 168,\n columnNumber: 3\n }, this),\n edited && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n position: \"fixed\",\n bottom: 24,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n background: \"#2a1912\",\n borderRadius: 8,\n padding: \"10px 14px\",\n display: \"flex\",\n gap: 12,\n zIndex: 1000\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"You have unsaved changes\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 191,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Space, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Button, {\n onClick: revertChanges,\n children: \"Revert\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 193,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Button, {\n type: \"primary\",\n onClick: applyChanges,\n children: \"Apply\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 194,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 192,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 179,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n marginBottom: 16,\n display: \"flex\",\n gap: 12\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n style: {\n width: 110\n },\n children: \"Name\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 200,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Input, {\n value: name,\n disabled: !canUpdate,\n onChange: (e)=>setName(e.target.value)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 201,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 199,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n children: \"Permissions\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 204,\n columnNumber: 3\n }, this),\n !defaultModPack?.exportManifest?.assets?.defines && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Alert, {\n type: \"warning\",\n message: \"Missing export\",\n description: \"An export of the default mod pack is required to modify permissions.\",\n style: {\n marginBottom: 16\n },\n showIcon: true\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 207,\n columnNumber: 4\n }, this),\n defaultModPack?.exportManifest?.assets?.defines && !definesJson && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Spin, {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 216,\n columnNumber: 71\n }, this),\n definesJson && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Input.Search, {\n placeholder: \"Search permissions\",\n allowClear: true,\n onChange: (e)=>setSearch(e.target.value),\n style: {\n marginBottom: 16\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 219,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Space, {\n direction: \"vertical\",\n style: {\n width: \"100%\"\n },\n children: grouped.map(([groupName, permissions])=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n border: \"1px solid #424242\",\n padding: 12,\n borderRadius: 6\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Space, {\n style: {\n width: \"100%\",\n justifyContent: \"space-between\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: groupName\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 231,\n columnNumber: 8\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Space, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Button, {\n size: \"small\",\n disabled: !canUpdate,\n onClick: ()=>{\n setPermissionState((prev)=>{\n const next = {\n ...prev\n };\n for (const p of permissions)next[p] = true;\n return next;\n });\n },\n children: \"Select all\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 233,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Button, {\n size: \"small\",\n disabled: !canUpdate,\n onClick: ()=>{\n setPermissionState((prev)=>{\n const next = {\n ...prev\n };\n for (const p of permissions)next[p] = false;\n return next;\n });\n },\n children: \"Clear\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 247,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 232,\n columnNumber: 8\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 230,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n marginTop: 12,\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(250px, 1fr))\",\n gap: 8\n },\n children: permissions.map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Checkbox, {\n checked: permissionState[p],\n disabled: !canUpdate,\n onChange: (e)=>setPermissionState((prev)=>({\n ...prev,\n [p]: e.target.checked\n })),\n children: p\n }, p, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 270,\n columnNumber: 9\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 263,\n columnNumber: 7\n }, this)\n ]\n }, groupName, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 228,\n columnNumber: 6\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 226,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupViewPage.tsx\",\n lineNumber: 167,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O2dEQUMzQnlELFVBQVUsQ0FBQzlFO2dEQUNYK0UsVUFBVUMsQ0FBQUEsSUFDVHJGLG1CQUFtQm9HLENBQUFBLE9BQVM7NERBQUUsR0FBR0EsSUFBSTs0REFBRSxDQUFDMUUsRUFBRSxFQUFFMkQsRUFBRUMsTUFBTSxDQUFDa0IsT0FBTzt3REFBQzswREFHN0Q5RTsrQ0FQSUE7Ozs7Ozs7Ozs7OytCQTNDQ3FFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyRGYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZXhwY2x1c3Rlci9wZXJtaXNzaW9uLWdyb3Vwcy8uL3dlYi9jb21wb25lbnRzL0dyb3VwVmlld1BhZ2UudHN4Pzk5YzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlTmF2aWdhdGUsIHVzZVBhcmFtcyB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IEJ1dHRvbiwgQ2hlY2tib3gsIElucHV0LCBTcGFjZSwgU3BpbiwgQWxlcnQgfSBmcm9tIFwiYW50ZFwiO1xyXG5cclxuaW1wb3J0IHsgQ29udHJvbENvbnRleHQsIHVzZUFjY291bnQsIHVzZURlZmF1bHRNb2RQYWNrLCBQYWdlTGF5b3V0LCBQYWdlSGVhZGVyLCBub3RpZnlFcnJvckhhbmRsZXIgfSBmcm9tIFwiQGNsdXN0ZXJpby93ZWJfdWlcIjtcclxuaW1wb3J0IERlbGV0ZWRDb25maXJtIGZyb20gXCIuL0RlbGV0ZUNvbmZpcm1cIjtcclxuXHJcbmltcG9ydCAqIGFzIG1lc3NhZ2VzIGZyb20gXCIuLi8uLi9tZXNzYWdlc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFdlYlBsdWdpbiB9IGZyb20gXCIuLlwiO1xyXG5cclxuY29uc3QgRE9NQUlOX01BUFBJTkcgPSB7XHJcblx0XCJBZG1pblwiOiBbXCJhZG1pblwiLCBcImNoZWF0XCIsIFwicGVybWlzc2lvblwiLCBcImluZmluaXR5XCIsIFwiZWRpdG9yXCIsIFwic3Bhd25cIl0sXHJcblx0XCJCdWlsZGluZyAmIENyYWZ0aW5nXCI6IFtcIm1pbmluZ1wiLCBcImJ1aWxkXCIsIFwiY3JhZnRcIiwgXCJkZWNvbnN0cnVjdFwiLCBcInJvdGF0ZVwiLCBcImVudGl0eVwiXSxcclxuXHRcIkludmVudG9yeVwiOiBbXCJpbnZlbnRvcnlcIiwgXCJzdGFja1wiLCBcImN1cnNvclwiLCBcInNsb3RcIiwgXCJxdWlja19iYXJcIiwgXCJpdGVtXCIsIFwiZXF1aXBtZW50XCJdLFxyXG5cdFwiQmx1ZXByaW50c1wiOiBbXCJibHVlcHJpbnRcIiwgXCJjb3B5XCIsIFwicGFzdGVcIiwgXCJ1bmRvXCIsIFwicmVkb1wiLCBcInVwZ3JhZGVcIl0sXHJcblx0XCJUcmFpbnNcIjogW1widHJhaW5cIiwgXCJzdGF0aW9uXCIsIFwic2NoZWR1bGVcIiwgXCJpbnRlcnJ1cHRcIiwgXCJyb2xsaW5nX3N0b2NrXCJdLFxyXG5cdFwiQ2lyY3VpdCBOZXR3b3JrXCI6IFtcImNvbWJpbmF0b3JcIiwgXCJjaXJjdWl0XCIsIFwic2lnbmFsXCIsIFwid2lyZVwiLCBcImNhYmxlXCIsIFwic3BlYWtlclwiLCBcImRpc3BsYXlfcGFuZWxcIl0sXHJcblx0XCJHVUlcIjogW1wiZ3VpXCIsIFwib3BlblwiXSxcclxuXHRcIlBpbnMgJiBBbGVydHNcIjogW1wicGluXCIsIFwiYWxlcnRcIiwgXCJ0YWdcIl0sXHJcblx0XCJMb2dpc3RpY3NcIjogW1wibG9naXN0aWNcIiwgXCJmaWx0ZXJcIiwgXCJyZXF1ZXN0XCJdLFxyXG5cdFwiU3BhY2VcIjogW1wic3BhY2VcIiwgXCJzdXJmYWNlXCIsIFwicGxhbmV0XCIsIFwicm9ja2V0XCJdLFxyXG5cdFwiVG9nZ2xlc1wiOiBbXCJ0b2dnbGVcIiwgXCJzd2l0Y2hcIiwgXCJzd2FwXCIsIFwic2V0XCJdLFxyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0RG9tYWluKG5hbWU6IHN0cmluZykge1xyXG5cdGNvbnN0IG4gPSBuYW1lLnRvTG93ZXJDYXNlKCk7XHJcblxyXG5cdGZvciAoY29uc3QgW2RvbWFpbiwga2V5d29yZHNdIG9mIE9iamVjdC5lbnRyaWVzKERPTUFJTl9NQVBQSU5HKSkge1xyXG5cdFx0aWYgKGtleXdvcmRzLnNvbWUoayA9PiBuLmluY2x1ZGVzKGspKSkgcmV0dXJuIGRvbWFpbjtcclxuXHR9XHJcblxyXG5cdHJldHVybiBcIk90aGVyXCI7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEdyb3VwVmlld1BhZ2UoKSB7XHJcblx0Y29uc3QgY29udHJvbCA9IHVzZUNvbnRleHQoQ29udHJvbENvbnRleHQpO1xyXG5cdGNvbnN0IHBsdWdpbiA9IGNvbnRyb2wucGx1Z2lucy5nZXQoXCJleHBfZ3JvdXBzXCIpIGFzIFdlYlBsdWdpbjtcclxuXHRjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XHJcblx0Y29uc3QgYWNjb3VudCA9IHVzZUFjY291bnQoKTtcclxuXHJcblx0Y29uc3QgeyBpZCB9ID0gdXNlUGFyYW1zKCk7XHJcblx0Y29uc3QgZ3JvdXBJZCA9IE51bWJlcihpZCk7XHJcblxyXG5cdGNvbnN0IFtncm91cHMsIHN5bmNlZF0gPSBwbHVnaW4udXNlR3JvdXBzKCk7XHJcblx0Y29uc3QgZ3JvdXAgPSBncm91cHMuZ2V0KGdyb3VwSWQpO1xyXG5cclxuXHRjb25zdCBbbmFtZSwgc2V0TmFtZV0gPSB1c2VTdGF0ZShcIlwiKTtcclxuXHJcblx0Y29uc3QgZGVmYXVsdE1vZFBhY2sgPSB1c2VEZWZhdWx0TW9kUGFjaygpO1xyXG5cdGNvbnN0IFtkZWZpbmVzSnNvbiwgc2V0RGVmaW5lc0pzb25dID0gdXNlU3RhdGU8UmVjb3JkPHN0cmluZywgbnVtYmVyPiB8IG51bGw+KG51bGwpO1xyXG5cclxuXHRjb25zdCBbcGVybWlzc2lvblN0YXRlLCBzZXRQZXJtaXNzaW9uU3RhdGVdID0gdXNlU3RhdGU8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+KHt9KTtcclxuXHRjb25zdCBbYmFzZWxpbmVTdGF0ZSwgc2V0QmFzZWxpbmVTdGF0ZV0gPSB1c2VTdGF0ZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oe30pO1xyXG5cdGNvbnN0IFtzZWFyY2gsIHNldFNlYXJjaF0gPSB1c2VTdGF0ZShcIlwiKTtcclxuXHJcblx0Y29uc3QgY2FuVXBkYXRlID0gQm9vbGVhbihhY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLmdyb3VwLnVwZGF0ZVwiKSk7XHJcblx0Y29uc3QgY2FuRGVsZXRlID0gQm9vbGVhbihhY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLmdyb3VwLmRlbGV0ZVwiKSk7XHJcblxyXG5cdC8vIGZldGNoIGRlZmluZXNcclxuXHR1c2VFZmZlY3QoKCkgPT4ge1xyXG5cdFx0aWYgKCFkZWZhdWx0TW9kUGFjaz8uZXhwb3J0TWFuaWZlc3Q/LmFzc2V0cz8uZGVmaW5lcykgcmV0dXJuO1xyXG5cdFx0aWYgKGRlZmluZXNKc29uKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgYXNzZXROYW1lID0gZGVmYXVsdE1vZFBhY2suZXhwb3J0TWFuaWZlc3QuYXNzZXRzLmRlZmluZXM7XHJcblx0XHRcclxuXHRcdChhc3luYyAoKSA9PiB7XHJcblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7c3RhdGljUm9vdH0ke2Fzc2V0TmFtZX1gKTtcclxuXHRcdFx0Y29uc3QganNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHRcdFx0c2V0RGVmaW5lc0pzb24oanNvbi5pbnB1dF9hY3Rpb24gPz8ge30pO1xyXG5cdFx0fSkoKS5jYXRjaChub3RpZnlFcnJvckhhbmRsZXIoXCJGYWlsZWQgdG8gbG9hZCBwZXJtaXNzaW9uc1wiKSk7XHJcblx0fSwgW2RlZmF1bHRNb2RQYWNrXSk7XHJcblxyXG5cdC8vIGluaXRpYWxpc2UgcGVybWlzc2lvbnNcclxuXHR1c2VFZmZlY3QoKCkgPT4ge1xyXG5cdFx0aWYgKCFncm91cCB8fCAhZGVmaW5lc0pzb24pIHJldHVybjtcclxuXHRcdGlmIChPYmplY3Qua2V5cyhwZXJtaXNzaW9uU3RhdGUpLmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHsgaXNCbGFja2xpc3QsIHBlcm1pc3Npb25zIH0gPSBncm91cC5wZXJtaXNzaW9ucztcclxuXHJcblx0XHRjb25zdCBiYXNlID0gT2JqZWN0LmZyb21FbnRyaWVzKFxyXG5cdFx0XHRPYmplY3Qua2V5cyhkZWZpbmVzSnNvbikubWFwKHAgPT4gW1xyXG5cdFx0XHRcdHAsIGlzQmxhY2tsaXN0ICE9PSBwZXJtaXNzaW9ucy5pbmNsdWRlcyhwKVxyXG5cdFx0XHRdKVxyXG5cdFx0KTtcclxuXHJcblx0XHRzZXRQZXJtaXNzaW9uU3RhdGUoYmFzZSk7XHJcblx0XHRzZXRCYXNlbGluZVN0YXRlKGJhc2UpO1xyXG5cdH0sIFtncm91cCwgZGVmaW5lc0pzb25dKTtcclxuXHJcblx0Ly8gc3luYyBuYW1lXHJcblx0dXNlRWZmZWN0KCgpID0+IHtcclxuXHRcdGlmIChncm91cCkgc2V0TmFtZShncm91cC5uYW1lKTtcclxuXHR9LCBbZ3JvdXBdKTtcclxuXHJcblx0Ly8gZGVyaXZlZCBkYXRhXHJcblx0Y29uc3QgYWxsUGVybWlzc2lvbnMgPSB1c2VNZW1vKCgpID0+IChcclxuXHRcdE9iamVjdC5rZXlzKGRlZmluZXNKc29uID8/IHt9KVxyXG5cdCksIFtkZWZpbmVzSnNvbl0pO1xyXG5cclxuXHRjb25zdCBmaWx0ZXJlZCA9IHVzZU1lbW8oKCkgPT4gYWxsUGVybWlzc2lvbnMuZmlsdGVyKHAgPT5cclxuXHRcdHAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSlcclxuXHQpLCBbYWxsUGVybWlzc2lvbnMsIHNlYXJjaF0pO1xyXG5cclxuXHRjb25zdCBncm91cGVkID0gdXNlTWVtbygoKSA9PiB7XHJcblx0XHRjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nW10+KCk7XHJcblxyXG5cdFx0Zm9yIChjb25zdCBwIG9mIGZpbHRlcmVkKSB7XHJcblx0XHRcdGNvbnN0IGRvbWFpbiA9IGdldERvbWFpbihwKTtcclxuXHRcdFx0aWYgKCFtYXAuaGFzKGRvbWFpbikpIG1hcC5zZXQoZG9tYWluLCBbXSk7XHJcblx0XHRcdG1hcC5nZXQoZG9tYWluKSEucHVzaChwKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzb3J0ZWQgPSBbLi4ubWFwLmVudHJpZXMoKV0uc29ydCgoW2FdLCBbYl0pID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XHJcblxyXG5cdFx0Zm9yIChjb25zdCBbLCBwZXJtc10gb2Ygc29ydGVkKSB7XHJcblx0XHRcdHBlcm1zLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHNvcnRlZDtcclxuXHR9LCBbZmlsdGVyZWRdKTtcclxuXHJcblx0Y29uc3QgcGVybWlzc2lvbkNoYW5nZWQgPSBPYmplY3Qua2V5cyhwZXJtaXNzaW9uU3RhdGUpLnNvbWUoXHJcblx0XHRrID0+IHBlcm1pc3Npb25TdGF0ZVtrXSAhPT0gYmFzZWxpbmVTdGF0ZVtrXVxyXG5cdCk7XHJcblx0Y29uc3QgbWV0YUNoYW5nZWQgPSBncm91cCA/IG5hbWUgIT09IGdyb3VwLm5hbWUgOiBmYWxzZTtcclxuXHRjb25zdCBlZGl0ZWQgPSBwZXJtaXNzaW9uQ2hhbmdlZCB8fCBtZXRhQ2hhbmdlZDtcclxuXHJcblx0ZnVuY3Rpb24gYXBwbHlDaGFuZ2VzKCkge1xyXG5cdFx0aWYgKCFncm91cCkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHdoaXRlbGlzdDogc3RyaW5nW10gPSBbXTtcclxuXHRcdGNvbnN0IGJsYWNrbGlzdDogc3RyaW5nW10gPSBbXTtcclxuXHJcblx0XHRmb3IgKGNvbnN0IFtwZXJtLCBlbmFibGVkXSBvZiBPYmplY3QuZW50cmllcyhwZXJtaXNzaW9uU3RhdGUpKSB7XHJcblx0XHRcdGlmIChlbmFibGVkKSB3aGl0ZWxpc3QucHVzaChwZXJtKTtcclxuXHRcdFx0ZWxzZSBibGFja2xpc3QucHVzaChwZXJtKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBpc0JsYWNrbGlzdCA9IGJsYWNrbGlzdC5sZW5ndGggPCB3aGl0ZWxpc3QubGVuZ3RoO1xyXG5cdFx0Y29uc3QgcGVybWlzc2lvbnMgPSBpc0JsYWNrbGlzdCA/IGJsYWNrbGlzdCA6IHdoaXRlbGlzdDtcclxuXHJcblx0XHRjb250cm9sLnNlbmQobmV3IG1lc3NhZ2VzLkdyb3VwVXBkYXRlUmVxdWVzdChcclxuXHRcdFx0bmV3IG1lc3NhZ2VzLkdyb3VwUmVjb3JkKGdyb3VwLmlkLCBuYW1lLCBuZXcgbWVzc2FnZXMuR3JvdXBQZXJtaXNzaW9ucyhpc0JsYWNrbGlzdCwgcGVybWlzc2lvbnMpKVxyXG5cdFx0KSlcclxuXHRcdC50aGVuKCgpID0+IHNldEJhc2VsaW5lU3RhdGUocGVybWlzc2lvblN0YXRlKSlcclxuXHRcdC5jYXRjaChub3RpZnlFcnJvckhhbmRsZXIoXCJFcnJvciBhcHBseWluZyBjaGFuZ2VzXCIpKTtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHJldmVydENoYW5nZXMoKSB7XHJcblx0XHRpZiAoIWdyb3VwKSByZXR1cm47XHJcblx0XHRzZXRQZXJtaXNzaW9uU3RhdGUoYmFzZWxpbmVTdGF0ZSk7XHJcblx0XHRzZXROYW1lKGdyb3VwLm5hbWUpO1xyXG5cdH1cclxuXHJcblx0aWYgKCFzeW5jZWQpIHtcclxuXHRcdHJldHVybiA8UGFnZUxheW91dCBuYXY9e1t7IG5hbWU6IFwiZXhwX2dyb3Vwc1wiIH0sIHsgbmFtZTogU3RyaW5nKGdyb3VwSWQpIH1dfT5cclxuXHRcdFx0PFNwaW4gLz5cclxuXHRcdDwvUGFnZUxheW91dD47XHJcblx0fVxyXG5cclxuXHRpZiAoIWdyb3VwKSB7XHJcblx0XHRyZXR1cm4gPFBhZ2VMYXlvdXQgbmF2PXtbeyBuYW1lOiBcImV4cF9ncm91cHNcIiB9LCB7IG5hbWU6IFN0cmluZyhncm91cElkKSB9XX0+XHJcblx0XHRcdDxQYWdlSGVhZGVyIHRpdGxlPVwiR3JvdXAgbm90IGZvdW5kXCIgLz5cclxuXHRcdDwvUGFnZUxheW91dD47XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gPFBhZ2VMYXlvdXQgbmF2PXtbeyBuYW1lOiBcIlBlcm1pc3Npb24gR3JvdXBzXCIsIHBhdGg6IFwiL3Blcm1pc3Npb25fZ3JvdXBzXCIgfSwgeyBuYW1lOiBncm91cC5uYW1lIH1dfT5cclxuXHRcdDxQYWdlSGVhZGVyXHJcblx0XHRcdHRpdGxlPXtncm91cC5uYW1lfVxyXG5cdFx0XHRleHRyYT17PFNwYWNlIHdyYXA+XHJcblx0XHRcdFx0e2NhbkRlbGV0ZSAmJiA8RGVsZXRlZENvbmZpcm0gcGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIiBvbkNvbmZpcm09e2FzeW5jICgpID0+IHtcclxuXHRcdFx0XHRcdGNvbnRyb2wuc2VuZChuZXcgbWVzc2FnZXMuR3JvdXBEZWxldGVSZXF1ZXN0KGdyb3VwLmlkKSk7XHJcblx0XHRcdFx0XHRuYXZpZ2F0ZShgL3Blcm1pc3Npb25fZ3JvdXBzYCk7XHJcblx0XHRcdFx0fX0vPn1cclxuXHRcdFx0PC9TcGFjZT59XHJcblx0XHQvPlxyXG5cclxuXHRcdHtlZGl0ZWQgJiYgKFxyXG5cdFx0XHQ8ZGl2IHN0eWxlPXt7XHJcblx0XHRcdFx0cG9zaXRpb246IFwiZml4ZWRcIixcclxuXHRcdFx0XHRib3R0b206IDI0LFxyXG5cdFx0XHRcdGxlZnQ6IFwiNTAlXCIsXHJcblx0XHRcdFx0dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTUwJSlcIixcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBcIiMyYTE5MTJcIixcclxuXHRcdFx0XHRib3JkZXJSYWRpdXM6IDgsXHJcblx0XHRcdFx0cGFkZGluZzogXCIxMHB4IDE0cHhcIixcclxuXHRcdFx0XHRkaXNwbGF5OiBcImZsZXhcIixcclxuXHRcdFx0XHRnYXA6IDEyLFxyXG5cdFx0XHRcdHpJbmRleDogMTAwMCxcclxuXHRcdFx0fX0+XHJcblx0XHRcdFx0PHNwYW4+WW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzPC9zcGFuPlxyXG5cdFx0XHRcdDxTcGFjZT5cclxuXHRcdFx0XHRcdDxCdXR0b24gb25DbGljaz17cmV2ZXJ0Q2hhbmdlc30+UmV2ZXJ0PC9CdXR0b24+XHJcblx0XHRcdFx0XHQ8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17YXBwbHlDaGFuZ2VzfT5BcHBseTwvQnV0dG9uPlxyXG5cdFx0XHRcdDwvU3BhY2U+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0KX1cclxuXHJcblx0XHQ8ZGl2IHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMTYsIGRpc3BsYXk6IFwiZmxleFwiLCBnYXA6IDEyIH19PlxyXG5cdFx0XHQ8bGFiZWwgc3R5bGU9e3sgd2lkdGg6IDExMCB9fT5OYW1lPC9sYWJlbD5cclxuXHRcdFx0PElucHV0IHZhbHVlPXtuYW1lfSBkaXNhYmxlZD17IWNhblVwZGF0ZX0gb25DaGFuZ2U9e2UgPT4gc2V0TmFtZShlLnRhcmdldC52YWx1ZSl9IC8+XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8aDM+UGVybWlzc2lvbnM8L2gzPlxyXG5cclxuXHRcdHshZGVmYXVsdE1vZFBhY2s/LmV4cG9ydE1hbmlmZXN0Py5hc3NldHM/LmRlZmluZXMgJiYgKFxyXG5cdFx0XHQ8QWxlcnRcclxuXHRcdFx0XHR0eXBlPVwid2FybmluZ1wiXHJcblx0XHRcdFx0bWVzc2FnZT1cIk1pc3NpbmcgZXhwb3J0XCJcclxuXHRcdFx0XHRkZXNjcmlwdGlvbj1cIkFuIGV4cG9ydCBvZiB0aGUgZGVmYXVsdCBtb2QgcGFjayBpcyByZXF1aXJlZCB0byBtb2RpZnkgcGVybWlzc2lvbnMuXCJcclxuXHRcdFx0XHRzdHlsZT17eyBtYXJnaW5Cb3R0b206IDE2IH19XHJcblx0XHRcdFx0c2hvd0ljb25cclxuXHRcdFx0Lz5cclxuXHRcdCl9XHJcblxyXG5cdFx0e2RlZmF1bHRNb2RQYWNrPy5leHBvcnRNYW5pZmVzdD8uYXNzZXRzPy5kZWZpbmVzICYmICFkZWZpbmVzSnNvbiAmJiA8U3BpbiAvPn1cclxuXHJcblx0XHR7ZGVmaW5lc0pzb24gJiYgPD5cclxuXHRcdFx0PElucHV0LlNlYXJjaFxyXG5cdFx0XHRcdHBsYWNlaG9sZGVyPVwiU2VhcmNoIHBlcm1pc3Npb25zXCJcclxuXHRcdFx0XHRhbGxvd0NsZWFyXHJcblx0XHRcdFx0b25DaGFuZ2U9e2UgPT4gc2V0U2VhcmNoKGUudGFyZ2V0LnZhbHVlKX1cclxuXHRcdFx0XHRzdHlsZT17eyBtYXJnaW5Cb3R0b206IDE2IH19XHJcblx0XHRcdC8+XHJcblxyXG5cdFx0XHQ8U3BhY2UgZGlyZWN0aW9uPVwidmVydGljYWxcIiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIgfX0+XHJcblx0XHRcdFx0e2dyb3VwZWQubWFwKChbZ3JvdXBOYW1lLCBwZXJtaXNzaW9uc10pID0+IChcclxuXHRcdFx0XHRcdDxkaXYga2V5PXtncm91cE5hbWV9IHN0eWxlPXt7IGJvcmRlcjogXCIxcHggc29saWQgIzQyNDI0MlwiLCBwYWRkaW5nOiAxMiwgYm9yZGVyUmFkaXVzOiA2IH19PlxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0PFNwYWNlIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiIH19PlxyXG5cdFx0XHRcdFx0XHRcdDxzdHJvbmc+e2dyb3VwTmFtZX08L3N0cm9uZz5cclxuXHRcdFx0XHRcdFx0XHQ8U3BhY2U+XHJcblx0XHRcdFx0XHRcdFx0XHQ8QnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGRpc2FibGVkPXshY2FuVXBkYXRlfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXsoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2V0UGVybWlzc2lvblN0YXRlKHByZXYgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgbmV4dCA9IHsgLi4ucHJldiB9O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwIG9mIHBlcm1pc3Npb25zKSBuZXh0W3BdID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBuZXh0O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRTZWxlY3QgYWxsXHJcblx0XHRcdFx0XHRcdFx0XHQ8L0J1dHRvbj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8QnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGRpc2FibGVkPXshY2FuVXBkYXRlfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXsoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2V0UGVybWlzc2lvblN0YXRlKHByZXYgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgbmV4dCA9IHsgLi4ucHJldiB9O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwIG9mIHBlcm1pc3Npb25zKSBuZXh0W3BdID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV4dDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fX1cclxuXHRcdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0Q2xlYXJcclxuXHRcdFx0XHRcdFx0XHRcdDwvQnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdDwvU3BhY2U+XHJcblx0XHRcdFx0XHRcdDwvU3BhY2U+XHJcblxyXG5cdFx0XHRcdFx0XHQ8ZGl2IHN0eWxlPXt7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luVG9wOiAxMixcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBcImdyaWRcIixcclxuXHRcdFx0XHRcdFx0XHRncmlkVGVtcGxhdGVDb2x1bW5zOiBcInJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyNTBweCwgMWZyKSlcIixcclxuXHRcdFx0XHRcdFx0XHRnYXA6IDgsXHJcblx0XHRcdFx0XHRcdH19PlxyXG5cdFx0XHRcdFx0XHRcdHtwZXJtaXNzaW9ucy5tYXAocCA9PiAoXHJcblx0XHRcdFx0XHRcdFx0XHQ8Q2hlY2tib3hcclxuXHRcdFx0XHRcdFx0XHRcdFx0a2V5PXtwfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjaGVja2VkPXtwZXJtaXNzaW9uU3RhdGVbcF19XHJcblx0XHRcdFx0XHRcdFx0XHRcdGRpc2FibGVkPXshY2FuVXBkYXRlfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZT17ZSA9PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNldFBlcm1pc3Npb25TdGF0ZShwcmV2ID0+ICh7IC4uLnByZXYsIFtwXTogZS50YXJnZXQuY2hlY2tlZCB9KSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7cH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvQ2hlY2tib3g+XHJcblx0XHRcdFx0XHRcdFx0KSl9XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0KSl9XHJcblx0XHRcdDwvU3BhY2U+XHJcblx0XHQ8Lz59XHJcblx0PC9QYWdlTGF5b3V0PjtcclxufVxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlTmF2aWdhdGUiLCJ1c2VQYXJhbXMiLCJCdXR0b24iLCJDaGVja2JveCIsIklucHV0IiwiU3BhY2UiLCJTcGluIiwiQWxlcnQiLCJDb250cm9sQ29udGV4dCIsInVzZUFjY291bnQiLCJ1c2VEZWZhdWx0TW9kUGFjayIsIlBhZ2VMYXlvdXQiLCJQYWdlSGVhZGVyIiwibm90aWZ5RXJyb3JIYW5kbGVyIiwiRGVsZXRlZENvbmZpcm0iLCJtZXNzYWdlcyIsIkRPTUFJTl9NQVBQSU5HIiwiZ2V0RG9tYWluIiwibmFtZSIsIm4iLCJ0b0xvd2VyQ2FzZSIsImRvbWFpbiIsImtleXdvcmRzIiwiT2JqZWN0IiwiZW50cmllcyIsInNvbWUiLCJrIiwiaW5jbHVkZXMiLCJHcm91cFZpZXdQYWdlIiwiY29udHJvbCIsInBsdWdpbiIsInBsdWdpbnMiLCJnZXQiLCJuYXZpZ2F0ZSIsImFjY291bnQiLCJpZCIsImdyb3VwSWQiLCJOdW1iZXIiLCJncm91cHMiLCJzeW5jZWQiLCJ1c2VHcm91cHMiLCJncm91cCIsInNldE5hbWUiLCJkZWZhdWx0TW9kUGFjayIsImRlZmluZXNKc29uIiwic2V0RGVmaW5lc0pzb24iLCJwZXJtaXNzaW9uU3RhdGUiLCJzZXRQZXJtaXNzaW9uU3RhdGUiLCJiYXNlbGluZVN0YXRlIiwic2V0QmFzZWxpbmVTdGF0ZSIsInNlYXJjaCIsInNldFNlYXJjaCIsImNhblVwZGF0ZSIsIkJvb2xlYW4iLCJoYXNQZXJtaXNzaW9uIiwiY2FuRGVsZXRlIiwiZXhwb3J0TWFuaWZlc3QiLCJhc3NldHMiLCJkZWZpbmVzIiwiYXNzZXROYW1lIiwicmVzcG9uc2UiLCJmZXRjaCIsInN0YXRpY1Jvb3QiLCJqc29uIiwiaW5wdXRfYWN0aW9uIiwiY2F0Y2giLCJrZXlzIiwibGVuZ3RoIiwiaXNCbGFja2xpc3QiLCJwZXJtaXNzaW9ucyIsImJhc2UiLCJmcm9tRW50cmllcyIsIm1hcCIsInAiLCJhbGxQZXJtaXNzaW9ucyIsImZpbHRlcmVkIiwiZmlsdGVyIiwiZ3JvdXBlZCIsIk1hcCIsImhhcyIsInNldCIsInB1c2giLCJzb3J0ZWQiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwicGVybXMiLCJwZXJtaXNzaW9uQ2hhbmdlZCIsIm1ldGFDaGFuZ2VkIiwiZWRpdGVkIiwiYXBwbHlDaGFuZ2VzIiwid2hpdGVsaXN0IiwiYmxhY2tsaXN0IiwicGVybSIsImVuYWJsZWQiLCJzZW5kIiwiR3JvdXBVcGRhdGVSZXF1ZXN0IiwiR3JvdXBSZWNvcmQiLCJHcm91cFBlcm1pc3Npb25zIiwidGhlbiIsInJldmVydENoYW5nZXMiLCJuYXYiLCJTdHJpbmciLCJ0aXRsZSIsInBhdGgiLCJleHRyYSIsIndyYXAiLCJwbGFjZW1lbnQiLCJvbkNvbmZpcm0iLCJHcm91cERlbGV0ZVJlcXVlc3QiLCJkaXYiLCJzdHlsZSIsInBvc2l0aW9uIiwiYm90dG9tIiwibGVmdCIsInRyYW5zZm9ybSIsImJhY2tncm91bmQiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nIiwiZGlzcGxheSIsImdhcCIsInpJbmRleCIsInNwYW4iLCJvbkNsaWNrIiwidHlwZSIsIm1hcmdpbkJvdHRvbSIsImxhYmVsIiwid2lkdGgiLCJ2YWx1ZSIsImRpc2FibGVkIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwiaDMiLCJtZXNzYWdlIiwiZGVzY3JpcHRpb24iLCJzaG93SWNvbiIsIlNlYXJjaCIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImRpcmVjdGlvbiIsImdyb3VwTmFtZSIsImJvcmRlciIsImp1c3RpZnlDb250ZW50Iiwic3Ryb25nIiwic2l6ZSIsInByZXYiLCJuZXh0IiwibWFyZ2luVG9wIiwiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsImNoZWNrZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///639\n\n}");
|
|
59
|
+
|
|
60
|
+
/***/ },
|
|
61
|
+
|
|
62
|
+
/***/ 520
|
|
63
|
+
/*!****************************************!*\
|
|
64
|
+
!*** ./web/components/GroupsTable.tsx ***!
|
|
65
|
+
\****************************************/
|
|
66
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
67
|
+
|
|
68
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GroupsTable)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ 226);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _GroupForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./GroupForm */ 587);\n\n\n\n\n\n\nconst strcmp = new Intl.Collator(undefined, {\n numeric: true,\n sensitivity: \"base\"\n}).compare;\nfunction GroupsTable() {\n const control = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.ControlContext);\n const plugin = control.plugins.get(\"exp_groups\");\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();\n const [groups, synced] = plugin.useGroups();\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Table, {\n columns: [\n {\n title: \"Name\",\n dataIndex: \"name\",\n sorter: (a, b)=>strcmp(a.name, b.name)\n },\n {\n title: \"Permissions\",\n width: \"50%\",\n render: (_, g)=>`${g.permissions.permissions.length} ${g.permissions.isBlacklist ? \"Disallowed\" : \"Allowed\"}`\n }\n ],\n dataSource: [\n ...groups.values()\n ],\n loading: !synced,\n rowKey: (g)=>g.id,\n pagination: false,\n onRow: (g)=>({\n onClick: ()=>navigate(`/permission_groups/${g.id}/view`)\n })\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupsTable.tsx\",\n lineNumber: 23,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_GroupForm__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n open: open,\n setOpen: setOpen\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\GroupsTable.tsx\",\n lineNumber: 47,\n columnNumber: 3\n }, this)\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFvRDtBQUN2QjtBQUNrQjtBQUVJO0FBSWY7QUFFcEMsTUFBTU8sU0FBUyxJQUFJQyxLQUFLQyxRQUFRLENBQUNDLFdBQVc7SUFBRUMsU0FBUztJQUFNQyxhQUFhO0FBQU8sR0FBR0MsT0FBTztBQUU1RSxTQUFTQztJQUN2QixNQUFNQyxVQUFVZCxpREFBVUEsQ0FBQ0ksNkRBQWNBO0lBQ3pDLE1BQU1XLFNBQVNELFFBQVFFLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDO0lBQ25DLE1BQU1DLFdBQVdmLDZEQUFXQTtJQUU1QixNQUFNLENBQUNnQixRQUFRQyxPQUFPLEdBQUdMLE9BQU9NLFNBQVM7SUFFekMsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUd0QiwrQ0FBUUEsQ0FBQztJQUVqQyxxQkFBTzs7MEJBQ04sOERBQUNDLHVDQUFLQTtnQkFDTHNCLFNBQVM7b0JBQ1I7d0JBQ0NDLE9BQU87d0JBQ1BDLFdBQVc7d0JBQ1hDLFFBQVEsQ0FBQ0MsR0FBUUMsSUFBbUJ2QixPQUFPc0IsRUFBRUUsSUFBSSxFQUFFRCxFQUFFQyxJQUFJO29CQUMxRDtvQkFDQTt3QkFDQ0wsT0FBTzt3QkFDUE0sT0FBTzt3QkFDUEMsUUFBUSxDQUFDQyxHQUFRQyxJQUNoQixHQUFHQSxFQUFFQyxXQUFXLENBQUNBLFdBQVcsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRUYsRUFBRUMsV0FBVyxDQUFDRSxXQUFXLEdBQUcsZUFBZSxXQUFXO29CQUUvRjtpQkFDQTtnQkFDREMsWUFBWTt1QkFBSW5CLE9BQU9vQixNQUFNO2lCQUFHO2dCQUNoQ0MsU0FBUyxDQUFDcEI7Z0JBQ1ZxQixRQUFRLENBQUNQLElBQU1BLEVBQUVRLEVBQUU7Z0JBQ25CQyxZQUFZO2dCQUNaQyxPQUFPLENBQUNWLElBQU87d0JBQ2RXLFNBQVMsSUFBTTNCLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRWdCLEVBQUVRLEVBQUUsQ0FBQyxLQUFLLENBQUM7b0JBQzFEOzs7Ozs7MEJBR0QsOERBQUNyQyxrREFBU0E7Z0JBQUNpQixNQUFNQTtnQkFBTUMsU0FBU0E7Ozs7Ozs7O0FBRWxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGV4cGNsdXN0ZXIvcGVybWlzc2lvbi1ncm91cHMvLi93ZWIvY29tcG9uZW50cy9Hcm91cHNUYWJsZS50c3g/ZTkxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcblxyXG5pbXBvcnQgeyBDb250cm9sQ29udGV4dCB9IGZyb20gXCJAY2x1c3RlcmlvL3dlYl91aVwiO1xyXG5pbXBvcnQgeyBHcm91cFJlY29yZCB9IGZyb20gXCIuLi8uLi9tZXNzYWdlc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFdlYlBsdWdpbiB9IGZyb20gXCIuLlwiO1xyXG5cclxuaW1wb3J0IEdyb3VwRm9ybSBmcm9tIFwiLi9Hcm91cEZvcm1cIjtcclxuXHJcbmNvbnN0IHN0cmNtcCA9IG5ldyBJbnRsLkNvbGxhdG9yKHVuZGVmaW5lZCwgeyBudW1lcmljOiB0cnVlLCBzZW5zaXRpdml0eTogXCJiYXNlXCIgfSkuY29tcGFyZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEdyb3Vwc1RhYmxlKCkge1xyXG5cdGNvbnN0IGNvbnRyb2wgPSB1c2VDb250ZXh0KENvbnRyb2xDb250ZXh0KTtcclxuXHRjb25zdCBwbHVnaW4gPSBjb250cm9sLnBsdWdpbnMuZ2V0KFwiZXhwX2dyb3Vwc1wiKSBhcyBXZWJQbHVnaW47XHJcblx0Y29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xyXG5cclxuXHRjb25zdCBbZ3JvdXBzLCBzeW5jZWRdID0gcGx1Z2luLnVzZUdyb3VwcygpO1xyXG5cclxuXHRjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG5cdHJldHVybiA8PlxyXG5cdFx0PFRhYmxlXHJcblx0XHRcdGNvbHVtbnM9e1tcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHR0aXRsZTogXCJOYW1lXCIsXHJcblx0XHRcdFx0XHRkYXRhSW5kZXg6IFwibmFtZVwiLFxyXG5cdFx0XHRcdFx0c29ydGVyOiAoYTogYW55LCBiOiBHcm91cFJlY29yZCkgPT4gc3RyY21wKGEubmFtZSwgYi5uYW1lKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdHRpdGxlOiBcIlBlcm1pc3Npb25zXCIsXHJcblx0XHRcdFx0XHR3aWR0aDogXCI1MCVcIixcclxuXHRcdFx0XHRcdHJlbmRlcjogKF86IGFueSwgZzogR3JvdXBSZWNvcmQpID0+IChcclxuXHRcdFx0XHRcdFx0YCR7Zy5wZXJtaXNzaW9ucy5wZXJtaXNzaW9ucy5sZW5ndGh9ICR7Zy5wZXJtaXNzaW9ucy5pc0JsYWNrbGlzdCA/IFwiRGlzYWxsb3dlZFwiIDogXCJBbGxvd2VkXCJ9YFxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRdfVxyXG5cdFx0XHRkYXRhU291cmNlPXtbLi4uZ3JvdXBzLnZhbHVlcygpXX1cclxuXHRcdFx0bG9hZGluZz17IXN5bmNlZH1cclxuXHRcdFx0cm93S2V5PXsoZykgPT4gZy5pZH1cclxuXHRcdFx0cGFnaW5hdGlvbj17ZmFsc2V9XHJcblx0XHRcdG9uUm93PXsoZykgPT4gKHtcclxuXHRcdFx0XHRvbkNsaWNrOiAoKSA9PiBuYXZpZ2F0ZShgL3Blcm1pc3Npb25fZ3JvdXBzLyR7Zy5pZH0vdmlld2ApLFxyXG5cdFx0XHR9KX1cclxuXHRcdC8+XHJcblxyXG5cdFx0PEdyb3VwRm9ybSBvcGVuPXtvcGVufSBzZXRPcGVuPXtzZXRPcGVufSAvPlxyXG5cdDwvPjtcclxufSJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsIlRhYmxlIiwidXNlTmF2aWdhdGUiLCJDb250cm9sQ29udGV4dCIsIkdyb3VwRm9ybSIsInN0cmNtcCIsIkludGwiLCJDb2xsYXRvciIsInVuZGVmaW5lZCIsIm51bWVyaWMiLCJzZW5zaXRpdml0eSIsImNvbXBhcmUiLCJHcm91cHNUYWJsZSIsImNvbnRyb2wiLCJwbHVnaW4iLCJwbHVnaW5zIiwiZ2V0IiwibmF2aWdhdGUiLCJncm91cHMiLCJzeW5jZWQiLCJ1c2VHcm91cHMiLCJvcGVuIiwic2V0T3BlbiIsImNvbHVtbnMiLCJ0aXRsZSIsImRhdGFJbmRleCIsInNvcnRlciIsImEiLCJiIiwibmFtZSIsIndpZHRoIiwicmVuZGVyIiwiXyIsImciLCJwZXJtaXNzaW9ucyIsImxlbmd0aCIsImlzQmxhY2tsaXN0IiwiZGF0YVNvdXJjZSIsInZhbHVlcyIsImxvYWRpbmciLCJyb3dLZXkiLCJpZCIsInBhZ2luYXRpb24iLCJvblJvdyIsIm9uQ2xpY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///520\n\n}");
|
|
69
|
+
|
|
70
|
+
/***/ },
|
|
71
|
+
|
|
72
|
+
/***/ 124
|
|
73
|
+
/*!********************************************!*\
|
|
74
|
+
!*** ./web/components/RoleMappingForm.tsx ***!
|
|
75
|
+
\********************************************/
|
|
76
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
77
|
+
|
|
78
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RoleMappingForm)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../messages */ 40);\n\n\n\n\n\nfunction RoleMappingForm({ open, setOpen, initial }) {\n const control = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__.ControlContext);\n const plugin = control.plugins.get(\"exp_groups\");\n const [groups] = plugin.useGroups();\n const [roles] = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_3__.useRoles)();\n const [form] = antd__WEBPACK_IMPORTED_MODULE_2__.Form.useForm();\n function submit(values) {\n if (initial) {\n control.send(new _messages__WEBPACK_IMPORTED_MODULE_4__.RoleMappingUpdateRequest(new _messages__WEBPACK_IMPORTED_MODULE_4__.RoleMappingRecord(initial.id, new Set(values.roleIds), values.groupId, values.priority, values.enabled)));\n } else {\n control.send(new _messages__WEBPACK_IMPORTED_MODULE_4__.RoleMappingCreateRequest(values.roleIds, values.groupId, values.priority, values.enabled));\n }\n setOpen(false);\n }\n ;(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (open) {\n form.resetFields();\n form.setFieldsValue({\n ...initial,\n roleIds: initial ? [\n ...initial.roleIds\n ] : []\n });\n }\n }, [\n open,\n initial\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Modal, {\n title: initial ? \"Edit Role Mapping\" : \"Create Role Mapping\",\n open: open,\n onCancel: ()=>setOpen(false),\n onOk: ()=>form.submit(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Alert, {\n type: \"info\",\n showIcon: true,\n message: \"How role mappings work\",\n style: {\n marginBottom: 16\n },\n description: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n style: {\n paddingLeft: 16,\n margin: 0\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"Manual assignments always take priority.\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 67,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"Mappings are checked in priority order (highest first).\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 68,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"A mapping applies only if the user has \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"b\", {\n children: \"all listed roles\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 69,\n columnNumber: 49\n }, this),\n \".\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 69,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"The first matching mapping assigns the group.\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 70,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"If none match, the player is given all permissions.\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 71,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 66,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 60,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form, {\n form: form,\n onFinish: submit,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"groupId\",\n label: \"Group\",\n rules: [\n {\n required: true\n }\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select, {\n children: [\n ...groups.values()\n ].map((g)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select.Option, {\n value: g.id,\n children: g.name\n }, g.id, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 80,\n columnNumber: 7\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 78,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 77,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"roleIds\",\n label: \"Roles\",\n rules: [\n {\n required: true\n }\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select, {\n mode: \"multiple\",\n children: [\n ...roles.values()\n ].map((r)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Select.Option, {\n value: r.id,\n children: r.name\n }, r.id, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 90,\n columnNumber: 7\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 88,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 87,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"priority\",\n label: \"Priority\",\n initialValue: 100,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.InputNumber, {\n style: {\n width: \"100%\"\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 98,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 97,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Form.Item, {\n name: \"enabled\",\n label: \"Enabled\",\n valuePropName: \"checked\",\n initialValue: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Switch, {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 102,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 101,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 76,\n columnNumber: 3\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingForm.tsx\",\n lineNumber: 54,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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OzZCQUFHLENBQUM4QixHQUFHLENBQUNLLENBQUFBLGtCQUN4Qiw4REFBQzFELHdDQUFNQSxDQUFDdUQsTUFBTTtvQ0FBWUMsT0FBT0UsRUFBRWpDLEVBQUU7OENBQ25DaUMsRUFBRVQsSUFBSTttQ0FEWVMsRUFBRWpDLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztrQ0FPM0IsOERBQUMxQixzQ0FBSUEsQ0FBQ2lELElBQUk7d0JBQUNDLE1BQUs7d0JBQVdDLE9BQU07d0JBQVdTLGNBQWM7a0NBQ3pELDRFQUFDMUQsNkNBQVdBOzRCQUFDc0MsT0FBTztnQ0FBRXFCLE9BQU87NEJBQU87Ozs7Ozs7Ozs7O2tDQUdyQyw4REFBQzdELHNDQUFJQSxDQUFDaUQsSUFBSTt3QkFBQ0MsTUFBSzt3QkFBVUMsT0FBTTt3QkFBVVcsZUFBYzt3QkFBVUYsY0FBYztrQ0FDL0UsNEVBQUN6RCx3Q0FBTUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJWCIsInNvdXJjZXMiOlsid2VicGFjazovL0BleHBjbHVzdGVyL3Blcm1pc3Npb24tZ3JvdXBzLy4vd2ViL2NvbXBvbmVudHMvUm9sZU1hcHBpbmdGb3JtLnRzeD82NWMzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIEZvcm0sIFNlbGVjdCwgSW5wdXROdW1iZXIsIFN3aXRjaCwgQWxlcnQgfSBmcm9tIFwiYW50ZFwiO1xyXG5cclxuaW1wb3J0IHsgQ29udHJvbENvbnRleHQsIHVzZVJvbGVzIH0gZnJvbSBcIkBjbHVzdGVyaW8vd2ViX3VpXCI7XHJcbmltcG9ydCB7IFJvbGVNYXBwaW5nUmVjb3JkLCBSb2xlTWFwcGluZ0NyZWF0ZVJlcXVlc3QsIFJvbGVNYXBwaW5nVXBkYXRlUmVxdWVzdCB9IGZyb20gXCIuLi8uLi9tZXNzYWdlc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFdlYlBsdWdpbiB9IGZyb20gXCIuLlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9sZU1hcHBpbmdGb3JtKHsgb3Blbiwgc2V0T3BlbiwgaW5pdGlhbCB9OiB7XHJcblx0b3BlbjogYm9vbGVhbixcclxuXHRzZXRPcGVuOiAob3BlbjogYm9vbGVhbikgPT4gdm9pZCxcclxuXHRpbml0aWFsPzogUm9sZU1hcHBpbmdSZWNvcmQsXHJcbn0pIHtcclxuXHRjb25zdCBjb250cm9sID0gdXNlQ29udGV4dChDb250cm9sQ29udGV4dCk7XHJcblx0Y29uc3QgcGx1Z2luID0gY29udHJvbC5wbHVnaW5zLmdldChcImV4cF9ncm91cHNcIikgYXMgV2ViUGx1Z2luO1xyXG5cclxuXHRjb25zdCBbZ3JvdXBzXSA9IHBsdWdpbi51c2VHcm91cHMoKTtcclxuXHRjb25zdCBbcm9sZXNdID0gdXNlUm9sZXMoKTtcclxuXHJcblx0Y29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XHJcblxyXG5cdGZ1bmN0aW9uIHN1Ym1pdCh2YWx1ZXM6IGFueSkge1xyXG5cdFx0aWYgKGluaXRpYWwpIHtcclxuXHRcdFx0Y29udHJvbC5zZW5kKG5ldyBSb2xlTWFwcGluZ1VwZGF0ZVJlcXVlc3QoXHJcblx0XHRcdFx0bmV3IFJvbGVNYXBwaW5nUmVjb3JkKFxyXG5cdFx0XHRcdFx0aW5pdGlhbC5pZCxcclxuXHRcdFx0XHRcdG5ldyBTZXQodmFsdWVzLnJvbGVJZHMpLFxyXG5cdFx0XHRcdFx0dmFsdWVzLmdyb3VwSWQsXHJcblx0XHRcdFx0XHR2YWx1ZXMucHJpb3JpdHksXHJcblx0XHRcdFx0XHR2YWx1ZXMuZW5hYmxlZCxcclxuXHRcdFx0XHQpXHJcblx0XHRcdCkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29udHJvbC5zZW5kKG5ldyBSb2xlTWFwcGluZ0NyZWF0ZVJlcXVlc3QoXHJcblx0XHRcdFx0dmFsdWVzLnJvbGVJZHMsXHJcblx0XHRcdFx0dmFsdWVzLmdyb3VwSWQsXHJcblx0XHRcdFx0dmFsdWVzLnByaW9yaXR5LFxyXG5cdFx0XHRcdHZhbHVlcy5lbmFibGVkLFxyXG5cdFx0XHQpKTtcclxuXHRcdH1cclxuXHJcblx0XHRzZXRPcGVuKGZhbHNlKTtcclxuXHR9XHJcblxyXG5cdHVzZUVmZmVjdCgoKSA9PiB7XHJcblx0XHRpZiAob3Blbikge1xyXG5cdFx0XHRmb3JtLnJlc2V0RmllbGRzKCk7XHJcblx0XHRcdGZvcm0uc2V0RmllbGRzVmFsdWUoe1xyXG5cdFx0XHRcdC4uLmluaXRpYWwsXHJcblx0XHRcdFx0cm9sZUlkczogaW5pdGlhbCA/IFsuLi5pbml0aWFsLnJvbGVJZHNdIDogW10sXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH0sIFtvcGVuLCBpbml0aWFsXSk7XHJcblxyXG5cdHJldHVybiA8TW9kYWxcclxuXHRcdHRpdGxlPXtpbml0aWFsID8gXCJFZGl0IFJvbGUgTWFwcGluZ1wiIDogXCJDcmVhdGUgUm9sZSBNYXBwaW5nXCJ9XHJcblx0XHRvcGVuPXtvcGVufVxyXG5cdFx0b25DYW5jZWw9eygpID0+IHNldE9wZW4oZmFsc2UpfVxyXG5cdFx0b25Paz17KCkgPT4gZm9ybS5zdWJtaXQoKX1cclxuXHQ+XHJcblx0XHQ8QWxlcnRcclxuXHRcdFx0dHlwZT1cImluZm9cIlxyXG5cdFx0XHRzaG93SWNvblxyXG5cdFx0XHRtZXNzYWdlPVwiSG93IHJvbGUgbWFwcGluZ3Mgd29ya1wiXHJcblx0XHRcdHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMTYgfX1cclxuXHRcdFx0ZGVzY3JpcHRpb249e1xyXG5cdFx0XHRcdDx1bCBzdHlsZT17eyBwYWRkaW5nTGVmdDogMTYsIG1hcmdpbjogMCB9fT5cclxuXHRcdFx0XHRcdDxsaT5NYW51YWwgYXNzaWdubWVudHMgYWx3YXlzIHRha2UgcHJpb3JpdHkuPC9saT5cclxuXHRcdFx0XHRcdDxsaT5NYXBwaW5ncyBhcmUgY2hlY2tlZCBpbiBwcmlvcml0eSBvcmRlciAoaGlnaGVzdCBmaXJzdCkuPC9saT5cclxuXHRcdFx0XHRcdDxsaT5BIG1hcHBpbmcgYXBwbGllcyBvbmx5IGlmIHRoZSB1c2VyIGhhcyA8Yj5hbGwgbGlzdGVkIHJvbGVzPC9iPi48L2xpPlxyXG5cdFx0XHRcdFx0PGxpPlRoZSBmaXJzdCBtYXRjaGluZyBtYXBwaW5nIGFzc2lnbnMgdGhlIGdyb3VwLjwvbGk+XHJcblx0XHRcdFx0XHQ8bGk+SWYgbm9uZSBtYXRjaCwgdGhlIHBsYXllciBpcyBnaXZlbiBhbGwgcGVybWlzc2lvbnMuPC9saT5cclxuXHRcdFx0XHQ8L3VsPlxyXG5cdFx0XHR9XHJcblx0XHQvPlxyXG5cclxuXHRcdDxGb3JtIGZvcm09e2Zvcm19IG9uRmluaXNoPXtzdWJtaXR9PlxyXG5cdFx0XHQ8Rm9ybS5JdGVtIG5hbWU9XCJncm91cElkXCIgbGFiZWw9XCJHcm91cFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSB9XX0+XHJcblx0XHRcdFx0PFNlbGVjdD5cclxuXHRcdFx0XHRcdHtbLi4uZ3JvdXBzLnZhbHVlcygpXS5tYXAoZyA9PiAoXHJcblx0XHRcdFx0XHRcdDxTZWxlY3QuT3B0aW9uIGtleT17Zy5pZH0gdmFsdWU9e2cuaWR9PlxyXG5cdFx0XHRcdFx0XHRcdHtnLm5hbWV9XHJcblx0XHRcdFx0XHRcdDwvU2VsZWN0Lk9wdGlvbj5cclxuXHRcdFx0XHRcdCkpfVxyXG5cdFx0XHRcdDwvU2VsZWN0PlxyXG5cdFx0XHQ8L0Zvcm0uSXRlbT5cclxuXHJcblx0XHRcdDxGb3JtLkl0ZW0gbmFtZT1cInJvbGVJZHNcIiBsYWJlbD1cIlJvbGVzXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlIH1dfT5cclxuXHRcdFx0XHQ8U2VsZWN0IG1vZGU9XCJtdWx0aXBsZVwiPlxyXG5cdFx0XHRcdFx0e1suLi5yb2xlcy52YWx1ZXMoKV0ubWFwKHIgPT4gKFxyXG5cdFx0XHRcdFx0XHQ8U2VsZWN0Lk9wdGlvbiBrZXk9e3IuaWR9IHZhbHVlPXtyLmlkfT5cclxuXHRcdFx0XHRcdFx0XHR7ci5uYW1lfVxyXG5cdFx0XHRcdFx0XHQ8L1NlbGVjdC5PcHRpb24+XHJcblx0XHRcdFx0XHQpKX1cclxuXHRcdFx0XHQ8L1NlbGVjdD5cclxuXHRcdFx0PC9Gb3JtLkl0ZW0+XHJcblxyXG5cdFx0XHQ8Rm9ybS5JdGVtIG5hbWU9XCJwcmlvcml0eVwiIGxhYmVsPVwiUHJpb3JpdHlcIiBpbml0aWFsVmFsdWU9ezEwMH0+XHJcblx0XHRcdFx0PElucHV0TnVtYmVyIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiB9fSAvPlxyXG5cdFx0XHQ8L0Zvcm0uSXRlbT5cclxuXHJcblx0XHRcdDxGb3JtLkl0ZW0gbmFtZT1cImVuYWJsZWRcIiBsYWJlbD1cIkVuYWJsZWRcIiB2YWx1ZVByb3BOYW1lPVwiY2hlY2tlZFwiIGluaXRpYWxWYWx1ZT17dHJ1ZX0+XHJcblx0XHRcdFx0PFN3aXRjaCAvPlxyXG5cdFx0XHQ8L0Zvcm0uSXRlbT5cclxuXHRcdDwvRm9ybT5cclxuXHQ8L01vZGFsPjtcclxufVxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwiTW9kYWwiLCJGb3JtIiwiU2VsZWN0IiwiSW5wdXROdW1iZXIiLCJTd2l0Y2giLCJBbGVydCIsIkNvbnRyb2xDb250ZXh0IiwidXNlUm9sZXMiLCJSb2xlTWFwcGluZ1JlY29yZCIsIlJvbGVNYXBwaW5nQ3JlYXRlUmVxdWVzdCIsIlJvbGVNYXBwaW5nVXBkYXRlUmVxdWVzdCIsIlJvbGVNYXBwaW5nRm9ybSIsIm9wZW4iLCJzZXRPcGVuIiwiaW5pdGlhbCIsImNvbnRyb2wiLCJwbHVnaW4iLCJwbHVnaW5zIiwiZ2V0IiwiZ3JvdXBzIiwidXNlR3JvdXBzIiwicm9sZXMiLCJmb3JtIiwidXNlRm9ybSIsInN1Ym1pdCIsInZhbHVlcyIsInNlbmQiLCJpZCIsIlNldCIsInJvbGVJZHMiLCJncm91cElkIiwicHJpb3JpdHkiLCJlbmFibGVkIiwicmVzZXRGaWVsZHMiLCJzZXRGaWVsZHNWYWx1ZSIsInRpdGxlIiwib25DYW5jZWwiLCJvbk9rIiwidHlwZSIsInNob3dJY29uIiwibWVzc2FnZSIsInN0eWxlIiwibWFyZ2luQm90dG9tIiwiZGVzY3JpcHRpb24iLCJ1bCIsInBhZGRpbmdMZWZ0IiwibWFyZ2luIiwibGkiLCJiIiwib25GaW5pc2giLCJJdGVtIiwibmFtZSIsImxhYmVsIiwicnVsZXMiLCJyZXF1aXJlZCIsIm1hcCIsImciLCJPcHRpb24iLCJ2YWx1ZSIsIm1vZGUiLCJyIiwiaW5pdGlhbFZhbHVlIiwid2lkdGgiLCJ2YWx1ZVByb3BOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///124\n\n}");
|
|
79
|
+
|
|
80
|
+
/***/ },
|
|
81
|
+
|
|
82
|
+
/***/ 715
|
|
83
|
+
/*!**********************************************!*\
|
|
84
|
+
!*** ./web/components/RoleMappingsTable.tsx ***!
|
|
85
|
+
\**********************************************/
|
|
86
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
87
|
+
|
|
88
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RoleMappingsTable)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ant-design/icons */ 893);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../messages */ 40);\n/* harmony import */ var _RoleMappingForm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RoleMappingForm */ 124);\n/* harmony import */ var _DeleteConfirm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./DeleteConfirm */ 844);\n\n\n\n\n\n\n\n\nfunction RoleMappingsTable() {\n const control = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.ControlContext);\n const plugin = control.plugins.get(\"exp_groups\");\n const account = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.useAccount)();\n const [roleMappings, roleMappingsSynced] = plugin.useRoleMappings();\n const [groups, groupsSynced] = plugin.useGroups();\n const [roles, rolesSynced] = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_4__.useRoles)();\n const [editing, setEditing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const roleMappingArray = [\n ...roleMappings.values()\n ];\n const roleFilters = [\n ...roles.values()\n ].filter((role)=>roleMappingArray.some((mapping)=>mapping.roleIds.has(role.id))).map((role)=>({\n text: role.name,\n value: role.id\n }));\n const groupFilters = [\n ...groups.values()\n ].filter((group)=>roleMappingArray.some((mapping)=>mapping.groupId === group.id)).map((group)=>({\n text: group.name,\n value: group.id\n }));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Table, {\n columns: [\n {\n title: \"Priority\",\n dataIndex: \"priority\",\n width: \"10%\"\n },\n {\n title: \"Roles\",\n filters: roleFilters,\n onFilter: (value, record)=>record.roleIds.has(value),\n render: (_, record)=>[\n ...record.roleIds\n ].map((id)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Tag, {\n children: roles.get(id)?.name ?? id\n }, id, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingsTable.tsx\",\n lineNumber: 49,\n columnNumber: 37\n }, this))\n },\n {\n title: \"Group\",\n width: \"30%\",\n filters: groupFilters,\n onFilter: (value, record)=>record.groupId === value,\n render: (_, record)=>groups.get(record.groupId)?.name ?? record.groupId\n },\n {\n title: \"Enabled\",\n width: \"10%\",\n filters: [\n {\n text: \"Enabled\",\n value: true\n },\n {\n text: \"Disabled\",\n value: false\n }\n ],\n onFilter: (value, record)=>record.enabled === value,\n render: (_, record)=>record.enabled ? \"Yes\" : \"No\"\n },\n ...account.hasAnyPermission(\"exp_groups.role_mapping.update\", \"exp_groups.role_mapping.delete\") ? [\n {\n title: \"Actions\",\n width: \"10%\",\n render: (_, record)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Space, {\n children: [\n account.hasPermission(\"exp_groups.role_mapping.update\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_2__.Button, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingsTable.tsx\",\n lineNumber: 86,\n columnNumber: 15\n }, this),\n onClick: ()=>{\n setEditing(record);\n setOpen(true);\n }\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingsTable.tsx\",\n lineNumber: 85,\n columnNumber: 68\n }, this),\n account.hasPermission(\"exp_groups.role_mapping.delete\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_DeleteConfirm__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onConfirm: ()=>control.send(new _messages__WEBPACK_IMPORTED_MODULE_5__.RoleMappingDeleteRequest(record.id))\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingsTable.tsx\",\n lineNumber: 92,\n columnNumber: 68\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingsTable.tsx\",\n lineNumber: 84,\n columnNumber: 7\n }, this)\n }\n ] : []\n ],\n dataSource: roleMappingArray.sort((a, b)=>b.priority - a.priority),\n loading: !roleMappingsSynced || !groupsSynced || !rolesSynced,\n rowKey: (m)=>m.id,\n pagination: false\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingsTable.tsx\",\n lineNumber: 35,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_RoleMappingForm__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n open: open,\n setOpen: setOpen,\n initial: editing\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\components\\\\RoleMappingsTable.tsx\",\n lineNumber: 105,\n columnNumber: 3\n }, this)\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFhLENBQUMsbURBQXFDLDhEQUFDeEQsd0NBQU1BOzRDQUNsRXlELG9CQUFNLDhEQUFDdEQseURBQVlBOzs7Ozs0Q0FDbkJ1RCxTQUFTO2dEQUNSakMsV0FBVzBCO2dEQUNYeEIsUUFBUTs0Q0FDVDs7Ozs7O3dDQUVBWixRQUFReUMsYUFBYSxDQUFDLG1EQUFxQyw4REFBQy9DLHNEQUFjQTs0Q0FDMUVrRCxXQUFXLElBQU1oRCxRQUFRaUQsSUFBSSxDQUFDLElBQUlyRCwrREFBd0JBLENBQUM0QyxPQUFPZCxFQUFFOzs7Ozs7Ozs7Ozs7d0JBSXhFO3FCQUFFLEdBQUcsRUFBRTtpQkFDUDtnQkFDRHdCLFlBQVlqQyxpQkFBaUJrQyxJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBTUEsRUFBRUMsUUFBUSxHQUFHRixFQUFFRSxRQUFRO2dCQUNuRUMsU0FBUyxDQUFDakQsc0JBQXNCLENBQUNHLGdCQUFnQixDQUFDRztnQkFDbEQ0QyxRQUFRLENBQUNDLElBQU1BLEVBQUUvQixFQUFFO2dCQUNuQmdDLFlBQVk7Ozs7OzswQkFHYiw4REFBQzdELHdEQUFlQTtnQkFBQ2tCLE1BQU1BO2dCQUFNQyxTQUFTQTtnQkFBUzJDLFNBQVM5Qzs7Ozs7Ozs7QUFFMUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZXhwY2x1c3Rlci9wZXJtaXNzaW9uLWdyb3Vwcy8uL3dlYi9jb21wb25lbnRzL1JvbGVNYXBwaW5nc1RhYmxlLnRzeD9kNGEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBUYWJsZSwgQnV0dG9uLCBTcGFjZSwgVGFnIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgRWRpdE91dGxpbmVkIH0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcblxyXG5pbXBvcnQgeyBDb250cm9sQ29udGV4dCwgdXNlQWNjb3VudCwgdXNlUm9sZXMgfSBmcm9tIFwiQGNsdXN0ZXJpby93ZWJfdWlcIjtcclxuaW1wb3J0IHsgUm9sZU1hcHBpbmdSZWNvcmQsIFJvbGVNYXBwaW5nRGVsZXRlUmVxdWVzdCB9IGZyb20gXCIuLi8uLi9tZXNzYWdlc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFdlYlBsdWdpbiB9IGZyb20gXCIuLlwiO1xyXG5cclxuaW1wb3J0IFJvbGVNYXBwaW5nRm9ybSBmcm9tIFwiLi9Sb2xlTWFwcGluZ0Zvcm1cIjtcclxuaW1wb3J0IERlbGV0ZWRDb25maXJtIGZyb20gXCIuL0RlbGV0ZUNvbmZpcm1cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJvbGVNYXBwaW5nc1RhYmxlKCkge1xyXG5cdGNvbnN0IGNvbnRyb2wgPSB1c2VDb250ZXh0KENvbnRyb2xDb250ZXh0KTtcclxuXHRjb25zdCBwbHVnaW4gPSBjb250cm9sLnBsdWdpbnMuZ2V0KFwiZXhwX2dyb3Vwc1wiKSBhcyBXZWJQbHVnaW47XHJcblx0Y29uc3QgYWNjb3VudCA9IHVzZUFjY291bnQoKTtcclxuXHJcblx0Y29uc3QgW3JvbGVNYXBwaW5ncywgcm9sZU1hcHBpbmdzU3luY2VkXSA9IHBsdWdpbi51c2VSb2xlTWFwcGluZ3MoKTtcclxuXHRjb25zdCBbZ3JvdXBzLCBncm91cHNTeW5jZWRdID0gcGx1Z2luLnVzZUdyb3VwcygpO1xyXG5cdGNvbnN0IFtyb2xlcywgcm9sZXNTeW5jZWRdID0gdXNlUm9sZXMoKTtcclxuXHJcblx0Y29uc3QgW2VkaXRpbmcsIHNldEVkaXRpbmddID0gdXNlU3RhdGU8Um9sZU1hcHBpbmdSZWNvcmQgfCB1bmRlZmluZWQ+KCk7XHJcblx0Y29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuXHRjb25zdCByb2xlTWFwcGluZ0FycmF5ID0gWy4uLnJvbGVNYXBwaW5ncy52YWx1ZXMoKV07XHJcblxyXG5cdGNvbnN0IHJvbGVGaWx0ZXJzID0gWy4uLnJvbGVzLnZhbHVlcygpXVxyXG5cdFx0LmZpbHRlcihyb2xlID0+IHJvbGVNYXBwaW5nQXJyYXkuc29tZShtYXBwaW5nID0+IG1hcHBpbmcucm9sZUlkcy5oYXMocm9sZS5pZCkpKVxyXG5cdFx0Lm1hcChyb2xlID0+ICh7IHRleHQ6IHJvbGUubmFtZSwgdmFsdWU6IHJvbGUuaWQgfSkpO1xyXG5cclxuXHRjb25zdCBncm91cEZpbHRlcnMgPSBbLi4uZ3JvdXBzLnZhbHVlcygpXVxyXG5cdFx0LmZpbHRlcihncm91cCA9PiByb2xlTWFwcGluZ0FycmF5LnNvbWUobWFwcGluZyA9PiBtYXBwaW5nLmdyb3VwSWQgPT09IGdyb3VwLmlkKSlcclxuXHRcdC5tYXAoZ3JvdXAgPT4gKHsgdGV4dDogZ3JvdXAubmFtZSwgdmFsdWU6IGdyb3VwLmlkIH0pKVxyXG5cclxuXHRyZXR1cm4gPD5cclxuXHRcdDxUYWJsZVxyXG5cdFx0XHRjb2x1bW5zPXtbXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0dGl0bGU6IFwiUHJpb3JpdHlcIixcclxuXHRcdFx0XHRcdGRhdGFJbmRleDogXCJwcmlvcml0eVwiLFxyXG5cdFx0XHRcdFx0d2lkdGg6IFwiMTAlXCIsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHR0aXRsZTogXCJSb2xlc1wiLFxyXG5cdFx0XHRcdFx0ZmlsdGVyczogcm9sZUZpbHRlcnMsXHJcblx0XHRcdFx0XHRvbkZpbHRlcjogKHZhbHVlLCByZWNvcmQ6IFJvbGVNYXBwaW5nUmVjb3JkKSA9PiAoXHJcblx0XHRcdFx0XHRcdHJlY29yZC5yb2xlSWRzLmhhcyh2YWx1ZSBhcyBudW1iZXIpXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0cmVuZGVyOiAoXzogYW55LCByZWNvcmQ6IFJvbGVNYXBwaW5nUmVjb3JkKSA9PiAoXHJcblx0XHRcdFx0XHRcdFsuLi5yZWNvcmQucm9sZUlkc10ubWFwKGlkID0+IDxUYWcga2V5PXtpZH0+e3JvbGVzLmdldChpZCk/Lm5hbWUgPz8gaWR9PC9UYWc+KVxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdHRpdGxlOiBcIkdyb3VwXCIsXHJcblx0XHRcdFx0XHR3aWR0aDogXCIzMCVcIixcclxuXHRcdFx0XHRcdGZpbHRlcnM6IGdyb3VwRmlsdGVycyxcclxuXHRcdFx0XHRcdG9uRmlsdGVyOiAodmFsdWUsIHJlY29yZDogUm9sZU1hcHBpbmdSZWNvcmQpID0+IChcclxuXHRcdFx0XHRcdFx0cmVjb3JkLmdyb3VwSWQgPT09IHZhbHVlXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0cmVuZGVyOiAoXzogYW55LCByZWNvcmQ6IFJvbGVNYXBwaW5nUmVjb3JkKSA9PiAoXHJcblx0XHRcdFx0XHRcdGdyb3Vwcy5nZXQocmVjb3JkLmdyb3VwSWQpPy5uYW1lID8/IHJlY29yZC5ncm91cElkXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0dGl0bGU6IFwiRW5hYmxlZFwiLFxyXG5cdFx0XHRcdFx0d2lkdGg6IFwiMTAlXCIsXHJcblx0XHRcdFx0XHRmaWx0ZXJzOiBbXHJcblx0XHRcdFx0XHRcdHsgdGV4dDogXCJFbmFibGVkXCIsIHZhbHVlOiB0cnVlIH0sXHJcblx0XHRcdFx0XHRcdHsgdGV4dDogXCJEaXNhYmxlZFwiLCB2YWx1ZTogZmFsc2UgfSxcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHRvbkZpbHRlcjogKHZhbHVlLCByZWNvcmQ6IFJvbGVNYXBwaW5nUmVjb3JkKSA9PiAoXHJcblx0XHRcdFx0XHRcdHJlY29yZC5lbmFibGVkID09PSB2YWx1ZVxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRcdHJlbmRlcjogKF86IGFueSwgcmVjb3JkOiBSb2xlTWFwcGluZ1JlY29yZCkgPT4gKFxyXG5cdFx0XHRcdFx0XHRyZWNvcmQuZW5hYmxlZCA/IFwiWWVzXCIgOiBcIk5vXCJcclxuXHRcdFx0XHRcdCksXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQuLi4oYWNjb3VudC5oYXNBbnlQZXJtaXNzaW9uKFxyXG5cdFx0XHRcdFx0XCJleHBfZ3JvdXBzLnJvbGVfbWFwcGluZy51cGRhdGVcIixcclxuXHRcdFx0XHRcdFwiZXhwX2dyb3Vwcy5yb2xlX21hcHBpbmcuZGVsZXRlXCIsXHJcblx0XHRcdFx0KSA/IFt7XHJcblx0XHRcdFx0XHR0aXRsZTogXCJBY3Rpb25zXCIsXHJcblx0XHRcdFx0XHR3aWR0aDogXCIxMCVcIixcclxuXHRcdFx0XHRcdHJlbmRlcjogKF86IGFueSwgcmVjb3JkOiBhbnkpID0+IChcclxuXHRcdFx0XHRcdFx0PFNwYWNlPlxyXG5cdFx0XHRcdFx0XHRcdHthY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLnJvbGVfbWFwcGluZy51cGRhdGVcIikgJiYgPEJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj17PEVkaXRPdXRsaW5lZCAvPn1cclxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2V0RWRpdGluZyhyZWNvcmQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZXRPcGVuKHRydWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fX1cclxuXHRcdFx0XHRcdFx0XHQvPn1cclxuXHRcdFx0XHRcdFx0XHR7YWNjb3VudC5oYXNQZXJtaXNzaW9uKFwiZXhwX2dyb3Vwcy5yb2xlX21hcHBpbmcuZGVsZXRlXCIpICYmIDxEZWxldGVkQ29uZmlybVxyXG5cdFx0XHRcdFx0XHRcdFx0b25Db25maXJtPXsoKSA9PiBjb250cm9sLnNlbmQobmV3IFJvbGVNYXBwaW5nRGVsZXRlUmVxdWVzdChyZWNvcmQuaWQpKX1cclxuXHRcdFx0XHRcdFx0XHQvPn1cclxuXHRcdFx0XHRcdFx0PC9TcGFjZT5cclxuXHRcdFx0XHRcdCksXHJcblx0XHRcdFx0fV0gOiBbXSksXHJcblx0XHRcdF19XHJcblx0XHRcdGRhdGFTb3VyY2U9e3JvbGVNYXBwaW5nQXJyYXkuc29ydCgoYSwgYikgPT4gYi5wcmlvcml0eSAtIGEucHJpb3JpdHkpfVxyXG5cdFx0XHRsb2FkaW5nPXshcm9sZU1hcHBpbmdzU3luY2VkIHx8ICFncm91cHNTeW5jZWQgfHwgIXJvbGVzU3luY2VkfVxyXG5cdFx0XHRyb3dLZXk9eyhtKSA9PiBtLmlkfVxyXG5cdFx0XHRwYWdpbmF0aW9uPXtmYWxzZX1cclxuXHRcdC8+XHJcblxyXG5cdFx0PFJvbGVNYXBwaW5nRm9ybSBvcGVuPXtvcGVufSBzZXRPcGVuPXtzZXRPcGVufSBpbml0aWFsPXtlZGl0aW5nfSAvPlxyXG5cdDwvPjtcclxufVxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VDb250ZXh0IiwidXNlU3RhdGUiLCJUYWJsZSIsIkJ1dHRvbiIsIlNwYWNlIiwiVGFnIiwiRWRpdE91dGxpbmVkIiwiQ29udHJvbENvbnRleHQiLCJ1c2VBY2NvdW50IiwidXNlUm9sZXMiLCJSb2xlTWFwcGluZ0RlbGV0ZVJlcXVlc3QiLCJSb2xlTWFwcGluZ0Zvcm0iLCJEZWxldGVkQ29uZmlybSIsIlJvbGVNYXBwaW5nc1RhYmxlIiwiY29udHJvbCIsInBsdWdpbiIsInBsdWdpbnMiLCJnZXQiLCJhY2NvdW50Iiwicm9sZU1hcHBpbmdzIiwicm9sZU1hcHBpbmdzU3luY2VkIiwidXNlUm9sZU1hcHBpbmdzIiwiZ3JvdXBzIiwiZ3JvdXBzU3luY2VkIiwidXNlR3JvdXBzIiwicm9sZXMiLCJyb2xlc1N5bmNlZCIsImVkaXRpbmciLCJzZXRFZGl0aW5nIiwib3BlbiIsInNldE9wZW4iLCJyb2xlTWFwcGluZ0FycmF5IiwidmFsdWVzIiwicm9sZUZpbHRlcnMiLCJmaWx0ZXIiLCJyb2xlIiwic29tZSIsIm1hcHBpbmciLCJyb2xlSWRzIiwiaGFzIiwiaWQiLCJtYXAiLCJ0ZXh0IiwibmFtZSIsInZhbHVlIiwiZ3JvdXBGaWx0ZXJzIiwiZ3JvdXAiLCJncm91cElkIiwiY29sdW1ucyIsInRpdGxlIiwiZGF0YUluZGV4Iiwid2lkdGgiLCJmaWx0ZXJzIiwib25GaWx0ZXIiLCJyZWNvcmQiLCJyZW5kZXIiLCJfIiwiZW5hYmxlZCIsImhhc0FueVBlcm1pc3Npb24iLCJoYXNQZXJtaXNzaW9uIiwiaWNvbiIsIm9uQ2xpY2siLCJvbkNvbmZpcm0iLCJzZW5kIiwiZGF0YVNvdXJjZSIsInNvcnQiLCJhIiwiYiIsInByaW9yaXR5IiwibG9hZGluZyIsInJvd0tleSIsIm0iLCJwYWdpbmF0aW9uIiwiaW5pdGlhbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///715\n\n}");
|
|
89
|
+
|
|
90
|
+
/***/ },
|
|
91
|
+
|
|
92
|
+
/***/ 769
|
|
93
|
+
/*!***********************!*\
|
|
94
|
+
!*** ./web/index.tsx ***!
|
|
95
|
+
\***********************/
|
|
96
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
97
|
+
|
|
98
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WebPlugin: () => (/* binding */ WebPlugin)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ 878);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ 27);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @clusterio/web_ui */ 388);\n/* harmony import */ var _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 537);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../messages */ 40);\n/* harmony import */ var _clusterio_lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @clusterio/lib */ 194);\n/* harmony import */ var _clusterio_lib__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_clusterio_lib__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _components_GroupsTable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/GroupsTable */ 520);\n/* harmony import */ var _components_AssignmentsTable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/AssignmentsTable */ 560);\n/* harmony import */ var _components_RoleMappingsTable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/RoleMappingsTable */ 715);\n/* harmony import */ var _components_GroupViewPage__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/GroupViewPage */ 639);\n/* harmony import */ var _components_GroupForm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/GroupForm */ 587);\n/* harmony import */ var _components_RoleMappingForm__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/RoleMappingForm */ 124);\n/* harmony import */ var _components_AssignmentForm__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./components/AssignmentForm */ 275);\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ExpGroupsPage() {\n const account = (0,_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__.useAccount)();\n const [groupOpen, setGroupOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [assignmentOpen, setAssignmentOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [roleMappingOpen, setRoleMappingOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__.PageLayout, {\n nav: [\n {\n name: \"Permission Groups\"\n }\n ],\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__.PageHeader, {\n title: \"Permission Groups\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 25,\n columnNumber: 3\n }, this),\n account.hasPermission(\"exp_groups.group.list\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__.SectionHeader, {\n title: \"Groups\",\n extra: account.hasPermission(\"exp_groups.group.create\") ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Button, {\n type: \"primary\",\n onClick: ()=>setGroupOpen(true),\n children: \"Create\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this) : undefined\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 28,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GroupsTable__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 36,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GroupForm__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n open: groupOpen,\n setOpen: setGroupOpen\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 37,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true),\n account.hasPermission(\"exp_groups.role_mapping.list\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__.SectionHeader, {\n title: \"Role Mappings\",\n extra: account.hasPermission(\"exp_groups.role_mapping.create\") ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Button, {\n type: \"primary\",\n onClick: ()=>setRoleMappingOpen(true),\n children: \"Create\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this) : undefined\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 41,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_RoleMappingsTable__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 49,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_RoleMappingForm__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n open: roleMappingOpen,\n setOpen: setRoleMappingOpen\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 50,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true),\n account.hasPermission(\"exp_groups.assignment.list\") && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__.SectionHeader, {\n title: \"Assignments\",\n extra: account.hasPermission(\"exp_groups.assignment.create\") ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(antd__WEBPACK_IMPORTED_MODULE_3__.Button, {\n type: \"primary\",\n onClick: ()=>setAssignmentOpen(true),\n children: \"Create\"\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 58,\n columnNumber: 9\n }, this) : undefined\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 54,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AssignmentsTable__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 62,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AssignmentForm__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n open: assignmentOpen,\n setOpen: setAssignmentOpen\n }, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 63,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 24,\n columnNumber: 9\n }, this);\n}\nclass WebPlugin extends _clusterio_web_ui__WEBPACK_IMPORTED_MODULE_2__.BaseWebPlugin {\n groups = new _clusterio_lib__WEBPACK_IMPORTED_MODULE_5__.MapSubscriber(_messages__WEBPACK_IMPORTED_MODULE_4__.GroupUpdatedEvent, this.control);\n assignments = new _clusterio_lib__WEBPACK_IMPORTED_MODULE_5__.MapSubscriber(_messages__WEBPACK_IMPORTED_MODULE_4__.ManualAssignmentUpdatedEvent, this.control);\n roleMappings = new _clusterio_lib__WEBPACK_IMPORTED_MODULE_5__.MapSubscriber(_messages__WEBPACK_IMPORTED_MODULE_4__.RoleMappingUpdatedEvent, this.control);\n async init() {\n this.pages = [\n {\n path: \"/permission_groups\",\n sidebarName: \"Permission Groups\",\n permission: (account)=>account.hasAnyPermission(\"exp_groups.group.list\", \"exp_groups.assignment.list\", \"exp_groups.role_mapping.list\"),\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ExpGroupsPage, {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 83,\n columnNumber: 14\n }, this)\n },\n {\n path: \"/permission_groups/:id/view\",\n sidebarPath: \"/permission_groups\",\n permission: \"exp_groups.group.get\",\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GroupViewPage__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"C:\\\\Development\\\\Clusterio-dev\\\\external_plugins\\\\ExpCluster\\\\exp_groups\\\\web\\\\index.tsx\",\n lineNumber: 89,\n columnNumber: 14\n }, this)\n }\n ];\n }\n useGroups() {\n const subscribe = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((cb)=>this.groups.subscribe(cb), []);\n return (0,react__WEBPACK_IMPORTED_MODULE_1__.useSyncExternalStore)(subscribe, ()=>this.groups.getSnapshot());\n }\n useAssignments() {\n const subscribe = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((cb)=>this.assignments.subscribe(cb), []);\n return (0,react__WEBPACK_IMPORTED_MODULE_1__.useSyncExternalStore)(subscribe, ()=>this.assignments.getSnapshot());\n }\n useRoleMappings() {\n const subscribe = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((cb)=>this.roleMappings.subscribe(cb), []);\n return (0,react__WEBPACK_IMPORTED_MODULE_1__.useSyncExternalStore)(subscribe, ()=>this.roleMappings.getSnapshot());\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFvQkEsQ0FBQ29ELFdBQVcsSUFBTSxJQUFJLENBQUNqQixNQUFNLENBQUNtQixXQUFXO0lBQ3JFO0lBRUFDLGlCQUFpQjtRQUNoQixNQUFNSCxZQUFZckQsa0RBQVdBLENBQUMsQ0FBQ3NELEtBQW1CLElBQUksQ0FBQ2QsV0FBVyxDQUFDYSxTQUFTLENBQUNDLEtBQUssRUFBRTtRQUNwRixPQUFPckQsMkRBQW9CQSxDQUFDb0QsV0FBVyxJQUFNLElBQUksQ0FBQ2IsV0FBVyxDQUFDZSxXQUFXO0lBQzFFO0lBRUFFLGtCQUFrQjtRQUNqQixNQUFNSixZQUFZckQsa0RBQVdBLENBQUMsQ0FBQ3NELEtBQW1CLElBQUksQ0FBQ1osWUFBWSxDQUFDVyxTQUFTLENBQUNDLEtBQUssRUFBRTtRQUNyRixPQUFPckQsMkRBQW9CQSxDQUFDb0QsV0FBVyxJQUFNLElBQUksQ0FBQ1gsWUFBWSxDQUFDYSxXQUFXO0lBQzNFO0FBQ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AZXhwY2x1c3Rlci9wZXJtaXNzaW9uLWdyb3Vwcy8uL3dlYi9pbmRleC50c3g/ZTRjYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VTeW5jRXh0ZXJuYWxTdG9yZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBCYXNlV2ViUGx1Z2luLCBQYWdlTGF5b3V0LCBQYWdlSGVhZGVyLCB1c2VBY2NvdW50LCBTZWN0aW9uSGVhZGVyIH0gZnJvbSBcIkBjbHVzdGVyaW8vd2ViX3VpXCI7XHJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJhbnRkXCI7XHJcblxyXG5pbXBvcnQgKiBhcyBtZXNzYWdlcyBmcm9tIFwiLi4vbWVzc2FnZXNcIjtcclxuaW1wb3J0ICogYXMgbGliIGZyb20gXCJAY2x1c3RlcmlvL2xpYlwiO1xyXG5cclxuaW1wb3J0IEdyb3Vwc1RhYmxlIGZyb20gXCIuL2NvbXBvbmVudHMvR3JvdXBzVGFibGVcIjtcclxuaW1wb3J0IEFzc2lnbm1lbnRzVGFibGUgZnJvbSBcIi4vY29tcG9uZW50cy9Bc3NpZ25tZW50c1RhYmxlXCI7XHJcbmltcG9ydCBSb2xlTWFwcGluZ3NUYWJsZSBmcm9tIFwiLi9jb21wb25lbnRzL1JvbGVNYXBwaW5nc1RhYmxlXCI7XHJcbmltcG9ydCBHcm91cFZpZXdQYWdlIGZyb20gXCIuL2NvbXBvbmVudHMvR3JvdXBWaWV3UGFnZVwiO1xyXG5pbXBvcnQgR3JvdXBGb3JtIGZyb20gXCIuL2NvbXBvbmVudHMvR3JvdXBGb3JtXCI7XHJcbmltcG9ydCBSb2xlTWFwcGluZ0Zvcm0gZnJvbSBcIi4vY29tcG9uZW50cy9Sb2xlTWFwcGluZ0Zvcm1cIjtcclxuaW1wb3J0IEFzc2lnbm1lbnRGb3JtIGZyb20gXCIuL2NvbXBvbmVudHMvQXNzaWdubWVudEZvcm1cIjtcclxuXHJcblxyXG5mdW5jdGlvbiBFeHBHcm91cHNQYWdlKCkge1xyXG5cdGNvbnN0IGFjY291bnQgPSB1c2VBY2NvdW50KCk7XHJcblxyXG5cdGNvbnN0IFtncm91cE9wZW4sIHNldEdyb3VwT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblx0Y29uc3QgW2Fzc2lnbm1lbnRPcGVuLCBzZXRBc3NpZ25tZW50T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblx0Y29uc3QgW3JvbGVNYXBwaW5nT3Blbiwgc2V0Um9sZU1hcHBpbmdPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcblx0cmV0dXJuIDxQYWdlTGF5b3V0IG5hdj17W3sgbmFtZTogXCJQZXJtaXNzaW9uIEdyb3Vwc1wiIH1dfT5cclxuXHRcdDxQYWdlSGVhZGVyIHRpdGxlPVwiUGVybWlzc2lvbiBHcm91cHNcIiAvPlxyXG5cclxuXHRcdHthY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLmdyb3VwLmxpc3RcIikgJiYgPD5cclxuXHRcdFx0PFNlY3Rpb25IZWFkZXJcclxuXHRcdFx0XHR0aXRsZT1cIkdyb3Vwc1wiXHJcblx0XHRcdFx0ZXh0cmE9e1xyXG5cdFx0XHRcdFx0YWNjb3VudC5oYXNQZXJtaXNzaW9uKFwiZXhwX2dyb3Vwcy5ncm91cC5jcmVhdGVcIilcclxuXHRcdFx0XHRcdFx0PyA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gc2V0R3JvdXBPcGVuKHRydWUpfT5DcmVhdGU8L0J1dHRvbj5cclxuXHRcdFx0XHRcdFx0OiB1bmRlZmluZWRcclxuXHRcdFx0XHR9XHJcblx0XHRcdC8+XHJcblx0XHRcdDxHcm91cHNUYWJsZSAvPlxyXG5cdFx0XHQ8R3JvdXBGb3JtIG9wZW49e2dyb3VwT3Blbn0gc2V0T3Blbj17c2V0R3JvdXBPcGVufSAvPlxyXG5cdFx0PC8+fVxyXG5cclxuXHRcdHthY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLnJvbGVfbWFwcGluZy5saXN0XCIpICYmIDw+XHJcblx0XHRcdDxTZWN0aW9uSGVhZGVyXHJcblx0XHRcdFx0dGl0bGU9XCJSb2xlIE1hcHBpbmdzXCJcclxuXHRcdFx0XHRleHRyYT17XHJcblx0XHRcdFx0XHRhY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLnJvbGVfbWFwcGluZy5jcmVhdGVcIilcclxuXHRcdFx0XHRcdFx0PyA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gc2V0Um9sZU1hcHBpbmdPcGVuKHRydWUpfT5DcmVhdGU8L0J1dHRvbj5cclxuXHRcdFx0XHRcdFx0OiB1bmRlZmluZWRcclxuXHRcdFx0XHR9XHJcblx0XHRcdC8+XHJcblx0XHRcdDxSb2xlTWFwcGluZ3NUYWJsZSAvPlxyXG5cdFx0XHQ8Um9sZU1hcHBpbmdGb3JtIG9wZW49e3JvbGVNYXBwaW5nT3Blbn0gc2V0T3Blbj17c2V0Um9sZU1hcHBpbmdPcGVufSAvPlxyXG5cdFx0PC8+fVxyXG5cclxuXHRcdHthY2NvdW50Lmhhc1Blcm1pc3Npb24oXCJleHBfZ3JvdXBzLmFzc2lnbm1lbnQubGlzdFwiKSAmJiA8PlxyXG5cdFx0XHQ8U2VjdGlvbkhlYWRlclxyXG5cdFx0XHRcdHRpdGxlPVwiQXNzaWdubWVudHNcIlxyXG5cdFx0XHRcdGV4dHJhPXtcclxuXHRcdFx0XHRcdGFjY291bnQuaGFzUGVybWlzc2lvbihcImV4cF9ncm91cHMuYXNzaWdubWVudC5jcmVhdGVcIilcclxuXHRcdFx0XHRcdFx0PyA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gc2V0QXNzaWdubWVudE9wZW4odHJ1ZSl9PkNyZWF0ZTwvQnV0dG9uPlxyXG5cdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0Lz5cclxuXHRcdFx0PEFzc2lnbm1lbnRzVGFibGUgLz5cclxuXHRcdFx0PEFzc2lnbm1lbnRGb3JtIG9wZW49e2Fzc2lnbm1lbnRPcGVufSBzZXRPcGVuPXtzZXRBc3NpZ25tZW50T3Blbn0gLz5cclxuXHRcdDwvPn1cclxuXHQ8L1BhZ2VMYXlvdXQ+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV2ViUGx1Z2luIGV4dGVuZHMgQmFzZVdlYlBsdWdpbiB7XHJcblx0Z3JvdXBzID0gbmV3IGxpYi5NYXBTdWJzY3JpYmVyKG1lc3NhZ2VzLkdyb3VwVXBkYXRlZEV2ZW50LCB0aGlzLmNvbnRyb2wpO1xyXG5cdGFzc2lnbm1lbnRzID0gbmV3IGxpYi5NYXBTdWJzY3JpYmVyKG1lc3NhZ2VzLk1hbnVhbEFzc2lnbm1lbnRVcGRhdGVkRXZlbnQsIHRoaXMuY29udHJvbCk7XHJcblx0cm9sZU1hcHBpbmdzID0gbmV3IGxpYi5NYXBTdWJzY3JpYmVyKG1lc3NhZ2VzLlJvbGVNYXBwaW5nVXBkYXRlZEV2ZW50LCB0aGlzLmNvbnRyb2wpO1xyXG5cclxuXHRhc3luYyBpbml0KCkge1xyXG5cdFx0dGhpcy5wYWdlcyA9IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhdGg6IFwiL3Blcm1pc3Npb25fZ3JvdXBzXCIsXHJcblx0XHRcdFx0c2lkZWJhck5hbWU6IFwiUGVybWlzc2lvbiBHcm91cHNcIixcclxuXHRcdFx0XHRwZXJtaXNzaW9uOiAoYWNjb3VudCA9PiBhY2NvdW50Lmhhc0FueVBlcm1pc3Npb24oXHJcbiAgICAgICAgICAgICAgICAgICAgXCJleHBfZ3JvdXBzLmdyb3VwLmxpc3RcIixcclxuICAgICAgICAgICAgICAgICAgICBcImV4cF9ncm91cHMuYXNzaWdubWVudC5saXN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJleHBfZ3JvdXBzLnJvbGVfbWFwcGluZy5saXN0XCIsXHJcbiAgICAgICAgICAgICAgICApKSxcclxuXHRcdFx0XHRjb250ZW50OiA8RXhwR3JvdXBzUGFnZSAvPixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhdGg6IFwiL3Blcm1pc3Npb25fZ3JvdXBzLzppZC92aWV3XCIsXHJcblx0XHRcdFx0c2lkZWJhclBhdGg6IFwiL3Blcm1pc3Npb25fZ3JvdXBzXCIsXHJcblx0XHRcdFx0cGVybWlzc2lvbjogXCJleHBfZ3JvdXBzLmdyb3VwLmdldFwiLFxyXG5cdFx0XHRcdGNvbnRlbnQ6IDxHcm91cFZpZXdQYWdlIC8+LFxyXG5cdFx0XHR9LFxyXG5cdFx0XTtcclxuXHR9XHJcblxyXG5cdHVzZUdyb3VwcygpIHtcclxuXHRcdGNvbnN0IHN1YnNjcmliZSA9IHVzZUNhbGxiYWNrKChjYjogKCkgPT4gdm9pZCkgPT4gdGhpcy5ncm91cHMuc3Vic2NyaWJlKGNiKSwgW10pO1xyXG5cdFx0cmV0dXJuIHVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgKCkgPT4gdGhpcy5ncm91cHMuZ2V0U25hcHNob3QoKSk7XHJcblx0fVxyXG5cclxuXHR1c2VBc3NpZ25tZW50cygpIHtcclxuXHRcdGNvbnN0IHN1YnNjcmliZSA9IHVzZUNhbGxiYWNrKChjYjogKCkgPT4gdm9pZCkgPT4gdGhpcy5hc3NpZ25tZW50cy5zdWJzY3JpYmUoY2IpLCBbXSk7XHJcblx0XHRyZXR1cm4gdXNlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCAoKSA9PiB0aGlzLmFzc2lnbm1lbnRzLmdldFNuYXBzaG90KCkpO1xyXG5cdH1cclxuXHJcblx0dXNlUm9sZU1hcHBpbmdzKCkge1xyXG5cdFx0Y29uc3Qgc3Vic2NyaWJlID0gdXNlQ2FsbGJhY2soKGNiOiAoKSA9PiB2b2lkKSA9PiB0aGlzLnJvbGVNYXBwaW5ncy5zdWJzY3JpYmUoY2IpLCBbXSk7XHJcblx0XHRyZXR1cm4gdXNlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCAoKSA9PiB0aGlzLnJvbGVNYXBwaW5ncy5nZXRTbmFwc2hvdCgpKTtcclxuXHR9XHJcbn1cclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJ1c2VDYWxsYmFjayIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwiQmFzZVdlYlBsdWdpbiIsIlBhZ2VMYXlvdXQiLCJQYWdlSGVhZGVyIiwidXNlQWNjb3VudCIsIlNlY3Rpb25IZWFkZXIiLCJCdXR0b24iLCJtZXNzYWdlcyIsImxpYiIsIkdyb3Vwc1RhYmxlIiwiQXNzaWdubWVudHNUYWJsZSIsIlJvbGVNYXBwaW5nc1RhYmxlIiwiR3JvdXBWaWV3UGFnZSIsIkdyb3VwRm9ybSIsIlJvbGVNYXBwaW5nRm9ybSIsIkFzc2lnbm1lbnRGb3JtIiwiRXhwR3JvdXBzUGFnZSIsImFjY291bnQiLCJncm91cE9wZW4iLCJzZXRHcm91cE9wZW4iLCJhc3NpZ25tZW50T3BlbiIsInNldEFzc2lnbm1lbnRPcGVuIiwicm9sZU1hcHBpbmdPcGVuIiwic2V0Um9sZU1hcHBpbmdPcGVuIiwibmF2IiwibmFtZSIsInRpdGxlIiwiaGFzUGVybWlzc2lvbiIsImV4dHJhIiwidHlwZSIsIm9uQ2xpY2siLCJ1bmRlZmluZWQiLCJvcGVuIiwic2V0T3BlbiIsIldlYlBsdWdpbiIsImdyb3VwcyIsIk1hcFN1YnNjcmliZXIiLCJHcm91cFVwZGF0ZWRFdmVudCIsImNvbnRyb2wiLCJhc3NpZ25tZW50cyIsIk1hbnVhbEFzc2lnbm1lbnRVcGRhdGVkRXZlbnQiLCJyb2xlTWFwcGluZ3MiLCJSb2xlTWFwcGluZ1VwZGF0ZWRFdmVudCIsImluaXQiLCJwYWdlcyIsInBhdGgiLCJzaWRlYmFyTmFtZSIsInBlcm1pc3Npb24iLCJoYXNBbnlQZXJtaXNzaW9uIiwiY29udGVudCIsInNpZGViYXJQYXRoIiwidXNlR3JvdXBzIiwic3Vic2NyaWJlIiwiY2IiLCJnZXRTbmFwc2hvdCIsInVzZUFzc2lnbm1lbnRzIiwidXNlUm9sZU1hcHBpbmdzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///769\n\n}");
|
|
99
|
+
|
|
100
|
+
/***/ }
|
|
101
|
+
|
|
102
|
+
}]);
|