{"version":3,"file":"UdpAuditEventsPage.mjs","names":["React","useCallback","useEffect","useState","useMemo","useRef","useTranslation","makeStyles","useAgGridApi","LogicalSearchOperatorEnums","UdpEnums","LinearProgress","getSearchObject","ViewIcon","RefreshIcon","UdpAuditEventSidesheet","ActionsRenderer","useDateStringColumnDef","executeQueryAdHoc","getBaseMethod","useCatalogStore","useHandleAxiosSnackbar","SearchMethodUdpGrid","usePromotedMethodEntity","PAGE_SIZE","baseSearchPayload","pageNumber","pageSize","filterElements","filterGroups","orderElements","groupingType","groupProperty","groupOperationList","eagerLoad","logicalSearchOperator","useStyles","theme","loadingBar","bottom","spacing","marginLeft","marginRight","UdpAuditEventsPage","props","params","gridApi","gridColumnApi","onGridReady","t","classes","dateStringColumnDef","handleErrorSnackbar","gridApiRef","searchQuery","setSearchQuery","displayProgressBar","setDisplayProgressBar","selectedAuditEvent","setSelectedAuditEvent","viewSideSheetOpen","setViewSideSheetOpen","auditEventTypes","setAuditEventTypes","searchObject","setSearchObject","currentApiCatalogId","state","promotedMethodEntitiesMap","promotedEntities","auditEventTypeGetAllApiMethod","Udp_Audit_Event_Type","auditEventSearchApiMethod","Udp_Audit_Event","getAuditEventTypeName","auditEventTypeCode","matchingAuditEventType","find","auditEventType","code","name","handleSideSheet","isOpen","auditEvent","columnDefs","headerName","defaultValue","field","valueGetter","data","typeCode","resizable","sortable","cellRenderer","cellRendererParams","actionList","id","title","iconName","handleOnClick","e","auditEventTypeName","disabled","suppressMenu","filter","gridFunctions","gridOptions","pagination","getAuditEventTypes","types","response","apiMethodId","status","handleGridApiCallback","api","current","searchMethodConfig","customSearchObject"],"sources":["../../../../src/udp/pages/UdpAuditEvents/UdpAuditEventsPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useMemo, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { makeStyles } from '@material-ui/core';\nimport { useAgGridApi } from '../../../utilities/aggrid/AgTable';\nimport { LogicalSearchOperatorEnums, UdpEnums } from '../../../enums/unitySystemEnums';\nimport { LinearProgress } from '../../../UI/loading/LinearProgress';\nimport { getSearchObject } from '../../../utilities/search/SearchUtilities';\nimport { ViewIcon, RefreshIcon } from '@fluentui/react-icons';\nimport UdpAuditEventSidesheet from './UdpAuditEventSidesheet';\nimport { ActionsRenderer } from '../../../UI/templates/ui/renderers/ActionsRenderer';\nimport { useDateStringColumnDef } from '../../utilities/useDateStringColumnDef';\nimport { executeQueryAdHoc, getBaseMethod } from '../../utilities/methodUtils';\nimport { useCatalogStore } from '../../../stores/catalogStore';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { SearchMethodUdpGrid } from '../../../UI/templates/newGrid';\nimport { usePromotedMethodEntity } from '../../../hooks';\n\nconst PAGE_SIZE = 15;\n\nconst baseSearchPayload = {\n  pageNumber: 1,\n  pageSize: PAGE_SIZE,\n  filterElements: [],\n  filterGroups: [],\n  orderElements: [],\n  groupingType: '',\n  groupProperty: [],\n  groupOperationList: [],\n  eagerLoad: false,\n  logicalSearchOperator: 1,\n};\n\nconst useStyles = makeStyles(theme => ({\n  loadingBar: {\n    bottom: theme.spacing(-0.5),\n    marginLeft: theme.spacing(0.5),\n    marginRight: theme.spacing(0.5),\n  },\n}));\n\nconst UdpAuditEventsPage = (props) => {\n  const { params } = props;\n\n  // Hooks\n  const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();\n  const { t } = useTranslation();\n  const classes = useStyles();\n  const dateStringColumnDef = useDateStringColumnDef(true);\n  const { handleErrorSnackbar } = useHandleAxiosSnackbar();\n  const gridApiRef = useRef(null);\n\n  // States\n  const [searchQuery, setSearchQuery] = useState('');\n  const [displayProgressBar, setDisplayProgressBar] = useState(false);\n  const [selectedAuditEvent, setSelectedAuditEvent] = useState(null);\n  const [viewSideSheetOpen, setViewSideSheetOpen] = useState(false);\n  const [auditEventTypes, setAuditEventTypes] = useState([]);\n  const [searchObject, setSearchObject] = useState(baseSearchPayload);\n\n  const currentApiCatalogId = useCatalogStore(\n      (state) => state.currentApiCatalogId\n    );\n\n  const promotedMethodEntitiesMap = useCatalogStore(\n    (state) => state.promotedMethodEntitiesMap\n  );\n\n  const promotedEntities = useMemo(() => {\n    if (!currentApiCatalogId || !promotedMethodEntitiesMap) {\n      return null;\n    }\n    return promotedMethodEntitiesMap[currentApiCatalogId] || [];\n  }, [promotedMethodEntitiesMap, currentApiCatalogId]);\n\n  const auditEventTypeGetAllApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Audit_Event_Type,\n      'unityBaseGetAllMethod',\n      promotedEntities\n    );\n  }, [promotedEntities]);\n\n  const auditEventSearchApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Audit_Event,\n      'unityBaseSearchMethod',\n      promotedEntities\n    );\n  }, [promotedEntities]);\n\n  const getAuditEventTypeName = useCallback(auditEventTypeCode => {\n    if (!auditEventTypes) return '';\n    const matchingAuditEventType = auditEventTypes.find(\n      auditEventType => auditEventType.code === auditEventTypeCode\n    );\n    return matchingAuditEventType?.name || '';\n  }, [auditEventTypes]);\n\n  const handleSideSheet = useCallback((isOpen, auditEvent) => {\n    setViewSideSheetOpen(isOpen);\n    setSelectedAuditEvent(auditEvent);\n  }, []);\n\n  const columnDefs = useMemo(() => {\n    return [\n      {\n          headerName: t('auditEvents.fields.eventType', { defaultValue: 'Event Type' }),\n          field: 'UdpAuditEventUdpAuditEventType.Name',\n          valueGetter: params => getAuditEventTypeName(params.data.typeCode),\n          resizable: true,\n          sortable: false,\n      },\n      {\n          headerName: t('auditEvents.fields.user', { defaultValue: 'User' }),\n          field: 'userDisplayName',\n          resizable: true,\n          sortable: false,\n      },\n      {\n          headerName: t('auditEvents.fields.description', { defaultValue: 'Description' }),\n          field: 'domain',\n          resizable: true,\n          sortable: false,\n      },\n      {\n          headerName: t('auditEvents.fields.createdOn', { defaultValue: 'Created On' }),\n          field: 'createdOn',\n          resizable: true,\n          sortable: true,\n          ...dateStringColumnDef\n      },\n      {\n          field: 'actions',\n          headerName: t('auditEvents.grid.columns.details', { defaultValue: 'Details' }),\n          cellRenderer: 'actionsRenderer',\n          cellRendererParams: {\n            actionList: [\n              {\n                id: 0,\n                title: t('common.view', { defaultValue: 'View' }),\n                iconName: 'view',\n                handleOnClick: (e, auditEvent) =>\n                  handleSideSheet(true, {...auditEvent?.data, auditEventTypeName: getAuditEventTypeName(auditEvent?.data?.typeCode)}),\n                disabled: false,\n              },\n\n            ],\n          },\n          suppressMenu: true,\n          sortable: false,\n          filter: false,\n      },\n    ];\n  }, [getAuditEventTypeName, handleSideSheet, dateStringColumnDef, t]);\n\n  const gridFunctions = [\n    { name: 'chipFilter' },\n    { name: 'agGridExport' },\n    { name: 'agGridSizeColumnsToFit' },\n    { name: 'agGridAutoSizeColumns' },\n    { name: 'agGridResetColumns' },\n    { name: 'agGridHideShowColumns' },\n  ];\n\n  const gridOptions = useMemo(() => {\n    return {\n      pagination: true,\n    };\n  }, []);\n\n  useEffect(() => {\n    const getAuditEventTypes = async () => {\n      let types = [];\n      if (auditEventTypeGetAllApiMethod) {\n        const response = await executeQueryAdHoc(\n          { data: {}},\n          auditEventTypeGetAllApiMethod.apiMethodId\n        );\n        if (response?.status === 200) {\n          types = response.data;\n        }\n      }\n      setAuditEventTypes(types);\n    };\n    getAuditEventTypes();\n  }, [auditEventTypeGetAllApiMethod]);\n\n  const handleGridApiCallback = api => {\n    gridApiRef.current = api;\n  };\n\n  const searchMethodConfig = useMemo(() => {\n    return {\n      apiMethodId: auditEventSearchApiMethod?.apiMethodId,\n      customSearchObject: searchObject,\n    };\n  }, [auditEventSearchApiMethod]);\n\n  return (\n    <>\n      {(displayProgressBar) && (<LinearProgress className={classes.loadingBar} color=\"secondary\" />)}\n      <SearchMethodUdpGrid\n        searchMethodConfig={searchMethodConfig}\n        columnDefs={columnDefs}\n        gridHeaderConfig={{\n          title: t('auditEvents.title', { defaultValue: 'Audit Events' }),\n        }}\n        gridOptions={gridOptions}\n        gridApiCallback={handleGridApiCallback}\n        gridFunctions={gridFunctions}\n      />\n      <UdpAuditEventSidesheet\n          auditEvent={selectedAuditEvent}\n          isSideSheetOpen={viewSideSheetOpen}\n          handleSideSheet={handleSideSheet}\n          promotedEntities={promotedEntities}\n      />\n    </>\n  )\n}\n\n  export default UdpAuditEventsPage;\n"],"mappings":"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"}