udp-react-enterprise-component-library 26.3.0-beta.2 → 26.3.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/enums/unitySystemEnums.d.ts +4 -2
  3. package/dist/enums/unitySystemEnums.d.ts.map +1 -1
  4. package/dist/enums/unitySystemEnums.js +2 -0
  5. package/dist/enums/unitySystemEnums.js.map +1 -1
  6. package/dist/enums/unitySystemEnums.mjs +2 -0
  7. package/dist/enums/unitySystemEnums.mjs.map +1 -1
  8. package/dist/index.mjs +1 -1
  9. package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.d.ts.map +1 -1
  10. package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.js +30 -4
  11. package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.js.map +1 -1
  12. package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.mjs +28 -3
  13. package/dist/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.mjs.map +1 -1
  14. package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.d.ts.map +1 -1
  15. package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.js +16 -5
  16. package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.js.map +1 -1
  17. package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.mjs +46 -20
  18. package/dist/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.mjs.map +1 -1
  19. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.d.ts +4 -0
  20. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.d.ts.map +1 -0
  21. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.js +17 -0
  22. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.js.map +1 -0
  23. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.mjs +218 -0
  24. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeCalendarViewConfigurationSidesheet.mjs.map +1 -0
  25. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeSidesheet.d.ts.map +1 -1
  26. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeSidesheet.js +2 -2
  27. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeSidesheet.js.map +1 -1
  28. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeSidesheet.mjs +5 -2
  29. package/dist/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeSidesheet.mjs.map +1 -1
  30. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionCalendar.d.ts +4 -0
  31. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionCalendar.d.ts.map +1 -0
  32. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionCalendar.js +256 -0
  33. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionCalendar.js.map +1 -0
  34. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionCalendar.mjs +255 -0
  35. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionCalendar.mjs.map +1 -0
  36. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionGrid.d.ts.map +1 -1
  37. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionGrid.js +12 -3
  38. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionGrid.js.map +1 -1
  39. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionGrid.mjs +8 -2
  40. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionGrid.mjs.map +1 -1
  41. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.d.ts.map +1 -1
  42. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.js +1 -1
  43. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.js.map +1 -1
  44. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.mjs +2 -1
  45. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionSidesheet.mjs.map +1 -1
  46. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.d.ts.map +1 -1
  47. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.js +50 -13
  48. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.js.map +1 -1
  49. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.mjs +201 -144
  50. package/dist/udp/pages/UdpTransactionsPage/UdpTransactionsPage.mjs.map +1 -1
  51. package/dist/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.d.ts +2 -1
  52. package/dist/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.d.ts.map +1 -1
  53. package/dist/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.js +6 -3
  54. package/dist/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.js.map +1 -1
  55. package/dist/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.mjs +8 -3
  56. package/dist/udp/pages/UdpTransactionsPage/sidesheets/WorkflowActions.mjs.map +1 -1
  57. package/package.json +11 -3
@@ -1 +1 @@
1
- {"version":3,"file":"UdpTransactionTypesPage.mjs","names":["React","useCallback","useState","useMemo","useRef","useEffect","useTranslation","makeStyles","LinearProgress","UdpTransactionTypeSidesheet","useCatalogStore","SearchMethodUdpGrid","apiMutate","useAxiosGet","useSnackbar","FluentDialog","getSuccessAction","UdpTransactionTypeStatusSidesheet","UdpTransactionTypeTransactionActionSidesheet","useUser","UdpTransactionUiActionSidesheet","UdpTransactionTypeConfigurationSidesheet","EMPTY_GUID","UdpSearchEnums","UdpTransactionAttachmentTypeSidesheet","ConfigService","REQUIRED_COLUMN_DEF_MAPPING","attachments","displayName","actions","transactionId","createdOn","currentStatusId","currentRevisionNo","lastEventTypeId","REQUIRED_COLUMN_DEF_FIELDS","Object","keys","DISABLE_ORDERING_FOR_FIELDS","PAGE_SIZE","baseSearchPayload","pageNumber","pageSize","filterElements","filterGroups","orderElements","groupingType","groupProperty","groupOperationList","eagerLoad","logicalSearchOperator","useStyles","theme","loadingBar","bottom","spacing","marginLeft","marginRight","formatTransactionTypeConfigurationIntoExpressionLogic","configurationObj","CurrentStatus","CurrentDomainValue","TenantUserRoleIds","andConditions","push","var","transactionTypeStatusId","entries","forEach","field","config","isConfigObject","Array","isArray","operator","comparisonValue","value","effectiveOperator","operands","length","some","in","and","UdpTransactionTypesPage","user","t","classes","enqueueSnackbar","closeSnackbar","successAction","gridApiRef","ttsGridApiRef","tttaGridApiRef","tuaGridApiRef","ttcGridApiRef","ttctaGridApiRef","tatGridApiRef","searchObject","setSearchObject","selectedTransactionType","setSelectedTransactionType","isTransactionTypeSideSheetOpen","setIsTransactionTypeSideSheetOpen","isTransactionTypeSidesheetLoading","setIsTransactionTypeSidesheetLoading","isDeleteTransactionTypeDialogOpen","setIsDeleteTransactionTypeDialogOpen","isPageConfigurationSidesheetOpen","setIsPageConfigurationSidesheetOpen","selectedDomainName","setSelectedDomainName","isTransactionTypeStatusSidesheetOpen","setIsTransactionTypeStatusSidesheetOpen","isDeleteTransactionTypeStatusDialogOpen","setIsDeleteTransactionTypeStatusDialogOpen","selectedTransactionTypeStatus","setSelectedTransactionTypeStatus","isCreateOrEditTransactionTypeStatusSidesheetOpen","setIsCreateOrEditTransactionTypeStatusSidesheetOpen","ttstatuses","setTTStatuses","isTransactionTypeTransactionActionSidesheetOpen","setIsTransactionTypeTransactionActionSidesheetOpen","selectedTransactionTypeTransactionAction","setSelectedTransactionTypeTransactionAction","isCreateOrEditTransactionTypeTransactionActionSidesheetOpen","setIsCreateOrEditTransactionTypeTransactionActionSidesheetOpen","isDeleteTransactionTypeTransactionActionDialogOpen","setIsDeleteTransactionTypeTransactionActionDialogOpen","tttactions","setTTTActions","isTransactionUiActionSidesheetOpen","setIsTransactionUiActionSidesheetOpen","selectedTransactionUiAction","setSelectedTransactionUiAction","isCreateOrEditTransactionUiActionSidesheetOpen","setIsCreateOrEditTransactionUiActionSidesheetOpen","isDeleteTransactionUiActionDialogOpen","setIsDeleteTransactionUiActionDialogOpen","isTransactionTypeConfigurationSidesheetOpen","setIsTransactionTypeConfigurationSidesheetOpen","selectedTransactionTypeConfiguration","setSelectedTransactionTypeConfiguration","isCreateOrEditTransactionTypeConfigurationSidesheetOpen","setIsCreateOrEditTransactionTypeConfigurationSidesheetOpen","isDeleteTransactionTypeConfigurationDialogOpen","setIsDeleteTransactionTypeConfigurationDialogOpen","isTransactionTypeConfigurationTransactionActionSidesheetOpen","setIsTransactionTypeConfigurationTransactionActionSidesheetOpen","selectedTransactionTypeConfigurationTransactionAction","setSelectedTransactionTypeConfigurationTransactionAction","isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen","setIsCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen","isDeleteTransactionTypeConfigurationTransactionActionDialogOpen","setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen","isTransactionAttachmentTypeSidesheetOpen","setIsTransactionAttachmentTypeSidesheetOpen","selectedTransactionAttachmentType","setSelectedTransactionAttachmentType","isCreateOrEditTransactionAttachmentTypeSidesheetOpen","setIsCreateOrEditTransactionAttachmentTypeSidesheetOpen","isDeleteTransactionAttachmentTypeDialogOpen","setIsDeleteTransactionAttachmentTypeDialogOpen","hasDefaultAndCancelledTransactionTypeStatus","transactionTypeStatuses","checkHasDefault","checkHasCancelledStatus","record","isDefault","isCancelledStatus","postCreateTransactionType","transactionType","productV1ApiUrl","method","data","putUpdateTransactionType","transactionTypeId","deleteTransactionType","transactionsByTransactionTypeId","loading","getTransactionsByTransactionIdLoading","fetchTransactionsByTransactionTypeId","searchField","searchOperator","searchValue","groupId","getAll","postCreateTransactionTypeStatus","transactionTypeStatus","putUpdateTransactionTypeStatus","deleteTransactionTypeStatus","searchTransactionTypeStatusByTransactionTypeId","searchPayload","loadTTStatuses","ttsResponse","status","pageList","transactionActions","actionApis","pages","tenantV1ApiUrl","currentTenantId","postCreateTransactionTypeTransactionAction","transactionTypeTransactionAction","putUpdateTransactionTypeTransactionAction","transactionTypeTransactionActionId","deleteTransactionTypeTransactionAction","searchTransactionTypeTransactionActionByTransactionTypeId","loadTTTActions","tttaResponse","postCreateTransactionUiAction","transactionUiAction","putUpdateTransactionUiAction","transactionUiActionId","deleteTransactionUiAction","tUiActionsList","fetchTUiActionsList","transactionUiActionTypes","postCreateTransactionTypeConfiguration","transactionTypeConfiguration","putUpdateTransactionTypeConfiguration","transactionTypeConfigurationId","deleteTransactionTypeConfiguration","transactionRuleTypes","roles","postCreateTransactionTypeConfigurationTransactionAction","ttcta","putUpdateTransactionTypeConfigurationTransactionAction","transactionTypeConfigurationTransactionAction","deleteTransactionTypeConfigurationTransactionAction","ttctaList","fetchTtctaList","postCreateTransactionAttachmentType","transactionAttachmentType","putUpdateTransactionAttachmentType","transactionAttachmentTypeId","deleteTransactionAttachmentType","currentApiCatalogId","state","catalogObjectNames","integrationV2ApiUrl","domainName","catalogObject","catalogObjectProperties","properties","filter","property","name","map","handleSideSheet","isOpen","handleTransactionTypeStatusSideSheet","handleCreateOrEditTransactionTypeStatusSideSheet","handleTransactionTypeTransactionActionSidesheet","handleCreateOrEditTransactionTypeTransactionActionSidesheet","handleTransactionUiActionSidesheet","handleCreateOrEditTransactionUiActionSidesheet","handleTransactionTypeConfigurationSidesheet","handleCreateOrEditTransactionTypeConfigurationSidesheet","handleTransactionTypeConfigurationTransactionActionSidesheet","handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet","handleTransactionAttachmentTypeSidesheet","handleCreateOrEditTransactionAttachmentTypeSidesheet","handleCreateTransactionType","formValues","domainFields","restValues","pageConfigurationColumnDefsDict","domainFieldsDict","reduce","accumulator","entry","fieldKey","includes","UdpBusinessDomainPrefix","order","hide","pageConfiguration","gridTitle","createTransactionButtonLabel","hideCreateTransaction","paginationAutoPageSize","hideSaveChanges","columnDefProperties","newTransactionType","response","anchorOrigin","vertical","horizontal","action","current","refreshServerSide","err","title","variant","handleUpdateTransactionType","initialValues","updatedTransactionType","handleDeleteTransactionType","handleCreateTransactionTypeStatus","newTransactionTypeStatus","color","hasDefaultOrCancelledStatus","isCreatingDefaultStatus","isCreatingCancelledStatus","searchTransactionTypeStatusResponse","statusConflictMessage","handleUpdateTransactionTypeStatus","updatedTransactionTypeStatus","hasExistingDefaultOrCancelledStatus","isEditingDefaultStatus","isEditingCancelledStatus","handleDeleteTransactionTypeStatus","handleCreateTransactionTypeTransactionAction","transactionAction","toStatus","actionApiId","pageId","mandatoryFields","hiddenFields","domainDataToUpdate","domainDataDictionary","newTransactionTypeTransactionAction","transactionActionId","parameters","ToStatus","DomainDataToUpdate","MandatoryFields","HiddenFields","ActionApiId","PageId","handleUpdateTransactionTypeTransactionAction","updatedTransactionTypeTransactionAction","description","icon","handleDeleteTransactionTypeTransactionAction","handleCreateTransactionUiAction","transactionUiActionType","actionApi","page","newTransactionUiAction","transactionUiActionTypeId","handleUpdateTransactionUiAction","updatedTransactionUiAction","handleDeleteTransactionUiAction","handleCreateTransactionTypeConfiguration","transactionRuleType","currentStatus","tenantUserRoles","currentDomainValue","tenantUserRoleIds","tur","roleId","expressionLogic","newTransactionTypeConfiguration","transactionRuleTypeId","configuration","CurrentStatusId","handleUpdateTransactionTypeConfiguration","updatedTransactionTypeConfiguration","enabled","handleDeleteTransactionTypeConfiguration","handleCreateTransactionTypeConfigurationTransactionAction","transactionTypeTransactionActions","newTTCTActions","handleUpdateTransactionTypeConfigurationTransactionAction","existingTransactionTypeTransactionActionId","updatedTransactionTypeConfigurationTransactionAction","handleDeleteTransactionTypeConfigurationTransactionAction","handleCreateTransactionAttachmentType","newTransactionAttachmentType","handleUpdateTransactionAttachmentType","handleDeleteTransactionAttachmentType","handleOpenDeleteTransactionTypeDialog","handleCloseDeleteTransactionTypeDialog","handleOpenDeleteTransactionTypeStatusDialog","handleCloseDeleteTransactionTypeStatusDialog","handleOpenDeleteTransactionTypeTransactionActionDialog","handleCloseDeleteTransactionTypeTransactionActionDialog","handleOpenDeleteTransactionUiActionDialog","handleCloseDeleteTransactionUiActionDialog","handleOpenDeleteTransactionTypeConfigurationDialog","handleCloseDeleteTransactionTypeConfigurationDialog","handleOpenDeleteTransactionTypeConfigurationTransactionActionDialog","handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog","handleOpenDeleteTransactionAttachmentTypeDialog","handleCloseDeleteTransactionAttachmentTypeDialog","columnDefs","headerName","resizable","sortable","cellDataType","cellRenderer","cellRendererParams","actionList","id","iconName","handleOnClick","e","valueGetter","params","suppressMenu","headerConfig","primaryActionButton","label","onClick","gridFunctions","gridOptions","pagination","handleGridApiCallback","api","searchMethodConfig","requestUrl","customSearchObject"],"sources":["../../../../src/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.jsx"],"sourcesContent":["import React, {\n useCallback,\n useState,\n useMemo,\n useRef,\n useEffect\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { makeStyles } from '@material-ui/core';\nimport { LinearProgress } from '../../../UI/loading/LinearProgress';\nimport UdpTransactionTypeSidesheet from './sidesheets/UdpTransactionTypeSidesheet';\nimport { useCatalogStore } from '../../../stores/catalogStore';\nimport { SearchMethodUdpGrid } from '../../../UI/templates/newGrid';\nimport { apiMutate, useAxiosGet } from '../../../utilities';\nimport { useSnackbar } from 'notistack';\nimport { FluentDialog, getSuccessAction } from '../../../UI';\nimport UdpTransactionTypeStatusSidesheet from './sidesheets/UdpTransactionTypeStatusSidesheet';\nimport UdpTransactionTypeTransactionActionSidesheet from './sidesheets/UdpTransactionTypeTransactionActionSidesheet';\nimport { useUser } from '../../../utilities/auth';\nimport UdpTransactionUiActionSidesheet from './sidesheets/UdpTransactionUiActionSidesheet';\nimport UdpTransactionTypeConfigurationSidesheet from './sidesheets/UdpTransactionTypeConfigurationSidesheet';\nimport { EMPTY_GUID, UdpSearchEnums } from '../../../enums';\nimport UdpTransactionAttachmentTypeSidesheet from './sidesheets/UdpTransactionAttachmentTypeSidesheet';\nimport { ConfigService } from '../../../configService';\n\nexport const REQUIRED_COLUMN_DEF_MAPPING = {\n attachments: { displayName: 'Attachments' },\n actions: { displayName: 'Actions' },\n transactionId: { displayName: 'Transaction Id' },\n createdOn: { displayName: 'Created On' },\n currentStatusId: { displayName: 'Current Status' },\n currentRevisionNo: { displayName: 'Revision No' },\n lastEventTypeId: { displayName: 'Last Event Type' }\n};\n\nexport const REQUIRED_COLUMN_DEF_FIELDS = Object.keys(\n REQUIRED_COLUMN_DEF_MAPPING\n);\n\nexport const DISABLE_ORDERING_FOR_FIELDS = ['attachments', 'actions'];\n\nconst PAGE_SIZE = 100;\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\n/**\n * This function formats the 'Configuration' data into a specific format that can be\n * used by the external library jsonLogic. The formatted data is stored in the\n * udp.TransactionTypeConfiguration table in the ExpressionLogic column.\n */\nconst formatTransactionTypeConfigurationIntoExpressionLogic = (\n configurationObj\n) => {\n if (!configurationObj || typeof configurationObj !== 'object') {\n return '';\n }\n\n const { CurrentStatus, CurrentDomainValue, TenantUserRoleIds } =\n configurationObj;\n const andConditions = [];\n\n if (CurrentStatus) {\n andConditions.push({\n '==': [\n { var: 'currentStatusId' },\n // this check ensures that if the 'No Status' option is selected for the currentStatus, then\n // the currentStatusId is stored in expressionLogic with a value of null\n CurrentStatus?.transactionTypeStatusId === EMPTY_GUID\n ? null\n : CurrentStatus?.transactionTypeStatusId\n ]\n });\n }\n\n if (CurrentDomainValue && typeof CurrentDomainValue === 'object') {\n Object.entries(CurrentDomainValue).forEach(([field, config]) => {\n if (!field || !config) {\n return;\n }\n\n const isConfigObject =\n config && typeof config === 'object' && !Array.isArray(config);\n const operator = isConfigObject ? config?.operator : null;\n const comparisonValue = isConfigObject ? config?.value : config;\n const effectiveOperator = operator || '==';\n const operands =\n effectiveOperator === '!' || effectiveOperator === '!!'\n ? [{ var: `currentDomainValue.${field}` }]\n : [{ var: `currentDomainValue.${field}` }, comparisonValue];\n\n andConditions.push({\n [effectiveOperator]: operands\n });\n });\n }\n\n if (Array.isArray(TenantUserRoleIds) && TenantUserRoleIds.length > 0) {\n andConditions.push({\n some: [\n { var: 'tenantUserRoleIds' },\n {\n in: [{ var: '' }, TenantUserRoleIds]\n }\n ]\n });\n }\n\n if (!andConditions.length) {\n return '';\n }\n\n return {\n and: andConditions\n };\n};\n\nconst UdpTransactionTypesPage = () => {\n // Hooks\n const user = useUser();\n const { t } = useTranslation();\n const classes = useStyles();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n // Grid Refs\n const gridApiRef = useRef(null); // TransactionType grid\n const ttsGridApiRef = useRef(null); // TransactionTypeStatus grid\n const tttaGridApiRef = useRef(null); // TransactionTypeTransactionAction grid\n const tuaGridApiRef = useRef(null); // TransactionUiAction grid\n const ttcGridApiRef = useRef(null); // TransactionTypeConfiguration grid\n const ttctaGridApiRef = useRef(null); // TransactionTypeConfigurationTransactionAction grid\n const tatGridApiRef = useRef(null); // TransactionAttachmentType grid\n\n // States\n const [searchObject, setSearchObject] = useState(baseSearchPayload);\n // TransactionType\n const [selectedTransactionType, setSelectedTransactionType] = useState(null);\n const [isTransactionTypeSideSheetOpen, setIsTransactionTypeSideSheetOpen] =\n useState(false);\n const [\n isTransactionTypeSidesheetLoading,\n setIsTransactionTypeSidesheetLoading\n ] = useState(false);\n const [\n isDeleteTransactionTypeDialogOpen,\n setIsDeleteTransactionTypeDialogOpen\n ] = useState(false);\n const [\n isPageConfigurationSidesheetOpen,\n setIsPageConfigurationSidesheetOpen\n ] = useState(false);\n const [selectedDomainName, setSelectedDomainName] = useState('');\n // TransactionTypeStatus\n const [\n isTransactionTypeStatusSidesheetOpen,\n setIsTransactionTypeStatusSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeStatusDialogOpen,\n setIsDeleteTransactionTypeStatusDialogOpen\n ] = useState(false);\n const [selectedTransactionTypeStatus, setSelectedTransactionTypeStatus] =\n useState(null);\n const [\n isCreateOrEditTransactionTypeStatusSidesheetOpen,\n setIsCreateOrEditTransactionTypeStatusSidesheetOpen\n ] = useState(false);\n const [ttstatuses, setTTStatuses] = useState([]);\n // TransactionTypeTransactionAction\n const [\n isTransactionTypeTransactionActionSidesheetOpen,\n setIsTransactionTypeTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionTypeTransactionAction,\n setSelectedTransactionTypeTransactionAction\n ] = useState(null);\n const [\n isCreateOrEditTransactionTypeTransactionActionSidesheetOpen,\n setIsCreateOrEditTransactionTypeTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeTransactionActionDialogOpen,\n setIsDeleteTransactionTypeTransactionActionDialogOpen\n ] = useState(false);\n const [tttactions, setTTTActions] = useState([]);\n // TransactionUiAction\n const [\n isTransactionUiActionSidesheetOpen,\n setIsTransactionUiActionSidesheetOpen\n ] = useState(false);\n const [selectedTransactionUiAction, setSelectedTransactionUiAction] =\n useState(null);\n const [\n isCreateOrEditTransactionUiActionSidesheetOpen,\n setIsCreateOrEditTransactionUiActionSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionUiActionDialogOpen,\n setIsDeleteTransactionUiActionDialogOpen\n ] = useState(false);\n // TransactionTypeConfiguration\n const [\n isTransactionTypeConfigurationSidesheetOpen,\n setIsTransactionTypeConfigurationSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionTypeConfiguration,\n setSelectedTransactionTypeConfiguration\n ] = useState(null);\n const [\n isCreateOrEditTransactionTypeConfigurationSidesheetOpen,\n setIsCreateOrEditTransactionTypeConfigurationSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeConfigurationDialogOpen,\n setIsDeleteTransactionTypeConfigurationDialogOpen\n ] = useState(false);\n // TransactionTypeConfigurationTransactionAction\n const [\n isTransactionTypeConfigurationTransactionActionSidesheetOpen,\n setIsTransactionTypeConfigurationTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionTypeConfigurationTransactionAction,\n setSelectedTransactionTypeConfigurationTransactionAction\n ] = useState(null);\n const [\n isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen,\n setIsCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeConfigurationTransactionActionDialogOpen,\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen\n ] = useState(false);\n // TransactionAttachmentType\n const [\n isTransactionAttachmentTypeSidesheetOpen,\n setIsTransactionAttachmentTypeSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionAttachmentType,\n setSelectedTransactionAttachmentType\n ] = useState(null);\n const [\n isCreateOrEditTransactionAttachmentTypeSidesheetOpen,\n setIsCreateOrEditTransactionAttachmentTypeSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionAttachmentTypeDialogOpen,\n setIsDeleteTransactionAttachmentTypeDialogOpen\n ] = useState(false);\n\n const hasDefaultAndCancelledTransactionTypeStatus = useCallback(\n (\n transactionTypeStatuses,\n checkHasDefault = false,\n checkHasCancelledStatus = false\n ) => {\n if (!transactionTypeStatuses) {\n return false;\n }\n return transactionTypeStatuses?.some((record) => {\n if (\n record.transactionTypeStatusId !==\n selectedTransactionTypeStatus?.transactionTypeStatusId\n ) {\n const isDefault = record?.isDefault;\n const isCancelledStatus = record?.isCancelledStatus;\n if (checkHasDefault && isDefault) return true;\n if (checkHasCancelledStatus && isCancelledStatus) return true;\n }\n return false;\n });\n },\n [selectedTransactionTypeStatus]\n );\n\n // API Calls\n /** TransactionType */\n const postCreateTransactionType = async (transactionType) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionType`,\n {\n method: 'POST'\n },\n {\n data: transactionType\n }\n );\n };\n\n const putUpdateTransactionType = async (\n transactionTypeId,\n transactionType\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionType/${transactionTypeId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionType\n }\n );\n };\n\n const deleteTransactionType = async (transactionTypeId) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionType/${transactionTypeId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const [\n {\n data: transactionsByTransactionTypeId,\n loading: getTransactionsByTransactionIdLoading\n },\n fetchTransactionsByTransactionTypeId\n ] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransaction/search`,\n {\n method: 'post',\n data: {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: selectedTransactionType?.transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n }\n },\n !!!selectedTransactionType?.transactionTypeId ||\n !!!isDeleteTransactionTypeDialogOpen,\n false\n );\n\n /** TransactionTypeStatus */\n const postCreateTransactionTypeStatus = async (transactionTypeStatus) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus`,\n {\n method: 'POST'\n },\n {\n data: transactionTypeStatus\n }\n );\n };\n\n const putUpdateTransactionTypeStatus = async (\n transactionTypeStatusId,\n transactionTypeStatus\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus/${transactionTypeStatusId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeStatus\n }\n );\n };\n\n const deleteTransactionTypeStatus = async (transactionTypeStatusId) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus/${transactionTypeStatusId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const searchTransactionTypeStatusByTransactionTypeId = useCallback(\n async (transactionTypeId) => {\n const searchPayload = {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n };\n\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus/search`,\n {\n method: 'POST'\n },\n {\n data: searchPayload\n }\n );\n },\n []\n );\n\n useEffect(() => {\n if (!selectedTransactionType?.transactionTypeId) return;\n const loadTTStatuses = async () => {\n const ttsResponse = await searchTransactionTypeStatusByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (ttsResponse?.status === 200) {\n setTTStatuses(ttsResponse.data?.pageList);\n }\n };\n if (\n isTransactionTypeStatusSidesheetOpen ||\n isTransactionTypeConfigurationSidesheetOpen ||\n isTransactionTypeTransactionActionSidesheetOpen\n ) {\n loadTTStatuses();\n }\n }, [\n searchTransactionTypeStatusByTransactionTypeId,\n //selectedTransactionType?.transactionTypeId, Leaving this out to prevent re-fetching when closing sidesheets\n isTransactionTypeStatusSidesheetOpen,\n isTransactionTypeConfigurationSidesheetOpen,\n isTransactionTypeTransactionActionSidesheetOpen\n ]);\n\n /** TransactionAction */\n const [{ data: transactionActions }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAction`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** ActionApis */\n const [{ data: actionApis }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionWorkflowActionApi`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** PageIds */\n const [{ data: pages }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `Page?tenantId=${user?.currentTenantId}`,\n {\n method: 'GET'\n },\n !!!user?.currentTenantId,\n false\n );\n\n /** TransactionTypeTransactionAction */\n const postCreateTransactionTypeTransactionAction = async (\n transactionTypeTransactionAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction`,\n {\n method: 'POST'\n },\n {\n data: transactionTypeTransactionAction\n }\n );\n };\n\n const putUpdateTransactionTypeTransactionAction = async (\n transactionTypeTransactionActionId,\n transactionTypeTransactionAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction/${transactionTypeTransactionActionId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeTransactionAction\n }\n );\n };\n\n const deleteTransactionTypeTransactionAction = async (\n transactionTypeTransactionActionId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction/${transactionTypeTransactionActionId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const searchTransactionTypeTransactionActionByTransactionTypeId = useCallback(\n async (transactionTypeId) => {\n const searchPayload = {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n };\n\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction/search`,\n {\n method: 'POST'\n },\n {\n data: searchPayload\n }\n );\n },\n []\n );\n\n useEffect(() => {\n if (!selectedTransactionType?.transactionTypeId) return;\n const loadTTTActions = async () => {\n const tttaResponse =\n await searchTransactionTypeTransactionActionByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (tttaResponse?.status === 200) {\n setTTTActions(tttaResponse.data?.pageList);\n }\n };\n if (isTransactionTypeConfigurationTransactionActionSidesheetOpen) {\n loadTTTActions();\n }\n }, [\n searchTransactionTypeTransactionActionByTransactionTypeId,\n isTransactionTypeConfigurationTransactionActionSidesheetOpen\n //selectedTransactionType?.transactionTypeId, Leaving this out to prevent re-fetching when closing sidesheets\n ]);\n\n /** TransactionUiAction */\n const postCreateTransactionUiAction = async (transactionUiAction) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction`,\n {\n method: 'POST'\n },\n {\n data: transactionUiAction\n }\n );\n };\n\n const putUpdateTransactionUiAction = async (\n transactionUiActionId,\n transactionUiAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction/${transactionUiActionId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionUiAction\n }\n );\n };\n\n const deleteTransactionUiAction = async (transactionUiActionId) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction/${transactionUiActionId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const [{ data: tUiActionsList }, fetchTUiActionsList] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction/search`,\n {\n method: 'post',\n data: {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: selectedTransactionType?.transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n }\n },\n !!!isTransactionUiActionSidesheetOpen,\n false\n );\n\n /** TransactionUiActionType */\n const [{ data: transactionUiActionTypes }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiActionType`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** TransactionTypeConfiguration */\n const postCreateTransactionTypeConfiguration = async (\n transactionTypeConfiguration\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfiguration`,\n {\n method: 'POST'\n },\n {\n data: transactionTypeConfiguration\n }\n );\n };\n\n const putUpdateTransactionTypeConfiguration = async (\n transactionTypeConfigurationId,\n transactionTypeConfiguration\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfiguration/${transactionTypeConfigurationId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeConfiguration\n }\n );\n };\n\n const deleteTransactionTypeConfiguration = async (\n transactionTypeConfigurationId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfiguration/${transactionTypeConfigurationId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n /** TransactionRuleType */\n const [{ data: transactionRuleTypes }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionRuleType`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** Roles */\n const [{ data: roles }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `Roles?tenantId=${user?.currentTenantId}`,\n {\n method: 'GET'\n },\n !!!user?.currentTenantId,\n false\n );\n\n /** TransactionTypeConfigurationTransactionAction */\n const postCreateTransactionTypeConfigurationTransactionAction = async (\n ttcta\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/createBulk`,\n {\n method: 'POST'\n },\n {\n data: ttcta\n }\n );\n };\n\n const putUpdateTransactionTypeConfigurationTransactionAction = async (\n transactionTypeConfigurationId,\n transactionTypeTransactionActionId,\n transactionTypeConfigurationTransactionAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/${transactionTypeConfigurationId}/${transactionTypeTransactionActionId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeConfigurationTransactionAction\n }\n );\n };\n\n const deleteTransactionTypeConfigurationTransactionAction = async (\n transactionTypeConfigurationId,\n transactionTypeTransactionActionId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/${transactionTypeConfigurationId}/${transactionTypeTransactionActionId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const [{ data: ttctaList }, fetchTtctaList] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/search`,\n {\n method: 'post',\n data: {\n filterElements: [\n {\n searchField: 'TransactionTypeConfigurationId',\n searchOperator: '=',\n searchValue:\n selectedTransactionTypeConfiguration?.transactionTypeConfigurationId,\n groupId: 1\n }\n ],\n getAll: true\n }\n },\n !!!selectedTransactionTypeConfiguration?.transactionTypeConfigurationId,\n false\n );\n\n /** TransactionAttachmenType */\n const postCreateTransactionAttachmentType = async (\n transactionAttachmentType\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachmentType`,\n {\n method: 'POST'\n },\n {\n data: transactionAttachmentType\n }\n );\n };\n\n const putUpdateTransactionAttachmentType = async (\n transactionAttachmentTypeId,\n transactionAttachmentType\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachmentType/${transactionAttachmentTypeId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionAttachmentType\n }\n );\n };\n\n const deleteTransactionAttachmentType = async (\n transactionAttachmentTypeId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachmentType/${transactionAttachmentTypeId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const currentApiCatalogId = useCatalogStore(\n (state) => state.currentApiCatalogId\n );\n\n const [{ data: catalogObjectNames }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `apiCatalog/${currentApiCatalogId}/catalogObjectNames?modelsOnly=true`,\n {},\n !!!currentApiCatalogId,\n false\n );\n\n const domainName = selectedDomainName || selectedTransactionType?.domainName;\n\n const [{ data: catalogObject }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `apiCatalog/${currentApiCatalogId}/catalogObject/${domainName}`,\n {},\n !!!currentApiCatalogId || !!!domainName,\n false\n );\n\n // Get the list of properties for the selected domain name (i.e. catalogObjectName)\n const catalogObjectProperties = useMemo(() => {\n if (!selectedDomainName || !catalogObject?.properties) return [];\n return catalogObject.properties\n .filter(\n (property) =>\n property.name !== 'businessObjectKey' && property.name !== null\n )\n .map((property) => property.name);\n }, [catalogObject, selectedDomainName]);\n\n /** Sidesheet handlers */\n const handleSideSheet = useCallback((isOpen, transactionType) => {\n setIsTransactionTypeSideSheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n }, []);\n\n const handleTransactionTypeStatusSideSheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionTypeStatusSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionTypeStatusSideSheet = useCallback(\n (isOpen, transactionTypeStatus) => {\n setIsCreateOrEditTransactionTypeStatusSidesheetOpen(isOpen);\n setSelectedTransactionTypeStatus(transactionTypeStatus);\n },\n []\n );\n\n const handleTransactionTypeTransactionActionSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionTypeTransactionActionSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionTypeTransactionActionSidesheet =\n useCallback((isOpen, transactionTypeTransactionAction) => {\n setIsCreateOrEditTransactionTypeTransactionActionSidesheetOpen(isOpen);\n setSelectedTransactionTypeTransactionAction(\n transactionTypeTransactionAction\n );\n }, []);\n\n const handleTransactionUiActionSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionUiActionSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionUiActionSidesheet = useCallback(\n (isOpen, transactionUiAction) => {\n setIsCreateOrEditTransactionUiActionSidesheetOpen(isOpen);\n setSelectedTransactionUiAction(transactionUiAction);\n },\n []\n );\n\n const handleTransactionTypeConfigurationSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionTypeConfigurationSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionTypeConfigurationSidesheet = useCallback(\n (isOpen, transactionTypeConfiguration) => {\n setIsCreateOrEditTransactionTypeConfigurationSidesheetOpen(isOpen);\n setSelectedTransactionTypeConfiguration(transactionTypeConfiguration);\n },\n []\n );\n\n const handleTransactionTypeConfigurationTransactionActionSidesheet =\n useCallback((isOpen, transactionTypeConfiguration) => {\n setIsTransactionTypeConfigurationTransactionActionSidesheetOpen(isOpen);\n setSelectedTransactionTypeConfiguration(transactionTypeConfiguration);\n }, []);\n\n const handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet =\n useCallback((isOpen, transactionTypeConfigurationTransactionAction) => {\n setIsCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen(\n isOpen\n );\n setSelectedTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationTransactionAction\n );\n }, []);\n\n const handleTransactionAttachmentTypeSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionAttachmentTypeSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionAttachmentTypeSidesheet = useCallback(\n (isOpen, transactionAttachmentType) => {\n setIsCreateOrEditTransactionAttachmentTypeSidesheetOpen(isOpen);\n setSelectedTransactionAttachmentType(transactionAttachmentType);\n },\n []\n );\n\n // API call handlers\n /** TransactionType */\n const handleCreateTransactionType = useCallback(\n async (formValues) => {\n const { domainFields, ...restValues } = formValues;\n\n const { pageConfigurationColumnDefsDict, domainFieldsDict } = (\n Array.isArray(domainFields) ? domainFields : []\n ).reduce(\n (accumulator, entry) => {\n if (!entry || !entry[0]) {\n return accumulator;\n }\n\n const field = entry[0];\n let fieldKey = field;\n // Add a prefix, _UdpBusinessDomain_, to the non-custom, non-required/Transaction domain fields, e.g. ones that were selected from catalogObjectProperties\n if (catalogObjectProperties.includes(fieldKey)) {\n fieldKey = `${UdpSearchEnums.UdpBusinessDomainPrefix}_${fieldKey}`;\n }\n const config = entry[1] || {};\n\n const displayName = config.displayName || field;\n const order = config.order || 0;\n const hide = config.hide || false;\n\n // Always add to the PageConfiguration\n accumulator.pageConfigurationColumnDefsDict[fieldKey] = {\n displayName,\n order,\n hide\n };\n\n // Conditionally add to DomainFields (excludes the required Transaction/Additional fields)\n if (!REQUIRED_COLUMN_DEF_FIELDS.includes(field)) {\n accumulator.domainFieldsDict[field] = {\n displayName,\n order,\n hide\n };\n }\n\n return accumulator;\n },\n { pageConfigurationColumnDefsDict: {}, domainFieldsDict: {} }\n );\n\n const pageConfiguration = {\n gridTitle: restValues?.gridTitle || '',\n createTransactionButtonLabel:\n restValues?.createTransactionButtonLabel || '',\n hideCreateTransaction: restValues?.hideCreateTransaction,\n paginationAutoPageSize: restValues?.paginationAutoPageSize,\n hideSaveChanges: restValues?.hideSaveChanges,\n columnDefProperties: pageConfigurationColumnDefsDict\n };\n\n const newTransactionType = {\n ...restValues,\n domainFields: domainFieldsDict,\n pageConfiguration: pageConfiguration\n };\n\n try {\n const response = await postCreateTransactionType(newTransactionType);\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionType created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleSideSheet(false);\n setSelectedDomainName('');\n gridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n catalogObjectProperties,\n enqueueSnackbar,\n handleSideSheet,\n successAction,\n t\n ]\n );\n\n const handleUpdateTransactionType = useCallback(\n async (formValues, initialValues) => {\n const { domainFields, ...restValues } = formValues;\n const transactionTypeId = initialValues.transactionTypeId;\n\n const { pageConfigurationColumnDefsDict, domainFieldsDict } = (\n Array.isArray(domainFields) ? domainFields : []\n ).reduce(\n (accumulator, entry) => {\n if (!entry || !entry[0]) {\n return accumulator;\n }\n\n const field = entry[0];\n let fieldKey = field;\n // Add a prefix, _UdpBusinessDomain_, to the non-custom, non-required/Transaction domain fields, e.g. ones that were selected from catalogObjectProperties\n if (catalogObjectProperties.includes(fieldKey)) {\n fieldKey = `${UdpSearchEnums.UdpBusinessDomainPrefix}_${fieldKey}`;\n }\n const config = entry[1] || {};\n\n const displayName = config.displayName || field;\n const order = config.order || 0;\n const hide = config.hide || false;\n\n // Always add to the PageConfiguration\n accumulator.pageConfigurationColumnDefsDict[fieldKey] = {\n displayName,\n order,\n hide\n };\n\n // Conditionally add to DomainFields (excludes the required Transaction fields)\n if (!REQUIRED_COLUMN_DEF_FIELDS.includes(field)) {\n accumulator.domainFieldsDict[field] = {\n displayName,\n order,\n hide\n };\n }\n\n return accumulator;\n },\n { pageConfigurationColumnDefsDict: {}, domainFieldsDict: {} }\n );\n\n const pageConfiguration = {\n gridTitle: restValues?.gridTitle || '',\n createTransactionButtonLabel:\n restValues?.createTransactionButtonLabel || '',\n hideCreateTransaction: restValues?.hideCreateTransaction,\n paginationAutoPageSize: restValues?.paginationAutoPageSize,\n hideSaveChanges: restValues?.hideSaveChanges,\n columnDefProperties: pageConfigurationColumnDefsDict\n };\n\n const updatedTransactionType = {\n ...initialValues,\n ...formValues,\n domainFields: domainFieldsDict,\n pageConfiguration: pageConfiguration\n };\n\n try {\n const response = await putUpdateTransactionType(\n transactionTypeId,\n updatedTransactionType\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionType updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleSideSheet(false);\n setSelectedDomainName('');\n gridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n catalogObjectProperties,\n enqueueSnackbar,\n handleSideSheet,\n successAction,\n t\n ]\n );\n\n const handleDeleteTransactionType = useCallback(async () => {\n if (!selectedTransactionType) return;\n\n setIsTransactionTypeSidesheetLoading(true);\n const transactionTypeId = selectedTransactionType.transactionTypeId;\n\n try {\n const response = await deleteTransactionType(transactionTypeId);\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionType deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionTypeDialogOpen(false);\n gridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n } finally {\n setIsTransactionTypeSidesheetLoading(false);\n }\n }, [\n enqueueSnackbar,\n selectedTransactionType,\n successAction,\n t,\n setIsTransactionTypeSidesheetLoading,\n setIsDeleteTransactionTypeDialogOpen\n ]);\n /** end of TransactionType */\n\n /** TransactionTypeStatus */\n const handleCreateTransactionTypeStatus = useCallback(\n async (formValues) => {\n const newTransactionTypeStatus = {\n ...formValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n color: formValues?.color?.value || null\n };\n let hasDefaultOrCancelledStatus = false;\n\n try {\n const isCreatingDefaultStatus = formValues?.isDefault === true;\n const isCreatingCancelledStatus =\n formValues?.isCancelledStatus === true;\n if (isCreatingDefaultStatus || isCreatingCancelledStatus) {\n const searchTransactionTypeStatusResponse =\n await searchTransactionTypeStatusByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (searchTransactionTypeStatusResponse?.status !== 200) {\n enqueueSnackbar(\n t(\n 'Unable to validate existing TransactionTypeStatus records. Please try again.'\n ),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n hasDefaultOrCancelledStatus =\n hasDefaultAndCancelledTransactionTypeStatus(\n searchTransactionTypeStatusResponse?.data?.pageList,\n isCreatingDefaultStatus,\n isCreatingCancelledStatus\n );\n }\n\n if (\n (isCreatingDefaultStatus || isCreatingCancelledStatus) &&\n hasDefaultOrCancelledStatus\n ) {\n let statusConflictMessage = '';\n if (isCreatingDefaultStatus) {\n statusConflictMessage =\n 'There is already a TransactionTypeStatus for this TransactionType that has IsDefault set to true.';\n } else if (isCreatingCancelledStatus) {\n statusConflictMessage =\n 'There is already a TransactionTypeStatus for this TransactionType that has IsCancelledStatus set to true.';\n }\n enqueueSnackbar(t(statusConflictMessage), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n return;\n }\n const response = await postCreateTransactionTypeStatus(\n newTransactionTypeStatus\n );\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionTypeStatus created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionTypeStatusSideSheet(false);\n ttsGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response?.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttsGridApiRef,\n handleCreateOrEditTransactionTypeStatusSideSheet,\n successAction,\n t,\n selectedTransactionType,\n searchTransactionTypeStatusByTransactionTypeId,\n hasDefaultAndCancelledTransactionTypeStatus\n ]\n );\n\n const handleUpdateTransactionTypeStatus = useCallback(\n async (formValues, initialValues) => {\n const transactionTypeStatusId = initialValues.transactionTypeStatusId;\n const updatedTransactionTypeStatus = {\n ...initialValues,\n ...formValues,\n color: formValues?.color?.value || null\n };\n let hasExistingDefaultOrCancelledStatus = false;\n\n try {\n const isEditingDefaultStatus = formValues?.isDefault === true;\n const isEditingCancelledStatus = formValues?.isCancelledStatus === true;\n if (isEditingDefaultStatus || isEditingCancelledStatus) {\n const searchTransactionTypeStatusResponse =\n await searchTransactionTypeStatusByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (searchTransactionTypeStatusResponse?.status !== 200) {\n enqueueSnackbar(\n t(\n 'Unable to validate existing TransactionTypeStatus records. Please try again.'\n ),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n hasExistingDefaultOrCancelledStatus =\n hasDefaultAndCancelledTransactionTypeStatus(\n searchTransactionTypeStatusResponse?.data?.pageList,\n isEditingDefaultStatus,\n isEditingCancelledStatus\n );\n }\n\n if (\n (isEditingDefaultStatus || isEditingCancelledStatus) &&\n hasExistingDefaultOrCancelledStatus\n ) {\n enqueueSnackbar(\n t(`There is already a TransactionTypeStatus for this TransactionType that has\n ${\n isEditingDefaultStatus\n ? isEditingCancelledStatus\n ? 'IsDefault and/or IsCancelledStatus'\n : 'IsDefault'\n : 'IsCancelledStatus'\n } set to true.`),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n const response = await putUpdateTransactionTypeStatus(\n transactionTypeStatusId,\n updatedTransactionTypeStatus\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionTypeStatus updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionTypeStatusSideSheet(false);\n ttsGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response?.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttsGridApiRef,\n handleCreateOrEditTransactionTypeStatusSideSheet,\n successAction,\n t,\n searchTransactionTypeStatusByTransactionTypeId,\n hasDefaultAndCancelledTransactionTypeStatus,\n selectedTransactionType\n ]\n );\n\n const handleDeleteTransactionTypeStatus = useCallback(async () => {\n if (!selectedTransactionTypeStatus) return;\n\n const transactionTypeStatusId =\n selectedTransactionTypeStatus.transactionTypeStatusId;\n\n try {\n const response = await deleteTransactionTypeStatus(\n transactionTypeStatusId\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionTypeStatus deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionTypeStatusDialogOpen(false);\n ttsGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionTypeStatus,\n successAction,\n t,\n ttsGridApiRef,\n setIsDeleteTransactionTypeStatusDialogOpen\n ]);\n /** end of TransactionTypeStatus */\n\n /** TransactionTypeTransactionAction */\n const handleCreateTransactionTypeTransactionAction = useCallback(\n async (formValues) => {\n const {\n transactionAction,\n toStatus,\n actionApiId,\n pageId,\n mandatoryFields,\n hiddenFields,\n domainDataToUpdate,\n ...restValues\n } = formValues || {};\n\n const domainDataDictionary = (\n Array.isArray(domainDataToUpdate) ? domainDataToUpdate : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const [field, value] = entry;\n if (field) {\n accumulator[field] = value;\n }\n\n return accumulator;\n }, {});\n\n const newTransactionTypeTransactionAction = {\n ...restValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionActionId: transactionAction?.transactionActionId,\n parameters: {\n ToStatus: toStatus?.transactionTypeStatusId,\n DomainDataToUpdate: domainDataDictionary,\n MandatoryFields: Array.isArray(mandatoryFields)\n ? mandatoryFields\n : [],\n HiddenFields: Array.isArray(hiddenFields) ? hiddenFields : [],\n ActionApiId: actionApiId?.actionApiId || '',\n PageId: pageId?.pageId || ''\n }\n };\n\n try {\n const response = await postCreateTransactionTypeTransactionAction(\n newTransactionTypeTransactionAction\n );\n if (response?.status === 201) {\n enqueueSnackbar(\n t('TransactionTypeTransactionAction created successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeTransactionActionSidesheet(false);\n tttaGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tttaGridApiRef,\n handleCreateOrEditTransactionTypeTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleUpdateTransactionTypeTransactionAction = useCallback(\n async (formValues, initialValues) => {\n const {\n transactionAction,\n toStatus,\n actionApiId,\n pageId,\n mandatoryFields,\n hiddenFields,\n domainDataToUpdate\n } = formValues || {};\n\n const transactionTypeTransactionActionId =\n initialValues.transactionTypeTransactionActionId;\n // Process the domainDataToUpdate array form data into an object\n const domainDataDictionary = (\n Array.isArray(domainDataToUpdate) ? domainDataToUpdate : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const [field, value] = entry;\n if (field) {\n accumulator[field] = value;\n }\n\n return accumulator;\n }, {});\n\n const updatedTransactionTypeTransactionAction = {\n ...initialValues,\n name: formValues?.name || '',\n description: formValues?.description || '',\n icon: formValues?.icon || '',\n transactionTypeTransactionActionId: transactionTypeTransactionActionId,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionActionId: transactionAction?.transactionActionId,\n parameters: {\n ToStatus: toStatus?.transactionTypeStatusId,\n DomainDataToUpdate: domainDataDictionary,\n MandatoryFields: Array.isArray(mandatoryFields)\n ? mandatoryFields\n : [],\n HiddenFields: Array.isArray(hiddenFields) ? hiddenFields : [],\n ActionApiId: actionApiId?.actionApiId || '',\n PageId: pageId?.pageId || ''\n }\n };\n\n try {\n const response = await putUpdateTransactionTypeTransactionAction(\n transactionTypeTransactionActionId,\n updatedTransactionTypeTransactionAction\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeTransactionAction updated successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeTransactionActionSidesheet(false);\n tttaGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tttaGridApiRef,\n handleCreateOrEditTransactionTypeTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleDeleteTransactionTypeTransactionAction = useCallback(async () => {\n if (!selectedTransactionTypeTransactionAction) return;\n\n const transactionTypeTransactionActionId =\n selectedTransactionTypeTransactionAction.transactionTypeTransactionActionId;\n\n try {\n const response = await deleteTransactionTypeTransactionAction(\n transactionTypeTransactionActionId\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeTransactionAction deleted successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n setIsDeleteTransactionTypeTransactionActionDialogOpen(false);\n tttaGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionTypeTransactionAction,\n successAction,\n t,\n setIsDeleteTransactionTypeTransactionActionDialogOpen\n ]);\n /** end of TransactionTypeTransactionAction */\n\n /** TransactionUiAction */\n const handleCreateTransactionUiAction = useCallback(\n async (formValues) => {\n const { transactionUiActionType, actionApi, page, ...restValues } =\n formValues;\n\n const newTransactionUiAction = {\n ...restValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionUiActionTypeId:\n transactionUiActionType?.transactionUiActionTypeId,\n parameters: {\n ActionApiId: actionApi?.actionApiId || '',\n PageId: page?.pageId || ''\n }\n };\n\n try {\n const response = await postCreateTransactionUiAction(\n newTransactionUiAction\n );\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionUiAction created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionUiActionSidesheet(false);\n tuaGridApiRef.current?.refreshServerSide();\n fetchTUiActionsList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tuaGridApiRef,\n handleCreateOrEditTransactionUiActionSidesheet,\n successAction,\n t,\n selectedTransactionType,\n fetchTUiActionsList\n ]\n );\n\n const handleUpdateTransactionUiAction = useCallback(\n async (formValues, initialValues) => {\n const { transactionUiActionType, actionApi, page, ...restValues } =\n formValues;\n const transactionUiActionId = initialValues.transactionUiActionId;\n\n const updatedTransactionUiAction = {\n ...restValues,\n transactionUiActionId: transactionUiActionId,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionUiActionTypeId:\n transactionUiActionType?.transactionUiActionTypeId,\n parameters: {\n ActionApiId: actionApi?.actionApiId || '',\n PageId: page?.pageId || ''\n }\n };\n\n try {\n const response = await putUpdateTransactionUiAction(\n transactionUiActionId,\n updatedTransactionUiAction\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionUiAction updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionUiActionSidesheet(false);\n tuaGridApiRef.current?.refreshServerSide();\n fetchTUiActionsList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tuaGridApiRef,\n handleCreateOrEditTransactionUiActionSidesheet,\n successAction,\n t,\n selectedTransactionType,\n fetchTUiActionsList\n ]\n );\n\n const handleDeleteTransactionUiAction = useCallback(async () => {\n if (!selectedTransactionUiAction) return;\n\n const transactionUiActionId =\n selectedTransactionUiAction.transactionUiActionId;\n\n try {\n const response = await deleteTransactionUiAction(transactionUiActionId);\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionUiAction deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionUiActionDialogOpen(false);\n tuaGridApiRef.current?.refreshServerSide();\n fetchTUiActionsList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionUiAction,\n successAction,\n t,\n setIsDeleteTransactionUiActionDialogOpen,\n fetchTUiActionsList\n ]);\n /** end of TransactionUiAction */\n\n /** TransactionTypeConfiguration */\n const handleCreateTransactionTypeConfiguration = useCallback(\n async (formValues) => {\n const {\n transactionRuleType,\n currentStatus,\n tenantUserRoles,\n currentDomainValue,\n ...restValues\n } = formValues;\n\n const domainDataDictionary = (\n Array.isArray(currentDomainValue) ? currentDomainValue : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const field = entry[0];\n const value = entry[1].value;\n const operator = entry[1]?.operator?.value;\n if (field) {\n accumulator[field] = {\n value: value,\n operator: operator\n };\n }\n\n return accumulator;\n }, {});\n\n const tenantUserRoleIds = tenantUserRoles?.map((tur) => tur?.roleId);\n const configurationObj = {\n CurrentStatus: currentStatus,\n CurrentDomainValue: domainDataDictionary,\n TenantUserRoleIds: Array.isArray(tenantUserRoleIds)\n ? tenantUserRoleIds\n : []\n };\n const expressionLogic =\n formatTransactionTypeConfigurationIntoExpressionLogic(configurationObj);\n const newTransactionTypeConfiguration = {\n ...restValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionRuleTypeId: transactionRuleType?.transactionRuleTypeId,\n configuration: {\n ...configurationObj,\n CurrentStatusId: currentStatus?.transactionTypeStatusId\n },\n expressionLogic\n };\n\n try {\n const response = await postCreateTransactionTypeConfiguration(\n newTransactionTypeConfiguration\n );\n if (response?.status === 201) {\n enqueueSnackbar(\n t('TransactionTypeConfiguration created successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationSidesheet(false);\n ttcGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttcGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleUpdateTransactionTypeConfiguration = useCallback(\n async (formValues, initialValues) => {\n const {\n transactionRuleType,\n currentStatus,\n tenantUserRoles,\n currentDomainValue,\n name,\n ...restValues\n } = formValues;\n const transactionTypeConfigurationId =\n initialValues.transactionTypeConfigurationId;\n\n const domainDataDictionary = (\n Array.isArray(currentDomainValue) ? currentDomainValue : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const field = entry[0];\n const value = entry[1].value;\n const operator = entry[1]?.operator?.value;\n if (field) {\n accumulator[field] = {\n value: value,\n operator: operator\n };\n }\n\n return accumulator;\n }, {});\n\n const tenantUserRoleIds = tenantUserRoles?.map((tur) => tur?.roleId);\n const configurationObj = {\n CurrentStatus: currentStatus,\n CurrentDomainValue: domainDataDictionary,\n TenantUserRoleIds: Array.isArray(tenantUserRoleIds)\n ? tenantUserRoleIds\n : []\n };\n const expressionLogic =\n formatTransactionTypeConfigurationIntoExpressionLogic(configurationObj);\n const updatedTransactionTypeConfiguration = {\n ...initialValues,\n name: name || '',\n order: formValues?.order || 0,\n enabled: formValues?.enabled,\n transactionTypeConfigurationId: transactionTypeConfigurationId,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionRuleTypeId: transactionRuleType?.transactionRuleTypeId,\n configuration: {\n ...configurationObj,\n CurrentStatusId: currentStatus?.transactionTypeStatusId\n },\n expressionLogic\n };\n\n try {\n const response = await putUpdateTransactionTypeConfiguration(\n transactionTypeConfigurationId,\n updatedTransactionTypeConfiguration\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeConfiguration updated successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationSidesheet(false);\n ttcGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttcGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleDeleteTransactionTypeConfiguration = useCallback(async () => {\n if (!selectedTransactionTypeConfiguration) return;\n\n const transactionTypeConfigurationId =\n selectedTransactionTypeConfiguration.transactionTypeConfigurationId;\n\n try {\n const response = await deleteTransactionTypeConfiguration(\n transactionTypeConfigurationId\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeConfiguration deleted successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n setIsDeleteTransactionTypeConfigurationDialogOpen(false);\n ttcGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionTypeConfiguration,\n successAction,\n t,\n setIsDeleteTransactionTypeConfigurationDialogOpen\n ]);\n /** end of TransactionTypeConfiguration */\n\n /** TransactionTypeConfigurationTransactionAction */\n const handleCreateTransactionTypeConfigurationTransactionAction = useCallback(\n async (formValues) => {\n const { transactionTypeTransactionActions } = formValues;\n\n const newTTCTActions = [];\n\n transactionTypeTransactionActions?.forEach((action) => {\n newTTCTActions.push({\n transactionTypeConfigurationId:\n selectedTransactionTypeConfiguration?.transactionTypeConfigurationId,\n transactionTypeTransactionActionId:\n action?.transactionTypeTransactionActionId\n });\n });\n\n try {\n const response =\n await postCreateTransactionTypeConfigurationTransactionAction(\n newTTCTActions\n );\n if (response?.status === 201) {\n enqueueSnackbar(\n t(\n 'TransactionTypeConfigurationTransactionAction(s) created successfully'\n ),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet(\n false\n );\n ttctaGridApiRef.current?.refreshServerSide();\n fetchTtctaList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttctaGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionTypeConfiguration,\n fetchTtctaList\n ]\n );\n\n const handleUpdateTransactionTypeConfigurationTransactionAction = useCallback(\n async (formValues, initialValues) => {\n const { transactionTypeTransactionActions } = formValues;\n const transactionTypeConfigurationId =\n selectedTransactionTypeConfiguration?.transactionTypeConfigurationId;\n const existingTransactionTypeTransactionActionId =\n initialValues?.transactionTypeTransactionActionId;\n\n const updatedTransactionTypeConfigurationTransactionAction = {\n transactionTypeConfigurationId: transactionTypeConfigurationId,\n transactionTypeTransactionActionId:\n transactionTypeTransactionActions?.[0]\n ?.transactionTypeTransactionActionId\n };\n\n try {\n const response =\n await putUpdateTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationId,\n existingTransactionTypeTransactionActionId,\n updatedTransactionTypeConfigurationTransactionAction\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t(\n 'TransactionTypeConfigurationTransactionAction updated successfully'\n ),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet(\n false\n );\n ttctaGridApiRef.current?.refreshServerSide();\n fetchTtctaList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttctaGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionTypeConfiguration,\n fetchTtctaList\n ]\n );\n\n const handleDeleteTransactionTypeConfigurationTransactionAction =\n useCallback(async () => {\n if (!selectedTransactionTypeConfigurationTransactionAction) return;\n\n const transactionTypeConfigurationId =\n selectedTransactionTypeConfigurationTransactionAction?.transactionTypeConfigurationId;\n const transactionTypeTransactionActionId =\n selectedTransactionTypeConfigurationTransactionAction?.transactionTypeTransactionActionId;\n\n try {\n const response =\n await deleteTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationId,\n transactionTypeTransactionActionId\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t(\n 'TransactionTypeConfigurationTransactionAction deleted successfully'\n ),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen(\n false\n );\n ttctaGridApiRef.current?.refreshServerSide();\n fetchTtctaList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n ttctaGridApiRef,\n enqueueSnackbar,\n selectedTransactionTypeConfigurationTransactionAction,\n successAction,\n t,\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen,\n fetchTtctaList\n ]);\n /** end of TransactionTypeConfigurationTransactionAction */\n\n /** TransactionAttachmentType */\n const handleCreateTransactionAttachmentType = useCallback(\n async (formValues) => {\n const newTransactionAttachmentType = {\n ...formValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId\n };\n\n try {\n const response = await postCreateTransactionAttachmentType(\n newTransactionAttachmentType\n );\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionAttachmentType created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionAttachmentTypeSidesheet(false);\n tatGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tatGridApiRef,\n successAction,\n t,\n selectedTransactionType,\n handleCreateOrEditTransactionAttachmentTypeSidesheet\n ]\n );\n\n const handleUpdateTransactionAttachmentType = useCallback(\n async (formValues, initialValues) => {\n const transactionTypeId = selectedTransactionType?.transactionTypeId;\n const transactionAttachmentTypeId =\n selectedTransactionAttachmentType?.transactionAttachmentTypeId;\n const updatedTransactionType = {\n ...initialValues,\n ...formValues,\n transactionTypeId: transactionTypeId,\n transactionAttachmentTypeId: transactionAttachmentTypeId\n };\n\n try {\n const response = await putUpdateTransactionAttachmentType(\n transactionAttachmentTypeId,\n updatedTransactionType\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionAttachmentType updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionAttachmentTypeSidesheet(false);\n tatGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [enqueueSnackbar, selectedTransactionType, successAction, t]\n );\n\n const handleDeleteTransactionAttachmentType = useCallback(async () => {\n if (!selectedTransactionAttachmentType) return;\n\n const transactionAttachmentTypeId =\n selectedTransactionAttachmentType?.transactionAttachmentTypeId;\n\n try {\n const response = await deleteTransactionAttachmentType(\n transactionAttachmentTypeId\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionAttachmentType deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionAttachmentTypeDialogOpen(false);\n tatGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionAttachmentType,\n tatGridApiRef,\n successAction,\n t,\n setIsDeleteTransactionAttachmentTypeDialogOpen\n ]);\n /** end of TransactionAttachmentType */\n\n const handleOpenDeleteTransactionTypeDialog = useCallback(\n (transactionType) => {\n setSelectedTransactionType(transactionType);\n setIsDeleteTransactionTypeDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeDialog = useCallback(() => {\n setIsDeleteTransactionTypeDialogOpen(false);\n setSelectedTransactionType(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeStatusDialog = useCallback(\n (transactionTypeStatus) => {\n setSelectedTransactionTypeStatus(transactionTypeStatus);\n setIsDeleteTransactionTypeStatusDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeStatusDialog = useCallback(() => {\n setIsDeleteTransactionTypeStatusDialogOpen(false);\n setSelectedTransactionTypeStatus(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeTransactionActionDialog = useCallback(\n (transactionTypeTransactionAction) => {\n setSelectedTransactionTypeTransactionAction(\n transactionTypeTransactionAction\n );\n setIsDeleteTransactionTypeTransactionActionDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeTransactionActionDialog =\n useCallback(() => {\n setIsDeleteTransactionTypeTransactionActionDialogOpen(false);\n setSelectedTransactionTypeTransactionAction(null);\n }, []);\n\n const handleOpenDeleteTransactionUiActionDialog = useCallback(\n (transactionUiAction) => {\n setSelectedTransactionUiAction(transactionUiAction);\n setIsDeleteTransactionUiActionDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionUiActionDialog = useCallback(() => {\n setIsDeleteTransactionUiActionDialogOpen(false);\n setSelectedTransactionUiAction(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeConfigurationDialog = useCallback(\n (transactionTypeConfiguration) => {\n setSelectedTransactionTypeConfiguration(transactionTypeConfiguration);\n setIsDeleteTransactionTypeConfigurationDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeConfigurationDialog =\n useCallback(() => {\n setIsDeleteTransactionTypeConfigurationDialogOpen(false);\n setSelectedTransactionTypeConfiguration(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeConfigurationTransactionActionDialog =\n useCallback((transactionTypeConfigurationTransactionAction) => {\n setSelectedTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationTransactionAction\n );\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen(true);\n }, []);\n\n const handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog =\n useCallback(() => {\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen(false);\n setSelectedTransactionTypeConfigurationTransactionAction(null);\n }, []);\n\n const handleOpenDeleteTransactionAttachmentTypeDialog = useCallback(\n (transactionAttachmentType) => {\n setSelectedTransactionAttachmentType(transactionAttachmentType);\n setIsDeleteTransactionAttachmentTypeDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionAttachmentTypeDialog = useCallback(() => {\n setIsDeleteTransactionAttachmentTypeDialogOpen(false);\n setSelectedTransactionAttachmentType(null);\n }, []);\n\n const columnDefs = useMemo(() => {\n return [\n {\n headerName: t('Transaction Type ID'),\n field: 'transactionTypeId',\n resizable: true,\n sortable: false,\n hide: true\n },\n {\n headerName: t('Name'),\n field: 'name',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Domain Name'),\n field: 'domainName',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Domain Fields'),\n field: 'domainFields',\n resizable: true,\n sortable: false,\n hide: true\n },\n {\n headerName: t('Allow Revisions'),\n field: 'hasRevision',\n resizable: true,\n sortable: false,\n cellDataType: 'boolean'\n },\n {\n headerName: t('Revision Field'),\n field: 'revisionField',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Enabled'),\n field: 'enabled',\n resizable: true,\n sortable: false,\n cellDataType: 'boolean'\n },\n {\n headerName: t('Archived on Cancel'),\n field: 'archiveOnCancel',\n resizable: true,\n sortable: false,\n cellDataType: 'boolean'\n },\n {\n headerName: t('Field Label'),\n field: 'domainFieldLabel',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Sub-Type'),\n field: 'domainFieldType',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Sub-Type Value'),\n field: 'domainFieldValue',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Actions'),\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: [\n {\n id: 0,\n title: t('Edit'),\n iconName: 'edit',\n handleOnClick: (e, transactionType) => {\n handleSideSheet(true, transactionType?.data);\n }\n },\n {\n id: 1,\n title: t('Delete'),\n iconName: 'trashCan',\n handleOnClick: (e, transactionType) => {\n handleOpenDeleteTransactionTypeDialog(transactionType?.data);\n }\n },\n {\n id: 2,\n title: t('Manage Statuses'),\n iconName: 'settings',\n handleOnClick: (e, transactionType) => {\n handleTransactionTypeStatusSideSheet(\n true,\n transactionType?.data\n );\n }\n },\n {\n id: 3,\n title: t('Manage Actions'),\n iconName: 'text-grammar-settings',\n handleOnClick: (e, transactionType) => {\n handleTransactionTypeTransactionActionSidesheet(\n true,\n transactionType?.data\n );\n }\n },\n {\n id: 4,\n title: t('Manage Forms/Pages'),\n iconName: 'form-new',\n handleOnClick: (e, transactionType) => {\n handleTransactionUiActionSidesheet(true, transactionType?.data);\n }\n },\n {\n id: 5,\n title: t('Manage Rules'),\n iconName: 'apps-list',\n handleOnClick: (e, transactionType) => {\n handleTransactionTypeConfigurationSidesheet(\n true,\n transactionType?.data\n );\n }\n },\n {\n id: 6,\n title: t('Manage Attachment Types'),\n iconName: 'attachment',\n handleOnClick: (e, transactionType) => {\n handleTransactionAttachmentTypeSidesheet(\n true,\n transactionType?.data\n );\n }\n }\n ]\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n filter: false\n }\n ];\n }, [\n handleSideSheet,\n handleOpenDeleteTransactionTypeDialog,\n handleTransactionTypeStatusSideSheet,\n handleTransactionTypeTransactionActionSidesheet,\n handleTransactionUiActionSidesheet,\n handleTransactionTypeConfigurationSidesheet,\n handleTransactionAttachmentTypeSidesheet,\n t\n ]);\n\n const headerConfig = {\n title: t('Transaction Types'),\n primaryActionButton: {\n label: t('Add'),\n iconName: 'add',\n onClick: () => handleSideSheet(true)\n }\n };\n\n const gridFunctions = [\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 const handleGridApiCallback = (api) => {\n gridApiRef.current = api;\n };\n\n const searchMethodConfig = useMemo(() => {\n return {\n requestUrl: `${ConfigService.productV1ApiUrl}/UdpTransactionType/search`,\n customSearchObject: searchObject\n };\n }, [searchObject]);\n\n return (\n <>\n {isTransactionTypeSidesheetLoading && (\n <LinearProgress className={classes.loadingBar} color='secondary' />\n )}\n <SearchMethodUdpGrid\n searchMethodConfig={searchMethodConfig}\n columnDefs={columnDefs}\n gridHeaderConfig={headerConfig}\n gridOptions={gridOptions}\n gridApiCallback={handleGridApiCallback}\n gridFunctions={gridFunctions}\n />\n <UdpTransactionTypeSidesheet\n key={selectedTransactionType?.transactionTypeId}\n initialTransactionType={selectedTransactionType}\n selectedDomainName={selectedDomainName}\n isSideSheetOpen={isTransactionTypeSideSheetOpen}\n handleSideSheet={handleSideSheet}\n setSelectedDomainName={setSelectedDomainName}\n handleCreateTransactionType={handleCreateTransactionType}\n handleUpdateTransactionType={handleUpdateTransactionType}\n catalogObjectNames={catalogObjectNames}\n catalogObjectProperties={catalogObjectProperties}\n isPageConfigurationSidesheetOpen={isPageConfigurationSidesheetOpen}\n setIsPageConfigurationSidesheetOpen={\n setIsPageConfigurationSidesheetOpen\n }\n />\n {getTransactionsByTransactionIdLoading ? (\n <LinearProgress />\n ) : (\n <FluentDialog\n open={isDeleteTransactionTypeDialogOpen}\n onClose={handleCloseDeleteTransactionTypeDialog}\n title={t('Confirm Delete')}\n message={\n !transactionsByTransactionTypeId?.pageList?.length\n ? t(`Are you sure you want to delete this type?`)\n : t(`Unable to delete this type as there are existing transactions associated with it.\n As an alternative, you can disable the type to prevent further use.`)\n }\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionType}\n buttonOneHidden={!!transactionsByTransactionTypeId?.pageList?.length}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeDialog}\n />\n )}\n <UdpTransactionTypeStatusSidesheet\n ref={ttsGridApiRef}\n transactionType={selectedTransactionType}\n transactionTypeStatus={selectedTransactionTypeStatus}\n isSideSheetOpen={isTransactionTypeStatusSidesheetOpen}\n isTransactionTypeStatusCreateOrEditSidesheetOpen={\n isCreateOrEditTransactionTypeStatusSidesheetOpen\n }\n handleTransactionTypeStatusSideSheet={\n handleTransactionTypeStatusSideSheet\n }\n handleCreateOrEditTransactionTypeStatusSideSheet={\n handleCreateOrEditTransactionTypeStatusSideSheet\n }\n handleCreateTransactionTypeStatus={handleCreateTransactionTypeStatus}\n handleUpdateTransactionTypeStatus={handleUpdateTransactionTypeStatus}\n handleDeleteTransactionTypeStatus={\n handleOpenDeleteTransactionTypeStatusDialog\n }\n />\n <FluentDialog\n open={isDeleteTransactionTypeStatusDialogOpen}\n onClose={handleCloseDeleteTransactionTypeStatusDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this status?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeStatus}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeStatusDialog}\n />\n <UdpTransactionTypeTransactionActionSidesheet\n ref={tttaGridApiRef}\n transactionType={selectedTransactionType}\n transactionTypeTransactionAction={\n selectedTransactionTypeTransactionAction\n }\n isSideSheetOpen={isTransactionTypeTransactionActionSidesheetOpen}\n isTransactionTypeTransactionActionCreateOrEditSidesheetOpen={\n isCreateOrEditTransactionTypeTransactionActionSidesheetOpen\n }\n handleTransactionTypeTransactionActionSidesheet={\n handleTransactionTypeTransactionActionSidesheet\n }\n handleCreateOrEditTransactionTypeTransactionActionSidesheet={\n handleCreateOrEditTransactionTypeTransactionActionSidesheet\n }\n handleCreateTransactionTypeTransactionAction={\n handleCreateTransactionTypeTransactionAction\n }\n handleUpdateTransactionTypeTransactionAction={\n handleUpdateTransactionTypeTransactionAction\n }\n handleDeleteTransactionTypeTransactionAction={\n handleOpenDeleteTransactionTypeTransactionActionDialog\n }\n transactionActions={transactionActions}\n catalogObjectProperties={catalogObjectProperties}\n actionApis={actionApis}\n pages={pages}\n ttstatuses={ttstatuses}\n />\n <FluentDialog\n open={isDeleteTransactionTypeTransactionActionDialogOpen}\n onClose={handleCloseDeleteTransactionTypeTransactionActionDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this action?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeTransactionAction}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeTransactionActionDialog}\n />\n <UdpTransactionUiActionSidesheet\n ref={tuaGridApiRef}\n transactionType={selectedTransactionType}\n transactionUiAction={selectedTransactionUiAction}\n isSideSheetOpen={isTransactionUiActionSidesheetOpen}\n handleTransactionUiActionSidesheet={handleTransactionUiActionSidesheet}\n isCreateOrEditTransactionUiActionSidesheetOpen={\n isCreateOrEditTransactionUiActionSidesheetOpen\n }\n handleCreateOrEditTransactionUiActionSidesheet={\n handleCreateOrEditTransactionUiActionSidesheet\n }\n handleCreateTransactionUiAction={handleCreateTransactionUiAction}\n handleUpdateTransactionUiAction={handleUpdateTransactionUiAction}\n handleDeleteTransactionUiAction={\n handleOpenDeleteTransactionUiActionDialog\n }\n transactionUiActionTypes={transactionUiActionTypes}\n actionApis={actionApis}\n pages={pages}\n tUiActionsList={tUiActionsList}\n />\n <FluentDialog\n open={isDeleteTransactionUiActionDialogOpen}\n onClose={handleCloseDeleteTransactionUiActionDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this UI action?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionUiAction}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionUiActionDialog}\n />\n <UdpTransactionTypeConfigurationSidesheet\n ref={ttcGridApiRef}\n transactionType={selectedTransactionType}\n transactionTypeConfiguration={selectedTransactionTypeConfiguration}\n isSideSheetOpen={isTransactionTypeConfigurationSidesheetOpen}\n handleTransactionTypeConfigurationSidesheet={\n handleTransactionTypeConfigurationSidesheet\n }\n isCreateOrEditTransactionTypeConfigurationSidesheetOpen={\n isCreateOrEditTransactionTypeConfigurationSidesheetOpen\n }\n handleCreateOrEditTransactionTypeConfigurationSidesheet={\n handleCreateOrEditTransactionTypeConfigurationSidesheet\n }\n handleCreateTransactionTypeConfiguration={\n handleCreateTransactionTypeConfiguration\n }\n handleUpdateTransactionTypeConfiguration={\n handleUpdateTransactionTypeConfiguration\n }\n handleDeleteTransactionTypeConfiguration={\n handleOpenDeleteTransactionTypeConfigurationDialog\n }\n transactionRuleTypes={transactionRuleTypes}\n catalogObjectProperties={catalogObjectProperties}\n ttstatuses={ttstatuses}\n roles={roles}\n transactionTypeConfigurationTransactionAction={\n selectedTransactionTypeConfigurationTransactionAction\n }\n isTransactionTypeConfigurationTransactionActionSidesheetOpen={\n isTransactionTypeConfigurationTransactionActionSidesheetOpen\n }\n handleTransactionTypeConfigurationTransactionActionSidesheet={\n handleTransactionTypeConfigurationTransactionActionSidesheet\n }\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet={\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet\n }\n isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen={\n isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen\n }\n tttactions={tttactions}\n handleCreateTransactionTypeConfigurationTransactionAction={\n handleCreateTransactionTypeConfigurationTransactionAction\n }\n handleUpdateTransactionTypeConfigurationTransactionAction={\n handleUpdateTransactionTypeConfigurationTransactionAction\n }\n handleDeleteTransactionTypeConfigurationTransactionAction={\n handleOpenDeleteTransactionTypeConfigurationTransactionActionDialog\n }\n ttctaList={ttctaList}\n ttctaGridApiRef={ttctaGridApiRef}\n />\n <FluentDialog\n open={isDeleteTransactionTypeConfigurationDialogOpen}\n onClose={handleCloseDeleteTransactionTypeConfigurationDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this rule?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeConfiguration}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeConfigurationDialog}\n />\n <FluentDialog\n open={isDeleteTransactionTypeConfigurationTransactionActionDialogOpen}\n onClose={\n handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog\n }\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this linked action?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeConfigurationTransactionAction}\n labelTwo={t('Cancel')}\n actionTwo={\n handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog\n }\n />\n <UdpTransactionAttachmentTypeSidesheet\n ref={tatGridApiRef}\n transactionType={selectedTransactionType}\n transactionAttachmentType={selectedTransactionAttachmentType}\n isSideSheetOpen={isTransactionAttachmentTypeSidesheetOpen}\n isTransactionAttachmentTypeCreateOrEditSidesheetOpen={\n isCreateOrEditTransactionAttachmentTypeSidesheetOpen\n }\n handleTransactionAttachmentTypeSidesheet={\n handleTransactionAttachmentTypeSidesheet\n }\n handleCreateOrEditTransactionAttachmentTypeSidesheet={\n handleCreateOrEditTransactionAttachmentTypeSidesheet\n }\n handleCreateTransactionAttachmentType={\n handleCreateTransactionAttachmentType\n }\n handleUpdateTransactionAttachmentType={\n handleUpdateTransactionAttachmentType\n }\n handleDeleteTransactionAttachmentType={\n handleOpenDeleteTransactionAttachmentTypeDialog\n }\n />\n <FluentDialog\n open={isDeleteTransactionAttachmentTypeDialogOpen}\n onClose={handleCloseDeleteTransactionAttachmentTypeDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this attachment type?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionAttachmentType}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionAttachmentTypeDialog}\n />\n </>\n );\n};\n\nexport default UdpTransactionTypesPage;\n"],"mappings":"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"}
1
+ {"version":3,"file":"UdpTransactionTypesPage.mjs","names":["React","useCallback","useState","useMemo","useRef","useEffect","useTranslation","makeStyles","LinearProgress","UdpTransactionTypeSidesheet","useCatalogStore","SearchMethodUdpGrid","apiMutate","useAxiosGet","useSnackbar","FluentDialog","getSuccessAction","UdpTransactionTypeStatusSidesheet","UdpTransactionTypeTransactionActionSidesheet","useUser","UdpTransactionUiActionSidesheet","UdpTransactionTypeConfigurationSidesheet","EMPTY_GUID","PropertyTypeEnum","UdpSearchEnums","UdpTransactionAttachmentTypeSidesheet","ConfigService","REQUIRED_COLUMN_DEF_MAPPING","attachments","displayName","actions","transactionId","createdOn","currentStatusId","currentRevisionNo","lastEventTypeId","REQUIRED_COLUMN_DEF_FIELDS","Object","keys","DISABLE_ORDERING_FOR_FIELDS","PAGE_SIZE","baseSearchPayload","pageNumber","pageSize","filterElements","filterGroups","orderElements","groupingType","groupProperty","groupOperationList","eagerLoad","logicalSearchOperator","useStyles","theme","loadingBar","bottom","spacing","marginLeft","marginRight","formatTransactionTypeConfigurationIntoExpressionLogic","configurationObj","CurrentStatus","CurrentDomainValue","TenantUserRoleIds","andConditions","push","var","transactionTypeStatusId","entries","forEach","field","config","isConfigObject","Array","isArray","operator","comparisonValue","value","effectiveOperator","operands","length","some","in","and","UdpTransactionTypesPage","user","t","classes","enqueueSnackbar","closeSnackbar","successAction","gridApiRef","ttsGridApiRef","tttaGridApiRef","tuaGridApiRef","ttcGridApiRef","ttctaGridApiRef","tatGridApiRef","searchObject","setSearchObject","selectedTransactionType","setSelectedTransactionType","isTransactionTypeSideSheetOpen","setIsTransactionTypeSideSheetOpen","isTransactionTypeSidesheetLoading","setIsTransactionTypeSidesheetLoading","isDeleteTransactionTypeDialogOpen","setIsDeleteTransactionTypeDialogOpen","isPageConfigurationSidesheetOpen","setIsPageConfigurationSidesheetOpen","isCalendarViewConfigurationSidesheetOpen","setIsCalendarViewConfigurationSidesheetOpen","selectedDomainName","setSelectedDomainName","isTransactionTypeStatusSidesheetOpen","setIsTransactionTypeStatusSidesheetOpen","isDeleteTransactionTypeStatusDialogOpen","setIsDeleteTransactionTypeStatusDialogOpen","selectedTransactionTypeStatus","setSelectedTransactionTypeStatus","isCreateOrEditTransactionTypeStatusSidesheetOpen","setIsCreateOrEditTransactionTypeStatusSidesheetOpen","ttstatuses","setTTStatuses","isTransactionTypeTransactionActionSidesheetOpen","setIsTransactionTypeTransactionActionSidesheetOpen","selectedTransactionTypeTransactionAction","setSelectedTransactionTypeTransactionAction","isCreateOrEditTransactionTypeTransactionActionSidesheetOpen","setIsCreateOrEditTransactionTypeTransactionActionSidesheetOpen","isDeleteTransactionTypeTransactionActionDialogOpen","setIsDeleteTransactionTypeTransactionActionDialogOpen","tttactions","setTTTActions","isTransactionUiActionSidesheetOpen","setIsTransactionUiActionSidesheetOpen","selectedTransactionUiAction","setSelectedTransactionUiAction","isCreateOrEditTransactionUiActionSidesheetOpen","setIsCreateOrEditTransactionUiActionSidesheetOpen","isDeleteTransactionUiActionDialogOpen","setIsDeleteTransactionUiActionDialogOpen","isTransactionTypeConfigurationSidesheetOpen","setIsTransactionTypeConfigurationSidesheetOpen","selectedTransactionTypeConfiguration","setSelectedTransactionTypeConfiguration","isCreateOrEditTransactionTypeConfigurationSidesheetOpen","setIsCreateOrEditTransactionTypeConfigurationSidesheetOpen","isDeleteTransactionTypeConfigurationDialogOpen","setIsDeleteTransactionTypeConfigurationDialogOpen","isTransactionTypeConfigurationTransactionActionSidesheetOpen","setIsTransactionTypeConfigurationTransactionActionSidesheetOpen","selectedTransactionTypeConfigurationTransactionAction","setSelectedTransactionTypeConfigurationTransactionAction","isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen","setIsCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen","isDeleteTransactionTypeConfigurationTransactionActionDialogOpen","setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen","isTransactionAttachmentTypeSidesheetOpen","setIsTransactionAttachmentTypeSidesheetOpen","selectedTransactionAttachmentType","setSelectedTransactionAttachmentType","isCreateOrEditTransactionAttachmentTypeSidesheetOpen","setIsCreateOrEditTransactionAttachmentTypeSidesheetOpen","isDeleteTransactionAttachmentTypeDialogOpen","setIsDeleteTransactionAttachmentTypeDialogOpen","hasDefaultAndCancelledTransactionTypeStatus","transactionTypeStatuses","checkHasDefault","checkHasCancelledStatus","record","isDefault","isCancelledStatus","postCreateTransactionType","transactionType","productV1ApiUrl","method","data","putUpdateTransactionType","transactionTypeId","deleteTransactionType","transactionsByTransactionTypeId","loading","getTransactionsByTransactionIdLoading","fetchTransactionsByTransactionTypeId","searchField","searchOperator","searchValue","groupId","getAll","postCreateTransactionTypeStatus","transactionTypeStatus","putUpdateTransactionTypeStatus","deleteTransactionTypeStatus","searchTransactionTypeStatusByTransactionTypeId","searchPayload","loadTTStatuses","ttsResponse","status","pageList","transactionActions","actionApis","pages","tenantV1ApiUrl","currentTenantId","postCreateTransactionTypeTransactionAction","transactionTypeTransactionAction","putUpdateTransactionTypeTransactionAction","transactionTypeTransactionActionId","deleteTransactionTypeTransactionAction","searchTransactionTypeTransactionActionByTransactionTypeId","loadTTTActions","tttaResponse","postCreateTransactionUiAction","transactionUiAction","putUpdateTransactionUiAction","transactionUiActionId","deleteTransactionUiAction","tUiActionsList","fetchTUiActionsList","transactionUiActionTypes","postCreateTransactionTypeConfiguration","transactionTypeConfiguration","putUpdateTransactionTypeConfiguration","transactionTypeConfigurationId","deleteTransactionTypeConfiguration","transactionRuleTypes","roles","postCreateTransactionTypeConfigurationTransactionAction","ttcta","putUpdateTransactionTypeConfigurationTransactionAction","transactionTypeConfigurationTransactionAction","deleteTransactionTypeConfigurationTransactionAction","ttctaList","fetchTtctaList","postCreateTransactionAttachmentType","transactionAttachmentType","putUpdateTransactionAttachmentType","transactionAttachmentTypeId","deleteTransactionAttachmentType","currentApiCatalogId","state","catalogObjectNames","integrationV2ApiUrl","domainName","catalogObject","catalogObjectProperties","properties","filter","property","name","map","catalogObjectDateProperties","type","DateTime","handleSideSheet","isOpen","handleTransactionTypeStatusSideSheet","handleCreateOrEditTransactionTypeStatusSideSheet","handleTransactionTypeTransactionActionSidesheet","handleCreateOrEditTransactionTypeTransactionActionSidesheet","handleTransactionUiActionSidesheet","handleCreateOrEditTransactionUiActionSidesheet","handleTransactionTypeConfigurationSidesheet","handleCreateOrEditTransactionTypeConfigurationSidesheet","handleTransactionTypeConfigurationTransactionActionSidesheet","handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet","handleTransactionAttachmentTypeSidesheet","handleCreateOrEditTransactionAttachmentTypeSidesheet","handleCreateTransactionType","formValues","domainFields","restValues","pageConfigurationColumnDefsDict","domainFieldsDict","reduce","accumulator","entry","fieldKey","includes","UdpBusinessDomainPrefix","order","hide","pageConfiguration","gridTitle","createTransactionButtonLabel","hideCreateTransaction","paginationAutoPageSize","hideSaveChanges","columnDefProperties","calendarViewConfiguration","enabled","calendarViewEnabled","isDefaultView","defaultCalendarViewType","domainStartDateProperty","domainEndDateProperty","domainPropertyToDisplay","newTransactionType","response","anchorOrigin","vertical","horizontal","action","current","refreshServerSide","err","title","variant","handleUpdateTransactionType","initialValues","updatedTransactionType","handleDeleteTransactionType","handleCreateTransactionTypeStatus","newTransactionTypeStatus","color","hasDefaultOrCancelledStatus","isCreatingDefaultStatus","isCreatingCancelledStatus","searchTransactionTypeStatusResponse","statusConflictMessage","handleUpdateTransactionTypeStatus","updatedTransactionTypeStatus","hasExistingDefaultOrCancelledStatus","isEditingDefaultStatus","isEditingCancelledStatus","handleDeleteTransactionTypeStatus","handleCreateTransactionTypeTransactionAction","transactionAction","toStatus","actionApiId","pageId","mandatoryFields","hiddenFields","domainDataToUpdate","domainDataDictionary","newTransactionTypeTransactionAction","transactionActionId","parameters","ToStatus","DomainDataToUpdate","MandatoryFields","HiddenFields","ActionApiId","PageId","handleUpdateTransactionTypeTransactionAction","updatedTransactionTypeTransactionAction","description","icon","handleDeleteTransactionTypeTransactionAction","handleCreateTransactionUiAction","transactionUiActionType","actionApi","page","newTransactionUiAction","transactionUiActionTypeId","handleUpdateTransactionUiAction","updatedTransactionUiAction","handleDeleteTransactionUiAction","handleCreateTransactionTypeConfiguration","transactionRuleType","currentStatus","tenantUserRoles","currentDomainValue","tenantUserRoleIds","tur","roleId","expressionLogic","newTransactionTypeConfiguration","transactionRuleTypeId","configuration","CurrentStatusId","handleUpdateTransactionTypeConfiguration","updatedTransactionTypeConfiguration","handleDeleteTransactionTypeConfiguration","handleCreateTransactionTypeConfigurationTransactionAction","transactionTypeTransactionActions","newTTCTActions","handleUpdateTransactionTypeConfigurationTransactionAction","existingTransactionTypeTransactionActionId","updatedTransactionTypeConfigurationTransactionAction","handleDeleteTransactionTypeConfigurationTransactionAction","handleCreateTransactionAttachmentType","newTransactionAttachmentType","handleUpdateTransactionAttachmentType","handleDeleteTransactionAttachmentType","handleOpenDeleteTransactionTypeDialog","handleCloseDeleteTransactionTypeDialog","handleOpenDeleteTransactionTypeStatusDialog","handleCloseDeleteTransactionTypeStatusDialog","handleOpenDeleteTransactionTypeTransactionActionDialog","handleCloseDeleteTransactionTypeTransactionActionDialog","handleOpenDeleteTransactionUiActionDialog","handleCloseDeleteTransactionUiActionDialog","handleOpenDeleteTransactionTypeConfigurationDialog","handleCloseDeleteTransactionTypeConfigurationDialog","handleOpenDeleteTransactionTypeConfigurationTransactionActionDialog","handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog","handleOpenDeleteTransactionAttachmentTypeDialog","handleCloseDeleteTransactionAttachmentTypeDialog","columnDefs","headerName","resizable","sortable","cellDataType","cellRenderer","cellRendererParams","actionList","id","iconName","handleOnClick","e","valueGetter","params","suppressMenu","headerConfig","primaryActionButton","label","onClick","gridFunctions","gridOptions","pagination","handleGridApiCallback","api","searchMethodConfig","requestUrl","customSearchObject"],"sources":["../../../../src/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.jsx"],"sourcesContent":["import React, {\n useCallback,\n useState,\n useMemo,\n useRef,\n useEffect\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { makeStyles } from '@material-ui/core';\nimport { LinearProgress } from '../../../UI/loading/LinearProgress';\nimport UdpTransactionTypeSidesheet from './sidesheets/UdpTransactionTypeSidesheet';\nimport { useCatalogStore } from '../../../stores/catalogStore';\nimport { SearchMethodUdpGrid } from '../../../UI/templates/newGrid';\nimport { apiMutate, useAxiosGet } from '../../../utilities';\nimport { useSnackbar } from 'notistack';\nimport { FluentDialog, getSuccessAction } from '../../../UI';\nimport UdpTransactionTypeStatusSidesheet from './sidesheets/UdpTransactionTypeStatusSidesheet';\nimport UdpTransactionTypeTransactionActionSidesheet from './sidesheets/UdpTransactionTypeTransactionActionSidesheet';\nimport { useUser } from '../../../utilities/auth';\nimport UdpTransactionUiActionSidesheet from './sidesheets/UdpTransactionUiActionSidesheet';\nimport UdpTransactionTypeConfigurationSidesheet from './sidesheets/UdpTransactionTypeConfigurationSidesheet';\nimport { EMPTY_GUID, PropertyTypeEnum, UdpSearchEnums } from '../../../enums';\nimport UdpTransactionAttachmentTypeSidesheet from './sidesheets/UdpTransactionAttachmentTypeSidesheet';\nimport { ConfigService } from '../../../configService';\n\nexport const REQUIRED_COLUMN_DEF_MAPPING = {\n attachments: { displayName: 'Attachments' },\n actions: { displayName: 'Actions' },\n transactionId: { displayName: 'Transaction Id' },\n createdOn: { displayName: 'Created On' },\n currentStatusId: { displayName: 'Current Status' },\n currentRevisionNo: { displayName: 'Revision No' },\n lastEventTypeId: { displayName: 'Last Event Type' }\n};\n\nexport const REQUIRED_COLUMN_DEF_FIELDS = Object.keys(\n REQUIRED_COLUMN_DEF_MAPPING\n);\n\nexport const DISABLE_ORDERING_FOR_FIELDS = ['attachments', 'actions'];\n\nconst PAGE_SIZE = 100;\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\n/**\n * This function formats the 'Configuration' data into a specific format that can be\n * used by the external library jsonLogic. The formatted data is stored in the\n * udp.TransactionTypeConfiguration table in the ExpressionLogic column.\n */\nconst formatTransactionTypeConfigurationIntoExpressionLogic = (\n configurationObj\n) => {\n if (!configurationObj || typeof configurationObj !== 'object') {\n return '';\n }\n\n const { CurrentStatus, CurrentDomainValue, TenantUserRoleIds } =\n configurationObj;\n const andConditions = [];\n\n if (CurrentStatus) {\n andConditions.push({\n '==': [\n { var: 'currentStatusId' },\n // this check ensures that if the 'No Status' option is selected for the currentStatus, then\n // the currentStatusId is stored in expressionLogic with a value of null\n CurrentStatus?.transactionTypeStatusId === EMPTY_GUID\n ? null\n : CurrentStatus?.transactionTypeStatusId\n ]\n });\n }\n\n if (CurrentDomainValue && typeof CurrentDomainValue === 'object') {\n Object.entries(CurrentDomainValue).forEach(([field, config]) => {\n if (!field || !config) {\n return;\n }\n\n const isConfigObject =\n config && typeof config === 'object' && !Array.isArray(config);\n const operator = isConfigObject ? config?.operator : null;\n const comparisonValue = isConfigObject ? config?.value : config;\n const effectiveOperator = operator || '==';\n const operands =\n effectiveOperator === '!' || effectiveOperator === '!!'\n ? [{ var: `currentDomainValue.${field}` }]\n : [{ var: `currentDomainValue.${field}` }, comparisonValue];\n\n andConditions.push({\n [effectiveOperator]: operands\n });\n });\n }\n\n if (Array.isArray(TenantUserRoleIds) && TenantUserRoleIds.length > 0) {\n andConditions.push({\n some: [\n { var: 'tenantUserRoleIds' },\n {\n in: [{ var: '' }, TenantUserRoleIds]\n }\n ]\n });\n }\n\n if (!andConditions.length) {\n return '';\n }\n\n return {\n and: andConditions\n };\n};\n\nconst UdpTransactionTypesPage = () => {\n // Hooks\n const user = useUser();\n const { t } = useTranslation();\n const classes = useStyles();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n // Grid Refs\n const gridApiRef = useRef(null); // TransactionType grid\n const ttsGridApiRef = useRef(null); // TransactionTypeStatus grid\n const tttaGridApiRef = useRef(null); // TransactionTypeTransactionAction grid\n const tuaGridApiRef = useRef(null); // TransactionUiAction grid\n const ttcGridApiRef = useRef(null); // TransactionTypeConfiguration grid\n const ttctaGridApiRef = useRef(null); // TransactionTypeConfigurationTransactionAction grid\n const tatGridApiRef = useRef(null); // TransactionAttachmentType grid\n\n // States\n const [searchObject, setSearchObject] = useState(baseSearchPayload);\n // TransactionType\n const [selectedTransactionType, setSelectedTransactionType] = useState(null);\n const [isTransactionTypeSideSheetOpen, setIsTransactionTypeSideSheetOpen] =\n useState(false);\n const [\n isTransactionTypeSidesheetLoading,\n setIsTransactionTypeSidesheetLoading\n ] = useState(false);\n const [\n isDeleteTransactionTypeDialogOpen,\n setIsDeleteTransactionTypeDialogOpen\n ] = useState(false);\n const [\n isPageConfigurationSidesheetOpen,\n setIsPageConfigurationSidesheetOpen\n ] = useState(false);\n const [\n isCalendarViewConfigurationSidesheetOpen,\n setIsCalendarViewConfigurationSidesheetOpen\n ] = useState(false);\n const [selectedDomainName, setSelectedDomainName] = useState('');\n // TransactionTypeStatus\n const [\n isTransactionTypeStatusSidesheetOpen,\n setIsTransactionTypeStatusSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeStatusDialogOpen,\n setIsDeleteTransactionTypeStatusDialogOpen\n ] = useState(false);\n const [selectedTransactionTypeStatus, setSelectedTransactionTypeStatus] =\n useState(null);\n const [\n isCreateOrEditTransactionTypeStatusSidesheetOpen,\n setIsCreateOrEditTransactionTypeStatusSidesheetOpen\n ] = useState(false);\n const [ttstatuses, setTTStatuses] = useState([]);\n // TransactionTypeTransactionAction\n const [\n isTransactionTypeTransactionActionSidesheetOpen,\n setIsTransactionTypeTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionTypeTransactionAction,\n setSelectedTransactionTypeTransactionAction\n ] = useState(null);\n const [\n isCreateOrEditTransactionTypeTransactionActionSidesheetOpen,\n setIsCreateOrEditTransactionTypeTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeTransactionActionDialogOpen,\n setIsDeleteTransactionTypeTransactionActionDialogOpen\n ] = useState(false);\n const [tttactions, setTTTActions] = useState([]);\n // TransactionUiAction\n const [\n isTransactionUiActionSidesheetOpen,\n setIsTransactionUiActionSidesheetOpen\n ] = useState(false);\n const [selectedTransactionUiAction, setSelectedTransactionUiAction] =\n useState(null);\n const [\n isCreateOrEditTransactionUiActionSidesheetOpen,\n setIsCreateOrEditTransactionUiActionSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionUiActionDialogOpen,\n setIsDeleteTransactionUiActionDialogOpen\n ] = useState(false);\n // TransactionTypeConfiguration\n const [\n isTransactionTypeConfigurationSidesheetOpen,\n setIsTransactionTypeConfigurationSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionTypeConfiguration,\n setSelectedTransactionTypeConfiguration\n ] = useState(null);\n const [\n isCreateOrEditTransactionTypeConfigurationSidesheetOpen,\n setIsCreateOrEditTransactionTypeConfigurationSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeConfigurationDialogOpen,\n setIsDeleteTransactionTypeConfigurationDialogOpen\n ] = useState(false);\n // TransactionTypeConfigurationTransactionAction\n const [\n isTransactionTypeConfigurationTransactionActionSidesheetOpen,\n setIsTransactionTypeConfigurationTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionTypeConfigurationTransactionAction,\n setSelectedTransactionTypeConfigurationTransactionAction\n ] = useState(null);\n const [\n isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen,\n setIsCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionTypeConfigurationTransactionActionDialogOpen,\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen\n ] = useState(false);\n // TransactionAttachmentType\n const [\n isTransactionAttachmentTypeSidesheetOpen,\n setIsTransactionAttachmentTypeSidesheetOpen\n ] = useState(false);\n const [\n selectedTransactionAttachmentType,\n setSelectedTransactionAttachmentType\n ] = useState(null);\n const [\n isCreateOrEditTransactionAttachmentTypeSidesheetOpen,\n setIsCreateOrEditTransactionAttachmentTypeSidesheetOpen\n ] = useState(false);\n const [\n isDeleteTransactionAttachmentTypeDialogOpen,\n setIsDeleteTransactionAttachmentTypeDialogOpen\n ] = useState(false);\n\n const hasDefaultAndCancelledTransactionTypeStatus = useCallback(\n (\n transactionTypeStatuses,\n checkHasDefault = false,\n checkHasCancelledStatus = false\n ) => {\n if (!transactionTypeStatuses) {\n return false;\n }\n return transactionTypeStatuses?.some((record) => {\n if (\n record.transactionTypeStatusId !==\n selectedTransactionTypeStatus?.transactionTypeStatusId\n ) {\n const isDefault = record?.isDefault;\n const isCancelledStatus = record?.isCancelledStatus;\n if (checkHasDefault && isDefault) return true;\n if (checkHasCancelledStatus && isCancelledStatus) return true;\n }\n return false;\n });\n },\n [selectedTransactionTypeStatus]\n );\n\n // API Calls\n /** TransactionType */\n const postCreateTransactionType = async (transactionType) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionType`,\n {\n method: 'POST'\n },\n {\n data: transactionType\n }\n );\n };\n\n const putUpdateTransactionType = async (\n transactionTypeId,\n transactionType\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionType/${transactionTypeId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionType\n }\n );\n };\n\n const deleteTransactionType = async (transactionTypeId) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionType/${transactionTypeId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const [\n {\n data: transactionsByTransactionTypeId,\n loading: getTransactionsByTransactionIdLoading\n },\n fetchTransactionsByTransactionTypeId\n ] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransaction/search`,\n {\n method: 'post',\n data: {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: selectedTransactionType?.transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n }\n },\n !!!selectedTransactionType?.transactionTypeId ||\n !!!isDeleteTransactionTypeDialogOpen,\n false\n );\n\n /** TransactionTypeStatus */\n const postCreateTransactionTypeStatus = async (transactionTypeStatus) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus`,\n {\n method: 'POST'\n },\n {\n data: transactionTypeStatus\n }\n );\n };\n\n const putUpdateTransactionTypeStatus = async (\n transactionTypeStatusId,\n transactionTypeStatus\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus/${transactionTypeStatusId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeStatus\n }\n );\n };\n\n const deleteTransactionTypeStatus = async (transactionTypeStatusId) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus/${transactionTypeStatusId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const searchTransactionTypeStatusByTransactionTypeId = useCallback(\n async (transactionTypeId) => {\n const searchPayload = {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n };\n\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeStatus/search`,\n {\n method: 'POST'\n },\n {\n data: searchPayload\n }\n );\n },\n []\n );\n\n useEffect(() => {\n if (!selectedTransactionType?.transactionTypeId) return;\n const loadTTStatuses = async () => {\n const ttsResponse = await searchTransactionTypeStatusByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (ttsResponse?.status === 200) {\n setTTStatuses(ttsResponse.data?.pageList);\n }\n };\n if (\n isTransactionTypeStatusSidesheetOpen ||\n isTransactionTypeConfigurationSidesheetOpen ||\n isTransactionTypeTransactionActionSidesheetOpen\n ) {\n loadTTStatuses();\n }\n }, [\n searchTransactionTypeStatusByTransactionTypeId,\n //selectedTransactionType?.transactionTypeId, Leaving this out to prevent re-fetching when closing sidesheets\n isTransactionTypeStatusSidesheetOpen,\n isTransactionTypeConfigurationSidesheetOpen,\n isTransactionTypeTransactionActionSidesheetOpen\n ]);\n\n /** TransactionAction */\n const [{ data: transactionActions }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAction`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** ActionApis */\n const [{ data: actionApis }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionWorkflowActionApi`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** PageIds */\n const [{ data: pages }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `Page?tenantId=${user?.currentTenantId}`,\n {\n method: 'GET'\n },\n !!!user?.currentTenantId,\n false\n );\n\n /** TransactionTypeTransactionAction */\n const postCreateTransactionTypeTransactionAction = async (\n transactionTypeTransactionAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction`,\n {\n method: 'POST'\n },\n {\n data: transactionTypeTransactionAction\n }\n );\n };\n\n const putUpdateTransactionTypeTransactionAction = async (\n transactionTypeTransactionActionId,\n transactionTypeTransactionAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction/${transactionTypeTransactionActionId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeTransactionAction\n }\n );\n };\n\n const deleteTransactionTypeTransactionAction = async (\n transactionTypeTransactionActionId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction/${transactionTypeTransactionActionId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const searchTransactionTypeTransactionActionByTransactionTypeId = useCallback(\n async (transactionTypeId) => {\n const searchPayload = {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n };\n\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeTransactionAction/search`,\n {\n method: 'POST'\n },\n {\n data: searchPayload\n }\n );\n },\n []\n );\n\n useEffect(() => {\n if (!selectedTransactionType?.transactionTypeId) return;\n const loadTTTActions = async () => {\n const tttaResponse =\n await searchTransactionTypeTransactionActionByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (tttaResponse?.status === 200) {\n setTTTActions(tttaResponse.data?.pageList);\n }\n };\n if (isTransactionTypeConfigurationTransactionActionSidesheetOpen) {\n loadTTTActions();\n }\n }, [\n searchTransactionTypeTransactionActionByTransactionTypeId,\n isTransactionTypeConfigurationTransactionActionSidesheetOpen\n //selectedTransactionType?.transactionTypeId, Leaving this out to prevent re-fetching when closing sidesheets\n ]);\n\n /** TransactionUiAction */\n const postCreateTransactionUiAction = async (transactionUiAction) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction`,\n {\n method: 'POST'\n },\n {\n data: transactionUiAction\n }\n );\n };\n\n const putUpdateTransactionUiAction = async (\n transactionUiActionId,\n transactionUiAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction/${transactionUiActionId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionUiAction\n }\n );\n };\n\n const deleteTransactionUiAction = async (transactionUiActionId) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction/${transactionUiActionId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const [{ data: tUiActionsList }, fetchTUiActionsList] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiAction/search`,\n {\n method: 'post',\n data: {\n filterElements: [\n {\n searchField: 'TransactionTypeId',\n searchOperator: '=',\n searchValue: selectedTransactionType?.transactionTypeId,\n groupId: 1\n }\n ],\n getAll: true\n }\n },\n !!!isTransactionUiActionSidesheetOpen,\n false\n );\n\n /** TransactionUiActionType */\n const [{ data: transactionUiActionTypes }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionUiActionType`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** TransactionTypeConfiguration */\n const postCreateTransactionTypeConfiguration = async (\n transactionTypeConfiguration\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfiguration`,\n {\n method: 'POST'\n },\n {\n data: transactionTypeConfiguration\n }\n );\n };\n\n const putUpdateTransactionTypeConfiguration = async (\n transactionTypeConfigurationId,\n transactionTypeConfiguration\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfiguration/${transactionTypeConfigurationId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeConfiguration\n }\n );\n };\n\n const deleteTransactionTypeConfiguration = async (\n transactionTypeConfigurationId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfiguration/${transactionTypeConfigurationId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n /** TransactionRuleType */\n const [{ data: transactionRuleTypes }] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionRuleType`,\n {\n method: 'GET'\n },\n false,\n false\n );\n\n /** Roles */\n const [{ data: roles }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `Roles?tenantId=${user?.currentTenantId}`,\n {\n method: 'GET'\n },\n !!!user?.currentTenantId,\n false\n );\n\n /** TransactionTypeConfigurationTransactionAction */\n const postCreateTransactionTypeConfigurationTransactionAction = async (\n ttcta\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/createBulk`,\n {\n method: 'POST'\n },\n {\n data: ttcta\n }\n );\n };\n\n const putUpdateTransactionTypeConfigurationTransactionAction = async (\n transactionTypeConfigurationId,\n transactionTypeTransactionActionId,\n transactionTypeConfigurationTransactionAction\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/${transactionTypeConfigurationId}/${transactionTypeTransactionActionId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionTypeConfigurationTransactionAction\n }\n );\n };\n\n const deleteTransactionTypeConfigurationTransactionAction = async (\n transactionTypeConfigurationId,\n transactionTypeTransactionActionId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/${transactionTypeConfigurationId}/${transactionTypeTransactionActionId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const [{ data: ttctaList }, fetchTtctaList] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpTransactionTypeConfigurationTransactionAction/search`,\n {\n method: 'post',\n data: {\n filterElements: [\n {\n searchField: 'TransactionTypeConfigurationId',\n searchOperator: '=',\n searchValue:\n selectedTransactionTypeConfiguration?.transactionTypeConfigurationId,\n groupId: 1\n }\n ],\n getAll: true\n }\n },\n !!!selectedTransactionTypeConfiguration?.transactionTypeConfigurationId,\n false\n );\n\n /** TransactionAttachmenType */\n const postCreateTransactionAttachmentType = async (\n transactionAttachmentType\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachmentType`,\n {\n method: 'POST'\n },\n {\n data: transactionAttachmentType\n }\n );\n };\n\n const putUpdateTransactionAttachmentType = async (\n transactionAttachmentTypeId,\n transactionAttachmentType\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachmentType/${transactionAttachmentTypeId}`,\n {\n method: 'PUT'\n },\n {\n data: transactionAttachmentType\n }\n );\n };\n\n const deleteTransactionAttachmentType = async (\n transactionAttachmentTypeId\n ) => {\n return await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpTransactionAttachmentType/${transactionAttachmentTypeId}`,\n {\n method: 'DELETE'\n }\n );\n };\n\n const currentApiCatalogId = useCatalogStore(\n (state) => state.currentApiCatalogId\n );\n\n const [{ data: catalogObjectNames }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `apiCatalog/${currentApiCatalogId}/catalogObjectNames?modelsOnly=true`,\n {},\n !!!currentApiCatalogId,\n false\n );\n\n const domainName = selectedDomainName || selectedTransactionType?.domainName;\n\n const [{ data: catalogObject }] = useAxiosGet(\n ConfigService.integrationV2ApiUrl,\n `apiCatalog/${currentApiCatalogId}/catalogObject/${domainName}`,\n {},\n !!!currentApiCatalogId || !!!domainName,\n false\n );\n\n // Get the list of properties for the selected domain name (i.e. catalogObjectName)\n const catalogObjectProperties = useMemo(() => {\n if (!selectedDomainName || !catalogObject?.properties) return [];\n return catalogObject.properties\n .filter(\n (property) =>\n property.name !== 'businessObjectKey' && property.name !== null\n )\n .map((property) => property.name);\n }, [catalogObject, selectedDomainName]);\n\n const catalogObjectDateProperties = useMemo(() => {\n if (!selectedDomainName || !catalogObject?.properties) return [];\n return catalogObject.properties\n .filter(\n (property) =>\n property.name !== 'businessObjectKey' &&\n property.name !== null &&\n property.type === PropertyTypeEnum.DateTime\n )\n .map((property) => property.name);\n }, [catalogObject, selectedDomainName]);\n\n /** Sidesheet handlers */\n const handleSideSheet = useCallback((isOpen, transactionType) => {\n setIsTransactionTypeSideSheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n }, []);\n\n const handleTransactionTypeStatusSideSheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionTypeStatusSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionTypeStatusSideSheet = useCallback(\n (isOpen, transactionTypeStatus) => {\n setIsCreateOrEditTransactionTypeStatusSidesheetOpen(isOpen);\n setSelectedTransactionTypeStatus(transactionTypeStatus);\n },\n []\n );\n\n const handleTransactionTypeTransactionActionSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionTypeTransactionActionSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionTypeTransactionActionSidesheet =\n useCallback((isOpen, transactionTypeTransactionAction) => {\n setIsCreateOrEditTransactionTypeTransactionActionSidesheetOpen(isOpen);\n setSelectedTransactionTypeTransactionAction(\n transactionTypeTransactionAction\n );\n }, []);\n\n const handleTransactionUiActionSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionUiActionSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionUiActionSidesheet = useCallback(\n (isOpen, transactionUiAction) => {\n setIsCreateOrEditTransactionUiActionSidesheetOpen(isOpen);\n setSelectedTransactionUiAction(transactionUiAction);\n },\n []\n );\n\n const handleTransactionTypeConfigurationSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionTypeConfigurationSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionTypeConfigurationSidesheet = useCallback(\n (isOpen, transactionTypeConfiguration) => {\n setIsCreateOrEditTransactionTypeConfigurationSidesheetOpen(isOpen);\n setSelectedTransactionTypeConfiguration(transactionTypeConfiguration);\n },\n []\n );\n\n const handleTransactionTypeConfigurationTransactionActionSidesheet =\n useCallback((isOpen, transactionTypeConfiguration) => {\n setIsTransactionTypeConfigurationTransactionActionSidesheetOpen(isOpen);\n setSelectedTransactionTypeConfiguration(transactionTypeConfiguration);\n }, []);\n\n const handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet =\n useCallback((isOpen, transactionTypeConfigurationTransactionAction) => {\n setIsCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen(\n isOpen\n );\n setSelectedTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationTransactionAction\n );\n }, []);\n\n const handleTransactionAttachmentTypeSidesheet = useCallback(\n (isOpen, transactionType) => {\n setIsTransactionAttachmentTypeSidesheetOpen(isOpen);\n setSelectedTransactionType(transactionType);\n },\n []\n );\n\n const handleCreateOrEditTransactionAttachmentTypeSidesheet = useCallback(\n (isOpen, transactionAttachmentType) => {\n setIsCreateOrEditTransactionAttachmentTypeSidesheetOpen(isOpen);\n setSelectedTransactionAttachmentType(transactionAttachmentType);\n },\n []\n );\n\n // API call handlers\n /** TransactionType */\n const handleCreateTransactionType = useCallback(\n async (formValues) => {\n const { domainFields, ...restValues } = formValues;\n\n const { pageConfigurationColumnDefsDict, domainFieldsDict } = (\n Array.isArray(domainFields) ? domainFields : []\n ).reduce(\n (accumulator, entry) => {\n if (!entry || !entry[0]) {\n return accumulator;\n }\n\n const field = entry[0];\n let fieldKey = field;\n // Add a prefix, _UdpBusinessDomain_, to the non-custom, non-required/Transaction domain fields, e.g. ones that were selected from catalogObjectProperties\n if (catalogObjectProperties.includes(fieldKey)) {\n fieldKey = `${UdpSearchEnums.UdpBusinessDomainPrefix}_${fieldKey}`;\n }\n const config = entry[1] || {};\n\n const displayName = config.displayName || field;\n const order = config.order || 0;\n const hide = config.hide || false;\n\n // Always add to the PageConfiguration\n accumulator.pageConfigurationColumnDefsDict[fieldKey] = {\n displayName,\n order,\n hide\n };\n\n // Conditionally add to DomainFields (excludes the required Transaction/Additional fields)\n if (!REQUIRED_COLUMN_DEF_FIELDS.includes(field)) {\n accumulator.domainFieldsDict[field] = {\n displayName,\n order,\n hide\n };\n }\n\n return accumulator;\n },\n { pageConfigurationColumnDefsDict: {}, domainFieldsDict: {} }\n );\n\n const pageConfiguration = {\n gridTitle: restValues?.gridTitle || '',\n createTransactionButtonLabel:\n restValues?.createTransactionButtonLabel || '',\n hideCreateTransaction: restValues?.hideCreateTransaction,\n paginationAutoPageSize: restValues?.paginationAutoPageSize,\n hideSaveChanges: restValues?.hideSaveChanges,\n columnDefProperties: pageConfigurationColumnDefsDict,\n calendarViewConfiguration: {\n enabled: !!restValues?.calendarViewEnabled,\n isDefaultView:\n !!restValues?.calendarViewEnabled && !!restValues?.isDefaultView,\n defaultCalendarViewType:\n restValues?.defaultCalendarViewType || '',\n domainStartDateProperty:\n restValues?.domainStartDateProperty || '',\n domainEndDateProperty: restValues?.domainEndDateProperty || '',\n domainPropertyToDisplay:\n restValues?.domainPropertyToDisplay || ''\n }\n };\n\n const newTransactionType = {\n ...restValues,\n domainFields: domainFieldsDict,\n pageConfiguration: pageConfiguration\n };\n\n try {\n const response = await postCreateTransactionType(newTransactionType);\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionType created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleSideSheet(false);\n setSelectedDomainName('');\n gridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n catalogObjectProperties,\n enqueueSnackbar,\n handleSideSheet,\n successAction,\n t\n ]\n );\n\n const handleUpdateTransactionType = useCallback(\n async (formValues, initialValues) => {\n const { domainFields, ...restValues } = formValues;\n const transactionTypeId = initialValues.transactionTypeId;\n\n const { pageConfigurationColumnDefsDict, domainFieldsDict } = (\n Array.isArray(domainFields) ? domainFields : []\n ).reduce(\n (accumulator, entry) => {\n if (!entry || !entry[0]) {\n return accumulator;\n }\n\n const field = entry[0];\n let fieldKey = field;\n // Add a prefix, _UdpBusinessDomain_, to the non-custom, non-required/Transaction domain fields, e.g. ones that were selected from catalogObjectProperties\n if (catalogObjectProperties.includes(fieldKey)) {\n fieldKey = `${UdpSearchEnums.UdpBusinessDomainPrefix}_${fieldKey}`;\n }\n const config = entry[1] || {};\n\n const displayName = config.displayName || field;\n const order = config.order || 0;\n const hide = config.hide || false;\n\n // Always add to the PageConfiguration\n accumulator.pageConfigurationColumnDefsDict[fieldKey] = {\n displayName,\n order,\n hide\n };\n\n // Conditionally add to DomainFields (excludes the required Transaction fields)\n if (!REQUIRED_COLUMN_DEF_FIELDS.includes(field)) {\n accumulator.domainFieldsDict[field] = {\n displayName,\n order,\n hide\n };\n }\n\n return accumulator;\n },\n { pageConfigurationColumnDefsDict: {}, domainFieldsDict: {} }\n );\n\n const pageConfiguration = {\n gridTitle: restValues?.gridTitle || '',\n createTransactionButtonLabel:\n restValues?.createTransactionButtonLabel || '',\n hideCreateTransaction: restValues?.hideCreateTransaction,\n paginationAutoPageSize: restValues?.paginationAutoPageSize,\n hideSaveChanges: restValues?.hideSaveChanges,\n columnDefProperties: pageConfigurationColumnDefsDict,\n calendarViewConfiguration: {\n enabled: !!restValues?.calendarViewEnabled,\n isDefaultView:\n !!restValues?.calendarViewEnabled && !!restValues?.isDefaultView,\n defaultCalendarViewType:\n restValues?.defaultCalendarViewType || '',\n domainStartDateProperty:\n restValues?.domainStartDateProperty || '',\n domainEndDateProperty: restValues?.domainEndDateProperty || '',\n domainPropertyToDisplay:\n restValues?.domainPropertyToDisplay || ''\n }\n };\n\n const updatedTransactionType = {\n ...initialValues,\n ...formValues,\n domainFields: domainFieldsDict,\n pageConfiguration: pageConfiguration\n };\n\n try {\n const response = await putUpdateTransactionType(\n transactionTypeId,\n updatedTransactionType\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionType updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleSideSheet(false);\n setSelectedDomainName('');\n gridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n catalogObjectProperties,\n enqueueSnackbar,\n handleSideSheet,\n successAction,\n t\n ]\n );\n\n const handleDeleteTransactionType = useCallback(async () => {\n if (!selectedTransactionType) return;\n\n setIsTransactionTypeSidesheetLoading(true);\n const transactionTypeId = selectedTransactionType.transactionTypeId;\n\n try {\n const response = await deleteTransactionType(transactionTypeId);\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionType deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionTypeDialogOpen(false);\n gridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n } finally {\n setIsTransactionTypeSidesheetLoading(false);\n }\n }, [\n enqueueSnackbar,\n selectedTransactionType,\n successAction,\n t,\n setIsTransactionTypeSidesheetLoading,\n setIsDeleteTransactionTypeDialogOpen\n ]);\n /** end of TransactionType */\n\n /** TransactionTypeStatus */\n const handleCreateTransactionTypeStatus = useCallback(\n async (formValues) => {\n const newTransactionTypeStatus = {\n ...formValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n color: formValues?.color?.value || null\n };\n let hasDefaultOrCancelledStatus = false;\n\n try {\n const isCreatingDefaultStatus = formValues?.isDefault === true;\n const isCreatingCancelledStatus =\n formValues?.isCancelledStatus === true;\n if (isCreatingDefaultStatus || isCreatingCancelledStatus) {\n const searchTransactionTypeStatusResponse =\n await searchTransactionTypeStatusByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (searchTransactionTypeStatusResponse?.status !== 200) {\n enqueueSnackbar(\n t(\n 'Unable to validate existing TransactionTypeStatus records. Please try again.'\n ),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n hasDefaultOrCancelledStatus =\n hasDefaultAndCancelledTransactionTypeStatus(\n searchTransactionTypeStatusResponse?.data?.pageList,\n isCreatingDefaultStatus,\n isCreatingCancelledStatus\n );\n }\n\n if (\n (isCreatingDefaultStatus || isCreatingCancelledStatus) &&\n hasDefaultOrCancelledStatus\n ) {\n let statusConflictMessage = '';\n if (isCreatingDefaultStatus) {\n statusConflictMessage =\n 'There is already a TransactionTypeStatus for this TransactionType that has IsDefault set to true.';\n } else if (isCreatingCancelledStatus) {\n statusConflictMessage =\n 'There is already a TransactionTypeStatus for this TransactionType that has IsCancelledStatus set to true.';\n }\n enqueueSnackbar(t(statusConflictMessage), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n return;\n }\n const response = await postCreateTransactionTypeStatus(\n newTransactionTypeStatus\n );\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionTypeStatus created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionTypeStatusSideSheet(false);\n ttsGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response?.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttsGridApiRef,\n handleCreateOrEditTransactionTypeStatusSideSheet,\n successAction,\n t,\n selectedTransactionType,\n searchTransactionTypeStatusByTransactionTypeId,\n hasDefaultAndCancelledTransactionTypeStatus\n ]\n );\n\n const handleUpdateTransactionTypeStatus = useCallback(\n async (formValues, initialValues) => {\n const transactionTypeStatusId = initialValues.transactionTypeStatusId;\n const updatedTransactionTypeStatus = {\n ...initialValues,\n ...formValues,\n color: formValues?.color?.value || null\n };\n let hasExistingDefaultOrCancelledStatus = false;\n\n try {\n const isEditingDefaultStatus = formValues?.isDefault === true;\n const isEditingCancelledStatus = formValues?.isCancelledStatus === true;\n if (isEditingDefaultStatus || isEditingCancelledStatus) {\n const searchTransactionTypeStatusResponse =\n await searchTransactionTypeStatusByTransactionTypeId(\n selectedTransactionType?.transactionTypeId\n );\n if (searchTransactionTypeStatusResponse?.status !== 200) {\n enqueueSnackbar(\n t(\n 'Unable to validate existing TransactionTypeStatus records. Please try again.'\n ),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n hasExistingDefaultOrCancelledStatus =\n hasDefaultAndCancelledTransactionTypeStatus(\n searchTransactionTypeStatusResponse?.data?.pageList,\n isEditingDefaultStatus,\n isEditingCancelledStatus\n );\n }\n\n if (\n (isEditingDefaultStatus || isEditingCancelledStatus) &&\n hasExistingDefaultOrCancelledStatus\n ) {\n enqueueSnackbar(\n t(`There is already a TransactionTypeStatus for this TransactionType that has\n ${\n isEditingDefaultStatus\n ? isEditingCancelledStatus\n ? 'IsDefault and/or IsCancelledStatus'\n : 'IsDefault'\n : 'IsCancelledStatus'\n } set to true.`),\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n return;\n }\n const response = await putUpdateTransactionTypeStatus(\n transactionTypeStatusId,\n updatedTransactionTypeStatus\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionTypeStatus updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionTypeStatusSideSheet(false);\n ttsGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response?.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttsGridApiRef,\n handleCreateOrEditTransactionTypeStatusSideSheet,\n successAction,\n t,\n searchTransactionTypeStatusByTransactionTypeId,\n hasDefaultAndCancelledTransactionTypeStatus,\n selectedTransactionType\n ]\n );\n\n const handleDeleteTransactionTypeStatus = useCallback(async () => {\n if (!selectedTransactionTypeStatus) return;\n\n const transactionTypeStatusId =\n selectedTransactionTypeStatus.transactionTypeStatusId;\n\n try {\n const response = await deleteTransactionTypeStatus(\n transactionTypeStatusId\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionTypeStatus deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionTypeStatusDialogOpen(false);\n ttsGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionTypeStatus,\n successAction,\n t,\n ttsGridApiRef,\n setIsDeleteTransactionTypeStatusDialogOpen\n ]);\n /** end of TransactionTypeStatus */\n\n /** TransactionTypeTransactionAction */\n const handleCreateTransactionTypeTransactionAction = useCallback(\n async (formValues) => {\n const {\n transactionAction,\n toStatus,\n actionApiId,\n pageId,\n mandatoryFields,\n hiddenFields,\n domainDataToUpdate,\n ...restValues\n } = formValues || {};\n\n const domainDataDictionary = (\n Array.isArray(domainDataToUpdate) ? domainDataToUpdate : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const [field, value] = entry;\n if (field) {\n accumulator[field] = value;\n }\n\n return accumulator;\n }, {});\n\n const newTransactionTypeTransactionAction = {\n ...restValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionActionId: transactionAction?.transactionActionId,\n parameters: {\n ToStatus: toStatus?.transactionTypeStatusId,\n DomainDataToUpdate: domainDataDictionary,\n MandatoryFields: Array.isArray(mandatoryFields)\n ? mandatoryFields\n : [],\n HiddenFields: Array.isArray(hiddenFields) ? hiddenFields : [],\n ActionApiId: actionApiId?.actionApiId || '',\n PageId: pageId?.pageId || ''\n }\n };\n\n try {\n const response = await postCreateTransactionTypeTransactionAction(\n newTransactionTypeTransactionAction\n );\n if (response?.status === 201) {\n enqueueSnackbar(\n t('TransactionTypeTransactionAction created successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeTransactionActionSidesheet(false);\n tttaGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tttaGridApiRef,\n handleCreateOrEditTransactionTypeTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleUpdateTransactionTypeTransactionAction = useCallback(\n async (formValues, initialValues) => {\n const {\n transactionAction,\n toStatus,\n actionApiId,\n pageId,\n mandatoryFields,\n hiddenFields,\n domainDataToUpdate\n } = formValues || {};\n\n const transactionTypeTransactionActionId =\n initialValues.transactionTypeTransactionActionId;\n // Process the domainDataToUpdate array form data into an object\n const domainDataDictionary = (\n Array.isArray(domainDataToUpdate) ? domainDataToUpdate : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const [field, value] = entry;\n if (field) {\n accumulator[field] = value;\n }\n\n return accumulator;\n }, {});\n\n const updatedTransactionTypeTransactionAction = {\n ...initialValues,\n name: formValues?.name || '',\n description: formValues?.description || '',\n icon: formValues?.icon || '',\n transactionTypeTransactionActionId: transactionTypeTransactionActionId,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionActionId: transactionAction?.transactionActionId,\n parameters: {\n ToStatus: toStatus?.transactionTypeStatusId,\n DomainDataToUpdate: domainDataDictionary,\n MandatoryFields: Array.isArray(mandatoryFields)\n ? mandatoryFields\n : [],\n HiddenFields: Array.isArray(hiddenFields) ? hiddenFields : [],\n ActionApiId: actionApiId?.actionApiId || '',\n PageId: pageId?.pageId || ''\n }\n };\n\n try {\n const response = await putUpdateTransactionTypeTransactionAction(\n transactionTypeTransactionActionId,\n updatedTransactionTypeTransactionAction\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeTransactionAction updated successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeTransactionActionSidesheet(false);\n tttaGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tttaGridApiRef,\n handleCreateOrEditTransactionTypeTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleDeleteTransactionTypeTransactionAction = useCallback(async () => {\n if (!selectedTransactionTypeTransactionAction) return;\n\n const transactionTypeTransactionActionId =\n selectedTransactionTypeTransactionAction.transactionTypeTransactionActionId;\n\n try {\n const response = await deleteTransactionTypeTransactionAction(\n transactionTypeTransactionActionId\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeTransactionAction deleted successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n setIsDeleteTransactionTypeTransactionActionDialogOpen(false);\n tttaGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionTypeTransactionAction,\n successAction,\n t,\n setIsDeleteTransactionTypeTransactionActionDialogOpen\n ]);\n /** end of TransactionTypeTransactionAction */\n\n /** TransactionUiAction */\n const handleCreateTransactionUiAction = useCallback(\n async (formValues) => {\n const { transactionUiActionType, actionApi, page, ...restValues } =\n formValues;\n\n const newTransactionUiAction = {\n ...restValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionUiActionTypeId:\n transactionUiActionType?.transactionUiActionTypeId,\n parameters: {\n ActionApiId: actionApi?.actionApiId || '',\n PageId: page?.pageId || ''\n }\n };\n\n try {\n const response = await postCreateTransactionUiAction(\n newTransactionUiAction\n );\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionUiAction created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionUiActionSidesheet(false);\n tuaGridApiRef.current?.refreshServerSide();\n fetchTUiActionsList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tuaGridApiRef,\n handleCreateOrEditTransactionUiActionSidesheet,\n successAction,\n t,\n selectedTransactionType,\n fetchTUiActionsList\n ]\n );\n\n const handleUpdateTransactionUiAction = useCallback(\n async (formValues, initialValues) => {\n const { transactionUiActionType, actionApi, page, ...restValues } =\n formValues;\n const transactionUiActionId = initialValues.transactionUiActionId;\n\n const updatedTransactionUiAction = {\n ...restValues,\n transactionUiActionId: transactionUiActionId,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionUiActionTypeId:\n transactionUiActionType?.transactionUiActionTypeId,\n parameters: {\n ActionApiId: actionApi?.actionApiId || '',\n PageId: page?.pageId || ''\n }\n };\n\n try {\n const response = await putUpdateTransactionUiAction(\n transactionUiActionId,\n updatedTransactionUiAction\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionUiAction updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionUiActionSidesheet(false);\n tuaGridApiRef.current?.refreshServerSide();\n fetchTUiActionsList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tuaGridApiRef,\n handleCreateOrEditTransactionUiActionSidesheet,\n successAction,\n t,\n selectedTransactionType,\n fetchTUiActionsList\n ]\n );\n\n const handleDeleteTransactionUiAction = useCallback(async () => {\n if (!selectedTransactionUiAction) return;\n\n const transactionUiActionId =\n selectedTransactionUiAction.transactionUiActionId;\n\n try {\n const response = await deleteTransactionUiAction(transactionUiActionId);\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionUiAction deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionUiActionDialogOpen(false);\n tuaGridApiRef.current?.refreshServerSide();\n fetchTUiActionsList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionUiAction,\n successAction,\n t,\n setIsDeleteTransactionUiActionDialogOpen,\n fetchTUiActionsList\n ]);\n /** end of TransactionUiAction */\n\n /** TransactionTypeConfiguration */\n const handleCreateTransactionTypeConfiguration = useCallback(\n async (formValues) => {\n const {\n transactionRuleType,\n currentStatus,\n tenantUserRoles,\n currentDomainValue,\n ...restValues\n } = formValues;\n\n const domainDataDictionary = (\n Array.isArray(currentDomainValue) ? currentDomainValue : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const field = entry[0];\n const value = entry[1].value;\n const operator = entry[1]?.operator?.value;\n if (field) {\n accumulator[field] = {\n value: value,\n operator: operator\n };\n }\n\n return accumulator;\n }, {});\n\n const tenantUserRoleIds = tenantUserRoles?.map((tur) => tur?.roleId);\n const configurationObj = {\n CurrentStatus: currentStatus,\n CurrentDomainValue: domainDataDictionary,\n TenantUserRoleIds: Array.isArray(tenantUserRoleIds)\n ? tenantUserRoleIds\n : []\n };\n const expressionLogic =\n formatTransactionTypeConfigurationIntoExpressionLogic(configurationObj);\n const newTransactionTypeConfiguration = {\n ...restValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionRuleTypeId: transactionRuleType?.transactionRuleTypeId,\n configuration: {\n ...configurationObj,\n CurrentStatusId: currentStatus?.transactionTypeStatusId\n },\n expressionLogic\n };\n\n try {\n const response = await postCreateTransactionTypeConfiguration(\n newTransactionTypeConfiguration\n );\n if (response?.status === 201) {\n enqueueSnackbar(\n t('TransactionTypeConfiguration created successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationSidesheet(false);\n ttcGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttcGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleUpdateTransactionTypeConfiguration = useCallback(\n async (formValues, initialValues) => {\n const {\n transactionRuleType,\n currentStatus,\n tenantUserRoles,\n currentDomainValue,\n name,\n ...restValues\n } = formValues;\n const transactionTypeConfigurationId =\n initialValues.transactionTypeConfigurationId;\n\n const domainDataDictionary = (\n Array.isArray(currentDomainValue) ? currentDomainValue : []\n ).reduce((accumulator, entry) => {\n if (!entry) {\n return accumulator;\n }\n\n const field = entry[0];\n const value = entry[1].value;\n const operator = entry[1]?.operator?.value;\n if (field) {\n accumulator[field] = {\n value: value,\n operator: operator\n };\n }\n\n return accumulator;\n }, {});\n\n const tenantUserRoleIds = tenantUserRoles?.map((tur) => tur?.roleId);\n const configurationObj = {\n CurrentStatus: currentStatus,\n CurrentDomainValue: domainDataDictionary,\n TenantUserRoleIds: Array.isArray(tenantUserRoleIds)\n ? tenantUserRoleIds\n : []\n };\n const expressionLogic =\n formatTransactionTypeConfigurationIntoExpressionLogic(configurationObj);\n const updatedTransactionTypeConfiguration = {\n ...initialValues,\n name: name || '',\n order: formValues?.order || 0,\n enabled: formValues?.enabled,\n transactionTypeConfigurationId: transactionTypeConfigurationId,\n transactionTypeId: selectedTransactionType?.transactionTypeId,\n transactionRuleTypeId: transactionRuleType?.transactionRuleTypeId,\n configuration: {\n ...configurationObj,\n CurrentStatusId: currentStatus?.transactionTypeStatusId\n },\n expressionLogic\n };\n\n try {\n const response = await putUpdateTransactionTypeConfiguration(\n transactionTypeConfigurationId,\n updatedTransactionTypeConfiguration\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeConfiguration updated successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationSidesheet(false);\n ttcGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttcGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationSidesheet,\n successAction,\n t,\n selectedTransactionType\n ]\n );\n\n const handleDeleteTransactionTypeConfiguration = useCallback(async () => {\n if (!selectedTransactionTypeConfiguration) return;\n\n const transactionTypeConfigurationId =\n selectedTransactionTypeConfiguration.transactionTypeConfigurationId;\n\n try {\n const response = await deleteTransactionTypeConfiguration(\n transactionTypeConfigurationId\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t('TransactionTypeConfiguration deleted successfully'),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n setIsDeleteTransactionTypeConfigurationDialogOpen(false);\n ttcGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionTypeConfiguration,\n successAction,\n t,\n setIsDeleteTransactionTypeConfigurationDialogOpen\n ]);\n /** end of TransactionTypeConfiguration */\n\n /** TransactionTypeConfigurationTransactionAction */\n const handleCreateTransactionTypeConfigurationTransactionAction = useCallback(\n async (formValues) => {\n const { transactionTypeTransactionActions } = formValues;\n\n const newTTCTActions = [];\n\n transactionTypeTransactionActions?.forEach((action) => {\n newTTCTActions.push({\n transactionTypeConfigurationId:\n selectedTransactionTypeConfiguration?.transactionTypeConfigurationId,\n transactionTypeTransactionActionId:\n action?.transactionTypeTransactionActionId\n });\n });\n\n try {\n const response =\n await postCreateTransactionTypeConfigurationTransactionAction(\n newTTCTActions\n );\n if (response?.status === 201) {\n enqueueSnackbar(\n t(\n 'TransactionTypeConfigurationTransactionAction(s) created successfully'\n ),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet(\n false\n );\n ttctaGridApiRef.current?.refreshServerSide();\n fetchTtctaList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttctaGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionTypeConfiguration,\n fetchTtctaList\n ]\n );\n\n const handleUpdateTransactionTypeConfigurationTransactionAction = useCallback(\n async (formValues, initialValues) => {\n const { transactionTypeTransactionActions } = formValues;\n const transactionTypeConfigurationId =\n selectedTransactionTypeConfiguration?.transactionTypeConfigurationId;\n const existingTransactionTypeTransactionActionId =\n initialValues?.transactionTypeTransactionActionId;\n\n const updatedTransactionTypeConfigurationTransactionAction = {\n transactionTypeConfigurationId: transactionTypeConfigurationId,\n transactionTypeTransactionActionId:\n transactionTypeTransactionActions?.[0]\n ?.transactionTypeTransactionActionId\n };\n\n try {\n const response =\n await putUpdateTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationId,\n existingTransactionTypeTransactionActionId,\n updatedTransactionTypeConfigurationTransactionAction\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t(\n 'TransactionTypeConfigurationTransactionAction updated successfully'\n ),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet(\n false\n );\n ttctaGridApiRef.current?.refreshServerSide();\n fetchTtctaList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n ttctaGridApiRef,\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet,\n successAction,\n t,\n selectedTransactionTypeConfiguration,\n fetchTtctaList\n ]\n );\n\n const handleDeleteTransactionTypeConfigurationTransactionAction =\n useCallback(async () => {\n if (!selectedTransactionTypeConfigurationTransactionAction) return;\n\n const transactionTypeConfigurationId =\n selectedTransactionTypeConfigurationTransactionAction?.transactionTypeConfigurationId;\n const transactionTypeTransactionActionId =\n selectedTransactionTypeConfigurationTransactionAction?.transactionTypeTransactionActionId;\n\n try {\n const response =\n await deleteTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationId,\n transactionTypeTransactionActionId\n );\n if (response.status === 204) {\n enqueueSnackbar(\n t(\n 'TransactionTypeConfigurationTransactionAction deleted successfully'\n ),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen(\n false\n );\n ttctaGridApiRef.current?.refreshServerSide();\n fetchTtctaList();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n ttctaGridApiRef,\n enqueueSnackbar,\n selectedTransactionTypeConfigurationTransactionAction,\n successAction,\n t,\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen,\n fetchTtctaList\n ]);\n /** end of TransactionTypeConfigurationTransactionAction */\n\n /** TransactionAttachmentType */\n const handleCreateTransactionAttachmentType = useCallback(\n async (formValues) => {\n const newTransactionAttachmentType = {\n ...formValues,\n transactionTypeId: selectedTransactionType?.transactionTypeId\n };\n\n try {\n const response = await postCreateTransactionAttachmentType(\n newTransactionAttachmentType\n );\n if (response?.status === 201) {\n enqueueSnackbar(t('TransactionAttachmentType created successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionAttachmentTypeSidesheet(false);\n tatGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [\n enqueueSnackbar,\n tatGridApiRef,\n successAction,\n t,\n selectedTransactionType,\n handleCreateOrEditTransactionAttachmentTypeSidesheet\n ]\n );\n\n const handleUpdateTransactionAttachmentType = useCallback(\n async (formValues, initialValues) => {\n const transactionTypeId = selectedTransactionType?.transactionTypeId;\n const transactionAttachmentTypeId =\n selectedTransactionAttachmentType?.transactionAttachmentTypeId;\n const updatedTransactionType = {\n ...initialValues,\n ...formValues,\n transactionTypeId: transactionTypeId,\n transactionAttachmentTypeId: transactionAttachmentTypeId\n };\n\n try {\n const response = await putUpdateTransactionAttachmentType(\n transactionAttachmentTypeId,\n updatedTransactionType\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionAttachmentType updated successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n handleCreateOrEditTransactionAttachmentTypeSidesheet(false);\n tatGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n },\n [enqueueSnackbar, selectedTransactionType, successAction, t]\n );\n\n const handleDeleteTransactionAttachmentType = useCallback(async () => {\n if (!selectedTransactionAttachmentType) return;\n\n const transactionAttachmentTypeId =\n selectedTransactionAttachmentType?.transactionAttachmentTypeId;\n\n try {\n const response = await deleteTransactionAttachmentType(\n transactionAttachmentTypeId\n );\n if (response.status === 204) {\n enqueueSnackbar(t('TransactionAttachmentType deleted successfully'), {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n });\n }\n setIsDeleteTransactionAttachmentTypeDialogOpen(false);\n tatGridApiRef.current?.refreshServerSide();\n } catch (err) {\n enqueueSnackbar(\n typeof err.response.data === 'object'\n ? err.response.data.title\n : err.response.data,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n }\n }, [\n enqueueSnackbar,\n selectedTransactionAttachmentType,\n tatGridApiRef,\n successAction,\n t,\n setIsDeleteTransactionAttachmentTypeDialogOpen\n ]);\n /** end of TransactionAttachmentType */\n\n const handleOpenDeleteTransactionTypeDialog = useCallback(\n (transactionType) => {\n setSelectedTransactionType(transactionType);\n setIsDeleteTransactionTypeDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeDialog = useCallback(() => {\n setIsDeleteTransactionTypeDialogOpen(false);\n setSelectedTransactionType(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeStatusDialog = useCallback(\n (transactionTypeStatus) => {\n setSelectedTransactionTypeStatus(transactionTypeStatus);\n setIsDeleteTransactionTypeStatusDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeStatusDialog = useCallback(() => {\n setIsDeleteTransactionTypeStatusDialogOpen(false);\n setSelectedTransactionTypeStatus(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeTransactionActionDialog = useCallback(\n (transactionTypeTransactionAction) => {\n setSelectedTransactionTypeTransactionAction(\n transactionTypeTransactionAction\n );\n setIsDeleteTransactionTypeTransactionActionDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeTransactionActionDialog =\n useCallback(() => {\n setIsDeleteTransactionTypeTransactionActionDialogOpen(false);\n setSelectedTransactionTypeTransactionAction(null);\n }, []);\n\n const handleOpenDeleteTransactionUiActionDialog = useCallback(\n (transactionUiAction) => {\n setSelectedTransactionUiAction(transactionUiAction);\n setIsDeleteTransactionUiActionDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionUiActionDialog = useCallback(() => {\n setIsDeleteTransactionUiActionDialogOpen(false);\n setSelectedTransactionUiAction(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeConfigurationDialog = useCallback(\n (transactionTypeConfiguration) => {\n setSelectedTransactionTypeConfiguration(transactionTypeConfiguration);\n setIsDeleteTransactionTypeConfigurationDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionTypeConfigurationDialog =\n useCallback(() => {\n setIsDeleteTransactionTypeConfigurationDialogOpen(false);\n setSelectedTransactionTypeConfiguration(null);\n }, []);\n\n const handleOpenDeleteTransactionTypeConfigurationTransactionActionDialog =\n useCallback((transactionTypeConfigurationTransactionAction) => {\n setSelectedTransactionTypeConfigurationTransactionAction(\n transactionTypeConfigurationTransactionAction\n );\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen(true);\n }, []);\n\n const handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog =\n useCallback(() => {\n setIsDeleteTransactionTypeConfigurationTransactionActionDialogOpen(false);\n setSelectedTransactionTypeConfigurationTransactionAction(null);\n }, []);\n\n const handleOpenDeleteTransactionAttachmentTypeDialog = useCallback(\n (transactionAttachmentType) => {\n setSelectedTransactionAttachmentType(transactionAttachmentType);\n setIsDeleteTransactionAttachmentTypeDialogOpen(true);\n },\n []\n );\n\n const handleCloseDeleteTransactionAttachmentTypeDialog = useCallback(() => {\n setIsDeleteTransactionAttachmentTypeDialogOpen(false);\n setSelectedTransactionAttachmentType(null);\n }, []);\n\n const columnDefs = useMemo(() => {\n return [\n {\n headerName: t('Transaction Type ID'),\n field: 'transactionTypeId',\n resizable: true,\n sortable: false,\n hide: true\n },\n {\n headerName: t('Name'),\n field: 'name',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Domain Name'),\n field: 'domainName',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Domain Fields'),\n field: 'domainFields',\n resizable: true,\n sortable: false,\n hide: true\n },\n {\n headerName: t('Allow Revisions'),\n field: 'hasRevision',\n resizable: true,\n sortable: false,\n cellDataType: 'boolean'\n },\n {\n headerName: t('Revision Field'),\n field: 'revisionField',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Enabled'),\n field: 'enabled',\n resizable: true,\n sortable: false,\n cellDataType: 'boolean'\n },\n {\n headerName: t('Archived on Cancel'),\n field: 'archiveOnCancel',\n resizable: true,\n sortable: false,\n cellDataType: 'boolean'\n },\n {\n headerName: t('Field Label'),\n field: 'domainFieldLabel',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Sub-Type'),\n field: 'domainFieldType',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Sub-Type Value'),\n field: 'domainFieldValue',\n resizable: true,\n sortable: false\n },\n {\n headerName: t('Actions'),\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: [\n {\n id: 0,\n title: t('Edit'),\n iconName: 'edit',\n handleOnClick: (e, transactionType) => {\n handleSideSheet(true, transactionType?.data);\n }\n },\n {\n id: 1,\n title: t('Delete'),\n iconName: 'trashCan',\n handleOnClick: (e, transactionType) => {\n handleOpenDeleteTransactionTypeDialog(transactionType?.data);\n }\n },\n {\n id: 2,\n title: t('Manage Statuses'),\n iconName: 'settings',\n handleOnClick: (e, transactionType) => {\n handleTransactionTypeStatusSideSheet(\n true,\n transactionType?.data\n );\n }\n },\n {\n id: 3,\n title: t('Manage Actions'),\n iconName: 'text-grammar-settings',\n handleOnClick: (e, transactionType) => {\n handleTransactionTypeTransactionActionSidesheet(\n true,\n transactionType?.data\n );\n }\n },\n {\n id: 4,\n title: t('Manage Forms/Pages'),\n iconName: 'form-new',\n handleOnClick: (e, transactionType) => {\n handleTransactionUiActionSidesheet(true, transactionType?.data);\n }\n },\n {\n id: 5,\n title: t('Manage Rules'),\n iconName: 'apps-list',\n handleOnClick: (e, transactionType) => {\n handleTransactionTypeConfigurationSidesheet(\n true,\n transactionType?.data\n );\n }\n },\n {\n id: 6,\n title: t('Manage Attachment Types'),\n iconName: 'attachment',\n handleOnClick: (e, transactionType) => {\n handleTransactionAttachmentTypeSidesheet(\n true,\n transactionType?.data\n );\n }\n }\n ]\n },\n valueGetter: (params) => params.data,\n suppressMenu: true,\n sortable: false,\n filter: false\n }\n ];\n }, [\n handleSideSheet,\n handleOpenDeleteTransactionTypeDialog,\n handleTransactionTypeStatusSideSheet,\n handleTransactionTypeTransactionActionSidesheet,\n handleTransactionUiActionSidesheet,\n handleTransactionTypeConfigurationSidesheet,\n handleTransactionAttachmentTypeSidesheet,\n t\n ]);\n\n const headerConfig = {\n title: t('Transaction Types'),\n primaryActionButton: {\n label: t('Add'),\n iconName: 'add',\n onClick: () => handleSideSheet(true)\n }\n };\n\n const gridFunctions = [\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 const handleGridApiCallback = (api) => {\n gridApiRef.current = api;\n };\n\n const searchMethodConfig = useMemo(() => {\n return {\n requestUrl: `${ConfigService.productV1ApiUrl}/UdpTransactionType/search`,\n customSearchObject: searchObject\n };\n }, [searchObject]);\n\n return (\n <>\n {isTransactionTypeSidesheetLoading && (\n <LinearProgress className={classes.loadingBar} color='secondary' />\n )}\n <SearchMethodUdpGrid\n searchMethodConfig={searchMethodConfig}\n columnDefs={columnDefs}\n gridHeaderConfig={headerConfig}\n gridOptions={gridOptions}\n gridApiCallback={handleGridApiCallback}\n gridFunctions={gridFunctions}\n />\n <UdpTransactionTypeSidesheet\n key={selectedTransactionType?.transactionTypeId}\n initialTransactionType={selectedTransactionType}\n selectedDomainName={selectedDomainName}\n isSideSheetOpen={isTransactionTypeSideSheetOpen}\n handleSideSheet={handleSideSheet}\n setSelectedDomainName={setSelectedDomainName}\n handleCreateTransactionType={handleCreateTransactionType}\n handleUpdateTransactionType={handleUpdateTransactionType}\n catalogObjectNames={catalogObjectNames}\n catalogObjectProperties={catalogObjectProperties}\n catalogObjectDateProperties={catalogObjectDateProperties}\n isPageConfigurationSidesheetOpen={isPageConfigurationSidesheetOpen}\n setIsPageConfigurationSidesheetOpen={\n setIsPageConfigurationSidesheetOpen\n }\n isCalendarViewConfigurationSidesheetOpen={\n isCalendarViewConfigurationSidesheetOpen\n }\n setIsCalendarViewConfigurationSidesheetOpen={\n setIsCalendarViewConfigurationSidesheetOpen\n }\n />\n {getTransactionsByTransactionIdLoading ? (\n <LinearProgress />\n ) : (\n <FluentDialog\n open={isDeleteTransactionTypeDialogOpen}\n onClose={handleCloseDeleteTransactionTypeDialog}\n title={t('Confirm Delete')}\n message={\n !transactionsByTransactionTypeId?.pageList?.length\n ? t(`Are you sure you want to delete this type?`)\n : t(`Unable to delete this type as there are existing transactions associated with it.\n As an alternative, you can disable the type to prevent further use.`)\n }\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionType}\n buttonOneHidden={!!transactionsByTransactionTypeId?.pageList?.length}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeDialog}\n />\n )}\n <UdpTransactionTypeStatusSidesheet\n ref={ttsGridApiRef}\n transactionType={selectedTransactionType}\n transactionTypeStatus={selectedTransactionTypeStatus}\n isSideSheetOpen={isTransactionTypeStatusSidesheetOpen}\n isTransactionTypeStatusCreateOrEditSidesheetOpen={\n isCreateOrEditTransactionTypeStatusSidesheetOpen\n }\n handleTransactionTypeStatusSideSheet={\n handleTransactionTypeStatusSideSheet\n }\n handleCreateOrEditTransactionTypeStatusSideSheet={\n handleCreateOrEditTransactionTypeStatusSideSheet\n }\n handleCreateTransactionTypeStatus={handleCreateTransactionTypeStatus}\n handleUpdateTransactionTypeStatus={handleUpdateTransactionTypeStatus}\n handleDeleteTransactionTypeStatus={\n handleOpenDeleteTransactionTypeStatusDialog\n }\n />\n <FluentDialog\n open={isDeleteTransactionTypeStatusDialogOpen}\n onClose={handleCloseDeleteTransactionTypeStatusDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this status?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeStatus}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeStatusDialog}\n />\n <UdpTransactionTypeTransactionActionSidesheet\n ref={tttaGridApiRef}\n transactionType={selectedTransactionType}\n transactionTypeTransactionAction={\n selectedTransactionTypeTransactionAction\n }\n isSideSheetOpen={isTransactionTypeTransactionActionSidesheetOpen}\n isTransactionTypeTransactionActionCreateOrEditSidesheetOpen={\n isCreateOrEditTransactionTypeTransactionActionSidesheetOpen\n }\n handleTransactionTypeTransactionActionSidesheet={\n handleTransactionTypeTransactionActionSidesheet\n }\n handleCreateOrEditTransactionTypeTransactionActionSidesheet={\n handleCreateOrEditTransactionTypeTransactionActionSidesheet\n }\n handleCreateTransactionTypeTransactionAction={\n handleCreateTransactionTypeTransactionAction\n }\n handleUpdateTransactionTypeTransactionAction={\n handleUpdateTransactionTypeTransactionAction\n }\n handleDeleteTransactionTypeTransactionAction={\n handleOpenDeleteTransactionTypeTransactionActionDialog\n }\n transactionActions={transactionActions}\n catalogObjectProperties={catalogObjectProperties}\n actionApis={actionApis}\n pages={pages}\n ttstatuses={ttstatuses}\n />\n <FluentDialog\n open={isDeleteTransactionTypeTransactionActionDialogOpen}\n onClose={handleCloseDeleteTransactionTypeTransactionActionDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this action?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeTransactionAction}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeTransactionActionDialog}\n />\n <UdpTransactionUiActionSidesheet\n ref={tuaGridApiRef}\n transactionType={selectedTransactionType}\n transactionUiAction={selectedTransactionUiAction}\n isSideSheetOpen={isTransactionUiActionSidesheetOpen}\n handleTransactionUiActionSidesheet={handleTransactionUiActionSidesheet}\n isCreateOrEditTransactionUiActionSidesheetOpen={\n isCreateOrEditTransactionUiActionSidesheetOpen\n }\n handleCreateOrEditTransactionUiActionSidesheet={\n handleCreateOrEditTransactionUiActionSidesheet\n }\n handleCreateTransactionUiAction={handleCreateTransactionUiAction}\n handleUpdateTransactionUiAction={handleUpdateTransactionUiAction}\n handleDeleteTransactionUiAction={\n handleOpenDeleteTransactionUiActionDialog\n }\n transactionUiActionTypes={transactionUiActionTypes}\n actionApis={actionApis}\n pages={pages}\n tUiActionsList={tUiActionsList}\n />\n <FluentDialog\n open={isDeleteTransactionUiActionDialogOpen}\n onClose={handleCloseDeleteTransactionUiActionDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this UI action?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionUiAction}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionUiActionDialog}\n />\n <UdpTransactionTypeConfigurationSidesheet\n ref={ttcGridApiRef}\n transactionType={selectedTransactionType}\n transactionTypeConfiguration={selectedTransactionTypeConfiguration}\n isSideSheetOpen={isTransactionTypeConfigurationSidesheetOpen}\n handleTransactionTypeConfigurationSidesheet={\n handleTransactionTypeConfigurationSidesheet\n }\n isCreateOrEditTransactionTypeConfigurationSidesheetOpen={\n isCreateOrEditTransactionTypeConfigurationSidesheetOpen\n }\n handleCreateOrEditTransactionTypeConfigurationSidesheet={\n handleCreateOrEditTransactionTypeConfigurationSidesheet\n }\n handleCreateTransactionTypeConfiguration={\n handleCreateTransactionTypeConfiguration\n }\n handleUpdateTransactionTypeConfiguration={\n handleUpdateTransactionTypeConfiguration\n }\n handleDeleteTransactionTypeConfiguration={\n handleOpenDeleteTransactionTypeConfigurationDialog\n }\n transactionRuleTypes={transactionRuleTypes}\n catalogObjectProperties={catalogObjectProperties}\n ttstatuses={ttstatuses}\n roles={roles}\n transactionTypeConfigurationTransactionAction={\n selectedTransactionTypeConfigurationTransactionAction\n }\n isTransactionTypeConfigurationTransactionActionSidesheetOpen={\n isTransactionTypeConfigurationTransactionActionSidesheetOpen\n }\n handleTransactionTypeConfigurationTransactionActionSidesheet={\n handleTransactionTypeConfigurationTransactionActionSidesheet\n }\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet={\n handleCreateOrEditTransactionTypeConfigurationTransactionActionSidesheet\n }\n isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen={\n isCreateOrEditTransactionTypeConfigurationTransactionActionSidesheetOpen\n }\n tttactions={tttactions}\n handleCreateTransactionTypeConfigurationTransactionAction={\n handleCreateTransactionTypeConfigurationTransactionAction\n }\n handleUpdateTransactionTypeConfigurationTransactionAction={\n handleUpdateTransactionTypeConfigurationTransactionAction\n }\n handleDeleteTransactionTypeConfigurationTransactionAction={\n handleOpenDeleteTransactionTypeConfigurationTransactionActionDialog\n }\n ttctaList={ttctaList}\n ttctaGridApiRef={ttctaGridApiRef}\n />\n <FluentDialog\n open={isDeleteTransactionTypeConfigurationDialogOpen}\n onClose={handleCloseDeleteTransactionTypeConfigurationDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this rule?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeConfiguration}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionTypeConfigurationDialog}\n />\n <FluentDialog\n open={isDeleteTransactionTypeConfigurationTransactionActionDialogOpen}\n onClose={\n handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog\n }\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this linked action?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionTypeConfigurationTransactionAction}\n labelTwo={t('Cancel')}\n actionTwo={\n handleCloseDeleteTransactionTypeConfigurationTransactionActionDialog\n }\n />\n <UdpTransactionAttachmentTypeSidesheet\n ref={tatGridApiRef}\n transactionType={selectedTransactionType}\n transactionAttachmentType={selectedTransactionAttachmentType}\n isSideSheetOpen={isTransactionAttachmentTypeSidesheetOpen}\n isTransactionAttachmentTypeCreateOrEditSidesheetOpen={\n isCreateOrEditTransactionAttachmentTypeSidesheetOpen\n }\n handleTransactionAttachmentTypeSidesheet={\n handleTransactionAttachmentTypeSidesheet\n }\n handleCreateOrEditTransactionAttachmentTypeSidesheet={\n handleCreateOrEditTransactionAttachmentTypeSidesheet\n }\n handleCreateTransactionAttachmentType={\n handleCreateTransactionAttachmentType\n }\n handleUpdateTransactionAttachmentType={\n handleUpdateTransactionAttachmentType\n }\n handleDeleteTransactionAttachmentType={\n handleOpenDeleteTransactionAttachmentTypeDialog\n }\n />\n <FluentDialog\n open={isDeleteTransactionAttachmentTypeDialogOpen}\n onClose={handleCloseDeleteTransactionAttachmentTypeDialog}\n title={t('Confirm Delete')}\n message={t(`Are you sure you want to delete this attachment type?`)}\n labelOne={t('Delete')}\n actionOne={handleDeleteTransactionAttachmentType}\n labelTwo={t('Cancel')}\n actionTwo={handleCloseDeleteTransactionAttachmentTypeDialog}\n />\n </>\n );\n};\n\nexport default UdpTransactionTypesPage;\n"],"mappings":"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"}