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

theme.keycloak.v2.admin.resources.assets.ClientScopesSection-25328280.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"ClientScopesSection-25328280.js","sources":["../../src/client-scopes/ClientScopesSection.tsx"],"sourcesContent":["import {\n  AlertVariant,\n  Button,\n  ButtonVariant,\n  Dropdown,\n  DropdownItem,\n  KebabToggle,\n  PageSection,\n  ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { cellWidth } from \"@patternfly/react-table\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { adminClient } from \"../admin-client\";\nimport type { Row } from \"../clients/scopes/ClientScopes\";\nimport { getProtocolName } from \"../clients/utils\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport {\n  AllClientScopeType,\n  AllClientScopes,\n  CellDropdown,\n  ClientScope,\n  ClientScopeDefaultOptionalType,\n  changeScope,\n  removeScope,\n} from \"../components/client-scope/ClientScopeTypes\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport {\n  Action,\n  KeycloakDataTable,\n} from \"../components/table-toolbar/KeycloakDataTable\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport helpUrls from \"../help-urls\";\nimport { emptyFormatter } from \"../util\";\nimport useLocaleSort, { mapByKey } from \"../utils/useLocaleSort\";\nimport { ChangeTypeDropdown } from \"./ChangeTypeDropdown\";\nimport {\n  ProtocolType,\n  SearchDropdown,\n  SearchToolbar,\n  SearchType,\n  nameFilter,\n  protocolFilter,\n  typeFilter,\n} from \"./details/SearchFilter\";\nimport { toClientScope } from \"./routes/ClientScope\";\nimport { toNewClientScope } from \"./routes/NewClientScope\";\n\ntype TypeSelectorProps = ClientScopeDefaultOptionalType & {\n  refresh: () => void;\n};\n\nconst TypeSelector = (scope: TypeSelectorProps) => {\n  const { t } = useTranslation(\"client-scopes\");\n  const { addAlert, addError } = useAlerts();\n\n  return (\n     {\n        try {\n          await changeScope(scope, value as AllClientScopeType);\n          addAlert(t(\"clientScopeSuccess\"), AlertVariant.success);\n          scope.refresh();\n        } catch (error) {\n          addError(\"client-scopes:clientScopeError\", error);\n        }\n      }}\n    />\n  );\n};\n\nconst ClientScopeDetailLink = ({\n  id,\n  name,\n}: ClientScopeDefaultOptionalType) => {\n  const { realm } = useRealm();\n  return (\n    \n      {name}\n    \n  );\n};\n\nexport default function ClientScopesSection() {\n  const { realm } = useRealm();\n  const { t } = useTranslation(\"client-scopes\");\n  const { addAlert, addError } = useAlerts();\n\n  const [kebabOpen, setKebabOpen] = useState(false);\n  const [selectedScopes, setSelectedScopes] = useState<\n    ClientScopeDefaultOptionalType[]\n  >([]);\n\n  const [searchType, setSearchType] = useState(\"name\");\n  const [searchTypeType, setSearchTypeType] = useState(\n    AllClientScopes.none,\n  );\n  const [searchProtocol, setSearchProtocol] = useState(\"all\");\n  const localeSort = useLocaleSort();\n\n  const [key, setKey] = useState(0);\n  const refresh = () => {\n    setSelectedScopes([]);\n    setKey(key + 1);\n  };\n\n  const loader = async (first?: number, max?: number, search?: string) => {\n    const defaultScopes =\n      await adminClient.clientScopes.listDefaultClientScopes();\n    const optionalScopes =\n      await adminClient.clientScopes.listDefaultOptionalClientScopes();\n    const clientScopes = await adminClient.clientScopes.find();\n\n    const filter =\n      searchType === \"name\"\n        ? nameFilter(search)\n        : searchType === \"type\"\n        ? typeFilter(searchTypeType)\n        : protocolFilter(searchProtocol);\n\n    const transformed = clientScopes\n      .map((scope) => {\n        const row: Row = {\n          ...scope,\n          type: defaultScopes.find(\n            (defaultScope) => defaultScope.name === scope.name,\n          )\n            ? ClientScope.default\n            : optionalScopes.find(\n                (optionalScope) => optionalScope.name === scope.name,\n              )\n            ? ClientScope.optional\n            : AllClientScopes.none,\n        };\n        return row;\n      })\n      .filter(filter);\n\n    return localeSort(transformed, mapByKey(\"name\")).slice(\n      first,\n      Number(first) + Number(max),\n    );\n  };\n\n  const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n    titleKey: t(\"deleteClientScope\", {\n      count: selectedScopes.length,\n      name: selectedScopes[0]?.name,\n    }),\n    messageKey: \"client-scopes:deleteConfirm\",\n    continueButtonLabel: \"common:delete\",\n    continueButtonVariant: ButtonVariant.danger,\n    onConfirm: async () => {\n      try {\n        for (const scope of selectedScopes) {\n          try {\n            await removeScope(scope);\n          } catch (error: any) {\n            console.warn(\n              \"could not remove scope\",\n              error.response?.data?.errorMessage || error,\n            );\n          }\n          await adminClient.clientScopes.del({ id: scope.id! });\n        }\n        addAlert(t(\"deletedSuccess\"), AlertVariant.success);\n        refresh();\n      } catch (error) {\n        addError(\"client-scopes:deleteError\", error);\n      }\n    },\n  });\n\n  return (\n    <>\n      \n      \n      \n         setSearchType(searchType)}\n              withProtocol\n            />\n          }\n          isPaginated\n          onSelect={(clientScopes) => setSelectedScopes([...clientScopes])}\n          canSelectAll\n          toolbarItem={\n            <>\n               {\n                  setSearchType(searchType);\n                  setSearchProtocol(\"all\");\n                  setSearchTypeType(AllClientScopes.none);\n                  refresh();\n                }}\n                onType={(value) => {\n                  setSearchTypeType(value);\n                  setSearchProtocol(\"all\");\n                  refresh();\n                }}\n                protocol={searchProtocol}\n                onProtocol={(protocol) => {\n                  setSearchProtocol(protocol);\n                  setSearchTypeType(AllClientScopes.none);\n                  refresh();\n                }}\n              />\n\n              \n                 (\n                    \n                  )}\n                >\n                  {t(\"createClientScope\")}\n                \n              \n              \n                \n              \n              \n                }\n                  isOpen={kebabOpen}\n                  isPlain\n                  dropdownItems={[\n                     {\n                        toggleDeleteDialog();\n                        setKebabOpen(false);\n                      }}\n                    >\n                      {t(\"common:delete\")}\n                    ,\n                  ]}\n                />\n              \n            \n          }\n          actions={[\n            {\n              title: t(\"common:delete\"),\n              onRowClick: (clientScope) => {\n                setSelectedScopes([clientScope]);\n                toggleDeleteDialog();\n              },\n            } as Action,\n          ]}\n          columns={[\n            {\n              name: \"name\",\n              cellRenderer: ClientScopeDetailLink,\n            },\n            {\n              name: \"type\",\n              displayKey: \"client-scopes:assignedType\",\n              cellRenderer: (row) => (\n                \n              ),\n            },\n            {\n              name: \"protocol\",\n              displayKey: \"client-scopes:protocol\",\n              cellRenderer: (client) =>\n                getProtocolName(t, client.protocol ?? \"openid-connect\"),\n              transforms: [cellWidth(15)],\n            },\n            {\n              name: \"attributes['gui.order']\",\n              displayKey: \"client-scopes:displayOrder\",\n              cellFormatters: [emptyFormatter()],\n              transforms: [cellWidth(15)],\n            },\n            { name: \"description\", cellFormatters: [emptyFormatter()] },\n          ]}\n        />\n      \n    \n  );\n}\n"],"names":["TypeSelector","scope","t","useTranslation","addAlert","addError","useAlerts","jsx","CellDropdown","value","changeScope","AlertVariant","error","ClientScopeDetailLink","id","name","realm","useRealm","Link","toClientScope","ClientScopesSection","kebabOpen","setKebabOpen","useState","selectedScopes","setSelectedScopes","searchType","setSearchType","searchTypeType","setSearchTypeType","AllClientScopes","searchProtocol","setSearchProtocol","localeSort","useLocaleSort","key","setKey","refresh","loader","first","max","search","defaultScopes","adminClient","optionalScopes","clientScopes","filter","nameFilter","typeFilter","protocolFilter","transformed","defaultScope","ClientScope","optionalScope","mapByKey","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","ButtonVariant","removeScope","jsxs","Fragment","ViewHeader","helpUrls","PageSection","KeycloakDataTable","SearchDropdown","SearchToolbar","protocol","ToolbarItem","Button","props","toNewClientScope","ChangeTypeDropdown","Dropdown","KebabToggle","DropdownItem","clientScope","row","client","getProtocolName","cellWidth","emptyFormatter"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy