{"version":3,"sources":["store/actions.js","fetcher/settings.js","components/common/styles.js","components/common/SectionHeader.js","components/common/CommonText.js","components/common/ArrowButton.js","components/common/AlertBlock.js","fetcher/payment.js","fetcher/index.js","components/common/Spinner.js","components/common/Arrow.js","components/common/Header/DNBLogo.png","auth.js","store/rootReducer.js","components/ServicesView/ServicesView.js","components/common/LogoutView/LogoutView.js","components/common/LogoutView/index.js","components/CampaignRoute.js","components/Routes.js","i18n.js","store/index.js","index.js","history.js","features.js","components/common/util.js","components/common/SectionRow.js","components/common/ContentBlock.js","fetcher/auth.js","components/common/Footer/Footer.js","components/common/Footer/index.js","components/App.js","components/common/Header/Header.js","components/common/Header/index.js","components/common/HeroHeadingContainer.js"],"names":["stateClear","createAction","getUserData","options","dispatch","fetchApiJson","method","setUserData","email","languageCode","name","agreedToReceiveAds","agreedToTransferData","phoneNumber","data","setUserLanguage","colors","blue","bisBlue","green","yellow","red","bisRed","grey","lightGrey","bisGreySilver","bisGreyAlto","beige","darkGrey","blackGraphite","black","white","hoverBlue","uBgFaded","SectionHeader","this","props","className","children","isPrimaryText","classNameFull","classNames","PureComponent","defaultProps","CommonText","style","ArrowButton","omitArrowIcon","secondary","passProps","ButtonComponent","to","Link","styles","button","arrow","disabled","lineHeight","minWidth","height","width","marginBottom","AlertBlock","onClose","type","alert__text","onClick","i","generatePayment","productType","additionalData","campaignCode","cookies","get","payment","getPayment","orderNumber","paymentStatus","qs","queryString","stringify","getPrices","params","undefined","isAuthenticated","getCampaign","campaign","response","status","erase","fetchApi","path","currentService","unauthorizedErrorMessage","redirectToAuthOnExpiredSession","axiosOptions","pathPrefix","startsWith","axios","xsrfCookieName","xsrfHeaderName","credentials","destroySessionAndState","stopSubmit","_error","authQueryString","error","redirectPath","getEncodedRedirectPath","history","push","Error","errorCode","config","responseType","PromiseFileReader","readAsText","errorString","JSON","parse","isCancel","process","REACT_APP_LOG_FETCH_ERRORS","console","headers","Accept","encodeURIComponent","window","location","pathname","search","Spinner","viewBox","xmlns","fillRule","color","d","Arrow","fill","module","exports","Boolean","nestedReducers","combineReducers","form","rootReducer","state","action","toString","ServicesView","t","App","header","Header","showLogoutButton","heroHeadingContainer","HeroHeadingContainer","content","ContentBlock","feature","withTranslation","LogoutView","connect","bindActionCreators","logout","useTranslation","useState","CancelToken","source","cancelLogout","setCancelLogout","logoutError","setLogoutError","isLoggingOut","setIsLoggingOut","setCurrentService","useEffect","cancelToken","token","errorMessages","defaultErrorMessage","errorMessage","getErrorMessage","cancel","SectionRow","rootView","setCampaign","code","slice","isValidCampaign","set","campaignTargetUrl","serviceId","Redirect","SettingsServiceRoutes","Loadable","loader","loading","AdminServiceRoutes","DataServiceRoutes","ProtectionServiceRoutes","RightsServiceRoutes","MonitoringServiceRoutes","CompanyMonitoringServiceRoutes","exact","RoutesWithTranslation","title","Switch","Route","component","features","FEATURE_MONITORING","FEATURE_COMPANY_MONITORING","render","showMenu","fallback","i18n","use","Backend","LanguageDetector","initReactI18next","init","lng","fallbackLng","debug","loadPath","interpolation","escapeValue","format","value","Intl","NumberFormat","currency","store","enchancers","composeEnhancers","compose","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","createStore","applyMiddleware","thunk","createAppStore","autoRehydrate","whitelist","REACT_APP_STORAGE_WHITELIST","whitelistedReducers","split","REACT_APP_POPULATE_TEST_DATA","change","persistStore","ReactDOM","Router","document","getElementById","createHistory","boolean","FEATURE_MONITORING_CHANGES_SCENE","FEATURE_PROTECTION_FREE_FOR_MONITORING_CONSUMERS","FEATURE_MONITORING_PAYMENT","defaultMessage","getCensoredSocialSecurityNumber","socialSecurityNumber","convertDateToString","remarkDate","typeToDate","Date","remarkDateDay","getDate","remarkDateMonth","getMonth","remarkDateYear","getFullYear","compareEvents","a","b","event","localeCompare","changeHappenedIn24hours","check","moment","diff","changesHappenedIn24hours","changes","some","x","changedAt","changes1or2In90Days","count","filter","length","changes3orMoreIn90Days","changes12orMoreIn360Days","changesHappenedIn360Days","emailRe","RegExp","isEmailFormValid","test","ssnRe","isSsnFormValid","ssn","now","includes","validSince","validUntil","formatDate","dateString","wrapper","backgroundColor","Radium","loginWithUserName","username","password","user","getUserInfo","userInfo","serviceProvider","verticalBar","borderStyle","borderColor","borderWidth","Footer","href","target","rel","consentAlert","companiesWrapper","logo","userSelect","marginTop","navLinkVerticalBar","margin","padding","cursor","navLinkHorizontalBar","omaData","textDecoration","omaDataCompanies","serviceType","serviceName","setshowMenu","selectedLanguage","setSelectedLanguage","isLangDropdownOpen","setIsLangDropdownOpen","availableLanguages","changeLanguage","MenuButtons","NavLink","activeClassName","navLinkSeparator","stroke","LanguageDropdown","map","language","key","src","alt","fullWrapperStyle","heroHeading","wrapperWithText","wrapperNoText","backgroundImagePath","backgroundImage","backgroundSize","backgroundRepeat","paddingBottom","marginLeft","marginRight"],"mappings":"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","file":"static/js/main.075a2f8d.chunk.js","sourcesContent":["import { createAction } from 'redux-actions';\n\n\nconst stateClear = createAction('STATE_CLEAR');\n\n\nexport {\n\tstateClear,\n};\n","import { fetchApiJson } from '.';\n\n/**\n * Get user data.\n *\n * @param {object} options\n *\n * @param {object} options\n */\nexport const getUserData = (options) => async dispatch => {\n\treturn await dispatch(fetchApiJson('consumer/personsettings', {\n\t\tmethod: 'get',\n\t\t...options,\n\t}));\n};\n\n/**\n * Set user data.\n *\n * @param {object} options\n *\n */\nexport const setUserData = ({ email, languageCode, name, agreedToReceiveAds, agreedToTransferData, phoneNumber } = null, options) => async dispatch => {\n\tawait dispatch(fetchApiJson('consumer/personsettings', {\n\t\tmethod: 'post',\n\t\tdata: {\n\t\t\tname,\n\t\t\tlanguageCode,\n\t\t\temail,\n\t\t\tphoneNumber,\n\t\t\tagreedToReceiveAds,\n\t\t\tagreedToTransferData,\n\t\t},\n\t\t...options,\n\t}));\n};\n\n/**\n * Set user language.\n *\n * @param {object} options\n *\n */\nexport const setUserLanguage = ({ languageCode }, options) => async dispatch => {\n\tawait dispatch(fetchApiJson('consumer/personsettings/language', {\n\t\tmethod: 'post',\n\t\tdata: {\n\t\t\tlanguageCode,\n\t\t},\n\t\t...options,\n\t}));\n};\n","export const colors = {\n\tblue: '#3E8CD5',\n\tbisBlue: '#348AE0',\n\tgreen: '#449e79',\n\tyellow: '#ffb851',\n\tred: '#da3b3b',\n\tbisRed: '#E46E4A',\n\n\tgrey: '#F2F2F2',\n\tlightGrey: '#FAFAFA',\n\tbisGreySilver: '#C4C4C4',\n\tbisGreyAlto: '#dddddd',\n\tbeige: '#F9F7F4',\n\tdarkGrey: '#7D7D7D',\n\tblackGraphite: '#292929',\n\tblack: '#000000',\n\twhite: '#FFFFFF',\n\thoverBlue: '#48A0F2',\n\tuBgFaded: '.u-bg-faded',\n};\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n\nexport default class SectionHeader extends PureComponent {\n\n\tstatic propTypes = {\n\t\tchildren: PropTypes.node,\n\t\tclassName: PropTypes.string,\n\t\tisPrimaryText: PropTypes.bool,\n\t};\n\n\tstatic defaultProps = {\n\t\tisPrimaryText: true,\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tchildren,\n\t\t\tisPrimaryText,\n\t\t} = this.props;\n\n\t\tconst classNameFull = classNames(\n\t\t\t{ 'u-text-primary': isPrimaryText },\n\t\t\t'u-font-size-4',\n\t\t\t'u-text-light',\n\t\t\tclassName,\n\t\t);\n\n\t\treturn (\n\t\t\t

\n\t\t\t\t{children}\n\t\t\t

\n\t\t);\n\t}\n\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n\nexport default class CommonText extends PureComponent {\n\n\tstatic propTypes = {\n\t\tchildren: PropTypes.node,\n\t\tclassName: PropTypes.string,\n\t\tstyle: PropTypes.object,\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t} = this.props;\n\n\t\tconst classNameFull = classNames(\n\t\t\t'u-text-light',\n\t\t\t'font-size-5',\n\t\t\tclassName,\n\t\t);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{children}\n\t\t\t

\n\t\t);\n\t}\n\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\n\nimport Arrow from './Arrow';\n\n\nexport default class ArrowButton extends PureComponent {\n\n\tstatic propTypes = {\n\t\tto: PropTypes.string,\n\t\tchildren: PropTypes.string,\n\t\tsecondary: PropTypes.bool,\n\t\tonClick: PropTypes.func,\n\t\tomitArrowIcon: PropTypes.bool,\n\t\tdisabled: PropTypes.bool,\n\t\tclassName: PropTypes.string,\n\t};\n\n\n\trender() {\n\t\tconst {\n\t\t\tchildren,\n\t\t\tomitArrowIcon,\n\t\t\tclassName,\n\t\t\tsecondary,\n\t\t\t...passProps\n\t\t} = this.props;\n\n\t\tconst ButtonComponent = passProps.to ? Link : 'button';\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\t{!omitArrowIcon &&\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t);\n\t}\n\n}\n\nconst styles = {\n\tbutton: {\n\t\tlineHeight: '1.3rem',\n\t\tminWidth: '10.5rem',\n\t},\n\tarrow: {\n\t\theight: '1.4rem',\n\t\twidth: '1.4rem',\n\n\t\tmarginBottom: '-0.3rem',\n\t},\n};\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n\nexport default class AlertBlock extends PureComponent {\n\n\tstatic propTypes = {\n\t\tchildren: PropTypes.node,\n\t\tonClose: PropTypes.func,\n\t\ttype: PropTypes.oneOf([\n\t\t\t'info',\n\t\t\t'success',\n\t\t\t'warning',\n\t\t\t'danger',\n\t\t]),\n\t\tclassName: PropTypes.string,\n\t};\n\n\tstatic defaultProps = {\n\t\ttype: 'danger',\n\t};\n\n\n\trender() {\n\t\tconst {\n\t\t\tchildren,\n\t\t\tonClose,\n\t\t\ttype,\n\t\t\tclassName,\n\t\t\t...passProps\n\t\t} = this.props;\n\n\t\tconst classNameFull = classNames(\n\t\t\t'alert-container',\n\t\t\t`alert-container--${type}`,\n\t\t\tclassName,\n\t\t);\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{children}\n\t\t\t\t\t
\n\t\t\t\t\t{onClose &&\n\t\t\t\t\t\t
\n\t\t\t\n\t\t);\n\t}\n\n}\n","import queryString from 'query-string';\nimport cookies from 'browser-cookies';\n\nimport { fetchApiJson } from '.';\nimport { isAuthenticated } from '../auth';\n\n\n/**\n * Generate a new Paytrail payment.\n *\n * @param {string} .productType\n * @param {object} [.additionalData]\n *\n * @param {object} options\n *\n * @return {object}\n */\nexport const generatePayment = ({ productType, additionalData }, options) => async dispatch => {\n\tconst payment = await dispatch(fetchApiJson('payment', {\n\t\tmethod: 'post',\n\t\tdata: {\n\t\t\tproductType,\n\t\t\tadditionalData,\n\t\t\tcampaignCode: cookies.get('campaign'),\n\t\t},\n\t\t...options,\n\t}));\n\n\treturn payment;\n};\n\n/**\n * Get a Paytrail payment.\n *\n * @param {string} orderNumber\n *\n * @param {object} options\n *\n * @return {object}\n */\nexport const getPayment = ({ orderNumber, paymentStatus }, options) => async dispatch => {\n\tconst qs = queryString.stringify({ paymentStatus });\n\n\tconst payment = await dispatch(fetchApiJson(`payment/${orderNumber}?${qs}`, {\n\t\tmethod: 'get',\n\t\t...options,\n\t}));\n\n\treturn payment;\n};\n\n\nexport const getPrices = (options) => async dispatch => {\n\tlet payment = null;\n\tconst campaignCode = cookies.get('campaign');\n\tconst params = campaignCode ? { campaignCode } : undefined;\n\n\tif (isAuthenticated()) {\n\t\tpayment = await dispatch(fetchApiJson(`payment/prices/personal`, {\n\t\t\tmethod: 'get',\n\t\t\tparams,\n\t\t\t...options,\n\t\t}));\n\t}\n\telse {\n\t\tpayment = await dispatch(fetchApiJson(`payment/prices`, {\n\t\t\tmethod: 'get',\n\t\t\tparams,\n\t\t\t...options,\n\t\t}));\n\t}\n\treturn payment;\n};\n\nexport const getCampaign = (campaignCode, options) => async dispatch => {\n\tlet campaign = null;\n\ttry {\n\t\tif (campaignCode) {\n\t\t\tcampaign = await dispatch(fetchApiJson(`payment/campaign/${campaignCode}`, {\n\t\t\t\tmethod: 'get',\n\t\t\t\t...options,\n\t\t\t}));\n\t\t}\n\t} catch (error) {\n\t\tif (error.response.status === 404) {\n\t\t\tcookies.erase('campaign');\n\t\t}\n\t}\n\treturn campaign;\n};\n","import axios from 'axios';\nimport cookies from 'browser-cookies';\nimport PromiseFileReader from 'promise-file-reader';\nimport queryString from 'query-string';\nimport { stopSubmit } from 'redux-form/immutable';\n\nimport history from '../history';\nimport { destroySessionAndState } from './auth';\n\n\n\n\n/**\n * Execute an API call to the Node.js server.\n *\n * @param {string} path\n * @param {object} options Options forwarded to `axios(..)`\n * @param {string} [options.unauthorizedErrorMessage='expired'] The value for `error` query param\n * for unauthorized requests that get redirected to authenticated view.\n * @param {boolean} [options.redirectToAuthOnExpiredSession=true] If the session has expired, i.e.\n * a response with 401 status code is returned, whether to redirect to authentication scene.\n *\n * @throws {Error} If an error (with status code other than 401) occurred when making the HTTP request.\n */\nexport const fetchApi = (path, options = {}) => async dispatch => {\n\tconst currentService = cookies.get('service');\n\n\tconst {\n\t\tunauthorizedErrorMessage = 'expired',\n\t\tredirectToAuthOnExpiredSession = true,\n\t\t...axiosOptions\n\t} = options;\n\n\ttry {\n\t\tconst pathPrefix = path.startsWith('/') ? '' : '/api/v1/';\n\t\tconst response = await axios(`${pathPrefix}${path}`, {\n\t\t\txsrfCookieName: 'csrf',\n\t\t\txsrfHeaderName: 'x-csrf-token',\n\t\t\tcredentials: 'same-origin',\n\t\t\t...axiosOptions,\n\t\t});\n\n\t\treturn response;\n\t}\n\tcatch (error) {\n\t\tif (error.response && error.response.status === 401) {\n\t\t\tif (redirectToAuthOnExpiredSession) {\n\t\t\t\t// Destroy session cookies and Redux state.\n\t\t\t\tdispatch(destroySessionAndState());\n\n\t\t\t\tdispatch(stopSubmit('login', {\n\t\t\t\t\t_error: 'Istunto on vanhentunut.', // TODO Translate\n\t\t\t\t}));\n\n\t\t\t\t// If the current service is set in the 'service' cookie, redirect to the\n\t\t\t\t// authentication page of that service. Otherwise, redirect to the front page.\n\t\t\t\tif (currentService) {\n\t\t\t\t\tconst authQueryString = queryString.stringify({\n\t\t\t\t\t\terror: unauthorizedErrorMessage,\n\t\t\t\t\t\tredirectPath: getEncodedRedirectPath(),\n\t\t\t\t\t});\n\n\t\t\t\t\thistory.push(`/${currentService}/auth?${authQueryString}`);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thistory.push('/');\n\t\t\t\t}\n\n\t\t\t\tthrow Error('You are not authorized to access this page');\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (error.response && error.response.data) {\n\t\t\t// Add error code from the response body directly to the error object.\n\t\t\terror.errorCode = error.response.data.errorCode;\n\n\t\t\t// If blob was specified as responseType, error data is also returned as blob,\n\t\t\t// and needs to be parsed into object.\n\t\t\tif (error.response.config.responseType === 'blob') {\n\t\t\t\tconst errorString = await PromiseFileReader.readAsText(error.response.data);\n\t\t\t\tconst { errorCode } = JSON.parse(errorString);\n\n\t\t\t\terror.errorCode = errorCode;\n\t\t\t}\n\t\t}\n\n\t\t// User cancelled the request.\n\t\tif (axios.isCancel(error)) {\n\t\t\tthrow error;\n\t\t}\n\t\telse {\n\t\t\t// Print errors to console if logging fetch errors is enabled.\n\t\t\tif (process.env.REACT_APP_LOG_FETCH_ERRORS) {\n\t\t\t\tconsole.error(error); // eslint-disable-line no-console\n\t\t\t}\n\n\t\t\tif (error.response && error.response.status >= 500) {\n\t\t\t\t// TODO: translate and/or get this message from a common place.\n\t\t\t\tthrow Error('Palvelussa tapahtui virhe. Odota hetki, ja yritä uudelleen.');\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n};\n\n/**\n * Execute an API call to the Node.js server and parse the JSON response.\n *\n * @param {string} path\n * @param {object} options Options forwarded to `axios(..)`\n *\n * @throws {Error} If an error (with status code other than 401) occurred when making the HTTP request.\n */\nexport const fetchApiJson = (path, options = {}) => async dispatch => {\n\toptions.headers = {\n\t\tAccept: 'application/json',\n\t\t'Content-Type': 'application/json',\n\t\t...options.headers,\n\t};\n\n\tconst response = await dispatch(fetchApi(path, options));\n\n\tif (!response || response.status === 204) {\n\t\t// No content was returned.\n\t\treturn;\n\t}\n\n\treturn response.data;\n};\n\n/**\n * Get the URL encoded redirect path for the current location.\n *\n * @return {string}\n */\nexport function getEncodedRedirectPath() {\n\tconst redirectPath = encodeURIComponent(window.location.pathname + window.location.search);\n\n\treturn redirectPath;\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\n\nexport default class Spinner extends PureComponent {\n\n\tstatic propTypes = {\n\t\tcolor: PropTypes.oneOf([ 'white' ]),\n\t\tclassName: PropTypes.any,\n\t};\n\n\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { colors } from './styles';\n\n\nexport default class Arrow extends PureComponent {\n\n\n\tstatic propTypes = {\n\t\tclassName: PropTypes.string,\n\t\tstyle: PropTypes.object,\n\t\tdisabled: PropTypes.bool,\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\tdisabled,\n\t\t} = this.props;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n}\n\n","module.exports = __webpack_public_path__ + \"static/media/DNBLogo.2af0688d.png\";","import cookies from 'browser-cookies';\n\n\n/**\n * Checks if user is authenticated.\n *\n * @return {bool}\n */\nexport function isAuthenticated() {\n\tconst isAuthenticated = Boolean(cookies.get('csrf'));\n\n\treturn isAuthenticated;\n}\n","import { combineReducers } from 'redux-immutablejs';\nimport { reducer as form } from 'redux-form/immutable';\n\nimport { stateClear } from './actions';\n\n\nconst nestedReducers = combineReducers({\n\tform,\n});\n\nexport default function rootReducer(state, action) {\n\tif (action.type === stateClear.toString()) {\n\t\t// Calling reducers with state set to `undefined` will reset\n\t\t// them to the initial state.\n\t\tstate = undefined;\n\t}\n\n\tstate = nestedReducers(state, action);\n\n\treturn state;\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\nimport { FeatureGate } from 'react-feature-gate';\nimport { withTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport ContentBlock from '../common/ContentBlock';\nimport App from '../App';\nimport Header from '../common/Header';\nimport HeroHeadingContainer from '../common/HeroHeadingContainer';\n\nclass ServicesView extends PureComponent {\n\n\tstatic propTypes = {\n\t\tt: PropTypes.func,\n\t}\n\n\trender() {\n\t\tconst { t } = this.props;\n\t\treturn (\n\t\t\t}\n\t\t\t\theroHeadingContainer={}\n\t\t\t\tcontent={\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('services.servicesAdminService')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('services.servicesData')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('services.servicesRights')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('services.servicesProtection')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t('services.servicesPeopleMonitoring')}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t('services.servicesCompanyMonitoring')}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\n}\n\n\nexport default withTranslation(['miscellaneous'])(ServicesView);\n","import React, { useState, useEffect } from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport axios, { CancelToken } from 'axios';\nimport cookies from 'browser-cookies';\n\nimport { logout } from '../../../fetcher/auth';\n\nimport ContentBlock from '../ContentBlock';\nimport Spinner from '../Spinner';\nimport SectionHeader from '../SectionHeader';\nimport SectionRow from '../SectionRow';\nimport CommonText from '../CommonText';\nimport ArrowButton from '../ArrowButton';\nimport AlertBlock from '../AlertBlock';\n\nimport { getErrorMessage } from '../util';\n\nconst LogoutView = ({ logout }) => {\n\n\tLogoutView.propTypes = {\n\t\tlogout: PropTypes.func,\n\t};\n\n\tLogoutView.defaultProps = {\n\t\tlogout: () => {},\n\t};\n\n\tconst { t } = useTranslation(['miscellaneous']);\n\n\tconst [cancelLogout, setCancelLogout] = useState(CancelToken.source());\n\tconst [logoutError, setLogoutError] = useState(null);\n\tconst [isLoggingOut, setIsLoggingOut] = useState(true);\n\tconst [currentService, setCurrentService] = useState('/');\n\n\tuseEffect (() => {\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tconst currentService = cookies.get('service') ? cookies.get('service') : '/';\n\n\t\t\t\tsetCancelLogout(cancelLogout)\n\t\t\t\tsetCurrentService(currentService)\n\n\t\t\t\t// When this component gets mounted, we log the user out immediately.\n\t\t\t\tawait logout({ cancelToken: cancelLogout.token });\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tif (axios.isCancel(error)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst errorMessages = {};\n\t\t\t\tconst defaultErrorMessage = t('errors.logOutError');\n\t\t\t\tconst errorMessage = getErrorMessage(error.errorCode, errorMessages, defaultErrorMessage);\n\n\t\t\t\tsetLogoutError(errorMessage);\n\t\t\t}\n\n\t\t\tsetIsLoggingOut(false)\n\t\t\tsetCancelLogout(null)\n\t\t})();\n\t\treturn () => {\n\t\t\tif (cancelLogout) {\n\t\t\t\tcancelLogout.cancel('Aborted on component unmount');\n\t\t\t}\n\t\t};\n\t}, []); // eslint-disable-line\n\n\tlet content;\n\tif (isLoggingOut) {\n\t\tcontent = (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\t{t('logOut.isLoggingOut')}\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\telse if (logoutError) {\n\t\tcontent = (\n\t\t\t\n\t\t\t\t{logoutError}\n\t\t\t\n\t\t);\n\t}\n\telse {\n\t\tcontent = (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('logOut.header')}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('logOut.text')}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('logOut.button')}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{content}\n\t\t\n\t);\n}\n\nexport default connect(\n\tundefined,\n\tdispatch => bindActionCreators({\n\t\tlogout,\n\t}, dispatch),\n)(LogoutView);\n","import LogoutView from './LogoutView';\n\n\nexport default LogoutView;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport cookies from 'browser-cookies';\nimport ReactRouterPropTypes from 'react-router-prop-types';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { getCampaign } from '../fetcher/payment';\nimport Spinner from './common/Spinner';\nimport { isValidCampaign } from './common/util';\n\nconst CampaignRoute = ({ getCampaign, location }) => {\n\n\tCampaignRoute.propTypes = {\n\t\tgetCampaign: PropTypes.func,\n\t\tchildren: PropTypes.node,\n\t\tlocation: ReactRouterPropTypes.location.isRequired,\n\t};\n\n\tconst [campaign, setCampaign] = useState();\n\tconst code = location.pathname.slice(1);\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst campaign = await getCampaign(code);\n\t\t\tsetCampaign(campaign);\n\t\t\tif (isValidCampaign(campaign)) {\n\t\t\t\tcookies.set('campaign', code);\n\t\t\t} else {\n\t\t\t\tcookies.erase('campaign');\n\t\t\t}\n\t\t})();\n\t}, [code, getCampaign]);\n\n\tconst campaignUrls = {\n\t\t'companiesMonitoring': '/companies/monitoring',\n\t\t'monitoring': '/monitoring',\n\t\t'protection': '/protection',\n\t};\n\n\tconst campaignTargetUrl = campaign && campaignUrls[campaign.serviceId];\n\treturn (\n\t\tcampaign === undefined\n\t\t\t? \n\t\t\t: campaign !== null && campaignTargetUrl\n\t\t\t\t? \n\t\t\t\t: // campaign does not exist\n\t);\n}\n\nexport default connect(\n\tundefined,\n\tdispatch => bindActionCreators({\n\t\tgetCampaign,\n\t}, dispatch),\n)(CampaignRoute);\n","import React, { Suspense } from 'react';\nimport { Route, Switch, Redirect } from 'react-router-dom';\nimport Loadable from 'react-loadable';\nimport DocumentTitle from 'react-document-title';\nimport { withTranslation } from 'react-i18next';\n\nimport ServicesView from './ServicesView/ServicesView';\nimport Spinner from './common/Spinner';\nimport App from './App';\nimport Header from './common/Header';\nimport LogoutView from './common/LogoutView';\nimport features from '../features';\nimport HeroHeadingContainer from './common/HeroHeadingContainer';\nimport CampaignRoute from './CampaignRoute';\n\nconst SettingsServiceRoutes = Loadable({\n\tloader: () => import('./SettingsService/SettingsServiceRoutes'),\n\tloading: Spinner,\n});\n\nconst AdminServiceRoutes = Loadable({\n\tloader: () => import('./AdminService/AdminServiceRoutes'),\n\tloading: Spinner, // TODO Make a proper loading screen\n});\n\nconst DataServiceRoutes = Loadable({\n\tloader: () => import('./DataService/DataServiceRoutes'),\n\tloading: Spinner, // TODO Make a proper loading screen\n});\n\nconst ProtectionServiceRoutes = Loadable({\n\tloader: () => import('./ProtectionService/ProtectionServiceRoutes'),\n\tloading: Spinner, // TODO Make a proper loading screen\n});\n\nconst RightsServiceRoutes = Loadable({\n\tloader: () => import('./RightsService/RightsServiceRoutes'),\n\tloading: Spinner, // TODO Make a proper loading screen\n});\n\nconst MonitoringServiceRoutes = Loadable({\n\tloader: () => import('./MonitoringService/MonitoringServiceRoutes'),\n\tloading: Spinner, // TODO Make a proper loading screen\n});\n\nconst CompanyMonitoringServiceRoutes = Loadable({\n\tloader: () => import('./CompanyMonitoringService/CompanyMonitoringServiceRoutes'),\n\tloading: Spinner, // TODO Make a proper loading screen\n});\n\nlet rootView;\nif (process.env.NODE_ENV !== 'production') {\n\t// In development environments, show the service listing page in '/' path.\n\trootView = (\n\t\t\n\t);\n}\nelse {\n\t// In production (and staging), redirect from '/' to the Data service.\n\trootView = (\n\t\t\n\t);\n}\n\nconst Routes = () => (\n\t\n\t\t\n\t\t\t{rootView}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{features.FEATURE_MONITORING &&\n\t\t\t\t\n\t\t\t}\n\t\t\t{features.FEATURE_COMPANY_MONITORING &&\n\t\t\t\t\n\t\t\t}\n\t\t\t (\n\t\t\t\t\t}\n\t\t\t\t\t\tcontent={}\n\t\t\t\t\t\theroHeadingContainer={}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t/>\n\t\t\n\t\n);\n\nconst RoutesWithTranslation = withTranslation()(Routes);\n\nexport default () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport Backend from 'i18next-http-backend';\nimport LanguageDetector from 'i18next-browser-languagedetector';\n\ni18n\n\t// load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\n\t// learn more: https://github.com/i18next/i18next-http-backend\n\t.use(Backend)\n\t// detect user language\n\t// learn more: https://github.com/i18next/i18next-browser-languageDetector\n\t.use(LanguageDetector)\n\t// pass the i18n instance to react-i18next.\n\t.use(initReactI18next)\n\t// init i18next\n\t// for all options read: https://www.i18next.com/overview/configuration-options\n\t.init({\n\t\tlng: 'fi',\n\t\tfallbackLng: 'fi',\n\t\tdebug: true,\n\n\t\tloadPath: '/locales/{{lng}}/{{ns}}.json',\n\n\t\tinterpolation: {\n\t\t\tescapeValue: false, // not needed for react as it escapes by default,\n\t\t\tformat: function(value, format, lng) {\n\t\t\t\tif (format === 'currency') {\n\t\t\t\t\treturn new Intl.NumberFormat(lng, {\n\t\t\t\t\t\tstyle: 'currency',\n\t\t\t\t\t\tcurrency: 'EUR',\n\t\t\t\t\t}).format(value);\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t},\n\t\t},\n\t});\n\n\nexport default i18n;\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport thunk from 'redux-thunk';\nimport { change } from 'redux-form';\n\nimport rootReducer from './rootReducer';\n\n\nexport function createAppStore(enchancers = []) {\n\tlet composeEnhancers = compose;\n\tif (typeof window !== 'undefined') {\n\t\t// When running on browser, enable Redux DevTools if the\n\t\t// extension is enabled.\n\t\tcomposeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\t}\n\n\tconst store = createStore(\n\t\trootReducer,\n\t\tcomposeEnhancers(\n\t\t\tapplyMiddleware(thunk),\n\t\t\t...enchancers,\n\t\t),\n\t);\n\n\treturn store;\n}\n\nexport function populateTestData(dispatch) {\n\tdispatch(change('login', 'username', 'testuser'));\n\tdispatch(change('login', 'password', 'supersecret'));\n\n\tdispatch(change('adminDataReport', 'socialSecurityNumber', '160162-9968'));\n\tdispatch(change('adminDataReport', 'purposeCode', '6'));\n\tdispatch(change('adminDataReport', 'firstName', 'Kanerva'));\n\tdispatch(change('adminDataReport', 'lastName', 'Tuulispää'));\n\tdispatch(change('adminDataReport', 'streetAddress', 'Kumpulantie 3'));\n\tdispatch(change('adminDataReport', 'postalCode', '00520'));\n\tdispatch(change('adminDataReport', 'postOffice', 'Helsinki'));\n\n\tdispatch(change('adminRightsUserInfo', 'socialSecurityNumber', '160162-9968'));\n\tdispatch(change('adminRightsUserInfo', 'purposeCode', '6'));\n\tdispatch(change('adminRightsUserInfo', 'firstName', 'Kanerva'));\n\tdispatch(change('adminRightsUserInfo', 'lastName', 'Tuulispää'));\n\tdispatch(change('adminRightsUserInfo', 'streetAddress', 'Kumpulantie 3'));\n\tdispatch(change('adminRightsUserInfo', 'postalCode', '00520'));\n\tdispatch(change('adminRightsUserInfo', 'postOffice', 'Helsinki'));\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { Router } from 'react-router-dom';\nimport { persistStore, autoRehydrate } from 'redux-persist-immutable';\nimport { FeatureProvider } from 'react-feature-gate';\nimport 'react-app-polyfill/ie11';\n\nimport { createAppStore, populateTestData } from './store';\nimport history from './history';\nimport Routes from './components/Routes';\nimport features from './features';\n\n// import i18n (needs to be bundled ;))\nimport './i18n';\n\nimport './styles/index.css';\nimport './styles/mobile.css';\n\nconst store = createAppStore([ autoRehydrate() ]);\n\nconst whitelist = [];\nif (process.env.REACT_APP_STORAGE_WHITELIST) {\n\t// Defining REACT_APP_STORAGE_WHITELIST in you .env.local is a good\n\t// way to ease local development by preserving state between reloads\n\t// caused by source code changes.\n\t// Add a comma (,) separated list of reducer names to sync them into\n\t// local storage.\n\t//\n\t// Example:\n\t// REACT_APP_STORAGE_WHITELIST=user,consumerDataReport\n\n\tconst whitelistedReducers = process.env.REACT_APP_STORAGE_WHITELIST.split(',');\n\twhitelist.push(...whitelistedReducers);\n}\n\nif (process.env.REACT_APP_POPULATE_TEST_DATA) {\n\tpopulateTestData(store.dispatch);\n}\n\npersistStore(store, { whitelist }, () => {\n\tReactDOM.render(\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t,\n\t\tdocument.getElementById('root'),\n\t);\n});\n","import createHistory from 'history/createBrowserHistory';\n\n\nconst history = createHistory();\n\nexport { history as default };\n","import boolean from 'boolean';\n\n\nconst features = {\n\tFEATURE_MONITORING: boolean(process.env.REACT_APP_FEATURE_MONITORING),\n\tFEATURE_MONITORING_CHANGES_SCENE: boolean(process.env.REACT_APP_FEATURE_MONITORING_CHANGES_SCENE),\n\tFEATURE_PROTECTION_FREE_FOR_MONITORING_CONSUMERS: boolean(process.env.REACT_APP_FEATURE_PROTECTION_FREE_FOR_MONITORING_CONSUMERS),\n\tFEATURE_MONITORING_PAYMENT: boolean(process.env.REACT_APP_FEATURE_MONITORING_PAYMENT),\n\tFEATURE_COMPANY_MONITORING: boolean(process.env.REACT_APP_FEATURE_MONITORING_COMPANY),\n};\n\nexport default features;\n","import moment from 'moment';\n\n/**\n * Get the error message displayed to user based on the error code.\n *\n * @param {string} errorCode The error code returned by server\n *\n * @param {object[]} errorMessages Contains error messages in plain language,\n * that correspond to the error code\n *\n * @param {string} defaultMessage The message that is displayed if\n * there's no specific error message for the error code\n *\n * @return {string}\n */\nexport function getErrorMessage(errorCode, errorMessages, defaultMessage) {\n\t// Get the message for the error code. If a message is not found for the\n\t// error code, use the default message.\n\tconst errorMessage = errorMessages[errorCode] || defaultMessage;\n\n\treturn errorMessage;\n}\n\n/**\n * Censor the last part of a social security number.\n *\n * @param {string} socialSecurityNumber\n *\n * @return {string}\n */\nexport function getCensoredSocialSecurityNumber(socialSecurityNumber) {\n\tconst censoredSocialSecurityNumber = socialSecurityNumber.slice(0, -4) + 'XXXX';\n\n\treturn censoredSocialSecurityNumber;\n}\n\n// Convert date to string so it can be rendered in an undestandable form\n// Also convert to finnish format\nexport const convertDateToString = (remarkDate) => {\n\tconst typeToDate = new Date(remarkDate);\n\n\tconst remarkDateDay = typeToDate.getDate();\n\tconst remarkDateMonth = typeToDate.getMonth() + 1;\n\tconst remarkDateYear = typeToDate.getFullYear();\n\n\treturn `${remarkDateDay <= 9 ? 0 : ''}${remarkDateDay}.${remarkDateMonth <= 9 ? 0 : ''}${remarkDateMonth}.${remarkDateYear}`;\n};\n\nexport const compareDates = (a, b) => {\n\tconst c = new Date(a.date);\n\tconst d = new Date(b.date);\n\treturn c.getTime() - d.getTime();\n};\n\nexport const compareEvents = (a, b) => {\n\treturn (`${a.event}`).localeCompare(b.event);\n};\n\nexport const compareTargets = (a, b) => {\n\treturn (`${a.target}`).localeCompare(b.target);\n};\n\nexport const compareTypes = (a, b) => {\n\treturn (`${a.type}`).localeCompare(b.type);\n};\n\nexport const compareSources = (a, b) => {\n\treturn (`${a.type}`).localeCompare(b.type);\n};\n\n// Check if a single change has happened in the last 24 hours\nexport const changeHappenedIn24hours = (change) => {\n\tvar check = moment(change[0], 'DD/MM/YYYY');\n\treturn moment().diff(check, 'days') < 1\n\t// return moment().diff(change.changedAt, 'hours') <= 24;\n};\n\n// Check if a single change has happened in the last 72 hours\nexport const changeHappenedIn72Hours = (change) => {\n\treturn moment().diff(change.changedAt, 'hours') <= 72;\n};\n\n// Check if changes have happened in the last 24 hours\nexport const changesHappenedIn24hours = (changes) => {\n\treturn changes.some(x => moment().diff(x.changedAt, 'hours') <= 24);\n};\n\n// Check if changes have happened in the last 72 hours\nexport const changesHappenedIn72hours = (changes) => {\n\treturn changes.some(x => moment().diff(x.changedAt, 'hours') <= 72);\n};\n\n// Check if there are 1 or 2 changes in the last 90 days\nexport const changes1or2In90Days = (changes) => {\n\tconst count = changes.filter(x => moment().diff(x.changedAt, 'days') <= 90);\n\treturn count.length === 1 || count.length === 2;\n};\n\n// Check if there are more than 3 changes in the last 90 days\nexport const changes3orMoreIn90Days = (changes) => {\n\tconst count = changes.filter(x => moment().diff(x.changedAt, 'days') <= 90);\n\treturn count.length >= 3;\n};\n\n// Check if there are more than 12 changes in the last 360 days\nexport const changes12orMoreIn360Days = (changes) => {\n\tconst count = changes.filter(x => moment().diff(x.changedAt, 'days') <= 360);\n\treturn count.length >= 12;\n};\n\n// Changes happened in the last 360 days\nexport const changesHappenedIn360Days = (changes) => {\n\tconst newChanges = changes.filter(x => moment().diff(x.changedAt, 'days') <= 360);\n\treturn newChanges;\n};\n\n// Check if string is email\nconst emailRe = new RegExp(/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\nexport const isEmailFormValid = (email) => {\n\treturn emailRe.test(email);\n};\n\nconst ssnRe = new RegExp(/^[\\d]{6}[a+-][\\d]{3}[\\da-z]$/i)\nexport const isSsnFormValid = (ssn) => {\n\treturn ssnRe.test(ssn);\n};\n\nexport const isValidCampaign = (campaign, serviceId=undefined) => {\n\tconst now = new Date();\n\treturn campaign &&\n\t\t// serviceId is optional, ignore if not given\n\t\t(! serviceId || campaign.serviceId.includes(serviceId)) &&\n\t\tDate.parse(campaign.validSince) <= now && Date.parse(campaign.validUntil) > now;\n}\n\n// Backend may return \"Invalid date\" instead of null\nexport const formatDate = dateString =>\n\tdateString && dateString !== 'Invalid date'\n\t\t? moment(dateString).format('DD.MM.YYYY')\n\t\t: null\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n\nexport default class SectionRow extends PureComponent {\n\n\tstatic propTypes = {\n\t\tclassName: PropTypes.string,\n\t\tchildren: PropTypes.node,\n\t};\n\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tchildren,\n\t\t} = this.props;\n\n\t\tconst classNameFull = classNames(\n\t\t\t'row',\n\t\t\t'u-margin-x-md-default',\n\t\t\tclassName,\n\t\t);\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{children}\n\t\t\t
\n\t\t);\n\t}\n\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Radium from 'radium';\n\nimport { colors } from './styles';\n\n\nclass ContentBlock extends PureComponent {\n\n\tstatic propTypes = {\n\t\tclassName: PropTypes.string,\n\t\tstyle: PropTypes.object,\n\t\tchildren: PropTypes.node,\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tstyle,\n\t\t\t...passProps\n\t\t} = this.props;\n\n\t\tconst classNameFull = classNames(\n\t\t\t'card',\n\t\t\t'section--tight',\n\t\t\t'u-padding-large',\n\t\t\tclassName,\n\t\t);\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n\n}\n\nconst styles = {\n\twrapper: {\n\t\tbackgroundColor: colors.white,\n\t},\n};\n\nexport default Radium(ContentBlock);\n","import cookies from 'browser-cookies';\n\nimport { fetchApiJson } from './';\nimport { stateClear } from '../store/actions';\n\n\n/**\n * Destroys the session (removes cookies) and the Redux state.\n */\nexport const destroySessionAndState = () => async dispatch => {\n\t// Erase the CSRF token cookie.\n\tcookies.erase('csrf');\n\tcookies.erase('service');\n\n\t// Clear everything from the Redux state.\n\tdispatch(stateClear());\n};\n\n/**\n * Make a login API call.\n *\n * @param {string} username\n * @param {string} password\n * @param {object} options\n *\n * @return {object} The logged in user.\n *\n * @throws {Error} If a login error (such as bad credentials) occurs.\n */\nexport const loginWithUserName = (username, password, options) => async dispatch => {\n\tconst user = await dispatch(fetchApiJson('auth/login', {\n\t\tmethod: 'post',\n\t\tdata: {\n\t\t\tusername,\n\t\t\tpassword,\n\t\t},\n\t\t...options,\n\t}));\n\n\treturn user;\n};\n\n/**\n * Make a logout API call.\n *\n * @return {object} The logged in user.\n *\n * @throws {Error} If a logout error (such as an invalid session ID) occurs.\n */\nexport const logout = (options) => async dispatch => {\n\tawait dispatch(fetchApiJson('auth/logout', {\n\t\tmethod: 'post',\n\t\tredirectToAuthOnExpiredSession: false,\n\t\t...options,\n\t}));\n\n\t// Destroy session cookies and Redux state.\n\tdispatch(destroySessionAndState());\n};\n\n/**\n * Get user info.\n */\nexport const getUserInfo = (options) => async dispatch => {\n\tconst userInfo = await dispatch(fetchApiJson('auth/user/info', {\n\t\tmethod: 'get',\n\t\t...options,\n\t}));\n\n\treturn userInfo;\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\nimport { colors } from '../styles';\n\nconst Footer = () => {\n\n\tconst { t } = useTranslation(['miscellaneous']);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('footer.header')}\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{t('footer.termsOfUse')}\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{t('footer.privacyStatement')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('footer.cookiePolicy')}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\n\t);\n};\n\nconst styles = {\n\twrapper: {\n\t\tbackgroundColor: colors.grey,\n\n\t\theight: '8rem',\n\t},\n\tserviceProvider: {\n\t\tcolor: colors.blackGraphite,\n\t},\n\tverticalBar: {\n\t\tborderStyle: 'solid',\n\t\tborderColor: colors.darkGrey,\n\t\tborderWidth: 0.5,\n\n\t\theight: '1.9rem',\n\t},\n};\n\nexport default Footer;\n","import Footer from './Footer';\n\n\nexport default Footer;\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport Footer from './common/Footer';\n\n\n\nexport default class App extends PureComponent {\n\n\tstatic propTypes = {\n\t\theader: PropTypes.node.isRequired,\n\t\tcontent: PropTypes.node.isRequired,\n\t\theroHeadingContainer: PropTypes.node,\n\t\tconsentAlert: PropTypes.node,\n\t};\n\n\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{this.props.consentAlert}\n\t\t\t\t\t{this.props.header}\n\t\t\t\t\t{this.props.heroHeadingContainer}\n\t\t\t\t\t
\n\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n}\n\n// if (window.google_tag_manager && process.env.NODE_ENV === 'production')\n// \thistory.listen((location) => {\n// \t\twindow.gtag('config', 'UA-37185334-13', {\n// \t\t\tpage_location: window.location.href,\n// \t\t\tpage_path: location.pathname,\n// \t\t});\n// \t});\n","import React, { useEffect, useState } from 'react';\nimport { Link, NavLink } from 'react-router-dom';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\nimport cookies from 'browser-cookies';\nimport PropTypes from 'prop-types';\n\nimport { isAuthenticated } from '../../../auth';\nimport {\n\tgetUserData,\n\tsetUserLanguage,\n} from '../../../fetcher/settings';\n\nimport { colors } from '../styles';\nimport * as logo from './DNBLogo.png'\n\nconst Header = ({ showLogoutButton = true, serviceId = '', serviceType, serviceName, setUserLanguage, getUserData }) => {\n\n\tconst { t, i18n } = useTranslation(['miscellaneous']);\n\tconst [showMenu, setshowMenu] = useState(false);\n\tconst [selectedLanguage, setSelectedLanguage] = useState('fi');\n\tconst [isLangDropdownOpen, setIsLangDropdownOpen] = useState(false);\n\tconst [availableLanguages] = useState(['fi']);\n\n\t// English translation is outdated, disable the lang selection logic for now and always use 'fi'\n\n\t// useEffect(() => {\n\t// \tlet cancelToken = CancelToken.source();\n\n\t// \t(async () => {\n\t// \t\ttry {\n\t// \t\t\t// FIXME: getUserData returns 403 for admin user, throwing an error\n\t// \t\t\tisAuthenticated()\n\t// \t\t\t\t? setSelectedLanguage((await getUserData({ cancelToken: cancelToken.token })).languageCode || cookies.get('lang') || 'fi')\n\t// \t\t\t\t: setSelectedLanguage(cookies.get('lang') || 'fi');\n\t// \t\t} catch (error) {\n\t// \t\t\tif (axios.isCancel(error)) {\n\t// \t\t\t\treturn;\n\t// \t\t\t}\n\n\t// \t\t\tthrow error;\n\t// \t\t}\n\n\t// \t\tcancelToken = null;\n\t// \t})();\n\n\t// \treturn () => cancelToken && cancelToken.cancel('Aborted on component unmount');\n\t// }, []); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tif (!selectedLanguage || !i18n) return;\n\n\t\t\ti18n.changeLanguage(selectedLanguage);\n\t\t\tcookies.set('lang', selectedLanguage);\n\t\t\tif (isAuthenticated()) {\n\t\t\t\tawait setUserLanguage({ languageCode: selectedLanguage });\n\t\t\t}\n\t\t})();\n\t}, [selectedLanguage]); // eslint-disable-line\n\n\tconst MenuButtons = () =>\n\t\t<>\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{t('header.mydata')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{t('header.rights')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{t('header.protection')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{t('header.peopleMonitoring')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{t('header.companyMonitoring')}\n\t\t\t\t\n\t\t\t\t{isAuthenticated() && \n\t\t\t\t\t\n\t\t\t\t\t{t('header.settings')}\n\t\t\t\t}\n\t\t\t\n\t\t\t{showLogoutButton && !isAuthenticated() &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('header.login')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t{showLogoutButton && isAuthenticated() &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('header.logout')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t;\n\n\tconst LanguageDropdown = () =>\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t
    \n\t\t\t\t\t{availableLanguages.map(language => {\n\t\t\t\t\t\treturn { setSelectedLanguage(language); setIsLangDropdownOpen(false); }}\n\t\t\t\t\t\t>{language};\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t
\n\t\t
;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{serviceName ? serviceName : 'OmaData'}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nconst styles = {\n\twrapper: {\n\t\tbackgroundColor: colors.white,\n\t},\n\tcompaniesWrapper: {\n\t\tbackgroundColor: colors.white,\n\t},\n\tcontent: {\n\t\theight: '7rem',\n\t},\n\tlogo: {\n\t\tuserSelect: 'none',\n\t\theight: '1.75rem',\n\t\tmarginTop: '-.25rem',\n\t},\n\tverticalBar: {\n\t\tborderStyle: 'solid',\n\t\tborderColor: colors.bisGreySilver,\n\t\tborderWidth: 0.5,\n\t\theight: '2.5rem',\n\t},\n\tnavLinkVerticalBar: {\n\t\twidth: '0',\n\t\tborderStyle: 'solid',\n\t\tborderColor: colors.bisGreySilver,\n\t\tborderWidth: '0 1px 0 0',\n\t\tmargin: '0 1.5rem',\n\t\tpadding: '0',\n\t\theight: '2.5rem',\n\t\tcursor: 'default',\n\t},\n\tnavLinkHorizontalBar: {\n\t\twidth: '100%',\n\t\theight: '0',\n\t\tborderStyle: 'solid',\n\t\tborderColor: colors.bisGreySilver,\n\t\tborderWidth: '1px 0 0 0',\n\t\tmargin: '0 0',\n\t\tpadding: '0',\n\t\tcursor: 'default',\n\t},\n\tomaData: {\n\t\tcolor: colors.black,\n\t\ttextDecoration: 'none',\n\t},\n\tomaDataCompanies: {\n\t\tcolor: colors.black,\n\t\ttextDecoration: 'none',\n\t},\n};\n\nHeader.propTypes = {\n\tshowLogoutButton: PropTypes.bool,\n\tserviceId: PropTypes.string,\n\tserviceName: PropTypes.string,\n\tserviceType: PropTypes.string,\n\tgetUserData: PropTypes.func,\n\tsetUserLanguage: PropTypes.func,\n};\n\nexport default connect(\n\tundefined,\n\tdispatch => bindActionCreators({\n\t\tgetUserData,\n\t\tsetUserLanguage,\n\t}, dispatch),\n)(Header);\n","import Header from './Header';\n\n\nexport default Header;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n\nexport default class HeroHeadingContainer extends PureComponent {\n\n\tstatic propTypes = {\n\t\tbackgroundImagePath: PropTypes.string,\n\t\theroHeading: PropTypes.node,\n\t};\n\n\trender() {\n\t\tconst fullWrapperStyle = {\n\t\t\t...styles.wrapper,\n\t\t\t...(this.props.heroHeading ? styles.wrapperWithText : styles.wrapperNoText),\n\t\t\t...(this.props.backgroundImagePath && { backgroundImage: `url(${this.props.backgroundImagePath})` }),\n\t\t};\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{this.props.heroHeading}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n}\n\nconst styles = {\n\twrapper: {\n\t\tbackgroundSize: 'cover',\n\t\tbackgroundRepeat: 'no-repeat',\n\t},\n\twrapperNoText: {\n\t\tpaddingBottom: '21rem',\n\t\tmarginBottom: '-21rem',\n\t},\n\twrapperWithText: {\n\t\tmarginLeft: '-.5rem',\n\t\tmarginRight: '-.5rem',\n\t},\n};\n"],"sourceRoot":""}