{"version":3,"file":"js/app.xxxxxxxxxx.js","mappings":"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","sources":["webpack://@token-io/lib-webpack/webpack/runtime/chunk loaded","webpack://@token-io/lib-webpack/../../../src/SimpleHistory.js","webpack://@token-io/lib-webpack/../../../src/components/MenuDrawer/MenuDrawer.js","webpack://@token-io/lib-webpack/../../../src/components/MenuDrawer/index.js","webpack://@token-io/lib-webpack/../lib-web-components/src/Components/Spinner/index.js","webpack://@token-io/lib-webpack/../lib-web-components/assets/spinner-white.svg","webpack://@token-io/lib-webpack/../lib-web-components/assets/spinner.svg","webpack://@token-io/lib-webpack/../../../src/components/Pages/SmallSpinner.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/TextInput.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/Credentials.js","webpack://@token-io/lib-webpack/../../../src/actions/commonActions.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/WebAppSelection.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/index.js","webpack://@token-io/lib-webpack/../../../src/assets/logo-finvertex.png","webpack://@token-io/lib-webpack/../../../src/assets/logo-finvertex-mobile.png","webpack://@token-io/lib-webpack/../../../src/components/Pages/Login.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/Account.js","webpack://@token-io/lib-webpack/../../../src/components/TokenEnablerButton/TokenEnablerButtonV1.js","webpack://@token-io/lib-webpack/../../../src/components/TokenEnablerButton/TokenEnablerButtonV2.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/Unpaired.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/TokenChart.js","webpack://@token-io/lib-webpack/../../../src/assets/iron-logo.png","webpack://@token-io/lib-webpack/../../../src/components/Pages/Transactions.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/AccountItem.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/Paired.js","webpack://@token-io/lib-webpack/../../../src/components/Pages/Error.js","webpack://@token-io/lib-webpack/../../../src/components/App/index.js","webpack://@token-io/lib-webpack/../../../src/config/constants.js","webpack://@token-io/lib-webpack/../../../src/reducers/index.js","webpack://@token-io/lib-webpack/../../../src/main.js","webpack://@token-io/lib-webpack/../../../src/util.js","webpack://@token-io/lib-webpack/webpack/bootstrap","webpack://@token-io/lib-webpack/webpack/runtime/compat get default export","webpack://@token-io/lib-webpack/webpack/runtime/define property getters","webpack://@token-io/lib-webpack/webpack/runtime/global","webpack://@token-io/lib-webpack/webpack/runtime/harmony module decorator","webpack://@token-io/lib-webpack/webpack/runtime/hasOwnProperty shorthand","webpack://@token-io/lib-webpack/webpack/runtime/make namespace object","webpack://@token-io/lib-webpack/webpack/runtime/jsonp chunk loading","webpack://@token-io/lib-webpack/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import React from 'react';\nimport {createBrowserHistory} from 'history';\nimport PropTypes from 'prop-types';\n\nconst history = createBrowserHistory();\nconst HistoryContext = React.createContext(history);\n\nexport const withHistory = Component => function HistoryComponent(props) {\n    return (\n        <HistoryContext.Consumer>\n            {history => <Component {...props} history={history} />}\n        </HistoryContext.Consumer>\n    );\n};\n\nexport const showIfLocation = Component => {\n    class Sub extends React.Component {\n        isPath() {\n            const {path, history} = this.props;\n            return path && path.test(history.location.pathname);\n        }\n        componentDidMount() {\n            const {history} = this.props;\n            this.unlisten = history.listen(() => {\n                this.forceUpdate();\n            });\n        }\n        componentWillUnmount() {\n            this.unlisten();\n        }\n        render() {\n            return this.isPath()\n                ? <Component {...this.props} />\n                : null;\n        }\n    }\n    Sub.propTypes = {\n        path: PropTypes.object,\n        history: PropTypes.object,\n    };\n    return withHistory(Sub);\n};\n\nexport const Link = ({to, ...props}) => (\n    <HistoryContext.Consumer>\n        {history => (<a href={to}\n            onClick={e => {\n                e.preventDefault();\n                history.push(to);\n            }}\n            {...props}\n        />)}\n    </HistoryContext.Consumer>\n);\n\nLink.propTypes = {\n    to: PropTypes.string,\n};\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {CSSTransition, TransitionGroup} from 'react-transition-group';\nimport './MenuDrawer.css';\n\nclass MenuDrawer extends Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            open: false,\n        };\n    }\n    openDrawer() {\n        if (this.state.open) {\n            return;\n        }\n        this.setState({\n            open: true,\n        });\n    }\n    closeDrawer() {\n        if (!this.state.open) {\n            return;\n        }\n        this.setState({\n            open: false,\n        });\n    }\n    render() {\n        const {children, iconColor} = this.props;\n        const drawer = [\n            (this.state.open ? (\n                <CSSTransition\n                    classNames=\"MenuDrawer-transition\"\n                    timeout={{enter: 350, exit: 350}}>\n                    <div key=\"MenuDrawer\" className=\"MenuDrawer-wrapper\">\n                        <div className=\"MenuDrawer-bg\" onClick={e => {\n                            e.preventDefault();\n                            this.closeDrawer();\n                        }} />\n                        <div className=\"MenuDrawer-panel\">\n                            {children}\n                        </div>\n                    </div>\n                </CSSTransition>\n            ) : null),\n        ];\n        return (\n            <div className=\"MenuDrawer\">\n                <div className=\"MenuDrawer-button\">\n                    <a href=\"#\" onClick={e => {\n                        e.preventDefault();\n                        this.openDrawer();\n                    }}>\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\">\n                            <path\n                                fill={iconColor}\n                                d=\"M0 0h17v2H0V0zm0 7h17v2H0V7zm0 7h17v2H0v-2z\" />\n                        </svg>\n                    </a>\n                </div>\n                <TransitionGroup>\n                    {drawer}\n                </TransitionGroup>\n            </div>\n        );\n    }\n}\n\nMenuDrawer.propTypes = {\n    children: PropTypes.node,\n    iconColor: PropTypes.string,\n};\n\nMenuDrawer.defaultProps = {\n    iconColor: '#000',\n};\n\nexport default MenuDrawer;\n","import MenuDrawer from './MenuDrawer';\n\nexport default MenuDrawer;\n","import React, {Fragment} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport style from '../../../css/Spinner.css';\r\nimport classNames from 'classnames/bind';\r\nimport spinner from '../../../assets/spinner.svg';\r\nimport '../../../assets/spinner-big.svg';\r\nimport spinnerWhite from '../../../assets/spinner-white.svg';\r\n\r\nconst cx = classNames.bind(style);\r\n\r\nconst defaults = {\r\n    big: {\r\n        width: 106,\r\n        height: 106,\r\n        viewBox: '0 0 106 106',\r\n        strokeWidth: 10.5,\r\n    },\r\n    small: {\r\n        width: 15,\r\n        height: 15,\r\n        viewBox: '0 0 106 106',\r\n        strokeWidth: 15,\r\n    },\r\n};\r\n\r\nconst SpinnerSVG = ({strokeWidth, color = '#1ea6ed', ...props}) => (\r\n    <svg {...props}>\r\n        <g fill='none' strokeMiterlimit={10} strokeWidth={strokeWidth}>\r\n            <circle cx={53} cy={53} r={45}\r\n                stroke='#e9eaf0'\r\n                strokeDasharray='206 71 0'\r\n                transform='rotate(274 53 53)' />\r\n            <circle cx={53} cy={53} r={45}\r\n                stroke={color}\r\n                strokeDasharray='71 227 0'\r\n                transform='rotate(180 53 53)' />\r\n        </g>\r\n    </svg>\r\n);\r\n\r\nSpinnerSVG.propTypes = {\r\n    strokeWidth: PropTypes.number,\r\n    color: PropTypes.string,\r\n};\r\n\r\nexport const SpinnerBig = ({className, color, message}) => (\r\n    <div className={cx('SpinnerContainer')}>\r\n        {message && (\r\n            <div className={cx('SpinnerMessage')}>\r\n                {message}\r\n            </div>\r\n        )}\r\n        <SpinnerSVG\r\n            className={cx([\r\n                'SpinnerBig__image',\r\n                className,\r\n            ])}\r\n            color={color}\r\n            {...defaults.big} />\r\n    </div>\r\n);\r\n\r\nSpinnerBig.propTypes = {\r\n    className: PropTypes.string,\r\n    message: PropTypes.node,\r\n    color: PropTypes.string,\r\n};\r\n\r\nexport const SpinnerSmall = ({className, color}) => (\r\n    <SpinnerSVG\r\n        className={cx([\r\n            'SpinnerSmall__image',\r\n            className,\r\n        ])}\r\n        color={color}\r\n        {...defaults.small} />\r\n);\r\n\r\nSpinnerSmall.propTypes = {\r\n    className: PropTypes.string,\r\n    color: PropTypes.string,\r\n};\r\n\r\nexport const SpinnerImage = ({className, message, white}) => {\r\n    return (\r\n        <Fragment>\r\n            {message && (\r\n                <div className={cx('SpinnerMessage')}>\r\n                    {message}\r\n                </div>\r\n            )}\r\n            <img className={cx([\r\n                'SpinnerImage',\r\n                className,\r\n            ])} src={white ? spinnerWhite : spinner} />\r\n        </Fragment>\r\n    );\r\n};\r\n\r\nSpinnerImage.propTypes = {\r\n    className: PropTypes.string,\r\n    message: PropTypes.node,\r\n    white: PropTypes.bool,\r\n};\r\n\r\nconst SpinnerWithLockSVG = ({strokeWidth, color = '#1ea6ed', ...props}) => (\r\n    <Fragment>\r\n        <svg {...props}>\r\n            <g fill='none' strokeMiterlimit={10} strokeWidth={strokeWidth}>\r\n                <circle cx={53} cy={53} r={45}\r\n                    stroke='#e9eaf0'\r\n                    strokeDasharray='206 71 0'\r\n                    transform='rotate(274 53 53)' />\r\n                <circle cx={53} cy={53} r={45}\r\n                    stroke={color}\r\n                    strokeDasharray='71 227 0'\r\n                    transform='rotate(180 53 53)' />\r\n            </g>\r\n        </svg>\r\n        <svg width='28' height='42' viewBox='0 0 28 42' fill='none'\r\n            xmlns='http://www.w3.org/2000/svg'>\r\n            <rect x='1' y='17' width='26' height='24' rx='2' stroke='#A5A5AA' strokeWidth='2' />\r\n            <path d='M5 10C5 5.02944 9.02944 1 14 1C18.9706 1 23 5.02944 23 10V17H5V10Z' stroke='#A5A5AA' strokeWidth='2' />\r\n            <path d='M9 10C9 7.23858 11.2386 5 14 5C16.7614 5 19 7.23858 19 10V17H9V10Z' stroke='#A5A5AA' strokeWidth='2' />\r\n            <mask id='path-4-inside-1' fill='white' >\r\n                <path fillRule='evenodd' clipRule='evenodd' d='M17.1786 28.4286C17.6939 27.7553 18 26.9134 18 26C18 23.7909 16.2091 22 14 22C11.7909 22 10 23.7909 10 26C10 26.9134 10.3061 27.7553 10.8214 28.4286L10 35H18L17.1786 28.4286Z' />\r\n            </mask>\r\n            <path d='M17.1786 28.4286L15.5903 27.2132L15.0924 27.8638L15.194 28.6767L17.1786 28.4286ZM10.8214 28.4286L12.806 28.6767L12.9076 27.8638L12.4097 27.2132L10.8214 28.4286ZM10 35L8.01544 34.7519L7.73444 37H10V35ZM18 35V37H20.2656L19.9846 34.7519L18 35ZM16 26C16 26.4589 15.8479 26.8766 15.5903 27.2132L18.7669 29.6441C19.5398 28.634 20 27.3679 20 26H16ZM14 24C15.1046 24 16 24.8954 16 26H20C20 22.6863 17.3137 20 14 20V24ZM12 26C12 24.8954 12.8954 24 14 24V20C10.6863 20 8 22.6863 8 26H12ZM12.4097 27.2132C12.1521 26.8766 12 26.4589 12 26H8C8 27.3679 8.46017 28.634 9.2331 29.6441L12.4097 27.2132ZM11.9846 35.2481L12.806 28.6767L8.83686 28.1806L8.01544 34.7519L11.9846 35.2481ZM18 33H10V37H18V33ZM15.194 28.6767L16.0154 35.2481L19.9846 34.7519L19.1631 28.1806L15.194 28.6767Z' fill='#A5A5AA' mask='url(#path-4-inside-1)' />\r\n        </svg>\r\n    </Fragment>\r\n);\r\n\r\nSpinnerWithLockSVG.propTypes = {\r\n    strokeWidth: PropTypes.number,\r\n    color: PropTypes.string,\r\n};\r\n\r\nexport const SpinnerWithLockBig = ({className, color, message, label = 'You are being redirected'}) => (\r\n    <Fragment>\r\n        {message &&\r\n            <div className={cx('SpinnerContainer')} style={{justifyContent: 'none'}}>\r\n                <div className={cx('SpinnerContainerText')}>\r\n                    <div className={cx('SpinnerContainerLockText')}>\r\n                        {label}\r\n                    </div>\r\n                    <div className={cx('SpinnerMessage SpinnerMessageText')}>\r\n                        {message}\r\n                    </div>\r\n                </div>\r\n                <div className={cx('SpinnerContainer')}>\r\n                    <SpinnerWithLockSVG\r\n                        className={cx([\r\n                            'SpinnerBig__image',\r\n                            className,\r\n                        ])}\r\n                        color={color}\r\n                        {...defaults.big} />\r\n                </div>\r\n            </div>\r\n            ||\r\n            <div className={cx('SpinnerContainer')}>\r\n                <SpinnerWithLockSVG\r\n                    className={cx([\r\n                        'SpinnerBig__image',\r\n                        className,\r\n                    ])}\r\n                    color={color}\r\n                    {...defaults.big} />\r\n            </div>\r\n        }\r\n    </Fragment>\r\n);\r\n\r\nSpinnerWithLockBig.propTypes = {\r\n    className: PropTypes.string,\r\n    message: PropTypes.node,\r\n    color: PropTypes.string,\r\n    label: PropTypes.node,\r\n};\r\n\r\nconst Spinner = ({message}) => (\r\n    <div className={cx('SpinnerContainer')}>\r\n        <SpinnerImage message={message} />\r\n    </div>\r\n);\r\n\r\nSpinner.propTypes = {\r\n    message: PropTypes.node,\r\n};\r\n\r\nexport default Spinner;\r\n","export default \"/assets/spinner-white.svg\";","export default \"/assets/spinner.svg\";","import React from 'react';\nimport style from './SmallSpinner.css';\nimport { SpinnerSmall } from '@token-io/lib-web-components/src/Components/Spinner';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\n\nconst cx = classNames.bind(style);\n\nexport const SmallSpinner = ({className, color}) => (\n    <div\n        className={cx(\n            {\n                TextInput__inner__loader: true,\n                Custom_loader: true,\n                [className]: !!className,\n            },\n        )}\n    >\n        <SpinnerSmall\n            className={cx(\n                {\n                    Custom_spinner: true,\n                },\n            )}\n            color={color || '#2196F3'}\n        />\n    </div>\n);\n\nSmallSpinner.propTypes = {\n    className: PropTypes.string,\n    color: PropTypes.string,\n};\n\nexport default SmallSpinner;\n","import React, {Component} from 'react';\nimport style from './TextInput.css';\nimport _get from 'lodash/get';\nimport { SmallSpinner } from './SmallSpinner';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\n\nconst cx = classNames.bind(style);\n\nclass TextInput extends Component {\n\n    render() {\n        const {\n            placeholder,\n            onChange,\n            id,\n            value,\n            displaySpinner,\n            onKeyDown,\n            pattern,\n            className,\n            autoFocus,\n            required,\n            autoComplete,\n        } = this.props;\n        return (\n            <div className={cx('floating-placeholder-div')}>\n                <input\n                    placeholder={placeholder}\n                    onChange={onChange}\n                    id={id}\n                    value={value}\n                    onKeyDown={onKeyDown}\n                    onFocus={e => {\n                        e.target.select();\n                        this.setState({\n                            [id]: {\n                                isInputFocused: true,\n                            },\n                        });\n                    }}\n                    className={cx({\n                        [className]: !!className,\n                    })}\n                    pattern={pattern}\n                    autoFocus={!!autoFocus}\n                    required={!!required}\n                    autoComplete={autoComplete}\n                    onBlur={() => {\n                        this.setState({\n                            [id]: {\n                                isInputFocused: false,\n                            },\n                        });\n                    }} />\n                {\n                    _get(this.state, `[${id}].isInputFocused`) && value\n                        ?\n                        <span>\n                            {placeholder}\n                        </span>\n                        :\n                        <span></span>\n                }\n                { displaySpinner && <SmallSpinner /> }\n            </div>\n        );\n    }\n}\n\nTextInput.propTypes = {\n    placeholder: PropTypes.string,\n    onChange: PropTypes.func,\n    id: PropTypes.string.isRequired,\n    value: PropTypes.string,\n    displaySpinner: PropTypes.bool,\n    onKeyDown: PropTypes.func,\n    pattern: PropTypes.string,\n    className: PropTypes.string,\n    autoFocus: PropTypes.bool,\n    required: PropTypes.bool,\n    autoComplete: PropTypes.string,\n};\n\nTextInput.defaultProps = {\n    placeholder: 'Enter value',\n    id: '',\n    value: '',\n    displaySpinner: false,\n    onKeyDown: () => null,\n    onChange: () => null,\n    className: '',\n    autoFocus: false,\n    required: false,\n    autoComplete: 'on',\n};\n\nexport default TextInput;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport TextInput from './TextInput';\n\nclass Credentials extends Component {\n    render() {\n        const {\n            setCredentials,\n            credentialsValue,\n            requiredCredentials,\n            onKeyDown,\n        } = this.props;\n\n        return (\n            <>\n                { requiredCredentials &&\n                    <span id=\"Label-span\">Credential fields</span>}\n                <br />\n                {requiredCredentials?.map(data => {\n                    return (\n                        <TextInput\n                            onKeyDown={e => onKeyDown(e)}\n                            value={credentialsValue && credentialsValue[data.id] || ''}\n                            key={'Credentials-' + data.id}\n                            id= {'Credentials-' + data.id}\n                            autoComplete=\"off\"\n                            onChange={e => setCredentials({ [data.id]: e.target.value })}\n                            placeholder={data.displayName}\n                            required />\n                    );\n                })}\n            </>\n        );\n    }\n}\n\nCredentials.propTypes = {\n    setCredentials: PropTypes.func,\n    credentialsValue: PropTypes.object,\n    requiredCredentials: PropTypes.array,\n    onKeyDown: PropTypes.func,\n};\n\nCredentials.defaultProps = {\n    setCredentials: () => {},\n    credentialsValue: {},\n    requiredCredentials: [],\n    onKeyDown: () => {},\n};\n\nexport default Credentials;\n","const common = {\n    setAccounts: accounts => ({\n        type: 'SET_ACCOUNTS',\n        accounts,\n    }),\n    setAccountTransactions: (accountId, transactions, offset) => ({\n        type: 'SET_ACCOUNTS_TRANSACTIONS',\n        accountId,\n        transactions,\n        offset,\n    }),\n    setActiveCurrency: currency => ({\n        type: 'SET_ACTIVE_CURRENCY',\n        currency,\n    }),\n    setActiveAccount: accountId => ({\n        type: 'SET_ACTIVE_ACCOUNT',\n        accountId,\n    }),\n    appendTransactions: (accountId, transactions, offset) => ({\n        type: 'APPEND_TRANSACTIONS',\n        accountId,\n        transactions,\n        offset,\n    }),\n    setTokenData: tokenData => ({\n        type: 'SET_TOKEN_DATA',\n        tokenData,\n    }),\n    setTokenId: tokenId => ({\n        type: 'SET_TOKEN_ID',\n        tokenId,\n    }),\n    setAccessError: error => ({\n        type: 'ACCESS_ERROR',\n        errorMessage: error,\n    }),\n    setDevKey: devKey => ({\n        type: 'SET_DEV_KEY',\n        devKey,\n    }),\n    setWebAppEnabled: webAppEnabled => ({\n        type: 'SET_WEB_APP_ENABLED',\n        webAppEnabled,\n    }),\n    setSourceBankId: bankId => ({\n        type: 'SET_SOURCE_BANK_ID',\n        bankId,\n    }),\n    setMemberType: memberType => ({\n        type: 'SET_MEMBER_TYPE',\n        memberType,\n    }),\n    setReceiveCallback: receiveCallback => ({\n        type: 'SET_RECEIVE_CALLBACK',\n        receiveCallback,\n    }),\n    setSelectedBankInfo: bankInfo => ({\n        type: 'SET_SELECTED_BANK_INFO',\n        bankInfo,\n    }),\n    setCredentials: credentials => ({\n        type: 'SET_CREDENTIALS',\n        credentials,\n    }),\n    setWAV2Enabled: wav2Enabled => ({\n        type: 'SET_WAV2_ENABLED',\n        wav2Enabled,\n    }),\n    setAisApiVersion: aisApiVersion => ({\n        type: 'SET_AIS_API_VERSION',\n        aisApiVersion,\n    }),\n    setConsentId: consentId => ({\n        type: 'SET_CONSENT_ID',\n        consentId,\n    }),\n};\n\nexport default common;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport style from './WebAppSelection.css';\nimport classNames from 'classnames/bind';\nimport Credentials from './Credentials';\nimport TextInput from './TextInput';\nimport { validateCredentials, fetchBankInfo } from 'util.js';\nimport commonActions from 'actions/commonActions';\nimport { TOKEN_API_URL } from 'config/constants';\n\nconst cx = classNames.bind(style);\n\nclass WebAppSelection extends Component {\n    constructor() {\n        super();\n        this.state = {\n            isOpen: false,\n            bankId: {\n                isValid: true,\n            },\n            devKey: '',\n        };\n        this.confirming = false;\n        this.confirm = this.confirm.bind(this);\n    }\n\n    confirm(e) {\n        e && e.preventDefault();\n        const { customSource, dispatch } = this.props;\n        dispatch(commonActions.setMemberType(this.getMemberType()));\n        dispatch(commonActions.setSourceBankId(this.state.bankId?.value));\n        dispatch(commonActions.setWebAppEnabled(this.state.webAppEnabled));\n        dispatch(commonActions.setReceiveCallback(this.state.receiveCallback));\n        dispatch(commonActions.setDevKey(this.state.devKey));\n        dispatch(commonActions.setWAV2Enabled(this.state.wav2Enabled));\n        dispatch(commonActions.setAisApiVersion(\n            this.state.wav2Enabled ? this.state.aisApiVersion : 'v1',\n        ));\n        dispatch(commonActions.setCredentials(\n            validateCredentials(\n                this.state.credentials,\n                customSource.selectedBank?.credentialFields,\n                this.state.bankId?.value,\n                this.state.isType2Member && !this.state.webAppEnabled,\n            ),\n        ));\n        localStorage.setItem('dk', this.input.value);\n        this.setState({ isOpen: false });\n    }\n\n    getMemberType() {\n        if (!this.state.webAppEnabled && this.state.isType2Member) {\n            if (this.state.receiveCallback) {\n                return 'type2_callback';\n            } else {\n                return 'type2';\n            }\n        } else {\n            return 'type1';\n        }\n    }\n\n    componentDidUpdate(prevProps, prevState) {\n        if ((prevState?.bankId?.value?.trim() !== this.state.bankId?.value?.trim())\n            || (prevState?.devKey?.trim() !== this.state.devKey?.trim())) {\n            this.handleBankId();\n        }\n    }\n\n    handleBankId = () => {\n        const { dispatch } = this.props;\n        // Clears running timer and starts a new one each time the user types\n        clearTimeout(this.timer);\n        this.timer = setTimeout(() => {\n            const bankInfo = TOKEN_API_URL + '/banks?ids=' + this.state.bankId?.value?.trim();\n            fetchBankInfo(bankInfo, this.state.devKey)\n                .then(res => {\n                    if (res.status === 200) {\n                        const bankInfo = res.data?.banks?.[0];\n                        if (bankInfo) {\n                            dispatch(commonActions.setSelectedBankInfo(bankInfo));\n                            this.setState({\n                                displaySpinner: false,\n                                bankId: {\n                                    ...this.state.bankId,\n                                    isValid: true,\n                                },\n                            });\n                        } else {\n                            dispatch(commonActions.setSelectedBankInfo());\n                            this.setState({\n                                displaySpinner: false,\n                                bankId: {\n                                    ...this.state.bankId,\n                                    isValid: false,\n                                },\n                            });\n                        }\n                    } else {\n                        // eslint-disable-next-line no-console\n                        console.error('Get banks api fails with status', res.status, res.data);\n                        dispatch(commonActions.setSelectedBankInfo());\n                        this.setState({\n                            displaySpinner: false,\n                            bankId: {\n                                ...this.state.bankId,\n                                isValid: false,\n                            },\n                        });\n                    }\n                })\n                .catch(error => {\n                    // eslint-disable-next-line no-console\n                    console.error(\n                        'Get banks api fails with status',\n                        error.response?.status,\n                        error.response?.data,\n                    );\n                    dispatch(commonActions.setSelectedBankInfo());\n                    this.setState({\n                        displaySpinner: false,\n                        bankId: {\n                            ...this.state.bankId,\n                            isValid: false,\n                        },\n                    });\n                });\n        }, 700);\n    }\n\n    setCredentials = credentials => {\n        this.setState({\n            credentials: {\n                ... this.state.credentials,\n                ...credentials,\n            },\n        });\n    }\n\n    componentDidMount() {\n        const { customSource, devKey } = this.props;\n        const {\n            webAppEnabled, memberType, receiveCallback, source, credentials, wav2Enabled,\n            aisApiVersion,\n        } = customSource;\n        this.setState({\n            webAppEnabled: webAppEnabled !== undefined ? webAppEnabled : true,\n            wav2Enabled: wav2Enabled !== undefined ? wav2Enabled : false,\n            aisApiVersion: aisApiVersion || 'v1',\n            isType2Member: memberType && memberType.substring(0, 5) === 'type2' || false,\n            receiveCallback: receiveCallback || false,\n            bankId: {\n                value: source && source.bankId || '',\n                isValid: this.state.bankId?.isValid,\n            },\n            devKey: devKey,\n            credentials: credentials,\n        });\n    }\n\n    getRequiredCreds = () => {\n        const { customSource } = this.props;\n        return this.state.isType2Member &&\n            !this.state.webAppEnabled &&\n            customSource.selectedBank?.credentialFields ||\n            null;\n    }\n\n    render() {\n        const requiredCredentials = this.getRequiredCreds();\n        const inner = !this.state.isOpen\n            ? (<p>Configuration</p>)\n            : (\n                <div className={'WebAppSelection-subcontainer'}>\n                    <span id=\"Label-span\">Bank-id</span>\n                    <form id={'CustomInput-form'} onSubmit={e => this.confirm(e)}>\n                        <TextInput\n                            onKeyDown={e => e.key === 'Enter' && this.confirm(e)}\n                            value={this.state.bankId?.value}\n                            defaultValue={this.state.bankId?.value}\n                            id={'BankId-input'}\n                            onChange={e =>\n                                this.setState({\n                                    displaySpinner: true,\n                                    bankId: {\n                                        ...this.state.bankId,\n                                        value: e.target.value,\n                                    },\n                                })}\n                            displaySpinner={this.state.displaySpinner}\n                            className={cx({\n                                'Invalid_input': !this.state.bankId?.isValid &&\n                                    !this.state.displaySpinner &&\n                                    this.state.bankId.value,\n                            })}\n                            placeholder={'Enter the Bank Id'}\n                            autoFocus />\n\n                        <Credentials\n                            onKeyDown={e => e.key === 'Enter' && this.confirm()}\n                            requiredCredentials={requiredCredentials}\n                            setCredentials={this.setCredentials}\n                            credentialsValue={this.state.credentials} />\n                    </form>\n                    <span id=\"Label-span\">Additional field (optional)</span>\n                    <TextInput\n                        onKeyDown={e => e.key === 'Enter' && this.confirm(e)}\n                        placeholder={'Enter Dev Key (Optional)'}\n                        ref={input => this.input = input}\n                        value={this.state.devKey}\n                        onChange={e => this.setState({ devKey: e.target.value })} />\n\n                    <div className={'Config-option Config-webAppEnabled'}>\n                        <button className={this.state.webAppEnabled && 'set' || ''}\n                            onClick={() => this.setState({\n                                ...this.state,\n                                webAppEnabled: true,\n                            })}>\n                            {'Use Web-App'}\n                        </button>\n                        <button className={!this.state.webAppEnabled && 'set' || ''}\n                            onClick={() => this.setState({\n                                ...this.state,\n                                webAppEnabled: false,\n                            })}>\n                            {'Don\\'t use Web-App'}\n                        </button>\n                    </div>\n                    {this.state.webAppEnabled &&\n                        <div className={'Config-option Config-webAppEnabled'}>\n                            <button className={!this.state.wav2Enabled && 'set' || ''}\n                                onClick={() => {\n                                    this.setState({\n                                        ...this.state,\n                                        wav2Enabled: false,\n                                    });\n                                }}>\n                                {'Token V1 (Old)'}\n                            </button>\n                            <button className={this.state.wav2Enabled && 'set' || ''}\n                                onClick={() => {\n                                    this.setState({\n                                        ...this.state,\n                                        wav2Enabled: true,\n                                    });\n                                }}>\n                                {'Token V2 (HPV2)'}\n                            </button>\n                        </div>\n                    }\n                    {this.state.webAppEnabled && this.state.wav2Enabled &&\n                        <div className={'Config-option Config-webAppEnabled'}>\n                            <button className={this.state.aisApiVersion !== 'v2' && 'set' || ''}\n                                onClick={() => this.setState({\n                                    ...this.state,\n                                    aisApiVersion: 'v1',\n                                })}>\n                                {'AIS V1'}\n                            </button>\n                            <button className={this.state.aisApiVersion === 'v2' && 'set' || ''}\n                                onClick={() => this.setState({\n                                    ...this.state,\n                                    aisApiVersion: 'v2',\n                                })}>\n                                {'AIS V2'}\n                            </button>\n                        </div>\n                    }\n                    {!this.state.webAppEnabled &&\n                        <div className={'Config-option Config-webAppEnabled'}>\n                            <button className={!this.state.isType2Member && 'set' || ''}\n                                onClick={() =>\n                                    this.setState({\n                                        ...this.state,\n                                        isType2Member: false,\n                                    })}>\n                                {'Type 1'}\n                            </button>\n                            <button className={this.state.isType2Member && 'set' || ''}\n                                onClick={() =>\n                                    this.setState({\n                                        ...this.state,\n                                        isType2Member: true,\n                                    })}>\n                                {'Type 2'}\n                            </button>\n                        </div>\n                    }\n                    {!this.state.webAppEnabled && this.state.isType2Member &&\n                        <div className={'Config-option Config-webAppEnabled'}>\n                            <button className={this.state.receiveCallback && 'set' || ''}\n                                onClick={() => this.setState({\n                                    ...this.state,\n                                    receiveCallback: true,\n                                })}>\n                                {'TPP Callback'}\n                            </button>\n                            <button className={!this.state.receiveCallback && 'set' || ''}\n                                onClick={() => this.setState({\n                                    ...this.state,\n                                    receiveCallback: false,\n                                })}>\n                                {'Token Callback'}\n                            </button>\n                        </div>\n                    }\n                    <div className={'Config-control'}>\n                        <div>\n                            <button\n                                className={'Config-submit'}\n                                form={'CustomInput-form'}\n                                disabled={!!this.state.displaySpinner}>\n                                {'Confirm'}\n                            </button>\n                        </div>\n                    </div>\n                </div>\n            );\n        return (\n            <div className={'WebAppSelection-container'}\n                onClick={() => !this.state.isOpen && this.setState({ isOpen: !this.state.isOpen })}>\n                {inner}\n            </div>\n        );\n    }\n}\n\nWebAppSelection.propTypes = {\n    customSource: PropTypes.object,\n    devKey: PropTypes.string,\n    dispatch: PropTypes.func.isRequired,\n};\n\nconst mapStateToProps = state => ({\n    customSource: state.customSource,\n    devKey: state.devKey,\n});\n\nexport default connect(mapStateToProps)(WebAppSelection);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {showIfLocation, Link} from 'SimpleHistory';\nimport './index.css';\nimport MenuDrawer from 'components/MenuDrawer';\nimport logoFinvertex from 'assets/logo-finvertex.png';\nimport logoFinvertexMobile from 'assets/logo-finvertex-mobile.png';\nimport WebAppSelection from './WebAppSelection';\n\nconst Links = () => (\n    <nav className=\"header-menu\">\n        <Link to=\"/\" className=\"header-menu-item header-menu-item--active\">HOME</Link>\n        <a href=\"#\" className=\"header-menu-item\">BANKING</a>\n        <a href=\"#\" className=\"header-menu-item\">CREDIT CARDS</a>\n        <a href=\"#\" className=\"header-menu-item\">INVESTMENTS</a>\n        <a href=\"#\" className=\"header-menu-item\">LOANS</a>\n        <a href=\"#\" className=\"header-menu-item\">HELP</a>\n        <a href=\"#\" className=\"header-menu-item\">CONTACT US</a>\n        <a href=\"#\" className=\"header-menu-item\">LOCATIONS</a>\n    </nav>\n);\n\nconst Outer = ({children}) => (\n    <div>\n        <header>\n            <div className=\"header-logo\">\n                <div className=\"header-wrapper\">\n                    <Link to=\"/\">\n                        <img src={logoFinvertex}\n                            width=\"230\" height=\"52\" alt=\"Finvertex\"\n                            className=\"logo-desktop\" />\n                        <img src={logoFinvertexMobile}\n                            width=\"111\" height=\"18\" alt=\"Finvertex\"\n                            className=\"logo-mobile\" />\n                    </Link>\n                    { <WebAppSelection /> }\n                </div>\n            </div>\n            <div className=\"menu-bg\">\n                <Links />\n            </div>\n            <MenuDrawer iconColor=\"#1DB8EA\">\n                <Links />\n            </MenuDrawer>\n        </header>\n        <main role=\"main\">\n            <div className=\"wrapper\">\n                {children}\n            </div>\n        </main>\n    </div>\n);\n\nOuter.propTypes = {\n    children: PropTypes.node,\n};\n\nexport default showIfLocation(Outer);\n","export default \"/assets/logo-finvertex.png\";","export default \"/assets/logo-finvertex-mobile.png\";","import React from 'react';\nimport {Link, showIfLocation} from 'SimpleHistory';\nimport './Login.css';\n\nconst Login = () => (\n    <div className=\"Login\">\n        <div className=\"Login-form\">\n            <h2 className=\"Login-form-title\">Account Log In</h2>\n            <div className=\"Login-form-fieldset\">\n                <div className=\"Login-form-fieldset-field\">\n                    <label className=\"Login-form-fieldset-field-label\">E-Mail</label>\n                    <input\n                        className=\"Login-form-fieldset-field-email\"\n                        type=\"email\"\n                        placeholder=\"e.g. name@server.com\"\n                        defaultValue=\"account@gmail.com\" />\n                </div>\n                <div className=\"Login-form-fieldset-field\">\n                    <label\n                        className=\"Login-form-fieldset-field-label\">\n                        Password\n                    </label>\n                    <input\n                        className=\"Login-form-fieldset-field-password\"\n                        type=\"password\"\n                        defaultValue=\"1234567890\" />\n                </div>\n            </div>\n            <Link to=\"/account\" className=\"Login-form-submit\">LOGIN</Link>\n            <div className=\"Login-form-link\">\n                <a href=\"#\">Forgot Password?</a>\n            </div>\n        </div>\n    </div>\n);\n\nexport default showIfLocation(Login);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {CSSTransition, TransitionGroup} from 'react-transition-group';\nimport {Link, showIfLocation} from 'SimpleHistory';\nimport './Account.css';\nimport 'assets/breadcrumbs-divider.png';\n\nclass Account extends React.Component {\n    getChildren() {\n        const {history} = this.props;\n        const path = history.location.pathname;\n        return this.props.children &&\n        <CSSTransition\n            key={path}\n            classNames=\"pageFade\"\n            timeout={{enter: 800, exit: 800}}>\n            <React.Fragment>\n                {this.props.children}\n            </React.Fragment>\n        </CSSTransition>;\n    }\n    render() {\n        return (\n            <div className=\"Account\">\n                <nav className=\"Breadcrumbs\">\n                    <Link to=\"/\">Home</Link>\n                    <Link to=\"/account\" className=\"active\">My Account</Link>\n                </nav>\n                <TransitionGroup>\n                    {this.getChildren()}\n                </TransitionGroup>\n            </div>\n        );\n    }\n}\n\nAccount.propTypes = {\n    children: PropTypes.node,\n    history: PropTypes.object,\n};\n\nexport default showIfLocation(Account);\n","import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport './index.css';\nimport { AispClient } from 'util.js';\nimport commonActions from 'actions/commonActions';\nimport { withHistory } from 'SimpleHistory';\nimport { WEB_APP_ENV } from 'config/constants';\n\nconst SCRIPT_INTERVAL = 30;\n\nfunction TokenEnablerButtonV1(props) {\n    const {\n        devKey,\n        memberType,\n        sourceAccount,\n        webAppEnabled,\n        text,\n        onError,\n        credentials,\n    } = props;\n    const dispatch = useDispatch();\n    const buttonRef = useRef(null);\n    const tokenControllerRef = useRef(null);\n    const buttonInstanceRef = useRef(null);\n\n    useEffect(() => {\n        let isMounted = true;\n        async function addAccessButton() {\n            if (!window.Token) {\n                setTimeout(addAccessButton, SCRIPT_INTERVAL);\n                return;\n            }\n            const token = new window.Token({ env: WEB_APP_ENV });\n            if (buttonInstanceRef.current) {\n                try {\n                    buttonInstanceRef.current.destroy();\n                } catch (error) {\n                    console.warn('Error destroying previous button instance:', error);\n                }\n            }\n            buttonInstanceRef.current = token.createTokenButton(buttonRef.current, {\n                label: text,\n                hideLogo: true,\n            });\n            tokenControllerRef.current = token.createController({\n                onSuccess: data => {\n                    dispatch(commonActions.setTokenData(data));\n                    window.document.location.assign('/account/paired');\n                },\n                onError: error => {\n                    onError(error.error + ': ' + error.message);\n                    window.document.location.assign('/account/paired');\n                    throw error;\n                },\n            });\n            tokenControllerRef.current.bindButtonClick(\n                buttonInstanceRef.current,\n                token.createRequest(\n                    redirect => {\n                        redirect('/getTokenRequestUrl', {\n                            devKey,\n                            webAppEnabled,\n                            sourceAccount,\n                            memberType,\n                            credentials,\n                        });\n                    },\n                    async (done, errorCb) => {\n                        try {\n                            const tokenRequestUrl = await AispClient.getTokenRequestUrl(\n                                devKey,\n                                memberType,\n                                webAppEnabled,\n                                sourceAccount,\n                                credentials,\n                                false,\n                            );\n                            done(tokenRequestUrl);\n                        } catch (error) {\n                            errorCb('Error fetching Token Request URL', error);\n                        }\n                    },\n                ),\n                async error => {\n                    if (error) throw error;\n                    await AispClient.getAispAlias(memberType);\n                    if (isMounted && buttonInstanceRef.current) buttonInstanceRef.current.enable();\n                },\n                {\n                    desktop: webAppEnabled && 'POPUP' || 'REDIRECT',\n                },\n            );\n        }\n        addAccessButton();\n        return () => {\n            isMounted = false;\n            if (buttonInstanceRef.current && buttonRef.current) {\n                try {\n                    buttonInstanceRef.current.destroy();\n                } catch (error) {\n                    console.warn('Error destroying button instance during cleanup:', error);\n                }\n                buttonInstanceRef.current = null;\n            }\n        };\n    }, [devKey, memberType, sourceAccount, webAppEnabled, text, onError, credentials]);\n\n    return (\n        <div id=\"myTokenButtonV1\" className=\"TokenEnablerPlaceholder\" ref={buttonRef}></div>\n    );\n}\n\nTokenEnablerButtonV1.propTypes = {\n    text: PropTypes.string,\n    devKey: PropTypes.string,\n    credentials: PropTypes.object,\n    memberType: PropTypes.string.isRequired,\n    sourceAccount: PropTypes.object,\n    webAppEnabled: PropTypes.bool.isRequired,\n    onError: PropTypes.func,\n};\n\nTokenEnablerButtonV1.defaultProps = {\n    text: 'Enable Token V1',\n    onError: () => { },\n};\n\nexport default withHistory(TokenEnablerButtonV1);\n","import React, { useEffect, useRef, useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport './index.css';\nimport { AispClient } from 'util.js';\nimport commonActions from 'actions/commonActions';\nimport { withHistory } from 'SimpleHistory';\nimport { APP_SDK_ENV } from 'config/constants';\n\nconst TokenEnablerButtonV2 = ({\n    devKey,\n    memberType,\n    webAppEnabled,\n    sourceAccount,\n    credentials,\n    onError,\n    text,\n    aisApiVersion,\n}) => {\n    const appControllerRef = useRef(null);\n    const dispatch = useDispatch();\n    const [fallbackMessage, setFallbackMessage] = useState(null);\n    const [isDisabled, setIsDisabled] = useState(true);\n\n    const handleClick = useCallback(async () => {\n        try {\n            const appModal = appControllerRef.current.initApp();\n            if (aisApiVersion === 'v2') {\n                const { redirectUrl, consentId } = await AispClient.getConsentUrl({\n                    bankId: sourceAccount?.bankId,\n                });\n                dispatch(commonActions.setConsentId(consentId));\n                appModal.navigateToUrl(redirectUrl);\n                return;\n            }\n            const tokenRequestUrl = await AispClient.getTokenRequestUrl(\n                devKey,\n                memberType,\n                webAppEnabled,\n                sourceAccount,\n                credentials,\n                true,\n            );\n            appModal.navigateToUrl(tokenRequestUrl);\n        } catch (error) {\n            onError(error.message || 'WAV2 flow error');\n            if (appControllerRef.current) {\n                try {\n                    appControllerRef.current.cleanUp();\n                } catch (cleanupError) {\n                    console.warn('Error during cleanup:', cleanupError);\n                }\n            }\n        }\n    }, [\n        devKey, memberType, webAppEnabled, sourceAccount, credentials, onError,\n        aisApiVersion, dispatch,\n    ]);\n\n    const initializeController = useCallback(async () => {\n        setFallbackMessage(null);\n        setIsDisabled(true);\n\n        if (!window.TokenApp) {\n            setFallbackMessage('TokenApp SDK not loaded');\n            return;\n        }\n\n        try {\n            const appSdk = new window.TokenApp({\n                env: APP_SDK_ENV,\n            });\n\n            appControllerRef.current = appSdk.buildController({\n                onDone: data => {\n                    dispatch(commonActions.setTokenData(data));\n                    if (appControllerRef.current) {\n                        try {\n                            appControllerRef.current.cleanUp();\n                        } catch (cleanupError) {\n                            console.warn('Error during cleanup:', cleanupError);\n                        }\n                    }\n                    window.document.location.assign('/account/paired');\n                },\n                onError: error => {\n                    onError(error?.message || 'WAV2 flow error');\n                    if (appControllerRef.current) {\n                        try {\n                            appControllerRef.current.cleanUp();\n                        } catch (cleanupError) {\n                            console.warn('Error during cleanup:', cleanupError);\n                        }\n                    }\n                    window.document.location.assign('/account/paired');\n                },\n            });\n\n            await AispClient.getAispAlias(memberType);\n            setIsDisabled(false);\n        } catch (error) {\n            if (error.message.includes('TokenApp')) {\n                setFallbackMessage('TokenApp initialization failed');\n            }\n            onError(`Failed to initialize: ${error?.message || 'Unknown error'}`);\n        }\n    }, [devKey, memberType, sourceAccount, webAppEnabled, text, onError, credentials, dispatch]);\n\n    useEffect(() => {\n        initializeController();\n    }, [initializeController]);\n\n    useEffect(() => {\n        return () => {\n            if (appControllerRef.current) {\n                try {\n                    appControllerRef.current.cleanUp();\n                } catch (error) {\n                    console.warn('Error cleaning up app controller:', error);\n                }\n                appControllerRef.current = null;\n            }\n        };\n    }, []);\n\n    if (fallbackMessage) {\n        return (\n            <div id=\"myTokenButtonV2\" className=\"TokenEnablerPlaceholder\">\n                <button className=\"token-button token-button-debug\" disabled>\n                    Debug: {fallbackMessage}\n                </button>\n            </div>\n        );\n    }\n\n    return (\n        <div id=\"myTokenButtonV2\" className=\"TokenEnablerPlaceholder\">\n            <button\n                className=\"TokenEnablerButton TokenEnablerButtonV2\"\n                onClick={handleClick}\n                disabled={isDisabled}\n            >\n                <span>{text}</span>\n            </button>\n        </div>\n    );\n};\n\nTokenEnablerButtonV2.propTypes = {\n    text: PropTypes.string,\n    devKey: PropTypes.string,\n    credentials: PropTypes.object,\n    memberType: PropTypes.string.isRequired,\n    sourceAccount: PropTypes.object,\n    webAppEnabled: PropTypes.bool,\n    onError: PropTypes.func,\n    aisApiVersion: PropTypes.string,\n};\n\nTokenEnablerButtonV2.defaultProps = {\n    text: 'Enable Token V2 (WAV2)',\n    webAppEnabled: true,\n    onError: () => { },\n    aisApiVersion: 'v1',\n};\n\nexport default withHistory(TokenEnablerButtonV2);\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport TokenEnablerButtonV1 from 'components/TokenEnablerButton/TokenEnablerButtonV1';\nimport TokenEnablerButtonV2 from 'components/TokenEnablerButton/TokenEnablerButtonV2';\nimport { connect } from 'react-redux';\nimport actionCreators from 'actions/commonActions';\nimport { bindActionCreators } from 'redux';\nimport { showIfLocation } from 'SimpleHistory';\nimport './Unpaired.css';\n\nconst Unpaired = ({\n    actions,\n    devKey,\n    webAppEnabled,\n    memberType,\n    sourceAccount,\n    credentials,\n    wav2Enabled,\n    aisApiVersion,\n}) => {\n\n    useEffect(() => {\n        actions.setMemberType(memberType);\n    }, [memberType]);\n\n    const isReady = webAppEnabled || (sourceAccount && sourceAccount.bankId);\n\n    const TokenEnablerComponent = (wav2Enabled && webAppEnabled) ?\n        TokenEnablerButtonV2 : TokenEnablerButtonV1;\n    const buttonText = (wav2Enabled && webAppEnabled)\n        ? (aisApiVersion === 'v2' ? 'HPV2 / AIS V2' : 'HPV2')\n        : 'V1';\n\n    return (\n        <div className=\"Unpaired\">\n            <section className=\"col-2\">\n                <div className=\"Account-panel\">\n                    <h3>Get Started - Connect with Token</h3>\n                    <div className=\"Account-panel-content\">\n                        <p>\n                            Token provides software to banks that allows\n                            monetization of PSD2 and mitigates\n                            disintermediation and security risks associated\n                            with granting access to Third Party Providers.\n                        </p>\n                        {isReady &&\n                            <TokenEnablerComponent\n                                devKey={devKey}\n                                memberType={memberType}\n                                webAppEnabled={webAppEnabled}\n                                sourceAccount={sourceAccount}\n                                onError={err => actions.setAccessError(err)}\n                                text={`LINK WITH TOKEN ${buttonText}`}\n                                credentials={credentials}\n                                aisApiVersion={aisApiVersion}\n                            />\n                        }\n                    </div>\n                </div>\n            </section>\n            <section className=\"col-2\">\n                <div className=\"Account-panel Account-panel--disabled\">\n                    <h3>Account Help</h3>\n                    <div className=\"Account-panel-content\">\n                        <p>\n                            Established in 2000, we are your insurance expert\n                            commited to providing peace of mind to all kinds\n                            of borrowers by helping them obtain and manage a\n                            insurance.\n                        </p>\n                    </div>\n                </div>\n            </section>\n        </div>\n    );\n};\n\nUnpaired.propTypes = {\n    actions: PropTypes.object.isRequired,\n    devKey: PropTypes.string,\n    webAppEnabled: PropTypes.bool.isRequired,\n    memberType: PropTypes.string.isRequired,\n    sourceAccount: PropTypes.object,\n    credentials: PropTypes.object,\n    wav2Enabled: PropTypes.bool,\n    aisApiVersion: PropTypes.string,\n};\n\nUnpaired.defaultProps = {\n    webAppEnabled: true,\n    memberType: 'type1',\n    wav2Enabled: false,\n    aisApiVersion: 'v1',\n};\n\nconst mapStateToProps = state => {\n    return {\n        devKey: state.devKey,\n        webAppEnabled: state.customSource.webAppEnabled,\n        sourceAccount: state.customSource.source,\n        memberType: state.customSource.memberType,\n        credentials: state.customSource.credentials,\n        wav2Enabled: state.customSource.wav2Enabled,\n        aisApiVersion: state.customSource.aisApiVersion,\n    };\n};\n\nconst mapDispatchToProps = dispatch => {\n    return {\n        actions: bindActionCreators(actionCreators, dispatch),\n    };\n};\n\nexport default showIfLocation(connect(\n    mapStateToProps,\n    mapDispatchToProps,\n)(Unpaired));\n","import {responsive} from 'util.js';\n\nclass PieChart {\n    constructor(el, data) {\n        if (!window.d3) throw new Error('D3.js is required.');\n        this.buildPieStructure = this.buildPieStructure.bind(this);\n        this.update = this.update.bind(this);\n        this.data = data;\n        this.d3 = window.d3;\n        this.el = el;\n        if (this.data) {\n            this.update(this.data);\n        }\n    }\n    buildPieStructure(el) {\n        el.innerHTML = '';\n        const size = el.getBoundingClientRect();\n        const r = responsive(this.screenWidth);\n\n        this.width = size.width;\n        this.height = size.height - r({\n            phone: 10,\n            tablet: 10,\n            def: 20,\n        });\n        this.radius = Math.min(this.width, this.height) / 2;\n\n        this.color = this.d3.scale.category20();\n\n        this.pie = this.d3.layout.pie()\n            .sort(null)\n            .value(d => d.value);\n\n        this.arc = this.d3.svg.arc()\n            .innerRadius(this.radius * r({\n                phone: .30,\n                tablet: .30,\n                def: .25,\n            }))\n            .outerRadius(this.radius * r({\n                phone: .82,\n                tablet: .82,\n                def: .65,\n            }));\n\n        this.svg = this.d3.select(el).append('svg')\n            .attr('width', this.width)\n            .attr('height', this.height)\n            .append('g')\n            .attr('transform', 'translate(' + this.width / 2 + ',' + this.height / 2 + ')');\n    }\n    update(data) {\n        this.screenWidth = window.innerWidth;\n        const dataSet = data\n            .filter(acc => parseFloat(acc.balance.current.value, 10) > 0)\n            .map(acc => ({\n                index: acc.index,\n                accountName: acc.name,\n                bankName: acc.bankName || acc.bankId,\n                value: parseFloat(acc.balance.current.value, 10),\n            }));\n\n        this.buildPieStructure(this.el);\n\n        this.piedata = this.pie(dataSet);\n\n        let pathGroup = this.svg.select('g.piePaths');\n        if (pathGroup.empty()) {\n            pathGroup = this.svg.append('g')\n                .attr('class', 'piePaths');\n        }\n\n        this.path = pathGroup.selectAll('path.pie')\n            .data(this.piedata);\n\n        this.path.enter().append('path')\n            .attr('class', 'pie')\n            .attr('fill', d => {\n                return getColor(d.data.index);\n            })\n            .attr('d', this.arc);\n\n        this.path.exit()\n            .remove();\n    }\n}\n\nif (!window.d3) throw new Error('D3.js is required.');\nconst d3color = window.d3.scale.category20();\n\nconst colors = [\n    '#f37d6e',\n    '#8a67ff',\n    '#20bf87',\n    '#f3c26e',\n];\n\nconst getColor = i => {\n    return colors[i] || d3color(i - colors.length);\n};\n\nexport default {\n    PieChart: PieChart,\n    getColor: getColor,\n};\n","export default \"/assets/iron-logo.png\";","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport './Transactions.css';\nimport TokenChart from 'components/Pages/TokenChart';\nimport { AispClient, getPluralizedString, getDeviceId, getUserAgent } from 'util.js';\nimport { FormattedNumber } from 'react-intl';\nimport { currencySymbols, transactionsLimit } from 'config/constants';\nimport commonActions from 'actions/commonActions';\nimport throttle from 'lodash/throttle';\nimport ironLogo from 'assets/iron-logo.png';\n\nconst TransactionsListControls = ({\n    accounts,\n    activeAccountId,\n    onActiveAccountChange,\n    onDateChange,\n    onStartDateSelect,\n    selectedStartDate,\n}) => (\n    <div className=\"Controls\">\n        <div className=\"Account-controls\">\n            <div className=\"Account-selector\">\n                <span className=\"span-block\">\n                    {'Show Transactions '}\n                </span>\n                <select\n                    className={'Account-controls-selector'}\n                    defaultValue={activeAccountId}\n                    onChange={e => {\n                        onActiveAccountChange(e.target.value);\n                    }}>\n                    {accounts.map(acc => {\n                        return (\n                            <option\n                                key={acc.id}\n                                value={acc.id}>\n                                {acc.name}\n                            </option>\n                        );\n                    })}\n                </select>\n            </div>\n        </div>\n        <div className=\"Date-controls\">\n            <div className=\"Date-selector\">\n                <form onSubmit={e => {\n                    e.preventDefault();\n                    onDateChange(e);\n                }}>\n                    <span className=\"display-block-600\">\n                        <span className=\"span-block\">\n                            {'Start Date: '}\n                        </span>\n                        <input\n                            type=\"date\"\n                            name=\"startDate\"\n                            id=\"startDate\"\n                            max={(new Date()).toISOString().split('T')[0]}\n                            onChange={e => {\n                                onStartDateSelect(e.target.value);\n                            }}\n                        />\n                    </span>\n                    <span className=\"display-block-600\">\n                        <span className=\"span-block\">\n                            {'End Date(optional): '}\n                        </span>\n                        <input\n                            type=\"date\"\n                            name=\"endDate\"\n                            id=\"endDate\"\n                            min={selectedStartDate}\n                        />\n                    </span>\n                    <button type=\"submit\" value=\"Submit\">Submit</button>\n                </form>\n            </div>\n        </div>\n    </div>\n);\n\nTransactionsListControls.propTypes = {\n    onActiveAccountChange: PropTypes.func,\n    accounts: PropTypes.array,\n    activeAccountId: PropTypes.string,\n    onDateChange: PropTypes.func,\n    onStartDateSelect: PropTypes.func,\n    selectedStartDate: PropTypes.string,\n};\n\nclass TransactionsList extends Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            isLoading: false,\n        };\n        this.onScroll = throttle(this.onScroll.bind(this), 500);\n        this.fetchTransactions = this.fetchTransactions.bind(this);\n    }\n    componentDidMount() {\n        this.cancelFetch = false;\n        window.addEventListener('scroll', this.onScroll, false);\n    }\n    componentWillUnmount() {\n        this.cancelFetch = true;\n        window.removeEventListener('scroll', this.onScroll, false);\n    }\n    componentDidUpdate(prevProps) {\n\n        let isDateChanged = false;\n        if (this.props.startDate !== prevProps.startDate\n            || this.props.endDate !== prevProps.endDate) {\n            isDateChanged = true;\n        }\n        if (this.props.activeAccountId !== prevProps.activeAccountId\n            || isDateChanged) {\n            this.fetchTransactions(this.props.activeAccountId, this.props.startDate,\n                this.props.endDate, false, isDateChanged);\n        }\n    }\n\n    async fetchTransactions(accountId,\n        startDate = '',\n        endDate = '',\n        onScroll = false,\n        isDateChanged = false) {\n        const isDateRangeSelected = (startDate !== '') ? true : false;\n        if (this.state.isLoading) return;\n        const { activeAccountId, tokenData, transactions, dispatch, aisApiVersion } = this.props;\n        const accountTransactions = transactions[activeAccountId] && transactions[activeAccountId];\n        const offset = !isDateChanged && accountTransactions && accountTransactions.offset || '';\n        const customerTrackingMetadata = { deviceId: getDeviceId(), userAgent: getUserAgent() };\n        if (!isDateRangeSelected && offset === 'EOL') return;\n        this.setState({ isLoading: true });\n        try {\n            const transactions = aisApiVersion === 'v2'\n                ? await AispClient.pullTransactionsV2(accountId, offset, startDate, endDate)\n                : await AispClient.pullTransactions(\n                    tokenData,\n                    accountId,\n                    offset,\n                    startDate,\n                    endDate,\n                    customerTrackingMetadata);\n            !this.cancelFetch && this.setState({ isLoading: false });\n            if (!transactions) {\n                return;\n            }\n            const newOffset = transactions.transactions.length\n                && transactions.transactions.length === transactionsLimit\n                && transactions.offset || 'EOL';\n\n            if (isDateRangeSelected && !onScroll || isDateChanged) {\n                dispatch(commonActions.setAccountTransactions(\n                    accountId, transactions.transactions, newOffset,\n                ));\n            }\n            else {\n                dispatch(commonActions.appendTransactions(\n                    accountId, transactions.transactions, newOffset,\n                ));\n            }\n        } catch (e) {\n            !this.cancelFetch && this.setState({ isLoading: false });\n            throw e;\n        }\n    }\n    onScroll() {\n        const { isLoading } = this.state;\n        const { activeAccountId, transactions } = this.props;\n        if (!activeAccountId) return;\n        const accountTransactions = transactions[activeAccountId]\n            && transactions[activeAccountId] || {};\n        const offset = accountTransactions && accountTransactions.offset || '';\n        if (\n            (window.innerHeight + window.scrollY) >= (document.body.offsetHeight - 100) &&\n            !isLoading && offset !== 'EOL'\n        ) {\n            this.fetchTransactions(this.props.activeAccountId, this.props.startDate,\n                this.props.endDate, true);\n        }\n    }\n    render() {\n        const { transactions, accounts, activeAccountId } = this.props;\n        if (!activeAccountId) return null;\n        const index = accounts.findIndex(item => item.id === activeAccountId);\n        const activeAccount = accounts[index];\n        const accountTransactions = transactions[activeAccountId]\n            && transactions[activeAccountId].transactions || [];\n        return (\n            <div className={'Transactions-account'}>\n                <div className={'Transactions-title'}>\n                    <div\n                        className={'Account-item-stripe'}\n                        style={{\n                            transition: 'background-color 350ms',\n                            backgroundColor: TokenChart.getColor(index),\n                        }} />\n                    <img src={activeAccount.bankLogo || ironLogo} />\n                    <div className={'Transactions-info'}>\n                        <span>{activeAccount.name}</span>\n                        <span className={'Transactions-count'}>\n                            {getPluralizedString(accountTransactions.length, 'Transaction')}\n                        </span>\n                    </div>\n                </div>\n                <ol className={'Transactions-list'}>\n                    {accountTransactions.map(t => {\n                        const date = (new Date(parseInt(t.createdAtMs)))\n                            .toUTCString()\n                            .replace('GMT', 'UTC');\n                        const amount = t.amount.value;\n                        const currencyString =\n                            `${t.type === 'CREDIT'\n                                ? '+'\n                                : '-'}${currencySymbols[t.amount.currency] || ''}`;\n                        return (\n                            <li className={'Transaction-item'} key={t.id}>\n                                <div className={'Transaction-info'}>\n                                    <span className={'Transaction-desc'}>{t.description}</span>\n                                    <br />\n                                    <span>{date}</span>\n                                    <span>{t.metadata && t.metadata.merchantName}</span>\n                                    <span>{t.metadata && t.metadata.merchantCategoryCode}</span>\n                                </div>\n                                <div className={'Transaction-amount'} style={{\n                                    color: t.type === 'CREDIT'\n                                        ? 'green'\n                                        : 'red',\n                                }}>\n                                    {currencyString}\n                                    <FormattedNumber\n                                        value={Math.abs(amount || 0)}\n                                        minimumFractionDigits={2}\n                                        maximumFractionDigits={2} />\n                                </div>\n                            </li>\n                        );\n                    })}\n                    {this.state.isLoading && (\n                        <li className={'Transaction-item'}>\n                            <div className={'Transaction-info'}>\n                                <span className={'Transaction-desc'}>Loading...</span>\n                            </div>\n                        </li>\n                    )}\n                </ol>\n            </div>\n        );\n    }\n}\n\nTransactionsList.propTypes = {\n    accounts: PropTypes.array,\n    activeAccountId: PropTypes.string,\n    startDate: PropTypes.string,\n    endDate: PropTypes.string,\n    tokenData: PropTypes.object,\n    transactions: PropTypes.object,\n    dispatch: PropTypes.func.isRequired,\n    aisApiVersion: PropTypes.string,\n};\n\nconst mapStateToProps = state => ({\n    tokenData: state.tokenData,\n    transactions: state.transactions,\n    aisApiVersion: state.customSource.aisApiVersion,\n});\n\nconst ConnectedTransactionsList = connect(mapStateToProps)(TransactionsList);\n\nconst Transactions = ({\n    accounts,\n    activeAccountId,\n    onActiveAccountChange,\n    onDateChange,\n    startDate,\n    endDate,\n    onStartDateSelect,\n    selectedStartDate }) => (\n    <div className={'Transactions-panel'}>\n        <div className={'Transactions-panel-title'}>\n            <h3>\n                Transactions\n            </h3>\n            {accounts && accounts.length ? <TransactionsListControls\n                accounts={accounts}\n                activeAccountId={activeAccountId}\n                onActiveAccountChange={onActiveAccountChange}\n                onDateChange={onDateChange}\n                onStartDateSelect={onStartDateSelect}\n                selectedStartDate={selectedStartDate} /> : null}\n        </div>\n        <div className={'Transactions-content'}>\n            <ConnectedTransactionsList\n                accounts={accounts}\n                activeAccountId={activeAccountId}\n                startDate={startDate}\n                endDate={endDate} />\n        </div>\n    </div>\n);\n\nTransactions.propTypes = {\n    accounts: PropTypes.array,\n    activeAccountId: PropTypes.string,\n    onActiveAccountChange: PropTypes.func,\n    onDateChange: PropTypes.func,\n    startDate: PropTypes.string,\n    endDate: PropTypes.string,\n    onStartDateSelect: PropTypes.func,\n    selectedStartDate: PropTypes.string,\n};\n\nexport default Transactions;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {FormattedNumber} from 'react-intl';\n\nclass AccountItem extends React.Component {\n    constructor() {\n        super();\n    }\n\n    render() {\n        const {opacity, color, logo, acc, amount, enabled, currentAccount} = this.props;\n        return (\n            <div className=\"Account-item\"\n                style={{\n                    transition: 'opacity 350ms',\n                    opacity,\n                }}>\n                <div\n                    className=\"Account-item-stripe\"\n                    style={{\n                        transition: 'background-color 350ms',\n                        backgroundColor: color,\n                    }}>\n                </div>\n                <div className=\"Account-item-logo\">\n                    <span\n                        className=\"AccountMenu-item-logo-image\"\n                        style={{\n                            backgroundImage: `url(${logo})`,\n                        }}>\n                    </span>\n                </div>\n                <div className=\"Account-item-details\">\n                    <div\n                        className=\"Account-item-bank\">\n                        {acc.bankName || acc.bankId}\n                    </div>\n                    <div className=\"Account-item-type\">\n                        {acc.name}\n                    </div>\n                    <div\n                        className={'Account-item-balance' +\n                        (amount < 0 ? ' Account-item-balance-negative' : '')}>\n                        <FormattedNumber\n                            style=\"currency\"\n                            currency={acc.balance.current.currency}\n                            value={amount || 0}\n                            minimumFractionDigits={2}\n                            maximumFractionDigits={2} />\n                    </div>\n                </div>\n                {enabled && currentAccount ? (\n                    <div className=\"Account-item-percentage\">\n                        {currentAccount.percentage || 0}\n                        <span className=\"Account-item-percentage-sign\">\n                            %\n                        </span>\n                    </div>\n                ) : ''}\n            </div>\n        );\n    }\n}\n\nAccountItem.propTypes = {\n    acc: PropTypes.object.isRequired,\n    opacity: PropTypes.number.isRequired,\n    color: PropTypes.string.isRequired,\n    logo: PropTypes.string.isRequired,\n    amount: PropTypes.string.isRequired,\n    enabled: PropTypes.bool.isRequired,\n    currentAccount: PropTypes.object.isRequired,\n};\n\nexport default AccountItem;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedNumber } from 'react-intl';\nimport {\n    AispClient,\n    filterByCurrency,\n    getAvailableCurrencies,\n    getDeviceId,\n    getUserAgent,\n} from 'util.js';\nimport { showIfLocation } from 'SimpleHistory';\nimport commonActions from 'actions/commonActions';\nimport TokenChart from 'components/Pages/TokenChart';\nimport throttle from 'lodash/throttle';\nimport Transactions from 'components/Pages/Transactions';\nimport ironLogo from 'assets/iron-logo.png';\nimport AccountItem from './AccountItem';\n\nconst AccountControls = ({\n    currencies,\n    activeCurrency,\n    onCurrencyChange,\n    updateChart,\n}) => (\n    <div className=\"Account-controls\">\n        <div className=\"Account-currency-selector\">\n            <span>\n                {'Show Accounts '}\n            </span>\n            <select\n                defaultValue={activeCurrency}\n                onChange={e => {\n                    onCurrencyChange(e.target.value);\n                }}>\n                {currencies.map(curr => (\n                    <option\n                        key={curr}\n                        value={curr}>\n                        {curr}\n                    </option>\n                ))}\n            </select>\n        </div>\n        <div className=\"Account-refresh\">\n            <button\n                onClick={updateChart}>\n                Refresh\n            </button>\n        </div>\n    </div>\n);\n\nAccountControls.propTypes = {\n    onCurrencyChange: PropTypes.func,\n    updateChart: PropTypes.func,\n    currencies: PropTypes.array,\n    activeCurrency: PropTypes.string,\n};\n\nclass Paired extends React.Component {\n    _isMounted = false;\n    constructor(props) {\n        super(props);\n        this.updateChart = this.updateChart.bind(this);\n        this.onCurrencyChange = this.onCurrencyChange.bind(this);\n        this.onActiveAccountChange = this.onActiveAccountChange.bind(this);\n        this.onDateChange = this.onDateChange.bind(this);\n        this.onStartDateSelect = this.onStartDateSelect.bind(this);\n        this.drawChart = this.drawChart.bind(this);\n        this.accounts = [];\n        this.state = {\n            isLoading: false,\n            startDate: '',\n            endDate: '',\n            selectedStartDate: '',\n        };\n    }\n    drawChart() {\n        if (!this.accounts.length) return;\n        this.tokenPie.update(this.accounts);\n    }\n    componentDidMount() {\n        this._isMounted = true;\n        this.tokenPie = new TokenChart.PieChart(this.accountGraph, this.accounts);\n        window.addEventListener('resize', throttle(this.drawChart, 500));\n        this.updateChart();\n    }\n    componentWillUnmount() {\n        window.removeEventListener('resize', this.drawChart);\n        this._isMounted = false;\n    }\n\n    componentDidUpdate(prevProps) {\n        const { accounts, activeCurrency } = this.props;\n        if (prevProps.accounts !== accounts || prevProps.activeCurrency !== activeCurrency) {\n            if (!accounts.length) return;\n            const enabledAccounts = filterByCurrency(accounts, activeCurrency);\n            this.accounts = enabledAccounts.accounts;\n            this.drawChart();\n        }\n    }\n    onCurrencyChange(cur) {\n        const { dispatch } = this.props;\n        dispatch(commonActions.setActiveCurrency(cur));\n    }\n    onActiveAccountChange(accountId) {\n        const { dispatch, accounts } = this.props;\n        const account = accounts.find(acc => acc.id === accountId);\n        if (!account) return;\n        dispatch(commonActions.setActiveAccount(accountId));\n    }\n\n    onDateChange = e => {\n        this.setState({\n            startDate: e.target.startDate.value,\n            endDate: e.target.endDate.value,\n        });\n    }\n\n    onStartDateSelect = startDate => {\n        this.setState({\n            selectedStartDate: startDate,\n        });\n    }\n\n    async updateChart() {\n        const { dispatch, tokenData, customSource, devKey, aisApiVersion, consentId } = this.props;\n        this.setState({ isLoading: true });\n        try {\n            if (aisApiVersion === 'v2') {\n                // Best-effort: the consent may already be AUTHORIZED (e.g. Token's own\n                // hosted flow resolved it without needing a TPP-side callback query), in\n                // which case this can 400/404 - that's fine, fall through to the actual\n                // data pull regardless rather than blocking on it.\n                const query = tokenData && typeof tokenData === 'object'\n                    ? new URLSearchParams(tokenData).toString()\n                    : '';\n                await AispClient.confirmConsentAuthentication(consentId, query).catch(() => {});\n\n                const { accounts } = await AispClient.pullAccountsV2();\n                dispatch(commonActions.setAccounts(accounts || []));\n                if (this._isMounted) {\n                    this.setState({ isLoading: false });\n                }\n                return;\n            }\n            const customerTrackingMetadata = { deviceId: getDeviceId(), userAgent: getUserAgent() };\n            // Fetch authorized data\n            const { accountIds, tokenId, memberType } =\n                await AispClient.pullAuthorizedData({\n                    ...tokenData,\n                    bankId: customSource?.selectedBank?.id || customSource?.source?.bankId,\n                    devKey: devKey,\n                    customerTrackingMetadata: customerTrackingMetadata,\n                });\n\n            // Use a Set to remove duplicate accountIds\n            const uniqueAccountIds = Array.from(new Set(accountIds));\n\n            // Update store with memberType and tokenId\n            memberType && dispatch(commonActions.setMemberType(memberType));\n            tokenId && dispatch(commonActions.setTokenId(tokenId));\n\n            const batchSize = 20;\n            let startIndex = 0;\n            const totalAccounts = uniqueAccountIds.length;\n            let allAccounts = [];\n\n            while (startIndex < totalAccounts) {\n                const endIndex = Math.min(startIndex + batchSize, totalAccounts);\n                const batchAccountIds = uniqueAccountIds.slice(startIndex, endIndex);\n\n                // Fetch accountInfo for the current batch\n                const batchAccountPromises = batchAccountIds.map(async accountId => {\n                    try {\n                        const { accountInfo } = await AispClient.pullAccountInfo({\n                            accId: accountId,\n                            tokenId,\n                            customerTrackingMetadata: customerTrackingMetadata,\n                            devKey: devKey,\n                        });\n\n                        return accountInfo;\n                    } catch (error) {\n                        // Handle errors for individual account requests if needed\n                        console.error(`Error fetching account info for accountId ${accountId}:`, error);\n                    }\n                });\n\n                // Resolve promises for the current batch all together\n                const batchAccounts = await Promise.all(batchAccountPromises);\n\n                const accountsWithBalance = batchAccounts.filter(acc => acc && acc.balance);\n\n                allAccounts = [...allAccounts, ...accountsWithBalance];\n                dispatch(commonActions.setAccounts([...allAccounts]));\n\n                startIndex += batchSize;\n            }\n\n            if (this._isMounted) {\n                this.setState({ isLoading: false });\n            }\n        } catch (e) {\n            window.document.location.assign('/account/error');\n            throw e;\n        }\n    }\n    render() {\n        const { accounts, activeCurrency, activeAccountId } = this.props;\n        const currencies = getAvailableCurrencies(accounts);\n        const enabledAccounts = filterByCurrency(accounts, activeCurrency);\n        const isReady = !this.state.isLoading;\n        const accountControls = (<AccountControls\n            onCurrencyChange={this.onCurrencyChange}\n            updateChart={this.updateChart}\n            currencies={currencies}\n            activeCurrency={activeCurrency}\n        />);\n        return (\n            <div>\n                <div className=\"Account-panel\">\n                    <div className=\"Account-header\">\n                        <div className=\"Account-title\">\n                            <h3>Accounts{!isReady ? <small>…loading</small> : ''}</h3>\n                        </div>\n                        {isReady ? accountControls : null}\n                    </div>\n                    <div className=\"Account-body\">\n                        <div className=\"Paired-panel-graph\"\n                            ref={accountGraph => (this.accountGraph = accountGraph)}>\n                        </div>\n                        {isReady ? accountControls : null}\n                        <div className=\"Accounts-list\">\n                            {accounts.map((acc, index) => {\n                                const enabled = acc.balance.current.currency === activeCurrency;\n                                const opacity = enabled ? 1.0 : 0.35;\n                                const color = enabled\n                                    ? TokenChart.getColor(index)\n                                    : 'transparent';\n                                const logo = acc.bankLogo || ironLogo;\n                                const amount = acc.balance.current.value;\n                                const currentAccount = enabledAccounts.accounts.find(\n                                    current => current.id === acc.id,\n                                );\n                                return (\n                                    <AccountItem\n                                        key={index}\n                                        acc={acc}\n                                        index={index}\n                                        opacity={opacity}\n                                        color={color}\n                                        logo={logo}\n                                        amount={amount}\n                                        enabled={enabled}\n                                        currentAccount={currentAccount}\n                                    />\n                                );\n                            })}\n                            {enabledAccounts.accounts.length ? (\n                                <div className=\"Account-totals\">\n                                    <span className=\"Account-totals-label\">Account Totals (\n                                        <strong>{` ${enabledAccounts.currency} `}</strong>\n                                        )\n                                    </span>\n                                    <span className=\"Account-totals-amount\">\n                                        <FormattedNumber\n                                            value={enabledAccounts.total || 0}\n                                            style=\"currency\"\n                                            currency={enabledAccounts.currency}\n                                            minimumFractionDigits={2}\n                                            maximumFractionDigits={2} />\n                                    </span>\n                                </div>\n                            ) : ''}\n                        </div>\n                    </div>\n                </div>\n                <Transactions\n                    accounts={accounts}\n                    onActiveAccountChange={this.onActiveAccountChange}\n                    activeAccountId={activeAccountId}\n                    onDateChange={this.onDateChange}\n                    startDate={this.state.startDate}\n                    endDate={this.state.endDate}\n                    onStartDateSelect={this.onStartDateSelect}\n                    selectedStartDate={this.state.selectedStartDate}\n                />\n            </div>\n        );\n    }\n}\n\nPaired.propTypes = {\n    history: PropTypes.object,\n    accounts: PropTypes.array,\n    activeCurrency: PropTypes.string,\n    activeAccountId: PropTypes.string,\n    tokenData: PropTypes.object,\n    customSource: PropTypes.object,\n    devKey: PropTypes.string,\n    dispatch: PropTypes.func.isRequired,\n    aisApiVersion: PropTypes.string,\n    consentId: PropTypes.string,\n};\n\nconst mapStateToProps = state => ({\n    accounts: state.accounts,\n    activeCurrency: state.activeCurrency,\n    activeAccountId: state.activeAccountId,\n    tokenData: state.tokenData,\n    customSource: state.customSource,\n    devKey: state.devKey,\n    aisApiVersion: state.customSource.aisApiVersion,\n    consentId: state.consentId,\n});\n\nexport default connect(mapStateToProps)(showIfLocation(Paired));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Link, showIfLocation} from 'SimpleHistory';\nimport {connect} from 'react-redux';\nimport './Error.css';\n\nconst Error = ({\n    error,\n}) => {\n    const errorMessage = error === 'FAILURE_NO_ACCOUNTS'\n        ? 'No accounts available for access'\n        : error;\n    return (\n        <div className=\"Error\">\n            <h1 className=\"Error-title\">Error on access request</h1>\n            <div className=\"Error-desc\">\n                <p>\n                    {`There was as error requesting access: ${errorMessage}.`}\n                    <br />\n                    {'Please '}\n                    <Link to=\"/account\">try again</Link>\n                </p>\n            </div>\n        </div>\n    );\n};\n\nError.propTypes = {\n    error: PropTypes.string.isRequired,\n};\n\nconst mapStateToProps = state => {\n    return {\n        error: state.accessError,\n    };\n};\n\nexport default showIfLocation(connect(mapStateToProps)(Error));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Provider} from 'react-redux';\nimport {withHistory} from 'SimpleHistory';\nimport Outer from 'components/Pages';\nimport Login from 'components/Pages/Login';\nimport Account from 'components/Pages/Account';\nimport Unpaired from 'components/Pages/Unpaired';\nimport Paired from 'components/Pages/Paired';\nimport Error from 'components/Pages/Error';\nimport {IntlProvider} from 'react-intl';\nimport {hotModule} from 'config/constants';\n\nclass App extends React.Component {\n    render() {\n        return (\n            <Provider store={this.props.store}>\n                <IntlProvider locale=\"en\">\n                    <Outer path={/^\\//}>\n                        <Login path={/^\\/$/}></Login>\n                        <Account path={/^\\/account/}>\n                            <Unpaired path={/^\\/account$/}></Unpaired>\n                            <Paired path={/^\\/account\\/paired/}></Paired>\n                            <Error path={/^\\/account\\/error/}></Error>\n                        </Account>\n                    </Outer>\n                </IntlProvider>\n            </Provider>\n        );\n    }\n}\n\nApp.propTypes = {\n    history: PropTypes.object,\n    store: PropTypes.object,\n};\n\nApp.defaultProps = {\n    store: PropTypes.object,\n};\n\nconst HistoryApp = withHistory(App);\n\nexport default hotModule\n    && require('react-hot-loader').hot(module)(HistoryApp)\n    || HistoryApp;\n","let browserEnv = {};\n\n// Allow configuration of environment variables through browser environment\nif (window !== undefined && window.BROWSER_ENV !== undefined) {\n    browserEnv = window.BROWSER_ENV;\n}\nexport const TOKEN_ENV = browserEnv.tokenEnv;\n\nexport const hotModule = browserEnv.hotModule;\n\nexport const WEB_APP_ENV = browserEnv.webAppEnv || TOKEN_ENV;\n\nexport const currencySymbols = browserEnv.currencySymbols;\n\nexport const DEV_KEY = 'd3b08f1f-83d9-4969-98f0-73c887e95a8d';\n\nexport const transactionsLimit = browserEnv.transactionsLimit;\n\nexport const version = '2.0';\n\nexport const TOKEN_API_URL = TOKEN_ENV !== 'prd' ?\n    `https://api.${TOKEN_ENV}.token.io` :\n    'https://api.token.io';\n\nexport const APP_SDK_ENV = (() => {\n    switch (TOKEN_ENV) {\n        case 'sandbox':\n            return 'sandbox';\n        case 'stg':\n            return 'staging';\n        case 'dev':\n            return 'development';\n        case 'perf':\n            return 'performance';\n        case 'prd':\n            return 'production';\n        default:\n            return TOKEN_ENV;\n    }\n})();\n","import { combineReducers } from 'redux';\n\nconst accounts = (state = [], action) => {\n    switch (action.type) {\n        case 'SET_ACCOUNTS':\n            return action.accounts || [];\n        default:\n            return state;\n    }\n};\n\nconst transactions = (state = {}, action) => {\n    switch (action.type) {\n        case 'APPEND_TRANSACTIONS':\n            if (!state[action.accountId]) {\n                return {\n                    ...state,\n                    [action.accountId]: {\n                        transactions: action.transactions,\n                        offset: action.offset,\n                    },\n                };\n            } else {\n                return {\n                    ...state,\n                    [action.accountId]: {\n                        ...state[action.accountId],\n                        transactions: [\n                            ...state[action.accountId].transactions,\n                            ...action.transactions,\n                        ],\n                        offset: state[action.accountId].offset === action.offset\n                            ? state[action.accountId].offset : action.offset,\n                    },\n                };\n            }\n        case 'SET_ACCOUNTS_TRANSACTIONS':\n            return {\n                ...state,\n                [action.accountId]: {\n                    ...state[action.accountId],\n                    transactions: [\n                        ...action.transactions,\n                    ],\n                    offset: state[action.accountId].offset === action.offset\n                        ? state[action.accountId].offset : action.offset,\n                },\n            };\n        case 'SET_ACCOUNTS':\n            return {};\n        default:\n            return state;\n    }\n};\n\nconst activeCurrency = (state = '', action) => {\n    switch (action.type) {\n        case 'SET_ACTIVE_CURRENCY':\n            return action.currency;\n        case 'SET_ACCOUNTS':\n            if (!action.accounts.length) return '';\n            return action.accounts.find(acc =>\n                acc.balance.current.currency === state,\n            ) ? state\n                : action.accounts[0].balance.current.currency;\n        default:\n            return state;\n    }\n};\n\nconst activeAccountId = (state = '', action) => {\n    switch (action.type) {\n        case 'SET_ACTIVE_ACCOUNT':\n            return action.accountId;\n        case 'SET_ACCOUNTS':\n            if (!action.accounts.length) return '';\n            if (!state) return action.accounts[0].id;\n            return action.accounts.find(acc =>\n                acc.id === state,\n            ) ? state\n                : action.accounts[0].id;\n        default:\n            return state;\n    }\n};\n\nconst tokenData = (state, action) => {\n    if (!state) {\n        if (localStorage.state !== undefined\n            && JSON.parse(localStorage.state).tokenData !== undefined) {\n            state = JSON.parse(localStorage.state).tokenData;\n        } else {\n            state = {};\n        }\n    }\n    switch (action.type) {\n        case 'SET_TOKEN_DATA':\n            localStorage.state = JSON.stringify({\n                tokenData: action.tokenData,\n            });\n            return action.tokenData || {};\n        case 'SET_TOKEN_ID':\n            localStorage.state = JSON.stringify({\n                tokenData: action.tokenData,\n            });\n            return {\n                ...state,\n                tokenId: action.tokenId,\n            };\n        default:\n            return state;\n    }\n};\n\nconst accessError = (state = '', action) => {\n    switch (action.type) {\n        case 'ACCESS_ERROR':\n            return action.errorMessage;\n        default:\n            return state;\n    }\n};\n\nconst devKey = (state = localStorage.getItem('dk') || '', action) => {\n    switch (action.type) {\n        case 'SET_DEV_KEY':\n            return action?.devKey;\n        default:\n            return state;\n    }\n};\n\nconst customSource = (state = {}, action) => {\n    switch (action.type) {\n        case 'SET_WEB_APP_ENABLED':\n            return {\n                ...state,\n                webAppEnabled: action.webAppEnabled,\n            };\n        case 'SET_SOURCE_BANK_ID':\n            return {\n                ...state,\n                source: {\n                    bankId: action.bankId,\n                },\n            };\n        case 'SET_MEMBER_TYPE':\n            return {\n                ...state,\n                memberType: action.memberType,\n            };\n        case 'SET_RECEIVE_CALLBACK':\n            return {\n                ...state,\n                receiveCallback: action.receiveCallback,\n            };\n        case 'SET_SELECTED_BANK_INFO':\n            return {\n                ...state, selectedBank: action.bankInfo,\n            };\n        case 'SET_CREDENTIALS':\n            return {\n                ...state, credentials: action.credentials,\n            };\n        case 'SET_WAV2_ENABLED':\n            return {\n                ...state, wav2Enabled: action.wav2Enabled,\n            };\n        case 'SET_AIS_API_VERSION':\n            return {\n                ...state, aisApiVersion: action.aisApiVersion,\n            };\n        default:\n            return state;\n    }\n};\n\nconst consentId = (state = '', action) => {\n    switch (action.type) {\n        case 'SET_CONSENT_ID':\n            return action.consentId;\n        default:\n            return state;\n    }\n};\n\nconst app = combineReducers({\n    devKey,\n    accounts,\n    transactions,\n    activeCurrency,\n    activeAccountId,\n    tokenData,\n    accessError,\n    customSource,\n    consentId,\n});\n\nexport default app;\n","import React from 'react';\nimport {render} from 'react-dom';\nimport {createStore} from 'redux';\nimport appState from 'reducers';\nimport './main.css';\nimport {TOKEN_ENV} from 'config/constants';\nimport 'assets/favicon.ico';\nimport 'assets/finvertex-avatar.png';\nimport {loadState, saveState, syncLocalStorageVersion} from 'util.js';\n\nif (!global.Intl) { // Polyfill for intl\n    require('intl');\n    require('intl/locale-data/jsonp/en.js');\n}\n\nimport App from 'components/App';\n\n// Read data if present in query params to initialize the redux state\nconst defaultData = {\n    tokenData: location.search && JSON.parse(location.search.substring(1).split('&').reduce(\n        (acc, o) => {\n            const [k, v] = o.split('=');\n            return {...acc, [k]: decodeURIComponent(v)};\n        }, {},\n    ).data),\n} || undefined;\n\nsyncLocalStorageVersion();\n\nconst persistedState = loadState();\n\nconst aggregatedState = {\n    ...persistedState,\n    ...defaultData,\n};\n\nlet store;\nif (TOKEN_ENV === 'local' || TOKEN_ENV === 'dev') {\n    // Enable for development\n    store = createStore(\n        appState,\n        aggregatedState,\n        window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n} else {\n    // Enable for production\n    store = createStore(appState, aggregatedState);\n}\n\nstore.subscribe(() => {\n    const state = store.getState();\n    saveState({\n        accounts: state.accounts,\n        transactions: state.transactions,\n        activeCurrency: state.activeCurrency,\n        activeAccountId: state.activeAccountId,\n        tokenData: state.tokenData,\n        accessError: state.accessError,\n        devKey: state.devKey,\n        customSource: state.customSource,\n    });\n});\n\nrender(\n    <App store={store} history={history} />,\n    document.getElementById('app'),\n);\n","import axios from 'axios';\nimport { version } from './config/constants';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const INITIATED_BY_HEADER = {\n    'token-trace-initiated-by': 'FRONTEND',\n};\n\nconst aispInstance = axios.create({\n    baseURL: window.location.origin,\n    headers: INITIATED_BY_HEADER,\n});\n\nexport const AispClient = {\n    getAispAlias: memberType => {\n        return new Promise(resolve => {\n            aispInstance({\n                method: 'post',\n                url: '/aisp',\n                data: { memberType: memberType },\n            }).then(resp => {\n                resolve(resp.data.alias);\n            });\n        });\n    },\n    getTokenRequestUrl: async (\n        devKey, memberType, webAppEnabled, sourceAccount, credentials, webappV2Enabled,\n    ) => {\n        const result = await aispInstance({\n            method: 'post',\n            url: '/getTokenRequestUrl',\n            data: {\n                devKey, memberType, webAppEnabled, sourceAccount, credentials, webappV2Enabled,\n            },\n        });\n        return result.data;\n    },\n    getConsentUrl: async ({ bankId, permissions, transactionHistoryDays }) => {\n        const result = await aispInstance({\n            method: 'post',\n            url: '/v2/getConsentUrl',\n            data: { bankId, permissions, transactionHistoryDays },\n        });\n        return result.data;\n    },\n    confirmConsentAuthentication: (consentId, query) => {\n        return aispInstance({\n            method: 'post',\n            url: '/v2/confirmConsentAuthentication',\n            data: { consentId, query },\n        }).then(res => res.data);\n    },\n    pullAccountsV2: () => {\n        return aispInstance({\n            method: 'post',\n            url: '/v2/getAccounts',\n        }).then(res => res.data);\n    },\n    pullTransactionsV2: (accountId, offset, startDate, endDate) => {\n        return aispInstance({\n            method: 'post',\n            url: '/v2/getTransactions',\n            data: { accountId, offset, startDate, endDate },\n        }).then(res => res.data);\n    },\n    pullAuthorizedData: req => {\n        return aispInstance({\n            method: 'post',\n            url: '/getUserData',\n            data: req,\n        }).then(res => res.data);\n    },\n    pullAccountInfo: req => {\n        return aispInstance({\n            method: 'post',\n            url: '/getAccountInfo',\n            data: req,\n        }).then(res => res.data);\n    },\n    pullTransactions: (\n        tokenData,\n        accountId,\n        offset,\n        startDate,\n        endDate,\n        customerTrackingMetadata,\n    ) => {\n        return aispInstance({\n            method: 'post',\n            url: '/getTransactions',\n            data: {\n                tokenId: tokenData['tokenId'],\n                requestId: tokenData['request-id'],\n                accountId,\n                offset,\n                startDate,\n                endDate,\n                customerTrackingMetadata,\n            },\n        }).then(res => res.data);\n    },\n};\n\nexport const filterByCurrency = (a, currency) => {\n    let accounts = [];\n    a.map((acc, i) => {\n        if (acc.balance.current.currency === currency) {\n            acc.index = i;\n            accounts.push(acc);\n        }\n    });\n    const total = accounts.reduce(\n        (lastVal, acc) => lastVal + parseFloat(acc.balance.current.value),\n        0.0,\n    );\n    accounts = accounts.map(acc => {\n        acc.percentage = acc.balance.current.value > 0\n            ? Math.round(parseFloat(acc.balance.current.value) / total * 100)\n            : 0;\n        return acc;\n    });\n    return {\n        accounts,\n        total,\n        currency,\n    };\n};\n\nexport const getAvailableCurrencies = a => Array.from(new Set(\n    a.map(acc => acc.balance.current.currency),\n));\n\nexport const responsive = w => ({ phone, tablet, def }) => {\n    switch (true) {\n        case w < 640:\n            return phone;\n        case w < 960:\n            return tablet;\n        default:\n            return def;\n    }\n};\n\nexport const getPluralizedString = (count, string, suffix = 's') =>\n    `${count} ${string}${count !== 1 ? suffix : ''}`;\n\nexport const sortByKey = (arr, key) => arr.sort((a, b) => {\n    const x = a[key];\n    const y = b[key];\n    return (x < y)\n        ? 1\n        : (x > y)\n            ? -1\n            : 0;\n});\n\nexport const loadState = () => {\n    try {\n        const serializedState = localStorage.getItem('state');\n        if (!serializedState) {\n            return undefined;\n        }\n        return JSON.parse(serializedState);\n    } catch (e) {\n        return undefined;\n    }\n};\n\nexport const saveState = state => {\n    try {\n        const serializedState = JSON.stringify(state);\n        localStorage.setItem('state', serializedState);\n    } catch (e) {\n        // Ignore write errors.\n    }\n};\n\nexport const syncLocalStorageVersion = () => {\n    const localStorageVersion = localStorage.getItem('version');\n    if (!localStorageVersion || localStorageVersion !== version) {\n        localStorage.clear();\n        localStorage.setItem('version', version);\n        location.reload();\n    }\n};\n\nexport const getDeviceId = () => {\n    let deviceId = localStorage.getItem('deviceId');\n    if (!deviceId) {\n        deviceId = uuidv4();\n        localStorage.setItem('deviceId', deviceId);\n    }\n    return deviceId;\n};\n\nexport const getUserAgent = () => {\n    return window.navigator.userAgent;\n};\n\nexport const validateCredentials = (\n    actualCredentials,\n    requiredCredentials,\n    bankId,\n    preCondition,\n) => {\n    if (bankId === '' || !actualCredentials || !preCondition) {\n        return undefined;\n    }\n    const actualKeys = [];\n    if (requiredCredentials) {\n        requiredCredentials.map(data => actualKeys.push(data.id));\n        const credentials = Object.keys(actualCredentials)\n            .filter(k => actualKeys.includes(k))\n            .reduce((res, key) => (res[key] = actualCredentials[key], res), {});\n        return credentials;\n    } else {\n        return undefined;\n    }\n};\n\nexport const fetchBankInfo = async (url, devKey) => {\n    return await axios.get(`${url}`, {\n        headers: {\n            ...INITIATED_BY_HEADER,\n            'token-dev-key': devKey ? devKey.trim() : 'global-test',\n        },\n    });\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_token_io_lib_webpack\"] = self[\"webpackChunk_token_io_lib_webpack\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], () => (__webpack_require__(19001)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","history","createBrowserHistory","HistoryContext","React","withHistory","Component","props","Consumer","_extends","showIfLocation","Sub","_React$Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","_this$props","this","path","test","location","pathname","_this","unlisten","listen","forceUpdate","isPath","propTypes","PropTypes","Link","_ref","to","_objectWithoutProperties","_excluded","href","onClick","e","preventDefault","push","MenuDrawer","_Component","state","open","setState","_this2","children","iconColor","drawer","CSSTransition","classNames","timeout","enter","exit","className","closeDrawer","openDrawer","xmlns","width","height","fill","d","TransitionGroup","defaultProps","cx","_bindInstanceProperty","call","style","defaults","viewBox","strokeWidth","SpinnerSVG","_ref$color","color","strokeMiterlimit","cy","r","stroke","strokeDasharray","transform","SpinnerSmall","_ref3","SpinnerImage","_ref4","message","white","Fragment","src","SpinnerWithLockSVG","_ref5","_ref5$color","_excluded2","x","y","rx","id","fillRule","clipRule","mask","Spinner","_ref7","SmallSpinner","_defineProperty","TextInput__inner__loader","Custom_loader","Custom_spinner","TextInput","placeholder","onChange","displaySpinner","onKeyDown","pattern","autoFocus","required","autoComplete","onFocus","target","select","isInputFocused","onBlur","_get","concat","isRequired","Credentials","setCredentials","credentialsValue","requiredCredentials","_mapInstanceProperty","data","displayName","setAccounts","accounts","type","setAccountTransactions","accountId","transactions","offset","setActiveCurrency","currency","setActiveAccount","appendTransactions","setTokenData","tokenData","setTokenId","tokenId","setAccessError","error","errorMessage","setDevKey","devKey","setWebAppEnabled","webAppEnabled","setSourceBankId","bankId","setMemberType","memberType","setReceiveCallback","receiveCallback","setSelectedBankInfo","bankInfo","credentials","setWAV2Enabled","wav2Enabled","setAisApiVersion","aisApiVersion","setConsentId","consentId","WebAppSelection","_context","dispatch","clearTimeout","timer","_setTimeout","_this$state$bankId","_this$state$bankId$va","TOKEN_API_URL","_trimInstanceProperty","fetchBankInfo","then","res","status","_res$data","_res$data$banks","banks","commonActions","_objectSpread","isValid","console","_error$response","_error$response2","response","_customSource$selecte","customSource","isType2Member","selectedBank","credentialFields","isOpen","confirming","confirm","_this$state$bankId2","_customSource$selecte2","_this$state$bankId3","getMemberType","validateCredentials","localStorage","setItem","input","prevProps","prevState","_prevState$bankId","_prevState$bankId$val","_this$state$bankId4","_this$state$bankId4$v","_prevState$devKey","_this$state$devKey","handleBankId","_this$state$bankId5","_this$props2","source","undefined","substring","_this$state$bankId6","_this$state$bankId7","_this$state$bankId8","getRequiredCreds","inner","onSubmit","defaultValue","ref","form","disabled","connect","Links","Outer","alt","role","Account","getChildren","TokenEnablerButtonV1","sourceAccount","text","onError","useDispatch","buttonRef","useRef","tokenControllerRef","buttonInstanceRef","useEffect","isMounted","addAccessButton","_addAccessButton","apply","_asyncToGenerator","_regeneratorRuntime","_callee3","token","_context3","prev","next","window","Token","abrupt","env","WEB_APP_ENV","current","destroy","warn","createTokenButton","label","hideLogo","createController","onSuccess","document","assign","bindButtonClick","createRequest","redirect","_callee","done","errorCb","tokenRequestUrl","AispClient","getTokenRequestUrl","sent","t0","stop","_x","_x2","_ref2","_callee2","_context2","getAispAlias","enable","_x3","desktop","TokenEnablerButtonV2","appControllerRef","_useState","useState","_useState2","_slicedToArray","fallbackMessage","setFallbackMessage","_useState3","_useState4","isDisabled","setIsDisabled","handleClick","useCallback","appModal","_yield$AispClient$get","redirectUrl","initApp","getConsentUrl","navigateToUrl","cleanUp","cleanupError","initializeController","appSdk","TokenApp","APP_SDK_ENV","buildController","onDone","_includesInstanceProperty","Unpaired","actions","isReady","TokenEnablerComponent","buttonText","err","bindActionCreators","actionCreators","PieChart","el","d3","Error","buildPieStructure","update","innerHTML","size","getBoundingClientRect","responsive","screenWidth","phone","tablet","def","radius","Math","min","scale","category20","pie","_sortInstanceProperty","layout","arc","svg","innerRadius","outerRadius","append","attr","_context4","innerWidth","dataSet","_filterInstanceProperty","acc","_parseFloat","balance","index","accountName","name","bankName","piedata","pathGroup","empty","selectAll","getColor","remove","d3color","colors","i","length","TransactionsListControls","activeAccountId","onActiveAccountChange","onDateChange","onStartDateSelect","selectedStartDate","max","Date","toISOString","split","TransactionsList","isLoading","onScroll","throttle","fetchTransactions","cancelFetch","addEventListener","removeEventListener","isDateChanged","startDate","endDate","_fetchTransactions","isDateRangeSelected","accountTransactions","customerTrackingMetadata","_transactions","newOffset","_args","deviceId","getDeviceId","userAgent","getUserAgent","pullTransactionsV2","pullTransactions","transactionsLimit","t1","innerHeight","scrollY","body","offsetHeight","_this$props3","_findIndexInstanceProperty","item","activeAccount","transition","backgroundColor","TokenChart","bankLogo","ironLogo","getPluralizedString","t","date","_parseInt","createdAtMs","toUTCString","replace","amount","currencyString","_concatInstanceProperty","currencySymbols","description","metadata","merchantName","merchantCategoryCode","FormattedNumber","abs","minimumFractionDigits","maximumFractionDigits","ConnectedTransactionsList","Transactions","AccountItem","opacity","logo","enabled","currentAccount","backgroundImage","percentage","AccountControls","currencies","activeCurrency","onCurrencyChange","updateChart","curr","Paired","_context5","_context6","drawChart","tokenPie","_isMounted","accountGraph","enabledAccounts","filterByCurrency","cur","_findInstanceProperty","_updateChart","_customSource$source","query","_yield$AispClient$pul","_yield$AispClient$pul2","accountIds","uniqueAccountIds","batchSize","startIndex","totalAccounts","allAccounts","_context8","endIndex","batchAccountIds","batchAccountPromises","batchAccounts","accountsWithBalance","_context9","_typeof","_URLSearchParams","toString","confirmConsentAuthentication","pullAccountsV2","pullAuthorizedData","_Array$from","_Set","_sliceInstanceProperty","_yield$AispClient$pul3","accountInfo","_context7","pullAccountInfo","accId","_Promise","_toConsumableArray","_this$props4","getAvailableCurrencies","accountControls","_context10","total","accessError","App","Provider","store","IntlProvider","locale","Login","HistoryApp","hotModule","require","module","browserEnv","BROWSER_ENV","TOKEN_ENV","tokenEnv","webAppEnv","version","app","combineReducers","getItem","action","JSON","parse","_JSON$stringify","global","Intl","defaultData","search","_reduceInstanceProperty","o","_o$split","_o$split2","k","v","decodeURIComponent","syncLocalStorageVersion","aggregatedState","loadState","createStore","appState","__REDUX_DEVTOOLS_EXTENSION__","subscribe","getState","saveState","render","getElementById","_getConsentUrl","_getTokenRequestUrl","INITIATED_BY_HEADER","aispInstance","axios","create","baseURL","origin","headers","resolve","method","url","resp","alias","webappV2Enabled","result","_x4","_x5","_x6","permissions","transactionHistoryDays","_x7","req","requestId","a","lastVal","round","w","count","string","suffix","serializedState","localStorageVersion","clear","reload","uuidv4","navigator","actualCredentials","preCondition","actualKeys","_Object$keys","get","_x8","_x9","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","n","getter","__esModule","definition","defineProperty","enumerable","g","globalThis","Function","hmd","set","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""}