
theme.keycloak.v2.admin.resources.assets.MapperList-BvJ2XhLk.js.map Maven / Gradle / Ivy
{"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 ,\n ]\n : []\n }\n >\n {!isBuiltIn && (\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