{"version":3,"file":"ActionSideSheet.mjs","names":["makeStyles","Skeleton","useSnackbar","PropTypes","React","useCallback","useMemo","useState","DndProvider","HTML5Backend","useTranslation","ConfigService","ActionForm","getPathObject","getSuccessAction","LayoutUnit","NodeActionEnums","SideSheet","useActions","useUser","useAxiosGet","PageContainer","useActionStore","useStyles","theme","root","ActionSideSheet","props","$","_c","open","action","actionPanel","selectedNodeObj","executeAction","selectedEntity","handleOnClose","entityAttributes","foreignKeyData","loadingContent","fetchEntityData","skeleton","showError","crudTableEditionData","crudTableFormData","selectedNode","selectedNodeParent","refreshTree","udpFieldInfos","classes","width","setWidth","buttonLabel","setButtonLabel","onSubmit","setOnSubmit","_temp2","additionalOnClose","setAdditionalOnClose","t0","Symbol","for","otherSideSheetProps","setOtherSideSheetProps","enqueueSnackbar","closeSnackbar","t1","successAction","t","user","setSelectedNodeForStore","_temp3","selectedNodeFromStore","_temp4","t2","bb0","value","unityBaseUpdateMethod","apiMethodId","pageId","unityBaseCreateMethod","promotedMethodPageId","t3","t4","tenantV1ApiUrl","parameters","data","page","loading","loadingPage","t5","onCreate","t6","data_0","onUpdate","t7","unityBaseGetAllMethod","data_1","response","catch","res","message","variant","anchorOrigin","vertical","horizontal","status","updatedNode","find","d","id","updatedSelectedNode","nodeObj","handleFetchEntityData","t8","values","entityName","data_2","requestBody","response_0","res_0","defaultValue","handleOnCreate","t9","values_0","primaryKeyValues","entityName_0","pathObject","pathParameters","data_3","response_1","res_1","handleOnUpdate","t10","handleOnCloseSideSheet","t11","t12","actionId","t13","t14","properties","searchValue","t15","t16","t17","inquiryParams","t18","requiredFieldMapping","t19","contentId","parentNodeObj","requiredFieldsMap","setSideSheetWidth","setSideSheetButtonLabel","setSideSheetOnSubmit","setSideSheetAdditionalOnClose","setSideSheetProps","closeSideSheet","t20","content","pageDisplayName","name","entityName_1","actionTypeId","Create","sideSheetTitle","map","_temp5","skeletonButton","propTypes","object","bool","dispatch","func","actionPanels","array","catalog","_temp","console","warn","state","setSelectedNode","state_0","sk","index"],"sources":["../../src/actions/ActionSideSheet.jsx"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useSnackbar } from 'notistack';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\nimport { ActionForm } from './ActionForm';\nimport { getPathObject } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { getSuccessAction } from '../UI/SuccessAction';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { NodeActionEnums } from '../enums/unitySystemEnums';\nimport { SideSheet } from '../UI/surfaces/SideSheet';\nimport { useActions } from '../hooks/useActions';\nimport { useUser } from '../utilities/auth/useUser';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { PageContainer } from '../page/PageContainer';\nimport { useActionStore } from '../stores/actionStore';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {}\n}));\n\nexport const ActionSideSheet = (props) => {\n  const {\n    open,\n    action,\n    actionPanel,\n    selectedNodeObj,\n    executeAction,\n    selectedEntity,\n    handleOnClose,\n    entityAttributes,\n    foreignKeyData,\n    loadingContent,\n    fetchEntityData,\n    skeleton,\n    showError,\n    crudTableEditionData,\n    crudTableFormData,\n    selectedNode,\n    selectedNodeParent,\n    refreshTree,\n    udpFieldInfos\n  } = props;\n  const classes = useStyles();\n  const [width, setWidth] = useState(600);\n  const [buttonLabel, setButtonLabel] = useState('');\n  const [onSubmit, setOnSubmit] = useState(\n    () => () => console.warn('onSubmit not set')\n  );\n  const [additionalOnClose, setAdditionalOnClose] = useState();\n  const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n  const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n  const successAction = getSuccessAction(closeSnackbar);\n  const { t } = useTranslation();\n  const user = useUser();\n\n  const setSelectedNodeForStore = useActionStore(\n    (state) => state.setSelectedNode\n  );\n  const selectedNodeFromStore = useActionStore((state) => state.selectedNode);\n\n  const promotedMethodPageId = useMemo(() => {\n    if (action?.value) {\n      if (selectedEntity?.unityBaseUpdateMethod?.apiMethodId === action.value) {\n        return selectedEntity.unityBaseUpdateMethod.pageId;\n      } else if (\n        selectedEntity?.unityBaseCreateMethod?.apiMethodId === action.value\n      ) {\n        return selectedEntity.unityBaseCreateMethod.pageId;\n      }\n    }\n    return '';\n  }, [selectedEntity, action]);\n\n  const [{ data: page, loading: loadingPage }] = useAxiosGet(\n    ConfigService.tenantV1ApiUrl,\n    `page/${action?.parameters?.pageId || promotedMethodPageId}`,\n    {},\n    !!!action?.parameters?.pageId && !!!promotedMethodPageId,\n    false\n  );\n\n  const onCreate = useCallback(\n    async (data) => {\n      if (selectedEntity?.unityBaseCreateMethod && action?.value) {\n        if (selectedEntity.unityBaseCreateMethod.apiMethodId === action.value) {\n          return await executeAction(data, action.value);\n        } else {\n          showError();\n        }\n      }\n    },\n    [action, executeAction, selectedEntity, showError]\n  );\n\n  const onUpdate = useCallback(\n    async (data) => {\n      if (selectedEntity?.unityBaseUpdateMethod && action?.value) {\n        if (selectedEntity.unityBaseUpdateMethod.apiMethodId === action.value) {\n          return await executeAction(data, action.value);\n        } else {\n          showError();\n        }\n      }\n    },\n    [action, executeAction, selectedEntity, showError]\n  );\n\n  const handleFetchEntityData = useCallback(async () => {\n    if (selectedEntity?.unityBaseGetAllMethod) {\n      const data = {};\n      const response = await fetchEntityData({ data }).catch((res) => {\n        enqueueSnackbar(res.message, {\n          variant: 'error',\n          anchorOrigin: {\n            vertical: 'top',\n            horizontal: 'center'\n          }\n        });\n      });\n\n      if (response?.status === 200 && selectedNodeObj) {\n        const updatedNode = response.data.find(\n          (d) => d.id === selectedNodeObj.id\n        );\n\n        const updatedSelectedNode = { ...selectedNodeFromStore };\n        updatedSelectedNode.nodeObj = updatedNode;\n        setSelectedNodeForStore(updatedSelectedNode);\n      }\n    }\n  }, [\n    enqueueSnackbar,\n    fetchEntityData,\n    selectedEntity,\n    selectedNodeObj,\n    setSelectedNodeForStore,\n    selectedNodeFromStore\n  ]);\n\n  const handleOnCreate = useCallback(\n    async (values) => {\n      if (selectedEntity && selectedEntity?.unityBaseCreateMethod) {\n        const entityName = selectedEntity?.entityName;\n        if (selectedEntity.unityBaseCreateMethod) {\n          const data = { requestBody: values };\n          const response = await onCreate({ data }).catch((res) => {\n            enqueueSnackbar(res.message, {\n              variant: 'error',\n              anchorOrigin: {\n                vertical: 'top',\n                horizontal: 'center'\n              }\n            });\n          });\n\n          if (response?.status === 200) {\n            enqueueSnackbar(\n              entityName\n                ? t('actions.snackbar.entityCreated', {\n                    defaultValue: '{{entityName}} has been created',\n                    entityName\n                  })\n                : t('actions.snackbar.genericCreated', {\n                    defaultValue: 'Entity has been created'\n                  }),\n              {\n                anchorOrigin: {\n                  vertical: 'top',\n                  horizontal: 'center'\n                },\n                action: successAction\n              }\n            );\n          }\n        }\n      } else {\n        enqueueSnackbar(t('actions.errors.retrieveEntityMethods', {\n            defaultValue: 'Unable to retrieve entity methods'\n          }), {\n          variant: 'error',\n          anchorOrigin: {\n            vertical: 'top',\n            horizontal: 'center'\n          }\n        });\n      }\n    },\n    [enqueueSnackbar, onCreate, selectedEntity, successAction, t]\n  );\n\n  const handleOnUpdate = useCallback(\n    async (values, primaryKeyValues) => {\n      if (selectedEntity && selectedEntity?.unityBaseUpdateMethod) {\n        const entityName = selectedEntity?.entityName;\n\n        if (selectedEntity.unityBaseUpdateMethod) {\n          // Get primary key value object using path parameters and merge with data\n          const pathObject = getPathObject(\n            selectedEntity.unityBaseUpdateMethod.pathParameters,\n            primaryKeyValues\n          );\n          const data = { ...pathObject, requestBody: values };\n          const response = await onUpdate({ data }).catch((res) => {\n            enqueueSnackbar(res.message, {\n              variant: 'error',\n              anchorOrigin: {\n                vertical: 'top',\n                horizontal: 'center'\n              }\n            });\n          });\n\n          if (response?.status === 200) {\n            enqueueSnackbar(\n              entityName\n                ? t('actions.snackbar.entityUpdated', {\n                    defaultValue: '{{entityName}} has been updated',\n                    entityName\n                  })\n                : t('actions.snackbar.genericUpdated', {\n                    defaultValue: 'Entity has been updated'\n                  }),\n              {\n                anchorOrigin: {\n                  vertical: 'top',\n                  horizontal: 'center'\n                },\n                action: successAction\n              }\n            );\n\n            handleFetchEntityData();\n          }\n        }\n      } else {\n        enqueueSnackbar(t('actions.errors.retrieveEntityMethods', {\n            defaultValue: 'Unable to retrieve entity methods'\n          }), {\n          variant: 'error',\n          anchorOrigin: {\n            vertical: 'top',\n            horizontal: 'center'\n          }\n        });\n      }\n    },\n    [\n      selectedEntity,\n      onUpdate,\n      enqueueSnackbar,\n      t,\n      successAction,\n      handleFetchEntityData\n    ]\n  );\n\n  const handleOnCloseSideSheet = useCallback(() => {\n    if (additionalOnClose) {\n      additionalOnClose();\n    }\n    handleOnClose();\n  }, [additionalOnClose, handleOnClose]);\n\n  // const primaryKeyValues = useMemo(\n  //   () => getPrimaryKeyValues(entityAttributes, null),\n  //   [entityAttributes]\n  // );\n\n  // @TODO: Need to add a check if a promoted method for specific Entity has a static page\n  // linked to it. It can fall back to it if there is no actions page\n  const content = useMemo(() => {\n    if (page) {\n      return (\n        <DndProvider backend={HTML5Backend}>\n          <PageContainer\n            user={user}\n            key={action?.actionId}\n            pageData={page}\n            widgetParams={{\n              pageId: page?.pageId,\n              contentId: selectedNode?.properties?.searchValue,\n              nodeObj: selectedNode?.nodeObj,\n              parentNodeObj: selectedNodeParent?.nodeObj,\n              inquiryParams: selectedNode?.inquiryParams,\n              refreshTree: refreshTree,\n              requiredFieldsMap: action?.parameters?.requiredFieldMapping || {},\n              setSideSheetWidth: setWidth,\n              setSideSheetButtonLabel: setButtonLabel,\n              setSideSheetOnSubmit: setOnSubmit,\n              setSideSheetAdditionalOnClose: setAdditionalOnClose,\n              setSideSheetProps: setOtherSideSheetProps,\n              closeSideSheet: handleOnClose,\n              onCreate: onCreate,\n              onUpdate: onUpdate\n            }}\n            disableMargins={true}\n          />\n        </DndProvider>\n      );\n    } else {\n      return (\n        <ActionForm\n          key={action?.actionId}\n          entityAttributes={entityAttributes}\n          foreignKeyData={foreignKeyData}\n          onCreate={handleOnCreate}\n          closeSideSheet={handleOnClose}\n          onUpdate={handleOnUpdate}\n          crudTableEditionData={crudTableEditionData}\n          crudTableFormData={crudTableFormData}\n          udpFieldInfos={udpFieldInfos}\n        />\n      );\n    }\n  }, [\n    action,\n    crudTableEditionData,\n    crudTableFormData,\n    entityAttributes,\n    foreignKeyData,\n    handleOnClose,\n    handleOnCreate,\n    handleOnUpdate,\n    selectedNode,\n    selectedNodeParent,\n    refreshTree,\n    user,\n    page,\n    onCreate,\n    onUpdate,\n    udpFieldInfos\n  ]);\n\n  const sideSheetTitle = useMemo(() => {\n    if (action?.parameters?.pageDisplayName) {\n      return action.parameters.pageDisplayName;\n    } else if (page) {\n      return page?.name;\n    } else {\n      const entityName =\n        action?.parameters?.entityName ?? actionPanel?.entityName;\n      return action?.actionTypeId === NodeActionEnums.Create\n        ? t('actions.sideSheet.addNewTitle', {\n            defaultValue: 'Add new {{entityName}}',\n            entityName\n          })\n        : t('actions.sideSheet.editTitle', {\n            defaultValue: 'Edit {{entityName}}',\n            entityName\n          });\n    }\n  }, [action, actionPanel, page, t]);\n\n  return (\n    <SideSheet\n      open={open}\n      title={sideSheetTitle}\n      buttonLabel={t(buttonLabel)}\n      onSubmit={onSubmit}\n      onClose={handleOnCloseSideSheet}\n      width={width}\n      {...otherSideSheetProps}\n    >\n      {loadingContent || loadingPage ? (\n        <>\n          {skeleton.map((sk, index) => (\n            <React.Fragment key={index}>{sk}</React.Fragment>\n          ))}\n          <LayoutUnit unit='md' />\n          <Skeleton variant='rect' className={classes.skeletonButton} />\n        </>\n      ) : (\n        content\n      )}\n    </SideSheet>\n  );\n};\n\nActionSideSheet.propTypes = {\n  /**\n   * User object\n   */\n  user: PropTypes.object,\n  /**\n   * boolean to open/close sidesheet\n   */\n  open: PropTypes.bool,\n  /**\n   * dispatch function\n   */\n  dispatch: PropTypes.func,\n  /**\n   * selected action object\n   */\n  action: PropTypes.object,\n  /**\n   * action panels array\n   */\n  actionPanels: PropTypes.array,\n  /**\n   * catalog object\n   */\n  catalog: PropTypes.object,\n  /**\n   * Selected node object\n   */\n  selectedNodeObj: PropTypes.object\n};\n"],"mappings":"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"}