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

theme.keycloak.v2.admin.resources.assets.EventsSection-ebd0adf0.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"EventsSection-ebd0adf0.js","sources":["../../../../node_modules/.pnpm/[email protected]/node_modules/lodash-es/pickBy.js","../../src/events/ResourceLinks.tsx","../../src/events/AdminEvents.tsx","../../src/events/EventsSection.tsx"],"sourcesContent":["import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n  if (object == null) {\n    return {};\n  }\n  var props = arrayMap(getAllKeysIn(object), function(prop) {\n    return [prop];\n  });\n  predicate = baseIteratee(predicate);\n  return basePickBy(object, props, function(value, path) {\n    return predicate(value, path[0]);\n  });\n}\n\nexport default pickBy;\n","import { ReactElement } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Tooltip } from \"@patternfly/react-core\";\n\nimport type AdminEventRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/adminEventRepresentation\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { toClient } from \"../clients/routes/Client\";\nimport { toGroups } from \"../groups/routes/Groups\";\nimport { toClientScope } from \"../client-scopes/routes/ClientScope\";\nimport { toUser } from \"../user/routes/User\";\nimport { toRealmRole } from \"../realm-roles/routes/RealmRole\";\nimport { toFlow } from \"../authentication/routes/Flow\";\n\ntype ResourceLinkProps = {\n  event: AdminEventRepresentation;\n};\n\nconst MAX_TEXT_LENGTH = 38;\nconst Truncate = ({\n  text,\n  children,\n}: {\n  text?: string;\n  children: (text: string) => ReactElement;\n}) => {\n  const definedText = text || \"\";\n  const needsTruncation = definedText.length > MAX_TEXT_LENGTH;\n  const truncatedText = definedText.substring(0, MAX_TEXT_LENGTH);\n  return needsTruncation ? (\n    {children(truncatedText + \"…\")}\n  ) : (\n    children(definedText)\n  );\n};\n\nconst isLinkable = (event: AdminEventRepresentation) => {\n  if (event.operationType === \"DELETE\") {\n    return false;\n  }\n  return (\n    event.resourceType === \"USER\" ||\n    event.resourceType === \"GROUP_MEMBERSHIP\" ||\n    event.resourceType === \"GROUP\" ||\n    event.resourceType === \"CLIENT\" ||\n    event.resourceType?.startsWith(\"AUTHORIZATION_RESOURCE\") ||\n    event.resourceType === \"CLIENT_SCOPE\" ||\n    event.resourceType === \"AUTH_FLOW\" ||\n    event.resourcePath?.startsWith(\"roles-by-id\")\n  );\n};\n\nconst idRegex = new RegExp(\n  /([0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})/\n);\n\nconst createLink = (realm: string, event: AdminEventRepresentation) => {\n  const part = idRegex.exec(event.resourcePath!);\n  if (!part) {\n    console.warn(\"event didn't contain a valid link\", event);\n    return \"\";\n  }\n  const id = part[1];\n\n  if (\n    event.resourceType === \"CLIENT\" ||\n    event.resourceType?.startsWith(\"AUTHORIZATION_RESOURCE\")\n  ) {\n    return toClient({\n      realm,\n      clientId: id,\n      tab: event.resourceType === \"CLIENT\" ? \"settings\" : \"authorization\",\n    });\n  }\n\n  if (event.resourceType === \"GROUP\") {\n    return toGroups({ realm, id });\n  }\n\n  if (event.resourceType === \"CLIENT_SCOPE\") {\n    return toClientScope({ realm, id, tab: \"settings\" });\n  }\n\n  if (\n    event.resourceType === \"USER\" ||\n    event.resourceType === \"GROUP_MEMBERSHIP\"\n  ) {\n    return toUser({ realm, id, tab: \"settings\" });\n  }\n\n  if (event.resourceType === \"AUTH_FLOW\") {\n    return toFlow({ realm, id, usedBy: \"-\" });\n  }\n\n  if (event.resourcePath?.startsWith(\"roles-by-id\")) {\n    return toRealmRole({ realm, id, tab: \"details\" });\n  }\n\n  return \"\";\n};\n\nexport const ResourceLink = ({ event }: ResourceLinkProps) => {\n  const { realm } = useRealm();\n  return (\n    \n      {(text) =>\n        isLinkable(event) ? (\n          {text}\n        ) : (\n          {text}\n        )\n      }\n    \n  );\n};\n\nexport const CellResourceLinkRenderer = (\n  adminEvent: AdminEventRepresentation\n) => ;\n","import type AdminEventRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/adminEventRepresentation\";\nimport { CodeEditor, Language } from \"@patternfly/react-code-editor\";\nimport {\n  ActionGroup,\n  Button,\n  Chip,\n  ChipGroup,\n  DatePicker,\n  Dropdown,\n  DropdownToggle,\n  Flex,\n  FlexItem,\n  Form,\n  FormGroup,\n  Modal,\n  ModalVariant,\n  Select,\n  SelectOption,\n  SelectVariant,\n} from \"@patternfly/react-core\";\nimport {\n  Table,\n  TableBody,\n  TableHeader,\n  TableVariant,\n  cellWidth,\n} from \"@patternfly/react-table\";\nimport { pickBy } from \"lodash-es\";\nimport { PropsWithChildren, useMemo, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../admin-client\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\nimport { ListEmptyState } from \"../components/list-empty-state/ListEmptyState\";\nimport {\n  Action,\n  KeycloakDataTable,\n} from \"../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { prettyPrintJSON } from \"../util\";\nimport useFormatDate, { FORMAT_DATE_AND_TIME } from \"../utils/useFormatDate\";\nimport { CellResourceLinkRenderer } from \"./ResourceLinks\";\n\nimport \"./events.css\";\n\ntype DisplayDialogProps = {\n  titleKey: string;\n  onClose: () => void;\n};\n\ntype AdminEventSearchForm = {\n  resourceTypes: string[];\n  operationTypes: string[];\n  resourcePath: string;\n  dateFrom: string;\n  dateTo: string;\n  authClient: string;\n  authUser: string;\n  authRealm: string;\n  authIpAddress: string;\n};\n\nconst defaultValues: AdminEventSearchForm = {\n  resourceTypes: [],\n  operationTypes: [],\n  resourcePath: \"\",\n  dateFrom: \"\",\n  dateTo: \"\",\n  authClient: \"\",\n  authUser: \"\",\n  authRealm: \"\",\n  authIpAddress: \"\",\n};\n\nconst DisplayDialog = ({\n  titleKey,\n  onClose,\n  children,\n}: PropsWithChildren) => {\n  const { t } = useTranslation(\"events\");\n  return (\n    \n      {children}\n    \n  );\n};\n\nexport const AdminEvents = () => {\n  const { t } = useTranslation(\"events\");\n  const { realm } = useRealm();\n  const serverInfo = useServerInfo();\n  const formatDate = useFormatDate();\n  const resourceTypes = serverInfo.enums?.[\"resourceType\"];\n  const operationTypes = serverInfo.enums?.[\"operationType\"];\n\n  const [key, setKey] = useState(0);\n  const [searchDropdownOpen, setSearchDropdownOpen] = useState(false);\n  const [selectResourceTypesOpen, setSelectResourceTypesOpen] = useState(false);\n  const [selectOperationTypesOpen, setSelectOperationTypesOpen] =\n    useState(false);\n  const [activeFilters, setActiveFilters] = useState<\n    Partial\n  >({});\n\n  const [authEvent, setAuthEvent] = useState();\n  const [representationEvent, setRepresentationEvent] =\n    useState();\n\n  const filterLabels: Record = {\n    resourceTypes: t(\"resourceTypes\"),\n    operationTypes: t(\"operationTypes\"),\n    resourcePath: t(\"resourcePath\"),\n    dateFrom: t(\"dateFrom\"),\n    dateTo: t(\"dateTo\"),\n    authClient: t(\"client\"),\n    authUser: t(\"userId\"),\n    authRealm: t(\"realm\"),\n    authIpAddress: t(\"ipAddress\"),\n  };\n\n  const {\n    getValues,\n    register,\n    reset,\n    formState: { isDirty },\n    control,\n  } = useForm({\n    mode: \"onChange\",\n    defaultValues,\n  });\n\n  function loader(first?: number, max?: number) {\n    return adminClient.realms.findAdminEvents({\n      // The admin client wants 'dateFrom' and 'dateTo' to be Date objects, however it cannot actually handle them so we need to cast to any.\n      ...(activeFilters as any),\n      realm,\n      first,\n      max,\n    });\n  }\n\n  function submitSearch() {\n    setSearchDropdownOpen(false);\n    commitFilters();\n  }\n\n  function resetSearch() {\n    reset();\n    commitFilters();\n  }\n\n  function removeFilter(key: keyof AdminEventSearchForm) {\n    const formValues: AdminEventSearchForm = { ...getValues() };\n    delete formValues[key];\n\n    reset({ ...defaultValues, ...formValues });\n    commitFilters();\n  }\n\n  function removeFilterValue(\n    key: keyof AdminEventSearchForm,\n    valueToRemove: string\n  ) {\n    const formValues = getValues();\n    const fieldValue = formValues[key];\n    const newFieldValue = Array.isArray(fieldValue)\n      ? fieldValue.filter((val) => val !== valueToRemove)\n      : fieldValue;\n\n    reset({ ...formValues, [key]: newFieldValue });\n    commitFilters();\n  }\n\n  function commitFilters() {\n    const newFilters: Partial = pickBy(\n      getValues(),\n      (value) => value !== \"\" || (Array.isArray(value) && value.length > 0)\n    );\n\n    setActiveFilters(newFilters);\n    setKey(key + 1);\n  }\n\n  function refresh() {\n    commitFilters();\n  }\n\n  const adminEventSearchFormDisplay = () => {\n    return (\n      \n        \n           setSearchDropdownOpen(isOpen)}\n                className=\"keycloak__events_search_selector_dropdown__toggle\"\n              >\n                {t(\"searchForAdminEvent\")}\n              \n            }\n            isOpen={searchDropdownOpen}\n          >\n            \n              \n                 (\n                     setSelectResourceTypesOpen(isOpen)}\n                      selections={field.value}\n                      onSelect={(_, selectedValue) => {\n                        const option = selectedValue.toString();\n                        const changedValue = field.value.includes(option)\n                          ? field.value.filter((item) => item !== option)\n                          : [...field.value, option];\n\n                        field.onChange(changedValue);\n                      }}\n                      onClear={(resource) => {\n                        resource.stopPropagation();\n                        field.onChange([]);\n                      }}\n                      isOpen={selectResourceTypesOpen}\n                      aria-labelledby={\"resourceTypes\"}\n                      chipGroupComponent={\n                        \n                          {field.value.map((chip) => (\n                             {\n                                resource.stopPropagation();\n                                field.onChange(\n                                  field.value.filter((val) => val !== chip)\n                                );\n                              }}\n                            >\n                              {chip}\n                            \n                          ))}\n                        \n                      }\n                    >\n                      {resourceTypes?.map((option) => (\n                        \n                      ))}\n                    \n                  )}\n                />\n              \n              \n                 (\n                     setSelectOperationTypesOpen(isOpen)}\n                      selections={field.value}\n                      onSelect={(_, selectedValue) => {\n                        const option = selectedValue.toString();\n                        const changedValue = field.value.includes(option)\n                          ? field.value.filter((item) => item !== option)\n                          : [...field.value, option];\n\n                        field.onChange(changedValue);\n                      }}\n                      onClear={(operation) => {\n                        operation.stopPropagation();\n                        field.onChange([]);\n                      }}\n                      isOpen={selectOperationTypesOpen}\n                      aria-labelledby={\"operationTypes\"}\n                      chipGroupComponent={\n                        \n                          {field.value.map((chip) => (\n                             {\n                                operation.stopPropagation();\n                                field.onChange(\n                                  field.value.filter((val) => val !== chip)\n                                );\n                              }}\n                            >\n                              {chip}\n                            \n                          ))}\n                        \n                      }\n                    >\n                      {operationTypes?.map((option) => (\n                        \n                      ))}\n                    \n                  )}\n                />\n              \n              \n                \n              \n              \n                \n              \n              \n                \n              \n              \n                \n              \n              \n                \n              \n              \n                 (\n                     field.onChange(value)}\n                      inputProps={{ id: \"kc-dateFrom\" }}\n                    />\n                  )}\n                />\n              \n              \n                 (\n                     field.onChange(value)}\n                      inputProps={{ id: \"kc-dateTo\" }}\n                    />\n                  )}\n                />\n              \n              \n                \n                  {t(\"searchAdminEventsBtn\")}\n                \n                \n                  {t(\"resetBtn\")}\n                \n              \n            \n          \n          \n            {t(\"refresh\")}\n          \n        \n        \n          {Object.entries(activeFilters).length > 0 && (\n            
\n {Object.entries(activeFilters).map((filter) => {\n const [key, value] = filter as [\n keyof AdminEventSearchForm,\n string | string[]\n ];\n\n return (\n removeFilter(key)}\n >\n {typeof value === \"string\" ? (\n {value}\n ) : (\n value.map((entry) => (\n removeFilterValue(key, entry)}\n >\n {entry}\n \n ))\n )}\n \n );\n })}\n
\n )}\n
\n \n );\n };\n\n const rows = [\n [t(\"realm\"), authEvent?.authDetails?.realmId],\n [t(\"client\"), authEvent?.authDetails?.clientId],\n [t(\"user\"), authEvent?.authDetails?.userId],\n [t(\"ipAddress\"), authEvent?.authDetails?.ipAddress],\n ];\n\n const code = useMemo(\n () =>\n representationEvent?.representation\n ? prettyPrintJSON(JSON.parse(representationEvent.representation))\n : \"\",\n [representationEvent?.representation]\n );\n\n return (\n <>\n {authEvent && (\n setAuthEvent(undefined)}>\n \n \n \n \n \n )}\n {representationEvent && (\n setRepresentationEvent(undefined)}\n >\n \n \n )}\n setAuthEvent(event),\n },\n {\n title: t(\"representation\"),\n onRowClick: (event) => setRepresentationEvent(event),\n },\n ] as Action[]\n }\n columns={[\n {\n name: \"time\",\n displayKey: \"events:time\",\n cellRenderer: (row) =>\n formatDate(new Date(row.time!), FORMAT_DATE_AND_TIME),\n },\n {\n name: \"resourcePath\",\n displayKey: \"events:resourcePath\",\n cellRenderer: CellResourceLinkRenderer,\n },\n {\n name: \"resourceType\",\n displayKey: \"events:resourceType\",\n },\n {\n name: \"operationType\",\n displayKey: \"events:operationType\",\n transforms: [cellWidth(10)],\n },\n {\n name: \"\",\n displayKey: \"events:user\",\n cellRenderer: (event) => event.authDetails?.userId || \"\",\n },\n ]}\n emptyState={\n \n }\n isSearching={Object.keys(activeFilters).length > 0}\n />\n \n );\n};\n","import type EventRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/eventRepresentation\";\nimport type EventType from \"@keycloak/keycloak-admin-client/lib/defs/eventTypes\";\nimport type { RealmEventsConfigRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/realmEventsConfigRepresentation\";\nimport {\n ActionGroup,\n Button,\n Chip,\n ChipGroup,\n DatePicker,\n DescriptionList,\n DescriptionListDescription,\n DescriptionListGroup,\n DescriptionListTerm,\n Dropdown,\n DropdownToggle,\n Flex,\n FlexItem,\n Form,\n FormGroup,\n PageSection,\n Select,\n SelectOption,\n SelectVariant,\n Tab,\n TabTitleText,\n Tooltip,\n} from \"@patternfly/react-core\";\nimport { CheckCircleIcon, WarningTriangleIcon } from \"@patternfly/react-icons\";\nimport { cellWidth, expandable } from \"@patternfly/react-table\";\nimport { pickBy } from \"lodash-es\";\nimport { useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { adminClient } from \"../admin-client\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\nimport { ListEmptyState } from \"../components/list-empty-state/ListEmptyState\";\nimport {\n RoutableTabs,\n useRoutableTab,\n} from \"../components/routable-tabs/RoutableTabs\";\nimport { KeycloakDataTable } 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 { toRealmSettings } from \"../realm-settings/routes/RealmSettings\";\nimport { toUser } from \"../user/routes/User\";\nimport { useFetch } from \"../utils/useFetch\";\nimport useFormatDate, { FORMAT_DATE_AND_TIME } from \"../utils/useFormatDate\";\nimport { AdminEvents } from \"./AdminEvents\";\nimport { EventsTab, toEvents } from \"./routes/Events\";\n\nimport \"./events.css\";\n\ntype UserEventSearchForm = {\n client: string;\n dateFrom: string;\n dateTo: string;\n user: string;\n type: EventType[];\n authIpAddress: string;\n};\n\nconst defaultValues: UserEventSearchForm = {\n client: \"\",\n dateFrom: \"\",\n dateTo: \"\",\n user: \"\",\n type: [],\n authIpAddress: \"\",\n};\n\nconst StatusRow = (event: EventRepresentation) =>\n !event.error ? (\n \n {event.type}\n \n ) : (\n \n \n {event.type}\n \n \n );\n\nconst DetailCell = (event: EventRepresentation) => (\n \n {event.details &&\n Object.entries(event.details).map(([key, value]) => (\n \n {key}\n {value}\n \n ))}\n {event.error && (\n \n error\n {event.error}\n \n )}\n \n);\n\nconst UserDetailLink = (event: EventRepresentation) => {\n const { t } = useTranslation(\"events\");\n const { realm } = useRealm();\n\n return (\n <>\n {event.userId && (\n \n {event.userId}\n \n )}\n {!event.userId && t(\"noUserDetails\")}\n \n );\n};\n\nexport default function EventsSection() {\n const { t } = useTranslation(\"events\");\n const { realm } = useRealm();\n const formatDate = useFormatDate();\n const [key, setKey] = useState(0);\n const [searchDropdownOpen, setSearchDropdownOpen] = useState(false);\n const [selectOpen, setSelectOpen] = useState(false);\n const [events, setEvents] = useState();\n const [activeFilters, setActiveFilters] = useState<\n Partial\n >({});\n\n const filterLabels: Record = {\n client: t(\"client\"),\n dateFrom: t(\"dateFrom\"),\n dateTo: t(\"dateTo\"),\n user: t(\"userId\"),\n type: t(\"eventType\"),\n authIpAddress: t(\"ipAddress\"),\n };\n\n const {\n getValues,\n register,\n reset,\n formState: { isDirty },\n control,\n handleSubmit,\n } = useForm({\n mode: \"onChange\",\n defaultValues,\n });\n\n useFetch(\n () => adminClient.realms.getConfigEvents({ realm }),\n (events) => setEvents(events),\n []\n );\n\n function loader(first?: number, max?: number) {\n return adminClient.realms.findEvents({\n // The admin client wants 'dateFrom' and 'dateTo' to be Date objects, however it cannot actually handle them so we need to cast to any.\n ...(activeFilters as any),\n realm,\n first,\n max,\n });\n }\n\n const useTab = (tab: EventsTab) => useRoutableTab(toEvents({ realm, tab }));\n\n const userEventsTab = useTab(\"user-events\");\n const adminEventsTab = useTab(\"admin-events\");\n\n function onSubmit() {\n setSearchDropdownOpen(false);\n commitFilters();\n }\n\n function resetSearch() {\n reset();\n commitFilters();\n }\n\n function removeFilter(key: keyof UserEventSearchForm) {\n const formValues: UserEventSearchForm = { ...getValues() };\n delete formValues[key];\n\n reset({ ...defaultValues, ...formValues });\n commitFilters();\n }\n\n function removeFilterValue(\n key: keyof UserEventSearchForm,\n valueToRemove: EventType\n ) {\n const formValues = getValues();\n const fieldValue = formValues[key];\n const newFieldValue = Array.isArray(fieldValue)\n ? fieldValue.filter((val) => val !== valueToRemove)\n : fieldValue;\n\n reset({ ...formValues, [key]: newFieldValue });\n commitFilters();\n }\n\n function commitFilters() {\n const newFilters: Partial = pickBy(\n getValues(),\n (value) => value !== \"\" || (Array.isArray(value) && value.length > 0)\n );\n\n setActiveFilters(newFilters);\n setKey(key + 1);\n }\n\n function refresh() {\n commitFilters();\n }\n\n const userEventSearchFormDisplay = () => {\n return (\n \n \n setSearchDropdownOpen(isOpen)}\n className=\"keycloak__events_search_selector_dropdown__toggle\"\n >\n {t(\"searchForUserEvent\")}\n \n }\n isOpen={searchDropdownOpen}\n >\n \n \n \n \n \n (\n setSelectOpen(isOpen)}\n selections={field.value}\n onSelect={(_, selectedValue) => {\n const option = selectedValue.toString() as EventType;\n const changedValue = field.value.includes(option)\n ? field.value.filter((item) => item !== option)\n : [...field.value, option];\n\n field.onChange(changedValue);\n }}\n onClear={(event) => {\n event.stopPropagation();\n field.onChange([]);\n }}\n isOpen={selectOpen}\n aria-labelledby={\"eventType\"}\n chipGroupComponent={\n \n {field.value.map((chip) => (\n {\n event.stopPropagation();\n field.onChange(\n field.value.filter((val) => val !== chip)\n );\n }}\n >\n {t(`realm-settings:eventTypes.${chip}.name`)}\n \n ))}\n \n }\n >\n {events?.enabledEventTypes?.map((option) => (\n \n {t(`realm-settings:eventTypes.${option}.name`)}\n \n ))}\n \n )}\n />\n \n \n \n \n \n (\n field.onChange(value)}\n inputProps={{ id: \"kc-dateFrom\" }}\n />\n )}\n />\n \n \n (\n field.onChange(value)}\n inputProps={{ id: \"kc-dateTo\" }}\n />\n )}\n />\n \n \n \n \n \n \n {t(\"searchUserEventsBtn\")}\n \n \n {t(\"resetBtn\")}\n \n \n \n \n \n {t(\"refresh\")}\n \n \n \n {Object.entries(activeFilters).length > 0 && (\n
\n {Object.entries(activeFilters).map((filter) => {\n const [key, value] = filter as [\n keyof UserEventSearchForm,\n string | EventType[]\n ];\n\n return (\n removeFilter(key)}\n >\n {typeof value === \"string\" ? (\n {value}\n ) : (\n value.map((entry) => (\n removeFilterValue(key, entry)}\n >\n {t(`realm-settings:eventTypes.${entry}.name`)}\n \n ))\n )}\n \n );\n })}\n
\n )}\n
\n \n );\n };\n\n return (\n <>\n \n If you want to configure user events, Admin events or Event\n listeners, please enter\n \n {t(\"eventConfig\")}\n \n page realm settings to configure.\n \n }\n helpUrl={helpUrls.eventsUrl}\n divider={false}\n />\n \n \n {t(\"userEvents\")}}\n {...userEventsTab}\n >\n
\n event.details !== undefined,\n cellRenderer: DetailCell,\n },\n ]}\n isPaginated\n ariaLabelKey=\"events:title\"\n toolbarItem={userEventSearchFormDisplay()}\n columns={[\n {\n name: \"time\",\n displayKey: \"events:time\",\n cellFormatters: [expandable],\n cellRenderer: (row) =>\n formatDate(new Date(row.time!), FORMAT_DATE_AND_TIME),\n },\n {\n name: \"userId\",\n displayKey: \"events:user\",\n cellRenderer: UserDetailLink,\n },\n {\n name: \"type\",\n displayKey: \"events:eventType\",\n cellRenderer: StatusRow,\n },\n {\n name: \"ipAddress\",\n displayKey: \"events:ipAddress\",\n transforms: [cellWidth(10)],\n },\n {\n name: \"clientId\",\n displayKey: \"events:client\",\n },\n ]}\n emptyState={\n \n }\n isSearching={Object.keys(activeFilters).length > 0}\n />\n
\n \n {t(\"adminEvents\")}}\n data-testid=\"admin-events-tab\"\n {...adminEventsTab}\n >\n \n \n \n
\n \n );\n}\n"],"names":["pickBy","object","predicate","props","arrayMap","getAllKeysIn","prop","baseIteratee","basePickBy","value","path","MAX_TEXT_LENGTH","Truncate","text","children","definedText","needsTruncation","truncatedText","jsx","Tooltip","isLinkable","event","idRegex","createLink","realm","part","id","toClient","toGroups","toClientScope","toUser","toFlow","toRealmRole","ResourceLink","useRealm","Link","CellResourceLinkRenderer","adminEvent","defaultValues","DisplayDialog","titleKey","onClose","t","useTranslation","Modal","ModalVariant","AdminEvents","serverInfo","useServerInfo","formatDate","useFormatDate","resourceTypes","operationTypes","key","setKey","useState","searchDropdownOpen","setSearchDropdownOpen","selectResourceTypesOpen","setSelectResourceTypesOpen","selectOperationTypesOpen","setSelectOperationTypesOpen","activeFilters","setActiveFilters","authEvent","setAuthEvent","representationEvent","setRepresentationEvent","filterLabels","getValues","register","reset","isDirty","control","useForm","loader","first","max","adminClient","submitSearch","commitFilters","resetSearch","removeFilter","formValues","removeFilterValue","valueToRemove","fieldValue","newFieldValue","val","newFilters","refresh","adminEventSearchFormDisplay","jsxs","Flex","FlexItem","Dropdown","DropdownToggle","isOpen","Form","FormGroup","Controller","field","Select","SelectVariant","_","selectedValue","option","changedValue","item","resource","ChipGroup","chip","Chip","SelectOption","operation","KeycloakTextInput","DatePicker","ActionGroup","Button","filter","entry","rows","code","useMemo","prettyPrintJSON","Fragment","Table","TableVariant","TableHeader","TableBody","CodeEditor","Language","KeycloakDataTable","row","FORMAT_DATE_AND_TIME","cellWidth","ListEmptyState","StatusRow","WarningTriangleIcon","CheckCircleIcon","DetailCell","DescriptionList","DescriptionListGroup","DescriptionListTerm","DescriptionListDescription","UserDetailLink","EventsSection","selectOpen","setSelectOpen","events","setEvents","handleSubmit","useFetch","useTab","tab","useRoutableTab","toEvents","userEventsTab","adminEventsTab","onSubmit","userEventSearchFormDisplay","ViewHeader","Trans","toRealmSettings","helpUrls","PageSection","RoutableTabs","Tab","TabTitleText","expandable"],"mappings":"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","x_google_ignoreList":[0]}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy