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

theme.keycloak.v2.admin.resources.assets.MapperList-BvJ2XhLk.js.map Maven / Gradle / Ivy

There is a newer version: 26.1.4
Show newest version
{"version":3,"file":"MapperList-BvJ2XhLk.js","sources":["../../src/client-scopes/add/MapperDialog.tsx","../../src/client-scopes/details/MapperList.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n  Button,\n  ButtonVariant,\n  DataList,\n  DataListCell,\n  DataListItem,\n  DataListItemCells,\n  DataListItemRow,\n  Modal,\n  ModalVariant,\n  Text,\n  TextContent,\n  TextVariants,\n} from \"@patternfly/react-core\";\n\nimport type ProtocolMapperRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/protocolMapperRepresentation\";\nimport type { ProtocolMapperTypeRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation\";\n\nimport { useServerInfo } from \"../../context/server-info/ServerInfoProvider\";\nimport { ListEmptyState } from \"../../components/list-empty-state/ListEmptyState\";\nimport { KeycloakDataTable } from \"../../components/table-toolbar/KeycloakDataTable\";\nimport useLocaleSort, { mapByKey } from \"../../utils/useLocaleSort\";\n\ntype Row = {\n  id: string;\n  description: string;\n  item: ProtocolMapperRepresentation;\n};\n\nexport type AddMapperDialogModalProps = {\n  protocol: string;\n  filter?: ProtocolMapperRepresentation[];\n  onConfirm: (\n    value: ProtocolMapperTypeRepresentation | ProtocolMapperRepresentation[],\n  ) => void;\n};\n\nexport type AddMapperDialogProps = AddMapperDialogModalProps & {\n  open: boolean;\n  toggleDialog: () => void;\n};\n\nexport const AddMapperDialog = (props: AddMapperDialogProps) => {\n  const { t } = useTranslation();\n\n  const serverInfo = useServerInfo();\n  const protocol = props.protocol;\n  const protocolMappers = serverInfo.protocolMapperTypes![protocol];\n  const builtInMappers = serverInfo.builtinProtocolMappers![protocol];\n  const [filter, setFilter] = useState([]);\n  const [selectedRows, setSelectedRows] = useState([]);\n  const localeSort = useLocaleSort();\n\n  const allRows = useMemo(\n    () =>\n      localeSort(builtInMappers, mapByKey(\"name\")).map((mapper) => {\n        const mapperType = protocolMappers.filter(\n          (type) => type.id === mapper.protocolMapper,\n        )[0];\n        return {\n          item: mapper,\n          id: mapper.name!,\n          description: mapperType.helpText,\n        };\n      }),\n    [builtInMappers, protocolMappers],\n  );\n  const [rows, setRows] = useState(allRows);\n\n  if (props.filter && props.filter.length !== filter.length) {\n    setFilter(props.filter);\n    const nameFilter = props.filter.map((f) => f.name);\n    setRows([...allRows.filter((row) => !nameFilter.includes(row.item.name))]);\n  }\n\n  const sortedProtocolMappers = useMemo(\n    () => localeSort(protocolMappers, mapByKey(\"name\")),\n    [protocolMappers],\n  );\n\n  const isBuiltIn = !!props.filter;\n\n  const header = [t(\"name\"), t(\"description\")];\n\n  return (\n    \n          \n            {isBuiltIn ? t(\"addPredefinedMappers\") : t(\"emptySecondaryAction\")}\n          \n          \n            {isBuiltIn\n              ? t(\"predefinedMappingDescription\")\n              : t(\"configureMappingDescription\")}\n          \n        \n      }\n      isOpen={props.open}\n      onClose={props.toggleDialog}\n      actions={\n        isBuiltIn\n          ? [\n               {\n                  props.onConfirm(selectedRows.map(({ item }) => item));\n                  props.toggleDialog();\n                }}\n              >\n                {t(\"add\")}\n              ,\n               {\n                  props.toggleDialog();\n                }}\n              >\n                {t(\"cancel\")}\n              ,\n            ]\n          : []\n      }\n    >\n      {!isBuiltIn && (\n         {\n            const mapper = protocolMappers.find((mapper) => mapper.id === id);\n            props.onConfirm(mapper!);\n            props.toggleDialog();\n          }}\n          aria-label={t(\"addPredefinedMappers\")}\n          isCompact\n        >\n          \n            \n               (\n                  \n                    {name}\n                  \n                ))}\n              />\n            \n          \n          {sortedProtocolMappers.map((mapper) => (\n            \n              \n                \n                      {mapper.name}\n                    ,\n                    \n                      {mapper.helpText}\n                    ,\n                  ]}\n                />\n              \n            \n          ))}\n        \n      )}\n      {isBuiltIn && (\n        \n          }\n        />\n      )}\n    \n  );\n};\n","import { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { Path } from \"react-router-dom\";\nimport { Link } from \"react-router-dom\";\n\nimport type ClientRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientRepresentation\";\nimport type ClientScopeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientScopeRepresentation\";\nimport type ProtocolMapperRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/protocolMapperRepresentation\";\nimport type { ProtocolMapperTypeRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation\";\nimport { useServerInfo } from \"../../context/server-info/ServerInfoProvider\";\n\nimport { ListEmptyState } from \"../../components/list-empty-state/ListEmptyState\";\nimport { AddMapperDialog } from \"../add/MapperDialog\";\nimport {\n  Action,\n  KeycloakDataTable,\n} from \"../../components/table-toolbar/KeycloakDataTable\";\nimport {\n  Dropdown,\n  DropdownItem,\n  DropdownList,\n  MenuToggle,\n} from \"@patternfly/react-core\";\n\ntype MapperListProps = {\n  model: ClientScopeRepresentation | ClientRepresentation;\n  onAdd: (\n    mappers: ProtocolMapperTypeRepresentation | ProtocolMapperRepresentation[],\n  ) => void;\n  onDelete: (mapper: ProtocolMapperRepresentation) => void;\n  detailLink: (id: string) => Partial;\n};\n\ntype Row = ProtocolMapperRepresentation & {\n  category: string;\n  type: string;\n  priority: number;\n};\n\ntype MapperLinkProps = Row & {\n  detailLink: (id: string) => Partial;\n};\n\nconst MapperLink = ({ id, name, detailLink }: MapperLinkProps) => (\n  {name}\n);\n\nexport const MapperList = ({\n  model,\n  onAdd,\n  onDelete,\n  detailLink,\n}: MapperListProps) => {\n  const { t } = useTranslation();\n\n  const [mapperAction, setMapperAction] = useState(false);\n  const mapperList = model.protocolMappers;\n  const mapperTypes = useServerInfo().protocolMapperTypes![model.protocol!];\n\n  const [key, setKey] = useState(0);\n  useEffect(() => setKey(key + 1), [mapperList]);\n\n  const [addMapperDialogOpen, setAddMapperDialogOpen] = useState(false);\n  const [filter, setFilter] = useState(model.protocolMappers);\n  const toggleAddMapperDialog = (buildIn: boolean) => {\n    if (buildIn) {\n      setFilter(mapperList || []);\n    } else {\n      setFilter(undefined);\n    }\n    setAddMapperDialogOpen(!addMapperDialogOpen);\n  };\n\n  const loader = async () => {\n    if (!mapperList) {\n      return [];\n    }\n\n    const list = mapperList.reduce((rows, mapper) => {\n      const mapperType = mapperTypes.find(\n        ({ id }) => id === mapper.protocolMapper,\n      );\n\n      if (!mapperType) {\n        return rows;\n      }\n\n      return rows.concat({\n        ...mapper,\n        category: mapperType.category,\n        type: mapperType.name,\n        priority: mapperType.priority,\n      });\n    }, []);\n\n    return list.sort((a, b) => a.priority - b.priority);\n  };\n\n  return (\n    <>\n       setAddMapperDialogOpen(!addMapperDialogOpen)}\n      />\n\n       setMapperAction(false)}\n            toggle={(ref) => (\n               setMapperAction(!mapperAction)}\n              >\n                {t(\"addMapper\")}\n              \n            )}\n            isOpen={mapperAction}\n          >\n            \n               toggleAddMapperDialog(true)}>\n                {t(\"fromPredefinedMapper\")}\n              \n               toggleAddMapperDialog(false)}>\n                {t(\"byConfiguration\")}\n              \n            \n          \n        }\n        actions={[\n          {\n            title: t(\"delete\"),\n            onRowClick: onDelete,\n          } as Action,\n        ]}\n        columns={[\n          {\n            name: \"name\",\n            cellRenderer: (row) => (\n              \n            ),\n          },\n          { name: \"category\" },\n          {\n            name: \"type\",\n          },\n          {\n            name: \"priority\",\n          },\n        ]}\n        emptyState={\n           toggleAddMapperDialog(true),\n              },\n              {\n                text: t(\"emptySecondaryAction\"),\n                onClick: () => toggleAddMapperDialog(false),\n              },\n            ]}\n          />\n        }\n      />\n    \n  );\n};\n"],"names":["AddMapperDialog","props","t","useTranslation","serverInfo","useServerInfo","protocol","protocolMappers","builtInMappers","filter","setFilter","useState","selectedRows","setSelectedRows","localeSort","useLocaleSort","allRows","useMemo","mapByKey","mapper","mapperType","type","rows","setRows","nameFilter","f","row","sortedProtocolMappers","isBuiltIn","header","jsxs","Modal","ModalVariant","TextContent","jsx","Text","TextVariants","Button","item","ButtonVariant","DataList","_event","id","DataListItem","DataListItemRow","DataListItemCells","name","DataListCell","KeycloakDataTable","ListEmptyState","MapperLink","detailLink","Link","MapperList","model","onAdd","onDelete","mapperAction","setMapperAction","mapperList","mapperTypes","key","setKey","useEffect","addMapperDialogOpen","setAddMapperDialogOpen","toggleAddMapperDialog","buildIn","loader","a","b","Fragment","Dropdown","ref","MenuToggle","DropdownList","DropdownItem"],"mappings":"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"}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy