Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
theme.keycloak.v2.admin.resources.assets.ResourcesPolicySelect-c5431a86.js.map Maven / Gradle / Ivy
Go to download
The user inferface to administrate the Keycloak server.
{"version":3,"file":"ResourcesPolicySelect-c5431a86.js","sources":["../../src/clients/authorization/ResourcesPolicySelect.tsx"],"sourcesContent":["import type PolicyRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/policyRepresentation\";\nimport type ResourceRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/resourceRepresentation\";\nimport type {\n Clients,\n PolicyQuery,\n} from \"@keycloak/keycloak-admin-client/lib/resources/clients\";\nimport { Select, SelectOption, SelectVariant } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { useFetch } from \"../../utils/useFetch\";\n\ntype Type = \"resources\" | \"policies\";\n\ntype ResourcesPolicySelectProps = {\n name: Type;\n clientId: string;\n permissionId?: string;\n variant?: SelectVariant;\n preSelected?: string;\n isRequired?: boolean;\n};\n\ntype Policies = {\n id?: string;\n name?: string;\n};\n\ntype TypeMapping = {\n [key in Type]: {\n searchFunction: keyof Pick;\n fetchFunction: keyof Pick<\n Clients,\n \"getAssociatedPolicies\" | \"getAssociatedResources\"\n >;\n };\n};\n\nconst typeMapping: TypeMapping = {\n resources: {\n searchFunction: \"listResources\",\n fetchFunction: \"getAssociatedResources\",\n },\n policies: {\n searchFunction: \"listPolicies\",\n fetchFunction: \"getAssociatedPolicies\",\n },\n};\n\nexport const ResourcesPolicySelect = ({\n name,\n clientId,\n permissionId,\n variant = SelectVariant.typeaheadMulti,\n preSelected,\n isRequired = false,\n}: ResourcesPolicySelectProps) => {\n const { t } = useTranslation(\"clients\");\n\n const {\n control,\n formState: { errors },\n } = useFormContext();\n const [items, setItems] = useState([]);\n const [search, setSearch] = useState(\"\");\n const [open, setOpen] = useState(false);\n\n const functions = typeMapping[name];\n\n const convert = (\n p: PolicyRepresentation | ResourceRepresentation,\n ): Policies => ({\n id: \"_id\" in p ? p._id : \"id\" in p ? p.id : undefined,\n name: p.name,\n });\n\n useFetch(\n async () => {\n const params: PolicyQuery = Object.assign(\n { id: clientId, first: 0, max: 10, permission: \"false\" },\n search === \"\" ? null : { name: search },\n );\n return (\n await Promise.all([\n adminClient.clients[functions.searchFunction](params),\n permissionId\n ? adminClient.clients[functions.fetchFunction]({\n id: clientId,\n permissionId,\n })\n : Promise.resolve([]),\n ])\n )\n .flat()\n .filter(\n (r): r is PolicyRepresentation | ResourceRepresentation =>\n typeof r !== \"string\",\n )\n .map(convert)\n .filter(\n ({ id }, index, self) =>\n index === self.findIndex(({ id: otherId }) => id === otherId),\n );\n },\n setItems,\n [search],\n );\n\n const toSelectOptions = () =>\n items.map((p) => (\n \n {p.name}\n \n ));\n\n return (\n !isRequired || value!.length > 0 }}\n render={({ field }) => (\n {\n setSearch(filter);\n return toSelectOptions();\n }}\n onClear={() => {\n field.onChange([]);\n setSearch(\"\");\n }}\n selections={field.value}\n onSelect={(_, selectedValue) => {\n const option = selectedValue.toString();\n if (variant === SelectVariant.typeaheadMulti) {\n const changedValue = field.value?.find(\n (p: string) => p === option,\n )\n ? field.value.filter((p: string) => p !== option)\n : [...field.value!, option];\n field.onChange(changedValue);\n } else {\n field.onChange([option]);\n }\n\n setSearch(\"\");\n }}\n isOpen={open}\n aria-labelledby={t(name)}\n isDisabled={!!preSelected}\n validated={errors[name] ? \"error\" : \"default\"}\n typeAheadAriaLabel={t(name)}\n >\n {toSelectOptions()}\n \n )}\n />\n );\n};\n"],"names":["typeMapping","ResourcesPolicySelect","name","clientId","permissionId","variant","SelectVariant","preSelected","isRequired","t","useTranslation","control","errors","useFormContext","items","setItems","useState","search","setSearch","open","setOpen","functions","convert","p","useFetch","params","adminClient","r","id","index","self","otherId","toSelectOptions","jsx","SelectOption","Controller","value","field","Select","_","filter","selectedValue","option","changedValue"],"mappings":"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"}