react-toolkits 0.8.66 → 0.8.68

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # react-toolkits
2
2
 
3
+ ## 0.8.68
4
+
5
+ ### Patch Changes
6
+
7
+ - 724e129: refactor: subscribe useTokenStore change
8
+
9
+ ## 0.8.67
10
+
11
+ ### Patch Changes
12
+
13
+ - a664b5d: fix: typescript types declaration issue
14
+
3
15
  ## 0.8.66
4
16
 
5
17
  ### Patch Changes
@@ -1,6 +1,6 @@
1
- import { a as S, j as e, d as $ } from "./index-tuOuGmo8.chunk.js";
1
+ import { a as S, j as e, d as $ } from "./index-nZjU9PaU.chunk.js";
2
2
  import { Collapse as D, Checkbox as k, Row as G, Col as _, Skeleton as T, Typography as A, Divider as w, Card as K, Space as M, Select as E, Button as N, Empty as O } from "antd";
3
- import { h as R, i as B } from "./index-ublIYX8y.chunk.js";
3
+ import { h as R, i as B } from "./index-Nwjf2pVo.chunk.js";
4
4
  import { useState as P, useCallback as F, useEffect as b } from "react";
5
5
  const q = (x) => {
6
6
  const { permissions: l, readonly: t, expand: d, value: a, onChange: r } = x, [m, p] = P([]), [g, u] = P({}), [c, f] = P(a ?? []), C = S(), h = F((s) => {
@@ -168,4 +168,4 @@ const q = (x) => {
168
168
  export {
169
169
  ie as P
170
170
  };
171
- //# sourceMappingURL=index-1OdjsSgR.chunk.js.map
171
+ //# sourceMappingURL=index-EtXWwVUq.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-1OdjsSgR.chunk.js","sources":["../src/features/permission/components/PermissionCollapse/index.tsx","../src/features/permission/components/PermissionListV1/index.tsx","../src/features/permission/components/PermissionListV2/index.tsx","../src/features/permission/components/PermissionList/index.tsx"],"sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\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\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 setActiveKey((permissions ?? []).map(({ category }) => category))\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 return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n 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 onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissions } from '../../hooks'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\n\ninterface PermissionListV1Props extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionListV1: FC<PermissionListV1Props> = 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 PermissionListV1\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissionsV2 } from '../../hooks'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionListV2Props extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionListV2: FC<PermissionListV2Props> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: { permission, game: games } = {}, isLoading, error } = useAllPermissionsV2()\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 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 => 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 key={game.id} value={game.id} disabled={gameList.some(({ gameId }) => gameId === game.id)}>\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 PermissionListV2\n","import type { FC } from 'react'\nimport { useToolkitsContext } from '../../../../components/ContextProvider'\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionListV1 from '../PermissionListV1'\nimport PermissionListV2 from '../PermissionListV2'\n\nexport interface PermissionListPropsBase {\n expand?: boolean\n readonly?: boolean\n}\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 const { usePermissionApiV2 } = useToolkitsContext()\n\n return (\n <>\n {usePermissionApiV2 ? (\n <PermissionListV2 {...props} value={value as RoleV2['permissions']} />\n ) : (\n <PermissionListV1 {...props} value={value as RoleV1['permissions']} />\n )}\n </>\n )\n}\n\nexport default PermissionList\n"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","e","useEffect","category","acc","curr","jsx","Collapse","Checkbox","permission","Row","Col","PermissionCollapse$1","Text","Typography","PermissionListV1","isLoading","error","useAllPermissions","Skeleton","PermissionListV1$1","Option","Select","PermissionListV2","games","useAllPermissionsV2","gameList","setGameList","globalPermissions","gamePermissions","list","addGame","prev","removeGame","_","i","jsxs","Divider","newValue","Card","Space","_a","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionListV2$1","PermissionList","usePermissionApiV2","useToolkitsContext","Fragment","PermissionList$1"],"mappings":"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"}
1
+ {"version":3,"file":"index-EtXWwVUq.chunk.js","sources":["../src/features/permission/components/PermissionCollapse/index.tsx","../src/features/permission/components/PermissionListV1/index.tsx","../src/features/permission/components/PermissionListV2/index.tsx","../src/features/permission/components/PermissionList/index.tsx"],"sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\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\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 setActiveKey((permissions ?? []).map(({ category }) => category))\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 return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n 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 onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissions } from '../../hooks'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\n\ninterface PermissionListV1Props extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionListV1: FC<PermissionListV1Props> = 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 PermissionListV1\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissionsV2 } from '../../hooks'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionListV2Props extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionListV2: FC<PermissionListV2Props> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: { permission, game: games } = {}, isLoading, error } = useAllPermissionsV2()\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 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 => 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 key={game.id} value={game.id} disabled={gameList.some(({ gameId }) => gameId === game.id)}>\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 PermissionListV2\n","import type { FC } from 'react'\nimport { useToolkitsContext } from '../../../../components/ContextProvider'\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionListV1 from '../PermissionListV1'\nimport PermissionListV2 from '../PermissionListV2'\n\nexport interface PermissionListPropsBase {\n expand?: boolean\n readonly?: boolean\n}\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 const { usePermissionApiV2 } = useToolkitsContext()\n\n return (\n <>\n {usePermissionApiV2 ? (\n <PermissionListV2 {...props} value={value as RoleV2['permissions']} />\n ) : (\n <PermissionListV1 {...props} value={value as RoleV1['permissions']} />\n )}\n </>\n )\n}\n\nexport default PermissionList\n"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","e","useEffect","category","acc","curr","jsx","Collapse","Checkbox","permission","Row","Col","PermissionCollapse$1","Text","Typography","PermissionListV1","isLoading","error","useAllPermissions","Skeleton","PermissionListV1$1","Option","Select","PermissionListV2","games","useAllPermissionsV2","gameList","setGameList","globalPermissions","gamePermissions","list","addGame","prev","removeGame","_","i","jsxs","Divider","newValue","Card","Space","_a","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionListV2$1","PermissionList","usePermissionApiV2","useToolkitsContext","Fragment","PermissionList$1"],"mappings":";;;;AAeA,MAAMA,IAAkD,CAASC,MAAA;AAC/D,QAAM,EAAE,aAAAC,GAAa,UAAAC,GAAU,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,EAAa,IAAAL,GACrD,CAACM,GAAWC,CAAY,IAAIC,EAAmB,CAAE,CAAA,GACjD,CAACC,GAAYC,CAAa,IAAIF,EAAkC,CAAE,CAAA,GAClE,CAACG,GAAeC,CAAgB,IAAIJ,EAAmBJ,KAAS,CAAA,CAAE,GAClES,IAAIC,KAEJC,IAAmBC,EAAY,CAACC,MAA2B;AAC/D,IAAAV,EAAaU,CAAe;AAAA,EAC9B,GAAG,CAAE,CAAA,GAECC,IAAkB,CAACC,GAAuBC,MAAoB;AAClE,QAAIC,IAAsB,CAAA;AAE1B,WAAIF,IACUE,IAAA,CAAC,GAAG,IAAI,IAAIV,EAAc,OAAOS,CAAK,CAAC,CAAC,KAEpDC,IAAYV,EAAc,SAE1BS,EAAM,QAAQ,CAAQE,MAAA;AACpB,YAAMC,IAAQF,EAAU,UAAU,CAAAG,MAAQA,MAASF,CAAI;AACvD,MAAIC,IAAQ,MACAF,EAAA,OAAOE,GAAO,CAAC;AAAA,IAC3B,CACD,IAGIF;AAAA,EAAA,GAGHI,IAAgB,CAACC,GAAwBN,MAAoB;AACjE,UAAMD,IAAeD,EAAgBQ,EAAE,OAAO,SAASN,CAAK;AAC5D,IAAAR,EAAiBO,CAAY,GAC7Bd,KAAA,QAAAA,EAAWc;AAAA,EAAY;AAGzB,SAAAQ,EAAU,MAAM;AACG,IAAAf,EAAAR,KAAS,CAAA,CAAE;AAAA,EAAA,GAC3B,CAACA,CAAK,CAAC,GAEVuB,EAAU,MAAM;AACd,IAAIxB,KACYI,GAAAN,KAAe,IAAI,IAAI,CAAC,EAAE,UAAA2B,EAAA,MAAeA,CAAQ,CAAC;AAAA,EAClE,GACC,CAACzB,GAAQF,CAAW,CAAC,GAExB0B,EAAU,MAAM;AACR,UAAAR,KAAgBlB,KAAe,CAAA,GAAI;AAAA,MACvC,CAAC4B,GAAKC,OACAD,EAAAC,EAAK,QAAQ,IAAIA,EAAK,YAAY,MAAM,CAAAN,MAAQb,KAAA,gBAAAA,EAAe,SAASa,EAAK,MAAM,GAChFK;AAAA,MAET,CAAC;AAAA,IAAA;AAGH,IAAAnB,EAAcS,CAAY;AAAA,EAAA,GACzB,CAACR,GAAeV,CAAW,CAAC,GAG7B8B,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO,EAAE,OAAO,OAAO;AAAA,MACvB,aAAY;AAAA,MACZ,WAAA1B;AAAA,MACA,QAAQL,KAAe,CAAC,GAAG,IAAI,CAASuB,OAAA;AAAA,QACtC,KAAKA,EAAK;AAAA,QACV,OAAOA,EAAK;AAAA,QACZ,OAAO,CAACtB,KACN6B,gBAAAA,EAAA;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAASxB,EAAWe,EAAK,QAAQ;AAAA,YACjC,UAAU,CAAKE,MAAA;AACb,cAAAD;AAAA,gBACEC;AAAA,gBACAF,EAAK,YAAY,IAAI,CAAAU,MAAcA,EAAW,KAAK;AAAA,cAAA;AAAA,YAEvD;AAAA,YAEC,YAAE,kBAAkB;AAAA,UAAA;AAAA,QACvB;AAAA,QAEF,UACEH,gBAAAA,EAAA,IAACE,EAAS,OAAT,EAAe,OAAO,EAAE,OAAO,OAAA,GAAU,OAAOtB,GAAe,UAAUT,GACxE,UAAC6B,gBAAAA,MAAAI,GAAA,EAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,OAAO,OACpC,GAAA,UAAAX,EAAK,YAAY,IAAI,CAAAU,MACnBH,gBAAAA,MAAAK,GAAA,EAA2B,MAAM,GAChC,UAAAL,gBAAAA,EAAA;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,OAAOC,EAAW;AAAA,YAClB,UAAU,CAAKR,MAAA;AACb,cAAAD,EAAcC,GAAG,CAACQ,EAAW,KAAK,CAAC;AAAA,YACrC;AAAA,YAEC,UAAWA,EAAA;AAAA,UAAA;AAAA,QAPN,EAAA,GAAAA,EAAW,KASrB,CACD,GACH,EACF,CAAA;AAAA,MAAA,EAEF;AAAA,MACF,UAAUnB;AAAA,IAAA;AAAA,EAAA;AAGhB,GAEAsB,IAAetC,GC9GT,EAAEuC,MAAAA,EAAS,IAAAC,GAOXC,IAA8C,CAASxC,MAAA;AAC3D,QAAM,EAAE,QAAAG,IAAS,IAAM,OAAAC,GAAO,UAAAF,GAAU,UAAAG,EAAa,IAAAL,GAC/C,EAAE,MAAMC,GAAa,WAAAwC,GAAW,OAAAC,EAAA,IAAUC,KAC1C9B,IAAIC;AAEV,SAAI4B,IAEAX,gBAAAA,EAAAA,IAAC,OAAI,EAAA,WAAU,uBACb,UAAAA,gBAAAA,MAACO,GAAK,EAAA,MAAK,UAAU,UAAAzB,EAAE,kCAAkC,EAAA,CAAE,EAC7D,CAAA,IAKDkB,gBAAAA,EAAA,IAAAa,GAAA,EAAS,QAAM,IAAC,SAASH,GACxB,UAAAV,gBAAAA,EAAA;AAAA,IAAChC;AAAAA,IAAA;AAAA,MACC,OAAAK;AAAA,MACA,aAAAH;AAAA,MACA,UAAAC;AAAA,MACA,QAAAC;AAAA,MACA,UAAAE;AAAA,IAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEAwC,IAAeL,GChCT,EAAE,MAAAF,EAAS,IAAAC,GACX,EAAE,QAAAO,EAAW,IAAAC,GAObC,IAA8C,CAAShD,MAAA;AAC3D,QAAM,EAAE,QAAAG,IAAS,IAAM,OAAAC,GAAO,UAAAF,GAAU,UAAAG,EAAa,IAAAL,GAC/C,EAAE,MAAM,EAAE,YAAAkC,GAAY,MAAMe,MAAU,CAAA,GAAI,WAAAR,GAAW,OAAAC,EAAM,IAAIQ,EAAoB,GACnF,CAACC,GAAUC,CAAW,IAAI5C,EAAsD,CAAE,CAAA,GAClF6C,IAAoBnB,KAAA,gBAAAA,EAAY,OAAO,CAAAV,MAAQA,EAAK,YACpD8B,IAAkBpB,KAAA,gBAAAA,EAAY,OAAO,CAAQV,MAAA,CAACA,EAAK,YACnDX,IAAIC;AAcV,MAZAa,EAAU,MAAM;AACd,UAAM4B,IAAoD,CAAA;AAE1D,WAAO,KAAKnD,KAAS,CAAE,CAAA,EAAE,QAAQ,CAAOa,MAAA;AACtC,MAAIA,MAAQ,YACLsC,EAAA,KAAK,EAAE,QAAQtC,GAAK,cAAab,KAAA,gBAAAA,EAAQa,OAAQ,CAAC,EAAA,CAAG;AAAA,IAC5D,CACD,GAEDmC,EAAYG,CAAI;AAAA,EAAA,GACf,CAACnD,CAAK,CAAC,GAENsC;AAEA,WAAAX,gBAAAA,EAAAA,IAAC,OAAI,EAAA,WAAU,uBACb,UAAAA,gBAAAA,MAACO,GAAK,EAAA,MAAK,UAAU,UAAAzB,EAAE,kCAAkC,EAAA,CAAE,EAC7D,CAAA;AAIJ,QAAM2C,IAAU,MAAM;AACR,IAAAJ,EAAA,CAAAK,MAAQ,CAAC,GAAGA,GAAM,EAAE,QAAQ,IAAI,aAAa,GAAI,CAAA,CAAC;AAAA,EAAA,GAG1DC,IAAa,CAACnC,MAAkB;AACxB,IAAA6B,EAAA,CAAAK,MAAQA,EAAK,OAAO,CAACE,GAAGC,MAAMA,MAAMrC,CAAK,CAAC;AAAA,EAAA;AAItD,SAAAsC,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,wBACb,UAAA;AAAA,IAAC9B,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,SACb,UAACA,gBAAAA,EAAAA,IAAA+B,GAAA,EAAQ,QAAM,IAAE,UAAAjD,EAAE,iCAAiC,EAAE,CAAA,GACxD;AAAA,IACCkB,gBAAAA,EAAA,IAAAa,GAAA,EAAS,QAAM,IAAC,SAASH,GACxB,UAAAV,gBAAAA,EAAA;AAAA,MAAChC;AAAAA,MAAA;AAAA,QACC,OAAOK,KAAA,gBAAAA,EAAO;AAAA,QACd,UAAAF;AAAA,QACA,aAAamD;AAAA,QACb,QAAAlD;AAAA,QACA,UAAU,CAAY4D,MAAA;AACT,UAAA1D,KAAA,QAAAA,EAAA;AAAA,YACT,GAAGD;AAAA,YACH,QAAQ2D;AAAA,UAAA;AAAA,QAEZ;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IACAhC,gBAAAA,EAAA,IAAC,OAAI,EAAA,WAAU,SACb,UAAAA,gBAAAA,EAAAA,IAAC+B,GAAQ,EAAA,QAAM,IAAE,UAAAjD,EAAE,iCAAiC,EAAE,CAAA,GACxD;AAAA,IACCsC,EAAS,IAAI,CAAC3B,GAAMD,MACnB;;AAAAQ,6BAAAA,EAAA;AAAA,QAACiC;AAAA,QAAA;AAAA,UACC,8BACGC,GACC,EAAA,UAAA;AAAA,YAAClC,gBAAAA,EAAA,IAAAO,GAAA,EAAM,UAAEzB,EAAA,aAAa,EAAE,CAAA;AAAA,YACvBX,IACC6B,gBAAAA,EAAA,IAACO,GAAM,EAAA,WAAA4B,IAAAjB,KAAA,gBAAAA,EAAO,KAAK,CAAAkB,MAAQA,EAAK,OAAO3C,EAAK,YAArC,gBAAA0C,EAA8C,KAAK,CAAA,IAE1DnC,gBAAAA,EAAA;AAAA,cAACgB;AAAA,cAAA;AAAA,gBACC,UAAU7C;AAAA,gBACV,OAAOiD,EAAS5B,CAAK,EAAE,UAAU;AAAA,gBACjC,OAAO,EAAE,OAAO,QAAQ;AAAA,gBACxB,aAAaV,EAAE,sCAAsC;AAAA,gBACrD,UAAU,CAAiBuD,MAAA;AACzB,kBAAAhB,EAAY,CAAOiB,MAAA;AACX,0BAAAC,IAAOD,EAAI;AACZ,2BAAAC,EAAA/C,CAAK,EAAE,SAAS6C,GACdE;AAAA,kBAAA,CACR;AAAA,gBACH;AAAA,gBAEC,UAAArB,KAAA,gBAAAA,EAAO,IAAI,CACVkB,MAAApC,gBAAAA,EAAA,IAACe,KAAqB,OAAOqB,EAAK,IAAI,UAAUhB,EAAS,KAAK,CAAC,EAAE,QAAAoB,EAAA,MAAaA,MAAWJ,EAAK,EAAE,GAC7F,UAAKA,EAAA,KAAA,GADKA,EAAK,EAElB;AAAA,cACD;AAAA,YACH;AAAA,UAAA,GAEJ;AAAA,UAGF,WAAU;AAAA,UACV,OACE,CAACjE,KACC6B,gBAAAA,EAAA;AAAA,YAACyC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS,MAAM;AACb,gBAAAd,EAAWnC,CAAK;AAAA,cAClB;AAAA,cAEC,YAAE,2BAA2B;AAAA,YAAA;AAAA,UAChC;AAAA,UAIH,UAAA4B,EAAS5B,CAAK,EAAE,+BACdqB,GAAS,EAAA,QAAM,IAAC,SAASH,GACxB,UAAAV,gBAAAA,EAAA;AAAA,YAAChC;AAAAA,YAAA;AAAA,cACC,OAAOK,KAAA,gBAAAA,EAAQ+C,EAAS5B,CAAK,EAAE;AAAA,cAC/B,UAAArB;AAAA,cACA,QAAAC;AAAA,cACA,aAAamD;AAAA,cACb,UAAU,CAAYS,MAAA;AACT,gBAAA1D,KAAA,QAAAA,EAAA;AAAA,kBACT,GAAGD;AAAA,kBACH,CAAC+C,EAAS5B,CAAK,EAAE,MAAM,GAAGwC;AAAA,gBAAA;AAAA,cAE9B;AAAA,YAAA;AAAA,UAAA,EAEJ,CAAA,IAEAhC,gBAAAA,EAAAA,IAAC0C,KAAM,aAAa5D,EAAE,uCAAuC,GAAG;AAAA,QAAA;AAAA,QA/B7DU;AAAA,MAAA;AAAA,KAkCR;AAAA,IACA,CAACrB,KACC6B,gBAAAA,EAAA,IAAAyC,GAAA,EAAO,OAAK,IAAC,MAAK,UAAS,SAAShB,GAClC,UAAE3C,EAAA,wBAAwB,EAC7B,CAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEA6D,IAAe1B,GCrIT2B,IAA0C,CAAC3E,MAA+B;AACxE,QAAA,EAAE,OAAAI,EAAU,IAAAJ,GACZ,EAAE,oBAAA4E,MAAuBC;AAE/B,SAEK9C,gBAAAA,EAAAA,IAAA+C,EAAAA,UAAA,EAAA,UAAAF,IACE7C,gBAAAA,EAAA,IAAAiB,GAAA,EAAkB,GAAGhD,GAAO,OAAAI,GAAuC,IAEnE2B,gBAAAA,EAAA,IAAAS,GAAA,EAAkB,GAAGxC,GAAO,OAAAI,GAAuC,EAExE,CAAA;AAEJ,GAEA2E,KAAeJ;"}
@@ -1,4 +1,4 @@
1
- import { I as O, w as W, f as h, g as x, s as z, m as q, h as V, U as y, i as U, e as u, d as M, c as K } from "./index-tuOuGmo8.chunk.js";
1
+ import { I as O, w as W, f as h, g as x, s as z, m as q, h as V, U as y, i as U, e as u, d as M, c as K } from "./index-nZjU9PaU.chunk.js";
2
2
  import L, { useRef as c, useCallback as G, useState as N } from "react";
3
3
  const P = O ? (e) => {
4
4
  e();
@@ -216,4 +216,4 @@ export {
216
216
  H as i,
217
217
  se as u
218
218
  };
219
- //# sourceMappingURL=index-ublIYX8y.chunk.js.map
219
+ //# sourceMappingURL=index-Nwjf2pVo.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-ublIYX8y.chunk.js","sources":["../../../node_modules/.pnpm/swr@2.2.4_react@18.2.0/node_modules/swr/mutation/dist/index.mjs","../src/features/permission/hooks/index.ts"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport useSWR, { useSWRConfig } from 'swr';\nimport { IS_REACT_LEGACY, useIsomorphicLayoutEffect, withMiddleware, serialize, mergeObjects, getTimestamp, UNDEFINED } from 'swr/_internal';\n\nconst startTransition = IS_REACT_LEGACY ? (cb)=>{\n cb();\n} : React.startTransition;\n/**\n * An implementation of state with dependency-tracking.\n */ const useStateWithDeps = (state)=>{\n const [, rerender] = useState({});\n const unmountedRef = useRef(false);\n const stateRef = useRef(state);\n // If a state property (data, error, or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n const stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */ const setState = useCallback((payload)=>{\n let shouldRerender = false;\n const currentState = stateRef.current;\n for(const _ in payload){\n const k = _;\n // If the property has changed, update the state and mark rerender as\n // needed.\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k];\n // If the property is accessed by the component, a rerender should be\n // triggered.\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n if (shouldRerender && !unmountedRef.current) {\n rerender({});\n }\n }, []);\n useIsomorphicLayoutEffect(()=>{\n unmountedRef.current = false;\n return ()=>{\n unmountedRef.current = true;\n };\n });\n return [\n stateRef,\n stateDependenciesRef.current,\n setState\n ];\n};\n\nconst mutation = ()=>(key, fetcher, config = {})=>{\n const { mutate } = useSWRConfig();\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n // Ditch all mutation results that happened earlier than this timestamp.\n const ditchMutationsUntilRef = useRef(0);\n const [stateRef, stateDependencies, setState] = useStateWithDeps({\n data: UNDEFINED,\n error: UNDEFINED,\n isMutating: false\n });\n const currentState = stateRef.current;\n const trigger = useCallback(async (arg, opts)=>{\n const [serializedKey, resolvedKey] = serialize(keyRef.current);\n if (!fetcherRef.current) {\n throw new Error('Can’t trigger the mutation: missing fetcher.');\n }\n if (!serializedKey) {\n throw new Error('Can’t trigger the mutation: missing key.');\n }\n // Disable cache population by default.\n const options = mergeObjects(mergeObjects({\n populateCache: false,\n throwOnError: true\n }, configRef.current), opts);\n // Trigger a mutation, and also track the timestamp. Any mutation that happened\n // earlier this timestamp should be ignored.\n const mutationStartedAt = getTimestamp();\n ditchMutationsUntilRef.current = mutationStartedAt;\n setState({\n isMutating: true\n });\n try {\n const data = await mutate(serializedKey, fetcherRef.current(resolvedKey, {\n arg\n }), // We must throw the error here so we can catch and update the states.\n mergeObjects(options, {\n throwOnError: true\n }));\n // If it's reset after the mutation, we don't broadcast any state change.\n if (ditchMutationsUntilRef.current <= mutationStartedAt) {\n var _options_onSuccess, _options;\n startTransition(()=>setState({\n data,\n isMutating: false,\n error: undefined\n }));\n (_options_onSuccess = (_options = options).onSuccess) == null ? void 0 : _options_onSuccess.call(_options, data, serializedKey, options);\n }\n return data;\n } catch (error) {\n // If it's reset after the mutation, we don't broadcast any state change\n // or throw because it's discarded.\n if (ditchMutationsUntilRef.current <= mutationStartedAt) {\n var _options_onError, _options1;\n startTransition(()=>setState({\n error: error,\n isMutating: false\n }));\n (_options_onError = (_options1 = options).onError) == null ? void 0 : _options_onError.call(_options1, error, serializedKey, options);\n if (options.throwOnError) {\n throw error;\n }\n }\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const reset = useCallback(()=>{\n ditchMutationsUntilRef.current = getTimestamp();\n setState({\n data: UNDEFINED,\n error: UNDEFINED,\n isMutating: false\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(()=>{\n keyRef.current = key;\n fetcherRef.current = fetcher;\n configRef.current = config;\n });\n // We don't return `mutate` here as it can be pretty confusing (e.g. people\n // calling `mutate` but they actually mean `trigger`).\n // And also, `mutate` relies on the useSWR hook to exist too.\n return {\n trigger,\n reset,\n get data () {\n stateDependencies.data = true;\n return currentState.data;\n },\n get error () {\n stateDependencies.error = true;\n return currentState.error;\n },\n get isMutating () {\n stateDependencies.isMutating = true;\n return currentState.isMutating;\n }\n };\n };\n/**\n * A hook to define and manually trigger remote mutations like POST, PUT, DELETE and PATCH use cases.\n *\n * @link https://swr.vercel.app/docs/mutation\n * @example\n * ```jsx\n * import useSWRMutation from 'swr/mutation'\n *\n * const {\n * data,\n * error,\n * trigger,\n * reset,\n * isMutating\n * } = useSWRMutation(key, fetcher, options?)\n * ```\n */ const useSWRMutation = withMiddleware(useSWR, mutation);\n\nexport { useSWRMutation as default };\n","import useSWR from 'swr'\nimport useSWRMutation from 'swr/mutation'\nimport { useToolkitsContext } from '../../../components/ContextProvider'\nimport type { Game } from '../../../components/GameSelect'\nimport { usePermission } from '../../../hooks/permission'\nimport { useRequest } from '../../../hooks/request'\nimport type { PermissionEnumItem, RoleEnumItem, RoleV1, RoleV2 } from '../types'\n\nexport function useAllPermissions() {\n const request = useRequest()\n return useSWR('/api/usystem/user/allPermssions', url =>\n request<PermissionEnumItem[]>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useAllPermissionsV2() {\n const request = useRequest()\n return useSWR('/api/usystem/user/allPermissionsV2', url =>\n request<{\n game: Game[]\n permission: PermissionEnumItem[]\n }>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useAllRoles() {\n const request = useRequest()\n const { accessible } = usePermission('200005', true)\n return useSWR(accessible ? '/api/usystem/role/all' : null, url =>\n request<RoleEnumItem[]>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useRole(name: string) {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n return useSWR(`/api/usystem/role/${usePermissionApiV2 ? 'infoV2' : 'info'}?name=${name}`, (url: string) =>\n request<RoleV1 | RoleV2>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useCreateRole() {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return useSWRMutation(\n usePermissionApiV2 ? '/api/usystem/role/createV2' : '/api/usystem/role/create',\n (\n url: string,\n {\n arg,\n }: {\n arg: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useUpdateRole() {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return useSWRMutation(\n usePermissionApiV2 ? '/api/usystem/role/updateV2' : '/api/usystem/role/update',\n (\n url: string,\n {\n arg,\n }: {\n arg: { id: number; name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useRemoveRole() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/role/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: number; name: string }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useCreateUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/create',\n (\n url,\n {\n arg,\n }: {\n arg: { name: string; roles: string[] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useUpdateUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/update',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string; roles: string[] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useRemoveUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n"],"names":["startTransition","IS_REACT_LEGACY","cb","React","useStateWithDeps","state","rerender","useState","unmountedRef","useRef","stateRef","stateDependenciesRef","setState","useCallback","payload","shouldRerender","currentState","_","k","useIsomorphicLayoutEffect","mutation","key","fetcher","config","mutate","useSWRConfig","keyRef","fetcherRef","configRef","ditchMutationsUntilRef","stateDependencies","UNDEFINED","trigger","arg","opts","serializedKey","resolvedKey","serialize","options","mergeObjects","mutationStartedAt","getTimestamp","data","_options_onSuccess","_options","error","_options_onError","_options1","reset","useSWRMutation","withMiddleware","useSWR","useAllPermissions","request","useRequest","url","response","useAllPermissionsV2","useAllRoles","accessible","usePermission","useRole","name","usePermissionApiV2","useToolkitsContext","useCreateRole","useUpdateRole","useRemoveRole","useCreateUser","useUpdateUser","useRemoveUser"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-Nwjf2pVo.chunk.js","sources":["../../../node_modules/.pnpm/swr@2.2.4_react@18.2.0/node_modules/swr/mutation/dist/index.mjs","../src/features/permission/hooks/index.ts"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport useSWR, { useSWRConfig } from 'swr';\nimport { IS_REACT_LEGACY, useIsomorphicLayoutEffect, withMiddleware, serialize, mergeObjects, getTimestamp, UNDEFINED } from 'swr/_internal';\n\nconst startTransition = IS_REACT_LEGACY ? (cb)=>{\n cb();\n} : React.startTransition;\n/**\n * An implementation of state with dependency-tracking.\n */ const useStateWithDeps = (state)=>{\n const [, rerender] = useState({});\n const unmountedRef = useRef(false);\n const stateRef = useRef(state);\n // If a state property (data, error, or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n const stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */ const setState = useCallback((payload)=>{\n let shouldRerender = false;\n const currentState = stateRef.current;\n for(const _ in payload){\n const k = _;\n // If the property has changed, update the state and mark rerender as\n // needed.\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k];\n // If the property is accessed by the component, a rerender should be\n // triggered.\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n if (shouldRerender && !unmountedRef.current) {\n rerender({});\n }\n }, []);\n useIsomorphicLayoutEffect(()=>{\n unmountedRef.current = false;\n return ()=>{\n unmountedRef.current = true;\n };\n });\n return [\n stateRef,\n stateDependenciesRef.current,\n setState\n ];\n};\n\nconst mutation = ()=>(key, fetcher, config = {})=>{\n const { mutate } = useSWRConfig();\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n // Ditch all mutation results that happened earlier than this timestamp.\n const ditchMutationsUntilRef = useRef(0);\n const [stateRef, stateDependencies, setState] = useStateWithDeps({\n data: UNDEFINED,\n error: UNDEFINED,\n isMutating: false\n });\n const currentState = stateRef.current;\n const trigger = useCallback(async (arg, opts)=>{\n const [serializedKey, resolvedKey] = serialize(keyRef.current);\n if (!fetcherRef.current) {\n throw new Error('Can’t trigger the mutation: missing fetcher.');\n }\n if (!serializedKey) {\n throw new Error('Can’t trigger the mutation: missing key.');\n }\n // Disable cache population by default.\n const options = mergeObjects(mergeObjects({\n populateCache: false,\n throwOnError: true\n }, configRef.current), opts);\n // Trigger a mutation, and also track the timestamp. Any mutation that happened\n // earlier this timestamp should be ignored.\n const mutationStartedAt = getTimestamp();\n ditchMutationsUntilRef.current = mutationStartedAt;\n setState({\n isMutating: true\n });\n try {\n const data = await mutate(serializedKey, fetcherRef.current(resolvedKey, {\n arg\n }), // We must throw the error here so we can catch and update the states.\n mergeObjects(options, {\n throwOnError: true\n }));\n // If it's reset after the mutation, we don't broadcast any state change.\n if (ditchMutationsUntilRef.current <= mutationStartedAt) {\n var _options_onSuccess, _options;\n startTransition(()=>setState({\n data,\n isMutating: false,\n error: undefined\n }));\n (_options_onSuccess = (_options = options).onSuccess) == null ? void 0 : _options_onSuccess.call(_options, data, serializedKey, options);\n }\n return data;\n } catch (error) {\n // If it's reset after the mutation, we don't broadcast any state change\n // or throw because it's discarded.\n if (ditchMutationsUntilRef.current <= mutationStartedAt) {\n var _options_onError, _options1;\n startTransition(()=>setState({\n error: error,\n isMutating: false\n }));\n (_options_onError = (_options1 = options).onError) == null ? void 0 : _options_onError.call(_options1, error, serializedKey, options);\n if (options.throwOnError) {\n throw error;\n }\n }\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const reset = useCallback(()=>{\n ditchMutationsUntilRef.current = getTimestamp();\n setState({\n data: UNDEFINED,\n error: UNDEFINED,\n isMutating: false\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(()=>{\n keyRef.current = key;\n fetcherRef.current = fetcher;\n configRef.current = config;\n });\n // We don't return `mutate` here as it can be pretty confusing (e.g. people\n // calling `mutate` but they actually mean `trigger`).\n // And also, `mutate` relies on the useSWR hook to exist too.\n return {\n trigger,\n reset,\n get data () {\n stateDependencies.data = true;\n return currentState.data;\n },\n get error () {\n stateDependencies.error = true;\n return currentState.error;\n },\n get isMutating () {\n stateDependencies.isMutating = true;\n return currentState.isMutating;\n }\n };\n };\n/**\n * A hook to define and manually trigger remote mutations like POST, PUT, DELETE and PATCH use cases.\n *\n * @link https://swr.vercel.app/docs/mutation\n * @example\n * ```jsx\n * import useSWRMutation from 'swr/mutation'\n *\n * const {\n * data,\n * error,\n * trigger,\n * reset,\n * isMutating\n * } = useSWRMutation(key, fetcher, options?)\n * ```\n */ const useSWRMutation = withMiddleware(useSWR, mutation);\n\nexport { useSWRMutation as default };\n","import useSWR from 'swr'\nimport useSWRMutation from 'swr/mutation'\nimport { useToolkitsContext } from '../../../components/ContextProvider'\nimport type { Game } from '../../../components/GameSelect'\nimport { usePermission } from '../../../hooks/permission'\nimport { useRequest } from '../../../hooks/request'\nimport type { PermissionEnumItem, RoleEnumItem, RoleV1, RoleV2 } from '../types'\n\nexport function useAllPermissions() {\n const request = useRequest()\n return useSWR('/api/usystem/user/allPermssions', url =>\n request<PermissionEnumItem[]>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useAllPermissionsV2() {\n const request = useRequest()\n return useSWR('/api/usystem/user/allPermissionsV2', url =>\n request<{\n game: Game[]\n permission: PermissionEnumItem[]\n }>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useAllRoles() {\n const request = useRequest()\n const { accessible } = usePermission('200005', true)\n return useSWR(accessible ? '/api/usystem/role/all' : null, url =>\n request<RoleEnumItem[]>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useRole(name: string) {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n return useSWR(`/api/usystem/role/${usePermissionApiV2 ? 'infoV2' : 'info'}?name=${name}`, (url: string) =>\n request<RoleV1 | RoleV2>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useCreateRole() {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return useSWRMutation(\n usePermissionApiV2 ? '/api/usystem/role/createV2' : '/api/usystem/role/create',\n (\n url: string,\n {\n arg,\n }: {\n arg: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useUpdateRole() {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return useSWRMutation(\n usePermissionApiV2 ? '/api/usystem/role/updateV2' : '/api/usystem/role/update',\n (\n url: string,\n {\n arg,\n }: {\n arg: { id: number; name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useRemoveRole() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/role/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: number; name: string }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useCreateUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/create',\n (\n url,\n {\n arg,\n }: {\n arg: { name: string; roles: string[] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useUpdateUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/update',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string; roles: string[] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useRemoveUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n"],"names":["startTransition","IS_REACT_LEGACY","cb","React","useStateWithDeps","state","rerender","useState","unmountedRef","useRef","stateRef","stateDependenciesRef","setState","useCallback","payload","shouldRerender","currentState","_","k","useIsomorphicLayoutEffect","mutation","key","fetcher","config","mutate","useSWRConfig","keyRef","fetcherRef","configRef","ditchMutationsUntilRef","stateDependencies","UNDEFINED","trigger","arg","opts","serializedKey","resolvedKey","serialize","options","mergeObjects","mutationStartedAt","getTimestamp","data","_options_onSuccess","_options","error","_options_onError","_options1","reset","useSWRMutation","withMiddleware","useSWR","useAllPermissions","request","useRequest","url","response","useAllPermissionsV2","useAllRoles","accessible","usePermission","useRole","name","usePermissionApiV2","useToolkitsContext","useCreateRole","useUpdateRole","useRemoveRole","useCreateUser","useUpdateUser","useRemoveUser"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,9 +1,9 @@
1
- import { A as U, _, c as z, d as P, u as y, a as f, e as $, j as e, P as j, H as F, Q as G, b as L } from "./index-tuOuGmo8.chunk.js";
1
+ import { A as U, _, c as z, d as P, u as y, a as f, e as $, j as e, P as j, H as F, Q as G, b as L } from "./index-nZjU9PaU.chunk.js";
2
2
  import { App as b, Space as q, Card as B, Form as g, Input as A } from "antd";
3
3
  import { p as k } from "./immer-BLf7GM7E.chunk.js";
4
4
  import { Link as E } from "react-router-dom";
5
- import { P as v } from "./index-1OdjsSgR.chunk.js";
6
- import { d as D, e as N, f as Q } from "./index-ublIYX8y.chunk.js";
5
+ import { P as v } from "./index-EtXWwVUq.chunk.js";
6
+ import { d as D, e as N, f as Q } from "./index-Nwjf2pVo.chunk.js";
7
7
  import * as I from "react";
8
8
  import "react-dom";
9
9
  var H = { icon: { tag: "svg", attrs: { viewBox: "64 64 896 896", focusable: "false" }, children: [{ tag: "path", attrs: { d: "M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z" } }] }, name: "usergroup-add", theme: "outlined" };
@@ -177,4 +177,4 @@ const J = /* @__PURE__ */ I.forwardRef(M), h = "/api/usystem/role/list", W = ()
177
177
  export {
178
178
  ie as default
179
179
  };
180
- //# sourceMappingURL=index-bOArzWbR.chunk.js.map
180
+ //# sourceMappingURL=index-P6FB1b66.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-bOArzWbR.chunk.js","sources":["../../../node_modules/.pnpm/@ant-design+icons-svg@4.3.2/node_modules/@ant-design/icons-svg/es/asn/UsergroupAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@5.2.6_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/UsergroupAddOutlined.js","../src/pages/permission/RoleList/index.tsx"],"sourcesContent":["// This icon file is generated automatically.\nvar UsergroupAddOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z\" } }] }, \"name\": \"usergroup-add\", \"theme\": \"outlined\" };\nexport default UsergroupAddOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UsergroupAddOutlinedSvg from \"@ant-design/icons-svg/es/asn/UsergroupAddOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UsergroupAddOutlined = function UsergroupAddOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UsergroupAddOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UsergroupAddOutlined.displayName = 'UsergroupAddOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UsergroupAddOutlined);","import { UsergroupAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Form, Input, Space } from 'antd'\nimport { produce } from 'immer'\nimport { Link } from 'react-router-dom'\nimport { useToolkitsContext } from '../../../components/ContextProvider'\nimport Highlight from '../../../components/Highlight'\nimport PermissionButton from '../../../components/PermissionButton'\nimport QueryList from '../../../components/QueryList'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../../../features/permission'\nimport { PermissionList, useCreateRole, useRemoveRole, useUpdateRole } from '../../../features/permission'\nimport { useFormModal } from '../../../hooks/formModal'\nimport { useTranslation } from '../../../hooks/i18n'\nimport { usePermission } from '../../../hooks/permission'\nimport { useRequest } from '../../../hooks/request'\nimport { useQueryListStore } from '../../../stores/queryList'\n\nconst action = '/api/usystem/role/list'\n\nconst useCreateModal = () => {\n const { message } = App.useApp()\n const { refresh } = useQueryListStore()\n const create = useCreateRole()\n const t = useTranslation()\n\n const onConfirm = async (values: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }) => {\n await create.trigger({\n name: `role_${values.name}`,\n permissions: values.permissions,\n })\n refresh(action, 1)\n message.success(t('RoleList.createSuccessfully'))\n }\n\n return useFormModal<{\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n }>({\n title: t('RoleList.createTitle'),\n width: '50vw',\n formProps: {\n layout: 'vertical',\n },\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input addonBefore=\"role_\" />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n ),\n onConfirm,\n })\n}\n\nconst useUpdateModal = () => {\n const { message } = App.useApp()\n const { mutate } = useQueryListStore()\n const update = useUpdateRole()\n const t = useTranslation()\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n {\n id: number\n }\n >({\n title: t('RoleList.updateTitle'),\n width: '50vw',\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input readOnly addonBefore=\"role_\" />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n ),\n onConfirm: async (values, extraValues) => {\n await update.trigger({\n id: extraValues?.id as number,\n name: `role_${values.name}`,\n permissions: values.permissions,\n })\n mutate(\n action,\n prev =>\n produce(prev, draft => {\n const match = draft?.dataSource?.find(item => item.id === extraValues?.id)\n\n if (match) {\n match.permissions = values.permissions\n }\n }),\n { revalidate: false },\n )\n message.success(t('RoleList.updateSuccessfully'))\n },\n })\n}\n\nconst RoleList = () => {\n const { accessible: viewable } = usePermission('200005', true)\n const { modal, message } = App.useApp()\n const { usePermissionApiV2 } = useToolkitsContext()\n const remove = useRemoveRole()\n const { mutate } = useQueryListStore()\n const { show: showCreateModal, modal: createModal } = useCreateModal()\n const { show: showUpdateModal, modal: updateModal } = useUpdateModal()\n const t = useTranslation()\n const request = useRequest()\n\n const columns: TableColumnsType<RoleListItem> = [\n {\n title: t('global.name'),\n key: 'name',\n render(value: RoleListItem) {\n if (viewable) {\n return (\n <Link to={`${value.name}`} relative=\"path\">\n {value.name}\n </Link>\n )\n } else {\n return <>{value.name}</>\n }\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (value: RoleListItem) => {\n return (\n <Space size=\"small\">\n <PermissionButton\n isGlobal\n code=\"200003\"\n size=\"small\"\n type=\"link\"\n onClick={async () => {\n const { data: role } = await request<RoleV1 | RoleV2>(\n `/api/usystem/role/info${usePermissionApiV2 ? 'V2' : ''}?name=${value.name}`,\n { isGlobal: true },\n )\n showUpdateModal({\n initialValues: {\n permissions: role?.permissions,\n name: role?.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: role?.id,\n },\n })\n }}\n >\n {t('global.edit')}\n </PermissionButton>\n <PermissionButton\n isGlobal\n danger\n code=\"200004\"\n size=\"small\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('RoleList.deleteTitle'),\n content: (\n <Highlight texts={[value.name]}>{t('RoleList.deleteContent', { role: value.name })}</Highlight>\n ),\n async onOk() {\n await remove.trigger({\n id: value.id,\n name: value.name,\n })\n mutate(action, prev => {\n return produce(prev, draft => {\n const index = draft?.dataSource?.findIndex(item => item.id === value.id)\n if (index) {\n draft?.dataSource?.splice(index, 1)\n }\n })\n })\n message.success(t('RoleList.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </PermissionButton>\n </Space>\n )\n },\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.role')}\n extra={\n <PermissionButton\n isGlobal\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('RoleList.createTitle')}\n </PermissionButton>\n }\n >\n <QueryList<RoleListItem, undefined, { List: RoleListItem[]; Total: number }>\n isGlobal\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n action={action}\n getTotal={response => response.Total}\n getDataSource={response => response.List}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default RoleList\n"],"names":["UsergroupAddOutlined","UsergroupAddOutlinedSvg","props","ref","React","AntdIcon","_extends","UsergroupAddOutlined$1","action","useCreateModal","message","App","refresh","useQueryListStore","create","useCreateRole","t","useTranslation","onConfirm","values","useFormModal","jsxs","Fragment","jsx","Form","Input","PermissionList","useUpdateModal","mutate","update","useUpdateRole","extraValues","prev","produce","draft","match","_a","item","RoleList","viewable","usePermission","modal","usePermissionApiV2","useToolkitsContext","remove","useRemoveRole","showCreateModal","createModal","showUpdateModal","updateModal","request","useRequest","columns","value","Link","Space","PermissionButton","role","Highlight","index","_b","Card","QueryList","response"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index-P6FB1b66.chunk.js","sources":["../../../node_modules/.pnpm/@ant-design+icons-svg@4.3.2/node_modules/@ant-design/icons-svg/es/asn/UsergroupAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@5.2.6_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/UsergroupAddOutlined.js","../src/pages/permission/RoleList/index.tsx"],"sourcesContent":["// This icon file is generated automatically.\nvar UsergroupAddOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z\" } }] }, \"name\": \"usergroup-add\", \"theme\": \"outlined\" };\nexport default UsergroupAddOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UsergroupAddOutlinedSvg from \"@ant-design/icons-svg/es/asn/UsergroupAddOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UsergroupAddOutlined = function UsergroupAddOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UsergroupAddOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UsergroupAddOutlined.displayName = 'UsergroupAddOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UsergroupAddOutlined);","import { UsergroupAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Form, Input, Space } from 'antd'\nimport { produce } from 'immer'\nimport { Link } from 'react-router-dom'\nimport { useToolkitsContext } from '../../../components/ContextProvider'\nimport Highlight from '../../../components/Highlight'\nimport PermissionButton from '../../../components/PermissionButton'\nimport QueryList from '../../../components/QueryList'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../../../features/permission'\nimport { PermissionList, useCreateRole, useRemoveRole, useUpdateRole } from '../../../features/permission'\nimport { useFormModal } from '../../../hooks/formModal'\nimport { useTranslation } from '../../../hooks/i18n'\nimport { usePermission } from '../../../hooks/permission'\nimport { useRequest } from '../../../hooks/request'\nimport { useQueryListStore } from '../../../stores/queryList'\n\nconst action = '/api/usystem/role/list'\n\nconst useCreateModal = () => {\n const { message } = App.useApp()\n const { refresh } = useQueryListStore()\n const create = useCreateRole()\n const t = useTranslation()\n\n const onConfirm = async (values: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }) => {\n await create.trigger({\n name: `role_${values.name}`,\n permissions: values.permissions,\n })\n refresh(action, 1)\n message.success(t('RoleList.createSuccessfully'))\n }\n\n return useFormModal<{\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n }>({\n title: t('RoleList.createTitle'),\n width: '50vw',\n formProps: {\n layout: 'vertical',\n },\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input addonBefore=\"role_\" />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n ),\n onConfirm,\n })\n}\n\nconst useUpdateModal = () => {\n const { message } = App.useApp()\n const { mutate } = useQueryListStore()\n const update = useUpdateRole()\n const t = useTranslation()\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n {\n id: number\n }\n >({\n title: t('RoleList.updateTitle'),\n width: '50vw',\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input readOnly addonBefore=\"role_\" />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n ),\n onConfirm: async (values, extraValues) => {\n await update.trigger({\n id: extraValues?.id as number,\n name: `role_${values.name}`,\n permissions: values.permissions,\n })\n mutate(\n action,\n prev =>\n produce(prev, draft => {\n const match = draft?.dataSource?.find(item => item.id === extraValues?.id)\n\n if (match) {\n match.permissions = values.permissions\n }\n }),\n { revalidate: false },\n )\n message.success(t('RoleList.updateSuccessfully'))\n },\n })\n}\n\nconst RoleList = () => {\n const { accessible: viewable } = usePermission('200005', true)\n const { modal, message } = App.useApp()\n const { usePermissionApiV2 } = useToolkitsContext()\n const remove = useRemoveRole()\n const { mutate } = useQueryListStore()\n const { show: showCreateModal, modal: createModal } = useCreateModal()\n const { show: showUpdateModal, modal: updateModal } = useUpdateModal()\n const t = useTranslation()\n const request = useRequest()\n\n const columns: TableColumnsType<RoleListItem> = [\n {\n title: t('global.name'),\n key: 'name',\n render(value: RoleListItem) {\n if (viewable) {\n return (\n <Link to={`${value.name}`} relative=\"path\">\n {value.name}\n </Link>\n )\n } else {\n return <>{value.name}</>\n }\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (value: RoleListItem) => {\n return (\n <Space size=\"small\">\n <PermissionButton\n isGlobal\n code=\"200003\"\n size=\"small\"\n type=\"link\"\n onClick={async () => {\n const { data: role } = await request<RoleV1 | RoleV2>(\n `/api/usystem/role/info${usePermissionApiV2 ? 'V2' : ''}?name=${value.name}`,\n { isGlobal: true },\n )\n showUpdateModal({\n initialValues: {\n permissions: role?.permissions,\n name: role?.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: role?.id,\n },\n })\n }}\n >\n {t('global.edit')}\n </PermissionButton>\n <PermissionButton\n isGlobal\n danger\n code=\"200004\"\n size=\"small\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('RoleList.deleteTitle'),\n content: (\n <Highlight texts={[value.name]}>{t('RoleList.deleteContent', { role: value.name })}</Highlight>\n ),\n async onOk() {\n await remove.trigger({\n id: value.id,\n name: value.name,\n })\n mutate(action, prev => {\n return produce(prev, draft => {\n const index = draft?.dataSource?.findIndex(item => item.id === value.id)\n if (index) {\n draft?.dataSource?.splice(index, 1)\n }\n })\n })\n message.success(t('RoleList.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </PermissionButton>\n </Space>\n )\n },\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.role')}\n extra={\n <PermissionButton\n isGlobal\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('RoleList.createTitle')}\n </PermissionButton>\n }\n >\n <QueryList<RoleListItem, undefined, { List: RoleListItem[]; Total: number }>\n isGlobal\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n action={action}\n getTotal={response => response.Total}\n getDataSource={response => response.List}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default RoleList\n"],"names":["UsergroupAddOutlined","UsergroupAddOutlinedSvg","props","ref","React","AntdIcon","_extends","UsergroupAddOutlined$1","action","useCreateModal","message","App","refresh","useQueryListStore","create","useCreateRole","t","useTranslation","onConfirm","values","useFormModal","jsxs","Fragment","jsx","Form","Input","PermissionList","useUpdateModal","mutate","update","useUpdateRole","extraValues","prev","produce","draft","match","_a","item","RoleList","viewable","usePermission","modal","usePermissionApiV2","useToolkitsContext","remove","useRemoveRole","showCreateModal","createModal","showUpdateModal","updateModal","request","useRequest","columns","value","Link","Space","PermissionButton","role","Highlight","index","_b","Card","QueryList","response"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,8 +1,8 @@
1
- import { a as t, j as i } from "./index-tuOuGmo8.chunk.js";
1
+ import { a as t, j as i } from "./index-nZjU9PaU.chunk.js";
2
2
  import { Breadcrumb as m, Card as n, Skeleton as a, Descriptions as l } from "antd";
3
3
  import { useParams as c, Link as x } from "react-router-dom";
4
- import { P as j } from "./index-1OdjsSgR.chunk.js";
5
- import { g as p } from "./index-ublIYX8y.chunk.js";
4
+ import { P as j } from "./index-EtXWwVUq.chunk.js";
5
+ import { g as p } from "./index-Nwjf2pVo.chunk.js";
6
6
  import "react";
7
7
  import "react-dom";
8
8
  const k = () => {
@@ -37,4 +37,4 @@ const k = () => {
37
37
  export {
38
38
  k as default
39
39
  };
40
- //# sourceMappingURL=index-U4_wXe5n.chunk.js.map
40
+ //# sourceMappingURL=index-dD7UXVuL.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-U4_wXe5n.chunk.js","sources":["../src/pages/permission/RoleDetail/index.tsx"],"sourcesContent":["import { Breadcrumb, Card, Descriptions, Skeleton } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\nimport { PermissionList, useRole } from '../../../features/permission'\nimport { useTranslation } from '../../../hooks/i18n'\n\nconst RoleDetail = () => {\n const params = useParams()\n const { data, isLoading } = useRole(params.name as string)\n const t = useTranslation()\n\n return (\n <>\n <Breadcrumb\n style={{ marginBottom: 24 }}\n items={[\n {\n key: '1',\n title: <Link to=\"..\">{t('global.role')}</Link>,\n },\n {\n key: '2',\n title: params.name,\n },\n ]}\n />\n <Card title={t('RoleDetail.title')}>\n <Skeleton loading={isLoading}>\n <Descriptions column={3} layout=\"vertical\">\n <Descriptions.Item label={t('global.name')}>{data?.name}</Descriptions.Item>\n <Descriptions.Item label=\"ID\">{data?.id}</Descriptions.Item>\n <Descriptions.Item label={t('global.creationTime')}>{data?.ctime}</Descriptions.Item>\n </Descriptions>\n <PermissionList readonly value={data?.permissions} />\n </Skeleton>\n </Card>\n </>\n )\n}\n\nexport default RoleDetail\n"],"names":["RoleDetail","params","useParams","data","isLoading","useRole","t","useTranslation","jsxs","Fragment","jsx","Breadcrumb","Link","Card","Skeleton","Descriptions","PermissionList"],"mappings":";;;;;;;AAKA,MAAMA,IAAa,MAAM;AACvB,QAAMC,IAASC,KACT,EAAE,MAAAC,GAAM,WAAAC,EAAA,IAAcC,EAAQJ,EAAO,IAAc,GACnDK,IAAIC;AAEV,SAEIC,gBAAAA,EAAA,KAAAC,YAAA,EAAA,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,cAAc,GAAG;AAAA,QAC1B,OAAO;AAAA,UACL;AAAA,YACE,KAAK;AAAA,YACL,OAAQD,gBAAAA,EAAAA,IAAAE,GAAA,EAAK,IAAG,MAAM,UAAAN,EAAE,aAAa,GAAE;AAAA,UACzC;AAAA,UACA;AAAA,YACE,KAAK;AAAA,YACL,OAAOL,EAAO;AAAA,UAChB;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IACAS,gBAAAA,EAAAA,IAACG,KAAK,OAAOP,EAAE,kBAAkB,GAC/B,UAAAE,gBAAAA,EAAAA,KAACM,GAAS,EAAA,SAASV,GACjB,UAAA;AAAA,MAAAI,gBAAAA,EAAA,KAACO,GAAa,EAAA,QAAQ,GAAG,QAAO,YAC9B,UAAA;AAAA,QAACL,gBAAAA,EAAAA,IAAAK,EAAa,MAAb,EAAkB,OAAOT,EAAE,aAAa,GAAI,iCAAM,MAAK;AAAA,8BACvDS,EAAa,MAAb,EAAkB,OAAM,MAAM,iCAAM,IAAG;AAAA,QACxCL,gBAAAA,EAAAA,IAACK,EAAa,MAAb,EAAkB,OAAOT,EAAE,qBAAqB,GAAI,UAAAH,KAAA,gBAAAA,EAAM,OAAM;AAAA,MAAA,GACnE;AAAA,4BACCa,GAAe,EAAA,UAAQ,IAAC,OAAOb,KAAA,gBAAAA,EAAM,aAAa;AAAA,IAAA,EAAA,CACrD,EACF,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"index-dD7UXVuL.chunk.js","sources":["../src/pages/permission/RoleDetail/index.tsx"],"sourcesContent":["import { Breadcrumb, Card, Descriptions, Skeleton } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\nimport { PermissionList, useRole } from '../../../features/permission'\nimport { useTranslation } from '../../../hooks/i18n'\n\nconst RoleDetail = () => {\n const params = useParams()\n const { data, isLoading } = useRole(params.name as string)\n const t = useTranslation()\n\n return (\n <>\n <Breadcrumb\n style={{ marginBottom: 24 }}\n items={[\n {\n key: '1',\n title: <Link to=\"..\">{t('global.role')}</Link>,\n },\n {\n key: '2',\n title: params.name,\n },\n ]}\n />\n <Card title={t('RoleDetail.title')}>\n <Skeleton loading={isLoading}>\n <Descriptions column={3} layout=\"vertical\">\n <Descriptions.Item label={t('global.name')}>{data?.name}</Descriptions.Item>\n <Descriptions.Item label=\"ID\">{data?.id}</Descriptions.Item>\n <Descriptions.Item label={t('global.creationTime')}>{data?.ctime}</Descriptions.Item>\n </Descriptions>\n <PermissionList readonly value={data?.permissions} />\n </Skeleton>\n </Card>\n </>\n )\n}\n\nexport default RoleDetail\n"],"names":["RoleDetail","params","useParams","data","isLoading","useRole","t","useTranslation","jsxs","Fragment","jsx","Breadcrumb","Link","Card","Skeleton","Descriptions","PermissionList"],"mappings":";;;;;;;AAKA,MAAMA,IAAa,MAAM;AACvB,QAAMC,IAASC,KACT,EAAE,MAAAC,GAAM,WAAAC,EAAA,IAAcC,EAAQJ,EAAO,IAAc,GACnDK,IAAIC;AAEV,SAEIC,gBAAAA,EAAA,KAAAC,YAAA,EAAA,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,cAAc,GAAG;AAAA,QAC1B,OAAO;AAAA,UACL;AAAA,YACE,KAAK;AAAA,YACL,OAAQD,gBAAAA,EAAAA,IAAAE,GAAA,EAAK,IAAG,MAAM,UAAAN,EAAE,aAAa,GAAE;AAAA,UACzC;AAAA,UACA;AAAA,YACE,KAAK;AAAA,YACL,OAAOL,EAAO;AAAA,UAChB;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IACAS,gBAAAA,EAAAA,IAACG,KAAK,OAAOP,EAAE,kBAAkB,GAC/B,UAAAE,gBAAAA,EAAAA,KAACM,GAAS,EAAA,SAASV,GACjB,UAAA;AAAA,MAAAI,gBAAAA,EAAA,KAACO,GAAa,EAAA,QAAQ,GAAG,QAAO,YAC9B,UAAA;AAAA,QAACL,gBAAAA,EAAAA,IAAAK,EAAa,MAAb,EAAkB,OAAOT,EAAE,aAAa,GAAI,iCAAM,MAAK;AAAA,8BACvDS,EAAa,MAAb,EAAkB,OAAM,MAAM,iCAAM,IAAG;AAAA,QACxCL,gBAAAA,EAAAA,IAACK,EAAa,MAAb,EAAkB,OAAOT,EAAE,qBAAqB,GAAI,UAAAH,KAAA,gBAAAA,EAAM,OAAM;AAAA,MAAA,GACnE;AAAA,4BACCa,GAAe,EAAA,UAAQ,IAAC,OAAOb,KAAA,gBAAAA,EAAM,aAAa;AAAA,IAAA,EAAA,CACrD,EACF,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1,8 +1,8 @@
1
- import { A as T, _ as R, u as j, a as b, j as e, P as g, H as z, Q as F, b as L } from "./index-tuOuGmo8.chunk.js";
1
+ import { A as T, _ as R, u as j, a as b, j as e, P as g, H as z, Q as F, b as L } from "./index-nZjU9PaU.chunk.js";
2
2
  import { App as U, Row as E, Col as G, Tag as w, Space as P, Card as D, Form as x, Input as S, Select as f } from "antd";
3
3
  import { p as I } from "./immer-BLf7GM7E.chunk.js";
4
4
  import { Link as N } from "react-router-dom";
5
- import { u as Q, a as _, b as k, c as $ } from "./index-ublIYX8y.chunk.js";
5
+ import { u as Q, a as _, b as k, c as $ } from "./index-Nwjf2pVo.chunk.js";
6
6
  import * as M from "react";
7
7
  import "react-dom";
8
8
  var q = { icon: { tag: "svg", attrs: { viewBox: "64 64 896 896", focusable: "false" }, children: [{ tag: "path", attrs: { d: "M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" } }] }, name: "user-add", theme: "outlined" };
@@ -190,4 +190,4 @@ export {
190
190
  h as action,
191
191
  te as default
192
192
  };
193
- //# sourceMappingURL=index-CPcao_rh.chunk.js.map
193
+ //# sourceMappingURL=index-fnuikdnj.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CPcao_rh.chunk.js","sources":["../../../node_modules/.pnpm/@ant-design+icons-svg@4.3.2/node_modules/@ant-design/icons-svg/es/asn/UserAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@5.2.6_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/UserAddOutlined.js","../src/pages/permission/UserList/index.tsx"],"sourcesContent":["// This icon file is generated automatically.\nvar UserAddOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"user-add\", \"theme\": \"outlined\" };\nexport default UserAddOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserAddOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserAddOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UserAddOutlined = function UserAddOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserAddOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UserAddOutlined.displayName = 'UserAddOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UserAddOutlined);","import { UserAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Col, Form, Input, Row, Select, Space, Tag } from 'antd'\nimport { produce } from 'immer'\nimport type { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport Highlight from '../../../components/Highlight'\nimport PermissionButton from '../../../components/PermissionButton'\nimport QueryList from '../../../components/QueryList'\nimport type { UserListItem } from '../../../features/permission'\nimport { useAllRoles, useCreateUser, useRemoveUser, useUpdateUser } from '../../../features/permission'\nimport { useFormModal } from '../../../hooks/formModal'\nimport { useTranslation } from '../../../hooks/i18n'\nimport { useQueryListStore } from '../../../stores/queryList'\n\nconst { Option } = Select\n\nexport const action = '/api/usystem/user/list'\n\nfunction useCreateModal() {\n const { message } = App.useApp()\n const create = useCreateUser()\n const { data: roles, isLoading } = useAllRoles()\n const { refresh } = useQueryListStore()\n const t = useTranslation()\n\n return useFormModal<{ id: string; name: string; roles: string[] }>({\n title: t('UserList.createTitle'),\n formProps: {\n labelCol: { flex: '80px' },\n },\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label={t('global.role')} name=\"roles\">\n <Select allowClear mode=\"multiple\" loading={isLoading}>\n {(roles ?? []).map(role => (\n <Option value={role.name} key={role.id}>\n {role.name}\n </Option>\n ))}\n </Select>\n </Form.Item>\n </>\n ),\n async onConfirm(values) {\n await create.trigger(values)\n refresh(action, 1)\n message.success(t('UserList.createSuccessfully'))\n },\n })\n}\n\nfunction useUpdateUserModal() {\n const { message } = App.useApp()\n const update = useUpdateUser()\n const { data: roles, isLoading } = useAllRoles()\n const { mutate } = useQueryListStore()\n const t = useTranslation()\n\n return useFormModal<{ id: string; name: string; roles: string[] }, { id: string }>({\n title: t('UserList.updateTitle'),\n formProps: {\n labelCol: { flex: '80px' },\n },\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input readOnly />\n </Form.Item>\n <Form.Item label={t('global.role')} name=\"roles\">\n <Select\n allowClear\n mode=\"multiple\"\n loading={isLoading}\n options={roles?.map(role => ({\n label: role.name,\n value: role.name,\n }))}\n />\n </Form.Item>\n </>\n ),\n async onConfirm(values, extraValues) {\n await update.trigger(values)\n mutate<UserListItem>(\n action,\n prev => {\n return produce(prev, draft => {\n if (draft?.dataSource) {\n const index = draft.dataSource?.findIndex(item => item.id === extraValues?.id)\n if (index !== -1) {\n draft.dataSource[index].roles = values.roles\n }\n }\n })\n },\n { revalidate: false },\n )\n message.success(t('UserList.updateSuccessfully'))\n },\n })\n}\n\nconst UserList: FC = () => {\n const { modal, message } = App.useApp()\n const remove = useRemoveUser()\n const { mutate } = useQueryListStore()\n const { show: showCreateModal, modal: createModal } = useCreateModal()\n const { show: showUpdateModal, modal: updateModal } = useUpdateUserModal()\n const t = useTranslation()\n\n const columns: TableColumnsType<UserListItem> = [\n {\n title: t('global.name'),\n dataIndex: 'name',\n key: 'name',\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: t('global.role'),\n dataIndex: 'roles',\n key: 'roles',\n width: '40%',\n render(value: string[]) {\n return (\n <Row gutter={[4, 4]}>\n {(value || []).map((item: string) => (\n <Col key={item}>\n {item === 'root' ? (\n <Tag color=\"#f50\">{item}</Tag>\n ) : (\n <Tag color=\"#ff5a00\">\n <Link to={`/permission/role/${item}`}>{item}</Link>\n </Tag>\n )}\n </Col>\n ))}\n </Row>\n )\n },\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'Ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (value: UserListItem) => (\n <Space>\n <PermissionButton\n isGlobal\n size=\"small\"\n type=\"link\"\n code=\"100003\"\n onClick={() => {\n showUpdateModal({\n initialValues: {\n name: value.name,\n roles: value.roles,\n },\n extraValues: {\n id: value.id,\n },\n })\n }}\n >\n {t('global.update')}\n </PermissionButton>\n <PermissionButton\n isGlobal\n danger\n size=\"small\"\n code=\"100004\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('UserList.deleteTitle'),\n content: (\n <Highlight texts={[value.name]}>{t('UserList.deleteContent', { user: value.name })}</Highlight>\n ),\n async onOk() {\n await remove.trigger({\n id: value.id,\n name: value.name,\n })\n mutate(action, prev => {\n return produce(prev, draft => {\n const index = draft?.dataSource?.findIndex(item => item.id === value.id)\n if (index) {\n draft?.dataSource?.splice(index, 1)\n }\n })\n })\n message.success(t('UserList.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </PermissionButton>\n </Space>\n ),\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.user')}\n extra={\n <PermissionButton\n isGlobal\n type=\"primary\"\n icon={<UserAddOutlined />}\n code=\"100002\"\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('UserList.createTitle')}\n </PermissionButton>\n }\n >\n <QueryList<UserListItem, undefined, { List: UserListItem[]; Total: number }>\n isGlobal\n code=\"100001\"\n action={action}\n rowKey=\"id\"\n columns={columns}\n getTotal={response => response.Total}\n getDataSource={response => response.List}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default UserList\n"],"names":["UserAddOutlined","UserAddOutlinedSvg","props","ref","React","AntdIcon","_extends","UserAddOutlined$1","Option","Select","action","useCreateModal","message","App","create","useCreateUser","roles","isLoading","useAllRoles","refresh","useQueryListStore","t","useTranslation","useFormModal","jsxs","Fragment","jsx","Form","Input","role","values","useUpdateUserModal","update","useUpdateUser","mutate","extraValues","prev","produce","draft","index","_a","item","UserList","modal","remove","useRemoveUser","showCreateModal","createModal","showUpdateModal","updateModal","columns","value","Row","Col","Tag","Link","Space","PermissionButton","Highlight","_b","Card","QueryList","response"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index-fnuikdnj.chunk.js","sources":["../../../node_modules/.pnpm/@ant-design+icons-svg@4.3.2/node_modules/@ant-design/icons-svg/es/asn/UserAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@5.2.6_react-dom@18.2.0_react@18.2.0/node_modules/@ant-design/icons/es/icons/UserAddOutlined.js","../src/pages/permission/UserList/index.tsx"],"sourcesContent":["// This icon file is generated automatically.\nvar UserAddOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"user-add\", \"theme\": \"outlined\" };\nexport default UserAddOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserAddOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserAddOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UserAddOutlined = function UserAddOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserAddOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UserAddOutlined.displayName = 'UserAddOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UserAddOutlined);","import { UserAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Col, Form, Input, Row, Select, Space, Tag } from 'antd'\nimport { produce } from 'immer'\nimport type { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport Highlight from '../../../components/Highlight'\nimport PermissionButton from '../../../components/PermissionButton'\nimport QueryList from '../../../components/QueryList'\nimport type { UserListItem } from '../../../features/permission'\nimport { useAllRoles, useCreateUser, useRemoveUser, useUpdateUser } from '../../../features/permission'\nimport { useFormModal } from '../../../hooks/formModal'\nimport { useTranslation } from '../../../hooks/i18n'\nimport { useQueryListStore } from '../../../stores/queryList'\n\nconst { Option } = Select\n\nexport const action = '/api/usystem/user/list'\n\nfunction useCreateModal() {\n const { message } = App.useApp()\n const create = useCreateUser()\n const { data: roles, isLoading } = useAllRoles()\n const { refresh } = useQueryListStore()\n const t = useTranslation()\n\n return useFormModal<{ id: string; name: string; roles: string[] }>({\n title: t('UserList.createTitle'),\n formProps: {\n labelCol: { flex: '80px' },\n },\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label={t('global.role')} name=\"roles\">\n <Select allowClear mode=\"multiple\" loading={isLoading}>\n {(roles ?? []).map(role => (\n <Option value={role.name} key={role.id}>\n {role.name}\n </Option>\n ))}\n </Select>\n </Form.Item>\n </>\n ),\n async onConfirm(values) {\n await create.trigger(values)\n refresh(action, 1)\n message.success(t('UserList.createSuccessfully'))\n },\n })\n}\n\nfunction useUpdateUserModal() {\n const { message } = App.useApp()\n const update = useUpdateUser()\n const { data: roles, isLoading } = useAllRoles()\n const { mutate } = useQueryListStore()\n const t = useTranslation()\n\n return useFormModal<{ id: string; name: string; roles: string[] }, { id: string }>({\n title: t('UserList.updateTitle'),\n formProps: {\n labelCol: { flex: '80px' },\n },\n content: (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input readOnly />\n </Form.Item>\n <Form.Item label={t('global.role')} name=\"roles\">\n <Select\n allowClear\n mode=\"multiple\"\n loading={isLoading}\n options={roles?.map(role => ({\n label: role.name,\n value: role.name,\n }))}\n />\n </Form.Item>\n </>\n ),\n async onConfirm(values, extraValues) {\n await update.trigger(values)\n mutate<UserListItem>(\n action,\n prev => {\n return produce(prev, draft => {\n if (draft?.dataSource) {\n const index = draft.dataSource?.findIndex(item => item.id === extraValues?.id)\n if (index !== -1) {\n draft.dataSource[index].roles = values.roles\n }\n }\n })\n },\n { revalidate: false },\n )\n message.success(t('UserList.updateSuccessfully'))\n },\n })\n}\n\nconst UserList: FC = () => {\n const { modal, message } = App.useApp()\n const remove = useRemoveUser()\n const { mutate } = useQueryListStore()\n const { show: showCreateModal, modal: createModal } = useCreateModal()\n const { show: showUpdateModal, modal: updateModal } = useUpdateUserModal()\n const t = useTranslation()\n\n const columns: TableColumnsType<UserListItem> = [\n {\n title: t('global.name'),\n dataIndex: 'name',\n key: 'name',\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: t('global.role'),\n dataIndex: 'roles',\n key: 'roles',\n width: '40%',\n render(value: string[]) {\n return (\n <Row gutter={[4, 4]}>\n {(value || []).map((item: string) => (\n <Col key={item}>\n {item === 'root' ? (\n <Tag color=\"#f50\">{item}</Tag>\n ) : (\n <Tag color=\"#ff5a00\">\n <Link to={`/permission/role/${item}`}>{item}</Link>\n </Tag>\n )}\n </Col>\n ))}\n </Row>\n )\n },\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'Ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (value: UserListItem) => (\n <Space>\n <PermissionButton\n isGlobal\n size=\"small\"\n type=\"link\"\n code=\"100003\"\n onClick={() => {\n showUpdateModal({\n initialValues: {\n name: value.name,\n roles: value.roles,\n },\n extraValues: {\n id: value.id,\n },\n })\n }}\n >\n {t('global.update')}\n </PermissionButton>\n <PermissionButton\n isGlobal\n danger\n size=\"small\"\n code=\"100004\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('UserList.deleteTitle'),\n content: (\n <Highlight texts={[value.name]}>{t('UserList.deleteContent', { user: value.name })}</Highlight>\n ),\n async onOk() {\n await remove.trigger({\n id: value.id,\n name: value.name,\n })\n mutate(action, prev => {\n return produce(prev, draft => {\n const index = draft?.dataSource?.findIndex(item => item.id === value.id)\n if (index) {\n draft?.dataSource?.splice(index, 1)\n }\n })\n })\n message.success(t('UserList.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </PermissionButton>\n </Space>\n ),\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.user')}\n extra={\n <PermissionButton\n isGlobal\n type=\"primary\"\n icon={<UserAddOutlined />}\n code=\"100002\"\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('UserList.createTitle')}\n </PermissionButton>\n }\n >\n <QueryList<UserListItem, undefined, { List: UserListItem[]; Total: number }>\n isGlobal\n code=\"100001\"\n action={action}\n rowKey=\"id\"\n columns={columns}\n getTotal={response => response.Total}\n getDataSource={response => response.List}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default UserList\n"],"names":["UserAddOutlined","UserAddOutlinedSvg","props","ref","React","AntdIcon","_extends","UserAddOutlined$1","Option","Select","action","useCreateModal","message","App","create","useCreateUser","roles","isLoading","useAllRoles","refresh","useQueryListStore","t","useTranslation","useFormModal","jsxs","Fragment","jsx","Form","Input","role","values","useUpdateUserModal","update","useUpdateUser","mutate","extraValues","prev","produce","draft","index","_a","item","UserList","modal","remove","useRemoveUser","showCreateModal","createModal","showUpdateModal","updateModal","columns","value","Row","Col","Tag","Link","Space","PermissionButton","Highlight","_b","Card","QueryList","response"],"mappings":"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","x_google_ignoreList":[0,1]}