{"version":3,"file":"UdpTransactionsPage.mjs","names":["UdpTransactionGrid","UdpTransactionCalendar","React","useState","useCallback","useEffect","useMemo","useRef","UdpTransactionSidesheet","useTransactionType","useTransactionEngine","CircularProgress","useUdpGridFilterModel","useCatalogStore","useHistory","useLocation","Typography","apiMutate","useAxiosGet","useHandleAxiosSnackbar","ConfigService","UdpTransactionsPage","props","$","_c","transactionTypeId","t0","domainName","t1","domainFieldType","domainFieldValue","searchMethodObject","domainColumnFormatters","gridOptions","onBeforeRefresh","onAfterRefresh","gridTitle","hideCreateTransaction","t2","sideSheetProps","columnDefProperties","columnDefinitions","paginationAutoPageSize","customActions","gridSecondaryActionButtons","calendarSecondaryActionButtons","gridApiCallback","loading","t3","addTransactionSidesheetWidth","viewTransactionSidesheetWidth","editTransactionSidesheetWidth","attachmentTransactionSidesheetWidth","workflowActionTransactionSidesheetWidth","createRevisionSidesheetWidth","statusChangeCallbacks","attachmentTypeDefaults","undefined","initialDomainName","t4","Symbol","for","workflowAction","addTransaction","editTransaction","viewTransaction","attachmentTransaction","createRevision","sidesheetState","setSidesheetState","selectedTransaction","setSelectedTransaction","gridApi","setGridApi","calendarRefresh","setCalendarRefresh","showCalendarView","setShowCalendarView","location","history","state","handleErrorSnackbar","searchParamStr","search","deepLinkTransactionId","initialTransactionTypeId","t5","searchParams","URLSearchParams","params","udpTransactionTypeId","has","get","deepLinkAction","deepLinkOpenedRef","t6","t7","data","transactionType","transactionTypeLoading","currentApiCatalogId","_temp","filterModel","t8","actionType","openStatus","transaction","t9","width","prev","prev_0","prev_1","prev_2","prev_3","prev_4","handleSidesheet","handleAttachmentTransaction","_temp2","api","handleGridApiCallback","t10","refreshFn","handleCalendarApiCallback","t11","bb0","t12","splitDomainNameArr","split","pop","bb1","config","pageConfiguration","calendarViewConfiguration","t13","isDefaultView","t14","defaultCalendarViewType","domainEndDateProperty","domainPropertyToDisplay","domainStartDateProperty","enabled","calendarViewEnabled","t15","catalogObjectRequestSkipped","t16","t17","integrationV2ApiUrl","catalogObject","catalogObjectLoading","error","catalogObjectError","catalogObjectPending","t18","refreshServerSide","refreshGridData","t19","enableStatusChangeCallbacks","udpTransactionTypeUdpTransactionTypeStatus","newStatusId","transaction_0","currentStatusId","newStatus","find","status","transactionTypeStatusId","statusChangeCallback","code","t20","console","handleTransactionStatusChange","openAddTransaction","t21","transaction_1","openViewTransaction","t22","transaction_2","openEditTransaction","t23","transaction_3","openAttachmentTransaction","t24","transaction_4","openWorkflowActionTransaction","t25","delete","replace","toString","clearDeepLinkParams","t26","t27","cancelled","productV1ApiUrl","method","then","response","current","catch","error_0","t28","t29","t30","transaction_5","openCreateRevision","t31","t32","t33","t34","state_0"],"sources":["../../../../src/udp/pages/UdpTransactionsPage/UdpTransactionsPage.jsx"],"sourcesContent":["import UdpTransactionGrid from './UdpTransactionGrid';\nimport UdpTransactionCalendar from './UdpTransactionCalendar';\nimport React, {\n  useState,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef\n} from 'react';\nimport UdpTransactionSidesheet from './UdpTransactionSidesheet';\nimport { useTransactionType } from '../../../hooks/useTransactionType';\nimport { useTransactionEngine } from '../../../utilities/transactions/useTransactionEngine';\nimport { CircularProgress } from '@material-ui/core';\nimport './UdpTransactionsPage.css';\nimport { useUdpGridFilterModel } from '../../../hooks/useUdpGridFilterModel';\nimport { useCatalogStore } from '../../../stores';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { Typography } from '../../../UI/dataDisplay/typography';\nimport { apiMutate, useAxiosGet } from '../../../utilities';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { ConfigService } from '../../../configService';\n\n// const domainColumnFormattersExample = {\n//   submittedBy: {\n//     formatter: (params) => {\n//       return params?.data\n//         ? params?.data?.entityBusinessObject['submittedBy']\n//         : '';\n//     }\n//   },\n//   submittedTo: {\n//     formatter: (params) => {\n//       return params?.data\n//         ? params?.data?.entityBusinessObject['submittedTo']\n//         : '';\n//     }\n//   },\n//   test: {\n//     formatter: (params) => {\n//       return 'test';\n//     }\n//   }\n// };\n\n// Example of attachment type defaults mapping for different transaction statuses.\n// Status codes (keys) are mapped to the default attachment type codes (values).\n// attachmentTypeDefaultsExample =\n//   {\n//       'RFI-D': 'RFI-TD',\n//       'RFI-STC': 'RFI-CONTD',\n//       'RFI-RTT': 'RFI-CONSD',\n//       'RFI-RR': 'RFI-TD',\n//       'RFI-C': 'RFI-SD'\n//   }\n\nconst UdpTransactionsPage = (props) => {\n  const {\n    transactionTypeId = '',\n    domainName: initialDomainName = '',\n    domainFieldType,\n    domainFieldValue,\n    searchMethodObject,\n    domainColumnFormatters,\n    gridOptions,\n    onBeforeRefresh,\n    onAfterRefresh,\n    gridTitle,\n    hideCreateTransaction = false,\n    sideSheetProps,\n    columnDefProperties,\n    columnDefinitions,\n    paginationAutoPageSize,\n    customActions,\n    gridSecondaryActionButtons,\n    calendarSecondaryActionButtons,\n    gridApiCallback,\n    loading = false,\n    addTransactionSidesheetWidth,\n    viewTransactionSidesheetWidth,\n    editTransactionSidesheetWidth,\n    attachmentTransactionSidesheetWidth,\n    workflowActionTransactionSidesheetWidth,\n    createRevisionSidesheetWidth,\n    statusChangeCallbacks,\n    attachmentTypeDefaults\n  } = props;\n\n  const [sidesheetState, setSidesheetState] = useState({\n    workflowAction: false,\n    addTransaction: false,\n    editTransaction: false,\n    viewTransaction: false,\n    attachmentTransaction: false,\n    createRevision: false\n  });\n  const [selectedTransaction, setSelectedTransaction] = useState(null);\n  const [gridApi, setGridApi] = useState(null);\n  const [calendarRefresh, setCalendarRefresh] = useState(null);\n  const [showCalendarView, setShowCalendarView] = useState(false);\n  const location = useLocation();\n  const history = useHistory();\n  const state = location.state;\n  const { handleErrorSnackbar } = useHandleAxiosSnackbar();\n\n  let searchParamStr = location.search;\n  let searchParams = new URLSearchParams(searchParamStr);\n  const initialTransactionTypeId = state?.params?.udpTransactionTypeId\n    ? state.params.udpTransactionTypeId\n    : searchParams.has('udpTransactionTypeId') === true\n      ? searchParams.get('udpTransactionTypeId')\n      : '';\n\n  // Deep link: ?udpTransactionId=<id>&udpTransactionAction=nextSteps opens\n  // Next Steps for that transaction. The params stay in the URL while the\n  // sheet is open and are removed when it closes.\n  const deepLinkTransactionId = searchParams.get('udpTransactionId');\n  const deepLinkAction = searchParams.get('udpTransactionAction');\n  const deepLinkOpenedRef = useRef(false);\n\n  const {\n    data: transactionType,\n    loading: transactionTypeLoading,\n    error: transactionTypeError\n  } = useTransactionType({\n    transactionTypeId: transactionTypeId || initialTransactionTypeId,\n    domainName: initialDomainName,\n    domainFieldType: domainFieldType,\n    domainFieldValue: domainFieldValue\n  });\n\n  useTransactionEngine(transactionType?.transactionTypeId);\n  const currentApiCatalogId = useCatalogStore(\n    (state) => state.currentApiCatalogId\n  );\n  const filterModel = useUdpGridFilterModel();\n\n  const handleSidesheet = useCallback(\n    (actionType, openStatus, transaction, width = 800) => {\n      if (actionType == 'add') {\n        setSidesheetState((prev) => ({\n          ...prev,\n          addTransaction: openStatus,\n          width\n        }));\n      } else if (actionType == 'edit') {\n        setSidesheetState((prev) => ({\n          ...prev,\n          editTransaction: openStatus,\n          width\n        }));\n      } else if (actionType == 'view') {\n        setSidesheetState((prev) => ({\n          ...prev,\n          viewTransaction: openStatus,\n          width\n        }));\n      } else if (actionType == 'attachment') {\n        setSidesheetState((prev) => ({\n          ...prev,\n          attachmentTransaction: openStatus,\n          width\n        }));\n      } else if (actionType == 'action') {\n        setSidesheetState((prev) => ({\n          ...prev,\n          workflowAction: openStatus,\n          width\n        }));\n      } else if (actionType == 'createRevision') {\n        setSidesheetState((prev) => ({\n          ...prev,\n          createRevision: openStatus,\n          width\n        }));\n      }\n      if (transaction) {\n        setSelectedTransaction(transaction);\n      } else if (actionType == 'add' && openStatus) {\n        // Creating a new transaction — drop any lingering selection (e.g. the\n        // transaction just created when Next Steps was auto-launched) so the\n        // create form opens blank\n        setSelectedTransaction(null);\n      }\n    },\n    []\n  );\n\n  const handleAttachmentTransaction = () => {};\n\n  const handleGridApiCallback = useCallback(\n    (api) => {\n      setGridApi(api);\n      gridApiCallback?.(api);\n    },\n    [gridApiCallback]\n  );\n\n  const handleCalendarApiCallback = useCallback((refreshFn) => {\n    setCalendarRefresh(() => refreshFn);\n  }, []);\n\n  const domainName = useMemo(() => {\n    if (transactionType) {\n      const splitDomainNameArr = transactionType.domainName.split('.');\n      return splitDomainNameArr.pop();\n    }\n    return initialDomainName;\n  }, [transactionType, initialDomainName]);\n\n  const calendarViewConfiguration = useMemo(() => {\n    const config =\n      transactionType?.pageConfiguration?.calendarViewConfiguration;\n    if (!config) return null;\n    return {\n      enabled: config.enabled,\n      isDefaultView: !!config.isDefaultView,\n      domainStartDateProperty: config.domainStartDateProperty,\n      domainEndDateProperty: config.domainEndDateProperty,\n      domainPropertyToDisplay: config.domainPropertyToDisplay,\n      defaultCalendarViewType: config.defaultCalendarViewType\n    };\n  }, [transactionType]);\n\n  const calendarViewEnabled = !!calendarViewConfiguration?.enabled;\n\n  useEffect(() => {\n    if (calendarViewConfiguration?.isDefaultView) {\n      setShowCalendarView(true);\n    }\n  }, [calendarViewConfiguration?.isDefaultView]);\n\n  const catalogObjectRequestSkipped =\n    !!!currentApiCatalogId || !!!transactionType?.domainName;\n  const [\n    {\n      data: catalogObject,\n      loading: catalogObjectLoading,\n      error: catalogObjectError\n    }\n  ] = useAxiosGet(\n    ConfigService.integrationV2ApiUrl,\n    `apiCatalog/${currentApiCatalogId}/catalogObject/${transactionType?.domainName}`,\n    {},\n    catalogObjectRequestSkipped,\n    false\n  );\n  // axios-hooks only reports loading on the render after the request is\n  // unskipped, so treat \"requested but not yet settled\" as loading too.\n  // Otherwise the grid and sidesheets mount for one render, unmount behind\n  // the spinner and mount again.\n  const catalogObjectPending =\n    catalogObjectLoading ||\n    (!catalogObjectRequestSkipped &&\n      catalogObject === undefined &&\n      !catalogObjectError);\n\n  const refreshGridData = useCallback(async () => {\n    if (onBeforeRefresh) {\n      await onBeforeRefresh(gridApi);\n    }\n    if (showCalendarView) {\n      await calendarRefresh?.();\n    } else {\n      gridApi?.refreshServerSide();\n    }\n    if (onAfterRefresh) {\n      await onAfterRefresh(gridApi);\n    }\n  }, [\n    gridApi,\n    calendarRefresh,\n    showCalendarView,\n    onBeforeRefresh,\n    onAfterRefresh\n  ]);\n\n  // statusChangeCallbacks maps a transaction type status code to a callback,\n  // executed when a transaction is updated to a status with that code.\n  // Gated by pageConfiguration.enableStatusChangeCallbacks (enabled unless\n  // explicitly disabled on the transaction type).\n  const handleTransactionStatusChange = useCallback(\n    async (newStatusId, transaction) => {\n      if (\n        !statusChangeCallbacks ||\n        transactionType?.pageConfiguration?.enableStatusChangeCallbacks ===\n          false ||\n        !newStatusId ||\n        newStatusId === transaction?.currentStatusId\n      ) {\n        return;\n      }\n      const newStatus =\n        transactionType?.udpTransactionTypeUdpTransactionTypeStatus?.find(\n          (status) => status.transactionTypeStatusId === newStatusId\n        );\n      const statusChangeCallback = newStatus?.code\n        ? statusChangeCallbacks[newStatus.code]\n        : null;\n      if (statusChangeCallback) {\n        try {\n          await statusChangeCallback(transaction, newStatus);\n        } catch (error) {\n          // Avoid unhandled promise rejections from consumer-provided callbacks\n          console.error('statusChangeCallbacks callback threw', error);\n        }\n      }\n    },\n    [statusChangeCallbacks, transactionType]\n  );\n\n  const openAddTransaction = useCallback(() => {\n    handleSidesheet('add', true, null, addTransactionSidesheetWidth);\n  }, [handleSidesheet, addTransactionSidesheetWidth]);\n\n  const openViewTransaction = useCallback(\n    (transaction) => {\n      handleSidesheet('view', true, transaction, viewTransactionSidesheetWidth);\n    },\n    [handleSidesheet, viewTransactionSidesheetWidth]\n  );\n\n  const openEditTransaction = useCallback(\n    (transaction) => {\n      handleSidesheet('edit', true, transaction, editTransactionSidesheetWidth);\n    },\n    [handleSidesheet, editTransactionSidesheetWidth]\n  );\n\n  const openAttachmentTransaction = useCallback(\n    (transaction) => {\n      handleSidesheet(\n        'attachment',\n        true,\n        transaction,\n        attachmentTransactionSidesheetWidth || 1000\n      );\n    },\n    [handleSidesheet, attachmentTransactionSidesheetWidth]\n  );\n\n  const openWorkflowActionTransaction = useCallback(\n    (transaction) => {\n      handleSidesheet(\n        'action',\n        true,\n        transaction,\n        workflowActionTransactionSidesheetWidth\n      );\n    },\n    [handleSidesheet, workflowActionTransactionSidesheetWidth]\n  );\n\n  // Reads history.location rather than the render's location so the open\n  // effect below does not re-run on unrelated URL changes.\n  const clearDeepLinkParams = useCallback(() => {\n    const params = new URLSearchParams(history.location.search);\n    params.delete('udpTransactionId');\n    params.delete('udpTransactionAction');\n    history.replace({ ...history.location, search: params.toString() });\n  }, [history]);\n\n  useEffect(() => {\n    if (!deepLinkTransactionId || deepLinkAction !== 'nextSteps') return;\n    let cancelled = false;\n    apiMutate(\n      ConfigService.productV1ApiUrl,\n      `udpTransaction/${deepLinkTransactionId}/full`,\n      { method: 'get' }\n    )\n      .then((response) => {\n        if (cancelled) return;\n        deepLinkOpenedRef.current = true;\n        openWorkflowActionTransaction(response.data);\n      })\n      .catch((error) => {\n        if (cancelled) return;\n        handleErrorSnackbar(error);\n        clearDeepLinkParams();\n      });\n    return () => {\n      cancelled = true;\n    };\n  }, [\n    deepLinkTransactionId,\n    deepLinkAction,\n    openWorkflowActionTransaction,\n    handleErrorSnackbar,\n    clearDeepLinkParams\n  ]);\n\n  useEffect(() => {\n    if (!sidesheetState.workflowAction && deepLinkOpenedRef.current) {\n      deepLinkOpenedRef.current = false;\n      clearDeepLinkParams();\n    }\n  }, [sidesheetState.workflowAction, clearDeepLinkParams]);\n\n  const openCreateRevision = useCallback(\n    (transaction) => {\n      handleSidesheet(\n        'createRevision',\n        true,\n        transaction,\n        createRevisionSidesheetWidth\n      );\n    },\n    [handleSidesheet, createRevisionSidesheetWidth]\n  );\n\n  if (!transactionTypeId && !initialTransactionTypeId && !initialDomainName) {\n    return (\n      <div>\n        <Typography variant='h6'>\n          Error loading Transaction Type: No Transaction type provided.\n        </Typography>\n      </div>\n    );\n  }\n\n  // IMPORTANT: If no Catalog is promoted for product application, the page will not load\n  if (!transactionType || catalogObjectPending || loading) {\n    return (\n      <div className='udp-transaction-page-loading'>\n        <CircularProgress size={64} />\n      </div>\n    );\n  }\n\n  return (\n    <>\n      {calendarViewEnabled && showCalendarView ? (\n        <UdpTransactionCalendar\n          transactionTypeId={transactionType?.transactionTypeId}\n          domainName={domainName}\n          searchMethodObject={searchMethodObject}\n          calendarViewConfiguration={calendarViewConfiguration}\n          openWorkflowActionTransaction={openWorkflowActionTransaction}\n          handleCalendarApiCallback={handleCalendarApiCallback}\n          openAddTransaction={openAddTransaction}\n          gridTitle={gridTitle}\n          hideCreateTransaction={hideCreateTransaction}\n          onShowGridView={() => setShowCalendarView(false)}\n          secondaryActionButtons={calendarSecondaryActionButtons}\n        />\n      ) : (\n        <UdpTransactionGrid\n          transactionTypeId={transactionType?.transactionTypeId}\n          transactionType={transactionType}\n          domainName={domainName}\n          transactionTypeLoading={transactionTypeLoading}\n          searchMethodObject={searchMethodObject}\n          domainColumnFormatters={domainColumnFormatters}\n          catalogObject={catalogObject}\n          openAddTransaction={openAddTransaction}\n          openViewTransaction={openViewTransaction}\n          openEditTransaction={openEditTransaction}\n          openAttachmentTransaction={openAttachmentTransaction}\n          openWorkflowActionTransaction={openWorkflowActionTransaction}\n          openCreateRevision={openCreateRevision}\n          handleGridApiCallback={handleGridApiCallback}\n          refreshGridData={refreshGridData}\n          gridApi={gridApi}\n          initialFilterModel={filterModel}\n          initialGridOptions={gridOptions}\n          gridTitle={gridTitle}\n          hideCreateTransaction={hideCreateTransaction}\n          columnDefProperties={columnDefProperties}\n          columnDefinitions={columnDefinitions}\n          customActions={customActions}\n          secondaryActionButtons={gridSecondaryActionButtons}\n          paginationAutoPageSize={paginationAutoPageSize}\n          calendarViewEnabled={calendarViewEnabled}\n          onShowCalendarView={() => setShowCalendarView(true)}\n        />\n      )}\n\n      <UdpTransactionSidesheet\n        openStates={sidesheetState}\n        handleSidesheet={handleSidesheet}\n        handleAttachmentTransaction={handleAttachmentTransaction}\n        transaction={selectedTransaction}\n        transactionTypeId={transactionType?.transactionTypeId}\n        domainName={domainName}\n        refreshGridData={refreshGridData}\n        catalogObject={catalogObject}\n        onTransactionStatusChange={handleTransactionStatusChange}\n        attachmentTypeDefaults={attachmentTypeDefaults}\n        {...sideSheetProps}\n      />\n    </>\n  );\n};\n\nexport default UdpTransactionsPage;\n"],"mappings":"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"}