All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.ResourceDetails-73679b9b.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"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           o.name)}\n            onFilter={(_, value) => {\n              setSearch(value);\n              return renderScopes(scopes);\n            }}\n            onSelect={(_, selectedValue) => {\n              const option =\n                typeof selectedValue === \"string\"\n                  ? selectedValue\n                  : (selectedValue as Scope).name;\n              const changedValue = field.value.find(\n                (o: Scope) => o.name === option,\n              )\n                ? field.value.filter((item: Scope) => item.name !== option)\n                : [...field.value, selectedValue];\n              field.onChange(changedValue);\n            }}\n            onClear={(event) => {\n              event.stopPropagation();\n              setSearch(\"\");\n              field.onChange([]);\n            }}\n            typeAheadAriaLabel={t(\"authorizationScopes\")}\n          >\n            {renderScopes(scopes)}\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 {t(\"common:save\")}\n \n\n (\n \n )}\n >\n {t(\"common:cancel\")}\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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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy