@keycloak/keycloak-admin-ui 26.6.4 → 26.7.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 (662) hide show
  1. package/README.md +8 -7
  2. package/lib/.vite/manifest.json +50 -40
  3. package/lib/AddDefaultTrust-CIDpOpCo.js +73 -0
  4. package/lib/AddDefaultTrust-CIDpOpCo.js.map +1 -0
  5. package/lib/{AddJWTAuthorizationGrant-DqPhhF38.js → AddJWTAuthorizationGrant-BgC2MDWX.js} +7 -7
  6. package/lib/AddJWTAuthorizationGrant-BgC2MDWX.js.map +1 -0
  7. package/lib/{AddKubernetesConnect-6pi5IZkX.js → AddKubernetesConnect-2L-iVII5.js} +4 -4
  8. package/lib/AddKubernetesConnect-2L-iVII5.js.map +1 -0
  9. package/lib/{AddOAuth2-CUxwjZMH.js → AddOAuth2-RMwZ4rqo.js} +15 -15
  10. package/lib/{AddOAuth2-CUxwjZMH.js.map → AddOAuth2-RMwZ4rqo.js.map} +1 -1
  11. package/lib/{AddSpiffeConnect-BaeRBOpT.js → AddSpiffeConnect-6cPYodPJ.js} +8 -8
  12. package/lib/AddSpiffeConnect-6cPYodPJ.js.map +1 -0
  13. package/lib/CreateFlow-DpteR8S0.js +75 -0
  14. package/lib/CreateFlow-DpteR8S0.js.map +1 -0
  15. package/lib/{DetailOrganization-BhzOXIQr.js → DetailOrganization-Cruzimnp.js} +3 -3
  16. package/lib/DetailOrganization-Cruzimnp.js.map +1 -0
  17. package/lib/{ExecutorForm-yhz9k63h.js → ExecutorForm-D-vuza2K.js} +15 -15
  18. package/lib/{ExecutorForm-yhz9k63h.js.map → ExecutorForm-D-vuza2K.js.map} +1 -1
  19. package/lib/{FlowDetails-C37YxNl7.js → FlowDetails-D064vIOd.js} +4 -2
  20. package/lib/{FlowDetails-C37YxNl7.js.map → FlowDetails-D064vIOd.js.map} +1 -1
  21. package/lib/NewOrganization-CA2tQ9tT.js +44 -0
  22. package/lib/NewOrganization-CA2tQ9tT.js.map +1 -0
  23. package/lib/{PermissionConfigurationDetails-BBdkuzXV.js → PermissionConfigurationDetails-kVjqdhoR.js} +199 -192
  24. package/lib/PermissionConfigurationDetails-kVjqdhoR.js.map +1 -0
  25. package/lib/{PermissionDetails-DYYwjTou.js → PermissionDetails-D3stWiPT.js} +37 -37
  26. package/lib/{PermissionDetails-DYYwjTou.js.map → PermissionDetails-D3stWiPT.js.map} +1 -1
  27. package/lib/RealmSection-C9novYiZ.js +181 -0
  28. package/lib/RealmSection-C9novYiZ.js.map +1 -0
  29. package/lib/{ResourceDetails-BqEkqCCk.js → ResourceDetails-DP6BvER1.js} +9 -9
  30. package/lib/{ResourceDetails-BqEkqCCk.js.map → ResourceDetails-DP6BvER1.js.map} +1 -1
  31. package/lib/{ScopeDetails-Cv51TSqT.js → ScopeDetails-BvnOpPxf.js} +39 -43
  32. package/lib/ScopeDetails-BvnOpPxf.js.map +1 -0
  33. package/lib/{ScopePicker-BaDxbnFl.js → ScopePicker-ggXUe0mk.js} +2 -2
  34. package/lib/{ScopePicker-BaDxbnFl.js.map → ScopePicker-ggXUe0mk.js.map} +1 -1
  35. package/lib/{WorkflowDetailForm-D7PjEzBh.js → WorkflowDetailForm-DPQbnCkT.js} +20 -20
  36. package/lib/{WorkflowDetailForm-D7PjEzBh.js.map → WorkflowDetailForm-DPQbnCkT.js.map} +1 -1
  37. package/lib/{WorkflowsSection-DMzX6bOK.js → WorkflowsSection-0ja4P56K.js} +17 -17
  38. package/lib/{WorkflowsSection-DMzX6bOK.js.map → WorkflowsSection-0ja4P56K.js.map} +1 -1
  39. package/lib/{admin-client.d.ts → apps/admin-ui/src/admin-client.d.ts} +3 -1
  40. package/lib/apps/admin-ui/src/authentication/policies/Policies.d.ts +6 -0
  41. package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/details/oid4vciAttributes.d.ts +1 -1
  42. package/lib/{clients → apps/admin-ui/src/clients}/credentials/ClientSecret.d.ts +2 -1
  43. package/lib/{clients → apps/admin-ui/src/clients}/routes/Client.d.ts +1 -1
  44. package/lib/apps/admin-ui/src/clients/routes/ClientSsfTab.d.ts +15 -0
  45. package/lib/{clients → apps/admin-ui/src/clients}/scopes/DedicatedScope.d.ts +2 -1
  46. package/lib/apps/admin-ui/src/clients/ssf/SsfTab.d.ts +14 -0
  47. package/lib/apps/admin-ui/src/clients/ssf/tabs/EmitEventsTab.d.ts +8 -0
  48. package/lib/apps/admin-ui/src/clients/ssf/tabs/EventSearchTab.d.ts +5 -0
  49. package/lib/apps/admin-ui/src/clients/ssf/tabs/ReceiverTab.d.ts +16 -0
  50. package/lib/apps/admin-ui/src/clients/ssf/tabs/StreamTab.d.ts +32 -0
  51. package/lib/apps/admin-ui/src/clients/ssf/tabs/SubjectsTab.d.ts +5 -0
  52. package/lib/{components → apps/admin-ui/src/components}/client-scope/ClientScopeTypes.d.ts +4 -2
  53. package/lib/apps/admin-ui/src/components/dynamic/MultivaluedListComponent.d.ts +7 -0
  54. package/lib/{components → apps/admin-ui/src/components}/identity-provider/IdentityProviderSelect.d.ts +2 -4
  55. package/lib/{components → apps/admin-ui/src/components}/key-value-form/KeyValueInput.d.ts +2 -1
  56. package/lib/{components → apps/admin-ui/src/components}/role-mapping/AddRoleMappingModal.d.ts +2 -1
  57. package/lib/{components → apps/admin-ui/src/components}/role-mapping/RoleMapping.d.ts +2 -1
  58. package/lib/{components → apps/admin-ui/src/components}/role-mapping/queries.d.ts +2 -2
  59. package/lib/apps/admin-ui/src/components/settings-shortcut/SettingsShortcut.d.ts +7 -0
  60. package/lib/{components → apps/admin-ui/src/components}/time-selector/TimeSelectorControl.d.ts +2 -1
  61. package/lib/{components → apps/admin-ui/src/components}/view-header/ViewHeader.d.ts +2 -1
  62. package/lib/{context → apps/admin-ui/src/context}/realm-context/RealmContext.d.ts +1 -1
  63. package/lib/{environment.d.ts → apps/admin-ui/src/environment-types.d.ts} +0 -1
  64. package/lib/apps/admin-ui/src/environment.d.ts +2 -0
  65. package/lib/apps/admin-ui/src/identity-providers/add/AddDefaultTrust.d.ts +1 -0
  66. package/lib/apps/admin-ui/src/identity-providers/add/DefaultTrustSettings.d.ts +1 -0
  67. package/lib/apps/admin-ui/src/identity-providers/routes/IdentityProviderDefaultTrust.d.ts +7 -0
  68. package/lib/{index.d.ts → apps/admin-ui/src/index.d.ts} +2 -2
  69. package/lib/apps/admin-ui/src/realm-settings/ssf/SsfTransmitterDisableConfirmDialog.d.ts +36 -0
  70. package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/QuickTheme.d.ts +2 -2
  71. package/lib/apps/admin-ui/src/realm-settings/user-profile/attribute/AttributeScimSettings.d.ts +2 -0
  72. package/lib/{routes.d.ts → apps/admin-ui/src/routes.d.ts} +2 -3
  73. package/lib/apps/admin-ui/src/user/UserVerifiableCredentials.d.ts +6 -0
  74. package/lib/{user → apps/admin-ui/src/user}/routes/User.d.ts +1 -1
  75. package/lib/apps/admin-ui/src/user/verifiable-credentials/CreateVerifiableCredentialModal.d.ts +7 -0
  76. package/lib/apps/admin-ui/src/user/verifiable-credentials/IssuedCredentialsDetailCell.d.ts +7 -0
  77. package/lib/apps/admin-ui/src/user/verifiable-credentials/UserAttributesDialog.d.ts +7 -0
  78. package/lib/apps/admin-ui/src/user/verifiable-credentials/UserVerifiableCredentialOfferDialog.d.ts +8 -0
  79. package/lib/{util.d.ts → apps/admin-ui/src/util.d.ts} +2 -0
  80. package/lib/{utils → apps/admin-ui/src/utils}/client-url.d.ts +1 -1
  81. package/lib/{utils → apps/admin-ui/src/utils}/useIsFeatureEnabled.d.ts +3 -1
  82. package/lib/{index-DBABpj90.js → index-CAGzl0JA.js} +36558 -32282
  83. package/lib/{index-DBABpj90.js.map → index-CAGzl0JA.js.map} +1 -1
  84. package/lib/keycloak-admin-ui.css +1 -1
  85. package/lib/keycloak-admin-ui.d.ts +1 -1
  86. package/lib/keycloak-admin-ui.js +270 -268
  87. package/package.json +8 -9
  88. package/lib/AddJWTAuthorizationGrant-DqPhhF38.js.map +0 -1
  89. package/lib/AddKubernetesConnect-6pi5IZkX.js.map +0 -1
  90. package/lib/AddSpiffeConnect-BaeRBOpT.js.map +0 -1
  91. package/lib/CreateFlow-BUride4E.js +0 -80
  92. package/lib/CreateFlow-BUride4E.js.map +0 -1
  93. package/lib/DetailOrganization-BhzOXIQr.js.map +0 -1
  94. package/lib/NewOrganization-DPZ36PF-.js +0 -36
  95. package/lib/NewOrganization-DPZ36PF-.js.map +0 -1
  96. package/lib/PermissionConfigurationDetails-BBdkuzXV.js.map +0 -1
  97. package/lib/RealmSection-CpoLaw8V.js +0 -179
  98. package/lib/RealmSection-CpoLaw8V.js.map +0 -1
  99. package/lib/ScopeDetails-Cv51TSqT.js.map +0 -1
  100. package/lib/authentication/policies/Policies.d.ts +0 -1
  101. package/lib/components/dynamic/MultivaluedListComponent.d.ts +0 -7
  102. package/lib/realm-settings/themes/LoginThemeProperties.d.ts +0 -63
  103. /package/lib/{App.d.ts → apps/admin-ui/src/App.d.ts} +0 -0
  104. /package/lib/{Banners.d.ts → apps/admin-ui/src/Banners.d.ts} +0 -0
  105. /package/lib/{ForbiddenSection.d.ts → apps/admin-ui/src/ForbiddenSection.d.ts} +0 -0
  106. /package/lib/{PageHeader.d.ts → apps/admin-ui/src/PageHeader.d.ts} +0 -0
  107. /package/lib/{PageHeaderClearCachesModal.d.ts → apps/admin-ui/src/PageHeaderClearCachesModal.d.ts} +0 -0
  108. /package/lib/{PageNav.d.ts → apps/admin-ui/src/PageNav.d.ts} +0 -0
  109. /package/lib/{PageNotFoundSection.d.ts → apps/admin-ui/src/PageNotFoundSection.d.ts} +0 -0
  110. /package/lib/{Root.d.ts → apps/admin-ui/src/Root.d.ts} +0 -0
  111. /package/lib/{authentication → apps/admin-ui/src/authentication}/AuthenticationSection.d.ts +0 -0
  112. /package/lib/{authentication → apps/admin-ui/src/authentication}/BindFlowDialog.d.ts +0 -0
  113. /package/lib/{authentication → apps/admin-ui/src/authentication}/BuildInLabel.d.ts +0 -0
  114. /package/lib/{authentication → apps/admin-ui/src/authentication}/DuplicateFlowModal.d.ts +0 -0
  115. /package/lib/{authentication → apps/admin-ui/src/authentication}/EditFlowModal.d.ts +0 -0
  116. /package/lib/{authentication → apps/admin-ui/src/authentication}/EmptyExecutionState.d.ts +0 -0
  117. /package/lib/{authentication → apps/admin-ui/src/authentication}/FlowDetails.d.ts +0 -0
  118. /package/lib/{authentication → apps/admin-ui/src/authentication}/RequiredActions.d.ts +0 -0
  119. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/AddFlowDropdown.d.ts +0 -0
  120. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/AuthenticationProviderContext.d.ts +0 -0
  121. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/DraggableTable.d.ts +0 -0
  122. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/EditFlow.d.ts +0 -0
  123. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/ExecutionConfigModal.d.ts +0 -0
  124. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/FlowDiagram.d.ts +0 -0
  125. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/FlowHeader.d.ts +0 -0
  126. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/FlowRequirementDropdown.d.ts +0 -0
  127. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/FlowRow.d.ts +0 -0
  128. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/FlowTitle.d.ts +0 -0
  129. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/RequiredActionConfigModal.d.ts +0 -0
  130. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/UsedBy.d.ts +0 -0
  131. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/diagram/ButtonEdge.d.ts +0 -0
  132. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/diagram/ConditionalNode.d.ts +0 -0
  133. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/diagram/SubFlowNode.d.ts +0 -0
  134. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/diagram/auto-layout.d.ts +0 -0
  135. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/modals/AddStepModal.d.ts +0 -0
  136. /package/lib/{authentication → apps/admin-ui/src/authentication}/components/modals/AddSubFlowModal.d.ts +0 -0
  137. /package/lib/{authentication → apps/admin-ui/src/authentication}/constants.d.ts +0 -0
  138. /package/lib/{authentication → apps/admin-ui/src/authentication}/execution-model.d.ts +0 -0
  139. /package/lib/{authentication → apps/admin-ui/src/authentication}/form/CreateFlow.d.ts +0 -0
  140. /package/lib/{authentication → apps/admin-ui/src/authentication}/form/NameDescription.d.ts +0 -0
  141. /package/lib/{authentication → apps/admin-ui/src/authentication}/policies/CibaPolicy.d.ts +0 -0
  142. /package/lib/{authentication → apps/admin-ui/src/authentication}/policies/OtpPolicy.d.ts +0 -0
  143. /package/lib/{authentication → apps/admin-ui/src/authentication}/policies/PasswordPolicy.d.ts +0 -0
  144. /package/lib/{authentication → apps/admin-ui/src/authentication}/policies/PolicyRow.d.ts +0 -0
  145. /package/lib/{authentication → apps/admin-ui/src/authentication}/policies/WebauthnPolicy.d.ts +0 -0
  146. /package/lib/{authentication → apps/admin-ui/src/authentication}/policies/util.d.ts +0 -0
  147. /package/lib/{authentication → apps/admin-ui/src/authentication}/routes/Authentication.d.ts +0 -0
  148. /package/lib/{authentication → apps/admin-ui/src/authentication}/routes/CreateFlow.d.ts +0 -0
  149. /package/lib/{authentication → apps/admin-ui/src/authentication}/routes/Flow.d.ts +0 -0
  150. /package/lib/{authentication → apps/admin-ui/src/authentication}/routes.d.ts +0 -0
  151. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/ChangeTypeDropdown.d.ts +0 -0
  152. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/ClientScopesSection.d.ts +0 -0
  153. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/CreateClientScope.d.ts +0 -0
  154. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/EditClientScope.d.ts +0 -0
  155. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/add/MapperDialog.d.ts +0 -0
  156. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/details/MapperList.d.ts +0 -0
  157. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/details/MappingDetails.d.ts +0 -0
  158. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/details/ScopeForm.d.ts +0 -0
  159. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/details/SearchFilter.d.ts +0 -0
  160. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/routes/ClientScope.d.ts +0 -0
  161. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/routes/ClientScopes.d.ts +0 -0
  162. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/routes/Mapper.d.ts +0 -0
  163. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/routes/NewClientScope.d.ts +0 -0
  164. /package/lib/{client-scopes → apps/admin-ui/src/client-scopes}/routes.d.ts +0 -0
  165. /package/lib/{clients → apps/admin-ui/src/clients}/AdvancedTab.d.ts +0 -0
  166. /package/lib/{clients → apps/admin-ui/src/clients}/ClientDescription.d.ts +0 -0
  167. /package/lib/{clients → apps/admin-ui/src/clients}/ClientDetails.d.ts +0 -0
  168. /package/lib/{clients → apps/admin-ui/src/clients}/ClientSessions.d.ts +0 -0
  169. /package/lib/{clients → apps/admin-ui/src/clients}/ClientSettings.d.ts +0 -0
  170. /package/lib/{clients → apps/admin-ui/src/clients}/ClientsSection.d.ts +0 -0
  171. /package/lib/{clients → apps/admin-ui/src/clients}/add/AccessSettings.d.ts +0 -0
  172. /package/lib/{clients → apps/admin-ui/src/clients}/add/CapabilityConfig.d.ts +0 -0
  173. /package/lib/{clients → apps/admin-ui/src/clients}/add/GeneralSettings.d.ts +0 -0
  174. /package/lib/{clients → apps/admin-ui/src/clients}/add/LoginSettings.d.ts +0 -0
  175. /package/lib/{clients → apps/admin-ui/src/clients}/add/LoginSettingsPanel.d.ts +0 -0
  176. /package/lib/{clients → apps/admin-ui/src/clients}/add/LogoutPanel.d.ts +0 -0
  177. /package/lib/{clients → apps/admin-ui/src/clients}/add/NewClientForm.d.ts +0 -0
  178. /package/lib/{clients → apps/admin-ui/src/clients}/add/SamlConfig.d.ts +0 -0
  179. /package/lib/{clients → apps/admin-ui/src/clients}/add/SamlEncryption.d.ts +0 -0
  180. /package/lib/{clients → apps/admin-ui/src/clients}/add/SamlSignature.d.ts +0 -0
  181. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/AddHostDialog.d.ts +0 -0
  182. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/AdvancedSettings.d.ts +0 -0
  183. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/ApplicationUrls.d.ts +0 -0
  184. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/AuthenticationOverrides.d.ts +0 -0
  185. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/ClusteringPanel.d.ts +0 -0
  186. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/FineGrainOpenIdConnect.d.ts +0 -0
  187. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/FineGrainSamlEndpointConfig.d.ts +0 -0
  188. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/OpenIdConnectCompatibilityModes.d.ts +0 -0
  189. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/OpenIdVerifiableCredentials.d.ts +0 -0
  190. /package/lib/{clients → apps/admin-ui/src/clients}/advanced/TokenLifespan.d.ts +0 -0
  191. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/AuthorizationDataModal.d.ts +0 -0
  192. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/AuthorizationEvaluate.d.ts +0 -0
  193. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/AuthorizationEvaluateResource.d.ts +0 -0
  194. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/AuthorizationEvaluateResourcePolicies.d.ts +0 -0
  195. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/AuthorizationExport.d.ts +0 -0
  196. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/DecisionStrategySelect.d.ts +0 -0
  197. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/DeleteScopeDialog.d.ts +0 -0
  198. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/DetailCell.d.ts +0 -0
  199. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/DetailDescription.d.ts +0 -0
  200. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/EmptyPermissionsState.d.ts +0 -0
  201. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/ImportDialog.d.ts +0 -0
  202. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/KeyBasedAttributeInput.d.ts +0 -0
  203. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/MoreLabel.d.ts +0 -0
  204. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/NewPolicyDialog.d.ts +0 -0
  205. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/PermissionDetails.d.ts +0 -0
  206. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/Permissions.d.ts +0 -0
  207. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/Policies.d.ts +0 -0
  208. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/ResourceDetails.d.ts +0 -0
  209. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/Resources.d.ts +0 -0
  210. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/ResourcesPolicySelect.d.ts +0 -0
  211. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/ScopeDetails.d.ts +0 -0
  212. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/ScopePicker.d.ts +0 -0
  213. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/ScopeSelect.d.ts +0 -0
  214. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/Scopes.d.ts +0 -0
  215. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/SearchDropdown.d.ts +0 -0
  216. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/Settings.d.ts +0 -0
  217. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/evaluate/Results.d.ts +0 -0
  218. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/Aggregate.d.ts +0 -0
  219. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/Client.d.ts +0 -0
  220. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/ClientScope.d.ts +0 -0
  221. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/Group.d.ts +0 -0
  222. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/JavaScript.d.ts +0 -0
  223. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/LogicSelector.d.ts +0 -0
  224. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/NameDescription.d.ts +0 -0
  225. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/PolicyDetails.d.ts +0 -0
  226. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/Regex.d.ts +0 -0
  227. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/Role.d.ts +0 -0
  228. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/Time.d.ts +0 -0
  229. /package/lib/{clients → apps/admin-ui/src/clients}/authorization/policy/User.d.ts +0 -0
  230. /package/lib/{clients → apps/admin-ui/src/clients}/constants.d.ts +0 -0
  231. /package/lib/{clients → apps/admin-ui/src/clients}/credentials/Credentials.d.ts +0 -0
  232. /package/lib/{clients → apps/admin-ui/src/clients}/credentials/SignedJWT.d.ts +0 -0
  233. /package/lib/{clients → apps/admin-ui/src/clients}/credentials/X509.d.ts +0 -0
  234. /package/lib/{clients → apps/admin-ui/src/clients}/import/ImportForm.d.ts +0 -0
  235. /package/lib/{clients → apps/admin-ui/src/clients}/initial-access/AccessTokenDialog.d.ts +0 -0
  236. /package/lib/{clients → apps/admin-ui/src/clients}/initial-access/CreateInitialAccessToken.d.ts +0 -0
  237. /package/lib/{clients → apps/admin-ui/src/clients}/initial-access/InitialAccessTokenList.d.ts +0 -0
  238. /package/lib/{clients → apps/admin-ui/src/clients}/keys/Certificate.d.ts +0 -0
  239. /package/lib/{clients → apps/admin-ui/src/clients}/keys/ExportSamlKeyDialog.d.ts +0 -0
  240. /package/lib/{clients → apps/admin-ui/src/clients}/keys/GenerateKeyDialog.d.ts +0 -0
  241. /package/lib/{clients → apps/admin-ui/src/clients}/keys/ImportKeyDialog.d.ts +0 -0
  242. /package/lib/{clients → apps/admin-ui/src/clients}/keys/Keys.d.ts +0 -0
  243. /package/lib/{clients → apps/admin-ui/src/clients}/keys/SamlImportKeyDialog.d.ts +0 -0
  244. /package/lib/{clients → apps/admin-ui/src/clients}/keys/SamlKeys.d.ts +0 -0
  245. /package/lib/{clients → apps/admin-ui/src/clients}/keys/SamlKeysDialog.d.ts +0 -0
  246. /package/lib/{clients → apps/admin-ui/src/clients}/keys/StoreSettings.d.ts +0 -0
  247. /package/lib/{clients → apps/admin-ui/src/clients}/registration/AddProviderDialog.d.ts +0 -0
  248. /package/lib/{clients → apps/admin-ui/src/clients}/registration/ClientRegistration.d.ts +0 -0
  249. /package/lib/{clients → apps/admin-ui/src/clients}/registration/ClientRegistrationList.d.ts +0 -0
  250. /package/lib/{clients → apps/admin-ui/src/clients}/registration/DetailProvider.d.ts +0 -0
  251. /package/lib/{clients → apps/admin-ui/src/clients}/roles/CreateClientRole.d.ts +0 -0
  252. /package/lib/{clients → apps/admin-ui/src/clients}/routes/AddClient.d.ts +0 -0
  253. /package/lib/{clients → apps/admin-ui/src/clients}/routes/AddRegistrationProvider.d.ts +0 -0
  254. /package/lib/{clients → apps/admin-ui/src/clients}/routes/AuthenticationTab.d.ts +0 -0
  255. /package/lib/{clients → apps/admin-ui/src/clients}/routes/ClientRegistration.d.ts +0 -0
  256. /package/lib/{clients → apps/admin-ui/src/clients}/routes/ClientRole.d.ts +0 -0
  257. /package/lib/{clients → apps/admin-ui/src/clients}/routes/ClientScopeTab.d.ts +0 -0
  258. /package/lib/{clients → apps/admin-ui/src/clients}/routes/Clients.d.ts +0 -0
  259. /package/lib/{clients → apps/admin-ui/src/clients}/routes/CreateInitialAccessToken.d.ts +0 -0
  260. /package/lib/{clients → apps/admin-ui/src/clients}/routes/DedicatedScopeDetails.d.ts +0 -0
  261. /package/lib/{clients → apps/admin-ui/src/clients}/routes/ImportClient.d.ts +0 -0
  262. /package/lib/{clients → apps/admin-ui/src/clients}/routes/Mapper.d.ts +0 -0
  263. /package/lib/{clients → apps/admin-ui/src/clients}/routes/NewPermission.d.ts +0 -0
  264. /package/lib/{clients → apps/admin-ui/src/clients}/routes/NewPolicy.d.ts +0 -0
  265. /package/lib/{clients → apps/admin-ui/src/clients}/routes/NewResource.d.ts +0 -0
  266. /package/lib/{clients → apps/admin-ui/src/clients}/routes/NewRole.d.ts +0 -0
  267. /package/lib/{clients → apps/admin-ui/src/clients}/routes/NewScope.d.ts +0 -0
  268. /package/lib/{clients → apps/admin-ui/src/clients}/routes/PermissionConfigurationDetails.d.ts +0 -0
  269. /package/lib/{clients → apps/admin-ui/src/clients}/routes/PermissionDetails.d.ts +0 -0
  270. /package/lib/{clients → apps/admin-ui/src/clients}/routes/PolicyDetails.d.ts +0 -0
  271. /package/lib/{clients → apps/admin-ui/src/clients}/routes/Resource.d.ts +0 -0
  272. /package/lib/{clients → apps/admin-ui/src/clients}/routes/Scope.d.ts +0 -0
  273. /package/lib/{clients → apps/admin-ui/src/clients}/routes.d.ts +0 -0
  274. /package/lib/{clients → apps/admin-ui/src/clients}/scopes/AddScopeDialog.d.ts +0 -0
  275. /package/lib/{clients → apps/admin-ui/src/clients}/scopes/ClientScopes.d.ts +0 -0
  276. /package/lib/{clients → apps/admin-ui/src/clients}/scopes/DedicatedScopes.d.ts +0 -0
  277. /package/lib/{clients → apps/admin-ui/src/clients}/scopes/EvaluateScopes.d.ts +0 -0
  278. /package/lib/{clients → apps/admin-ui/src/clients}/scopes/GeneratedCodeTab.d.ts +0 -0
  279. /package/lib/{clients → apps/admin-ui/src/clients}/service-account/ServiceAccount.d.ts +0 -0
  280. /package/lib/{clients → apps/admin-ui/src/clients}/utils.d.ts +0 -0
  281. /package/lib/{components → apps/admin-ui/src/components}/SwitchControl.d.ts +0 -0
  282. /package/lib/{components → apps/admin-ui/src/components}/bread-crumb/GroupBreadCrumbs.d.ts +0 -0
  283. /package/lib/{components → apps/admin-ui/src/components}/bread-crumb/PageBreadCrumbs.d.ts +0 -0
  284. /package/lib/{components → apps/admin-ui/src/components}/client/ClientSelect.d.ts +0 -0
  285. /package/lib/{components → apps/admin-ui/src/components}/confirm-dialog/ConfirmDialog.d.ts +0 -0
  286. /package/lib/{components → apps/admin-ui/src/components}/copy-to-clipboard-button/CopyToClipboardButton.d.ts +0 -0
  287. /package/lib/{components → apps/admin-ui/src/components}/download-dialog/DownloadDialog.d.ts +0 -0
  288. /package/lib/{components → apps/admin-ui/src/components}/dropdown-panel/DropdownPanel.d.ts +0 -0
  289. /package/lib/{components → apps/admin-ui/src/components}/dynamic/BooleanComponent.d.ts +0 -0
  290. /package/lib/{components → apps/admin-ui/src/components}/dynamic/CheckboxFilterComponent.d.ts +0 -0
  291. /package/lib/{components → apps/admin-ui/src/components}/dynamic/ClaimDisplayComponent.d.ts +0 -0
  292. /package/lib/{components → apps/admin-ui/src/components}/dynamic/ClientSelectComponent.d.ts +0 -0
  293. /package/lib/{components → apps/admin-ui/src/components}/dynamic/DynamicComponents.d.ts +0 -0
  294. /package/lib/{components → apps/admin-ui/src/components}/dynamic/FileComponent.d.ts +0 -0
  295. /package/lib/{components → apps/admin-ui/src/components}/dynamic/GroupComponent.d.ts +0 -0
  296. /package/lib/{components → apps/admin-ui/src/components}/dynamic/IdentityProviderMultiSelectComponent.d.ts +0 -0
  297. /package/lib/{components → apps/admin-ui/src/components}/dynamic/IntComponent.d.ts +0 -0
  298. /package/lib/{components → apps/admin-ui/src/components}/dynamic/ListComponent.d.ts +0 -0
  299. /package/lib/{components → apps/admin-ui/src/components}/dynamic/MapComponent.d.ts +0 -0
  300. /package/lib/{components → apps/admin-ui/src/components}/dynamic/MultivaluedStringComponent.d.ts +0 -0
  301. /package/lib/{components → apps/admin-ui/src/components}/dynamic/NumberComponent.d.ts +0 -0
  302. /package/lib/{components → apps/admin-ui/src/components}/dynamic/PasswordComponent.d.ts +0 -0
  303. /package/lib/{components → apps/admin-ui/src/components}/dynamic/RoleComponent.d.ts +0 -0
  304. /package/lib/{components → apps/admin-ui/src/components}/dynamic/ScriptComponent.d.ts +0 -0
  305. /package/lib/{components → apps/admin-ui/src/components}/dynamic/SearchInputComponent.d.ts +0 -0
  306. /package/lib/{components → apps/admin-ui/src/components}/dynamic/StringComponent.d.ts +0 -0
  307. /package/lib/{components → apps/admin-ui/src/components}/dynamic/TextComponent.d.ts +0 -0
  308. /package/lib/{components → apps/admin-ui/src/components}/dynamic/UrlComponent.d.ts +0 -0
  309. /package/lib/{components → apps/admin-ui/src/components}/dynamic/UserProfileAttributeListComponent.d.ts +0 -0
  310. /package/lib/{components → apps/admin-ui/src/components}/dynamic/components.d.ts +0 -0
  311. /package/lib/{components → apps/admin-ui/src/components}/error/ErrorRenderer.d.ts +0 -0
  312. /package/lib/{components → apps/admin-ui/src/components}/external-link/FormattedLink.d.ts +0 -0
  313. /package/lib/{components → apps/admin-ui/src/components}/form/CodeEditor.d.ts +0 -0
  314. /package/lib/{components → apps/admin-ui/src/components}/form/FixedButtonGroup.d.ts +0 -0
  315. /package/lib/{components → apps/admin-ui/src/components}/form/FormAccess.d.ts +0 -0
  316. /package/lib/{components → apps/admin-ui/src/components}/group/GroupPath.d.ts +0 -0
  317. /package/lib/{components → apps/admin-ui/src/components}/group/GroupPickerDialog.d.ts +0 -0
  318. /package/lib/{components → apps/admin-ui/src/components}/help-enabler/HelpHeader.d.ts +0 -0
  319. /package/lib/{components → apps/admin-ui/src/components}/json-file-upload/FileUploadForm.d.ts +0 -0
  320. /package/lib/{components → apps/admin-ui/src/components}/json-file-upload/JsonFileUpload.d.ts +0 -0
  321. /package/lib/{components → apps/admin-ui/src/components}/key-value-form/AttributeForm.d.ts +0 -0
  322. /package/lib/{components → apps/admin-ui/src/components}/key-value-form/key-value-convert.d.ts +0 -0
  323. /package/lib/{components → apps/admin-ui/src/components}/keycloak-card/ClickableCard.d.ts +0 -0
  324. /package/lib/{components → apps/admin-ui/src/components}/keycloak-card/KeycloakCard.d.ts +0 -0
  325. /package/lib/{components → apps/admin-ui/src/components}/multi-line-input/MultiLineInput.d.ts +0 -0
  326. /package/lib/{components → apps/admin-ui/src/components}/permission-tab/PermissionTab.d.ts +0 -0
  327. /package/lib/{components → apps/admin-ui/src/components}/realm-loa-mapping/RealmLoAMapping.d.ts +0 -0
  328. /package/lib/{components → apps/admin-ui/src/components}/role-form/RoleForm.d.ts +0 -0
  329. /package/lib/{components → apps/admin-ui/src/components}/role-mapping/resource.d.ts +0 -0
  330. /package/lib/{components → apps/admin-ui/src/components}/roles-list/RolesList.d.ts +0 -0
  331. /package/lib/{components → apps/admin-ui/src/components}/routable-tabs/RoutableTabs.d.ts +0 -0
  332. /package/lib/{components → apps/admin-ui/src/components}/time-selector/TimeSelector.d.ts +0 -0
  333. /package/lib/{components → apps/admin-ui/src/components}/time-selector/TimeSelectorForm.d.ts +0 -0
  334. /package/lib/{components → apps/admin-ui/src/components}/users/UserDataTable.d.ts +0 -0
  335. /package/lib/{components → apps/admin-ui/src/components}/users/UserDataTableAttributeSearchForm.d.ts +0 -0
  336. /package/lib/{components → apps/admin-ui/src/components}/users/UserDataTableToolbarItems.d.ts +0 -0
  337. /package/lib/{components → apps/admin-ui/src/components}/users/UserSelect.d.ts +0 -0
  338. /package/lib/{components → apps/admin-ui/src/components}/wizard-section-header/WizardSectionHeader.d.ts +0 -0
  339. /package/lib/{context → apps/admin-ui/src/context}/RecentRealms.d.ts +0 -0
  340. /package/lib/{context → apps/admin-ui/src/context}/access/Access.d.ts +0 -0
  341. /package/lib/{context → apps/admin-ui/src/context}/auth/admin-ui-endpoint.d.ts +0 -0
  342. /package/lib/{context → apps/admin-ui/src/context}/auth/uiRealmInfo.d.ts +0 -0
  343. /package/lib/{context → apps/admin-ui/src/context}/group-resource/GroupResourceContext.d.ts +0 -0
  344. /package/lib/{context → apps/admin-ui/src/context}/realm-context/useHash.d.ts +0 -0
  345. /package/lib/{context → apps/admin-ui/src/context}/server-info/ServerInfoProvider.d.ts +0 -0
  346. /package/lib/{context → apps/admin-ui/src/context}/whoami/WhoAmI.d.ts +0 -0
  347. /package/lib/{dashboard → apps/admin-ui/src/dashboard}/Dashboard.d.ts +0 -0
  348. /package/lib/{dashboard → apps/admin-ui/src/dashboard}/ProviderInfo.d.ts +0 -0
  349. /package/lib/{dashboard → apps/admin-ui/src/dashboard}/routes/Dashboard.d.ts +0 -0
  350. /package/lib/{dashboard → apps/admin-ui/src/dashboard}/routes.d.ts +0 -0
  351. /package/lib/{events → apps/admin-ui/src/events}/AdminEvents.d.ts +0 -0
  352. /package/lib/{events → apps/admin-ui/src/events}/EventsSection.d.ts +0 -0
  353. /package/lib/{events → apps/admin-ui/src/events}/ResourceLinks.d.ts +0 -0
  354. /package/lib/{events → apps/admin-ui/src/events}/UserEvents.d.ts +0 -0
  355. /package/lib/{events → apps/admin-ui/src/events}/routes/Events.d.ts +0 -0
  356. /package/lib/{events → apps/admin-ui/src/events}/routes.d.ts +0 -0
  357. /package/lib/{groups → apps/admin-ui/src/groups}/GroupAttributes.d.ts +0 -0
  358. /package/lib/{groups → apps/admin-ui/src/groups}/GroupRoleMapping.d.ts +0 -0
  359. /package/lib/{groups → apps/admin-ui/src/groups}/GroupTable.d.ts +0 -0
  360. /package/lib/{groups → apps/admin-ui/src/groups}/GroupsModal.d.ts +0 -0
  361. /package/lib/{groups → apps/admin-ui/src/groups}/GroupsSection.d.ts +0 -0
  362. /package/lib/{groups → apps/admin-ui/src/groups}/Members.d.ts +0 -0
  363. /package/lib/{groups → apps/admin-ui/src/groups}/MembersModal.d.ts +0 -0
  364. /package/lib/{groups → apps/admin-ui/src/groups}/MembershipsModal.d.ts +0 -0
  365. /package/lib/{groups → apps/admin-ui/src/groups}/SubGroupsContext.d.ts +0 -0
  366. /package/lib/{groups → apps/admin-ui/src/groups}/components/CheckableTreeView.d.ts +0 -0
  367. /package/lib/{groups → apps/admin-ui/src/groups}/components/DeleteGroup.d.ts +0 -0
  368. /package/lib/{groups → apps/admin-ui/src/groups}/components/GroupToolbar.d.ts +0 -0
  369. /package/lib/{groups → apps/admin-ui/src/groups}/components/GroupTree.d.ts +0 -0
  370. /package/lib/{groups → apps/admin-ui/src/groups}/components/MoveDialog.d.ts +0 -0
  371. /package/lib/{groups → apps/admin-ui/src/groups}/groupIdUtils.d.ts +0 -0
  372. /package/lib/{groups → apps/admin-ui/src/groups}/routes/Groups.d.ts +0 -0
  373. /package/lib/{groups → apps/admin-ui/src/groups}/routes.d.ts +0 -0
  374. /package/lib/{help-urls.d.ts → apps/admin-ui/src/help-urls.d.ts} +0 -0
  375. /package/lib/{i18n → apps/admin-ui/src/i18n}/constants.d.ts +0 -0
  376. /package/lib/{i18n → apps/admin-ui/src/i18n}/i18n.d.ts +0 -0
  377. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/IdentityProvidersSection.d.ts +0 -0
  378. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/ManageOrderDialog.d.ts +0 -0
  379. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/OIDCConfigurationRepresentation.d.ts +0 -0
  380. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddIdentityProvider.d.ts +0 -0
  381. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddJWTAuthorizationGrant.d.ts +0 -0
  382. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddKubernetesConnect.d.ts +0 -0
  383. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddMapper.d.ts +0 -0
  384. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddMapperForm.d.ts +0 -0
  385. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddOAuth2.d.ts +0 -0
  386. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddOpenIdConnect.d.ts +0 -0
  387. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddSamlConnect.d.ts +0 -0
  388. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AddSpiffeConnect.d.ts +0 -0
  389. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/AdvancedSettings.d.ts +0 -0
  390. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/DescriptorSettings.d.ts +0 -0
  391. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/DetailSettings.d.ts +0 -0
  392. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/DiscoverySettings.d.ts +0 -0
  393. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/ExtendedNonDiscoverySettings.d.ts +0 -0
  394. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/ExtendedOAuth2Settings.d.ts +0 -0
  395. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/GeneralSettings.d.ts +0 -0
  396. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/JWTAuthorizationGrantAssertionSettings.d.ts +0 -0
  397. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/JWTAuthorizationGrantSettings.d.ts +0 -0
  398. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/JwksSettings.d.ts +0 -0
  399. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/KubernetesSettings.d.ts +0 -0
  400. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/OAuth2UserProfileClaimsSettings.d.ts +0 -0
  401. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/OIDCAuthentication.d.ts +0 -0
  402. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/OIDCGeneralSettings.d.ts +0 -0
  403. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/OpenIdConnectSettings.d.ts +0 -0
  404. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/ReqAuthnConstraintsSettings.d.ts +0 -0
  405. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/SamlConnectSettings.d.ts +0 -0
  406. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/SamlGeneralSettings.d.ts +0 -0
  407. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/add/SpiffeSettings.d.ts +0 -0
  408. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/component/ClientIdSecret.d.ts +0 -0
  409. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/component/DiscoveryEndpointField.d.ts +0 -0
  410. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/component/DisplayOrder.d.ts +0 -0
  411. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/component/FormGroupField.d.ts +0 -0
  412. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/component/RedirectUrl.d.ts +0 -0
  413. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/component/SwitchField.d.ts +0 -0
  414. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/component/TextField.d.ts +0 -0
  415. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/AddMapper.d.ts +0 -0
  416. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/EditMapper.d.ts +0 -0
  417. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProvider.d.ts +0 -0
  418. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderCreate.d.ts +0 -0
  419. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderJWTAuthorizationGrant.d.ts +0 -0
  420. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderKeycloakOidc.d.ts +0 -0
  421. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderKubernetes.d.ts +0 -0
  422. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderOAuth2.d.ts +0 -0
  423. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderOidc.d.ts +0 -0
  424. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderSaml.d.ts +0 -0
  425. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviderSpiffe.d.ts +0 -0
  426. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes/IdentityProviders.d.ts +0 -0
  427. /package/lib/{identity-providers → apps/admin-ui/src/identity-providers}/routes.d.ts +0 -0
  428. /package/lib/{main.d.ts → apps/admin-ui/src/main.d.ts} +0 -0
  429. /package/lib/{organizations → apps/admin-ui/src/organizations}/DetailOraganzationHeader.d.ts +0 -0
  430. /package/lib/{organizations → apps/admin-ui/src/organizations}/DetailOrganization.d.ts +0 -0
  431. /package/lib/{organizations → apps/admin-ui/src/organizations}/IdentityProviderSelect.d.ts +0 -0
  432. /package/lib/{organizations → apps/admin-ui/src/organizations}/IdentityProviders.d.ts +0 -0
  433. /package/lib/{organizations → apps/admin-ui/src/organizations}/Invitations.d.ts +0 -0
  434. /package/lib/{organizations → apps/admin-ui/src/organizations}/InviteMemberModal.d.ts +0 -0
  435. /package/lib/{organizations → apps/admin-ui/src/organizations}/LinkIdentityProviderModal.d.ts +0 -0
  436. /package/lib/{organizations → apps/admin-ui/src/organizations}/Members.d.ts +0 -0
  437. /package/lib/{organizations → apps/admin-ui/src/organizations}/MembersSection.d.ts +0 -0
  438. /package/lib/{organizations → apps/admin-ui/src/organizations}/NewOrganization.d.ts +0 -0
  439. /package/lib/{organizations → apps/admin-ui/src/organizations}/OrganizationForm.d.ts +0 -0
  440. /package/lib/{organizations → apps/admin-ui/src/organizations}/OrganizationModal.d.ts +0 -0
  441. /package/lib/{organizations → apps/admin-ui/src/organizations}/OrganizationsSection.d.ts +0 -0
  442. /package/lib/{organizations → apps/admin-ui/src/organizations}/routes/AddOrganization.d.ts +0 -0
  443. /package/lib/{organizations → apps/admin-ui/src/organizations}/routes/EditOrganization.d.ts +0 -0
  444. /package/lib/{organizations → apps/admin-ui/src/organizations}/routes/Organizations.d.ts +0 -0
  445. /package/lib/{organizations → apps/admin-ui/src/organizations}/routes.d.ts +0 -0
  446. /package/lib/{page → apps/admin-ui/src/page}/Page.d.ts +0 -0
  447. /package/lib/{page → apps/admin-ui/src/page}/PageHandler.d.ts +0 -0
  448. /package/lib/{page → apps/admin-ui/src/page}/PageList.d.ts +0 -0
  449. /package/lib/{page → apps/admin-ui/src/page}/constants.d.ts +0 -0
  450. /package/lib/{page → apps/admin-ui/src/page}/routes.d.ts +0 -0
  451. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/PermissionsConfigurationSection.d.ts +0 -0
  452. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-configuration/AssignedPolicies.d.ts +0 -0
  453. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-configuration/AuthorizationScopesDetails.d.ts +0 -0
  454. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-configuration/ExistingPoliciesDialog.d.ts +0 -0
  455. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-configuration/NewPermissionConfigurationDialog.d.ts +0 -0
  456. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-configuration/NewPermissionPolicyDialog.d.ts +0 -0
  457. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-configuration/PermissionConfigurationDetails.d.ts +0 -0
  458. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-configuration/PermissionsConfigurationTab.d.ts +0 -0
  459. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-evaluation/PermissionEvaluationResult.d.ts +0 -0
  460. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/permission-evaluation/PermissionsEvaluationTab.d.ts +0 -0
  461. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/resource-types/ClientSelectComponent.d.ts +0 -0
  462. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/resource-types/GroupSelect.d.ts +0 -0
  463. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/resource-types/ResourceType.d.ts +0 -0
  464. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/resource-types/RoleSelect.d.ts +0 -0
  465. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/resource-types/SearchDropdown.d.ts +0 -0
  466. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes/NewPermissionConfiguration.d.ts +0 -0
  467. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes/NewPermissionPolicy.d.ts +0 -0
  468. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes/PermissionConfigurationDetails.d.ts +0 -0
  469. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes/PermissionPolicyDetails.d.ts +0 -0
  470. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes/PermissionsConfiguration.d.ts +0 -0
  471. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes/PermissionsConfigurationTabs.d.ts +0 -0
  472. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes/PermissionsPolicies.d.ts +0 -0
  473. /package/lib/{permissions-configuration → apps/admin-ui/src/permissions-configuration}/routes.d.ts +0 -0
  474. /package/lib/{realm → apps/admin-ui/src/realm}/RealmRoutes.d.ts +0 -0
  475. /package/lib/{realm → apps/admin-ui/src/realm}/RealmSection.d.ts +0 -0
  476. /package/lib/{realm → apps/admin-ui/src/realm}/add/NewRealmForm.d.ts +0 -0
  477. /package/lib/{realm → apps/admin-ui/src/realm}/routes.d.ts +0 -0
  478. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/CreateRealmRole.d.ts +0 -0
  479. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/RealmRoleTabs.d.ts +0 -0
  480. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/RealmRolesSection.d.ts +0 -0
  481. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/UsersInRoleTab.d.ts +0 -0
  482. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/routes/AddRole.d.ts +0 -0
  483. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/routes/RealmRole.d.ts +0 -0
  484. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/routes/RealmRoles.d.ts +0 -0
  485. /package/lib/{realm-roles → apps/admin-ui/src/realm-roles}/routes.d.ts +0 -0
  486. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/AddClientProfileModal.d.ts +0 -0
  487. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/AddTranslationModal.d.ts +0 -0
  488. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/ClientProfileForm.d.ts +0 -0
  489. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/DefaultGroupsTab.d.ts +0 -0
  490. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/EmailTab.d.ts +0 -0
  491. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/ExecutorForm.d.ts +0 -0
  492. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/GeneralTab.d.ts +0 -0
  493. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/LoginTab.d.ts +0 -0
  494. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/NewAttributeSettings.d.ts +0 -0
  495. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/NewClientPolicy.d.ts +0 -0
  496. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/NewClientPolicyCondition.d.ts +0 -0
  497. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/PartialExport.d.ts +0 -0
  498. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/PartialImport.d.ts +0 -0
  499. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/PoliciesTab.d.ts +0 -0
  500. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/ProfilesTab.d.ts +0 -0
  501. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/RealmSettingsSection.d.ts +0 -0
  502. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/RealmSettingsTabs.d.ts +0 -0
  503. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/SessionsTab.d.ts +0 -0
  504. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/TokensTab.d.ts +0 -0
  505. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/UserRegistration.d.ts +0 -0
  506. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/event-config/AddEventTypesDialog.d.ts +0 -0
  507. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/event-config/EventConfigForm.d.ts +0 -0
  508. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/event-config/EventListenersForm.d.ts +0 -0
  509. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/event-config/EventsTab.d.ts +0 -0
  510. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/event-config/EventsTypeTable.d.ts +0 -0
  511. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/keys/KeysListTab.d.ts +0 -0
  512. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/keys/KeysProvidersTab.d.ts +0 -0
  513. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/keys/KeysTab.d.ts +0 -0
  514. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/keys/key-providers/KeyProviderForm.d.ts +0 -0
  515. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/keys/key-providers/KeyProviderModal.d.ts +0 -0
  516. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/keys/key-providers/KeyProvidersPicker.d.ts +0 -0
  517. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/localization/EffectiveMessageBundles.d.ts +0 -0
  518. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/localization/LocalizationTab.d.ts +0 -0
  519. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/localization/RealmOverrides.d.ts +0 -0
  520. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/AddAttribute.d.ts +0 -0
  521. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/AddClientPolicy.d.ts +0 -0
  522. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/AddClientProfile.d.ts +0 -0
  523. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/AddCondition.d.ts +0 -0
  524. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/AddExecutor.d.ts +0 -0
  525. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/Attribute.d.ts +0 -0
  526. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/ClientPolicies.d.ts +0 -0
  527. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/ClientProfile.d.ts +0 -0
  528. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/EditAttributesGroup.d.ts +0 -0
  529. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/EditClientPolicy.d.ts +0 -0
  530. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/EditCondition.d.ts +0 -0
  531. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/Executor.d.ts +0 -0
  532. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/KeyProvider.d.ts +0 -0
  533. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/KeysTab.d.ts +0 -0
  534. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/NewAttributesGroup.d.ts +0 -0
  535. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/RealmSettings.d.ts +0 -0
  536. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/ThemesTab.d.ts +0 -0
  537. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes/UserProfile.d.ts +0 -0
  538. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/routes.d.ts +0 -0
  539. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/security-defences/BruteForceDetection.d.ts +0 -0
  540. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/security-defences/HeadersForm.d.ts +0 -0
  541. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/security-defences/HelpLinkTextInput.d.ts +0 -0
  542. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/security-defences/SecurityDefenses.d.ts +0 -0
  543. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/security-defences/Time.d.ts +0 -0
  544. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/BackgroundContext.d.ts +0 -0
  545. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/ColorControl.d.ts +0 -0
  546. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/DefaultColorAccordion.d.ts +0 -0
  547. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/FileNameDialog.d.ts +0 -0
  548. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/ImageUpload.d.ts +0 -0
  549. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/LoginPreviewWindow.d.ts +0 -0
  550. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/LogoContext.d.ts +0 -0
  551. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/PatternflyVars.d.ts +0 -0
  552. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/PreviewWindow.d.ts +0 -0
  553. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/ThemeColors.d.ts +0 -0
  554. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/ThemeSettings.d.ts +0 -0
  555. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/ThemesTab.d.ts +0 -0
  556. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/UploadJar.d.ts +0 -0
  557. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/themes/fileUtils.d.ts +0 -0
  558. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/AttributesGroupDetails.d.ts +0 -0
  559. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/AttributesGroupForm.d.ts +0 -0
  560. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/AttributesGroupTab.d.ts +0 -0
  561. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/AttributesTab.d.ts +0 -0
  562. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/JsonEditorTab.d.ts +0 -0
  563. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/UserProfileContext.d.ts +0 -0
  564. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/UserProfileTab.d.ts +0 -0
  565. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/AddTranslationsDialog.d.ts +0 -0
  566. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/AddValidatorDialog.d.ts +0 -0
  567. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/AttributeAnnotations.d.ts +0 -0
  568. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/AttributeGeneralSettings.d.ts +0 -0
  569. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/AttributePermission.d.ts +0 -0
  570. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/AttributeValidations.d.ts +0 -0
  571. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/KeySelect.d.ts +0 -0
  572. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/TranslatableField.d.ts +0 -0
  573. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/ValidatorSelect.d.ts +0 -0
  574. /package/lib/{realm-settings → apps/admin-ui/src/realm-settings}/user-profile/attribute/ValueSelect.d.ts +0 -0
  575. /package/lib/{root → apps/admin-ui/src/root}/AuthWall.d.ts +0 -0
  576. /package/lib/{sessions → apps/admin-ui/src/sessions}/RevocationModal.d.ts +0 -0
  577. /package/lib/{sessions → apps/admin-ui/src/sessions}/SessionsSection.d.ts +0 -0
  578. /package/lib/{sessions → apps/admin-ui/src/sessions}/SessionsTable.d.ts +0 -0
  579. /package/lib/{sessions → apps/admin-ui/src/sessions}/routes/Sessions.d.ts +0 -0
  580. /package/lib/{sessions → apps/admin-ui/src/sessions}/routes.d.ts +0 -0
  581. /package/lib/{user → apps/admin-ui/src/user}/CreateUser.d.ts +0 -0
  582. /package/lib/{user → apps/admin-ui/src/user}/EditUser.d.ts +0 -0
  583. /package/lib/{user → apps/admin-ui/src/user}/FederatedUserLink.d.ts +0 -0
  584. /package/lib/{user → apps/admin-ui/src/user}/Organizations.d.ts +0 -0
  585. /package/lib/{user → apps/admin-ui/src/user}/UserAttributes.d.ts +0 -0
  586. /package/lib/{user → apps/admin-ui/src/user}/UserConsents.d.ts +0 -0
  587. /package/lib/{user → apps/admin-ui/src/user}/UserCredentials.d.ts +0 -0
  588. /package/lib/{user → apps/admin-ui/src/user}/UserForm.d.ts +0 -0
  589. /package/lib/{user → apps/admin-ui/src/user}/UserGroups.d.ts +0 -0
  590. /package/lib/{user → apps/admin-ui/src/user}/UserIdPModal.d.ts +0 -0
  591. /package/lib/{user → apps/admin-ui/src/user}/UserIdentityProviderLinks.d.ts +0 -0
  592. /package/lib/{user → apps/admin-ui/src/user}/UserRoleMapping.d.ts +0 -0
  593. /package/lib/{user → apps/admin-ui/src/user}/UserSessions.d.ts +0 -0
  594. /package/lib/{user → apps/admin-ui/src/user}/UserWorkflows.d.ts +0 -0
  595. /package/lib/{user → apps/admin-ui/src/user}/UsersSection.d.ts +0 -0
  596. /package/lib/{user → apps/admin-ui/src/user}/details/SearchFilter.d.ts +0 -0
  597. /package/lib/{user → apps/admin-ui/src/user}/form-state.d.ts +0 -0
  598. /package/lib/{user → apps/admin-ui/src/user}/routes/AddUser.d.ts +0 -0
  599. /package/lib/{user → apps/admin-ui/src/user}/routes/Users.d.ts +0 -0
  600. /package/lib/{user → apps/admin-ui/src/user}/routes.d.ts +0 -0
  601. /package/lib/{user → apps/admin-ui/src/user}/user-credentials/CredentialDataDialog.d.ts +0 -0
  602. /package/lib/{user → apps/admin-ui/src/user}/user-credentials/CredentialRow.d.ts +0 -0
  603. /package/lib/{user → apps/admin-ui/src/user}/user-credentials/InlineLabelEdit.d.ts +0 -0
  604. /package/lib/{user → apps/admin-ui/src/user}/user-credentials/LifespanField.d.ts +0 -0
  605. /package/lib/{user → apps/admin-ui/src/user}/user-credentials/RequiredActionMultiSelect.d.ts +0 -0
  606. /package/lib/{user → apps/admin-ui/src/user}/user-credentials/ResetCredentialDialog.d.ts +0 -0
  607. /package/lib/{user → apps/admin-ui/src/user}/user-credentials/ResetPasswordDialog.d.ts +0 -0
  608. /package/lib/{user → apps/admin-ui/src/user}/utils/user-profile.d.ts +0 -0
  609. /package/lib/{user → apps/admin-ui/src/user}/utils.d.ts +0 -0
  610. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/CreateUserFederationLdapSettings.d.ts +0 -0
  611. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ManagePriorityDialog.d.ts +0 -0
  612. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/UserFederationKerberosSettings.d.ts +0 -0
  613. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/UserFederationKerberosWizard.d.ts +0 -0
  614. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/UserFederationLdapForm.d.ts +0 -0
  615. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/UserFederationLdapSettings.d.ts +0 -0
  616. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/UserFederationLdapWizard.d.ts +0 -0
  617. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/UserFederationSection.d.ts +0 -0
  618. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/custom/CustomProviderSettings.d.ts +0 -0
  619. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/custom/SyncSettings.d.ts +0 -0
  620. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/kerberos/KerberosSettingsRequired.d.ts +0 -0
  621. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/LdapSettingsAdvanced.d.ts +0 -0
  622. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/LdapSettingsConnection.d.ts +0 -0
  623. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/LdapSettingsGeneral.d.ts +0 -0
  624. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/LdapSettingsKerberosIntegration.d.ts +0 -0
  625. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/LdapSettingsSearching.d.ts +0 -0
  626. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/LdapSettingsSynchronization.d.ts +0 -0
  627. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/mappers/LdapMapperDetails.d.ts +0 -0
  628. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/ldap/mappers/LdapMapperList.d.ts +0 -0
  629. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/CustomUserFederation.d.ts +0 -0
  630. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/NewCustomUserFederation.d.ts +0 -0
  631. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/NewKerberosUserFederation.d.ts +0 -0
  632. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/NewLdapUserFederation.d.ts +0 -0
  633. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/UserFederation.d.ts +0 -0
  634. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/UserFederationKerberos.d.ts +0 -0
  635. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/UserFederationLdap.d.ts +0 -0
  636. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/UserFederationLdapMapper.d.ts +0 -0
  637. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/UserFederationsKerberos.d.ts +0 -0
  638. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes/UserFederationsLdap.d.ts +0 -0
  639. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/routes.d.ts +0 -0
  640. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/shared/ExtendedHeader.d.ts +0 -0
  641. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/shared/Header.d.ts +0 -0
  642. /package/lib/{user-federation → apps/admin-ui/src/user-federation}/shared/SettingsCache.d.ts +0 -0
  643. /package/lib/{utils → apps/admin-ui/src/utils}/generateEncodedPath.d.ts +0 -0
  644. /package/lib/{utils → apps/admin-ui/src/utils}/getAuthorizationHeaders.d.ts +0 -0
  645. /package/lib/{utils → apps/admin-ui/src/utils}/joinPath.d.ts +0 -0
  646. /package/lib/{utils → apps/admin-ui/src/utils}/translationFormatter.d.ts +0 -0
  647. /package/lib/{utils → apps/admin-ui/src/utils}/types.d.ts +0 -0
  648. /package/lib/{utils → apps/admin-ui/src/utils}/useCurrentUser.d.ts +0 -0
  649. /package/lib/{utils → apps/admin-ui/src/utils}/useFormatDate.d.ts +0 -0
  650. /package/lib/{utils → apps/admin-ui/src/utils}/useIsAdminPermissionsClient.d.ts +0 -0
  651. /package/lib/{utils → apps/admin-ui/src/utils}/useLocale.d.ts +0 -0
  652. /package/lib/{utils → apps/admin-ui/src/utils}/useLocaleSort.d.ts +0 -0
  653. /package/lib/{utils → apps/admin-ui/src/utils}/useParams.d.ts +0 -0
  654. /package/lib/{utils → apps/admin-ui/src/utils}/useQueryPermission.d.ts +0 -0
  655. /package/lib/{utils → apps/admin-ui/src/utils}/useSortedResourceTypes.d.ts +0 -0
  656. /package/lib/{utils → apps/admin-ui/src/utils}/useToggle.d.ts +0 -0
  657. /package/lib/{utils → apps/admin-ui/src/utils}/useUpdateEffect.d.ts +0 -0
  658. /package/lib/{workflows → apps/admin-ui/src/workflows}/WorkflowDetailForm.d.ts +0 -0
  659. /package/lib/{workflows → apps/admin-ui/src/workflows}/WorkflowsSection.d.ts +0 -0
  660. /package/lib/{workflows → apps/admin-ui/src/workflows}/routes/WorkflowDetail.d.ts +0 -0
  661. /package/lib/{workflows → apps/admin-ui/src/workflows}/routes/Workflows.d.ts +0 -0
  662. /package/lib/{workflows → apps/admin-ui/src/workflows}/routes.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionConfigurationDetails-kVjqdhoR.js","sources":["../src/permissions-configuration/permission-configuration/NewPermissionPolicyDialog.tsx","../src/permissions-configuration/permission-configuration/ExistingPoliciesDialog.tsx","../src/permissions-configuration/permission-configuration/AssignedPolicies.tsx","../src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx"],"sourcesContent":["import PolicyRepresentation, {\n DecisionStrategy,\n Logic,\n} from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport PolicyProviderRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyProviderRepresentation\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Modal,\n ModalVariant,\n TextContent,\n Text,\n TextVariants,\n ActionGroup,\n Button,\n Form,\n ButtonVariant,\n AlertVariant,\n} from \"@patternfly/react-core\";\nimport {\n SelectControl,\n TextControl,\n useAlerts,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { FormProvider, useForm, useWatch } from \"react-hook-form\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { Client } from \"../../clients/authorization/policy/Client\";\nimport { User } from \"../../clients/authorization/policy/User\";\nimport {\n ClientScope,\n RequiredIdValue,\n} from \"../../clients/authorization/policy/ClientScope\";\nimport { Group, GroupValue } from \"../../clients/authorization/policy/Group\";\nimport { Regex } from \"../../clients/authorization/policy/Regex\";\nimport { Role } from \"../../clients/authorization/policy/Role\";\nimport { Time } from \"../../clients/authorization/policy/Time\";\nimport { JavaScript } from \"../../clients/authorization/policy/JavaScript\";\nimport { LogicSelector } from \"../../clients/authorization/policy/LogicSelector\";\nimport { Aggregate } from \"../../clients/authorization/policy/Aggregate\";\nimport { capitalize } from \"lodash-es\";\nimport { useEffect, type JSX } from \"react\";\n\ntype Policy = Omit<PolicyRepresentation, \"roles\"> & {\n groups?: GroupValue[];\n clientScopes?: RequiredIdValue[];\n roles?: RequiredIdValue[];\n clients?: [];\n};\n\ntype ComponentsProps = {\n isPermissionClient?: boolean;\n permissionClientId: string;\n};\n\nconst defaultValues: Policy = {\n name: \"\",\n description: \"\",\n type: \"group\",\n policies: [],\n decisionStrategy: DecisionStrategy.UNANIMOUS,\n logic: Logic.POSITIVE,\n};\n\nconst COMPONENTS: {\n [index: string]: ({\n isPermissionClient,\n permissionClientId,\n }: ComponentsProps) => JSX.Element;\n} = {\n aggregate: Aggregate,\n client: Client,\n user: User,\n \"client-scope\": ClientScope,\n group: Group,\n regex: Regex,\n role: Role,\n time: Time,\n js: JavaScript,\n default: Group,\n} as const;\n\nexport const isValidComponentType = (value: string) => value in COMPONENTS;\n\ntype NewPermissionConfigurationDialogProps = {\n permissionClientId: string;\n providers: PolicyProviderRepresentation[];\n policies: PolicyRepresentation[];\n resourceType: string;\n toggleDialog: () => void;\n onAssign: (newPolicy: PolicyRepresentation) => void;\n};\n\nexport const NewPermissionPolicyDialog = ({\n permissionClientId,\n providers,\n policies,\n toggleDialog,\n onAssign,\n}: NewPermissionConfigurationDialogProps) => {\n const { adminClient } = useAdminClient();\n const { realmRepresentation } = useRealm();\n const { t } = useTranslation();\n const form = useForm<Policy>({\n mode: \"onChange\",\n defaultValues,\n });\n const { addAlert, addError } = useAlerts();\n const { handleSubmit, reset } = form;\n const isPermissionClient = realmRepresentation.adminPermissionsEnabled;\n\n const policyTypeSelector = useWatch({\n control: form.control,\n name: \"type\",\n });\n\n function getComponentType() {\n if (policyTypeSelector && isValidComponentType(policyTypeSelector)) {\n return COMPONENTS[policyTypeSelector];\n }\n return COMPONENTS[\"default\"];\n }\n\n const ComponentType = getComponentType();\n\n useEffect(() => {\n if (policyTypeSelector) {\n const { name, description, decisionStrategy, logic } = form.getValues();\n\n reset({\n type: policyTypeSelector,\n name,\n description,\n decisionStrategy,\n logic,\n });\n }\n }, [policyTypeSelector, reset, form]);\n\n const save = async (policy: Policy) => {\n const { groups, roles, policies, clients, ...rest } = policy;\n\n const cleanedPolicy = {\n ...rest,\n ...(groups && groups.length > 0 && { groups }),\n ...(roles && roles.length > 0 && { roles }),\n ...(policies && policies.length > 0 && { policies }),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- clients may be undefined at runtime despite the type\n ...(clients && clients.length > 0 && { clients }),\n ...(rest.type === \"group\" &&\n (!groups || groups.length === 0) && { groups: [] }),\n ...(rest.type === \"client\" &&\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- clients may be undefined at runtime despite the type\n (!clients || clients.length === 0) && { clients: [] }),\n };\n\n try {\n const createdPolicy = await adminClient.clients.createPolicy(\n { id: permissionClientId, type: policyTypeSelector! },\n cleanedPolicy,\n );\n\n onAssign(createdPolicy);\n toggleDialog();\n addAlert(t(\"createPolicySuccess\"), AlertVariant.success);\n } catch (error) {\n addError(\"policySaveError\", error);\n }\n };\n\n return (\n <Modal\n aria-label={t(\"createPermissionPolicy\")}\n variant={ModalVariant.medium}\n header={\n <TextContent>\n <Text component={TextVariants.h1}>{t(\"createPermissionPolicy\")}</Text>\n </TextContent>\n }\n isOpen\n onClose={toggleDialog}\n >\n <Form\n id=\"createPermissionPolicy-form\"\n onSubmit={async (e) => {\n e.stopPropagation();\n await handleSubmit(save)(e);\n }}\n isHorizontal\n >\n <FormProvider {...form}>\n <TextControl\n name=\"name\"\n label={t(\"name\")}\n rules={{ required: t(\"required\") }}\n />\n <TextControl name=\"description\" label={t(\"description\")} />\n {providers.length > 0 && (\n <SelectControl\n name=\"type\"\n label={t(\"policyType\")}\n labelIcon={t(\"policyTypeHelpText\")}\n options={providers.map((provider) => ({\n key: provider.type!,\n value: capitalize(provider.type!),\n }))}\n controller={{ defaultValue: \"\" }}\n />\n )}\n <ComponentType\n isPermissionClient={isPermissionClient}\n permissionClientId={permissionClientId}\n />\n <LogicSelector />\n </FormProvider>\n <ActionGroup>\n <div className=\"pf-v5-u-mt-md\">\n <Button\n variant={ButtonVariant.primary}\n className=\"pf-v5-u-mr-md\"\n type=\"submit\"\n data-testid=\"save\"\n isDisabled={\n policies.length === 0 && policyTypeSelector === \"aggregate\"\n }\n >\n {t(\"save\")}\n </Button>\n <Button variant=\"link\" data-testid=\"cancel\" onClick={toggleDialog}>\n {t(\"cancel\")}\n </Button>\n </div>\n </ActionGroup>\n </Form>\n </Modal>\n );\n};\n","import PolicyRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport { PolicyQuery } from \"@keycloak/keycloak-admin-client/lib/resources/clients\";\nimport {\n KeycloakDataTable,\n ListEmptyState,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n Button,\n ButtonVariant,\n Dropdown,\n DropdownItem,\n DropdownList,\n MenuToggle,\n Modal,\n ModalVariant,\n} from \"@patternfly/react-core\";\nimport { CaretDownIcon, FilterIcon } from \"@patternfly/react-icons\";\nimport { sortBy } from \"lodash-es\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { capitalizeFirstLetterFormatter } from \"../../util\";\nimport useToggle from \"../../utils/useToggle\";\n\nexport type ExistingPoliciesDialogProps = {\n toggleDialog: () => void;\n onAssign: (policies: { policy: PolicyRepresentation }[]) => void;\n open: boolean;\n permissionClientId: string;\n};\n\nexport const ExistingPoliciesDialog = ({\n toggleDialog,\n onAssign,\n open,\n permissionClientId,\n}: ExistingPoliciesDialogProps) => {\n const { t } = useTranslation();\n const { adminClient } = useAdminClient();\n const [rows, setRows] = useState<PolicyRepresentation[]>([]);\n const [filterType, setFilterType] = useState<string | undefined>(undefined);\n const [isFilterTypeDropdownOpen, toggleIsFilterTypeDropdownOpen] =\n useToggle();\n const [providers, setProviders] = useState<string[]>([]);\n\n useFetch(\n () =>\n adminClient.clients.listPolicyProviders({\n id: permissionClientId!,\n }),\n (providers) => {\n const formattedProviders = providers\n .filter((p) => p.type !== \"resource\" && p.type !== \"scope\")\n .map((provider) => provider.name)\n .filter((name) => name !== undefined);\n setProviders(sortBy(formattedProviders));\n },\n [permissionClientId],\n );\n\n const loader = async (first?: number, max?: number, search?: string) => {\n const params: PolicyQuery = {\n id: permissionClientId!,\n permission: \"false\",\n first,\n max,\n };\n\n if (search) {\n params.name = search;\n }\n\n if (filterType) {\n params.type = filterType;\n }\n\n return (await adminClient.clients.listPolicies(params)) || [];\n };\n\n return (\n <Modal\n variant={ModalVariant.medium}\n title={t(\"assignExistingPolicies\")}\n isOpen={open}\n onClose={toggleDialog}\n actions={[\n <>\n <Button\n id=\"modal-assignExistingPolicies\"\n data-testid=\"confirm\"\n key=\"assign\"\n variant={ButtonVariant.primary}\n onClick={() => {\n const selectedPolicies = rows.map((policy) => ({ policy }));\n onAssign(selectedPolicies);\n toggleDialog();\n }}\n isDisabled={rows.length === 0}\n >\n {t(\"assign\")}\n </Button>\n <Button\n id=\"modal-cancelExistingPolicies\"\n data-testid=\"cancel\"\n key=\"cancel\"\n variant={ButtonVariant.link}\n onClick={() => {\n setRows([]);\n toggleDialog();\n }}\n >\n {t(\"cancel\")}\n </Button>\n </>,\n ]}\n >\n <KeycloakDataTable\n key={filterType}\n loader={loader}\n ariaLabelKey={t(\"chooseAPolicyType\")}\n searchPlaceholderKey={t(\"searchClientAuthorizationPolicy\")}\n isSearching={true}\n searchTypeComponent={\n <Dropdown\n onSelect={(_, value) => {\n setFilterType(value as string | undefined);\n toggleIsFilterTypeDropdownOpen();\n }}\n onOpenChange={toggleIsFilterTypeDropdownOpen}\n toggle={(ref) => (\n <MenuToggle\n ref={ref}\n data-testid=\"filter-type-dropdown-existingPolicies\"\n id=\"toggle-id-10\"\n onClick={toggleIsFilterTypeDropdownOpen}\n icon={<FilterIcon />}\n statusIcon={<CaretDownIcon />}\n >\n {filterType ? filterType : t(\"allTypes\")}\n </MenuToggle>\n )}\n isOpen={isFilterTypeDropdownOpen}\n >\n <DropdownList>\n <DropdownItem\n data-testid=\"filter-type-dropdown-existingPolicies-all\"\n key=\"all\"\n onClick={() => setFilterType(undefined)}\n >\n {t(\"allTypes\")}\n </DropdownItem>\n {providers.map((name) => (\n <DropdownItem\n data-testid={`filter-type-dropdown-existingPolicies-${name}`}\n key={name}\n onClick={() => setFilterType(name)}\n >\n {name}\n </DropdownItem>\n ))}\n </DropdownList>\n </Dropdown>\n }\n canSelectAll\n onSelect={(selectedRows) => setRows(selectedRows)}\n columns={[\n { name: \"name\" },\n {\n name: \"type\",\n cellFormatters: [capitalizeFirstLetterFormatter()],\n },\n { name: \"description\" },\n ]}\n emptyState={\n <ListEmptyState\n message={t(\"emptyAssignExistingPolicies\")}\n instructions={t(\"emptyAssignExistingPoliciesInstructions\")}\n />\n }\n />\n </Modal>\n );\n};\n","import PolicyRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport {\n Action,\n FormErrorText,\n HelpItem,\n KeycloakDataTable,\n ListEmptyState,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n Button,\n Dropdown,\n DropdownItem,\n DropdownList,\n FormGroup,\n MenuToggle,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { NewPermissionPolicyDialog } from \"./NewPermissionPolicyDialog\";\nimport PolicyProviderRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyProviderRepresentation\";\nimport { ExistingPoliciesDialog } from \"./ExistingPoliciesDialog\";\nimport { CaretDownIcon, FilterIcon } from \"@patternfly/react-icons\";\nimport { capitalize, sortBy } from \"lodash-es\";\nimport useToggle from \"../../utils/useToggle\";\nimport { IRowData } from \"@patternfly/react-table\";\n\ntype AssignedPoliciesProps = {\n permissionClientId: string;\n providers: PolicyProviderRepresentation[];\n policies: PolicyRepresentation[] | undefined;\n resourceType: string;\n};\n\ntype AssignedPolicyForm = {\n policies?: { id: string; type?: string }[];\n};\n\nexport const AssignedPolicies = ({\n permissionClientId,\n providers,\n policies,\n resourceType,\n}: AssignedPoliciesProps) => {\n const { adminClient } = useAdminClient();\n const { t } = useTranslation();\n const {\n control,\n getValues,\n setValue,\n trigger,\n formState: { errors },\n } = useFormContext<AssignedPolicyForm>();\n const values = getValues(\"policies\");\n const [existingPoliciesOpen, setExistingPoliciesOpen] = useState(false);\n const [newPolicyOpen, setNewPolicyOpen] = useState(false);\n const [selectedPolicies, setSelectedPolicies] = useState<\n PolicyRepresentation[]\n >([]);\n const [filterType, setFilterType] = useState<string | undefined>(undefined);\n const [isFilterTypeDropdownOpen, toggleIsFilterTypeDropdownOpen] =\n useToggle();\n\n useFetch(\n () => {\n if (values && values.length > 0)\n return Promise.all(\n values.map((p) =>\n adminClient.clients.findOnePolicyWithType({\n id: permissionClientId,\n type: p.type!,\n policyId: p.id,\n }),\n ),\n );\n return Promise.resolve([]);\n },\n (policies) => {\n setSelectedPolicies(\n (policies as (PolicyRepresentation | undefined)[]).filter(\n (p): p is PolicyRepresentation => p !== undefined,\n ),\n );\n },\n [policies],\n );\n\n const sortedProviders = sortBy(\n providers\n .filter((p) => p.type !== \"resource\" && p.type !== \"scope\")\n .map((provider) => provider.name),\n );\n\n const assign = async (policies: { policy: PolicyRepresentation }[]) => {\n const assignedPolicies = policies.map(({ policy }) => ({\n id: policy.id!,\n }));\n\n setValue(\"policies\", [\n ...(getValues(\"policies\") || []),\n ...assignedPolicies,\n ]);\n await trigger(\"policies\");\n setSelectedPolicies([\n ...selectedPolicies,\n ...policies.map(({ policy }) => policy),\n ]);\n };\n\n const unAssign = (policy: PolicyRepresentation) => {\n const updatedPolicies = selectedPolicies.filter(\n (selectedPolicy) => selectedPolicy.id !== policy.id,\n );\n setSelectedPolicies(updatedPolicies);\n setValue(\n \"policies\",\n updatedPolicies.map((policy) => ({\n id: policy.id!,\n name: policy.name!,\n type: policy.type!,\n description: policy.description!,\n })),\n );\n };\n\n const filteredPolicies = filterType\n ? selectedPolicies.filter(\n (policy) => capitalize(policy.type) === filterType,\n )\n : selectedPolicies;\n\n return (\n <FormGroup\n label={t(\"policies\")}\n labelIcon={\n <HelpItem\n helpText={t(\"permissionPoliciesHelp\")}\n fieldLabelId=\"policies\"\n />\n }\n fieldId=\"policies\"\n isRequired\n >\n <Controller\n name=\"policies\"\n control={control}\n defaultValue={[]}\n rules={{\n validate: (value?: { id: string }[]) => {\n if (!value || value.length === 0) return false;\n return value.every(({ id }) => id && id.trim().length > 0);\n },\n }}\n render={() => (\n <>\n {existingPoliciesOpen && (\n <ExistingPoliciesDialog\n permissionClientId={permissionClientId}\n open={existingPoliciesOpen}\n toggleDialog={() =>\n setExistingPoliciesOpen(!existingPoliciesOpen)\n }\n onAssign={assign}\n />\n )}\n {newPolicyOpen && (\n <NewPermissionPolicyDialog\n toggleDialog={() => setNewPolicyOpen(!newPolicyOpen)}\n permissionClientId={permissionClientId}\n providers={providers!}\n policies={policies!}\n resourceType={resourceType}\n onAssign={async (newPolicy) => {\n await assign([{ policy: newPolicy }]);\n }}\n />\n )}\n <Button\n data-testid=\"select-assignedPolicy-button\"\n variant=\"secondary\"\n onClick={() => {\n setExistingPoliciesOpen(true);\n }}\n >\n {t(\"assignExistingPolicies\")}\n </Button>\n <Button\n data-testid=\"select-createNewPolicy-button\"\n className=\"pf-v5-u-ml-md\"\n variant=\"secondary\"\n onClick={() => {\n setNewPolicyOpen(true);\n }}\n >\n {t(\"createNewPolicy\")}\n </Button>\n </>\n )}\n />\n {selectedPolicies.length > 0 && (\n <KeycloakDataTable\n loader={filteredPolicies}\n ariaLabelKey={t(\"policies\")}\n searchPlaceholderKey={t(\"searchClientAuthorizationPolicy\")}\n isSearching={true}\n searchTypeComponent={\n <Dropdown\n onSelect={(event, value) => {\n setFilterType(value as string | undefined);\n toggleIsFilterTypeDropdownOpen();\n }}\n onOpenChange={toggleIsFilterTypeDropdownOpen}\n toggle={(ref) => (\n <MenuToggle\n ref={ref}\n data-testid=\"filter-type-dropdown-existingPolicies\"\n id=\"toggle-id-10\"\n onClick={toggleIsFilterTypeDropdownOpen}\n icon={<FilterIcon />}\n statusIcon={<CaretDownIcon />}\n >\n {filterType ? capitalize(filterType) : t(\"allTypes\")}\n </MenuToggle>\n )}\n isOpen={isFilterTypeDropdownOpen}\n >\n <DropdownList>\n <DropdownItem\n data-testid=\"filter-type-dropdown-existingPolicies-all\"\n key=\"all\"\n onClick={() => setFilterType(undefined)}\n >\n {t(\"allTypes\")}\n </DropdownItem>\n {sortedProviders.map((name) => (\n <DropdownItem\n data-testid={`filter-type-dropdown-existingPolicies-${name}`}\n key={name}\n onClick={() => setFilterType(name)}\n >\n {name}\n </DropdownItem>\n ))}\n </DropdownList>\n </Dropdown>\n }\n actionResolver={(rowData: IRowData) => [\n {\n title: t(\"unAssignPolicy\"),\n onClick: () => unAssign(rowData.data as PolicyRepresentation),\n } as Action<PolicyRepresentation>,\n ]}\n columns={[\n { name: \"name\", displayKey: t(\"name\") },\n {\n name: \"type\",\n displayKey: t(\"type\"),\n cellFormatters: [(value) => capitalize(String(value || \"\"))],\n },\n { name: \"description\", displayKey: t(\"description\") },\n ]}\n emptyState={\n <ListEmptyState\n message={t(\"emptyAssignExistingPolicies\")}\n instructions={t(\"emptyAssignExistingPoliciesInstructions\")}\n />\n }\n />\n )}\n {errors.policies && <FormErrorText message={t(\"requiredPolicies\")} />}\n </FormGroup>\n );\n};\n","import PolicyProviderRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyProviderRepresentation\";\nimport { useAlerts, useFetch } from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n ButtonVariant,\n DropdownItem,\n PageSection,\n} from \"@patternfly/react-core\";\nimport { useMemo, useState } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { KeycloakSpinner } from \"@keycloak/keycloak-ui-shared\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useParams } from \"../../utils/useParams\";\nimport {\n PermissionConfigurationDetailsParams,\n toPermissionConfigurationDetails,\n} from \"../routes/PermissionConfigurationDetails\";\nimport { toPermissionsConfigurationTabs } from \"../routes/PermissionsConfigurationTabs\";\nimport PolicyRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport { AssignedPolicies } from \"./AssignedPolicies\";\nimport { ScopePicker } from \"../../clients/authorization/ScopePicker\";\nimport { ResourceType } from \"../resource-types/ResourceType\";\nimport { sortBy } from \"lodash-es\";\nimport { NameDescription } from \"../../clients/authorization/policy/NameDescription\";\nimport useSortedResourceTypes from \"../../utils/useSortedResourceTypes\";\n\nexport default function PermissionConfigurationDetails() {\n const { adminClient } = useAdminClient();\n const { t } = useTranslation();\n const { realm, permissionClientId, permissionId, resourceType } =\n useParams<PermissionConfigurationDetailsParams>();\n const navigate = useNavigate();\n const form = useForm();\n const { handleSubmit, reset } = form;\n const { addAlert, addError } = useAlerts();\n const [permission, setPermission] = useState<PolicyRepresentation | null>(\n permissionId ? null : {},\n );\n const [providers, setProviders] = useState<PolicyProviderRepresentation[]>();\n const [policies, setPolicies] = useState<PolicyRepresentation[]>();\n const resourceTypes = useSortedResourceTypes({\n clientId: permissionClientId,\n });\n\n const resourceTypeScopes = useMemo(\n () =>\n resourceTypes\n .filter(({ type }) => type === resourceType)\n .flatMap(({ scopes = [] }) => scopes)\n .map((scope) => scope || \"\"),\n [resourceTypes, resourceType],\n );\n\n useFetch(\n async () => {\n if (!permissionClientId) {\n return {};\n }\n\n const [providers, policies] = await Promise.all([\n adminClient.clients.listPolicyProviders({ id: permissionClientId }),\n adminClient.clients.listPolicies({\n id: permissionClientId,\n permission: \"false\",\n }),\n ]);\n\n return { providers, policies };\n },\n ({ providers, policies }) => {\n const filteredProviders = providers?.filter(\n (p) => p.type !== \"resource\" && p.type !== \"scope\",\n );\n\n setProviders(\n sortBy(\n filteredProviders,\n (provider: PolicyProviderRepresentation) => provider.type,\n ),\n );\n setPolicies(policies || []);\n },\n [permissionClientId],\n );\n\n useFetch(\n async () => {\n if (!permissionId) {\n return {};\n }\n const [permission, resources, policies, scopes] = await Promise.all([\n adminClient.clients.findOnePermission({\n id: permissionClientId,\n type: \"scope\",\n permissionId,\n }),\n adminClient.clients.getAssociatedResources({\n id: permissionClientId,\n permissionId,\n }),\n adminClient.clients.getAssociatedPolicies({\n id: permissionClientId,\n permissionId,\n }),\n adminClient.clients.getAssociatedScopes({\n id: permissionClientId,\n permissionId,\n }),\n ]);\n\n if (!permission) {\n throw new Error(t(\"notFound\"));\n }\n\n return {\n permission,\n resources,\n policies,\n scopes,\n };\n },\n ({ permission, resources, policies, scopes }) => {\n const resourceIds = resources?.map((resource) => resource.name!) || [];\n const policyIds = policies?.map((policy) => policy.id!) || [];\n const scopeNames = scopes?.map((scope) => scope.name) || [];\n\n reset({\n ...permission,\n resources: resourceIds!,\n policies,\n scopes,\n });\n\n setPermission({\n ...permission,\n resources: resourceIds!,\n policies: policyIds,\n scopes: scopeNames,\n });\n },\n [permissionClientId, permissionId],\n );\n\n const save = async (permission: PolicyRepresentation) => {\n try {\n const newPermission = {\n ...permission,\n policies: permission.policies?.map((policy: any) => policy.id),\n scopes: permission.scopes?.map((scope: any) => scope.name),\n resourceType: resourceType,\n };\n\n if (permissionId) {\n await adminClient.clients.updatePermission(\n { id: permissionClientId, type: \"scope\", permissionId },\n newPermission,\n );\n } else {\n const result = await adminClient.clients.createPermission(\n { id: permissionClientId, type: \"scope\" },\n newPermission,\n );\n setPermission(result);\n navigate(\n toPermissionConfigurationDetails({\n realm,\n permissionClientId: permissionClientId,\n permissionId: result.id!,\n resourceType,\n }),\n );\n }\n\n addAlert(\n t(permissionId ? \"updatePermissionSuccess\" : \"createPermissionSuccess\"),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\"permissionSaveError\", error);\n }\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"deletePermission\",\n messageKey: t(\"deleteAdminPermissionConfirm\", {\n permission: permission?.name,\n }),\n continueButtonVariant: ButtonVariant.danger,\n continueButtonLabel: \"confirm\",\n onConfirm: async () => {\n try {\n await adminClient.clients.delPermission({\n id: permissionClientId!,\n type: \"scope\",\n permissionId: permissionId,\n });\n addAlert(t(\"permissionDeletedSuccess\"), AlertVariant.success);\n navigate(\n toPermissionsConfigurationTabs({\n realm,\n permissionClientId,\n tab: \"permissions\",\n }),\n );\n } catch (error) {\n addError(\"permissionDeletedError\", error);\n }\n },\n });\n\n if (permission === null || !providers) {\n return <KeycloakSpinner />;\n }\n\n return (\n <>\n <DeleteConfirm />\n <ViewHeader\n titleKey={permissionId ? permission.name! : t(\"createPermission\")}\n subKey={\n permissionId\n ? permission.description!\n : t(\"createPermissionOfType\", { resourceType })\n }\n dropdownItems={\n permissionId\n ? [\n <DropdownItem\n key=\"delete\"\n data-testid=\"delete-permission\"\n onClick={() => toggleDeleteDialog()}\n >\n {t(\"delete\")}\n </DropdownItem>,\n ]\n : undefined\n }\n />\n <PageSection variant=\"light\">\n <FormAccess isHorizontal onSubmit={handleSubmit(save)} role=\"anyone\">\n <FormProvider {...form}>\n <NameDescription clientId={permissionClientId} />\n <ScopePicker\n clientId={permissionClientId}\n resourceTypeScopes={resourceTypeScopes}\n />\n <ResourceType resourceType={resourceType} />\n <AssignedPolicies\n permissionClientId={permissionClientId}\n providers={providers!}\n policies={policies!}\n resourceType={resourceType}\n />\n </FormProvider>\n <ActionGroup>\n <div className=\"pf-v5-u-mt-md\">\n <Button\n variant={ButtonVariant.primary}\n className=\"pf-v5-u-mr-md\"\n type=\"submit\"\n data-testid=\"save\"\n >\n {t(\"save\")}\n </Button>\n <Button\n variant=\"link\"\n data-testid=\"cancel\"\n component={(props) => (\n <Link\n {...props}\n to={toPermissionsConfigurationTabs({\n realm,\n permissionClientId,\n tab: \"permissions\",\n })}\n />\n )}\n >\n {t(\"cancel\")}\n </Button>\n </div>\n </ActionGroup>\n </FormAccess>\n </PageSection>\n </>\n );\n}\n"],"names":["defaultValues","DecisionStrategy","Logic","COMPONENTS","Aggregate","Client","User","ClientScope","Group","Regex","Role","Time","JavaScript","isValidComponentType","value","NewPermissionPolicyDialog","permissionClientId","providers","policies","toggleDialog","onAssign","adminClient","useAdminClient","realmRepresentation","useRealm","t","useTranslation","form","useForm","addAlert","addError","useAlerts","handleSubmit","reset","isPermissionClient","policyTypeSelector","useWatch","getComponentType","ComponentType","useEffect","name","description","decisionStrategy","logic","save","policy","groups","roles","clients","rest","cleanedPolicy","createdPolicy","AlertVariant","error","jsx","Modal","ModalVariant","TextContent","Text","TextVariants","jsxs","Form","e","FormProvider","TextControl","SelectControl","provider","capitalize","LogicSelector","ActionGroup","Button","ButtonVariant","ExistingPoliciesDialog","open","rows","setRows","useState","filterType","setFilterType","isFilterTypeDropdownOpen","toggleIsFilterTypeDropdownOpen","useToggle","setProviders","useFetch","formattedProviders","p","sortBy","loader","first","max","search","params","Fragment","selectedPolicies","KeycloakDataTable","Dropdown","_","ref","MenuToggle","FilterIcon","CaretDownIcon","DropdownList","DropdownItem","selectedRows","capitalizeFirstLetterFormatter","ListEmptyState","AssignedPolicies","resourceType","control","getValues","setValue","trigger","errors","useFormContext","values","existingPoliciesOpen","setExistingPoliciesOpen","newPolicyOpen","setNewPolicyOpen","setSelectedPolicies","sortedProviders","assign","assignedPolicies","unAssign","updatedPolicies","selectedPolicy","filteredPolicies","FormGroup","HelpItem","Controller","id","newPolicy","event","rowData","FormErrorText","PermissionConfigurationDetails","realm","permissionId","useParams","navigate","useNavigate","permission","setPermission","setPolicies","resourceTypes","useSortedResourceTypes","resourceTypeScopes","useMemo","type","scopes","scope","filteredProviders","resources","resourceIds","resource","policyIds","scopeNames","newPermission","result","toPermissionConfigurationDetails","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","toPermissionsConfigurationTabs","KeycloakSpinner","ViewHeader","PageSection","FormAccess","NameDescription","ScopePicker","ResourceType","props","Link"],"mappings":"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"}
@@ -1,21 +1,21 @@
1
1
  import { jsx as s, jsxs as I, Fragment as B } from "react/jsx-runtime";
2
- import { u as _, am as $, n as G, an as Q, ao as W, ap as V, a4 as Y, b as J, aq as Z, q as ee, ar as se, aa as ae, l as H, e as z, as as k, at as ie, au as oe, V as te, Q as ne, av as re, P as le, c as ce, F as de, X as E, Y as pe, aw as C, ax as ue, a7 as P, ay as j, az as M, aA as U, R as me, A as fe, B as K, aB as he } from "./index-DBABpj90.js";
2
+ import { u as _, am as Q, v as G, an as X, ao as W, ap as V, a4 as Z, b as J, aq as Y, q as ee, ar as se, aa as ae, l as H, e as z, as as k, at as ie, au as oe, V as te, S as re, av as ne, P as le, c as ce, F as de, X as E, Z as pe, aw as C, ax as ue, a7 as P, ay as j, az as M, aA as U, R as me, A as fe, B as K, aB as he } from "./index-CAGzl0JA.js";
3
3
  import { useState as h, useRef as ge } from "react";
4
- import { useTranslation as X } from "react-i18next";
4
+ import { useTranslation as $ } from "react-i18next";
5
5
  import { useNavigate as ye, Link as be } from "react-router-dom";
6
6
  const Se = ({
7
7
  clientId: c,
8
8
  resourceId: e,
9
9
  preSelected: u
10
10
  }) => {
11
- const { adminClient: g } = _(), { t: R } = X(), {
11
+ const { adminClient: g } = _(), { t: R } = $(), {
12
12
  control: A,
13
13
  getValues: N,
14
14
  setValue: F,
15
- formState: { errors: n }
16
- } = $(), [m, r] = h([]), [a, y] = h(
15
+ formState: { errors: r }
16
+ } = Q(), [m, n] = h([]), [a, y] = h(
17
17
  []
18
- ), [p, f] = h(""), [b, D] = h(!1), S = ge(!0), q = N("scopes"), x = (l) => l.map((t) => /* @__PURE__ */ s(Y, { value: t, children: t.name }, t.id));
18
+ ), [p, f] = h(""), [b, D] = h(!1), S = ge(!0), q = N("scopes"), x = (l) => l.map((t) => /* @__PURE__ */ s(Z, { value: t, children: t.name }, t.id));
19
19
  return G(
20
20
  async () => e ? (e && !S.current && F("scopes", []), S.current = !1, g.clients.listScopesByResource({
21
21
  id: c,
@@ -27,13 +27,13 @@ const Se = ({
27
27
  )
28
28
  ),
29
29
  (l) => {
30
- r(l), p || y(
30
+ n(l), p || y(
31
31
  l.filter((t) => q?.includes(t.id))
32
32
  );
33
33
  },
34
34
  [e, p]
35
35
  ), /* @__PURE__ */ s(
36
- Q,
36
+ X,
37
37
  {
38
38
  name: "scopes",
39
39
  defaultValue: u ? [u] : [],
@@ -56,7 +56,7 @@ const Se = ({
56
56
  },
57
57
  isOpen: b,
58
58
  "aria-labelledby": R("scopes"),
59
- validated: n.scopes ? "error" : "default",
59
+ validated: r.scopes ? "error" : "default",
60
60
  isDisabled: !!u,
61
61
  typeAheadAriaLabel: R("scopes"),
62
62
  children: x(m)
@@ -66,34 +66,34 @@ const Se = ({
66
66
  );
67
67
  };
68
68
  function Re() {
69
- const { adminClient: c } = _(), { t: e } = X(), u = J({
69
+ const { adminClient: c } = _(), { t: e } = $(), u = J({
70
70
  mode: "onChange"
71
71
  }), {
72
72
  control: g,
73
73
  reset: R,
74
74
  formState: { errors: A },
75
75
  handleSubmit: N
76
- } = u, F = ye(), { id: n, realm: m, permissionType: r, permissionId: a, selectedId: y } = Z(), { addAlert: p, addError: f } = ee(), [b, D] = h(), [S, q] = h(!1), { hasAccess: x } = se(), l = !x("manage-authorization");
76
+ } = u, F = ye(), { id: r, realm: m, permissionType: n, permissionId: a, selectedId: y } = Y(), { addAlert: p, addError: f } = ee(), [b, D] = h(), [S, q] = h(!1), { hasAccess: x } = se(), l = !x("manage-authorization");
77
77
  G(
78
78
  async () => {
79
79
  if (!a)
80
80
  return {};
81
81
  const [i, o, L, O] = await Promise.all([
82
82
  c.clients.findOnePermission({
83
- id: n,
84
- type: r,
83
+ id: r,
84
+ type: n,
85
85
  permissionId: a
86
86
  }),
87
87
  c.clients.getAssociatedResources({
88
- id: n,
88
+ id: r,
89
89
  permissionId: a
90
90
  }),
91
91
  c.clients.getAssociatedPolicies({
92
- id: n,
92
+ id: r,
93
93
  permissionId: a
94
94
  }),
95
95
  c.clients.getAssociatedScopes({
96
- id: n,
96
+ id: r,
97
97
  permissionId: a
98
98
  })
99
99
  ]);
@@ -117,19 +117,19 @@ function Re() {
117
117
  try {
118
118
  if (a)
119
119
  await c.clients.updatePermission(
120
- { id: n, type: r, permissionId: a },
120
+ { id: r, type: n, permissionId: a },
121
121
  i
122
122
  );
123
123
  else {
124
124
  const o = await c.clients.createPermission(
125
- { id: n, type: r },
125
+ { id: r, type: n },
126
126
  i
127
127
  );
128
128
  D(o), F(
129
129
  he({
130
130
  realm: m,
131
- id: n,
132
- permissionType: r,
131
+ id: r,
132
+ permissionType: n,
133
133
  permissionId: o.id
134
134
  })
135
135
  );
@@ -151,11 +151,11 @@ function Re() {
151
151
  onConfirm: async () => {
152
152
  try {
153
153
  await c.clients.delPermission({
154
- id: n,
155
- type: r,
154
+ id: r,
155
+ type: n,
156
156
  permissionId: a
157
157
  }), p(e("permissionDeletedSuccess"), z.success), F(
158
- k({ realm: m, clientId: n, tab: "permissions" })
158
+ k({ realm: m, clientId: r, tab: "permissions" })
159
159
  );
160
160
  } catch (i) {
161
161
  f("permissionDeletedError", i);
@@ -171,10 +171,10 @@ function Re() {
171
171
  /* @__PURE__ */ s(
172
172
  te,
173
173
  {
174
- titleKey: a ? b.name : `create${re(r)}BasedPermission`,
174
+ titleKey: a ? b.name : `create${ne(n)}BasedPermission`,
175
175
  dropdownItems: a ? [
176
176
  /* @__PURE__ */ s(
177
- ne,
177
+ re,
178
178
  {
179
179
  "data-testid": "delete-resource",
180
180
  isDisabled: l,
@@ -252,7 +252,7 @@ function Re() {
252
252
  labelIcon: e("resourceTypeHelp"),
253
253
  rules: {
254
254
  required: {
255
- value: r === "scope",
255
+ value: n === "scope",
256
256
  message: e("required")
257
257
  }
258
258
  }
@@ -269,24 +269,24 @@ function Re() {
269
269
  fieldLabelId: "resources"
270
270
  }
271
271
  ),
272
- isRequired: r !== "scope",
272
+ isRequired: n !== "scope",
273
273
  children: [
274
274
  /* @__PURE__ */ s(
275
275
  j,
276
276
  {
277
277
  name: "resources",
278
- clientId: n,
278
+ clientId: r,
279
279
  permissionId: a,
280
- preSelected: r === "scope" ? void 0 : y,
281
- variant: r === "scope" ? V.typeahead : V.typeaheadMulti,
282
- isRequired: r !== "scope"
280
+ preSelected: n === "scope" ? void 0 : y,
281
+ variant: n === "scope" ? V.typeahead : V.typeaheadMulti,
282
+ isRequired: n !== "scope"
283
283
  }
284
284
  ),
285
285
  A.resources && /* @__PURE__ */ s(M, { message: e("required") })
286
286
  ]
287
287
  }
288
288
  ),
289
- r === "scope" && /* @__PURE__ */ I(
289
+ n === "scope" && /* @__PURE__ */ I(
290
290
  C,
291
291
  {
292
292
  label: e("authorizationScopes"),
@@ -303,7 +303,7 @@ function Re() {
303
303
  /* @__PURE__ */ s(
304
304
  Se,
305
305
  {
306
- clientId: n,
306
+ clientId: r,
307
307
  resourceId: d?.[0],
308
308
  preSelected: y
309
309
  }
@@ -328,7 +328,7 @@ function Re() {
328
328
  j,
329
329
  {
330
330
  name: "policies",
331
- clientId: n,
331
+ clientId: r,
332
332
  permissionId: a
333
333
  }
334
334
  )
@@ -348,7 +348,7 @@ function Re() {
348
348
  fieldId: "policyEnforcementMode",
349
349
  hasNoPaddingTop: !0,
350
350
  children: /* @__PURE__ */ s(
351
- Q,
351
+ X,
352
352
  {
353
353
  name: "decisionStrategy",
354
354
  "data-testid": "decisionStrategy",
@@ -393,7 +393,7 @@ function Re() {
393
393
  ...i,
394
394
  to: k({
395
395
  realm: m,
396
- clientId: n,
396
+ clientId: r,
397
397
  tab: "permissions"
398
398
  })
399
399
  }
@@ -410,4 +410,4 @@ function Re() {
410
410
  export {
411
411
  Re as default
412
412
  };
413
- //# sourceMappingURL=PermissionDetails-DYYwjTou.js.map
413
+ //# sourceMappingURL=PermissionDetails-D3stWiPT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionDetails-DYYwjTou.js","sources":["../src/clients/authorization/ScopeSelect.tsx","../src/clients/authorization/PermissionDetails.tsx"],"sourcesContent":["import type ScopeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/scopeRepresentation\";\nimport {\n KeycloakSelect,\n SelectVariant,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { SelectOption } from \"@patternfly/react-core\";\nimport { useRef, useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAdminClient } from \"../../admin-client\";\n\ntype ScopeSelectProps = {\n clientId: string;\n resourceId?: string;\n preSelected?: string;\n};\n\nexport const ScopeSelect = ({\n clientId,\n resourceId,\n preSelected,\n}: ScopeSelectProps) => {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n\n const {\n control,\n getValues,\n setValue,\n formState: { errors },\n } = useFormContext();\n\n const [scopes, setScopes] = useState<ScopeRepresentation[]>([]);\n const [selectedScopes, setSelectedScopes] = useState<ScopeRepresentation[]>(\n [],\n );\n const [search, setSearch] = useState(\"\");\n const [open, setOpen] = useState(false);\n const firstUpdate = useRef(true);\n\n const values: string[] | undefined = getValues(\"scopes\");\n\n const toSelectOptions = (scopes: ScopeRepresentation[]) =>\n scopes.map((scope) => (\n <SelectOption key={scope.id} value={scope}>\n {scope.name}\n </SelectOption>\n ));\n\n useFetch(\n async (): Promise<ScopeRepresentation[]> => {\n if (!resourceId) {\n return adminClient.clients.listAllScopes(\n Object.assign(\n { id: clientId, deep: false },\n search === \"\" ? null : { name: search },\n ),\n );\n }\n\n if (resourceId && !firstUpdate.current) {\n setValue(\"scopes\", []);\n }\n\n firstUpdate.current = false;\n return adminClient.clients.listScopesByResource({\n id: clientId,\n resourceName: resourceId,\n });\n },\n (scopes) => {\n setScopes(scopes);\n if (!search)\n setSelectedScopes(\n scopes.filter((s: ScopeRepresentation) => values?.includes(s.id!)),\n );\n },\n [resourceId, search],\n );\n\n return (\n <Controller\n name=\"scopes\"\n defaultValue={preSelected ? [preSelected] : []}\n control={control}\n rules={{ validate: (value) => value.length > 0 }}\n render={({ field }) => (\n <KeycloakSelect\n toggleId=\"scopes\"\n variant={SelectVariant.typeaheadMulti}\n onToggle={(val) => setOpen(val)}\n onFilter={(filter) => {\n setSearch(filter);\n return toSelectOptions(scopes);\n }}\n onClear={() => {\n field.onChange([]);\n setSearch(\"\");\n }}\n selections={selectedScopes.map((s) => s.name!)}\n onSelect={(selectedValue) => {\n const option =\n typeof selectedValue === \"string\"\n ? selectedScopes.find((s) => s.name === selectedValue)!\n : (selectedValue as ScopeRepresentation);\n const changedValue = selectedScopes.find((p) => p.id === option.id)\n ? selectedScopes.filter((p) => p.id !== option.id)\n : [...selectedScopes, option];\n\n field.onChange(changedValue.map((s) => s.id));\n setSelectedScopes(changedValue);\n setSearch(\"\");\n }}\n isOpen={open}\n aria-labelledby={t(\"scopes\")}\n validated={errors.scopes ? \"error\" : \"default\"}\n isDisabled={!!preSelected}\n typeAheadAriaLabel={t(\"scopes\")}\n >\n {toSelectOptions(scopes)}\n </KeycloakSelect>\n )}\n />\n );\n};\n","import type PolicyRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport { DecisionStrategy } from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport {\n FormErrorText,\n HelpItem,\n SelectVariant,\n TextAreaControl,\n TextControl,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n ButtonVariant,\n DropdownItem,\n FormGroup,\n PageSection,\n Radio,\n Switch,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { KeycloakSpinner } from \"@keycloak/keycloak-ui-shared\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useAccess } from \"../../context/access/Access\";\nimport { toUpperCase } from \"../../util\";\nimport { useParams } from \"../../utils/useParams\";\nimport { toAuthorizationTab } from \"../routes/AuthenticationTab\";\nimport type { NewPermissionParams } from \"../routes/NewPermission\";\nimport {\n PermissionDetailsParams,\n toPermissionDetails,\n} from \"../routes/PermissionDetails\";\nimport { ResourcesPolicySelect } from \"./ResourcesPolicySelect\";\nimport { ScopeSelect } from \"./ScopeSelect\";\n\ntype FormFields = PolicyRepresentation & {\n resourceType: string;\n};\n\nexport default function PermissionDetails() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n\n const form = useForm<FormFields>({\n mode: \"onChange\",\n });\n const {\n control,\n reset,\n formState: { errors },\n handleSubmit,\n } = form;\n\n const navigate = useNavigate();\n const { id, realm, permissionType, permissionId, selectedId } = useParams<\n NewPermissionParams & PermissionDetailsParams\n >();\n\n const { addAlert, addError } = useAlerts();\n const [permission, setPermission] = useState<PolicyRepresentation>();\n const [applyToResourceTypeFlag, setApplyToResourceTypeFlag] = useState(false);\n const { hasAccess } = useAccess();\n\n const isDisabled = !hasAccess(\"manage-authorization\");\n\n useFetch(\n async () => {\n if (!permissionId) {\n return {};\n }\n const [permission, resources, policies, scopes] = await Promise.all([\n adminClient.clients.findOnePermission({\n id,\n type: permissionType,\n permissionId,\n }),\n adminClient.clients.getAssociatedResources({\n id,\n permissionId,\n }),\n adminClient.clients.getAssociatedPolicies({\n id,\n permissionId,\n }),\n adminClient.clients.getAssociatedScopes({\n id,\n permissionId,\n }),\n ]);\n\n if (!permission) {\n throw new Error(t(\"notFound\"));\n }\n\n return {\n permission,\n resources: resources.map((r) => r._id),\n policies: policies.map((p) => p.id!),\n scopes: scopes.map((s) => s.id!),\n };\n },\n ({ permission, resources, policies, scopes }) => {\n reset({ ...permission, resources, policies, scopes });\n if (permission && \"resourceType\" in permission) {\n setApplyToResourceTypeFlag(\n !!(permission as { resourceType: string }).resourceType,\n );\n }\n setPermission({ ...permission, resources, policies });\n },\n [],\n );\n\n const save = async (permission: PolicyRepresentation) => {\n try {\n if (permissionId) {\n await adminClient.clients.updatePermission(\n { id, type: permissionType, permissionId },\n permission,\n );\n } else {\n const result = await adminClient.clients.createPermission(\n { id, type: permissionType },\n permission,\n );\n setPermission(result);\n navigate(\n toPermissionDetails({\n realm,\n id,\n permissionType,\n permissionId: result.id!,\n }),\n );\n }\n addAlert(\n t((permissionId ? \"update\" : \"create\") + \"PermissionSuccess\"),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\"permissionSaveError\", error);\n }\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"deletePermission\",\n messageKey: t(\"deletePermissionConfirm\", {\n permission: permission?.name,\n }),\n continueButtonVariant: ButtonVariant.danger,\n continueButtonLabel: \"confirm\",\n onConfirm: async () => {\n try {\n await adminClient.clients.delPermission({\n id,\n type: permissionType,\n permissionId: permissionId,\n });\n addAlert(t(\"permissionDeletedSuccess\"), AlertVariant.success);\n navigate(\n toAuthorizationTab({ realm, clientId: id, tab: \"permissions\" }),\n );\n } catch (error) {\n addError(\"permissionDeletedError\", error);\n }\n },\n });\n\n const resourcesIds = useWatch({\n control,\n name: \"resources\",\n defaultValue: [],\n });\n\n if (!permission) {\n return <KeycloakSpinner />;\n }\n\n return (\n <>\n <DeleteConfirm />\n <ViewHeader\n titleKey={\n permissionId\n ? permission.name!\n : `create${toUpperCase(permissionType)}BasedPermission`\n }\n dropdownItems={\n permissionId\n ? [\n <DropdownItem\n key=\"delete\"\n data-testid=\"delete-resource\"\n isDisabled={isDisabled}\n onClick={() => toggleDeleteDialog()}\n >\n {t(\"delete\")}\n </DropdownItem>,\n ]\n : undefined\n }\n />\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n role=\"manage-authorization\"\n onSubmit={handleSubmit(save)}\n >\n <FormProvider {...form}>\n <TextControl\n name=\"name\"\n label={t(\"name\")}\n labelIcon={t(\"permissionName\")}\n rules={{\n required: t(\"required\"),\n }}\n />\n <TextAreaControl\n name=\"description\"\n label={t(\"description\")}\n labelIcon={t(\"permissionDescription\")}\n rules={{\n maxLength: {\n value: 255,\n message: t(\"maxLength\", { length: 255 }),\n },\n }}\n />\n <FormGroup\n label={t(\"applyToResourceTypeFlag\")}\n fieldId=\"applyToResourceTypeFlag\"\n labelIcon={\n <HelpItem\n helpText={t(\"applyToResourceTypeFlagHelp\")}\n fieldLabelId=\"applyToResourceTypeFlag\"\n />\n }\n >\n <Switch\n id=\"applyToResourceTypeFlag\"\n name=\"applyToResourceTypeFlag\"\n label={t(\"on\")}\n labelOff={t(\"off\")}\n isChecked={applyToResourceTypeFlag}\n onChange={(_event, val) => setApplyToResourceTypeFlag(val)}\n aria-label={t(\"applyToResourceTypeFlag\")}\n />\n </FormGroup>\n {applyToResourceTypeFlag ? (\n <TextControl\n name=\"resourceType\"\n label={t(\"resourceType\")}\n labelIcon={t(\"resourceTypeHelp\")}\n rules={{\n required: {\n value: permissionType === \"scope\" ? true : false,\n message: t(\"required\"),\n },\n }}\n />\n ) : (\n <FormGroup\n label={t(\"resource\")}\n fieldId=\"resources\"\n labelIcon={\n <HelpItem\n helpText={t(\"permissionResources\")}\n fieldLabelId=\"resources\"\n />\n }\n isRequired={permissionType !== \"scope\"}\n >\n <ResourcesPolicySelect\n name=\"resources\"\n clientId={id}\n permissionId={permissionId}\n preSelected={\n permissionType === \"scope\" ? undefined : selectedId\n }\n variant={\n permissionType === \"scope\"\n ? SelectVariant.typeahead\n : SelectVariant.typeaheadMulti\n }\n isRequired={permissionType !== \"scope\"}\n />\n {errors.resources && <FormErrorText message={t(\"required\")} />}\n </FormGroup>\n )}\n {permissionType === \"scope\" && (\n <FormGroup\n label={t(\"authorizationScopes\")}\n fieldId=\"scopes\"\n labelIcon={\n <HelpItem\n helpText={t(\"permissionScopesHelp\")}\n fieldLabelId=\"scopesSelect\"\n />\n }\n isRequired\n >\n <ScopeSelect\n clientId={id}\n resourceId={resourcesIds?.[0]}\n preSelected={selectedId}\n />\n {errors.scopes && <FormErrorText message={t(\"required\")} />}\n </FormGroup>\n )}\n <FormGroup\n label={t(\"policies\")}\n fieldId=\"policies\"\n labelIcon={\n <HelpItem\n helpText={t(\"permissionPoliciesHelp\")}\n fieldLabelId=\"policies\"\n />\n }\n >\n <ResourcesPolicySelect\n name=\"policies\"\n clientId={id}\n permissionId={permissionId}\n />\n </FormGroup>\n <FormGroup\n label={t(\"decisionStrategy\")}\n labelIcon={\n <HelpItem\n helpText={t(\"permissionDecisionStrategyHelp\")}\n fieldLabelId=\"decisionStrategy\"\n />\n }\n fieldId=\"policyEnforcementMode\"\n hasNoPaddingTop\n >\n <Controller\n name=\"decisionStrategy\"\n data-testid=\"decisionStrategy\"\n defaultValue={DecisionStrategy.UNANIMOUS}\n control={control}\n render={({ field }) => (\n <>\n {Object.values(DecisionStrategy).map((strategy) => (\n <Radio\n id={strategy}\n key={strategy}\n data-testid={strategy}\n isChecked={field.value === strategy}\n isDisabled={isDisabled}\n name=\"decisionStrategies\"\n onChange={() => field.onChange(strategy)}\n label={t(`decisionStrategies.${strategy}`)}\n className=\"pf-v5-u-mb-md\"\n />\n ))}\n </>\n )}\n />\n </FormGroup>\n <ActionGroup>\n <div className=\"pf-v5-u-mt-md\">\n <Button\n variant={ButtonVariant.primary}\n type=\"submit\"\n data-testid=\"save\"\n >\n {t(\"save\")}\n </Button>\n\n <Button\n variant=\"link\"\n data-testid=\"cancel\"\n component={(props) => (\n <Link\n {...props}\n to={toAuthorizationTab({\n realm,\n clientId: id,\n tab: \"permissions\",\n })}\n ></Link>\n )}\n >\n {t(\"cancel\")}\n </Button>\n </div>\n </ActionGroup>\n </FormProvider>\n </FormAccess>\n </PageSection>\n </>\n );\n}\n"],"names":["ScopeSelect","clientId","resourceId","preSelected","adminClient","useAdminClient","t","useTranslation","control","getValues","setValue","errors","useFormContext","scopes","setScopes","useState","selectedScopes","setSelectedScopes","search","setSearch","open","setOpen","firstUpdate","useRef","values","toSelectOptions","scope","jsx","SelectOption","useFetch","s","Controller","value","field","KeycloakSelect","SelectVariant","val","filter","selectedValue","option","changedValue","p","PermissionDetails","form","useForm","reset","handleSubmit","navigate","useNavigate","id","realm","permissionType","permissionId","selectedId","useParams","addAlert","addError","useAlerts","permission","setPermission","applyToResourceTypeFlag","setApplyToResourceTypeFlag","hasAccess","useAccess","isDisabled","resources","policies","r","save","result","toPermissionDetails","AlertVariant","error","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","ButtonVariant","toAuthorizationTab","resourcesIds","useWatch","jsxs","Fragment","ViewHeader","toUpperCase","DropdownItem","PageSection","FormAccess","FormProvider","TextControl","TextAreaControl","FormGroup","HelpItem","Switch","_event","ResourcesPolicySelect","FormErrorText","DecisionStrategy","strategy","Radio","ActionGroup","Button","props","Link","KeycloakSpinner"],"mappings":"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"}
1
+ {"version":3,"file":"PermissionDetails-D3stWiPT.js","sources":["../src/clients/authorization/ScopeSelect.tsx","../src/clients/authorization/PermissionDetails.tsx"],"sourcesContent":["import type ScopeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/scopeRepresentation\";\nimport {\n KeycloakSelect,\n SelectVariant,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { SelectOption } from \"@patternfly/react-core\";\nimport { useRef, useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAdminClient } from \"../../admin-client\";\n\ntype ScopeSelectProps = {\n clientId: string;\n resourceId?: string;\n preSelected?: string;\n};\n\nexport const ScopeSelect = ({\n clientId,\n resourceId,\n preSelected,\n}: ScopeSelectProps) => {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n\n const {\n control,\n getValues,\n setValue,\n formState: { errors },\n } = useFormContext();\n\n const [scopes, setScopes] = useState<ScopeRepresentation[]>([]);\n const [selectedScopes, setSelectedScopes] = useState<ScopeRepresentation[]>(\n [],\n );\n const [search, setSearch] = useState(\"\");\n const [open, setOpen] = useState(false);\n const firstUpdate = useRef(true);\n\n const values: string[] | undefined = getValues(\"scopes\");\n\n const toSelectOptions = (scopes: ScopeRepresentation[]) =>\n scopes.map((scope) => (\n <SelectOption key={scope.id} value={scope}>\n {scope.name}\n </SelectOption>\n ));\n\n useFetch(\n async (): Promise<ScopeRepresentation[]> => {\n if (!resourceId) {\n return adminClient.clients.listAllScopes(\n Object.assign(\n { id: clientId, deep: false },\n search === \"\" ? null : { name: search },\n ),\n );\n }\n\n if (resourceId && !firstUpdate.current) {\n setValue(\"scopes\", []);\n }\n\n firstUpdate.current = false;\n return adminClient.clients.listScopesByResource({\n id: clientId,\n resourceName: resourceId,\n });\n },\n (scopes) => {\n setScopes(scopes);\n if (!search)\n setSelectedScopes(\n scopes.filter((s: ScopeRepresentation) => values?.includes(s.id!)),\n );\n },\n [resourceId, search],\n );\n\n return (\n <Controller\n name=\"scopes\"\n defaultValue={preSelected ? [preSelected] : []}\n control={control}\n rules={{ validate: (value) => value.length > 0 }}\n render={({ field }) => (\n <KeycloakSelect\n toggleId=\"scopes\"\n variant={SelectVariant.typeaheadMulti}\n onToggle={(val) => setOpen(val)}\n onFilter={(filter) => {\n setSearch(filter);\n return toSelectOptions(scopes);\n }}\n onClear={() => {\n field.onChange([]);\n setSearch(\"\");\n }}\n selections={selectedScopes.map((s) => s.name!)}\n onSelect={(selectedValue) => {\n const option =\n typeof selectedValue === \"string\"\n ? selectedScopes.find((s) => s.name === selectedValue)!\n : (selectedValue as ScopeRepresentation);\n const changedValue = selectedScopes.find((p) => p.id === option.id)\n ? selectedScopes.filter((p) => p.id !== option.id)\n : [...selectedScopes, option];\n\n field.onChange(changedValue.map((s) => s.id));\n setSelectedScopes(changedValue);\n setSearch(\"\");\n }}\n isOpen={open}\n aria-labelledby={t(\"scopes\")}\n validated={errors.scopes ? \"error\" : \"default\"}\n isDisabled={!!preSelected}\n typeAheadAriaLabel={t(\"scopes\")}\n >\n {toSelectOptions(scopes)}\n </KeycloakSelect>\n )}\n />\n );\n};\n","import type PolicyRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport { DecisionStrategy } from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport {\n FormErrorText,\n HelpItem,\n SelectVariant,\n TextAreaControl,\n TextControl,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n ButtonVariant,\n DropdownItem,\n FormGroup,\n PageSection,\n Radio,\n Switch,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { KeycloakSpinner } from \"@keycloak/keycloak-ui-shared\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useAccess } from \"../../context/access/Access\";\nimport { toUpperCase } from \"../../util\";\nimport { useParams } from \"../../utils/useParams\";\nimport { toAuthorizationTab } from \"../routes/AuthenticationTab\";\nimport type { NewPermissionParams } from \"../routes/NewPermission\";\nimport {\n PermissionDetailsParams,\n toPermissionDetails,\n} from \"../routes/PermissionDetails\";\nimport { ResourcesPolicySelect } from \"./ResourcesPolicySelect\";\nimport { ScopeSelect } from \"./ScopeSelect\";\n\ntype FormFields = PolicyRepresentation & {\n resourceType: string;\n};\n\nexport default function PermissionDetails() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n\n const form = useForm<FormFields>({\n mode: \"onChange\",\n });\n const {\n control,\n reset,\n formState: { errors },\n handleSubmit,\n } = form;\n\n const navigate = useNavigate();\n const { id, realm, permissionType, permissionId, selectedId } = useParams<\n NewPermissionParams & PermissionDetailsParams\n >();\n\n const { addAlert, addError } = useAlerts();\n const [permission, setPermission] = useState<PolicyRepresentation>();\n const [applyToResourceTypeFlag, setApplyToResourceTypeFlag] = useState(false);\n const { hasAccess } = useAccess();\n\n const isDisabled = !hasAccess(\"manage-authorization\");\n\n useFetch(\n async () => {\n if (!permissionId) {\n return {};\n }\n const [permission, resources, policies, scopes] = await Promise.all([\n adminClient.clients.findOnePermission({\n id,\n type: permissionType,\n permissionId,\n }),\n adminClient.clients.getAssociatedResources({\n id,\n permissionId,\n }),\n adminClient.clients.getAssociatedPolicies({\n id,\n permissionId,\n }),\n adminClient.clients.getAssociatedScopes({\n id,\n permissionId,\n }),\n ]);\n\n if (!permission) {\n throw new Error(t(\"notFound\"));\n }\n\n return {\n permission,\n resources: resources.map((r) => r._id),\n policies: policies.map((p) => p.id!),\n scopes: scopes.map((s) => s.id!),\n };\n },\n ({ permission, resources, policies, scopes }) => {\n reset({ ...permission, resources, policies, scopes });\n if (permission && \"resourceType\" in permission) {\n setApplyToResourceTypeFlag(\n !!(permission as { resourceType: string }).resourceType,\n );\n }\n setPermission({ ...permission, resources, policies });\n },\n [],\n );\n\n const save = async (permission: PolicyRepresentation) => {\n try {\n if (permissionId) {\n await adminClient.clients.updatePermission(\n { id, type: permissionType, permissionId },\n permission,\n );\n } else {\n const result = await adminClient.clients.createPermission(\n { id, type: permissionType },\n permission,\n );\n setPermission(result);\n navigate(\n toPermissionDetails({\n realm,\n id,\n permissionType,\n permissionId: result.id!,\n }),\n );\n }\n addAlert(\n t((permissionId ? \"update\" : \"create\") + \"PermissionSuccess\"),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\"permissionSaveError\", error);\n }\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"deletePermission\",\n messageKey: t(\"deletePermissionConfirm\", {\n permission: permission?.name,\n }),\n continueButtonVariant: ButtonVariant.danger,\n continueButtonLabel: \"confirm\",\n onConfirm: async () => {\n try {\n await adminClient.clients.delPermission({\n id,\n type: permissionType,\n permissionId: permissionId,\n });\n addAlert(t(\"permissionDeletedSuccess\"), AlertVariant.success);\n navigate(\n toAuthorizationTab({ realm, clientId: id, tab: \"permissions\" }),\n );\n } catch (error) {\n addError(\"permissionDeletedError\", error);\n }\n },\n });\n\n const resourcesIds = useWatch({\n control,\n name: \"resources\",\n defaultValue: [],\n });\n\n if (!permission) {\n return <KeycloakSpinner />;\n }\n\n return (\n <>\n <DeleteConfirm />\n <ViewHeader\n titleKey={\n permissionId\n ? permission.name!\n : `create${toUpperCase(permissionType)}BasedPermission`\n }\n dropdownItems={\n permissionId\n ? [\n <DropdownItem\n key=\"delete\"\n data-testid=\"delete-resource\"\n isDisabled={isDisabled}\n onClick={() => toggleDeleteDialog()}\n >\n {t(\"delete\")}\n </DropdownItem>,\n ]\n : undefined\n }\n />\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n role=\"manage-authorization\"\n onSubmit={handleSubmit(save)}\n >\n <FormProvider {...form}>\n <TextControl\n name=\"name\"\n label={t(\"name\")}\n labelIcon={t(\"permissionName\")}\n rules={{\n required: t(\"required\"),\n }}\n />\n <TextAreaControl\n name=\"description\"\n label={t(\"description\")}\n labelIcon={t(\"permissionDescription\")}\n rules={{\n maxLength: {\n value: 255,\n message: t(\"maxLength\", { length: 255 }),\n },\n }}\n />\n <FormGroup\n label={t(\"applyToResourceTypeFlag\")}\n fieldId=\"applyToResourceTypeFlag\"\n labelIcon={\n <HelpItem\n helpText={t(\"applyToResourceTypeFlagHelp\")}\n fieldLabelId=\"applyToResourceTypeFlag\"\n />\n }\n >\n <Switch\n id=\"applyToResourceTypeFlag\"\n name=\"applyToResourceTypeFlag\"\n label={t(\"on\")}\n labelOff={t(\"off\")}\n isChecked={applyToResourceTypeFlag}\n onChange={(_event, val) => setApplyToResourceTypeFlag(val)}\n aria-label={t(\"applyToResourceTypeFlag\")}\n />\n </FormGroup>\n {applyToResourceTypeFlag ? (\n <TextControl\n name=\"resourceType\"\n label={t(\"resourceType\")}\n labelIcon={t(\"resourceTypeHelp\")}\n rules={{\n required: {\n value: permissionType === \"scope\" ? true : false,\n message: t(\"required\"),\n },\n }}\n />\n ) : (\n <FormGroup\n label={t(\"resource\")}\n fieldId=\"resources\"\n labelIcon={\n <HelpItem\n helpText={t(\"permissionResources\")}\n fieldLabelId=\"resources\"\n />\n }\n isRequired={permissionType !== \"scope\"}\n >\n <ResourcesPolicySelect\n name=\"resources\"\n clientId={id}\n permissionId={permissionId}\n preSelected={\n permissionType === \"scope\" ? undefined : selectedId\n }\n variant={\n permissionType === \"scope\"\n ? SelectVariant.typeahead\n : SelectVariant.typeaheadMulti\n }\n isRequired={permissionType !== \"scope\"}\n />\n {errors.resources && <FormErrorText message={t(\"required\")} />}\n </FormGroup>\n )}\n {permissionType === \"scope\" && (\n <FormGroup\n label={t(\"authorizationScopes\")}\n fieldId=\"scopes\"\n labelIcon={\n <HelpItem\n helpText={t(\"permissionScopesHelp\")}\n fieldLabelId=\"scopesSelect\"\n />\n }\n isRequired\n >\n <ScopeSelect\n clientId={id}\n resourceId={resourcesIds?.[0]}\n preSelected={selectedId}\n />\n {errors.scopes && <FormErrorText message={t(\"required\")} />}\n </FormGroup>\n )}\n <FormGroup\n label={t(\"policies\")}\n fieldId=\"policies\"\n labelIcon={\n <HelpItem\n helpText={t(\"permissionPoliciesHelp\")}\n fieldLabelId=\"policies\"\n />\n }\n >\n <ResourcesPolicySelect\n name=\"policies\"\n clientId={id}\n permissionId={permissionId}\n />\n </FormGroup>\n <FormGroup\n label={t(\"decisionStrategy\")}\n labelIcon={\n <HelpItem\n helpText={t(\"permissionDecisionStrategyHelp\")}\n fieldLabelId=\"decisionStrategy\"\n />\n }\n fieldId=\"policyEnforcementMode\"\n hasNoPaddingTop\n >\n <Controller\n name=\"decisionStrategy\"\n data-testid=\"decisionStrategy\"\n defaultValue={DecisionStrategy.UNANIMOUS}\n control={control}\n render={({ field }) => (\n <>\n {Object.values(DecisionStrategy).map((strategy) => (\n <Radio\n id={strategy}\n key={strategy}\n data-testid={strategy}\n isChecked={field.value === strategy}\n isDisabled={isDisabled}\n name=\"decisionStrategies\"\n onChange={() => field.onChange(strategy)}\n label={t(`decisionStrategies.${strategy}`)}\n className=\"pf-v5-u-mb-md\"\n />\n ))}\n </>\n )}\n />\n </FormGroup>\n <ActionGroup>\n <div className=\"pf-v5-u-mt-md\">\n <Button\n variant={ButtonVariant.primary}\n type=\"submit\"\n data-testid=\"save\"\n >\n {t(\"save\")}\n </Button>\n\n <Button\n variant=\"link\"\n data-testid=\"cancel\"\n component={(props) => (\n <Link\n {...props}\n to={toAuthorizationTab({\n realm,\n clientId: id,\n tab: \"permissions\",\n })}\n ></Link>\n )}\n >\n {t(\"cancel\")}\n </Button>\n </div>\n </ActionGroup>\n </FormProvider>\n </FormAccess>\n </PageSection>\n </>\n );\n}\n"],"names":["ScopeSelect","clientId","resourceId","preSelected","adminClient","useAdminClient","t","useTranslation","control","getValues","setValue","errors","useFormContext","scopes","setScopes","useState","selectedScopes","setSelectedScopes","search","setSearch","open","setOpen","firstUpdate","useRef","values","toSelectOptions","scope","jsx","SelectOption","useFetch","s","Controller","value","field","KeycloakSelect","SelectVariant","val","filter","selectedValue","option","changedValue","p","PermissionDetails","form","useForm","reset","handleSubmit","navigate","useNavigate","id","realm","permissionType","permissionId","selectedId","useParams","addAlert","addError","useAlerts","permission","setPermission","applyToResourceTypeFlag","setApplyToResourceTypeFlag","hasAccess","useAccess","isDisabled","resources","policies","r","save","result","toPermissionDetails","AlertVariant","error","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","ButtonVariant","toAuthorizationTab","resourcesIds","useWatch","jsxs","Fragment","ViewHeader","toUpperCase","DropdownItem","PageSection","FormAccess","FormProvider","TextControl","TextAreaControl","FormGroup","HelpItem","Switch","_event","ResourcesPolicySelect","FormErrorText","DecisionStrategy","strategy","Radio","ActionGroup","Button","props","Link","KeycloakSpinner"],"mappings":"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"}