{"version":3,"file":"PowerBIReport.mjs","names":["React","useEffect","useMemo","Alert","Report","useTranslation","useIsUnityAuthenticated","useAxiosGet","LoadingOverlay","useHistory","useSetLocationState","ConfigService","PowerBIReport","props","$","_c","userIsAuthenticated","id","reportParameters","pbiReportForUnity","t0","undefined","i18n","t","history","setLocationState","t1","Symbol","for","height","reportStyle","t2","t3","tenantV2ApiUrl","productV1ApiUrl","data","reportData","loading","error","embedUrl","t4","paramsString","Object","keys","forEach","key","paramString","urlWithParameters","t5","location","state","label","defaultValue","t6","t7","t8","_temp","embedToken","reportId"],"sources":["../../src/reports/PowerBIReport.jsx"],"sourcesContent":["import React, { useEffect, useMemo } from 'react';\nimport Alert from '@material-ui/lab/Alert';\nimport { Report } from 'powerbi-report-component';\nimport { useTranslation } from 'react-i18next';\nimport { useIsUnityAuthenticated } from '../utilities/auth/useIsUnityAuthenticated';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport LoadingOverlay from '../UI/loading/LoadingOverlay';\nimport { useHistory } from 'react-router-dom';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { ConfigService } from '../configService';\n\n/**\n * @param {object} props\n * @param {string} props.id - Power BI report code\n * @param {Record<string, string>} [props.reportParameters] - Report parameters appended to the embed URL\n * @param {boolean} [props.pbiReportForUnity=false] - When true, resolves report access through the Unity TenantService endpoint instead of the product API\n */\nexport const PowerBIReport = (props) => {\n  const userIsAuthenticated = useIsUnityAuthenticated();\n  const { id, reportParameters, pbiReportForUnity = false } = props;\n  const i18n = useTranslation().t;\n  const history = useHistory();\n  const setLocationState = useSetLocationState();\n\n  const reportStyle = {\n    height: 'calc(100vh - 51px)'\n  };\n\n  const [{ data: reportData, loading, error }] = useAxiosGet(\n    pbiReportForUnity\n      ? ConfigService.tenantV2ApiUrl\n      : ConfigService.productV1ApiUrl,\n    pbiReportForUnity ? `PBIReport/Access/${id}` : `UdpPBIReport/Access/${id}`,\n    {},\n    !!!userIsAuthenticated || !!!id,\n    false\n  );\n\n  const urlWithParameters = useMemo(() => {\n    if (reportData?.embedUrl) {\n      if (reportParameters) {\n        let paramsString = '';\n        Object.keys(reportParameters).forEach((key) => {\n          const paramString = `&rp:${key}=${reportParameters[key]}`;\n          paramsString += paramString;\n        });\n        return reportData.embedUrl + paramsString;\n      } else {\n        return reportData.embedUrl;\n      }\n    } else return '';\n  }, [reportData?.embedUrl, reportParameters]);\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 (!history?.location?.state) {\n      setLocationState({\n        label: i18n('reports.powerbi.report', { defaultValue: 'Report' })\n      });\n    }\n  }, [setLocationState, i18n, history]);\n\n  if (loading) return <LoadingOverlay />;\n\n  if (error) {\n    return (\n      <Alert severity='error' onClose={() => {}}>\n        {i18n('reports.powerbi.loadError', {\n          defaultValue: 'An error occurred while loading the report.'\n        })}\n      </Alert>\n    );\n  }\n\n  if (!userIsAuthenticated) return null;\n\n  if (\n    !reportData ||\n    !reportData.embedToken ||\n    !urlWithParameters ||\n    !reportData.reportId\n  ) {\n    //If no report is found, should we display something?\n    //Right now it will display a blank screen\n    return <div />;\n  }\n\n  return (\n    <Report\n      key={reportData.reportId}\n      embedType='report'\n      tokenType='Embed'\n      accessToken={reportData.embedToken}\n      embedUrl={urlWithParameters}\n      embedId={reportData.reportId}\n      permissions='All'\n      style={reportStyle}\n    />\n  );\n};\n"],"mappings":"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"}