@keycloak/keycloak-admin-ui 26.0.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 (531) hide show
  1. package/LICENSE.txt +202 -0
  2. package/README.md +59 -0
  3. package/lib/.vite/manifest.json +105 -0
  4. package/lib/App.d.ts +1 -0
  5. package/lib/Banners.d.ts +1 -0
  6. package/lib/CreateFlow-Cs5xTx-G.js +80 -0
  7. package/lib/CreateFlow-Cs5xTx-G.js.map +1 -0
  8. package/lib/DetailOrganization-qj8m2QUy.js +130 -0
  9. package/lib/DetailOrganization-qj8m2QUy.js.map +1 -0
  10. package/lib/ExecutorForm-DwNxoZuZ.js +198 -0
  11. package/lib/ExecutorForm-DwNxoZuZ.js.map +1 -0
  12. package/lib/FlowDetails-BMYNGuYV.js +10593 -0
  13. package/lib/FlowDetails-BMYNGuYV.js.map +1 -0
  14. package/lib/ForbiddenSection.d.ts +6 -0
  15. package/lib/NewOrganization-FsgFNfEd.js +36 -0
  16. package/lib/NewOrganization-FsgFNfEd.js.map +1 -0
  17. package/lib/PageHeader.d.ts +1 -0
  18. package/lib/PageNav.d.ts +1 -0
  19. package/lib/PageNotFoundSection.d.ts +1 -0
  20. package/lib/PermissionDetails-9Ej9jFpb.js +413 -0
  21. package/lib/PermissionDetails-9Ej9jFpb.js.map +1 -0
  22. package/lib/ResourceDetails-apuGPq7h.js +286 -0
  23. package/lib/ResourceDetails-apuGPq7h.js.map +1 -0
  24. package/lib/Root.d.ts +1 -0
  25. package/lib/ScopeDetails-CxuBwUaZ.js +153 -0
  26. package/lib/ScopeDetails-CxuBwUaZ.js.map +1 -0
  27. package/lib/admin-client.d.ts +10 -0
  28. package/lib/authentication/AuthenticationSection.d.ts +14 -0
  29. package/lib/authentication/BindFlowDialog.d.ts +6 -0
  30. package/lib/authentication/BuildInLabel.d.ts +1 -0
  31. package/lib/authentication/DuplicateFlowModal.d.ts +8 -0
  32. package/lib/authentication/EditFlowModal.d.ts +7 -0
  33. package/lib/authentication/EmptyExecutionState.d.ts +10 -0
  34. package/lib/authentication/FlowDetails.d.ts +3 -0
  35. package/lib/authentication/RequiredActions.d.ts +1 -0
  36. package/lib/authentication/components/AddFlowDropdown.d.ts +10 -0
  37. package/lib/authentication/components/DraggableTable.d.ts +20 -0
  38. package/lib/authentication/components/EditFlow.d.ts +7 -0
  39. package/lib/authentication/components/ExecutionConfigModal.d.ts +6 -0
  40. package/lib/authentication/components/FlowDiagram.d.ts +6 -0
  41. package/lib/authentication/components/FlowHeader.d.ts +1 -0
  42. package/lib/authentication/components/FlowRequirementDropdown.d.ts +7 -0
  43. package/lib/authentication/components/FlowRow.d.ts +14 -0
  44. package/lib/authentication/components/FlowTitle.d.ts +7 -0
  45. package/lib/authentication/components/RequiredActionConfigModal.d.ts +7 -0
  46. package/lib/authentication/components/UsedBy.d.ts +6 -0
  47. package/lib/authentication/components/diagram/ButtonEdge.d.ts +13 -0
  48. package/lib/authentication/components/diagram/ConditionalNode.d.ts +8 -0
  49. package/lib/authentication/components/diagram/SubFlowNode.d.ts +13 -0
  50. package/lib/authentication/components/diagram/auto-layout.d.ts +3 -0
  51. package/lib/authentication/components/modals/AddStepModal.d.ts +9 -0
  52. package/lib/authentication/components/modals/AddSubFlowModal.d.ts +14 -0
  53. package/lib/authentication/execution-model.d.ts +25 -0
  54. package/lib/authentication/form/CreateFlow.d.ts +1 -0
  55. package/lib/authentication/form/NameDescription.d.ts +1 -0
  56. package/lib/authentication/policies/CibaPolicy.d.ts +7 -0
  57. package/lib/authentication/policies/OtpPolicy.d.ts +7 -0
  58. package/lib/authentication/policies/PasswordPolicy.d.ts +7 -0
  59. package/lib/authentication/policies/Policies.d.ts +1 -0
  60. package/lib/authentication/policies/PolicyRow.d.ts +7 -0
  61. package/lib/authentication/policies/WebauthnPolicy.d.ts +8 -0
  62. package/lib/authentication/policies/util.d.ts +10 -0
  63. package/lib/authentication/routes/Authentication.d.ts +10 -0
  64. package/lib/authentication/routes/CreateFlow.d.ts +7 -0
  65. package/lib/authentication/routes/Flow.d.ts +11 -0
  66. package/lib/authentication/routes.d.ts +3 -0
  67. package/lib/client-scopes/ChangeTypeDropdown.d.ts +8 -0
  68. package/lib/client-scopes/ClientScopesSection.d.ts +1 -0
  69. package/lib/client-scopes/CreateClientScope.d.ts +1 -0
  70. package/lib/client-scopes/EditClientScope.d.ts +1 -0
  71. package/lib/client-scopes/add/MapperDialog.d.ts +12 -0
  72. package/lib/client-scopes/details/MapperList.d.ts +13 -0
  73. package/lib/client-scopes/details/MappingDetails.d.ts +1 -0
  74. package/lib/client-scopes/details/ScopeForm.d.ts +8 -0
  75. package/lib/client-scopes/details/SearchFilter.d.ts +22 -0
  76. package/lib/client-scopes/routes/ClientScope.d.ts +10 -0
  77. package/lib/client-scopes/routes/ClientScopes.d.ts +7 -0
  78. package/lib/client-scopes/routes/Mapper.d.ts +9 -0
  79. package/lib/client-scopes/routes/NewClientScope.d.ts +7 -0
  80. package/lib/client-scopes/routes.d.ts +3 -0
  81. package/lib/clients/AdvancedTab.d.ts +11 -0
  82. package/lib/clients/ClientDescription.d.ts +6 -0
  83. package/lib/clients/ClientDetails.d.ts +7 -0
  84. package/lib/clients/ClientSessions.d.ts +6 -0
  85. package/lib/clients/ClientSettings.d.ts +7 -0
  86. package/lib/clients/ClientsSection.d.ts +1 -0
  87. package/lib/clients/add/AccessSettings.d.ts +2 -0
  88. package/lib/clients/add/CapabilityConfig.d.ts +6 -0
  89. package/lib/clients/add/GeneralSettings.d.ts +1 -0
  90. package/lib/clients/add/LoginSettings.d.ts +5 -0
  91. package/lib/clients/add/LoginSettingsPanel.d.ts +3 -0
  92. package/lib/clients/add/LogoutPanel.d.ts +2 -0
  93. package/lib/clients/add/NewClientForm.d.ts +1 -0
  94. package/lib/clients/add/SamlConfig.d.ts +9 -0
  95. package/lib/clients/add/SamlSignature.d.ts +1 -0
  96. package/lib/clients/advanced/AddHostDialog.d.ts +8 -0
  97. package/lib/clients/advanced/AdvancedSettings.d.ts +8 -0
  98. package/lib/clients/advanced/ApplicationUrls.d.ts +5 -0
  99. package/lib/clients/advanced/AuthenticationOverrides.d.ts +8 -0
  100. package/lib/clients/advanced/ClusteringPanel.d.ts +2 -0
  101. package/lib/clients/advanced/FineGrainOpenIdConnect.d.ts +7 -0
  102. package/lib/clients/advanced/FineGrainSamlEndpointConfig.d.ts +6 -0
  103. package/lib/clients/advanced/OpenIdConnectCompatibilityModes.d.ts +7 -0
  104. package/lib/clients/advanced/TokenLifespan.d.ts +9 -0
  105. package/lib/clients/authorization/AuthorizationDataModal.d.ts +6 -0
  106. package/lib/clients/authorization/AuthorizationEvaluate.d.ts +36 -0
  107. package/lib/clients/authorization/AuthorizationEvaluateResource.d.ts +8 -0
  108. package/lib/clients/authorization/AuthorizationEvaluateResourcePolicies.d.ts +10 -0
  109. package/lib/clients/authorization/AuthorizationExport.d.ts +1 -0
  110. package/lib/clients/authorization/DecisionStrategySelect.d.ts +7 -0
  111. package/lib/clients/authorization/DeleteScopeDialog.d.ts +11 -0
  112. package/lib/clients/authorization/DetailCell.d.ts +7 -0
  113. package/lib/clients/authorization/DetailDescription.d.ts +12 -0
  114. package/lib/clients/authorization/EmptyPermissionsState.d.ts +7 -0
  115. package/lib/clients/authorization/ImportDialog.d.ts +7 -0
  116. package/lib/clients/authorization/KeyBasedAttributeInput.d.ts +16 -0
  117. package/lib/clients/authorization/MoreLabel.d.ts +5 -0
  118. package/lib/clients/authorization/NewPolicyDialog.d.ts +8 -0
  119. package/lib/clients/authorization/PermissionDetails.d.ts +1 -0
  120. package/lib/clients/authorization/Permissions.d.ts +6 -0
  121. package/lib/clients/authorization/Policies.d.ts +6 -0
  122. package/lib/clients/authorization/ResourceDetails.d.ts +1 -0
  123. package/lib/clients/authorization/Resources.d.ts +6 -0
  124. package/lib/clients/authorization/ResourcesPolicySelect.d.ts +12 -0
  125. package/lib/clients/authorization/ScopeDetails.d.ts +1 -0
  126. package/lib/clients/authorization/ScopePicker.d.ts +3 -0
  127. package/lib/clients/authorization/ScopeSelect.d.ts +7 -0
  128. package/lib/clients/authorization/Scopes.d.ts +12 -0
  129. package/lib/clients/authorization/SearchDropdown.d.ts +17 -0
  130. package/lib/clients/authorization/Settings.d.ts +5 -0
  131. package/lib/clients/authorization/evaluate/Results.d.ts +8 -0
  132. package/lib/clients/authorization/policy/Aggregate.d.ts +1 -0
  133. package/lib/clients/authorization/policy/Client.d.ts +1 -0
  134. package/lib/clients/authorization/policy/ClientScope.d.ts +5 -0
  135. package/lib/clients/authorization/policy/Group.d.ts +5 -0
  136. package/lib/clients/authorization/policy/JavaScript.d.ts +1 -0
  137. package/lib/clients/authorization/policy/LogicSelector.d.ts +5 -0
  138. package/lib/clients/authorization/policy/NameDescription.d.ts +5 -0
  139. package/lib/clients/authorization/policy/PolicyDetails.d.ts +2 -0
  140. package/lib/clients/authorization/policy/Regex.d.ts +1 -0
  141. package/lib/clients/authorization/policy/Role.d.ts +1 -0
  142. package/lib/clients/authorization/policy/Time.d.ts +1 -0
  143. package/lib/clients/authorization/policy/User.d.ts +1 -0
  144. package/lib/clients/credentials/ClientSecret.d.ts +7 -0
  145. package/lib/clients/credentials/Credentials.d.ts +7 -0
  146. package/lib/clients/credentials/SignedJWT.d.ts +5 -0
  147. package/lib/clients/credentials/X509.d.ts +1 -0
  148. package/lib/clients/import/ImportForm.d.ts +1 -0
  149. package/lib/clients/initial-access/AccessTokenDialog.d.ts +6 -0
  150. package/lib/clients/initial-access/CreateInitialAccessToken.d.ts +1 -0
  151. package/lib/clients/initial-access/InitialAccessTokenList.d.ts +1 -0
  152. package/lib/clients/keys/Certificate.d.ts +10 -0
  153. package/lib/clients/keys/ExportSamlKeyDialog.d.ts +8 -0
  154. package/lib/clients/keys/GenerateKeyDialog.d.ts +15 -0
  155. package/lib/clients/keys/ImportKeyDialog.d.ts +15 -0
  156. package/lib/clients/keys/Keys.d.ts +7 -0
  157. package/lib/clients/keys/SamlImportKeyDialog.d.ts +8 -0
  158. package/lib/clients/keys/SamlKeys.d.ts +8 -0
  159. package/lib/clients/keys/SamlKeysDialog.d.ts +15 -0
  160. package/lib/clients/keys/StoreSettings.d.ts +4 -0
  161. package/lib/clients/registration/AddProviderDialog.d.ts +6 -0
  162. package/lib/clients/registration/ClientRegistration.d.ts +1 -0
  163. package/lib/clients/registration/ClientRegistrationList.d.ts +5 -0
  164. package/lib/clients/registration/DetailProvider.d.ts +1 -0
  165. package/lib/clients/roles/CreateClientRole.d.ts +1 -0
  166. package/lib/clients/routes/AddClient.d.ts +7 -0
  167. package/lib/clients/routes/AddRegistrationProvider.d.ts +12 -0
  168. package/lib/clients/routes/AuthenticationTab.d.ts +10 -0
  169. package/lib/clients/routes/Client.d.ts +10 -0
  170. package/lib/clients/routes/ClientRegistration.d.ts +9 -0
  171. package/lib/clients/routes/ClientRole.d.ts +11 -0
  172. package/lib/clients/routes/ClientScopeTab.d.ts +10 -0
  173. package/lib/clients/routes/Clients.d.ts +10 -0
  174. package/lib/clients/routes/CreateInitialAccessToken.d.ts +7 -0
  175. package/lib/clients/routes/DedicatedScopeDetails.d.ts +11 -0
  176. package/lib/clients/routes/ImportClient.d.ts +7 -0
  177. package/lib/clients/routes/Mapper.d.ts +9 -0
  178. package/lib/clients/routes/NewPermission.d.ts +12 -0
  179. package/lib/clients/routes/NewPolicy.d.ts +9 -0
  180. package/lib/clients/routes/NewResource.d.ts +8 -0
  181. package/lib/clients/routes/NewRole.d.ts +8 -0
  182. package/lib/clients/routes/NewScope.d.ts +8 -0
  183. package/lib/clients/routes/PermissionDetails.d.ts +11 -0
  184. package/lib/clients/routes/PolicyDetails.d.ts +10 -0
  185. package/lib/clients/routes/Resource.d.ts +10 -0
  186. package/lib/clients/routes/Scope.d.ts +10 -0
  187. package/lib/clients/routes.d.ts +3 -0
  188. package/lib/clients/scopes/AddScopeDialog.d.ts +14 -0
  189. package/lib/clients/scopes/ClientScopes.d.ts +13 -0
  190. package/lib/clients/scopes/CopyToClipboardButton.d.ts +8 -0
  191. package/lib/clients/scopes/DedicatedScope.d.ts +6 -0
  192. package/lib/clients/scopes/DedicatedScopes.d.ts +1 -0
  193. package/lib/clients/scopes/EvaluateScopes.d.ts +5 -0
  194. package/lib/clients/scopes/GeneratedCodeTab.d.ts +8 -0
  195. package/lib/clients/service-account/ServiceAccount.d.ts +6 -0
  196. package/lib/clients/utils.d.ts +29 -0
  197. package/lib/components/SwitchControl.d.ts +4 -0
  198. package/lib/components/bread-crumb/GroupBreadCrumbs.d.ts +1 -0
  199. package/lib/components/bread-crumb/PageBreadCrumbs.d.ts +1 -0
  200. package/lib/components/client/ClientSelect.d.ts +7 -0
  201. package/lib/components/client-scope/ClientScopeTypes.d.ts +33 -0
  202. package/lib/components/confirm-dialog/ConfirmDialog.d.ts +21 -0
  203. package/lib/components/download-dialog/DownloadDialog.d.ts +8 -0
  204. package/lib/components/dropdown-panel/DropdownPanel.d.ts +10 -0
  205. package/lib/components/dynamic/BooleanComponent.d.ts +2 -0
  206. package/lib/components/dynamic/ClientSelectComponent.d.ts +2 -0
  207. package/lib/components/dynamic/DynamicComponents.d.ts +9 -0
  208. package/lib/components/dynamic/FileComponent.d.ts +2 -0
  209. package/lib/components/dynamic/GroupComponent.d.ts +2 -0
  210. package/lib/components/dynamic/ListComponent.d.ts +2 -0
  211. package/lib/components/dynamic/MapComponent.d.ts +2 -0
  212. package/lib/components/dynamic/MultivaluedListComponent.d.ts +2 -0
  213. package/lib/components/dynamic/MultivaluedStringComponent.d.ts +2 -0
  214. package/lib/components/dynamic/PasswordComponent.d.ts +2 -0
  215. package/lib/components/dynamic/RoleComponent.d.ts +2 -0
  216. package/lib/components/dynamic/ScriptComponent.d.ts +2 -0
  217. package/lib/components/dynamic/StringComponent.d.ts +2 -0
  218. package/lib/components/dynamic/TextComponent.d.ts +2 -0
  219. package/lib/components/dynamic/UrlComponent.d.ts +2 -0
  220. package/lib/components/dynamic/UserProfileAttributeListComponent.d.ts +2 -0
  221. package/lib/components/dynamic/components.d.ts +13 -0
  222. package/lib/components/error/ErrorRenderer.d.ts +2 -0
  223. package/lib/components/external-link/FormattedLink.d.ts +5 -0
  224. package/lib/components/form/FixedButtonGroup.d.ts +12 -0
  225. package/lib/components/form/FormAccess.d.ts +29 -0
  226. package/lib/components/group/GroupPath.d.ts +7 -0
  227. package/lib/components/group/GroupPickerDialog.d.ts +15 -0
  228. package/lib/components/help-enabler/HelpHeader.d.ts +1 -0
  229. package/lib/components/json-file-upload/FileUploadForm.d.ts +13 -0
  230. package/lib/components/json-file-upload/JsonFileUpload.d.ts +5 -0
  231. package/lib/components/json-file-upload/patternfly/FileUpload.d.ts +73 -0
  232. package/lib/components/json-file-upload/patternfly/FileUploadField.d.ts +67 -0
  233. package/lib/components/json-file-upload/patternfly/fileUtils.d.ts +12 -0
  234. package/lib/components/key-value-form/AttributeForm.d.ts +15 -0
  235. package/lib/components/key-value-form/KeySelect.d.ts +7 -0
  236. package/lib/components/key-value-form/KeyValueInput.d.ts +13 -0
  237. package/lib/components/key-value-form/ValueSelect.d.ts +8 -0
  238. package/lib/components/key-value-form/key-value-convert.d.ts +7 -0
  239. package/lib/components/keycloak-card/ClickableCard.d.ts +6 -0
  240. package/lib/components/keycloak-card/KeycloakCard.d.ts +11 -0
  241. package/lib/components/keycloak-spinner/KeycloakSpinner.d.ts +1 -0
  242. package/lib/components/multi-line-input/MultiLineInput.d.ts +9 -0
  243. package/lib/components/permission-tab/PermissionTab.d.ts +7 -0
  244. package/lib/components/realm-selector/RealmSelector.d.ts +1 -0
  245. package/lib/components/role-form/RoleForm.d.ts +11 -0
  246. package/lib/components/role-mapping/AddRoleMappingModal.d.ts +12 -0
  247. package/lib/components/role-mapping/RoleMapping.d.ts +55 -0
  248. package/lib/components/role-mapping/queries.d.ts +9 -0
  249. package/lib/components/role-mapping/resource.d.ts +40 -0
  250. package/lib/components/roles-list/RolesList.d.ts +13 -0
  251. package/lib/components/routable-tabs/RoutableTabs.d.ts +15 -0
  252. package/lib/components/time-selector/TimeSelector.d.ts +11 -0
  253. package/lib/components/time-selector/TimeSelectorControl.d.ts +13 -0
  254. package/lib/components/time-selector/TimeSelectorForm.d.ts +6 -0
  255. package/lib/components/users/UserDataTable.d.ts +10 -0
  256. package/lib/components/users/UserDataTableAttributeSearchForm.d.ts +12 -0
  257. package/lib/components/users/UserDataTableToolbarItems.d.ts +27 -0
  258. package/lib/components/users/UserSelect.d.ts +8 -0
  259. package/lib/components/view-header/ViewHeader.d.ts +25 -0
  260. package/lib/components/wizard-section-header/WizardSectionHeader.d.ts +6 -0
  261. package/lib/context/RecentRealms.d.ts +4 -0
  262. package/lib/context/access/Access.d.ts +10 -0
  263. package/lib/context/auth/admin-ui-endpoint.d.ts +4 -0
  264. package/lib/context/auth/uiRealmInfo.d.ts +5 -0
  265. package/lib/context/realm-context/RealmContext.d.ts +11 -0
  266. package/lib/context/server-info/ServerInfoProvider.d.ts +6 -0
  267. package/lib/context/whoami/WhoAmI.d.ts +23 -0
  268. package/lib/dashboard/Dashboard.d.ts +1 -0
  269. package/lib/dashboard/ProviderInfo.d.ts +1 -0
  270. package/lib/dashboard/routes/Dashboard.d.ts +11 -0
  271. package/lib/dashboard/routes.d.ts +3 -0
  272. package/lib/environment.d.ts +19 -0
  273. package/lib/events/AdminEvents.d.ts +1 -0
  274. package/lib/events/EventsSection.d.ts +1 -0
  275. package/lib/events/ResourceLinks.d.ts +7 -0
  276. package/lib/events/routes/Events.d.ts +10 -0
  277. package/lib/events/routes.d.ts +3 -0
  278. package/lib/favicon.svg +63 -0
  279. package/lib/groups/GroupAttributes.d.ts +1 -0
  280. package/lib/groups/GroupRoleMapping.d.ts +6 -0
  281. package/lib/groups/GroupTable.d.ts +5 -0
  282. package/lib/groups/GroupsModal.d.ts +10 -0
  283. package/lib/groups/GroupsSection.d.ts +1 -0
  284. package/lib/groups/Members.d.ts +1 -0
  285. package/lib/groups/MembersModal.d.ts +8 -0
  286. package/lib/groups/SubGroupsContext.d.ts +12 -0
  287. package/lib/groups/components/CheckableTreeView.d.ts +7 -0
  288. package/lib/groups/components/DeleteGroup.d.ts +9 -0
  289. package/lib/groups/components/GroupToolbar.d.ts +7 -0
  290. package/lib/groups/components/GroupTree.d.ts +8 -0
  291. package/lib/groups/components/MoveDialog.d.ts +8 -0
  292. package/lib/groups/groupIdUtils.d.ts +2 -0
  293. package/lib/groups/routes/Groups.d.ts +10 -0
  294. package/lib/groups/routes.d.ts +3 -0
  295. package/lib/help-urls.d.ts +19 -0
  296. package/lib/icon.svg +55 -0
  297. package/lib/identity-providers/IdentityProvidersSection.d.ts +1 -0
  298. package/lib/identity-providers/ManageOrderDialog.d.ts +7 -0
  299. package/lib/identity-providers/OIDCConfigurationRepresentation.d.ts +39 -0
  300. package/lib/identity-providers/add/AddIdentityProvider.d.ts +1 -0
  301. package/lib/identity-providers/add/AddMapper.d.ts +8 -0
  302. package/lib/identity-providers/add/AddMapperForm.d.ts +13 -0
  303. package/lib/identity-providers/add/AddOpenIdConnect.d.ts +1 -0
  304. package/lib/identity-providers/add/AddSamlConnect.d.ts +1 -0
  305. package/lib/identity-providers/add/AdvancedSettings.d.ts +6 -0
  306. package/lib/identity-providers/add/DescriptorSettings.d.ts +5 -0
  307. package/lib/identity-providers/add/DetailSettings.d.ts +1 -0
  308. package/lib/identity-providers/add/DiscoverySettings.d.ts +5 -0
  309. package/lib/identity-providers/add/ExtendedNonDiscoverySettings.d.ts +1 -0
  310. package/lib/identity-providers/add/GeneralSettings.d.ts +6 -0
  311. package/lib/identity-providers/add/OIDCAuthentication.d.ts +3 -0
  312. package/lib/identity-providers/add/OIDCGeneralSettings.d.ts +1 -0
  313. package/lib/identity-providers/add/OpenIdConnectSettings.d.ts +1 -0
  314. package/lib/identity-providers/add/ReqAuthnConstraintsSettings.d.ts +1 -0
  315. package/lib/identity-providers/add/SamlConnectSettings.d.ts +1 -0
  316. package/lib/identity-providers/add/SamlGeneralSettings.d.ts +5 -0
  317. package/lib/identity-providers/component/ClientIdSecret.d.ts +4 -0
  318. package/lib/identity-providers/component/DiscoveryEndpointField.d.ts +8 -0
  319. package/lib/identity-providers/component/DisplayOrder.d.ts +1 -0
  320. package/lib/identity-providers/component/FormGroupField.d.ts +10 -0
  321. package/lib/identity-providers/component/RedirectUrl.d.ts +3 -0
  322. package/lib/identity-providers/component/SwitchField.d.ts +8 -0
  323. package/lib/identity-providers/component/TextField.d.ts +2 -0
  324. package/lib/identity-providers/routes/AddMapper.d.ts +10 -0
  325. package/lib/identity-providers/routes/EditMapper.d.ts +10 -0
  326. package/lib/identity-providers/routes/IdentityProvider.d.ts +11 -0
  327. package/lib/identity-providers/routes/IdentityProviderCreate.d.ts +8 -0
  328. package/lib/identity-providers/routes/IdentityProviderKeycloakOidc.d.ts +7 -0
  329. package/lib/identity-providers/routes/IdentityProviderOidc.d.ts +7 -0
  330. package/lib/identity-providers/routes/IdentityProviderSaml.d.ts +7 -0
  331. package/lib/identity-providers/routes/IdentityProviders.d.ts +7 -0
  332. package/lib/identity-providers/routes.d.ts +3 -0
  333. package/lib/img_avatar.svg +33 -0
  334. package/lib/index-DXWy23Yd.js +65735 -0
  335. package/lib/index-DXWy23Yd.js.map +1 -0
  336. package/lib/index.d.ts +295 -0
  337. package/lib/keycloak-admin-ui.d.ts +2 -0
  338. package/lib/keycloak-admin-ui.js +309 -0
  339. package/lib/keycloak-admin-ui.js.map +1 -0
  340. package/lib/logo.svg +1 -0
  341. package/lib/main.d.ts +0 -0
  342. package/lib/organizations/DetailOraganzationHeader.d.ts +5 -0
  343. package/lib/organizations/DetailOrganization.d.ts +1 -0
  344. package/lib/organizations/IdentityProviderSelect.d.ts +7 -0
  345. package/lib/organizations/IdentityProviders.d.ts +1 -0
  346. package/lib/organizations/InviteMemberModal.d.ts +6 -0
  347. package/lib/organizations/LinkIdentityProviderModal.d.ts +8 -0
  348. package/lib/organizations/Members.d.ts +1 -0
  349. package/lib/organizations/NewOrganization.d.ts +1 -0
  350. package/lib/organizations/OrganizationForm.d.ts +11 -0
  351. package/lib/organizations/OrganizationModal.d.ts +9 -0
  352. package/lib/organizations/OrganizationsSection.d.ts +1 -0
  353. package/lib/organizations/routes/AddOrganization.d.ts +7 -0
  354. package/lib/organizations/routes/EditOrganization.d.ts +10 -0
  355. package/lib/organizations/routes/Organizations.d.ts +8 -0
  356. package/lib/organizations/routes.d.ts +3 -0
  357. package/lib/page/Page.d.ts +1 -0
  358. package/lib/page/PageHandler.d.ts +9 -0
  359. package/lib/page/PageList.d.ts +3 -0
  360. package/lib/page/routes.d.ts +16 -0
  361. package/lib/realm/add/NewRealmForm.d.ts +1 -0
  362. package/lib/realm/routes/AddRealm.d.ts +7 -0
  363. package/lib/realm/routes.d.ts +3 -0
  364. package/lib/realm-roles/CreateRealmRole.d.ts +1 -0
  365. package/lib/realm-roles/RealmRoleTabs.d.ts +1 -0
  366. package/lib/realm-roles/RealmRolesSection.d.ts +1 -0
  367. package/lib/realm-roles/UsersInRoleTab.d.ts +1 -0
  368. package/lib/realm-roles/routes/AddRole.d.ts +7 -0
  369. package/lib/realm-roles/routes/RealmRole.d.ts +10 -0
  370. package/lib/realm-roles/routes/RealmRoles.d.ts +7 -0
  371. package/lib/realm-roles/routes.d.ts +3 -0
  372. package/lib/realm-settings/AddClientProfileModal.d.ts +8 -0
  373. package/lib/realm-settings/AddTranslationModal.d.ts +15 -0
  374. package/lib/realm-settings/ClientProfileForm.d.ts +1 -0
  375. package/lib/realm-settings/DefaultGroupsTab.d.ts +1 -0
  376. package/lib/realm-settings/EmailTab.d.ts +7 -0
  377. package/lib/realm-settings/ExecutorForm.d.ts +1 -0
  378. package/lib/realm-settings/GeneralTab.d.ts +7 -0
  379. package/lib/realm-settings/LoginTab.d.ts +7 -0
  380. package/lib/realm-settings/NewAttributeSettings.d.ts +6 -0
  381. package/lib/realm-settings/NewClientPolicy.d.ts +1 -0
  382. package/lib/realm-settings/NewClientPolicyCondition.d.ts +4 -0
  383. package/lib/realm-settings/PartialExport.d.ts +5 -0
  384. package/lib/realm-settings/PartialImport.d.ts +5 -0
  385. package/lib/realm-settings/PoliciesTab.d.ts +1 -0
  386. package/lib/realm-settings/ProfilesTab.d.ts +1 -0
  387. package/lib/realm-settings/RealmSettingsSection.d.ts +1 -0
  388. package/lib/realm-settings/RealmSettingsTabs.d.ts +6 -0
  389. package/lib/realm-settings/SessionsTab.d.ts +7 -0
  390. package/lib/realm-settings/ThemesTab.d.ts +7 -0
  391. package/lib/realm-settings/TokensTab.d.ts +8 -0
  392. package/lib/realm-settings/UserRegistration.d.ts +1 -0
  393. package/lib/realm-settings/event-config/AddEventTypesDialog.d.ts +8 -0
  394. package/lib/realm-settings/event-config/EventConfigForm.d.ts +10 -0
  395. package/lib/realm-settings/event-config/EventListenersForm.d.ts +7 -0
  396. package/lib/realm-settings/event-config/EventsTab.d.ts +6 -0
  397. package/lib/realm-settings/event-config/EventsTypeTable.d.ts +12 -0
  398. package/lib/realm-settings/keys/KeysListTab.d.ts +6 -0
  399. package/lib/realm-settings/keys/KeysProvidersTab.d.ts +7 -0
  400. package/lib/realm-settings/keys/KeysTab.d.ts +1 -0
  401. package/lib/realm-settings/keys/key-providers/KeyProviderForm.d.ts +9 -0
  402. package/lib/realm-settings/keys/key-providers/KeyProviderModal.d.ts +7 -0
  403. package/lib/realm-settings/keys/key-providers/KeyProvidersPicker.d.ts +6 -0
  404. package/lib/realm-settings/localization/EffectiveMessageBundles.d.ts +6 -0
  405. package/lib/realm-settings/localization/LocalizationTab.d.ts +8 -0
  406. package/lib/realm-settings/localization/RealmOverrides.d.ts +21 -0
  407. package/lib/realm-settings/routes/AddAttribute.d.ts +7 -0
  408. package/lib/realm-settings/routes/AddClientPolicy.d.ts +7 -0
  409. package/lib/realm-settings/routes/AddClientProfile.d.ts +8 -0
  410. package/lib/realm-settings/routes/AddCondition.d.ts +8 -0
  411. package/lib/realm-settings/routes/AddExecutor.d.ts +8 -0
  412. package/lib/realm-settings/routes/Attribute.d.ts +8 -0
  413. package/lib/realm-settings/routes/ClientPolicies.d.ts +9 -0
  414. package/lib/realm-settings/routes/ClientProfile.d.ts +8 -0
  415. package/lib/realm-settings/routes/EditAttributesGroup.d.ts +8 -0
  416. package/lib/realm-settings/routes/EditClientPolicy.d.ts +8 -0
  417. package/lib/realm-settings/routes/EditCondition.d.ts +9 -0
  418. package/lib/realm-settings/routes/Executor.d.ts +9 -0
  419. package/lib/realm-settings/routes/KeyProvider.d.ts +10 -0
  420. package/lib/realm-settings/routes/KeysTab.d.ts +9 -0
  421. package/lib/realm-settings/routes/NewAttributesGroup.d.ts +7 -0
  422. package/lib/realm-settings/routes/RealmSettings.d.ts +10 -0
  423. package/lib/realm-settings/routes/UserProfile.d.ts +9 -0
  424. package/lib/realm-settings/routes.d.ts +3 -0
  425. package/lib/realm-settings/security-defences/BruteForceDetection.d.ts +7 -0
  426. package/lib/realm-settings/security-defences/HeadersForm.d.ts +7 -0
  427. package/lib/realm-settings/security-defences/HelpLinkTextInput.d.ts +6 -0
  428. package/lib/realm-settings/security-defences/SecurityDefenses.d.ts +7 -0
  429. package/lib/realm-settings/security-defences/Time.d.ts +5 -0
  430. package/lib/realm-settings/user-profile/AttributesGroupDetails.d.ts +2 -0
  431. package/lib/realm-settings/user-profile/AttributesGroupForm.d.ts +1 -0
  432. package/lib/realm-settings/user-profile/AttributesGroupTab.d.ts +5 -0
  433. package/lib/realm-settings/user-profile/AttributesTab.d.ts +5 -0
  434. package/lib/realm-settings/user-profile/JsonEditorTab.d.ts +1 -0
  435. package/lib/realm-settings/user-profile/UserProfileContext.d.ts +16 -0
  436. package/lib/realm-settings/user-profile/UserProfileTab.d.ts +5 -0
  437. package/lib/realm-settings/user-profile/attribute/AddTranslationsDialog.d.ts +19 -0
  438. package/lib/realm-settings/user-profile/attribute/AddValidatorDialog.d.ts +8 -0
  439. package/lib/realm-settings/user-profile/attribute/AttributeAnnotations.d.ts +1 -0
  440. package/lib/realm-settings/user-profile/attribute/AttributeGeneralSettings.d.ts +14 -0
  441. package/lib/realm-settings/user-profile/attribute/AttributePermission.d.ts +1 -0
  442. package/lib/realm-settings/user-profile/attribute/AttributeValidations.d.ts +1 -0
  443. package/lib/realm-settings/user-profile/attribute/ValidatorSelect.d.ts +7 -0
  444. package/lib/robots.txt +3 -0
  445. package/lib/root/AuthWall.d.ts +1 -0
  446. package/lib/routes.d.ts +15 -0
  447. package/lib/sessions/RevocationModal.d.ts +6 -0
  448. package/lib/sessions/SessionsSection.d.ts +1 -0
  449. package/lib/sessions/SessionsTable.d.ts +14 -0
  450. package/lib/sessions/routes/Sessions.d.ts +7 -0
  451. package/lib/sessions/routes.d.ts +3 -0
  452. package/lib/style.css +1 -0
  453. package/lib/user/CreateUser.d.ts +1 -0
  454. package/lib/user/EditUser.d.ts +1 -0
  455. package/lib/user/FederatedUserLink.d.ts +6 -0
  456. package/lib/user/Organizations.d.ts +1 -0
  457. package/lib/user/UserAttributes.d.ts +10 -0
  458. package/lib/user/UserConsents.d.ts +1 -0
  459. package/lib/user/UserCredentials.d.ts +7 -0
  460. package/lib/user/UserForm.d.ts +21 -0
  461. package/lib/user/UserGroups.d.ts +6 -0
  462. package/lib/user/UserIdPModal.d.ts +8 -0
  463. package/lib/user/UserIdentityProviderLinks.d.ts +5 -0
  464. package/lib/user/UserRoleMapping.d.ts +6 -0
  465. package/lib/user/UserSessions.d.ts +1 -0
  466. package/lib/user/UsersSection.d.ts +1 -0
  467. package/lib/user/details/SearchFilter.d.ts +9 -0
  468. package/lib/user/form-state.d.ts +14 -0
  469. package/lib/user/routes/AddUser.d.ts +7 -0
  470. package/lib/user/routes/User.d.ts +10 -0
  471. package/lib/user/routes/Users.d.ts +10 -0
  472. package/lib/user/routes.d.ts +3 -0
  473. package/lib/user/user-credentials/CredentialDataDialog.d.ts +6 -0
  474. package/lib/user/user-credentials/CredentialRow.d.ts +10 -0
  475. package/lib/user/user-credentials/InlineLabelEdit.d.ts +9 -0
  476. package/lib/user/user-credentials/LifespanField.d.ts +1 -0
  477. package/lib/user/user-credentials/RequiredActionMultiSelect.d.ts +7 -0
  478. package/lib/user/user-credentials/ResetCredentialDialog.d.ts +6 -0
  479. package/lib/user/user-credentials/ResetPasswordDialog.d.ts +15 -0
  480. package/lib/user/utils/user-profile.d.ts +2 -0
  481. package/lib/user/utils.d.ts +1 -0
  482. package/lib/user-federation/CreateUserFederationLdapSettings.d.ts +1 -0
  483. package/lib/user-federation/ManagePriorityDialog.d.ts +7 -0
  484. package/lib/user-federation/UserFederationKerberosSettings.d.ts +1 -0
  485. package/lib/user-federation/UserFederationKerberosWizard.d.ts +1 -0
  486. package/lib/user-federation/UserFederationLdapForm.d.ts +13 -0
  487. package/lib/user-federation/UserFederationLdapSettings.d.ts +1 -0
  488. package/lib/user-federation/UserFederationLdapWizard.d.ts +1 -0
  489. package/lib/user-federation/UserFederationSection.d.ts +1 -0
  490. package/lib/user-federation/custom/CustomProviderSettings.d.ts +1 -0
  491. package/lib/user-federation/custom/SyncSettings.d.ts +1 -0
  492. package/lib/user-federation/kerberos/KerberosSettingsRequired.d.ts +7 -0
  493. package/lib/user-federation/ldap/LdapSettingsAdvanced.d.ts +8 -0
  494. package/lib/user-federation/ldap/LdapSettingsConnection.d.ts +10 -0
  495. package/lib/user-federation/ldap/LdapSettingsGeneral.d.ts +9 -0
  496. package/lib/user-federation/ldap/LdapSettingsKerberosIntegration.d.ts +7 -0
  497. package/lib/user-federation/ldap/LdapSettingsSearching.d.ts +7 -0
  498. package/lib/user-federation/ldap/LdapSettingsSynchronization.d.ts +7 -0
  499. package/lib/user-federation/ldap/mappers/LdapMapperDetails.d.ts +1 -0
  500. package/lib/user-federation/ldap/mappers/LdapMapperList.d.ts +6 -0
  501. package/lib/user-federation/routes/CustomUserFederation.d.ts +9 -0
  502. package/lib/user-federation/routes/NewCustomUserFederation.d.ts +8 -0
  503. package/lib/user-federation/routes/NewKerberosUserFederation.d.ts +7 -0
  504. package/lib/user-federation/routes/NewLdapUserFederation.d.ts +7 -0
  505. package/lib/user-federation/routes/UserFederation.d.ts +7 -0
  506. package/lib/user-federation/routes/UserFederationKerberos.d.ts +8 -0
  507. package/lib/user-federation/routes/UserFederationLdap.d.ts +11 -0
  508. package/lib/user-federation/routes/UserFederationLdapMapper.d.ts +9 -0
  509. package/lib/user-federation/routes/UserFederationsKerberos.d.ts +7 -0
  510. package/lib/user-federation/routes/UserFederationsLdap.d.ts +7 -0
  511. package/lib/user-federation/routes.d.ts +3 -0
  512. package/lib/user-federation/shared/ExtendedHeader.d.ts +8 -0
  513. package/lib/user-federation/shared/Header.d.ts +9 -0
  514. package/lib/user-federation/shared/SettingsCache.d.ts +8 -0
  515. package/lib/util.d.ts +24 -0
  516. package/lib/utils/client-url.d.ts +3 -0
  517. package/lib/utils/generateEncodedPath.d.ts +23 -0
  518. package/lib/utils/getAuthorizationHeaders.d.ts +1 -0
  519. package/lib/utils/joinPath.d.ts +1 -0
  520. package/lib/utils/translationFormatter.d.ts +3 -0
  521. package/lib/utils/types.d.ts +4 -0
  522. package/lib/utils/useCurrentUser.d.ts +27 -0
  523. package/lib/utils/useFormatDate.d.ts +2 -0
  524. package/lib/utils/useIsFeatureEnabled.d.ts +14 -0
  525. package/lib/utils/useLocale.d.ts +1 -0
  526. package/lib/utils/useLocaleSort.d.ts +7 -0
  527. package/lib/utils/useParams.d.ts +1 -0
  528. package/lib/utils/useQueryPermission.d.ts +6 -0
  529. package/lib/utils/useToggle.d.ts +6 -0
  530. package/lib/utils/useUpdateEffect.d.ts +5 -0
  531. package/package.json +128 -0
@@ -0,0 +1,6 @@
1
+ import { AccessType } from '@keycloak/keycloak-admin-client/lib/defs/whoAmIRepresentation';
2
+ type ForbiddenSectionProps = {
3
+ permissionNeeded: AccessType | AccessType[];
4
+ };
5
+ export declare const ForbiddenSection: ({ permissionNeeded, }: ForbiddenSectionProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,36 @@
1
+ import { jsxs as r, Fragment as v, jsx as a } from "react/jsx-runtime";
2
+ import { u as h, $ as z, a as b, b as f, V as p, P as S, c as A, F, bw as O, A as w, X as y, B as E, bE as x, bA as C, bC as P } from "./index-DXWy23Yd.js";
3
+ import { useTranslation as j } from "react-i18next";
4
+ import { useNavigate as k, Link as B } from "react-router-dom";
5
+ function $() {
6
+ const { adminClient: s } = h(), { addAlert: c, addError: d } = z(), { t } = j(), l = k(), { realm: e } = b(), i = f(), { handleSubmit: m, formState: g } = i;
7
+ return /* @__PURE__ */ r(v, { children: [
8
+ /* @__PURE__ */ a(p, { titleKey: "createOrganization" }),
9
+ /* @__PURE__ */ a(S, { variant: "light", children: /* @__PURE__ */ a(A, { role: "anyone", onSubmit: m(async (n) => {
10
+ try {
11
+ const o = C(n), { id: u } = await s.organizations.create(o);
12
+ c(t("organizationSaveSuccess")), l(P({ realm: e, id: u, tab: "settings" }));
13
+ } catch (o) {
14
+ d("organizationSaveError", o);
15
+ }
16
+ }), isHorizontal: !0, children: /* @__PURE__ */ r(F, { ...i, children: [
17
+ /* @__PURE__ */ a(O, {}),
18
+ /* @__PURE__ */ r(w, { children: [
19
+ /* @__PURE__ */ a(y, { formState: g, "data-testid": "save", children: t("save") }),
20
+ /* @__PURE__ */ a(
21
+ E,
22
+ {
23
+ "data-testid": "cancel",
24
+ variant: "link",
25
+ component: (n) => /* @__PURE__ */ a(B, { ...n, to: x({ realm: e }) }),
26
+ children: t("cancel")
27
+ }
28
+ )
29
+ ] })
30
+ ] }) }) })
31
+ ] });
32
+ }
33
+ export {
34
+ $ as default
35
+ };
36
+ //# sourceMappingURL=NewOrganization-FsgFNfEd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewOrganization-FsgFNfEd.js","sources":["../src/organizations/NewOrganization.tsx"],"sourcesContent":["import { FormSubmitButton } from \"@keycloak/keycloak-ui-shared\";\nimport { ActionGroup, Button, PageSection } from \"@patternfly/react-core\";\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 { useAlerts } from \"@keycloak/keycloak-ui-shared\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport {\n OrganizationForm,\n OrganizationFormType,\n convertToOrg,\n} from \"./OrganizationForm\";\nimport { toEditOrganization } from \"./routes/EditOrganization\";\nimport { toOrganizations } from \"./routes/Organizations\";\n\nexport default function NewOrganization() {\n const { adminClient } = useAdminClient();\n const { addAlert, addError } = useAlerts();\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { realm } = useRealm();\n const form = useForm();\n const { handleSubmit, formState } = form;\n\n const save = async (org: OrganizationFormType) => {\n try {\n const organization = convertToOrg(org);\n const { id } = await adminClient.organizations.create(organization);\n addAlert(t(\"organizationSaveSuccess\"));\n navigate(toEditOrganization({ realm, id, tab: \"settings\" }));\n } catch (error) {\n addError(\"organizationSaveError\", error);\n }\n };\n\n return (\n <>\n <ViewHeader titleKey=\"createOrganization\" />\n <PageSection variant=\"light\">\n <FormAccess role=\"anyone\" onSubmit={handleSubmit(save)} isHorizontal>\n <FormProvider {...form}>\n <OrganizationForm />\n <ActionGroup>\n <FormSubmitButton formState={formState} data-testid=\"save\">\n {t(\"save\")}\n </FormSubmitButton>\n <Button\n data-testid=\"cancel\"\n variant=\"link\"\n component={(props) => (\n <Link {...props} to={toOrganizations({ realm })} />\n )}\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n </FormProvider>\n </FormAccess>\n </PageSection>\n </>\n );\n}\n"],"names":["NewOrganization","adminClient","useAdminClient","addAlert","addError","useAlerts","useTranslation","navigate","useNavigate","realm","useRealm","form","useForm","handleSubmit","formState","jsxs","Fragment","jsx","ViewHeader","PageSection","FormAccess","org","organization","convertToOrg","id","toEditOrganization","error","FormProvider","OrganizationForm","ActionGroup","FormSubmitButton","Button","props","Link","toOrganizations"],"mappings":";;;;AAkBA,SAAwBA,IAAkB;AAClC,QAAA,EAAE,aAAAC,MAAgBC,KAClB,EAAE,UAAAC,GAAU,UAAAC,EAAS,IAAIC,EAAU,GACnC,EAAE,MAAMC,KACRC,IAAWC,KACX,EAAE,OAAAC,MAAUC,KACZC,IAAOC,KACP,EAAE,cAAAC,GAAc,WAAAC,EAAc,IAAAH;AAapC,SAEI,gBAAAI,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAW,UAAS,qBAAqB,CAAA;AAAA,sBACzCC,GAAY,EAAA,SAAQ,SACnB,UAAA,gBAAAF,EAACG,KAAW,MAAK,UAAS,UAAUP,EAf7B,OAAOQ,MAA8B;AAC5C,UAAA;AACI,cAAAC,IAAeC,EAAaF,CAAG,GAC/B,EAAE,IAAAG,EAAG,IAAI,MAAMvB,EAAY,cAAc,OAAOqB,CAAY;AACzD,QAAAnB,EAAA,EAAE,yBAAyB,CAAC,GACrCI,EAASkB,EAAmB,EAAE,OAAAhB,GAAO,IAAAe,GAAI,KAAK,WAAY,CAAA,CAAC;AAAA,eACpDE,GAAO;AACd,QAAAtB,EAAS,yBAAyBsB,CAAK;AAAA,MACzC;AAAA,IAAA,CAOyD,GAAG,cAAY,IAClE,UAAC,gBAAAX,EAAAY,GAAA,EAAc,GAAGhB,GAChB,UAAA;AAAA,MAAA,gBAAAM,EAACW,GAAiB,EAAA;AAAA,wBACjBC,GACC,EAAA,UAAA;AAAA,QAAA,gBAAAZ,EAACa,KAAiB,WAAAhB,GAAsB,eAAY,QACjD,UAAA,EAAE,MAAM,GACX;AAAA,QACA,gBAAAG;AAAA,UAACc;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,SAAQ;AAAA,YACR,WAAW,CAACC,MACV,gBAAAf,EAACgB,GAAM,EAAA,GAAGD,GAAO,IAAIE,EAAgB,EAAE,OAAAzB,EAAM,CAAC,EAAG,CAAA;AAAA,YAGlD,YAAE,QAAQ;AAAA,UAAA;AAAA,QACb;AAAA,MAAA,GACF;AAAA,IAAA,EACF,CAAA,EACF,CAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -0,0 +1 @@
1
+ export declare const Header: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const PageNav: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const PageNotFoundSection: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,413 @@
1
+ import { jsx as s, jsxs as v, Fragment as B } from "react/jsx-runtime";
2
+ import { u as G, b5 as _, m as K, b6 as J, b7 as W, b8 as N, aP as Y, b as X, b9 as Z, $ as ee, ba as se, aY as ae, g as H, d as k, bb as j, bc as ie, bd as oe, V as te, be as re, aG as ne, P as le, c as ce, F as de, Q as z, aJ as pe, bf as C, bg as P, bh as ue, bi as E, bj as $, bk as M, R as me, A as be, B as U, bl as fe } from "./index-DXWy23Yd.js";
3
+ import { useState as f, useRef as he } from "react";
4
+ import { useTranslation as Q } from "react-i18next";
5
+ import { useNavigate as ge, Link as ye } from "react-router-dom";
6
+ const Se = ({
7
+ clientId: c,
8
+ resourceId: e,
9
+ preSelected: u
10
+ }) => {
11
+ const { adminClient: h } = G(), { t: R } = Q(), {
12
+ control: F,
13
+ getValues: O,
14
+ setValue: A,
15
+ formState: { errors: r }
16
+ } = _(), [m, n] = f([]), [a, g] = f(
17
+ []
18
+ ), [p, b] = f(""), [y, D] = f(!1), S = he(!0), x = O("scopes"), q = (l) => l.map((t) => /* @__PURE__ */ s(Y, { value: t, children: t.name }, t.id));
19
+ return K(
20
+ async () => e ? (e && !S.current && A("scopes", []), S.current = !1, h.clients.listScopesByResource({
21
+ id: c,
22
+ resourceName: e
23
+ })) : h.clients.listAllScopes(
24
+ Object.assign(
25
+ { id: c, deep: !1 },
26
+ p === "" ? null : { name: p }
27
+ )
28
+ ),
29
+ (l) => {
30
+ n(l), p || g(
31
+ l.filter((t) => x?.includes(t.id))
32
+ );
33
+ },
34
+ [e, p]
35
+ ), /* @__PURE__ */ s(
36
+ J,
37
+ {
38
+ name: "scopes",
39
+ defaultValue: u ? [u] : [],
40
+ control: F,
41
+ rules: { validate: (l) => l.length > 0 },
42
+ render: ({ field: l }) => /* @__PURE__ */ s(
43
+ W,
44
+ {
45
+ toggleId: "scopes",
46
+ variant: N.typeaheadMulti,
47
+ onToggle: (t) => D(t),
48
+ onFilter: (t) => (b(t), q(m)),
49
+ onClear: () => {
50
+ l.onChange([]), b("");
51
+ },
52
+ selections: a.map((t) => t.name),
53
+ onSelect: (t) => {
54
+ const T = typeof t == "string" ? a.find((d) => d.name === t) : t, w = a.find((d) => d.id === T.id) ? a.filter((d) => d.id !== T.id) : [...a, T];
55
+ l.onChange(w.map((d) => d.id)), g(w), b("");
56
+ },
57
+ isOpen: y,
58
+ "aria-labelledby": R("scopes"),
59
+ validated: r.scopes ? "error" : "default",
60
+ isDisabled: !!u,
61
+ typeAheadAriaLabel: R("scopes"),
62
+ children: q(m)
63
+ }
64
+ )
65
+ }
66
+ );
67
+ };
68
+ function Re() {
69
+ const { adminClient: c } = G(), { t: e } = Q(), u = X({
70
+ mode: "onChange"
71
+ }), {
72
+ control: h,
73
+ reset: R,
74
+ formState: { errors: F },
75
+ handleSubmit: O
76
+ } = u, A = ge(), { id: r, realm: m, permissionType: n, permissionId: a, selectedId: g } = Z(), { addAlert: p, addError: b } = ee(), [y, D] = f(), [S, x] = f(!1), { hasAccess: q } = se(), l = !q("manage-authorization");
77
+ K(
78
+ async () => {
79
+ if (!a)
80
+ return {};
81
+ const [i, o, L, V] = await Promise.all([
82
+ c.clients.findOnePermission({
83
+ id: r,
84
+ type: n,
85
+ permissionId: a
86
+ }),
87
+ c.clients.getAssociatedResources({
88
+ id: r,
89
+ permissionId: a
90
+ }),
91
+ c.clients.getAssociatedPolicies({
92
+ id: r,
93
+ permissionId: a
94
+ }),
95
+ c.clients.getAssociatedScopes({
96
+ id: r,
97
+ permissionId: a
98
+ })
99
+ ]);
100
+ if (!i)
101
+ throw new Error(e("notFound"));
102
+ return {
103
+ permission: i,
104
+ resources: o.map((I) => I._id),
105
+ policies: L.map((I) => I.id),
106
+ scopes: V.map((I) => I.id)
107
+ };
108
+ },
109
+ ({ permission: i, resources: o, policies: L, scopes: V }) => {
110
+ R({ ...i, resources: o, policies: L, scopes: V }), i && "resourceType" in i && x(
111
+ !!i.resourceType
112
+ ), D({ ...i, resources: o, policies: L });
113
+ },
114
+ []
115
+ );
116
+ const t = async (i) => {
117
+ try {
118
+ if (a)
119
+ await c.clients.updatePermission(
120
+ { id: r, type: n, permissionId: a },
121
+ i
122
+ );
123
+ else {
124
+ const o = await c.clients.createPermission(
125
+ { id: r, type: n },
126
+ i
127
+ );
128
+ D(o), A(
129
+ fe({
130
+ realm: m,
131
+ id: r,
132
+ permissionType: n,
133
+ permissionId: o.id
134
+ })
135
+ );
136
+ }
137
+ p(
138
+ e((a ? "update" : "create") + "PermissionSuccess"),
139
+ k.success
140
+ );
141
+ } catch (o) {
142
+ b("permissionSaveError", o);
143
+ }
144
+ }, [T, w] = ae({
145
+ titleKey: "deletePermission",
146
+ messageKey: e("deletePermissionConfirm", {
147
+ permission: y?.name
148
+ }),
149
+ continueButtonVariant: H.danger,
150
+ continueButtonLabel: "confirm",
151
+ onConfirm: async () => {
152
+ try {
153
+ await c.clients.delPermission({
154
+ id: r,
155
+ type: n,
156
+ permissionId: a
157
+ }), p(e("permissionDeletedSuccess"), k.success), A(
158
+ j({ realm: m, clientId: r, tab: "permissions" })
159
+ );
160
+ } catch (i) {
161
+ b("permissionDeletedError", i);
162
+ }
163
+ }
164
+ }), d = ie({
165
+ control: h,
166
+ name: "resources",
167
+ defaultValue: []
168
+ });
169
+ return y ? /* @__PURE__ */ v(B, { children: [
170
+ /* @__PURE__ */ s(w, {}),
171
+ /* @__PURE__ */ s(
172
+ te,
173
+ {
174
+ titleKey: a ? y.name : `create${re(n)}BasedPermission`,
175
+ dropdownItems: a ? [
176
+ /* @__PURE__ */ s(
177
+ ne,
178
+ {
179
+ "data-testid": "delete-resource",
180
+ isDisabled: l,
181
+ onClick: () => T(),
182
+ children: e("delete")
183
+ },
184
+ "delete"
185
+ )
186
+ ] : void 0
187
+ }
188
+ ),
189
+ /* @__PURE__ */ s(le, { variant: "light", children: /* @__PURE__ */ s(
190
+ ce,
191
+ {
192
+ isHorizontal: !0,
193
+ role: "manage-authorization",
194
+ onSubmit: O(t),
195
+ children: /* @__PURE__ */ v(de, { ...u, children: [
196
+ /* @__PURE__ */ s(
197
+ z,
198
+ {
199
+ name: "name",
200
+ label: e("name"),
201
+ labelIcon: e("permissionName"),
202
+ rules: {
203
+ required: e("required")
204
+ }
205
+ }
206
+ ),
207
+ /* @__PURE__ */ s(
208
+ pe,
209
+ {
210
+ name: "description",
211
+ label: e("description"),
212
+ labelIcon: e("permissionDescription"),
213
+ rules: {
214
+ maxLength: {
215
+ value: 255,
216
+ message: e("maxLength", { length: 255 })
217
+ }
218
+ }
219
+ }
220
+ ),
221
+ /* @__PURE__ */ s(
222
+ C,
223
+ {
224
+ label: e("applyToResourceTypeFlag"),
225
+ fieldId: "applyToResourceTypeFlag",
226
+ labelIcon: /* @__PURE__ */ s(
227
+ P,
228
+ {
229
+ helpText: e("applyToResourceTypeFlagHelp"),
230
+ fieldLabelId: "applyToResourceTypeFlag"
231
+ }
232
+ ),
233
+ children: /* @__PURE__ */ s(
234
+ ue,
235
+ {
236
+ id: "applyToResourceTypeFlag",
237
+ name: "applyToResourceTypeFlag",
238
+ label: e("on"),
239
+ labelOff: e("off"),
240
+ isChecked: S,
241
+ onChange: (i, o) => x(o),
242
+ "aria-label": e("applyToResourceTypeFlag")
243
+ }
244
+ )
245
+ }
246
+ ),
247
+ S ? /* @__PURE__ */ s(
248
+ z,
249
+ {
250
+ name: "resourceType",
251
+ label: e("resourceType"),
252
+ labelIcon: e("resourceTypeHelp"),
253
+ rules: {
254
+ required: {
255
+ value: n === "scope",
256
+ message: e("required")
257
+ }
258
+ }
259
+ }
260
+ ) : /* @__PURE__ */ v(
261
+ C,
262
+ {
263
+ label: e("resource"),
264
+ fieldId: "resources",
265
+ labelIcon: /* @__PURE__ */ s(
266
+ P,
267
+ {
268
+ helpText: e("permissionResources"),
269
+ fieldLabelId: "resources"
270
+ }
271
+ ),
272
+ isRequired: n !== "scope",
273
+ children: [
274
+ /* @__PURE__ */ s(
275
+ E,
276
+ {
277
+ name: "resources",
278
+ clientId: r,
279
+ permissionId: a,
280
+ preSelected: n === "scope" ? void 0 : g,
281
+ variant: n === "scope" ? N.typeahead : N.typeaheadMulti,
282
+ isRequired: n !== "scope"
283
+ }
284
+ ),
285
+ F.resources && /* @__PURE__ */ s($, { message: e("required") })
286
+ ]
287
+ }
288
+ ),
289
+ n === "scope" && /* @__PURE__ */ v(
290
+ C,
291
+ {
292
+ label: e("authorizationScopes"),
293
+ fieldId: "scopes",
294
+ labelIcon: /* @__PURE__ */ s(
295
+ P,
296
+ {
297
+ helpText: e("permissionScopesHelp"),
298
+ fieldLabelId: "scopesSelect"
299
+ }
300
+ ),
301
+ isRequired: !0,
302
+ children: [
303
+ /* @__PURE__ */ s(
304
+ Se,
305
+ {
306
+ clientId: r,
307
+ resourceId: d?.[0],
308
+ preSelected: g
309
+ }
310
+ ),
311
+ F.scopes && /* @__PURE__ */ s($, { message: e("required") })
312
+ ]
313
+ }
314
+ ),
315
+ /* @__PURE__ */ s(
316
+ C,
317
+ {
318
+ label: e("policies"),
319
+ fieldId: "policies",
320
+ labelIcon: /* @__PURE__ */ s(
321
+ P,
322
+ {
323
+ helpText: e("permissionPoliciesHelp"),
324
+ fieldLabelId: "policies"
325
+ }
326
+ ),
327
+ children: /* @__PURE__ */ s(
328
+ E,
329
+ {
330
+ name: "policies",
331
+ clientId: r,
332
+ permissionId: a
333
+ }
334
+ )
335
+ }
336
+ ),
337
+ /* @__PURE__ */ s(
338
+ C,
339
+ {
340
+ label: e("decisionStrategy"),
341
+ labelIcon: /* @__PURE__ */ s(
342
+ P,
343
+ {
344
+ helpText: e("permissionDecisionStrategyHelp"),
345
+ fieldLabelId: "decisionStrategy"
346
+ }
347
+ ),
348
+ fieldId: "policyEnforcementMode",
349
+ hasNoPaddingTop: !0,
350
+ children: /* @__PURE__ */ s(
351
+ J,
352
+ {
353
+ name: "decisionStrategy",
354
+ "data-testid": "decisionStrategy",
355
+ defaultValue: M.UNANIMOUS,
356
+ control: h,
357
+ render: ({ field: i }) => /* @__PURE__ */ s(B, { children: Object.values(M).map((o) => /* @__PURE__ */ s(
358
+ me,
359
+ {
360
+ id: o,
361
+ "data-testid": o,
362
+ isChecked: i.value === o,
363
+ isDisabled: l,
364
+ name: "decisionStrategies",
365
+ onChange: () => i.onChange(o),
366
+ label: e(`decisionStrategies.${o}`),
367
+ className: "pf-v5-u-mb-md"
368
+ },
369
+ o
370
+ )) })
371
+ }
372
+ )
373
+ }
374
+ ),
375
+ /* @__PURE__ */ s(be, { children: /* @__PURE__ */ v("div", { className: "pf-v5-u-mt-md", children: [
376
+ /* @__PURE__ */ s(
377
+ U,
378
+ {
379
+ variant: H.primary,
380
+ type: "submit",
381
+ "data-testid": "save",
382
+ children: e("save")
383
+ }
384
+ ),
385
+ /* @__PURE__ */ s(
386
+ U,
387
+ {
388
+ variant: "link",
389
+ "data-testid": "cancel",
390
+ component: (i) => /* @__PURE__ */ s(
391
+ ye,
392
+ {
393
+ ...i,
394
+ to: j({
395
+ realm: m,
396
+ clientId: r,
397
+ tab: "permissions"
398
+ })
399
+ }
400
+ ),
401
+ children: e("cancel")
402
+ }
403
+ )
404
+ ] }) })
405
+ ] })
406
+ }
407
+ ) })
408
+ ] }) : /* @__PURE__ */ s(oe, {});
409
+ }
410
+ export {
411
+ Re as default
412
+ };
413
+ //# sourceMappingURL=PermissionDetails-9Ej9jFpb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionDetails-9Ej9jFpb.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":";;;;;AAkBO,MAAMA,KAAc,CAAC;AAAA,EAC1B,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AACF,MAAwB;AAChB,QAAA,EAAE,aAAAC,MAAgBC,KAElB,EAAE,GAAAC,MAAMC,KAER;AAAA,IACJ,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,EAAO;AAAA,MAClBC,EAAe,GAEb,CAACC,GAAQC,CAAS,IAAIC,EAAgC,CAAE,CAAA,GACxD,CAACC,GAAgBC,CAAiB,IAAIF;AAAA,IAC1C,CAAC;AAAA,EAAA,GAEG,CAACG,GAAQC,CAAS,IAAIJ,EAAS,EAAE,GACjC,CAACK,GAAMC,CAAO,IAAIN,EAAS,EAAK,GAChCO,IAAcC,GAAO,EAAI,GAEzBC,IAA+Bf,EAAU,QAAQ,GAEjDgB,IAAkB,CAACZ,MACvBA,EAAO,IAAI,CAACa,MACT,gBAAAC,EAAAC,GAAA,EAA4B,OAAOF,GACjC,UAAAA,EAAM,KADU,GAAAA,EAAM,EAEzB,CACD;AAEHG,SAAAA;AAAAA,IACE,YACO3B,KASDA,KAAc,CAACoB,EAAY,WACpBZ,EAAA,UAAU,CAAA,CAAE,GAGvBY,EAAY,UAAU,IACflB,EAAY,QAAQ,qBAAqB;AAAA,MAC9C,IAAIH;AAAA,MACJ,cAAcC;AAAA,IAAA,CACf,KAhBQE,EAAY,QAAQ;AAAA,MACzB,OAAO;AAAA,QACL,EAAE,IAAIH,GAAU,MAAM,GAAM;AAAA,QAC5BiB,MAAW,KAAK,OAAO,EAAE,MAAMA,EAAO;AAAA,MACxC;AAAA,IAAA;AAAA,IAcN,CAACL,MAAW;AACV,MAAAC,EAAUD,CAAM,GACXK,KACHD;AAAA,QACEJ,EAAO,OAAO,CAACiB,MAA2BN,GAAQ,SAASM,EAAE,EAAG,CAAC;AAAA,MAAA;AAAA,IAEvE;AAAA,IACA,CAAC5B,GAAYgB,CAAM;AAAA,EAAA,GAInB,gBAAAS;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAc5B,IAAc,CAACA,CAAW,IAAI,CAAC;AAAA,MAC7C,SAAAK;AAAA,MACA,OAAO,EAAE,UAAU,CAACwB,MAAUA,EAAM,SAAS,EAAE;AAAA,MAC/C,QAAQ,CAAC,EAAE,OAAAC,EAAA,MACT,gBAAAN;AAAA,QAACO;AAAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,SAASC,EAAc;AAAA,UACvB,UAAU,CAACC,MAAQf,EAAQe,CAAG;AAAA,UAC9B,UAAU,CAACC,OACTlB,EAAUkB,CAAM,GACTZ,EAAgBZ,CAAM;AAAA,UAE/B,SAAS,MAAM;AACP,YAAAoB,EAAA,SAAS,CAAA,CAAE,GACjBd,EAAU,EAAE;AAAA,UACd;AAAA,UACA,YAAYH,EAAe,IAAI,CAACc,MAAMA,EAAE,IAAK;AAAA,UAC7C,UAAU,CAACQ,MAAkB;AACrB,kBAAAC,IACJ,OAAOD,KAAkB,WACrBtB,EAAe,KAAK,CAACc,MAAMA,EAAE,SAASQ,CAAa,IAClDA,GACDE,IAAexB,EAAe,KAAK,CAACyB,MAAMA,EAAE,OAAOF,EAAO,EAAE,IAC9DvB,EAAe,OAAO,CAACyB,MAAMA,EAAE,OAAOF,EAAO,EAAE,IAC/C,CAAC,GAAGvB,GAAgBuB,CAAM;AAE9B,YAAAN,EAAM,SAASO,EAAa,IAAI,CAACV,MAAMA,EAAE,EAAE,CAAC,GAC5Cb,EAAkBuB,CAAY,GAC9BrB,EAAU,EAAE;AAAA,UACd;AAAA,UACA,QAAQC;AAAA,UACR,mBAAiBd,EAAE,QAAQ;AAAA,UAC3B,WAAWK,EAAO,SAAS,UAAU;AAAA,UACrC,YAAY,CAAC,CAACR;AAAA,UACd,oBAAoBG,EAAE,QAAQ;AAAA,UAE7B,YAAgBO,CAAM;AAAA,QAAA;AAAA,MACzB;AAAA,IAAA;AAAA,EAAA;AAIR;AC/EA,SAAwB6B,KAAoB;AACpC,QAAA,EAAE,aAAAtC,MAAgBC,KAElB,EAAE,GAAAC,MAAMC,KAERoC,IAAOC,EAAoB;AAAA,IAC/B,MAAM;AAAA,EAAA,CACP,GACK;AAAA,IACJ,SAAApC;AAAA,IACA,OAAAqC;AAAA,IACA,WAAW,EAAE,QAAAlC,EAAO;AAAA,IACpB,cAAAmC;AAAA,EACE,IAAAH,GAEEI,IAAWC,MACX,EAAE,IAAAC,GAAI,OAAAC,GAAO,gBAAAC,GAAgB,cAAAC,GAAc,YAAAC,EAAA,IAAeC,KAI1D,EAAE,UAAAC,GAAU,UAAAC,EAAS,IAAIC,GAAU,GACnC,CAACC,GAAYC,CAAa,IAAI5C,EAA+B,GAC7D,CAAC6C,GAAyBC,CAA0B,IAAI9C,EAAS,EAAK,GACtE,EAAE,WAAA+C,MAAcC,MAEhBC,IAAa,CAACF,EAAU,sBAAsB;AAEpDjC,EAAAA;AAAAA,IACE,YAAY;AACV,UAAI,CAACuB;AACH,eAAO;AAEH,YAAA,CAACM,GAAYO,GAAWC,GAAUrD,CAAM,IAAI,MAAM,QAAQ,IAAI;AAAA,QAClET,EAAY,QAAQ,kBAAkB;AAAA,UACpC,IAAA6C;AAAA,UACA,MAAME;AAAA,UACN,cAAAC;AAAA,QAAA,CACD;AAAA,QACDhD,EAAY,QAAQ,uBAAuB;AAAA,UACzC,IAAA6C;AAAA,UACA,cAAAG;AAAA,QAAA,CACD;AAAA,QACDhD,EAAY,QAAQ,sBAAsB;AAAA,UACxC,IAAA6C;AAAA,UACA,cAAAG;AAAA,QAAA,CACD;AAAA,QACDhD,EAAY,QAAQ,oBAAoB;AAAA,UACtC,IAAA6C;AAAA,UACA,cAAAG;AAAA,QAAA,CACD;AAAA,MAAA,CACF;AAED,UAAI,CAACM;AACH,cAAM,IAAI,MAAMpD,EAAE,UAAU,CAAC;AAGxB,aAAA;AAAA,QACL,YAAAoD;AAAAA,QACA,WAAWO,EAAU,IAAI,CAACE,MAAMA,EAAE,GAAG;AAAA,QACrC,UAAUD,EAAS,IAAI,CAACzB,MAAMA,EAAE,EAAG;AAAA,QACnC,QAAQ5B,EAAO,IAAI,CAACiB,MAAMA,EAAE,EAAG;AAAA,MAAA;AAAA,IAEnC;AAAA,IACA,CAAC,EAAE,YAAA4B,GAAY,WAAAO,GAAW,UAAAC,GAAU,QAAArD,QAAa;AAC/C,MAAAgC,EAAM,EAAE,GAAGa,GAAY,WAAAO,GAAW,UAAAC,GAAU,QAAArD,GAAQ,GAChD6C,KAAc,kBAAkBA,KAClCG;AAAA,QACE,CAAC,CAAEH,EAAwC;AAAA,MAAA,GAG/CC,EAAc,EAAE,GAAGD,GAAY,WAAAO,GAAW,UAAAC,EAAU,CAAA;AAAA,IACtD;AAAA,IACA,CAAC;AAAA,EAAA;AAGG,QAAAE,IAAO,OAAOV,MAAqC;AACnD,QAAA;AACF,UAAIN;AACF,cAAMhD,EAAY,QAAQ;AAAA,UACxB,EAAE,IAAA6C,GAAI,MAAME,GAAgB,cAAAC,EAAa;AAAA,UACzCM;AAAAA,QAAA;AAAA,WAEG;AACC,cAAAW,IAAS,MAAMjE,EAAY,QAAQ;AAAA,UACvC,EAAE,IAAA6C,GAAI,MAAME,EAAe;AAAA,UAC3BO;AAAAA,QAAA;AAEF,QAAAC,EAAcU,CAAM,GACpBtB;AAAA,UACEuB,GAAoB;AAAA,YAClB,OAAApB;AAAA,YACA,IAAAD;AAAA,YACA,gBAAAE;AAAA,YACA,cAAckB,EAAO;AAAA,UAAA,CACtB;AAAA,QAAA;AAAA,MAEL;AACA,MAAAd;AAAA,QACEjD,GAAG8C,IAAe,WAAW,YAAY,mBAAmB;AAAA,QAC5DmB,EAAa;AAAA,MAAA;AAAA,aAERC,GAAO;AACd,MAAAhB,EAAS,uBAAuBgB,CAAK;AAAA,IACvC;AAAA,EAAA,GAGI,CAACC,GAAoBC,CAAa,IAAIC,GAAiB;AAAA,IAC3D,UAAU;AAAA,IACV,YAAYrE,EAAE,2BAA2B;AAAA,MACvC,YAAYoD,GAAY;AAAA,IAAA,CACzB;AAAA,IACD,uBAAuBkB,EAAc;AAAA,IACrC,qBAAqB;AAAA,IACrB,WAAW,YAAY;AACjB,UAAA;AACI,cAAAxE,EAAY,QAAQ,cAAc;AAAA,UACtC,IAAA6C;AAAA,UACA,MAAME;AAAA,UACN,cAAAC;AAAA,QAAA,CACD,GACDG,EAASjD,EAAE,0BAA0B,GAAGiE,EAAa,OAAO,GAC5DxB;AAAA,UACE8B,EAAmB,EAAE,OAAA3B,GAAO,UAAUD,GAAI,KAAK,eAAe;AAAA,QAAA;AAAA,eAEzDuB,GAAO;AACd,QAAAhB,EAAS,0BAA0BgB,CAAK;AAAA,MAC1C;AAAA,IACF;AAAA,EAAA,CACD,GAEKM,IAAeC,GAAS;AAAA,IAC5B,SAAAvE;AAAA,IACA,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,EAAA,CAChB;AAED,SAAKkD,IAMD,gBAAAsB,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAtD,EAAC+C,GAAc,EAAA;AAAA,IACf,gBAAA/C;AAAA,MAACuD;AAAA,MAAA;AAAA,QACC,UACE9B,IACIM,EAAW,OACX,SAASyB,GAAYhC,CAAc,CAAC;AAAA,QAE1C,eACEC,IACI;AAAA,UACE,gBAAAzB;AAAA,YAACyD;AAAA,YAAA;AAAA,cAEC,eAAY;AAAA,cACZ,YAAApB;AAAA,cACA,SAAS,MAAMS,EAAmB;AAAA,cAEjC,YAAE,QAAQ;AAAA,YAAA;AAAA,YALP;AAAA,UAMN;AAAA,QAEF,IAAA;AAAA,MAAA;AAAA,IAER;AAAA,IACA,gBAAA9C,EAAC0D,IAAY,EAAA,SAAQ,SACnB,UAAA,gBAAA1D;AAAA,MAAC2D;AAAA,MAAA;AAAA,QACC,cAAY;AAAA,QACZ,MAAK;AAAA,QACL,UAAUxC,EAAasB,CAAI;AAAA,QAE3B,UAAA,gBAAAY,EAACO,IAAc,EAAA,GAAG5C,GAChB,UAAA;AAAA,UAAA,gBAAAhB;AAAA,YAAC6D;AAAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAOlF,EAAE,MAAM;AAAA,cACf,WAAWA,EAAE,gBAAgB;AAAA,cAC7B,OAAO;AAAA,gBACL,UAAUA,EAAE,UAAU;AAAA,cACxB;AAAA,YAAA;AAAA,UACF;AAAA,UACA,gBAAAqB;AAAA,YAAC8D;AAAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAOnF,EAAE,aAAa;AAAA,cACtB,WAAWA,EAAE,uBAAuB;AAAA,cACpC,OAAO;AAAA,gBACL,WAAW;AAAA,kBACT,OAAO;AAAA,kBACP,SAASA,EAAE,aAAa,EAAE,QAAQ,KAAK;AAAA,gBACzC;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,UACA,gBAAAqB;AAAA,YAAC+D;AAAA,YAAA;AAAA,cACC,OAAOpF,EAAE,yBAAyB;AAAA,cAClC,SAAQ;AAAA,cACR,WACE,gBAAAqB;AAAA,gBAACgE;AAAAA,gBAAA;AAAA,kBACC,UAAUrF,EAAE,6BAA6B;AAAA,kBACzC,cAAa;AAAA,gBAAA;AAAA,cACf;AAAA,cAGF,UAAA,gBAAAqB;AAAA,gBAACiE;AAAA,gBAAA;AAAA,kBACC,IAAG;AAAA,kBACH,MAAK;AAAA,kBACL,OAAOtF,EAAE,IAAI;AAAA,kBACb,UAAUA,EAAE,KAAK;AAAA,kBACjB,WAAWsD;AAAA,kBACX,UAAU,CAACiC,GAAQzD,MAAQyB,EAA2BzB,CAAG;AAAA,kBACzD,cAAY9B,EAAE,yBAAyB;AAAA,gBAAA;AAAA,cACzC;AAAA,YAAA;AAAA,UACF;AAAA,UACCsD,IACC,gBAAAjC;AAAA,YAAC6D;AAAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAOlF,EAAE,cAAc;AAAA,cACvB,WAAWA,EAAE,kBAAkB;AAAA,cAC/B,OAAO;AAAA,gBACL,UAAU;AAAA,kBACR,OAAO6C,MAAmB;AAAA,kBAC1B,SAAS7C,EAAE,UAAU;AAAA,gBACvB;AAAA,cACF;AAAA,YAAA;AAAA,UAAA,IAGF,gBAAA0E;AAAA,YAACU;AAAA,YAAA;AAAA,cACC,OAAOpF,EAAE,UAAU;AAAA,cACnB,SAAQ;AAAA,cACR,WACE,gBAAAqB;AAAA,gBAACgE;AAAAA,gBAAA;AAAA,kBACC,UAAUrF,EAAE,qBAAqB;AAAA,kBACjC,cAAa;AAAA,gBAAA;AAAA,cACf;AAAA,cAEF,YAAY6C,MAAmB;AAAA,cAE/B,UAAA;AAAA,gBAAA,gBAAAxB;AAAA,kBAACmE;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,UAAU7C;AAAA,oBACV,cAAAG;AAAA,oBACA,aACED,MAAmB,UAAU,SAAYE;AAAA,oBAE3C,SACEF,MAAmB,UACfhB,EAAc,YACdA,EAAc;AAAA,oBAEpB,YAAYgB,MAAmB;AAAA,kBAAA;AAAA,gBACjC;AAAA,gBACCxC,EAAO,aAAa,gBAAAgB,EAACoE,KAAc,SAASzF,EAAE,UAAU,GAAG;AAAA,cAAA;AAAA,YAAA;AAAA,UAC9D;AAAA,UAED6C,MAAmB,WAClB,gBAAA6B;AAAA,YAACU;AAAA,YAAA;AAAA,cACC,OAAOpF,EAAE,qBAAqB;AAAA,cAC9B,SAAQ;AAAA,cACR,WACE,gBAAAqB;AAAA,gBAACgE;AAAAA,gBAAA;AAAA,kBACC,UAAUrF,EAAE,sBAAsB;AAAA,kBAClC,cAAa;AAAA,gBAAA;AAAA,cACf;AAAA,cAEF,YAAU;AAAA,cAEV,UAAA;AAAA,gBAAA,gBAAAqB;AAAA,kBAAC3B;AAAA,kBAAA;AAAA,oBACC,UAAUiD;AAAA,oBACV,YAAY6B,IAAe,CAAC;AAAA,oBAC5B,aAAazB;AAAA,kBAAA;AAAA,gBACf;AAAA,gBACC1C,EAAO,UAAU,gBAAAgB,EAACoE,KAAc,SAASzF,EAAE,UAAU,GAAG;AAAA,cAAA;AAAA,YAAA;AAAA,UAC3D;AAAA,UAEF,gBAAAqB;AAAA,YAAC+D;AAAA,YAAA;AAAA,cACC,OAAOpF,EAAE,UAAU;AAAA,cACnB,SAAQ;AAAA,cACR,WACE,gBAAAqB;AAAA,gBAACgE;AAAAA,gBAAA;AAAA,kBACC,UAAUrF,EAAE,wBAAwB;AAAA,kBACpC,cAAa;AAAA,gBAAA;AAAA,cACf;AAAA,cAGF,UAAA,gBAAAqB;AAAA,gBAACmE;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,UAAU7C;AAAA,kBACV,cAAAG;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,UACA,gBAAAzB;AAAA,YAAC+D;AAAA,YAAA;AAAA,cACC,OAAOpF,EAAE,kBAAkB;AAAA,cAC3B,WACE,gBAAAqB;AAAA,gBAACgE;AAAAA,gBAAA;AAAA,kBACC,UAAUrF,EAAE,gCAAgC;AAAA,kBAC5C,cAAa;AAAA,gBAAA;AAAA,cACf;AAAA,cAEF,SAAQ;AAAA,cACR,iBAAe;AAAA,cAEf,UAAA,gBAAAqB;AAAA,gBAACI;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,eAAY;AAAA,kBACZ,cAAciE,EAAiB;AAAA,kBAC/B,SAAAxF;AAAA,kBACA,QAAQ,CAAC,EAAE,OAAAyB,EACT,MAAA,gBAAAN,EAAAsD,GAAA,EACG,UAAO,OAAA,OAAOe,CAAgB,EAAE,IAAI,CAACC,MACpC,gBAAAtE;AAAA,oBAACuE;AAAA,oBAAA;AAAA,sBACC,IAAID;AAAA,sBAEJ,eAAaA;AAAA,sBACb,WAAWhE,EAAM,UAAUgE;AAAA,sBAC3B,YAAAjC;AAAA,sBACA,MAAK;AAAA,sBACL,UAAU,MAAM/B,EAAM,SAASgE,CAAQ;AAAA,sBACvC,OAAO3F,EAAE,sBAAsB2F,CAAQ,EAAE;AAAA,sBACzC,WAAU;AAAA,oBAAA;AAAA,oBAPLA;AAAA,kBASR,CAAA,GACH;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA;AAAA,UACF;AAAA,UACC,gBAAAtE,EAAAwE,IAAA,EACC,UAAC,gBAAAnB,EAAA,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,YAAA,gBAAArD;AAAA,cAACyE;AAAA,cAAA;AAAA,gBACC,SAASxB,EAAc;AAAA,gBACvB,MAAK;AAAA,gBACL,eAAY;AAAA,gBAEX,YAAE,MAAM;AAAA,cAAA;AAAA,YACX;AAAA,YAEA,gBAAAjD;AAAA,cAACyE;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,eAAY;AAAA,gBACZ,WAAW,CAACC,MACV,gBAAA1E;AAAA,kBAAC2E;AAAA,kBAAA;AAAA,oBACE,GAAGD;AAAA,oBACJ,IAAIxB,EAAmB;AAAA,sBACrB,OAAA3B;AAAA,sBACA,UAAUD;AAAA,sBACV,KAAK;AAAA,oBAAA,CACN;AAAA,kBAAA;AAAA,gBACF;AAAA,gBAGF,YAAE,QAAQ;AAAA,cAAA;AAAA,YACb;AAAA,UAAA,EAAA,CACF,EACF,CAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,EACF,EAAA,CAAA,sBAxNQsD,IAAgB,CAAA,CAAA;AA0N5B;"}