theme.keycloak.v2.admin.resources.assets.ResourceDetails-73679b9b.js.map Maven / Gradle / Ivy
{"version":3,"file":"ResourceDetails-73679b9b.js","sources":["../../src/clients/authorization/ScopePicker.tsx","../../src/clients/authorization/ResourceDetails.tsx"],"sourcesContent":["import type ScopeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/scopeRepresentation\";\nimport {\n FormGroup,\n Select,\n SelectOption,\n SelectVariant,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { useFetch } from \"../../utils/useFetch\";\n\ntype Scope = {\n id: string;\n name: string;\n};\n\nexport const ScopePicker = ({ clientId }: { clientId: string }) => {\n const { t } = useTranslation(\"clients\");\n const { control } = useFormContext();\n\n const [open, setOpen] = useState(false);\n const [scopes, setScopes] = useState();\n const [search, setSearch] = useState(\"\");\n\n useFetch(\n () => {\n const params = {\n id: clientId,\n first: 0,\n max: 20,\n deep: false,\n name: search,\n };\n return adminClient.clients.listAllScopes(params);\n },\n setScopes,\n [search],\n );\n\n const renderScopes = (scopes?: ScopeRepresentation[]) =>\n scopes?.map((option) => (\n \n {option.name}\n \n ));\n\n return (\n \n }\n fieldId=\"scopes\"\n >\n (\n \n )}\n />\n \n );\n};\n","import type ClientRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientRepresentation\";\nimport type ResourceRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/resourceRepresentation\";\nimport type ResourceServerRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/resourceServerRepresentation\";\nimport {\n ActionGroup,\n Alert,\n AlertVariant,\n Button,\n ButtonVariant,\n DropdownItem,\n FormGroup,\n PageSection,\n Switch,\n ValidatedOptions,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport type { KeyValueType } from \"../../components/key-value-form/key-value-convert\";\nimport { KeyValueInput } from \"../../components/key-value-form/KeyValueInput\";\nimport { KeycloakSpinner } from \"../../components/keycloak-spinner/KeycloakSpinner\";\nimport { KeycloakTextInput } from \"../../components/keycloak-text-input/KeycloakTextInput\";\nimport { MultiLineInput } from \"../../components/multi-line-input/MultiLineInput\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { convertFormValuesToObject, convertToFormValues } from \"../../util\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport { useParams } from \"../../utils/useParams\";\nimport { toAuthorizationTab } from \"../routes/AuthenticationTab\";\nimport { ResourceDetailsParams, toResourceDetails } from \"../routes/Resource\";\nimport { ScopePicker } from \"./ScopePicker\";\n\nimport \"./resource-details.css\";\n\ntype SubmittedResource = Omit<\n ResourceRepresentation,\n \"attributes\" | \"scopes\"\n> & {\n attributes: KeyValueType[];\n};\n\nexport default function ResourceDetails() {\n const { t } = useTranslation(\"clients\");\n const [client, setClient] = useState();\n const [resource, setResource] = useState();\n\n const [permissions, setPermission] =\n useState();\n\n const { addAlert, addError } = useAlerts();\n const form = useForm({\n mode: \"onChange\",\n });\n const {\n register,\n formState: { errors },\n control,\n setValue,\n handleSubmit,\n } = form;\n\n const { id, resourceId, realm } = useParams();\n const navigate = useNavigate();\n\n const setupForm = (resource: ResourceRepresentation = {}) => {\n convertToFormValues(resource, setValue);\n };\n\n useFetch(\n () =>\n Promise.all([\n adminClient.clients.findOne({ id }),\n resourceId\n ? adminClient.clients.getResource({ id, resourceId })\n : Promise.resolve(undefined),\n resourceId\n ? adminClient.clients.listPermissionsByResource({ id, resourceId })\n : Promise.resolve(undefined),\n ]),\n ([client, resource, permissions]) => {\n if (!client) {\n throw new Error(t(\"common:notFound\"));\n }\n setClient(client);\n setPermission(permissions);\n setResource(resource);\n setupForm(resource);\n },\n [],\n );\n\n const submit = async (submitted: SubmittedResource) => {\n const resource = convertFormValuesToObject<\n SubmittedResource,\n ResourceRepresentation\n >(submitted);\n\n try {\n if (resourceId) {\n await adminClient.clients.updateResource({ id, resourceId }, resource);\n } else {\n const result = await adminClient.clients.createResource(\n { id },\n resource,\n );\n navigate(toResourceDetails({ realm, id, resourceId: result._id! }));\n }\n addAlert(\n t((resourceId ? \"update\" : \"create\") + \"ResourceSuccess\"),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\"clients:resourceSaveError\", error);\n }\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"clients:deleteResource\",\n children: (\n <>\n {t(\"deleteResourceConfirm\")}\n {permissions?.length !== 0 && (\n \n \n {permissions?.map((permission) => (\n \n {permission.name}\n \n ))}\n
\n \n )}\n >\n ),\n continueButtonLabel: \"clients:confirm\",\n onConfirm: async () => {\n try {\n await adminClient.clients.delResource({\n id,\n resourceId: resourceId!,\n });\n addAlert(t(\"resourceDeletedSuccess\"), AlertVariant.success);\n navigate(toAuthorizationTab({ realm, clientId: id, tab: \"resources\" }));\n } catch (error) {\n addError(\"clients:resourceDeletedError\", error);\n }\n },\n });\n\n if (!client) {\n return ;\n }\n\n return (\n <>\n \n toggleDeleteDialog()}\n >\n {t(\"common:delete\")}\n ,\n ]\n : undefined\n }\n />\n \n \n \n \n }\n >\n \n \n \n }\n helperTextInvalid={t(\"common:required\")}\n validated={\n errors.name ? ValidatedOptions.error : ValidatedOptions.default\n }\n isRequired\n >\n \n \n \n }\n >\n \n \n \n }\n >\n \n \n \n }\n >\n \n \n \n \n }\n >\n \n \n \n }\n fieldId=\"ownerManagedAccess\"\n >\n (\n \n )}\n />\n \n\n \n }\n fieldId=\"resourceAttribute\"\n >\n \n \n \n \n \n\n \n \n \n \n \n \n >\n );\n}\n"],"names":["ScopePicker","clientId","t","useTranslation","control","useFormContext","open","setOpen","useState","scopes","setScopes","search","setSearch","useFetch","params","adminClient","renderScopes","option","jsx","SelectOption","FormGroup","HelpItem","Controller","field","Select","SelectVariant","o","_","value","selectedValue","changedValue","item","event","ResourceDetails","client","setClient","resource","setResource","permissions","setPermission","addAlert","addError","useAlerts","form","useForm","register","errors","setValue","handleSubmit","id","resourceId","realm","useParams","navigate","useNavigate","setupForm","convertToFormValues","submit","submitted","convertFormValuesToObject","result","toResourceDetails","AlertVariant","error","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","jsxs","Fragment","Alert","permission","toAuthorizationTab","ViewHeader","DropdownItem","PageSection","FormProvider","FormAccess","KeycloakTextInput","ValidatedOptions","MultiLineInput","Switch","KeyValueInput","ActionGroup","Button","ButtonVariant","props","Link","KeycloakSpinner"],"mappings":"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"}