{"version":3,"file":"AuthProvider.mjs","names":["React","useEffect","useState","initSignInAuthProvider","getSignInAuthProvider","LoadingIndicator","MsalProvider","useHistory","CustomNavigationClient","useLocation","UserProvider","useRouteRegistry","matchPath","useIsRoutePublic","location","routeRegistry","patterns","Object","keys","routeMap","matchingPattern","find","pattern","pathname","path","exact","strict","isPublic","undefined","AuthProvider","children","doNotWaitForTenant","msalInstance","setMsalInstance","isInitialized","setIsInitialized","history","isRoutePublic","resolvedIsPublic","initialize","authProvider","navigationClient","setNavigationClient","redirectResult","handleRedirectPromise","account","setActiveAccount","error","console"],"sources":["../../../src/utilities/auth/AuthProvider.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n  initSignInAuthProvider,\n  getSignInAuthProvider,\n} from './signInAuthProvider';\nimport { LoadingIndicator } from '../../UI/loading/LoadingIndicator';\nimport { MsalProvider } from '@azure/msal-react';\nimport { useHistory } from 'react-router-dom';\nimport CustomNavigationClient from '../CustomNavigationClient';\nimport { useLocation } from 'react-use';\nimport UserProvider from './UserProvider';\nimport { useRouteRegistry } from '../../routes/routeRegistryStore';\nimport { matchPath } from 'react-router-dom';\n\nconst useIsRoutePublic = () => {\n  const location = useLocation();\n  const routeRegistry = useRouteRegistry();\n\n  const patterns = Object.keys(routeRegistry.routeMap);\n  const matchingPattern = patterns.find(pattern =>\n    matchPath(location.pathname, {\n      path: pattern,\n      exact: true,\n      strict: false\n    })\n  );\n\n  return matchingPattern\n    ? routeRegistry.routeMap[matchingPattern]?.isPublic\n    : undefined;\n}\n\nexport const AuthProvider = ({ children, doNotWaitForTenant = true }) => {\n  const [msalInstance, setMsalInstance] = useState(null);\n  const [isInitialized, setIsInitialized] = useState(false);\n\n  const history = useHistory();\n  const isRoutePublic = useIsRoutePublic();\n  const resolvedIsPublic = isRoutePublic ?? true;\n\n  useEffect(() => {\n    const initialize = async () => {\n      try {\n        await initSignInAuthProvider();\n        const authProvider = getSignInAuthProvider();\n        const navigationClient = new CustomNavigationClient(history);\n        authProvider.setNavigationClient(navigationClient);\n        try {\n          const redirectResult = await authProvider.handleRedirectPromise();\n          if (redirectResult?.account) {\n            authProvider.setActiveAccount(redirectResult.account);\n          }\n        } catch (error) {\n          console.error('[AuthProvider] Redirect handling failed:', error);\n        }\n        setMsalInstance(authProvider);\n        setIsInitialized(true);\n      } catch (error) {\n        console.error('Failed to initialize AuthProvider:', error);\n      }\n    };\n    initialize();\n  }, [history]);\n\n  if (!isInitialized) {\n    return <LoadingIndicator />;\n  }\n\n  return (\n    <MsalProvider instance={msalInstance}>\n      <UserProvider\n        isWhiteListed={resolvedIsPublic}\n        doNotWaitForTenant={doNotWaitForTenant}\n      >\n        {children}\n      </UserProvider>\n    </MsalProvider>\n  );\n};\n"],"mappings":";;;;;;;;;;AAcA,MAAMa,yBAAmB;CACvB,MAAAC,WAAiBL,eAAa;CAC9B,MAAAM,gBAAsBJ,kBAAkB;CAGxC,MAAAS,kBADiBH,OAAMC,KAAMH,cAAaI,SAAU,CACpBE,MAAMC,YACpCV,UAAUE,SAAQS,UAAW;EAAAC,MACrBF;EAAOG,OACN;EAAIC,QACH;EACT,CACH,CAAC;AAAC,QAEKN,kBACHL,cAAaI,SAAUC,kBAA0BO,WAD9CC,KAAAA;;AAKT,MAAaC,gBAAgB,EAAEC,UAAUC,qBAAqB,WAAW;CACvE,MAAM,CAACC,cAAcC,mBAAmB/B,SAAS,KAAK;CACtD,MAAM,CAACgC,eAAeC,oBAAoBjC,SAAS,MAAM;CAEzD,MAAMkC,UAAU7B,YAAY;CAE5B,MAAM+B,mBADgBzB,kBAAkB,IACE;AAE1CZ,iBAAgB;EACd,MAAMsC,aAAa,YAAY;AAC7B,OAAI;AACF,UAAMpC,wBAAwB;IAC9B,MAAMqC,eAAepC,uBAAuB;IAC5C,MAAMqC,mBAAmB,IAAIjC,uBAAuB4B,QAAQ;AAC5DI,iBAAaE,oBAAoBD,iBAAiB;AAClD,QAAI;KACF,MAAME,iBAAiB,MAAMH,aAAaI,uBAAuB;AACjE,SAAID,gBAAgBE,QAClBL,cAAaM,iBAAiBH,eAAeE,QAAQ;aAEhDE,SAAO;AACdC,aAAQD,MAAM,4CAA4CA,QAAM;;AAElEd,oBAAgBO,aAAa;AAC7BL,qBAAiB,KAAK;YACfY,OAAO;AACdC,YAAQD,MAAM,sCAAsCA,MAAM;;;AAG9DR,cAAY;IACX,CAACH,QAAQ,CAAC;AAEb,KAAI,CAACF,cACH,QAAO,sBAAA,cAAC,kBAAA,KAAmB;AAG7B,QACE,sBAAA,cAAC,cAAD,EAAc,UAAUF,cAOT,EANb,sBAAA,cAAC,cAAD;EACE,eAAeM;EACKP;EAGR,EADXD,SACW,CACD"}