{"version":3,"file":"PageContainer.mjs","names":["React","useCallback","useEffect","useMemo","useState","Redirect","Page","makeStyles","Card","CircularProgress","Alert","PrimaryActionHeader","PageContextProvider","useAxiosGet","DndProvider","HTML5Backend","v4","uuid","useTranslation","useSetLocationState","ConfigService","useUser","useStyles","theme","root","marginTop","props","disableMargins","spacing","marginRight","marginLeft","height","overflow","staticRoot","title","flex","marginBottom","icon","loadingContent","display","flexDirection","alignItems","justifyContent","loadingHeight","PageContainer","$","_c","widgetParams","redirectSlug","pageData","pageLoading","t0","disableMargin","t1","location","fromMenu","t2","isHomePage","t3","pageId","id","updateLocationState","t4","autoHeight","undefined","user","classes","page","setPage","t5","Symbol","for","alertWarnings","setAlertWarnings","params","state","t6","pathname","replace","pathPageId","PageId","t","setLocationState","t7","t8","tenantV1ApiUrl","data","pageInfo","loading","pageInfoLoading","t9","t10","currentTenantId","config","UNITY_PRODUCT_ID","homePage","t11","id_0","prevWarnings","filter","warning","removeWarning","t12","t13","widgetParams_0","requiredFields","fieldsStr","trim","warnings","requiredFieldsMap","nodeObj","fields","split","map","_temp","missingRequiredFieldNames","forEach","fieldName","requiredField","value","push","type","name","message","defaultValue","getRequiredFieldWarnings","InquiryTreeId","entityName","pbiReportCode","pbiReportForUnity","queryId","requiredFieldMapping","udpTagId","widgets","Object","keys","JSON","parse","key","widgetStr","widget","length","w","inquiryTreeId","gridProperties","pageTypeId","pages","t14","t15","t16","warnings_0","key_0","widgetStr_0","widget_0","w_0","requiredParameters","t17","t18","t19","label","t20","t21","t22","showPageName","Number","warning_0","t23","t24","t25","str"],"sources":["../../../src/page/PageContainer/PageContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport Page from '../Page';\nimport { makeStyles, Card, CircularProgress } from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\nimport { PrimaryActionHeader } from '../../UI/utilityDisplay/utilityHeader/PrimaryActionHeader';\nimport { PageContextProvider } from '../../contexts/PageContext.tsx';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { v4 as uuid } from 'uuid';\nimport { useTranslation } from 'react-i18next';\nimport { useSetLocationState } from '../../hooks/useSetLocationState';\nimport { ConfigService } from '../../configService';\nimport { useUser } from '../../utilities/auth/useUser';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {\n    marginTop: (props) => (props.disableMargins ? 0 : theme.spacing(3)),\n    marginRight: (props) => (props.disableMargins ? 0 : theme.spacing(3)),\n    marginLeft: (props) => (props.disableMargins ? 0 : theme.spacing(3)),\n    height: (props) => props.height ?? '100%',\n    overflow: (props) => props.height && 'auto'\n  },\n  staticRoot: {\n    marginTop: 0,\n    marginRight: 0,\n    marginLeft: 0,\n    height: (props) => props.height ?? '100%',\n    overflow: (props) => props.height && 'auto'\n  },\n  title: {\n    flex: 1,\n    marginBottom: theme.spacing(1)\n  },\n  icon: {\n    marginTop: theme.spacing(-2.5)\n  },\n  loadingContent: {\n    flex: 1,\n    display: 'flex',\n    flexDirection: 'column',\n    alignItems: 'center',\n    justifyContent: 'center',\n    height: (props) =>\n      props.loadingHeight ? props.loadingHeight : 'calc(100vh - 160px)'\n  }\n}));\n\nexport const PageContainer = (props) => {\n  const {\n    widgetParams,\n    redirectSlug,\n    pageData,\n    pageLoading = false,\n    disableMargin = true,\n    location,\n    fromMenu = false,\n    loadingHeight,\n    isHomePage = false,\n    pageId: id,\n    updateLocationState = true,\n    autoHeight,\n  } = props;\n  const user = useUser();\n  const classes = useStyles(props);\n  const [page, setPage] = useState(null);\n  const [alertWarnings, setAlertWarnings] = useState([]);\n  const params = location?.state?.params;\n  const pathPageId = location?.pathname?.replace('/page/', '');\n  const pageId =\n    (pathPageId === '/' ? null : pathPageId) || params?.PageId || id;\n  const { t } = useTranslation();\n  const setLocationState = useSetLocationState();\n\n  const [{ data: pageInfo, loading: pageInfoLoading }] = useAxiosGet(\n    ConfigService.tenantV1ApiUrl,\n    `page/${pageId}`,\n    {},\n    !!!pageId,\n    false\n  );\n\n  const [\n    { data: homePage, loading: homePageLoading, error: homePageError },\n    refetchHomePage\n  ] = useAxiosGet(\n    ConfigService.tenantV1ApiUrl,\n    `page/homePage?tenantId=${user?.currentTenantId}&productId=${ConfigService.config.UNITY_PRODUCT_ID}`,\n    {},\n    !isHomePage,\n    false\n  );\n\n  const removeWarning = useCallback((id) => {\n    setAlertWarnings((prevWarnings) =>\n      prevWarnings.filter((warning) => warning.id !== id)\n    );\n  }, []);\n\n  const getRequiredFieldWarnings = useCallback(\n    (requiredFields = '', widgetParams) => {\n      const fieldsStr = requiredFields || '';\n      if (!fieldsStr.trim()) {\n        return;\n      }\n\n      const warnings = [];\n      const requiredFieldsMap = widgetParams?.requiredFieldsMap || {};\n      const nodeObj = widgetParams?.nodeObj || {};\n      const fields = fieldsStr.split(',').map((str) => str.trim());\n      const missingRequiredFieldNames = [];\n\n      fields.forEach((fieldName) => {\n        const requiredField = requiredFieldsMap[fieldName];\n        if (!requiredField?.value) {\n          missingRequiredFieldNames.push(fieldName);\n        } else {\n          if (\n            requiredField.type === 'entity' &&\n            (nodeObj[requiredField.value] === undefined ||\n              nodeObj[requiredField.value] === null)\n          ) {\n            missingRequiredFieldNames.push(fieldName);\n          }\n        }\n      });\n\n      missingRequiredFieldNames.forEach((name) => {\n        warnings.push({\n          id: uuid(),\n          message: t('page.container.fieldMissingValue', {\n            defaultValue: '{{name}} field is missing a value',\n            name\n          })\n        });\n      });\n      return warnings;\n    },\n    [t]\n  );\n\n  const pages = useMemo(\n    () =>\n      page?.widgets &&\n      Object.keys(JSON.parse(page.widgets)).map((key) => {\n        // Static Page\n        const widgetStr = JSON.parse(page.widgets)[key];\n        const widget = widgetStr ? JSON.parse(widgetStr) : null;\n        if (widget?.length) {\n          widget.forEach((w) => {\n            // Add additional parameters from menu. Will get overwriten if\n            // key exists in page widget parms\n            if (pageId) {\n              w.params = {\n                entityName: params?.entityName,\n                pbiReportCode: params?.pbiReportCode,\n                pbiReportForUnity: params?.pbiReportForUnity,\n                queryId: params?.queryId,\n                inquiryTreeId: params?.InquiryTreeId,\n                udpTagId: params?.udpTagId,\n                requiredFieldsMap: params?.requiredFieldMapping,\n                ...w.params\n              };\n            }\n            if (widgetParams) {\n              w.params = { ...w.params, ...widgetParams };\n            }\n          });\n        }\n        return (\n          <DndProvider\n            backend={HTML5Backend}\n            key={pageId ? `${key}-${params?.entityName}` : key}\n          >\n            <Page\n              user={user}\n              gridConfig={JSON.parse(page.gridProperties)[key]}\n              widgetConfig={widget}\n              disableMargin={disableMargin}\n              autoHeight={autoHeight}\n              pageTypeId={page.pageTypeId}\n            />\n          </DndProvider>\n        );\n      }),\n    [\n      page,\n      user,\n      widgetParams,\n      disableMargin,\n      pageId,\n      params,\n      autoHeight,\n    ]\n  );\n\n  useEffect(() => {\n    if (pageId) {\n      if (pageInfo) {\n        setPage(pageInfo);\n      }\n    } else if (homePage) {\n      setPage(homePage);\n    } else {\n      setPage(pageData);\n    }\n    setAlertWarnings([]);\n  }, [pageId, pageInfo, pageData, homePage]);\n\n  useEffect(() => {\n    if (page?.widgets) {\n      let warnings = [];\n      Object.keys(JSON.parse(page.widgets)).forEach((key) => {\n        // Static Page\n        const widgetStr = JSON.parse(page.widgets)[key];\n        const widget = widgetStr ? JSON.parse(widgetStr) : null;\n        if (widget?.length) {\n          widget.forEach((w) => {\n            // Add additional parameters from menu. Will get overwriten if\n            // key exists in page widget parms\n            if (pageId) {\n              w.params = {\n                entityName: params?.entityName,\n                pbiReportCode: params?.pbiReportCode,\n                pbiReportForUnity: params?.pbiReportForUnity,\n                queryId: params?.queryId,\n                inquiryTreeId: params?.InquiryTreeId,\n                udpTagId: params?.udpTagId,\n                requiredFieldsMap: params?.requiredFieldMapping,\n                ...w.params\n              };\n            }\n            if (widgetParams) {\n              w.params = { ...w.params, ...widgetParams };\n            }\n            // Adding condition to compare pageId's\n            if (fromMenu || page?.pageId === widgetParams?.pageId) {\n              warnings = getRequiredFieldWarnings(\n                w.requiredParameters,\n                w.params\n              );\n            }\n          });\n        }\n      });\n      setAlertWarnings(warnings);\n    }\n  }, [page, widgetParams, pageId, params, fromMenu, getRequiredFieldWarnings]);\n\n  // Setting location state label so that if this page was saved to favorites\n  // we can determine the bread crumb\n  useEffect(() => {\n    if (page && updateLocationState) {\n      setLocationState({ label: t(page?.name) });\n    }\n  }, [setLocationState, t, page, updateLocationState]);\n\n  if (redirectSlug && !pageData) {\n    return <Redirect to={redirectSlug} />;\n  }\n\n  if (pageInfoLoading || pageLoading) {\n    return (\n      <div className={classes.loadingContent}>\n        <CircularProgress size={loadingHeight || 64} />\n      </div>\n    );\n  }\n\n  return (\n    <>\n      {page?.showPageName && (\n        <Card variant={'outlined'}>\n          <PrimaryActionHeader title={page.name} hidePAB single />\n        </Card>\n      )}\n      <div\n        className={Number(page?.pageTypeId) === 1 ? classes.staticRoot : classes.root}\n      >\n        {alertWarnings?.length > 0 &&\n          alertWarnings.map((warning) => (\n            <Alert\n              key={warning.id}\n              onClose={() => removeWarning(warning.id)}\n              severity='warning'\n            >\n              {warning.message || ''}\n            </Alert>\n          ))}\n        <PageContextProvider>{pages}</PageContextProvider>\n      </div>\n    </>\n  );\n};\n"],"mappings":"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"}