{"version":3,"sources":["modules/Authentication/types/logger.typings.ts","modules/Authentication/utils/logger.ts","app/config/configuration.ts","app/config/environment.ts","common/components/ErrorPage/ErrorPage.tsx","common/components/ErrorPage/ServerErrorPage.tsx","common/components/ErrorHandler/ErrorHandler.tsx","common/constants/routes.const.ts","common/components/ErrorPage/NotFoundPage.tsx","common/components/SgHelpCenter/SgHelpCenter.tsx","common/components/SgHelpCenter/sgHelpCenter.container.tsx","common/components/Header/sgHeader.container.ts","common/components/Header/SgHeader.tsx","common/components/Header/HeaderMenu.tsx","common/components/Buttons/FeedbackButton.tsx","common/components/Header/Header.tsx","common/constants/endpoints.const.ts","common/utils/api/api.helpers.tsx","common/utils/stringify.ts","common/utils/ToastContent.tsx","common/utils/toasterNotifyer.tsx","common/utils/api/api.helper.ts","app/config/getApiServiceUrl.ts","common/utils/api/api.ts","datas/services/defaultBoardConfigs.ts","datas/services/userBoardConfigs.ts","datas/utils/TeamPaths.ts","datas/services/teamConfigs.ts","datas/services/SgBoards.ts","common/components/Logo/Logo.tsx","app/store/app.slice.ts","modules/Board/components/BoardScreen.tsx","modules/Home/components/DefaultBoardTab.tsx","modules/Home/components/UserBoardTab.tsx","modules/Home/store/home.slice.ts","modules/Home/components/HomeBoards.tsx","datas/store/datas.slice.ts","modules/Home/components/UserBoardsSearch.tsx","modules/Home/components/UserBoardItem.tsx","datas/utils/SgBoards.ts","modules/Home/components/UserBoardsModal.tsx","modules/Home/components/HomeScreen.tsx","app/components/MainScreen.tsx","common/components/Loading/Loading.tsx","modules/Authentication/store/auth.slice.ts","modules/Authentication/components/AuthProvider.tsx","modules/Authentication/utils/getWidgetBus.ts","common/ressources/IntlContext.tsx","common/ressources/GlobalContext.tsx","app/components/App.router.tsx","app/components/App.tsx","modules/Board/store/board.reducer.ts","modules/Home/store/home.reducer.ts","app/store/modules.reducer.ts","app/store/root.reducer.ts","app/store/logger.middleware.ts","app/store/api.middleware.ts","app/store/store.ts","index.tsx"],"names":["LogTypes","LogLevels","AsyncActionTypes","logConfiguration","dryRun","service","log","forceSend","setHeaders","showDebugInformation","emptyLogger","MonitoringLogger","_objectSpread","createLogMessageFromAction","_ref","meta","type","isActionCanBeLogged","Maybe","none","logger","some","getAsyncActionLogMessage","getOrElse","getActionLogMessage","logMessage","message","setCustom","feature","event","functional","name","description","technical","level","error","performance","watchKeyOrDuration","_ref2","split","indexOf","started","done","info","failed","_ref3","logType","actionName","isEmpty","length","AppConfiguration","window","getEnvironment","env","ErrorPage","props","title","titleLabel","descriptionLabel","btnLabel","actionButtonLabel","actionClicked","actionButtonClicked","emit","React","className","concat","fullscreen","href","style","border","src","height","xmlns","viewBox","fill","width","y","x","id","data-name","d","points","color","fontSize","code","lineHeight","overflow","actionButtonLink","location","onClick","paddingTop","background","backgroundSize","bottom","left","right","ServerErrorPage","ErrorHandler","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","call","state","hasError","errorMessage","undefined","_createClass","key","value","this","children","errorInfo","stack","logError","componentStack","setState","ROUTES","HOME","NOT_FOUND","FORBIDDEN","NotFoundPage","EventEmitter","addListener","history","back","SgHelpCenter","prevProps","element","document","getElementById","applicationId","setApplicationId","e","console","_this$props","userLogin","defaultRecipient","zIndex","introduction-tour","sg-connect-support","user","JSON","stringify","default-send-to","application-id","SgHelpCenterContainer","connect","ownProps","environment","auth","email","process","HeaderContainer","currentLanguage","_React$useState","_React$useState2","_slicedToArray","accountCenter","setAccountCenter","settingsDropDown","getElementsByClassName","remove","account","mode","language","authentication","HeaderMenu","collapsed","NavbarToggler","Collapse","isOpen","navbar","Nav","NavItem","NavLink","to","exact","on","FeedbackButton","createElement","helpCenter","querySelector","feedback","Header","Navbar","light","expand","onClickHome","alt","ENDPOINTS","UserBoardConfigs","DefaultBoardConfigs","TeamConfigs","getWidgetBus","widgetConfiguration","SGWTWidgetConfiguration","bus","getAuthorizationHeader","dangerouslyGetCurrentValue","stringifyParams","params","queryString","ToastContent","detail","Button","data-dismiss","aria-label","icon","genericErrorMessage","toastOptions","closeButton","toastify","arguments","toast","upperFirst","toastifySuccess","toastifyError","autoClose","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","result","__await","then","unwrapped","Error","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","getErrorMessage","_asyncToGenerator","_callee","toastMessage","_context","get","_x","apply","sgLambdaStreamToObject","sgLambdaStream","_data$shift","data","map","headers","shift","h","replace","trim","ObjectToSgLambdaStream","objectValues","content","index","join","stream","getApiServiceUrl","apiUrl","createRequest","request","includeGetDefaultHeader","url","body","requestUrl","fetch","Accept","_x2","_tryCatch","f","needToastifySuccess","returnAsJson","_toastMessage$ressour","_toastMessage$success","_args","ok","status","ressourceNotFoundMessage","t0","t1","successMessage","json","t2","createRepository","getFromAPI","endpoint","getAuthenticationHeader","getFetch","getStreamFromAPI","getStreamFetch","postStreamFromAPI","getStreamFromSG","getFromSG","_getAuthorizationHead","authorization","getUserTeamDefaultBoards","userTeamConfigIds","response","text","datas","filter","teamProfileId","_","orderBy","getUserBoardConfigsId","temp","split1","split2","getUserNameFromMail","getAllDatasets","substring","parse","getUserBoards","userBoards","b","userEmail","userId","getUserTeamPaths","userTeam","_userDept$","_userDept$2","_userDept$3","userDept","teamPathPart1","teamPathPart2","teamPathPart3","getAllUserTeamProfiles","teamPaths","find","t","getUserClosestTeamProfile","teamConfigs","bestTeamConfig","tc","currentScore","score","getSgBoards","search","owned","official","page","size","sort","q","Logo","display","initialState","currentBoard","appSlice","createSlice","reducers","cleanApp","setCurrentBoard","action","payload","app","board","modules","dispatch","_props$currentBoard3","_props$currentBoard4","iFrameWidth","isLoading","isLoaded","hasBeenOpen","progressBar","_props$currentBoard","_props$currentBoard2","sgBoardId","getCurrentBoardId","onLoadStart","setTimeout","onLoadEnd","_props$app$currentBoa","_props$datas$defaultB","defaultBoardConfigs","ProgressBar","variant","now","min","max","marginTop","margin","marginBottom","label","marginLeft","sgBoardConfigId","allowFullScreen","DefaultBoardTab","Item","role","defaultBoard","onSelectBoard","isActive","data-toggle","data-placement","data-original-title","UserBoardTab","userBoard","textOverflow","data-tooltip-id","data-tooltip-content","data-tooltip-place","homeSlice","isOpenPersonalBoardsModal","toogleUserBoardsModal","setSearchUserBoardValue","searchUserBoardsValue","home","actions","_props$datas$defaultB2","_props$datas$userBoar","mainMinHeight","innerHeight","setDimensions","handleResize","debouncedHandleResize","debounce","addEventListener","classNames","userBoardConfigs","cursor","_toConsumableArray","BoardScreen","PRIMARY_KEYS","datasSlice","updateAll","deleteAll","update","viewApps","every","delete","dataType","dataValue","onChangeSearchUserBoards","searchTerm","placeholder","onChange","target","onSelect","sgBoard","isSelected","Form","Check","toString","checked","rel","SGBoardToUserBoard","position","setUserBoards","boards","_state$allUserSgBoard","allUserSgBoards","selectedUserBoardsState","Map","_Services","dtos","onSelectSgBoard","set","newBoardsState","Modal","centered","fade","show","onHide","Body","UserBoardsSearch","Table","_state$selectedUserBo","UserBoardItem","has","Footer","data-testid","userBoardConfig","setDefaultBoards","setTeamConfigs","_props$auth$user2","_props$auth$user3","_props$auth$user$team","_props$auth$user","loggedIn","token","team","teamProfile","teamProfiles","all","tp","datasets","UserBoardsModal","HomeBoards","BLOCKING_ERRORS","relativePath","pathname","isErrorPage","includes","HomeScreen","ToastContainer","hideProgressBar","Loading","_ref$isVisible","isVisible","_ref$message","infos","authSlice","logIn","setUserInfo","_action$payload","_action$payload2","rc_local_sigle","contact_id","logOut","setToken","authReducer","reducer","authActions","AuthProvider","getInitialState","handleTokenExpired","signOut","handleOnRenewError","handleTokenChanged","handleUserConnectionChanged","userConnection","connected","mail","handleUserInfoChanged","userInfo","_this2","subscribe","publish","sgwtConnect","head","locales","en","fr","IntlProvider","_useState","useState","_useState2","locale","setLocale","useEffect","languageSubscription","lang","toLowerCase","unsubscribe","ReactIntlProvider","messages","textComponent","Fragment","GlobalContext","createContext","AppRouter","Provider","Switch","Route","path","component","MainScreen","App","store","ConnectedRouter","BrowserRouter","boardReducers","combineReducers","homeReducers","modulesReducers","rootReducer","router","connectRouter","appReducers","loggerMiddleware","do","noop","logAction","apiMiddleware","getState","getConnectedUserEmail","configureStore","createStore","configureMiddleWare","routerMiddleware","middleWares","applyMiddleware","isAuthorized","_initialize","createBrowserHistory","initialize","ReactDOM","getAuthorizationError","requestAuthorization"],"mappings":"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","file":"static/js/main.61b61d13.chunk.js","sourcesContent":["import { HttpResquestHeader } from \"common/types/api\";\nimport { Meta } from \"typescript-fsa\";\n\nexport interface BaseActionLog {\n description: string;\n event: string;\n}\n\nexport interface ActionLog extends BaseActionLog {\n level?: LogLevels;\n logType: LogTypes;\n}\n\nexport type RouterActionLog = BaseActionLog;\n\nexport type AsyncActionLog = BaseActionLog;\n\nexport type ActionLogMeta = AsyncActionLog | ActionLog | RouterActionLog;\n\nexport interface ActionMeta extends Meta {\n logger?: ActionLogMeta;\n headers?: HttpResquestHeader;\n}\n\nexport enum LogTypes {\n functional = \"functional\",\n technical = \"technical\",\n performance = \"technical\",\n feature = \"feature\",\n}\n\nexport enum LogLevels {\n debug = \"debug\",\n info = \"info\",\n warn = \"warn\",\n error = \"error\",\n fatal = \"fatal\",\n}\n\nexport enum AsyncActionTypes {\n started = \"STARTED\",\n done = \"DONE\",\n failed = \"FAILED\",\n}\n\nexport interface LogMessage {\n name: string;\n type: LogTypes;\n feature: string;\n event: string;\n description: string;\n level?: LogLevels;\n watchKeyOrDuration?: number | string;\n}\n","import {\n AsyncActionTypes,\n LogLevels,\n LogMessage,\n LogTypes,\n AsyncActionLog,\n ActionMeta,\n ActionLog,\n} from \"modules/Authentication/types/logger.typings\";\nimport { isEmpty, noop } from \"lodash\";\nimport { Logger, LogConfiguration } from \"@dcc-cli/ic-logger/dist/types\";\nimport { MonitoringLogger } from \"@dcc-cli/ic-logger/dist\";\nimport { AnyAction } from \"redux\";\nimport { Maybe } from \"maybe-monade\";\n\n/**\n * This logger is a sample of implementation.\n * By default the logger is empty, you have to implement it !\n * It parses the current dispatched action, and he logs it with the correct log level\n * We use two main dependencies:\n * maybe-moade (https://github.com/bouraine/maybe-monade#readme) for using monads\n * ic-logger (https://sgithub.fr.world.socgen/ic/ic-web-libs) for implementing the logger (which logs in Kibana)\n */\n\nconst service = { log: () => undefined, forceSend: () => undefined, setHeaders: () => undefined };\nconst logConfiguration: LogConfiguration = { dryRun: false, service, showDebugInformation: true };\n// we need to implement it !\nconst emptyLogger = new MonitoringLogger({ ...logConfiguration });\n\nexport const logAction = (action: AnyAction) => {\n createLogMessageFromAction(action).do(message => (!isEmpty(message) ? logMessage(message) : noop));\n};\n\nexport const createLogMessageFromAction = ({ meta, type }: AnyAction): Maybe => {\n if (!isActionCanBeLogged(meta, type)) {\n return Maybe.none();\n }\n const logger = meta.logger;\n return Maybe.some(\n getAsyncActionLogMessage(type, logger as AsyncActionLog).getOrElse(getActionLogMessage(type, logger as ActionLog))\n );\n};\n\nexport const logError = (error: Error, stack: string) => {\n emptyLogger.technical(\"UnknownError\", `${error.message}${stack}`, LogLevels.error);\n};\n\nexport const logMessage = (message: LogMessage): void => {\n const logger: Logger = emptyLogger.setCustom(\"feature\", message.feature).setCustom(\"event\", message.event);\n switch (message.type) {\n case LogTypes.feature:\n logger.functional(message.name, message.description);\n break;\n case LogTypes.functional:\n logger.functional(message.name, message.description);\n break;\n case LogTypes.technical:\n logger.technical(message.name, message.description, message.level ? message.level : LogLevels.error);\n break;\n case LogTypes.performance:\n logger.performance(message.name, message.description, message.watchKeyOrDuration);\n }\n};\n\nconst getAsyncActionLogMessage = (name: string, { event, description }: AsyncActionLog): Maybe => {\n const message = { name, feature: name.split(\"/\")[0], event, description };\n if (name.indexOf(AsyncActionTypes.started) >= 0 || name.indexOf(AsyncActionTypes.done) >= 0) {\n return Maybe.some({ ...message, type: LogTypes.feature, level: LogLevels.info });\n } else if (name.indexOf(AsyncActionTypes.failed) >= 0) {\n return Maybe.some({ ...message, type: LogTypes.technical, level: LogLevels.error });\n } else {\n return Maybe.none();\n }\n};\n\nconst getActionLogMessage = (name, { description, event, level, logType }: ActionLog): LogMessage => ({\n name,\n type: logType,\n feature: name.split(\"/\")[0],\n event,\n description,\n level,\n});\n\nconst isActionCanBeLogged = (meta: ActionMeta, actionName: string): boolean => {\n return !isEmpty(actionName) && actionName.split(\"/\").length > 0 && !!meta && !!meta.logger;\n};\n","type Env = \"local\" | \"homologation\" | \"iso\" | \"production\";\ntype EnvTag = \"%#environment#%\";\ntype EnvConfiguration = Env | EnvTag;\n\nexport interface AppConfiguration {\n env: EnvConfiguration;\n sgConnectConfig: SgConnectConfiguration;\n widgetConfiguration: SGWTWidgetConfiguration;\n apiUrl: string;\n apiUrlAuth: string;\n}\n\nexport interface SGWTWidgetConfiguration {\n environment: string;\n sharedCssUrls: string[];\n}\n\nexport interface SgConnectConfiguration {\n authorizationEndpoint: string;\n clientId: string;\n}\n\nconst LOCAL_CONFIGURATION = {\n env: process.env.REACT_APP_ENV,\n sgConnectConfig: {\n authorizationEndpoint: process.env.REACT_APP_AUTHORIZATION_ENDPOINT,\n clientId: process.env.REACT_APP_CLIENT_ID,\n },\n widgetConfiguration: {\n environment: process.env.REACT_APP_ENV,\n },\n apiUrl: process.env.REACT_APP_API_URL,\n};\n\nexport const AppConfiguration: AppConfiguration =\n process.env.REACT_APP_USE_EXTERNAL_CONFIG === \"true\" ? window[\"globalConfiguration\"] : LOCAL_CONFIGURATION;\n","import { Environment as LoggerEnvironment } from \"@dcc-cli/ic-logger/dist/types\";\nimport { AppConfiguration } from \"./configuration\";\n\nexport type Environment = \"test\" | \"development\" | \"homologation\" | \"iso\" | \"production\";\nexport const environment = process.env.NODE_ENV as Environment;\n\nexport const getEnvironment = (): Environment => {\n const executionMode = process.env.NODE_ENV;\n if (executionMode !== \"production\") {\n return executionMode as Environment;\n }\n return AppConfiguration.env as Environment;\n};\n\nconst mapEnvToIcLoggerEnv = (env: Environment): LoggerEnvironment => {\n switch (env) {\n case \"homologation\":\n return \"HOM\";\n case \"iso\":\n return \"ISO\";\n case \"production\":\n return \"PRD\";\n default:\n return \"HOM\";\n }\n};\n\nexport const getLoggerEnvironment = (): LoggerEnvironment => mapEnvToIcLoggerEnv(getEnvironment());\n","/* eslint-disable jsx-a11y/alt-text */\n/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable react/no-unescaped-entities */\nimport { EventEmitter } from \"events\";\nimport * as React from \"react\";\n\nexport interface ErrorPageProps {\n actionButtonLabel?: string;\n actionButtonLink?: string;\n code: number;\n descriptionLabel?: string;\n fullscreen: boolean;\n titleLabel?: string;\n actionButtonClicked?: EventEmitter;\n}\n\nconst ErrorPage: React.FC = (props: ErrorPageProps) => {\n const title = props.titleLabel || \"Something went wrong\";\n const description = props.descriptionLabel || \"An error occured. Try again.\";\n const btnLabel = props.actionButtonLabel || \"Try again\";\n\n const actionClicked = () => {\n props.actionButtonClicked!.emit(\"actionClicked\");\n };\n\n const validErrorCodeForImage = () => {\n if (props.code === 404 || props.code === 500 || props.code === 503) return props.code;\n\n return 500;\n };\n\n return (\n
\n {props.fullscreen && (\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n )}\n\n
\n
\n
\n
\n {/* Error Code */}\n
\n \n {props.code}\n \n \n {props.code}\n \n \n {props.code}\n \n \n {props.code}\n \n
\n\n {/* Message and Action Buttons */}\n
\n {/* Message */}\n
\n

{title}

\n \n {title}\n \n

{title}

\n\n {/* Mobile part */}\n

{description}

\n\n {/* Desktop part */}\n

\n {description}\n

\n\n {/* XXL part */}\n

{description}

\n
\n\n {/* Buttons */}\n
\n \n {btnLabel}\n \n
\n\n
\n \n {btnLabel}\n \n
\n
\n\n {/* Image */}\n
\n
\n
\n
\n
\n
\n
\n\n {props.fullscreen && (\n
\n
\n
\n
\n
© Societe Generale Group 2022
\n
\n
\n \n
© Societe Generale Group 2022
\n
\n \n \n )}\n \n );\n};\n\nexport default ErrorPage;\n","import * as React from \"react\";\nimport ErrorPage from \"./ErrorPage\";\n\nconst ServerErrorPage: React.FC = () => (\n \n);\n\nexport default ServerErrorPage;\n","import * as React from \"react\";\nimport { ErrorInfo } from \"react\";\nimport { logError } from \"modules/Authentication/utils/logger\";\nimport { environment } from \"app/config/environment\";\nimport ServerErrorPage from \"common/components/ErrorPage/ServerErrorPage\";\nimport ErrorPage from \"../ErrorPage/ErrorPage\";\n\ninterface State {\n hasError: boolean;\n errorMessage?: string;\n}\n\ntype Props = React.PropsWithChildren<{}>;\n\nexport class ErrorHandler extends React.Component {\n constructor(props: Props) {\n super(props);\n this.state = { hasError: false, errorMessage: undefined };\n }\n\n render() {\n if (this.state.hasError) {\n if(environment !== \"production\") {\n return ();\n }\n else {\n return ()\n }\n }\n \n return <>{this.props.children};\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n logError(error, errorInfo ? errorInfo.componentStack : undefined);\n this.setState({ hasError: true, errorMessage: error ? error.message : \" \" });\n }\n}\n","export const ROUTES = {\n HOME: \"/\",\n NOT_FOUND: \"/404\",\n FORBIDDEN: \"/403\",\n};\n\nexport default ROUTES;\n","import { EventEmitter } from \"events\";\nimport * as React from \"react\";\nimport ErrorPage from \"./ErrorPage\";\n\nconst NotFoundPage: React.FC = () => {\n const event = new EventEmitter();\n\n event.addListener(\"actionClicked\", () => {\n window.history.back();\n });\n\n return (\n \n );\n};\n\nexport default NotFoundPage;\n","import { Environment } from \"app/config/environment\";\nimport * as React from \"react\";\n\nexport type Props = React.PropsWithChildren;\n\ntype CompProps = {\n environment: Environment;\n userLogin: string;\n defaultRecipient: string;\n applicationId: string;\n};\n\nexport class SgHelpCenter extends React.Component {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n public componentDidUpdate(prevProps: Props) {\n const element = document.getElementById(\"my-help-center\");\n if (element && this.props.applicationId !== prevProps.applicationId) {\n try {\n (element as any).setApplicationId(this.props.applicationId);\n } catch (e) {\n console.log(e);\n }\n }\n }\n\n public render() {\n const { userLogin, defaultRecipient, applicationId, children } = this.props;\n return (\n <>\n {children}\n {applicationId && (\n \n )}\n \n );\n }\n}\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { RootState } from \"app/store/store.states\";\nimport { SgHelpCenter, Props } from \"common/components/SgHelpCenter/SgHelpCenter\";\nimport { getEnvironment } from \"app/config/environment\";\n\ntype OwnProps = {\n children: React.ReactNode;\n};\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): Props => ({\n environment: getEnvironment(),\n userLogin: state.auth.user.email,\n applicationId: process.env.REACT_APP_ID,\n defaultRecipient: process.env.REACT_APP_CONTACT_MAIL,\n children: ownProps.children,\n});\n\nexport const SgHelpCenterContainer = connect(mapStateToProps)(SgHelpCenter);\n","import { connect } from \"react-redux\";\nimport { SgHeader, Props } from \"common/components/Header/SgHeader\";\nimport { getEnvironment } from \"app/config/environment\";\nimport { RootState } from \"app/store/store.states\";\n\ninterface OwnProps {}\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): Props => ({\n environment: getEnvironment(),\n userLogin: state.auth.user.email,\n applicationId: \"cpr-salesanalytics-ui\",\n defaultRecipient: \"list.par-gbsu-cld-cli-client-monitoring@sgcib.com\",\n currentLanguage: \"en\",\n});\n\nexport const HeaderContainer = connect(mapStateToProps)(SgHeader);\n","import { Environment } from \"app/config/environment\";\nimport * as React from \"react\";\n\nexport interface Props {\n environment?: Environment;\n currentLanguage?: string;\n userLogin: string;\n applicationId: string;\n defaultRecipient: string;\n}\n\nexport const SgHeader: React.FC = (props: Props) => {\n const id = \"clm-account-center\";\n const [accountCenter, setAccountCenter] = React.useState(null);\n\n React.useEffect(() => {\n const settingsDropDown = document.getElementsByClassName(\"card sgwt-personalisation\");\n if (settingsDropDown && settingsDropDown.length) {\n settingsDropDown[0].remove();\n }\n\n const account = document.getElementById(id);\n if (account) {\n setAccountCenter(account);\n }\n }, []);\n\n React.useEffect(() => {\n if (!accountCenter) {\n return;\n }\n return accountCenter;\n }, [accountCenter]);\n\n const env = props.environment && props.environment !== \"production\" ? props.environment : null;\n return (\n <>\n \n \n );\n};\n","import { ROUTES } from \"common/constants/routes.const\";\nimport * as React from \"react\";\n//import { NavItem } from \"common/components/NavItem/NavItemHeader\";\nimport { NavLink } from \"react-router-dom\";\nimport { Collapse, Nav, NavbarToggler, NavItem } from \"reactstrap\";\n\ntype Props = {\n onClick?: () => void;\n}\n\ntype State = {\n collapsed: boolean;\n}\n\nexport const HeaderMenu: React.FC = (props: Props) => {\n\n const [state, setState] = React.useState({collapsed: true});\n\n const toggle = () => setState({collapsed: !state.collapsed})\n\n return (\n <>\n \n Menu\n arrow_drop_down\n \n\n \n \n \n \n );\n};\n","import React from \"react\";\n\nexport const FeedbackButton: React.FC = () => {\n return (\n {\n const helpCenter: any = document.querySelector(\"sgwt-help-center\");\n helpCenter?.feedback();\n }}\n >\n edit\n Leave feedback\n \n );\n};\n","import { HeaderContainer } from \"common/components/Header/sgHeader.container\";\nimport * as React from \"react\";\nimport { ROUTES } from \"common/constants/routes.const\";\nimport { HeaderMenu } from \"./HeaderMenu\";\nimport { FeedbackButton } from \"common/components/Buttons/FeedbackButton\";\nimport { Navbar } from \"reactstrap\";\nimport { NavLink } from \"react-router-dom\";\n\ntype Props = {\n className: string;\n onClickHome: () => void;\n}\n\nexport const Header: React.FC = (props: Props) => {\n\n return (\n \n \n \n \n\n \n
\n \n \n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n SGM 360\n \n \n
\n
\n\n \n );\n};\n","export const ENDPOINTS = {\n UserBoardConfigs: \"userBoardConfigs\",\n DefaultBoardConfigs: \"defaultBoardConfigs\",\n TeamConfigs: \"teamProfiles\",\n};\n\nexport default ENDPOINTS;\n","export const BUS_TOPIC_GLOBALLANGUAGE = \"global.language\";\nexport const BUS_TOPIC_SGCONNECT_ACCESSTOKEN = \"sg-connect.access-token\";\nexport const BUS_TOPIC_SGCONNECT_USERCONNECTION = \"sg-connect.user-connection\";\nexport const BUS_TOPIC_SGCONNECT_USERINFO = \"sg-connect.user-info\";\nexport const BUS_TOPIC_SGCONNECT_GRANTEDSCOPE = \"sg-connect.granted-scope\";\n\ntype BusEventCallback = (payload: T | undefined) => void;\ntype SubscriptionHandle = any;\n\nexport interface IUserConnection {\n claims: Object;\n connected: boolean;\n mail: string;\n}\n\nexport interface UserInfo {\n sub: string;\n zoneinfo: string;\n postal_country: string;\n mail: string;\n igg: string;\n last_name: string;\n login_ad: string;\n company_bdr_name: string;\n given_name: string;\n locale: string;\n contact_id: string;\n sgconnect_id: string;\n user_authorization: any[];\n rc_local_sigle: string;\n sesame_id: string;\n user_bdr_id: string;\n company_bdr_level: string;\n name: string;\n is_sg_group_user: string;\n family_name: string;\n first_name: string;\n company_bdr_id: string;\n preferred_language: string;\n origin_network: string;\n auth_level: string;\n}\n\nexport interface SgWidgetsBus {\n dangerouslyGetCurrentValue(topicName: string): T | undefined;\n subscribe(topicName: string, cb: BusEventCallback): SubscriptionHandle;\n unsubscribe(handle: SubscriptionHandle): void;\n}\n\nexport function getWidgetBus(): SgWidgetsBus | null {\n const widgetConfiguration = (window as any).SGWTWidgetConfiguration;\n return widgetConfiguration && widgetConfiguration.bus ? widgetConfiguration.bus : null;\n}\n\nexport function getWidget(tagName: string) {\n return document.querySelector(tagName) as T;\n}\n\nexport function getAuthorizationHeader(): string | undefined {\n const bus = getWidgetBus();\n if (bus) {\n return bus.dangerouslyGetCurrentValue(BUS_TOPIC_SGCONNECT_ACCESSTOKEN);\n }\n return undefined;\n}\n\nexport const getUserInfo = (): UserInfo | undefined => {\n const bus = getWidgetBus();\n return bus ? bus.dangerouslyGetCurrentValue(BUS_TOPIC_SGCONNECT_USERINFO) : undefined;\n};\n","import { toPairs, isArray, fromPairs } from \"lodash\";\nimport * as queryString from \"query-string\";\nimport * as _ from \"lodash\";\n\nexport const stringifyLists = (object: Object) => {\n const attributes = toPairs(object).map(([key, value]) => (isArray(value) ? [key, value.join(\",\")] : [key, value]));\n return fromPairs(attributes);\n};\n\nexport const stringifyParams = params => (params ? \"?\" + queryString.stringify(params) : \"\");\n\nexport const getUserNameFromMail = (email: string) => {\n let temp = email;\n temp = temp.replace(\"-ext\", \"\");\n var split1 = temp.split(\"@\");\n if(split1 && split1.length === 2) {\n let split2 = split1[0].split(\".\");\n if(split2.length === 2) {\n let firstName = _.startCase(split2[0]);\n let lastName = _.startCase(split2[1]);\n return firstName + \" \" + lastName;\n }\n }\n return email;\n}\n\nexport const stringifyBoolean = (value?: boolean): string | undefined => {\n return value === true || value === false ? JSON.stringify(value) : undefined\n}","import { Button } from \"@sgbs-ui/core\";\nimport * as React from \"react\";\nimport { ToastMessage } from \"./toasterNotifyer\";\n\nexport interface ToastProps {\n title: string;\n message: ToastMessage;\n detail?: string;\n}\n\nconst ToastContent: React.FC = ({ title, message, detail }) => (\n <>\n
\n {title}\n \n
\n
\n
{message}
\n {detail &&
{detail}
}\n
\n \n);\n\nexport default ToastContent;\n","import { ComponentColor } from \"common/types/utils\";\nimport { upperFirst } from \"lodash\";\nimport * as React from \"react\";\nimport { toast, Id } from \"react-toastify\";\nimport ToastContent from \"./ToastContent\";\n\nexport type ToastMessage = string | JSX.Element;\nconst genericErrorMessage = \"An error occured. Contact the support if the problem persists\";\n\nconst toastOptions = (className: string) => ({\n closeButton: false,\n className: `toast fade show ${className}`,\n});\n\nexport const toastify = (message: ToastMessage, color: ComponentColor, title: string = undefined, detail?: string) => {\n if (message || title) {\n toast(\n ,\n toastOptions(`toast-${color}`)\n );\n }\n};\nexport const toastifySuccess = (message: ToastMessage, title?: string) => toastify(message, \"success\", title);\nexport const toastifyErrorMessage = (message: ToastMessage, title?: string) =>\n toastify(message, \"danger\", title ?? \"Error\");\nexport const toastifyWarningMessage = (message: ToastMessage, title?: string, detail?: string) =>\n toastify(message, \"warning\", title, detail);\nexport const toastifyInfo = (message: ToastMessage) => toastify(message, \"info\");\nexport const toastifyError = (errorMessage?: any, message = genericErrorMessage): Id => {\n const error = errorMessage ?? errorMessage?.message ?? message;\n return toast.error(`Error while calling API : ${error}`, {\n autoClose: false,\n });\n};\n","import { get } from \"lodash\";\nimport { ToastMessage } from \"./api.typing\";\n\nexport const getErrorMessage = async (toastMessage?: ToastMessage) => {\n return get(toastMessage, \"friendlyErrorMessage\");\n};\n\nexport const sgLambdaStreamToObject = (sgLambdaStream: string): T[] => {\n const data = sgLambdaStream.split(\"\\n\").map((i) => i.split(\",\"));\n const headers = data.shift() ?? [];\n return data.map((d) => {\n const obj: any = {};\n headers.forEach((h, i) => (obj[headers[i].replace(\"\\r\", \"\")] = d[i].trim().replace(/\\r/g, \"\").replace(/\"/g, \"\")));\n return obj;\n });\n};\n\nexport const ObjectToSgLambdaStream = (objectValues: T[]): string => {\n let content = \"\";\n objectValues.forEach((obj, index) => {\n if(index === 0) {\n const keys: (string|number|boolean)[] = Object.keys(obj);\n content += keys.join(\",\") + \"\\n\";\n }\n const values: (string|number|boolean)[] = Object.values(obj);\n let stream: string = values.join(\",\") + (index !== objectValues.length-1 ? \"\\n\" : \"\");\n content += stream;\n })\n return content;\n};","import { AppConfiguration } from \"./configuration\";\nimport { Environment } from \"./environment\";\n\nexport const getApiServiceUrl = (): string => AppConfiguration.apiUrl;\n\nexport const getApiServiceUrlAuth = (): string => AppConfiguration.apiUrlAuth;\n\nexport const getIcWidgetUrl = (env: Environment): string =>\n env === \"production\" ? \"https://shared.sgmarkets.com/ic-widgets/v1/\" : \"https://shared-uat.sgmarkets.com/ic-widgets/v1/\";\n\nexport const getIcApiUrl = (env: Environment): string =>\n env === \"production\" ? \"https://ic-api.fr.world.socgen/\" : \"https://ic-api-hom.fr.world.socgen/\";\n","import { getAuthorizationHeader } from \"./api.helpers\";\nimport _, { get } from \"lodash\";\nimport { stringifyParams } from \"../stringify\";\nimport { toastifyError, toastifySuccess } from \"../toasterNotifyer\";\nimport { getErrorMessage } from \"./api.helper\";\nimport { ApiRequest, FetchConfig, FetchError, FetchRetry, HttpRequestHeader, ToastMessage } from \"./api.typing\";\nimport { getApiServiceUrl } from \"app/config/getApiServiceUrl\";\n\nconst DefaultHeader = { \"Content-Type\": \"application/json\", \"Accept\": \"*/*\" };\n\nexport const fetchRetry: FetchRetry = (method: \"GET\" | \"POST\", credentials: \"omit\" | \"include\" = \"include\") => (\n url: string,\n params?: string | object,\n body?: unknown,\n headers: HttpRequestHeader = getAuthenticationHeader(),\n config: FetchConfig = {delay: 2000, reTries: 1}\n): Promise => {\n\n const defaultHeaders = body ? { Accept: \"application/json\", \"content-type\": \"application/json\" } : { Accept: \"application/json\" };\n\n const finalHeaders = { ...defaultHeaders, ...headers };\n const requestInit = {\n body: JSON.stringify(body),\n credentials,\n headers: finalHeaders,\n method,\n } as RequestInit;\n\n let urlQuery = url;\n if (params) {\n if (typeof params === \"string\") {\n urlQuery += params;\n } else {\n urlQuery = query(urlQuery, params);\n }\n }\n\n const wait = (delay: number) => {\n return new Promise((resolve) => setTimeout(resolve, delay));\n }\n\n let fetchErrorResponse: Response | undefined = undefined;\n const fetchErrorRequest: Partial = new Request(url, requestInit);\n\n return fetch(urlQuery, requestInit)\n .then((response: Response) => {\n if (\n config.onValidateResponse\n ? config.onValidateResponse(response)\n : response === undefined || response?.status !== 200 || response?.ok !== true\n ) {\n fetchErrorResponse = response;\n return Promise.reject(\n config.onGetError ? config.onGetError(response, fetchErrorRequest) : \"Fetch (and retry) API error \" + response.status\n );\n }\n return Promise.resolve(response);\n })\n .catch(\n (error): Promise => {\n if (config.reTries <= 0) {\n return Promise.reject(catchFetchError(fetchErrorRequest, fetchErrorResponse)(error));\n }\n return wait(config.delay).then(() =>\n fetchRetry(method, credentials)(url, params, body, headers, { ...config, reTries: config.reTries - 1 })\n );\n }\n );\n}\n\nexport const flattenObjectToQueryParams = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: { [key: string]: any },\n prefix = \"\",\n filterDefaultValues = false\n): string => {\n return _.flatMap(_.keys(params), (name: string) => {\n return typeof params[name] !== \"object\"\n ? `${prefix}${name}=${encodeURIComponent(params[name])}`\n : params[name] instanceof Array\n ? _.castArray(params[name])\n .map((v) => `${prefix}${name}=${encodeURIComponent(v)}`)\n .join(\"&\")\n : flattenObjectToQueryParams(params[name], `${prefix}${name}.`);\n })\n .filter((param) => param.split(\"=\")[1] || !filterDefaultValues)\n .filter((param) => param.length > 0)\n .join(\"&\");\n}\n\nexport const query = (\n url: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: { [key: string]: any },\n filterDefaultValues = false\n): string => {\n return `${url}?${flattenObjectToQueryParams(\n params,\n \"\",\n filterDefaultValues\n )}`;\n}\n\nexport const catchFetchError = (request?: Partial, response?: Partial) => (error: any): Promise => {\n const fetchError: FetchError = {\n error,\n request,\n response,\n };\n console.log(fetchError);\n return Promise.reject(fetchError);\n}\n\nfunction createRequest(request: ApiRequest, includeGetDefaultHeader = true) {\n const { url, params, method, headers, body } = request;\n const requestUrl = `${url}${stringifyParams(params)}`;\n return fetch(\n requestUrl, \n { \n method, \n headers: { ...(includeGetDefaultHeader ? (body ? { Accept: \"application/json\", \"content-type\": \"application/json\" } : { Accept: \"application/json\" }) : {}), ...headers }, \n body: body ? JSON.stringify(body): undefined \n }\n );\n}\n\nasync function tryCatch(\n f: () => Promise,\n toastMessage?: ToastMessage,\n needToastifySuccess = false,\n returnAsJson = true\n): Promise {\n try {\n const result = await f();\n if (!result.ok) {\n if (result.status === 404) {\n toastifySuccess(toastMessage?.ressourceNotFoundMessage ?? \"\");\n } else {\n toastifyError(await getErrorMessage(toastMessage));\n }\n return result;\n }\n if (needToastifySuccess) {\n toastifySuccess(toastMessage?.successMessage ?? \"\");\n }\n if (returnAsJson) {\n return await result.json();\n }\n return result;\n } catch (error) {\n toastifyError(get(toastMessage, \"friendlyErrorMessage\") || error);\n return null;\n }\n}\n\nexport const createRepository = () => ({\n getFromAPI: (endpoint: string, headers: HttpRequestHeader = getAuthenticationHeader(), params?: object, body?: object, toastMessage?: ToastMessage): Promise => {\n const getFetch = () => createRequest({ method: \"GET\", headers, url: getApiServiceUrl() + endpoint, params: params, body: body }, true);\n return tryCatch(getFetch, toastMessage);\n },\n getStreamFromAPI: (\n endpoint: string,\n headers: HttpRequestHeader = getAuthenticationHeader(),\n params?: object,\n body?: object,\n toastMessage?: ToastMessage\n ): Promise => {\n const getStreamFetch = () => createRequest({ method: \"GET\", headers, url: getApiServiceUrl() + endpoint, params, body }, true);\n return tryCatch(getStreamFetch, toastMessage, false, false);\n },\n postStreamFromAPI: (\n endpoint: string,\n headers: HttpRequestHeader = getAuthenticationHeader(),\n params?: object,\n body?: object,\n toastMessage?: ToastMessage\n ): Promise => {\n const getStreamFetch = () => createRequest({ method: \"POST\", headers, url: getApiServiceUrl() + endpoint, params, body }, true);\n return tryCatch(getStreamFetch, toastMessage, false, false);\n },\n getStreamFromSG: (\n url: string,\n headers: HttpRequestHeader = getAuthenticationHeader(),\n params?: object,\n body?: object,\n toastMessage?: ToastMessage\n ): Promise => {\n const getStreamFetch = () => createRequest({ method: \"GET\", headers, url: url, params, body }, true);\n return tryCatch(getStreamFetch, toastMessage, false, false);\n },\n getFromSG: (url: string, params?: object, body?: object, headers: HttpRequestHeader = getAuthenticationHeader(), toastMessage?: ToastMessage): Promise => {\n const getFetch = () => createRequest({ method: \"GET\", headers: getAuthenticationHeader(), url: url, params: params, body: body }, true);\n return tryCatch(getFetch, toastMessage);\n },\n});\n\nexport const getHeader = (): HttpRequestHeader => ({\n ...getAuthenticationHeader(),\n ...DefaultHeader\n})\n\nexport const getAuthenticationHeader = (): HttpRequestHeader => ({\n authorization: getAuthorizationHeader() ?? \"\",\n});\n","import ENDPOINTS from \"common/constants/endpoints.const\";\nimport { createRepository } from \"common/utils/api/api\";\nimport { sgLambdaStreamToObject } from \"common/utils/api/api.helper\";\nimport DefaultBoardConfig from \"datas/models/DefaultBoardConfig.m\";\nimport _ from \"lodash\";\n\nexport const getAllDefaultBoards = (): Promise => {\n return createRepository()\n .getStreamFromAPI(ENDPOINTS.DefaultBoardConfigs)\n .then((response) => response.text())\n .then((response) => sgLambdaStreamToObject(response))\n .then((response) => _.orderBy(response, \"position\"));\n};\n\nexport const getUserTeamDefaultBoards = (userTeamConfigIds: string[]): Promise => {\n return createRepository()\n .getStreamFromAPI(ENDPOINTS.DefaultBoardConfigs)\n .then((response) => response.text())\n .then((response) => sgLambdaStreamToObject(response))\n .then(datas => userTeamConfigIds.length === 0 \n ? [] \n : datas.filter(d => userTeamConfigIds.some(id => d.teamProfileId === id)))\n .then((response) => _.orderBy(response, \"position\"));\n};\n\nexport default {\n getUserTeamDefaultBoards,\n getAllDefaultBoards\n};\n","import { getApiServiceUrl } from \"app/config/getApiServiceUrl\";\nimport ENDPOINTS from \"common/constants/endpoints.const\";\nimport { createRepository } from \"common/utils/api/api\";\nimport { ObjectToSgLambdaStream, sgLambdaStreamToObject } from \"common/utils/api/api.helper\";\nimport { getUserNameFromMail } from \"common/utils/stringify\";\nimport { User } from \"datas/models\";\nimport Dataset from \"datas/models/Dataset.m\";\nimport UserBoardConfig from \"datas/models/UserBoardConfig.m\";\nimport _ from \"lodash\";\n\nexport const getUserBoardConfigsId = (user: User) => ENDPOINTS.UserBoardConfigs + \"_\" + getUserNameFromMail(user.email).replace(\" \", \"_\") + \"_\" + user.id;\n\nexport const getAllDatasets = (): Promise => {\n let url = getApiServiceUrl();\n url = url.substring(0, url.length - 1);\n \n return createRepository()\n .getStreamFromSG(url)\n .then((response) => {\n const t = response.text();\n return t;\n })\n .then((response) => \n {\n //const t = sgLambdaStreamToObject(response);\n const t = JSON.parse(response);\n return t;\n });\n};\n\nexport const getUserBoards = (user: User): Promise => {\n return createRepository()\n .getStreamFromAPI(getUserBoardConfigsId(user))\n .then((response) => response.text())\n .then((response) => sgLambdaStreamToObject(response))\n .then((userBoards) => userBoards.filter(b => b.userEmail === user.email && b.userId === user.id))\n .then((response) => _.orderBy(response, \"position\"));\n};\n\nexport const createUserBoards = (user: User): Promise => {\n return createRepository()\n .postStreamFromAPI(\n getUserBoardConfigsId(user),\n undefined,\n {\n },\n {\n content: \"\"\n }\n )\n};\n\nexport const replaceUserBoards = (userBoardConfig: UserBoardConfig[], user: User): Promise => {\n return createRepository()\n .postStreamFromAPI(\n getUserBoardConfigsId(user),\n undefined,\n {\n },\n {\n content: ObjectToSgLambdaStream(userBoardConfig)\n }\n )\n}\n","export type TeamPaths = {\n teamPathPart1: string;\n teamPathPart2: string;\n teamPathPart3: string;\n}\n\nexport const getUserTeamPaths = (userTeam?: string) => {\n const userDept = (userTeam ?? \"\").split(\"/\");\n const teamPaths: TeamPaths = {\n teamPathPart1: userDept[0] ?? \"\",\n teamPathPart2: userDept[1] ?? \"\",\n teamPathPart3: userDept[2] ?? \"\",\n };\n return teamPaths;\n}","import ENDPOINTS from \"common/constants/endpoints.const\";\nimport { createRepository } from \"common/utils/api/api\";\nimport { sgLambdaStreamToObject } from \"common/utils/api/api.helper\";\nimport TeamProfile from \"datas/models/TeamProfile.m\";\nimport { getUserTeamPaths } from \"datas/utils/TeamPaths\";\n\nexport const getAllTeamProfiles = (): Promise => {\n return createRepository()\n .getStreamFromAPI(ENDPOINTS.TeamConfigs)\n .then((response) => response.text())\n .then((response) => sgLambdaStreamToObject(response));\n};\n\nexport const getAllUserTeamProfiles = (userTeam?: string): Promise => {\n return createRepository()\n .getStreamFromAPI(ENDPOINTS.TeamConfigs)\n .then((response) => response.text())\n .then((response) => sgLambdaStreamToObject(response))\n .then(datas => {\n if(userTeam) {\n const teamPaths = getUserTeamPaths(userTeam);\n const team = datas.filter(\n ({teamPathPart1, teamPathPart2, teamPathPart3}) =>\n (teamPathPart1 === teamPaths?.teamPathPart1 || teamPathPart1 === \"\") &&\n (teamPathPart2 === teamPaths?.teamPathPart2 || teamPathPart2 === \"\") &&\n (teamPathPart3 === teamPaths?.teamPathPart3 || teamPathPart3 === \"\")\n );\n return team;\n }\n return datas.find(t => t) ? [datas.find(t => t)] : [];\n });\n};\n\nexport const getUserClosestTeamProfile = (userTeam?: string): Promise => {\n return getAllUserTeamProfiles(userTeam)\n .then(teamConfigs => \n {\n let bestTeamConfig: (TeamProfile & {score: number;}) | undefined = undefined;\n\n teamConfigs.forEach(tc => {\n let currentScore = 0;\n const teamPaths = getUserTeamPaths(userTeam);\n if(teamPaths.teamPathPart1 === tc.teamPathPart1) currentScore++;\n if(teamPaths.teamPathPart2 === tc.teamPathPart2) currentScore++;\n if(teamPaths.teamPathPart3 === tc.teamPathPart3) currentScore++;\n\n if(bestTeamConfig === undefined || bestTeamConfig.score < currentScore) bestTeamConfig = {...tc, score: currentScore};\n })\n\n return bestTeamConfig;\n })\n};\n\nexport default {\n getAllUserTeamProfiles,\n getAllTeamProfiles,\n getUserClosestTeamProfile\n}\n","import { createRepository } from \"common/utils/api/api\";\nimport { SgBoardsDTO } from \"datas/dtos/SgDashboardBoards.dto\";\n\nexport const getSgBoards = (search?: string): Promise => {\n return createRepository()\n .getFromSG(\n \"https://sg-dashboard.fr.world.socgen/api/v3/boards\",\n {\n owned: true,\n official: false,\n page: 0,\n size: 100,\n sort: \"popularity,desc\",\n q: search\n }\n );\n};\n\nexport default {\n getUsgetSgDashboardBoardsBoards: getSgBoards\n};\n","import * as React from \"react\";\n\ntype Props = {\n name: string;\n display?: \"3\" | \"2\" | \"1\"\n}\n\nexport const Logo: React.FC = (props: Props) => {\n return

{props.name}

;\n};\n\nexport default Logo;\n","import { createSlice } from '@reduxjs/toolkit'\nimport type { PayloadAction } from '@reduxjs/toolkit'\nimport { AppState } from './store.states';\nimport DefaultBoardConfig from 'datas/models/DefaultBoardConfig.m';\nimport { UserBoardConfig } from 'datas/models';\n\nconst initialState: AppState = {\n currentBoard: undefined,\n}\n\nexport const appSlice = createSlice({\n name: 'app',\n initialState: initialState,\n reducers: {\n cleanApp: (state) => {\n state.currentBoard = undefined;\n },\n setCurrentBoard: (state, action: PayloadAction) => {\n state.currentBoard = action.payload;\n },\n },\n})\n\nexport default appSlice;","/* eslint-disable react-hooks/exhaustive-deps */\nimport { RootState } from \"app/store/store.states\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Dispatch } from \"redux\";\nimport { DefaultBoardConfig, UserBoardConfig } from \"datas/models\";\nimport { ProgressBar } from \"react-bootstrap\";\n\nconst mapStateToProps = (state: RootState) => ({\n app: {...state.app},\n board: {...state.modules.board},\n datas: {...state.datas}\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({});\n\ntype Props = ReturnType & ReturnType & {\n currentBoard: UserBoardConfig | DefaultBoardConfig;\n};\n\ntype State = {\n iFrameWidth: number;\n isLoading: boolean;\n isLoaded: boolean;\n hasBeenOpen: boolean;\n progressBar: number;\n}\n\nexport const BoardScreen: React.FC = (props: Props) => {\n\n const [state, setState] = React.useState({\n iFrameWidth: 100,\n isLoading: true,\n isLoaded: false,\n hasBeenOpen: false,\n progressBar: 0,\n });\n\n React.useEffect(() => {\n if(state.hasBeenOpen === false && props.currentBoard?.sgBoardId === getCurrentBoardId()) {\n onLoadStart()\n console.log(\"start loard\")\n }\n if(state.isLoaded && props.currentBoard?.sgBoardId === getCurrentBoardId()) {\n setState({...state, iFrameWidth: 99.9});\n setTimeout(() => setState({...state, iFrameWidth: 100}), 100);\n console.log(\"set iframe size\")\n }\n }, [props.app.currentBoard, state.isLoaded])\n\n React.useEffect(() => {\n if( state.hasBeenOpen === true && state.isLoading && state.isLoaded === false) {\n if(state.progressBar<100) {\n setTimeout(() => setState({...state, progressBar: state.progressBar + 1, isLoading: true}), 40);\n }\n else {\n setTimeout(() => onLoadEnd(), 10);\n console.log(\"END PROGRESS BAR\")\n }\n }\n }, [state.progressBar, state.isLoading, props.app.currentBoard, state.hasBeenOpen, state.isLoaded])\n\n const getCurrentBoardId = (): string | undefined => {\n if(props.app.currentBoard) {\n return props.app.currentBoard?.sgBoardId;\n }\n else {\n return props.datas.defaultBoardConfigs.find(x => x)?.sgBoardId;\n }\n }\n\n const onLoadEnd = (): void => setState({...state, isLoading: false, isLoaded: true, progressBar: 100})\n const onLoadStart = (): void => setState({...state, isLoading: true, progressBar: 0, hasBeenOpen: true})\n\n if(state.hasBeenOpen === false) return <>\n\n return (\n <>\n {state.isLoading && props.currentBoard?.sgBoardId === getCurrentBoardId()?\n <>\n {state.progressBar + \"%\"}

}/>\n Loading...\n \n : null}\n\n
\n
\n \n )\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BoardScreen);\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport * as React from \"react\";\nimport * as _Models from \"../../../datas/models\"\nimport { Nav } from \"react-bootstrap\";\n\ntype Props = {\n isActive?: boolean;\n defaultBoard: _Models.DefaultBoardConfig;\n onSelectBoard: (board: _Models.DefaultBoardConfig) => void;\n};\n\nexport const DefaultBoardTab: React.FC = (props: Props) => {\n\n return (\n <>\n props.onSelectBoard(props.defaultBoard)}\n >\n \n {props.defaultBoard.icon}\n {props.defaultBoard.name}\n \n \n \n );\n};\nexport default DefaultBoardTab;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport * as React from \"react\";\nimport * as _Models from \"../../../datas/models\"\nimport { Nav } from \"react-bootstrap\";\n\ntype Props = {\n isActive?: boolean;\n userBoard: _Models.UserBoardConfig;\n onSelectBoard: (board: _Models.UserBoardConfig) => void;\n};\n\nexport const UserBoardTab: React.FC = (props: Props) => {\n\n return (\n <>\n props.onSelectBoard(props.userBoard)}\n >\n \n {props.userBoard.icon || \"dashboard_customize\"}\n {props.userBoard.name}\n \n \n \n );\n};\nexport default UserBoardTab;\n","import { createSlice } from '@reduxjs/toolkit'\nimport type { PayloadAction } from '@reduxjs/toolkit'\nimport { HomeState } from './home.states';\n\nconst initialState: HomeState = {\n isOpenPersonalBoardsModal: false\n}\n\nexport const homeSlice = createSlice({\n name: 'home',\n initialState: initialState,\n reducers: {\n toogleUserBoardsModal: (state) => {\n state.isOpenPersonalBoardsModal = !state.isOpenPersonalBoardsModal;\n },\n setSearchUserBoardValue: (state, action: PayloadAction) => {\n state.searchUserBoardsValue = action.payload;\n },\n },\n})\n\nexport default homeSlice;","import * as React from \"react\";\nimport { Dispatch } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { RootState } from \"app/store/store.states\";\nimport appSlice from \"app/store/app.slice\";\nimport BoardScreen from \"modules/Board/components/BoardScreen\";\nimport classNames from \"classnames\";\nimport { DefaultBoardConfig, UserBoardConfig } from \"datas/models\";\nimport DefaultBoardTab from \"./DefaultBoardTab\";\nimport UserBoardTab from \"./UserBoardTab\";\nimport { Nav } from \"react-bootstrap\";\nimport homeSlice from \"../store/home.slice\";\nimport { debounce } from \"lodash\";\n\nconst mapStateToProps = (state: RootState) => ({\n app: {...state.app},\n datas: {...state.datas},\n home: {...state.modules.home}\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n setCurrentBoard: (board?: DefaultBoardConfig | UserBoardConfig) => dispatch(appSlice.actions.setCurrentBoard(board)),\n toogleUserBoardsModal: () => dispatch(homeSlice.actions.toogleUserBoardsModal())\n});\n\ntype Props = ReturnType & ReturnType & {};\n\nexport const HomeBoards: React.FC = (props: Props) => {\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [dimensions, setDimensions] = React.useState({ mainMinHeight: window.innerHeight - 150 });\n const handleResize = () => setDimensions({ mainMinHeight: window.innerHeight - 150});\n\n React.useEffect(() => {\n const debouncedHandleResize = debounce(handleResize, 500);\n window.addEventListener(\"resize\", debouncedHandleResize);\n });\n\n\n React.useEffect(() => {\n }, []);\n\n const getCurrentBoardId = (): string | undefined => {\n if(props.app.currentBoard) {\n return props.app.currentBoard?.sgBoardId;\n }\n else {\n return props.datas.defaultBoardConfigs.find(x => x)?.sgBoardId;\n }\n }\n\n return (\n <>\n
\n\n
\n \n
\n\n
\n
\n {[...props.datas.defaultBoardConfigs, ...props.datas.userBoardConfigs].map((board) => (\n \n ))}\n
\n
\n
\n\n \n );\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(HomeBoards);\n","import { createSlice } from '@reduxjs/toolkit'\nimport type { PayloadAction } from '@reduxjs/toolkit'\nimport { DatasState } from './datas.states';\nimport TypeHelper from \"../../common/types/utils.types\";\n\nconst initialState: DatasState = {\n userBoardConfigs: [],\n defaultBoardConfigs: [],\n teamConfigs: [],\n}\n\nconst PRIMARY_KEYS = {\n teamConfigs: [\"id\"],\n defaultBoardConfigs: [\"configId\", \"boardId\"],\n userBoardConfigs: [\"userId\", \"boardId\"]\n}\n\nexport const datasSlice = createSlice({\n name: 'datas',\n initialState: initialState,\n reducers: {\n updateAll: (state, action: PayloadAction<{type: keyof DatasState; datas: DatasState[D]}>) => {\n state[action.payload.type] = action.payload.datas;\n },\n\n deleteAll: (state, action: PayloadAction<{type: keyof DatasState;}>) => {\n state[action.payload.type] = [];\n },\n\n update: (state, action: PayloadAction<{type: keyof DatasState; data: TypeHelper.ArrElement}>) => {\n state[action.payload.type] = [...state.viewApps.filter(x => \n !PRIMARY_KEYS[action.payload.type].every(key => {\n if(x.id === action.payload.data[key]){\n return true;\n }\n return false;\n })\n ), action.payload]\n },\n\n delete: (state, action: PayloadAction<{dataType: keyof DatasState; dataValue: TypeHelper.ArrElement}>) => {\n state[action.payload.dataType] = [...state.viewApps.filter(x =>\n !PRIMARY_KEYS[action.payload.dataType].every(key => {\n if(x.id === action.payload.dataValue[key]){\n return true;\n }\n return false;\n })\n )]\n }\n },\n})\n\nexport default datasSlice;","import * as React from \"react\";\nimport { RootState } from \"app/store/store.states\";\nimport { Dispatch } from \"redux\";\nimport { connect } from \"react-redux\";\nimport homeSlice from \"../store/home.slice\";\n\nconst mapStateToProps = (state: RootState) => ({\n home: {...state.modules.home}\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n onChangeSearchUserBoards: (searchTerm: string) => dispatch(homeSlice.actions.setSearchUserBoardValue(searchTerm)),\n});\n\ntype Props = ReturnType & ReturnType & {};\n\nexport const UserBoardsSearch: React.FC = (props: Props) => {\n\n return (\n
\n
\n
\n search\n
\n\n props.onChangeSearchUserBoards(e.target.value)}\n />\n
\n
\n );\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserBoardsSearch);\n\n","import * as React from \"react\";\nimport { RootState } from \"app/store/store.states\";\nimport { Dispatch } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { Form } from \"react-bootstrap\";\nimport * as _Dtos from \"../../../datas/dtos\"\n\nconst mapStateToProps = (state: RootState) => ({});\nconst mapDispatchToProps = (dispatch: Dispatch) => ({});\ntype Props = ReturnType & ReturnType & {\n sgBoard: _Dtos.SgBoardContentDTO;\n onSelect: (sgBoard: _Dtos.SgBoardContentDTO, icon: string, isSelected: boolean) => void;\n isSelected: boolean;\n icon: string;\n};\n\n\nexport const UserBoardItem: React.FC = (props: Props) => {\n\n const onSelectBoard = () => {\n props.onSelect(props.sgBoard, props.icon, !props.isSelected)\n }\n\n return (\n \n onSelectBoard()} >\n \n \n onSelectBoard()}\n >\n {props.sgBoard.name}\n \n \n Open previewopen_in_new\n \n\n {/*\n onChangeIcon(e.target.value)}\n />\n */}\n \n );\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserBoardItem);\n\n","import { SgBoardContentDTO } from \"datas/dtos\";\nimport { UserBoardConfig } from \"datas/models\";\n\nexport const SGBoardToUserBoard = (sgBoard: SgBoardContentDTO, userEmail: string, userId: string, icon?: string): UserBoardConfig => {\n const userBoard: UserBoardConfig = {\n icon: icon || \"\",\n name: sgBoard.name,\n position: \"0\",\n sgBoardConfigId: \"\",\n sgBoardId: sgBoard.id.toString(),\n userEmail: userEmail,\n userId: userId\n }\n return userBoard;\n}","import * as React from \"react\";\nimport { Dispatch } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { Table, Modal } from \"react-bootstrap\";\nimport { RootState } from \"app/store/store.states\";\nimport datasSlice from \"datas/store/datas.slice\";\nimport * as _Services from \"../../../datas/services\"\nimport * as _Models from \"../../../datas/models\"\nimport * as _Dtos from \"../../../datas/dtos\"\nimport homeSlice from \"../store/home.slice\";\nimport UserBoardsSearch from \"./UserBoardsSearch\";\nimport UserBoardItem from \"./UserBoardItem\";\nimport { SGBoardToUserBoard } from \"datas/utils/SgBoards\";\n\nconst mapStateToProps = (state: RootState) => ({\n datas: {...state.datas},\n home: {...state.modules.home},\n auth: {...state.auth}\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n setUserBoards: (boards: _Models.UserBoardConfig[]) => dispatch(datasSlice.actions.updateAll({type: \"userBoardConfigs\", datas: boards})),\n toogleUserBoardsModal: () => dispatch(homeSlice.actions.toogleUserBoardsModal())\n});\n\ntype Props = ReturnType & ReturnType & {};\ntype State = {\n allUserSgBoards?: _Dtos.SgBoardsDTO;\n selectedUserBoardsState: Map;\n}\n\nexport const UserBoardsModal: React.FC = (props: Props) => {\n\n const initSelectedUserBoardsState = () =>\n new Map(\n props.datas.userBoardConfigs.map(b => [\n b.sgBoardId,\n b,\n ])\n );\n\n const [state, setState] = React.useState({\n allUserSgBoards: undefined,\n selectedUserBoardsState: initSelectedUserBoardsState()\n })\n\n React.useEffect(() => {\n _Services\n .getSgBoards(props.home.searchUserBoardsValue)\n .then(dtos => {\n setState({...state, allUserSgBoards: dtos});\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.home.searchUserBoardsValue]);\n\n const onSelectSgBoard = (sgBoard: _Dtos.SgBoardContentDTO, icon: string, isSelected: boolean) => {\n if(isSelected) {\n setState({...state, selectedUserBoardsState: new Map(state.selectedUserBoardsState.set(\n sgBoard.id.toString(),\n SGBoardToUserBoard(\n sgBoard,\n props.auth.user.email,\n props.auth.user.id,\n icon)\n ))})\n }\n else {\n const newBoardsState = new Map(state.selectedUserBoardsState);\n newBoardsState.delete(sgBoard.id.toString());\n setState({...state, selectedUserBoardsState: newBoardsState});\n }\n }\n\n const onUpdateUserBoards = () => {\n _Services.replaceUserBoards([...state.selectedUserBoardsState.values()], props.auth.user)\n .then(datas => props.toogleUserBoardsModal())\n .then(datas => _Services.getUserBoards(props.auth.user).then(d => props.setUserBoards(d)))\n }\n\n return (\n <>\n \n
\n
\n
\n

Select your personal boards

\n
\n \n close\n \n
\n
\n\n {state.allUserSgBoards && state.allUserSgBoards.content.length === 0 && !props.home.searchUserBoardsValue\n ? \n

You have not created any personal board yet. Go to SGM Dashboard open_in_new to start creating boards, then they will be proposed here.

\n
\n : <>\n
\n

Select boards from the list of your personal boards created in SGM Dashboard open_in_new

\n
\n\n
\n \n
\n\n \n \n \n {state.allUserSgBoards\n ? state.allUserSgBoards?.content.map(sgBoard => (\n \n ))\n : null}\n \n
\n
\n \n }\n\n \n {state.allUserSgBoards && state.allUserSgBoards.content.length === 0 && !props.home.searchUserBoardsValue\n ? <>\n \n Close\n \n \n : <>\n \n Cancel\n \n \n Save\n \n \n }\n \n \n \n );\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(UserBoardsModal);\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from \"react\";\nimport * as _Models from \"../../../datas/models\"\nimport * as _Services from \"../../../datas/services\"\nimport Logo from \"common/components/Logo/Logo\";\nimport { Dispatch } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { RootState } from \"app/store/store.states\";\nimport HomeBoards from \"./HomeBoards\";\nimport datasSlice from \"datas/store/datas.slice\";\nimport UserBoardsModal from \"./UserBoardsModal\";\nimport _ from \"lodash\";\n\nconst mapStateToProps = (state: RootState) => ({\n app: {...state.app},\n auth: {...state.auth},\n home: {...state.modules.home}\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n setDefaultBoards: (boards: _Models.DefaultBoardConfig[]) => dispatch(datasSlice.actions.updateAll({type: \"defaultBoardConfigs\", datas: boards})),\n setUserBoards: (boards: _Models.UserBoardConfig[]) => dispatch(datasSlice.actions.updateAll({type: \"userBoardConfigs\", datas: boards})),\n setTeamConfigs: (teamConfigs: _Models.TeamProfile[]) => dispatch(datasSlice.actions.updateAll({type: \"teamConfigs\", datas: teamConfigs})),\n});\n\ntype Props = ReturnType & ReturnType & {};\ntype State = {\n isLoading: boolean;\n}\n\nexport const HomeScreen: React.FC = (props: Props) => {\n\n const [state, setState] = React.useState({isLoading: true});\n\n React.useEffect(() => {\n if(props.auth.loggedIn && _.isEmpty(props.auth.token) === false) {\n _Services.getUserClosestTeamProfile(props.auth.user?.team ?? \"\")\n .then(teamProfile => {\n console.log(\"USER TEAMS CONFIGS : \");\n console.log(teamProfile);\n props.setTeamConfigs(teamProfile ? [teamProfile] : []); \n return teamProfile ? [teamProfile] : [];\n })\n .then(teamProfiles =>\n Promise.all([\n _Services.getUserTeamDefaultBoards(teamProfiles.map(tp => tp.id)).then(datas => {props.setDefaultBoards(datas); return datas;}),\n _Services.getAllDatasets()\n .then(datasets => {\n if(datasets.some(d => d.id === _Services.getUserBoardConfigsId(props.auth.user))) {\n return _Services.getUserBoards(props.auth.user)\n .then(datas => {props.setUserBoards(datas); return datas;});\n }\n else {\n return _Services.createUserBoards(props.auth.user)\n .then(datas => {props.setUserBoards([]); return [];});\n }\n })\n ])\n )\n .then(datas => setState({isLoading: false}));\n }\n }, [props.auth.loggedIn, props.auth.token, props.auth.user?.team, props.auth.user?.email]);\n\n return (\n
\n
\n
\n
\n \n
\n
\n
\n\n {state.isLoading\n ? null\n : (<>\n \n \n )\n }\n
\n );\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(HomeScreen);\n","import * as React from \"react\";\nimport { includes, some } from \"lodash\";\nimport { ToastContainer } from \"react-toastify\";\nimport { Header } from \"common/components/Header/Header\";\nimport { RootState } from \"app/store/store.states\";\nimport { Dispatch } from \"redux\";\nimport HomeScreen from \"modules/Home/components/HomeScreen\";\nimport { connect } from \"react-redux\";\nimport appSlice from \"../store/app.slice\";\n\nconst BLOCKING_ERRORS = [\"500\", \"404\", \"403\"];\n\nconst mapStateToProps = (state: RootState) => ({\n ...state.app,\n ...state.auth,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n cleanApp: () => dispatch(appSlice.actions.cleanApp())\n});\n\ntype Props = StoreStateProps & StoreDispatchProps & CompProps;\ntype StoreStateProps = ReturnType; \ntype StoreDispatchProps = ReturnType;\ntype CompProps = {};\n\nexport const MainScreen: React.FC = (props: Props) => {\n // eslint-disable-next-line no-restricted-globals\n const relativePath = location.pathname;\n const isErrorPage = some(BLOCKING_ERRORS, error => includes(relativePath, error));\n\n return (\n <>\n
\n
props.cleanApp()}/>\n
\n\n \n \n {props.loggedIn && props.user.id !== undefined && props.user.id !== \"\"\n ? \n : <>}\n \n \n \n\n \n \n );\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MainScreen);\n","import classNames from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./Loading.scss\";\nimport { Spinner } from \"./Spinner\";\n\nexport interface Props {\n isVisible?: boolean;\n message?: string;\n}\n\nexport const Loading: React.FunctionComponent = ({ isVisible = true, message = \"Loading...\" }: Props) =>\n isVisible ? (\n
\n {message}\n
\n ) : null;\n\n export const LoadingRound: React.FunctionComponent = ({ isVisible = true, message = \"Loading...\" }: Props) =>\n isVisible ? (\n
\n \n \n {message}\n \n
\n ) : null;","import { createSlice } from '@reduxjs/toolkit'\nimport type { PayloadAction } from '@reduxjs/toolkit'\nimport { AuthState } from './auth.states'\nimport UserInfoDTO from 'datas/dtos/UserInfo.dto'\n\nconst initialState: AuthState = {\n token: '',\n loggedIn: false,\n user: {\n email: '',\n id: '',\n team: \"\",\n infos: undefined\n }\n}\n\nexport const authSlice = createSlice({\n name: 'auth',\n initialState: initialState,\n reducers: {\n logIn: (state, action: PayloadAction<{email: string}>) => {\n state.user.email = action.payload.email;\n state.loggedIn = true;\n },\n\n setUserInfo: (state, action: PayloadAction) => {\n state.user.infos = action.payload;\n state.user.team = action.payload?.rc_local_sigle;\n state.user.id = action.payload?.contact_id;\n },\n\n logOut: (state) => {\n state.loggedIn = false;\n },\n\n setToken: (state, action: PayloadAction) => {\n state.token = action.payload;\n },\n },\n})\n\nexport const authReducer = authSlice.reducer;\nexport const authActions = authSlice.actions;\nexport const authInitialState = authSlice.getInitialState();\nexport default authSlice;\n","import * as React from \"react\";\nimport {\n getWidgetBus,\n getSgwtAccountCenterElement,\n getSgwtConnectElement,\n} from \"modules/Authentication/utils/getWidgetBus\";\nimport { Loading } from \"common/components/Loading/Loading\";\nimport { logMessage } from \"modules/Authentication/utils/logger\";\nimport { LogLevels, LogTypes } from \"../types/logger.typings\";\nimport { Dispatch } from \"redux\";\nimport { authActions } from \"../store/auth.slice\";\nimport UserInfoDTO from \"datas/dtos/UserInfo.dto\";\nimport { RootState } from \"app/store/store.states\";\nimport { connect } from \"react-redux\";\n\nconst mapStateToProps = (state: RootState) => ({\n ...state.auth\n})\n\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\n setToken: (token: string) => dispatch(authActions.setToken(token)),\n logIn: (userEmail: string) => dispatch(authActions.logIn({email: userEmail})),\n logOut: () => dispatch(authActions.logOut()),\n setUserInfo: (userInfo?: UserInfoDTO) => dispatch(authActions.setUserInfo(userInfo))\n});\n\nexport type Props = ReturnType & ReturnType & React.PropsWithChildren<{}>;\nexport type State = {};\n\nclass AuthProvider extends React.Component {\n constructor(props: Props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount() {\n const bus = getWidgetBus();\n if (bus) {\n bus.subscribe(\"sg-connect.access-token\", this.handleTokenChanged);\n bus.publish('sg-connect.granted-scope', \"profile openid api.sg-dashboard-api.read api.sg-dashboard-api.load-external api.getcontactinformation.v1 mail api.manage-commercial-clients.v2 api.manage-contacts.v1 \");\n bus.subscribe(\"sg-connect.user-connection\", this.handleUserConnectionChanged);\n bus.subscribe(\"sg-connect.user-info\", this.handleUserInfoChanged);\n }\n\n const sgwtConnect = getSgwtConnectElement();\n if (sgwtConnect) {\n sgwtConnect.sgwtConnect.on(\"authorizationExpired\", () => this.handleTokenExpired());\n sgwtConnect.sgwtConnect.on(\"renewAuthorizationError\", () => this.handleOnRenewError());\n }\n }\n\n render() {\n\n if (!this.props.loggedIn) {\n return ;\n }\n\n return this.props.children;\n }\n\n handleTokenExpired = () => {\n logMessage({\n name: \"signOut\",\n feature: \"Authentication\",\n event: \"app.sessionExpired\",\n level: LogLevels.error,\n type: LogTypes.technical,\n description: \"User redirected to endSession page after sgwtConnect event is fired\",\n });\n this.props.logOut();\n const sgwtAccountCenter = getSgwtAccountCenterElement() as any;\n sgwtAccountCenter.signOut();\n };\n\n handleOnRenewError = () => {\n logMessage({\n name: \"renewTokenError\",\n feature: \"Authentication\",\n event: \"app.renewTokenError\",\n level: LogLevels.error,\n type: LogTypes.technical,\n description: \"sgwtConnect error while trying to renew session token\",\n });\n };\n\n handleTokenChanged = (token?: string) => {\n if (token) {\n this.props.setToken(token);\n }\n };\n\n handleUserConnectionChanged = (userConnection: { mail?: string; connected?: boolean }) => {\n if (userConnection?.connected) {\n this.props.logIn(userConnection.mail);\n }\n };\n\n handleUserInfoChanged = (userInfo: UserInfoDTO | undefined) => {\n this.props.setUserInfo(userInfo);\n };\n}\n\nexport default connect((state: RootState) => ({...state.auth}), mapDispatchToProps)(AuthProvider);","import { SGWTConnectCore } from \"@sgwt/connect-core\";\nimport { SgwtConnectElement, SGWTEventBus } from \"modules/Authentication/types/utils.typings\";\n\n/**\n * @returns the current sgwt widget bus\n * (the SGWT-Connect widget push information on it, on some specific topics)\n * for more info: https://sgwt.fr.world.socgen/widgets/widget-development/widget-bus\n */\nexport const getWidgetBus = (): SGWTEventBus | undefined => {\n const widgetConfiguration = (window as any).SGWTWidgetConfiguration;\n return widgetConfiguration && widgetConfiguration.bus ? widgetConfiguration.bus : undefined;\n};\n\n/**\n * @returns current instance of the SGWT-Connect widget\n */\nexport const sgwtConnectComponent = (): SGWTConnectCore => {\n const sgwtConnectElement = document.head.querySelector(\"sgwt-connect\") as any;\n return sgwtConnectElement.sgwtConnect;\n};\n\nexport const getSgwtConnectElement = (): SgwtConnectElement => document.head.querySelector(\"sgwt-connect\");\nexport const getSgwtAccountCenterElement = (): SgwtConnectElement => document.querySelector(\"sgwt-account-center\");\n","import React, { Fragment, useEffect, useState } from \"react\";\nimport { IntlProvider as ReactIntlProvider } from \"react-intl\";\nimport en from \"./en.json\";\nimport fr from \"./fr.json\";\nimport { getWidgetBus } from \"common/utils/api/api.helpers\";\n\nexport const BUS_TOPIC_GLOBALLANGUAGE = \"global.language\";\nexport const BUS_TOPIC_SGCONNECT_ACCESSTOKEN = \"sg-connect.access-token\";\nexport const BUS_TOPIC_SGCONNECT_USERCONNECTION = \"sg-connect.user-connection\";\nexport const BUS_TOPIC_SGCONNECT_USERINFO = \"sg-connect.user-info\";\nexport const BUS_TOPIC_SGCONNECT_GRANTEDSCOPE = \"sg-connect.granted-scope\";\n\ntype SupportedLocale = \"en\" | \"fr\";\nexport const locales: { [key in SupportedLocale]: { [key: string]: string } } = {\n en,\n fr,\n};\n\nexport const IntlProvider: React.FC = ({ children }) => {\n const [locale, setLocale] = useState(\"en\");\n\n // Use the SGWT Widgets bus to be aware of the modification of the language,\n // which is triggered by the widget.\n useEffect(() => {\n const bus = getWidgetBus();\n\n if (bus) {\n const languageSubscription = bus.subscribe(BUS_TOPIC_GLOBALLANGUAGE, (lang) => {\n if (lang && Object.keys(locales).indexOf(lang.toLowerCase()) >= 0) {\n setLocale(lang.toLowerCase() as SupportedLocale);\n }\n });\n return () => {\n bus.unsubscribe(languageSubscription);\n };\n }\n return () => {};\n }, []);\n\n return (\n \n {children}\n \n );\n};\n","import React from \"react\";\n\nexport interface AppGlobalContext {\n language?: string;\n}\n\nexport interface GlobalContextProps {\n globalContext: AppGlobalContext;\n}\n\nexport const defaultContext: AppGlobalContext = {\n // language: 'en'\n};\n\nexport const GlobalContext = React.createContext(defaultContext);\n\nexport function getDisplayName(WrappedComponent: React.ComponentType) {\n return WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n}\n\n// HOC to provide the globalContext to the wrapped component.\n// Since TypeScript 3.2, there is an issue with HOC.\n// It may be due to a bug in TypeScript itself... So using `any` \"solves\" the issue...\n// cf. https://stackoverflow.com/questions/53556160/react-hoc-and-typescript-3-2\nexport const withGlobalContext =

(WrappedComponent: React.ComponentType

) => {\n const wrapper: React.FC>> = (props) => (\n {(context) => }\n );\n wrapper.displayName = `WithGlobalContext(${getDisplayName(WrappedComponent)})`;\n return wrapper;\n};\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport { ROUTES } from \"common/constants/routes.const\";\nimport NotFoundPage from \"common/components/ErrorPage/NotFoundPage\";\nimport { SgHelpCenterContainer } from \"common/components/SgHelpCenter/sgHelpCenter.container\";\nimport MainScreen from \"app/components/MainScreen\";\nimport AuthProvider from \"modules/Authentication/components/AuthProvider\";\nimport { IntlProvider } from \"common/ressources/IntlContext\";\nimport { GlobalContext } from \"common/ressources/GlobalContext\";\n\nconst AppRouter: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AppRouter;\n","import * as React from \"react\";\nimport { Provider } from \"react-redux\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport { Store } from \"redux\";\nimport { History } from \"history\";\nimport { AppState } from \"app/store/store.states\";\nimport { ErrorHandler } from \"common/components/ErrorHandler/ErrorHandler\";\nimport AppRouter from \"./App.router\";\n\ninterface Props {\n store: Store;\n history: History;\n}\n\nexport const App: React.FC = ({ store, history }) => {\n \n return ( \n <>\n \n \n \n \n \n \n \n \n \n );\n};\n","import { combineReducers } from \"redux\";\nimport { BoardsState as BoardState } from \"./board.states\";\n\nexport const boardReducers = combineReducers({\n});\n","import homeSlice from \"./home.slice\";\n\nexport const homeReducers = homeSlice.reducer;\nexport default homeReducers;\n","import { ModulesState } from \"app/store/store.states\";\nimport { combineReducers } from \"redux\";\nimport { boardReducers } from \"modules/Board/store/board.reducer\";\nimport { homeReducers } from \"modules/Home/store/home.reducer\";\n\nexport const modulesReducers = combineReducers({\n board: boardReducers,\n home: homeReducers,\n});\n\nexport default modulesReducers;","import { RootState } from \"app/store/store.states\";\nimport { connectRouter } from \"connected-react-router\";\nimport { combineReducers } from \"redux\";\nimport { History } from \"history\";\nimport { modulesReducers } from \"./modules.reducer\";\nimport { authReducer } from \"modules/Authentication/store/auth.slice\";\nimport appSlice from \"./app.slice\";\nimport datasSlice from \"datas/store/datas.slice\";\n\nconst appReducers = (history: History) => combineReducers({\n app: appSlice.reducer,\n modules: modulesReducers,\n datas: datasSlice.reducer,\n router: connectRouter(history),\n auth: authReducer,\n});\n\nexport const rootReducer = (history: History) => appReducers(history);\n\nexport default rootReducer;","import { logAction } from \"modules/Authentication/utils/logger\";\n\n/**\n * this middleware is used in order to log every actions which are dispatch\n * we call next method to access of the next middleware in the global pipeline\n */\nexport const loggerMiddleware = () => next => action => {\n logAction(action);\n next(action);\n};\n","import { includes } from \"lodash\";\nimport { Store } from \"redux\";\nimport { RootState } from \"app/store/store.states\";\nimport { HttpResquestHeader } from \"common/types/api\";\nimport { AuthState } from \"modules/Authentication/store/auth.states\";\n\nexport const getConnectedUserEmail = (auth: AuthState): string | null =>\n auth && auth.user.email ? auth.user.email : null;\n\n/**\n * this middleware is used in order to feed headers on http requests\n * we retrieve the SG connect token from the state\n * and we put it in the authorization header\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport const apiMiddleware = (store: Store) => next => action => {\n if (includes(action.type, \"STARTED\")) {\n const { auth } = store.getState();\n\n const userEmail = getConnectedUserEmail(auth);\n\n const headers: HttpResquestHeader = {\n authorization: auth && auth.token ? auth.token : null,\n userEmail,\n };\n action.meta = action.meta ? { ...action.meta, headers } : { headers };\n }\n next(action);\n};\n","import { applyMiddleware, createStore } from \"redux\";\nimport { routerMiddleware } from \"connected-react-router\";\nimport { createLogger } from \"redux-logger\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\nimport { rootReducer } from \"app/store/root.reducer\";\nimport { loggerMiddleware } from \"app/store/logger.middleware\";\nimport { apiMiddleware } from \"app/store/api.middleware\";\nimport { environment } from \"app/config/environment\";\nimport { History, createBrowserHistory } from \"history\";\n\n/**\n * this method initialize the store and the navigation history of your application\n * we inject in the store configuration all the middlewares of the application\n * historyMiddleWare: created be the connected-react-router\n * apiMiddleware: our custom middleware to feed http request headers\n * loggerMiddleware: our custom middleware to log every action\n */\nexport const initialize = () => {\n const history = createBrowserHistory();\n const store = configureStore(history);\n return { store, history };\n};\n\nexport const configureStore = (history: History) => {\n const store = createStore(\n rootReducer(history),\n configureMiddleWare([routerMiddleware(history), apiMiddleware, loggerMiddleware])\n );\n //epicMiddleware.run(rootEpic);\n return store;\n};\n\nexport const configureMiddleWare = middleWares => {\n return environment !== \"production\" ? configureDevMiddleWare(middleWares) : applyMiddleware(...middleWares);\n};\n\nconst configureDevMiddleWare = middleware => {\n const logger = createLogger({ collapsed: true });\n return composeWithDevTools(applyMiddleware(...middleware, logger));\n};\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { App } from \"app/components/App\";\nimport { sgwtConnectComponent } from \"modules/Authentication/utils/getWidgetBus\";\nimport { initialize } from \"app/store/store\";\n// entry point for applying SG Boostrap 4 style\nimport \"app/styles/main.scss\";\n\nconst sgwtConnect = sgwtConnectComponent();\n\n/**\n * entry point of the application\n * we check the current user authentication:\n * if yes: we render the application\n * if no: we try to connect the current user\n */\nif (sgwtConnect.isAuthorized()) {\n const { store, history } = initialize();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ReactDOM.render(, document.getElementById(\"root\"));\n} else if (!sgwtConnect.getAuthorizationError()) {\n sgwtConnect.requestAuthorization();\n}\n"],"sourceRoot":""}