react-toolkits 2.24.19 → 2.24.20

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.
Files changed (96) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +14 -0
  3. package/lib/chunk-3VI7KSDA.js +2 -0
  4. package/lib/{chunk-H5Y4DYUL.js.map → chunk-3VI7KSDA.js.map} +1 -1
  5. package/lib/chunk-3ZT3BOPJ.js +3 -0
  6. package/lib/chunk-3ZT3BOPJ.js.map +1 -0
  7. package/lib/{chunk-D75NVCYN.js → chunk-D5OM3OZU.js} +2 -2
  8. package/lib/{chunk-D75NVCYN.js.map → chunk-D5OM3OZU.js.map} +1 -1
  9. package/lib/chunk-F3OT6ENF.js +2 -0
  10. package/lib/{chunk-UPO7NB6O.js.map → chunk-F3OT6ENF.js.map} +1 -1
  11. package/lib/chunk-FD52RBG7.js +2 -0
  12. package/lib/{chunk-ZF7POJAA.js.map → chunk-FD52RBG7.js.map} +1 -1
  13. package/lib/{chunk-ST7VUWJ4.js → chunk-IWPBGSXS.js} +2 -2
  14. package/lib/{chunk-ST7VUWJ4.js.map → chunk-IWPBGSXS.js.map} +1 -1
  15. package/lib/chunk-S4LUEDFA.js +2 -0
  16. package/lib/{chunk-NNXVZIY2.js.map → chunk-S4LUEDFA.js.map} +1 -1
  17. package/lib/chunk-SMBHLRAO.js +2 -0
  18. package/lib/chunk-SMBHLRAO.js.map +1 -0
  19. package/lib/chunk-XX2BCZJU.js +2 -0
  20. package/lib/{chunk-MTRFNFEM.js.map → chunk-XX2BCZJU.js.map} +1 -1
  21. package/lib/{createMenuItem-SXFYDNCW.js → createMenuItem-5DDIEELO.js} +2 -2
  22. package/lib/{createMenuItem-SXFYDNCW.js.map → createMenuItem-5DDIEELO.js.map} +1 -1
  23. package/lib/index.css +1 -1
  24. package/lib/index.d.ts +9 -2
  25. package/lib/index.js +2 -2
  26. package/lib/index.js.map +1 -1
  27. package/lib/{menuItemList-NIBRDRTA.js → menuItemList-4ZLZ7HSG.js} +2 -2
  28. package/lib/{menuItemList-NIBRDRTA.js.map → menuItemList-4ZLZ7HSG.js.map} +1 -1
  29. package/lib/{roleDetail-7HEBW7IS.js → roleDetail-42BOHDFS.js} +2 -2
  30. package/lib/{roleDetail-7HEBW7IS.js.map → roleDetail-42BOHDFS.js.map} +1 -1
  31. package/lib/{roleList-WGLD3HXB.js → roleList-KWWO3IFL.js} +2 -2
  32. package/lib/{roleList-WGLD3HXB.js.map → roleList-KWWO3IFL.js.map} +1 -1
  33. package/lib/updateMenuItem-E5QMBR2S.js +2 -0
  34. package/lib/{updateMenuItem-TECCUD6Z.js.map → updateMenuItem-E5QMBR2S.js.map} +1 -1
  35. package/lib/userDetail-L7Q3C67K.js +2 -0
  36. package/lib/{userDetail-WGQJ7IC5.js.map → userDetail-L7Q3C67K.js.map} +1 -1
  37. package/lib/userList-IU4L5YRJ.js +2 -0
  38. package/lib/{userList-2S2FRAG6.js.map → userList-IU4L5YRJ.js.map} +1 -1
  39. package/locale/context.js +1 -7
  40. package/locale/context.js.map +1 -1
  41. package/locale/en_GB.js +1 -94
  42. package/locale/en_GB.js.map +1 -1
  43. package/locale/hooks.js +1 -18
  44. package/locale/hooks.js.map +1 -1
  45. package/locale/index.js +1 -2
  46. package/locale/ja_JP.js +1 -94
  47. package/locale/ja_JP.js.map +1 -1
  48. package/locale/ko_KR.js +1 -94
  49. package/locale/ko_KR.js.map +1 -1
  50. package/locale/zh_CN.js +1 -94
  51. package/locale/zh_CN.js.map +1 -1
  52. package/package.json +1 -1
  53. package/lib/chunk-7X2LW6EY.js +0 -73
  54. package/lib/chunk-7X2LW6EY.js.map +0 -1
  55. package/lib/chunk-DLTAWT6S.js +0 -2
  56. package/lib/chunk-DLTAWT6S.js.map +0 -1
  57. package/lib/chunk-E6L6VKSV.js +0 -227
  58. package/lib/chunk-E6L6VKSV.js.map +0 -1
  59. package/lib/chunk-ESCBNFWD.js +0 -498
  60. package/lib/chunk-ESCBNFWD.js.map +0 -1
  61. package/lib/chunk-FSXYUF4U.js +0 -276
  62. package/lib/chunk-FSXYUF4U.js.map +0 -1
  63. package/lib/chunk-H5Y4DYUL.js +0 -2
  64. package/lib/chunk-LXMQLSQY.js +0 -46
  65. package/lib/chunk-LXMQLSQY.js.map +0 -1
  66. package/lib/chunk-MTRFNFEM.js +0 -2
  67. package/lib/chunk-NNXVZIY2.js +0 -2
  68. package/lib/chunk-OH74GXG4.js +0 -570
  69. package/lib/chunk-OH74GXG4.js.map +0 -1
  70. package/lib/chunk-P25BHLH3.js +0 -3
  71. package/lib/chunk-P25BHLH3.js.map +0 -1
  72. package/lib/chunk-QACSRYJY.js +0 -147
  73. package/lib/chunk-QACSRYJY.js.map +0 -1
  74. package/lib/chunk-UPO7NB6O.js +0 -2
  75. package/lib/chunk-Z6PDWY44.js +0 -17
  76. package/lib/chunk-Z6PDWY44.js.map +0 -1
  77. package/lib/chunk-ZF7POJAA.js +0 -2
  78. package/lib/chunk-ZOHMJAAX.js +0 -120
  79. package/lib/chunk-ZOHMJAAX.js.map +0 -1
  80. package/lib/createMenuItem-CICLQWU6.js +0 -86
  81. package/lib/createMenuItem-CICLQWU6.js.map +0 -1
  82. package/lib/menuItemList-EHQSS4YZ.js +0 -132
  83. package/lib/menuItemList-EHQSS4YZ.js.map +0 -1
  84. package/lib/roleDetail-JCDOXKAM.js +0 -72
  85. package/lib/roleDetail-JCDOXKAM.js.map +0 -1
  86. package/lib/roleList-4C77ULPK.js +0 -161
  87. package/lib/roleList-4C77ULPK.js.map +0 -1
  88. package/lib/updateMenuItem-K62CKVXP.js +0 -109
  89. package/lib/updateMenuItem-K62CKVXP.js.map +0 -1
  90. package/lib/updateMenuItem-TECCUD6Z.js +0 -2
  91. package/lib/userDetail-WGQJ7IC5.js +0 -2
  92. package/lib/userDetail-WYN52ZJ2.js +0 -116
  93. package/lib/userDetail-WYN52ZJ2.js.map +0 -1
  94. package/lib/userList-2S2FRAG6.js +0 -2
  95. package/lib/userList-AMVG7RCE.js +0 -195
  96. package/lib/userList-AMVG7RCE.js.map +0 -1
@@ -1,276 +0,0 @@
1
- import { useCreateRole, useUpdateRole, useAllPermissionsV2, useAllPermissions } from './chunk-QACSRYJY.js';
2
- import { useFormModal } from './chunk-ZOHMJAAX.js';
3
- import { useTranslation } from './chunk-Z6PDWY44.js';
4
- import { useGames } from './chunk-7X2LW6EY.js';
5
- import { __name, useToolkitsStore } from './chunk-OH74GXG4.js';
6
- import { Typography, Select, App, Form, Input, Divider, Skeleton, Card, Empty, Button, Space, Checkbox, Row, Col, Collapse } from 'antd';
7
- import { useState, useEffect, useTransition, useCallback } from 'react';
8
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
-
10
- var PermissionCollapse = /* @__PURE__ */ __name((props) => {
11
- const { permissions, readonly, expand, value, onChange } = props;
12
- const [activeKey, setActiveKey] = useState([]);
13
- const [checkedMap, setCheckedMap] = useState({});
14
- const [internalValue, setInternalValue] = useState(value ?? []);
15
- const { t } = useTranslation();
16
- const [, startTransition] = useTransition();
17
- const onCollapseChange = useCallback((key) => {
18
- setActiveKey(key);
19
- }, []);
20
- const getCheckedValue = /* @__PURE__ */ __name((checkedValue, codes) => {
21
- let tempValue = [];
22
- if (checkedValue) {
23
- tempValue = [...new Set(internalValue.concat(codes))];
24
- } else {
25
- tempValue = internalValue.slice();
26
- codes.forEach((code) => {
27
- const index = tempValue.findIndex((item) => item === code);
28
- if (index > -1) {
29
- tempValue.splice(index, 1);
30
- }
31
- });
32
- }
33
- return tempValue;
34
- }, "getCheckedValue");
35
- const onCheckChange = /* @__PURE__ */ __name((e, codes) => {
36
- const checkedValue = getCheckedValue(e.target.checked, codes);
37
- setInternalValue(checkedValue);
38
- onChange?.(checkedValue);
39
- }, "onCheckChange");
40
- useEffect(() => {
41
- setInternalValue(value ?? []);
42
- }, [value]);
43
- useEffect(() => {
44
- if (expand) {
45
- startTransition(() => {
46
- setActiveKey((permissions ?? []).map(({ category }) => category));
47
- });
48
- }
49
- }, [expand, permissions]);
50
- useEffect(() => {
51
- const checkedValue = (permissions ?? []).reduce(
52
- (acc, curr) => {
53
- acc[curr.category] = curr.permissions.every((item) => internalValue?.includes(item.value));
54
- return acc;
55
- },
56
- {}
57
- );
58
- setCheckedMap(checkedValue);
59
- }, [internalValue, permissions]);
60
- const items = (permissions ?? []).map((item) => ({
61
- key: item.category,
62
- label: item.category,
63
- extra: !readonly && /* @__PURE__ */ jsx(
64
- Checkbox,
65
- {
66
- checked: checkedMap[item.category],
67
- onChange: (e) => {
68
- onCheckChange(
69
- e,
70
- item.permissions?.map((permission) => permission.value)
71
- );
72
- },
73
- children: t("global.selectAll")
74
- }
75
- ),
76
- children: /* @__PURE__ */ jsx(Checkbox.Group, { style: { width: "100%" }, value: internalValue, disabled: readonly, children: /* @__PURE__ */ jsx(Row, { gutter: [10, 10], style: { width: "100%" }, children: item.permissions?.map((permission) => /* @__PURE__ */ jsx(Col, { span: 6, children: /* @__PURE__ */ jsx(
77
- Checkbox,
78
- {
79
- value: permission.value,
80
- onChange: (e) => {
81
- onCheckChange(e, [permission.value]);
82
- },
83
- children: permission.label
84
- }
85
- ) }, permission.value)) }) })
86
- }));
87
- return /* @__PURE__ */ jsx(
88
- Collapse,
89
- {
90
- style: { width: "100%" },
91
- collapsible: "header",
92
- activeKey,
93
- items,
94
- onChange: onCollapseChange
95
- }
96
- );
97
- }, "PermissionCollapse");
98
- var permissionCollapse_default = PermissionCollapse;
99
- var { Text } = Typography;
100
- var { Option } = Select;
101
- var PermissionWithGame = /* @__PURE__ */ __name((props) => {
102
- const { expand = true, value, readonly, onChange } = props;
103
- const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2();
104
- const { data: games, isLoading: isGamesLoading } = useGames();
105
- const [gameList, setGameList] = useState([]);
106
- const globalPermissions = permission?.filter((item) => item.is_common);
107
- const gamePermissions = permission?.filter((item) => !item.is_common);
108
- const isLoading = isPermissionLoading || isGamesLoading;
109
- const { t } = useTranslation();
110
- useEffect(() => {
111
- const list = [];
112
- Object.keys(value ?? {}).forEach((key) => {
113
- if (key !== "global") {
114
- list.push({ gameId: key, permissions: value?.[key] ?? [] });
115
- }
116
- });
117
- setGameList(list);
118
- }, [value]);
119
- if (error) {
120
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text, { type: "danger", children: t("PermissionList.failedDescription") }) });
121
- }
122
- const addGame = /* @__PURE__ */ __name(() => {
123
- setGameList((prev) => [...prev, { gameId: "", permissions: [] }]);
124
- }, "addGame");
125
- const removeGame = /* @__PURE__ */ __name((index) => {
126
- setGameList((prev) => prev.filter((_, i) => i !== index));
127
- }, "removeGame");
128
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full", children: [
129
- /* @__PURE__ */ jsx("div", { className: "mb-12", children: /* @__PURE__ */ jsx(Divider, { dashed: true, children: t("PermissionList.baseSectionTitle") }) }),
130
- /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
131
- permissionCollapse_default,
132
- {
133
- value: value?.global,
134
- readonly,
135
- permissions: globalPermissions,
136
- expand,
137
- onChange: (newValue) => {
138
- onChange?.({
139
- ...value,
140
- global: newValue
141
- });
142
- }
143
- }
144
- ) }),
145
- /* @__PURE__ */ jsx("div", { className: "my-12", children: /* @__PURE__ */ jsx(Divider, { dashed: true, children: t("PermissionList.gameSectionTitle") }) }),
146
- gameList.map((item, index) => /* @__PURE__ */ jsx(
147
- Card,
148
- {
149
- title: /* @__PURE__ */ jsxs(Space, { children: [
150
- /* @__PURE__ */ jsx(Text, { children: t("global.game") }),
151
- readonly ? /* @__PURE__ */ jsx(Text, { children: games?.find((game) => String(game.id) === item.gameId)?.name }) : /* @__PURE__ */ jsx(
152
- Select,
153
- {
154
- disabled: readonly,
155
- value: gameList[index].gameId || void 0,
156
- style: { width: "160px" },
157
- placeholder: t("PermissionList.gameSelectPlaceholder"),
158
- onChange: (selectedValue) => {
159
- setGameList((pev) => {
160
- const temp = pev.slice();
161
- temp[index].gameId = selectedValue;
162
- return temp;
163
- });
164
- },
165
- children: games?.map((game) => /* @__PURE__ */ jsx(
166
- Option,
167
- {
168
- value: game.id,
169
- disabled: gameList.some(({ gameId }) => gameId === String(game.id)),
170
- children: game.name
171
- },
172
- game.id
173
- ))
174
- }
175
- )
176
- ] }),
177
- className: "mb-6",
178
- extra: !readonly && /* @__PURE__ */ jsx(
179
- Button,
180
- {
181
- type: "link",
182
- onClick: () => {
183
- removeGame(index);
184
- },
185
- children: t("PermissionList.removeText")
186
- }
187
- ),
188
- children: gameList[index].gameId ? /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
189
- permissionCollapse_default,
190
- {
191
- value: value?.[gameList[index].gameId],
192
- readonly,
193
- expand,
194
- permissions: gamePermissions,
195
- onChange: (newValue) => {
196
- onChange?.({
197
- ...value,
198
- [gameList[index].gameId]: newValue
199
- });
200
- }
201
- }
202
- ) }) : /* @__PURE__ */ jsx(Empty, { description: t("PermissionList.gameSectionDescription") })
203
- },
204
- index
205
- )),
206
- !readonly && /* @__PURE__ */ jsx(Button, { block: true, type: "dashed", onClick: addGame, children: t("PermissionList.addText") })
207
- ] });
208
- }, "PermissionWithGame");
209
- var PermissionWithGame_default = PermissionWithGame;
210
- var { Text: Text2 } = Typography;
211
- var PermissionWithoutGame = /* @__PURE__ */ __name((props) => {
212
- const { expand = true, value, readonly, onChange } = props;
213
- const { data: permissions, isLoading, error } = useAllPermissions();
214
- const { t } = useTranslation();
215
- if (error) {
216
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text2, { type: "danger", children: t("PermissionList.failedDescription") }) });
217
- }
218
- return /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
219
- permissionCollapse_default,
220
- {
221
- value,
222
- permissions,
223
- readonly,
224
- expand,
225
- onChange
226
- }
227
- ) });
228
- }, "PermissionWithoutGame");
229
- var PermissionWithoutGame_default = PermissionWithoutGame;
230
- var PermissionList = /* @__PURE__ */ __name((props) => {
231
- const { value } = props;
232
- console.log("value", typeof value, value === null, JSON.stringify(value));
233
- const { permissionVersion } = useToolkitsStore();
234
- if (permissionVersion === "v2" /* V2 */) {
235
- return /* @__PURE__ */ jsx(PermissionWithGame_default, { ...props, value });
236
- }
237
- return /* @__PURE__ */ jsx(PermissionWithoutGame_default, { ...props, value });
238
- }, "PermissionList");
239
- var permissionList_default = PermissionList;
240
- var useRoleModal = /* @__PURE__ */ __name(({ mode, onSuccess }) => {
241
- const { message } = App.useApp();
242
- const { t } = useTranslation();
243
- const create = useCreateRole();
244
- const update = useUpdateRole();
245
- const isCreateMode = mode === "create";
246
- const title = isCreateMode ? t("Role.createTitle") : t("Role.updateTitle");
247
- const content = /* @__PURE__ */ jsxs(Fragment, { children: [
248
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreateMode }) }),
249
- /* @__PURE__ */ jsx(Form.Item, { name: "permissions", children: /* @__PURE__ */ jsx(permissionList_default, {}) })
250
- ] });
251
- const onConfirm = /* @__PURE__ */ __name(async (values, extraValues) => {
252
- const name = `role_${values.name}`;
253
- const permissions = values.permissions;
254
- if (isCreateMode) {
255
- await create.mutateAsync({ name, permissions });
256
- message.success(t("Role.createSuccessfully"));
257
- } else {
258
- await update.mutateAsync({ id: extraValues?.id, name, permissions });
259
- message.success(t("Role.updateSuccessfully"));
260
- }
261
- onSuccess?.();
262
- }, "onConfirm");
263
- return useFormModal({
264
- title,
265
- width: "1000px",
266
- formProps: {
267
- layout: "vertical"
268
- },
269
- content,
270
- onConfirm
271
- });
272
- }, "useRoleModal");
273
-
274
- export { permissionList_default, useRoleModal };
275
- //# sourceMappingURL=chunk-FSXYUF4U.js.map
276
- //# sourceMappingURL=chunk-FSXYUF4U.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/modules/permission/components/permissionCollapse/index.tsx","../src/modules/permission/components/permissionList/PermissionWithGame.tsx","../src/modules/permission/components/permissionList/PermissionWithoutGame.tsx","../src/modules/permission/components/permissionList/index.tsx","../src/modules/permission/hooks/role-hooks.tsx"],"names":["useState","useEffect","jsx","Text","Typography","Skeleton","jsxs"],"mappings":"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","file":"chunk-FSXYUF4U.js","sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState, useTransition } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const { t } = useTranslation()\n const [, startTransition] = useTransition()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n startTransition(() => {\n // 改变展开状态\n setActiveKey((permissions ?? []).map(({ category }) => category))\n })\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const items = (permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions?.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions?.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={items}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport { useAllPermissionsV2 } from '../../services'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionWithGameProps extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionWithGame: FC<PermissionWithGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2()\n const { data: games, isLoading: isGamesLoading } = useGames()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const isLoading = isPermissionLoading || isGamesLoading\n const { t } = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => String(game.id) === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option\n key={game.id}\n value={game.id}\n disabled={gameList.some(({ gameId }) => gameId === String(game.id))}\n >\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionWithGame\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport { useAllPermissions } from '../../services'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\n\ninterface PermissionWithoutGameProps extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionWithoutGame: FC<PermissionWithoutGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const { t } = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionWithoutGame\n","import type { FC } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\n\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionWithGame from './PermissionWithGame'\nimport PermissionWithoutGame from './PermissionWithoutGame'\nimport type { PermissionListPropsBase } from './types'\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n console.log('value', typeof value, value === null, JSON.stringify(value))\n const { permissionVersion } = useToolkitsStore()\n\n if (permissionVersion === PermissionVersion.V2) {\n return <PermissionWithGame {...props} value={value as RoleV2['permissions']} />\n }\n\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n}\n\nexport default PermissionList\n","import { App, Form, Input } from 'antd'\n\nimport { useFormModal } from '@/hooks/modal'\nimport { useTranslation } from '@/locale'\n\nimport PermissionList from '../components/permissionList'\nimport { useCreateRole, useUpdateRole } from '../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../types'\n\nexport const useRoleModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const create = useCreateRole()\n const update = useUpdateRole()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('Role.createTitle') : t('Role.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (\n values: { name: string; permissions: RoleListItem['permissions'] },\n extraValues: { id: number },\n ) => {\n const name = `role_${values.name}`\n const permissions = values.permissions\n\n if (isCreateMode) {\n await create.mutateAsync({ name, permissions })\n message.success(t('Role.createSuccessfully'))\n } else {\n await update.mutateAsync({ id: extraValues?.id, name, permissions })\n message.success(t('Role.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n { id: number }\n >({\n title,\n width: '1000px',\n formProps: {\n layout: 'vertical',\n },\n content,\n onConfirm,\n })\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {l,m,i}from'./chunk-P25BHLH3.js';import {useQuery,useQueryClient,useMutation}from'@tanstack/react-query';function f(){let s=l();return useQuery({queryKey:m.roles.all,queryFn:()=>s.get("/api/usystem/role/all")})}function R(s){let i$1=i(o=>o.permissionVersion),t=l(),e=i$1==="v2"?"v2":"v1";return useQuery({queryKey:m.roles.detail(s,e),queryFn:()=>t.get(`/api/usystem/role/${e==="v2"?"infoV2":"info"}?name=${s}`)})}function q(){let{permissionVersion:s}=i(o=>o),i$1=l(),t=useQueryClient(),e=s==="v2"?"v2":"v1";return useMutation({mutationKey:m.roles.create(e),mutationFn:({name:o,permissions:u})=>i$1.post(e==="v2"?"/api/usystem/role/createV2":"/api/usystem/role/create",{name:o,permissions:u}),onSuccess:()=>{t.invalidateQueries({queryKey:m.roles.all});}})}function v(){let{permissionVersion:s}=i(o=>o),i$1=l(),t=useQueryClient(),e=s==="v2"?"v2":"v1";return useMutation({mutationKey:m.roles.update(e),mutationFn:({id:o,name:u,permissions:m})=>i$1.post(e==="v2"?"/api/usystem/role/updateV2":"/api/usystem/role/update",{id:o,name:u,permissions:m}),onSuccess:()=>{t.invalidateQueries({queryKey:m.roles.all});}})}function C(){let s=l(),i=useQueryClient();return useMutation({mutationKey:m.roles.delete,mutationFn:({id:t,name:e})=>s.post("/api/usystem/role/delete",{id:t,name:e}),onSuccess:()=>{i.invalidateQueries({queryKey:m.roles.all});}})}function K(){let s=l(),i$1=useQueryClient(),{permissionVersion:t}=i();return useMutation({mutationKey:m.users.create,mutationFn:e=>{let o=m=>"permissions"in m,u=e;if(o(e)&&t==="v4"){let m=e.permissions.map(y=>({game_group:["*"],game_ids:y.game_ids,role:y.role}));u={...e,permissions:m};}return s.post("/api/usystem/user/create",u)},onSuccess:()=>{i$1.invalidateQueries({queryKey:m.users.all});}})}function h(){let s=l(),i$1=useQueryClient(),{permissionVersion:t}=i();return useMutation({mutationKey:m.users.update,mutationFn:e=>{let o=m=>"permissions"in m,u=e;if(o(e)&&t==="v4"){let m=e.permissions.map(y=>({game_group:["*"],game_ids:y.game_ids,role:y.role}));u={...e,permissions:m};}return s.post("/api/usystem/user/update",u)},onSuccess:()=>{i$1.invalidateQueries({queryKey:m.users.all});}})}function W(){let s=l(),i=useQueryClient();return useMutation({mutationKey:m.users.delete,mutationFn:({id:t,name:e})=>s.post("/api/usystem/user/delete",{id:t,name:e}),onSuccess:()=>{i.invalidateQueries({queryKey:m.users.all});}})}function k(){let s=l();return useQuery({queryKey:m.permissions.allPermissions,queryFn:()=>s.get("/api/usystem/user/allPermssions")})}function x(){let s=l();return useQuery({queryKey:m.permissions.allPermissionsV2,queryFn:()=>s.get("/api/usystem/user/allPermssionsV2")})}export{f as a,R as b,q as c,v as d,C as e,K as f,h as g,W as h,k as i,x as j};//# sourceMappingURL=chunk-H5Y4DYUL.js.map
2
- //# sourceMappingURL=chunk-H5Y4DYUL.js.map
@@ -1,46 +0,0 @@
1
- import { __name, useKy, queryKeys } from './chunk-OH74GXG4.js';
2
- import { useQueryClient, useMutation } from '@tanstack/react-query';
3
-
4
- function useCreateMenu() {
5
- const ky = useKy();
6
- const queryClient = useQueryClient();
7
- return useMutation({
8
- mutationKey: queryKeys.menus.create,
9
- mutationFn: /* @__PURE__ */ __name((arg) => ky.post("/api/usystem/menu/set", { ...arg, id: 0, is_model: true }), "mutationFn"),
10
- onSuccess: /* @__PURE__ */ __name(() => {
11
- queryClient.invalidateQueries({ queryKey: queryKeys.menus.all });
12
- queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() });
13
- }, "onSuccess")
14
- });
15
- }
16
- __name(useCreateMenu, "useCreateMenu");
17
- function useUpdateMenu() {
18
- const ky = useKy();
19
- const queryClient = useQueryClient();
20
- return useMutation({
21
- mutationKey: queryKeys.menus.update,
22
- mutationFn: /* @__PURE__ */ __name((arg) => ky.post("/api/usystem/menu/set", { ...arg, is_model: true }), "mutationFn"),
23
- onSuccess: /* @__PURE__ */ __name(() => {
24
- queryClient.invalidateQueries({ queryKey: queryKeys.menus.all });
25
- queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() });
26
- }, "onSuccess")
27
- });
28
- }
29
- __name(useUpdateMenu, "useUpdateMenu");
30
- function useRemoveMenu() {
31
- const ky = useKy();
32
- const queryClient = useQueryClient();
33
- return useMutation({
34
- mutationKey: queryKeys.menus.delete,
35
- mutationFn: /* @__PURE__ */ __name((id) => ky.post("/api/usystem/menu/delete", null, { searchParams: { id } }), "mutationFn"),
36
- onSuccess: /* @__PURE__ */ __name(() => {
37
- queryClient.invalidateQueries({ queryKey: queryKeys.menus.all });
38
- queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() });
39
- }, "onSuccess")
40
- });
41
- }
42
- __name(useRemoveMenu, "useRemoveMenu");
43
-
44
- export { useCreateMenu, useRemoveMenu, useUpdateMenu };
45
- //# sourceMappingURL=chunk-LXMQLSQY.js.map
46
- //# sourceMappingURL=chunk-LXMQLSQY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/modules/menu/services/index.ts"],"names":[],"mappings":";;;AAMO,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,cAAc,cAAA,EAAe;AAEnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,WAAA,EAAa,UAAU,KAAA,CAAM,MAAA;AAAA,IAC7B,UAAA,kBAAY,MAAA,CAAA,CAAC,GAAA,KAAkC,EAAA,CAAG,KAAK,uBAAA,EAAyB,EAAE,GAAG,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,QAAA,EAAU,IAAA,EAAM,CAAA,EAArG,YAAA,CAAA;AAAA,IACZ,2BAAW,MAAA,CAAA,MAAM;AACf,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA;AAC/D,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,UAAU,KAAA,CAAM,MAAA,IAAU,CAAA;AAAA,IACtE,CAAA,EAHW,WAAA;AAAA,GAIZ,CAAA;AACH;AAZgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAcT,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,cAAc,cAAA,EAAe;AAEnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,WAAA,EAAa,UAAU,KAAA,CAAM,MAAA;AAAA,IAC7B,UAAA,kBAAY,MAAA,CAAA,CAAC,GAAA,KAAsB,EAAA,CAAG,IAAA,CAAK,uBAAA,EAAyB,EAAE,GAAG,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,CAAA,EAAlF,YAAA,CAAA;AAAA,IACZ,2BAAW,MAAA,CAAA,MAAM;AACf,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA;AAC/D,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,UAAU,KAAA,CAAM,MAAA,IAAU,CAAA;AAAA,IACtE,CAAA,EAHW,WAAA;AAAA,GAIZ,CAAA;AACH;AAZgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAcT,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,cAAc,cAAA,EAAe;AAEnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,WAAA,EAAa,UAAU,KAAA,CAAM,MAAA;AAAA,IAC7B,UAAA,kBAAY,MAAA,CAAA,CAAC,EAAA,KAAe,EAAA,CAAG,IAAA,CAAK,0BAAA,EAA4B,IAAA,EAAM,EAAE,YAAA,EAAc,EAAE,EAAA,EAAG,EAAG,CAAA,EAAlF,YAAA,CAAA;AAAA,IACZ,2BAAW,MAAA,CAAA,MAAM;AACf,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA;AAC/D,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,UAAU,KAAA,CAAM,MAAA,IAAU,CAAA;AAAA,IACtE,CAAA,EAHW,WAAA;AAAA,GAIZ,CAAA;AACH;AAZgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"chunk-LXMQLSQY.js","sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\n\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { MenuListItem } from '@/types'\n\nexport function useCreateMenu() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.create,\n mutationFn: (arg: Omit<MenuListItem, 'id'>) => ky.post('/api/usystem/menu/set', { ...arg, id: 0, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useUpdateMenu() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.update,\n mutationFn: (arg: MenuListItem) => ky.post('/api/usystem/menu/set', { ...arg, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useRemoveMenu() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.delete,\n mutationFn: (id: number) => ky.post('/api/usystem/menu/delete', null, { searchParams: { id } }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {c,d,j,i as i$1}from'./chunk-H5Y4DYUL.js';import {d as d$1}from'./chunk-D75NVCYN.js';import {a}from'./chunk-NNXVZIY2.js';import {c as c$1}from'./chunk-DLTAWT6S.js';import {i}from'./chunk-P25BHLH3.js';import {Typography,Select,App,Form,Input,Divider,Skeleton,Card,Empty,Button,Space,Checkbox,Row,Col,Collapse}from'antd';import {useState,useEffect,useTransition,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var oe=m=>{let{permissions:i,readonly:n,expand:r,value:l,onChange:g}=m,[c,f]=useState([]),[y,R]=useState({}),[a$1,d]=useState(l??[]),{t:P}=a(),[,v]=useTransition(),V=useCallback(e=>{f(e);},[]),p=(e,s)=>{let o=[];return e?o=[...new Set(a$1.concat(s))]:(o=a$1.slice(),s.forEach(u=>{let b=o.findIndex(X=>X===u);b>-1&&o.splice(b,1);})),o},x=(e,s)=>{let o=p(e.target.checked,s);d(o),g?.(o);};useEffect(()=>{d(l??[]);},[l]),useEffect(()=>{r&&v(()=>{f((i??[]).map(({category:e})=>e));});},[r,i]),useEffect(()=>{let e=(i??[]).reduce((s,o)=>(s[o.category]=o.permissions.every(u=>a$1?.includes(u.value)),s),{});R(e);},[a$1,i]);let I=(i??[]).map(e=>({key:e.category,label:e.category,extra:!n&&jsx(Checkbox,{checked:y[e.category],onChange:s=>{x(s,e.permissions?.map(o=>o.value));},children:P("global.selectAll")}),children:jsx(Checkbox.Group,{style:{width:"100%"},value:a$1,disabled:n,children:jsx(Row,{gutter:[10,10],style:{width:"100%"},children:e.permissions?.map(s=>jsx(Col,{span:6,children:jsx(Checkbox,{value:s.value,onChange:o=>{x(o,[s.value]);},children:s.label})},s.value))})})}));return jsx(Collapse,{style:{width:"100%"},collapsible:"header",activeKey:c,items:I,onChange:V})},k=oe;var{Text:w}=Typography,{Option:le}=Select,pe=m=>{let{expand:i=true,value:n,readonly:r,onChange:l}=m,{data:g,isLoading:c,error:f}=j(),{data:y,isLoading:R}=c$1(),[a$1,d]=useState([]),P=g?.filter(e=>e.is_common),v=g?.filter(e=>!e.is_common),V=c||R,{t:p}=a();if(useEffect(()=>{let e=[];Object.keys(n??{}).forEach(s=>{s!=="global"&&e.push({gameId:s,permissions:n?.[s]??[]});}),d(e);},[n]),f)return jsx("div",{className:"flex justify-center",children:jsx(w,{type:"danger",children:p("PermissionList.failedDescription")})});let x=()=>{d(e=>[...e,{gameId:"",permissions:[]}]);},I=e=>{d(s=>s.filter((o,u)=>u!==e));};return jsxs("div",{className:"flex flex-col w-full",children:[jsx("div",{className:"mb-12",children:jsx(Divider,{dashed:true,children:p("PermissionList.baseSectionTitle")})}),jsx(Skeleton,{active:true,loading:V,children:jsx(k,{value:n?.global,readonly:r,permissions:P,expand:i,onChange:e=>{l?.({...n,global:e});}})}),jsx("div",{className:"my-12",children:jsx(Divider,{dashed:true,children:p("PermissionList.gameSectionTitle")})}),a$1.map((e,s)=>jsx(Card,{title:jsxs(Space,{children:[jsx(w,{children:p("global.game")}),r?jsx(w,{children:y?.find(o=>String(o.id)===e.gameId)?.name}):jsx(Select,{disabled:r,value:a$1[s].gameId||void 0,style:{width:"160px"},placeholder:p("PermissionList.gameSelectPlaceholder"),onChange:o=>{d(u=>{let b=u.slice();return b[s].gameId=o,b});},children:y?.map(o=>jsx(le,{value:o.id,disabled:a$1.some(({gameId:u})=>u===String(o.id)),children:o.name},o.id))})]}),className:"mb-6",extra:!r&&jsx(Button,{type:"link",onClick:()=>{I(s);},children:p("PermissionList.removeText")}),children:a$1[s].gameId?jsx(Skeleton,{active:true,loading:V,children:jsx(k,{value:n?.[a$1[s].gameId],readonly:r,expand:i,permissions:v,onChange:o=>{l?.({...n,[a$1[s].gameId]:o});}})}):jsx(Empty,{description:p("PermissionList.gameSectionDescription")})},s)),!r&&jsx(Button,{block:true,type:"dashed",onClick:x,children:p("PermissionList.addText")})]})},U=pe;var{Text:ue}=Typography,ge=m=>{let{expand:i=true,value:n,readonly:r,onChange:l}=m,{data:g,isLoading:c,error:f}=i$1(),{t:y}=a();return f?jsx("div",{className:"flex justify-center",children:jsx(ue,{type:"danger",children:y("PermissionList.failedDescription")})}):jsx(Skeleton,{active:true,loading:c,children:jsx(k,{value:n,permissions:g,readonly:r,expand:i,onChange:l})})},$=ge;var fe=m=>{let{value:i$1}=m;console.log("value",typeof i$1,i$1===null,JSON.stringify(i$1));let{permissionVersion:n}=i();return n==="v2"?jsx(U,{...m,value:i$1}):jsx($,{...m,value:i$1})},H=fe;var Qe=({mode:m,onSuccess:i})=>{let{message:n}=App.useApp(),{t:r}=a(),l=c(),g=d(),c$1=m==="create",f=r(c$1?"Role.createTitle":"Role.updateTitle"),y=jsxs(Fragment,{children:[jsx(Form.Item,{label:r("global.name"),name:"name",rules:[{required:true}],children:jsx(Input,{disabled:!c$1})}),jsx(Form.Item,{name:"permissions",children:jsx(H,{})})]});return d$1({title:f,width:"1000px",formProps:{layout:"vertical"},content:y,onConfirm:async(a,d)=>{let P=`role_${a.name}`,v=a.permissions;c$1?(await l.mutateAsync({name:P,permissions:v}),n.success(r("Role.createSuccessfully"))):(await g.mutateAsync({id:d?.id,name:P,permissions:v}),n.success(r("Role.updateSuccessfully"))),i?.();}})};export{H as a,Qe as b};//# sourceMappingURL=chunk-MTRFNFEM.js.map
2
- //# sourceMappingURL=chunk-MTRFNFEM.js.map
@@ -1,2 +0,0 @@
1
- import {i}from'./chunk-P25BHLH3.js';import {template,has,get}from'lodash-es';import {useMemo}from'react';function l(){let t=i(e=>e.locale);return {t:useMemo(()=>(e,r)=>has(t,e)?template(get(t,e))(r):e,[t])}}export{l as a};//# sourceMappingURL=chunk-NNXVZIY2.js.map
2
- //# sourceMappingURL=chunk-NNXVZIY2.js.map