{"version":3,"file":"ActionProvider.mjs","names":["React","useCallback","useEffect","useMemo","useReducer","useState","createPortal","ActionContext","ActionDispatchContext","ActionWrapper","apiMutate","NodeActionEnums","useAuthedUser","useAxiosGet","useDefaultFormValues","ActionLoadingContext","ActionLoadingDispatchContext","LoadingOverlay","useHistory","usePromotedLookupMethods","useCatalogStore","useActionStore","useShellStore","ConfigService","usePromotedMethodEntities","emptyAction","action","actionId","payload","actionPanels","catalog","catalogPromise","catalogEntities","catalogPromotedEntities","menuListState","menuList","handleRemoveMenuItem","selectedMenuIndex","modal","open","title","inquiryParams","selectedNode","selectedNodeParent","refreshTree","showInquiryHeaderActions","sideSheet","splitScreen","type","params","pageSplitScreen","pageContainerSplitScreen","setCurrentEntityName","newRouteEmptyAction","selectedNodeObj","emptyActionLoading","loading","waitingToExecute","ActionProvider","props","$","_c","domRoot","children","user","history","apiCatalogId","setApiCatalogId","t0","Symbol","for","foreignKeyData","setForeignKeyData","actionPanel","setActionPanel","currentEntityName","currentLocationPathname","setCurrentLocationPathname","location","pathname","data","promotedMethodEntities","_temp","currentContainerId","_temp2","setCurrentApiCatalogId","_temp3","t1","t2","integrationV1ApiUrl","currentTenantId","config","UNITY_PRODUCT_ID","tpacb","tpacbLoading","t3","state_2","reducerAction","bb23","containerIdToUse","containerId","updatedActionPanels","state","initialContainerId","updatedInquiryParams","Error","actionState","dispatch","actionLoadingState","dispatchActionLoading","_temp4","t4","t5","length","selectedAction","entityName","t6","t7","integrationV2ApiUrl","catalogObject","t8","properties","entityAttributes","defaultFormValues","crudTableFormData","setCrudTableFormData","t9","bb0","nodeObj","actionTypeId","Update","crudTableEditionData","t10","t11","executeAction","_temp5","t12","inquiryActions","t13","t14","t15","t16","find","ap","panelActions","pa","t17","t18","t19","t20","listen","t21","t22","actionLoading","t23","t24","t25","t26","t27","state_0","state_1","state_3","reducerAction_0","bb58","id","method"],"sources":["../../../src/utilities/provider/ActionProvider.jsx"],"sourcesContent":["import React, {\n  useCallback,\n  useEffect,\n  useMemo,\n  useReducer,\n  useState\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { ActionContext } from '../../contexts/ActionContext';\nimport { ActionDispatchContext } from '../../contexts/ActionDispatchContext';\nimport { ActionWrapper } from '../../actions/ActionWrapper';\nimport { apiMutate } from '../useAxiosMutate';\nimport { NodeActionEnums } from '../../enums/unitySystemEnums';\nimport { useAuthedUser } from '../auth/useAuthedUser';\nimport { useAxiosGet } from '../useAxiosGet';\nimport useDefaultFormValues from '../crud/useDefaultFormValues';\nimport { ActionLoadingContext } from '../../contexts/ActionLoadingContext';\nimport { ActionLoadingDispatchContext } from '../../contexts/ActionLoadingDispatchContext';\nimport LoadingOverlay from '../../UI/loading/LoadingOverlay';\nimport { useHistory } from 'react-router-dom';\nimport { usePromotedLookupMethods } from '../../hooks/usePromotedLookupMethods';\nimport { useCatalogStore } from '../../stores/catalogStore';\nimport { useActionStore } from '../../stores/actionStore';\nimport { useShellStore } from '../../stores/shellStore';\nimport { ConfigService } from '../../configService';\nimport { usePromotedMethodEntities } from '../../hooks/usePromotedMethodEntities';\n\nconst emptyAction = {\n  action: {\n    actionId: '',\n    payload: null\n  },\n  actionPanels: {},\n  catalog: null,\n  catalogPromise: null,\n  catalogEntities: [],\n  catalogPromotedEntities: [],\n  menuListState: {\n    menuList: [],\n    handleRemoveMenuItem: () => {},\n    selectedMenuIndex: null\n  },\n  modal: {\n    open: false,\n    action: null,\n    title: ''\n  },\n  inquiryParams: {\n    0: {\n      selectedNode: null,\n      selectedNodeParent: null,\n      refreshTree: null\n    }\n  },\n  showInquiryHeaderActions: true,\n  sideSheet: {\n    open: false,\n    action: null\n  },\n  splitScreen: {\n    open: false,\n    action: null,\n    type: null,\n    params: null\n  },\n  pageSplitScreen: {\n    open: false,\n    action: null,\n    type: null,\n    params: null\n  },\n  pageContainerSplitScreen: {\n    open: false,\n    action: null,\n    type: null,\n    params: null\n  },\n  setCurrentEntityName: null\n};\n\nconst newRouteEmptyAction = {\n  action: {\n    actionId: '',\n    payload: null\n  },\n  actionPanels: {},\n  menuListState: {\n    menuList: [],\n    handleRemoveMenuItem: () => {},\n    selectedMenuIndex: null\n  },\n  modal: {\n    open: false,\n    action: null,\n    title: ''\n  },\n  selectedNodeObj: null,\n  inquiryParams: {\n    0: {\n      selectedNode: null,\n      selectedNodeParent: null,\n      refreshTree: null\n    }\n  },\n  showInquiryHeaderActions: true,\n  sideSheet: {\n    open: false,\n    action: null\n  },\n  splitScreen: {\n    open: false,\n    action: null,\n    type: null,\n    params: null\n  },\n  pageSplitScreen: {\n    open: false,\n    action: null,\n    type: null,\n    params: null\n  },\n  pageContainerSplitScreen: {\n    open: false,\n    action: null,\n    type: null,\n    params: null\n  }\n};\n\nconst emptyActionLoading = {\n  loading: false,\n  waitingToExecute: ''\n};\n\nexport const ActionProvider = (props) => {\n  const { domRoot, children } = props;\n  const user = useAuthedUser();\n  const history = useHistory();\n\n  const [apiCatalogId, setApiCatalogId] = useState(null);\n  const [foreignKeyData, setForeignKeyData] = useState([]);\n  const [actionPanel, setActionPanel] = useState(null);\n  const [currentEntityName, setCurrentEntityName] = useState(null);\n  const [currentLocationPathname, setCurrentLocationPathname] = useState(\n    history?.location?.pathname\n  );\n  const { data: promotedMethodEntities } =\n    usePromotedMethodEntities(apiCatalogId);\n\n  const selectedNode = useActionStore((state) => state.selectedNode);\n  const currentContainerId = useShellStore((state) => state.currentContainerId);\n\n  // Set the lookup api method Id for the application\n  usePromotedLookupMethods(apiCatalogId);\n\n  const setCurrentApiCatalogId = useCatalogStore(\n    (state) => state.setCurrentApiCatalogId\n  );\n\n  const [{ data: tpacb, loading: tpacbLoading }] = useAxiosGet(\n    ConfigService.integrationV1ApiUrl,\n    `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n    {},\n    !user?.currentTenantId,\n    true\n  );\n\n\n\n  const [actionState, dispatch] = useReducer((state, reducerAction) => {\n    switch (reducerAction.type) {\n      case 'SET_ACTION_PANELS':\n        let containerIdToUse = 0;\n        if (reducerAction.containerId) {\n          containerIdToUse = reducerAction.containerId;\n        }\n\n        const updatedActionPanels = { ...state.actionPanels };\n        updatedActionPanels[containerIdToUse] = reducerAction.actionPanels;\n        state = {\n          ...state,\n          actionPanels: updatedActionPanels\n        };\n        break;\n      case 'OPEN_SIDESHEET':\n        state = {\n          ...state,\n          sideSheet: reducerAction.sideSheet\n        };\n        break;\n      case 'OPEN_MODAL':\n        state = {\n          ...state,\n          modal: reducerAction.modal\n        };\n        break;\n      case 'CLOSE_ALL_SPLIT_SCREENS':\n        state = {\n          ...state,\n          splitScreen: { open: false, action: null, type: null, params: null },\n          pageSplitScreen: {\n            open: false,\n            action: null,\n            type: null,\n            params: null\n          },\n          pageContainerSplitScreen: {\n            open: false,\n            action: null,\n            type: null,\n            params: null\n          }\n        };\n        break;\n      case 'OPEN_SPLIT_SCREEN':\n        state = {\n          ...state,\n          splitScreen: reducerAction.splitScreen\n        };\n        break;\n      case 'OPEN_PAGE_SPLIT_SCREEN':\n        state = {\n          ...state,\n          pageSplitScreen: reducerAction.pageSplitScreen\n        };\n        break;\n      case 'OPEN_PAGE_CONTAINER_SPLIT_SCREEN':\n        state = {\n          ...state,\n          pageContainerSplitScreen: reducerAction.pageContainerSplitScreen\n        };\n        break;\n      case 'SET_CATALOG_ENTITIES':\n        state = {\n          ...state,\n          catalogEntities: reducerAction.catalogEntities\n        };\n        break;\n      case 'SET_CATALOG_PROMOTED_ENTITIES':\n        state = {\n          ...state,\n          catalogPromotedEntities: reducerAction.catalogPromotedEntities\n        };\n        break;\n      case 'SET_INQUIRY_PARAMS':\n        let initialContainerId = 0;\n        if (reducerAction.containerId) {\n          initialContainerId = reducerAction.containerId;\n        }\n\n        const updatedInquiryParams = { ...state.inquiryParams };\n        updatedInquiryParams[initialContainerId] = reducerAction.inquiryParams;\n        state = {\n          ...state,\n          inquiryParams: updatedInquiryParams\n        };\n        break;\n      case 'SET_SHOW_INQUIRY_HEADER_ACTIONS':\n        state = {\n          ...state,\n          showInquiryHeaderActions: reducerAction.showInquiryHeaderActions\n        };\n        break;\n      case 'SET_MENU_LIST_STATE':\n        state = {\n          ...state,\n          menuListState: reducerAction.menuListState\n        };\n        break;\n      case 'SET_ACTION_STATE_FOR_NEW_ROUTE':\n        state = {\n          ...state,\n          ...newRouteEmptyAction\n        };\n        break;\n      default:\n        throw new Error(`Unknown action type ${reducerAction.type}`);\n    }\n    state = {\n      ...state,\n      setCurrentEntityName: setCurrentEntityName\n    };\n    return state;\n  }, emptyAction);\n\n  const [actionLoadingState, dispatchActionLoading] = useReducer(\n    (state, reducerAction) => {\n      switch (reducerAction.type) {\n        case 'SET_ACTION_LOADING':\n          state = {\n            ...state,\n            loading: reducerAction.loading\n          };\n          break;\n        case 'SET_ACTION_WAITING_TO_EXECUTE':\n          state = {\n            ...state,\n            waitingToExecute: reducerAction.actionId\n          };\n          break;\n        default:\n          throw new Error(`Unknown action loading type ${reducerAction.type}`);\n      }\n      return state;\n    },\n    emptyActionLoading\n  );\n  // Feed the promoted entities into reducer state from the provider's own\n  // read. The v1 Inquiry page dispatches the same rows (same endpoint) when it\n  // is mounted, but it was the ONLY writer, so provider-hosted surfaces\n  // (reminders, notes) had no methods anywhere else — an Inquiry v2 page, a\n  // dashboard widget. Both writers may run; they carry identical data.\n  useEffect(() => {\n    if (promotedMethodEntities?.length) {\n      dispatch({\n        type: 'SET_CATALOG_PROMOTED_ENTITIES',\n        catalogPromotedEntities: promotedMethodEntities\n      });\n    }\n  }, [promotedMethodEntities]);\n\n  const action = useMemo(() => {\n    let selectedAction = null;\n    if (actionState) {\n      if (actionState.modal?.action) {\n        selectedAction = actionState.modal.action;\n      }\n      if (actionState.sideSheet?.action) {\n        selectedAction = actionState.sideSheet.action;\n      }\n      if (actionState.splitScreen?.action) {\n        selectedAction = actionState.splitScreen.action;\n      }\n      if (actionState.pageSplitScreen?.action) {\n        selectedAction = actionState.pageSplitScreen.action;\n      }\n      if (actionState.pageContainerSplitScreen?.action) {\n        selectedAction = actionState.pageContainerSplitScreen.action;\n      }\n    }\n\n    return selectedAction;\n  }, [actionState]);\n\n  const entityName = useMemo(() => {\n    return actionPanel ? actionPanel.entityName : currentEntityName;\n  }, [actionPanel, currentEntityName]);\n\n  const [{ data: catalogObject }] = useAxiosGet(\n    ConfigService.integrationV2ApiUrl,\n    `apiCatalog/${apiCatalogId}/catalogObject/${entityName}`,\n    {},\n    !!!apiCatalogId || !!!entityName,\n    false\n  );\n\n  const entityAttributes = useMemo(() => {\n    return catalogObject?.properties ?? [];\n  }, [catalogObject]);\n\n  const { defaultFormValues } = useDefaultFormValues(entityAttributes);\n  const [crudTableFormData, setCrudTableFormData] = useState(defaultFormValues);\n\n  const crudTableEditionData = useMemo(() => {\n    if (\n      selectedNode?.nodeObj &&\n      action &&\n      action.actionTypeId === NodeActionEnums.Update\n    ) {\n      return selectedNode.nodeObj;\n    }\n    return null;\n  }, [action, selectedNode]);\n\n  // Sync the form seed as an effect, not inside the memo (setState during\n  // render triggered \"Cannot update a component while rendering\" whenever a\n  // surface opened). defaultFormValues is referentially stable per schema.\n  useEffect(() => {\n    setCrudTableFormData(crudTableEditionData ?? defaultFormValues);\n  }, [crudTableEditionData, defaultFormValues]);\n\n  const executeAction = useCallback(\n    async (data, id) =>\n      apiMutate(\n        ConfigService.integrationV1ApiUrl,\n        `apimethod/executeQueryWithParameters/${id}`,\n        {\n          method: 'post'\n        },\n        data\n      ),\n    []\n  );\n\n  const inquiryActions = (\n    <ActionWrapper\n      action={action}\n      actionState={actionState}\n      actionPanel={actionPanel}\n      dispatch={dispatch}\n      apiCatalogId={apiCatalogId}\n      executeAction={executeAction}\n      splitScreenBody={children}\n      entityAttributes={entityAttributes}\n      foreignKeyData={foreignKeyData}\n      setForeignKeyData={setForeignKeyData}\n      crudTableEditionData={crudTableEditionData}\n      crudTableFormData={crudTableFormData}\n    />\n  );\n\n  useEffect(() => {\n    if (tpacb) {\n      setApiCatalogId(tpacb.apiCatalogId);\n      setCurrentApiCatalogId(tpacb.apiCatalogId);\n    }\n  }, [tpacb, setCurrentApiCatalogId]);\n\n  useEffect(() => {\n    if (action && actionState) {\n      setActionPanel(\n        actionState?.actionPanels[currentContainerId || 0]?.find((ap) =>\n          ap.panelActions.find((pa) => pa.actionId === action.actionId)\n        )\n      );\n    }\n  }, [action, actionState, currentContainerId]);\n\n  useEffect(\n    () =>\n      dispatchActionLoading({\n        type: 'SET_ACTION_LOADING',\n        loading:  tpacbLoading\n      }),\n    [tpacbLoading]\n  );\n\n  // listening to route changes to reset specific properties in the action state\n  useEffect(() => {\n    if (history) {\n      return history.listen((location) => {\n        if (currentLocationPathname !== location.pathname) {\n          setCurrentLocationPathname(location.pathname);\n          dispatch({\n            type: 'SET_ACTION_STATE_FOR_NEW_ROUTE'\n          });\n        }\n      });\n    }\n  }, [history, currentLocationPathname]);\n\n  const actionLoading = useMemo(\n    () => <LoadingOverlay open={!!actionLoadingState.waitingToExecute} />,\n    [actionLoadingState]\n  );\n\n  return (\n    <>\n      {actionLoading}\n      <ActionContext.Provider value={actionState}>\n        <ActionDispatchContext.Provider value={dispatch}>\n          <ActionLoadingContext.Provider value={actionLoadingState}>\n            <ActionLoadingDispatchContext.Provider\n              value={dispatchActionLoading}\n            >\n              {domRoot ? createPortal(inquiryActions, domRoot) : inquiryActions}\n            </ActionLoadingDispatchContext.Provider>\n          </ActionLoadingContext.Provider>\n        </ActionDispatchContext.Provider>\n      </ActionContext.Provider>\n    </>\n  );\n};\n"],"mappings":"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"}