@thunderid/react 1.6.0 → 1.8.0

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 (353) hide show
  1. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs +15 -4
  2. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +1 -1
  3. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs +36 -8
  4. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +1 -1
  5. package/dist/cjs/components/admin/AgentList/AgentList.cjs +13 -4
  6. package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +1 -1
  7. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs +70 -0
  8. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  9. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs +135 -0
  10. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
  11. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs +82 -0
  12. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  13. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs +238 -0
  14. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
  15. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs +55 -0
  16. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +1 -0
  17. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs +95 -0
  18. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +1 -0
  19. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs +8 -2
  20. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +1 -1
  21. package/dist/cjs/components/admin/GroupList/GroupList.cjs +10 -3
  22. package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +1 -1
  23. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs +47 -10
  24. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +1 -1
  25. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs +48 -14
  26. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +1 -1
  27. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs +8 -2
  28. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +1 -1
  29. package/dist/cjs/components/admin/RoleList/RoleList.cjs +10 -3
  30. package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +1 -1
  31. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +8 -2
  32. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +1 -1
  33. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs +15 -4
  34. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +1 -1
  35. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs +31 -8
  36. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +1 -1
  37. package/dist/cjs/components/admin/UserList/UserList.cjs +13 -4
  38. package/dist/cjs/components/admin/UserList/UserList.cjs.map +1 -1
  39. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs +62 -0
  40. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +1 -0
  41. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs +49 -0
  42. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +1 -0
  43. package/dist/cjs/components/auth/InviteUser/InviteUser.cjs +1 -1
  44. package/dist/cjs/components/auth/flow/Consent.cjs +93 -73
  45. package/dist/cjs/components/auth/flow/Consent.cjs.map +1 -1
  46. package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
  47. package/dist/cjs/hooks/management/useManagementRequestConfig.cjs +41 -0
  48. package/dist/cjs/hooks/management/useManagementRequestConfig.cjs.map +1 -0
  49. package/dist/cjs/index.cjs +1066 -188
  50. package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +1 -1
  51. package/dist/components/admin/AgentCreate/AgentCreate.js +16 -5
  52. package/dist/components/admin/AgentCreate/AgentCreate.js.map +1 -1
  53. package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +1 -1
  54. package/dist/components/admin/AgentDetails/AgentDetails.js +37 -9
  55. package/dist/components/admin/AgentDetails/AgentDetails.js.map +1 -1
  56. package/dist/components/admin/AgentList/AgentList.d.ts.map +1 -1
  57. package/dist/components/admin/AgentList/AgentList.js +14 -5
  58. package/dist/components/admin/AgentList/AgentList.js.map +1 -1
  59. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts +30 -0
  60. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  61. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js +66 -0
  62. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +1 -0
  63. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts +80 -0
  64. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
  65. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js +131 -0
  66. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
  67. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts +50 -0
  68. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  69. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js +79 -0
  70. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +1 -0
  71. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts +92 -0
  72. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
  73. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js +234 -0
  74. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
  75. package/dist/components/admin/ApplicationList/ApplicationList.d.ts +18 -0
  76. package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +1 -0
  77. package/dist/components/admin/ApplicationList/ApplicationList.js +51 -0
  78. package/dist/components/admin/ApplicationList/ApplicationList.js.map +1 -0
  79. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts +55 -0
  80. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +1 -0
  81. package/dist/components/admin/ApplicationList/BaseApplicationList.js +93 -0
  82. package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +1 -0
  83. package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +1 -1
  84. package/dist/components/admin/GroupCreate/GroupCreate.js +9 -3
  85. package/dist/components/admin/GroupCreate/GroupCreate.js.map +1 -1
  86. package/dist/components/admin/GroupList/GroupList.d.ts.map +1 -1
  87. package/dist/components/admin/GroupList/GroupList.js +11 -4
  88. package/dist/components/admin/GroupList/GroupList.js.map +1 -1
  89. package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +1 -1
  90. package/dist/components/admin/GroupMembers/GroupMembers.js +48 -11
  91. package/dist/components/admin/GroupMembers/GroupMembers.js.map +1 -1
  92. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +1 -1
  93. package/dist/components/admin/RoleAssignments/RoleAssignments.js +49 -15
  94. package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +1 -1
  95. package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +1 -1
  96. package/dist/components/admin/RoleCreate/RoleCreate.js +9 -3
  97. package/dist/components/admin/RoleCreate/RoleCreate.js.map +1 -1
  98. package/dist/components/admin/RoleList/RoleList.d.ts.map +1 -1
  99. package/dist/components/admin/RoleList/RoleList.js +11 -4
  100. package/dist/components/admin/RoleList/RoleList.js.map +1 -1
  101. package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +1 -1
  102. package/dist/components/admin/RolePermissions/RolePermissions.js +9 -3
  103. package/dist/components/admin/RolePermissions/RolePermissions.js.map +1 -1
  104. package/dist/components/admin/UserCreate/UserCreate.d.ts.map +1 -1
  105. package/dist/components/admin/UserCreate/UserCreate.js +16 -5
  106. package/dist/components/admin/UserCreate/UserCreate.js.map +1 -1
  107. package/dist/components/admin/UserDetails/UserDetails.d.ts.map +1 -1
  108. package/dist/components/admin/UserDetails/UserDetails.js +32 -9
  109. package/dist/components/admin/UserDetails/UserDetails.js.map +1 -1
  110. package/dist/components/admin/UserList/UserList.d.ts.map +1 -1
  111. package/dist/components/admin/UserList/UserList.js +14 -5
  112. package/dist/components/admin/UserList/UserList.js.map +1 -1
  113. package/dist/components/admin/shared/ApplicationFormFields.d.ts +35 -0
  114. package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +1 -0
  115. package/dist/components/admin/shared/ApplicationFormFields.js +59 -0
  116. package/dist/components/admin/shared/ApplicationFormFields.js.map +1 -0
  117. package/dist/components/admin/shared/ClientSecretNotice.d.ts +16 -0
  118. package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +1 -0
  119. package/dist/components/admin/shared/ClientSecretNotice.js +47 -0
  120. package/dist/components/admin/shared/ClientSecretNotice.js.map +1 -0
  121. package/dist/components/auth/InviteUser/InviteUser.js +1 -1
  122. package/dist/components/auth/flow/Consent.d.ts.map +1 -1
  123. package/dist/components/auth/flow/Consent.js +94 -75
  124. package/dist/components/auth/flow/Consent.js.map +1 -1
  125. package/dist/hooks/management/useManagementEndpoint.d.ts +5 -1
  126. package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
  127. package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
  128. package/dist/hooks/management/useManagementRequestConfig.d.ts +22 -0
  129. package/dist/hooks/management/useManagementRequestConfig.d.ts.map +1 -0
  130. package/dist/hooks/management/useManagementRequestConfig.js +39 -0
  131. package/dist/hooks/management/useManagementRequestConfig.js.map +1 -0
  132. package/dist/index.d.ts +22 -55
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +12 -41
  135. package/dist/models/config.d.ts +3 -4
  136. package/dist/models/config.d.ts.map +1 -1
  137. package/package.json +2 -2
  138. package/dist/cjs/hooks/management/agents/useCreateAgent.cjs +0 -26
  139. package/dist/cjs/hooks/management/agents/useCreateAgent.cjs.map +0 -1
  140. package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs +0 -26
  141. package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs.map +0 -1
  142. package/dist/cjs/hooks/management/agents/useGetAgent.cjs +0 -30
  143. package/dist/cjs/hooks/management/agents/useGetAgent.cjs.map +0 -1
  144. package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs +0 -41
  145. package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs.map +0 -1
  146. package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs +0 -42
  147. package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs.map +0 -1
  148. package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs +0 -31
  149. package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs.map +0 -1
  150. package/dist/cjs/hooks/management/agents/useGetAgents.cjs +0 -33
  151. package/dist/cjs/hooks/management/agents/useGetAgents.cjs.map +0 -1
  152. package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs +0 -27
  153. package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs.map +0 -1
  154. package/dist/cjs/hooks/management/applications/useCreateApplication.cjs +0 -31
  155. package/dist/cjs/hooks/management/applications/useCreateApplication.cjs.map +0 -1
  156. package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs +0 -26
  157. package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs.map +0 -1
  158. package/dist/cjs/hooks/management/applications/useGetApplication.cjs +0 -35
  159. package/dist/cjs/hooks/management/applications/useGetApplication.cjs.map +0 -1
  160. package/dist/cjs/hooks/management/applications/useGetApplications.cjs +0 -36
  161. package/dist/cjs/hooks/management/applications/useGetApplications.cjs.map +0 -1
  162. package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs +0 -27
  163. package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs.map +0 -1
  164. package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs +0 -32
  165. package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs.map +0 -1
  166. package/dist/cjs/hooks/management/groups/useCreateGroup.cjs +0 -26
  167. package/dist/cjs/hooks/management/groups/useCreateGroup.cjs.map +0 -1
  168. package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs +0 -30
  169. package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs.map +0 -1
  170. package/dist/cjs/hooks/management/groups/useGetGroup.cjs +0 -30
  171. package/dist/cjs/hooks/management/groups/useGetGroup.cjs.map +0 -1
  172. package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs +0 -40
  173. package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs.map +0 -1
  174. package/dist/cjs/hooks/management/groups/useGetGroups.cjs +0 -31
  175. package/dist/cjs/hooks/management/groups/useGetGroups.cjs.map +0 -1
  176. package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs +0 -32
  177. package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs.map +0 -1
  178. package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs +0 -31
  179. package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs.map +0 -1
  180. package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs +0 -27
  181. package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs.map +0 -1
  182. package/dist/cjs/hooks/management/roles/useCreateRole.cjs +0 -26
  183. package/dist/cjs/hooks/management/roles/useCreateRole.cjs.map +0 -1
  184. package/dist/cjs/hooks/management/roles/useDeleteRole.cjs +0 -26
  185. package/dist/cjs/hooks/management/roles/useDeleteRole.cjs.map +0 -1
  186. package/dist/cjs/hooks/management/roles/useGetRole.cjs +0 -30
  187. package/dist/cjs/hooks/management/roles/useGetRole.cjs.map +0 -1
  188. package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs +0 -42
  189. package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs.map +0 -1
  190. package/dist/cjs/hooks/management/roles/useGetRoles.cjs +0 -31
  191. package/dist/cjs/hooks/management/roles/useGetRoles.cjs.map +0 -1
  192. package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs +0 -27
  193. package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs.map +0 -1
  194. package/dist/cjs/hooks/management/roles/useUpdateRole.cjs +0 -27
  195. package/dist/cjs/hooks/management/roles/useUpdateRole.cjs.map +0 -1
  196. package/dist/cjs/hooks/management/users/useCreateUser.cjs +0 -26
  197. package/dist/cjs/hooks/management/users/useCreateUser.cjs.map +0 -1
  198. package/dist/cjs/hooks/management/users/useDeleteUser.cjs +0 -26
  199. package/dist/cjs/hooks/management/users/useDeleteUser.cjs.map +0 -1
  200. package/dist/cjs/hooks/management/users/useGetUser.cjs +0 -30
  201. package/dist/cjs/hooks/management/users/useGetUser.cjs.map +0 -1
  202. package/dist/cjs/hooks/management/users/useGetUserGroups.cjs +0 -41
  203. package/dist/cjs/hooks/management/users/useGetUserGroups.cjs.map +0 -1
  204. package/dist/cjs/hooks/management/users/useGetUserTypes.cjs +0 -31
  205. package/dist/cjs/hooks/management/users/useGetUserTypes.cjs.map +0 -1
  206. package/dist/cjs/hooks/management/users/useGetUsers.cjs +0 -38
  207. package/dist/cjs/hooks/management/users/useGetUsers.cjs.map +0 -1
  208. package/dist/cjs/hooks/management/users/useUpdateUser.cjs +0 -27
  209. package/dist/cjs/hooks/management/users/useUpdateUser.cjs.map +0 -1
  210. package/dist/hooks/management/agents/useCreateAgent.d.ts +0 -11
  211. package/dist/hooks/management/agents/useCreateAgent.d.ts.map +0 -1
  212. package/dist/hooks/management/agents/useCreateAgent.js +0 -24
  213. package/dist/hooks/management/agents/useCreateAgent.js.map +0 -1
  214. package/dist/hooks/management/agents/useDeleteAgent.d.ts +0 -10
  215. package/dist/hooks/management/agents/useDeleteAgent.d.ts.map +0 -1
  216. package/dist/hooks/management/agents/useDeleteAgent.js +0 -24
  217. package/dist/hooks/management/agents/useDeleteAgent.js.map +0 -1
  218. package/dist/hooks/management/agents/useGetAgent.d.ts +0 -12
  219. package/dist/hooks/management/agents/useGetAgent.d.ts.map +0 -1
  220. package/dist/hooks/management/agents/useGetAgent.js +0 -28
  221. package/dist/hooks/management/agents/useGetAgent.js.map +0 -1
  222. package/dist/hooks/management/agents/useGetAgentGroups.d.ts +0 -16
  223. package/dist/hooks/management/agents/useGetAgentGroups.d.ts.map +0 -1
  224. package/dist/hooks/management/agents/useGetAgentGroups.js +0 -39
  225. package/dist/hooks/management/agents/useGetAgentGroups.js.map +0 -1
  226. package/dist/hooks/management/agents/useGetAgentRoles.d.ts +0 -17
  227. package/dist/hooks/management/agents/useGetAgentRoles.d.ts.map +0 -1
  228. package/dist/hooks/management/agents/useGetAgentRoles.js +0 -40
  229. package/dist/hooks/management/agents/useGetAgentRoles.js.map +0 -1
  230. package/dist/hooks/management/agents/useGetAgentTypes.d.ts +0 -15
  231. package/dist/hooks/management/agents/useGetAgentTypes.d.ts.map +0 -1
  232. package/dist/hooks/management/agents/useGetAgentTypes.js +0 -29
  233. package/dist/hooks/management/agents/useGetAgentTypes.js.map +0 -1
  234. package/dist/hooks/management/agents/useGetAgents.d.ts +0 -23
  235. package/dist/hooks/management/agents/useGetAgents.d.ts.map +0 -1
  236. package/dist/hooks/management/agents/useGetAgents.js +0 -31
  237. package/dist/hooks/management/agents/useGetAgents.js.map +0 -1
  238. package/dist/hooks/management/agents/useUpdateAgent.d.ts +0 -18
  239. package/dist/hooks/management/agents/useUpdateAgent.d.ts.map +0 -1
  240. package/dist/hooks/management/agents/useUpdateAgent.js +0 -25
  241. package/dist/hooks/management/agents/useUpdateAgent.js.map +0 -1
  242. package/dist/hooks/management/applications/useCreateApplication.d.ts +0 -16
  243. package/dist/hooks/management/applications/useCreateApplication.d.ts.map +0 -1
  244. package/dist/hooks/management/applications/useCreateApplication.js +0 -29
  245. package/dist/hooks/management/applications/useCreateApplication.js.map +0 -1
  246. package/dist/hooks/management/applications/useDeleteApplication.d.ts +0 -10
  247. package/dist/hooks/management/applications/useDeleteApplication.d.ts.map +0 -1
  248. package/dist/hooks/management/applications/useDeleteApplication.js +0 -24
  249. package/dist/hooks/management/applications/useDeleteApplication.js.map +0 -1
  250. package/dist/hooks/management/applications/useGetApplication.d.ts +0 -17
  251. package/dist/hooks/management/applications/useGetApplication.d.ts.map +0 -1
  252. package/dist/hooks/management/applications/useGetApplication.js +0 -33
  253. package/dist/hooks/management/applications/useGetApplication.js.map +0 -1
  254. package/dist/hooks/management/applications/useGetApplications.d.ts +0 -24
  255. package/dist/hooks/management/applications/useGetApplications.d.ts.map +0 -1
  256. package/dist/hooks/management/applications/useGetApplications.js +0 -34
  257. package/dist/hooks/management/applications/useGetApplications.js.map +0 -1
  258. package/dist/hooks/management/applications/useUpdateApplication.d.ts +0 -18
  259. package/dist/hooks/management/applications/useUpdateApplication.d.ts.map +0 -1
  260. package/dist/hooks/management/applications/useUpdateApplication.js +0 -25
  261. package/dist/hooks/management/applications/useUpdateApplication.js.map +0 -1
  262. package/dist/hooks/management/groups/useAddGroupMembers.d.ts +0 -24
  263. package/dist/hooks/management/groups/useAddGroupMembers.d.ts.map +0 -1
  264. package/dist/hooks/management/groups/useAddGroupMembers.js +0 -30
  265. package/dist/hooks/management/groups/useAddGroupMembers.js.map +0 -1
  266. package/dist/hooks/management/groups/useCreateGroup.d.ts +0 -11
  267. package/dist/hooks/management/groups/useCreateGroup.d.ts.map +0 -1
  268. package/dist/hooks/management/groups/useCreateGroup.js +0 -24
  269. package/dist/hooks/management/groups/useCreateGroup.js.map +0 -1
  270. package/dist/hooks/management/groups/useDeleteGroup.d.ts +0 -10
  271. package/dist/hooks/management/groups/useDeleteGroup.d.ts.map +0 -1
  272. package/dist/hooks/management/groups/useDeleteGroup.js +0 -28
  273. package/dist/hooks/management/groups/useDeleteGroup.js.map +0 -1
  274. package/dist/hooks/management/groups/useGetGroup.d.ts +0 -12
  275. package/dist/hooks/management/groups/useGetGroup.d.ts.map +0 -1
  276. package/dist/hooks/management/groups/useGetGroup.js +0 -28
  277. package/dist/hooks/management/groups/useGetGroup.js.map +0 -1
  278. package/dist/hooks/management/groups/useGetGroupMembers.d.ts +0 -20
  279. package/dist/hooks/management/groups/useGetGroupMembers.d.ts.map +0 -1
  280. package/dist/hooks/management/groups/useGetGroupMembers.js +0 -38
  281. package/dist/hooks/management/groups/useGetGroupMembers.js.map +0 -1
  282. package/dist/hooks/management/groups/useGetGroups.d.ts +0 -19
  283. package/dist/hooks/management/groups/useGetGroups.d.ts.map +0 -1
  284. package/dist/hooks/management/groups/useGetGroups.js +0 -29
  285. package/dist/hooks/management/groups/useGetGroups.js.map +0 -1
  286. package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts +0 -12
  287. package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts.map +0 -1
  288. package/dist/hooks/management/groups/useRemoveGroupMembers.js +0 -30
  289. package/dist/hooks/management/groups/useRemoveGroupMembers.js.map +0 -1
  290. package/dist/hooks/management/groups/useUpdateGroup.d.ts +0 -24
  291. package/dist/hooks/management/groups/useUpdateGroup.d.ts.map +0 -1
  292. package/dist/hooks/management/groups/useUpdateGroup.js +0 -29
  293. package/dist/hooks/management/groups/useUpdateGroup.js.map +0 -1
  294. package/dist/hooks/management/roles/useAddRoleAssignments.d.ts +0 -24
  295. package/dist/hooks/management/roles/useAddRoleAssignments.d.ts.map +0 -1
  296. package/dist/hooks/management/roles/useAddRoleAssignments.js +0 -25
  297. package/dist/hooks/management/roles/useAddRoleAssignments.js.map +0 -1
  298. package/dist/hooks/management/roles/useCreateRole.d.ts +0 -11
  299. package/dist/hooks/management/roles/useCreateRole.d.ts.map +0 -1
  300. package/dist/hooks/management/roles/useCreateRole.js +0 -24
  301. package/dist/hooks/management/roles/useCreateRole.js.map +0 -1
  302. package/dist/hooks/management/roles/useDeleteRole.d.ts +0 -10
  303. package/dist/hooks/management/roles/useDeleteRole.d.ts.map +0 -1
  304. package/dist/hooks/management/roles/useDeleteRole.js +0 -24
  305. package/dist/hooks/management/roles/useDeleteRole.js.map +0 -1
  306. package/dist/hooks/management/roles/useGetRole.d.ts +0 -12
  307. package/dist/hooks/management/roles/useGetRole.d.ts.map +0 -1
  308. package/dist/hooks/management/roles/useGetRole.js +0 -28
  309. package/dist/hooks/management/roles/useGetRole.js.map +0 -1
  310. package/dist/hooks/management/roles/useGetRoleAssignments.d.ts +0 -24
  311. package/dist/hooks/management/roles/useGetRoleAssignments.d.ts.map +0 -1
  312. package/dist/hooks/management/roles/useGetRoleAssignments.js +0 -40
  313. package/dist/hooks/management/roles/useGetRoleAssignments.js.map +0 -1
  314. package/dist/hooks/management/roles/useGetRoles.d.ts +0 -19
  315. package/dist/hooks/management/roles/useGetRoles.d.ts.map +0 -1
  316. package/dist/hooks/management/roles/useGetRoles.js +0 -29
  317. package/dist/hooks/management/roles/useGetRoles.js.map +0 -1
  318. package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts +0 -11
  319. package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts.map +0 -1
  320. package/dist/hooks/management/roles/useRemoveRoleAssignments.js +0 -25
  321. package/dist/hooks/management/roles/useRemoveRoleAssignments.js.map +0 -1
  322. package/dist/hooks/management/roles/useUpdateRole.d.ts +0 -24
  323. package/dist/hooks/management/roles/useUpdateRole.d.ts.map +0 -1
  324. package/dist/hooks/management/roles/useUpdateRole.js +0 -25
  325. package/dist/hooks/management/roles/useUpdateRole.js.map +0 -1
  326. package/dist/hooks/management/users/useCreateUser.d.ts +0 -11
  327. package/dist/hooks/management/users/useCreateUser.d.ts.map +0 -1
  328. package/dist/hooks/management/users/useCreateUser.js +0 -24
  329. package/dist/hooks/management/users/useCreateUser.js.map +0 -1
  330. package/dist/hooks/management/users/useDeleteUser.d.ts +0 -10
  331. package/dist/hooks/management/users/useDeleteUser.d.ts.map +0 -1
  332. package/dist/hooks/management/users/useDeleteUser.js +0 -24
  333. package/dist/hooks/management/users/useDeleteUser.js.map +0 -1
  334. package/dist/hooks/management/users/useGetUser.d.ts +0 -12
  335. package/dist/hooks/management/users/useGetUser.d.ts.map +0 -1
  336. package/dist/hooks/management/users/useGetUser.js +0 -28
  337. package/dist/hooks/management/users/useGetUser.js.map +0 -1
  338. package/dist/hooks/management/users/useGetUserGroups.d.ts +0 -16
  339. package/dist/hooks/management/users/useGetUserGroups.d.ts.map +0 -1
  340. package/dist/hooks/management/users/useGetUserGroups.js +0 -39
  341. package/dist/hooks/management/users/useGetUserGroups.js.map +0 -1
  342. package/dist/hooks/management/users/useGetUserTypes.d.ts +0 -15
  343. package/dist/hooks/management/users/useGetUserTypes.d.ts.map +0 -1
  344. package/dist/hooks/management/users/useGetUserTypes.js +0 -29
  345. package/dist/hooks/management/users/useGetUserTypes.js.map +0 -1
  346. package/dist/hooks/management/users/useGetUsers.d.ts +0 -17
  347. package/dist/hooks/management/users/useGetUsers.d.ts.map +0 -1
  348. package/dist/hooks/management/users/useGetUsers.js +0 -36
  349. package/dist/hooks/management/users/useGetUsers.js.map +0 -1
  350. package/dist/hooks/management/users/useUpdateUser.d.ts +0 -18
  351. package/dist/hooks/management/users/useUpdateUser.d.ts.map +0 -1
  352. package/dist/hooks/management/users/useUpdateUser.js +0 -25
  353. package/dist/hooks/management/users/useUpdateUser.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GroupMembers.cjs","names":["GroupMembers: FC<GroupMembersProps>","useTranslation","useGetGroupMembers","useGetUsers","useGetAgents","useAddGroupMembers","useRemoveGroupMembers","candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>>","BaseGroupMembers"],"sources":["../../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n resolveManagedIdentityName,\n toManagementErrorMessage,\n BasicAgent,\n GroupMember,\n ManagedUser,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseGroupMembers, {BaseGroupMembersProps} from './BaseGroupMembers';\nimport useGetAgents from '../../../hooks/management/agents/useGetAgents';\nimport useAddGroupMembers from '../../../hooks/management/groups/useAddGroupMembers';\nimport useGetGroupMembers from '../../../hooks/management/groups/useGetGroupMembers';\nimport useRemoveGroupMembers from '../../../hooks/management/groups/useRemoveGroupMembers';\nimport useGetUsers from '../../../hooks/management/users/useGetUsers';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {IdentityCandidate} from '../shared/IdentityPicker';\n\nexport type GroupMembersProps = Omit<\n BaseGroupMembersProps,\n 'candidates' | 'error' | 'isLoading' | 'isMutating' | 'members' | 'onAdd' | 'onRemove'\n> & {\n /**\n * Whether members can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n groupId: string;\n};\n\n/**\n * Lists the users and agents in a group, and lets the signed-in user add and remove them.\n *\n * @example\n * ```tsx\n * <GroupMembers groupId={groupId} />\n * ```\n */\nconst GroupMembers: FC<GroupMembersProps> = ({\n editable = false,\n groupId,\n preferences,\n ...rest\n}: GroupMembersProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const members = useGetGroupMembers(groupId, {limit: 100});\n const users = useGetUsers({limit: 100}, {enabled: editable});\n const agents = useGetAgents({limit: 100}, {enabled: editable});\n const add = useAddGroupMembers();\n const remove = useRemoveGroupMembers();\n\n const candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, users.data],\n );\n\n return (\n <BaseGroupMembers\n members={members.data?.members ?? []}\n isLoading={members.isLoading}\n isMutating={add.isLoading || remove.isLoading}\n error={\n toManagementErrorMessage(t, members.error, 'admin.groups.members.error') ??\n toManagementErrorMessage(t, add.error ?? remove.error, 'admin.groups.members.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAdd={\n editable\n ? (member: Pick<GroupMember, 'id' | 'type'>): void => void add.mutate({groupId, members: [member]})\n : undefined\n }\n onRemove={\n editable\n ? (member: GroupMember): void => void remove.mutate({groupId, members: [{id: member.id, type: member.type}]})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default GroupMembers;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAMA,gBAAuC,EAC3C,WAAW,OACX,SACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,UAAUC,mCAAmB,SAAS,EAAC,OAAO,KAAI,CAAC;CACzD,MAAM,QAAQC,4BAAY,EAAC,OAAO,KAAI,EAAE,EAAC,SAAS,UAAS,CAAC;CAC5D,MAAM,SAASC,6BAAa,EAAC,OAAO,KAAI,EAAE,EAAC,SAAS,UAAS,CAAC;CAC9D,MAAM,MAAMC,oCAAoB;CAChC,MAAM,SAASC,uCAAuB;CAEtC,MAAMC,uCACG;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,2DAAkC,KAAK;GACxC,EAAE;EACJ,GACD,CAAC,OAAO,MAAM,MAAM,KAAK,CAC1B;AAED,QACE,2CAACC;EACC,SAAS,QAAQ,MAAM,WAAW,EAAE;EACpC,WAAW,QAAQ;EACnB,YAAY,IAAI,aAAa,OAAO;EACpC,yDAC2B,GAAG,QAAQ,OAAO,6BAA6B,sDAC/C,GAAG,IAAI,SAAS,OAAO,OAAO,oCAAoC;EAE7F,YAAY,WAAW,aAAa;EACpC,OACE,YACK,WAAmD,KAAK,IAAI,OAAO;GAAC;GAAS,SAAS,CAAC,OAAO;GAAC,CAAC,GACjG;EAEN,UACE,YACK,WAA8B,KAAK,OAAO,OAAO;GAAC;GAAS,SAAS,CAAC;IAAC,IAAI,OAAO;IAAI,MAAM,OAAO;IAAK,CAAC;GAAC,CAAC,GAC3G;EAEO;EACb,GAAI;GACJ;;AAIN,2BAAe"}
1
+ {"version":3,"file":"GroupMembers.cjs","names":["GroupQueryKeys","RoleQueryKeys","GroupMembers: FC<GroupMembersProps>","useTranslation","groupsEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","members: ResourceQueryResult<GroupMemberListResponse>","useResourceQuery","users: ResourceQueryResult<ManagedUserListResponse>","UserQueryKeys","agents: ResourceQueryResult<AgentListResponse>","AgentQueryKeys","add: ResourceMutationResult<Group, GroupMembersVariables>","useResourceMutation","remove: ResourceMutationResult<Group, GroupMembersVariables>","candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>>","BaseGroupMembers"],"sources":["../../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupMember,\n GroupMemberListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n ResourceQueryKey,\n RoleQueryKeys,\n UserQueryKeys,\n addGroupMembers,\n getAgents,\n getGroupMembers,\n getUsers,\n removeGroupMembers,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseGroupMembers, {BaseGroupMembersProps} from './BaseGroupMembers';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface GroupMembersVariables {\n groupId: string;\n members: Pick<GroupMember, 'id' | 'type'>[];\n}\n\n/**\n * Query keys to refetch after a group's membership changes.\n */\nconst getMembershipInvalidatedKeys = ({groupId}: GroupMembersVariables): ResourceQueryKey[] => [\n [GroupQueryKeys.GROUP, groupId],\n [GroupQueryKeys.GROUP_MEMBERS, groupId],\n [GroupQueryKeys.MEMBERSHIPS],\n [RoleQueryKeys.ROLE_ASSIGNMENTS],\n];\n\nexport type GroupMembersProps = Omit<\n BaseGroupMembersProps,\n 'candidates' | 'error' | 'isLoading' | 'isMutating' | 'members' | 'onAdd' | 'onRemove'\n> & {\n /**\n * Whether members can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n groupId: string;\n};\n\n/**\n * Lists the users and agents in a group, and lets the signed-in user add and remove them.\n *\n * @example\n * ```tsx\n * <GroupMembers groupId={groupId} />\n * ```\n */\nconst GroupMembers: FC<GroupMembersProps> = ({\n editable = false,\n groupId,\n preferences,\n ...rest\n}: GroupMembersProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const members: ResourceQueryResult<GroupMemberListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUP_MEMBERS, groupId, {limit: 100}],\n (fetcher) => getGroupMembers({...groupsEndpoint, fetcher, groupId, limit: 100}),\n {enabled: Boolean(groupId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const add: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n addGroupMembers({...groupsEndpoint, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n const remove: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n removeGroupMembers({...groupsEndpoint, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n\n const candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, users.data],\n );\n\n return (\n <BaseGroupMembers\n members={members.data?.members ?? []}\n isLoading={members.isLoading}\n isMutating={add.isLoading || remove.isLoading}\n error={\n toManagementErrorMessage(t, members.error, 'admin.groups.members.error') ??\n toManagementErrorMessage(t, add.error ?? remove.error, 'admin.groups.members.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAdd={\n editable\n ? (member: Pick<GroupMember, 'id' | 'type'>): void => void add.mutate({groupId, members: [member]})\n : undefined\n }\n onRemove={\n editable\n ? (member: GroupMember): void => void remove.mutate({groupId, members: [{id: member.id, type: member.type}]})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default GroupMembers;\n"],"mappings":";;;;;;;;;;;;;;;;;AAwCA,MAAM,gCAAgC,EAAC,cAAwD;CAC7F,CAACA,mCAAe,OAAO,QAAQ;CAC/B,CAACA,mCAAe,eAAe,QAAQ;CACvC,CAACA,mCAAe,YAAY;CAC5B,CAACC,kCAAc,iBAAiB;CACjC;;;;;;;;;AAsBD,MAAMC,gBAAuC,EAC3C,WAAW,OACX,SACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,iBAAqCC,sCAAsB,SAAS;CAC1E,MAAMC,gBAAoCD,sCAAsB,QAAQ;CACxE,MAAME,iBAAqCF,sCAAsB,SAAS;CAC1E,MAAMG,UAAwDC,iCAC5D;EAACT,mCAAe;EAAe;EAAS,EAAC,OAAO,KAAI;EAAC,GACpD,qDAA4B;EAAC,GAAG;EAAgB;EAAS;EAAS,OAAO;EAAI,CAAC,EAC/E,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMU,QAAsDD,iCAC1D,CAACE,kCAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,8CAAqB;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiDH,iCACrD,CAACI,mCAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,+CAAsB;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,MAA4DC,qCAC/D,EAAC,SAAS,IAAI,SAAS,WAAiC,qDACvC;EAAC,GAAG;EAAgB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EAC9E,6BACD;CACD,MAAMC,SAA+DD,qCAClE,EAAC,SAAS,IAAI,SAAS,WAAiC,wDACpC;EAAC,GAAG;EAAgB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EACjF,6BACD;CAED,MAAME,uCACG;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,2DAAkC,KAAK;GACxC,EAAE;EACJ,GACD,CAAC,OAAO,MAAM,MAAM,KAAK,CAC1B;AAED,QACE,2CAACC;EACC,SAAS,QAAQ,MAAM,WAAW,EAAE;EACpC,WAAW,QAAQ;EACnB,YAAY,IAAI,aAAa,OAAO;EACpC,yDAC2B,GAAG,QAAQ,OAAO,6BAA6B,sDAC/C,GAAG,IAAI,SAAS,OAAO,OAAO,oCAAoC;EAE7F,YAAY,WAAW,aAAa;EACpC,OACE,YACK,WAAmD,KAAK,IAAI,OAAO;GAAC;GAAS,SAAS,CAAC,OAAO;GAAC,CAAC,GACjG;EAEN,UACE,YACK,WAA8B,KAAK,OAAO,OAAO;GAAC;GAAS,SAAS,CAAC;IAAC,IAAI,OAAO;IAAI,MAAM,OAAO;IAAK,CAAC;GAAC,CAAC,GAC3G;EAEO;EACb,GAAI;GACJ;;AAIN,2BAAe"}
@@ -1,11 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useGetUsers = require('../../../hooks/management/users/useGetUsers.cjs');
4
- const require_useGetAgents = require('../../../hooks/management/agents/useGetAgents.cjs');
5
- const require_useGetRoleAssignments = require('../../../hooks/management/roles/useGetRoleAssignments.cjs');
6
- const require_useAddRoleAssignments = require('../../../hooks/management/roles/useAddRoleAssignments.cjs');
7
- const require_useRemoveRoleAssignments = require('../../../hooks/management/roles/useRemoveRoleAssignments.cjs');
8
- const require_useGetGroups = require('../../../hooks/management/groups/useGetGroups.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
5
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
9
6
  const require_BaseRoleAssignments = require('./BaseRoleAssignments.cjs');
10
7
  let __thunderid_browser = require("@thunderid/browser");
11
8
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -27,15 +24,52 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
27
24
  const RoleAssignments = ({ editable = false, filterable = true, preferences, roleId,...rest }) => {
28
25
  const { t } = require_useTranslation.default(preferences?.i18n);
29
26
  const [typeFilter, setTypeFilter] = (0, react.useState)(null);
30
- const assignments = require_useGetRoleAssignments.default(roleId, {
27
+ const rolesEndpoint = require_useManagementEndpoint.default("roles");
28
+ const usersEndpoint = require_useManagementEndpoint.default("users");
29
+ const groupsEndpoint = require_useManagementEndpoint.default("groups");
30
+ const agentsEndpoint = require_useManagementEndpoint.default("agents");
31
+ const type = typeFilter ?? void 0;
32
+ const assignments = require_useResourceQuery.default([
33
+ __thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS,
34
+ roleId,
35
+ {
36
+ limit: 100,
37
+ type
38
+ }
39
+ ], (fetcher) => (0, __thunderid_browser.getRoleAssignments)({
40
+ ...rolesEndpoint,
41
+ fetcher,
31
42
  limit: 100,
32
- type: typeFilter ?? void 0
33
- });
34
- const users = require_useGetUsers.default({ limit: 100 }, { enabled: editable });
35
- const groups = require_useGetGroups.default({ limit: 100 }, { enabled: editable });
36
- const agents = require_useGetAgents.default({ limit: 100 }, { enabled: editable });
37
- const assign = require_useAddRoleAssignments.default();
38
- const unassign = require_useRemoveRoleAssignments.default();
43
+ roleId,
44
+ type
45
+ }), { enabled: Boolean(roleId) });
46
+ const users = require_useResourceQuery.default([__thunderid_browser.UserQueryKeys.USERS, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getUsers)({
47
+ ...usersEndpoint,
48
+ fetcher,
49
+ limit: 100
50
+ }), { enabled: editable });
51
+ const groups = require_useResourceQuery.default([__thunderid_browser.GroupQueryKeys.GROUPS, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getGroups)({
52
+ ...groupsEndpoint,
53
+ fetcher,
54
+ limit: 100
55
+ }), { enabled: editable });
56
+ const agents = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENTS, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getAgents)({
57
+ ...agentsEndpoint,
58
+ fetcher,
59
+ limit: 100
60
+ }), { enabled: editable });
61
+ const assign = require_useResourceMutation.default(({ assignments: changes, roleId: id }, fetcher) => (0, __thunderid_browser.addRoleAssignments)({
62
+ ...rolesEndpoint,
63
+ assignments: changes,
64
+ fetcher,
65
+ roleId: id
66
+ }), () => [[__thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS]]);
67
+ const unassign = require_useResourceMutation.default(({ assignments: changes, roleId: id }, fetcher) => (0, __thunderid_browser.removeRoleAssignments)({
68
+ ...rolesEndpoint,
69
+ assignments: changes,
70
+ fetcher,
71
+ roleId: id
72
+ }), () => [[__thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS]]);
39
73
  const candidates = (0, react.useMemo)(() => ({
40
74
  agent: (agents.data?.agents ?? []).map((agent) => ({
41
75
  id: agent.id,
@@ -1 +1 @@
1
- {"version":3,"file":"RoleAssignments.cjs","names":["RoleAssignments: FC<RoleAssignmentsProps>","useTranslation","useGetRoleAssignments","useGetUsers","useGetGroups","useGetAgents","useAddRoleAssignments","useRemoveRoleAssignments","candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>>","BaseRoleAssignments"],"sources":["../../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n resolveManagedIdentityName,\n toManagementErrorMessage,\n BasicAgent,\n Group,\n ManagedUser,\n RoleAssigneeType,\n RoleAssignment,\n RoleAssignmentInput,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo, useState} from 'react';\nimport BaseRoleAssignments, {BaseRoleAssignmentsProps} from './BaseRoleAssignments';\nimport useGetAgents from '../../../hooks/management/agents/useGetAgents';\nimport useGetGroups from '../../../hooks/management/groups/useGetGroups';\nimport useAddRoleAssignments from '../../../hooks/management/roles/useAddRoleAssignments';\nimport useGetRoleAssignments from '../../../hooks/management/roles/useGetRoleAssignments';\nimport useRemoveRoleAssignments from '../../../hooks/management/roles/useRemoveRoleAssignments';\nimport useGetUsers from '../../../hooks/management/users/useGetUsers';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {IdentityCandidate} from '../shared/IdentityPicker';\n\nexport type RoleAssignmentsProps = Omit<\n BaseRoleAssignmentsProps,\n | 'assignments'\n | 'candidates'\n | 'error'\n | 'isLoading'\n | 'isMutating'\n | 'onAssign'\n | 'onTypeFilterChange'\n | 'onUnassign'\n | 'typeFilter'\n> & {\n /**\n * Whether assignments can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Whether to show the assignee type filter, which narrows the list on the server.\n * @default true\n */\n filterable?: boolean;\n roleId: string;\n};\n\n/**\n * Lists who holds a role, and lets the signed-in user assign it to users, groups and agents or\n * remove it from them.\n *\n * @example\n * ```tsx\n * <RoleAssignments roleId={roleId} />\n * ```\n */\nconst RoleAssignments: FC<RoleAssignmentsProps> = ({\n editable = false,\n filterable = true,\n preferences,\n roleId,\n ...rest\n}: RoleAssignmentsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [typeFilter, setTypeFilter] = useState<RoleAssigneeType | null>(null);\n const assignments = useGetRoleAssignments(roleId, {limit: 100, type: typeFilter ?? undefined});\n const users = useGetUsers({limit: 100}, {enabled: editable});\n const groups = useGetGroups({limit: 100}, {enabled: editable});\n const agents = useGetAgents({limit: 100}, {enabled: editable});\n const assign = useAddRoleAssignments();\n const unassign = useRemoveRoleAssignments();\n\n const candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n group: (groups.data?.groups ?? []).map((group: Group) => ({id: group.id, label: group.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, groups.data, users.data],\n );\n\n return (\n <BaseRoleAssignments\n assignments={assignments.data?.assignments ?? []}\n isLoading={assignments.isLoading}\n isMutating={assign.isLoading || unassign.isLoading}\n error={\n toManagementErrorMessage(t, assignments.error, 'admin.roles.assignments.error') ??\n toManagementErrorMessage(t, assign.error ?? unassign.error, 'admin.roles.assignments.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAssign={\n editable\n ? (assignment: RoleAssignmentInput): void => void assign.mutate({assignments: [assignment], roleId})\n : undefined\n }\n onUnassign={\n editable\n ? (assignment: RoleAssignment): void =>\n void unassign.mutate({assignments: [{id: assignment.id, type: assignment.type}], roleId})\n : undefined\n }\n typeFilter={typeFilter}\n onTypeFilterChange={filterable ? setTypeFilter : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleAssignments;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA,MAAMA,mBAA6C,EACjD,WAAW,OACX,aAAa,MACb,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,YAAY,qCAAmD,KAAK;CAC3E,MAAM,cAAcC,sCAAsB,QAAQ;EAAC,OAAO;EAAK,MAAM,cAAc;EAAU,CAAC;CAC9F,MAAM,QAAQC,4BAAY,EAAC,OAAO,KAAI,EAAE,EAAC,SAAS,UAAS,CAAC;CAC5D,MAAM,SAASC,6BAAa,EAAC,OAAO,KAAI,EAAE,EAAC,SAAS,UAAS,CAAC;CAC9D,MAAM,SAASC,6BAAa,EAAC,OAAO,KAAI,EAAE,EAAC,SAAS,UAAS,CAAC;CAC9D,MAAM,SAASC,uCAAuB;CACtC,MAAM,WAAWC,0CAA0B;CAE3C,MAAMC,uCACG;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAkB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAC7F,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,2DAAkC,KAAK;GACxC,EAAE;EACJ,GACD;EAAC,OAAO;EAAM,OAAO;EAAM,MAAM;EAAK,CACvC;AAED,QACE,2CAACC;EACC,aAAa,YAAY,MAAM,eAAe,EAAE;EAChD,WAAW,YAAY;EACvB,YAAY,OAAO,aAAa,SAAS;EACzC,yDAC2B,GAAG,YAAY,OAAO,gCAAgC,sDACtD,GAAG,OAAO,SAAS,SAAS,OAAO,uCAAuC;EAErG,YAAY,WAAW,aAAa;EACpC,UACE,YACK,eAA0C,KAAK,OAAO,OAAO;GAAC,aAAa,CAAC,WAAW;GAAE;GAAO,CAAC,GAClG;EAEN,YACE,YACK,eACC,KAAK,SAAS,OAAO;GAAC,aAAa,CAAC;IAAC,IAAI,WAAW;IAAI,MAAM,WAAW;IAAK,CAAC;GAAE;GAAO,CAAC,GAC3F;EAEM;EACZ,oBAAoB,aAAa,gBAAgB;EACpC;EACb,GAAI;GACJ;;AAIN,8BAAe"}
1
+ {"version":3,"file":"RoleAssignments.cjs","names":["RoleAssignments: FC<RoleAssignmentsProps>","useTranslation","rolesEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","groupsEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","type: RoleAssigneeType | undefined","assignments: ResourceQueryResult<RoleAssignmentListResponse>","useResourceQuery","RoleQueryKeys","users: ResourceQueryResult<ManagedUserListResponse>","UserQueryKeys","groups: ResourceQueryResult<GroupListResponse>","GroupQueryKeys","agents: ResourceQueryResult<AgentListResponse>","AgentQueryKeys","assign: ResourceMutationResult<void, RoleAssignmentsVariables>","useResourceMutation","unassign: ResourceMutationResult<void, RoleAssignmentsVariables>","candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>>","BaseRoleAssignments"],"sources":["../../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n RoleAssigneeType,\n RoleAssignment,\n RoleAssignmentInput,\n RoleAssignmentListResponse,\n RoleQueryKeys,\n UserQueryKeys,\n addRoleAssignments,\n getAgents,\n getGroups,\n getRoleAssignments,\n getUsers,\n removeRoleAssignments,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo, useState} from 'react';\nimport BaseRoleAssignments, {BaseRoleAssignmentsProps} from './BaseRoleAssignments';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface RoleAssignmentsVariables {\n assignments: RoleAssignmentInput[];\n roleId: string;\n}\n\nexport type RoleAssignmentsProps = Omit<\n BaseRoleAssignmentsProps,\n | 'assignments'\n | 'candidates'\n | 'error'\n | 'isLoading'\n | 'isMutating'\n | 'onAssign'\n | 'onTypeFilterChange'\n | 'onUnassign'\n | 'typeFilter'\n> & {\n /**\n * Whether assignments can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Whether to show the assignee type filter, which narrows the list on the server.\n * @default true\n */\n filterable?: boolean;\n roleId: string;\n};\n\n/**\n * Lists who holds a role, and lets the signed-in user assign it to users, groups and agents or\n * remove it from them.\n *\n * @example\n * ```tsx\n * <RoleAssignments roleId={roleId} />\n * ```\n */\nconst RoleAssignments: FC<RoleAssignmentsProps> = ({\n editable = false,\n filterable = true,\n preferences,\n roleId,\n ...rest\n}: RoleAssignmentsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [typeFilter, setTypeFilter] = useState<RoleAssigneeType | null>(null);\n const rolesEndpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const type: RoleAssigneeType | undefined = typeFilter ?? undefined;\n const assignments: ResourceQueryResult<RoleAssignmentListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, roleId, {limit: 100, type}],\n (fetcher) => getRoleAssignments({...rolesEndpoint, fetcher, limit: 100, roleId, type}),\n {enabled: Boolean(roleId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const groups: ResourceQueryResult<GroupListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUPS, {limit: 100}],\n (fetcher) => getGroups({...groupsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const assign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n addRoleAssignments({...rolesEndpoint, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n const unassign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n removeRoleAssignments({...rolesEndpoint, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n\n const candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n group: (groups.data?.groups ?? []).map((group: Group) => ({id: group.id, label: group.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, groups.data, users.data],\n );\n\n return (\n <BaseRoleAssignments\n assignments={assignments.data?.assignments ?? []}\n isLoading={assignments.isLoading}\n isMutating={assign.isLoading || unassign.isLoading}\n error={\n toManagementErrorMessage(t, assignments.error, 'admin.roles.assignments.error') ??\n toManagementErrorMessage(t, assign.error ?? unassign.error, 'admin.roles.assignments.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAssign={\n editable\n ? (assignment: RoleAssignmentInput): void => void assign.mutate({assignments: [assignment], roleId})\n : undefined\n }\n onUnassign={\n editable\n ? (assignment: RoleAssignment): void =>\n void unassign.mutate({assignments: [{id: assignment.id, type: assignment.type}], roleId})\n : undefined\n }\n typeFilter={typeFilter}\n onTypeFilterChange={filterable ? setTypeFilter : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleAssignments;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0EA,MAAMA,mBAA6C,EACjD,WAAW,OACX,aAAa,MACb,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,YAAY,qCAAmD,KAAK;CAC3E,MAAMC,gBAAoCC,sCAAsB,QAAQ;CACxE,MAAMC,gBAAoCD,sCAAsB,QAAQ;CACxE,MAAME,iBAAqCF,sCAAsB,SAAS;CAC1E,MAAMG,iBAAqCH,sCAAsB,SAAS;CAC1E,MAAMI,OAAqC,cAAc;CACzD,MAAMC,cAA+DC,iCACnE;EAACC,kCAAc;EAAkB;EAAQ;GAAC,OAAO;GAAK;GAAK;EAAC,GAC3D,wDAA+B;EAAC,GAAG;EAAe;EAAS,OAAO;EAAK;EAAQ;EAAK,CAAC,EACtF,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;CACD,MAAMC,QAAsDF,iCAC1D,CAACG,kCAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,8CAAqB;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiDJ,iCACrD,CAACK,mCAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,+CAAsB;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiDN,iCACrD,CAACO,mCAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,+CAAsB;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiEC,qCACpE,EAAC,aAAa,SAAS,QAAQ,MAA+B,wDAC1C;EAAC,GAAG;EAAe,aAAa;EAAS;EAAS,QAAQ;EAAG,CAAC,QAC7E,CAAC,CAACR,kCAAc,iBAAiB,CAAC,CACzC;CACD,MAAMS,WAAmED,qCACtE,EAAC,aAAa,SAAS,QAAQ,MAA+B,2DACvC;EAAC,GAAG;EAAe,aAAa;EAAS;EAAS,QAAQ;EAAG,CAAC,QAChF,CAAC,CAACR,kCAAc,iBAAiB,CAAC,CACzC;CAED,MAAMU,uCACG;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAkB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAC7F,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,2DAAkC,KAAK;GACxC,EAAE;EACJ,GACD;EAAC,OAAO;EAAM,OAAO;EAAM,MAAM;EAAK,CACvC;AAED,QACE,2CAACC;EACC,aAAa,YAAY,MAAM,eAAe,EAAE;EAChD,WAAW,YAAY;EACvB,YAAY,OAAO,aAAa,SAAS;EACzC,yDAC2B,GAAG,YAAY,OAAO,gCAAgC,sDACtD,GAAG,OAAO,SAAS,SAAS,OAAO,uCAAuC;EAErG,YAAY,WAAW,aAAa;EACpC,UACE,YACK,eAA0C,KAAK,OAAO,OAAO;GAAC,aAAa,CAAC,WAAW;GAAE;GAAO,CAAC,GAClG;EAEN,YACE,YACK,eACC,KAAK,SAAS,OAAO;GAAC,aAAa,CAAC;IAAC,IAAI,WAAW;IAAI,MAAM,WAAW;IAAK,CAAC;GAAE;GAAO,CAAC,GAC3F;EAEM;EACZ,oBAAoB,aAAa,gBAAgB;EACpC;EACb,GAAI;GACJ;;AAIN,8BAAe"}
@@ -1,6 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useCreateRole = require('../../../hooks/management/roles/useCreateRole.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
4
5
  const require_useDefaultOuId = require('../shared/useDefaultOuId.cjs');
5
6
  const require_BaseRoleCreate = require('./BaseRoleCreate.cjs');
6
7
  let __thunderid_browser = require("@thunderid/browser");
@@ -20,7 +21,12 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
20
21
  const RoleCreate = ({ onCreated, ouId, preferences,...rest }) => {
21
22
  const { t } = require_useTranslation.default(preferences?.i18n);
22
23
  const resolvedOuId = require_useDefaultOuId.default(ouId);
23
- const { error, isLoading, mutate } = require_useCreateRole.default({ onSuccess: onCreated });
24
+ const endpoint = require_useManagementEndpoint.default("roles");
25
+ const { error, isLoading, mutate } = require_useResourceMutation.default((payload, fetcher) => (0, __thunderid_browser.createRole)({
26
+ ...endpoint,
27
+ fetcher,
28
+ payload
29
+ }), () => [[__thunderid_browser.RoleQueryKeys.ROLES], [__thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS]], { onSuccess: onCreated });
24
30
  const handleSubmit = ({ description, name }) => {
25
31
  if (resolvedOuId) mutate({
26
32
  description,
@@ -1 +1 @@
1
- {"version":3,"file":"RoleCreate.cjs","names":["RoleCreate: FC<RoleCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","useCreateRole","BaseRoleCreate"],"sources":["../../../../../src/components/admin/RoleCreate/RoleCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage, Role} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseRoleCreate, {BaseRoleCreateProps, RoleCreateSubmission} from './BaseRoleCreate';\nimport useCreateRole from '../../../hooks/management/roles/useCreateRole';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type RoleCreateProps = Omit<BaseRoleCreateProps, 'error' | 'isSubmitting' | 'onSubmit'> & {\n /**\n * Called with the created role.\n */\n onCreated?: (role: Role) => void;\n /**\n * Organization unit the role is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Creates a role through the management API.\n *\n * @example\n * ```tsx\n * <RoleCreate onCreated={(role) => navigate(`/roles/${role.id}`)} />\n * ```\n */\nconst RoleCreate: FC<RoleCreateProps> = ({onCreated, ouId, preferences, ...rest}: RoleCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const {error, isLoading, mutate} = useCreateRole({onSuccess: onCreated});\n\n const handleSubmit = ({description, name}: RoleCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate({description, name, ouId: resolvedOuId});\n }\n };\n\n return (\n <BaseRoleCreate\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.roles.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,cAAmC,EAAC,WAAW,MAAM,YAAa,GAAG,WAAyC;CAClH,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAM,EAAC,OAAO,WAAW,WAAUC,8BAAc,EAAC,WAAW,WAAU,CAAC;CAExE,MAAM,gBAAgB,EAAC,aAAa,WAAsC;AACxE,MAAI,aACF,CAAK,OAAO;GAAC;GAAa;GAAM,MAAM;GAAa,CAAC;;AAIxD,QACE,2CAACC;EACC,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,2BAA2B,GAAG,EAAE,4BAA4B;EAEnG;EACb,GAAI;GACJ;;AAIN,yBAAe"}
1
+ {"version":3,"file":"RoleCreate.cjs","names":["RoleCreate: FC<RoleCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","endpoint: ManagementEndpoint","useManagementEndpoint","useResourceMutation","RoleQueryKeys","BaseRoleCreate"],"sources":["../../../../../src/components/admin/RoleCreate/RoleCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {CreateRoleRequest, Role, RoleQueryKeys, createRole, toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseRoleCreate, {BaseRoleCreateProps, RoleCreateSubmission} from './BaseRoleCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type RoleCreateProps = Omit<BaseRoleCreateProps, 'error' | 'isSubmitting' | 'onSubmit'> & {\n /**\n * Called with the created role.\n */\n onCreated?: (role: Role) => void;\n /**\n * Organization unit the role is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Creates a role through the management API.\n *\n * @example\n * ```tsx\n * <RoleCreate onCreated={(role) => navigate(`/roles/${role.id}`)} />\n * ```\n */\nconst RoleCreate: FC<RoleCreateProps> = ({onCreated, ouId, preferences, ...rest}: RoleCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const endpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const {error, isLoading, mutate}: ResourceMutationResult<Role, CreateRoleRequest> = useResourceMutation(\n (payload: CreateRoleRequest, fetcher) => createRole({...endpoint, fetcher, payload}),\n () => [[RoleQueryKeys.ROLES], [RoleQueryKeys.ROLE_ASSIGNMENTS]],\n {onSuccess: onCreated},\n );\n\n const handleSubmit = ({description, name}: RoleCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate({description, name, ouId: resolvedOuId});\n }\n };\n\n return (\n <BaseRoleCreate\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.roles.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,cAAmC,EAAC,WAAW,MAAM,YAAa,GAAG,WAAyC;CAClH,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,WAA+BC,sCAAsB,QAAQ;CACnE,MAAM,EAAC,OAAO,WAAW,WAA2DC,qCACjF,SAA4B,gDAAuB;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,QAC9E,CAAC,CAACC,kCAAc,MAAM,EAAE,CAACA,kCAAc,iBAAiB,CAAC,EAC/D,EAAC,WAAW,WAAU,CACvB;CAED,MAAM,gBAAgB,EAAC,aAAa,WAAsC;AACxE,MAAI,aACF,CAAK,OAAO;GAAC;GAAa;GAAM,MAAM;GAAa,CAAC;;AAIxD,QACE,2CAACC;EACC,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,2BAA2B,GAAG,EAAE,4BAA4B;EAEnG;EACb,GAAI;GACJ;;AAIN,yBAAe"}
@@ -1,6 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useGetRoles = require('../../../hooks/management/roles/useGetRoles.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
4
5
  const require_BaseRoleList = require('./BaseRoleList.cjs');
5
6
  let __thunderid_browser = require("@thunderid/browser");
6
7
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -21,10 +22,16 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
21
22
  const RoleList = ({ limit = 20, preferences,...rest }) => {
22
23
  const { t } = require_useTranslation.default(preferences?.i18n);
23
24
  const [offset, setOffset] = (0, react.useState)(0);
24
- const { data, error, isLoading } = require_useGetRoles.default({
25
+ const endpoint = require_useManagementEndpoint.default("roles");
26
+ const { data, error, isLoading } = require_useResourceQuery.default([__thunderid_browser.RoleQueryKeys.ROLES, {
25
27
  limit,
26
28
  offset
27
- });
29
+ }], (fetcher) => (0, __thunderid_browser.getRoles)({
30
+ ...endpoint,
31
+ fetcher,
32
+ limit,
33
+ offset
34
+ }));
28
35
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseRoleList.default, {
29
36
  roles: data?.roles ?? [],
30
37
  totalResults: data?.totalResults,
@@ -1 +1 @@
1
- {"version":3,"file":"RoleList.cjs","names":["RoleList: FC<RoleListProps>","useTranslation","useGetRoles","BaseRoleList"],"sources":["../../../../../src/components/admin/RoleList/RoleList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseRoleList, {BaseRoleListProps} from './BaseRoleList';\nimport useGetRoles from '../../../hooks/management/roles/useGetRoles';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type RoleListProps = Omit<\n BaseRoleListProps,\n 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'roles' | 'totalResults'\n>;\n\n/**\n * Lists the roles the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <RoleList onSelect={(role) => setSelectedRoleId(role.id)} />\n * ```\n */\nconst RoleList: FC<RoleListProps> = ({limit = 20, preferences, ...rest}: RoleListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const {data, error, isLoading} = useGetRoles({limit, offset});\n\n return (\n <BaseRoleList\n roles={data?.roles ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.roles.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,MAAMA,YAA+B,EAAC,QAAQ,IAAI,YAAa,GAAG,WAAuC;CACvG,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,EAAC,MAAM,OAAO,cAAaC,4BAAY;EAAC;EAAO;EAAO,CAAC;AAE7D,QACE,2CAACC;EACC,OAAO,MAAM,SAAS,EAAE;EACxB,cAAc,MAAM;EACT;EACX,yDAAgC,GAAG,OAAO,yBAAyB;EAC5D;EACC;EACR,cAAc;EACD;EACb,GAAI;GACJ;;AAIN,uBAAe"}
1
+ {"version":3,"file":"RoleList.cjs","names":["RoleList: FC<RoleListProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","useResourceQuery","RoleQueryKeys","BaseRoleList"],"sources":["../../../../../src/components/admin/RoleList/RoleList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {RoleListResponse, RoleQueryKeys, getRoles, toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseRoleList, {BaseRoleListProps} from './BaseRoleList';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type RoleListProps = Omit<\n BaseRoleListProps,\n 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'roles' | 'totalResults'\n>;\n\n/**\n * Lists the roles the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <RoleList onSelect={(role) => setSelectedRoleId(role.id)} />\n * ```\n */\nconst RoleList: FC<RoleListProps> = ({limit = 20, preferences, ...rest}: RoleListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const endpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const {data, error, isLoading}: ResourceQueryResult<RoleListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLES, {limit, offset}],\n (fetcher) => getRoles({...endpoint, fetcher, limit, offset}),\n );\n\n return (\n <BaseRoleList\n roles={data?.roles ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.roles.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBA,MAAMA,YAA+B,EAAC,QAAQ,IAAI,YAAa,GAAG,WAAuC;CACvG,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAMC,WAA+BC,sCAAsB,QAAQ;CACnE,MAAM,EAAC,MAAM,OAAO,cAAoDC,iCACtE,CAACC,kCAAc,OAAO;EAAC;EAAO;EAAO,CAAC,GACrC,8CAAqB;EAAC,GAAG;EAAU;EAAS;EAAO;EAAO,CAAC,CAC7D;AAED,QACE,2CAACC;EACC,OAAO,MAAM,SAAS,EAAE;EACxB,cAAc,MAAM;EACT;EACX,yDAAgC,GAAG,OAAO,yBAAyB;EAC5D;EACC;EACR,cAAc;EACD;EACb,GAAI;GACJ;;AAIN,uBAAe"}
@@ -1,6 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useGetRole = require('../../../hooks/management/roles/useGetRole.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
4
5
  const require_BaseRolePermissions = require('./BaseRolePermissions.cjs');
5
6
  let __thunderid_browser = require("@thunderid/browser");
6
7
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -18,7 +19,12 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
18
19
  */
19
20
  const RolePermissions = ({ preferences, roleId,...rest }) => {
20
21
  const { t } = require_useTranslation.default(preferences?.i18n);
21
- const role = require_useGetRole.default(roleId);
22
+ const endpoint = require_useManagementEndpoint.default("roles");
23
+ const role = require_useResourceQuery.default([__thunderid_browser.RoleQueryKeys.ROLE, roleId], (fetcher) => (0, __thunderid_browser.getRole)({
24
+ ...endpoint,
25
+ fetcher,
26
+ roleId
27
+ }), { enabled: Boolean(roleId) });
22
28
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseRolePermissions.default, {
23
29
  permissions: role.data?.permissions ?? [],
24
30
  isLoading: role.isLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"RolePermissions.cjs","names":["RolePermissions: FC<RolePermissionsProps>","useTranslation","useGetRole","BaseRolePermissions"],"sources":["../../../../../src/components/admin/RolePermissions/RolePermissions.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseRolePermissions, {BaseRolePermissionsProps} from './BaseRolePermissions';\nimport useGetRole from '../../../hooks/management/roles/useGetRole';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type RolePermissionsProps = Omit<BaseRolePermissionsProps, 'error' | 'isLoading' | 'permissions'> & {\n roleId: string;\n};\n\n/**\n * Shows the permissions a role grants.\n *\n * @example\n * ```tsx\n * <RolePermissions roleId={roleId} />\n * ```\n */\nconst RolePermissions: FC<RolePermissionsProps> = ({\n preferences,\n roleId,\n ...rest\n}: RolePermissionsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const role = useGetRole(roleId);\n\n return (\n <BaseRolePermissions\n permissions={role.data?.permissions ?? []}\n isLoading={role.isLoading}\n error={toManagementErrorMessage(t, role.error, 'admin.roles.permissions.error')}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RolePermissions;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,MAAMA,mBAA6C,EACjD,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,OAAOC,2BAAW,OAAO;AAE/B,QACE,2CAACC;EACC,aAAa,KAAK,MAAM,eAAe,EAAE;EACzC,WAAW,KAAK;EAChB,yDAAgC,GAAG,KAAK,OAAO,gCAAgC;EAClE;EACb,GAAI;GACJ;;AAIN,8BAAe"}
1
+ {"version":3,"file":"RolePermissions.cjs","names":["RolePermissions: FC<RolePermissionsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","role: ResourceQueryResult<Role>","useResourceQuery","RoleQueryKeys","BaseRolePermissions"],"sources":["../../../../../src/components/admin/RolePermissions/RolePermissions.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Role, RoleQueryKeys, getRole, toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseRolePermissions, {BaseRolePermissionsProps} from './BaseRolePermissions';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type RolePermissionsProps = Omit<BaseRolePermissionsProps, 'error' | 'isLoading' | 'permissions'> & {\n roleId: string;\n};\n\n/**\n * Shows the permissions a role grants.\n *\n * @example\n * ```tsx\n * <RolePermissions roleId={roleId} />\n * ```\n */\nconst RolePermissions: FC<RolePermissionsProps> = ({\n preferences,\n roleId,\n ...rest\n}: RolePermissionsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const role: ResourceQueryResult<Role> = useResourceQuery(\n [RoleQueryKeys.ROLE, roleId],\n (fetcher) => getRole({...endpoint, fetcher, roleId}),\n {enabled: Boolean(roleId)},\n );\n\n return (\n <BaseRolePermissions\n permissions={role.data?.permissions ?? []}\n isLoading={role.isLoading}\n error={toManagementErrorMessage(t, role.error, 'admin.roles.permissions.error')}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RolePermissions;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAsBA,MAAMA,mBAA6C,EACjD,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,sCAAsB,QAAQ;CACnE,MAAMC,OAAkCC,iCACtC,CAACC,kCAAc,MAAM,OAAO,GAC3B,6CAAoB;EAAC,GAAG;EAAU;EAAS;EAAO,CAAC,EACpD,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;AAED,QACE,2CAACC;EACC,aAAa,KAAK,MAAM,eAAe,EAAE;EACzC,WAAW,KAAK;EAChB,yDAAgC,GAAG,KAAK,OAAO,gCAAgC;EAClE;EACb,GAAI;GACJ;;AAIN,8BAAe"}
@@ -1,9 +1,10 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useCreateUser = require('../../../hooks/management/users/useCreateUser.cjs');
4
- const require_useGetUserTypes = require('../../../hooks/management/users/useGetUserTypes.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
5
5
  const require_InviteUser = require('../../auth/InviteUser/InviteUser.cjs');
6
6
  const require_BaseUserCreate = require('./BaseUserCreate.cjs');
7
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
7
8
  const require_useDefaultOuId = require('../shared/useDefaultOuId.cjs');
8
9
  let __thunderid_browser = require("@thunderid/browser");
9
10
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -26,8 +27,18 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
26
27
  const UserCreate = ({ inviteProps, mode = "api", onCreated, ouId, preferences,...rest }) => {
27
28
  const { t } = require_useTranslation.default(preferences?.i18n);
28
29
  const resolvedOuId = require_useDefaultOuId.default(ouId);
29
- const { data: userTypes } = require_useGetUserTypes.default({ limit: 100 }, { enabled: mode === "api" });
30
- const { error, isLoading, mutate } = require_useCreateUser.default({ onSuccess: onCreated });
30
+ const usersEndpoint = require_useManagementEndpoint.default("users");
31
+ const userTypesEndpoint = require_useManagementEndpoint.default("userTypes");
32
+ const { data: userTypes } = require_useResourceQuery.default([__thunderid_browser.UserQueryKeys.USER_TYPES, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getUserTypes)({
33
+ ...userTypesEndpoint,
34
+ fetcher,
35
+ limit: 100
36
+ }), { enabled: mode === "api" });
37
+ const { error, isLoading, mutate } = require_useResourceMutation.default((payload, fetcher) => (0, __thunderid_browser.createUser)({
38
+ ...usersEndpoint,
39
+ fetcher,
40
+ payload
41
+ }), () => [[__thunderid_browser.UserQueryKeys.USERS]], { onSuccess: onCreated });
31
42
  const options = (0, react.useMemo)(() => (userTypes?.types ?? []).map((userType) => ({
32
43
  label: userType.displayName ?? userType.handle,
33
44
  value: userType.handle
@@ -1 +1 @@
1
- {"version":3,"file":"UserCreate.cjs","names":["UserCreate: FC<UserCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","useGetUserTypes","useCreateUser","options: SelectOption[]","InviteUser","BaseUserCreate"],"sources":["../../../../../src/components/admin/UserCreate/UserCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage, ManagedUser, ManagedUserType, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseUserCreate, {BaseUserCreateProps, UserCreateSubmission} from './BaseUserCreate';\nimport useCreateUser from '../../../hooks/management/users/useCreateUser';\nimport useGetUserTypes from '../../../hooks/management/users/useGetUserTypes';\nimport useTranslation from '../../../hooks/useTranslation';\nimport InviteUser, {InviteUserProps} from '../../auth/InviteUser/InviteUser';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type UserCreateProps = Omit<BaseUserCreateProps, 'error' | 'isSubmitting' | 'onSubmit' | 'userTypes'> & {\n /**\n * Props passed to `InviteUser` when `mode` is `invite`.\n */\n inviteProps?: InviteUserProps;\n /**\n * How the user is added.\n * - `api` creates the user directly through the management API.\n * - `invite` runs the invite user flow, which asks the person to finish setting up their account.\n * Only available where flows run.\n * @default 'api'\n */\n mode?: 'api' | 'invite';\n /**\n * Called with the created user. Not called in `invite` mode, where the flow reports progress\n * through `inviteProps.onFlowChange`.\n */\n onCreated?: (user: ManagedUser) => void;\n /**\n * Organization unit the user is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Adds a user, either directly through the management API or by inviting them through the invite\n * user flow.\n *\n * @example\n * ```tsx\n * <UserCreate onCreated={(user) => navigate(`/users/${user.id}`)} />\n * <UserCreate mode=\"invite\" />\n * ```\n */\nconst UserCreate: FC<UserCreateProps> = ({\n inviteProps,\n mode = 'api',\n onCreated,\n ouId,\n preferences,\n ...rest\n}: UserCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const {data: userTypes} = useGetUserTypes({limit: 100}, {enabled: mode === 'api'});\n const {error, isLoading, mutate} = useCreateUser({onSuccess: onCreated});\n\n const options: SelectOption[] = useMemo(\n () =>\n (userTypes?.types ?? []).map((userType: ManagedUserType) => ({\n label: userType.displayName ?? userType.handle,\n value: userType.handle,\n })),\n [userTypes],\n );\n\n if (mode === 'invite') {\n return <InviteUser {...inviteProps} />;\n }\n\n const handleSubmit = ({attributes, type}: UserCreateSubmission): void => {\n if (!resolvedOuId) {\n return;\n }\n\n void mutate({attributes, ouId: resolvedOuId, type});\n };\n\n return (\n <BaseUserCreate\n userTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.users.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,MAAMA,cAAmC,EACvC,aACA,OAAO,OACP,WACA,MACA,YACA,GAAG,WACgC;CACnC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAM,EAAC,MAAM,cAAaC,gCAAgB,EAAC,OAAO,KAAI,EAAE,EAAC,SAAS,SAAS,OAAM,CAAC;CAClF,MAAM,EAAC,OAAO,WAAW,WAAUC,8BAAc,EAAC,WAAW,WAAU,CAAC;CAExE,MAAMC,oCAED,WAAW,SAAS,EAAE,EAAE,KAAK,cAA+B;EAC3D,OAAO,SAAS,eAAe,SAAS;EACxC,OAAO,SAAS;EACjB,EAAE,EACL,CAAC,UAAU,CACZ;AAED,KAAI,SAAS,SACX,QAAO,2CAACC,8BAAW,GAAI,cAAe;CAGxC,MAAM,gBAAgB,EAAC,YAAY,WAAsC;AACvE,MAAI,CAAC,aACH;AAGF,EAAK,OAAO;GAAC;GAAY,MAAM;GAAc;GAAK,CAAC;;AAGrD,QACE,2CAACC;EACC,WAAW;EACX,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,2BAA2B,GAAG,EAAE,4BAA4B;EAEnG;EACb,GAAI;GACJ;;AAIN,yBAAe"}
1
+ {"version":3,"file":"UserCreate.cjs","names":["UserCreate: FC<UserCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","usersEndpoint: ManagementEndpoint","useManagementEndpoint","userTypesEndpoint: ManagementEndpoint","useResourceQuery","UserQueryKeys","useResourceMutation","options: SelectOption[]","InviteUser","BaseUserCreate"],"sources":["../../../../../src/components/admin/UserCreate/UserCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n CreateManagedUserRequest,\n ManagedUser,\n ManagedUserType,\n ManagedUserTypeListResponse,\n SelectOption,\n UserQueryKeys,\n createUser,\n getUserTypes,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseUserCreate, {BaseUserCreateProps, UserCreateSubmission} from './BaseUserCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport InviteUser, {InviteUserProps} from '../../auth/InviteUser/InviteUser';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type UserCreateProps = Omit<BaseUserCreateProps, 'error' | 'isSubmitting' | 'onSubmit' | 'userTypes'> & {\n /**\n * Props passed to `InviteUser` when `mode` is `invite`.\n */\n inviteProps?: InviteUserProps;\n /**\n * How the user is added.\n * - `api` creates the user directly through the management API.\n * - `invite` runs the invite user flow, which asks the person to finish setting up their account.\n * Only available where flows run.\n * @default 'api'\n */\n mode?: 'api' | 'invite';\n /**\n * Called with the created user. Not called in `invite` mode, where the flow reports progress\n * through `inviteProps.onFlowChange`.\n */\n onCreated?: (user: ManagedUser) => void;\n /**\n * Organization unit the user is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Adds a user, either directly through the management API or by inviting them through the invite\n * user flow.\n *\n * @example\n * ```tsx\n * <UserCreate onCreated={(user) => navigate(`/users/${user.id}`)} />\n * <UserCreate mode=\"invite\" />\n * ```\n */\nconst UserCreate: FC<UserCreateProps> = ({\n inviteProps,\n mode = 'api',\n onCreated,\n ouId,\n preferences,\n ...rest\n}: UserCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const userTypesEndpoint: ManagementEndpoint = useManagementEndpoint('userTypes');\n const {data: userTypes}: ResourceQueryResult<ManagedUserTypeListResponse> = useResourceQuery(\n [UserQueryKeys.USER_TYPES, {limit: 100}],\n (fetcher) => getUserTypes({...userTypesEndpoint, fetcher, limit: 100}),\n {enabled: mode === 'api'},\n );\n const {error, isLoading, mutate}: ResourceMutationResult<ManagedUser, CreateManagedUserRequest> = useResourceMutation(\n (payload: CreateManagedUserRequest, fetcher) => createUser({...usersEndpoint, fetcher, payload}),\n () => [[UserQueryKeys.USERS]],\n {onSuccess: onCreated},\n );\n\n const options: SelectOption[] = useMemo(\n () =>\n (userTypes?.types ?? []).map((userType: ManagedUserType) => ({\n label: userType.displayName ?? userType.handle,\n value: userType.handle,\n })),\n [userTypes],\n );\n\n if (mode === 'invite') {\n return <InviteUser {...inviteProps} />;\n }\n\n const handleSubmit = ({attributes, type}: UserCreateSubmission): void => {\n if (!resolvedOuId) {\n return;\n }\n\n void mutate({attributes, ouId: resolvedOuId, type});\n };\n\n return (\n <BaseUserCreate\n userTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.users.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,MAAMA,cAAmC,EACvC,aACA,OAAO,OACP,WACA,MACA,YACA,GAAG,WACgC;CACnC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,gBAAoCC,sCAAsB,QAAQ;CACxE,MAAMC,oBAAwCD,sCAAsB,YAAY;CAChF,MAAM,EAAC,MAAM,cAA+DE,iCAC1E,CAACC,kCAAc,YAAY,EAAC,OAAO,KAAI,CAAC,GACvC,kDAAyB;EAAC,GAAG;EAAmB;EAAS,OAAO;EAAI,CAAC,EACtE,EAAC,SAAS,SAAS,OAAM,CAC1B;CACD,MAAM,EAAC,OAAO,WAAW,WAAyEC,qCAC/F,SAAmC,gDAAuB;EAAC,GAAG;EAAe;EAAS;EAAQ,CAAC,QAC1F,CAAC,CAACD,kCAAc,MAAM,CAAC,EAC7B,EAAC,WAAW,WAAU,CACvB;CAED,MAAME,oCAED,WAAW,SAAS,EAAE,EAAE,KAAK,cAA+B;EAC3D,OAAO,SAAS,eAAe,SAAS;EACxC,OAAO,SAAS;EACjB,EAAE,EACL,CAAC,UAAU,CACZ;AAED,KAAI,SAAS,SACX,QAAO,2CAACC,8BAAW,GAAI,cAAe;CAGxC,MAAM,gBAAgB,EAAC,YAAY,WAAsC;AACvE,MAAI,CAAC,aACH;AAGF,EAAK,OAAO;GAAC;GAAY,MAAM;GAAc;GAAK,CAAC;;AAGrD,QACE,2CAACC;EACC,WAAW;EACX,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,2BAA2B,GAAG,EAAE,4BAA4B;EAEnG;EACb,GAAI;GACJ;;AAIN,yBAAe"}
@@ -1,9 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useGetUser = require('../../../hooks/management/users/useGetUser.cjs');
4
- const require_useUpdateUser = require('../../../hooks/management/users/useUpdateUser.cjs');
5
- const require_useDeleteUser = require('../../../hooks/management/users/useDeleteUser.cjs');
6
- const require_useGetUserGroups = require('../../../hooks/management/users/useGetUserGroups.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
5
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
7
6
  const require_BaseUserDetails = require('./BaseUserDetails.cjs');
8
7
  let __thunderid_browser = require("@thunderid/browser");
9
8
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -21,10 +20,34 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
21
20
  */
22
21
  const UserDetails = ({ deletable = false, editable = false, onDeleted, preferences, userId,...rest }) => {
23
22
  const { t } = require_useTranslation.default(preferences?.i18n);
24
- const user = require_useGetUser.default(userId);
25
- const groups = require_useGetUserGroups.default(userId, { limit: 100 });
26
- const deletion = require_useDeleteUser.default({ onSuccess: onDeleted });
27
- const update = require_useUpdateUser.default();
23
+ const endpoint = require_useManagementEndpoint.default("users");
24
+ const user = require_useResourceQuery.default([__thunderid_browser.UserQueryKeys.USER, userId], (fetcher) => (0, __thunderid_browser.getUser)({
25
+ ...endpoint,
26
+ fetcher,
27
+ userId
28
+ }), { enabled: Boolean(userId) });
29
+ const groups = require_useResourceQuery.default([
30
+ __thunderid_browser.GroupQueryKeys.MEMBERSHIPS,
31
+ "user",
32
+ userId,
33
+ { limit: 100 }
34
+ ], (fetcher) => (0, __thunderid_browser.getUserGroups)({
35
+ ...endpoint,
36
+ fetcher,
37
+ limit: 100,
38
+ userId
39
+ }), { enabled: Boolean(userId) });
40
+ const deletion = require_useResourceMutation.default((id, fetcher) => (0, __thunderid_browser.deleteUser)({
41
+ ...endpoint,
42
+ fetcher,
43
+ userId: id
44
+ }), () => [[__thunderid_browser.UserQueryKeys.USERS]], { onSuccess: onDeleted });
45
+ const update = require_useResourceMutation.default(({ data, userId: id }, fetcher) => (0, __thunderid_browser.updateUser)({
46
+ ...endpoint,
47
+ fetcher,
48
+ payload: data,
49
+ userId: id
50
+ }), ({ userId: id }) => [[__thunderid_browser.UserQueryKeys.USER, id], [__thunderid_browser.UserQueryKeys.USERS]]);
28
51
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseUserDetails.default, {
29
52
  user: user.data,
30
53
  groups: groups.data?.groups,
@@ -1 +1 @@
1
- {"version":3,"file":"UserDetails.cjs","names":["UserDetails: FC<UserDetailsProps>","useTranslation","useGetUser","useGetUserGroups","useDeleteUser","useUpdateUser","BaseUserDetails"],"sources":["../../../../../src/components/admin/UserDetails/UserDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseUserDetails, {BaseUserDetailsProps} from './BaseUserDetails';\nimport useDeleteUser from '../../../hooks/management/users/useDeleteUser';\nimport useGetUser from '../../../hooks/management/users/useGetUser';\nimport useGetUserGroups from '../../../hooks/management/users/useGetUserGroups';\nimport useUpdateUser from '../../../hooks/management/users/useUpdateUser';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type UserDetailsProps = Omit<\n BaseUserDetailsProps,\n 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'isUpdating' | 'onDelete' | 'onUpdate' | 'user'\n> & {\n /**\n * Whether the user can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Whether the user's text attributes can be edited from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Called after the user has been deleted.\n */\n onDeleted?: () => void;\n userId: string;\n};\n\n/**\n * Shows a user and the groups they belong to, and optionally lets the signed-in user delete them.\n *\n * @example\n * ```tsx\n * <UserDetails userId={userId} deletable onDeleted={() => navigate('/users')} />\n * ```\n */\nconst UserDetails: FC<UserDetailsProps> = ({\n deletable = false,\n editable = false,\n onDeleted,\n preferences,\n userId,\n ...rest\n}: UserDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const user = useGetUser(userId);\n const groups = useGetUserGroups(userId, {limit: 100});\n const deletion = useDeleteUser({onSuccess: onDeleted});\n const update = useUpdateUser();\n\n return (\n <BaseUserDetails\n user={user.data}\n groups={groups.data?.groups}\n isLoading={user.isLoading}\n error={\n toManagementErrorMessage(t, user.error, 'admin.users.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.users.details.delete.error') ??\n toManagementErrorMessage(t, update.error, 'admin.users.details.edit.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(userId) : undefined}\n isUpdating={update.isLoading}\n onUpdate={\n editable && user.data\n ? (attributes: Record<string, unknown>): void =>\n void update.mutate({data: {attributes, ouId: user.data!.ouId, type: user.data!.type}, userId})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAyCA,MAAMA,eAAqC,EACzC,YAAY,OACZ,WAAW,OACX,WACA,aACA,OACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,OAAOC,2BAAW,OAAO;CAC/B,MAAM,SAASC,iCAAiB,QAAQ,EAAC,OAAO,KAAI,CAAC;CACrD,MAAM,WAAWC,8BAAc,EAAC,WAAW,WAAU,CAAC;CACtD,MAAM,SAASC,+BAAe;AAE9B,QACE,2CAACC;EACC,MAAM,KAAK;EACX,QAAQ,OAAO,MAAM;EACrB,WAAW,KAAK;EAChB,yDAC2B,GAAG,KAAK,OAAO,4BAA4B,sDAC3C,GAAG,SAAS,OAAO,mCAAmC,sDACtD,GAAG,OAAO,OAAO,iCAAiC;EAE7E,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,OAAO,GAAG;EACjE,YAAY,OAAO;EACnB,UACE,YAAY,KAAK,QACZ,eACC,KAAK,OAAO,OAAO;GAAC,MAAM;IAAC;IAAY,MAAM,KAAK,KAAM;IAAM,MAAM,KAAK,KAAM;IAAK;GAAE;GAAO,CAAC,GAChG;EAEO;EACb,GAAI;GACJ;;AAIN,0BAAe"}
1
+ {"version":3,"file":"UserDetails.cjs","names":["UserDetails: FC<UserDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","user: ResourceQueryResult<ManagedUser>","useResourceQuery","UserQueryKeys","groups: ResourceQueryResult<MembershipGroupListResponse>","GroupQueryKeys","deletion: ResourceMutationResult<void, string>","useResourceMutation","update: ResourceMutationResult<ManagedUser, UpdateUserVariables>","BaseUserDetails"],"sources":["../../../../../src/components/admin/UserDetails/UserDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n GroupQueryKeys,\n ManagedUser,\n MembershipGroupListResponse,\n UpdateManagedUserRequest,\n UserQueryKeys,\n deleteUser,\n getUser,\n getUserGroups,\n toManagementErrorMessage,\n updateUser,\n} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseUserDetails, {BaseUserDetailsProps} from './BaseUserDetails';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\ninterface UpdateUserVariables {\n data: UpdateManagedUserRequest;\n userId: string;\n}\n\nexport type UserDetailsProps = Omit<\n BaseUserDetailsProps,\n 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'isUpdating' | 'onDelete' | 'onUpdate' | 'user'\n> & {\n /**\n * Whether the user can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Whether the user's text attributes can be edited from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Called after the user has been deleted.\n */\n onDeleted?: () => void;\n userId: string;\n};\n\n/**\n * Shows a user and the groups they belong to, and optionally lets the signed-in user delete them.\n *\n * @example\n * ```tsx\n * <UserDetails userId={userId} deletable onDeleted={() => navigate('/users')} />\n * ```\n */\nconst UserDetails: FC<UserDetailsProps> = ({\n deletable = false,\n editable = false,\n onDeleted,\n preferences,\n userId,\n ...rest\n}: UserDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('users');\n const user: ResourceQueryResult<ManagedUser> = useResourceQuery(\n [UserQueryKeys.USER, userId],\n (fetcher) => getUser({...endpoint, fetcher, userId}),\n {enabled: Boolean(userId)},\n );\n const groups: ResourceQueryResult<MembershipGroupListResponse> = useResourceQuery(\n [GroupQueryKeys.MEMBERSHIPS, 'user', userId, {limit: 100}],\n (fetcher) => getUserGroups({...endpoint, fetcher, limit: 100, userId}),\n {enabled: Boolean(userId)},\n );\n const deletion: ResourceMutationResult<void, string> = useResourceMutation(\n (id: string, fetcher) => deleteUser({...endpoint, fetcher, userId: id}),\n () => [[UserQueryKeys.USERS]],\n {onSuccess: onDeleted},\n );\n const update: ResourceMutationResult<ManagedUser, UpdateUserVariables> = useResourceMutation(\n ({data, userId: id}: UpdateUserVariables, fetcher) => updateUser({...endpoint, fetcher, payload: data, userId: id}),\n ({userId: id}: UpdateUserVariables) => [[UserQueryKeys.USER, id], [UserQueryKeys.USERS]],\n );\n\n return (\n <BaseUserDetails\n user={user.data}\n groups={groups.data?.groups}\n isLoading={user.isLoading}\n error={\n toManagementErrorMessage(t, user.error, 'admin.users.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.users.details.delete.error') ??\n toManagementErrorMessage(t, update.error, 'admin.users.details.edit.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(userId) : undefined}\n isUpdating={update.isLoading}\n onUpdate={\n editable && user.data\n ? (attributes: Record<string, unknown>): void =>\n void update.mutate({data: {attributes, ouId: user.data!.ouId, type: user.data!.type}, userId})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwDA,MAAMA,eAAqC,EACzC,YAAY,OACZ,WAAW,OACX,WACA,aACA,OACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,sCAAsB,QAAQ;CACnE,MAAMC,OAAyCC,iCAC7C,CAACC,kCAAc,MAAM,OAAO,GAC3B,6CAAoB;EAAC,GAAG;EAAU;EAAS;EAAO,CAAC,EACpD,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;CACD,MAAMC,SAA2DF,iCAC/D;EAACG,mCAAe;EAAa;EAAQ;EAAQ,EAAC,OAAO,KAAI;EAAC,GACzD,mDAA0B;EAAC,GAAG;EAAU;EAAS,OAAO;EAAK;EAAO,CAAC,EACtE,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;CACD,MAAMC,WAAiDC,qCACpD,IAAY,gDAAuB;EAAC,GAAG;EAAU;EAAS,QAAQ;EAAG,CAAC,QACjE,CAAC,CAACJ,kCAAc,MAAM,CAAC,EAC7B,EAAC,WAAW,WAAU,CACvB;CACD,MAAMK,SAAmED,qCACtE,EAAC,MAAM,QAAQ,MAA0B,gDAAuB;EAAC,GAAG;EAAU;EAAS,SAAS;EAAM,QAAQ;EAAG,CAAC,GAClH,EAAC,QAAQ,SAA6B,CAAC,CAACJ,kCAAc,MAAM,GAAG,EAAE,CAACA,kCAAc,MAAM,CAAC,CACzF;AAED,QACE,2CAACM;EACC,MAAM,KAAK;EACX,QAAQ,OAAO,MAAM;EACrB,WAAW,KAAK;EAChB,yDAC2B,GAAG,KAAK,OAAO,4BAA4B,sDAC3C,GAAG,SAAS,OAAO,mCAAmC,sDACtD,GAAG,OAAO,OAAO,iCAAiC;EAE7E,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,OAAO,GAAG;EACjE,YAAY,OAAO;EACnB,UACE,YAAY,KAAK,QACZ,eACC,KAAK,OAAO,OAAO;GAAC,MAAM;IAAC;IAAY,MAAM,KAAK,KAAM;IAAM,MAAM,KAAK,KAAM;IAAK;GAAE;GAAO,CAAC,GAChG;EAEO;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -1,6 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useGetUsers = require('../../../hooks/management/users/useGetUsers.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
4
5
  const require_BaseUserList = require('./BaseUserList.cjs');
5
6
  let __thunderid_browser = require("@thunderid/browser");
6
7
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -29,11 +30,19 @@ const UserList = ({ filter, limit = 20, preferences, searchable = true, searchAt
29
30
  label: t("admin.users.list.search.email"),
30
31
  value: "email"
31
32
  }];
32
- const { data, error, isLoading } = require_useGetUsers.default({
33
- filter: filter ?? (search ? (0, __thunderid_browser.toEqualityFilter)(search.attribute, search.value) : void 0),
33
+ const endpoint = require_useManagementEndpoint.default("users");
34
+ const queryFilter = filter ?? (search ? (0, __thunderid_browser.toEqualityFilter)(search.attribute, search.value) : void 0);
35
+ const { data, error, isLoading } = require_useResourceQuery.default([__thunderid_browser.UserQueryKeys.USERS, {
36
+ filter: queryFilter,
34
37
  limit,
35
38
  offset
36
- });
39
+ }], (fetcher) => (0, __thunderid_browser.getUsers)({
40
+ ...endpoint,
41
+ fetcher,
42
+ filter: queryFilter,
43
+ limit,
44
+ offset
45
+ }));
37
46
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseUserList.default, {
38
47
  users: data?.users ?? [],
39
48
  totalResults: data?.totalResults,
@@ -1 +1 @@
1
- {"version":3,"file":"UserList.cjs","names":["UserList: FC<UserListProps>","useTranslation","attributes: SelectOption[]","useGetUsers","BaseUserList"],"sources":["../../../../../src/components/admin/UserList/UserList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toEqualityFilter, toManagementErrorMessage, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseUserList, {BaseUserListProps} from './BaseUserList';\nimport {AdminSearchValue} from '../shared/AdminSearch';\nimport useGetUsers from '../../../hooks/management/users/useGetUsers';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type UserListProps = Omit<\n BaseUserListProps,\n 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults' | 'users'\n> & {\n /**\n * Server-side filter expression, for example `username eq \"ada\"`. Hides the search form, since the\n * server takes one expression.\n */\n filter?: string;\n /**\n * Whether to show the search form. The server matches the whole value of the chosen attribute.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the users the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <UserList onSelect={(user) => setSelectedUserId(user.id)} />\n * ```\n */\nconst UserList: FC<UserListProps> = ({\n filter,\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: UserListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [search, setSearch] = useState<AdminSearchValue | null>(null);\n const attributes: SelectOption[] = searchAttributes ?? [\n {label: t('admin.users.list.search.username'), value: 'username'},\n {label: t('admin.users.list.search.email'), value: 'email'},\n ];\n const {data, error, isLoading} = useGetUsers({\n filter: filter ?? (search ? toEqualityFilter(search.attribute, search.value) : undefined),\n limit,\n offset,\n });\n\n return (\n <BaseUserList\n users={data?.users ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.users.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable && !filter\n ? (next: AdminSearchValue | null): void => {\n setSearch(next);\n setOffset(0);\n }\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,MAAMA,YAA+B,EACnC,QACA,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC8B;CACjC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,QAAQ,iCAA+C,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CACrD;EAAC,OAAO,EAAE,mCAAmC;EAAE,OAAO;EAAW,EACjE;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAQ,CAC5D;CACD,MAAM,EAAC,MAAM,OAAO,cAAaC,4BAAY;EAC3C,QAAQ,WAAW,mDAA0B,OAAO,WAAW,OAAO,MAAM,GAAG;EAC/E;EACA;EACD,CAAC;AAEF,QACE,2CAACC;EACC,OAAO,MAAM,SAAS,EAAE;EACxB,cAAc,MAAM;EACT;EACX,yDAAgC,GAAG,OAAO,yBAAyB;EAC5D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cAAc,CAAC,UACV,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,uBAAe"}
1
+ {"version":3,"file":"UserList.cjs","names":["UserList: FC<UserListProps>","useTranslation","attributes: SelectOption[]","endpoint: ManagementEndpoint","useManagementEndpoint","queryFilter: string | undefined","useResourceQuery","UserQueryKeys","BaseUserList"],"sources":["../../../../../src/components/admin/UserList/UserList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ManagedUserListResponse,\n SelectOption,\n UserQueryKeys,\n getUsers,\n toEqualityFilter,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseUserList, {BaseUserListProps} from './BaseUserList';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {AdminSearchValue} from '../shared/AdminSearch';\n\nexport type UserListProps = Omit<\n BaseUserListProps,\n 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults' | 'users'\n> & {\n /**\n * Server-side filter expression, for example `username eq \"ada\"`. Hides the search form, since the\n * server takes one expression.\n */\n filter?: string;\n /**\n * Whether to show the search form. The server matches the whole value of the chosen attribute.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the users the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <UserList onSelect={(user) => setSelectedUserId(user.id)} />\n * ```\n */\nconst UserList: FC<UserListProps> = ({\n filter,\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: UserListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [search, setSearch] = useState<AdminSearchValue | null>(null);\n const attributes: SelectOption[] = searchAttributes ?? [\n {label: t('admin.users.list.search.username'), value: 'username'},\n {label: t('admin.users.list.search.email'), value: 'email'},\n ];\n const endpoint: ManagementEndpoint = useManagementEndpoint('users');\n const queryFilter: string | undefined =\n filter ?? (search ? toEqualityFilter(search.attribute, search.value) : undefined);\n const {data, error, isLoading}: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {filter: queryFilter, limit, offset}],\n (fetcher) => getUsers({...endpoint, fetcher, filter: queryFilter, limit, offset}),\n );\n\n return (\n <BaseUserList\n users={data?.users ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.users.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable && !filter\n ? (next: AdminSearchValue | null): void => {\n setSearch(next);\n setOffset(0);\n }\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default UserList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0CA,MAAMA,YAA+B,EACnC,QACA,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC8B;CACjC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,QAAQ,iCAA+C,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CACrD;EAAC,OAAO,EAAE,mCAAmC;EAAE,OAAO;EAAW,EACjE;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAQ,CAC5D;CACD,MAAMC,WAA+BC,sCAAsB,QAAQ;CACnE,MAAMC,cACJ,WAAW,mDAA0B,OAAO,WAAW,OAAO,MAAM,GAAG;CACzE,MAAM,EAAC,MAAM,OAAO,cAA2DC,iCAC7E,CAACC,kCAAc,OAAO;EAAC,QAAQ;EAAa;EAAO;EAAO,CAAC,GAC1D,8CAAqB;EAAC,GAAG;EAAU;EAAS,QAAQ;EAAa;EAAO;EAAO,CAAC,CAClF;AAED,QACE,2CAACC;EACC,OAAO,MAAM,SAAS,EAAE;EACxB,cAAc,MAAM;EACT;EACX,yDAAgC,GAAG,OAAO,yBAAyB;EAC5D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cAAc,CAAC,UACV,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,uBAAe"}
@@ -0,0 +1,62 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
+ const require_Checkbox = require('../../primitives/Checkbox/Checkbox.cjs');
4
+ const require_TextField = require('../../primitives/TextField/TextField.cjs');
5
+ const require_useAdminPartStyles = require('./useAdminPartStyles.cjs');
6
+ let __thunderid_browser = require("@thunderid/browser");
7
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
10
+
11
+ //#region src/components/admin/shared/ApplicationFormFields.tsx
12
+ /**
13
+ * The general fields and OAuth basics of an application, shared by the create form and the edit form.
14
+ */
15
+ const ApplicationFormFields = ({ onGrantTypesChange, onInputChange, onPublicClientChange, preferences, values }) => {
16
+ const styles = require_useAdminPartStyles.default();
17
+ const { t } = require_useTranslation.default(preferences?.i18n);
18
+ const text = (field, label, extra = {}) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TextField.default, {
19
+ name: field,
20
+ label,
21
+ value: values[field],
22
+ autoComplete: "off",
23
+ onChange: (event) => onInputChange(field, event.target.value),
24
+ ...extra
25
+ });
26
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
27
+ text("name", t("admin.applications.fields.name"), { required: true }),
28
+ text("description", t("admin.applications.fields.description")),
29
+ text("url", t("admin.applications.fields.url")),
30
+ text("logoUrl", t("admin.applications.fields.logo_url")),
31
+ text("redirectUris", t("admin.applications.fields.redirect_uris"), { helperText: t("admin.applications.fields.redirect_uris_hint") }),
32
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("fieldset", {
33
+ className: styles["row"],
34
+ style: {
35
+ border: 0,
36
+ flexWrap: "wrap",
37
+ margin: 0,
38
+ padding: 0
39
+ },
40
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("legend", {
41
+ className: styles["muted"],
42
+ children: t("admin.applications.fields.grant_types")
43
+ }), __thunderid_browser.APPLICATION_GRANT_TYPES.map((grantType) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Checkbox.default, {
44
+ name: `grantType-${grantType}`,
45
+ label: t(`admin.applications.grant_types.${grantType}`),
46
+ checked: values.grantTypes.includes(grantType),
47
+ onChange: (event) => onGrantTypesChange(event.target.checked ? [...values.grantTypes, grantType] : values.grantTypes.filter((value) => value !== grantType))
48
+ }, grantType))]
49
+ }),
50
+ onPublicClientChange && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Checkbox.default, {
51
+ name: "publicClient",
52
+ label: t("admin.applications.fields.public_client"),
53
+ checked: values.publicClient,
54
+ onChange: (event) => onPublicClientChange(event.target.checked)
55
+ })
56
+ ] });
57
+ };
58
+ var ApplicationFormFields_default = ApplicationFormFields;
59
+
60
+ //#endregion
61
+ exports.default = ApplicationFormFields_default;
62
+ //# sourceMappingURL=ApplicationFormFields.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationFormFields.cjs","names":["ApplicationFormFields: FC<ApplicationFormFieldsProps>","styles: Record<string, string>","useAdminPartStyles","useTranslation","TextField","APPLICATION_GRANT_TYPES","Checkbox"],"sources":["../../../../../src/components/admin/shared/ApplicationFormFields.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {APPLICATION_GRANT_TYPES, Preferences} from '@thunderid/browser';\nimport {ChangeEvent, FC, ReactElement} from 'react';\nimport useAdminPartStyles from './useAdminPartStyles';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Checkbox from '../../primitives/Checkbox/Checkbox';\nimport TextField from '../../primitives/TextField/TextField';\n\n/**\n * The text fields of the application forms.\n */\nexport type ApplicationTextField = 'description' | 'logoUrl' | 'name' | 'redirectUris' | 'url';\n\n/**\n * The values of the application forms. `redirectUris` is the text of the field, URIs separated by\n * commas.\n */\nexport interface ApplicationFormValues {\n description: string;\n grantTypes: string[];\n logoUrl: string;\n name: string;\n publicClient: boolean;\n redirectUris: string;\n url: string;\n}\n\nexport interface ApplicationFormFieldsProps {\n onGrantTypesChange: (grantTypes: string[]) => void;\n onInputChange: (field: ApplicationTextField, value: string) => void;\n /**\n * Shows the public client choice. Omit it where the client type cannot change.\n */\n onPublicClientChange?: (publicClient: boolean) => void;\n preferences?: Preferences;\n values: ApplicationFormValues;\n}\n\n/**\n * The general fields and OAuth basics of an application, shared by the create form and the edit form.\n */\nconst ApplicationFormFields: FC<ApplicationFormFieldsProps> = ({\n onGrantTypesChange,\n onInputChange,\n onPublicClientChange,\n preferences,\n values,\n}: ApplicationFormFieldsProps): ReactElement => {\n const styles: Record<string, string> = useAdminPartStyles();\n const {t} = useTranslation(preferences?.i18n);\n\n const text = (field: ApplicationTextField, label: string, extra: {helperText?: string; required?: boolean} = {}) => (\n <TextField\n name={field}\n label={label}\n value={values[field]}\n autoComplete=\"off\"\n onChange={(event: ChangeEvent<HTMLInputElement>): void => onInputChange(field, event.target.value)}\n {...extra}\n />\n );\n\n return (\n <>\n {text('name', t('admin.applications.fields.name'), {required: true})}\n {text('description', t('admin.applications.fields.description'))}\n {text('url', t('admin.applications.fields.url'))}\n {text('logoUrl', t('admin.applications.fields.logo_url'))}\n {text('redirectUris', t('admin.applications.fields.redirect_uris'), {\n helperText: t('admin.applications.fields.redirect_uris_hint'),\n })}\n <fieldset className={styles['row']} style={{border: 0, flexWrap: 'wrap', margin: 0, padding: 0}}>\n <legend className={styles['muted']}>{t('admin.applications.fields.grant_types')}</legend>\n {APPLICATION_GRANT_TYPES.map((grantType: string) => (\n <Checkbox\n key={grantType}\n name={`grantType-${grantType}`}\n label={t(`admin.applications.grant_types.${grantType}`)}\n checked={values.grantTypes.includes(grantType)}\n onChange={(event: ChangeEvent<HTMLInputElement>): void =>\n onGrantTypesChange(\n event.target.checked\n ? [...values.grantTypes, grantType]\n : values.grantTypes.filter((value: string) => value !== grantType),\n )\n }\n />\n ))}\n </fieldset>\n {onPublicClientChange && (\n <Checkbox\n name=\"publicClient\"\n label={t('admin.applications.fields.public_client')}\n checked={values.publicClient}\n onChange={(event: ChangeEvent<HTMLInputElement>): void => onPublicClientChange(event.target.checked)}\n />\n )}\n </>\n );\n};\n\nexport default ApplicationFormFields;\n"],"mappings":";;;;;;;;;;;;;;AA2CA,MAAMA,yBAAyD,EAC7D,oBACA,eACA,sBACA,aACA,aAC8C;CAC9C,MAAMC,SAAiCC,oCAAoB;CAC3D,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAE7C,MAAM,QAAQ,OAA6B,OAAe,QAAmD,EAAE,KAC7G,2CAACC;EACC,MAAM;EACC;EACP,OAAO,OAAO;EACd,cAAa;EACb,WAAW,UAA+C,cAAc,OAAO,MAAM,OAAO,MAAM;EAClG,GAAI;GACJ;AAGJ,QACE;EACG,KAAK,QAAQ,EAAE,iCAAiC,EAAE,EAAC,UAAU,MAAK,CAAC;EACnE,KAAK,eAAe,EAAE,wCAAwC,CAAC;EAC/D,KAAK,OAAO,EAAE,gCAAgC,CAAC;EAC/C,KAAK,WAAW,EAAE,qCAAqC,CAAC;EACxD,KAAK,gBAAgB,EAAE,0CAA0C,EAAE,EAClE,YAAY,EAAE,+CAA+C,EAC9D,CAAC;EACF,4CAAC;GAAS,WAAW,OAAO;GAAQ,OAAO;IAAC,QAAQ;IAAG,UAAU;IAAQ,QAAQ;IAAG,SAAS;IAAE;cAC7F,2CAAC;IAAO,WAAW,OAAO;cAAW,EAAE,wCAAwC;KAAU,EACxFC,4CAAwB,KAAK,cAC5B,2CAACC;IAEC,MAAM,aAAa;IACnB,OAAO,EAAE,kCAAkC,YAAY;IACvD,SAAS,OAAO,WAAW,SAAS,UAAU;IAC9C,WAAW,UACT,mBACE,MAAM,OAAO,UACT,CAAC,GAAG,OAAO,YAAY,UAAU,GACjC,OAAO,WAAW,QAAQ,UAAkB,UAAU,UAAU,CACrE;MATE,UAWL,CACF;IACO;EACV,wBACC,2CAACA;GACC,MAAK;GACL,OAAO,EAAE,0CAA0C;GACnD,SAAS,OAAO;GAChB,WAAW,UAA+C,qBAAqB,MAAM,OAAO,QAAQ;IACpG;KAEH;;AAIP,oCAAe"}