@basiq/connect-auth 1.1.36 → 1.1.40-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/components/BasiqConnect.tsx","../src/App.tsx","../src/styledComponents/ui/basic.ts","../src/styledComponents/ui/button.ts","../src/styledComponents/ui/modals.ts","../src/helpers/hookUtils.ts","../src/helpers/utils.ts","../src/helpers/constants.ts","../src/styledComponents/theme.ts","../src/styledComponents/pages/basic.ts","../src/styledComponents/breakpoints.ts","../src/styledComponents/pages/auth.ts","../src/styledComponents/pages/start.ts","../src/styledComponents/pages/notFound.ts","../src/styledComponents/base.ts","../src/styledComponents/styles.ts","../src/components/pages/Page.tsx","../src/components/ui/Button.tsx","../src/components/pages/NotFound.tsx","../src/components/ui/icon.tsx","../src/components/pages/StartScreen.tsx","../src/actions/actions.ts","../src/components/modals/LoadingModal.tsx","../src/components/ui/Modal.tsx","../src/components/pages/AuthScreen.tsx","../src/locales/i18n.ts","../src/locales/en/translation.json"],"sourcesContent":["export {BasiqConnect} from './components/BasiqConnect'\n","import React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport App from '../App';\nimport '../locales/i18n';\nimport { theme } from '../styledComponents';\n\nexport interface IBCProps{\n\ttest?:boolean;\n}\n\nexport function BasiqConnect(props: IBCProps) {\n\tconst {test} = props;\nreturn(\n\t<React.StrictMode>\n\t\t<ThemeProvider theme={theme}>\n\t\t\t<App test={test} />\n\t\t\t</ThemeProvider>\n\t</React.StrictMode>\n\t\t);\n\n}\n\n","import React, { createRef, SyntheticEvent, useEffect, useState } from 'react';\nimport { AppContainer, AppContainerPage, AppContainerWrapper, PageHeader, Root } from './styledComponents';\nimport GlobalStyles from './styledComponents/styles';\nimport { detectScrollToBottom } from './helpers';\nimport {AuthScreen, NotFound, Page, StartScreen} from './components/pages';\nimport { authUser } from './actions/actions';\nimport { LoadingModal } from './components/modals';\nimport {IBCProps} from \"./components/BasiqConnect\";\n\nfunction App(props:IBCProps) {\n\tconst {test} = props;\n\tconst ref = createRef<HTMLDivElement>();\n\tconst [shadow, setShadow] = useState(false);\n\tconst [currentScreen, setCurrentScreen] = useState(0);\n\tconst [loading, setLoading] = useState(true);\n\tconst [authId, setAuthId] = useState('');\n\tconst [queryString, setQueryString] = useState('');\n\tconst [mobile, setMobile] = useState('');\n\tconst [logo, setLogo] = useState('');\n\tconst [appName, setAppName] = useState('');\n\tconst [errorCode, setErrorCode] = useState('');\n\tconst [smsSent, setSmsSent] = useState(false);\n\n\tconst handleConnectionsScroll = (event: SyntheticEvent<HTMLDivElement>) => {\n\t\tsetShadow(detectScrollToBottom(event));\n\t};\n\tconst showErrorScreen = (code: string) => {\n\t\tsetErrorCode(code);\n\t\tsetCurrentScreen(3);\n\t};\n\tuseEffect(() => {\n\t\tconst getData = async () => {\n\t\t\tconst id = window.location.pathname?.substring(1)?.split('?')[0];\n\t\t\tconst searchString = window.location.search?.split('?')[1];\n\t\t\tsetQueryString(searchString);\n\t\t\tif (id?.length > 0) {\n\t\t\t\tsetAuthId(id);\n\t\t\t\tsetLoading(true);\n\t\t\t\tconst response = await authUser({authRequestId:id, method:'GET', test});\n\t\t\t\tif (response?.ok) {\n\t\t\t\t\tsetCurrentScreen(1);\n\t\t\t\t\tsetMobile(response?.data?.mobile);\n\t\t\t\t\tif (response?.data?.appName) {\n\t\t\t\t\t\tsetAppName(response?.data?.appName);\n\t\t\t\t\t}\n\t\t\t\t\tif (response?.data?.partner?.logoUrl) {\n\t\t\t\t\t\tsetLogo(response?.data?.partner?.logoUrl);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tshowErrorScreen(response?.statusCode.toString());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshowErrorScreen('404');\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\tgetData();\n\t}, []);\n\n\n\tconst getScreen = () => {\n\t\tswitch (currentScreen) {\n\t\t\tcase 0:\n\t\t\t\treturn <Page shadow={shadow}><LoadingModal isOpen={loading} disableTransparency /></Page>;\n\t\t\tcase 1:\n\t\t\t\treturn (\n\t\t\t\t\t<StartScreen\n\t\t\t\t\t\tappName={appName}\n\t\t\t\t\t\tshadow={shadow}\n\t\t\t\t\t\tshowErrorScreen={showErrorScreen}\n\t\t\t\t\t\tonContinue={() => setCurrentScreen(2)}\n\t\t\t\t\t\tauthRequestId={authId}\n\t\t\t\t\t\tsmsSent={smsSent}\n\t\t\t\t\t\tsetSmsSent={setSmsSent}\n\t\t\t\t\t\ttest={test}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 2:\n\t\t\t\treturn <AuthScreen number={mobile} onBack={() => setCurrentScreen(1)} shadow={shadow} authRequestId={authId} test={test} queryString={queryString}/>;\n\t\t\tcase 3:\n\t\t\t\treturn <NotFound messageCode={errorCode} />;\n\t\t\tdefault:\n\t\t\t\treturn <NotFound messageCode={errorCode} />;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Root>\n\t\t\t<GlobalStyles />\n\t\t\t<AppContainerWrapper>\n\t\t\t\t<AppContainer onScroll={handleConnectionsScroll} ref={ref}>\n\t\t\t\t\t{logo && (\n\t\t\t\t\t\t<PageHeader>\n\t\t\t\t\t\t\t<img src={logo} alt=\"logo\" />\n\t\t\t\t\t\t</PageHeader>\n\t\t\t\t\t)}\n\t\t\t\t\t<AppContainerPage>{getScreen()}</AppContainerPage>\n\t\t\t\t</AppContainer>\n\t\t\t</AppContainerWrapper>\n\t\t</Root>\n\t);\n}\n\nexport default App;\n","import styled, { css, keyframes } from 'styled-components';\n\ninterface IIconWrapper {\n\trotating: boolean;\n}\n\nexport const rotate = keyframes`\n from {\n -ms-transform: rotate(0deg);\n -moz-transform: rotate(0deg);\n -webkit-transform: rotate(0deg);\n -o-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n to {\n -ms-transform: rotate(360deg);\n -moz-transform: rotate(360deg);\n -webkit-transform: rotate(360deg);\n -o-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n`;\nexport const SimpleButton = styled.button`\n\tborder-radius: 2px;\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tborder: none;\n\tcursor: pointer;\n\tmargin-bottom: 8px;\n\tpadding: 10px;\n`;\n\nexport const Input = styled.input`\n\theight: 48px;\n\tbackground: ${({ theme }) => theme.color.porcelainSecond};\n\tborder-radius: 2px;\n\tborder: none;\n\twidth: 100%;\n\tbox-sizing: border-box;\n\tpadding: 0 16px;\n\tcolor: ${({ theme }) => theme.color.ebony};\n\tmargin-bottom: 16px;\n\tfont-size: 16px;\n\n\t&::placeholder {\n\t\tcolor: ${({ theme }) => theme.color.osloGrey};\n\t\topacity: 1;\n\t}\n\n\t&:-ms-input-placeholder {\n\t\tcolor: ${({ theme }) => theme.color.osloGrey};\n\t}\n\n\t&::-ms-input-placeholder {\n\t\tcolor: ${({ theme }) => theme.color.osloGrey};\n\t}\n\n\t&:focus-visible {\n\t\toutline: none;\n\t\tbackground-color: ${({ theme }) => theme.color.spindle};\n\t}\n\n\t&:disabled {\n\t\tbackground-color: ${({ theme }) => theme.color.porcelain};\n\t\tcolor: ${({ theme }) => theme.color.casper};\n\t\tcursor: not-allowed;\n\t}\n`;\nexport const H4Styled = styled.h4`\n\tcursor: pointer;\n\tuser-select: none;\n\t${({ theme }) => theme.mixin.subtitle()};\n`;\n\nexport const Spacer = styled.div`\n\tdisplay: flex;\n\twidth: 100%;\n\tmargin-top: 12px;\n\tmargin-bottom: 12px;\n\theight: 1px;\n\tbackground-color: ${({ theme }) => theme.color.porcelain};\n`;\nexport const IconWrapper = styled.span<IIconWrapper>`\n display: flex;\n width: 22px;\n ${({ rotating }) =>\n\t\trotating &&\n\t\tcss`\n\t\t\tanimation: ${rotate} 2s linear infinite;\n\t\t`}\n };\n svg, img {\n width: 100%;\n }\n`;\n","import styled, { css } from 'styled-components';\nimport { SimpleButton } from './basic';\nimport { ButtonType } from '../../components/ui/Button';\n\nexport const ButtonLabel = styled.span`\n\tfont-size: 18px;\n`;\n\ninterface IButtonStyled {\n\tbuttonType?: ButtonType;\n\tdisabled: boolean;\n\tonClick: () => void;\n}\nexport const ButtonStyled = styled(SimpleButton)<IButtonStyled>`\n\tmin-height: 40px;\n\tjustify-content: center;\n\tbackground-color: ${(props) => props.theme.color.endeavour};\n\ttext-align: center;\n\tbox-shadow: none;\n\tborder: none;\n\tcursor: pointer;\n\tcolor: ${({ theme }) => theme.color.white};\n\n\t&:last-child {\n\t\tmargin-bottom: 0;\n\t}\n\t&:hover {\n\t\tbackground-color: ${({ theme }) => theme.color.bostonBlue};\n\t}\n\t&:active {\n\t\tbackground-color: ${({ theme }) => theme.color.congressBlue};\n\t}\n\t${({ buttonType, theme }) => {\n\t\tswitch (buttonType) {\n\t\t\tcase 'secondary':\n\t\t\t\treturn css`\n\t\t\t\t\tcolor: ${theme.color.ebony};\n\t\t\t\t\tbackground-color: ${theme.color.porcelainSecond};\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tcolor: ${theme.color.abbey};\n\t\t\t\t\t\tbackground-color: ${theme.color.porcelainSecondLight};\n\t\t\t\t\t}\n\t\t\t\t\t&:active {\n\t\t\t\t\t\tbackground-color: ${theme.color.ironSecond};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\tcase 'tiny':\n\t\t\t\treturn css`\n\t\t\t\t\twidth: auto;\n\t\t\t\t\tmin-height: 32px;\n\t\t\t\t\tpadding: 6px 16px;\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\tcolor: ${theme.color.cyprus};\n\t\t\t\t\tbackground-color: ${theme.color.hokeyPokey};\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tbackground-color: ${theme.color.hokeyPokeyLight};\n\t\t\t\t\t}\n\t\t\t\t\t&:active {\n\t\t\t\t\t\tbackground-color: ${theme.color.anzac};\n\t\t\t\t\t}\n\t\t\t\t`;\n\n\t\t\tcase 'back':\n\t\t\t\treturn css`\n\t\t\t\t\tbackground: none;\n\t\t\t\t\tjustify-content: initial;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tmin-height: unset;\n\t\t\t\t\tcolor: ${theme.color.casper};\n\t\t\t\t\twidth: auto;\n\t\t\t\t\timg {\n\t\t\t\t\t\twidth: 25px;\n\t\t\t\t\t\tfilter: invert(68%) sepia(13%) saturate(348%) hue-rotate(155deg) brightness(91%) contrast(94%);\n\t\t\t\t\t}\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tcolor: ${theme.color.abbey};\n\t\t\t\t\t\tbackground-color: unset;\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\tfilter: invert(31%) sepia(10%) saturate(313%) hue-rotate(155deg) brightness(96%) contrast(87%);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t&:active {\n\t\t\t\t\t\tcolor: ${theme.color.jumbo};\n\t\t\t\t\t\tbackground-color: unset;\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\tfilter: invert(49%) sepia(0%) saturate(5%) hue-rotate(29deg) brightness(99%) contrast(83%);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t&:disabled {\n\t\t\t\t\t\tcolor: ${theme.color.porcelain};\n\t\t\t\t\t\tbackground-color: unset !important;\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\tcolor: ${theme.color.porcelain};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\tdefault:\n\t\t\t\treturn '';\n\t\t}\n\t}}\n\timg {\n\t\tcolor: ${({ theme }) => theme.color.casper};\n\t\tmargin-right: 3px;\n\t}\n\n\t&:disabled {\n\t\tbackground-color: ${({ theme }) => theme.color.porcelain};\n\t\tcolor: ${({ theme }) => theme.color.casper};\n\t\tcursor: not-allowed;\n\t}\n`;\n","import styled from 'styled-components';\nimport { hexToRGBa } from '../../helpers';\nimport { IconWrapper } from './basic';\n\ninterface IModalStyled {\n\tdisableTransparency: boolean;\n}\n\nexport const ModalStyled = styled.div<IModalStyled>`\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground-color: ${({ theme, disableTransparency }) => (disableTransparency ? theme.color.jumbo : hexToRGBa(theme.color.blackPearl, 0.7))};\n\tz-index: 1000000000;\n\tpadding: 16px;\n\n\ta {\n\t\tmargin-bottom: 8px;\n\t}\n`;\nexport const LoadingModalStyled = styled.div<IModalStyled>`\n\tbox-shadow: ${({ theme, disableTransparency }) => (disableTransparency ? 'none' : `0 1px 2px ${hexToRGBa(theme.color.blueBayoux, 0.3)}`)};\n\tborder-radius: 2px;\n\tpadding: 16px 12px;\n\tfont-size: 16px;\n\tline-height: 16px;\n\tcolor: ${({ theme }) => theme.color.white};\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\n\t${IconWrapper} {\n\t\tfilter: invert(1);\n\t\tmargin-bottom: 15px;\n\t\twidth: 48px;\n\t}\n`;\nexport const LoadingModalText = styled.span`\n\tfont-size: 18px;\n\twhite-space: pre-line;\n\ttext-align: center;\n\tline-height: 30px;\n`;\n","import { useRef } from 'react';\n\nexport const useFocus = () => {\n\tconst htmlElRef = useRef<HTMLInputElement>(null);\n\tconst setFocus = () => htmlElRef.current && htmlElRef.current.focus();\n\n\treturn [htmlElRef, setFocus];\n};\n","import { SyntheticEvent } from 'react';\n\nexport function detectScrollToBottom(event: SyntheticEvent<HTMLDivElement>) {\n\tconst { scrollHeight, scrollTop, clientHeight } = event.currentTarget;\n\treturn scrollHeight - scrollTop > clientHeight;\n}\n\nexport const hexToRGBa = (hex: string, opacity: number) => {\n\tconst hexToRGBA = hex.match(/[A-Za-z0-9]{2}/g)?.map((v) => parseInt(v, 16));\n\tconst opp = opacity > 1 && opacity < 0 ? 1 : opacity;\n\treturn `rgba(${hexToRGBA?.concat(opp).join()})`;\n};\nexport const handleUserKeyPress = (e: KeyboardEvent, onEnter:()=>void) =>{\n\tconst { keyCode } = e;\n\tif(keyCode===13){\n\t\tonEnter()\n\t}\n}\nexport const buildRedirectUrl = (token:string, queryString:string):string => `https://consent.basiq.io/home?token=${token}${queryString ? '&'+queryString : ''}`;\n"," export const DASHBOARD_API_URL_TEST = 'https://c9joivz12f.execute-api.ap-southeast-2.amazonaws.com/Development/';\nexport const DASHBOARD_API_URL = 'https://p4c8zn20r9.execute-api.ap-southeast-2.amazonaws.com/Production_v1/';\n","export const theme = {\n\tcolor: {\n\t\twhite: '#fff',\n\t\tporcelain: '#e2E8Ea',\n\t\tporcelainSecond: '#f5F7F8',\n\t\tporcelainLight: '#e5Eaec',\n\t\tporcelainSecondLight: '#f7F9F9',\n\t\tiron: '#cbd1D3',\n\t\tironSecond: '#dcdedf',\n\t\tcasper: '#90a4Ae',\n\t\tmercury: '#e5E5E5',\n\t\tdodgerBlue: '#4c6Cff',\n\t\tdodgerBlueLight: '#5e7Bff',\n\t\troyalBlue: '#4461e6',\n\t\tbostonBlue: '#367ab9',\n\t\tendeavour: '#0459a8',\n\t\tcongressBlue: '#045097',\n\t\tbrilliantBlue: '#0075dc',\n\t\tcuriousBlue: '#2784da',\n\t\ticeberg: '#cdf2ed',\n\t\tlinkWater: '#cddeee',\n\t\tspindle: '#b4Cde5',\n\t\tcyprus: '#002d3C',\n\t\tgossamer: '#06bea6',\n\t\temerald: '#4fc35A',\n\t\thokeyPokey: '#fabe34',\n\t\thokeyPokeyLight: '#f9C858',\n\t\tanzac: '#e1B141',\n\t\tcerise: '#d63F5a',\n\t\tsunsetOrange: '#fe493f',\n\t\twePeep: '#f7d9de',\n\t\tebony: '#130f26',\n\t\tabbey: '#4e5457',\n\t\tosloGrey: '#7f888c',\n\t\tloblolly: '#c1c8cc',\n\t\tjumbo: '#7d7d84',\n\t\tblackPearl: '#061D24',\n\t\tblueBayoux: '#4b6a75'\n\t},\n\tmixin: {\n\t\tsubtitle: () => ` margin-top: 32px;\n margin-bottom: 4px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;`,\n\n\t\ttitle: () => ` font-size: 26px;\n line-height: 30px;\n letter-spacing: -0.2px;\n margin-top: 0;\n margin-bottom: 0;\n color: #130f26;\n white-space: pre-line;\n `\n\t}\n};\nexport type ThemeType = typeof theme;\n","import styled, { css } from 'styled-components';\nimport { ButtonStyled } from '../ui';\nimport { hexToRGBa } from '../../helpers';\nimport { devices } from '../breakpoints';\n\ninterface IPageStyledProps {\n\tbuttonCount?: number;\n\thorizontal?: boolean;\n}\n\ninterface IStatusMessage {\n\terror?: boolean;\n}\n\ninterface IPageControlsSectionProps {\n\tnotEmpty: boolean;\n}\ninterface IHorizontalProps {\n\thorizontal?: boolean;\n}\nexport const PageStyled = styled.div<IPageStyledProps>`\n\twidth: 100%;\n\theight: 100%;\n\t${({ buttonCount, horizontal }) =>\n\t\tbuttonCount && buttonCount > 0\n\t\t\t? horizontal\n\t\t\t\t? 'padding-bottom: 96px;'\n\t\t\t\t: `padding-bottom: ${46 + 50 * buttonCount}px;`\n\t\t\t: 'padding-bottom: 16px;'}\n`;\nexport const PageSubtitle = styled.div`\n\t${({ theme }) => theme.mixin.subtitle()};\n`;\n\nexport const PageMainContainer = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n`;\nexport const PageControlsSection = styled.div<IPageControlsSectionProps>`\n\tposition: absolute;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\t${({ notEmpty }) => `padding: ${notEmpty ? '16px' : '0'}`};\n\tbackground-color: ${({ theme }) => theme.color.white};\n\tborder-top: 1px solid ${({ theme }) => theme.color.porcelainLight};\n`;\nexport const PageShadowWrapper = styled.div<IHorizontalProps>`\n\twidth: 100%;\n\t${({ horizontal }) =>\n\t\thorizontal &&\n\t\tcss`\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\n\t\t\t${ButtonStyled} {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t\tmargin-right: 16px;\n\n\t\t\t\t&:last-child {\n\t\t\t\t\tmargin-right: unset;\n\t\t\t\t}\n\t\t\t}\n\t\t`}\n`;\nexport const PageShadow = styled.div`\n\tposition: absolute;\n\theight: 71px;\n\tleft: 0;\n\tright: 0;\n\ttop: -71px;\n\tbackground: linear-gradient(180deg, #cecece 0%, ${hexToRGBa('#cecece', 0)} 100%);\n\topacity: 0.8;\n\ttransform: rotate(-180deg);\n\tpointer-events: none;\n`;\nexport const PageHeader = styled.header`\n\tmargin-bottom: 32px;\n\twidth: 100%;\n\tborder-radius: 8px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground-color: unset;\n\tpadding: 16px 0;\n\tbox-sizing: border-box;\n\tmax-height: 150px;\n\theight: 100%;\n\t${devices.phone} {\n\t\toverflow: initial;\n\t\theight: 150px;\n\t\tmargin-bottom: 0;\n\t}\n\timg {\n\t\tborder-radius: 4px;\n\t\twidth: auto !important;\n\t\theight: auto;\n\t\tmax-width: 100%;\n\t\tmax-height: 100%;\n\t\t${devices.phone} {\n\t\t\twidth: 100%;\n\t\t\tpadding: 16px;\n\t\t}\n\t}\n`;\n\nexport const PageContent = styled.div`\n\twidth: 100%;\n`;\nexport const StatusMessage = styled.div<IStatusMessage>`\n\twidth: 100%;\n\tbackground: ${({ theme, error }) => (error ? theme.color.wePeep : theme.color.iceberg)};\n\tborder-radius: 4px;\n\tpadding: 11px;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tfont-weight: 400;\n\tfont-size: 14px;\n\tcolor: ${({ theme, error }) => (error ? theme.color.cerise : theme.color.gossamer)};\n\tmargin-bottom: 16px;\n`;\n","const breakpoints = {\n\tmobileS: '320px',\n\tmobileL: '480px',\n\ttabletMinus: '767px',\n\ttabletH: '781px',\n\ttablet: '768px',\n\ttabletL: '992px',\n\tlaptop: '1024px',\n\tlaptopH: '1080px',\n\tlaptopXS: '1110px',\n\tlaptopS: '1280px',\n\tlaptopM: '1366px',\n\tlaptopL: '1440px',\n\tlaptopXL: '1540px',\n\tdesktopS: '1800px',\n\tdesktop: '2560px'\n};\nexport const devices = {\n\tfold: `@media only screen and (max-width: ${breakpoints.mobileS})`,\n\tphoneXs: `@media only screen and (max-width: ${breakpoints.mobileL})`,\n\tphone: `@media only screen and (max-width: ${breakpoints.tabletMinus})`,\n\tphoneLandscape: `@media only screen and (max-width: ${breakpoints.mobileL})`,\n\ttabletOnly: `@media only screen and (min-width: ${breakpoints.tablet}) and (max-width: ${breakpoints.tabletL})`,\n\tiPadProLandscape: `@media only screen and (height: ${breakpoints.laptop}) and (width: ${breakpoints.laptopM})`,\n\tiPadProPortrait: `@media only screen and (max-width: ${breakpoints.laptop}) and (max-height: ${breakpoints.laptopM})`,\n\tiPad: `@media only screen and (max-width: ${breakpoints.laptop}) and (max-height: ${breakpoints.tablet}) `,\n\ttablet: `@media only screen and (max-width: ${breakpoints.tabletL}) `,\n\tdesktop: `@media only screen and (min-height: ${breakpoints.tabletH} ) and (min-width: ${breakpoints.laptopS} ) `,\n\tlaptop: `@media only screen and (max-width: ${breakpoints.laptopS}) `,\n\tlaptopRegularScreenWidth: `@media only screen (max-height: ${breakpoints.laptopXS}) and and (max-width: ${breakpoints.laptopXL}) `,\n\tbigDesktop: `@media only screen and (min-width: ${breakpoints.desktopS}) and (min-height: ${breakpoints.laptopH})) `\n};\n","import styled from 'styled-components';\n\ninterface IInputStyled {\n\tfilled: boolean;\n\terror: boolean;\n}\ninterface IDivAsLink {\n\tdisabled: boolean;\n}\n\nexport const PageConnectFooterControl = styled.div`\n\tposition: absolute;\n\tbottom: 80px;\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tleft: 0;\n\tflex-direction: column;\n\tbox-sizing: border-box;\n\tpadding: 16px;\n`;\nexport const PageConnectFooterText = styled.span`\n\tcolor: ${({ theme }) => theme.color.abbey};\n\tfont-size: 12px;\n`;\n\nexport const InputStyled = styled.input<IInputStyled>`\n\twidth: 100%;\n\theight: 64px;\n\tbackground: ${({ theme, filled, error }) => (error ? theme.color.wePeep : filled ? theme.color.linkWater : theme.color.porcelainSecond)};\n\tcolor: ${({ theme, error }) => (error ? theme.color.cerise : theme.color.endeavour)};\n\tborder-radius: 2px;\n\ttext-align: center;\n\tfont-size: 32px;\n\tborder: none;\n\tbox-shadow: none;\n\tletter-spacing: 20px;\n\ttext-indent: 20px;\n`;\n\nexport const InputContainer = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n`;\nexport const DivAsLink = styled.div<IDivAsLink>`\n\tcolor: ${({ theme, disabled }) => disabled? theme.color.casper : theme.color.endeavour};\n\tdisplay: inherit;\n\tcursor: ${({ disabled }) => disabled? 'not-allowed': 'pointer'};\n`;\n","import styled from 'styled-components';\n\nexport const InnerContainer = styled.div`\n\twidth: 100%;\n`;\n","import styled from 'styled-components';\nimport { IconWrapper } from '../ui';\nimport { PageContent, PageMainContainer } from './basic';\n\ninterface IStatusScreenCircleContainer {\n\ttype: 'success' | 'warning' | 'error';\n}\n\nexport const PageStatusScreenMain = styled(PageMainContainer)`\n\theight: 100%;\n`;\nexport const PageStatusScreenContent = styled(PageContent)`\n\theight: inherit;\n\twidth: 100%;\n\talign-items: center;\n\tjustify-content: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\ttext-align: center;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n`;\nexport const StatusScreenCircleContainer = styled.div<IStatusScreenCircleContainer>`\n\twidth: 64px;\n\theight: 64px;\n\tbackground-color: ${({ theme, type }) => {\n\t\tswitch (type) {\n\t\t\tcase 'success':\n\t\t\t\treturn theme.color.emerald;\n\t\t\tcase 'error':\n\t\t\t\treturn theme.color.sunsetOrange;\n\t\t\tcase 'warning':\n\t\t\t\treturn theme.color.hokeyPokey;\n\t\t\tdefault:\n\t\t\t\treturn theme.color.porcelain;\n\t\t}\n\t}};\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-bottom: 24px;\n\n\t${IconWrapper} {\n\t\twidth: 40px;\n\t\tcolor: ${({ theme }) => theme.color.white};\n\t}\n`;\nexport const StatusScreenErrorCode = styled.span`\n\tfont-size: 12px;\n\tmargin-top: 16px;\n\tcolor: ${({ theme }) => theme.color.osloGrey};\n`;\nexport const PageSuccessImgContainer = styled.div`\n\tmargin-bottom: 24px;\n\twidth: 64px;\n\theight: 64px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: 50%;\n\toverflow: hidden;\n\timg {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n`;\n","import styled from 'styled-components';\nimport { devices } from './breakpoints';\n\nexport const Root = styled.div`\n\twhite-space: pre-line;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: fixed;\n\ttop: 50%;\n\tleft: 0;\n\tright: 0;\n\ttransform: translate(0, -50%);\n\theight: 100%;\n\tmax-height: 812px;\n\n\ta {\n\t\ttext-decoration: none;\n\t\tcolor: ${({ theme }) => theme.color.endeavour};\n\t}\n\th3 {\n\t\tfont-weight: normal;\n\t\t${({ theme }) => theme.mixin.title()};\n\t\tstrong {\n\t\t\t${({ theme }) => theme.mixin.title()};\n\t\t}\n\t}\n\t${devices.phone} {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-height: none;\n\t\tpadding: 0;\n\t}\n`;\nexport const AppContainer = styled.div`\n\twidth: 539px;\n\tbackground-color: ${({ theme }) => theme.color.white};\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tpadding: 16px;\n\tbox-sizing: border-box;\n\theight: 100%;\n\n\t${devices.phone} {\n\t\twidth: 100%;\n\t}\n\n\t&::-webkit-scrollbar {\n\t\tdisplay: none;\n\t}\n\t-ms-overflow-style: none;\n\tscrollbar-width: none;\n\toverflow-y: scroll;\n`;\nexport const AppContainerWrapper = styled.div`\n\theight: 100%;\n\tposition: relative;\n\tborder: 1px solid ${({ theme }) => theme.color.porcelain};\n\tborder-radius: 8px;\n\toverflow: hidden;\n\t${devices.phone} {\n\t\twidth: 100%;\n\t\tborder-radius: unset;\n\t\tborder: unset;\n\t}\n`;\nexport const AppContainerPage = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n`;\n","import { createGlobalStyle } from 'styled-components';\nimport MarkW1GBook from '../fonts/Mark-W1G-Book.otf';\nimport MarkW1GBold from '../fonts/Mark-W1G-Bold.otf';\n\nexport default createGlobalStyle`\n \n@font-face {\n font-family: MarkW1G;\n src: url(${MarkW1GBook}) format('opentype');\n }\n @font-face {\n font-family: MarkW1G;\n font-weight: bold;\n src: url(${MarkW1GBold}) format('opentype');\n }\n\nbody{\n font-family: 'MarkW1G', sans-serif;\n}\nbody * {\n font-family: 'MarkW1G', sans-serif;\n font-size: 14px;\n font-style: normal;\n}\n`;\n","import React, { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '../ui';\nimport { PageControlsSection, PageMainContainer, PageShadow, PageShadowWrapper, PageStyled, PageSubtitle } from '../../styledComponents';\nimport { ButtonType } from '../ui/Button';\n\ninterface IProps {\n\tbuttons?: IButton[];\n\tchildren: ReactElement;\n\ttitle?: string | ReactElement;\n\tsubTitle?: string;\n\tshadow: boolean;\n\tonBack?: () => void;\n\tbackDisabled?: boolean;\n}\n\nexport interface IButton {\n\tlabel: string;\n\tonClick: () => void;\n\tbuttonType?: ButtonType;\n\tdisabled?: boolean;\n}\n\nfunction Page(props: IProps) {\n\tconst { buttons, children, title, subTitle, shadow, onBack, backDisabled } = props;\n\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t<PageStyled buttonCount={buttons?.length}>\n\t\t\t{onBack && <Button onClick={onBack} label={t('back')} buttonType=\"back\" disabled={backDisabled}/>}\n\t\t\t{title && <h3>{title}</h3>}\n\t\t\t{subTitle && <PageSubtitle>{subTitle}</PageSubtitle>}\n\t\t\t<PageMainContainer>{children}</PageMainContainer>\n\t\t\t<PageControlsSection notEmpty={(buttons?.length ?? 0) > 0}>\n\t\t\t\t<PageShadowWrapper>\n\t\t\t\t\t{shadow && <PageShadow />}\n\t\t\t\t\t{buttons?.map((b, index) => (\n\t\t\t\t\t\t<Button key={index} onClick={b.onClick} label={b.label} buttonType={b.buttonType} disabled={b.disabled} />\n\t\t\t\t\t))}\n\t\t\t\t</PageShadowWrapper>\n\t\t\t</PageControlsSection>\n\t\t</PageStyled>\n\t);\n}\n\nexport default Page;\n","import React from 'react';\nimport { ButtonLabel, ButtonStyled } from '../../styledComponents';\nimport back from '../../images/back.svg';\n\nexport type ButtonType = 'secondary' | 'tiny' | 'link' | 'back';\n\ninterface Props {\n\tonClick: () => void;\n\tlabel: string;\n\tbuttonType?: ButtonType;\n\tdisabled?: boolean;\n}\n\nfunction Button(props: Props) {\n\tconst { onClick, label, buttonType, disabled } = props;\n\treturn (\n\t\t<ButtonStyled buttonType={buttonType} disabled={disabled || false} onClick={onClick}>\n\t\t\t{buttonType === 'back' && <img src={back} alt=\"\" />}\n\t\t\t<ButtonLabel> {label || ''}</ButtonLabel>\n\t\t</ButtonStyled>\n\t);\n}\n\nexport default Button;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n\tPageControlsSection,\n\tPageShadowWrapper,\n\tPageStatusScreenContent,\n\tPageStatusScreenMain,\n\tPageStyled,\n\tStatusScreenCircleContainer,\n\tStatusScreenErrorCode\n} from '../../styledComponents';\nimport Icon from '../ui/icon';\nimport Page from './Page';\nimport err from '../../images/error.svg';\n\ninterface IProps {\n\tmessageCode?: string;\n}\n\nfunction NotFound({ messageCode = '404' }: IProps) {\n\tconst { t } = useTranslation();\n\treturn (\n\t\t<Page shadow={false}>\n\t\t\t<PageStyled>\n\t\t\t\t<PageStatusScreenMain>\n\t\t\t\t\t<PageStyled>\n\t\t\t\t\t\t<PageStatusScreenContent>\n\t\t\t\t\t\t\t<StatusScreenCircleContainer type=\"warning\">\n\t\t\t\t\t\t\t\t<Icon img={err} rotating={false} />\n\t\t\t\t\t\t\t</StatusScreenCircleContainer>\n\t\t\t\t\t\t\t<span>{t('page_not_found')}</span>\n\t\t\t\t\t\t\t<StatusScreenErrorCode>{`${t('error')}: ${messageCode}`}</StatusScreenErrorCode>\n\t\t\t\t\t\t</PageStatusScreenContent>\n\t\t\t\t\t</PageStyled>\n\t\t\t\t</PageStatusScreenMain>\n\t\t\t\t<PageControlsSection notEmpty={false}>\n\t\t\t\t\t<PageShadowWrapper />\n\t\t\t\t</PageControlsSection>\n\t\t\t</PageStyled>\n\t\t</Page>\n\t);\n}\n\nexport default NotFound;\n","import React from 'react';\nimport { IconWrapper } from '../../styledComponents';\n\ninterface IProps {\n\trotating: boolean;\n\timg: string;\n}\n\nfunction Icon(props: IProps) {\n\tconst { rotating, img } = props;\n\treturn (\n\t\t<IconWrapper rotating={rotating}>\n\t\t\t<img src={img} alt=\"\" />\n\t\t</IconWrapper>\n\t);\n}\n\nexport default Icon;\n","import React, {useEffect, useState} from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport Page, { IButton } from './Page';\nimport { H4Styled, Spacer, InnerContainer } from '../../styledComponents';\nimport { authUser } from '../../actions/actions';\nimport { LoadingModal } from '../modals';\nimport {handleUserKeyPress} from \"../../helpers\";\n\ninterface IProps {\n\tonContinue: () => void;\n\tshowErrorScreen: (code:string) => void;\n\tshadow: boolean;\n\tappName: string;\n\tauthRequestId?: string;\n\tsmsSent:boolean\n\tsetSmsSent: (code: boolean) => void;\n\ttest?: boolean;\n}\n\nfunction StartScreen(props: IProps) {\n\tconst { onContinue, appName, shadow, authRequestId, showErrorScreen, smsSent, setSmsSent, test } = props;\n\tconst [loading, setLoading] = useState(false);\n\tconst { t } = useTranslation();\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('keydown', (e)=>handleUserKeyPress(e, onContinue));\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('keydown', (e)=>handleUserKeyPress(e, onContinue));\n\t\t};\n\t}, []);\n\tconst handleContinue = async () => {\n\t\tsetLoading(true);\n\t\tif(authRequestId && !smsSent) {\n\t\t\tconst response = await authUser({authRequestId, test});\n\t\t\tif (response?.ok) {\n\t\t\t\tsetSmsSent(true);\n\t\t\t\tsetLoading(false);\n\t\t\t\tonContinue();\n\t\t\t} else {\n\t\t\t\tshowErrorScreen(response?.statusCode.toString())\n\t\t\t}\n\t\t} else if(smsSent) {\n\t\t\tsetLoading(false);\n\t\t\tonContinue();\n\t\t}\n\n\t};\n\tconst buttons: IButton[] = [\n\t\t{\n\t\t\tlabel: t('continue'),\n\t\t\tonClick: () => handleContinue()\n\t\t}\n\t];\n\treturn (\n\t\t<Page\n\t\t\ttitle={\n\t\t\t\tappName ? (\n\t\t\t\t\t<Trans t={t} i18nKey=\"use_basiq_to_connect_your_accounts\" values={{ name: appName }} components={{ bold: <strong /> }} />\n\t\t\t\t) : (\n\t\t\t\t\t<Trans t={t} i18nKey=\"we_use_basiq_to_connect_your_accounts\" components={{ bold: <strong /> }} />\n\t\t\t\t)\n\t\t\t}\n\t\t\tshadow={shadow}\n\t\t\tbuttons={buttons}\n\t\t>\n\t\t\t<InnerContainer>\n\t\t\t\t<Spacer />\n\t\t\t\t<H4Styled>{t('to_do_this_we_will_ask_you_to')}</H4Styled>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Trans t={t} i18nKey=\"verify_your_mobile_number_bold\" components={{ bold: <strong /> }} />\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Trans t={t} i18nKey=\"consent_to_share_your_data_with_us\" components={{ bold: <strong /> }} />\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Trans t={t} i18nKey=\"share_your_financial_data\" components={{ bold: <strong /> }} />\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t\t<H4Styled>{t('things_you_should_know')}</H4Styled>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>{t('we_dont_share_your_data_without_your_consent')}</li>\n\t\t\t\t\t<li>{t('you_can_easily_stop_sharing_your_data_at_any_time')}</li>\n\t\t\t\t\t<li>{t('you_can_choose_to_delete_shared_data_when_we_no_longer_need_it')}</li>\n\t\t\t\t</ul>\n\t\t\t\t<Spacer />\n\t\t\t\t<span>\n\t\t\t\t\t<>\n\t\t\t\t\t{t('by_proceeding_you_agree_to_the')}{' '}\n\t\t\t\t\t\t<a href=\"https://docs.basiq.io/en/articles/415750-basiq-terms-of-service\" rel=\"noreferrer\" target=\"_blank\">{t('terms_of_service')}</a> {t('and')}{' '}\n\t\t\t\t\t\t<a href=\"https://docs.basiq.io/en/articles/382581-basiq-privacy-policy\" rel=\"noreferrer\" target=\"_blank\">{t('privacy_notice')}</a>\n\t\t\t\t\t</>\n\t\t\t\t</span>\n\t\t\t\t<LoadingModal isOpen={loading} />\n\t\t\t</InnerContainer>\n\t\t</Page>\n\t);\n}\n\nexport default StartScreen;\n","import {DASHBOARD_API_URL, DASHBOARD_API_URL_TEST} from '../helpers';\n\nexport const verifySmsCode = async ({authRequestId, smsCode, test}:{authRequestId: string, smsCode: string, test?:boolean}) => {\n\tconst body = {\n\t\t'sms-code': smsCode\n\t};\n\n\tconst reqData = {\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Basic SMS_CODE:${authRequestId}`\n\t\t},\n\t\tmethod: 'POST',\n\t\tbody: JSON.stringify(body)\n\t};\n\n\tconst result = await fetch(`${test ? DASHBOARD_API_URL_TEST : DASHBOARD_API_URL}client_auth/${authRequestId}/token`, reqData);\n\n\tif (result.status >= 200 && result.status < 300) {\n\t\tconst json = result.status === 204 ? null : await result.json();\n\t\treturn {\n\t\t\tdata: json,\n\t\t\theaders: result.headers,\n\t\t\tstatusCode: result.status,\n\t\t\tok:true\n\t\t};\n\t}\n\tif (result.status >= 400) {\n\t\treturn {\n\t\t\theaders: result.headers,\n\t\t\tstatusCode: result.status,\n\t\t\terror: result.statusText || 'Something went wrong',\n\t\t\tok:false\n\t\t};\n\t}\n\treturn {\n\t\theaders: result.headers,\n\t\tstatusCode: result.status,\n\t\terror: result.statusText || 'Something went wrong',\n\t\tok:false\n\t};\n};\n\nexport const authUser = async ({authRequestId, method, test}:{authRequestId: string, method?: 'POST' | 'GET', test?:boolean}) => {\n\tconst reqData = {\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json'\n\t\t},\n\t\tmethod: method || 'POST'\n\t};\n\ttry{\n\t\tconst result = await fetch(`${test ? DASHBOARD_API_URL_TEST : DASHBOARD_API_URL}client_auth/${authRequestId}`, reqData);\n\n\t\tif (result.status >= 200 && result.status < 300) {\n\t\t\tconst json = result.status === 204 ? null : await result.json();\n\t\t\treturn {\n\t\t\t\tdata: json,\n\t\t\t\theaders: result.headers,\n\t\t\t\tstatusCode: result.status,\n\t\t\t\tok: true\n\t\t\t};\n\t\t}\n\t\tif (result.status >= 400) {\n\t\t\tconst json = [403, 404].includes(result.status) ? null : await result.json();\n\t\t\treturn {\n\t\t\t\theaders: result.headers,\n\t\t\t\tstatusCode: result.status,\n\t\t\t\terror: json?.message || result.statusText || 'Something went wrong',\n\t\t\t\tok: false\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\theaders: result.headers,\n\t\t\tstatusCode: result.status,\n\t\t\terror: result.statusText || 'Something went wrong',\n\t\t\tok: false\n\t\t};\n\t}catch (e){\n\t\treturn {\n\t\t\tstatusCode: 500,\n\t\t\terror: 'Something went wrong',\n\t\t\tok:false\n\t\t};\n\t}\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Modal from '../ui/Modal';\nimport { LoadingModalStyled, LoadingModalText } from '../../styledComponents';\nimport Icon from '../ui/icon';\nimport loadingIndicator from '../../images/loading_indicator.svg';\n\ninterface IProps {\n\tisOpen: boolean;\n\tdisableTransparency?: boolean;\n\tloadingText?: string;\n}\n\nfunction LoadingModal(props: IProps) {\n\tconst { isOpen, disableTransparency, loadingText } = props;\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t<Modal isOpen={isOpen} disableTransparency={!!disableTransparency}>\n\t\t\t<LoadingModalStyled disableTransparency={!!disableTransparency}>\n\t\t\t\t<Icon img={loadingIndicator} rotating />\n\t\t\t\t<LoadingModalText>{loadingText || t('loading')}</LoadingModalText>\n\t\t\t</LoadingModalStyled>\n\t\t</Modal>\n\t);\n}\n\nexport default LoadingModal;\n","import React, { ReactElement, SyntheticEvent } from 'react';\nimport { ModalStyled } from '../../styledComponents';\n\ninterface IProps {\n\tchildren: ReactElement;\n\tonClose?: () => void;\n\tisOpen: boolean;\n\tdisableTransparency: boolean;\n}\n\nfunction Modal(props: IProps) {\n\tconst { children, onClose, isOpen, disableTransparency } = props;\n\tconst handleOutsideClick = (e: SyntheticEvent<HTMLElement>) => {\n\t\tif (onClose && (e.target as HTMLElement).id === 'ui-modal') {\n\t\t\tonClose();\n\t\t}\n\t};\n\treturn (\n\t\t<>\n\t\t\t{isOpen ? (\n\t\t\t\t<ModalStyled id=\"ui-modal\" disableTransparency={disableTransparency} onClick={handleOutsideClick}>\n\t\t\t\t\t{children}\n\t\t\t\t</ModalStyled>\n\t\t\t) : null}\n\t\t</>\n\t);\n}\n\nexport default Modal;\n","import React, {ChangeEvent, useCallback, useState} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Page, { IButton } from './Page';\nimport { DivAsLink, InputContainer, InputStyled, PageConnectFooterControl, PageConnectFooterText, StatusMessage } from '../../styledComponents';\nimport { InnerContainer } from '../../styledComponents';\nimport { LoadingModal } from '../modals';\nimport { authUser, verifySmsCode } from '../../actions/actions';\nimport {buildRedirectUrl} from \"../../helpers\";\n\ninterface IProps {\n\tshadow: boolean;\n\tonBack: () => void;\n\tnumber: string;\n\tqueryString: string;\n\tauthRequestId: string;\n\ttest?:boolean;\n}\n\nfunction AuthScreen({ onBack, number, authRequestId, shadow, test, queryString }: IProps) {\n\tconst { t } = useTranslation();\n\tconst [error, setError] = useState('');\n\tconst [smsCode, setSmsCode] = useState('');\n\tconst [resend, setResend] = useState(false);\n\tconst [resendLoading, setResendLoading] = useState(false);\n\tconst [loading, setLoading] = useState(false);\n\tconst [tooManyAttempts, setTooManyAttempts] = useState(false);\n\n\tconst handleCodeApply = useCallback(\n\t\t\tasync (e?:React.KeyboardEvent<HTMLInputElement>) => {\n\t\t\t\tif(smsCode.length===6 && error.length===0 && (!e || e?.key === 'Enter')){\n\t\t\t\t\tsetLoading(true);\n\t\t\t\t\tconst response = await verifySmsCode({authRequestId, smsCode, test});\n\t\t\t\t\tif (response?.data?.access_token) {\n\t\t\t\t\t\twindow.open(buildRedirectUrl(response.data.access_token, queryString), \"_self\");\n\t\t\t\t\t} else if (response?.statusCode === 204) {\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetTooManyAttempts(true);\n\t\t\t\t\t\tsetError(t('too_many_attempts'));\n\t\t\t\t\t } else if (response?.error) {\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetError(t('this_code_doesnt_appear_to_be_valid'));\n\t\t\t\t\t }\n\n\t\t\t\t}\n\t\t\t},\n\t\t[smsCode, error, authRequestId, queryString, test]\n\t);\n\tconst buttons: IButton[] = [\n\t\t{\n\t\t\tlabel: t('continue'),\n\t\t\tonClick: () => handleCodeApply(),\n\t\t\tdisabled: smsCode.length<6 || !!error\n\t\t}\n\t];\n\n\tconst handleResend = async () => {\n\t\tsetError('');\n\t\tsetSmsCode('');\n\t\tsetResend(false);\n\t\tsetResendLoading(true);\n\t\tconst response = await authUser({authRequestId, test});\n\t\tsetResendLoading(false);\n\t\tif (response.error) {\n\t\t\tsetError(t('failed_to_send_sms'));\n\t\t} else {\n\t\t\tsetResend(true);\n\t\t}\n\t};\n\tconst handleInput = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tsetError('');\n\t\tsetResend(false);\n\t\tif(/^([0-9]+)$/.test(e.target.value) || e.target.value===''){\n\t\t\tsetSmsCode(e.target.value);\n\t\t}\n\t};\n\treturn (\n\t\t<Page\n\t\t\ttitle={t('verify_your_mobile_number')}\n\t\t\tsubTitle={t('please_enter_the_sms_code_sent_to_your_mobile_number', { number })}\n\t\t\tshadow={shadow}\n\t\t\tbuttons={buttons}\n\t\t\tonBack={onBack}\n\t\t\tbackDisabled={tooManyAttempts}\n\t\t>\n\t\t\t<InnerContainer>\n\t\t\t\t<InputContainer>\n\t\t\t\t\t<InputStyled\n\t\t\t\t\t\tpattern=\"\\d{6}\"\n\t\t\t\t\t\tinputMode=\"numeric\"\n\t\t\t\t\t\tautoComplete=\"one-time-code\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tmaxLength={6}\n\t\t\t\t\t\tonChange={handleInput}\n\t\t\t\t\t\tvalue={smsCode}\n\t\t\t\t\t\tfilled={smsCode.length === 6}\n\t\t\t\t\t\terror={tooManyAttempts || !!error}\n \tdisabled={tooManyAttempts}\n\t\t\t\t\t\tonKeyDown={handleCodeApply}\n\t\t\t\t\t/>\n\t\t\t\t</InputContainer>\n\t\t\t\t<PageConnectFooterControl>\n\t\t\t\t\t{resend && <StatusMessage>{t('new_sms_code_has_been_sent')}</StatusMessage>}\n\t\t\t\t\t{!!error && <StatusMessage error>{error}</StatusMessage>}\n\t\t\t\t\t<PageConnectFooterText>\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{t('didnt_receive_the_code')} <DivAsLink disabled={tooManyAttempts || resendLoading} onClick={() => !tooManyAttempts && !resendLoading && handleResend()}>{t('resend_sms')}</DivAsLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</PageConnectFooterText>\n\t\t\t\t</PageConnectFooterControl>\n\t\t\t\t<LoadingModal isOpen={loading} />\n\t\t\t</InnerContainer>\n\t\t</Page>\n\t);\n}\n\nexport default AuthScreen;\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\nimport translationEN from './en/translation.json';\n\nexport const defaultNS = 'ns1';\n\n// the translations\nexport const resources = {\n\ten: {\n\t\tns1: translationEN\n\t}\n} as const;\n\ni18n.use(initReactI18next) // passes i18n down to react-i18next\n\t.init({\n\t\tresources,\n\t\tlng: 'en',\n\t\tns: ['ns1'],\n\t\tinterpolation: {\n\t\t\tescapeValue: false, // react already safes from xss\n\t\t\tprefix: '${',\n\t\t\tsuffix: '}'\n\t\t}\n\t});\n\nexport default i18n;\n","{\n\t\"back\": \"Back\",\n\t\"error\": \"Error\",\n\t\"loading\": \"Loading\",\n\t\"continue\": \"Continue\",\n\t\"to_do_this_we_will_ask_you_to\": \"To do this we will ask you to\",\n\t\"verify_your_mobile_number_bold\": \"<strong>Verify</strong> your mobile number\",\n\t\"verify_your_mobile_number\": \"Verify your mobile number\",\n\t\"consent_to_share_your_data_with_us\": \"<strong>Consent</strong> to share your data with us\",\n\t\"share_your_financial_data\": \"<strong>Share</strong> your financial data\",\n\t\"things_you_should_know\": \"Things you should know\",\n\t\"we_dont_share_your_data_without_your_consent\": \"We don’t share your data without your consent\",\n\t\"you_can_easily_stop_sharing_your_data_at_any_time\": \"You can easily stop sharing your data at any time\",\n\t\"you_can_choose_to_delete_shared_data_when_we_no_longer_need_it\": \"You can choose to delete shared data when we no longer need it\",\n\t\"by_proceeding_you_agree_to_the\": \"By proceeding, you agree to the\",\n\t\"terms_of_service\": \"Terms of service\",\n\t\"privacy_notice\": \"Privacy notice\",\n\t\"and\": \"and\",\n\t\"use_basiq_to_connect_your_accounts\": \"${name} use <strong>Basiq</strong> to connect your accounts\",\n\t\"we_use_basiq_to_connect_your_accounts\": \"We use <strong>Basiq</strong> to connect your accounts\",\n\t\"please_enter_the_sms_code_sent_to_your_mobile_number\": \"Please enter the SMS code sent to your mobile number (ending in xxx${number}).\",\n\t\"new_sms_code_has_been_sent\": \"New SMS code has been sent.\",\n\t\"this_code_doesnt_appear_to_be_valid\": \"This code doesn't appear to be valid.\",\n\t\"didnt_receive_the_code\": \"Didn’t receive the code?\",\n\t\"resend_sms\": \"Resend SMS\",\n\t\"failed_to_send_sms\": \"Failed to send SMS.\",\n\t\"page_not_found\": \"Page not found\",\n\t\"missing_authentication_token\": \"Missing Authentication Token\",\n\t\"too_many_attempts\": \"Too many attempts. Please use a new link to try again.\"\n}\n"],"mappings":"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","names":["import_react","import_styled_components","import_react","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","import_react","import_react","React","React","import_react","import_react_i18next","import_react","React","React","import_react","import_react_i18next","import_react","import_react_i18next","import_react","React","React","React","import_react","import_react_i18next","React","React","import_react_i18next","i18n","React"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/components/BasiqConnect.tsx","../src/App.tsx","../src/styledComponents/ui/basic.ts","../src/styledComponents/ui/button.ts","../src/styledComponents/ui/modals.ts","../src/helpers/hookUtils.ts","../src/helpers/utils.ts","../src/helpers/constants.ts","../src/styledComponents/theme.ts","../src/styledComponents/pages/basic.ts","../src/styledComponents/breakpoints.ts","../src/styledComponents/pages/auth.ts","../src/styledComponents/pages/start.ts","../src/styledComponents/pages/notFound.ts","../src/styledComponents/base.ts","../src/styledComponents/styles.ts","../src/components/pages/Page.tsx","../src/components/ui/Button.tsx","../src/components/pages/NotFound.tsx","../src/components/ui/icon.tsx","../src/components/pages/StartScreen.tsx","../src/actions/actions.ts","../src/components/modals/LoadingModal.tsx","../src/components/ui/Modal.tsx","../src/components/pages/AuthScreen.tsx","../src/locales/i18n.ts","../src/locales/en/translation.json"],"sourcesContent":["export {BasiqConnect} from './components/BasiqConnect'\n","import React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport App from '../App';\nimport '../locales/i18n';\nimport { theme } from '../styledComponents';\n\nexport interface IBCProps{\n\ttest?:boolean;\n}\n\nexport function BasiqConnect(props: IBCProps) {\n\tconst {test} = props;\nreturn(\n\t<React.StrictMode>\n\t\t<ThemeProvider theme={theme}>\n\t\t\t<App test={test} />\n\t\t\t</ThemeProvider>\n\t</React.StrictMode>\n\t\t);\n\n}\n\n","import React, { createRef, SyntheticEvent, useEffect, useState } from 'react';\nimport { AppContainer, AppContainerPage, AppContainerWrapper, PageHeader, Root } from './styledComponents';\nimport GlobalStyles from './styledComponents/styles';\nimport { detectScrollToBottom } from './helpers';\nimport {AuthScreen, NotFound, Page, StartScreen} from './components/pages';\nimport { authUser } from './actions/actions';\nimport { LoadingModal } from './components/modals';\nimport {IBCProps} from \"./components/BasiqConnect\";\n\nfunction App(props:IBCProps) {\n\tconst {test} = props;\n\tconst ref = createRef<HTMLDivElement>();\n\tconst [shadow, setShadow] = useState(false);\n\tconst [currentScreen, setCurrentScreen] = useState(0);\n\tconst [loading, setLoading] = useState(true);\n\tconst [authId, setAuthId] = useState('');\n\tconst [queryString, setQueryString] = useState('');\n\tconst [mobile, setMobile] = useState('');\n\tconst [logo, setLogo] = useState('');\n\tconst [appName, setAppName] = useState('');\n\tconst [errorCode, setErrorCode] = useState('');\n\tconst [smsSent, setSmsSent] = useState(false);\n\n\tconst handleConnectionsScroll = (event: SyntheticEvent<HTMLDivElement>) => {\n\t\tsetShadow(detectScrollToBottom(event));\n\t};\n\tconst showErrorScreen = (code: string) => {\n\t\tsetErrorCode(code);\n\t\tsetCurrentScreen(3);\n\t};\n\tuseEffect(() => {\n\t\tconst getData = async () => {\n\t\t\tconst id = window.location.pathname?.substring(1)?.split('?')[0];\n\t\t\tconst searchString = window.location.search?.split('?')[1];\n\t\t\tsetQueryString(searchString);\n\t\t\tif (id?.length > 0) {\n\t\t\t\tsetAuthId(id);\n\t\t\t\tsetLoading(true);\n\t\t\t\tconst response = await authUser({authRequestId:id, method:'GET', test});\n\t\t\t\tif (response?.ok) {\n\t\t\t\t\tsetCurrentScreen(1);\n\t\t\t\t\tsetMobile(response?.data?.mobile);\n\t\t\t\t\tif (response?.data?.appName) {\n\t\t\t\t\t\tsetAppName(response?.data?.appName);\n\t\t\t\t\t}\n\t\t\t\t\tif (response?.data?.partner?.logoUrl) {\n\t\t\t\t\t\tsetLogo(response?.data?.partner?.logoUrl);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tshowErrorScreen(response?.statusCode.toString());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshowErrorScreen('404');\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\tgetData();\n\t}, []);\n\n\n\tconst getScreen = () => {\n\t\tswitch (currentScreen) {\n\t\t\tcase 0:\n\t\t\t\treturn <Page shadow={shadow}><LoadingModal isOpen={loading} disableTransparency /></Page>;\n\t\t\tcase 1:\n\t\t\t\treturn (\n\t\t\t\t\t<StartScreen\n\t\t\t\t\t\tappName={appName}\n\t\t\t\t\t\tshadow={shadow}\n\t\t\t\t\t\tshowErrorScreen={showErrorScreen}\n\t\t\t\t\t\tonContinue={() => setCurrentScreen(2)}\n\t\t\t\t\t\tauthRequestId={authId}\n\t\t\t\t\t\tsmsSent={smsSent}\n\t\t\t\t\t\tsetSmsSent={setSmsSent}\n\t\t\t\t\t\ttest={test}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 2:\n\t\t\t\treturn <AuthScreen number={mobile} onBack={() => setCurrentScreen(1)} shadow={shadow} authRequestId={authId} test={test} queryString={queryString}/>;\n\t\t\tcase 3:\n\t\t\t\treturn <NotFound messageCode={errorCode} />;\n\t\t\tdefault:\n\t\t\t\treturn <NotFound messageCode={errorCode} />;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Root>\n\t\t\t<GlobalStyles />\n\t\t\t<AppContainerWrapper>\n\t\t\t\t<AppContainer onScroll={handleConnectionsScroll} ref={ref}>\n\t\t\t\t\t{logo && (\n\t\t\t\t\t\t<PageHeader>\n\t\t\t\t\t\t\t<img src={logo} alt={appName ? `${appName} logo` : 'Partner logo'} />\n\t\t\t\t\t\t</PageHeader>\n\t\t\t\t\t)}\n\t\t\t\t\t<AppContainerPage>{getScreen()}</AppContainerPage>\n\t\t\t\t</AppContainer>\n\t\t\t</AppContainerWrapper>\n\t\t</Root>\n\t);\n}\n\nexport default App;\n","import styled, { css, keyframes } from 'styled-components';\n\ninterface IIconWrapper {\n\trotating: boolean;\n}\n\nexport const rotate = keyframes`\n from {\n -ms-transform: rotate(0deg);\n -moz-transform: rotate(0deg);\n -webkit-transform: rotate(0deg);\n -o-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n to {\n -ms-transform: rotate(360deg);\n -moz-transform: rotate(360deg);\n -webkit-transform: rotate(360deg);\n -o-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n`;\nexport const SimpleButton = styled.button`\n\tborder-radius: 2px;\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tborder: none;\n\tcursor: pointer;\n\tmargin-bottom: 8px;\n\tpadding: 10px;\n\n\t&:focus-visible {\n\t\toutline: 2px solid currentColor;\n\t\toutline-offset: 2px;\n\t}\n`;\n\nexport const Input = styled.input`\n\theight: 48px;\n\tbackground: ${({ theme }) => theme.color.porcelainSecond};\n\tborder-radius: 2px;\n\tborder: none;\n\twidth: 100%;\n\tbox-sizing: border-box;\n\tpadding: 0 16px;\n\tcolor: ${({ theme }) => theme.color.ebony};\n\tmargin-bottom: 16px;\n\tfont-size: 16px;\n\n\t&::placeholder {\n\t\tcolor: ${({ theme }) => theme.color.osloGrey};\n\t\topacity: 1;\n\t}\n\n\t&:-ms-input-placeholder {\n\t\tcolor: ${({ theme }) => theme.color.osloGrey};\n\t}\n\n\t&::-ms-input-placeholder {\n\t\tcolor: ${({ theme }) => theme.color.osloGrey};\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${({ theme }) => theme.color.endeavour};\n\t\toutline-offset: 2px;\n\t\tbackground-color: ${({ theme }) => theme.color.spindle};\n\t}\n\n\t&:disabled {\n\t\tbackground-color: ${({ theme }) => theme.color.porcelain};\n\t\tcolor: ${({ theme }) => theme.color.casper};\n\t\tcursor: not-allowed;\n\t}\n`;\nexport const H4Styled = styled.h4`\n\tuser-select: none;\n\t${({ theme }) => theme.mixin.subtitle()};\n`;\n\nexport const Spacer = styled.div`\n\tdisplay: flex;\n\twidth: 100%;\n\tmargin-top: 12px;\n\tmargin-bottom: 12px;\n\theight: 1px;\n\tbackground-color: ${({ theme }) => theme.color.porcelain};\n`;\nexport const IconWrapper = styled.span<IIconWrapper>`\n display: flex;\n width: 22px;\n ${({ rotating }) =>\n\t\trotating &&\n\t\tcss`\n\t\t\tanimation: ${rotate} 2s linear infinite;\n\t\t`}\n };\n svg, img {\n width: 100%;\n }\n`;\n","import styled, { css } from 'styled-components';\nimport { SimpleButton } from './basic';\nimport { ButtonType } from '../../components/ui/Button';\n\nexport const ButtonLabel = styled.span`\n\tfont-size: 18px;\n`;\n\ninterface IButtonStyled {\n\tbuttonType?: ButtonType;\n\tdisabled: boolean;\n\tonClick: () => void;\n}\nexport const ButtonStyled = styled(SimpleButton)<IButtonStyled>`\n\tmin-height: 40px;\n\tjustify-content: center;\n\tbackground-color: ${(props) => props.theme.color.endeavour};\n\ttext-align: center;\n\tbox-shadow: none;\n\tborder: none;\n\tcursor: pointer;\n\tcolor: ${({ theme }) => theme.color.white};\n\n\t&:last-child {\n\t\tmargin-bottom: 0;\n\t}\n\t&:hover {\n\t\tbackground-color: ${({ theme }) => theme.color.bostonBlue};\n\t}\n\t&:active {\n\t\tbackground-color: ${({ theme }) => theme.color.congressBlue};\n\t}\n\t${({ buttonType, theme }) => {\n\t\tswitch (buttonType) {\n\t\t\tcase 'secondary':\n\t\t\t\treturn css`\n\t\t\t\t\tcolor: ${theme.color.ebony};\n\t\t\t\t\tbackground-color: ${theme.color.porcelainSecond};\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tcolor: ${theme.color.abbey};\n\t\t\t\t\t\tbackground-color: ${theme.color.porcelainSecondLight};\n\t\t\t\t\t}\n\t\t\t\t\t&:active {\n\t\t\t\t\t\tbackground-color: ${theme.color.ironSecond};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\tcase 'tiny':\n\t\t\t\treturn css`\n\t\t\t\t\twidth: auto;\n\t\t\t\t\tmin-height: 32px;\n\t\t\t\t\tpadding: 6px 16px;\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\tcolor: ${theme.color.cyprus};\n\t\t\t\t\tbackground-color: ${theme.color.hokeyPokey};\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tbackground-color: ${theme.color.hokeyPokeyLight};\n\t\t\t\t\t}\n\t\t\t\t\t&:active {\n\t\t\t\t\t\tbackground-color: ${theme.color.anzac};\n\t\t\t\t\t}\n\t\t\t\t`;\n\n\t\t\tcase 'back':\n\t\t\t\treturn css`\n\t\t\t\t\tbackground: none;\n\t\t\t\t\tjustify-content: initial;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tmin-height: unset;\n\t\t\t\t\tcolor: ${theme.color.abbey};\n\t\t\t\t\twidth: auto;\n\t\t\t\t\timg {\n\t\t\t\t\t\twidth: 25px;\n\t\t\t\t\t\tfilter: invert(31%) sepia(10%) saturate(313%) hue-rotate(155deg) brightness(96%) contrast(87%);\n\t\t\t\t\t}\n\t\t\t\t\t&:hover {\n\t\t\t\t\t\tcolor: ${theme.color.jumbo};\n\t\t\t\t\t\tbackground-color: unset;\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\tfilter: invert(49%) sepia(0%) saturate(5%) hue-rotate(29deg) brightness(99%) contrast(83%);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t&:active {\n\t\t\t\t\t\tcolor: ${theme.color.jumbo};\n\t\t\t\t\t\tbackground-color: unset;\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\tfilter: invert(49%) sepia(0%) saturate(5%) hue-rotate(29deg) brightness(99%) contrast(83%);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t&:disabled {\n\t\t\t\t\t\tcolor: ${theme.color.porcelain};\n\t\t\t\t\t\tbackground-color: unset !important;\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\tcolor: ${theme.color.porcelain};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\tdefault:\n\t\t\t\treturn '';\n\t\t}\n\t}}\n\timg {\n\t\tcolor: ${({ theme }) => theme.color.casper};\n\t\tmargin-right: 3px;\n\t}\n\n\t&:disabled {\n\t\tbackground-color: ${({ theme }) => theme.color.porcelain};\n\t\tcolor: ${({ theme }) => theme.color.casper};\n\t\tcursor: not-allowed;\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${({ theme }) => theme.color.congressBlue};\n\t\toutline-offset: 2px;\n\t}\n`;\n","import styled from 'styled-components';\nimport { hexToRGBa } from '../../helpers';\nimport { IconWrapper } from './basic';\n\ninterface IModalStyled {\n\tdisableTransparency: boolean;\n}\n\nexport const ModalStyled = styled.div<IModalStyled>`\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground-color: ${({ theme, disableTransparency }) => (disableTransparency ? theme.color.jumbo : hexToRGBa(theme.color.blackPearl, 0.7))};\n\tz-index: 1000000000;\n\tpadding: 16px;\n\n\ta {\n\t\tmargin-bottom: 8px;\n\t}\n`;\nexport const LoadingModalStyled = styled.div<IModalStyled>`\n\tbox-shadow: ${({ theme, disableTransparency }) => (disableTransparency ? 'none' : `0 1px 2px ${hexToRGBa(theme.color.blueBayoux, 0.3)}`)};\n\tborder-radius: 2px;\n\tpadding: 16px 12px;\n\tfont-size: 16px;\n\tline-height: 16px;\n\tcolor: ${({ theme }) => theme.color.white};\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\n\t${IconWrapper} {\n\t\tfilter: invert(1);\n\t\tmargin-bottom: 15px;\n\t\twidth: 48px;\n\t}\n`;\nexport const LoadingModalText = styled.span`\n\tfont-size: 18px;\n\twhite-space: pre-line;\n\ttext-align: center;\n\tline-height: 30px;\n`;\n","import { useRef } from 'react';\n\nexport const useFocus = () => {\n\tconst htmlElRef = useRef<HTMLInputElement>(null);\n\tconst setFocus = () => htmlElRef.current && htmlElRef.current.focus();\n\n\treturn [htmlElRef, setFocus];\n};\n","import { SyntheticEvent } from 'react';\n\nexport function detectScrollToBottom(event: SyntheticEvent<HTMLDivElement>) {\n\tconst { scrollHeight, scrollTop, clientHeight } = event.currentTarget;\n\treturn scrollHeight - scrollTop > clientHeight;\n}\n\nexport const hexToRGBa = (hex: string, opacity: number) => {\n\tconst hexToRGBA = hex.match(/[A-Za-z0-9]{2}/g)?.map((v) => parseInt(v, 16));\n\tconst opp = opacity > 1 && opacity < 0 ? 1 : opacity;\n\treturn `rgba(${hexToRGBA?.concat(opp).join()})`;\n};\nexport const handleUserKeyPress = (e: KeyboardEvent, onEnter: () => void) => {\n\tconst target = e.target as HTMLElement;\n\tconst isInteractive =\n\t\ttarget.tagName === 'A' ||\n\t\ttarget.tagName === 'BUTTON' ||\n\t\ttarget.tagName === 'INPUT' ||\n\t\ttarget.tagName === 'SELECT' ||\n\t\ttarget.tagName === 'TEXTAREA' ||\n\t\ttarget.getAttribute('role') === 'button' ||\n\t\ttarget.getAttribute('role') === 'link';\n\tif (e.key === 'Enter' && !isInteractive) {\n\t\tonEnter();\n\t}\n};\nexport const buildRedirectUrl = (token:string, queryString:string):string => `https://consent.basiq.io/home?token=${token}${queryString ? '&'+queryString : ''}`;\n"," export const DASHBOARD_API_URL_TEST = 'https://c9joivz12f.execute-api.ap-southeast-2.amazonaws.com/Development/';\nexport const DASHBOARD_API_URL = 'https://p4c8zn20r9.execute-api.ap-southeast-2.amazonaws.com/Production_v1/';\n","export const theme = {\n\tcolor: {\n\t\twhite: '#fff',\n\t\tporcelain: '#e2E8Ea',\n\t\tporcelainSecond: '#f5F7F8',\n\t\tporcelainLight: '#e5Eaec',\n\t\tporcelainSecondLight: '#f7F9F9',\n\t\tiron: '#cbd1D3',\n\t\tironSecond: '#dcdedf',\n\t\tcasper: '#90a4Ae',\n\t\tmercury: '#e5E5E5',\n\t\tdodgerBlue: '#4c6Cff',\n\t\tdodgerBlueLight: '#5e7Bff',\n\t\troyalBlue: '#4461e6',\n\t\tbostonBlue: '#367ab9',\n\t\tendeavour: '#0460af',\n\t\tcongressBlue: '#045097',\n\t\tbrilliantBlue: '#0075dc',\n\t\tcuriousBlue: '#2784da',\n\t\ticeberg: '#cdf2ed',\n\t\tlinkWater: '#cddeee',\n\t\tspindle: '#b4Cde5',\n\t\tcyprus: '#002d3C',\n\t\tgossamer: '#06bea6',\n\t\temerald: '#4fc35A',\n\t\thokeyPokey: '#fabe34',\n\t\thokeyPokeyLight: '#f9C858',\n\t\tanzac: '#e1B141',\n\t\tcerise: '#d63F5a',\n\t\tsunsetOrange: '#fe493f',\n\t\twePeep: '#f7d9de',\n\t\tebony: '#130f26',\n\t\tabbey: '#4e5457',\n\t\tosloGrey: '#7f888c',\n\t\tloblolly: '#c1c8cc',\n\t\tjumbo: '#7d7d84',\n\t\tblackPearl: '#061D24',\n\t\tblueBayoux: '#4b6a75'\n\t},\n\tmixin: {\n\t\tsubtitle: () => ` margin-top: 32px;\n margin-bottom: 4px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;`,\n\n\t\ttitle: () => ` font-size: 26px;\n line-height: 30px;\n letter-spacing: -0.2px;\n margin-top: 0;\n margin-bottom: 0;\n color: #130f26;\n white-space: pre-line;\n `\n\t}\n};\nexport type ThemeType = typeof theme;\n","import styled, { css } from 'styled-components';\nimport { ButtonStyled } from '../ui';\nimport { hexToRGBa } from '../../helpers';\nimport { devices } from '../breakpoints';\n\ninterface IPageStyledProps {\n\tbuttonCount?: number;\n\thorizontal?: boolean;\n}\n\ninterface IStatusMessage {\n\terror?: boolean;\n}\n\ninterface IPageControlsSectionProps {\n\tnotEmpty: boolean;\n}\ninterface IHorizontalProps {\n\thorizontal?: boolean;\n}\nexport const PageStyled = styled.div<IPageStyledProps>`\n\twidth: 100%;\n\theight: 100%;\n\t${({ buttonCount, horizontal }) =>\n\t\tbuttonCount && buttonCount > 0\n\t\t\t? horizontal\n\t\t\t\t? 'padding-bottom: 96px;'\n\t\t\t\t: `padding-bottom: ${46 + 50 * buttonCount}px;`\n\t\t\t: 'padding-bottom: 16px;'}\n`;\nexport const PageSubtitle = styled.div`\n\t${({ theme }) => theme.mixin.subtitle()};\n`;\n\nexport const PageMainContainer = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n`;\nexport const PageControlsSection = styled.div<IPageControlsSectionProps>`\n\tposition: absolute;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\t${({ notEmpty }) => `padding: ${notEmpty ? '16px' : '0'}`};\n\tbackground-color: ${({ theme }) => theme.color.white};\n\tborder-top: 1px solid ${({ theme }) => theme.color.porcelainLight};\n`;\nexport const PageShadowWrapper = styled.div<IHorizontalProps>`\n\twidth: 100%;\n\t${({ horizontal }) =>\n\t\thorizontal &&\n\t\tcss`\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\n\t\t\t${ButtonStyled} {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t\tmargin-right: 16px;\n\n\t\t\t\t&:last-child {\n\t\t\t\t\tmargin-right: unset;\n\t\t\t\t}\n\t\t\t}\n\t\t`}\n`;\nexport const PageShadow = styled.div`\n\tposition: absolute;\n\theight: 71px;\n\tleft: 0;\n\tright: 0;\n\ttop: -71px;\n\tbackground: linear-gradient(180deg, #cecece 0%, ${hexToRGBa('#cecece', 0)} 100%);\n\topacity: 0.8;\n\ttransform: rotate(-180deg);\n\tpointer-events: none;\n`;\nexport const PageHeader = styled.header`\n\tmargin-bottom: 32px;\n\twidth: 100%;\n\tborder-radius: 8px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground-color: unset;\n\tpadding: 16px 0;\n\tbox-sizing: border-box;\n\tmax-height: 150px;\n\theight: 100%;\n\t${devices.phone} {\n\t\toverflow: initial;\n\t\theight: 150px;\n\t\tmargin-bottom: 0;\n\t}\n\timg {\n\t\tborder-radius: 4px;\n\t\twidth: auto !important;\n\t\theight: auto;\n\t\tmax-width: 100%;\n\t\tmax-height: 100%;\n\t\t${devices.phone} {\n\t\t\twidth: 100%;\n\t\t\tpadding: 16px;\n\t\t}\n\t}\n`;\n\nexport const PageContent = styled.div`\n\twidth: 100%;\n`;\nexport const StatusMessage = styled.div<IStatusMessage>`\n\twidth: 100%;\n\tbackground: ${({ theme, error }) => (error ? theme.color.wePeep : theme.color.iceberg)};\n\tborder-radius: 4px;\n\tpadding: 11px;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tfont-weight: 400;\n\tfont-size: 14px;\n\tcolor: ${({ theme, error }) => (error ? theme.color.cerise : theme.color.gossamer)};\n\tmargin-bottom: 16px;\n`;\n","const breakpoints = {\n\tmobileS: '320px',\n\tmobileL: '480px',\n\ttabletMinus: '767px',\n\ttabletH: '781px',\n\ttablet: '768px',\n\ttabletL: '992px',\n\tlaptop: '1024px',\n\tlaptopH: '1080px',\n\tlaptopXS: '1110px',\n\tlaptopS: '1280px',\n\tlaptopM: '1366px',\n\tlaptopL: '1440px',\n\tlaptopXL: '1540px',\n\tdesktopS: '1800px',\n\tdesktop: '2560px'\n};\nexport const devices = {\n\tfold: `@media only screen and (max-width: ${breakpoints.mobileS})`,\n\tphoneXs: `@media only screen and (max-width: ${breakpoints.mobileL})`,\n\tphone: `@media only screen and (max-width: ${breakpoints.tabletMinus})`,\n\tphoneLandscape: `@media only screen and (max-width: ${breakpoints.mobileL})`,\n\ttabletOnly: `@media only screen and (min-width: ${breakpoints.tablet}) and (max-width: ${breakpoints.tabletL})`,\n\tiPadProLandscape: `@media only screen and (height: ${breakpoints.laptop}) and (width: ${breakpoints.laptopM})`,\n\tiPadProPortrait: `@media only screen and (max-width: ${breakpoints.laptop}) and (max-height: ${breakpoints.laptopM})`,\n\tiPad: `@media only screen and (max-width: ${breakpoints.laptop}) and (max-height: ${breakpoints.tablet}) `,\n\ttablet: `@media only screen and (max-width: ${breakpoints.tabletL}) `,\n\tdesktop: `@media only screen and (min-height: ${breakpoints.tabletH} ) and (min-width: ${breakpoints.laptopS} ) `,\n\tlaptop: `@media only screen and (max-width: ${breakpoints.laptopS}) `,\n\tlaptopRegularScreenWidth: `@media only screen (max-height: ${breakpoints.laptopXS}) and and (max-width: ${breakpoints.laptopXL}) `,\n\tbigDesktop: `@media only screen and (min-width: ${breakpoints.desktopS}) and (min-height: ${breakpoints.laptopH})) `\n};\n","import styled from 'styled-components';\n\ninterface IInputStyled {\n\tfilled: boolean;\n\terror: boolean;\n}\n\nexport const PageConnectFooterControl = styled.div`\n\tposition: absolute;\n\tbottom: 80px;\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tleft: 0;\n\tflex-direction: column;\n\tbox-sizing: border-box;\n\tpadding: 16px;\n`;\nexport const PageConnectFooterText = styled.p`\n\tcolor: ${({ theme }) => theme.color.abbey};\n\tfont-size: 12px;\n`;\n\nexport const InputStyled = styled.input<IInputStyled>`\n\twidth: 100%;\n\theight: 64px;\n\tbackground: ${({ theme, filled, error }) => (error ? theme.color.wePeep : filled ? theme.color.linkWater : theme.color.porcelainSecond)};\n\tcolor: ${({ theme, error }) => (error ? theme.color.cerise : theme.color.endeavour)};\n\tborder-radius: 2px;\n\ttext-align: center;\n\tfont-size: 32px;\n\tborder: none;\n\tbox-shadow: none;\n\tletter-spacing: 20px;\n\ttext-indent: 20px;\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${({ theme }) => theme.color.endeavour};\n\t\toutline-offset: 2px;\n\t}\n`;\n\nexport const InputContainer = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n`;\nexport const InlineButton = styled.button<{ disabled: boolean }>`\n\tcolor: ${({ theme, disabled }) => disabled? theme.color.casper : theme.color.endeavour};\n\tdisplay: inline;\n\tcursor: ${({ disabled }) => disabled? 'not-allowed': 'pointer'};\n\tbackground: none;\n\tborder: none;\n\tpadding: 0;\n\tfont-size: inherit;\n\tfont-family: inherit;\n\ttext-decoration: none;\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${({ theme }) => theme.color.endeavour};\n\t\toutline-offset: 2px;\n\t\tborder-radius: 2px;\n\t}\n`;\n","import styled from 'styled-components';\n\nexport const InnerContainer = styled.div`\n\twidth: 100%;\n`;\n","import styled from 'styled-components';\nimport { IconWrapper } from '../ui';\nimport { PageContent, PageMainContainer } from './basic';\n\ninterface IStatusScreenCircleContainer {\n\ttype: 'success' | 'warning' | 'error';\n}\n\nexport const PageStatusScreenMain = styled(PageMainContainer)`\n\theight: 100%;\n`;\nexport const PageStatusScreenContent = styled(PageContent)`\n\theight: inherit;\n\twidth: 100%;\n\talign-items: center;\n\tjustify-content: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\ttext-align: center;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n`;\nexport const StatusScreenCircleContainer = styled.div<IStatusScreenCircleContainer>`\n\twidth: 64px;\n\theight: 64px;\n\tbackground-color: ${({ theme, type }) => {\n\t\tswitch (type) {\n\t\t\tcase 'success':\n\t\t\t\treturn theme.color.emerald;\n\t\t\tcase 'error':\n\t\t\t\treturn theme.color.sunsetOrange;\n\t\t\tcase 'warning':\n\t\t\t\treturn theme.color.hokeyPokey;\n\t\t\tdefault:\n\t\t\t\treturn theme.color.porcelain;\n\t\t}\n\t}};\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-bottom: 24px;\n\n\t${IconWrapper} {\n\t\twidth: 40px;\n\t\tcolor: ${({ theme }) => theme.color.white};\n\t}\n`;\nexport const StatusScreenErrorCode = styled.span`\n\tfont-size: 12px;\n\tmargin-top: 16px;\n\tcolor: ${({ theme }) => theme.color.osloGrey};\n`;\nexport const StatusScreenTitle = styled.h1`\n\tfont-size: 16px;\n\tfont-weight: normal;\n\tmargin: 0 0 4px 0;\n`;\nexport const PageSuccessImgContainer = styled.div`\n\tmargin-bottom: 24px;\n\twidth: 64px;\n\theight: 64px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: 50%;\n\toverflow: hidden;\n\timg {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n`;\n","import styled from 'styled-components';\nimport { devices } from './breakpoints';\n\nexport const Root = styled.div`\n\twhite-space: pre-line;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: fixed;\n\ttop: 50%;\n\tleft: 0;\n\tright: 0;\n\ttransform: translate(0, -50%);\n\theight: 100%;\n\tmax-height: 812px;\n\n\ta {\n\t\ttext-decoration: none;\n\t\tcolor: ${({ theme }) => theme.color.endeavour};\n\t}\n\th1 {\n\t\tfont-weight: normal;\n\t\t${({ theme }) => theme.mixin.title()};\n\t\tstrong {\n\t\t\t${({ theme }) => theme.mixin.title()};\n\t\t}\n\t\t&:focus,\n\t\t&:focus-visible {\n\t\t\toutline: none;\n\t\t}\n\t}\n\t${devices.phone} {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-height: none;\n\t\tpadding: 0;\n\t}\n`;\nexport const AppContainer = styled.div`\n\twidth: 539px;\n\tbackground-color: ${({ theme }) => theme.color.white};\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tpadding: 16px;\n\tbox-sizing: border-box;\n\theight: 100%;\n\n\t${devices.phone} {\n\t\twidth: 100%;\n\t}\n\n\t&::-webkit-scrollbar {\n\t\tdisplay: none;\n\t}\n\t-ms-overflow-style: none;\n\tscrollbar-width: none;\n\toverflow-y: scroll;\n`;\nexport const AppContainerWrapper = styled.div`\n\theight: 100%;\n\tposition: relative;\n\tborder: 1px solid ${({ theme }) => theme.color.porcelain};\n\tborder-radius: 8px;\n\toverflow: hidden;\n\t${devices.phone} {\n\t\twidth: 100%;\n\t\tborder-radius: unset;\n\t\tborder: unset;\n\t}\n`;\nexport const AppContainerPage = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n`;\n","import { createGlobalStyle } from 'styled-components';\nimport MarkW1GBook from '../fonts/Mark-W1G-Book.otf';\nimport MarkW1GBold from '../fonts/Mark-W1G-Bold.otf';\n\nexport default createGlobalStyle`\n \n@font-face {\n font-family: MarkW1G;\n src: url(${MarkW1GBook}) format('opentype');\n }\n @font-face {\n font-family: MarkW1G;\n font-weight: bold;\n src: url(${MarkW1GBold}) format('opentype');\n }\n\nbody{\n font-family: 'MarkW1G', sans-serif;\n}\nbody * {\n font-family: 'MarkW1G', sans-serif;\n font-size: 14px;\n font-style: normal;\n}\n\n.visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n`;\n","import React, { ReactElement, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '../ui';\nimport { PageControlsSection, PageMainContainer, PageShadow, PageShadowWrapper, PageStyled, PageSubtitle } from '../../styledComponents';\nimport { ButtonType } from '../ui/Button';\n\ninterface IProps {\n\tbuttons?: IButton[];\n\tchildren: ReactElement;\n\ttitle?: string | ReactElement;\n\tsubTitle?: string;\n\tshadow: boolean;\n\tonBack?: () => void;\n\tbackDisabled?: boolean;\n}\n\nexport interface IButton {\n\tlabel: string;\n\tonClick: () => void;\n\tbuttonType?: ButtonType;\n\tdisabled?: boolean;\n}\n\nfunction Page(props: IProps) {\n\tconst { buttons, children, title, subTitle, shadow, onBack, backDisabled } = props;\n\tconst { t } = useTranslation();\n\tconst headingRef = useRef<HTMLHeadingElement>(null);\n\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\theadingRef.current?.focus();\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t<PageStyled buttonCount={buttons?.length}>\n\t\t\t{onBack && <Button onClick={onBack} label={t('back')} buttonType=\"back\" disabled={backDisabled}/>}\n\t\t\t{title && <h1 ref={headingRef} tabIndex={-1}>{title}</h1>}\n\t\t\t{subTitle && <PageSubtitle as=\"p\">{subTitle}</PageSubtitle>}\n\t\t\t<main>\n\t\t\t\t<PageMainContainer>{children}</PageMainContainer>\n\t\t\t</main>\n\t\t\t<PageControlsSection notEmpty={(buttons?.length ?? 0) > 0}>\n\t\t\t\t<PageShadowWrapper>\n\t\t\t\t\t{shadow && <PageShadow />}\n\t\t\t\t\t{buttons?.map((b, index) => (\n\t\t\t\t\t\t<Button key={index} onClick={b.onClick} label={b.label} buttonType={b.buttonType} disabled={b.disabled} />\n\t\t\t\t\t))}\n\t\t\t\t</PageShadowWrapper>\n\t\t\t</PageControlsSection>\n\t\t</PageStyled>\n\t);\n}\n\nexport default Page;\n","import React from 'react';\nimport { ButtonLabel, ButtonStyled } from '../../styledComponents';\nimport back from '../../images/back.svg';\n\nexport type ButtonType = 'secondary' | 'tiny' | 'link' | 'back';\n\ninterface Props {\n\tonClick: () => void;\n\tlabel: string;\n\tbuttonType?: ButtonType;\n\tdisabled?: boolean;\n}\n\nfunction Button(props: Props) {\n\tconst { onClick, label, buttonType, disabled } = props;\n\treturn (\n\t\t<ButtonStyled type=\"button\" buttonType={buttonType} disabled={disabled || false} onClick={onClick}>\n\t\t\t{buttonType === 'back' && <img src={back} alt=\"\" />}\n\t\t\t<ButtonLabel> {label || ''}</ButtonLabel>\n\t\t</ButtonStyled>\n\t);\n}\n\nexport default Button;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n\tPageControlsSection,\n\tPageShadowWrapper,\n\tPageStatusScreenContent,\n\tPageStatusScreenMain,\n\tPageStyled,\n\tStatusScreenCircleContainer,\n\tStatusScreenErrorCode,\n\tStatusScreenTitle\n} from '../../styledComponents';\nimport Icon from '../ui/icon';\nimport Page from './Page';\nimport err from '../../images/error.svg';\n\ninterface IProps {\n\tmessageCode?: string;\n}\n\nfunction NotFound({ messageCode = '404' }: IProps) {\n\tconst { t } = useTranslation();\n\treturn (\n\t\t<Page shadow={false}>\n\t\t\t<PageStyled>\n\t\t\t\t<PageStatusScreenMain>\n\t\t\t\t\t<PageStyled>\n\t\t\t\t\t\t<PageStatusScreenContent>\n\t\t\t\t\t\t\t<StatusScreenCircleContainer type=\"warning\">\n\t\t\t\t\t\t\t\t<Icon img={err} rotating={false} />\n\t\t\t\t\t\t\t</StatusScreenCircleContainer>\n\t\t\t\t\t\t\t<StatusScreenTitle>{t('page_not_found')}</StatusScreenTitle>\n\t\t\t\t\t\t\t<StatusScreenErrorCode>{`${t('error')}: ${messageCode}`}</StatusScreenErrorCode>\n\t\t\t\t\t\t</PageStatusScreenContent>\n\t\t\t\t\t</PageStyled>\n\t\t\t\t</PageStatusScreenMain>\n\t\t\t\t<PageControlsSection notEmpty={false}>\n\t\t\t\t\t<PageShadowWrapper />\n\t\t\t\t</PageControlsSection>\n\t\t\t</PageStyled>\n\t\t</Page>\n\t);\n}\n\nexport default NotFound;\n","import React from 'react';\nimport { IconWrapper } from '../../styledComponents';\n\ninterface IProps {\n\trotating: boolean;\n\timg: string;\n\talt?: string;\n}\n\nfunction Icon(props: IProps) {\n\tconst { rotating, img, alt = '' } = props;\n\treturn (\n\t\t<IconWrapper rotating={rotating}>\n\t\t\t<img src={img} alt={alt} />\n\t\t</IconWrapper>\n\t);\n}\n\nexport default Icon;\n","import React, {useCallback, useEffect, useState} from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport Page, { IButton } from './Page';\nimport { H4Styled, Spacer, InnerContainer } from '../../styledComponents';\nimport { authUser } from '../../actions/actions';\nimport { LoadingModal } from '../modals';\nimport {handleUserKeyPress} from \"../../helpers\";\n\ninterface IProps {\n\tonContinue: () => void;\n\tshowErrorScreen: (code:string) => void;\n\tshadow: boolean;\n\tappName: string;\n\tauthRequestId?: string;\n\tsmsSent:boolean\n\tsetSmsSent: (code: boolean) => void;\n\ttest?: boolean;\n}\n\nfunction StartScreen(props: IProps) {\n\tconst { onContinue, appName, shadow, authRequestId, showErrorScreen, smsSent, setSmsSent, test } = props;\n\tconst [loading, setLoading] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst handleContinue = useCallback(async () => {\n\t\tsetLoading(true);\n\t\tif(authRequestId && !smsSent) {\n\t\t\tconst response = await authUser({authRequestId, test});\n\t\t\tif (response?.ok) {\n\t\t\t\tsetSmsSent(true);\n\t\t\t\tsetLoading(false);\n\t\t\t\tonContinue();\n\t\t\t} else {\n\t\t\t\tshowErrorScreen(response?.statusCode.toString())\n\t\t\t}\n\t\t} else if(smsSent) {\n\t\t\tsetLoading(false);\n\t\t\tonContinue();\n\t\t}\n\t}, [authRequestId, smsSent, test, onContinue, showErrorScreen, setSmsSent]);\n\n\tuseEffect(() => {\n\t\tconst handler = (e: KeyboardEvent) => handleUserKeyPress(e, handleContinue);\n\t\twindow.addEventListener('keydown', handler);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('keydown', handler);\n\t\t};\n\t}, [handleContinue]);\n\tconst buttons: IButton[] = [\n\t\t{\n\t\t\tlabel: t('continue'),\n\t\t\tonClick: () => handleContinue()\n\t\t}\n\t];\n\treturn (\n\t\t<Page\n\t\t\ttitle={\n\t\t\t\tappName ? (\n\t\t\t\t\t<Trans t={t} i18nKey=\"use_basiq_to_connect_your_accounts\" values={{ name: appName }} components={{ bold: <strong /> }} />\n\t\t\t\t) : (\n\t\t\t\t\t<Trans t={t} i18nKey=\"we_use_basiq_to_connect_your_accounts\" components={{ bold: <strong /> }} />\n\t\t\t\t)\n\t\t\t}\n\t\t\tshadow={shadow}\n\t\t\tbuttons={buttons}\n\t\t>\n\t\t\t<InnerContainer>\n\t\t\t\t<Spacer />\n\t\t\t\t<section aria-labelledby=\"steps-heading\">\n\t\t\t\t\t<H4Styled id=\"steps-heading\">{t('to_do_this_we_will_ask_you_to')}</H4Styled>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<Trans t={t} i18nKey=\"verify_your_mobile_number_bold\" components={{ bold: <strong /> }} />\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<Trans t={t} i18nKey=\"consent_to_share_your_data_with_us\" components={{ bold: <strong /> }} />\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<Trans t={t} i18nKey=\"share_your_financial_data\" components={{ bold: <strong /> }} />\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</section>\n\t\t\t\t<section aria-labelledby=\"info-heading\">\n\t\t\t\t\t<H4Styled id=\"info-heading\">{t('things_you_should_know')}</H4Styled>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>{t('we_dont_share_your_data_without_your_consent')}</li>\n\t\t\t\t\t\t<li>{t('you_can_easily_stop_sharing_your_data_at_any_time')}</li>\n\t\t\t\t\t\t<li>{t('you_can_choose_to_delete_shared_data_when_we_no_longer_need_it')}</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</section>\n\t\t\t\t<Spacer />\n\t\t\t\t<p>\n\t\t\t\t\t{t('by_proceeding_you_agree_to_the')}{' '}\n\t\t\t\t\t<a href=\"https://docs.basiq.io/en/articles/415750-basiq-terms-of-service\" rel=\"noreferrer noopener\" target=\"_blank\">{t('terms_of_service')}</a> {t('and')}{' '}\n\t\t\t\t\t<a href=\"https://docs.basiq.io/en/articles/382581-basiq-privacy-policy\" rel=\"noreferrer noopener\" target=\"_blank\">{t('privacy_notice')}</a>\n\t\t\t\t</p>\n\t\t\t\t<LoadingModal isOpen={loading} />\n\t\t\t</InnerContainer>\n\t\t</Page>\n\t);\n}\n\nexport default StartScreen;\n","import {DASHBOARD_API_URL, DASHBOARD_API_URL_TEST} from '../helpers';\n\nexport const verifySmsCode = async ({authRequestId, smsCode, test}:{authRequestId: string, smsCode: string, test?:boolean}) => {\n\tconst body = {\n\t\t'sms-code': smsCode\n\t};\n\n\tconst reqData = {\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAuthorization: `Basic SMS_CODE:${authRequestId}`\n\t\t},\n\t\tmethod: 'POST',\n\t\tbody: JSON.stringify(body)\n\t};\n\n\tconst result = await fetch(`${test ? DASHBOARD_API_URL_TEST : DASHBOARD_API_URL}client_auth/${authRequestId}/token`, reqData);\n\n\tif (result.status >= 200 && result.status < 300) {\n\t\tconst json = result.status === 204 ? null : await result.json();\n\t\treturn {\n\t\t\tdata: json,\n\t\t\theaders: result.headers,\n\t\t\tstatusCode: result.status,\n\t\t\tok:true\n\t\t};\n\t}\n\tif (result.status >= 400) {\n\t\treturn {\n\t\t\theaders: result.headers,\n\t\t\tstatusCode: result.status,\n\t\t\terror: result.statusText || 'Something went wrong',\n\t\t\tok:false\n\t\t};\n\t}\n\treturn {\n\t\theaders: result.headers,\n\t\tstatusCode: result.status,\n\t\terror: result.statusText || 'Something went wrong',\n\t\tok:false\n\t};\n};\n\nexport const authUser = async ({authRequestId, method, test}:{authRequestId: string, method?: 'POST' | 'GET', test?:boolean}) => {\n\tconst reqData = {\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json'\n\t\t},\n\t\tmethod: method || 'POST'\n\t};\n\ttry{\n\t\tconst result = await fetch(`${test ? DASHBOARD_API_URL_TEST : DASHBOARD_API_URL}client_auth/${authRequestId}`, reqData);\n\n\t\tif (result.status >= 200 && result.status < 300) {\n\t\t\tconst json = result.status === 204 ? null : await result.json();\n\t\t\treturn {\n\t\t\t\tdata: json,\n\t\t\t\theaders: result.headers,\n\t\t\t\tstatusCode: result.status,\n\t\t\t\tok: true\n\t\t\t};\n\t\t}\n\t\tif (result.status >= 400) {\n\t\t\tconst json = [403, 404].includes(result.status) ? null : await result.json();\n\t\t\treturn {\n\t\t\t\theaders: result.headers,\n\t\t\t\tstatusCode: result.status,\n\t\t\t\terror: json?.message || result.statusText || 'Something went wrong',\n\t\t\t\tok: false\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\theaders: result.headers,\n\t\t\tstatusCode: result.status,\n\t\t\terror: result.statusText || 'Something went wrong',\n\t\t\tok: false\n\t\t};\n\t}catch (e){\n\t\treturn {\n\t\t\tstatusCode: 500,\n\t\t\terror: 'Something went wrong',\n\t\t\tok:false\n\t\t};\n\t}\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Modal from '../ui/Modal';\nimport { LoadingModalStyled, LoadingModalText } from '../../styledComponents';\nimport Icon from '../ui/icon';\nimport loadingIndicator from '../../images/loading_indicator.svg';\n\ninterface IProps {\n\tisOpen: boolean;\n\tdisableTransparency?: boolean;\n\tloadingText?: string;\n}\n\nfunction LoadingModal(props: IProps) {\n\tconst { isOpen, disableTransparency, loadingText } = props;\n\tconst { t } = useTranslation();\n\tconst label = loadingText || t('loading');\n\n\treturn (\n\t\t<Modal isOpen={isOpen} disableTransparency={!!disableTransparency} role=\"status\" ariaLabel={label} ariaLive=\"polite\">\n\t\t\t<LoadingModalStyled disableTransparency={!!disableTransparency}>\n\t\t\t\t<Icon img={loadingIndicator} rotating alt=\"\" />\n\t\t\t\t<LoadingModalText aria-hidden=\"true\">{label}</LoadingModalText>\n\t\t\t</LoadingModalStyled>\n\t\t</Modal>\n\t);\n}\n\nexport default LoadingModal;\n","import React, { ReactElement, SyntheticEvent, useEffect, useRef } from 'react';\nimport { ModalStyled } from '../../styledComponents';\n\ninterface IProps {\n\tchildren: ReactElement;\n\tonClose?: () => void;\n\tisOpen: boolean;\n\tdisableTransparency: boolean;\n\trole?: string;\n\tariaLabel?: string;\n\tariaLive?: 'polite' | 'assertive' | 'off';\n}\n\nfunction Modal(props: IProps) {\n\tconst { children, onClose, isOpen, disableTransparency, role = 'dialog', ariaLabel, ariaLive } = props;\n\tconst modalRef = useRef<HTMLDivElement>(null);\n\tconst previousFocusRef = useRef<HTMLElement | null>(null);\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\tpreviousFocusRef.current = document.activeElement as HTMLElement;\n\t\t\tmodalRef.current?.focus();\n\t\t} else {\n\t\t\tpreviousFocusRef.current?.focus();\n\t\t\tpreviousFocusRef.current = null;\n\t\t}\n\t}, [isOpen]);\n\n\tconst handleOutsideClick = (e: SyntheticEvent<HTMLElement>) => {\n\t\tif (onClose && (e.target as HTMLElement).id === 'ui-modal') {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (e.key === 'Escape' && onClose) {\n\t\t\te.stopPropagation();\n\t\t\tonClose();\n\t\t\treturn;\n\t\t}\n\t\tif (!modalRef.current) return;\n\t\tconst focusable = modalRef.current.querySelectorAll<HTMLElement>(\n\t\t\t'a[href], button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\t\t);\n\t\tif (focusable.length === 0) {\n\t\t\tif (e.key === 'Tab') e.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tconst first = focusable[0];\n\t\tconst last = focusable[focusable.length - 1];\n\t\tif (e.key === 'Tab') {\n\t\t\tif (e.shiftKey && document.activeElement === first) {\n\t\t\t\te.preventDefault();\n\t\t\t\tlast.focus();\n\t\t\t} else if (!e.shiftKey && document.activeElement === last) {\n\t\t\t\te.preventDefault();\n\t\t\t\tfirst.focus();\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{isOpen ? (\n\t\t\t\t<ModalStyled\n\t\t\t\t\tid=\"ui-modal\"\n\t\t\t\t\tref={modalRef}\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\tdisableTransparency={disableTransparency}\n\t\t\t\t\tonClick={handleOutsideClick}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\trole={role}\n\t\t\t\t\taria-modal={role === 'dialog' ? true : undefined}\n\t\t\t\t\taria-label={ariaLabel}\n\t\t\t\t\taria-live={ariaLive}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</ModalStyled>\n\t\t\t) : null}\n\t\t</>\n\t);\n}\n\nexport default Modal;\n","import React, {ChangeEvent, useCallback, useEffect, useRef, useState} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Page, { IButton } from './Page';\nimport { InlineButton, InputContainer, InputStyled, PageConnectFooterControl, PageConnectFooterText, StatusMessage } from '../../styledComponents';\nimport { InnerContainer } from '../../styledComponents';\nimport { LoadingModal } from '../modals';\nimport { authUser, verifySmsCode } from '../../actions/actions';\nimport {buildRedirectUrl} from \"../../helpers\";\n\ninterface IProps {\n\tshadow: boolean;\n\tonBack: () => void;\n\tnumber: string;\n\tqueryString: string;\n\tauthRequestId: string;\n\ttest?:boolean;\n}\n\nfunction AuthScreen({ onBack, number, authRequestId, shadow, test, queryString }: IProps) {\n\tconst { t } = useTranslation();\n\tconst [error, setError] = useState('');\n\tconst [smsCode, setSmsCode] = useState('');\n\tconst [resend, setResend] = useState(false);\n\tconst [resendLoading, setResendLoading] = useState(false);\n\tconst [loading, setLoading] = useState(false);\n\tconst [tooManyAttempts, setTooManyAttempts] = useState(false);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\n\tuseEffect(() => {\n\t\tif (error) {\n\t\t\tinputRef.current?.focus();\n\t\t}\n\t}, [error]);\n\n\tconst handleCodeApply = useCallback(\n\t\t\tasync (e?:React.KeyboardEvent<HTMLInputElement>) => {\n\t\t\t\tif(smsCode.length===6 && error.length===0 && (!e || e?.key === 'Enter')){\n\t\t\t\t\tsetLoading(true);\n\t\t\t\t\tconst response = await verifySmsCode({authRequestId, smsCode, test});\n\t\t\t\t\tif (response?.data?.access_token) {\n\t\t\t\t\t\twindow.open(buildRedirectUrl(response.data.access_token, queryString), \"_self\");\n\t\t\t\t\t} else if (response?.statusCode === 204) {\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetTooManyAttempts(true);\n\t\t\t\t\t\tsetError(t('too_many_attempts'));\n\t\t\t\t\t } else if (response?.error) {\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetError(t('this_code_doesnt_appear_to_be_valid'));\n\t\t\t\t\t }\n\n\t\t\t\t}\n\t\t\t},\n\t\t[smsCode, error, authRequestId, queryString, test]\n\t);\n\tconst buttons: IButton[] = [\n\t\t{\n\t\t\tlabel: t('continue'),\n\t\t\tonClick: () => handleCodeApply(),\n\t\t\tdisabled: smsCode.length<6 || !!error\n\t\t}\n\t];\n\n\tconst handleResend = async () => {\n\t\tsetError('');\n\t\tsetSmsCode('');\n\t\tsetResend(false);\n\t\tsetResendLoading(true);\n\t\tconst response = await authUser({authRequestId, test});\n\t\tsetResendLoading(false);\n\t\tif (response.error) {\n\t\t\tsetError(t('failed_to_send_sms'));\n\t\t} else {\n\t\t\tsetResend(true);\n\t\t}\n\t};\n\tconst handleInput = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tsetError('');\n\t\tsetResend(false);\n\t\tif(/^([0-9]+)$/.test(e.target.value) || e.target.value===''){\n\t\t\tsetSmsCode(e.target.value);\n\t\t}\n\t};\n\n\tconst inputId = 'sms-code-input';\n\tconst errorId = 'sms-code-error';\n\tconst statusId = 'sms-code-status';\n\tconst describedBy = [error ? errorId : '', resend ? statusId : ''].filter(Boolean).join(' ') || undefined;\n\n\treturn (\n\t\t<Page\n\t\t\ttitle={t('verify_your_mobile_number')}\n\t\t\tsubTitle={t('please_enter_the_sms_code_sent_to_your_mobile_number', { number })}\n\t\t\tshadow={shadow}\n\t\t\tbuttons={buttons}\n\t\t\tonBack={onBack}\n\t\t\tbackDisabled={tooManyAttempts}\n\t\t>\n\t\t\t<InnerContainer>\n\t\t\t\t<InputContainer>\n\t\t\t\t\t<label htmlFor={inputId} className=\"visually-hidden\">\n\t\t\t\t\t\t{t('sms_code_label')}\n\t\t\t\t\t</label>\n\t\t\t\t\t<InputStyled\n\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\tpattern=\"\\d{6}\"\n\t\t\t\t\t\tinputMode=\"numeric\"\n\t\t\t\t\t\tautoComplete=\"one-time-code\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tmaxLength={6}\n\t\t\t\t\t\tonChange={handleInput}\n\t\t\t\t\t\tvalue={smsCode}\n\t\t\t\t\t\tfilled={smsCode.length === 6}\n\t\t\t\t\t\terror={tooManyAttempts || !!error}\n\t\t\t\t\t\tdisabled={tooManyAttempts}\n\t\t\t\t\t\tonKeyDown={handleCodeApply}\n\t\t\t\t\t\taria-required=\"true\"\n\t\t\t\t\t\taria-invalid={tooManyAttempts || !!error}\n\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t/>\n\t\t\t\t</InputContainer>\n\t\t\t\t<PageConnectFooterControl>\n\t\t\t\t\t{resend && (\n\t\t\t\t\t\t<StatusMessage id={statusId} role=\"status\" aria-live=\"polite\">\n\t\t\t\t\t\t\t{t('new_sms_code_has_been_sent')}\n\t\t\t\t\t\t</StatusMessage>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!error && (\n\t\t\t\t\t\t<StatusMessage id={errorId} error role=\"alert\" aria-live=\"assertive\">\n\t\t\t\t\t\t\t{error}\n\t\t\t\t\t\t</StatusMessage>\n\t\t\t\t\t)}\n\t\t\t\t\t<PageConnectFooterText>\n\t\t\t\t\t\t{t('didnt_receive_the_code')}{' '}\n\t\t\t\t\t\t<InlineButton\n\t\t\t\t\t\t\tdisabled={tooManyAttempts || resendLoading}\n\t\t\t\t\t\t\tonClick={() => !tooManyAttempts && !resendLoading && handleResend()}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-busy={resendLoading}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('resend_sms')}\n\t\t\t\t\t\t</InlineButton>\n\t\t\t\t\t</PageConnectFooterText>\n\t\t\t\t</PageConnectFooterControl>\n\t\t\t\t<LoadingModal isOpen={loading} />\n\t\t\t</InnerContainer>\n\t\t</Page>\n\t);\n}\n\nexport default AuthScreen;\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\nimport translationEN from './en/translation.json';\n\nexport const defaultNS = 'ns1';\n\n// the translations\nexport const resources = {\n\ten: {\n\t\tns1: translationEN\n\t}\n} as const;\n\ni18n.use(initReactI18next) // passes i18n down to react-i18next\n\t.init({\n\t\tresources,\n\t\tlng: 'en',\n\t\tns: ['ns1'],\n\t\tinterpolation: {\n\t\t\tescapeValue: false, // react already safes from xss\n\t\t\tprefix: '${',\n\t\t\tsuffix: '}'\n\t\t}\n\t});\n\nexport default i18n;\n","{\n\t\"back\": \"Back\",\n\t\"error\": \"Error\",\n\t\"loading\": \"Loading\",\n\t\"continue\": \"Continue\",\n\t\"to_do_this_we_will_ask_you_to\": \"To do this we will ask you to\",\n\t\"verify_your_mobile_number_bold\": \"<strong>Verify</strong> your mobile number\",\n\t\"verify_your_mobile_number\": \"Verify your mobile number\",\n\t\"consent_to_share_your_data_with_us\": \"<strong>Consent</strong> to share your data with us\",\n\t\"share_your_financial_data\": \"<strong>Share</strong> your financial data\",\n\t\"things_you_should_know\": \"Things you should know\",\n\t\"we_dont_share_your_data_without_your_consent\": \"We don’t share your data without your consent\",\n\t\"you_can_easily_stop_sharing_your_data_at_any_time\": \"You can easily stop sharing your data at any time\",\n\t\"you_can_choose_to_delete_shared_data_when_we_no_longer_need_it\": \"You can choose to delete shared data when we no longer need it\",\n\t\"by_proceeding_you_agree_to_the\": \"By proceeding, you agree to the\",\n\t\"terms_of_service\": \"Terms of service\",\n\t\"privacy_notice\": \"Privacy notice\",\n\t\"and\": \"and\",\n\t\"use_basiq_to_connect_your_accounts\": \"${name} use <strong>Basiq</strong> to connect your accounts\",\n\t\"we_use_basiq_to_connect_your_accounts\": \"We use <strong>Basiq</strong> to connect your accounts\",\n\t\"please_enter_the_sms_code_sent_to_your_mobile_number\": \"Please enter the SMS code sent to your mobile number (ending in xxx${number}).\",\n\t\"new_sms_code_has_been_sent\": \"New SMS code has been sent.\",\n\t\"this_code_doesnt_appear_to_be_valid\": \"This code doesn't appear to be valid.\",\n\t\"didnt_receive_the_code\": \"Didn’t receive the code?\",\n\t\"resend_sms\": \"Resend SMS\",\n\t\"failed_to_send_sms\": \"Failed to send SMS.\",\n\t\"page_not_found\": \"Page not found\",\n\t\"missing_authentication_token\": \"Missing Authentication Token\",\n\t\"too_many_attempts\": \"Too many attempts. Please use a new link to try again.\",\n\t\"sms_code_label\": \"SMS verification code\"\n}\n"],"mappings":"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","names":["import_react","import_styled_components","import_react","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","styled","import_styled_components","styled","theme","import_styled_components","styled","theme","import_styled_components","import_react","import_react","React","_a","React","import_react","import_react_i18next","import_react","React","React","import_react","import_react_i18next","import_react","import_react_i18next","import_react","React","React","React","import_react","import_react_i18next","React","React","import_react_i18next","i18n","React"]}