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

theme.keycloak.v2.admin.resources.assets.ClientScopeTypes-553b8611.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"ClientScopeTypes-553b8611.js","sources":["../../src/components/client-scope/ClientScopeTypes.tsx"],"sourcesContent":["import type ClientScopeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientScopeRepresentation\";\nimport {\n  DropdownItem,\n  Select,\n  SelectOption,\n  SelectProps,\n} from \"@patternfly/react-core\";\nimport type { TFunction } from \"i18next\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { toUpperCase } from \"../../util\";\n\nexport enum ClientScope {\n  default = \"default\",\n  optional = \"optional\",\n}\n\nexport enum AllClientScopes {\n  none = \"none\",\n}\n\nexport type ClientScopeType = ClientScope;\nexport type AllClientScopeType = ClientScope | AllClientScopes;\n\nconst clientScopeTypes = Object.keys(ClientScope);\nexport const allClientScopeTypes = Object.keys({\n  ...AllClientScopes,\n  ...ClientScope,\n}) as AllClientScopeType[];\n\nexport const clientScopeTypesSelectOptions = (\n  t: TFunction,\n  scopeTypes: string[] | undefined = clientScopeTypes,\n) =>\n  scopeTypes.map((type) => (\n    \n      {t(`common:clientScope.${type}`)}\n    \n  ));\n\nexport const clientScopeTypesDropdown = (\n  t: TFunction,\n  onClick: (scope: ClientScopeType) => void,\n) =>\n  clientScopeTypes.map((type) => (\n     onClick(type as ClientScopeType)}>\n      {t(`common:clientScope.${type}`)}\n    \n  ));\n\ntype CellDropdownProps = Omit & {\n  clientScope: ClientScopeRepresentation;\n  type: ClientScopeType | AllClientScopeType;\n  all?: boolean;\n  onSelect: (value: ClientScopeType | AllClientScopeType) => void;\n};\n\nexport const CellDropdown = ({\n  clientScope,\n  type,\n  onSelect,\n  all = false,\n  ...props\n}: CellDropdownProps) => {\n  const { t } = useTranslation();\n  const [open, setOpen] = useState(false);\n\n  return (\n     setOpen(!open)}\n      isOpen={open}\n      selections={[type]}\n      onSelect={(_, value) => {\n        onSelect(\n          all ? (value as ClientScopeType) : (value as AllClientScopeType),\n        );\n        setOpen(false);\n      }}\n      {...props}\n    >\n      {clientScopeTypesSelectOptions(\n        t,\n        all ? allClientScopeTypes : clientScopeTypes,\n      )}\n    \n  );\n};\n\nexport type ClientScopeDefaultOptionalType = ClientScopeRepresentation & {\n  type: AllClientScopeType;\n};\n\nexport const changeScope = async (\n  clientScope: ClientScopeDefaultOptionalType,\n  changeTo: AllClientScopeType,\n) => {\n  await removeScope(clientScope);\n  await addScope(clientScope, changeTo);\n};\n\nconst castAdminClient = () =>\n  adminClient.clientScopes as unknown as {\n    [index: string]: Function;\n  };\n\nexport const removeScope = async (\n  clientScope: ClientScopeDefaultOptionalType,\n) => {\n  if (clientScope.type !== AllClientScopes.none)\n    await castAdminClient()[\n      `delDefault${\n        clientScope.type === ClientScope.optional ? \"Optional\" : \"\"\n      }ClientScope`\n    ]({\n      id: clientScope.id!,\n    });\n};\n\nconst addScope = async (\n  clientScope: ClientScopeDefaultOptionalType,\n  type: AllClientScopeType,\n) => {\n  if (type !== AllClientScopes.none)\n    await castAdminClient()[\n      `addDefault${type === ClientScope.optional ? \"Optional\" : \"\"}ClientScope`\n    ]({\n      id: clientScope.id!,\n    });\n};\n\nexport const changeClientScope = async (\n  clientId: string,\n  clientScope: ClientScopeRepresentation,\n  type: AllClientScopeType,\n  changeTo: ClientScopeType,\n) => {\n  if (type !== \"none\") {\n    await removeClientScope(clientId, clientScope, type);\n  }\n  await addClientScope(clientId, clientScope, changeTo);\n};\n\nexport const removeClientScope = async (\n  clientId: string,\n  clientScope: ClientScopeRepresentation,\n  type: ClientScope,\n) => {\n  const methodName = `del${toUpperCase(type)}ClientScope` as const;\n\n  await adminClient.clients[methodName]({\n    id: clientId,\n    clientScopeId: clientScope.id!,\n  });\n};\n\nexport const addClientScope = async (\n  clientId: string,\n  clientScope: ClientScopeRepresentation,\n  type: ClientScopeType,\n) => {\n  const methodName = `add${toUpperCase(type)}ClientScope` as const;\n\n  await adminClient.clients[methodName]({\n    id: clientId,\n    clientScopeId: clientScope.id!,\n  });\n};\n"],"names":["ClientScope","AllClientScopes","clientScopeTypes","allClientScopeTypes","clientScopeTypesSelectOptions","t","scopeTypes","type","SelectOption","clientScopeTypesDropdown","onClick","jsx","DropdownItem","CellDropdown","clientScope","onSelect","all","props","useTranslation","open","setOpen","useState","Select","_","value","changeScope","changeTo","removeScope","addScope","castAdminClient","adminClient","changeClientScope","clientId","removeClientScope","addClientScope","methodName","toUpperCase"],"mappings":"uHAcY,IAAAA,GAAAA,IACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WAFDA,IAAAA,GAAA,CAAA,CAAA,EAKAC,GAAAA,IACVA,EAAA,KAAO,OADGA,IAAAA,GAAA,CAAA,CAAA,EAOZ,MAAMC,EAAmB,OAAO,KAAKF,CAAW,EACnCG,EAAsB,OAAO,KAAK,CAC7C,GAAGF,EACH,GAAGD,CACL,CAAC,EAEYI,EAAgC,CAC3CC,EACAC,EAAmCJ,IAEnCI,EAAW,IAAKC,SACbC,EAAwB,CAAA,MAAOD,EAC7B,SAAEF,EAAA,sBAAsBE,CAAI,EAAE,GADdA,CAEnB,CACD,EAEUE,EAA2B,CACtCJ,EACAK,IAEAR,EAAiB,IAAKK,GACnBI,EAAAA,IAAAC,EAAA,CAAwB,QAAS,IAAMF,EAAQH,CAAuB,EACpE,SAAAF,EAAE,sBAAsBE,CAAI,EAAE,GADdA,CAEnB,CACD,EASUM,EAAe,CAAC,CAC3B,YAAAC,EACA,KAAAP,EACA,SAAAQ,EACA,IAAAC,EAAM,GACN,GAAGC,CACL,IAAyB,CACjB,KAAA,CAAE,EAAAZ,GAAMa,IACR,CAACC,EAAMC,CAAO,EAAIC,WAAS,EAAK,EAGpC,OAAAV,EAAA,IAACW,EAAA,CACC,UAAW,2BAA2Bf,CAAI,GAE1C,SAAU,IAAMa,EAAQ,CAACD,CAAI,EAC7B,OAAQA,EACR,WAAY,CAACZ,CAAI,EACjB,SAAU,CAACgB,EAAGC,IAAU,CACtBT,EACSS,CAA6B,EAEtCJ,EAAQ,EAAK,CACf,EACC,GAAGH,EAEH,SAAAb,EACCC,EACAW,EAAMb,EAAsBD,CAC9B,CAAA,EAfKY,EAAY,EAAA,CAkBvB,EAMaW,EAAc,MACzBX,EACAY,IACG,CACH,MAAMC,EAAYb,CAAW,EACvB,MAAAc,EAASd,EAAaY,CAAQ,CACtC,EAEMG,EAAkB,IACtBC,EAAY,aAIDH,EAAc,MACzBb,GACG,CACCA,EAAY,OAAS,QACjB,MAAAe,IACJ,aACEf,EAAY,OAAS,WAAuB,WAAa,EAC3D,aACF,EAAE,CACA,GAAIA,EAAY,EAAA,CACjB,CACL,EAEMc,EAAW,MACfd,EACAP,IACG,CACCA,IAAS,QACL,MAAAsB,EAAA,EACJ,aAAatB,IAAS,WAAuB,WAAa,EAAE,aAC9D,EAAE,CACA,GAAIO,EAAY,EAAA,CACjB,CACL,EAEaiB,EAAoB,MAC/BC,EACAlB,EACAP,EACAmB,IACG,CACCnB,IAAS,QACL,MAAA0B,EAAkBD,EAAUlB,EAAaP,CAAI,EAE/C,MAAA2B,EAAeF,EAAUlB,EAAaY,CAAQ,CACtD,EAEaO,EAAoB,MAC/BD,EACAlB,EACAP,IACG,CACH,MAAM4B,EAAa,MAAMC,EAAY7B,CAAI,CAAC,cAEpC,MAAAuB,EAAY,QAAQK,CAAU,EAAE,CACpC,GAAIH,EACJ,cAAelB,EAAY,EAAA,CAC5B,CACH,EAEaoB,EAAiB,MAC5BF,EACAlB,EACAP,IACG,CACH,MAAM4B,EAAa,MAAMC,EAAY7B,CAAI,CAAC,cAEpC,MAAAuB,EAAY,QAAQK,CAAU,EAAE,CACpC,GAAIH,EACJ,cAAelB,EAAY,EAAA,CAC5B,CACH"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy