react-toolkits 2.22.12 → 2.22.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/chunk-7W2ZX3CB.js +2 -0
  3. package/lib/{chunk-PB74M2DE.js.map → chunk-7W2ZX3CB.js.map} +1 -1
  4. package/lib/chunk-AGGPFMZE.js +3 -0
  5. package/lib/chunk-AGGPFMZE.js.map +1 -0
  6. package/lib/chunk-ES6EDPL4.js +2 -0
  7. package/lib/chunk-ES6EDPL4.js.map +1 -0
  8. package/lib/chunk-JAGE2XCG.js +2 -0
  9. package/lib/{chunk-S6NRRFWG.js.map → chunk-JAGE2XCG.js.map} +1 -1
  10. package/lib/{chunk-OLVGFJFN.js → chunk-JUD7AMBZ.js} +2 -2
  11. package/lib/{chunk-OLVGFJFN.js.map → chunk-JUD7AMBZ.js.map} +1 -1
  12. package/lib/chunk-LKQSOMD5.js +2 -0
  13. package/lib/{chunk-ZRGA4NV7.js.map → chunk-LKQSOMD5.js.map} +1 -1
  14. package/lib/chunk-MS25PZ5J.js +2 -0
  15. package/lib/{chunk-3N7LFLKJ.js.map → chunk-MS25PZ5J.js.map} +1 -1
  16. package/lib/chunk-Q4PXPBQR.js +2 -0
  17. package/lib/chunk-Q4PXPBQR.js.map +1 -0
  18. package/lib/chunk-XBISTSFI.js +2 -0
  19. package/lib/chunk-XBISTSFI.js.map +1 -0
  20. package/lib/createMenuItem-PS7ABPSF.js +2 -0
  21. package/lib/{createMenuItem-WS2MRQJF.js.map → createMenuItem-PS7ABPSF.js.map} +1 -1
  22. package/lib/index.d.ts +35 -34
  23. package/lib/index.js +2 -2
  24. package/lib/index.js.map +1 -1
  25. package/lib/{menuItemList-CVNXJ7CP.js → menuItemList-LXN2NUCP.js} +2 -2
  26. package/lib/{menuItemList-CVNXJ7CP.js.map → menuItemList-LXN2NUCP.js.map} +1 -1
  27. package/lib/{roleDetail-WPKPZSX2.js → roleDetail-VH4X743G.js} +2 -2
  28. package/lib/{roleDetail-WPKPZSX2.js.map → roleDetail-VH4X743G.js.map} +1 -1
  29. package/lib/roleList-RHX3D2HP.js +2 -0
  30. package/lib/{roleList-RY6ZEVB4.js.map → roleList-RHX3D2HP.js.map} +1 -1
  31. package/lib/{updateMenuItem-AJRUUJ6K.js → updateMenuItem-M5U4T3L7.js} +2 -2
  32. package/lib/{updateMenuItem-AJRUUJ6K.js.map → updateMenuItem-M5U4T3L7.js.map} +1 -1
  33. package/lib/{userDetail-QQDMP7HT.js → userDetail-ODAEQUYS.js} +2 -2
  34. package/lib/{userDetail-QQDMP7HT.js.map → userDetail-ODAEQUYS.js.map} +1 -1
  35. package/lib/userList-TSYEABRN.js +2 -0
  36. package/lib/{userList-Q4RULNHM.js.map → userList-TSYEABRN.js.map} +1 -1
  37. package/package.json +1 -1
  38. package/lib/chunk-3N7LFLKJ.js +0 -2
  39. package/lib/chunk-BRZIJDNT.js +0 -2
  40. package/lib/chunk-BRZIJDNT.js.map +0 -1
  41. package/lib/chunk-JQHQKJFH.js +0 -2
  42. package/lib/chunk-JQHQKJFH.js.map +0 -1
  43. package/lib/chunk-N67BWR5M.js +0 -3
  44. package/lib/chunk-N67BWR5M.js.map +0 -1
  45. package/lib/chunk-PB74M2DE.js +0 -2
  46. package/lib/chunk-PMXRIKKI.js +0 -2
  47. package/lib/chunk-PMXRIKKI.js.map +0 -1
  48. package/lib/chunk-S6NRRFWG.js +0 -2
  49. package/lib/chunk-ZRGA4NV7.js +0 -2
  50. package/lib/createMenuItem-WS2MRQJF.js +0 -2
  51. package/lib/roleList-RY6ZEVB4.js +0 -2
  52. package/lib/userList-Q4RULNHM.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules/permission/components/permissionCollapse/index.tsx","../src/modules/permission/components/permissionList/PermissionWithGame.tsx","../src/modules/permission/components/permissionList/PermissionWithoutGame.tsx","../src/modules/permission/components/permissionList/index.tsx","../src/modules/permission/hooks/role-hooks.tsx"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","startTransition","useTransition","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","useEffect","category","acc","curr","items","jsx","Checkbox","e","permission","Row","Col","Collapse","permissionCollapse_default","Text","Typography","Option","Select","PermissionWithGame","isPermissionLoading","error","useAllPermissionsV2","games","isGamesLoading","useGames","gameList","setGameList","globalPermissions","gamePermissions","isLoading","list","addGame","prev","removeGame","_","i","jsxs","Divider","Skeleton","newValue","Card","Space","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionWithGame_default","PermissionWithoutGame","useAllPermissions","PermissionWithoutGame_default","PermissionList","permissionVersion","useToolkitsStore","permissionList_default","useRoleModal","mode","onSuccess","message","App","create","useCreateRole","update","useUpdateRole","isCreateMode","title","content","Fragment","Form","Input","useFormModal","values","extraValues","name"],"mappings":"kbAiBA,IAAMA,EAAkDC,CAAAA,CAAAA,EAAS,CAC/D,GAAM,CAAE,WAAAC,CAAAA,CAAAA,CAAa,QAAAC,CAAAA,CAAAA,CAAU,MAAAC,CAAAA,CAAAA,CAAQ,MAAAC,CAAO,CAAA,QAAA,CAAAC,CAAS,CAAA,CAAIL,CACrD,CAAA,CAACM,CAAWC,CAAAA,CAAY,EAAIC,QAAmB,CAAA,EAAE,CAAA,CACjD,CAACC,CAAAA,CAAYC,CAAa,CAAA,CAAIF,SAAkC,EAAE,CAClE,CAAA,CAACG,GAAeC,CAAAA,CAAgB,CAAIJ,CAAAA,QAAAA,CAAmBJ,GAAS,EAAE,CAClE,CAAA,CAAE,CAAAS,CAAAA,CAAE,CAAIC,CAAAA,CAAAA,GACR,EAAGC,CAAe,CAAA,CAAIC,aAAc,EAAA,CAEpCC,CAAmBC,CAAAA,WAAAA,CAAaC,GAA2B,CAC/DZ,CAAAA,CAAaY,CAAe,EAC9B,CAAG,CAAA,EAAE,CAAA,CAECC,EAAkB,CAACC,CAAAA,CAAuBC,CAAoB,GAAA,CAClE,IAAIC,CAAAA,CAAsB,EAAC,CAE3B,OAAIF,CACFE,CAAAA,CAAAA,CAAY,CAAC,GAAG,IAAI,GAAA,CAAIZ,GAAc,CAAA,MAAA,CAAOW,CAAK,CAAC,CAAC,CAEpDC,EAAAA,CAAAA,CAAYZ,GAAc,CAAA,KAAA,EAE1BW,CAAAA,CAAAA,CAAM,QAAQE,CAAQ,EAAA,CACpB,IAAMC,CAAAA,CAAQF,CAAU,CAAA,SAAA,CAAUG,CAAQA,EAAAA,CAAAA,GAASF,CAAI,CACnDC,CAAAA,CAAAA,CAAQ,CACVF,CAAAA,EAAAA,CAAAA,CAAU,MAAOE,CAAAA,CAAAA,CAAO,CAAC,EAE7B,CAAC,CAGIF,CAAAA,CAAAA,CACT,CAEMI,CAAAA,CAAAA,CAAgB,CAAC,CAAA,CAAwBL,CAAoB,GAAA,CACjE,IAAMD,CAAeD,CAAAA,CAAAA,CAAgB,CAAE,CAAA,MAAA,CAAO,OAASE,CAAAA,CAAK,CAC5DV,CAAAA,CAAAA,CAAiBS,CAAY,CAC7BhB,CAAAA,CAAAA,GAAWgB,CAAY,EACzB,CAEAO,CAAAA,SAAAA,CAAU,IAAM,CACdhB,EAAiBR,CAAS,EAAA,EAAE,EAC9B,CAAG,CAAA,CAACA,CAAK,CAAC,EAEVwB,SAAU,CAAA,IAAM,CACVzB,CAAAA,EACFY,CAAgB,CAAA,IAAM,CAEpBR,CAAAA,CAAAA,CAAcN,GAAe,EAAC,EAAG,GAAI,CAAA,CAAC,CAAE,QAAA,CAAA4B,CAAS,CAAA,GAAMA,CAAQ,CAAC,EAClE,CAAC,EAEL,CAAG,CAAA,CAAC1B,CAAQF,CAAAA,CAAW,CAAC,CAExB2B,CAAAA,SAAAA,CAAU,IAAM,CACd,IAAMP,CAAAA,CAAAA,CAAgBpB,CAAe,EAAA,IAAI,MACvC,CAAA,CAAC6B,CAAKC,CAAAA,CAAAA,IACJD,CAAIC,CAAAA,CAAAA,CAAK,QAAQ,CAAA,CAAIA,EAAK,WAAY,CAAA,KAAA,CAAML,CAAQf,EAAAA,GAAAA,EAAe,QAASe,CAAAA,CAAAA,CAAK,KAAK,CAAC,EAChFI,CAET,CAAA,CAAA,EACF,CAAA,CAEApB,CAAcW,CAAAA,CAAY,EAC5B,CAAA,CAAG,CAACV,GAAeV,CAAAA,CAAW,CAAC,CAAA,CAE/B,IAAM+B,CAAAA,CAAAA,CAAS/B,CAAe,EAAA,IAAI,GAAIyB,CAAAA,CAAAA,GAAS,CAC7C,GAAA,CAAKA,CAAK,CAAA,QAAA,CACV,KAAOA,CAAAA,CAAAA,CAAK,SACZ,KAAO,CAAA,CAACxB,CACN+B,EAAAA,GAAAA,CAACC,SAAA,CACC,OAAA,CAASzB,CAAWiB,CAAAA,CAAAA,CAAK,QAAQ,CACjC,CAAA,QAAA,CAAUS,CAAK,EAAA,CACbR,CACEQ,CAAAA,CAAAA,CACAT,CAAK,CAAA,WAAA,EAAa,IAAIU,CAAcA,EAAAA,CAAAA,CAAW,KAAK,CACtD,EACF,CAAA,CAEC,QAAAvB,CAAAA,CAAAA,CAAE,kBAAkB,CACvB,CAAA,CAAA,CAEF,QACEoB,CAAAA,GAAAA,CAACC,QAAS,CAAA,KAAA,CAAT,CAAe,KAAA,CAAO,CAAE,KAAO,CAAA,MAAO,CAAG,CAAA,KAAA,CAAOvB,GAAe,CAAA,QAAA,CAAUT,CACxE,CAAA,QAAA,CAAA+B,IAACI,GAAA,CAAA,CAAI,MAAQ,CAAA,CAAC,EAAI,CAAA,EAAE,CAAG,CAAA,KAAA,CAAO,CAAE,KAAO,CAAA,MAAO,CAC3C,CAAA,QAAA,CAAAX,CAAK,CAAA,WAAA,EAAa,GAAIU,CAAAA,CAAAA,EACrBH,IAACK,GAAA,CAAA,CAA2B,IAAM,CAAA,CAAA,CAChC,QAAAL,CAAAA,GAAAA,CAACC,QAAA,CAAA,CACC,MAAOE,CAAW,CAAA,KAAA,CAClB,QAAUD,CAAAA,CAAAA,EAAK,CACbR,CAAAA,CAAcQ,CAAG,CAAA,CAACC,EAAW,KAAK,CAAC,EACrC,CAAA,CAEC,QAAAA,CAAAA,CAAAA,CAAW,KACd,CAAA,CAAA,CAAA,CARQA,EAAW,KASrB,CACD,CACH,CAAA,CAAA,CACF,CAEJ,CAAA,CAAE,CAEF,CAAA,OACEH,IAACM,QAAA,CAAA,CACC,KAAO,CAAA,CAAE,KAAO,CAAA,MAAO,CACvB,CAAA,WAAA,CAAY,SACZ,SAAWjC,CAAAA,CAAAA,CACX,KAAO0B,CAAAA,CAAAA,CACP,QAAUf,CAAAA,CAAAA,CACZ,CAEJ,CAAA,CAEOuB,EAAQzC,ECjFP,CAjCR,GAAM,CAAE,KAAA0C,CAAK,CAAA,CAAIC,UACX,CAAA,CAAE,MAAAC,CAAAA,EAAO,CAAIC,CAAAA,MAAAA,CAObC,GAAkD7C,CAAS,EAAA,CAC/D,GAAM,CAAE,MAAAG,CAAAA,CAAAA,CAAS,CAAM,CAAA,CAAA,KAAA,CAAAC,EAAO,QAAAF,CAAAA,CAAAA,CAAU,QAAAG,CAAAA,CAAS,CAAIL,CAAAA,CAAAA,CAC/C,CAAE,IAAA,CAAMoC,EAAY,SAAWU,CAAAA,CAAAA,CAAqB,KAAAC,CAAAA,CAAM,CAAIC,CAAAA,CAAAA,EAC9D,CAAA,CAAE,KAAMC,CAAO,CAAA,SAAA,CAAWC,CAAe,CAAA,CAAIC,GAAS,EAAA,CACtD,CAACC,GAAAA,CAAUC,CAAW,CAAI7C,CAAAA,QAAAA,CAAsD,EAAE,CAClF8C,CAAAA,CAAAA,CAAoBlB,CAAY,EAAA,MAAA,CAAOV,GAAQA,CAAK,CAAA,SAAS,CAC7D6B,CAAAA,CAAAA,CAAkBnB,CAAY,EAAA,MAAA,CAAOV,CAAQ,EAAA,CAACA,EAAK,SAAS,CAAA,CAC5D8B,CAAYV,CAAAA,CAAAA,EAAuBI,CACnC,CAAA,CAAE,CAAArC,CAAAA,CAAE,EAAIC,CAAe,EAAA,CAc7B,GAZAc,SAAAA,CAAU,IAAM,CACd,IAAM6B,CAAAA,CAAoD,EAE1D,CAAA,MAAA,CAAO,IAAKrD,CAAAA,CAAAA,EAAS,EAAE,CAAE,CAAA,OAAA,CAAQe,GAAO,CAClCA,CAAAA,GAAQ,QACVsC,EAAAA,CAAAA,CAAK,IAAK,CAAA,CAAE,MAAQtC,CAAAA,CAAAA,CAAK,YAAaf,CAAQe,GAAAA,CAAG,CAAK,EAAA,EAAG,CAAC,EAE9D,CAAC,EAEDkC,CAAYI,CAAAA,CAAI,EAClB,CAAA,CAAG,CAACrD,CAAK,CAAC,CAAA,CAEN2C,EACF,OACEd,GAAAA,CAAC,KAAI,CAAA,CAAA,SAAA,CAAU,qBACb,CAAA,QAAA,CAAAA,GAACQ,CAAAA,CAAAA,CAAA,CAAK,IAAK,CAAA,QAAA,CAAU,QAAA5B,CAAAA,CAAAA,CAAE,kCAAkC,CAAA,CAAE,CAC7D,CAAA,CAAA,CAIJ,IAAM6C,CAAU,CAAA,IAAM,CACpBL,CAAAA,CAAYM,CAAQ,EAAA,CAAC,GAAGA,CAAAA,CAAM,CAAE,MAAQ,CAAA,EAAA,CAAI,WAAa,CAAA,EAAG,CAAC,CAAC,EAChE,EAEMC,CAAcnC,CAAAA,CAAAA,EAAkB,CACpC4B,CAAAA,CAAYM,CAAQA,EAAAA,CAAAA,CAAK,MAAO,CAAA,CAACE,EAAGC,CAAMA,GAAAA,CAAAA,GAAMrC,CAAK,CAAC,EACxD,CAEA,CAAA,OACEsC,IAAC,CAAA,KAAA,CAAA,CAAI,UAAU,sBACb,CAAA,QAAA,CAAA,CAAA9B,GAAC,CAAA,KAAA,CAAA,CAAI,SAAU,CAAA,OAAA,CACb,QAAAA,CAAAA,GAAAA,CAAC+B,QAAA,CAAQ,MAAA,CAAM,CAAE,CAAA,CAAA,QAAA,CAAAnD,CAAE,CAAA,iCAAiC,CAAE,CAAA,CAAA,CACxD,EACAoB,GAACgC,CAAAA,QAAAA,CAAA,CAAS,MAAA,CAAM,CAAC,CAAA,CAAA,OAAA,CAAST,CACxB,CAAA,QAAA,CAAAvB,IAACO,CAAA,CAAA,CACC,KAAOpC,CAAAA,CAAAA,EAAO,MACd,CAAA,QAAA,CAAUF,CACV,CAAA,WAAA,CAAaoD,EACb,MAAQnD,CAAAA,CAAAA,CACR,QAAU+D,CAAAA,CAAAA,EAAY,CACpB7D,CAAAA,GAAW,CACT,GAAGD,EACH,MAAQ8D,CAAAA,CACV,CAAC,EACH,CACF,CAAA,CAAA,CACF,CACAjC,CAAAA,GAAAA,CAAC,OAAI,SAAU,CAAA,OAAA,CACb,QAAAA,CAAAA,GAAAA,CAAC+B,OAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAE,SAAAnD,CAAE,CAAA,iCAAiC,CAAE,CAAA,CAAA,CACxD,CACCuC,CAAAA,GAAAA,CAAS,GAAI,CAAA,CAAC1B,EAAMD,CACnBQ,GAAAA,GAAAA,CAACkC,IAAA,CAAA,CACC,KACEJ,CAAAA,IAAAA,CAACK,KAAA,CAAA,CACC,UAAAnC,GAACQ,CAAAA,CAAAA,CAAA,CAAM,QAAA,CAAA5B,CAAE,CAAA,aAAa,CAAE,CAAA,CAAA,CACvBX,EACC+B,GAACQ,CAAAA,CAAAA,CAAA,CAAM,QAAA,CAAAQ,CAAO,EAAA,IAAA,CAAKoB,CAAQ,EAAA,MAAA,CAAOA,EAAK,EAAE,CAAA,GAAM3C,CAAK,CAAA,MAAM,CAAG,EAAA,IAAA,CAAK,CAElEO,CAAAA,GAAAA,CAACW,OAAA,CACC,QAAA,CAAU1C,CACV,CAAA,KAAA,CAAOkD,GAAS3B,CAAAA,CAAK,CAAE,CAAA,MAAA,EAAU,OACjC,KAAO,CAAA,CAAE,KAAO,CAAA,OAAQ,CACxB,CAAA,WAAA,CAAaZ,CAAE,CAAA,sCAAsC,EACrD,QAAUyD,CAAAA,CAAAA,EAAiB,CACzBjB,CAAAA,CAAYkB,CAAO,EAAA,CACjB,IAAMC,CAAAA,CAAOD,EAAI,KAAM,EAAA,CACvB,OAAAC,CAAAA,CAAK/C,CAAK,CAAA,CAAE,MAAS6C,CAAAA,CAAAA,CACdE,CACT,CAAC,EACH,CAEC,CAAA,QAAA,CAAAvB,CAAO,EAAA,GAAA,CAAIoB,CACVpC,EAAAA,GAAAA,CAACU,GAAA,CAEC,KAAA,CAAO0B,CAAK,CAAA,EAAA,CACZ,QAAUjB,CAAAA,GAAAA,CAAS,IAAK,CAAA,CAAC,CAAE,MAAAqB,CAAAA,CAAO,CAAMA,GAAAA,CAAAA,GAAW,MAAOJ,CAAAA,CAAAA,CAAK,EAAE,CAAC,EAEjE,QAAAA,CAAAA,CAAAA,CAAK,IAJDA,CAAAA,CAAAA,CAAAA,CAAK,EAKZ,CACD,CACH,CAAA,CAAA,CAAA,CAEJ,EAGF,SAAU,CAAA,MAAA,CACV,KACE,CAAA,CAACnE,CACC+B,EAAAA,GAAAA,CAACyC,MAAA,CAAA,CACC,KAAK,MACL,CAAA,OAAA,CAAS,IAAM,CACbd,CAAWnC,CAAAA,CAAK,EAClB,CAAA,CAEC,SAAAZ,CAAE,CAAA,2BAA2B,CAChC,CAAA,CAAA,CAIH,QAAAuC,CAAAA,GAAAA,CAAS3B,CAAK,CAAA,CAAE,OACfQ,GAACgC,CAAAA,QAAAA,CAAA,CAAS,MAAA,CAAM,CAAC,CAAA,CAAA,OAAA,CAAST,CACxB,CAAA,QAAA,CAAAvB,IAACO,CAAA,CAAA,CACC,KAAOpC,CAAAA,CAAAA,GAAQgD,GAAS3B,CAAAA,CAAK,CAAE,CAAA,MAAM,EACrC,QAAUvB,CAAAA,CAAAA,CACV,MAAQC,CAAAA,CAAAA,CACR,WAAaoD,CAAAA,CAAAA,CACb,QAAUW,CAAAA,CAAAA,EAAY,CACpB7D,CAAW,GAAA,CACT,GAAGD,CAAAA,CACH,CAACgD,GAAAA,CAAS3B,CAAK,CAAA,CAAE,MAAM,EAAGyC,CAC5B,CAAC,EACH,CACF,CAAA,CAAA,CACF,CAEAjC,CAAAA,GAAAA,CAAC0C,MAAA,CAAM,WAAA,CAAa9D,CAAE,CAAA,uCAAuC,CAAG,CAAA,CAAA,CAAA,CA/B7DY,CAiCP,CACD,EACA,CAACvB,CAAAA,EACA+B,GAACyC,CAAAA,MAAAA,CAAA,CAAO,KAAA,CAAK,CAAC,CAAA,CAAA,IAAA,CAAK,SAAS,OAAShB,CAAAA,CAAAA,CAClC,QAAA7C,CAAAA,CAAAA,CAAE,wBAAwB,CAAA,CAC7B,CAEJ,CAAA,CAAA,CAEJ,EAEO+D,CAAQ/B,CAAAA,EAAAA,CCpJf,GAAM,CAAE,IAAA,CAAAJ,EAAK,CAAA,CAAIC,UAOXmC,CAAAA,EAAAA,CAAwD7E,GAAS,CACrE,GAAM,CAAE,MAAA,CAAAG,CAAS,CAAA,CAAA,CAAA,CAAM,KAAAC,CAAAA,CAAAA,CAAO,SAAAF,CAAU,CAAA,QAAA,CAAAG,CAAS,CAAA,CAAIL,CAC/C,CAAA,CAAE,IAAMC,CAAAA,CAAAA,CAAa,UAAAuD,CAAW,CAAA,KAAA,CAAAT,CAAM,CAAA,CAAI+B,CAAkB,EAAA,CAC5D,CAAE,CAAA,CAAAjE,CAAE,CAAIC,CAAAA,CAAAA,EAEd,CAAA,OAAIiC,CAEAd,CAAAA,GAAAA,CAAC,KAAI,CAAA,CAAA,SAAA,CAAU,sBACb,QAAAA,CAAAA,GAAAA,CAACQ,EAAA,CAAA,CAAK,IAAK,CAAA,QAAA,CAAU,QAAA5B,CAAAA,CAAAA,CAAE,kCAAkC,CAAE,CAAA,CAAA,CAC7D,CAKFoB,CAAAA,GAAAA,CAACgC,QAAA,CAAA,CAAS,MAAM,CAAA,CAAA,CAAA,CAAC,QAAST,CACxB,CAAA,QAAA,CAAAvB,GAACO,CAAAA,CAAAA,CAAA,CACC,KAAA,CAAOpC,CACP,CAAA,WAAA,CAAaH,EACb,QAAUC,CAAAA,CAAAA,CACV,MAAQC,CAAAA,CAAAA,CACR,QAAUE,CAAAA,CAAAA,CACZ,CACF,CAAA,CAEJ,EAEO0E,CAAQF,CAAAA,EAAAA,CC5Bf,IAAMG,EAA2ChF,CAAAA,CAAAA,EAA+B,CAC9E,GAAM,CAAE,KAAAI,CAAAA,CAAM,CAAIJ,CAAAA,CAAAA,CAEZ,CAAE,iBAAA,CAAAiF,CAAkB,CAAIC,CAAAA,CAAAA,EAE9B,CAAA,OAAID,CAAsB,GAAA,IAAA,CACjBhD,GAAC2C,CAAAA,CAAAA,CAAA,CAAoB,GAAG5E,CAAAA,CAAO,KAAOI,CAAAA,CAAAA,CAAgC,CAGxE6B,CAAAA,GAAAA,CAAC8C,CAAA,CAAA,CAAuB,GAAG/E,CAAO,CAAA,KAAA,CAAOI,CAAgC,CAAA,CAClF,CAEO+E,CAAAA,CAAAA,CAAQH,OClBFI,EAAe,CAAA,CAAC,CAAE,IAAA,CAAAC,EAAM,SAAAC,CAAAA,CAAU,CAA6D,GAAA,CAC1G,GAAM,CAAE,OAAAC,CAAAA,CAAQ,EAAIC,GAAI,CAAA,MAAA,EAClB,CAAA,CAAE,CAAA3E,CAAAA,CAAE,CAAIC,CAAAA,CAAAA,GACR2E,CAASC,CAAAA,CAAAA,EACTC,CAAAA,CAAAA,CAASC,CAAc,EAAA,CAEvBC,GAAeR,CAAAA,CAAAA,GAAS,SAExBS,CAAuBjF,CAAAA,CAAAA,CAAfgF,GAAiB,CAAA,kBAAA,CAAwB,kBAAN,CAAA,CAE3CE,CACJhC,CAAAA,IAAAA,CAAAiC,SAAA,CACE,QAAA,CAAA,CAAA/D,GAACgE,CAAAA,IAAAA,CAAK,IAAL,CAAA,CAAU,KAAOpF,CAAAA,CAAAA,CAAE,aAAa,CAAG,CAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAO,CAAC,CAAE,QAAU,CAAA,CAAA,CAAK,CAAC,CACxE,CAAA,QAAA,CAAAoB,GAACiE,CAAAA,KAAAA,CAAA,CAAM,QAAA,CAAU,CAACL,GAAAA,CAAc,EAClC,CACA5D,CAAAA,GAAAA,CAACgE,IAAK,CAAA,IAAA,CAAL,CAAU,IAAA,CAAK,aACd,CAAA,QAAA,CAAAhE,IAACkD,CAAA,CAAA,EAAe,CAClB,CAAA,CAAA,CAAA,CACF,CAoBF,CAAA,OAAOgB,GAML,CAAA,CACA,MAAAL,CACA,CAAA,KAAA,CAAO,QACP,CAAA,SAAA,CAAW,CACT,MAAA,CAAQ,UACV,CAAA,CACA,QAAAC,CACA,CAAA,SAAA,CA9BgB,MAChBK,CAAAA,CACAC,CACG,GAAA,CACH,IAAMC,CAAAA,CAAO,QAAQF,CAAO,CAAA,IAAI,CAC1BnG,CAAAA,CAAAA,CAAAA,CAAcmG,CAAO,CAAA,WAAA,CAEvBP,GACF,EAAA,MAAMJ,EAAO,WAAY,CAAA,CAAE,IAAAa,CAAAA,CAAAA,CAAM,WAAArG,CAAAA,CAAY,CAAC,CAAA,CAC9CsF,EAAQ,OAAQ1E,CAAAA,CAAAA,CAAE,yBAAyB,CAAC,CAE5C,GAAA,MAAM8E,CAAO,CAAA,WAAA,CAAY,CAAE,EAAIU,CAAAA,CAAAA,EAAa,EAAI,CAAA,IAAA,CAAAC,CAAM,CAAA,WAAA,CAAArG,CAAY,CAAC,EACnEsF,CAAQ,CAAA,OAAA,CAAQ1E,CAAE,CAAA,yBAAyB,CAAC,CAE9CyE,CAAAA,CAAAA,CAAAA,KACF,CAgBA,CAAC,CACH","file":"chunk-ZRGA4NV7.js","sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState, useTransition } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const { t } = useTranslation()\n const [, startTransition] = useTransition()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n startTransition(() => {\n // 改变展开状态\n setActiveKey((permissions ?? []).map(({ category }) => category))\n })\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const items = (permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions?.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions?.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={items}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport { useAllPermissionsV2 } from '../../services'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionWithGameProps extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionWithGame: FC<PermissionWithGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2()\n const { data: games, isLoading: isGamesLoading } = useGames()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const isLoading = isPermissionLoading || isGamesLoading\n const { t } = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => String(game.id) === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option\n key={game.id}\n value={game.id}\n disabled={gameList.some(({ gameId }) => gameId === String(game.id))}\n >\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionWithGame\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport { useAllPermissions } from '../../services'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\n\ninterface PermissionWithoutGameProps extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionWithoutGame: FC<PermissionWithoutGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const { t } = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionWithoutGame\n","import type { FC } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\n\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionWithGame from './PermissionWithGame'\nimport PermissionWithoutGame from './PermissionWithoutGame'\nimport type { PermissionListPropsBase } from './types'\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n console.log('value', typeof value, value === null, JSON.stringify(value))\n const { permissionVersion } = useToolkitsStore()\n\n if (permissionVersion === PermissionVersion.V2) {\n return <PermissionWithGame {...props} value={value as RoleV2['permissions']} />\n }\n\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n}\n\nexport default PermissionList\n","import { App, Form, Input } from 'antd'\n\nimport { useFormModal } from '@/hooks/modal'\nimport { useTranslation } from '@/locale'\n\nimport PermissionList from '../components/permissionList'\nimport { useCreateRole, useUpdateRole } from '../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../types'\n\nexport const useRoleModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const create = useCreateRole()\n const update = useUpdateRole()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('Role.createTitle') : t('Role.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (\n values: { name: string; permissions: RoleListItem['permissions'] },\n extraValues: { id: number },\n ) => {\n const name = `role_${values.name}`\n const permissions = values.permissions\n\n if (isCreateMode) {\n await create.mutateAsync({ name, permissions })\n message.success(t('Role.createSuccessfully'))\n } else {\n await update.mutateAsync({ id: extraValues?.id, name, permissions })\n message.success(t('Role.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n { id: number }\n >({\n title,\n width: '1000px',\n formProps: {\n layout: 'vertical',\n },\n content,\n onConfirm,\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/modules/permission/components/permissionCollapse/index.tsx","../src/modules/permission/components/permissionList/PermissionWithGame.tsx","../src/modules/permission/components/permissionList/PermissionWithoutGame.tsx","../src/modules/permission/components/permissionList/index.tsx","../src/modules/permission/hooks/role-hooks.tsx"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","startTransition","useTransition","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","useEffect","category","acc","curr","items","jsx","Checkbox","e","permission","Row","Col","Collapse","permissionCollapse_default","Text","Typography","Option","Select","PermissionWithGame","isPermissionLoading","error","useAllPermissionsV2","games","isGamesLoading","useGames","gameList","setGameList","globalPermissions","gamePermissions","isLoading","list","addGame","prev","removeGame","_","i","jsxs","Divider","Skeleton","newValue","Card","Space","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionWithGame_default","PermissionWithoutGame","useAllPermissions","PermissionWithoutGame_default","PermissionList","permissionVersion","useToolkitsStore","permissionList_default","useRoleModal","mode","onSuccess","message","App","create","useCreateRole","update","useUpdateRole","isCreateMode","title","content","Fragment","Form","Input","useFormModal","values","extraValues","name"],"mappings":"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","file":"chunk-LKQSOMD5.js","sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState, useTransition } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const { t } = useTranslation()\n const [, startTransition] = useTransition()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n startTransition(() => {\n // 改变展开状态\n setActiveKey((permissions ?? []).map(({ category }) => category))\n })\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const items = (permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions?.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions?.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={items}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport { useAllPermissionsV2 } from '../../services'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionWithGameProps extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionWithGame: FC<PermissionWithGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2()\n const { data: games, isLoading: isGamesLoading } = useGames()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const isLoading = isPermissionLoading || isGamesLoading\n const { t } = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => String(game.id) === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option\n key={game.id}\n value={game.id}\n disabled={gameList.some(({ gameId }) => gameId === String(game.id))}\n >\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionWithGame\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport { useAllPermissions } from '../../services'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\n\ninterface PermissionWithoutGameProps extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionWithoutGame: FC<PermissionWithoutGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const { t } = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionWithoutGame\n","import type { FC } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\n\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionWithGame from './PermissionWithGame'\nimport PermissionWithoutGame from './PermissionWithoutGame'\nimport type { PermissionListPropsBase } from './types'\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n console.log('value', typeof value, value === null, JSON.stringify(value))\n const { permissionVersion } = useToolkitsStore()\n\n if (permissionVersion === PermissionVersion.V2) {\n return <PermissionWithGame {...props} value={value as RoleV2['permissions']} />\n }\n\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n}\n\nexport default PermissionList\n","import { App, Form, Input } from 'antd'\n\nimport { useFormModal } from '@/hooks/modal'\nimport { useTranslation } from '@/locale'\n\nimport PermissionList from '../components/permissionList'\nimport { useCreateRole, useUpdateRole } from '../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../types'\n\nexport const useRoleModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const create = useCreateRole()\n const update = useUpdateRole()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('Role.createTitle') : t('Role.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (\n values: { name: string; permissions: RoleListItem['permissions'] },\n extraValues: { id: number },\n ) => {\n const name = `role_${values.name}`\n const permissions = values.permissions\n\n if (isCreateMode) {\n await create.mutateAsync({ name, permissions })\n message.success(t('Role.createSuccessfully'))\n } else {\n await update.mutateAsync({ id: extraValues?.id, name, permissions })\n message.success(t('Role.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n { id: number }\n >({\n title,\n width: '1000px',\n formProps: {\n layout: 'vertical',\n },\n content,\n onConfirm,\n })\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {l,m,i}from'./chunk-AGGPFMZE.js';import {useQuery,useQueryClient,useMutation}from'@tanstack/react-query';function q(){let e=l();return useQuery({queryKey:m.roles.all,queryFn:()=>e.get("/api/usystem/role/all")})}function f(e){let t=i(o=>o.permissionVersion),r=l(),n=t==="v2"?"v2":"v1";return useQuery({queryKey:m.roles.detail(e,n),queryFn:()=>r.get(`/api/usystem/role/${n==="v2"?"infoV2":"info"}?name=${e}`)})}function v(){let{permissionVersion:e}=i(o=>o),t=l(),r=useQueryClient(),n=e==="v2"?"v2":"v1";return useMutation({mutationKey:m.roles.create(n),mutationFn:({name:o,permissions:y})=>t.post(n==="v2"?"/api/usystem/role/createV2":"/api/usystem/role/create",{name:o,permissions:y}),onSuccess:()=>{r.invalidateQueries({queryKey:m.roles.all});}})}function K(){let{permissionVersion:e}=i(o=>o),t=l(),r=useQueryClient(),n=e==="v2"?"v2":"v1";return useMutation({mutationKey:m.roles.update(n),mutationFn:({id:o,name:y,permissions:p})=>t.post(n==="v2"?"/api/usystem/role/updateV2":"/api/usystem/role/update",{id:o,name:y,permissions:p}),onSuccess:()=>{r.invalidateQueries({queryKey:m.roles.all});}})}function R(){let e=l(),t=useQueryClient();return useMutation({mutationKey:m.roles.delete,mutationFn:({id:r,name:n})=>e.post("/api/usystem/role/delete",{id:r,name:n}),onSuccess:()=>{t.invalidateQueries({queryKey:m.roles.all});}})}function k(){let e=l(),t=useQueryClient();return useMutation({mutationKey:m.users.create,mutationFn:r=>e.post("/api/usystem/user/create",r),onSuccess:()=>{t.invalidateQueries({queryKey:m.users.all});}})}function x(){let e=l(),t=useQueryClient();return useMutation({mutationKey:m.users.update,mutationFn:r=>e.post("/api/usystem/user/update",r),onSuccess:()=>{t.invalidateQueries({queryKey:m.users.all});}})}function F(){let e=l(),t=useQueryClient();return useMutation({mutationKey:m.users.delete,mutationFn:({id:r,name:n})=>e.post("/api/usystem/user/delete",{id:r,name:n}),onSuccess:()=>{t.invalidateQueries({queryKey:m.users.all});}})}function P(){let e=l();return useQuery({queryKey:m.permissions.allPermissions,queryFn:()=>e.get("/api/usystem/user/allPermssions"),staleTime:1/0})}function C(){let e=l();return useQuery({queryKey:m.permissions.allPermissionsV2,queryFn:()=>e.get("/api/usystem/user/allPermssionsV2"),staleTime:1/0})}export{q as a,f as b,v as c,K as d,R as e,k as f,x as g,F as h,P as i,C as j};//# sourceMappingURL=chunk-MS25PZ5J.js.map
2
+ //# sourceMappingURL=chunk-MS25PZ5J.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules/permission/services/index.ts"],"names":["useAllRoles","ky","useKy","useQuery","queryKeys","useRole","name","permissionVersion","useToolkitsStore","state","version","useCreateRole","s","queryClient","useQueryClient","useMutation","permissions","useUpdateRole","id","useRemoveRole","useCreateUser","arg","useUpdateUser","useRemoveUser","useAllPermissions","useAllPermissionsV2"],"mappings":"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","file":"chunk-3N7LFLKJ.js","sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\n\nimport type { PermissionEnumItem, RoleEnumItem, RoleV1, RoleV2 } from '../types'\n\nexport function useAllRoles() {\n const ky = useKy()\n return useQuery({\n queryKey: queryKeys.roles.all,\n queryFn: () => ky.get<RoleEnumItem[]>('/api/usystem/role/all'),\n })\n}\n\nexport function useRole(name: string) {\n const permissionVersion = useToolkitsStore(state => state.permissionVersion)\n const ky = useKy()\n const version = permissionVersion === PermissionVersion.V2 ? 'v2' : 'v1'\n\n return useQuery({\n queryKey: queryKeys.roles.detail(name, version),\n queryFn: () => ky.get<RoleV1 | RoleV2>(`/api/usystem/role/${version === 'v2' ? 'infoV2' : 'info'}?name=${name}`),\n })\n}\n\nexport function useCreateRole() {\n const { permissionVersion } = useToolkitsStore(s => s)\n const ky = useKy()\n const queryClient = useQueryClient()\n const version = permissionVersion === PermissionVersion.V2 ? 'v2' : 'v1'\n\n return useMutation({\n mutationKey: queryKeys.roles.create(version),\n mutationFn: ({ name, permissions }: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }) =>\n ky.post(version === 'v2' ? '/api/usystem/role/createV2' : '/api/usystem/role/create', { name, permissions }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useUpdateRole() {\n const { permissionVersion } = useToolkitsStore(s => s)\n const ky = useKy()\n const queryClient = useQueryClient()\n const version = permissionVersion === PermissionVersion.V2 ? 'v2' : 'v1'\n\n return useMutation({\n mutationKey: queryKeys.roles.update(version),\n mutationFn: ({\n id,\n name,\n permissions,\n }: {\n id: number\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n }) =>\n ky.post(version === 'v2' ? '/api/usystem/role/updateV2' : '/api/usystem/role/update', { id, name, permissions }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useRemoveRole() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.roles.delete,\n mutationFn: ({ id, name }: { id: number; name: string }) => ky.post('/api/usystem/role/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useCreateUser() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.create,\n mutationFn: (\n arg:\n | { name: string; roles: string[] }\n | {\n name: string\n permissions: {\n game_group: string[]\n game_ids: string[]\n role: string\n }[]\n },\n ) => ky.post('/api/usystem/user/create', arg),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useUpdateUser() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.update,\n mutationFn: (\n arg:\n | { id: string; name: string; roles: string[] }\n | {\n id: string\n name: string\n permissions: {\n game_group: string[]\n game_ids: string[]\n role: string\n }[]\n },\n ) => ky.post('/api/usystem/user/update', arg),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useRemoveUser() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.delete,\n mutationFn: ({ id, name }: { id: string; name: string }) => ky.post('/api/usystem/user/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useAllPermissions() {\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissions,\n queryFn: () => ky.get<PermissionEnumItem[]>('/api/usystem/user/allPermssions'),\n staleTime: Infinity,\n })\n}\n\nexport function useAllPermissionsV2() {\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissionsV2,\n queryFn: () => ky.get<PermissionEnumItem[]>('/api/usystem/user/allPermssionsV2'),\n staleTime: Infinity,\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/modules/permission/services/index.ts"],"names":["useAllRoles","ky","useKy","useQuery","queryKeys","useRole","name","permissionVersion","useToolkitsStore","state","version","useCreateRole","s","queryClient","useQueryClient","useMutation","permissions","useUpdateRole","id","useRemoveRole","useCreateUser","arg","useUpdateUser","useRemoveUser","useAllPermissions","useAllPermissionsV2"],"mappings":"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","file":"chunk-MS25PZ5J.js","sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\n\nimport type { PermissionEnumItem, RoleEnumItem, RoleV1, RoleV2 } from '../types'\n\nexport function useAllRoles() {\n const ky = useKy()\n return useQuery({\n queryKey: queryKeys.roles.all,\n queryFn: () => ky.get<RoleEnumItem[]>('/api/usystem/role/all'),\n })\n}\n\nexport function useRole(name: string) {\n const permissionVersion = useToolkitsStore(state => state.permissionVersion)\n const ky = useKy()\n const version = permissionVersion === PermissionVersion.V2 ? 'v2' : 'v1'\n\n return useQuery({\n queryKey: queryKeys.roles.detail(name, version),\n queryFn: () => ky.get<RoleV1 | RoleV2>(`/api/usystem/role/${version === 'v2' ? 'infoV2' : 'info'}?name=${name}`),\n })\n}\n\nexport function useCreateRole() {\n const { permissionVersion } = useToolkitsStore(s => s)\n const ky = useKy()\n const queryClient = useQueryClient()\n const version = permissionVersion === PermissionVersion.V2 ? 'v2' : 'v1'\n\n return useMutation({\n mutationKey: queryKeys.roles.create(version),\n mutationFn: ({ name, permissions }: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }) =>\n ky.post(version === 'v2' ? '/api/usystem/role/createV2' : '/api/usystem/role/create', { name, permissions }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useUpdateRole() {\n const { permissionVersion } = useToolkitsStore(s => s)\n const ky = useKy()\n const queryClient = useQueryClient()\n const version = permissionVersion === PermissionVersion.V2 ? 'v2' : 'v1'\n\n return useMutation({\n mutationKey: queryKeys.roles.update(version),\n mutationFn: ({\n id,\n name,\n permissions,\n }: {\n id: number\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n }) =>\n ky.post(version === 'v2' ? '/api/usystem/role/updateV2' : '/api/usystem/role/update', { id, name, permissions }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useRemoveRole() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.roles.delete,\n mutationFn: ({ id, name }: { id: number; name: string }) => ky.post('/api/usystem/role/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useCreateUser() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.create,\n mutationFn: (\n arg:\n | { name: string; roles: string[] }\n | {\n name: string\n permissions: {\n game_group: string[]\n game_ids: string[]\n role: string\n }[]\n },\n ) => ky.post('/api/usystem/user/create', arg),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useUpdateUser() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.update,\n mutationFn: (\n arg:\n | { id: string; name: string; roles: string[] }\n | {\n id: string\n name: string\n permissions: {\n game_group: string[]\n game_ids: string[]\n role: string\n }[]\n },\n ) => ky.post('/api/usystem/user/update', arg),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useRemoveUser() {\n const ky = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.delete,\n mutationFn: ({ id, name }: { id: string; name: string }) => ky.post('/api/usystem/user/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useAllPermissions() {\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissions,\n queryFn: () => ky.get<PermissionEnumItem[]>('/api/usystem/user/allPermssions'),\n staleTime: Infinity,\n })\n}\n\nexport function useAllPermissionsV2() {\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissionsV2,\n queryFn: () => ky.get<PermissionEnumItem[]>('/api/usystem/user/allPermssionsV2'),\n staleTime: Infinity,\n })\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {l,i,m,e}from'./chunk-AGGPFMZE.js';import {useQuery}from'@tanstack/react-query';function I(e,s){let t=l(),{permissionVersion:n}=i(),r=typeof e<"u"?typeof e=="string"?[e]:e:[],l$1=n!=="v1"?"v2":"v1",{data:o,...c}=useQuery({queryKey:m.permissions.check(r,l$1),queryFn:()=>t.post(n!=="v1"?"/api/usystem/user/checkV2":"/api/usystem/user/check",{permissions:r},s),enabled:r.length>0}),p=!0;return typeof e=="string"?p=o?.has_all?!0:o?.[e]??!1:Array.isArray(e)&&e.length>0&&(p=r.reduce((g,f)=>(g[f]=o?.has_all?!0:o?.[f]??!1,g),{})),{...c,data:p}}function K(){let{signInPath:e$1,gameId:s}=i(),t=l();return useQuery({queryKey:m.menus.navbar(s?String(s):void 0),queryFn:()=>t.get("/api/usystem/menu/navbar",{headers:{[e]:s?encodeURIComponent(String(s)):"global"}}),enabled:window.location.pathname!==e$1})}var v=()=>{let{gameApiV2:e$1,permissionVersion:s}=i(),t=l();return useQuery({queryKey:m.enums.gameGroups,queryFn:async()=>{let n={headers:{[e]:"global"}};return e$1?(await t.get("/api/game/list",n))?.list??[]:await t.get("/api/usystem/game/all",n)??[]},enabled:s!=="v1",staleTime:1/0})};export{I as a,K as b,v as c};//# sourceMappingURL=chunk-Q4PXPBQR.js.map
2
+ //# sourceMappingURL=chunk-Q4PXPBQR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/index.ts"],"names":["usePermission","code","config","ky","useKy","permissionVersion","useToolkitsStore","permissionCodes","version","data","rest","useQuery","queryKeys","newData","acc","curr","useMenuList","signInPath","gameId","APP_ID_HEADER","useGames","gameApiV2","requestConfig"],"mappings":"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","file":"chunk-Q4PXPBQR.js","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport type { Options as KyOptions } from 'ky'\n\nimport type { Game } from '@/components/layout/types'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { APP_ID_HEADER, PermissionVersion } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { MenuListItem } from '@/types'\n\nexport function usePermission(code?: string | string[], config?: KyOptions) {\n const ky = useKy()\n const { permissionVersion } = useToolkitsStore()\n const permissionCodes: string[] = typeof code !== 'undefined' ? (typeof code === 'string' ? [code] : code) : []\n const version = permissionVersion !== PermissionVersion.V1 ? 'v2' : 'v1'\n\n const { data, ...rest } = useQuery({\n queryKey: queryKeys.permissions.check(permissionCodes, version),\n queryFn: () =>\n ky.post<Record<string, boolean> & { has_all?: boolean }>(\n permissionVersion !== PermissionVersion.V1 ? '/api/usystem/user/checkV2' : '/api/usystem/user/check',\n {\n permissions: permissionCodes,\n },\n config,\n ),\n enabled: permissionCodes.length > 0,\n })\n\n let newData: boolean | Record<string, boolean> = true\n\n if (typeof code === 'string') {\n newData = data?.has_all ? true : (data?.[code] ?? false)\n } else if (Array.isArray(code) && code.length > 0) {\n newData = permissionCodes.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr] = data?.has_all ? true : (data?.[curr] ?? false)\n return acc\n }, {})\n }\n\n return {\n ...rest,\n data: newData,\n }\n}\n\nexport function useMenuList() {\n const { signInPath, gameId } = useToolkitsStore()\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.menus.navbar(gameId ? String(gameId) : undefined),\n queryFn: () =>\n ky.get<MenuListItem[]>('/api/usystem/menu/navbar', {\n headers: { [APP_ID_HEADER]: gameId ? encodeURIComponent(String(gameId)) : 'global' },\n }),\n enabled: window.location.pathname !== signInPath,\n })\n}\n\nexport const useGames = () => {\n const { gameApiV2, permissionVersion } = useToolkitsStore()\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.enums.gameGroups, // 复用现有的 key,或者可以创建专门的 games key\n queryFn: async () => {\n const requestConfig = {\n headers: {\n [APP_ID_HEADER]: 'global',\n },\n }\n\n if (gameApiV2) {\n const response = await ky.get<{ list: Game[] }>('/api/game/list', requestConfig)\n return response?.list ?? []\n }\n\n const response = await ky.get<Game[]>('/api/usystem/game/all', requestConfig)\n return response ?? []\n },\n enabled: permissionVersion !== PermissionVersion.V1,\n staleTime: Infinity,\n })\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$2}from'./chunk-JAGE2XCG.js';import {a as a$1}from'./chunk-Q4PXPBQR.js';import {a,b}from'./chunk-AGGPFMZE.js';import {Modal,Form,Button,Tooltip}from'antd';import {jsx}from'react/jsx-runtime';import {useMemo,useEffect,useState,useCallback}from'react';var S=p=>{let{children:e,code:r,showLoading:l,disabled:a,config:c,...o}=p,d=r?Array.isArray(r)?r:[r]:[],{data:n,isLoading:m}=a$1(d,c),{t}=a$2();return m?jsx(Button,{loading:l,disabled:!l,...o,children:e}):typeof n=="boolean"||n&&Object.values(n).some(Boolean)?jsx(Button,{disabled:a,...o,children:e}):jsx(Tooltip,{defaultOpen:!1,title:t("global.noEntitlement"),children:jsx(Button,{disabled:!0,...o,children:e})})},A=S;var w=a();function C(p){let{content:e,onConfirm:r,afterOpen:l,afterClose:a,...c}=p,o=useMemo(()=>b(),[]),{show:d,hide:n,isOpen:m,cleanup:t}=w();useEffect(()=>()=>{t(o);},[o,t]);let h=m(o),[M,u]=useState(!1),f=typeof e=="function",O=useCallback(async()=>{d(o),await l?.();},[o,d,l]),i=useCallback(()=>{n(o);},[o,n]),s=useCallback(async()=>{i(),await a?.();},[i,a]),x=useCallback(async()=>{try{u(!0),await r?.(),i(),await a?.();}catch(B){throw B}finally{u(!1);}},[r,i,a]),y=jsx(Modal,{...c,open:h,confirmLoading:M,onOk:x,onCancel:s,children:f?e({hide:i}):e});return {id:o,show:O,hide:i,modal:y}}function K(p){let{content:e,form:r,formProps:l,onConfirm:a,onSuccess:c,afterClose:o,...d}=p,[n,m]=useState({}),[t]=Form.useForm(r),h=typeof e=="function",{id:M,show:u,hide:f,modal:O}=C({...d,content:s=>jsx(Form,{...l,form:t,children:h?e(n,s):e}),onConfirm:async()=>{try{let s=await t.validateFields();await a?.(s,n),c?.(),f();}catch(s){throw s}},afterClose:()=>{m({}),o?.(t);}}),i=useCallback(s=>{let{initialValues:x,extraValues:y}=s||{};y!==void 0&&m(y),x&&t.setFieldsValue(x),u();},[t,u]);return {id:M,show:i,hide:f,modal:O}}export{A as a,w as b,C as c,K as d};//# sourceMappingURL=chunk-XBISTSFI.js.map
2
+ //# sourceMappingURL=chunk-XBISTSFI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/permissionButton/PermissionButton.tsx","../src/hooks/modal/stores.ts","../src/hooks/modal/modal.tsx","../src/hooks/modal/formModal.tsx"],"names":["PermissionButton","props","children","code","showLoading","disabled","config","restProps","codes","data","isLoading","usePermission","useTranslation","jsx","Button","Tooltip","PermissionButton_default","useModalStore","createVisibilityStore","useModal","content","onConfirm","afterOpen","afterClose","modalProps","_id","useMemo","generateId","show","hide","isOpen","cleanup","useEffect","open","confirmLoading","setConfirmLoading","useState","isRenderFunction","_show","useCallback","_hide","onCancel","onOk","error","internalModal","Modal","useFormModal","form","formProps","onSuccess","internalExtraValues","setInternalExtraValues","internalForm","Form","id","modal","operation","values","showForm","options","initialValues","extraValues"],"mappings":"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","file":"chunk-XBISTSFI.js","sourcesContent":["import type { ButtonProps } from 'antd'\nimport { Button, Tooltip } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { usePermission } from '@/services'\n\nexport interface PermissionButtonProps extends ButtonProps {\n code?: string | string[]\n showLoading?: boolean\n config?: KyOptions\n}\n\nconst PermissionButton: FC<PropsWithChildren<PermissionButtonProps>> = props => {\n const { children, code, showLoading, disabled, config, ...restProps } = props\n const codes = code ? (Array.isArray(code) ? code : [code]) : []\n const { data, isLoading } = usePermission(codes, config)\n const { t } = useTranslation()\n\n if (isLoading) {\n return (\n <Button loading={showLoading} disabled={!showLoading} {...restProps}>\n {children}\n </Button>\n )\n }\n\n // 只要有一个权限即可\n if (typeof data === 'boolean' || (data && Object.values(data).some(Boolean))) {\n return (\n <Button disabled={disabled} {...restProps}>\n {children}\n </Button>\n )\n }\n\n return (\n <Tooltip defaultOpen={false} title={t('global.noEntitlement')}>\n <Button disabled {...restProps}>\n {children}\n </Button>\n </Tooltip>\n )\n}\n\nexport default PermissionButton\n","import { createVisibilityStore } from '@/utils'\n\nexport const useModalStore = createVisibilityStore()\n","import type { ModalProps } from 'antd'\nimport { Modal } from 'antd'\nimport { type ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useModalStore } from './stores'\n\nexport interface UseModalOperation {\n hide: () => void\n}\n\nexport interface UseModalProps extends Omit<ModalProps, 'open' | 'confirmLoading' | 'onOk' | 'onCancel'> {\n content?: ReactNode | ((operation: UseModalOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n}\n\nexport function useModal(props: UseModalProps) {\n const { content, onConfirm, afterOpen, afterClose, ...modalProps } = props\n\n const _id = useMemo(() => generateId(), [])\n const { show, hide, isOpen, cleanup } = useModalStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onCancel: ModalProps['onCancel'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const onOk = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n _hide()\n await afterClose?.()\n } catch (error) {\n console.error('Modal confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm, _hide, afterClose])\n\n const internalModal = (\n <Modal {...modalProps} open={open} confirmLoading={confirmLoading} onOk={onOk} onCancel={onCancel}>\n {isRenderFunction ? content({ hide: _hide }) : content}\n </Modal>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n modal: internalModal,\n }\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useModal, type UseModalOperation, type UseModalProps } from './modal'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseModalProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseModalOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormModalReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n modal: ReactNode\n}\n\nexport function useFormModal<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormModalProps<Values, ExtraValues>,\n): UseFormModalReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...modalProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, modal } = useModal({\n ...modalProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? content(internalExtraValues, operation) : content}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n modal,\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-7W2ZX3CB.js';import {j,f}from'./chunk-AGGPFMZE.js';import {Editor}from'@monaco-editor/react';import {App,Form,Card,Input,Switch,InputNumber,Button}from'antd';import {useNavigate}from'react-router-dom';import {jsx,jsxs}from'react/jsx-runtime';var y=j(()=>{let{message:p}=App.useApp(),[c]=Form.useForm(),o=useNavigate(),{mutate:I}=a();return jsx(Card,{title:"\u521B\u5EFA\u83DC\u5355\u9879",children:jsxs(Form,{scrollToFirstError:!0,form:c,labelCol:{flex:"120px"},initialValues:{is_common:!1,is_model:!1,order:0},onFinish:async d=>{let{permissions:s,front_route:f$1,...F}=d;await I({...F,front_route:f+f$1,permissions:s?JSON.parse(s):void 0}),p.success("\u521B\u5EFA\u6210\u529F",.8,()=>o("..",{relative:"route"}));},children:[jsx(Form.Item,{label:"\u83DC\u5355\u9879\u540D\u79F0",name:"category",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"\u524D\u7AEF\u8DEF\u7531",name:"front_route",rules:[{required:!0}],children:jsx(Input,{prefix:f})}),jsx(Form.Item,{label:"\u6A21\u677F\u540D\u79F0",name:"model_name",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"Is Common",name:"is_common",rules:[{required:!0}],valuePropName:"checked",children:jsx(Switch,{})}),jsx(Form.Item,{label:"Order",name:"order",children:jsx(InputNumber,{className:"w-full"})}),jsx(Form.Item,{label:"\u63A5\u53E3\u89C4\u5219",name:"permissions",children:jsx(Editor,{theme:"vs-dark",height:"300px",language:"json",options:{minimap:{enabled:!1}}})}),jsx(Form.Item,{label:"Schema",name:"scheme",rules:[{required:!0}],children:jsx(Editor,{theme:"vs-dark",height:"600px",language:"json",options:{minimap:{enabled:!1}}})}),jsx(Form.Item,{label:"Ext",name:"ext",children:jsx(Input.TextArea,{rows:5})}),jsx(Form.Item,{children:jsxs("div",{className:"flex justify-center gap-8",children:[jsx(Button,{type:"primary",htmlType:"submit",children:"\u63D0\u4EA4"}),jsx(Button,{onClick:()=>{o("..",{relative:"path"});},children:"\u53D6\u6D88"})]})})]})})},{isGlobal:!0}),M=y;export{M as default};//# sourceMappingURL=createMenuItem-PS7ABPSF.js.map
2
+ //# sourceMappingURL=createMenuItem-PS7ABPSF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":["CreateMenuItem","withContext","message","App","form","Form","navigate","useNavigate","createMenu","useCreateMenu","jsx","Card","jsxs","values","permissions","front_route","rest","FRONTEND_ROUTE_PREFIX","Input","Switch","InputNumber","Editor","Button","createMenuItem_default"],"mappings":"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","file":"createMenuItem-WS2MRQJF.js","sourcesContent":["import { Editor } from '@monaco-editor/react'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { withContext } from '@/components/toolkitsProvider'\nimport { FRONTEND_ROUTE_PREFIX } from '@/constants'\nimport type { MenuListItem } from '@/types'\n\nimport { useCreateMenu } from '../../services'\n\ntype FormSchema = Omit<MenuListItem, 'id' | 'permissions'> & { permissions: string }\n\nconst CreateMenuItem = withContext(\n () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutate: createMenu } = useCreateMenu()\n\n const onFinish = async (values: FormSchema) => {\n const { permissions, front_route, ...rest } = values\n await createMenu({\n ...rest,\n front_route: FRONTEND_ROUTE_PREFIX + front_route,\n permissions: permissions ? JSON.parse(permissions) : undefined,\n })\n message.success('创建成功', 0.8, () => navigate('..', { relative: 'route' }))\n }\n\n return (\n <Card title=\"创建菜单项\">\n <Form\n scrollToFirstError\n form={form}\n labelCol={{ flex: '120px' }}\n initialValues={{ is_common: false, is_model: false, order: 0 }}\n onFinish={onFinish}\n >\n <Form.Item label=\"菜单项名称\" name=\"category\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"前端路由\" name=\"front_route\" rules={[{ required: true }]}>\n <Input prefix={FRONTEND_ROUTE_PREFIX} />\n </Form.Item>\n <Form.Item label=\"模板名称\" name=\"model_name\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"Is Common\" name=\"is_common\" rules={[{ required: true }]} valuePropName=\"checked\">\n <Switch />\n </Form.Item>\n <Form.Item label=\"Order\" name=\"order\">\n <InputNumber className=\"w-full\" />\n </Form.Item>\n <Form.Item label=\"接口规则\" name=\"permissions\">\n <Editor\n theme=\"vs-dark\"\n height=\"300px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Schema\" name=\"scheme\" rules={[{ required: true }]}>\n <Editor\n theme=\"vs-dark\"\n height=\"600px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Ext\" name=\"ext\">\n <Input.TextArea rows={5} />\n </Form.Item>\n <Form.Item>\n <div className=\"flex justify-center gap-8\">\n <Button type=\"primary\" htmlType=\"submit\">\n 提交\n </Button>\n <Button\n onClick={() => {\n navigate('..', { relative: 'path' })\n }}\n >\n 取消\n </Button>\n </div>\n </Form.Item>\n </Form>\n </Card>\n )\n },\n { isGlobal: true },\n)\n\nexport default CreateMenuItem\n"]}
1
+ {"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":["CreateMenuItem","withContext","message","App","form","Form","navigate","useNavigate","createMenu","useCreateMenu","jsx","Card","jsxs","values","permissions","front_route","rest","FRONTEND_ROUTE_PREFIX","Input","Switch","InputNumber","Editor","Button","createMenuItem_default"],"mappings":"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","file":"createMenuItem-PS7ABPSF.js","sourcesContent":["import { Editor } from '@monaco-editor/react'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { withContext } from '@/components/toolkitsProvider'\nimport { FRONTEND_ROUTE_PREFIX } from '@/constants'\nimport type { MenuListItem } from '@/types'\n\nimport { useCreateMenu } from '../../services'\n\ntype FormSchema = Omit<MenuListItem, 'id' | 'permissions'> & { permissions: string }\n\nconst CreateMenuItem = withContext(\n () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutate: createMenu } = useCreateMenu()\n\n const onFinish = async (values: FormSchema) => {\n const { permissions, front_route, ...rest } = values\n await createMenu({\n ...rest,\n front_route: FRONTEND_ROUTE_PREFIX + front_route,\n permissions: permissions ? JSON.parse(permissions) : undefined,\n })\n message.success('创建成功', 0.8, () => navigate('..', { relative: 'route' }))\n }\n\n return (\n <Card title=\"创建菜单项\">\n <Form\n scrollToFirstError\n form={form}\n labelCol={{ flex: '120px' }}\n initialValues={{ is_common: false, is_model: false, order: 0 }}\n onFinish={onFinish}\n >\n <Form.Item label=\"菜单项名称\" name=\"category\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"前端路由\" name=\"front_route\" rules={[{ required: true }]}>\n <Input prefix={FRONTEND_ROUTE_PREFIX} />\n </Form.Item>\n <Form.Item label=\"模板名称\" name=\"model_name\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"Is Common\" name=\"is_common\" rules={[{ required: true }]} valuePropName=\"checked\">\n <Switch />\n </Form.Item>\n <Form.Item label=\"Order\" name=\"order\">\n <InputNumber className=\"w-full\" />\n </Form.Item>\n <Form.Item label=\"接口规则\" name=\"permissions\">\n <Editor\n theme=\"vs-dark\"\n height=\"300px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Schema\" name=\"scheme\" rules={[{ required: true }]}>\n <Editor\n theme=\"vs-dark\"\n height=\"600px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Ext\" name=\"ext\">\n <Input.TextArea rows={5} />\n </Form.Item>\n <Form.Item>\n <div className=\"flex justify-center gap-8\">\n <Button type=\"primary\" htmlType=\"submit\">\n 提交\n </Button>\n <Button\n onClick={() => {\n navigate('..', { relative: 'path' })\n }}\n >\n 取消\n </Button>\n </div>\n </Form.Item>\n </Form>\n </Card>\n )\n },\n { isGlobal: true },\n)\n\nexport default CreateMenuItem\n"]}
package/lib/index.d.ts CHANGED
@@ -498,7 +498,11 @@ type RecursivePartial<T> = NonNullable<T> extends object ? {
498
498
  [P in keyof T]?: NonNullable<T[P]> extends (infer U)[] ? RecursivePartial<U>[] : NonNullable<T[P]> extends object ? RecursivePartial<T[P]> : T[P];
499
499
  } : T;
500
500
 
501
- interface UseFormDrawerProps<Values extends AnyObject = AnyObject, ExtraValues = any> extends Omit<UseDrawerProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {
501
+ interface ShowFormOptions$1<Values extends AnyObject, ExtraValues> {
502
+ initialValues?: RecursivePartial<Values>;
503
+ extraValues?: ExtraValues;
504
+ }
505
+ interface UseFormDrawerProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>> extends Omit<UseDrawerProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {
502
506
  formProps?: Omit<FormProps, 'form'>;
503
507
  form?: FormInstance<Values>;
504
508
  content?: ReactNode | ((extraValues: ExtraValues, operation: UseDrawerOperation) => ReactNode);
@@ -506,17 +510,15 @@ interface UseFormDrawerProps<Values extends AnyObject = AnyObject, ExtraValues =
506
510
  onSuccess?: () => void;
507
511
  afterClose?: (form: FormInstance<Values>) => void;
508
512
  }
509
- declare function useFormDrawer<Values extends AnyObject = AnyObject, ExtraValues = any>(props: UseFormDrawerProps<Values, ExtraValues>): {
513
+ interface UseFormDrawerReturn<Values extends AnyObject, ExtraValues> {
510
514
  id: number;
511
- show: (options?: {
512
- initialValues?: RecursivePartial<Values>;
513
- extraValues?: ExtraValues;
514
- }) => void;
515
+ show: (options?: ShowFormOptions$1<Values, ExtraValues>) => void;
515
516
  hide: () => void;
516
- drawer: react_jsx_runtime.JSX.Element;
517
- };
517
+ drawer: ReactNode;
518
+ }
519
+ declare function useFormDrawer<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(props: UseFormDrawerProps<Values, ExtraValues>): UseFormDrawerReturn<Values, ExtraValues>;
518
520
 
519
- interface DrawerState {
521
+ interface VisibilityState {
520
522
  open: Map<number, boolean>;
521
523
  usedIds: Set<number>;
522
524
  isOpen: (uuid: number) => boolean;
@@ -527,7 +529,18 @@ interface DrawerState {
527
529
  registerIds: (uuid: number) => boolean;
528
530
  cleanup: (uuid: number) => void;
529
531
  }
530
- declare const useDrawerStore: zustand.UseBoundStore<zustand.StoreApi<DrawerState>>;
532
+ /**
533
+ * 创建一个可见性管理的 Zustand store
534
+ * 用于管理 Modal、Drawer 等组件的显示/隐藏状态
535
+ * 每次调用都会创建一个独立的 store 实例,确保不同组件间的状态隔离
536
+ */
537
+ declare function createVisibilityStore(): zustand.UseBoundStore<zustand.StoreApi<VisibilityState>>;
538
+
539
+ declare const generateId: () => number;
540
+
541
+ declare const mixedStorage: StateStorage;
542
+
543
+ declare const useDrawerStore: zustand.UseBoundStore<zustand.StoreApi<VisibilityState>>;
531
544
 
532
545
  interface UseModalOperation {
533
546
  hide: () => void;
@@ -545,7 +558,11 @@ declare function useModal(props: UseModalProps): {
545
558
  modal: react_jsx_runtime.JSX.Element;
546
559
  };
547
560
 
548
- interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues = any> extends Omit<UseModalProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {
561
+ interface ShowFormOptions<Values extends AnyObject, ExtraValues> {
562
+ initialValues?: RecursivePartial<Values>;
563
+ extraValues?: ExtraValues;
564
+ }
565
+ interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>> extends Omit<UseModalProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {
549
566
  formProps?: Omit<FormProps, 'form'>;
550
567
  form?: FormInstance<Values>;
551
568
  content?: ReactNode | ((extraValues: ExtraValues, operation: UseModalOperation) => ReactNode);
@@ -553,28 +570,15 @@ interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues =
553
570
  onSuccess?: () => void;
554
571
  afterClose?: (form: FormInstance<Values>) => void;
555
572
  }
556
- declare function useFormModal<Values extends AnyObject = AnyObject, ExtraValues = any>(props: UseFormModalProps<Values, ExtraValues>): {
573
+ interface UseFormModalReturn<Values extends AnyObject, ExtraValues> {
557
574
  id: number;
558
- show: (options?: {
559
- initialValues?: RecursivePartial<Values>;
560
- extraValues?: ExtraValues;
561
- }) => void;
575
+ show: (options?: ShowFormOptions<Values, ExtraValues>) => void;
562
576
  hide: () => void;
563
- modal: react_jsx_runtime.JSX.Element;
564
- };
565
-
566
- interface ModalState {
567
- open: Map<number, boolean>;
568
- usedIds: Set<number>;
569
- isOpen: (uuid: number) => boolean;
570
- show: (uuid: number) => void;
571
- hide: (uuid: number) => void;
572
- hideAll: () => void;
573
- checkUniqueness: (uuid: number) => boolean;
574
- registerIds: (uuid: number) => boolean;
575
- cleanup: (uuid: number) => void;
577
+ modal: ReactNode;
576
578
  }
577
- declare const useModalStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
579
+ declare function useFormModal<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(props: UseFormModalProps<Values, ExtraValues>): UseFormModalReturn<Values, ExtraValues>;
580
+
581
+ declare const useModalStore: zustand.UseBoundStore<zustand.StoreApi<VisibilityState>>;
578
582
 
579
583
  declare const _default$2: react_jsx_runtime.JSX.Element;
580
584
 
@@ -786,7 +790,4 @@ declare function usePermission(code?: string | string[], config?: Options): {
786
790
  declare function useMenuList(): _tanstack_react_query.UseQueryResult<MenuListItem[], Error>;
787
791
  declare const useGames: () => _tanstack_react_query.UseQueryResult<Game[], Error>;
788
792
 
789
- declare const mixedStorage: StateStorage;
790
- declare const generateId: () => number;
791
-
792
- export { APP_ID_HEADER, DynamicTags, type DynamicTagsProps, ExpandableParagraph, type ExpandableParagraphProps, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, Highlight, type HighlightProps, InfiniteList, InfiniteListAction, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, NavMenu, type NavMenuItem, NotFound, _default as OperationLogList, type Permission, PermissionButton, type PermissionButtonProps, PermissionVersion, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireGame, RequirePermission, type RequirePermissionProps, SSO_URL, SignIn, ToolkitsProvider, type ToolkitsProviderProps, type UseFormDrawerProps, type UseFormModalProps, UserWidget, WILDCARD, generateId, _default$2 as menu, mixedStorage, _default$1 as permission, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useMenuList, useModal, useModalStore, usePermission, useQueryListStore, useToolkitsStore, withContext };
793
+ export { APP_ID_HEADER, DynamicTags, type DynamicTagsProps, ExpandableParagraph, type ExpandableParagraphProps, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, Highlight, type HighlightProps, InfiniteList, InfiniteListAction, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, NavMenu, type NavMenuItem, NotFound, _default as OperationLogList, type Permission, PermissionButton, type PermissionButtonProps, PermissionVersion, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireGame, RequirePermission, type RequirePermissionProps, SSO_URL, SignIn, ToolkitsProvider, type ToolkitsProviderProps, type UseFormDrawerProps, type UseFormModalProps, UserWidget, type VisibilityState, WILDCARD, createVisibilityStore, generateId, _default$2 as menu, mixedStorage, _default$1 as permission, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useMenuList, useModal, useModalStore, usePermission, useQueryListStore, useToolkitsStore, withContext };