{"version":3,"file":"38.chunk.js","mappings":"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","sources":["webpack://orilogoutconfirmdialog/./src/components/ConfirmationDialog/ConfirmationDialog.tsx","webpack://orilogoutconfirmdialog/./src/components/DialogWrapper/DialogWrapper.tsx","webpack://orilogoutconfirmdialog/./src/containers/ErrorBoundary/ErrorBoundary.tsx","webpack://orilogoutconfirmdialog/./src/contexts/configurationContext.ts","webpack://orilogoutconfirmdialog/./src/containers/I18nContainer/I18nContainer.tsx","webpack://orilogoutconfirmdialog/./src/App.tsx","webpack://orilogoutconfirmdialog/./src/AppRender.tsx","webpack://orilogoutconfirmdialog/./src/utils/translations.ts"],"sourcesContent":["import { Dialog } from '@ori-ui/components';\nimport { InfoCircle } from '@ori-ui/icons';\nimport { Button, styled, Typography } from '@ori-ui/mui';\nimport { useCallback, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nconst StyledInfoCircle = styled(InfoCircle)(({ theme }) => ({\n color: theme.palette.info.main,\n fontSize: '90px !important',\n}));\n\nconst ConfirmationTypography = styled(Typography)(({ theme }) => ({\n marginTop: theme.spacing(3),\n marginBottom: theme.spacing(3),\n}));\n\nconst QuestionTypography = styled(Typography)(({ theme }) => ({\n marginTop: theme.spacing(3),\n}));\n\nconst Buttons = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(6),\n width: '100%',\n}));\n\nconst ConfirmButton = styled(Button)({\n width: '100%',\n});\n\nconst CancelButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(1),\n width: '100%',\n textDecoration: 'underline',\n}));\n\nexport interface ConfirmationDialogProps {\n onConfirm: () => void;\n onCancel: () => void;\n}\n\nexport const ConfirmationDialog = (props: ConfirmationDialogProps) => {\n const { onCancel, onConfirm } = props;\n\n const [isOpened, setOpened] = useState(true);\n const [areButtonsActive, setButtonsActive] = useState(true);\n\n const confirm = useCallback(() => {\n setButtonsActive(false);\n onConfirm();\n }, [onConfirm]);\n\n const cancel = useCallback(() => {\n setButtonsActive(false);\n setOpened(false);\n onCancel();\n }, [onCancel]);\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","import { Name as UserLogoutConfirmationEvent } from '@ori-events/user-logout-confirmation';\nimport { Name as UserLogoutConfirmedEvent } from '@ori-events/user-logout-confirmed';\nimport type { VFC } from 'react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog';\n\nconst DialogWrapper: VFC = () => {\n const [isActive, setActive] = useState(false);\n\n const handleConfirmation = useCallback(() => {\n window.dispatchEvent(new CustomEvent(UserLogoutConfirmedEvent));\n }, []);\n\n const handleCancel = useCallback(() => {\n // Timeout to allow for window close animation to finish.\n setTimeout(() => {\n setActive(false);\n }, 1000);\n }, []);\n\n useEffect(() => {\n window.addEventListener(UserLogoutConfirmationEvent, () => {\n setActive(true);\n });\n }, []);\n\n return isActive ? (\n \n ) : null;\n};\n\nexport default DialogWrapper;\n","import { Component } from 'react';\n\ninterface ErrorBoundaryProps {\n children: JSX.Element;\n}\n\ninterface ErrorBoundaryState {\n error?: Error;\n}\n\nexport class ErrorBoundary extends Component {\n override readonly state: ErrorBoundaryState = {};\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n override render() {\n const { error } = this.state;\n\n if (error) {\n return (\n
\n

Ooops... error found :(

\n
{error.message}
\n
\n );\n }\n\n const { children } = this.props;\n\n return children;\n }\n}\n","import { createContext, useContext } from 'react';\n\nimport type { AppConfiguration } from '~/models/AppConfiguration';\n\nexport const configurationContext = createContext({\n translatedMessages: {},\n});\n\nexport const ConfigurationProvider = configurationContext.Provider;\n\nexport const useConfiguration = () => useContext(configurationContext);\n","import type { FC } from 'react';\nimport { IntlProvider } from 'react-intl';\n\nimport { useConfiguration } from '../../contexts/configurationContext';\n\nexport const I18nContainer: FC = ({ children }) => {\n const locale = document.documentElement.lang || 'en';\n const { translatedMessages } = useConfiguration();\n\n return (\n \n {children}\n \n );\n};\n","import { ThemeProvider } from '@ori-ui/mui';\nimport type { VFC } from 'react';\n\nimport DialogWrapper from './components/DialogWrapper/DialogWrapper';\nimport { ErrorBoundary } from './containers/ErrorBoundary/ErrorBoundary';\nimport { I18nContainer } from './containers/I18nContainer/I18nContainer';\nimport { ConfigurationProvider } from './contexts/configurationContext';\nimport type { AppConfiguration } from './models/AppConfiguration';\n\ninterface AppProps {\n configuration: AppConfiguration;\n}\n\nexport const App: VFC = ({ configuration }) => (\n \n \n \n \n \n \n \n \n \n);\n","import ReactDOM from 'react-dom';\n\nimport { App } from '~/App';\nimport type { AppConfiguration } from '~/models/AppConfiguration';\nimport { extractTranslations } from '~/utils/translations';\n\nexport const render = (rootElement: HTMLElement): void => {\n const { messages } = extractTranslations(rootElement.dataset.jsonAttributes);\n\n const configuration: AppConfiguration = {\n translatedMessages: messages,\n };\n\n ReactDOM.render(, rootElement);\n};\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access -- TODO: remove this */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment -- TODO: remove this */\n\nexport interface Translations {\n [locale: string]: Record | undefined;\n}\n\nexport const extractTranslations = (jsonAttributes?: string) => {\n const attributes = jsonAttributes ? JSON.parse(jsonAttributes || '{}') : {};\n\n const locale =\n document.documentElement.lang ||\n (attributes.DefaultLanguage ? (attributes.DefaultLanguage as string) : 'en');\n\n const translations: Translations = attributes.Translations ?? {};\n\n const messages: Record = translations[locale] ?? {};\n\n return {\n locale,\n messages,\n translations,\n };\n};\n"],"names":["StyledInfoCircle","styled","InfoCircle","color","theme","palette","info","main","fontSize","ConfirmationTypography","Typography","marginTop","spacing","marginBottom","QuestionTypography","Buttons","width","ConfirmButton","Button","CancelButton","textDecoration","ConfirmationDialog","props","onCancel","onConfirm","useState","isOpened","setOpened","areButtonsActive","setButtonsActive","confirm","useCallback","cancel","Dialog","hideCloseButton","open","sx","textAlign","maxWidth","onClose","variant","id","defaultMessage","disabled","onClick","isActive","setActive","handleConfirmation","window","dispatchEvent","CustomEvent","UserLogoutConfirmedEvent","handleCancel","setTimeout","useEffect","addEventListener","UserLogoutConfirmationEvent","ErrorBoundary","error","this","state","message","children","Component","configurationContext","createContext","translatedMessages","ConfigurationProvider","Provider","I18nContainer","locale","document","documentElement","lang","useContext","messages","App","configuration","value","ThemeProvider","enableCacheProvider","cacheKey","render","rootElement","jsonAttributes","attributes","translations","dataset","JSON","parse","DefaultLanguage","Translations","ReactDOM"],"sourceRoot":""}