{"version":3,"file":"UdpTransactionTypeSidesheet.mjs","names":["React","useCallback","useEffect","useMemo","useRef","useState","LinearProgress","SideSheet","useTranslation","UdpTransactionTypeForm","apiMutate","ConfigService","UdpTransactionTypeSidesheet","props","initialTransactionType","isSideSheetOpen","handleSideSheet","setSelectedDomainName","selectedDomainName","handleCreateTransactionType","handleUpdateTransactionType","catalogObjectNames","catalogObjectProperties","catalogObjectDateProperties","isPageConfigurationSidesheetOpen","setIsPageConfigurationSidesheetOpen","isCalendarViewConfigurationSidesheetOpen","setIsCalendarViewConfigurationSidesheetOpen","isEditing","formRef","t","transactions","setTransactions","onSubmitForm","values","initialData","handleCloseSidesheet","isOpen","domainName","shouldDisableSubTypes","length","targetValue","domainFieldValue","undefined","some","entityBusinessObject","domainFieldType","isMounted","fetchTransactions","transactionTypeId","response","productV1ApiUrl","method","data","filterElements","searchField","searchOperator","searchValue","getAll","pageList","error","console","defaultValue","current","submit"],"sources":["../../../../../src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeSidesheet.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { LinearProgress, SideSheet } from '../../../../UI/index.ts';\nimport { useTranslation } from 'react-i18next';\nimport UdpTransactionTypeForm from '../forms/UdpTransactionTypeForm';\nimport { apiMutate } from '../../../../utilities';\nimport { ConfigService } from '../../../../configService';\n\nconst UdpTransactionTypeSidesheet = (props) => {\n  const {\n    initialTransactionType,\n    isSideSheetOpen,\n    handleSideSheet,\n    setSelectedDomainName,\n    selectedDomainName,\n    handleCreateTransactionType,\n    handleUpdateTransactionType,\n    catalogObjectNames,\n    catalogObjectProperties,\n    catalogObjectDateProperties,\n    isPageConfigurationSidesheetOpen,\n    setIsPageConfigurationSidesheetOpen,\n    isCalendarViewConfigurationSidesheetOpen,\n    setIsCalendarViewConfigurationSidesheetOpen\n  } = props;\n\n  const isEditing = !!initialTransactionType;\n  const formRef = useRef();\n  const { t } = useTranslation();\n\n  const [transactions, setTransactions] = useState(null);\n\n  const onSubmitForm = useCallback(async (values, initialData) => {\n      if (initialData) {\n        await handleUpdateTransactionType(values, initialData);\n      } else {\n        await handleCreateTransactionType(values);\n      }\n  }, [handleCreateTransactionType, handleUpdateTransactionType]);\n\n  const handleCloseSidesheet = useCallback((isOpen, domainName) => {\n      handleSideSheet(isOpen);\n      setSelectedDomainName(domainName);\n    }, [handleSideSheet, setSelectedDomainName]);\n\n  if (!isSideSheetOpen && transactions) {\n    setTransactions(null);\n  }\n\n  const shouldDisableSubTypes = useMemo(() => {\n    if (!transactions || transactions.length === 0 || !initialTransactionType) {\n      return false;\n    }\n\n    const targetValue = initialTransactionType.domainFieldValue;\n\n    if (targetValue === undefined || targetValue === null) {\n      return false;\n    }\n\n    return transactions.some((t) => {\n      const entityBusinessObject = t.entityBusinessObject;\n\n      return (\n        entityBusinessObject?.[initialTransactionType.domainFieldType] ===\n        targetValue\n      );\n    });\n  }, [transactions, initialTransactionType]);\n\n  useEffect(() => {\n    if (initialTransactionType) {\n      setSelectedDomainName(initialTransactionType?.domainName);\n    }\n  }, [initialTransactionType, setSelectedDomainName]);\n\n  useEffect(() => {\n    let isMounted = true;\n\n    const fetchTransactions = async () => {\n      if (\n        isEditing &&\n        isSideSheetOpen &&\n        initialTransactionType?.transactionTypeId\n      ) {\n        try {\n          const response = await apiMutate(\n            ConfigService.productV1ApiUrl,\n            'UdpTransaction/search',\n            {\n              method: 'post'\n            },\n            {\n              data: {\n                filterElements: [\n                  {\n                    searchField: 'transactionTypeId',\n                    searchOperator: '=',\n                    searchValue: initialTransactionType.transactionTypeId\n                  },\n                  {\n                    searchField: 'isDeleted',\n                    searchOperator: '=',\n                    searchValue: 0\n                  }\n                ],\n                getAll: true\n              }\n            }\n          );\n\n          if (isMounted && response?.data?.pageList) {\n            setTransactions(response.data.pageList);\n          }\n        } catch (error) {\n          console.error('Failed to check transaction existence', error);\n          if (isMounted) setTransactions([]);\n        }\n      }\n    };\n\n    // eslint-disable-next-line react-you-might-not-need-an-effect/no-adjust-state-on-prop-change\n    fetchTransactions();\n\n    return () => {\n      isMounted = false;\n    };\n  }, [initialTransactionType, isEditing, isSideSheetOpen]);\n\n  return (\n    <SideSheet\n      open={isSideSheetOpen}\n      width={800}\n      title={isEditing ? t('transactionTypes.sidesheets.type.editTitle', { defaultValue: 'Edit Transaction Type' }) : t('transactionTypes.sidesheets.type.createTitle', { defaultValue: 'Create Transaction Type' })}\n      onClose={() => handleCloseSidesheet(false)}\n      buttonLabel={isEditing ? t('common.save', { defaultValue: 'Save' }) : t('common.create', { defaultValue: 'Create' })}\n      onSubmit={() => {\n        // eslint-disable-next-line no-unused-expressions\n        formRef?.current?.submit();\n      }}\n    >\n      {isEditing && !transactions ? (\n        <LinearProgress />\n      ) : (\n        <UdpTransactionTypeForm\n          ref={formRef}\n          onSubmit={onSubmitForm}\n          initialData={initialTransactionType}\n          disableSubTypeFields={shouldDisableSubTypes}\n          domainNameOptions={catalogObjectNames}\n          onSelectDomainName={setSelectedDomainName}\n          domainFieldOptions={catalogObjectProperties}\n          dateDomainFieldOptions={catalogObjectDateProperties}\n          selectedDomainName={selectedDomainName}\n          isPageConfigOpen={isPageConfigurationSidesheetOpen}\n          setIsPageConfigOpen={setIsPageConfigurationSidesheetOpen}\n          isCalendarViewConfigOpen={isCalendarViewConfigurationSidesheetOpen}\n          setIsCalendarViewConfigOpen={\n            setIsCalendarViewConfigurationSidesheetOpen\n          }\n        />\n      )}\n    </SideSheet>\n  );\n}\n\nexport default UdpTransactionTypeSidesheet;\n"],"mappings":";;;;;;;;AAOA,MAAMY,+BAA+BC,UAAU;CAC7C,MAAM,EACJC,wBACAC,iBACAC,iBACAC,uBACAC,oBACAC,6BACAC,6BACAC,oBACAC,yBACAC,6BACAC,kCACAC,qCACAC,0CACAC,gDACEd;CAEJ,MAAMe,YAAY,CAAC,CAACd;CACpB,MAAMe,UAAUzB,QAAQ;CACxB,MAAM,EAAE0B,MAAMtB,gBAAgB;CAE9B,MAAM,CAACuB,cAAcC,mBAAmB3B,SAAS,KAAK;CAEtD,MAAM4B,eAAehC,YAAY,OAAOiC,QAAQC,gBAAgB;AAC5D,MAAIA,YACF,OAAMf,4BAA4Bc,QAAQC,YAAY;MAEtD,OAAMhB,4BAA4Be,OAAO;IAE5C,CAACf,6BAA6BC,4BAA4B,CAAC;CAE9D,MAAMgB,uBAAuBnC,aAAaoC,QAAQC,eAAe;AAC7DtB,kBAAgBqB,OAAO;AACvBpB,wBAAsBqB,WAAW;IAChC,CAACtB,iBAAiBC,sBAAsB,CAAC;AAE9C,KAAI,CAACF,mBAAmBgB,aACtBC,iBAAgB,KAAK;CAGvB,MAAMO,wBAAwBpC,cAAc;AAC1C,MAAI,CAAC4B,gBAAgBA,aAAaS,WAAW,KAAK,CAAC1B,uBACjD,QAAO;EAGT,MAAM2B,cAAc3B,uBAAuB4B;AAE3C,MAAID,gBAAgBE,KAAAA,KAAaF,gBAAgB,KAC/C,QAAO;AAGT,SAAOV,aAAaa,MAAMd,QAAM;AAG9B,UAF6BA,IAAEe,uBAGN/B,uBAAuBgC,qBAC9CL;IAEF;IACD,CAACV,cAAcjB,uBAAuB,CAAC;AAE1CZ,iBAAgB;AACd,MAAIY,uBACFG,uBAAsBH,wBAAwBwB,WAAW;IAE1D,CAACxB,wBAAwBG,sBAAsB,CAAC;AAEnDf,iBAAgB;EACd,IAAI6C,YAAY;EAEhB,MAAMC,oBAAoB,YAAY;AACpC,OACEpB,aACAb,mBACAD,wBAAwBmC,kBAExB,KAAI;IACF,MAAMC,WAAW,MAAMxC,UACrBC,cAAcwC,iBACd,yBACA,EACEC,QAAQ,QACT,EACD,EACEC,MAAM;KACJC,gBAAgB,CACd;MACEC,aAAa;MACbC,gBAAgB;MAChBC,aAAa3C,uBAAuBmC;MACrC,EACD;MACEM,aAAa;MACbC,gBAAgB;MAChBC,aAAa;MACd,CACF;KACDC,QAAQ;KACV,EAEJ,CAAC;AAED,QAAIX,aAAaG,UAAUG,MAAMM,SAC/B3B,iBAAgBkB,SAASG,KAAKM,SAAS;YAElCC,OAAO;AACdC,YAAQD,MAAM,yCAAyCA,MAAM;AAC7D,QAAIb,UAAWf,iBAAgB,EAAE,CAAC;;;AAMxCgB,qBAAmB;AAEnB,eAAa;AACXD,eAAY;;IAEb;EAACjC;EAAwBc;EAAWb;EAAgB,CAAC;AAExD,QACE,sBAAA,cAAC,WAAD;EACE,MAAMA;EACN,OAAO;EACP,OAAOa,YAAYE,EAAE,8CAA8C,EAAEgC,cAAc,yBAAyB,CAAC,GAAGhC,EAAE,gDAAgD,EAAEgC,cAAc,2BAA2B,CAAC;EAC9M,eAAe1B,qBAAqB,MAAM;EAC1C,aAAaR,YAAYE,EAAE,eAAe,EAAEgC,cAAc,QAAQ,CAAC,GAAGhC,EAAE,iBAAiB,EAAEgC,cAAc,UAAU,CAAC;EACpH,gBAAgB;AAEdjC,YAASkC,SAASC,QAAQ;;EAwBlB,EArBTpC,aAAa,CAACG,eACb,sBAAA,cAAC,gBAAA,KAAiB,GAElB,sBAAA,cAAC,gCAAD;EACE,KAAKF;EACL,UAAUI;EACV,aAAanB;EACb,sBAAsByB;EACtB,mBAAmBlB;EACnB,oBAAoBJ;EACpB,oBAAoBK;EACpB,wBAAwBC;EACJL;EACpB,kBAAkBM;EAClB,qBAAqBC;EACrB,0BAA0BC;EAC1B,6BACEC;EAGL,CAAA,CACS"}