{"version":3,"file":"CrudBrowserContainer.mjs","names":["React","useMemo","useEffect","useCallback","CrudTableColumnDefs","LookupEntitiesIcon","useTranslation","useHistory","LookupTypeIdEnums","UdpEnums","toTitleCase","getSanitizedName","v4","uuid","SearchMethodUdpGrid","GRID_ID","CrudBrowserContainer","props","actionList","onCreate","entityAttributes","foreignKeyData","promotedEntity","apiMethod","filterElements","setAlertWarnings","gridApiCallback","showBackToTableBrowser","gridTitle","other","t","history","entityName","commonEntityName","handleGoToTableBrowser","push","pathname","secondaryActionButtons","label","defaultValue","iconName","onClick","virtualActions","id","title","icon","loading","value","search","state","name","checkDisabled","typeId","Lookup","jointActionList","length","toLowerCase","Udp_Lookup","columnDefs","unityBaseSearchMethod","apiMethodId","searchMethodWarning","message","prevState","searchMethodConfig","customSearchObject","gridFunctions","primaryActionButton","pagination"],"sources":["../../../src/maintenanceEngine/crudBrowser/CrudBrowserContainer.jsx"],"sourcesContent":["import React, { useMemo, useEffect, useCallback } from 'react';\nimport { CrudTableColumnDefs } from './CrudTableColumnDefs';\nimport { LookupEntitiesIcon } from '@fluentui/react-icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../../enums/unitySystemEnums';\nimport { toTitleCase } from '../../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { v4 as uuid } from 'uuid';\nimport { SearchMethodUdpGrid } from '../../UI/templates/newGrid/SearchMethodUdpGrid';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const CrudBrowserContainer = (props) => {\n  const {\n    actionList,\n    onCreate,\n    entityAttributes,\n    foreignKeyData,\n    promotedEntity,\n    apiMethod,\n    filterElements,\n    setAlertWarnings,\n    gridApiCallback,\n    showBackToTableBrowser,\n    gridTitle,\n    ...other\n  } = props;\n\n  const { t } = useTranslation();\n  const history = useHistory();\n\n  const entityName = useMemo(() => {\n    return promotedEntity?.entityName;\n  }, [promotedEntity]);\n\n  const commonEntityName = useMemo(() => {\n    if (!entityName) return '';\n    return toTitleCase(getSanitizedName(entityName));\n  }, [entityName]);\n\n  const handleGoToTableBrowser = useCallback(() => {\n    history.push({\n      pathname: `/tableBrowser`\n    });\n  }, [history]);\n\n  const secondaryActionButtons = useMemo(() => {\n    if (showBackToTableBrowser) {\n      return [\n        {\n          label: t('maintenance.crudBrowser.tableBrowser', {\n            defaultValue: 'Table Browser'\n          }),\n          iconName: 'arrowLeft16',\n          onClick: handleGoToTableBrowser\n        }\n      ];\n    } else {\n      return [];\n    }\n  }, [handleGoToTableBrowser, showBackToTableBrowser, t]);\n\n  const virtualActions = useMemo(() => {\n    return [\n      // Action for opening Virtual Configuration\n      {\n        id: 3,\n        title: t('maintenance.crudBrowser.openVirtualTable', {\n          defaultValue: 'Open Virtual Table'\n        }),\n        icon: LookupEntitiesIcon,\n        loading: !!!foreignKeyData,\n        onClick: (value) => {\n          history.push({\n            pathname: `/virtual/${value.id}`,\n            search: `?entityName=${entityName}`,\n            state: {\n              value,\n              promotedEntity,\n              label: value.name\n            }\n          });\n        },\n        checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n      }\n    ];\n  }, [entityName, foreignKeyData, history, promotedEntity, t]);\n\n  const jointActionList = useMemo(() => {\n    if (!actionList || actionList?.length === 0) {\n      return null;\n    }\n    // Check if it's a udp lookup entity\n    if (\n      getSanitizedName(entityName?.toLowerCase()) ===\n      UdpEnums.Udp_Lookup.toLowerCase()\n    ) {\n      return [...actionList, ...virtualActions];\n    }\n    return [...actionList];\n  }, [actionList, entityName, virtualActions]);\n\n  const columnDefs = useMemo(() => {\n    if (entityAttributes && jointActionList) {\n      return CrudTableColumnDefs(entityAttributes, jointActionList, t);\n    }\n  }, [entityAttributes, jointActionList]);\n\n  useEffect(() => {\n    if (promotedEntity) {\n      if (!promotedEntity?.unityBaseSearchMethod?.apiMethodId) {\n        const searchMethodWarning = {\n          id: uuid(),\n          message: t('maintenance.crudBrowser.searchMethodNotPromoted', {\n            defaultValue: \"{{entityName}}'s Search method needs to be promoted\",\n            entityName: promotedEntity.entityName\n          })\n        };\n        setAlertWarnings &&\n          setAlertWarnings((prevState) => [...prevState, searchMethodWarning]);\n      }\n    }\n  }, [promotedEntity, setAlertWarnings, t]);\n\n  const searchMethodConfig = useMemo(() => {\n    return {\n      apiMethodId: promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n      customSearchObject: { filterElements: filterElements }\n    };\n  }, [promotedEntity?.unityBaseSearchMethod?.apiMethodId, filterElements]);\n\n  const gridFunctions = useMemo(() => {\n    return [\n      { name: 'openSavedViews' },\n      { name: 'agGridSizeColumnsToFit' },\n      { name: 'agGridAutoSizeColumns' },\n      { name: 'agGridResetColumns' },\n      { name: 'agGridHideShowColumns' },\n      { name: 'agGridRefreshData' }\n    ];\n  }, []);\n\n  return (\n    <SearchMethodUdpGrid\n      columnDefs={columnDefs}\n      searchMethodConfig={searchMethodConfig}\n      gridHeaderConfig={{\n        title: gridTitle ?? commonEntityName,\n        primaryActionButton: {\n          label: t('common.add', { defaultValue: 'Add' }),\n          iconName: 'add',\n          onClick: onCreate\n        },\n        secondaryActionButtons: secondaryActionButtons\n      }}\n      gridId={GRID_ID}\n      entityName={commonEntityName}\n      gridOptions={{\n        pagination: true,\n        ...other\n      }}\n      gridApiCallback={gridApiCallback}\n      gridFunctions={gridFunctions}\n    />\n  );\n};\n"],"mappings":"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"}