@traund/orquezta-widget-calculator 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +23 -17
- package/dist/index.js.map +1 -1
- package/dist/module.js +23 -17
- package/dist/module.js.map +1 -1
- package/package.json +1 -1
- package/src/calculatorV2.js +8 -4
- package/src/core/endpoints.js +1 -1
- package/src/core/signature.js +1 -2
- package/src/index.js +2 -0
- package/src/simulator.js +3 -3
- package/src/utils/calculateHelper.js +3 -2
- package/src/utils/operationsHelper.js +5 -4
- package/src/utils/rateHelper.js +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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neA,2CAAe;IACb,QAAQ;QACN,QAAQ;YACN,iBAAiB;YACjB,eAAe;YACf,gBAAgB;QAClB;QACA,UAAU;YACR,iBAAiB;YACjB,uBAAuB;YACvB,gBAAgB;YAChB,sBAAsB;YACtB,eAAe;YACf,qBAAqB;QACvB;QACA,WAAW;QACX,WAAW;IACb;IACA,WAAW;QACT,eAAe;QACf,cAAc;YACZ,aAAa;YACb,gBAAgB;QAClB;QACA,sBAAsB;IACxB;IACA,SAAS;QACP,cAAc;QACd,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,cAAc;QACd,gBAAgB;QAChB,MAAM;QACN,IAAI;QACJ,OAAO;QACP,gBAAgB;QAChB,WAAW;QACX,aAAa;QACb,kBAAkB;QAClB,aAAa;YAAC;YAAU;YAAW;YAAU;SAAQ;QACrD,mBAAmB;QACnB,aAAa;QACb,cAAc;QACd,UAAU;YACR,OAAO;YACP,aAAa;gBACX;gBACA;gBACA;aACD;QACH;QACA,MAAM;YACJ,OAAO;YACP,WAAW;gBACT;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,SAAS;gBACP;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA,YAAY;QACV,YAAY;QACZ,eAAe;QACf,OAAO;QACP,SAAS;IACX;IACA,aAAa;QACX,YAAY;QACZ,aAAa;QACb,oCACE;QACF,iBAAiB;IACnB;IACA,eAAe;QACb,YAAY;QACZ,cAAc;QACd,qBAAqB;QACrB,iBAAiB;QACjB,wBAAwB;QACxB,4BACE;IACJ;IACA,YAAY;QACV,sBACE;QACF,qBAAqB;QACrB,qBAAqB;QACrB,OAAO;QACP,aAAa;QACb,yBAAyB;QACzB,WAAW;QACX,yBAAyB;QACzB,aACE;QACF,qBAAqB;QACrB,uCACE;IACJ;IACA,cAAc;QACZ,eAAe;QACf,gBAAgB;QAChB,0BACE;QACF,gCACE;IACJ;IACA,cAAc;QACZ,eAAe;QACf,iBAAiB;IACnB;IACA,SAAS;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;IACR;IACA,QAAQ;Q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","sources":["src/index.js","src/calculatorV2.js","src/locale/en.js","src/locale/es.js","src/firebase.config.js","src/core/backend-settings.js","src/data/countries.js","src/countdown/index.js","src/core/endpoints.js","src/helpers/flagsHelpers.js","src/helpers/taxDiscount.js","src/core/signature.js","src/simulator.js","src/model/transferUser.js","src/model/transferOption.js","src/model/enums.js","src/utils/calculateHelper.js","src/utils/rateHelper.js","src/utils/operationsHelper.js","src/core/transaction-settings.js","src/core/working-setup.js","src/components/inputAmount.js","src/components/componentStyles.js","src/components/fees.jsx","src/components/disclaimers.jsx","src/model/transferDetail.js","src/helpers/paymentMethodHelper.js","src/components/paymentMethodSelector.jsx","src/components/simulatorStyles.js"],"sourcesContent":["import Calculator from \"./calculatorV2\";\nimport Simulator from \"./simulator\";\n\nfunction WrappedSimulator(props) {\n return <Simulator\n testMode={props.testMode}\n locale={props.locale}\n appUrl={props.appUrl}\n startUrl={props.startUrl}\n onlyView={props.onlyView ?? false}\n initialCountryTo={props.initialCountryTo ?? \"PE-USD\"}\n reference={props.reference || \"\"}\n config={props.config}\n />;\n}\n\nfunction WrappedCalculator(props) {\n return (\n <Calculator\n testMode={props.testMode}\n locale={props.locale}\n startUrl={props.startUrl}\n couponCode={props.couponCode || \"\"}\n onlySimulation={props.onlySimulation ?? false}\n reference={props.reference || \"\"}\n config={props.config}\n />\n );\n}\n\nexport { WrappedCalculator, WrappedSimulator };","import React, { Component, Fragment } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport NativeSelect from \"@material-ui/core/NativeSelect\";\nimport InputBase from \"@material-ui/core/InputBase\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport TextField from \"@material-ui/core/TextField\";\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Button from \"@material-ui/core/Button\";\nimport {Divider} from \"@material-ui/core\";\nimport HighlightOffOutlinedIcon from \"@material-ui/icons/HighlightOffOutlined\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { matchSorter } from \"match-sorter\";\nimport en from \"./locale/en\";\nimport es from \"./locale/es\";\nimport loadFirebaseDB from \"./firebase.config\";\nimport axios from \"axios\";\nimport { countries } from \"./data/countries\";\nimport Timer from \"./countdown/index\";\nimport Endpoints from \"./core/endpoints\";\nimport FlagsHelpers from \"./helpers/flagsHelpers\";\nimport { applyTaxDiscount } from \"./helpers/taxDiscount\";\nimport { getSignatureHeader } from \"../src/core/signature\";\nclass Calculator extends Component {\n state = {\n config: this.props.config ,\n testMode: this.props.testMode,\n sendValue: 100.0,\n sendValueUSD: 100.0,\n convertValue: 100.0,\n convertValueCrypto: 100.0,\n receivedValue: 0.0,\n fees: {},\n fromExchangeRate: 0.00,\n couponValue: this.props.onlySimulation ? \"\" : this.props.couponCode,\n fromCountryValue: \"US\",\n fromCurrencyValue: \"USD\",\n toCountryValue: \"PE-USD\",\n toCurrencyValue: \"USD\",\n isLoading: false,\n storeId: null,\n email: \"\",\n hasError: false,\n hasAmountError: false,\n hasEmailError: false,\n hasValidCoupon: true,\n isValid: true,\n isSuccess: false,\n showCallToAction: false,\n countryError: {\n hasErrors: false,\n value: \"\",\n },\n calculator: {},\n minFromValue: 20,\n maxFromValue: 5000,\n minToValue: 80,\n maxToValue: 20000,\n plus: 0,\n couponRedeemed: false,\n typingTimeout: 0,\n typingTimeoutCoupon: 0,\n calculating: true,\n banks: false,\n loadingTo: true,\n loadingFrom: false,\n recalculate: false,\n paymentMethods: [],\n exchangeRateLabel: \"x\",\n exchangeRate: 0.0,\n isUsdt: false,\n networkFee: 0.0,\n paypalFee: 0.0,\n traundFee: 0.0,\n totalFees: 0.0,\n showTotalFees: false,\n isCountryFromPayPal: false,\n onlySimulation: this.props.onlySimulation,\n reference:this.props.reference,\n taxSender: 0.00,\n taxReceiver: 0.00\n };\n\n ENDPOINTS = new Endpoints(this.state.testMode,this.state.config);\n\n constructor(props) {\n super(props);\n this.unsubscribe = [];\n }\n\n async componentDidMount() {\n //if (db) db.clearPersistence();\n const firebase = await loadFirebaseDB(this.state.testMode,this.state.config);\n\n const db = firebase.firestore();\n\n this.subscribeCalculatorConfig(db);\n\n if (\n !sessionStorage.getItem(`storeId`) ||\n sessionStorage.getItem(`storeId`) == null ||\n sessionStorage.getItem(`storeId`) == undefined ||\n sessionStorage.getItem(`storeId`) == \"\"\n ) {\n await this.createTransaction(db);\n } else {\n await this.setState({ storeId: sessionStorage.getItem(`storeId`) });\n }\n\n this.calculate(\"initial\");\n\n this.subscribeTransaction(db);\n\n // this.unloadListener(db);\n }\n\n componentWillUnmount() {\n this.unsubscribe && this.unsubscribe.map((unsubscribe) => unsubscribe());\n clearTimeout(this.state.recalc);\n }\n \n setIdForPaymentMethods(payments) {\n if (payments) {\n let paymentsWithId = payments.map((el) => {\n return {\n ...el,\n id: el.name.replace(/ /g, \"\").toLowerCase(),\n };\n });\n\n const active = paymentsWithId.find(payment => payment.isActive);\n if (active) {\n if (active.id === 'trc20') {\n this.setState({ isUsdt: true });\n }\n }\n\n return paymentsWithId;\n }\n\n return false;\n }\n\n createTransaction = async (db) => {\n let model = {\n coupon: this.state.couponValue,\n from: {\n amount: +this.state.sendValue,\n country: this.state.fromCountryValue,\n currency: this.state.fromCurrencyValue,\n },\n to: {\n amount: +this.state.receivedValue,\n country: this.state.toCountryValue,\n currency: this.state.toCurrencyValue,\n },\n timestamp: new Date(),\n };\n\n try {\n const transaction = await db.collection(\"transactions\").add(model);\n await this.setState({ storeId: transaction.id });\n sessionStorage.setItem(\"storeId\", `${transaction.id}`);\n } catch (e) {\n this.setState({ hasError: true });\n }\n };\n\n addLabelToPaymentMethods = (paymentMethods) => {\n if (paymentMethods) {\n return paymentMethods.map(paymentMethod => ({ ...paymentMethod, label: this.paymentMethodLabel(paymentMethod.name) }));\n }\n }\n\n paymentMethodLabel = (paymentMethodName) => {\n const content = this.props.locale === 'es' ? es : en;\n const labels = {\n Zelle: 'Zelle',\n BBVABank: content.banks.bbva,\n STP: 'STP',\n //BANK: 'BANK',\n CreditBankOfPeru: content.banks.bcp,\n Interbank: 'Interbank',\n ScotiabankPeru: content.banks.scotiabank_peru,\n WesternDiscountBank: content.banks.western_discount_bank,\n Provincial: 'Provincial',\n Mercantil: 'Mercantil',\n Banesco: 'Banesco',\n UalaNew: 'Ualá',\n MercadoPagoNew: 'Mercado Pago',\n bank: 'Otra entidad financiera (CBU)'\n }\n return paymentMethodName in labels ? labels[paymentMethodName] : paymentMethodName;\n }\n\n subscribeTransaction = async (db) => {\n try {\n const transactions = await db\n .collection(\"transactions\")\n .doc(\n `${this.state.storeId\n ? this.state.storeId\n : sessionStorage.getItem(\"storeId\")\n }`\n )\n .onSnapshot(async (transaction) => {\n const data = await transaction.data();\n if (data) {\n const { from, to } = data;\n let receivedValue = to.amount;\n\n if (to.paymentMethods && to.paymentMethods.length > 0) {\n const element = to.paymentMethods.find(element => element.isActive);\n if (element) {\n receivedValue = element.isWallet ? element.amountCrypto : element.amount;\n }\n }\n\n let {\n newAmountSender,\n newAmountReceiver,\n appliedDiscountSender,\n appliedDiscountReceiver\n } = applyTaxDiscount(from.country, to.country, +this.state.sendValue, to.amount);\n \n receivedValue = (+newAmountReceiver).toFixed(2);\n \n await this.setState({\n sendValue: newAmountSender + appliedDiscountSender,\n convertValue: from.amountConverted,\n receivedValue: receivedValue,\n fees: from.fees,\n fromExchangeRate: from.exchangeRate,\n fromCurrencyValue: from.currency,\n toCurrencyValue: to.currency,\n fromCountryValue: from.country === \"TR\" ? \"TRAUND\" : from.country,\n toCountryValue: to.country,\n coupon: data.coupon,\n plus: data.coupon ? data.promo : 0,\n couponRedeemed: false,\n banks: this.setIdForPaymentMethods(to.banks),\n paymentMethods: this.addLabelToPaymentMethods(this.setIdForPaymentMethods(to.paymentMethods)),\n taxSender: appliedDiscountSender,\n taxReceiver: appliedDiscountReceiver\n }, () => {\n this.showExchangeRate(receivedValue);\n this.updateLimits();\n this.addCoupon();\n });\n\n }\n });\n this.unsubscribe.push(transactions);\n } catch (e) {\n this.setState({ hasError: true });\n }\n };\n\n subscribeCalculatorConfig = async (db) => {\n try {\n const calculator = await db\n .collection(\"variables\")\n .onSnapshot(async (variable) => {\n let variables = {};\n\n await variable.forEach((doc) => {\n variables[doc.id] = doc.data();\n });\n\n if (Object.keys(variables).length > 0) {\n this.setState({\n showCallToAction: variables[\"event\"].show,\n calculator: variables[\"calculator\"],\n }, () => {\n const { timestamp, frequency } = variables[\"calculator\"];\n const currentTime = +new Date().getTime();\n const diference = Math.abs(currentTime - timestamp) / 1000;\n if (diference > frequency) this.updateCaculatorData(db);\n });\n }\n });\n this.unsubscribe.push(calculator);\n return calculator;\n } catch (e) {\n // this.setState({ hasError: true });\n }\n };\n\n _convertAmount = async (currency) => {\n try {\n if (currency == \"ARS\") {\n const { data } = await axios.get(`${this.ENDPOINTS.EXCHANGE.getUSDBlueRate}`);\n let blueRate = await JSON.parse(JSON.stringify(data));\n blueRate = { result: blueRate.blue.value_sell };\n return blueRate;\n } else {\n const { data } = await axios.get(`${this.ENDPOINTS.EXCHANGE.getRate_v2(currency)}`);\n return { result: parseFloat(data['usd'][currency.toLowerCase()].toFixed(2)) };\n }\n } catch (e) {\n return e;\n }\n };\n\n updateCaculatorData = async (db) => {\n const countryModel = {\n active: false,\n countryMax: 5000,\n countryMin: 20,\n usdSell: 0,\n usdBuy: 0,\n rates: { from: 1, to: 1 },\n };\n\n const availableCountries = [\n \"USDT\",\n \"AR\",\n \"CL\",\n \"CO\",\n \"DO\",\n \"EC\",\n \"MX\",\n \"PE\",\n \"PE-USD\",\n \"US\",\n \"VE\",\n \"ES\",\n \"TRAUND\"\n ];\n\n const rates = {};\n let body = { timestamp: new Date().getTime(), frequency: 43200 };\n await Promise.all(\n availableCountries.map(async (country) => {\n let currency = \"\";\n body[country] = { ...this.state.calculator[country] };\n if (body[country] && body[country].countryTo && body[country]) {\n return await Promise.all(\n availableCountries.map(async (c) => {\n if (c != country)\n body[country].countryTo[c] = {\n usdSell: 0,\n usdBuy: 0,\n ...body[country].countryTo[c],\n };\n let usdRate = \"\";\n\n if (!rates.hasOwnProperty(c)) {\n let forceUSD = (c == \"USDT\" || c == \"TRAUND\");\n currency = countries.find(\n (country) => country.code == (forceUSD ? \"US\" : c)\n ).currency;\n\n usdRate =\n currency == \"USD\"\n ? { result: 1 }\n : await this._convertAmount(currency);\n\n rates[c] = { buy: 0, sell: 0 };\n }\n\n if (usdRate != \"\") {\n rates[c].buy = rates[c].sell = parseFloat(\n c == \"SV\" ? usdRate.result : usdRate.result.toFixed(2)\n );\n }\n if (body[country].countryTo[c]) {\n body[country].countryTo[c].usdBuy = rates[c].buy;\n body[country].countryTo[c].usdSell = rates[c].sell;\n body[country].countryTo[c].countryMax = parseFloat(\n c == \"SV\"\n ? countryModel.countryMax * 1\n : (\n Math.ceil(countryModel.countryMax * rates[c].buy) /\n rates[c].buy\n ).toFixed(2)\n );\n body[country].countryTo[c].countryMin = parseFloat(\n (c == \"SV\"\n ? countryModel.countryMin * 1\n : Math.ceil(countryModel.countryMin * rates[c].buy) /\n rates[c].buy\n ).toFixed(2)\n );\n }\n if (rates[country]) {\n body[country].usdBuy = rates[country].buy;\n body[country].usdSell = rates[country].sell;\n body[country].countryMax = parseFloat(\n (country == \"SV\"\n ? countryModel.countryMax * 1\n : Math.ceil(\n country == \"VE\"\n ? 1000\n : countryModel.countryMax * rates[country].buy\n ) / rates[country].buy\n ).toFixed(2)\n );\n body[country].countryMin = parseFloat(\n (country == \"SV\"\n ? countryModel.countryMin * 1\n : Math.ceil(countryModel.countryMin * rates[country].buy) /\n rates[country].buy\n ).toFixed(2)\n );\n }\n })\n );\n }\n })\n );\n await db.collection(\"variables\").doc(\"calculator\").update(body);\n };\n\n unloadListener = () => {\n window.onbeforeunload = () => {\n return this.beforeUnload();\n };\n };\n\n beforeUnload = async () => {\n sessionStorage.removeItem(\"storeId\");\n\n //if (db) db.clearPersistence();\n const firebase = await loadFirebaseDB(this.state.testMode);\n const db = firebase.firestore();\n return await db\n .collection(\"transactions\")\n .doc(`${this.state.storeId}`)\n .delete();\n };\n\n handleSend = async ({ target }) => {\n await this.setState({ sendValue: target.value });\n this.calculate();\n };\n\n handleReceived = async ({ target }) => {\n await this.setState({ receivedValue: target.value });\n this.calculate(\"to\");\n };\n\n handleCoupon = async ({ target }) => {\n if (this.state.typingTimeoutCoupon) {\n clearTimeout(this.state.typingTimeoutCoupon);\n }\n\n let initialAmount = parseFloat(this.state.receivedValue || 0);\n let plusAmount = parseFloat(this.state.plus || 0);\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n\n // this.setState({\n // hasValidCoupon: false,\n // });\n\n this.setState({\n typingTimeoutCoupon: setTimeout(() => {\n this.addCoupon();\n }, 1200),\n });\n\n this.setState({\n couponValue: target.value.toUpperCase(),\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n });\n };\n\n handleIsLoading = (value) => {\n this.setState({ isLoading: value });\n };\n\n handleToCountryValue = async (value) => {\n await this.setState({ toCountryValue: value, receivedValue: \"\" });\n await this.updateLimits();\n this.calculate(\"from\");\n this.setState({ banks: false });\n };\n\n handleToCurrencyValue = (value) => {\n this.setState({ toCurrencyValue: value });\n };\n\n handleFromCountryValue = async (value) => {\n await this.setState({ fromCountryValue: value, isCountryFromPayPal: value == \"PAYPAL\" });\n await this.updateLimits();\n this.calculate();\n };\n\n handleFromCurrencyValue = (value) => {\n this.setState({ fromCurrencyValue: value });\n };\n\n updateLimits = (selectedMethod) => {\n \n const countryData = this.state.calculator[this.state.fromCountryValue == \"TR\" ? \"TRAUND\" : this.state.fromCountryValue];\n let { countryMin, countryMax, usdBuy } = countryData;\n let { usdSell } = countryData.countryTo[this.state.toCountryValue || \"US\"];\n if (\n this.state.paymentMethods &&\n this.state.paymentMethods.length &&\n this.state.paymentMethods[0].isWallet &&\n this.state.paymentMethods[0].isActive\n ) {\n //usdBuy = 1;\n usdSell = 1;\n }\n\n this.setState({\n minFromValue:\n this.state.fromCountryValue == \"SV\"\n ? countryMin * usdBuy\n : Math.ceil(countryMin * usdBuy),\n maxFromValue:\n this.state.fromCountryValue == \"SV\"\n ? countryMax * usdBuy\n : Math.ceil(countryMax * usdBuy),\n minToValue:\n this.state.toCountryValue == \"SV\"\n ? countryMin * usdSell\n : Math.ceil(countryMin * usdSell),\n maxToValue:\n this.state.toCountryValue == \"SV\"\n ? countryMax * usdSell\n : Math.ceil(countryMax * usdSell),\n });\n };\n\n getCountryLimits = (countryFrom, countryTo) => {\n const countryData = this.state.calculator[countryFrom];\n let { countryMin, countryMax, usdBuy } = countryData;\n let { usdSell } = countryData.countryTo[countryTo];\n if (\n this.state.paymentMethods &&\n this.state.paymentMethods.length &&\n this.state.paymentMethods[0].isWallet &&\n this.state.paymentMethods[0].isActive\n ) {\n //usdBuy = 1;\n usdSell = 1;\n }\n\n let limits = {\n minFromValue: 0,\n maxFromValue: 0,\n minToValue: 0,\n maxToValue: 0,\n }\n\n if (countryFrom == \"SV\") {\n limits.minFromValue = countryMin * usdBuy;\n limits.maxFromValue = countryMax * usdBuy;\n } else {\n limits.minFromValue = Math.ceil(countryMin * usdBuy);\n limits.maxFromValue = Math.ceil(countryMax * usdBuy);\n }\n\n if (countryTo == \"SV\") {\n limits.minToValue = countryMin * usdSell;\n limits.maxToValue = countryMax * usdSell;\n } else {\n limits.minToValue = Math.ceil(countryMin * usdSell);\n limits.maxToValue = Math.ceil(countryMax * usdSell);\n }\n\n return limits;\n };\n\n calculateExchangeRate = (receivedValue) => {\n const {\n fromCurrencyValue,\n isUsdt,\n sendValue,\n isCountryFromPayPal\n } = this.state;\n\n if (sendValue != 0 && receivedValue != 0) {\n let rate = 0.00;\n let networkFee = 0.00;\n let countryFromFee = 0.00;\n\n let amountFromCalc = sendValue;\n let fee = this.state.calculator[this.state.fromCountryValue].fee ?\n this.state.calculator[this.state.fromCountryValue].fee\n : { type: \"A\", value: 0.00, enabled: false }\n\n if (fee.enabled) {\n countryFromFee = fee.type == \"A\" ? fee.value : (amountFromCalc * fee.value).toFixed(2);\n amountFromCalc = amountFromCalc - (networkFee + countryFromFee);\n }\n\n let amountFromUSD = fromCurrencyValue == \"USD\" ?\n amountFromCalc :\n parseFloat(amountFromCalc) / this.state.calculator[this.state.fromCountryValue].usdBuy;\n\n if (isUsdt) {\n rate = 1.00;\n networkFee = isCountryFromPayPal ? 2.00 : (Math.abs(amountFromUSD - receivedValue / rate).toFixed(2));\n } else {\n rate = isCountryFromPayPal ?\n rate = (Math.floor((receivedValue / amountFromCalc) * 100) / 100).toFixed(2) :\n (Math.floor((receivedValue / sendValue) * 100) / 100).toFixed(2);\n }\n\n if (rate < 1) {\n rate = (Math.floor((sendValue / receivedValue) * 100) / 100).toFixed(2);\n networkFee = (Math.abs(receivedValue * rate - amountFromUSD).toFixed(2));\n }\n\n this.setState({\n exchangeRate: rate,\n networkFee: networkFee,\n countryFromFee: countryFromFee,\n sendValueUSD: amountFromUSD\n });\n }\n };\n\n showExchangeRate = (receivedValue) => {\n const withoutFee = { amount: 0, value: 0, type: \"A\", amountUSD: 0, enabled: false };\n const {\n fromCurrencyValue,\n isUsdt,\n convertValue,\n fromExchangeRate,\n fees\n } = this.state;\n\n let convertValueCrypto = convertValue;\n let showTotalFees = false;\n let exchangeRateLabel = \"x\";\n\n if (convertValue != 0 && receivedValue != 0) {\n\n let feeTraund = fees.traund != null ? { ...fees.traund, enabled: true } : withoutFee;\n let feePaypal = fees.paypal != null ? { ...fees.paypal, enabled: true } : withoutFee;\n\n let rate = fromExchangeRate;\n let networkFee = 0.00;\n let traundFeeValue = feeTraund.enabled ? feeTraund.amount : 0.00;\n let paypalFeeValue = feePaypal.enabled ? feePaypal.amount : 0.00;\n\n showTotalFees = paypalFeeValue > 0;\n if (isUsdt) {\n rate = 1;\n networkFee = Math.abs(convertValue - receivedValue / rate);\n if (fromCurrencyValue != \"USD\") {\n {\n const { sendValue, paymentMethods } = this.state;\n if (paymentMethods.length && paymentMethods[0].isWallet) {\n networkFee = Math.abs(sendValue - Number(paymentMethods[0].amount) / fromExchangeRate)\n }\n }\n }\n convertValueCrypto = receivedValue;\n showTotalFees = true;\n }\n\n if (rate < 1) {\n exchangeRateLabel = \"÷\"\n rate = (Math.floor((convertValue / receivedValue) * 100) / 100).toFixed(2);\n networkFee = Math.abs(receivedValue * rate - convertValue);\n }\n let totalFees = traundFeeValue + paypalFeeValue + networkFee;\n\n this.setState({\n exchangeRateLabel: exchangeRateLabel,\n exchangeRate: rate,\n traundFee: traundFeeValue.toFixed(2),\n paypalFee: paypalFeeValue.toFixed(2),\n networkFee: networkFee.toFixed(2),\n showTotalFees: showTotalFees,\n totalFees: totalFees,\n convertValueCrypto: convertValueCrypto\n });\n }\n };\n\n calculate = async (source = \"from\") => {\n this.setState({\n recalculate: false,\n isUsdt: false,\n exchangeRate: 0.0,\n couponValue: this.state.couponValue,\n couponRedeemed: false,\n reference: this.state.reference ,\n plus: 0\n });\n if (this.state.recalc) {\n clearTimeout(this.state.recalc);\n }\n\n let {\n newAmountSender,\n } = applyTaxDiscount(this.state.fromCountryValue === \"TRAUND\" ? \"TR\" : this.state.fromCountryValue, this.state.toCountryValue, this.state.sendValue, this.state.receivedValue);\n\n let model = {\n coupon: this.state.couponValue,\n from: {\n amount: newAmountSender,\n country: this.state.fromCountryValue === \"TRAUND\" ? \"TR\" : this.state.fromCountryValue,\n currency: this.state.fromCurrencyValue,\n },\n to: {\n amount: this.state.receivedValue,\n country: this.state.toCountryValue,\n currency: this.state.toCurrencyValue,\n },\n };\n\n if (source == \"initial\" || source == \"end\") {\n const url = this.ENDPOINTS.OPERATIONS.calculate(this.state.storeId || sessionStorage.getItem('storeId'), \"from\");\n\n const res = await axios.post(\n url,\n model,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('POST', url, model,this.state.reference) \n },\n }\n );\n\n if (res) {\n await this.setState({\n loadingTo: false,\n loadingFrom: false,\n recalculate: true,\n recalc: setTimeout(() => {\n this.calculate();\n }, 5 * 60 * 1000),\n });\n }\n\n this.setState({\n loadingTo: false,\n loadingFrom: false,\n }, () => {\n this.addCoupon()\n });\n\n return;\n }\n\n if (this.state.typingTimeout) clearTimeout(this.state.typingTimeout);\n this.setState({\n typingTimeout: setTimeout(async () => {\n let validAmount = this.validateAmount(model.from.amount, \"from\");\n let validAmountTo = this.validateAmount(model.to.amount, \"to\");\n if (\n (validAmount && validAmountTo) ||\n (validAmount && source == \"from\") ||\n (validAmountTo && source == \"to\")\n ) {\n await this.setState({\n loadingTo: source == \"from\",\n loadingFrom: source == \"to\",\n couponValue: this.state.couponValue,\n couponRedeemed: false,\n plus: 0\n });\n\n if (source == \"from\")\n this.setState({\n receivedValue: \"\",\n });\n if (source == \"to\")\n this.setState({\n sendValue: \"\",\n });\n const url = this.ENDPOINTS.OPERATIONS.calculate(this.state.storeId, source)\n\n const res = await axios.post(\n url,\n model,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('POST', url, model,this.state.reference) \n },\n }\n );\n \n if (res) {\n await this.setState({\n loadingTo: false,\n loadingFrom: false,\n recalculate: true,\n recalc: setTimeout(() => {\n this.calculate();\n }, 5 * 60 * 1000),\n });\n }\n }\n }, 650),\n }, () => {\n this.addCoupon();\n });\n };\n\n async addCoupon() {\n let initialAmount = parseFloat(this.state.receivedValue || 0);\n let plusAmount = parseFloat(this.state.plus || 0);\n\n if (initialAmount == 0) return;\n\n if (this.state.couponValue == \"\") {\n this.setState({\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n let { data } = await this.validateCoupon(this.state.couponValue);\n let { isValid, settings } = data.data;\n\n if (!isValid) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n\n return;\n }\n\n let countryFrom = data.data.settings.countryFrom;\n let countryTo = data.data.settings.countryTo;\n\n if (\n countryFrom.length != 0 &&\n !countryFrom.includes(this.state.fromCountryValue)\n ) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"from\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n if (\n countryTo.length != 0 &&\n !countryTo.includes(this.state.toCountryValue)\n ) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"to\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n\n return;\n }\n\n if (this.state.isUsdt) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"to\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n let receivedRate = this.state.fromCurrencyValue == \"USD\" ?\n ((initialAmount - plusAmount) / this.state.sendValue) :\n (this.state.calculator[this.state.toCountryValue].usdBuy);\n\n let minAmount = parseInt(receivedRate * parseFloat(settings.minAmount || 0));\n let maxAmount = parseInt(receivedRate * parseFloat(settings.maxAmount || 0));\n let maxExchangeAmount = parseInt(receivedRate * parseFloat(settings.maxExchangeAmount || 0));\n\n if (initialAmount < minAmount || initialAmount > maxAmount) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"amount_from\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n if (!this.state.couponRedeemed) {\n let plus = 0;\n\n if (settings.discountType == \"A\") {\n plus = parseInt(receivedRate * parseFloat(settings.amount));\n } else if (settings.discountType == \"P\") {\n plus = Math.trunc(this.state.receivedValue * parseFloat(settings.amount)).toFixed(2);\n }\n\n if (maxExchangeAmount && (parseFloat(plus) > parseFloat(maxExchangeAmount))) {\n plus = parseFloat(maxExchangeAmount);\n }\n\n const newAmount = initialAmount + parseFloat(plus);\n\n this.setState({\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: newAmount,\n couponRedeemed: true,\n plus,\n });\n }\n }\n\n removeCoupon = async () => {\n let initialAmount = parseFloat(this.state.receivedValue || 0);\n let plusAmount = parseFloat(this.state.plus || 0);\n\n this.setState({\n couponValue: \"\",\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n }\n\n handleSubmitForm = async () => {\n this.handleIsLoading(true);\n\n let validAmount = this.validateAmount(this.state.sendValue, \"from\");\n let validAmountTo = this.validateAmount(this.state.receivedValue, \"to\");\n let validForm = true;\n\n if (!validAmount || !validAmountTo) {\n this.setState({ hasError: true });\n this.setState({ isValid: false });\n validForm = false;\n } else {\n this.setState({ hasError: false });\n this.setState({ isValid: true });\n validForm = true;\n }\n\n if (validForm) {\n if (this.state.couponValue.length > 0) {\n this.addCoupon();\n }\n else if (this.state.couponValue.length == 0 && this.state.couponRedeemed) {\n this.setState({\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: this.state.receivedValue - this.state.plus,\n couponRedeemed: false,\n plus: 0,\n });\n }\n\n //if (db) db.clearPersistence();\n const firebase = await loadFirebaseDB(this.state.testMode,this.state.config);\n const db = firebase.firestore();\n\n if (this.state.couponRedeemed && this.state.couponValue != \"\") {\n try {\n const userFS = await db\n .collection(\"transactions\")\n .doc(this.state.storeId)\n .update({\n coupon: this.state.couponValue,\n promo: +this.state.plus,\n });\n } catch (e) {\n this.setState({ hasError: true });\n }\n }\n\n if (this.state.paymentMethods && this.state.paymentMethods.length) {\n try {\n let transactionFS = await db\n .collection(\"transactions\")\n .doc(this.state.storeId)\n .get();\n\n if (transactionFS.exists) {\n let transactionData = transactionFS.data();\n let toReplace = {\n ...transactionData.to,\n paymentMethods: this.state.paymentMethods,\n };\n\n await db\n .collection(\"transactions\")\n .doc(this.state.storeId)\n .update({ to: toReplace });\n }\n } catch (e) {\n this.setState({ hasError: true });\n }\n }\n window.location.replace(`${this.props.startUrl.replace(/\\/+$/, \"\")}/${this.state.storeId}`);\n }\n };\n\n openChat = (message) => {\n // tidioChatApi.open();\n // tidioChatApi.messageFromVisitor(message);\n };\n\n validateAmount = (value, origin) => {\n let valid = true;\n\n if (origin == \"from\") {\n valid = !(\n value < this.state.minFromValue || value > this.state.maxFromValue\n );\n } else if (origin == \"to\") {\n valid = !(value < this.state.minToValue || value > this.state.maxToValue);\n }\n\n return valid;\n };\n\n validateEmail = (email) => {\n let valid = true;\n\n if (\n !/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(\n email\n )\n ) {\n valid = false;\n }\n\n return valid;\n };\n\n validateCoupon = async (cupon) => {\n const url = `${this.ENDPOINTS.OPERATIONS.validateCoupon}/${cupon}`\n\n try {\n const response = await axios.get(\n url,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('GET', url, null,this.state.reference) \n },\n } \n );\n return response;\n } catch {\n this.handleIsLoading(false);\n }\n };\n\n changeBank = async ({ target }) => {\n\n if (!target.value) return;\n\n const selected = this.state.paymentMethods.find(\n (payment) => payment.id == target.value\n );\n\n let newOrder = this.state.paymentMethods.map((payment) => {\n if (payment.name == selected.name) payment.isActive = true;\n else payment.isActive = false;\n return payment;\n });\n\n this.setState({ isUsdt: selected.id === 'trc20' });\n\n if (selected.isWallet) {\n await this.setState({\n receivedValue: selected.amountCrypto,\n paymentMethods: this.arraymove(newOrder),\n }, () => {\n this.showExchangeRate(selected.amountCrypto)\n });\n\n this.updateLimits();\n\n return;\n }\n\n await this.setState({\n receivedValue: selected.amount,\n paymentMethods: this.arraymove(newOrder),\n }, () => {\n this.showExchangeRate(selected.amount);\n });\n\n this.updateLimits();\n };\n\n arraymove = (array) => {\n var newArray = array.slice();\n newArray.sort(function (a) {\n return !a.isActive ? 1 : -1;\n }); // put in first\n return newArray;\n };\n\n handleOnChangeFromCountry = ({ target }, option) => {\n this.setState({ isUsdt: false });\n if (option) {\n this.handleFromCountryValue(option.code);\n this.handleFromCurrencyValue(option.currency);\n\n if (\n option.code == this.state.toCountryValue ||\n !this.state.calculator[option.code].countryTo[this.state.toCountryValue]\n .active\n ) {\n this.handleToCountryValue(\"\");\n this.handleToCurrencyValue(\"\");\n }\n } else {\n this.handleFromCountryValue(null);\n this.handleFromCurrencyValue(null);\n }\n };\n\n handleOnChangeToCountry = ({ target }, option) => {\n this.setState({ isUsdt: false });\n if (option) {\n this.handleToCountryValue(option.code);\n this.handleToCurrencyValue(option.currency);\n } else {\n this.handleToCountryValue(null);\n this.handleToCurrencyValue(null);\n }\n };\n\n filterOptions = (options, { inputValue }) =>\n matchSorter(options, inputValue, { keys: [\"label\", \"currency\"] });\n\n render() {\n\n const classes = {\n root: {\n fontFamily: \"Poppins\",\n padding: \"26px 21px 0 21px\",\n maxWidth: 400,\n flexGrow: 1,\n borderRadius: \"24px\",\n borderWidth: \"1px\",\n backgroundColor: \"#FFFFFF\",\n boxShadow: \"0px 4px 7px rgba(61, 71, 86, 0.52)\"\n },\n labelAmount: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputAmount: {\n background: \"#C7CDD7\",\n borderRadius: \"2px\"\n },\n inputAmountText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 600,\n fontSize: \"20px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n labelCoupon: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"15px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputCoupon: {\n background: \"#A1ACBD\",\n borderRadius: \"2px\"\n },\n inputCouponText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"18px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n buttonStart: {\n background: \"#008AFF\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n buttonStartDisabled: {\n background: \"#C0C0C0\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n textButtonStart: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\"\n },\n buttonRemoveCoupon: {\n background: \"#000F37\",\n //borderRadius: \"8px\",\n maxWidth: \"70%\",\n minWidth: \"70%\"\n },\n textRemoveCoupon: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 300,\n fontSize: \"15px\",\n lineHeight: \"24px\",\n color: \"#F4F4F4\"\n },\n labelUpdateTC: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"16px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n textTimeTC: {\n fontWeight: \"bold\",\n textAlign: \"center\"\n },\n divider: {\n height: 28,\n margin: 4\n },\n rootFlags: {\n fontFamily: \"Poppins\",\n padding: \"5px 5px\",\n minWidth: 100,\n //maxWidth: 150,\n borderWidth: \"0px\",\n },\n };\n\n const { locale, pathname, locales } = this.props;\n const content = locale === \"es\" ? es : en;\n let {\n sendValue,\n receivedValue,\n couponValue,\n fromCountryValue,\n fromCurrencyValue,\n toCountryValue,\n toCurrencyValue,\n email,\n isValid,\n showCallToAction,\n minFromValue,\n maxFromValue,\n minToValue,\n maxToValue,\n plus,\n calculator,\n loadingTo,\n loadingFrom,\n banks,\n taxSender,\n taxReceiver,\n recalculate,\n paymentMethods,\n isLoading,\n hasValidCoupon,\n traundFee,\n paypalFee,\n networkFee,\n totalFees,\n convertValueCrypto,\n convertValue,\n exchangeRate,\n onlySimulation,\n } = this.state;\n\n let startDisabled = loadingFrom || loadingTo || isLoading || !hasValidCoupon;\n\n // if (sendValue > 0) {\n // sendValue = sendValue % 1 == 0 ? Number(sendValue).toFixed(0) : Number(sendValue).toFixed(2);\n // }\n\n // if (receivedValue > 0) {\n // receivedValue = receivedValue % 1 == 0 ? Number(receivedValue).toFixed(0) : Number(receivedValue).toFixed(2);\n // }\n\n if (traundFee != null && traundFee > 0) {\n traundFee = traundFee % 1 == 0 ? Number(traundFee).toFixed(0) : Number(traundFee).toFixed(2);\n }\n\n if (paypalFee != null && paypalFee > 0) {\n paypalFee = paypalFee % 1 == 0 ? Number(paypalFee).toFixed(0) : Number(paypalFee).toFixed(2);\n }\n\n if (networkFee != null && networkFee > 0) {\n networkFee = networkFee % 1 == 0 ? Number(networkFee).toFixed(0) : Number(networkFee).toFixed(2);\n }\n\n if (totalFees != null && totalFees > 0) {\n totalFees = totalFees % 1 == 0 ? Number(totalFees).toFixed(0) : Number(totalFees).toFixed(2);\n }\n\n if (convertValueCrypto != null && convertValueCrypto > 0) {\n convertValueCrypto = convertValueCrypto % 1 == 0 ? Number(convertValueCrypto).toFixed(0) : Number(convertValueCrypto).toFixed(2);\n }\n\n if (convertValue != null && convertValue > 0) {\n convertValue = convertValue % 1 == 0 ? Number(convertValue).toFixed(0) : Number(convertValue).toFixed(2);\n }\n\n if (exchangeRate != null && exchangeRate > 0) {\n exchangeRate = exchangeRate % 1 == 0 ? Number(exchangeRate).toFixed(0) : Number(exchangeRate).toFixed(2);\n }\n\n return (\n <Fragment>\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@400&display=swap\"\n rel=\"stylesheet\"\n />\n <Paper style={classes.root}>\n <Grid container direction=\"column\" spacing={0}>\n <Grid item container direction=\"column\" spacing={0}>\n <Grid item>\n <Typography\n style={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.landing.send_content}\n </Typography>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={8} md={9}>\n <Paper style={classes.inputAmount}>\n <InputBase\n id=\"send\"\n style={classes.inputAmountText}\n required\n value={sendValue}\n type=\"number\"\n disabled={loadingFrom || loadingTo}\n startAdornment={\n <InputAdornment\n position=\"start\"\n style={{ marginTop: \"0px\" }}\n >\n <span> {loadingFrom && <CircularProgress size={18} />} </span>\n </InputAdornment>\n }\n inputprops={{\n inputProps: { min: minFromValue, max: maxFromValue },\n }}\n onChange={this.handleSend}\n />\n </Paper>\n </Grid>\n <Grid item xs={4} md={3}>\n <Autocomplete\n disabled={loadingTo || loadingFrom}\n options={countries.filter((country) => {\n if (\n calculator &&\n calculator[country.code] &&\n calculator[country.code].active\n )\n return country;\n })}\n // classes={{\n // option: classes.option,\n // }}\n style={{\n fontSize: 14,\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n }}\n filterOptions={this.filterOptions}\n value={\n countries.filter(\n (country) => country.code == fromCountryValue\n )[0]\n }\n autoHighlight\n getOptionLabel={(option) =>\n `${option.currency}`\n }\n renderOption={(option) => (\n <Fragment>\n <span style={{ marginRight: \"5px\" }}>\n <FlagsHelpers code={option.code == \"PE-USD\" ? \"PE\" : option.code} />\n </span>\n {\" \"}\n {option.currency}\n </Fragment>\n )}\n disableClearable\n renderInput={(params) => (\n <Paper variant=\"outlined\" style={classes.rootFlags} >\n <TextField\n style={{ fontSize: \"15px\" }}\n {...params}\n variant=\"standard\"\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <FlagsHelpers\n code={this.state.fromCountryValue == \"PE-USD\" ?\n \"PE\" :\n this.state.fromCountryValue\n }>\n </FlagsHelpers>\n ),\n disableUnderline: true,\n }}\n />\n </Paper>\n )}\n onChange={this.handleOnChangeFromCountry}\n />\n </Grid>\n </Grid>\n <Grid item xs={12} container>\n {!isLoading && !loadingFrom && !loadingTo && (\n <FormHelperText style={{ color: \"red\" }}>\n {(sendValue < minFromValue &&\n content.landing.min_value.replace(\n \"minValue\",\n minFromValue\n )) ||\n (sendValue > maxFromValue &&\n content.landing.max_value.replace(\n \"maxValue\",\n maxFromValue\n ))}\n </FormHelperText>\n )}\n </Grid>\n </Grid>\n {(!isLoading && !loadingFrom && !loadingTo) &&\n <Grid item xs={12} container direction=\"column\">\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {traundFee}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.comision}\n </Typography>\n </Grid>\n </Grid>\n {this.state.isCountryFromPayPal &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {paypalFee}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.paypal_fee}\n </Typography>\n </Grid>\n </Grid>\n }\n {this.state.isUsdt &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {networkFee}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.tron_network_fee}\n </Typography>\n </Grid>\n </Grid>\n }\n <Grid item xs={10}>\n <Divider style={{ margin: 4 }}></Divider>\n </Grid>\n {taxSender > 0 &&\n <>\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {taxSender}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"subtitle2\" color=\"textPrimary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {fromCurrencyValue == \"COP\" ? content?.calculator.tax_co : content?.calculator.tax_pe}\n </Typography>\n </Grid>\n </Grid>\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n =\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {this.state.isUsdt ? convertValueCrypto : (+convertValue).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {this.state.isUsdt ? 'USD' : fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs>\n <Typography variant=\"subtitle2\" color=\"textPrimary\" style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }} >{content.calculator.receiver}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.we_receive}\n </Typography>\n </Grid>\n </Grid>\n </>\n }\n {this.state.showTotalFees &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {totalFees}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.total_fees}\n </Typography>\n </Grid>\n </Grid>\n }\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {this.state.exchangeRateLabel}\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {exchangeRate}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {this.state.isUsdt ? 'USDT' : toCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.exchange_rate}\n </Typography>\n </Grid>\n </Grid>\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n =\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {this.state.isUsdt ? convertValueCrypto : (+receivedValue + taxReceiver).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {this.state.isUsdt ? 'USD' : toCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.converted_amount}\n </Typography>\n </Grid>\n </Grid>\n \n {taxReceiver > 0 &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {(+taxReceiver).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {toCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {toCurrencyValue == \"COP\" ? content?.calculator.tax_co : content?.calculator.tax_pe}\n </Typography>\n </Grid>\n </Grid>\n }\n </Grid>\n }\n <br></br>\n <Grid item container direction=\"column\" spacing={0} style={{marginTop: \"20px\"}}>\n <Grid item>\n <Typography\n style={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.landing.receiver_content}\n </Typography>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={8} md={9}>\n <Paper style={classes.inputAmount}>\n <InputBase\n id=\"receiver\"\n style={classes.inputAmountText}\n type=\"number\"\n required\n value={receivedValue}\n disabled={true}\n startAdornment={\n <InputAdornment\n position=\"start\"\n style={{ marginTop: \"0px\" }}\n >\n <span> {loadingTo && <CircularProgress size={18} />} </span>\n </InputAdornment>\n }\n endAdornment={\n <InputAdornment\n position=\"end\"\n >\n <span style={{\n fontSize: \"10px\",\n fontWeight: \"500\",\n paddingTop: \"15px\",\n paddingRight: \"5px\"\n }}>\n {\n (toCountryValue == \"AR\" &&\n paymentMethods.length &&\n paymentMethods[0].isWallet &&\n !loadingTo &&\n !loadingFrom) ? `(${paymentMethods[0].amount} ARS)` : ''\n }\n </span>\n </InputAdornment>\n }\n inputprops={{\n inputProps: { min: minFromValue, max: maxFromValue }\n }}\n onChange={this.handleReceived}\n />\n </Paper>\n </Grid>\n <Grid item xs={4} md={3}>\n <Autocomplete\n disabled={loadingTo || loadingFrom}\n options={countries.filter((country) => {\n if (\n calculator &&\n calculator[fromCountryValue] &&\n calculator[fromCountryValue].active &&\n calculator[fromCountryValue].countryTo[\n country.code\n ] &&\n calculator[fromCountryValue].countryTo[country.code]\n .active\n ) {\n return country;\n }\n })}\n // classes={{\n // option: classes.option,\n // }}\n style={{\n fontSize: 14,\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n }}\n filterOptions={this.filterOptions}\n disableClearable\n value={\n countries.filter(\n (country) => country.code == toCountryValue\n )[0]\n }\n autoHighlight\n getOptionLabel={(option) =>\n `${option.currency}`\n }\n renderOption={(option) => (\n <Fragment>\n <span style={{ marginRight: \"5px\" }}>\n <FlagsHelpers code={option.code == \"PE-USD\" ? \"PE\" : option.code} />\n </span>\n {option.currency}\n </Fragment>\n )}\n renderInput={(params) => (\n <Paper variant=\"outlined\" style={classes.rootFlags} >\n <TextField\n {...params}\n variant=\"standard\"\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <FlagsHelpers\n code={this.state.toCountryValue == \"PE-USD\" ?\n \"PE\" : this.state.toCountryValue\n }>\n </FlagsHelpers>\n ),\n disableUnderline: true,\n }}\n />\n </Paper>\n )}\n onChange={this.handleOnChangeToCountry}\n />\n </Grid>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={12}>\n {!isLoading && !loadingFrom && !loadingTo && (\n <FormHelperText style={{ color: \"red\" }}>\n {(receivedValue < minToValue &&\n content.landing.min_value.replace(\n \"minValue\",\n minToValue\n )) ||\n (receivedValue > maxToValue &&\n content.landing.max_value.replace(\n \"maxValue\",\n maxToValue\n ))}\n </FormHelperText>\n )}\n </Grid>\n </Grid>\n {(toCountryValue == \"VE\" || toCountryValue == \"AR\") &&\n paymentMethods &&\n !loadingTo &&\n !loadingFrom && (\n <Grid item xs={12} >\n <NativeSelect\n id=\"demo-customized-select-native\"\n value=\"Banks\"\n onChange={this.changeBank}\n >\n {paymentMethods &&\n paymentMethods.map((payment, index) => {\n if (payment.id == \"trc20\") {\n return <option key={payment.name + index} value={payment.id}>\n Tron TRC20 ({payment.currency})\n </option>\n }\n return <option key={payment.name + index} value={payment.id}>\n {payment.label} {/* ({payment.currency}) */}\n </option>\n })}\n </NativeSelect>\n </Grid>\n )\n }\n </Grid>\n <br></br>\n {!onlySimulation &&\n <>\n <Grid item container direction=\"column\" spacing={0}>\n {this.state.hasValidCoupon && (plus != null && plus != 'undefined' && plus != 0) &&\n <Grid item>\n <p\n style={{\n textAlign: \"center\",\n //marginTop: \"0px\"\n }}\n >\n {content.calculator.plus\n .replace(\"amount\", plus)\n .replace(\"currency\", this.state.isUsdt ? 'USDT' : toCurrencyValue)}\n </p>\n </Grid>\n }\n <Grid item style={{marginTop: \"15px\"}}>\n <Typography\n style={classes.labelCoupon}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.landing.coupon_content}\n </Typography>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={5}>\n <Paper style={classes.inputCoupon}>\n <InputBase\n style={classes.inputCouponText}\n value={couponValue}\n disabled={loadingFrom || loadingTo}\n type=\"text\"\n onChange={this.handleCoupon}\n />\n </Paper>\n </Grid>\n\n {this.state.hasValidCoupon && (plus != null && plus != 'undefined' && plus != 0) &&\n <Grid item xs={2} style={{ paddingLeft: \"3px\" }}>\n <Tooltip title={content.calculator.remove_coupon}>\n <Button\n style={classes.buttonRemoveCoupon}\n onClick={this.removeCoupon}\n >\n <HighlightOffOutlinedIcon\n style={{ color: \"white\" }} />\n </Button>\n </Tooltip>\n\n </Grid>\n }\n </Grid>\n {!this.state.hasValidCoupon && (\n <Grid item xs={12}>\n <Typography\n style={{\n color: \"red\",\n textAlign: \"center\",\n maxWidth: \"100%\",\n paddingTop: \"10px\"\n }}\n >\n {\n this.state.countryError.hasErrors ?\n <>\n {this.state.countryError.value == \"from\" ? content.calculator.invalid_coupon_country_from : \"\"}\n {this.state.countryError.value == \"to\" ? content.calculator.invalid_coupon_country_to : \"\"}\n {this.state.countryError.value == \"amount_from\" ? content.calculator.invalid_coupon_amount_from : \"\"}\n {this.state.countryError.value == \"\" ? content.calculator.invalid_coupon_message : \"\"}\n </>\n : \"\"\n }\n </Typography>\n\n </Grid>\n )}\n </Grid>\n <br></br>\n <Grid item xs={12} style={{marginTop:\"20px\", marginBottom:\"10px\"}}>\n <Button\n style={startDisabled ? classes.buttonStartDisabled : classes.buttonStart}\n variant=\"contained\"\n disabled={startDisabled}\n onClick={this.handleSubmitForm}\n >\n <Typography style={classes.textButtonStart}>\n {content.landing.button_start}\n </Typography>\n </Button>\n </Grid>\n <br></br>\n </>\n }\n {recalculate &&\n <Grid item xs={12}>\n <Typography\n style={classes.labelUpdateTC}\n >\n <Timer locale={locale} />\n </Typography>\n\n </Grid>\n }\n {this.state.hasError && (\n <Grid item xs={12}>\n <Typography\n style={{\n color: \"red\",\n textAlign: \"center\",\n maxWidth: \"100%\",\n paddingTop: \"10px\"\n }}\n >\n {content.error_general}\n </Typography>\n\n </Grid>\n )}\n <Grid item xs={12} style={{marginTop:\"45px\"}}>\n <Divider ></Divider>\n </Grid>\n <Grid item xs={12} container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\"}} >\n <Typography\n variant=\"subtitle1\"\n\n >\n <span style={{fontSize: \"10px\", textAlign: \"center\" }} >Powered by </span>\n <span style={{ fontWeight: \"bold\", textAlign: \"center\",fontSize: \"12px\", }}>Orquezta</span>\n </Typography>\n </Grid>\n </Grid>\n </Paper >\n </Fragment >\n );\n }\n}\n\nexport default Calculator;","export default {\n common: {\n sender: {\n transfer_action: \"You send\",\n wallet_action: \"You send\",\n collect_action: \"Request amount\",\n },\n receiver: {\n transfer_action: \"Receiver gets\",\n transfer_average_time: \"On average, the transaction should be completed no later than:\",\n collect_action: \"You receive\",\n collect_average_time: \"Once the payment has been received, it will take a maximum of 12 working hours for you to receive the money.\",\n wallet_action: \"Will be added to your wallet\",\n wallet_average_time: \"On average, the transaction should be completed no later than:\",\n },\n max_value: \"Maximum amount maxValue\",\n min_value: \"Minimum amount minValue\",\n },\n simulator: {\n header_accion: \"What do you want to do?\",\n header_chips: {\n option_send: \"Send\",\n option_receive: \"Receive\"\n },\n footer_action_button: \"Start now\"\n },\n landing: {\n send_content: \"You send\",\n receiver_content: \"Receiver gets\",\n max_value: \"Maximum amount maxValue\",\n min_value: \"Minimum amount minValue\",\n coupon_content: \"Coupon\",\n button_start: \"Start transfer\",\n from: \"From\",\n to: \"To\",\n email: \"Email\",\n invalid: \"The coupon is invalid\",\n fillEmail: \"Must fill the field\",\n calculating: \"Calculating\",\n title_first_part: \"The smart way to\",\n title_words: [\"SEND\", \"RECEIVE\", \"CHARGE\", \"PAY\"],\n title_second_part: \"money.\\nFast, safe and almost no cost.\",\n sign_up_now: \"SING UP NOW \",\n transfer_now: \"TRANSFER NOW\",\n about_us: {\n title: \"Thanks to our sharing economy\",\n description: [\n \"We find the best route for your money, connecting you with cryptocurrency buyers and sellers (Traunders). Both in the origin and destination country.\",\n \"So you can Send, Receive, Pay and Charge throughout Latin America at the cost of a local transfer.\",\n \"Become part of the Traund community and enjoy the benefits of having no borders for your money.\",\n ],\n },\n faqs: {\n title: \"Frequently Asked Questions\",\n questions: [\n \"How are transfers made?\",\n \"How much does it cost a transfer?\",\n \"Is it safe to use Traund?\",\n \"What is a Traunder?\",\n \"How long do transfers take?\",\n \"What are the limits for transfers?\",\n \"Can I send to a country that is not on the list?\",\n ],\n answers: [\n \"Transfers are made based on the concept of the sharing economy.Our algorithm searches the best way to route your money using various methods such as cryptocurrency networks, related transactions, among others. When you make the deposit, you do it to a bank account of a person or company (not a Traund bank account).\\nTraund never has access to the money; However, We ensure 100% of it!\",\n \"Traund does not charge commissions.However, there is a Traund network fee, which is variable.\\nBut don't worry, all costs are included in the calculation. What you see is what will be sent to the target country!\",\n \"YES, Traund is never in contact with your money (You transfer the intended amount directly to your Traunder and vice versa to the intended recipient). Each transaction is backed by a security deposit which equals the amount sent. We guarantee your money is 100% secured.\\nSo far, we have sent over 70,000.00 USD without losing a single penny!\",\n \"A Traunder is a person or company that will help you make your transfer. For each transaction, there are 2 Traunders (one in origin and one in the target country). Traunders are mainly cryptocurrency sellers and buyers (traders). They can also be people who need to send money cross-border and other money transfer companies.\\nWe are always looking for the best way to send your money!\",\n \"Transfers have a time limit of 12hrs. But so far, on average, the money is received within 4hrs or less.\",\n \"The limits vary from a minimum amount of 20 USD to a maximum amount of 5000 USD (or equivalent in the selected currency). In addition, you can only send up to 5000 USD each month.\",\n \"We are always ready to help you. Send us a message to our customer service chat with the following information:\\n - Country of origin.\\n - Destination country.\\n - Amount to be sent.\",\n ],\n },\n },\n start_form: {\n title_form: \"Welcome to Traund\",\n subtitle_form: \"Type your email address to begin\",\n start: \"Start\",\n sign_in: \"Sign In\",\n },\n sender_form: {\n title_form: \"Sender Info\",\n create_user: \"I Accept create a user with current data\",\n message_password_only_alphanumeric:\n \"Invalid password. Only alphanumerics characters are allowed\",\n create_password: \"Create your password\",\n },\n receiver_form: {\n title_form: \"Recipient Info\",\n bank_account: \"Account\",\n bank_account_global: \"CCI number\",\n bank_info_title: \"Payment Method\",\n bank_account_global_mx: \"Clabe Account Number\",\n warning_payment_limit_time:\n \"*In the next step you will have 25 minutes to make the payment. At the end of this time, your transfer will be cancelled and you will have to start a new one.\",\n },\n agent_view: {\n upload_voucher_title: \"Upload a screenshot of your voucher payment\",\n upload_file_voucher: \"Upload File\",\n change_file_voucher: \"Change File\",\n agent: \"Traunder\",\n timer_title: \"Limit Time\",\n confirm_transfer_button: \"Yes, Transferred\",\n time_left: \"Time remaining to complete the deposit\",\n upload_file_description: \"Select a file\",\n description: \"Transfer amount currency to one of the following options:\",\n ask_for_information: \"Ask for Bank Information\",\n update_status_transaction_description:\n \"Payment registered. Pending verification\",\n },\n payment_view: {\n button_vocher: \"View Voucher\",\n button_confirm: \"Confirm Transaction\",\n processing_payment_title:\n \"We are currently processing your payment, it may take up to 5 hours...\",\n processing_payment_description:\n \"We will send you an email when it is complete\",\n },\n confirm_view: {\n confirm_title: \"Successful Transaction\",\n confirm_message:\n \"We have sent you a notification. Thanks for transfer using Traund\",\n },\n stepper: {\n one: \"Sender\",\n two: \"Recipient\",\n three: \"Payment\",\n four: \"Confirmation\",\n five: \"Confirmation\",\n },\n resume: {\n title: \"Order Details\",\n title_sender: \"Your Information\",\n title_receiver: \"Recipient's Information\",\n title_bank: \"Payment Method\",\n amount_sent: \"Amount to Send\",\n amount_received: \"Amount to Receive\",\n phone: \"phone\",\n names: \"Name\",\n email: \"Email\",\n countryOrigin: \"Origin Country\",\n currencyOrigin: \"Origin Currency\",\n countryTo: \"Country\",\n currencyTo: \"Currency\",\n bankName: \"Payment Method\",\n bankNumber: \"Account Number\",\n bankGlobalNumber: \"Global Account Number\",\n promoApplied: \"Added\",\n coupon: \"Coupon\",\n },\n wallet: {\n wallet_title: \"Wallet Information\",\n amount: \"Amount\",\n available_amount: \"Available Amount\",\n balance_amount: \"Balance Amount\",\n transactions: \"Transactions\",\n withdraw: \"Withdraw\",\n withdrawals: \"Withdrawals\",\n deposits: \"Deposits\",\n date: \"Date\",\n status: \"Status\",\n wallet_not_found: \"Wallet not found!\",\n create_wallet: \"Create Wallet\",\n withdraw_message: `I want to withdraw the amount {0} USDT from my wallet to {1}({2})`,\n please_choose_a_value: \"Please choose a value\",\n wallet_not_found_description:\n \"You need to create a wallet so you can enjoy its benefits.\",\n wallet: \"Wallet\",\n },\n event_register: {\n register: \"Register\",\n title: \"Enter your information\",\n description: \"Sign up and get a $3 dollar coupon on your first transfer.\",\n confirm_message:\n \"You are now ready to make your first transaction, we have sent you an email with the details\",\n email_message: \"We have sent you a message to your email.\",\n referral_code: \"I have an ambassador code\",\n submit_code: \"Submit Code\",\n },\n complete_register_form: {\n title_form: \"Complete Your Register\",\n subtitle_form: \"Enter a password for your account\",\n send_password: \"Confirm\",\n confirm_message: \"Thanks for confirm your register in Traund.com.\",\n email_message: \"We have sent you a message to your email.\",\n },\n password_reset_form: {\n title_form: \"Change Your Password\",\n subtitle_form: \"Enter your new password\",\n send_password: \"Confirm\",\n confirm_message: \"Thanks for confirm your register in Traund.com.\",\n email_message: \"We have sent you a message to your email.\",\n },\n password_change_form: {\n title_form: \"Change Your Password\",\n },\n password_recover_form: {\n title_form: \"Recover your password\",\n subtitle_form:\n \"Enter an email. Will send you instructions to recover your password\",\n confirm_message: \"We have sent you a message to your email.\",\n },\n call_to_action: {\n first: \"Sign Up and the first transaction is on us.\",\n second: \" Your first transaction for free,\",\n third: \"Sign Up Here\",\n },\n email: \"Email address\",\n firstname: \"First Name\",\n lastname: \"Last Name\",\n cellphone: \"Mobile Number\",\n country: \"Country\",\n bank: \"Payment Method\",\n next_step: \"Next Step\",\n back_step: \"Back\",\n confirm: \"Confirm\",\n account_id: \"Payment Method Account\",\n business_info: \"Business Info\",\n business_country: \"Business Country\",\n business_name: \"Business Name\",\n business_tax_code: \"Business Tax Code\",\n business_available_countries: \"Countries in which it works\",\n bank_info: \"Método de Pago\",\n bank_name: \"Payment Method Name\",\n bank_account_number: \"Bank Account Number\",\n bank_account_number_optional: \"Bank Account Number (Optional)\",\n identification_type: \"Identification Type\",\n identification_number: \"Identification Number\",\n email_validation_message: \"Insert an email address\",\n email_correct_validation_message: \"Insert a valid email address\",\n firstname_validation_message: \"First Name is required\",\n lastname_validation_message: \"Last Name is required\",\n cellphone_validation_message: \"Mobile number is required\",\n country_validation_message: \"Select country\",\n bankname_validation_message: \"Insert a valid bank name\",\n banknumber_validation_message: \"Insert a valid bank number\",\n bankroutenumber_validation_message: \"Insert a valid bank number\",\n password_validation_message: \"Password is required\",\n confirmation_password_validation_message: \"Confirmation password is required\",\n password: \"Insert your password\",\n repeatPassword: \"Repeat your password\",\n security_information: \"Security Information\",\n minutes: \"minutes\",\n referralCode: \"Referral Code\",\n warning_no_bank_info:\n \"This feature is available after fill business information in profile section\",\n transaction_no_valid: \"We could not find your transaction\",\n transaction_no_valid_description:\n \"This is because the link has expired or is incorrect.\\n Please create a new transaction.\",\n error_general: \"Something went wrong. Please, try again.\",\n error_password_match: \"Passwords does not match.\",\n type_account: \"Type Account\",\n edit_profile_business_info: \"Edit Information\",\n payment_method_not_found: \"Payment Method not found\",\n payment_method: \"Payment Method\",\n transaction_reject_message:\n \"The transaction was rejected by the user for not making the deposit.\",\n zelle: {\n bank_account_title: \"User Type\",\n bank_email: \"Zelle Email Address\",\n bank_phone: \"Zelle Phone Number\",\n bank_address_title: \"Correo electrónico/Número telefónico\",\n },\n tron: {\n bank_address: \"TRON(TRC20)\",\n bank_tron_address: \"TRON(TRC20) wallet Address\",\n bank_address_error: \"\",\n tron_error_required: \"Tron address is required\",\n tron_wallet_address_error: \"Not valid TRON(TRC20) wallet address\",\n },\n oggo: {\n bank_address: \"Oggo User\",\n btc_address: \"Wallet Address BTC\",\n btc_wallet_address_error: \"Not valid BTC wallet address\",\n },\n uala: {\n alias: \"Alias\",\n cuitcuil: \"CUIT/CUIL\",\n cvu: \"CVU\",\n },\n mercadolibre: {\n dni: \"DNI\",\n alias: \"Alias\",\n },\n select_country_message: \"Select country\",\n tooltip: {\n bank_name: \"Bank Name whereas the recipient receives money\",\n bank_global_account:\n \"The account number provided by your bank for transactions to different banks\",\n bank_account: \"The account number provided by your bank\",\n },\n calculator: {\n // success_message: \"Pick a form and we will contact you in a few seconds\",\n invalid_coupon_message:\n \"The coupon entered is not valid. Register other coupon or clear the input to continue\",\n invalid_coupon_country_from:\n \"The coupon entered is not valid for this origin country \",\n invalid_coupon_country_to:\n \"The coupon entered is not valid for this target country\",\n invalid_coupon_amount_from:\n \"The entered coupon is not valid for the transferred amount.\",\n success_message:\n \"Choose an option to continue your transaction and we will contact you in a few minutes\",\n email: \"Send me a email\",\n chat: \"Let's chat on Facebook Messenger\",\n plus: \"You added amount currency thanks to your coupon\",\n recalculate_description: \"Exchange rate will be updated in \",\n comision: \"Traund Fee\",\n tax_pe: \"ITF\",\n tax_co: \"Tax (4x1000)\",\n receiver:\"We'll receive\",\n exchange_rate: \"Exchange Rate\",\n tron_network_fee: 'Network Fee',\n wallet_converted_amount: `We'll receive`,\n wallet_fee: 'Fee',\n paypal_fee: 'Paypal Fee',\n total_fees: 'Total fees',\n converted_amount: `We'll transfer`,\n converted_amount_receive: `We'll receive`,\n remove_coupon: \"Remove coupon\",\n converted_amount_network: \"Converted amount\",\n },\n transaction_status: {\n title: \"Transaction Status\",\n from: \"From\",\n to: \"To\",\n status_name: \"Status Name\",\n description: \"Description\",\n created_at: \"Created At\",\n currency: \"Currency\",\n sender: \"Sender\",\n recipient: \"Recipient\",\n refund: \"Refund\",\n release: \"Release payment\",\n },\n go_to_home: \"Home\",\n create_new_transaction: \"Create a new transaction\",\n transaction_error: \"We could not create your transaction\",\n contact_us_error_message: \"Please, contact us by support chat\",\n create_new_transaction_message: \"Or, create a new transaction\",\n go_to_chat: \"Go to chat\",\n login: {\n not_registered_user: \"The email address is incorrect\",\n forgot_password: \"Forgot your password?\",\n manually_set_data: \"Or fill the following form\",\n go_to_form: \"Go to the form\",\n go_to_login: \"Login\",\n already_registered: \"Already registered?\",\n register_description: \"Please, use your email to login\",\n back_to_form: \"Back to form\",\n dont_have_account: \"I do not have an account\",\n },\n business: {\n calculate: \"Calculate\",\n generate_link: \"Generate Payment Link\",\n generate_link_warranty: \"Generate Payment Link With Warranty\",\n link_warning:\n \"Link is valid for 12 hours.\\nAfter this time it will be deactivated and you will have to create a new one.\",\n you_will_get: \"It'll be deposited in your bank\",\n profile: \"Contact Info\",\n confirm_message: \"We have registered your request as Business successfully\",\n email_message: \"We will contact you via email\",\n title: \"PAYMENT Link for you and your business.\",\n subtitle: \"Turn your local business into a regional one\",\n description: \"Join our community and try our payment link.\\n0 COMMISSIONS.\",\n subtitle_description:\n \"Collect through the Traund network with 0 COMMISSIONS and a GREAT EXCHANGE RATE. No hidden fees. \\nYou will know how much you will receive when you generate your link.\",\n freelancers: \"Freelancers\",\n freelancers_description:\n \"Don't lose your hard-earned money in high commissions and low exchange rates. Receive it straight to your bank account in just a few hours with 0 COMMISSIONS.\\nYou can also create a payment link with ESCROW (secured deposit) and protect your earnings before starting any job. Avoid scams and WORK WITH PEACE OF MIND.\",\n ecommerce: \"Online Stores\",\n ecommerce_description:\n \"Receive fast payments from different countries in the region with 0 COMMISSIONS, expand your market and get more profit.\\nSecure your sales with ESCROW (secured deposit) payment links. Give your customers assurance they will receive quality products with SATISFACTION GUARANTEED.\",\n is_natural_person: \"Natural Person\",\n business_country: \"Business Country\",\n business_info: \"Business Info\",\n generate_link_again: \"Generate New Payment Link\",\n title_enrollment: \"Complete your register\",\n subtitle_enrollment: \"Enter contact business information\",\n },\n user: {\n title_enrollment: \"Complete your registration\",\n subtitle_enrollment: \"Enter contact information\",\n identification_type: \"Identification Type\",\n identification_number: \"Identification Number\",\n },\n errors: {\n \"TR-001-W\": \"User already registered.\",\n \"TR-003-W\": \"Wrong password\",\n \"TR-004-W\":\n \"You can only make ONE transfer at a time. You must complete your pending transfer.\",\n \"TR-005-E\": \"Coupon not valid or already redeemed.\",\n \"TR-006-E\": \"Rol invalid to create this transaction type.\",\n \"TR-010-E\": \"Incorrect or expired payment link.\",\n \"TR-011-E\": \"Transaction already processed\",\n \"CO-000-I\": \"Coupon not valid or already redeemed.\",\n \"ID-004-W\": \"Invalid username and/or password.\",\n \"ID-010-W\": \"User already registered.\",\n \"ID-001-W\": \"Email already registered\",\n },\n payment_form: {\n title_form: \"Payer Info\",\n },\n dashboard: {\n options: {\n payment_link: \"Create Payment Link\",\n payment_link_with_warranty: \"Create Payment Link with Warranty\",\n payment_list: \"Payment List\",\n payment_history: \"Payment History\",\n user_referral: \"User Referral\",\n profile: \"Contact Info\",\n wallet: \"Wallet\",\n transfers: \"Transfers\",\n },\n referral_code: {\n general_title: \"Referral Code\",\n title: \"Code\",\n statitics: \"Statitics\",\n generate_referral_code: \"Generate Referral Code\",\n no_referral_yet: \"Your referral code is not enabled\"\n },\n greeting_dashboard_title: \"Welcome to \",\n available_dashboard_title: \"Available Dashboard\",\n payment_warranty_wallet:\n \"You need a Traund wallet to pay using Payment Links with Warranty as Refunds are going to be deposited to your Wallet\",\n generate_warranty_wallet:\n \"You need a Traund wallet to create Payment Links with Warranty, because in case of a Refund, the amount is going to be deposited to your Wallet\",\n payment_warranty_info_account:\n \"You must have a Traund account to be able to pay with\",\n payment_warranty_links: \"Payment Links with Warranty\",\n logout: \"Log Out\",\n },\n countries: {\n MX: \"México\",\n PE: \"Perú\",\n US: \"United States\",\n VE: \"Venezuela\",\n CO: \"Colombia\",\n DO: \"Dominican Republic\",\n AR: \"Argentina\",\n CL: \"Chile\",\n EC: \"Ecuador\",\n BR: \"Brasil\",\n PY: \"Paraguay\",\n SV: \"El Salvador\",\n },\n header: {\n payments: \"Business & Freelancers\",\n freelance: \"Freelancers\",\n sign_up: \"Sign Up\",\n transfer: \"Send\",\n how_works: \"How works?\",\n faqs: \"FAQs\",\n remittances: \"Send\",\n womens_month: \"Women's Month\",\n },\n woman_month: {\n title: \"Women's Month Sweepstakes\",\n subtitle: \"Win a Platzi membership for one year\",\n description:\n \"TRAUND encourages more and more women to seek financial freedom, and one of the best ways to do it is to be a FREELANCER. That's why we are giving away: a ONE YEAR! membership to PLATZI. So you can continue to develop as a professional and stand out in your area.\",\n tc: \"see terms & conditions\",\n },\n banks: {\n bbva: 'Banco BBVA',\n bcp: 'Banco de crédito del Peru - BCP',\n scotiabank_peru: 'Scotiabank Perú',\n western_discount_bank: 'Banco Occidental de Descuento'\n },\n disclaimers: {\n send: \"This is an operation from our SEND service. \",\n sendDescription: \"Once you make the payment and submit your receipt, the transaction should be completed by: \",\n sendDisclaimer: \"*To transfer from {COUNTRY}, it's important for you to watch our tutorial video on the payment process.\",\n receive: \"This is an operation of our payment service. \",\n receiveBanks: \"*We receive payments through Bank Transfer.\",\n receiveZelle: \"*We receive payments via Zelle Bank Transfer.\",\n receiveDescription: \"A link will be generated, you must share it with the person who will make the payment. Once paid and verified, the maximum processing time is 12 business hours for you to receive the money in the payment method registered in Traund.\",\n receiveDisclaimer: \"*Para cobrar desde {COUNTRY}, es obligatorio que veas nuestro video tutorial y lo compartas con la persona que realizará el pago.\",\n wallet: \"This is an operation to add funds to your Traund Wallet.\",\n walletDescription: \"When you make the payment and register your receipt, the operation should be completed at the latest: \",\n walletDisclaimer: \"*This is the time taken by {PAYMENTMETHOD} to process the payment.\",\n walletDisclaimerACH: \"*This is the maximum time the bank can take to process the ACH transfer.\"\n }\n};\n","export default {\n common: {\n sender: {\n transfer_action: \"Tú envías\",\n wallet_action: \"Tú envías\",\n collect_action: \"Monto solicitado\",\n },\n receiver: {\n transfer_action: \"Destinatario recibe\",\n transfer_average_time: \"En promedio, la operación debería estar finalizada como máximo:\",\n collect_action: \"Recibes\",\n collect_average_time: \"Una vez que se reciba el pago, el tiempo máximo de atención es de 12 horas para que recibas tu dinero.\",\n wallet_action: \"Se añadirá a tu billetera\",\n wallet_average_time: \"En promedio, los fondos deberían estar disponibles como máximo el día:\",\n },\n max_value: \"Monto máximo maxValue\",\n min_value: \"Monto mínimo minValue\",\n },\n simulator: {\n header_accion: \"¿Qué quieres hacer?\",\n header_chips: {\n option_send: \"Enviar\",\n option_receive: \"Cobrar\"\n },\n footer_action_button: \"Empezar ahora\"\n },\n landing: {\n send_content: \"Tú envías\",\n receiver_content: \"Destinatario recibe\",\n max_value: \"Monto máximo maxValue\",\n min_value: \"Monto mínimo minValue\",\n button_start: \"Empezar transferencia\",\n coupon_content: \"Cupón\",\n from: \"Desde\",\n to: \"Hacia\",\n email: \"Ingresa tu correo\",\n coupon_invalid: \"El cupón no es valido\",\n fillEmail: \"Debe llenar el campo \",\n calculating: \"Calculando\",\n title_first_part: \"La manera inteligente de\",\n title_words: [\"ENVIAR\", \"RECIBIR\", \"COBRAR\", \"PAGAR\"],\n title_second_part: \" dinero.\\nRápido, seguro y casi sin costo.\",\n sign_up_now: \"REGISTRATE AHORA\",\n transfer_now: \"TRANSFIERE AHORA\",\n about_us: {\n title: \"Gracias a nuestra economía colaborativa\",\n description: [\n \"Encontramos la mejor ruta para tu dinero, conectandote con compradores y vendedores de criptomonedas (Traunders). Tanto en el país de origen como en el país de destino.\",\n \"Para que puedas Enviar, Recibir, Pagar y Cobrar en toda Latinoamerica a costo de una transferencia local.\",\n \"Se parte de la comunidad Traund y aprovecha las ventajas de no tener fronteras para tu dinero.\",\n ],\n },\n faqs: {\n title: \"Preguntas Frecuentes\",\n questions: [\n \"¿Cómo se realizan las transferencias?\",\n \"¿Cuánto cuesta hacer una transferencia?\",\n \"¿Es seguro usar Traund?\",\n \"¿Que es un Traunder?\",\n \"¿Cuánto tiempo demoran las transferencias?\",\n \"¿Cuáles son los limites para las transferencias?\",\n \"¿Puedo enviar a un país que no esta disponible?\",\n ],\n answers: [\n \"Las transferencias se realizan bajo el concepto de economía colaborativa, nuestro algoritmo busca el mejor medio para que puedas enviar tu dinero mediante una búsqueda entre redes de criptomonedas, coincidencias entre transferencias y otros medios. Es por ello que al realizar el deposito lo haces a una cuenta de una persona o empresa (no a una cuenta de Traund).\\nTraund nunca tiene acceso al dinero, sin embargo aseguramos el 100% del mismo.\",\n \"Traund no cobra comisiones. Sin embargo, existe una comisión de la red de Traunders, la cual es variable (es por eso que debes cotizar he inmediatamente iniciar las transferencias).\\n Pero no te preocupes que todos los costos están incluidos al hacer tu cotización.\\nLo que ves es lo que se entregará en el país de destino!\",\n \"Si. Traund nunca está en contacto con tu dinero (que es transferido por ti directo a tu Traunder y viceversa). Sin embargo, el dinero de todas las transferencias está asegurado por Traund al 100% del monto enviado, bajo un deposito de garantía que se realiza al momento que se inicia cada transferencia.\\nHasta ahora hemos enviado más de 70,000.00 USD ¡sin perder ni un solo centavo! \",\n \"Traunder es la persona o empresa que te ayudará a realizar tu transferencia. Por cada operación existen 2 Traunders (uno en el país de origen y otro en el de destino). Los Traunders mayormente son vendedores y compradores de criptomonedas (traders) pero también pueden ser otras personas que necesiten enviar dinero entre países, así como otras empresas de envío de dinero.\\nNosotros siempre estamos en la búsqueda de la mejor ruta para enviar tu dinero.\",\n \"Las transferencias tienen un limite de tiempo de 12hrs.\\nPero hasta ahora todas las que hemos realizado se han llevado acabo en 4hrs o menos.\",\n \"Los limites son variables pero por lo general van desde un monto mínimo de 20 USD y un monto máximo de 5000 USD (o su equivalente en la moneda seleccionada).\\nAdicional al mes podras hacer transferencias como máximo por un valor de 5000 USD (o equivalente).\",\n \"Nosotros siempre estamos dispuestos a ayudarte. Mandanos un mensaje al chat de atención al cliente con los siguientes datos:\\n - País de origen.\\n - País de destino\\n - Monto a enviar\",\n ],\n },\n },\n start_form: {\n title_form: \"Bienvenidos a Traund\",\n subtitle_form: \"Ingresa tu correo electrónico\",\n start: \"Empezar\",\n sign_in: \"Iniciar Sesión\",\n },\n sender_form: {\n title_form: \"¿Quién envía?\",\n create_user: \"Si, acepto crear un usuario\",\n message_password_only_alphanumeric:\n \"Contraseña no válida. Solo caracteres alfanumericos\",\n create_password: \"Crea tu contraseña\",\n },\n receiver_form: {\n title_form: \"Ingrese datos de quién recibe\",\n bank_account: \"Cuenta\",\n bank_account_global: \"Número de Cuenta Interbancaria\",\n bank_info_title: \"Método de Pago\",\n bank_account_global_mx: \"Número de clabe interbancaria\",\n warning_payment_limit_time:\n \"*En el próximo paso tendrás 25 minutos para realizar el pago. Al finalizar el tiempo, tu transferencia será cancelada y deberás empezar una nueva\",\n },\n agent_view: {\n upload_voucher_title:\n \"Sube una foto o pantallazo del comprobante de pago de la transferencia\",\n upload_file_voucher: \"Subir Comprobante\",\n change_file_voucher: \"Cambiar Comprobante\",\n agent: \"Traunder\",\n timer_title: \"Tiempo Limite\",\n confirm_transfer_button: \"Si, Transferí\",\n time_left: \"Tiempo restante para completar el deposito\",\n upload_file_description: \"Seleccione un archivo\",\n description:\n \"Transfiere desde la app de tu banco o realiza un deposito de amount currency a una de las siguientes opciones:\",\n ask_for_information: \"Pregunte por la información del banco\",\n update_status_transaction_description:\n \"Pago registrado, pendiente de verificación\",\n },\n payment_view: {\n button_vocher: \"Ver Comprobante\",\n button_confirm: \"Confirmar transacción\",\n processing_payment_title:\n \"Estamos procesando tu pago, puede tomar hasta 4 horas...\",\n processing_payment_description:\n \"Te enviaremos un correo cuando este completo\",\n },\n confirm_view: {\n confirm_title: \"Transacción Exitosa\",\n confirm_message: \"Te enviamos una notificación. Gracias por usar Traund\",\n },\n stepper: {\n one: \"¿Quién Envía?\",\n two: \"¿Quién Recibe?\",\n three: \"Pago\",\n four: \"Confirmación\",\n five: \"Confirmación\",\n },\n resume: {\n title: \"Resumen de la orden\",\n title_sender: \"Su información\",\n title_receiver: \"Información del destinatario\",\n title_bank: \"Método de pago\",\n amount_sent: \"Monto a enviar\",\n amount_received: \"Monto a recibir\",\n phone: \"telefono\",\n names: \"Nombres Completos\",\n email: \"Correo electrónico\",\n countryOrigin: \"Pais Origen\",\n currencyOrigin: \"Moneda Origen\",\n countryTo: \"Pais Destino\",\n currencyTo: \"Moneda Destino\",\n bankName: \"Método de pago\",\n bankNumber: \"Nro de Cuenta\",\n bankGlobalNumber: \"Nro Global de Cuente\",\n promoApplied: \"Agregado\",\n coupon: \"Cupón\",\n },\n wallet: {\n wallet_title: \"Información de la Billetera\",\n amount: \"Monto\",\n available_amount: \"Monto disponible\",\n balance_amount: \"Monto contable\",\n transactions: \"Transacciones\",\n withdraw: \"Retirar\",\n withdrawals: \"Retiros\",\n deposits: \"Depósitos\",\n date: \"Fecha\",\n status: \"Estado\",\n wallet_not_found: \"Billetera no encontrada\",\n create_wallet: \"Crear billetera\",\n withdraw_message: `Quiero retirar el monto {0} USDT de mi billetera a {1}({2})`,\n please_choose_a_value: \"Por favor seleccione un valor\",\n wallet_not_found_description:\n \"Necesitas crear una billetera para poder disfrutar de sus beneficios.\",\n wallet: \"Billetera\",\n },\n event_register: {\n register: \"Registrarme\",\n title: \"Ingresa tu información\",\n description:\n \"Regístrate y obtén un cupón de $3 dólares para tu primera transferencia.\",\n confirm_message:\n \"Ya estás listo para realizar tu primera transacción, te hemos enviado un correo con los detalles\",\n email_message: \"Te hemos enviado un mensaje a tu correo electrónico.\",\n referral_code: \"Tengo un código de embajador\",\n submit_code: \"Enviar Código\",\n },\n complete_register_form: {\n title_form: \"Completa Tu Registro\",\n subtitle_form: \"Ingresa una contraseña para tu cuenta\",\n send_password: \"Confirmar\",\n confirm_message: \"Gracias por confirmar su registro en Traund.\",\n email_message: \"Te hemos enviado un mensaje a tu correo electrónico.\",\n },\n password_reset_form: {\n title_form: \"Traund\",\n subtitle_form: \"Ingrese su nueva contraseña\",\n send_password: \"Confirmar\",\n confirm_message: \"Gracias por confirmar su registro en Traund.\",\n email_message: \"Te hemos enviado un mensaje a tu correo electrónico.\",\n },\n password_change_form: {\n title_form: \"Cambia tu contraseña\",\n },\n password_recover_form: {\n title_form: \"Recupera tu contraseña\",\n subtitle_form:\n \"Ingresa un correo. Te enviaremos instrucciones para recuperar tu contraseña.\",\n confirm_message: \"Te hemos enviado un mensaje a tu correo.\",\n },\n call_to_action: {\n first: \"Regístrate y tu primera transacción va por nuestra cuenta.\",\n second: \" Tu primera transacción totalmente gratis,\",\n third: \"registrándote aquí\",\n },\n email: \"Correo electrónico\",\n firstname: \"Nombre\",\n lastname: \"Apellido\",\n cellphone: \"Número Celular\",\n country: \"País\",\n bank: \"Método de Pago\",\n next_step: \"Continuar\",\n back_step: \"Regresar\",\n confirm: \"Confirmar\",\n account_id: \"Cuenta del Método de Pago\",\n business_info: \"Información del negocio\",\n business_country: \"País del negocio\",\n business_name: \"Nombre del negocio\",\n business_tax_code: \"Codigo Impuesto\",\n business_available_countries: \"Paises con los que trabaja\",\n bank_info: \"Información del Banco\",\n bank_name: \"Nombre del banco\",\n bank_account_number: \"Número de cuenta de banco\",\n bank_account_number_optional: \"Número de cuenta de banco (Opcional)\",\n identification_type: \"Identification Type\",\n identification_number: \"Identification Number\",\n email_validation_message: \"Ingrese un correo electrónico\",\n email_correct_validation_message: \"Ingrese un correo electrónico válido\",\n firstname_validation_message: \"Ingrese un Nombre\",\n lastname_validation_message: \"Ingrese un apellido\",\n cellphone_validation_message: \"Ingrese un número celular\",\n country_validation_message: \"Seleccione país\",\n bankname_validation_message: \"Inserte un nombre de banco válido\",\n banknumber_validation_message: \"Inserte un número de banco\",\n bankroutenumber_validation_message: \"Inserte un número de banco\",\n password_validation_message: \"Ingrese una contraseña\",\n confirmation_password_validation_message: \"Ingrese una contraseña\",\n type_account_validation_message: \"Seleccione un tipo de cuenta\",\n edit_profile_business_info: \"Editar Información\",\n payment_method_not_found: \"Metodo de pago no encontrado\",\n payment_method: \"Metodo de pago\",\n password: \"Ingrese contraseña\",\n repeatPassword: \"Repita contraseña\",\n security_information: \"Información de Seguridad\",\n minutes: \"minutos\",\n transaction_no_valid: \"No pudimos encontrar tu transacción\",\n referralCode: \"Código de referido\",\n warning_no_bank_info:\n \"Para usar esta herramienta, ingrese la información del negocio en la sección del perfil\",\n transaction_no_valid_description:\n \"Esto se debe a que el link ya venció o es incorrecto.\\n Por favor crea una nueva transacción\",\n error_general: \"Hubo un error, intente de nuevo por favor.\",\n error_password_match: \"Las contraseñas no coinciden.\",\n type_account: \"Tipo de cuenta\",\n transaction_reject_message:\n \"La transacción fue rechazada por el usuario al no realizar el deposito\",\n zelle: {\n bank_account_title: \"Tipo de Cuenta\",\n bank_email: \"Correo electrónico de Zelle\",\n bank_phone: \"Número telefónico de Zelle\",\n bank_address_title: \"Correo electrónico/Número telefónico\",\n },\n tron: {\n bank_address: \"TRON(TRC20)\",\n bank_tron_address: \"Dirección de billetera TRON(TRC20)\",\n bank_address_error: \"\",\n tron_error_required: \"Dirección TRON es requerida\",\n tron_wallet_address_error: \"Dirección de billetera TRON(TRC20) no válida\",\n },\n oggo: {\n bank_address: \"Usuario Oggo\",\n btc_address: \"Dirección de billetera BTC\",\n btc_wallet_address_error: \"Dirección de billetera BTC no válida\",\n },\n uala: {\n alias: \"Alias\",\n cuitcuil: \"CUIT/CUIL\",\n cvu: \"CVU\",\n },\n mercadolibre: {\n dni: \"DNI\",\n alias: \"Alias\",\n },\n select_country_message: \"Seleccione un país\",\n tooltip: {\n bank_name: \"Nombre del banco donde recibirá su dinero\",\n bank_global_account:\n \"Número de cuenta para realizar transferencias interbancarias\",\n bank_account: \"Número de cuenta provisto por tu banco para transferencias\",\n },\n calculator: {\n success_message:\n \"Esocoge el medio y nos comunicaremos contigo en unos segundos\",\n invalid_coupon_message:\n \"El cupón ingresado no es válido. Ingrese otro cupón o quite el ingresado para continuar\",\n invalid_coupon_country_from:\n \"El cupón ingresado no es válido para este pais de Origen\",\n invalid_coupon_country_to:\n \"El cupón ingresado no es válido para este pais de Destino\",\n invalid_coupon_amount_from:\n \"El cupón ingresado no es válido para el monto transferido\",\n success_message:\n \"Escoge una opción para continuar tu transacción y en unos minutos te contactaremos\",\n email: \"Enviame un correo\",\n chat: \"Hablemos en Facebook Messenger\",\n plus: \"Sumaste amount currency gracias a tu cupón\",\n recalculate_description: \"El tipo de cambio se actualizará en \",\n comision: \"Comisión Traund\",\n tax_pe: \"Impuesto (ITF)\",\n tax_co: \"Impuesto (4x1000)\",\n receiver:\"Recibiremos\",\n exchange_rate: \"Tipo de cambio\",\n tron_network_fee: 'Comisión de Red',\n paypal_fee: 'Comisión Paypal',\n total_fees: 'Comisión total',\n wallet_converted_amount: `Recibiremos`,\n wallet_fee: 'Comisión',\n converted_amount: 'Transferiremos',\n converted_amount_receive: 'Recibiremos',\n remove_coupon: \"Quitar cupón\",\n converted_amount_network: \"Monto convertido\",\n },\n transaction_status: {\n title: \"Estado de la Transacción\",\n from: \"De\",\n to: \"Hacia\",\n status_name: \"Estado\",\n description: \"Descripción\",\n created_at: \"Creado\",\n currency: \"Moneda\",\n sender: \"Envía\",\n recipient: \"Receptor\",\n refund: \"Reembolsar\",\n release: \"Liberar pago\",\n },\n go_to_home: \"Ir al Inicio\",\n create_new_transaction: \"Crear nueva transacción\",\n transaction_error: \"No pudimos crear tu transacción\",\n contact_us_error_message:\n \"Por favor, contáctenos a traves del chat de soporte\",\n create_new_transaction_message: \"O cree una nueva transacción\",\n go_to_chat: \"Contactanos\",\n login: {\n not_registered_user: \"La dirección de correo electrónico es incorrecta\",\n forgot_password: \"Olvidaste tu contraseña?\",\n manually_set_data: \"O registra tu información en el siguiente formulario\",\n go_to_form: \"Ir al formulario\",\n go_to_login: \"Iniciar Sesión\",\n already_registered: \"¿Tienes una cuenta?\",\n register_description: \"Por favor, inicia sesión con tu correo\",\n back_to_form: \"Regresar al formulario\",\n dont_have_account: \"¿No tienes cuenta?\",\n },\n business: {\n calculate: \"Calcular\",\n generate_link: \"Generar Enlace de Pago\",\n generate_link_warranty: \"Generar Enlace de Pago con Garantia\",\n link_warning:\n \"El enlace es válido durante 12 horas.\\nDespués de este tiempo se desactivará y tendrá que crear uno nuevo.\",\n you_will_get: \"Se depositará en tu cuenta\",\n confirm_message: \"Hemos registrado tus datos satisfactoriamente\",\n email_message: \"Nos contactaremos contigo vía correo electrónico\",\n title: \"Link de PAGO para ti y tu negocio\",\n subtitle: \"Convierte tu negocio local en regional\",\n description:\n \"Regístrate en nuestra comunidad y prueba nuestros links de pago con 0 COMISIONES.\",\n subtitle_description:\n \"Realiza cobros por medio de la red de Traund con 0 COMISIONES y a un GRAN TIPO DE CAMBIO.\\nSin costos ocultos. \\nSabras cuanto recibirás al momento de generar tu link\",\n freelancers: \"Freelancers\",\n freelancers_description:\n \"No pierdas el dinero que tanto te ha costado ganar en altas comisiones y bajos tipos de cambio. Recibelo a tu cuenta bancaria en pocas horas con 0 COMISIONES.\\nTambién puedes crear un enlace de pago con depósito en garantía y proteger tus ganancias antes de empezar cualquier trabajo. Evita las estafas y TRABAJA CON TRANQUILIDAD\",\n ecommerce: \"Tiendas Virtuales\",\n ecommerce_description:\n \"Recibe pagos desde distintos paises de la region con 0 COMISIONES, amplia tu mercado y obten más ganancias.\\nAsegure el dinero de sus ventas con enlaces de pago con depósito en garantía. Transmita a sus clientes la seguridad de que recibirán productos de calidad con SATISFACCIÓN GARANTIZADA.\",\n is_natural_person: \"Persona Natural\",\n business_country: \"País del Negocio\",\n business_info: \"Información del negocio\",\n generate_link_again: \"Generar nuevo link de pago\",\n title_enrollment: \"Complete su registro\",\n subtitle_enrollment: \"Ingrese la información de contacto\",\n },\n user: {\n title_enrollment: \"Complete su registro\",\n subtitle_enrollment: \"Ingrese la información de contacto\",\n identification_type: \"Tipo de identificación\",\n identification_number: \"Numero de identificación\",\n },\n errors: {\n \"TR-001-W\": \"Usuario registrado.\",\n \"TR-003-W\": \"Contraseña incorrecta\",\n \"TR-004-W\":\n \"Solo puedes hacer UNA transferencia a la vez. Debes completar tu transferencia pendiente.\",\n \"TR-005-E\": \"Cupón invalido o ya usado por el usuario\",\n \"TR-006-E\": \"Rol inválido para este tipo de transacción\",\n \"TR-010-E\": \"Link de pago expirado o incorrecto.\",\n \"TR-011-E\": \"Transacción ya se procesó\",\n \"CO-000-I\": \"Cupón invalido o ya usado por el usuario\",\n \"ID-004-W\": \"Nombre de usuario y/o contraseña incorrectos.\",\n \"ID-010-W\": \"Usuario ya ha sido registrado.\",\n \"ID-001-W\": \"Correo ya registrado\",\n },\n payment_form: {\n title_form: \"Información del Pagador\",\n },\n dashboard: {\n options: {\n payment_link: \"Crear enlace de pago\",\n payment_link_with_warranty: \"Crear enlace de pago con garantía\",\n payment_list: \"Listado de pagos\",\n payment_history: \"Historial de pagos\",\n user_referral: \"Codigo de Referido\",\n profile: \"Información de contacto\",\n wallet: \"Billetera\",\n transfers: \"Transferencias\",\n },\n referral_code: {\n general_title: \"Código de Referido\",\n title: \"Código\",\n statitics: \"Estadísticas\",\n generate_referral_code: \"Generar un código de referido\",\n no_referral_yet: \"No dispone de un código de referido\"\n },\n greeting_dashboard_title: \"Bienvenidos a \",\n available_dashboard_title: \"Dashboard Disponibles\",\n logout: \"Cerrar Sesión\",\n generate_warranty_wallet:\n \"Necesita crear una billetera de Traund para crear links de pago con garantía, ya que el monto sera depositado a su billetera\",\n payment_warranty_wallet:\n \"Necesita crear una billetera de Traund para usar los links de pago con garantía, ya que en caso de reembolso el monto sera depositado a su billetera\",\n payment_warranty_info_account:\n \"Necesita crear una cuenta en Traund para poder pagar con\",\n payment_warranty_links: \"Enlaces de pago con Garantía\",\n },\n countries: {\n MX: \"México\",\n PE: \"Perú\",\n US: \"Estados Unidos\",\n VE: \"Venezuela\",\n CO: \"Colombia\",\n DO: \"República Dominicana\",\n AR: \"Argentina\",\n CL: \"Chile\",\n EC: \"Ecuador\",\n BR: \"Brasil\",\n PY: \"Paraguay\",\n SV: \"El Salvador\",\n },\n header: {\n payments: \"Negocios & Freelancers\",\n freelance: \"Freelancers\",\n sign_up: \"Crear cuenta\",\n transfer: \"Enviar\",\n how_works: \"¿Cómo funciona?\",\n faqs: \"FAQs\",\n remittances: \"Enviar\",\n womens_month: \"Mes de la Mujer\",\n },\n woman_month: {\n title: \"Sorteo Mes de la mujer\",\n subtitle: \"Gana una membresía de Platzi por un año\",\n description:\n \"En TRAUND promovemos que cada vez más mujeres busquen su libertad financiera, y una de las mejores maneras para hacerlo, es ser FREELANCER. Por eso mismo, estamos regalando: una membresía COMPLETA para PLATZI durante ¡UN AÑO! para que puedas seguir formándote como profesional y destacar en tu área.\",\n tc: \"ver terminos & condiciones\",\n },\n banks: {\n bbva: 'BBVA bank',\n bcp: 'Credit Bank of Peru - BCP',\n scotiabank_peru: 'Scotiabank Peru',\n western_discount_bank: 'Western Discount Bank'\n },\n disclaimers: {\n send: \"Esta es una operación de nuestro servicio de envío.\",\n sendDescription: \"Cuando realices el pago y registres tu comprobante, la operación debería estar finalizada como máximo: \",\n sendDisclaimer: \"*Para transferir desde {COUNTRY}, es importante que veas nuestro video tutorial sobre el pago.\",\n receive: \"Esta es una operación de nuestro servicio de cobro.\",\n receiveDescription: \"Se generará un link que debes compartirlo con la persona que realizará el pago. Una vez pagado y verificado, el tiempo máximo de procesamiento es de 12 horas hábiles para que recibas el dinero en el método de pago registrado en Traund.\",\n receiveBanks: \"*Recibimos pagos a través de transferencia bancaria.\",\n receiveZelle: \"*Recibimos pagos a través de transferencia bancaria Zelle.\",\n receiveDisclaimer: \"*Para cobrar desde {COUNTRY}, es obligatorio que veas nuestro video tutorial y lo compartas con la persona que realizará el pago.\",\n wallet: \"Esta es una operación de añadir fondos a tu Billetera Traund.\",\n walletDescription: \"Cuando realices el pago y registres tu comprobante, la operación debería estar finalizada como máximo: \",\n walletDisclaimer: \"*Este es el tiempo que toma el banco de {PAYMENTMETHOD} en procesar el pago.\",\n walletDisclaimerACH: \"*Este es el tiempo máximo que el banco puede tomar en procesar la transferencia ACH.\"\n }\n};\n","import firebase from \"firebase/app\";\nimport 'firebase/firestore';\nimport { BACKEND_SETTINGS } from \"./core/backend-settings\";\n\nconst loadFirebaseDB = (testMode = 'production', externalConfig = null) => {\n try {\n let firebaseConfig;\n \n if (externalConfig && externalConfig.provider) {\n firebaseConfig = externalConfig.provider;\n } else {\n return console.error('No Firebase configuration provided');\n }\n \n if (firebase.apps.length === 0) {\n firebase.initializeApp(firebaseConfig);\n }\n } catch (error) {\n if (!/already exist/.test(error.message)) {\n console.error('Firebase initialization error', error.stack);\n }\n }\n\n return firebase;\n};\n\nexport default loadFirebaseDB;\n","export const BACKEND_SETTINGS = {\n \"staging\": {\n URL: process.env.NEXT_PUBLIC_STAGING_TRAUND_BACKEND_URL,\n\n },\n \"beta\": {\n URL: process.env.NEXT_PUBLIC_BETA_TRAUND_BACKEND_URL,\n \n },\n \"production\": {\n URL: process.env.NEXT_PUBLIC_PROD_TRAUND_BACKEND_URL,\n \n }\n}\n","export const countries = [\n { code: \"TRAUND\", label: \"WALLET TRAUND\", prefix: \"+1\", currency: \"USDT\" },\n { code: \"PAYPAL\", label: \"PAYPAL\", prefix: \"+1\", currency: \"USD\" },\n { code: \"AD\", label: \"Andorra\", prefix: \"+376\" },\n { code: \"AE\", label: \"United Arab Emirates\", prefix: \"+971\" },\n { code: \"AF\", label: \"Afghanistan\", prefix: \"+93\" },\n { code: \"AG\", label: \"Antigua and Barbuda\", prefix: \"+1-268\" },\n { code: \"AI\", label: \"Anguilla\", prefix: \"+1-264\" },\n { code: \"AL\", label: \"Albania\", prefix: \"+355\" },\n { code: \"AM\", label: \"Armenia\", prefix: \"+374\" },\n { code: \"AO\", label: \"Angola\", prefix: \"+244\" },\n { code: \"AQ\", label: \"Antarctica\", prefix: \"+672\" },\n { code: \"AR\", label: \"Argentina\", prefix: \"+54\", currency: \"ARS\" },\n { code: \"AS\", label: \"American Samoa\", prefix: \"+1-684\" },\n { code: \"AT\", label: \"Austria\", prefix: \"+43\" },\n { code: \"AU\", label: \"Australia\", prefix: \"+61\" },\n { code: \"AW\", label: \"Aruba\", prefix: \"+297\" },\n { code: \"AX\", label: \"Alland Islands\", prefix: \"+358\" },\n { code: \"AZ\", label: \"Azerbaijan\", prefix: \"+994\" },\n { code: \"BA\", label: \"Bosnia and Herzegovina\", prefix: \"+387\" },\n { code: \"BB\", label: \"Barbados\", prefix: \"+1-246\" },\n { code: \"BD\", label: \"Bangladesh\", prefix: \"+880\" },\n { code: \"BE\", label: \"Belgium\", prefix: \"+32\" },\n { code: \"BF\", label: \"Burkina Faso\", prefix: \"+226\" },\n { code: \"BG\", label: \"Bulgaria\", prefix: \"+359\" },\n { code: \"BH\", label: \"Bahrain\", prefix: \"+973\" },\n { code: \"BI\", label: \"Burundi\", prefix: \"+257\" },\n { code: \"BJ\", label: \"Benin\", prefix: \"+229\" },\n { code: \"BL\", label: \"Saint Barthelemy\", prefix: \"+590\" },\n { code: \"BM\", label: \"Bermuda\", prefix: \"+1-441\" },\n { code: \"BN\", label: \"Brunei Darussalam\", prefix: \"+673\" },\n { code: \"BO\", label: \"Bolivia\", prefix: \"+591\", currency: \"BOB\" },\n { code: \"BR\", label: \"Brasil\", prefix: \"+55\", currency: \"BRL\" },\n { code: \"BS\", label: \"Bahamas\", prefix: \"+1-242\" },\n { code: \"BT\", label: \"Bhutan\", prefix: \"+975\" },\n { code: \"BV\", label: \"Bouvet Island\", prefix: \"+47\" },\n { code: \"BW\", label: \"Botswana\", prefix: \"+267\" },\n { code: \"BY\", label: \"Belarus\", prefix: \"+375\" },\n { code: \"BZ\", label: \"Belize\", prefix: \"+501\" },\n { code: \"CA\", label: \"Canada\", prefix: \"+1\" },\n { code: \"CC\", label: \"Cocos (Keeling) Islands\", prefix: \"+61\" },\n { code: \"CD\", label: \"Congo, Democratic Republic of the\", prefix: \"+243\" },\n { code: \"CF\", label: \"Central African Republic\", prefix: \"+236\" },\n { code: \"CG\", label: \"Congo, Republic of the\", prefix: \"+242\" },\n { code: \"CH\", label: \"Switzerland\", prefix: \"+41\" },\n { code: \"CI\", label: \"Cote d'Ivoire\", prefix: \"+225\" },\n { code: \"CK\", label: \"Cook Islands\", prefix: \"+682\" },\n { code: \"CL\", label: \"Chile\", prefix: \"+56\", currency: \"CLP\" },\n { code: \"CM\", label: \"Cameroon\", prefix: \"+237\" },\n { code: \"CN\", label: \"China\", prefix: \"+86\" },\n { code: \"CO\", label: \"Colombia\", prefix: \"+57\", currency: \"COP\" },\n { code: \"CR\", label: \"Costa Rica\", prefix: \"+506\", currency: \"CRC\" },\n { code: \"CU\", label: \"Cuba\", prefix: \"+53\" },\n { code: \"CV\", label: \"Cape Verde\", prefix: \"+238\" },\n { code: \"CW\", label: \"Curacao\", prefix: \"+599\" },\n { code: \"CX\", label: \"Christmas Island\", prefix: \"+61\" },\n { code: \"CY\", label: \"Cyprus\", prefix: \"+357\" },\n { code: \"CZ\", label: \"Czech Republic\", prefix: \"+420\" },\n { code: \"DE\", label: \"Germany\", prefix: \"+49\" },\n { code: \"DJ\", label: \"Djibouti\", prefix: \"+253\" },\n { code: \"DK\", label: \"Denmark\", prefix: \"+45\" },\n { code: \"DM\", label: \"Dominica\", prefix: \"+1-767\" },\n {\n code: \"DO\",\n label: \"Dominican Republic\",\n prefix: \"+1-809\",\n currency: \"DOP\",\n },\n { code: \"DZ\", label: \"Algeria\", prefix: \"+213\" },\n { code: \"EC\", label: \"Ecuador\", prefix: \"+593\", currency: \"USD\" },\n { code: \"EE\", label: \"Estonia\", prefix: \"+372\" },\n { code: \"EG\", label: \"Egypt\", prefix: \"+20\" },\n { code: \"EH\", label: \"Western Sahara\", prefix: \"+212\" },\n { code: \"ER\", label: \"Eritrea\", prefix: \"+291\" },\n { code: \"ES\", label: \"Spain\", prefix: \"+34\", currency: \"EUR\" },\n { code: \"ET\", label: \"Ethiopia\", prefix: \"+251\" },\n { code: \"FI\", label: \"Finland\", prefix: \"+358\" },\n { code: \"FJ\", label: \"Fiji\", prefix: \"+679\" },\n { code: \"FK\", label: \"Falkland Islands (Malvinas)\", prefix: \"+500\" },\n { code: \"FM\", label: \"Micronesia, Federated States of\", prefix: \"+691\" },\n { code: \"FO\", label: \"Faroe Islands\", prefix: \"+298\" },\n { code: \"FR\", label: \"France\", prefix: \"+33\" },\n { code: \"GA\", label: \"Gabon\", prefix: \"+241\" },\n { code: \"GB\", label: \"United Kingdom\", prefix: \"+44\" },\n { code: \"GD\", label: \"Grenada\", prefix: \"+1-473\" },\n { code: \"GE\", label: \"Georgia\", prefix: \"+995\" },\n { code: \"GF\", label: \"French Guiana\", prefix: \"+594\" },\n { code: \"GG\", label: \"Guernsey\", prefix: \"+44\" },\n { code: \"GH\", label: \"Ghana\", prefix: \"+233\" },\n { code: \"GI\", label: \"Gibraltar\", prefix: \"+350\" },\n { code: \"GL\", label: \"Greenland\", prefix: \"+299\" },\n { code: \"GM\", label: \"Gambia\", prefix: \"+220\" },\n { code: \"GN\", label: \"Guinea\", prefix: \"+224\" },\n { code: \"GP\", label: \"Guadeloupe\", prefix: \"+590\" },\n { code: \"GQ\", label: \"Equatorial Guinea\", prefix: \"+240\" },\n { code: \"GR\", label: \"Greece\", prefix: \"+30\" },\n {\n code: \"GS\",\n label: \"South Georgia and the South Sandwich Islands\",\n prefix: \"+500\",\n },\n { code: \"GT\", label: \"Guatemala\", prefix: \"+502\", currency: \"GTQ\" },\n { code: \"GU\", label: \"Guam\", prefix: \"+1-671\" },\n { code: \"GW\", label: \"Guinea-Bissau\", prefix: \"+245\" },\n { code: \"GY\", label: \"Guyana\", prefix: \"+592\" },\n { code: \"HK\", label: \"Hong Kong\", prefix: \"+852\" },\n { code: \"HM\", label: \"Heard Island and McDonald Islands\", prefix: \"+672\" },\n { code: \"HN\", label: \"Honduras\", prefix: \"+504\", currency: \"HNL\" },\n { code: \"HR\", label: \"Croatia\", prefix: \"+385\" },\n { code: \"HT\", label: \"Haiti\", prefix: \"+509\" },\n { code: \"HU\", label: \"Hungary\", prefix: \"+36\" },\n { code: \"ID\", label: \"Indonesia\", prefix: \"+62\" },\n { code: \"IE\", label: \"Ireland\", prefix: \"+353\" },\n { code: \"IL\", label: \"Israel\", prefix: \"+972\" },\n { code: \"IM\", label: \"Isle of Man\", prefix: \"+44\" },\n { code: \"IN\", label: \"India\", prefix: \"+91\" },\n { code: \"IO\", label: \"British Indian Ocean Territory\", prefix: \"+246\" },\n { code: \"IQ\", label: \"Iraq\", prefix: \"+964\" },\n { code: \"IR\", label: \"Iran, Islamic Republic of\", prefix: \"+98\" },\n { code: \"IS\", label: \"Iceland\", prefix: \"+354\" },\n { code: \"IT\", label: \"Italy\", prefix: \"+39\" },\n { code: \"JE\", label: \"Jersey\", prefix: \"+44\" },\n { code: \"JM\", label: \"Jamaica\", prefix: \"+1-876\" },\n { code: \"JO\", label: \"Jordan\", prefix: \"+962\" },\n { code: \"JP\", label: \"Japan\", prefix: \"+81\" },\n { code: \"KE\", label: \"Kenya\", prefix: \"+254\" },\n { code: \"KG\", label: \"Kyrgyzstan\", prefix: \"+996\" },\n { code: \"KH\", label: \"Cambodia\", prefix: \"+855\" },\n { code: \"KI\", label: \"Kiribati\", prefix: \"+686\" },\n { code: \"KM\", label: \"Comoros\", prefix: \"+269\" },\n { code: \"KN\", label: \"Saint Kitts and Nevis\", prefix: \"+1-869\" },\n {\n code: \"KP\",\n label: \"Korea, Democratic People's Republic of\",\n prefix: \"+850\",\n },\n { code: \"KR\", label: \"Korea, Republic of\", prefix: \"+82\" },\n { code: \"KW\", label: \"Kuwait\", prefix: \"+965\" },\n { code: \"KY\", label: \"Cayman Islands\", prefix: \"+1-345\" },\n { code: \"KZ\", label: \"Kazakhstan\", prefix: \"+7\" },\n { code: \"LA\", label: \"Lao People's Democratic Republic\", prefix: \"+856\" },\n { code: \"LB\", label: \"Lebanon\", prefix: \"+961\" },\n { code: \"LC\", label: \"Saint Lucia\", prefix: \"+1-758\" },\n { code: \"LI\", label: \"Liechtenstein\", prefix: \"+423\" },\n { code: \"LK\", label: \"Sri Lanka\", prefix: \"+94\" },\n { code: \"LR\", label: \"Liberia\", prefix: \"+231\" },\n { code: \"LS\", label: \"Lesotho\", prefix: \"+266\" },\n { code: \"LT\", label: \"Lithuania\", prefix: \"+370\" },\n { code: \"LU\", label: \"Luxembourg\", prefix: \"+352\" },\n { code: \"LV\", label: \"Latvia\", prefix: \"+371\" },\n { code: \"LY\", label: \"Libya\", prefix: \"+218\" },\n { code: \"MA\", label: \"Morocco\", prefix: \"+212\" },\n { code: \"MC\", label: \"Monaco\", prefix: \"+377\" },\n { code: \"MD\", label: \"Moldova, Republic of\", prefix: \"+373\" },\n { code: \"ME\", label: \"Montenegro\", prefix: \"+382\" },\n { code: \"MF\", label: \"Saint Martin (French part)\", prefix: \"+590\" },\n { code: \"MG\", label: \"Madagascar\", prefix: \"+261\" },\n { code: \"MH\", label: \"Marshall Islands\", prefix: \"+692\" },\n {\n code: \"MK\",\n label: \"Macedonia, the Former Yugoslav Republic of\",\n prefix: \"+389\",\n },\n { code: \"ML\", label: \"Mali\", prefix: \"+223\" },\n { code: \"MM\", label: \"Myanmar\", prefix: \"+95\" },\n { code: \"MN\", label: \"Mongolia\", prefix: \"+976\" },\n { code: \"MO\", label: \"Macao\", prefix: \"+853\" },\n { code: \"MP\", label: \"Northern Mariana Islands\", prefix: \"+1-670\" },\n { code: \"MQ\", label: \"Martinique\", prefix: \"+596\" },\n { code: \"MR\", label: \"Mauritania\", prefix: \"+222\" },\n { code: \"MS\", label: \"Montserrat\", prefix: \"+1-664\" },\n { code: \"MT\", label: \"Malta\", prefix: \"+356\" },\n { code: \"MU\", label: \"Mauritius\", prefix: \"+230\" },\n { code: \"MV\", label: \"Maldives\", prefix: \"+960\" },\n { code: \"MW\", label: \"Malawi\", prefix: \"+265\" },\n { code: \"MX\", label: \"Mexico\", prefix: \"+52\", currency: \"MXN\" },\n { code: \"MY\", label: \"Malaysia\", prefix: \"+60\" },\n { code: \"MZ\", label: \"Mozambique\", prefix: \"+258\" },\n { code: \"NA\", label: \"Namibia\", prefix: \"+264\" },\n { code: \"NC\", label: \"New Caledonia\", prefix: \"+687\" },\n { code: \"NE\", label: \"Niger\", prefix: \"+227\" },\n { code: \"NF\", label: \"Norfolk Island\", prefix: \"+672\" },\n { code: \"NG\", label: \"Nigeria\", prefix: \"+234\" },\n { code: \"NI\", label: \"Nicaragua\", prefix: \"+505\" },\n { code: \"NL\", label: \"Netherlands\", prefix: \"+31\" },\n { code: \"NO\", label: \"Norway\", prefix: \"+47\" },\n { code: \"NP\", label: \"Nepal\", prefix: \"+977\" },\n { code: \"NR\", label: \"Nauru\", prefix: \"+674\" },\n { code: \"NU\", label: \"Niue\", prefix: \"+683\" },\n { code: \"NZ\", label: \"New Zealand\", prefix: \"+64\" },\n { code: \"OM\", label: \"Oman\", prefix: \"+968\" },\n { code: \"PA\", label: \"Panama\", prefix: \"+507\" },\n { code: \"PE\", label: \"Peru\", prefix: \"+51\", currency: \"PEN\" },\n { code: \"PE-USD\", label: \"Peru\", prefix: \"+51\", currency: \"USD\" },\n { code: \"PF\", label: \"French Polynesia\", prefix: \"+689\" },\n { code: \"PG\", label: \"Papua New Guinea\", prefix: \"+675\" },\n { code: \"PH\", label: \"Philippines\", prefix: \"+63\" },\n { code: \"PK\", label: \"Pakistan\", prefix: \"+92\" },\n { code: \"PL\", label: \"Poland\", prefix: \"+48\" },\n { code: \"PM\", label: \"Saint Pierre and Miquelon\", prefix: \"+508\" },\n { code: \"PN\", label: \"Pitcairn\", prefix: \"+870\" },\n { code: \"PR\", label: \"Puerto Rico\", prefix: \"+1\" },\n { code: \"PS\", label: \"Palestine, State of\", prefix: \"+970\" },\n { code: \"PT\", label: \"Portugal\", prefix: \"+351\" },\n { code: \"PW\", label: \"Palau\", prefix: \"+680\" },\n { code: \"PY\", label: \"Paraguay\", prefix: \"+595\", currency: \"PYG\" },\n { code: \"QA\", label: \"Qatar\", prefix: \"+974\" },\n { code: \"RE\", label: \"Reunion\", prefix: \"+262\" },\n { code: \"RO\", label: \"Romania\", prefix: \"+40\" },\n { code: \"RS\", label: \"Serbia\", prefix: \"+381\" },\n { code: \"RU\", label: \"Russian Federation\", prefix: \"+7\" },\n { code: \"RW\", label: \"Rwanda\", prefix: \"+250\" },\n { code: \"SA\", label: \"Saudi Arabia\", prefix: \"+966\" },\n { code: \"SB\", label: \"Solomon Islands\", prefix: \"+677\" },\n { code: \"SC\", label: \"Seychelles\", prefix: \"+248\" },\n { code: \"SD\", label: \"Sudan\", prefix: \"+249\" },\n { code: \"SE\", label: \"Sweden\", prefix: \"+46\" },\n { code: \"SG\", label: \"Singapore\", prefix: \"+65\" },\n { code: \"SH\", label: \"Saint Helena\", prefix: \"+290\" },\n { code: \"SI\", label: \"Slovenia\", prefix: \"+386\" },\n { code: \"SJ\", label: \"Svalbard and Jan Mayen\", prefix: \"+47\" },\n { code: \"SK\", label: \"Slovakia\", prefix: \"+421\" },\n { code: \"SL\", label: \"Sierra Leone\", prefix: \"+232\" },\n { code: \"SM\", label: \"San Marino\", prefix: \"+378\" },\n { code: \"SN\", label: \"Senegal\", prefix: \"+221\" },\n { code: \"SO\", label: \"Somalia\", prefix: \"+252\" },\n { code: \"SR\", label: \"Suriname\", prefix: \"+597\" },\n { code: \"SS\", label: \"South Sudan\", prefix: \"+211\" },\n { code: \"ST\", label: \"Sao Tome and Principe\", prefix: \"+239\" },\n { code: \"SV\", label: \"El Salvador\", prefix: \"+503\", currency: \"BTC\" },\n { code: \"SX\", label: \"Sint Maarten (Dutch part)\", prefix: \"+1-721\" },\n { code: \"SY\", label: \"Syrian Arab Republic\", prefix: \"+963\" },\n { code: \"SZ\", label: \"Swaziland\", prefix: \"+268\" },\n { code: \"TC\", label: \"Turks and Caicos Islands\", prefix: \"+1-649\" },\n { code: \"TD\", label: \"Chad\", prefix: \"+235\" },\n { code: \"TF\", label: \"French Southern Territories\", prefix: \"+262\" },\n { code: \"TG\", label: \"Togo\", prefix: \"+228\" },\n { code: \"TH\", label: \"Thailand\", prefix: \"+66\" },\n { code: \"TJ\", label: \"Tajikistan\", prefix: \"+992\" },\n { code: \"TK\", label: \"Tokelau\", prefix: \"+690\" },\n { code: \"TL\", label: \"Timor-Leste\", prefix: \"+670\" },\n { code: \"TM\", label: \"Turkmenistan\", prefix: \"+993\" },\n { code: \"TN\", label: \"Tunisia\", prefix: \"+216\" },\n { code: \"TO\", label: \"Tonga\", prefix: \"+676\" },\n { code: \"TR\", label: \"Turkey\", prefix: \"+90\" },\n { code: \"TT\", label: \"Trinidad and Tobago\", prefix: \"+1-868\" },\n { code: \"TV\", label: \"Tuvalu\", prefix: \"+688\" },\n { code: \"TW\", label: \"Taiwan, Province of China\", prefix: \"+886\" },\n { code: \"TZ\", label: \"United Republic of Tanzania\", prefix: \"+255\" },\n { code: \"UA\", label: \"Ukraine\", prefix: \"+380\" },\n { code: \"UG\", label: \"Uganda\", prefix: \"+256\" },\n { code: \"US\", label: \"United States\", prefix: \"+1\", currency: \"USD\" },\n { code: \"UY\", label: \"Uruguay\", prefix: \"+598\" },\n { code: \"UZ\", label: \"Uzbekistan\", prefix: \"+998\" },\n { code: \"VA\", label: \"Holy See (Vatican City State)\", prefix: \"+379\" },\n { code: \"VC\", label: \"Saint Vincent and the Grenadines\", prefix: \"+1-784\" },\n { code: \"VE\", label: \"Venezuela\", prefix: \"+58\", currency: \"VES\" },\n { code: \"VG\", label: \"British Virgin Islands\", prefix: \"+1-284\" },\n { code: \"VI\", label: \"US Virgin Islands\", prefix: \"+1-340\" },\n { code: \"VN\", label: \"Vietnam\", prefix: \"+84\" },\n { code: \"VU\", label: \"Vanuatu\", prefix: \"+678\" },\n { code: \"WF\", label: \"Wallis and Futuna\", prefix: \"+681\" },\n { code: \"WS\", label: \"Samoa\", prefix: \"+685\" },\n { code: \"XK\", label: \"Kosovo\", prefix: \"+383\" },\n { code: \"YE\", label: \"Yemen\", prefix: \"+967\" },\n { code: \"YT\", label: \"Mayotte\", prefix: \"+262\" },\n { code: \"ZA\", label: \"South Africa\", prefix: \"+27\" },\n { code: \"ZM\", label: \"Zambia\", prefix: \"+260\" },\n { code: \"ZW\", label: \"Zimbabwe\", prefix: \"+263\" },\n];\n","import React, { useRef } from \"react\";\nimport Countdown from \"react-countdown\";\nimport en from \"../locale/en\";\nimport es from \"../locale/es\";\n\nconst Timer = (props) => {\n const locale = props.locale;\n const content = locale === \"es\" ? es : en;\n const ref = useRef(Date.now());\n\n return (\n <Countdown\n date={ref.current + 5 * 60 * 1000}\n renderer={({ minutes, seconds }) => (\n <span\n style={{\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"16px\",\n color: `${minutes < 1 ? \"red\" : \"#000F37\"}`,\n textAlign: \"center\"\n }}\n >\n {content.calculator.recalculate_description}\n <b>{`0${minutes}`}:{seconds < 10 ? `0${seconds}` : seconds}</b>\n </span>\n )}\n onComplete={props.onTimeout}\n ></Countdown>\n );\n};\n\nexport default Timer;\n","import { BACKEND_SETTINGS } from \"./backend-settings\";\n\nclass EndPoints {\n constructor(testMode = 'production', externalConfig = null) {\n this._testMode = testMode;\n this.baseUrl = externalConfig && externalConfig.backendUrl;\n this.path_managment_operations = `${this.baseUrl}/handle-operations`;\n }\n\n\n get CALLBACK() {\n return {\n landing_transfer: (baseUrl, locale) => `${baseUrl}/${locale}/send`,\n landing_receive: (baseUrl, locale) => `${baseUrl}/${locale}/receive`,\n landing_wallet: (baseUrl, locale) => `${baseUrl}/${locale}/wallet`,\n referral_transfer: (baseUrl, locale, storeId) => `${baseUrl}/${locale}/login?referral=operation&type=transfer&reference=${storeId}`,\n referral_receive: (baseUrl, locale, storeId) => `${baseUrl}/${locale}/login?referral=operation&type=pay&reference=${storeId}`,\n referral_recharge: (baseUrl, locale, storeId) => `${baseUrl}/${locale}/login?referral=operation&type=recharge&reference=${storeId}`,\n }\n };\n\n get OPERATIONS() {\n return {\n calculate: (storeId, source) => `${this.path_managment_operations}/calculate/v1/update/${storeId}/${source}`,\n validateCoupon: `${this.path_managment_operations}/coupon/v1/validate`\n }\n };\n\n get EXCHANGE() {\n return {\n getRate: (currencyFrom, currencyTo) => `https://api.exchangerate.host/convert?from=${currencyFrom}&to=${currencyTo}`,\n getRate_bk_1: (currencyFrom, currencyTo) => `https://api-us.exchangerate.host/convert?from=${currencyFrom}&to=${currencyTo}`,\n getRate_bk_2: (currencyFrom, currencyTo) => `https://api-eu.exchangerate.host/convert?from=${currencyFrom}&to=${currencyTo}`,\n getRate_v2: (currencyFrom) => `https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/${currencyFrom.toLowerCase()}.json`,\n getRate_v3: (currencyFrom, currencyTo) => `https://cdnhlp-staging.traund.xyz/rates/v1/${currencyFrom}/${currencyTo}`,\n getUSDBlueRate: `https://api.bluelytics.com.ar/v2/latest`\n }\n };\n}\n\nexport default EndPoints;","import React from \"react\";\nimport { CircleFlag } from 'react-circle-flags'\n\nconst FlagsHelpers = (props) => {\n let code = props.code && props.code.toLowerCase();\n if (code == \"ach\") code = \"us\";\n\n let url = {\n 'traund': 'https://images-traund.s3.amazonaws.com/payment-methods/Traund.svg',\n 'paypal': 'https://images-traund.s3.amazonaws.com/payment-methods/paypal.svg',\n 'usdt': 'https://images-traund.s3.amazonaws.com/payment-methods/Tether.svg',\n 'wise': 'https://images-traund.s3.amazonaws.com/payment-methods/Wise.svg',\n 'payoneer': 'https://images-traund.s3.amazonaws.com/payment-methods/Payoneer.svg',\n 'deel': 'https://images-traund.s3.amazonaws.com/payment-methods/Deel.svg',\n 'ontop': 'https://images-traund.s3.amazonaws.com/payment-methods/Ontop.svg'\n }\n\n return (\n code?.length > 2 ?\n <img\n data-testid='circle-country-flag'\n height='16'\n width='16'\n style={{width: 16, height: 16}}\n src={url[code]}\n />\n :\n <CircleFlag countryCode={code} height=\"16\" style={{width: 16, height: 16}}/>\n );\n}\n\nexport default FlagsHelpers;\n","const peruTaxStrategy = (amount) => {\n const taxRate = 0.05;\n if (amount < 1000) return { newAmount: amount, appliedDiscount: 0 };\n\n const perThousand = Math.floor(amount / 1000);\n let discount = parseFloat((perThousand * taxRate).toFixed(2));\n return { newAmount: parseFloat((amount - discount).toFixed(2)), appliedDiscount: discount };\n};\n\nconst colombiaTaxStrategy = (amount) => {\n const taxPerThousand = 4;\n if (amount < 1000) return { newAmount: amount, appliedDiscount: 0 };\n\n const discount = Math.round(amount / 1000) * taxPerThousand;\n return { newAmount: amount - discount, appliedDiscount: discount };\n};\n\nconst noTaxStrategy = (amount) => ({ newAmount: amount, appliedDiscount: 0 });\n\nconst taxStrategyFactory = (country, isSender) => {\n if (!country) return;\n if (isSender && country.toLowerCase() === \"co\") return noTaxStrategy;\n\n switch (country.toLowerCase()) {\n case \"pe\":\n case \"pe-usd\":\n return peruTaxStrategy;\n case \"co\":\n return colombiaTaxStrategy;\n default:\n return noTaxStrategy;\n }\n};\n\nexport const applyTaxDiscount = (countryFrom, countryTo, amountFrom, amountTo) => {\n const senderStrategy = taxStrategyFactory(countryFrom, true);\n const receiverStrategy = taxStrategyFactory(countryTo, false);\n\n const senderTax = senderStrategy(amountFrom);\n const receiverTax = receiverStrategy(amountTo);\n\n const isDiscountApplied = senderTax.appliedDiscount > 0 || receiverTax.appliedDiscount > 0;\n const appliedOnDate = isDiscountApplied ? new Date().toISOString() : null;\n\n return {\n newAmountSender: senderTax.newAmount,\n newAmountReceiver: receiverTax.newAmount,\n appliedDiscountSender: senderTax.appliedDiscount,\n appliedDiscountReceiver: receiverTax.appliedDiscount,\n isDiscountApplied,\n appliedOnDate,\n };\n};\n","import CryptoJS from 'crypto-js';\n\nexport function generateSignature(secretKey, params) {\n const {\n timestamp = Date.now().toString(),\n method,\n url,\n channel = 'default',\n body = '',\n } = params;\n\n const bodyString =\n body ?\n (typeof body === 'string' ? body : JSON.stringify(body)) :\n '';\n\n const stringToSign = `${timestamp}+${method.toUpperCase()}+${url}+${channel}+${bodyString}`;\n\n const signature = CryptoJS.HmacSHA256(stringToSign, secretKey).toString(CryptoJS.enc.Hex);\n\n return {\n signature,\n timestamp,\n };\n}\n\nexport function getSignatureHeader(method, url, body = null, apikey = null) {\n const referenceApiKey = apikey ;\n const secretKey = process.env.NEXT_PUBLIC_STAGING_APIKEY;\n const signatureParams = {\n method: method,\n url: url,\n body: body\n };\n \n const result = generateSignature(secretKey, signatureParams);\n return `orq:${referenceApiKey}:${result.timestamp}:${result.signature}`;\n}","import React, { useState, useEffect, useCallback, useRef } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Chip from \"@material-ui/core/Chip\";\nimport Button from \"@material-ui/core/Button\";\nimport en from \"./locale/en\";\nimport es from \"./locale/es\";\nimport loadFirebaseDB from \"./firebase.config\";\nimport Endpoints from \"./core/endpoints\";\nimport TransferUser from \"./model/transferUser\";\nimport { TransferType, UserType, SimulatorMode } from \"./model/enums\";\nimport CalculateHelper from \"./utils/calculateHelper\";\nimport OperationsHelper from \"./utils/operationsHelper\";\nimport InputAmount from \"./components/inputAmount\";\nimport Timer from \"./countdown\";\nimport Fees from \"./components/fees\";\nimport Disclaimers from \"./components/disclaimers\";\nimport TransferDetail from \"./model/transferDetail\";\nimport { addLabelToPaymentMethods, setIdForPaymentMethods } from \"./helpers/paymentMethodHelper\";\nimport PaymentMethodSelector from \"./components/paymentMethodSelector\";\nimport { simulatorStyles } from \"./components/simulatorStyles\";\nimport { countries } from \"./data/countries\";\nimport { applyTaxDiscount } from \"./helpers/taxDiscount\";\nimport { Divider } from \"@material-ui/core\";\nconst useStyles = simulatorStyles;\n\nfunction Simulator(props) {\n /**\n * HELPERS\n */\n const { locale, pathname, locales } = props;\n const content = locale === \"es\" ? es : en;\n const classes = useStyles();\n\n const __ENDPOINTS = new Endpoints(props.testMode, props.config?.backendUrl);\n const __calculateHelper = new CalculateHelper(props.testMode);\n const __operationsHelper = new OperationsHelper(props.testMode, props.reference);\n\n const __firebase = loadFirebaseDB(props.testMode, props.config);\n\n const [simulatorMode, setSimulatorMode] = useState(SimulatorMode.SEND);\n const [suscribedGlobalOptions, setSuscribedGlobalOptions] = useState(false);\n const [globalTransferOptions, setGlobalTransferOptions] = useState(null);\n const [arrayTransferOptions, setArrayTransferOptions] = useState([]);\n const [result, setResult] = useState({\n success: true,\n code: \"\",\n message: \"\"\n });\n\n const [storeId, setStoreId] = useState(null);\n const [sender, setSender] = useState(new TransferUser(UserType.SENDER));\n const [transferDetail, setTransferDetail] = useState(new TransferDetail());\n const [receiver, setReceiver] = useState(new TransferUser(UserType.RECEIVER));\n\n const [typingTimeout, setTypingTimeout] = useState(0);\n const [recalculate, setRecalculate] = useState(true);\n const [toModel, setToModel] = useState(null);\n\n const isFirstRender = useRef(true);\n\n const updateTransferOptions = async (options) => {\n let newOptions = await __calculateHelper.getCaculateRates(options);\n newOptions.expiration = +new Date().getTime();\n newOptions.frequency = 43200;\n\n await __firebase\n .firestore()\n .collection(\"variables\")\n .doc(\"transfer-options\")\n .update(newOptions);\n };\n\n const updateWalletTransaction = async (storeId, sender, receiver) => {\n let newData = {\n from: {\n amount: sender.amount,\n amountConverted: receiver.amount,\n fees: sender.fees,\n exchangeRate: 1\n },\n to: {\n amount: receiver.amount\n }\n };\n\n await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .update(newData);\n };\n\n const applyTransferSender = (transferOptions, source, amount, currency) => {\n return new TransferUser(UserType.SENDER)\n .setTransferOptions(transferOptions)\n .setTransferOption(source)\n .setLimits()\n .setCurrency(currency)\n .setTransferAmount(amount, 1, 100, 100);\n }\n\n const applyTransferReceiver = (sender, transferOptions, target, currency) => {\n let validTargets = sender.selectedOption.send.targets;\n return new TransferUser(UserType.RECEIVER)\n .setTransferOptions(transferOptions.filter(x => validTargets.includes(x.code)))\n .setTransferOption(target)\n .setLimits()\n .setCurrency(currency)\n .setTransferAmount(100, 1, 100, 100);\n }\n\n const cleanSimulationMode = (storeId, mode, transferType = TransferType.COUNTRY, senderCountry = \"US\", senderAmount = 100, receiverCountry = props.initialCountryTo, senderCurrency, receiverCurrency) => {\n let senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n if (mode == SimulatorMode.COLLECT) {\n senderOptions = senderOptions.filter(x => x.type == TransferType.COUNTRY);\n if (transferType == TransferType.WALLET) {\n senderCountry = \"US\";\n receiverCountry = props.initialCountryTo;\n }\n }\n let senderModel = applyTransferSender(senderOptions, senderCountry, senderAmount, senderCurrency);\n\n let receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled && x.collect.sources.includes(senderCountry));\n let receiverModel = applyTransferReceiver(senderModel, receiverOptions, receiverCountry, receiverCurrency);\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == TransferType.COUNTRY ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n let transferDetailModel = new TransferDetail().setDetails(senderModel, receiverModel);\n\n setSender(senderModel);\n setReceiver(receiverModel);\n setTransferDetail(transferDetailModel);\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount)\n }));\n\n if (senderModel.amount >= senderModel.minAmount && senderModel.amount <= senderModel.maxAmount) calculateReceiver(storeId, senderModel, receiverModel);\n }\n\n /**\n * HANDLERS\n */\n\n const handleSimulatorMode = async (mode) => {\n if (mode == simulatorMode) return;\n cleanSimulation(simulatorMode === SimulatorMode.SEND ? SimulatorMode.COLLECT : SimulatorMode.SEND);\n };\n\n const handleSendAmount = async ({ target }) => {\n\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n senderModel.amount = +target.value;\n let receiverModel = receiver;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: senderModel.amount\n }));\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount),\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= senderModel.minAmount && +target.value <= senderModel.maxAmount) calculateReceiver(storeId, senderModel, receiverModel);\n };\n\n const handleSendCountry = ({ target }, option) => {\n\n\n let senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n\n let senderModel = applyTransferSender(senderOptions, option.code, sender.amount, option.currency);\n let newReceiverCountry = senderModel.selectedOption.send.targets.includes(receiver.selectedOption.code) ? receiver.selectedOption.code : senderModel.selectedOption.send.targets[0];\n let receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled && x.collect.sources.includes(option.code));\n let receiverModel = applyTransferReceiver(senderModel, receiverOptions, newReceiverCountry, option.currency);\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n selectedOption: senderModel.selectedOption,\n minAmount: senderModel.minAmount?.toFixed(2),\n maxAmount: senderModel.maxAmount?.toFixed(2)\n }));\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, option.currency, \"\");\n receiverModel.expirationDate = expiration;\n receiverModel.isLoading = true;\n receiverModel.isDisabled = !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount);\n setReceiver(receiverModel);\n\n let transferDetailModel = new TransferDetail().setDetails(senderModel, receiverModel);\n setTransferDetail(transferDetailModel);\n\n if (senderModel.amount >= senderModel.minAmount && senderModel.amount <= senderModel.maxAmount) {\n if (senderModel.selectedOption.type == TransferType.COUNTRY) {\n calculateReceiver(storeId, senderModel, receiverModel);\n } else {\n calculateReceiverWallet(storeId, senderModel, receiverModel);\n }\n }\n };\n\n const handleReceiveAmount = async ({ target }) => {\n\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n let receiverModel = receiver;\n receiverModel.amount = +target.value;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: true,\n }));\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: receiverModel.amount,\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= receiverModel.minAmount && +target.value <= receiverModel.maxAmount) {\n if (senderModel.selectedOption.type == TransferType.COUNTRY) {\n calculateSender(storeId, senderModel, receiverModel);\n } else {\n calculateSenderWallet(storeId, senderModel, receiverModel);\n }\n }\n };\n\n const handleReceiveCountry = ({ target }, option) => {\n\n let onlyCountry = simulatorMode == SimulatorMode.COLLECT;\n let newReceiverCountry = arrayTransferOptions.find(x => x.code == option.code);\n let newSenderCountry = newReceiverCountry.collect.sources.includes(sender.selectedOption.code) ?\n sender.selectedOption.code :\n newReceiverCountry.collect.sources[0];\n\n let senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n senderOptions = onlyCountry ? senderOptions.filter(x => x.type == TransferType.COUNTRY) : senderOptions;\n\n let senderModel = applyTransferSender(senderOptions, newSenderCountry, sender.amount, sender.currency);\n\n let receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled);\n let receiverModel = applyTransferReceiver(senderModel, receiverOptions, option.code, option.currency);\n\n senderModel.isLoading = false;\n senderModel.isDisabled = false;\n setSender(senderModel);\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount),\n selectedOption: receiverModel.selectedOption,\n minAmount: receiverModel.minAmount?.toFixed(2),\n maxAmount: receiverModel.maxAmount?.toFixed(2),\n expirationDate: receiverModel.expirationDate\n }));\n\n if (senderModel.amount >= senderModel.minAmount && senderModel.amount <= senderModel.maxAmount) {\n if (senderModel.selectedOption.type == TransferType.COUNTRY) {\n calculateReceiver(storeId, senderModel, receiverModel);\n } else {\n calculateReceiverWallet(storeId, senderModel, receiverModel);\n }\n }\n };\n\n const handleWalletSendAmount = async ({ target }) => {\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n senderModel.amount = +target.value;\n let receiverModel = receiver;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: senderModel.amount\n }));\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount),\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= senderModel.minAmount && +target.value <= senderModel.maxAmount) {\n setTypingTimeout(setTimeout(async () => {\n calculateReceiverWallet(storeId, senderModel, receiverModel);\n }, 1000));\n }\n };\n\n const handleWalletReceiveAmount = async ({ target }) => {\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n let receiverModel = receiver;\n receiverModel.amount = +target.value;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: true,\n }));\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: receiverModel.amount,\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= receiverModel.minAmount && +target.value <= receiverModel.maxAmount) {\n setTypingTimeout(setTimeout(async () => {\n calculateSenderWallet(storeId, senderModel, receiverModel);\n }, 1000));\n }\n };\n\n /**\n * RENDER FUNCTIONS \n */\n\n const cleanSimulation = (mode = SimulatorMode.SEND) => {\n setSimulatorMode(mode);\n }\n\n /**\n * CALCULATE FUNCTIONS \n */\n\n const calculateReceiver = async (storeId, sender, receiver) => {\n\n setRecalculate(false)\n\n let model = {\n coupon: \"\",\n from: {\n amount: +sender.amount,\n country: sender.selectedOption.code,\n currency: sender.selectedOption.currency,\n },\n to: {\n amount: +receiver.amount,\n country: receiver.selectedOption.code,\n currency: receiver.selectedOption.currency,\n },\n };\n\n\n setTypingTimeout(setTimeout(async () => {\n const res = __operationsHelper.calculate(storeId, \"from\", model);\n if (res) {\n setRecalculate(true);\n }\n }, 1000))\n\n }\n\n const calculateSender = async (storeId, sender, receiver) => {\n\n setRecalculate(false)\n\n let model = {\n coupon: \"\",\n from: {\n amount: +sender.amount,\n country: sender.selectedOption.code,\n currency: sender.selectedOption.currency,\n },\n to: {\n amount: +receiver.amount,\n country: receiver.selectedOption.code,\n currency: receiver.selectedOption.currency,\n },\n };\n\n setTypingTimeout(setTimeout(async () => {\n const res = __operationsHelper.calculate(storeId, \"to\", model);\n if (res) {\n setRecalculate(true);\n }\n }, 1000))\n }\n\n const calculateAgain = async () => {\n\n setRecalculate(false)\n const storeId = sessionStorage.getItem(\"storeId\") || \"\"\n\n if (storeId === \"\") return\n\n let model = {\n coupon: \"\",\n from: {\n amount: +sender.amount,\n country: sender.selectedOption.code,\n currency: sender.selectedOption.currency,\n },\n to: {\n amount: +receiver.amount,\n country: receiver.selectedOption.code,\n currency: receiver.selectedOption.currency,\n },\n };\n\n\n const res = await __operationsHelper.calculate(storeId, \"from\", model);\n\n if (res) {\n setRecalculate(true)\n }\n\n }\n\n const initialCalculate = async () => {\n\n setRecalculate(false)\n const storeId = sessionStorage.getItem(\"storeId\") || \"\"\n\n if (storeId === \"\") return\n\n let model = {\n coupon: \"\",\n from: {\n amount: 100,\n country: \"US\",\n currency: \"USD\",\n },\n to: {\n amount: 0,\n country: props.initialCountryTo || \"PE-USD\",\n currency: countries.find(e => e.code === props.initialCountryTo)?.currency || \"USD\",\n },\n };\n\n\n const res = await __operationsHelper.calculate(storeId, \"from\", model);\n\n if (res) {\n setRecalculate(true)\n }\n\n }\n\n const calculateSenderWallet = async (storeId, sender, receiver) => {\n\n let paymentMethod = sender.selectedOption.code.toLowerCase();\n let result = await __operationsHelper.calculateWallet(\"to\", paymentMethod, receiver.amount);\n\n sender.amount = result.amount;\n sender.fees = result.fees;\n\n updateWalletTransaction(storeId, sender, receiver);\n }\n\n const calculateReceiverWallet = async (storeId, sender, receiver) => {\n\n let paymentMethod = sender.selectedOption.code.toLowerCase();\n let result = await __operationsHelper.calculateWallet(\"from\", paymentMethod, sender.amount);\n\n sender.fees = result.fees;\n receiver.amount = result.amount;\n\n updateWalletTransaction(storeId, sender, receiver);\n }\n\n const getUrl = (simulatorMode, storeId) => {\n let url = \"\"\n switch (simulatorMode) {\n case SimulatorMode.COLLECT:\n url = __ENDPOINTS.CALLBACK.referral_receive(props.appUrl, locale, storeId);\n break;\n case SimulatorMode.SEND:\n url = sender.selectedOption.type === TransferType.COUNTRY ?\n `${props.startUrl}/${storeId}` :\n __ENDPOINTS.CALLBACK.referral_recharge(props.appUrl, locale, storeId);\n break;\n }\n\n return url;\n }\n\n const updateTransactionPaymentMethods = async (paymentMethods) => {\n await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .update({\n to: {\n ...toModel,\n paymentMethods: paymentMethods\n }\n });\n }\n\n const updateReceivedAmount = async (receivedAmount) => {\n await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .update({\n \"to.amount\": receivedAmount\n });\n }\n\n const handleNext = async () => {\n if (simulatorMode == SimulatorMode.SEND) {\n await updateTransactionPaymentMethods(receiver.paymentMethods)\n }\n\n await updateReceivedAmount(receiver.amount);\n const url = getUrl(simulatorMode, storeId);\n window.location.replace(url)\n }\n\n const handleOnchangePaymentMethod = (value) => {\n\n if (!value) return;\n\n const selected = receiver.paymentMethods.find(\n (payment) => payment.id == value\n );\n\n let newOrder = receiver.paymentMethods.map((payment) => {\n if (payment.name?.toLowerCase() == selected.name?.toLowerCase()) payment.isActive = true;\n else payment.isActive = false;\n return payment;\n });\n\n setReceiver((prev) => ({\n ...prev,\n paymentMethods: arrayMove(newOrder)\n }))\n\n }\n\n const arrayMove = (array) => {\n var newArray = array.slice();\n newArray.sort(function (a) {\n return !a.isActive ? 1 : -1;\n }); // put in first\n return newArray;\n };\n\n const setFees = (fromFeesModel) => {\n if (!fromFeesModel || fromFeesModel == null) return\n let feesKeys = Object.keys(fromFeesModel)\n\n let fees = {\n traund: 0.0,\n paypal: 0.0,\n network: 0.0,\n payoneer: 0.0,\n wise: 0.0,\n deel: 0.0,\n ontop: 0.0,\n ach: 0.0,\n }\n\n let newFees = feesKeys.map((e) => ({\n [e]: fromFeesModel[e]?.amount\n }))\n\n let returnedFees = {}\n newFees.forEach(element => {\n returnedFees = {\n ...fees,\n ...element\n }\n });\n\n return returnedFees\n\n }\n\n const isOutOfLimits = () => {\n return (sender.amount < sender.minAmount || sender.amount > sender.maxAmount) ||\n (receiver.amount < receiver.minAmount || receiver.amount > receiver.maxAmount)\n }\n\n const createTransaction = async (calculateData) => {\n try {\n const transaction = await __firebase\n .firestore()\n .collection(\"transactions\")\n .add(calculateData);\n\n const storeId = transaction.id;\n setStoreId(storeId);\n sessionStorage.setItem(\"storeId\", storeId);\n\n return storeId;\n } catch (e) {\n setResult({\n success: false,\n code: 'ID-001-W',\n message: ''\n });\n\n return \"\"\n }\n };\n\n const handleTransactionData = useCallback((calculateData) => {\n const { from, to } = calculateData;\n const isUsdtReceiver = to.currency === \"USDT\";\n\n let amountReceiver = 0.0;\n let paymentMethods = to.paymentMethods?.filter(e => e.name.toLowerCase() !== \"trc20\").map((el) => ({\n ...el,\n id: el.name.replace(/ /g, \"\").toLowerCase(),\n isActive: false\n })) || [];\n\n setToModel(to);\n\n if (paymentMethods.length > 0) {\n paymentMethods[0].isActive = true;\n const activeMethod = paymentMethods.find(element => element.isActive);\n amountReceiver = activeMethod?.isWallet ? activeMethod.amountCrypto : activeMethod.amount;\n } else {\n amountReceiver = to.amount;\n }\n\n setSender(prevState => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: from.amount,\n calculatedAmount: from.amountConverted,\n fees: from.fees\n }));\n\n let taxFeeValue = 0;\n if ([\"CO\", \"PE\", \"PE-USD\"].includes(to.country)) {\n let feeTaxTo = applyTaxDiscount(from.country, to.country, from.amount, amountReceiver);\n if (feeTaxTo) {\n taxFeeValue = feeTaxTo.appliedDiscountReceiver;\n amountReceiver = feeTaxTo.newAmountReceiver;\n }\n }\n\n setTransferDetail(prevState => {\n let middleAmountResult = from.amountConverted;\n let exchangeRateResult = from.exchangeRate;\n let feesResult = setFees(from.fees) || prevState.fees;\n let showTotalFees = false;\n let totalFees = 0;\n let rate = from.exchangeRate || 0;\n let exchangeRateLabel = \"x\";\n let currencyReceiver = to.currency;\n let networkFeeValue = 0;\n\n if (isUsdtReceiver) {\n const __networkFee = 2;\n rate = 1;\n networkFeeValue = Number(Math.abs(from.amountConverted - amountReceiver / rate)).toFixed(2);\n\n if (from.currency !== \"USD\") {\n rate = ((+amountReceiver + __networkFee) / +from.amountConverted).toFixed(2);\n networkFeeValue = from?.fees?.networkFee?.amountUSD || 0;\n }\n\n exchangeRateResult = 1;\n feesResult.network = Number(networkFeeValue);\n middleAmountResult = amountReceiver;\n showTotalFees = true;\n totalFees = Number(networkFeeValue);\n }\n\n if (rate < 1) {\n exchangeRateLabel = \"÷\";\n currencyReceiver = from.currency;\n rate = (Math.floor((from.amountConverted / amountReceiver) * 100) / 100).toFixed(2);\n networkFeeValue = Number(Math.abs(amountReceiver * rate - from.amountConverted)).toFixed(2);\n exchangeRateResult = rate;\n }\n\n return {\n ...prevState,\n isLoading: false,\n showTotalFees: showTotalFees,\n amount: from.amount,\n calculatedAmount: middleAmountResult,\n exchangeRate: exchangeRateResult,\n fees: feesResult,\n currency: from.currency,\n currencyReceiver: currencyReceiver,\n totalFees: totalFees,\n exchangeRateLabel: exchangeRateLabel,\n tax: taxFeeValue\n };\n });\n\n setReceiver(prevState => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: amountReceiver,\n currency: to.currency,\n paymentMethods: addLabelToPaymentMethods(content, setIdForPaymentMethods(paymentMethods))\n }));\n }, [content]);\n\n const subscribeTransaction = async (storeId) => {\n try {\n return subscriptionRef = await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .onSnapshot(async (transaction) => {\n\n if (isFirstRender.current && storeId) {\n initialCalculate()\n isFirstRender.current = false\n return\n }\n\n const calculateData = await transaction.data();\n if (calculateData) {\n handleTransactionData(calculateData);\n }\n });\n } catch (e) {\n setResult({\n success: false,\n code: 'ID-001-W',\n message: ''\n });\n }\n };\n\n useEffect(() => {\n let subscriptionRef = null;\n\n const subscribeTransferOptions = async () => {\n try {\n let optionsData = null;\n subscriptionRef = await __firebase\n .firestore()\n .collection(\"variables\")\n .doc(\"transfer-options\")\n .onSnapshot(async (options) => {\n const { expiration, frequency, ...restOptions } = options.data() || {};\n\n if (expiration && frequency) {\n const validOptions = Object.values(restOptions)\n .filter(option => option && option.code);\n\n if (validOptions.length > 0) {\n setArrayTransferOptions(validOptions);\n setSuscribedGlobalOptions(true);\n setGlobalTransferOptions(restOptions);\n\n const differenceInSeconds = (new Date().getTime() - new Date(expiration).getTime()) / 1000;\n\n if (differenceInSeconds > frequency) {\n updateTransferOptions(restOptions);\n }\n }\n }\n });\n\n return optionsData;\n } catch (e) {\n console.error(\"Error in subscribeTransferOptions: \", e);\n setResult({\n success: false,\n code: 'ID-001-W',\n message: 'Failed to subscribe to transfer options.'\n });\n }\n };\n\n subscribeTransferOptions();\n\n return () => {\n if (subscriptionRef) {\n subscriptionRef();\n }\n };\n }, [__firebase]);\n\n\n useEffect(() => {\n let storeId = sessionStorage.getItem('storeId') || \"\";\n\n let subscriptionRef = null;\n\n if (!globalTransferOptions || !suscribedGlobalOptions) return;\n\n const initializeTransfer = async () => {\n try {\n\n const senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n const senderModel = applyTransferSender(senderOptions, \"US\", 100, \"USD\");\n\n const receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled && x.collect.sources.includes(\"US\"));\n const receiverInitialCurrency = countries.find(e => e.code === props.initialCountryTo)?.currency || \"USD\";\n const receiverModel = applyTransferReceiver(senderModel, receiverOptions, props.initialCountryTo, receiverInitialCurrency);\n\n const { expiration } = __operationsHelper.calculateExpirationDate(\n senderModel.selectedOption.type === \"country\" ? \"transference\" : \"recharge\",\n senderModel.currency,\n receiverModel.currency,\n \"\"\n );\n receiverModel.expirationDate = expiration;\n\n const transferDetailModel = new TransferDetail().setDetails(senderModel, receiverModel);\n\n setSender(senderModel);\n setReceiver(receiverModel);\n setTransferDetail(transferDetailModel);\n\n if (!storeId) {\n const model = {\n coupon: \"\",\n from: {\n amount: +senderModel.amount,\n country: senderModel.selectedOption.code,\n currency: senderModel.selectedOption.currency,\n },\n to: {\n amount: +receiverModel.amount,\n country: receiverModel.selectedOption.code,\n currency: receiverModel.selectedOption.currency,\n },\n timestamp: Date.now(),\n };\n\n storeId = await createTransaction(model);\n subscriptionRef = subscribeTransaction(storeId);\n sessionStorage.setItem('storeId', storeId);\n }\n\n if (storeId) {\n setStoreId(storeId);\n subscriptionRef = subscribeTransaction(storeId);\n }\n } catch (error) {\n console.error(\"Error initializing transfer:\", error);\n }\n };\n\n initializeTransfer();\n\n return () => {\n if (subscriptionRef && typeof subscriptionRef.unsubscribe === 'function') {\n subscriptionRef.unsubscribe();\n }\n };\n }, [globalTransferOptions, suscribedGlobalOptions]);\n\n // useEffect(() => {\n // if (sender.amount == 0 && receiver.amount == 0) return;\n // transferDetail.setDetails(sender, receiver);\n // }, [sender])\n\n useEffect(() => {\n\n if (simulatorMode == null) return;\n if (globalTransferOptions == null) return;\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !sender?.minAmount || !sender?.maxAmount ? true : (sender?.amount < sender?.minAmount || sender?.amount > sender?.maxAmount)\n }));\n cleanSimulationMode(storeId, simulatorMode, sender?.selectedOption?.type, sender?.selectedOption?.code, sender?.amount, receiver?.selectedOption?.code, sender?.currency, receiver?.currency);\n }, [simulatorMode])\n\n return <main>\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@400&display=swap\"\n rel=\"stylesheet\"\n />\n <Paper className={classes.root}>\n <Grid container direction=\"column\" spacing={0}>\n <Grid\n container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\" }}\n >\n <Grid item>\n <Typography\n className={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.simulator.header_accion}\n </Typography>\n </Grid>\n </Grid>\n\n <Grid\n container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\" }}\n >\n <Grid item xs={9}>\n <Grid container spacing={3} justifyContent=\"center\">\n <Grid item>\n <Chip\n className={(simulatorMode === SimulatorMode.SEND ? classes.chipOptionChecked : classes.chipOptionUnchecked)}\n label={content.simulator.header_chips.option_send}\n variant=\"outlined\"\n onClick={() => { handleSimulatorMode(SimulatorMode.SEND) }}\n />\n </Grid>\n <Grid item>\n <Chip\n className={(simulatorMode === SimulatorMode.COLLECT ? classes.chipOptionChecked : classes.chipOptionUnchecked)}\n label={content.simulator.header_chips.option_receive}\n variant=\"outlined\"\n onClick={() => { handleSimulatorMode(SimulatorMode.COLLECT) }}\n />\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {(simulatorMode === SimulatorMode.SEND) ?\n <Grid item xs={12}>\n <Grid container>\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n <InputAmount\n id=\"transfer-sender\"\n content={content}\n user={sender}\n onChangeAmount={sender.selectedOption.type == TransferType.COUNTRY ? handleSendAmount : handleWalletSendAmount}\n onChangeCountry={handleSendCountry}\n />\n </Grid>\n {!sender.isLoading && !receiver.isLoading &&\n <Grid item xs={12}>\n <Fees\n content={content}\n details={transferDetail}\n walletName={sender.selectedOption.type == TransferType.WALLET && sender.selectedOption.code?.toUpperCase()}\n simulatorMode={simulatorMode}\n locale={locale}\n />\n </Grid>}\n {(sender.selectedOption.type == TransferType.COUNTRY) ?\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n\n <InputAmount\n id=\"transfer-receiver\"\n content={content}\n user={receiver}\n onChangeAmount={handleReceiveAmount}\n onChangeCountry={handleReceiveCountry}\n disabled={true}\n />\n\n </Grid> :\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n\n <InputAmount\n id=\"wallet-receiver\"\n content={content}\n user={receiver}\n onChangeAmount={handleWalletReceiveAmount}\n onChangeCountry={handleReceiveCountry}\n disabled={true}\n />\n\n </Grid>\n }\n </Grid>\n </Grid> : \"\"\n }\n {(simulatorMode === SimulatorMode.COLLECT) ?\n <Grid item xs={12}>\n <Grid container>\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n <InputAmount\n id=\"collect-sender\"\n content={content}\n user={sender}\n onChangeAmount={sender.selectedOption.type == TransferType.COUNTRY ? handleSendAmount : handleWalletSendAmount}\n onChangeCountry={handleSendCountry}\n />\n </Grid>\n {!sender.isLoading && !receiver.isLoading && <Grid item xs={12}>\n <Fees\n content={content}\n details={transferDetail}\n walletName={sender.selectedOption.type == TransferType.WALLET && sender.selectedOption.code?.toUpperCase()}\n simulatorMode={simulatorMode}\n locale={locale}\n />\n </Grid>}\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n <InputAmount\n id=\"collect-receiver\"\n content={content}\n user={receiver}\n onChangeAmount={handleReceiveAmount}\n onChangeCountry={handleReceiveCountry}\n disabled={true}\n />\n </Grid>\n </Grid>\n </Grid> : \"\"\n }\n\n {\n ([\"VE\", \"AR\"].includes(receiver.selectedOption.code) && !receiver.isLoading) &&\n <Grid item xs={12} style={{ marginTop: 15, marginBottom: 15 }}>\n <PaymentMethodSelector paymentMethods={receiver.paymentMethods} onChange={handleOnchangePaymentMethod} />\n </Grid>\n }\n\n {!props.onlyView && <Grid item xs={12} style={{ marginBottom: 15 }}>\n <Disclaimers\n simulatorMode={simulatorMode}\n transferType={sender.selectedOption.type}\n locale={locale}\n expirationDate={receiver.expirationDate}\n option={sender.selectedOption}\n />\n </Grid>}\n {!props.onlyView && <Grid item xs={12}>\n <Button className={classes.button} variant=\"contained\" onClick={handleNext}\n disabled={sender.isLoading || receiver.isLoading || isOutOfLimits()} fullWidth>\n {content.simulator.footer_action_button}\n </Button>\n </Grid>}\n <Grid item xs={12} style={{ marginTop: 15, marginBottom: 15, textAlign: \"center\" }}>\n {(recalculate && sender.selectedOption.type != TransferType.WALLET) && <Timer onTimeout={calculateAgain} locale={locale} />}\n </Grid>\n <Grid item xs={12} style={{ marginTop: \"30px\" }}>\n <Divider ></Divider>\n </Grid>\n <Grid item xs={12} container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\", }} >\n <Typography\n variant=\"subtitle1\"\n style={{ display: \"flex\", alignItems: \"center\", textAlign: \"center\" }}\n >\n <span style={{ fontSize: \"10px\", textAlign: \"center\" }}>Powered by </span>\n <span style={{ fontWeight: \"bold\", fontSize: \"12px\", textAlign: \"center\" }}>Orquezta</span>\n </Typography>\n </Grid>\n </Grid>\n </Paper>\n </main>;\n}\n\nexport default Simulator;","import TransferOption from \"./transferOption\";\nimport { UserType } from \"./enums\";\n\n\nclass TransferUser {\n constructor(type = UserType.SENDER) {\n this.isLoading = false;\n this.isDisabled = false;\n this.type = type;\n this.transferOptions = [TransferOption];\n this.selectedOption = new TransferOption();\n this.amount = 0;\n this.currency = \"\";\n this.calculatedAmount = 0;\n this.paymentMethods = [];\n this.minAmount = 0;\n this.maxAmount = 0;\n this.expirationDate = new Date();\n this.fees = {\n traund: 0.0,\n paypal: 0.0,\n network: 0.0,\n payoneer: 0.0,\n wise: 0.0,\n deel: 0.0,\n ontop: 0.0,\n ach: 0.0\n };\n }\n\n setTransferOptions = (transferOptions) => {\n this.transferOptions = transferOptions;\n return this;\n }\n\n setTransferOption = (optionCode) => {\n this.selectedOption = this.transferOptions.find(x => x.code == optionCode);\n return this;\n }\n\n setLimits = () => {\n let minMaxRate = this.selectedOption.middleAmount.rateBuy;\n this.minAmount = minMaxRate * (this.type == UserType.SENDER ? this.selectedOption.send.minAmount?.toFixed(2) : this.selectedOption.collect.minAmount?.toFixed(2));\n this.maxAmount = minMaxRate * (this.type == UserType.SENDER ? this.selectedOption.send.maxAmount?.toFixed(2) : this.selectedOption.collect.maxAmount?.toFixed(2));\n return this;\n }\n\n setTransferAmount = (amount) => {\n this.amount = amount;\n return this;\n }\n\n setCurrency = (currency) => {\n this.currency = currency\n return this;\n }\n\n setPaymentMethods = (paymentMethods) => {\n this.paymentMethods = paymentMethods;\n return this;\n }\n}\n\nexport default TransferUser;","import { TransferType } from \"./enums\";\n\nclass TransferOption {\n constructor(code) {\n this.code = code;\n this.type = TransferType.COUNTRY;\n this.currency = \"\";\n this.currencyCalc = \"\";\n this.middleAmount = {\n currency: \"\",\n rateBuy: 0,\n rateSell: 0\n };\n this.send = {\n enabled: false,\n targets: [],\n minAmount: 20,\n maxAmount: 5000\n };\n this.collect = {\n enabled: false,\n sources: [],\n minAmount: 20,\n maxAmount: 5000\n };\n }\n}\n\nexport default TransferOption;\n\n\n/*\nconst transferOption = {\n type: TransferType.COUNTRY,\n code: string,\n currency: string,\n currencyCalc: string,\n middleAmount: {\n currency: \"USD\",\n rateBuy: 0,\n rateSell: 0\n },\n send: {\n enabled: false,\n targets: [],\n minAmount: 20,\n maxAmount: 5000\n },\n receive: {\n enabled: false,\n sources: [],\n minAmount: 20,\n maxAmount: 5000\n }\n}\n*/","export const TransferType = Object.freeze({\n COUNTRY: \"country\",\n WALLET: \"wallet\",\n CREDIT_CARD: \"credit-card\"\n});\n\nexport const UserType = Object.freeze({\n SENDER: \"sender\",\n RECEIVER: \"receiver\"\n});\n\nexport const SimulatorMode = Object.freeze({\n SEND: \"SEND\",\n COLLECT: \"COLLECT\"\n});\n\n\n","import RateHelper from \"./rateHelper\";\n\nclass CalculateHelper {\n constructor(testMode = 'production') {\n this._testMode = testMode;\n }\n\n async getCaculateRates(countriesData) {\n const rateHelper = new RateHelper(this._testMode);\n const middleCurrency = \"USD\";\n\n for (var key in countriesData) {\n if (countriesData.hasOwnProperty(key)) {\n let itemCountry = countriesData[key];\n if (itemCountry.code) {\n let usdRate = await rateHelper.getExchangeRate(middleCurrency, itemCountry.currencyCalc);\n if (usdRate) {\n usdRate = parseFloat(itemCountry.code == \"SV\" ? usdRate : usdRate.toFixed(2));\n countriesData[key].middleAmount.rateBuy = countriesData[key].middleAmount.rateSell = usdRate;\n }\n }\n }\n }\n\n return countriesData;\n };\n}\n\nexport default CalculateHelper;\n","import axios from \"axios\";\nimport EndPoints from \"../core/endpoints\";\n\nclass RateHelper {\n constructor(testMode = 'production',externalConfig = null) {\n this.endpoints = new EndPoints(testMode, externalConfig.backendUrl);\n }\n\n async getExchangeRate(currencyFrom, currencyTo) {\n try {\n if (currencyFrom === currencyTo) return 1.00;\n\n if (currencyTo == \"ARS\") {\n const { data } = await axios.get(this.endpoints.EXCHANGE.getUSDBlueRate);\n let blueRate = await JSON.parse(JSON.stringify(data));\n return blueRate.blue.value_sell;\n } else {\n const { data } = await axios.get(this.endpoints.EXCHANGE.getRate_v2(currencyFrom));\n return parseFloat(data[currencyFrom.toLowerCase()][currencyTo.toLowerCase()].toFixed(2));\n }\n } catch (e) {\n return e;\n }\n };\n\n async convertAmount(currencyFrom, currencyTo, amount) {\n try {\n if (currencyFrom === currencyTo) {\n return amount * 1.00;\n } else {\n const rate = await this.getExchangeRate(currencyFrom, currencyTo);\n return amount * rate * 1.00;\n }\n } catch (e) {\n return e;\n }\n };\n}\n\nexport default RateHelper; ","import axios from \"axios\";\nimport moment from \"moment\";\nimport EndPoints from \"../core/endpoints\";\nimport { TRANSACTION_TIMES } from \"../core/transaction-settings\";\nimport { getExpirationDate } from \"../core/working-setup\";\nimport { getSignatureHeader } from \"../../src/core/signature\";\nimport { config } from \"aws-sdk\";\n\nclass OperationsHelper {\n constructor(testMode = 'production', secretKey = null, config=null) {\n this.endpoints = new EndPoints(testMode,config.backendUrl);\n this.reference = secretKey;\n this.FEES = {\n \"ach\": { type: \"A\", value: 0 },\n \"wise\": { type: \"A\", value: 0.39 },\n \"payoneer\": { type: \"P\", value: 0.02 },\n \"deel\": { type: \"A\", value: 0 },\n \"ontop\": { type: \"A\", value: 2 }\n }\n }\n\n \n\n async calculate(storeId, source, body) {\n const url = this.endpoints.OPERATIONS.calculate(storeId, source)\n return await axios.post(\n url,\n body,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('POST', url, body, this.reference) \n },\n }\n );\n };\n\n async calculateWallet(source, paymentMethod, amount) {\n \n const defaultFee = { type: \"A\", value: 0 };\n const feeDetails = this.FEES[paymentMethod] || defaultFee;\n \n const numericAmount = Number(amount) || 0;\n\n let fee = parseFloat((feeDetails.type === \"A\" ? feeDetails.value : numericAmount * feeDetails.value).toFixed(2));\n \n let amountCalc = source === \"from\" ? (numericAmount - fee) : (numericAmount + fee);\n \n let fees = { total: fee, data: [] };\n fees[paymentMethod] = {\n type: feeDetails.type,\n value: feeDetails.value,\n amount: fee,\n amountUSD: fee,\n exchangeRate: 1,\n forgiven: false\n };\n \n return {\n amount: amountCalc,\n fees\n };\n }\n \n\n calculateExpirationDate(transactionType, fromCurrency, toCurrency, toPaymentMethod) {\n const now = new Date();\n\n const settings = this.getSettingsForDates(transactionType, fromCurrency, toCurrency, toPaymentMethod);\n const result = getExpirationDate(settings.TYPE, now, settings.PROCESS_TIME, settings.UNIT)\n\n return {\n now,\n expiration: result[\"$d\"]\n }\n }\n\n getSettingsForDates(transactionType, fromCurrency, toCurrency, toPaymentMethod) {\n let timeSettings = TRANSACTION_TIMES[transactionType].default;\n let fromEval = fromCurrency === 'USDT' ? 'USD' : fromCurrency;\n let toEval = toCurrency === 'USDT' ? 'USD' : toCurrency;\n\n if (fromEval === toEval) {\n return TRANSACTION_TIMES[transactionType].same;\n }\n\n if (toCurrency === \"COP\" && toPaymentMethod !== \"bancolombia\") {\n return TRANSACTION_TIMES[transactionType][\"CO-others\"];\n }\n\n return timeSettings;\n }\n}\n\nexport default OperationsHelper; ","const __sendMoneyTime = 720;\nconst __addFundsTime = 5;\n\nexport const TRANSACTION_SETTINGS = {\n \"transference\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"pay\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"warranty\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"wallet\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\"\n },\n \"recharge\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\"\n },\n \"withdrawal\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"debiting\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\"\n }\n}\n\nconst __twelve_hours_in_minutes = 720;\nconst __twentyfour_hours_in_minutes = 1440;\nconst __two_days_in_minutes = 1440;\nconst __three_days_in_minutes = 2160;\n\nexport const TRANSACTION_TIMES = {\n \"transference\": {\n \"default\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n },\n \"CO-others\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __two_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"pay\": {\n \"default\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n },\n \"CO-others\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __two_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"warranty\": {\n \"default\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n }\n },\n \"wallet\": {\n \"default\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"recharge\": {\n \"default\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_TRAUND\"\n }\n },\n \"withdrawal\": {\n \"default\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n },\n \"CO-others\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __two_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"debiting\": {\n \"default\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"creditcard-stripe\": {\n \"default\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_BANKS_TRANSFER\"\n },\n \"same\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_BANKS_TRANSFER\"\n }\n },\n}","const dayJs = require('dayjs');\nconst dayjsBusinessTime = require('dayjs-business-time');\nvar utc = require('dayjs/plugin/utc')\nconst businessHours = dayJs.extend(dayjsBusinessTime);\n\nconst __start_part_1 = '00:00:00';\nconst __end_part_1 = '02:00:00';\nconst __start_part_2 = '13:00:00';\nconst __end_part_2 = '23:59:59';\n\nconst HOLIDAYS = [\n '2024-01-01',\n '2024-04-06',\n '2024-04-07',\n '2024-04-08',\n '2024-04-09',\n '2024-05-01',\n '2024-06-03',\n '2024-06-04',\n '2024-06-05',\n '2024-06-09',\n '2024-06-10',\n '2024-06-11',\n '2024-06-15',\n '2024-07-07',\n '2024-07-08',\n '2024-07-09',\n '2024-07-10',\n '2024-08-02',\n '2024-08-03',\n '2024-08-30',\n '2024-08-31',\n '2024-09-01',\n '2024-09-02',\n '2024-09-03',\n '2024-09-04',\n '2024-09-21',\n '2024-09-22',\n '2024-09-23',\n '2024-09-24',\n '2024-09-25',\n '2024-09-27',\n '2024-09-28',\n '2024-09-29',\n '2024-09-30',\n '2024-10-01',\n '2024-10-02',\n '2024-10-03',\n '2024-10-09',\n '2024-11-09',\n '2024-11-10',\n '2024-11-11',\n '2024-11-12',\n '2024-11-13',\n '2024-11-23',\n '2024-12-22',\n '2024-12-23',\n '2024-12-24',\n '2024-12-25',\n '2024-12-29',\n '2024-12-30',\n '2024-12-31',\n '2025-01-01',\n]\n\nconst BUSINESS_HOURS_TODAY = {\n sunday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n monday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n saturday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ]\n}\n\nconst BUSINESS_HOURS_TRAUND = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n saturday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ]\n}\n\nconst BUSINESS_HOURS_BANKS_TRANSFER = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n saturday: null\n}\n\nconst BUSINESS_DAYS_TRAUND = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n}\n\nconst BUSINESS_DAYS_BANKS_TRANSFER = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n saturday: null\n}\n\nexport function getExpirationDate(calculateType, day, timeToAdd, unit) {\n let config = BUSINESS_HOURS_TRAUND;\n switch (calculateType) {\n case \"BUSINESS_HOURS_TRAUND\":\n config = BUSINESS_HOURS_TRAUND;\n break;\n case \"BUSINESS_HOURS_BANKS_TRANSFER\":\n config = BUSINESS_HOURS_BANKS_TRANSFER;\n break;\n case \"BUSINESS_DAYS_TRAUND\":\n config = BUSINESS_DAYS_TRAUND;\n break;\n case \"BUSINESS_DAYS_BANKS_TRANSFER\":\n config = BUSINESS_DAYS_BANKS_TRANSFER;\n break;\n }\n businessHours.setHolidays(HOLIDAYS);\n businessHours.setBusinessTime(config);\n return businessHours(day).addBusinessTime(timeToAdd, unit);\n}\n\nexport function getLastBusinessTime(calculateType, day) {\n let config = BUSINESS_HOURS_TRAUND;\n switch (calculateType) {\n case \"BUSINESS_HOURS_TRAUND\":\n config = BUSINESS_HOURS_TRAUND;\n break;\n case \"BUSINESS_HOURS_BANKS_TRANSFER\":\n config = BUSINESS_HOURS_BANKS_TRANSFER;\n break;\n case \"BUSINESS_DAYS_TRAUND\":\n config = BUSINESS_DAYS_TRAUND;\n break;\n case \"BUSINESS_DAYS_BANKS_TRANSFER\":\n config = BUSINESS_DAYS_BANKS_TRANSFER;\n break;\n case \"BUSINESS_HOURS_TODAY\":\n config = BUSINESS_HOURS_TODAY;\n break;\n }\n //businessHours.setHolidays(HOLIDAYS);\n businessHours.setBusinessTime(config);\n return businessHours(day)\n .nextBusinessDay()\n .lastBusinessTime();\n}","import React, { Fragment } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport InputBase from \"@material-ui/core/InputBase\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport TextField from \"@material-ui/core/TextField\";\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\nimport FlagsHelpers from \"./../helpers/flagsHelpers\";\n\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { matchSorter } from \"match-sorter\";\n\nimport componentStyles from \"./componentStyles\";\n\nconst filterOptions = (options, { inputValue }) => {\n return matchSorter(options, inputValue, { keys: [\"label\", \"currency\"] });\n}\nconst InputAmount = (props) => {\n const classes = componentStyles;\n\n const {\n id,\n content,\n user,\n onChangeAmount,\n onChangeCountry,\n disabled = false\n } = props;\n\n let transferOptions = user.transferOptions;\n let selectedOption = user.selectedOption;\n let labels = {\n \"transfer-sender\": content.common.sender.transfer_action,\n \"transfer-receiver\": content.common.receiver.transfer_action,\n \"collect-sender\": content.common.sender.collect_action,\n \"collect-receiver\": content.common.receiver.collect_action,\n \"wallet-sender\": content.common.sender.wallet_action,\n \"wallet-receiver\": content.common.receiver.wallet_action\n }\n\n\n return (\n <>\n <Grid container direction=\"column\" spacing={0}>\n <Grid item xs={12}>\n <Typography\n style={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {labels[id]}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Grid container>\n <Grid item xs={5}>\n <Paper style={classes.inputAmount}>\n <InputBase\n id={id}\n style={classes.inputAmountText}\n required\n value={user.isLoading || user.isDisabled ? \"\" : (user.amount > 0 ? user.amount.toString() : \"\").toString()}\n type=\"number\"\n disabled={user.isLoading || user.isDisabled || disabled}\n startAdornment={\n <InputAdornment\n position=\"start\"\n style={{ marginTop: \"0px\" }}\n >\n <span> {user.isLoading && !user.isDisabled && <CircularProgress size={18} />} </span>\n </InputAdornment>\n }\n inputprops={{\n inputProps: { min: user.minAmount, max: user.maxAmount },\n }}\n onChange={onChangeAmount}\n />\n </Paper>\n </Grid>\n <Grid item xs={7}>\n <Autocomplete\n disabled={user.isLoading || user.isDisabled}\n options={transferOptions}\n style={{\n fontSize: 12,\n fontWeight: 600,\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n }}\n filterOptions={filterOptions}\n value={\n transferOptions.find(x => x.code == selectedOption.code)\n }\n autoHighlight\n getOptionLabel={(option) =>\n `${option?.currency || \"\"}`\n }\n renderOption={(option) => (\n <Fragment>\n <span style={{ marginRight: \"5px\" }}>\n <FlagsHelpers code={option.code == \"PE-USD\" ? \"PE\" : option.code} />\n </span>\n {\" \"}\n {option?.currency || \"\"}\n </Fragment>\n )}\n disableClearable\n renderInput={(params) => (\n <Paper variant=\"outlined\" style={classes.rootFlags} >\n <TextField\n style={{ fontSize: \"15px\" }}\n {...params}\n variant=\"standard\"\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <FlagsHelpers\n code={selectedOption.code == \"PE-USD\" ?\n \"PE\" :\n selectedOption.code\n }>\n </FlagsHelpers>\n ),\n disableUnderline: true,\n }}\n />\n </Paper>\n )}\n onChange={onChangeCountry}\n />\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={12}>\n {!user.isLoading && !user.isDisabled && (\n <FormHelperText style={{ color: \"red\" }}>\n {(user.amount < user.minAmount &&\n content.common.min_value.replace(\n \"minValue\",\n user.minAmount\n )) ||\n (user.amount > user.maxAmount &&\n content.common.max_value.replace(\n \"maxValue\",\n user.maxAmount\n ))}\n </FormHelperText>\n )}\n </Grid>\n\n </Grid>\n </>\n );\n}\n\nexport default InputAmount;\n","const componentStyles = {\n root: {\n fontFamily: \"Poppins\",\n padding: \"26px 21px\",\n maxWidth: 400,\n flexGrow: 1,\n borderRadius: \"24px\",\n borderWidth: \"1px\",\n backgroundColor: \"#FFFFFF\",\n boxShadow: \"0px 4px 7px rgba(61, 71, 86, 0.52)\"\n },\n labelAmount: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n labelExpiration: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputExpiration: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#008AFF\"\n },\n inputAmount: {\n background: \"#C7CDD7\",\n borderRadius: \"2px\"\n },\n inputAmountText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 600,\n fontSize: \"20px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n labelCoupon: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"15px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputCoupon: {\n background: \"#A1ACBD\",\n borderRadius: \"2px\"\n },\n inputCouponText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"18px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n buttonStart: {\n background: \"#008AFF\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n buttonStartDisabled: {\n background: \"#C0C0C0\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n textButtonStart: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\"\n },\n labelUpdateTC: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"16px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n textTimeTC: {\n fontWeight: \"bold\",\n textAlign: \"center\"\n },\n divider: {\n height: 28,\n margin: 4\n },\n rootFlags: {\n fontFamily: \"Poppins\",\n padding: \"5px 5px\",\n minWidth: 100,\n //maxWidth: 150,\n borderWidth: \"0px\",\n },\n};\nexport default componentStyles;\n","import { Divider, Grid, Typography } from \"@material-ui/core\";\nimport { SimulatorMode } from \"../model/enums\";\nimport { useEffect, useState } from \"react\";\n\nconst Fees = (props) => {\n\n const { content, details, simulatorMode, walletName = \"\", locale } = props;\n const [isUSDTReceiver, setIsUSDTReceiver] = useState(false);\n\n useEffect(() => {\n setIsUSDTReceiver(details.currencyReceiver == \"USDT\")\n }, [details])\n\n return <Grid container direction=\"column\" spacing={0} style={{ marginBottom: 15 }}>\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {details.fees.traund.toFixed(2)}{\" \"}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.comision}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n\n {\n walletName?.length > 0 &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {(details.fees.payoneer || details.fees.wise || details.fees.deel || details.fees.ontop || 0).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {locale == \"es\" &&\n <span>\n {content?.calculator.wallet_fee}{\" \"}{walletName[0]}<span style={{ textTransform: 'lowercase' }}>{walletName.slice(1)}</span>\n </span>}\n {locale == \"en\" &&\n <span>\n {walletName[0]}<span style={{ textTransform: 'lowercase' }}>{walletName.slice(1)}</span>{\" \"}{content?.calculator.wallet_fee}\n </span>}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n <Grid item xs={12}>\n <Divider style={{ margin: 4 }}></Divider>\n </Grid>\n {(details.showTotalFees && !isUSDTReceiver) &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.totalFees}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.total_fees}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n {isUSDTReceiver &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"body2\"\n color=\"textPrimary\">\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n style={{ textAlign: \"right\" }}\n >\n {(details.calculatedAmount + details.fees.network).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">\n {` USDT`}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.converted_amount_network}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n {isUSDTReceiver &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"body2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}>\n -\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n style={{ textAlign: \"right\" }}\n >\n {details.fees.network.toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">\n {` USDT`}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.tron_network_fee}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n =\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.calculatedAmount}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {isUSDTReceiver ? \"USDT\" : details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {(walletName?.length > 0 || simulatorMode == SimulatorMode.COLLECT) ? content?.calculator.converted_amount_receive : content?.calculator.converted_amount}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.exchangeRateLabel}\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.exchangeRate}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {isUSDTReceiver ? \"USDT\" : (details.exchangeRateLabel == \"x\" ? details.currencyReceiver : details.currency)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.exchange_rate}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n {details.tax > 0 &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.tax}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {details.currencyReceiver}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {details.currencyReceiver == \"COP\" ? content?.calculator.tax_co : content?.calculator.tax_pe}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n </Grid>\n}\n\nexport default Fees;","import { Alert } from \"@material-ui/lab\";\nimport en from \"../locale/en\";\nimport es from \"../locale/es\";\nimport { Typography } from \"@material-ui/core\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { useEffect, useState } from \"react\";\nimport { SimulatorMode, TransferType } from \"../model/enums\";\nimport { countries } from \"../data/countries\";\nimport moment from \"moment\";\n\nconst Disclaimers = (props) => {\n\n const disclaimerTypes = {\n send: \"send\",\n sendWithIntegration: \"sendWithIntegration\",\n receive: \"receive\",\n receiveWithIntegration: \"receiveWithIntegration\",\n wallet: \"wallet\"\n }\n\n const {\n locale,\n expirationDate,\n simulatorMode,\n transferType,\n option } = props;\n\n const content = locale == \"es\" ? es : en;\n const [name, setName] = useState(\"\");\n const [expiration, setExpiration] = useState(moment(expirationDate).locale(locale).format('LL'));\n \n const pickUpAlert = (name, option) => {\n\n const optionName = getOptionName(option);\n \n let __expiration = expiration.charAt(0).toUpperCase() + expiration.slice(1);\n\n switch (name) {\n case disclaimerTypes.send:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography variant=\"body2\">\n {content.disclaimers.send}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\">\n {content.disclaimers.sendDescription} {\" \"}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\" style={{ color: \"#666\" }}>\n <b>{__expiration}</b>\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.sendWithIntegration:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography style={{ fontSize: \"0.8rem\" }}>\n {content.disclaimers.send}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\">\n {content.disclaimers.sendDescription}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\" style={{ color: \"#666\" }}>\n <b>{__expiration}</b>\n </Typography>\n <Typography variant=\"caption\" align=\"justify\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.sendDisclaimer?.replace(\"{COUNTRY}\", optionName)}\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.receive:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography style={{ fontSize: \"0.8rem\" }}>\n {content.disclaimers.receive}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"justify\">\n {content.disclaimers.receiveDescription}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"caption\" style={{ color: \"#878787\"}}>\n {\n (simulatorMode === SimulatorMode.COLLECT && option.code == \"US\") ? content.disclaimers.receiveZelle : content.disclaimers.receiveBanks\n }\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.receiveWithIntegration:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography style={{ fontSize: \"0.8rem\" }}>\n {content.disclaimers.receive}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"justify\">\n {content.disclaimers.receiveDescription}\n </Typography>\n <Typography variant=\"caption\" align=\"justify\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.receiveDisclaimer?.replace(\"{COUNTRY}\", optionName)}\n </Typography>\n <Typography variant=\"caption\" style={{ color: \"#878787\"}}>\n {\n (simulatorMode === SimulatorMode.COLLECT && option.code == \"US\") ? content.disclaimers.receiveZelle : content.disclaimers.receiveBanks\n }\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.wallet:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n {content.disclaimers.wallet}\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\">\n {content.disclaimers.walletDescription}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\" style={{ color: \"#666\" }}>\n <b>{__expiration}</b>\n </Typography>\n {option.code == \"ACH\" ?\n <Typography variant=\"caption\" align=\"center\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.walletDisclaimerACH}\n </Typography> :\n <Typography variant=\"caption\" align=\"center\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.walletDisclaimer?.replace(\"{PAYMENTMETHOD}\", optionName)}\n </Typography>}\n </Grid>\n {/* <Grid item xs={12}>\n <Alert severity=\"warning\">\n {content.disclaimers.walletDisclaimer?.replace(\"{PAYMENTMETHOD}\", optionName)}\n </Alert>\n </Grid> */}\n </Grid>\n default:\n return <Typography>{\" \"}</Typography>\n }\n }\n\n const getName = (simulatorMode, transferType, countryCode) => {\n\n let name = \"\";\n\n if (simulatorMode == SimulatorMode.SEND && [\"MX\", \"CL\"].includes(countryCode)) {\n name = disclaimerTypes.sendWithIntegration\n }\n else if (simulatorMode == SimulatorMode.SEND) {\n name = disclaimerTypes.send\n }\n\n if (simulatorMode == SimulatorMode.COLLECT && [\"MX\", \"CL\"].includes(countryCode)) {\n name = disclaimerTypes.receiveWithIntegration\n }\n else if (simulatorMode == SimulatorMode.COLLECT) {\n name = disclaimerTypes.receive\n }\n\n if (transferType == TransferType.WALLET) {\n name = disclaimerTypes.wallet\n }\n\n return name;\n }\n\n const getCountryByCode = (countryCode) => {\n return countries.find(e => e.code === countryCode)\n }\n\n const getOptionName = (option) => {\n if (option.type == TransferType.WALLET) {\n return option.code?.toUpperCase()\n }\n else {\n return getCountryByCode(option.code)?.label\n }\n }\n\n useEffect(() => {\n const name = getName(simulatorMode, transferType, option.code);\n setName(name)\n setExpiration(moment(expirationDate).locale(locale).format('LL'))\n }, [simulatorMode, transferType, option, locale, expirationDate])\n\n return (\n pickUpAlert(name, option)\n )\n}\n\nexport default Disclaimers;","import TransferOption from \"./transferOption\";\nimport { UserType } from \"./enums\";\n\nclass TransferDetail {\n constructor() {\n this.isLoading = false;\n this.showTotalFees = false;\n this.currency = \"\";\n this.currencyReceiver = \"\";\n this.amount = 0;\n this.calculatedAmount = 0;\n this.exchangeRateLabel = \"x\";\n this.exchangeRate = 0;\n this.fees = {\n traund: 0.0,\n paypal: 0.0,\n network: 0.0,\n payoneer: 0.0,\n wise: 0.0,\n deel: 0.0,\n ontop: 0.0,\n ach: 0.0,\n tax: 0.00\n };\n this.totalFees = 0;\n this.middleAmount = 0;\n this.cryptoAmount = 0;\n }\n\n setFees = (fees) => {\n this.fees = fees;\n return this;\n }\n\n setDetails = (sender, receiver) => {\n const withoutFee = { amount: 0, value: 0, type: \"A\", amountUSD: 0, enabled: false };\n\n const isUsdt = receiver?.selectedOption?.currency == \"USDT\";\n const convertValue = sender.calculatedAmount;\n const receivedValue = receiver.amount;\n const fromExchangeRate = sender.exchangeRate;\n const fees = sender.fees;\n\n const sendValue = sender.amount;\n const paymentMethods = receiver.paymentMethods;\n\n this.currencyReceiver = receiver?.selectedOption?.currency || \"\"\n this.currency = sender.selectedOption?.currency;\n this.showTotalFees = false;\n this.exchangeRateLabel = \"x\";\n\n if (convertValue != 0 && receivedValue != 0 && fees) {\n\n let feeTaxTo = applyTaxDiscount(sender.code, receiver.code, convertValue, receivedValue);\n\n let feeTraund = fees.traund != null ? { ...fees.traund, enabled: true } : withoutFee;\n let feePaypal = fees.paypal != null ? { ...fees.paypal, enabled: true } : withoutFee;\n let feePayoneer = fees.payoneer != null ? { ...fees.payoneer, enabled: true } : withoutFee;\n let feeWise = fees.wise != null ? { ...fees.wise, enabled: true } : withoutFee;\n let feeDeel = fees.deel != null ? { ...fees.deel, enabled: true } : withoutFee;\n let feeACH = fees.ach != null ? { ...fees.ach, enabled: true } : withoutFee;\n let feeOntop = fees.ontop != null ? { ...fees.ontop, enabled: true } : withoutFee;\n let feeTax = feeTaxTo ? { amount: feeTaxTo, value: 0, type: \"A\", amountUSD: 0, enabled: true } : withoutFee;\n\n let rate = fromExchangeRate || 0;\n let networkFeeValue = 0.00;\n let traundFeeValue = feeTraund.enabled ? feeTraund?.amount : 0.00;\n let paypalFeeValue = feePaypal.enabled ? feePaypal?.amount : 0.00;\n let payoneerFeeValue = feePayoneer.enabled ? feePayoneer?.amount : 0.00;\n let wiseFeeValue = feeWise.enabled ? feeWise?.amount : 0.00;\n let deelFeeValue = feeDeel.enabled ? feeDeel?.amount : 0.00;\n let achFeeValue = feeACH.enabled ? feeACH?.amount : 0.00;\n let ontopFeeValue = feeOntop.enabled ? feeOntop?.amount : 0.00;\n let taxFeeValue = feeTax.enabled ? feeTax.amount : 0.00;\n\n this.showTotalFees = paypalFeeValue > 0;\n if (isUsdt) {\n rate = 1;\n networkFeeValue = Number(Math.abs(convertValue - receivedValue / rate)).toFixed(2);\n if (this.currency != \"USD\") {\n {\n if (paymentMethods.length && paymentMethods[0].isWallet) {\n networkFeeValue = Number(Math.abs(sendValue - Number(paymentMethods[0].amount) / fromExchangeRate)).toFixed(2)\n }\n }\n }\n this.cryptoAmount = receivedValue;\n this.showTotalFees = true;\n }\n\n if (rate < 1) {\n this.exchangeRateLabel = \"÷\"\n rate = (Math.floor((convertValue / receivedValue) * 100) / 100).toFixed(2);\n networkFeeValue = Number(Math.abs(receivedValue * rate - convertValue)).toFixed(2);\n }\n\n this.exchangeRate = rate;\n this.totalFees = traundFeeValue + paypalFeeValue + payoneerFeeValue + wiseFeeValue + deelFeeValue + achFeeValue + ontopFeeValue + networkFeeValue;\n this.fees = {\n traund: traundFeeValue,\n paypal: paypalFeeValue,\n network: networkFeeValue,\n payoneer: payoneerFeeValue,\n wise: wiseFeeValue,\n deel: deelFeeValue,\n ontop: ontopFeeValue,\n ach: achFeeValue,\n tax: taxFeeValue\n }\n }\n return this;\n };\n}\n\nexport default TransferDetail;","export const addLabelToPaymentMethods = (content, paymentMethods) => {\n if (paymentMethods) {\n return paymentMethods.map(paymentMethod => ({\n ...paymentMethod,\n label: paymentMethodLabel(content, paymentMethod.name)\n }));\n }\n}\n\nexport const paymentMethodLabel = (content, paymentMethodName) => {\n\n const labels = {\n Zelle: 'Zelle',\n BBVABank: content.banks.bbva,\n STP: 'STP',\n BANK: 'BANK',\n CreditBankOfPeru: content.banks.bcp,\n Interbank: 'Interbank',\n ScotiabankPeru: content.banks.scotiabank_peru,\n WesternDiscountBank: content.banks.western_discount_bank,\n Provincial: 'Provincial',\n Mercantil: 'Mercantil',\n Banesco: 'Banesco',\n UalaNew: 'Ualá',\n MercadoPagoNew: 'Mercado Pago',\n bank: 'Otra entidad financiera (CBU)'\n }\n return paymentMethodName in labels ? labels[paymentMethodName] : paymentMethodName;\n}\n\nexport const setIdForPaymentMethods = (payments) => {\n if (payments) {\n let paymentsWithId = payments.map((el) => {\n return {\n ...el,\n id: el.name.replace(/ /g, \"\").toLowerCase()\n };\n });\n\n return paymentsWithId;\n }\n\n return false;\n}\n","import { Grid, Select } from \"@material-ui/core\";\nimport MenuItem from \"@material-ui/core/MenuItem\"\nimport { useEffect, useState } from \"react\";\n\nconst PaymentMethodSelector = ({ paymentMethods, onChange }) => {\n\n const [selectedItem, setSelectedItem] = useState(paymentMethods[0]?.id || \"\");\n\n const handleOnChange = ({ target }) => {\n onChange && onChange(target.value)\n setSelectedItem(target.value)\n }\n\n useEffect(() => {\n setSelectedItem(paymentMethods[0]?.id || \"\")\n }, [paymentMethods])\n\n return <Grid container>\n <Grid item xs={12}>\n {paymentMethods && (<Grid item xs={12} >\n <Select\n id=\"demo-customized-select-native\"\n value={selectedItem}\n onChange={handleOnChange}\n style={{ minWidth: 300 }}\n fullWidth={true}\n >\n {paymentMethods &&\n paymentMethods.filter(e => e.id != \"trc20\").map((payment, index) => (\n <MenuItem key={payment.name + index} value={payment.id}>\n {payment.label} {/* ({payment.currency}) */}\n </MenuItem>\n ))}\n </Select>\n </Grid>\n )}\n </Grid>\n </Grid>\n}\n\nexport default PaymentMethodSelector;","import { makeStyles } from \"@material-ui/core\";\n\nexport const simulatorStyles = makeStyles((theme) => ({\n // 'input[type=number]::-webkit-outer-spin-button': {\n // '-webkit-appearance': 'none',\n // margin: 0\n // },\n // 'input[type=number]::-webkit-inner-spin-button': {\n // '-webkit-appearance': 'none',\n // margin: 0\n // },\n // 'input[type=number]': {\n // '-moz-appearance': 'textfield'\n // },\n root: {\n fontFamily: \"Poppins\",\n padding: \"26px 21px 0 21px\",\n maxWidth: 480,\n flexGrow: 1,\n borderRadius: \"24px\",\n borderWidth: \"1px\",\n backgroundColor: \"#FFFFFF\",\n boxShadow: \"0px 4px 7px rgba(61, 71, 86, 0.52)\"\n },\n labelAmount: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n chipOptionChecked: {\n backgroundColor: \"#008AFF !important\",\n borderWidth: \"0px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\",\n '&:hover': {\n background: \"#008AFF !important\",\n },\n '&:focus': {\n background: \"#008AFF !important\",\n }\n },\n chipOptionUnchecked: {\n background: \"#FFFFFF\",\n borderColor: \"#008AFF\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#008AFF\"\n },\n button: {\n background: \"#008AFF\",\n borderWidth: \"0px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\",\n '&:hover': {\n background: \"#008AFF\",\n }\n }\n}));\n"],"names":[],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":"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neA,2CAAe;IACb,QAAQ;QACN,QAAQ;YACN,iBAAiB;YACjB,eAAe;YACf,gBAAgB;QAClB;QACA,UAAU;YACR,iBAAiB;YACjB,uBAAuB;YACvB,gBAAgB;YAChB,sBAAsB;YACtB,eAAe;YACf,qBAAqB;QACvB;QACA,WAAW;QACX,WAAW;IACb;IACA,WAAW;QACT,eAAe;QACf,cAAc;YACZ,aAAa;YACb,gBAAgB;QAClB;QACA,sBAAsB;IACxB;IACA,SAAS;QACP,cAAc;QACd,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,cAAc;QACd,gBAAgB;QAChB,MAAM;QACN,IAAI;QACJ,OAAO;QACP,gBAAgB;QAChB,WAAW;QACX,aAAa;QACb,kBAAkB;QAClB,aAAa;YAAC;YAAU;YAAW;YAAU;SAAQ;QACrD,mBAAmB;QACnB,aAAa;QACb,cAAc;QACd,UAAU;YACR,OAAO;YACP,aAAa;gBACX;gBACA;gBACA;aACD;QACH;QACA,MAAM;YACJ,OAAO;YACP,WAAW;gBACT;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,SAAS;gBACP;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA,YAAY;QACV,YAAY;QACZ,eAAe;QACf,OAAO;QACP,SAAS;IACX;IACA,aAAa;QACX,YAAY;QACZ,aAAa;QACb,oCACE;QACF,iBAAiB;IACnB;IACA,eAAe;QACb,YAAY;QACZ,cAAc;QACd,qBAAqB;QACrB,iBAAiB;QACjB,wBAAwB;QACxB,4BACE;IACJ;IACA,YAAY;QACV,sBACE;QACF,qBAAqB;QACrB,qBAAqB;QACrB,OAAO;QACP,aAAa;QACb,yBAAyB;QACzB,WAAW;QACX,yBAAyB;QACzB,aACE;QACF,qBAAqB;QACrB,uCACE;IACJ;IACA,cAAc;QACZ,eAAe;QACf,gBAAgB;QAChB,0BACE;QACF,gCACE;IACJ;IACA,cAAc;QACZ,eAAe;QACf,iBAAiB;IACnB;IACA,SAAS;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;IACR;IACA,QAAQ;Q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","sources":["src/index.js","src/calculatorV2.js","src/locale/en.js","src/locale/es.js","src/firebase.config.js","src/core/backend-settings.js","src/data/countries.js","src/countdown/index.js","src/core/endpoints.js","src/helpers/flagsHelpers.js","src/helpers/taxDiscount.js","src/core/signature.js","src/simulator.js","src/model/transferUser.js","src/model/transferOption.js","src/model/enums.js","src/utils/calculateHelper.js","src/utils/rateHelper.js","src/utils/operationsHelper.js","src/core/transaction-settings.js","src/core/working-setup.js","src/components/inputAmount.js","src/components/componentStyles.js","src/components/fees.jsx","src/components/disclaimers.jsx","src/model/transferDetail.js","src/helpers/paymentMethodHelper.js","src/components/paymentMethodSelector.jsx","src/components/simulatorStyles.js"],"sourcesContent":["import Calculator from \"./calculatorV2\";\nimport Simulator from \"./simulator\";\n\nfunction WrappedSimulator(props) {\n return <Simulator\n testMode={props.testMode}\n locale={props.locale}\n appUrl={props.appUrl}\n startUrl={props.startUrl}\n onlyView={props.onlyView ?? false}\n initialCountryTo={props.initialCountryTo ?? \"PE-USD\"}\n reference={props.reference || \"\"}\n secretKey={props.secretKey || \"\"}\n config={props.config}\n />;\n}\n\nfunction WrappedCalculator(props) {\n return (\n <Calculator\n testMode={props.testMode}\n locale={props.locale}\n startUrl={props.startUrl}\n couponCode={props.couponCode || \"\"}\n onlySimulation={props.onlySimulation ?? false}\n reference={props.reference || \"\"}\n secretKey={props.secretKey || \"\"}\n config={props.config}\n />\n );\n}\n\nexport { WrappedCalculator, WrappedSimulator };","import React, { Component, Fragment } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport NativeSelect from \"@material-ui/core/NativeSelect\";\nimport InputBase from \"@material-ui/core/InputBase\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport TextField from \"@material-ui/core/TextField\";\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Button from \"@material-ui/core/Button\";\nimport {Divider} from \"@material-ui/core\";\nimport HighlightOffOutlinedIcon from \"@material-ui/icons/HighlightOffOutlined\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { matchSorter } from \"match-sorter\";\nimport en from \"./locale/en\";\nimport es from \"./locale/es\";\nimport loadFirebaseDB from \"./firebase.config\";\nimport axios from \"axios\";\nimport { countries } from \"./data/countries\";\nimport Timer from \"./countdown/index\";\nimport Endpoints from \"./core/endpoints\";\nimport FlagsHelpers from \"./helpers/flagsHelpers\";\nimport { applyTaxDiscount } from \"./helpers/taxDiscount\";\nimport { getSignatureHeader } from \"../src/core/signature\";\nclass Calculator extends Component {\n state = {\n config: this.props.config ,\n testMode: this.props.testMode,\n sendValue: 100.0,\n sendValueUSD: 100.0,\n convertValue: 100.0,\n convertValueCrypto: 100.0,\n receivedValue: 0.0,\n fees: {},\n fromExchangeRate: 0.00,\n couponValue: this.props.onlySimulation ? \"\" : this.props.couponCode,\n fromCountryValue: \"US\",\n fromCurrencyValue: \"USD\",\n toCountryValue: \"PE-USD\",\n toCurrencyValue: \"USD\",\n isLoading: false,\n storeId: null,\n email: \"\",\n hasError: false,\n hasAmountError: false,\n hasEmailError: false,\n hasValidCoupon: true,\n isValid: true,\n isSuccess: false,\n showCallToAction: false,\n countryError: {\n hasErrors: false,\n value: \"\",\n },\n calculator: {},\n minFromValue: 20,\n maxFromValue: 5000,\n minToValue: 80,\n maxToValue: 20000,\n plus: 0,\n couponRedeemed: false,\n typingTimeout: 0,\n typingTimeoutCoupon: 0,\n calculating: true,\n banks: false,\n loadingTo: true,\n loadingFrom: false,\n recalculate: false,\n paymentMethods: [],\n exchangeRateLabel: \"x\",\n exchangeRate: 0.0,\n isUsdt: false,\n networkFee: 0.0,\n paypalFee: 0.0,\n traundFee: 0.0,\n totalFees: 0.0,\n showTotalFees: false,\n isCountryFromPayPal: false,\n onlySimulation: this.props.onlySimulation,\n reference:this.props.reference,\n secretKey: this.props.secretKey,\n taxSender: 0.00,\n taxReceiver: 0.00\n };\n\n ENDPOINTS = new Endpoints(this.state.testMode,this.state.config);\n\n constructor(props) {\n super(props);\n this.unsubscribe = [];\n }\n\n async componentDidMount() {\n //if (db) db.clearPersistence();\n const firebase = await loadFirebaseDB(this.state.testMode,this.state.config);\n\n const db = firebase.firestore();\n\n this.subscribeCalculatorConfig(db);\n\n if (\n !sessionStorage.getItem(`storeId`) ||\n sessionStorage.getItem(`storeId`) == null ||\n sessionStorage.getItem(`storeId`) == undefined ||\n sessionStorage.getItem(`storeId`) == \"\"\n ) {\n await this.createTransaction(db);\n } else {\n await this.setState({ storeId: sessionStorage.getItem(`storeId`) });\n }\n\n this.calculate(\"initial\");\n\n this.subscribeTransaction(db);\n\n // this.unloadListener(db);\n }\n\n componentWillUnmount() {\n this.unsubscribe && this.unsubscribe.map((unsubscribe) => unsubscribe());\n clearTimeout(this.state.recalc);\n }\n \n setIdForPaymentMethods(payments) {\n if (payments) {\n let paymentsWithId = payments.map((el) => {\n return {\n ...el,\n id: el.name.replace(/ /g, \"\").toLowerCase(),\n };\n });\n\n const active = paymentsWithId.find(payment => payment.isActive);\n if (active) {\n if (active.id === 'trc20') {\n this.setState({ isUsdt: true });\n }\n }\n\n return paymentsWithId;\n }\n\n return false;\n }\n\n createTransaction = async (db) => {\n let model = {\n coupon: this.state.couponValue,\n from: {\n amount: +this.state.sendValue,\n country: this.state.fromCountryValue,\n currency: this.state.fromCurrencyValue,\n },\n to: {\n amount: +this.state.receivedValue,\n country: this.state.toCountryValue,\n currency: this.state.toCurrencyValue,\n },\n timestamp: new Date(),\n };\n\n try {\n const transaction = await db.collection(\"transactions\").add(model);\n await this.setState({ storeId: transaction.id });\n sessionStorage.setItem(\"storeId\", `${transaction.id}`);\n } catch (e) {\n this.setState({ hasError: true });\n }\n };\n\n addLabelToPaymentMethods = (paymentMethods) => {\n if (paymentMethods) {\n return paymentMethods.map(paymentMethod => ({ ...paymentMethod, label: this.paymentMethodLabel(paymentMethod.name) }));\n }\n }\n\n paymentMethodLabel = (paymentMethodName) => {\n const content = this.props.locale === 'es' ? es : en;\n const labels = {\n Zelle: 'Zelle',\n BBVABank: content.banks.bbva,\n STP: 'STP',\n //BANK: 'BANK',\n CreditBankOfPeru: content.banks.bcp,\n Interbank: 'Interbank',\n ScotiabankPeru: content.banks.scotiabank_peru,\n WesternDiscountBank: content.banks.western_discount_bank,\n Provincial: 'Provincial',\n Mercantil: 'Mercantil',\n Banesco: 'Banesco',\n UalaNew: 'Ualá',\n MercadoPagoNew: 'Mercado Pago',\n bank: 'Otra entidad financiera (CBU)'\n }\n return paymentMethodName in labels ? labels[paymentMethodName] : paymentMethodName;\n }\n\n subscribeTransaction = async (db) => {\n try {\n const transactions = await db\n .collection(\"transactions\")\n .doc(\n `${this.state.storeId\n ? this.state.storeId\n : sessionStorage.getItem(\"storeId\")\n }`\n )\n .onSnapshot(async (transaction) => {\n const data = await transaction.data();\n if (data) {\n const { from, to } = data;\n let receivedValue = to.amount;\n\n if (to.paymentMethods && to.paymentMethods.length > 0) {\n const element = to.paymentMethods.find(element => element.isActive);\n if (element) {\n receivedValue = element.isWallet ? element.amountCrypto : element.amount;\n }\n }\n\n let {\n newAmountSender,\n newAmountReceiver,\n appliedDiscountSender,\n appliedDiscountReceiver\n } = applyTaxDiscount(from.country, to.country, +this.state.sendValue, to.amount);\n \n receivedValue = (+newAmountReceiver).toFixed(2);\n \n await this.setState({\n sendValue: newAmountSender + appliedDiscountSender,\n convertValue: from.amountConverted,\n receivedValue: receivedValue,\n fees: from.fees,\n fromExchangeRate: from.exchangeRate,\n fromCurrencyValue: from.currency,\n toCurrencyValue: to.currency,\n fromCountryValue: from.country === \"TR\" ? \"TRAUND\" : from.country,\n toCountryValue: to.country,\n coupon: data.coupon,\n plus: data.coupon ? data.promo : 0,\n couponRedeemed: false,\n banks: this.setIdForPaymentMethods(to.banks),\n paymentMethods: this.addLabelToPaymentMethods(this.setIdForPaymentMethods(to.paymentMethods)),\n taxSender: appliedDiscountSender,\n taxReceiver: appliedDiscountReceiver\n }, () => {\n this.showExchangeRate(receivedValue);\n this.updateLimits();\n this.addCoupon();\n });\n\n }\n });\n this.unsubscribe.push(transactions);\n } catch (e) {\n this.setState({ hasError: true });\n }\n };\n\n subscribeCalculatorConfig = async (db) => {\n try {\n const calculator = await db\n .collection(\"variables\")\n .onSnapshot(async (variable) => {\n let variables = {};\n\n await variable.forEach((doc) => {\n variables[doc.id] = doc.data();\n });\n\n if (Object.keys(variables).length > 0) {\n this.setState({\n showCallToAction: variables[\"event\"].show,\n calculator: variables[\"calculator\"],\n }, () => {\n const { timestamp, frequency } = variables[\"calculator\"];\n const currentTime = +new Date().getTime();\n const diference = Math.abs(currentTime - timestamp) / 1000;\n if (diference > frequency) this.updateCaculatorData(db);\n });\n }\n });\n this.unsubscribe.push(calculator);\n return calculator;\n } catch (e) {\n // this.setState({ hasError: true });\n }\n };\n\n _convertAmount = async (currency) => {\n try {\n if (currency == \"ARS\") {\n const { data } = await axios.get(`${this.ENDPOINTS.EXCHANGE.getUSDBlueRate}`);\n let blueRate = await JSON.parse(JSON.stringify(data));\n blueRate = { result: blueRate.blue.value_sell };\n return blueRate;\n } else {\n const { data } = await axios.get(`${this.ENDPOINTS.EXCHANGE.getRate_v2(currency)}`);\n return { result: parseFloat(data['usd'][currency.toLowerCase()].toFixed(2)) };\n }\n } catch (e) {\n return e;\n }\n };\n\n updateCaculatorData = async (db) => {\n const countryModel = {\n active: false,\n countryMax: 5000,\n countryMin: 20,\n usdSell: 0,\n usdBuy: 0,\n rates: { from: 1, to: 1 },\n };\n\n const availableCountries = [\n \"USDT\",\n \"AR\",\n \"CL\",\n \"CO\",\n \"DO\",\n \"EC\",\n \"MX\",\n \"PE\",\n \"PE-USD\",\n \"US\",\n \"VE\",\n \"ES\",\n \"TRAUND\"\n ];\n\n const rates = {};\n let body = { timestamp: new Date().getTime(), frequency: 43200 };\n await Promise.all(\n availableCountries.map(async (country) => {\n let currency = \"\";\n body[country] = { ...this.state.calculator[country] };\n if (body[country] && body[country].countryTo && body[country]) {\n return await Promise.all(\n availableCountries.map(async (c) => {\n if (c != country)\n body[country].countryTo[c] = {\n usdSell: 0,\n usdBuy: 0,\n ...body[country].countryTo[c],\n };\n let usdRate = \"\";\n\n if (!rates.hasOwnProperty(c)) {\n let forceUSD = (c == \"USDT\" || c == \"TRAUND\");\n currency = countries.find(\n (country) => country.code == (forceUSD ? \"US\" : c)\n ).currency;\n\n usdRate =\n currency == \"USD\"\n ? { result: 1 }\n : await this._convertAmount(currency);\n\n rates[c] = { buy: 0, sell: 0 };\n }\n\n if (usdRate && typeof usdRate.result === \"number\") {\n rates[c].buy = rates[c].sell = parseFloat(\n c == \"SV\" ? usdRate.result : usdRate.result.toFixed(2)\n );\n } else {\n rates[c].buy = rates[c].sell = 1;\n }\n if (body[country].countryTo[c]) {\n body[country].countryTo[c].usdBuy = rates[c].buy;\n body[country].countryTo[c].usdSell = rates[c].sell;\n body[country].countryTo[c].countryMax = parseFloat(\n c == \"SV\"\n ? countryModel.countryMax * 1\n : (\n Math.ceil(countryModel.countryMax * rates[c].buy) /\n rates[c].buy\n ).toFixed(2)\n );\n body[country].countryTo[c].countryMin = parseFloat(\n (c == \"SV\"\n ? countryModel.countryMin * 1\n : Math.ceil(countryModel.countryMin * rates[c].buy) /\n rates[c].buy\n ).toFixed(2)\n );\n }\n if (rates[country]) {\n body[country].usdBuy = rates[country].buy;\n body[country].usdSell = rates[country].sell;\n body[country].countryMax = parseFloat(\n (country == \"SV\"\n ? countryModel.countryMax * 1\n : Math.ceil(\n country == \"VE\"\n ? 1000\n : countryModel.countryMax * rates[country].buy\n ) / rates[country].buy\n ).toFixed(2)\n );\n body[country].countryMin = parseFloat(\n (country == \"SV\"\n ? countryModel.countryMin * 1\n : Math.ceil(countryModel.countryMin * rates[country].buy) /\n rates[country].buy\n ).toFixed(2)\n );\n }\n })\n );\n }\n })\n );\n await db.collection(\"variables\").doc(\"calculator\").update(body);\n };\n\n unloadListener = () => {\n window.onbeforeunload = () => {\n return this.beforeUnload();\n };\n };\n\n beforeUnload = async () => {\n sessionStorage.removeItem(\"storeId\");\n\n //if (db) db.clearPersistence();\n const firebase = await loadFirebaseDB(this.state.testMode);\n const db = firebase.firestore();\n return await db\n .collection(\"transactions\")\n .doc(`${this.state.storeId}`)\n .delete();\n };\n\n handleSend = async ({ target }) => {\n await this.setState({ sendValue: target.value });\n this.calculate();\n };\n\n handleReceived = async ({ target }) => {\n await this.setState({ receivedValue: target.value });\n this.calculate(\"to\");\n };\n\n handleCoupon = async ({ target }) => {\n if (this.state.typingTimeoutCoupon) {\n clearTimeout(this.state.typingTimeoutCoupon);\n }\n\n let initialAmount = parseFloat(this.state.receivedValue || 0);\n let plusAmount = parseFloat(this.state.plus || 0);\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n\n // this.setState({\n // hasValidCoupon: false,\n // });\n\n this.setState({\n typingTimeoutCoupon: setTimeout(() => {\n this.addCoupon();\n }, 1200),\n });\n\n this.setState({\n couponValue: target.value.toUpperCase(),\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n });\n };\n\n handleIsLoading = (value) => {\n this.setState({ isLoading: value });\n };\n\n handleToCountryValue = async (value) => {\n await this.setState({ toCountryValue: value, receivedValue: \"\" });\n await this.updateLimits();\n this.calculate(\"from\");\n this.setState({ banks: false });\n };\n\n handleToCurrencyValue = (value) => {\n this.setState({ toCurrencyValue: value });\n };\n\n handleFromCountryValue = async (value) => {\n await this.setState({ fromCountryValue: value, isCountryFromPayPal: value == \"PAYPAL\" });\n await this.updateLimits();\n this.calculate();\n };\n\n handleFromCurrencyValue = (value) => {\n this.setState({ fromCurrencyValue: value });\n };\n\n updateLimits = (selectedMethod) => {\n \n const countryData = this.state.calculator[this.state.fromCountryValue == \"TR\" ? \"TRAUND\" : this.state.fromCountryValue];\n let { countryMin, countryMax, usdBuy } = countryData;\n let { usdSell } = countryData.countryTo[this.state.toCountryValue || \"US\"];\n if (\n this.state.paymentMethods &&\n this.state.paymentMethods.length &&\n this.state.paymentMethods[0].isWallet &&\n this.state.paymentMethods[0].isActive\n ) {\n //usdBuy = 1;\n usdSell = 1;\n }\n\n this.setState({\n minFromValue:\n this.state.fromCountryValue == \"SV\"\n ? countryMin * usdBuy\n : Math.ceil(countryMin * usdBuy),\n maxFromValue:\n this.state.fromCountryValue == \"SV\"\n ? countryMax * usdBuy\n : Math.ceil(countryMax * usdBuy),\n minToValue:\n this.state.toCountryValue == \"SV\"\n ? countryMin * usdSell\n : Math.ceil(countryMin * usdSell),\n maxToValue:\n this.state.toCountryValue == \"SV\"\n ? countryMax * usdSell\n : Math.ceil(countryMax * usdSell),\n });\n };\n\n getCountryLimits = (countryFrom, countryTo) => {\n const countryData = this.state.calculator[countryFrom];\n let { countryMin, countryMax, usdBuy } = countryData;\n let { usdSell } = countryData.countryTo[countryTo];\n if (\n this.state.paymentMethods &&\n this.state.paymentMethods.length &&\n this.state.paymentMethods[0].isWallet &&\n this.state.paymentMethods[0].isActive\n ) {\n //usdBuy = 1;\n usdSell = 1;\n }\n\n let limits = {\n minFromValue: 0,\n maxFromValue: 0,\n minToValue: 0,\n maxToValue: 0,\n }\n\n if (countryFrom == \"SV\") {\n limits.minFromValue = countryMin * usdBuy;\n limits.maxFromValue = countryMax * usdBuy;\n } else {\n limits.minFromValue = Math.ceil(countryMin * usdBuy);\n limits.maxFromValue = Math.ceil(countryMax * usdBuy);\n }\n\n if (countryTo == \"SV\") {\n limits.minToValue = countryMin * usdSell;\n limits.maxToValue = countryMax * usdSell;\n } else {\n limits.minToValue = Math.ceil(countryMin * usdSell);\n limits.maxToValue = Math.ceil(countryMax * usdSell);\n }\n\n return limits;\n };\n\n calculateExchangeRate = (receivedValue) => {\n const {\n fromCurrencyValue,\n isUsdt,\n sendValue,\n isCountryFromPayPal\n } = this.state;\n\n if (sendValue != 0 && receivedValue != 0) {\n let rate = 0.00;\n let networkFee = 0.00;\n let countryFromFee = 0.00;\n\n let amountFromCalc = sendValue;\n let fee = this.state.calculator[this.state.fromCountryValue].fee ?\n this.state.calculator[this.state.fromCountryValue].fee\n : { type: \"A\", value: 0.00, enabled: false }\n\n if (fee.enabled) {\n countryFromFee = fee.type == \"A\" ? fee.value : (amountFromCalc * fee.value).toFixed(2);\n amountFromCalc = amountFromCalc - (networkFee + countryFromFee);\n }\n\n let amountFromUSD = fromCurrencyValue == \"USD\" ?\n amountFromCalc :\n parseFloat(amountFromCalc) / this.state.calculator[this.state.fromCountryValue].usdBuy;\n\n if (isUsdt) {\n rate = 1.00;\n networkFee = isCountryFromPayPal ? 2.00 : (Math.abs(amountFromUSD - receivedValue / rate).toFixed(2));\n } else {\n rate = isCountryFromPayPal ?\n rate = (Math.floor((receivedValue / amountFromCalc) * 100) / 100).toFixed(2) :\n (Math.floor((receivedValue / sendValue) * 100) / 100).toFixed(2);\n }\n\n if (rate < 1) {\n rate = (Math.floor((sendValue / receivedValue) * 100) / 100).toFixed(2);\n networkFee = (Math.abs(receivedValue * rate - amountFromUSD).toFixed(2));\n }\n\n this.setState({\n exchangeRate: rate,\n networkFee: networkFee,\n countryFromFee: countryFromFee,\n sendValueUSD: amountFromUSD\n });\n }\n };\n\n showExchangeRate = (receivedValue) => {\n const withoutFee = { amount: 0, value: 0, type: \"A\", amountUSD: 0, enabled: false };\n const {\n fromCurrencyValue,\n isUsdt,\n convertValue,\n fromExchangeRate,\n fees\n } = this.state;\n\n let convertValueCrypto = convertValue;\n let showTotalFees = false;\n let exchangeRateLabel = \"x\";\n\n if (convertValue != 0 && receivedValue != 0) {\n\n let feeTraund = fees.traund != null ? { ...fees.traund, enabled: true } : withoutFee;\n let feePaypal = fees.paypal != null ? { ...fees.paypal, enabled: true } : withoutFee;\n\n let rate = fromExchangeRate;\n let networkFee = 0.00;\n let traundFeeValue = feeTraund.enabled ? feeTraund.amount : 0.00;\n let paypalFeeValue = feePaypal.enabled ? feePaypal.amount : 0.00;\n\n showTotalFees = paypalFeeValue > 0;\n if (isUsdt) {\n rate = 1;\n networkFee = Math.abs(convertValue - receivedValue / rate);\n if (fromCurrencyValue != \"USD\") {\n {\n const { sendValue, paymentMethods } = this.state;\n if (paymentMethods.length && paymentMethods[0].isWallet) {\n networkFee = Math.abs(sendValue - Number(paymentMethods[0].amount) / fromExchangeRate)\n }\n }\n }\n convertValueCrypto = receivedValue;\n showTotalFees = true;\n }\n\n if (rate < 1) {\n exchangeRateLabel = \"÷\"\n rate = (Math.floor((convertValue / receivedValue) * 100) / 100).toFixed(2);\n networkFee = Math.abs(receivedValue * rate - convertValue);\n }\n let totalFees = traundFeeValue + paypalFeeValue + networkFee;\n\n this.setState({\n exchangeRateLabel: exchangeRateLabel,\n exchangeRate: rate,\n traundFee: traundFeeValue.toFixed(2),\n paypalFee: paypalFeeValue.toFixed(2),\n networkFee: networkFee.toFixed(2),\n showTotalFees: showTotalFees,\n totalFees: totalFees,\n convertValueCrypto: convertValueCrypto\n });\n }\n };\n\n calculate = async (source = \"from\") => {\n this.setState({\n recalculate: false,\n isUsdt: false,\n exchangeRate: 0.0,\n couponValue: this.state.couponValue,\n couponRedeemed: false,\n reference: this.state.reference ,\n secretKey: this.state.secretKey,\n plus: 0\n });\n if (this.state.recalc) {\n clearTimeout(this.state.recalc);\n }\n\n let {\n newAmountSender,\n } = applyTaxDiscount(this.state.fromCountryValue === \"TRAUND\" ? \"TR\" : this.state.fromCountryValue, this.state.toCountryValue, this.state.sendValue, this.state.receivedValue);\n\n let model = {\n coupon: this.state.couponValue,\n from: {\n amount: newAmountSender,\n country: this.state.fromCountryValue === \"TRAUND\" ? \"TR\" : this.state.fromCountryValue,\n currency: this.state.fromCurrencyValue,\n },\n to: {\n amount: this.state.receivedValue,\n country: this.state.toCountryValue,\n currency: this.state.toCurrencyValue,\n },\n };\n\n if (source == \"initial\" || source == \"end\") {\n const url = this.ENDPOINTS.OPERATIONS.calculate(this.state.storeId || sessionStorage.getItem('storeId'), \"from\");\n\n const res = await axios.post(\n url,\n model,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('POST', url, model,this.state.reference,this.state.secretKey) \n },\n }\n );\n\n if (res) {\n await this.setState({\n loadingTo: false,\n loadingFrom: false,\n recalculate: true,\n recalc: setTimeout(() => {\n this.calculate();\n }, 5 * 60 * 1000),\n });\n }\n\n this.setState({\n loadingTo: false,\n loadingFrom: false,\n }, () => {\n this.addCoupon()\n });\n\n return;\n }\n\n if (this.state.typingTimeout) clearTimeout(this.state.typingTimeout);\n this.setState({\n typingTimeout: setTimeout(async () => {\n let validAmount = this.validateAmount(model.from.amount, \"from\");\n let validAmountTo = this.validateAmount(model.to.amount, \"to\");\n if (\n (validAmount && validAmountTo) ||\n (validAmount && source == \"from\") ||\n (validAmountTo && source == \"to\")\n ) {\n await this.setState({\n loadingTo: source == \"from\",\n loadingFrom: source == \"to\",\n couponValue: this.state.couponValue,\n couponRedeemed: false,\n plus: 0\n });\n\n if (source == \"from\")\n this.setState({\n receivedValue: \"\",\n });\n if (source == \"to\")\n this.setState({\n sendValue: \"\",\n });\n const url = this.ENDPOINTS.OPERATIONS.calculate(this.state.storeId, source)\n\n const res = await axios.post(\n url,\n model,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('POST', url, model,this.state.reference,this.state.secretKey) \n },\n }\n );\n \n if (res) {\n await this.setState({\n loadingTo: false,\n loadingFrom: false,\n recalculate: true,\n recalc: setTimeout(() => {\n this.calculate();\n }, 5 * 60 * 1000),\n });\n }\n }\n }, 650),\n }, () => {\n this.addCoupon();\n });\n };\n\n async addCoupon() {\n let initialAmount = parseFloat(this.state.receivedValue || 0);\n let plusAmount = parseFloat(this.state.plus || 0);\n\n if (initialAmount == 0) return;\n\n if (this.state.couponValue == \"\") {\n this.setState({\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n let { data } = await this.validateCoupon(this.state.couponValue);\n let { isValid, settings } = data.data;\n\n if (!isValid) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n\n return;\n }\n\n let countryFrom = data.data.settings.countryFrom;\n let countryTo = data.data.settings.countryTo;\n\n if (\n countryFrom.length != 0 &&\n !countryFrom.includes(this.state.fromCountryValue)\n ) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"from\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n if (\n countryTo.length != 0 &&\n !countryTo.includes(this.state.toCountryValue)\n ) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"to\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n\n return;\n }\n\n if (this.state.isUsdt) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"to\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n let receivedRate = this.state.fromCurrencyValue == \"USD\" ?\n ((initialAmount - plusAmount) / this.state.sendValue) :\n (this.state.calculator[this.state.toCountryValue].usdBuy);\n\n let minAmount = parseInt(receivedRate * parseFloat(settings.minAmount || 0));\n let maxAmount = parseInt(receivedRate * parseFloat(settings.maxAmount || 0));\n let maxExchangeAmount = parseInt(receivedRate * parseFloat(settings.maxExchangeAmount || 0));\n\n if (initialAmount < minAmount || initialAmount > maxAmount) {\n this.setState({\n isValid: false,\n hasValidCoupon: false,\n countryError: { hasErrors: true, value: \"amount_from\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n return;\n }\n\n if (!this.state.couponRedeemed) {\n let plus = 0;\n\n if (settings.discountType == \"A\") {\n plus = parseInt(receivedRate * parseFloat(settings.amount));\n } else if (settings.discountType == \"P\") {\n plus = Math.trunc(this.state.receivedValue * parseFloat(settings.amount)).toFixed(2);\n }\n\n if (maxExchangeAmount && (parseFloat(plus) > parseFloat(maxExchangeAmount))) {\n plus = parseFloat(maxExchangeAmount);\n }\n\n const newAmount = initialAmount + parseFloat(plus);\n\n this.setState({\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: newAmount,\n couponRedeemed: true,\n plus,\n });\n }\n }\n\n removeCoupon = async () => {\n let initialAmount = parseFloat(this.state.receivedValue || 0);\n let plusAmount = parseFloat(this.state.plus || 0);\n\n this.setState({\n couponValue: \"\",\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: initialAmount - plusAmount,\n couponRedeemed: false,\n plus: 0,\n });\n }\n\n handleSubmitForm = async () => {\n this.handleIsLoading(true);\n\n let validAmount = this.validateAmount(this.state.sendValue, \"from\");\n let validAmountTo = this.validateAmount(this.state.receivedValue, \"to\");\n let validForm = true;\n\n if (!validAmount || !validAmountTo) {\n this.setState({ hasError: true });\n this.setState({ isValid: false });\n validForm = false;\n } else {\n this.setState({ hasError: false });\n this.setState({ isValid: true });\n validForm = true;\n }\n\n if (validForm) {\n if (this.state.couponValue.length > 0) {\n this.addCoupon();\n }\n else if (this.state.couponValue.length == 0 && this.state.couponRedeemed) {\n this.setState({\n isValid: true,\n hasValidCoupon: true,\n countryError: { hasErrors: false, value: \"\" },\n receivedValue: this.state.receivedValue - this.state.plus,\n couponRedeemed: false,\n plus: 0,\n });\n }\n\n //if (db) db.clearPersistence();\n const firebase = await loadFirebaseDB(this.state.testMode,this.state.config);\n const db = firebase.firestore();\n\n if (this.state.couponRedeemed && this.state.couponValue != \"\") {\n try {\n const userFS = await db\n .collection(\"transactions\")\n .doc(this.state.storeId)\n .update({\n coupon: this.state.couponValue,\n promo: +this.state.plus,\n });\n } catch (e) {\n this.setState({ hasError: true });\n }\n }\n\n if (this.state.paymentMethods && this.state.paymentMethods.length) {\n try {\n let transactionFS = await db\n .collection(\"transactions\")\n .doc(this.state.storeId)\n .get();\n\n if (transactionFS.exists) {\n let transactionData = transactionFS.data();\n let toReplace = {\n ...transactionData.to,\n paymentMethods: this.state.paymentMethods,\n };\n\n await db\n .collection(\"transactions\")\n .doc(this.state.storeId)\n .update({ to: toReplace });\n }\n } catch (e) {\n this.setState({ hasError: true });\n }\n }\n window.location.replace(`${this.props.startUrl.replace(/\\/+$/, \"\")}/${this.state.storeId}`);\n }\n };\n\n openChat = (message) => {\n // tidioChatApi.open();\n // tidioChatApi.messageFromVisitor(message);\n };\n\n validateAmount = (value, origin) => {\n let valid = true;\n\n if (origin == \"from\") {\n valid = !(\n value < this.state.minFromValue || value > this.state.maxFromValue\n );\n } else if (origin == \"to\") {\n valid = !(value < this.state.minToValue || value > this.state.maxToValue);\n }\n\n return valid;\n };\n\n validateEmail = (email) => {\n let valid = true;\n\n if (\n !/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(\n email\n )\n ) {\n valid = false;\n }\n\n return valid;\n };\n\n validateCoupon = async (cupon) => {\n const url = `${this.ENDPOINTS.OPERATIONS.validateCoupon}/${cupon}`\n\n try {\n const response = await axios.get(\n url,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('GET', url, null,this.state.reference,this.state.secretKey) \n },\n } \n );\n return response;\n } catch {\n this.handleIsLoading(false);\n }\n };\n\n changeBank = async ({ target }) => {\n\n if (!target.value) return;\n\n const selected = this.state.paymentMethods.find(\n (payment) => payment.id == target.value\n );\n\n let newOrder = this.state.paymentMethods.map((payment) => {\n if (payment.name == selected.name) payment.isActive = true;\n else payment.isActive = false;\n return payment;\n });\n\n this.setState({ isUsdt: selected.id === 'trc20' });\n\n if (selected.isWallet) {\n await this.setState({\n receivedValue: selected.amountCrypto,\n paymentMethods: this.arraymove(newOrder),\n }, () => {\n this.showExchangeRate(selected.amountCrypto)\n });\n\n this.updateLimits();\n\n return;\n }\n\n await this.setState({\n receivedValue: selected.amount,\n paymentMethods: this.arraymove(newOrder),\n }, () => {\n this.showExchangeRate(selected.amount);\n });\n\n this.updateLimits();\n };\n\n arraymove = (array) => {\n var newArray = array.slice();\n newArray.sort(function (a) {\n return !a.isActive ? 1 : -1;\n }); // put in first\n return newArray;\n };\n\n handleOnChangeFromCountry = ({ target }, option) => {\n this.setState({ isUsdt: false });\n if (option) {\n this.handleFromCountryValue(option.code);\n this.handleFromCurrencyValue(option.currency);\n\n if (\n option.code == this.state.toCountryValue ||\n !this.state.calculator[option.code].countryTo[this.state.toCountryValue]\n .active\n ) {\n this.handleToCountryValue(\"\");\n this.handleToCurrencyValue(\"\");\n }\n } else {\n this.handleFromCountryValue(null);\n this.handleFromCurrencyValue(null);\n }\n };\n\n handleOnChangeToCountry = ({ target }, option) => {\n this.setState({ isUsdt: false });\n if (option) {\n this.handleToCountryValue(option.code);\n this.handleToCurrencyValue(option.currency);\n } else {\n this.handleToCountryValue(null);\n this.handleToCurrencyValue(null);\n }\n };\n\n filterOptions = (options, { inputValue }) =>\n matchSorter(options, inputValue, { keys: [\"label\", \"currency\"] });\n\n render() {\n\n const classes = {\n root: {\n fontFamily: \"Poppins\",\n padding: \"26px 21px 0 21px\",\n maxWidth: 400,\n flexGrow: 1,\n borderRadius: \"24px\",\n borderWidth: \"1px\",\n backgroundColor: \"#FFFFFF\",\n boxShadow: \"0px 4px 7px rgba(61, 71, 86, 0.52)\"\n },\n labelAmount: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputAmount: {\n background: \"#C7CDD7\",\n borderRadius: \"2px\"\n },\n inputAmountText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 600,\n fontSize: \"20px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n labelCoupon: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"15px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputCoupon: {\n background: \"#A1ACBD\",\n borderRadius: \"2px\"\n },\n inputCouponText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"18px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n buttonStart: {\n background: \"#008AFF\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n buttonStartDisabled: {\n background: \"#C0C0C0\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n textButtonStart: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\"\n },\n buttonRemoveCoupon: {\n background: \"#000F37\",\n //borderRadius: \"8px\",\n maxWidth: \"70%\",\n minWidth: \"70%\"\n },\n textRemoveCoupon: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 300,\n fontSize: \"15px\",\n lineHeight: \"24px\",\n color: \"#F4F4F4\"\n },\n labelUpdateTC: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"16px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n textTimeTC: {\n fontWeight: \"bold\",\n textAlign: \"center\"\n },\n divider: {\n height: 28,\n margin: 4\n },\n rootFlags: {\n fontFamily: \"Poppins\",\n padding: \"5px 5px\",\n minWidth: 100,\n //maxWidth: 150,\n borderWidth: \"0px\",\n },\n };\n\n const { locale, pathname, locales } = this.props;\n const content = locale === \"es\" ? es : en;\n let {\n sendValue,\n receivedValue,\n couponValue,\n fromCountryValue,\n fromCurrencyValue,\n toCountryValue,\n toCurrencyValue,\n email,\n isValid,\n showCallToAction,\n minFromValue,\n maxFromValue,\n minToValue,\n maxToValue,\n plus,\n calculator,\n loadingTo,\n loadingFrom,\n banks,\n taxSender,\n taxReceiver,\n recalculate,\n paymentMethods,\n isLoading,\n hasValidCoupon,\n traundFee,\n paypalFee,\n networkFee,\n totalFees,\n convertValueCrypto,\n convertValue,\n exchangeRate,\n onlySimulation,\n } = this.state;\n\n let startDisabled = loadingFrom || loadingTo || isLoading || !hasValidCoupon;\n\n // if (sendValue > 0) {\n // sendValue = sendValue % 1 == 0 ? Number(sendValue).toFixed(0) : Number(sendValue).toFixed(2);\n // }\n\n // if (receivedValue > 0) {\n // receivedValue = receivedValue % 1 == 0 ? Number(receivedValue).toFixed(0) : Number(receivedValue).toFixed(2);\n // }\n\n if (traundFee != null && traundFee > 0) {\n traundFee = traundFee % 1 == 0 ? Number(traundFee).toFixed(0) : Number(traundFee).toFixed(2);\n }\n\n if (paypalFee != null && paypalFee > 0) {\n paypalFee = paypalFee % 1 == 0 ? Number(paypalFee).toFixed(0) : Number(paypalFee).toFixed(2);\n }\n\n if (networkFee != null && networkFee > 0) {\n networkFee = networkFee % 1 == 0 ? Number(networkFee).toFixed(0) : Number(networkFee).toFixed(2);\n }\n\n if (totalFees != null && totalFees > 0) {\n totalFees = totalFees % 1 == 0 ? Number(totalFees).toFixed(0) : Number(totalFees).toFixed(2);\n }\n\n if (convertValueCrypto != null && convertValueCrypto > 0) {\n convertValueCrypto = convertValueCrypto % 1 == 0 ? Number(convertValueCrypto).toFixed(0) : Number(convertValueCrypto).toFixed(2);\n }\n\n if (convertValue != null && convertValue > 0) {\n convertValue = convertValue % 1 == 0 ? Number(convertValue).toFixed(0) : Number(convertValue).toFixed(2);\n }\n\n if (exchangeRate != null && exchangeRate > 0) {\n exchangeRate = exchangeRate % 1 == 0 ? Number(exchangeRate).toFixed(0) : Number(exchangeRate).toFixed(2);\n }\n\n return (\n <Fragment>\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@400&display=swap\"\n rel=\"stylesheet\"\n />\n <Paper style={classes.root}>\n <Grid container direction=\"column\" spacing={0}>\n <Grid item container direction=\"column\" spacing={0}>\n <Grid item>\n <Typography\n style={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.landing.send_content}\n </Typography>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={8} md={9}>\n <Paper style={classes.inputAmount}>\n <InputBase\n id=\"send\"\n style={classes.inputAmountText}\n required\n value={sendValue}\n type=\"number\"\n disabled={loadingFrom || loadingTo}\n startAdornment={\n <InputAdornment\n position=\"start\"\n style={{ marginTop: \"0px\" }}\n >\n <span> {loadingFrom && <CircularProgress size={18} />} </span>\n </InputAdornment>\n }\n inputprops={{\n inputProps: { min: minFromValue, max: maxFromValue },\n }}\n onChange={this.handleSend}\n />\n </Paper>\n </Grid>\n <Grid item xs={4} md={3}>\n <Autocomplete\n disabled={loadingTo || loadingFrom}\n options={countries.filter((country) => {\n if (\n calculator &&\n calculator[country.code] &&\n calculator[country.code].active\n )\n return country;\n })}\n // classes={{\n // option: classes.option,\n // }}\n style={{\n fontSize: 14,\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n }}\n filterOptions={this.filterOptions}\n value={\n countries.filter(\n (country) => country.code == fromCountryValue\n )[0]\n }\n autoHighlight\n getOptionLabel={(option) =>\n `${option.currency}`\n }\n renderOption={(option) => (\n <Fragment>\n <span style={{ marginRight: \"5px\" }}>\n <FlagsHelpers code={option.code == \"PE-USD\" ? \"PE\" : option.code} />\n </span>\n {\" \"}\n {option.currency}\n </Fragment>\n )}\n disableClearable\n renderInput={(params) => (\n <Paper variant=\"outlined\" style={classes.rootFlags} >\n <TextField\n style={{ fontSize: \"15px\" }}\n {...params}\n variant=\"standard\"\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <FlagsHelpers\n code={this.state.fromCountryValue == \"PE-USD\" ?\n \"PE\" :\n this.state.fromCountryValue\n }>\n </FlagsHelpers>\n ),\n disableUnderline: true,\n }}\n />\n </Paper>\n )}\n onChange={this.handleOnChangeFromCountry}\n />\n </Grid>\n </Grid>\n <Grid item xs={12} container>\n {!isLoading && !loadingFrom && !loadingTo && (\n <FormHelperText style={{ color: \"red\" }}>\n {(sendValue < minFromValue &&\n content.landing.min_value.replace(\n \"minValue\",\n minFromValue\n )) ||\n (sendValue > maxFromValue &&\n content.landing.max_value.replace(\n \"maxValue\",\n maxFromValue\n ))}\n </FormHelperText>\n )}\n </Grid>\n </Grid>\n {(!isLoading && !loadingFrom && !loadingTo) &&\n <Grid item xs={12} container direction=\"column\">\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {traundFee}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.comision}\n </Typography>\n </Grid>\n </Grid>\n {this.state.isCountryFromPayPal &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {paypalFee}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.paypal_fee}\n </Typography>\n </Grid>\n </Grid>\n }\n {this.state.isUsdt &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {networkFee}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.tron_network_fee}\n </Typography>\n </Grid>\n </Grid>\n }\n <Grid item xs={10}>\n <Divider style={{ margin: 4 }}></Divider>\n </Grid>\n {taxSender > 0 &&\n <>\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {taxSender}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"subtitle2\" color=\"textPrimary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {fromCurrencyValue == \"COP\" ? content?.calculator.tax_co : content?.calculator.tax_pe}\n </Typography>\n </Grid>\n </Grid>\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n =\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {this.state.isUsdt ? convertValueCrypto : (+convertValue).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {this.state.isUsdt ? 'USD' : fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs>\n <Typography variant=\"subtitle2\" color=\"textPrimary\" style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }} >{content.calculator.receiver}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.we_receive}\n </Typography>\n </Grid>\n </Grid>\n </>\n }\n {this.state.showTotalFees &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {totalFees}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {fromCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.total_fees}\n </Typography>\n </Grid>\n </Grid>\n }\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {this.state.exchangeRateLabel}\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {exchangeRate}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {this.state.isUsdt ? 'USDT' : toCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.exchange_rate}\n </Typography>\n </Grid>\n </Grid>\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n =\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {this.state.isUsdt ? convertValueCrypto : (+receivedValue + taxReceiver).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {this.state.isUsdt ? 'USD' : toCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content.calculator.converted_amount}\n </Typography>\n </Grid>\n </Grid>\n \n {taxReceiver > 0 &&\n <Grid item xs={12} container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item xs={3} md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {(+taxReceiver).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {toCurrencyValue}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {toCurrencyValue == \"COP\" ? content?.calculator.tax_co : content?.calculator.tax_pe}\n </Typography>\n </Grid>\n </Grid>\n }\n </Grid>\n }\n <br></br>\n <Grid item container direction=\"column\" spacing={0} style={{marginTop: \"20px\"}}>\n <Grid item>\n <Typography\n style={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.landing.receiver_content}\n </Typography>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={8} md={9}>\n <Paper style={classes.inputAmount}>\n <InputBase\n id=\"receiver\"\n style={classes.inputAmountText}\n type=\"number\"\n required\n value={receivedValue}\n disabled={true}\n startAdornment={\n <InputAdornment\n position=\"start\"\n style={{ marginTop: \"0px\" }}\n >\n <span> {loadingTo && <CircularProgress size={18} />} </span>\n </InputAdornment>\n }\n endAdornment={\n <InputAdornment\n position=\"end\"\n >\n <span style={{\n fontSize: \"10px\",\n fontWeight: \"500\",\n paddingTop: \"15px\",\n paddingRight: \"5px\"\n }}>\n {\n (toCountryValue == \"AR\" &&\n paymentMethods.length &&\n paymentMethods[0].isWallet &&\n !loadingTo &&\n !loadingFrom) ? `(${paymentMethods[0].amount} ARS)` : ''\n }\n </span>\n </InputAdornment>\n }\n inputprops={{\n inputProps: { min: minFromValue, max: maxFromValue }\n }}\n onChange={this.handleReceived}\n />\n </Paper>\n </Grid>\n <Grid item xs={4} md={3}>\n <Autocomplete\n disabled={loadingTo || loadingFrom}\n options={countries.filter((country) => {\n if (\n calculator &&\n calculator[fromCountryValue] &&\n calculator[fromCountryValue].active &&\n calculator[fromCountryValue].countryTo[\n country.code\n ] &&\n calculator[fromCountryValue].countryTo[country.code]\n .active\n ) {\n return country;\n }\n })}\n // classes={{\n // option: classes.option,\n // }}\n style={{\n fontSize: 14,\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n }}\n filterOptions={this.filterOptions}\n disableClearable\n value={\n countries.filter(\n (country) => country.code == toCountryValue\n )[0]\n }\n autoHighlight\n getOptionLabel={(option) =>\n `${option.currency}`\n }\n renderOption={(option) => (\n <Fragment>\n <span style={{ marginRight: \"5px\" }}>\n <FlagsHelpers code={option.code == \"PE-USD\" ? \"PE\" : option.code} />\n </span>\n {option.currency}\n </Fragment>\n )}\n renderInput={(params) => (\n <Paper variant=\"outlined\" style={classes.rootFlags} >\n <TextField\n {...params}\n variant=\"standard\"\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <FlagsHelpers\n code={this.state.toCountryValue == \"PE-USD\" ?\n \"PE\" : this.state.toCountryValue\n }>\n </FlagsHelpers>\n ),\n disableUnderline: true,\n }}\n />\n </Paper>\n )}\n onChange={this.handleOnChangeToCountry}\n />\n </Grid>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={12}>\n {!isLoading && !loadingFrom && !loadingTo && (\n <FormHelperText style={{ color: \"red\" }}>\n {(receivedValue < minToValue &&\n content.landing.min_value.replace(\n \"minValue\",\n minToValue\n )) ||\n (receivedValue > maxToValue &&\n content.landing.max_value.replace(\n \"maxValue\",\n maxToValue\n ))}\n </FormHelperText>\n )}\n </Grid>\n </Grid>\n {(toCountryValue == \"VE\" || toCountryValue == \"AR\") &&\n paymentMethods &&\n !loadingTo &&\n !loadingFrom && (\n <Grid item xs={12} >\n <NativeSelect\n id=\"demo-customized-select-native\"\n value=\"Banks\"\n onChange={this.changeBank}\n >\n {paymentMethods &&\n paymentMethods.map((payment, index) => {\n if (payment.id == \"trc20\") {\n return <option key={payment.name + index} value={payment.id}>\n Tron TRC20 ({payment.currency})\n </option>\n }\n return <option key={payment.name + index} value={payment.id}>\n {payment.label} {/* ({payment.currency}) */}\n </option>\n })}\n </NativeSelect>\n </Grid>\n )\n }\n </Grid>\n <br></br>\n {!onlySimulation &&\n <>\n <Grid item container direction=\"column\" spacing={0}>\n {this.state.hasValidCoupon && (plus != null && plus != 'undefined' && plus != 0) &&\n <Grid item>\n <p\n style={{\n textAlign: \"center\",\n //marginTop: \"0px\"\n }}\n >\n {content.calculator.plus\n .replace(\"amount\", plus)\n .replace(\"currency\", this.state.isUsdt ? 'USDT' : toCurrencyValue)}\n </p>\n </Grid>\n }\n <Grid item style={{marginTop: \"15px\"}}>\n <Typography\n style={classes.labelCoupon}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.landing.coupon_content}\n </Typography>\n </Grid>\n <Grid item xs={12} container>\n <Grid item xs={5}>\n <Paper style={classes.inputCoupon}>\n <InputBase\n style={classes.inputCouponText}\n value={couponValue}\n disabled={loadingFrom || loadingTo}\n type=\"text\"\n onChange={this.handleCoupon}\n />\n </Paper>\n </Grid>\n\n {this.state.hasValidCoupon && (plus != null && plus != 'undefined' && plus != 0) &&\n <Grid item xs={2} style={{ paddingLeft: \"3px\" }}>\n <Tooltip title={content.calculator.remove_coupon}>\n <Button\n style={classes.buttonRemoveCoupon}\n onClick={this.removeCoupon}\n >\n <HighlightOffOutlinedIcon\n style={{ color: \"white\" }} />\n </Button>\n </Tooltip>\n\n </Grid>\n }\n </Grid>\n {!this.state.hasValidCoupon && (\n <Grid item xs={12}>\n <Typography\n style={{\n color: \"red\",\n textAlign: \"center\",\n maxWidth: \"100%\",\n paddingTop: \"10px\"\n }}\n >\n {\n this.state.countryError.hasErrors ?\n <>\n {this.state.countryError.value == \"from\" ? content.calculator.invalid_coupon_country_from : \"\"}\n {this.state.countryError.value == \"to\" ? content.calculator.invalid_coupon_country_to : \"\"}\n {this.state.countryError.value == \"amount_from\" ? content.calculator.invalid_coupon_amount_from : \"\"}\n {this.state.countryError.value == \"\" ? content.calculator.invalid_coupon_message : \"\"}\n </>\n : \"\"\n }\n </Typography>\n\n </Grid>\n )}\n </Grid>\n <br></br>\n <Grid item xs={12} style={{marginTop:\"20px\", marginBottom:\"10px\"}}>\n <Button\n style={startDisabled ? classes.buttonStartDisabled : classes.buttonStart}\n variant=\"contained\"\n disabled={startDisabled}\n onClick={this.handleSubmitForm}\n >\n <Typography style={classes.textButtonStart}>\n {content.landing.button_start}\n </Typography>\n </Button>\n </Grid>\n <br></br>\n </>\n }\n {recalculate &&\n <Grid item xs={12}>\n <Typography\n style={classes.labelUpdateTC}\n >\n <Timer locale={locale} />\n </Typography>\n\n </Grid>\n }\n {this.state.hasError && (\n <Grid item xs={12}>\n <Typography\n style={{\n color: \"red\",\n textAlign: \"center\",\n maxWidth: \"100%\",\n paddingTop: \"10px\"\n }}\n >\n {content.error_general}\n </Typography>\n\n </Grid>\n )}\n <Grid item xs={12} style={{marginTop:\"45px\"}}>\n <Divider ></Divider>\n </Grid>\n <Grid item xs={12} container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\"}} >\n <Typography\n variant=\"subtitle1\"\n\n >\n <span style={{fontSize: \"10px\", textAlign: \"center\" }} >Powered by </span>\n <span style={{ fontWeight: \"bold\", textAlign: \"center\",fontSize: \"12px\", }}>Orquezta</span>\n </Typography>\n </Grid>\n </Grid>\n </Paper >\n </Fragment >\n );\n }\n}\n\nexport default Calculator;","export default {\n common: {\n sender: {\n transfer_action: \"You send\",\n wallet_action: \"You send\",\n collect_action: \"Request amount\",\n },\n receiver: {\n transfer_action: \"Receiver gets\",\n transfer_average_time: \"On average, the transaction should be completed no later than:\",\n collect_action: \"You receive\",\n collect_average_time: \"Once the payment has been received, it will take a maximum of 12 working hours for you to receive the money.\",\n wallet_action: \"Will be added to your wallet\",\n wallet_average_time: \"On average, the transaction should be completed no later than:\",\n },\n max_value: \"Maximum amount maxValue\",\n min_value: \"Minimum amount minValue\",\n },\n simulator: {\n header_accion: \"What do you want to do?\",\n header_chips: {\n option_send: \"Send\",\n option_receive: \"Receive\"\n },\n footer_action_button: \"Start now\"\n },\n landing: {\n send_content: \"You send\",\n receiver_content: \"Receiver gets\",\n max_value: \"Maximum amount maxValue\",\n min_value: \"Minimum amount minValue\",\n coupon_content: \"Coupon\",\n button_start: \"Start transfer\",\n from: \"From\",\n to: \"To\",\n email: \"Email\",\n invalid: \"The coupon is invalid\",\n fillEmail: \"Must fill the field\",\n calculating: \"Calculating\",\n title_first_part: \"The smart way to\",\n title_words: [\"SEND\", \"RECEIVE\", \"CHARGE\", \"PAY\"],\n title_second_part: \"money.\\nFast, safe and almost no cost.\",\n sign_up_now: \"SING UP NOW \",\n transfer_now: \"TRANSFER NOW\",\n about_us: {\n title: \"Thanks to our sharing economy\",\n description: [\n \"We find the best route for your money, connecting you with cryptocurrency buyers and sellers (Traunders). Both in the origin and destination country.\",\n \"So you can Send, Receive, Pay and Charge throughout Latin America at the cost of a local transfer.\",\n \"Become part of the Traund community and enjoy the benefits of having no borders for your money.\",\n ],\n },\n faqs: {\n title: \"Frequently Asked Questions\",\n questions: [\n \"How are transfers made?\",\n \"How much does it cost a transfer?\",\n \"Is it safe to use Traund?\",\n \"What is a Traunder?\",\n \"How long do transfers take?\",\n \"What are the limits for transfers?\",\n \"Can I send to a country that is not on the list?\",\n ],\n answers: [\n \"Transfers are made based on the concept of the sharing economy.Our algorithm searches the best way to route your money using various methods such as cryptocurrency networks, related transactions, among others. When you make the deposit, you do it to a bank account of a person or company (not a Traund bank account).\\nTraund never has access to the money; However, We ensure 100% of it!\",\n \"Traund does not charge commissions.However, there is a Traund network fee, which is variable.\\nBut don't worry, all costs are included in the calculation. What you see is what will be sent to the target country!\",\n \"YES, Traund is never in contact with your money (You transfer the intended amount directly to your Traunder and vice versa to the intended recipient). Each transaction is backed by a security deposit which equals the amount sent. We guarantee your money is 100% secured.\\nSo far, we have sent over 70,000.00 USD without losing a single penny!\",\n \"A Traunder is a person or company that will help you make your transfer. For each transaction, there are 2 Traunders (one in origin and one in the target country). Traunders are mainly cryptocurrency sellers and buyers (traders). They can also be people who need to send money cross-border and other money transfer companies.\\nWe are always looking for the best way to send your money!\",\n \"Transfers have a time limit of 12hrs. But so far, on average, the money is received within 4hrs or less.\",\n \"The limits vary from a minimum amount of 20 USD to a maximum amount of 5000 USD (or equivalent in the selected currency). In addition, you can only send up to 5000 USD each month.\",\n \"We are always ready to help you. Send us a message to our customer service chat with the following information:\\n - Country of origin.\\n - Destination country.\\n - Amount to be sent.\",\n ],\n },\n },\n start_form: {\n title_form: \"Welcome to Traund\",\n subtitle_form: \"Type your email address to begin\",\n start: \"Start\",\n sign_in: \"Sign In\",\n },\n sender_form: {\n title_form: \"Sender Info\",\n create_user: \"I Accept create a user with current data\",\n message_password_only_alphanumeric:\n \"Invalid password. Only alphanumerics characters are allowed\",\n create_password: \"Create your password\",\n },\n receiver_form: {\n title_form: \"Recipient Info\",\n bank_account: \"Account\",\n bank_account_global: \"CCI number\",\n bank_info_title: \"Payment Method\",\n bank_account_global_mx: \"Clabe Account Number\",\n warning_payment_limit_time:\n \"*In the next step you will have 25 minutes to make the payment. At the end of this time, your transfer will be cancelled and you will have to start a new one.\",\n },\n agent_view: {\n upload_voucher_title: \"Upload a screenshot of your voucher payment\",\n upload_file_voucher: \"Upload File\",\n change_file_voucher: \"Change File\",\n agent: \"Traunder\",\n timer_title: \"Limit Time\",\n confirm_transfer_button: \"Yes, Transferred\",\n time_left: \"Time remaining to complete the deposit\",\n upload_file_description: \"Select a file\",\n description: \"Transfer amount currency to one of the following options:\",\n ask_for_information: \"Ask for Bank Information\",\n update_status_transaction_description:\n \"Payment registered. Pending verification\",\n },\n payment_view: {\n button_vocher: \"View Voucher\",\n button_confirm: \"Confirm Transaction\",\n processing_payment_title:\n \"We are currently processing your payment, it may take up to 5 hours...\",\n processing_payment_description:\n \"We will send you an email when it is complete\",\n },\n confirm_view: {\n confirm_title: \"Successful Transaction\",\n confirm_message:\n \"We have sent you a notification. Thanks for transfer using Traund\",\n },\n stepper: {\n one: \"Sender\",\n two: \"Recipient\",\n three: \"Payment\",\n four: \"Confirmation\",\n five: \"Confirmation\",\n },\n resume: {\n title: \"Order Details\",\n title_sender: \"Your Information\",\n title_receiver: \"Recipient's Information\",\n title_bank: \"Payment Method\",\n amount_sent: \"Amount to Send\",\n amount_received: \"Amount to Receive\",\n phone: \"phone\",\n names: \"Name\",\n email: \"Email\",\n countryOrigin: \"Origin Country\",\n currencyOrigin: \"Origin Currency\",\n countryTo: \"Country\",\n currencyTo: \"Currency\",\n bankName: \"Payment Method\",\n bankNumber: \"Account Number\",\n bankGlobalNumber: \"Global Account Number\",\n promoApplied: \"Added\",\n coupon: \"Coupon\",\n },\n wallet: {\n wallet_title: \"Wallet Information\",\n amount: \"Amount\",\n available_amount: \"Available Amount\",\n balance_amount: \"Balance Amount\",\n transactions: \"Transactions\",\n withdraw: \"Withdraw\",\n withdrawals: \"Withdrawals\",\n deposits: \"Deposits\",\n date: \"Date\",\n status: \"Status\",\n wallet_not_found: \"Wallet not found!\",\n create_wallet: \"Create Wallet\",\n withdraw_message: `I want to withdraw the amount {0} USDT from my wallet to {1}({2})`,\n please_choose_a_value: \"Please choose a value\",\n wallet_not_found_description:\n \"You need to create a wallet so you can enjoy its benefits.\",\n wallet: \"Wallet\",\n },\n event_register: {\n register: \"Register\",\n title: \"Enter your information\",\n description: \"Sign up and get a $3 dollar coupon on your first transfer.\",\n confirm_message:\n \"You are now ready to make your first transaction, we have sent you an email with the details\",\n email_message: \"We have sent you a message to your email.\",\n referral_code: \"I have an ambassador code\",\n submit_code: \"Submit Code\",\n },\n complete_register_form: {\n title_form: \"Complete Your Register\",\n subtitle_form: \"Enter a password for your account\",\n send_password: \"Confirm\",\n confirm_message: \"Thanks for confirm your register in Traund.com.\",\n email_message: \"We have sent you a message to your email.\",\n },\n password_reset_form: {\n title_form: \"Change Your Password\",\n subtitle_form: \"Enter your new password\",\n send_password: \"Confirm\",\n confirm_message: \"Thanks for confirm your register in Traund.com.\",\n email_message: \"We have sent you a message to your email.\",\n },\n password_change_form: {\n title_form: \"Change Your Password\",\n },\n password_recover_form: {\n title_form: \"Recover your password\",\n subtitle_form:\n \"Enter an email. Will send you instructions to recover your password\",\n confirm_message: \"We have sent you a message to your email.\",\n },\n call_to_action: {\n first: \"Sign Up and the first transaction is on us.\",\n second: \" Your first transaction for free,\",\n third: \"Sign Up Here\",\n },\n email: \"Email address\",\n firstname: \"First Name\",\n lastname: \"Last Name\",\n cellphone: \"Mobile Number\",\n country: \"Country\",\n bank: \"Payment Method\",\n next_step: \"Next Step\",\n back_step: \"Back\",\n confirm: \"Confirm\",\n account_id: \"Payment Method Account\",\n business_info: \"Business Info\",\n business_country: \"Business Country\",\n business_name: \"Business Name\",\n business_tax_code: \"Business Tax Code\",\n business_available_countries: \"Countries in which it works\",\n bank_info: \"Método de Pago\",\n bank_name: \"Payment Method Name\",\n bank_account_number: \"Bank Account Number\",\n bank_account_number_optional: \"Bank Account Number (Optional)\",\n identification_type: \"Identification Type\",\n identification_number: \"Identification Number\",\n email_validation_message: \"Insert an email address\",\n email_correct_validation_message: \"Insert a valid email address\",\n firstname_validation_message: \"First Name is required\",\n lastname_validation_message: \"Last Name is required\",\n cellphone_validation_message: \"Mobile number is required\",\n country_validation_message: \"Select country\",\n bankname_validation_message: \"Insert a valid bank name\",\n banknumber_validation_message: \"Insert a valid bank number\",\n bankroutenumber_validation_message: \"Insert a valid bank number\",\n password_validation_message: \"Password is required\",\n confirmation_password_validation_message: \"Confirmation password is required\",\n password: \"Insert your password\",\n repeatPassword: \"Repeat your password\",\n security_information: \"Security Information\",\n minutes: \"minutes\",\n referralCode: \"Referral Code\",\n warning_no_bank_info:\n \"This feature is available after fill business information in profile section\",\n transaction_no_valid: \"We could not find your transaction\",\n transaction_no_valid_description:\n \"This is because the link has expired or is incorrect.\\n Please create a new transaction.\",\n error_general: \"Something went wrong. Please, try again.\",\n error_password_match: \"Passwords does not match.\",\n type_account: \"Type Account\",\n edit_profile_business_info: \"Edit Information\",\n payment_method_not_found: \"Payment Method not found\",\n payment_method: \"Payment Method\",\n transaction_reject_message:\n \"The transaction was rejected by the user for not making the deposit.\",\n zelle: {\n bank_account_title: \"User Type\",\n bank_email: \"Zelle Email Address\",\n bank_phone: \"Zelle Phone Number\",\n bank_address_title: \"Correo electrónico/Número telefónico\",\n },\n tron: {\n bank_address: \"TRON(TRC20)\",\n bank_tron_address: \"TRON(TRC20) wallet Address\",\n bank_address_error: \"\",\n tron_error_required: \"Tron address is required\",\n tron_wallet_address_error: \"Not valid TRON(TRC20) wallet address\",\n },\n oggo: {\n bank_address: \"Oggo User\",\n btc_address: \"Wallet Address BTC\",\n btc_wallet_address_error: \"Not valid BTC wallet address\",\n },\n uala: {\n alias: \"Alias\",\n cuitcuil: \"CUIT/CUIL\",\n cvu: \"CVU\",\n },\n mercadolibre: {\n dni: \"DNI\",\n alias: \"Alias\",\n },\n select_country_message: \"Select country\",\n tooltip: {\n bank_name: \"Bank Name whereas the recipient receives money\",\n bank_global_account:\n \"The account number provided by your bank for transactions to different banks\",\n bank_account: \"The account number provided by your bank\",\n },\n calculator: {\n // success_message: \"Pick a form and we will contact you in a few seconds\",\n invalid_coupon_message:\n \"The coupon entered is not valid. Register other coupon or clear the input to continue\",\n invalid_coupon_country_from:\n \"The coupon entered is not valid for this origin country \",\n invalid_coupon_country_to:\n \"The coupon entered is not valid for this target country\",\n invalid_coupon_amount_from:\n \"The entered coupon is not valid for the transferred amount.\",\n success_message:\n \"Choose an option to continue your transaction and we will contact you in a few minutes\",\n email: \"Send me a email\",\n chat: \"Let's chat on Facebook Messenger\",\n plus: \"You added amount currency thanks to your coupon\",\n recalculate_description: \"Exchange rate will be updated in \",\n comision: \"Traund Fee\",\n tax_pe: \"ITF\",\n tax_co: \"Tax (4x1000)\",\n receiver:\"We'll receive\",\n exchange_rate: \"Exchange Rate\",\n tron_network_fee: 'Network Fee',\n wallet_converted_amount: `We'll receive`,\n wallet_fee: 'Fee',\n paypal_fee: 'Paypal Fee',\n total_fees: 'Total fees',\n converted_amount: `We'll transfer`,\n converted_amount_receive: `We'll receive`,\n remove_coupon: \"Remove coupon\",\n converted_amount_network: \"Converted amount\",\n },\n transaction_status: {\n title: \"Transaction Status\",\n from: \"From\",\n to: \"To\",\n status_name: \"Status Name\",\n description: \"Description\",\n created_at: \"Created At\",\n currency: \"Currency\",\n sender: \"Sender\",\n recipient: \"Recipient\",\n refund: \"Refund\",\n release: \"Release payment\",\n },\n go_to_home: \"Home\",\n create_new_transaction: \"Create a new transaction\",\n transaction_error: \"We could not create your transaction\",\n contact_us_error_message: \"Please, contact us by support chat\",\n create_new_transaction_message: \"Or, create a new transaction\",\n go_to_chat: \"Go to chat\",\n login: {\n not_registered_user: \"The email address is incorrect\",\n forgot_password: \"Forgot your password?\",\n manually_set_data: \"Or fill the following form\",\n go_to_form: \"Go to the form\",\n go_to_login: \"Login\",\n already_registered: \"Already registered?\",\n register_description: \"Please, use your email to login\",\n back_to_form: \"Back to form\",\n dont_have_account: \"I do not have an account\",\n },\n business: {\n calculate: \"Calculate\",\n generate_link: \"Generate Payment Link\",\n generate_link_warranty: \"Generate Payment Link With Warranty\",\n link_warning:\n \"Link is valid for 12 hours.\\nAfter this time it will be deactivated and you will have to create a new one.\",\n you_will_get: \"It'll be deposited in your bank\",\n profile: \"Contact Info\",\n confirm_message: \"We have registered your request as Business successfully\",\n email_message: \"We will contact you via email\",\n title: \"PAYMENT Link for you and your business.\",\n subtitle: \"Turn your local business into a regional one\",\n description: \"Join our community and try our payment link.\\n0 COMMISSIONS.\",\n subtitle_description:\n \"Collect through the Traund network with 0 COMMISSIONS and a GREAT EXCHANGE RATE. No hidden fees. \\nYou will know how much you will receive when you generate your link.\",\n freelancers: \"Freelancers\",\n freelancers_description:\n \"Don't lose your hard-earned money in high commissions and low exchange rates. Receive it straight to your bank account in just a few hours with 0 COMMISSIONS.\\nYou can also create a payment link with ESCROW (secured deposit) and protect your earnings before starting any job. Avoid scams and WORK WITH PEACE OF MIND.\",\n ecommerce: \"Online Stores\",\n ecommerce_description:\n \"Receive fast payments from different countries in the region with 0 COMMISSIONS, expand your market and get more profit.\\nSecure your sales with ESCROW (secured deposit) payment links. Give your customers assurance they will receive quality products with SATISFACTION GUARANTEED.\",\n is_natural_person: \"Natural Person\",\n business_country: \"Business Country\",\n business_info: \"Business Info\",\n generate_link_again: \"Generate New Payment Link\",\n title_enrollment: \"Complete your register\",\n subtitle_enrollment: \"Enter contact business information\",\n },\n user: {\n title_enrollment: \"Complete your registration\",\n subtitle_enrollment: \"Enter contact information\",\n identification_type: \"Identification Type\",\n identification_number: \"Identification Number\",\n },\n errors: {\n \"TR-001-W\": \"User already registered.\",\n \"TR-003-W\": \"Wrong password\",\n \"TR-004-W\":\n \"You can only make ONE transfer at a time. You must complete your pending transfer.\",\n \"TR-005-E\": \"Coupon not valid or already redeemed.\",\n \"TR-006-E\": \"Rol invalid to create this transaction type.\",\n \"TR-010-E\": \"Incorrect or expired payment link.\",\n \"TR-011-E\": \"Transaction already processed\",\n \"CO-000-I\": \"Coupon not valid or already redeemed.\",\n \"ID-004-W\": \"Invalid username and/or password.\",\n \"ID-010-W\": \"User already registered.\",\n \"ID-001-W\": \"Email already registered\",\n },\n payment_form: {\n title_form: \"Payer Info\",\n },\n dashboard: {\n options: {\n payment_link: \"Create Payment Link\",\n payment_link_with_warranty: \"Create Payment Link with Warranty\",\n payment_list: \"Payment List\",\n payment_history: \"Payment History\",\n user_referral: \"User Referral\",\n profile: \"Contact Info\",\n wallet: \"Wallet\",\n transfers: \"Transfers\",\n },\n referral_code: {\n general_title: \"Referral Code\",\n title: \"Code\",\n statitics: \"Statitics\",\n generate_referral_code: \"Generate Referral Code\",\n no_referral_yet: \"Your referral code is not enabled\"\n },\n greeting_dashboard_title: \"Welcome to \",\n available_dashboard_title: \"Available Dashboard\",\n payment_warranty_wallet:\n \"You need a Traund wallet to pay using Payment Links with Warranty as Refunds are going to be deposited to your Wallet\",\n generate_warranty_wallet:\n \"You need a Traund wallet to create Payment Links with Warranty, because in case of a Refund, the amount is going to be deposited to your Wallet\",\n payment_warranty_info_account:\n \"You must have a Traund account to be able to pay with\",\n payment_warranty_links: \"Payment Links with Warranty\",\n logout: \"Log Out\",\n },\n countries: {\n MX: \"México\",\n PE: \"Perú\",\n US: \"United States\",\n VE: \"Venezuela\",\n CO: \"Colombia\",\n DO: \"Dominican Republic\",\n AR: \"Argentina\",\n CL: \"Chile\",\n EC: \"Ecuador\",\n BR: \"Brasil\",\n PY: \"Paraguay\",\n SV: \"El Salvador\",\n },\n header: {\n payments: \"Business & Freelancers\",\n freelance: \"Freelancers\",\n sign_up: \"Sign Up\",\n transfer: \"Send\",\n how_works: \"How works?\",\n faqs: \"FAQs\",\n remittances: \"Send\",\n womens_month: \"Women's Month\",\n },\n woman_month: {\n title: \"Women's Month Sweepstakes\",\n subtitle: \"Win a Platzi membership for one year\",\n description:\n \"TRAUND encourages more and more women to seek financial freedom, and one of the best ways to do it is to be a FREELANCER. That's why we are giving away: a ONE YEAR! membership to PLATZI. So you can continue to develop as a professional and stand out in your area.\",\n tc: \"see terms & conditions\",\n },\n banks: {\n bbva: 'Banco BBVA',\n bcp: 'Banco de crédito del Peru - BCP',\n scotiabank_peru: 'Scotiabank Perú',\n western_discount_bank: 'Banco Occidental de Descuento'\n },\n disclaimers: {\n send: \"This is an operation from our SEND service. \",\n sendDescription: \"Once you make the payment and submit your receipt, the transaction should be completed by: \",\n sendDisclaimer: \"*To transfer from {COUNTRY}, it's important for you to watch our tutorial video on the payment process.\",\n receive: \"This is an operation of our payment service. \",\n receiveBanks: \"*We receive payments through Bank Transfer.\",\n receiveZelle: \"*We receive payments via Zelle Bank Transfer.\",\n receiveDescription: \"A link will be generated, you must share it with the person who will make the payment. Once paid and verified, the maximum processing time is 12 business hours for you to receive the money in the payment method registered in Traund.\",\n receiveDisclaimer: \"*Para cobrar desde {COUNTRY}, es obligatorio que veas nuestro video tutorial y lo compartas con la persona que realizará el pago.\",\n wallet: \"This is an operation to add funds to your Traund Wallet.\",\n walletDescription: \"When you make the payment and register your receipt, the operation should be completed at the latest: \",\n walletDisclaimer: \"*This is the time taken by {PAYMENTMETHOD} to process the payment.\",\n walletDisclaimerACH: \"*This is the maximum time the bank can take to process the ACH transfer.\"\n }\n};\n","export default {\n common: {\n sender: {\n transfer_action: \"Tú envías\",\n wallet_action: \"Tú envías\",\n collect_action: \"Monto solicitado\",\n },\n receiver: {\n transfer_action: \"Destinatario recibe\",\n transfer_average_time: \"En promedio, la operación debería estar finalizada como máximo:\",\n collect_action: \"Recibes\",\n collect_average_time: \"Una vez que se reciba el pago, el tiempo máximo de atención es de 12 horas para que recibas tu dinero.\",\n wallet_action: \"Se añadirá a tu billetera\",\n wallet_average_time: \"En promedio, los fondos deberían estar disponibles como máximo el día:\",\n },\n max_value: \"Monto máximo maxValue\",\n min_value: \"Monto mínimo minValue\",\n },\n simulator: {\n header_accion: \"¿Qué quieres hacer?\",\n header_chips: {\n option_send: \"Enviar\",\n option_receive: \"Cobrar\"\n },\n footer_action_button: \"Empezar ahora\"\n },\n landing: {\n send_content: \"Tú envías\",\n receiver_content: \"Destinatario recibe\",\n max_value: \"Monto máximo maxValue\",\n min_value: \"Monto mínimo minValue\",\n button_start: \"Empezar transferencia\",\n coupon_content: \"Cupón\",\n from: \"Desde\",\n to: \"Hacia\",\n email: \"Ingresa tu correo\",\n coupon_invalid: \"El cupón no es valido\",\n fillEmail: \"Debe llenar el campo \",\n calculating: \"Calculando\",\n title_first_part: \"La manera inteligente de\",\n title_words: [\"ENVIAR\", \"RECIBIR\", \"COBRAR\", \"PAGAR\"],\n title_second_part: \" dinero.\\nRápido, seguro y casi sin costo.\",\n sign_up_now: \"REGISTRATE AHORA\",\n transfer_now: \"TRANSFIERE AHORA\",\n about_us: {\n title: \"Gracias a nuestra economía colaborativa\",\n description: [\n \"Encontramos la mejor ruta para tu dinero, conectandote con compradores y vendedores de criptomonedas (Traunders). Tanto en el país de origen como en el país de destino.\",\n \"Para que puedas Enviar, Recibir, Pagar y Cobrar en toda Latinoamerica a costo de una transferencia local.\",\n \"Se parte de la comunidad Traund y aprovecha las ventajas de no tener fronteras para tu dinero.\",\n ],\n },\n faqs: {\n title: \"Preguntas Frecuentes\",\n questions: [\n \"¿Cómo se realizan las transferencias?\",\n \"¿Cuánto cuesta hacer una transferencia?\",\n \"¿Es seguro usar Traund?\",\n \"¿Que es un Traunder?\",\n \"¿Cuánto tiempo demoran las transferencias?\",\n \"¿Cuáles son los limites para las transferencias?\",\n \"¿Puedo enviar a un país que no esta disponible?\",\n ],\n answers: [\n \"Las transferencias se realizan bajo el concepto de economía colaborativa, nuestro algoritmo busca el mejor medio para que puedas enviar tu dinero mediante una búsqueda entre redes de criptomonedas, coincidencias entre transferencias y otros medios. Es por ello que al realizar el deposito lo haces a una cuenta de una persona o empresa (no a una cuenta de Traund).\\nTraund nunca tiene acceso al dinero, sin embargo aseguramos el 100% del mismo.\",\n \"Traund no cobra comisiones. Sin embargo, existe una comisión de la red de Traunders, la cual es variable (es por eso que debes cotizar he inmediatamente iniciar las transferencias).\\n Pero no te preocupes que todos los costos están incluidos al hacer tu cotización.\\nLo que ves es lo que se entregará en el país de destino!\",\n \"Si. Traund nunca está en contacto con tu dinero (que es transferido por ti directo a tu Traunder y viceversa). Sin embargo, el dinero de todas las transferencias está asegurado por Traund al 100% del monto enviado, bajo un deposito de garantía que se realiza al momento que se inicia cada transferencia.\\nHasta ahora hemos enviado más de 70,000.00 USD ¡sin perder ni un solo centavo! \",\n \"Traunder es la persona o empresa que te ayudará a realizar tu transferencia. Por cada operación existen 2 Traunders (uno en el país de origen y otro en el de destino). Los Traunders mayormente son vendedores y compradores de criptomonedas (traders) pero también pueden ser otras personas que necesiten enviar dinero entre países, así como otras empresas de envío de dinero.\\nNosotros siempre estamos en la búsqueda de la mejor ruta para enviar tu dinero.\",\n \"Las transferencias tienen un limite de tiempo de 12hrs.\\nPero hasta ahora todas las que hemos realizado se han llevado acabo en 4hrs o menos.\",\n \"Los limites son variables pero por lo general van desde un monto mínimo de 20 USD y un monto máximo de 5000 USD (o su equivalente en la moneda seleccionada).\\nAdicional al mes podras hacer transferencias como máximo por un valor de 5000 USD (o equivalente).\",\n \"Nosotros siempre estamos dispuestos a ayudarte. Mandanos un mensaje al chat de atención al cliente con los siguientes datos:\\n - País de origen.\\n - País de destino\\n - Monto a enviar\",\n ],\n },\n },\n start_form: {\n title_form: \"Bienvenidos a Traund\",\n subtitle_form: \"Ingresa tu correo electrónico\",\n start: \"Empezar\",\n sign_in: \"Iniciar Sesión\",\n },\n sender_form: {\n title_form: \"¿Quién envía?\",\n create_user: \"Si, acepto crear un usuario\",\n message_password_only_alphanumeric:\n \"Contraseña no válida. Solo caracteres alfanumericos\",\n create_password: \"Crea tu contraseña\",\n },\n receiver_form: {\n title_form: \"Ingrese datos de quién recibe\",\n bank_account: \"Cuenta\",\n bank_account_global: \"Número de Cuenta Interbancaria\",\n bank_info_title: \"Método de Pago\",\n bank_account_global_mx: \"Número de clabe interbancaria\",\n warning_payment_limit_time:\n \"*En el próximo paso tendrás 25 minutos para realizar el pago. Al finalizar el tiempo, tu transferencia será cancelada y deberás empezar una nueva\",\n },\n agent_view: {\n upload_voucher_title:\n \"Sube una foto o pantallazo del comprobante de pago de la transferencia\",\n upload_file_voucher: \"Subir Comprobante\",\n change_file_voucher: \"Cambiar Comprobante\",\n agent: \"Traunder\",\n timer_title: \"Tiempo Limite\",\n confirm_transfer_button: \"Si, Transferí\",\n time_left: \"Tiempo restante para completar el deposito\",\n upload_file_description: \"Seleccione un archivo\",\n description:\n \"Transfiere desde la app de tu banco o realiza un deposito de amount currency a una de las siguientes opciones:\",\n ask_for_information: \"Pregunte por la información del banco\",\n update_status_transaction_description:\n \"Pago registrado, pendiente de verificación\",\n },\n payment_view: {\n button_vocher: \"Ver Comprobante\",\n button_confirm: \"Confirmar transacción\",\n processing_payment_title:\n \"Estamos procesando tu pago, puede tomar hasta 4 horas...\",\n processing_payment_description:\n \"Te enviaremos un correo cuando este completo\",\n },\n confirm_view: {\n confirm_title: \"Transacción Exitosa\",\n confirm_message: \"Te enviamos una notificación. Gracias por usar Traund\",\n },\n stepper: {\n one: \"¿Quién Envía?\",\n two: \"¿Quién Recibe?\",\n three: \"Pago\",\n four: \"Confirmación\",\n five: \"Confirmación\",\n },\n resume: {\n title: \"Resumen de la orden\",\n title_sender: \"Su información\",\n title_receiver: \"Información del destinatario\",\n title_bank: \"Método de pago\",\n amount_sent: \"Monto a enviar\",\n amount_received: \"Monto a recibir\",\n phone: \"telefono\",\n names: \"Nombres Completos\",\n email: \"Correo electrónico\",\n countryOrigin: \"Pais Origen\",\n currencyOrigin: \"Moneda Origen\",\n countryTo: \"Pais Destino\",\n currencyTo: \"Moneda Destino\",\n bankName: \"Método de pago\",\n bankNumber: \"Nro de Cuenta\",\n bankGlobalNumber: \"Nro Global de Cuente\",\n promoApplied: \"Agregado\",\n coupon: \"Cupón\",\n },\n wallet: {\n wallet_title: \"Información de la Billetera\",\n amount: \"Monto\",\n available_amount: \"Monto disponible\",\n balance_amount: \"Monto contable\",\n transactions: \"Transacciones\",\n withdraw: \"Retirar\",\n withdrawals: \"Retiros\",\n deposits: \"Depósitos\",\n date: \"Fecha\",\n status: \"Estado\",\n wallet_not_found: \"Billetera no encontrada\",\n create_wallet: \"Crear billetera\",\n withdraw_message: `Quiero retirar el monto {0} USDT de mi billetera a {1}({2})`,\n please_choose_a_value: \"Por favor seleccione un valor\",\n wallet_not_found_description:\n \"Necesitas crear una billetera para poder disfrutar de sus beneficios.\",\n wallet: \"Billetera\",\n },\n event_register: {\n register: \"Registrarme\",\n title: \"Ingresa tu información\",\n description:\n \"Regístrate y obtén un cupón de $3 dólares para tu primera transferencia.\",\n confirm_message:\n \"Ya estás listo para realizar tu primera transacción, te hemos enviado un correo con los detalles\",\n email_message: \"Te hemos enviado un mensaje a tu correo electrónico.\",\n referral_code: \"Tengo un código de embajador\",\n submit_code: \"Enviar Código\",\n },\n complete_register_form: {\n title_form: \"Completa Tu Registro\",\n subtitle_form: \"Ingresa una contraseña para tu cuenta\",\n send_password: \"Confirmar\",\n confirm_message: \"Gracias por confirmar su registro en Traund.\",\n email_message: \"Te hemos enviado un mensaje a tu correo electrónico.\",\n },\n password_reset_form: {\n title_form: \"Traund\",\n subtitle_form: \"Ingrese su nueva contraseña\",\n send_password: \"Confirmar\",\n confirm_message: \"Gracias por confirmar su registro en Traund.\",\n email_message: \"Te hemos enviado un mensaje a tu correo electrónico.\",\n },\n password_change_form: {\n title_form: \"Cambia tu contraseña\",\n },\n password_recover_form: {\n title_form: \"Recupera tu contraseña\",\n subtitle_form:\n \"Ingresa un correo. Te enviaremos instrucciones para recuperar tu contraseña.\",\n confirm_message: \"Te hemos enviado un mensaje a tu correo.\",\n },\n call_to_action: {\n first: \"Regístrate y tu primera transacción va por nuestra cuenta.\",\n second: \" Tu primera transacción totalmente gratis,\",\n third: \"registrándote aquí\",\n },\n email: \"Correo electrónico\",\n firstname: \"Nombre\",\n lastname: \"Apellido\",\n cellphone: \"Número Celular\",\n country: \"País\",\n bank: \"Método de Pago\",\n next_step: \"Continuar\",\n back_step: \"Regresar\",\n confirm: \"Confirmar\",\n account_id: \"Cuenta del Método de Pago\",\n business_info: \"Información del negocio\",\n business_country: \"País del negocio\",\n business_name: \"Nombre del negocio\",\n business_tax_code: \"Codigo Impuesto\",\n business_available_countries: \"Paises con los que trabaja\",\n bank_info: \"Información del Banco\",\n bank_name: \"Nombre del banco\",\n bank_account_number: \"Número de cuenta de banco\",\n bank_account_number_optional: \"Número de cuenta de banco (Opcional)\",\n identification_type: \"Identification Type\",\n identification_number: \"Identification Number\",\n email_validation_message: \"Ingrese un correo electrónico\",\n email_correct_validation_message: \"Ingrese un correo electrónico válido\",\n firstname_validation_message: \"Ingrese un Nombre\",\n lastname_validation_message: \"Ingrese un apellido\",\n cellphone_validation_message: \"Ingrese un número celular\",\n country_validation_message: \"Seleccione país\",\n bankname_validation_message: \"Inserte un nombre de banco válido\",\n banknumber_validation_message: \"Inserte un número de banco\",\n bankroutenumber_validation_message: \"Inserte un número de banco\",\n password_validation_message: \"Ingrese una contraseña\",\n confirmation_password_validation_message: \"Ingrese una contraseña\",\n type_account_validation_message: \"Seleccione un tipo de cuenta\",\n edit_profile_business_info: \"Editar Información\",\n payment_method_not_found: \"Metodo de pago no encontrado\",\n payment_method: \"Metodo de pago\",\n password: \"Ingrese contraseña\",\n repeatPassword: \"Repita contraseña\",\n security_information: \"Información de Seguridad\",\n minutes: \"minutos\",\n transaction_no_valid: \"No pudimos encontrar tu transacción\",\n referralCode: \"Código de referido\",\n warning_no_bank_info:\n \"Para usar esta herramienta, ingrese la información del negocio en la sección del perfil\",\n transaction_no_valid_description:\n \"Esto se debe a que el link ya venció o es incorrecto.\\n Por favor crea una nueva transacción\",\n error_general: \"Hubo un error, intente de nuevo por favor.\",\n error_password_match: \"Las contraseñas no coinciden.\",\n type_account: \"Tipo de cuenta\",\n transaction_reject_message:\n \"La transacción fue rechazada por el usuario al no realizar el deposito\",\n zelle: {\n bank_account_title: \"Tipo de Cuenta\",\n bank_email: \"Correo electrónico de Zelle\",\n bank_phone: \"Número telefónico de Zelle\",\n bank_address_title: \"Correo electrónico/Número telefónico\",\n },\n tron: {\n bank_address: \"TRON(TRC20)\",\n bank_tron_address: \"Dirección de billetera TRON(TRC20)\",\n bank_address_error: \"\",\n tron_error_required: \"Dirección TRON es requerida\",\n tron_wallet_address_error: \"Dirección de billetera TRON(TRC20) no válida\",\n },\n oggo: {\n bank_address: \"Usuario Oggo\",\n btc_address: \"Dirección de billetera BTC\",\n btc_wallet_address_error: \"Dirección de billetera BTC no válida\",\n },\n uala: {\n alias: \"Alias\",\n cuitcuil: \"CUIT/CUIL\",\n cvu: \"CVU\",\n },\n mercadolibre: {\n dni: \"DNI\",\n alias: \"Alias\",\n },\n select_country_message: \"Seleccione un país\",\n tooltip: {\n bank_name: \"Nombre del banco donde recibirá su dinero\",\n bank_global_account:\n \"Número de cuenta para realizar transferencias interbancarias\",\n bank_account: \"Número de cuenta provisto por tu banco para transferencias\",\n },\n calculator: {\n success_message:\n \"Esocoge el medio y nos comunicaremos contigo en unos segundos\",\n invalid_coupon_message:\n \"El cupón ingresado no es válido. Ingrese otro cupón o quite el ingresado para continuar\",\n invalid_coupon_country_from:\n \"El cupón ingresado no es válido para este pais de Origen\",\n invalid_coupon_country_to:\n \"El cupón ingresado no es válido para este pais de Destino\",\n invalid_coupon_amount_from:\n \"El cupón ingresado no es válido para el monto transferido\",\n success_message:\n \"Escoge una opción para continuar tu transacción y en unos minutos te contactaremos\",\n email: \"Enviame un correo\",\n chat: \"Hablemos en Facebook Messenger\",\n plus: \"Sumaste amount currency gracias a tu cupón\",\n recalculate_description: \"El tipo de cambio se actualizará en \",\n comision: \"Comisión Traund\",\n tax_pe: \"Impuesto (ITF)\",\n tax_co: \"Impuesto (4x1000)\",\n receiver:\"Recibiremos\",\n exchange_rate: \"Tipo de cambio\",\n tron_network_fee: 'Comisión de Red',\n paypal_fee: 'Comisión Paypal',\n total_fees: 'Comisión total',\n wallet_converted_amount: `Recibiremos`,\n wallet_fee: 'Comisión',\n converted_amount: 'Transferiremos',\n converted_amount_receive: 'Recibiremos',\n remove_coupon: \"Quitar cupón\",\n converted_amount_network: \"Monto convertido\",\n },\n transaction_status: {\n title: \"Estado de la Transacción\",\n from: \"De\",\n to: \"Hacia\",\n status_name: \"Estado\",\n description: \"Descripción\",\n created_at: \"Creado\",\n currency: \"Moneda\",\n sender: \"Envía\",\n recipient: \"Receptor\",\n refund: \"Reembolsar\",\n release: \"Liberar pago\",\n },\n go_to_home: \"Ir al Inicio\",\n create_new_transaction: \"Crear nueva transacción\",\n transaction_error: \"No pudimos crear tu transacción\",\n contact_us_error_message:\n \"Por favor, contáctenos a traves del chat de soporte\",\n create_new_transaction_message: \"O cree una nueva transacción\",\n go_to_chat: \"Contactanos\",\n login: {\n not_registered_user: \"La dirección de correo electrónico es incorrecta\",\n forgot_password: \"Olvidaste tu contraseña?\",\n manually_set_data: \"O registra tu información en el siguiente formulario\",\n go_to_form: \"Ir al formulario\",\n go_to_login: \"Iniciar Sesión\",\n already_registered: \"¿Tienes una cuenta?\",\n register_description: \"Por favor, inicia sesión con tu correo\",\n back_to_form: \"Regresar al formulario\",\n dont_have_account: \"¿No tienes cuenta?\",\n },\n business: {\n calculate: \"Calcular\",\n generate_link: \"Generar Enlace de Pago\",\n generate_link_warranty: \"Generar Enlace de Pago con Garantia\",\n link_warning:\n \"El enlace es válido durante 12 horas.\\nDespués de este tiempo se desactivará y tendrá que crear uno nuevo.\",\n you_will_get: \"Se depositará en tu cuenta\",\n confirm_message: \"Hemos registrado tus datos satisfactoriamente\",\n email_message: \"Nos contactaremos contigo vía correo electrónico\",\n title: \"Link de PAGO para ti y tu negocio\",\n subtitle: \"Convierte tu negocio local en regional\",\n description:\n \"Regístrate en nuestra comunidad y prueba nuestros links de pago con 0 COMISIONES.\",\n subtitle_description:\n \"Realiza cobros por medio de la red de Traund con 0 COMISIONES y a un GRAN TIPO DE CAMBIO.\\nSin costos ocultos. \\nSabras cuanto recibirás al momento de generar tu link\",\n freelancers: \"Freelancers\",\n freelancers_description:\n \"No pierdas el dinero que tanto te ha costado ganar en altas comisiones y bajos tipos de cambio. Recibelo a tu cuenta bancaria en pocas horas con 0 COMISIONES.\\nTambién puedes crear un enlace de pago con depósito en garantía y proteger tus ganancias antes de empezar cualquier trabajo. Evita las estafas y TRABAJA CON TRANQUILIDAD\",\n ecommerce: \"Tiendas Virtuales\",\n ecommerce_description:\n \"Recibe pagos desde distintos paises de la region con 0 COMISIONES, amplia tu mercado y obten más ganancias.\\nAsegure el dinero de sus ventas con enlaces de pago con depósito en garantía. Transmita a sus clientes la seguridad de que recibirán productos de calidad con SATISFACCIÓN GARANTIZADA.\",\n is_natural_person: \"Persona Natural\",\n business_country: \"País del Negocio\",\n business_info: \"Información del negocio\",\n generate_link_again: \"Generar nuevo link de pago\",\n title_enrollment: \"Complete su registro\",\n subtitle_enrollment: \"Ingrese la información de contacto\",\n },\n user: {\n title_enrollment: \"Complete su registro\",\n subtitle_enrollment: \"Ingrese la información de contacto\",\n identification_type: \"Tipo de identificación\",\n identification_number: \"Numero de identificación\",\n },\n errors: {\n \"TR-001-W\": \"Usuario registrado.\",\n \"TR-003-W\": \"Contraseña incorrecta\",\n \"TR-004-W\":\n \"Solo puedes hacer UNA transferencia a la vez. Debes completar tu transferencia pendiente.\",\n \"TR-005-E\": \"Cupón invalido o ya usado por el usuario\",\n \"TR-006-E\": \"Rol inválido para este tipo de transacción\",\n \"TR-010-E\": \"Link de pago expirado o incorrecto.\",\n \"TR-011-E\": \"Transacción ya se procesó\",\n \"CO-000-I\": \"Cupón invalido o ya usado por el usuario\",\n \"ID-004-W\": \"Nombre de usuario y/o contraseña incorrectos.\",\n \"ID-010-W\": \"Usuario ya ha sido registrado.\",\n \"ID-001-W\": \"Correo ya registrado\",\n },\n payment_form: {\n title_form: \"Información del Pagador\",\n },\n dashboard: {\n options: {\n payment_link: \"Crear enlace de pago\",\n payment_link_with_warranty: \"Crear enlace de pago con garantía\",\n payment_list: \"Listado de pagos\",\n payment_history: \"Historial de pagos\",\n user_referral: \"Codigo de Referido\",\n profile: \"Información de contacto\",\n wallet: \"Billetera\",\n transfers: \"Transferencias\",\n },\n referral_code: {\n general_title: \"Código de Referido\",\n title: \"Código\",\n statitics: \"Estadísticas\",\n generate_referral_code: \"Generar un código de referido\",\n no_referral_yet: \"No dispone de un código de referido\"\n },\n greeting_dashboard_title: \"Bienvenidos a \",\n available_dashboard_title: \"Dashboard Disponibles\",\n logout: \"Cerrar Sesión\",\n generate_warranty_wallet:\n \"Necesita crear una billetera de Traund para crear links de pago con garantía, ya que el monto sera depositado a su billetera\",\n payment_warranty_wallet:\n \"Necesita crear una billetera de Traund para usar los links de pago con garantía, ya que en caso de reembolso el monto sera depositado a su billetera\",\n payment_warranty_info_account:\n \"Necesita crear una cuenta en Traund para poder pagar con\",\n payment_warranty_links: \"Enlaces de pago con Garantía\",\n },\n countries: {\n MX: \"México\",\n PE: \"Perú\",\n US: \"Estados Unidos\",\n VE: \"Venezuela\",\n CO: \"Colombia\",\n DO: \"República Dominicana\",\n AR: \"Argentina\",\n CL: \"Chile\",\n EC: \"Ecuador\",\n BR: \"Brasil\",\n PY: \"Paraguay\",\n SV: \"El Salvador\",\n },\n header: {\n payments: \"Negocios & Freelancers\",\n freelance: \"Freelancers\",\n sign_up: \"Crear cuenta\",\n transfer: \"Enviar\",\n how_works: \"¿Cómo funciona?\",\n faqs: \"FAQs\",\n remittances: \"Enviar\",\n womens_month: \"Mes de la Mujer\",\n },\n woman_month: {\n title: \"Sorteo Mes de la mujer\",\n subtitle: \"Gana una membresía de Platzi por un año\",\n description:\n \"En TRAUND promovemos que cada vez más mujeres busquen su libertad financiera, y una de las mejores maneras para hacerlo, es ser FREELANCER. Por eso mismo, estamos regalando: una membresía COMPLETA para PLATZI durante ¡UN AÑO! para que puedas seguir formándote como profesional y destacar en tu área.\",\n tc: \"ver terminos & condiciones\",\n },\n banks: {\n bbva: 'BBVA bank',\n bcp: 'Credit Bank of Peru - BCP',\n scotiabank_peru: 'Scotiabank Peru',\n western_discount_bank: 'Western Discount Bank'\n },\n disclaimers: {\n send: \"Esta es una operación de nuestro servicio de envío.\",\n sendDescription: \"Cuando realices el pago y registres tu comprobante, la operación debería estar finalizada como máximo: \",\n sendDisclaimer: \"*Para transferir desde {COUNTRY}, es importante que veas nuestro video tutorial sobre el pago.\",\n receive: \"Esta es una operación de nuestro servicio de cobro.\",\n receiveDescription: \"Se generará un link que debes compartirlo con la persona que realizará el pago. Una vez pagado y verificado, el tiempo máximo de procesamiento es de 12 horas hábiles para que recibas el dinero en el método de pago registrado en Traund.\",\n receiveBanks: \"*Recibimos pagos a través de transferencia bancaria.\",\n receiveZelle: \"*Recibimos pagos a través de transferencia bancaria Zelle.\",\n receiveDisclaimer: \"*Para cobrar desde {COUNTRY}, es obligatorio que veas nuestro video tutorial y lo compartas con la persona que realizará el pago.\",\n wallet: \"Esta es una operación de añadir fondos a tu Billetera Traund.\",\n walletDescription: \"Cuando realices el pago y registres tu comprobante, la operación debería estar finalizada como máximo: \",\n walletDisclaimer: \"*Este es el tiempo que toma el banco de {PAYMENTMETHOD} en procesar el pago.\",\n walletDisclaimerACH: \"*Este es el tiempo máximo que el banco puede tomar en procesar la transferencia ACH.\"\n }\n};\n","import firebase from \"firebase/app\";\nimport 'firebase/firestore';\nimport { BACKEND_SETTINGS } from \"./core/backend-settings\";\n\nconst loadFirebaseDB = (testMode = 'production', externalConfig = null) => {\n try {\n let firebaseConfig;\n \n if (externalConfig && externalConfig.provider) {\n firebaseConfig = externalConfig.provider;\n } else {\n return console.error('No Firebase configuration provided');\n }\n \n if (firebase.apps.length === 0) {\n firebase.initializeApp(firebaseConfig);\n }\n } catch (error) {\n if (!/already exist/.test(error.message)) {\n console.error('Firebase initialization error', error.stack);\n }\n }\n\n return firebase;\n};\n\nexport default loadFirebaseDB;\n","export const BACKEND_SETTINGS = {\n \"staging\": {\n URL: process.env.NEXT_PUBLIC_STAGING_TRAUND_BACKEND_URL,\n\n },\n \"beta\": {\n URL: process.env.NEXT_PUBLIC_BETA_TRAUND_BACKEND_URL,\n \n },\n \"production\": {\n URL: process.env.NEXT_PUBLIC_PROD_TRAUND_BACKEND_URL,\n \n }\n}\n","export const countries = [\n { code: \"TRAUND\", label: \"WALLET TRAUND\", prefix: \"+1\", currency: \"USDT\" },\n { code: \"PAYPAL\", label: \"PAYPAL\", prefix: \"+1\", currency: \"USD\" },\n { code: \"AD\", label: \"Andorra\", prefix: \"+376\" },\n { code: \"AE\", label: \"United Arab Emirates\", prefix: \"+971\" },\n { code: \"AF\", label: \"Afghanistan\", prefix: \"+93\" },\n { code: \"AG\", label: \"Antigua and Barbuda\", prefix: \"+1-268\" },\n { code: \"AI\", label: \"Anguilla\", prefix: \"+1-264\" },\n { code: \"AL\", label: \"Albania\", prefix: \"+355\" },\n { code: \"AM\", label: \"Armenia\", prefix: \"+374\" },\n { code: \"AO\", label: \"Angola\", prefix: \"+244\" },\n { code: \"AQ\", label: \"Antarctica\", prefix: \"+672\" },\n { code: \"AR\", label: \"Argentina\", prefix: \"+54\", currency: \"ARS\" },\n { code: \"AS\", label: \"American Samoa\", prefix: \"+1-684\" },\n { code: \"AT\", label: \"Austria\", prefix: \"+43\" },\n { code: \"AU\", label: \"Australia\", prefix: \"+61\" },\n { code: \"AW\", label: \"Aruba\", prefix: \"+297\" },\n { code: \"AX\", label: \"Alland Islands\", prefix: \"+358\" },\n { code: \"AZ\", label: \"Azerbaijan\", prefix: \"+994\" },\n { code: \"BA\", label: \"Bosnia and Herzegovina\", prefix: \"+387\" },\n { code: \"BB\", label: \"Barbados\", prefix: \"+1-246\" },\n { code: \"BD\", label: \"Bangladesh\", prefix: \"+880\" },\n { code: \"BE\", label: \"Belgium\", prefix: \"+32\" },\n { code: \"BF\", label: \"Burkina Faso\", prefix: \"+226\" },\n { code: \"BG\", label: \"Bulgaria\", prefix: \"+359\" },\n { code: \"BH\", label: \"Bahrain\", prefix: \"+973\" },\n { code: \"BI\", label: \"Burundi\", prefix: \"+257\" },\n { code: \"BJ\", label: \"Benin\", prefix: \"+229\" },\n { code: \"BL\", label: \"Saint Barthelemy\", prefix: \"+590\" },\n { code: \"BM\", label: \"Bermuda\", prefix: \"+1-441\" },\n { code: \"BN\", label: \"Brunei Darussalam\", prefix: \"+673\" },\n { code: \"BO\", label: \"Bolivia\", prefix: \"+591\", currency: \"BOB\" },\n { code: \"BR\", label: \"Brasil\", prefix: \"+55\", currency: \"BRL\" },\n { code: \"BS\", label: \"Bahamas\", prefix: \"+1-242\" },\n { code: \"BT\", label: \"Bhutan\", prefix: \"+975\" },\n { code: \"BV\", label: \"Bouvet Island\", prefix: \"+47\" },\n { code: \"BW\", label: \"Botswana\", prefix: \"+267\" },\n { code: \"BY\", label: \"Belarus\", prefix: \"+375\" },\n { code: \"BZ\", label: \"Belize\", prefix: \"+501\" },\n { code: \"CA\", label: \"Canada\", prefix: \"+1\" },\n { code: \"CC\", label: \"Cocos (Keeling) Islands\", prefix: \"+61\" },\n { code: \"CD\", label: \"Congo, Democratic Republic of the\", prefix: \"+243\" },\n { code: \"CF\", label: \"Central African Republic\", prefix: \"+236\" },\n { code: \"CG\", label: \"Congo, Republic of the\", prefix: \"+242\" },\n { code: \"CH\", label: \"Switzerland\", prefix: \"+41\" },\n { code: \"CI\", label: \"Cote d'Ivoire\", prefix: \"+225\" },\n { code: \"CK\", label: \"Cook Islands\", prefix: \"+682\" },\n { code: \"CL\", label: \"Chile\", prefix: \"+56\", currency: \"CLP\" },\n { code: \"CM\", label: \"Cameroon\", prefix: \"+237\" },\n { code: \"CN\", label: \"China\", prefix: \"+86\" },\n { code: \"CO\", label: \"Colombia\", prefix: \"+57\", currency: \"COP\" },\n { code: \"CR\", label: \"Costa Rica\", prefix: \"+506\", currency: \"CRC\" },\n { code: \"CU\", label: \"Cuba\", prefix: \"+53\" },\n { code: \"CV\", label: \"Cape Verde\", prefix: \"+238\" },\n { code: \"CW\", label: \"Curacao\", prefix: \"+599\" },\n { code: \"CX\", label: \"Christmas Island\", prefix: \"+61\" },\n { code: \"CY\", label: \"Cyprus\", prefix: \"+357\" },\n { code: \"CZ\", label: \"Czech Republic\", prefix: \"+420\" },\n { code: \"DE\", label: \"Germany\", prefix: \"+49\" },\n { code: \"DJ\", label: \"Djibouti\", prefix: \"+253\" },\n { code: \"DK\", label: \"Denmark\", prefix: \"+45\" },\n { code: \"DM\", label: \"Dominica\", prefix: \"+1-767\" },\n {\n code: \"DO\",\n label: \"Dominican Republic\",\n prefix: \"+1-809\",\n currency: \"DOP\",\n },\n { code: \"DZ\", label: \"Algeria\", prefix: \"+213\" },\n { code: \"EC\", label: \"Ecuador\", prefix: \"+593\", currency: \"USD\" },\n { code: \"EE\", label: \"Estonia\", prefix: \"+372\" },\n { code: \"EG\", label: \"Egypt\", prefix: \"+20\" },\n { code: \"EH\", label: \"Western Sahara\", prefix: \"+212\" },\n { code: \"ER\", label: \"Eritrea\", prefix: \"+291\" },\n { code: \"ES\", label: \"Spain\", prefix: \"+34\", currency: \"EUR\" },\n { code: \"ET\", label: \"Ethiopia\", prefix: \"+251\" },\n { code: \"FI\", label: \"Finland\", prefix: \"+358\" },\n { code: \"FJ\", label: \"Fiji\", prefix: \"+679\" },\n { code: \"FK\", label: \"Falkland Islands (Malvinas)\", prefix: \"+500\" },\n { code: \"FM\", label: \"Micronesia, Federated States of\", prefix: \"+691\" },\n { code: \"FO\", label: \"Faroe Islands\", prefix: \"+298\" },\n { code: \"FR\", label: \"France\", prefix: \"+33\" },\n { code: \"GA\", label: \"Gabon\", prefix: \"+241\" },\n { code: \"GB\", label: \"United Kingdom\", prefix: \"+44\" },\n { code: \"GD\", label: \"Grenada\", prefix: \"+1-473\" },\n { code: \"GE\", label: \"Georgia\", prefix: \"+995\" },\n { code: \"GF\", label: \"French Guiana\", prefix: \"+594\" },\n { code: \"GG\", label: \"Guernsey\", prefix: \"+44\" },\n { code: \"GH\", label: \"Ghana\", prefix: \"+233\" },\n { code: \"GI\", label: \"Gibraltar\", prefix: \"+350\" },\n { code: \"GL\", label: \"Greenland\", prefix: \"+299\" },\n { code: \"GM\", label: \"Gambia\", prefix: \"+220\" },\n { code: \"GN\", label: \"Guinea\", prefix: \"+224\" },\n { code: \"GP\", label: \"Guadeloupe\", prefix: \"+590\" },\n { code: \"GQ\", label: \"Equatorial Guinea\", prefix: \"+240\" },\n { code: \"GR\", label: \"Greece\", prefix: \"+30\" },\n {\n code: \"GS\",\n label: \"South Georgia and the South Sandwich Islands\",\n prefix: \"+500\",\n },\n { code: \"GT\", label: \"Guatemala\", prefix: \"+502\", currency: \"GTQ\" },\n { code: \"GU\", label: \"Guam\", prefix: \"+1-671\" },\n { code: \"GW\", label: \"Guinea-Bissau\", prefix: \"+245\" },\n { code: \"GY\", label: \"Guyana\", prefix: \"+592\" },\n { code: \"HK\", label: \"Hong Kong\", prefix: \"+852\" },\n { code: \"HM\", label: \"Heard Island and McDonald Islands\", prefix: \"+672\" },\n { code: \"HN\", label: \"Honduras\", prefix: \"+504\", currency: \"HNL\" },\n { code: \"HR\", label: \"Croatia\", prefix: \"+385\" },\n { code: \"HT\", label: \"Haiti\", prefix: \"+509\" },\n { code: \"HU\", label: \"Hungary\", prefix: \"+36\" },\n { code: \"ID\", label: \"Indonesia\", prefix: \"+62\" },\n { code: \"IE\", label: \"Ireland\", prefix: \"+353\" },\n { code: \"IL\", label: \"Israel\", prefix: \"+972\" },\n { code: \"IM\", label: \"Isle of Man\", prefix: \"+44\" },\n { code: \"IN\", label: \"India\", prefix: \"+91\" },\n { code: \"IO\", label: \"British Indian Ocean Territory\", prefix: \"+246\" },\n { code: \"IQ\", label: \"Iraq\", prefix: \"+964\" },\n { code: \"IR\", label: \"Iran, Islamic Republic of\", prefix: \"+98\" },\n { code: \"IS\", label: \"Iceland\", prefix: \"+354\" },\n { code: \"IT\", label: \"Italy\", prefix: \"+39\" },\n { code: \"JE\", label: \"Jersey\", prefix: \"+44\" },\n { code: \"JM\", label: \"Jamaica\", prefix: \"+1-876\" },\n { code: \"JO\", label: \"Jordan\", prefix: \"+962\" },\n { code: \"JP\", label: \"Japan\", prefix: \"+81\" },\n { code: \"KE\", label: \"Kenya\", prefix: \"+254\" },\n { code: \"KG\", label: \"Kyrgyzstan\", prefix: \"+996\" },\n { code: \"KH\", label: \"Cambodia\", prefix: \"+855\" },\n { code: \"KI\", label: \"Kiribati\", prefix: \"+686\" },\n { code: \"KM\", label: \"Comoros\", prefix: \"+269\" },\n { code: \"KN\", label: \"Saint Kitts and Nevis\", prefix: \"+1-869\" },\n {\n code: \"KP\",\n label: \"Korea, Democratic People's Republic of\",\n prefix: \"+850\",\n },\n { code: \"KR\", label: \"Korea, Republic of\", prefix: \"+82\" },\n { code: \"KW\", label: \"Kuwait\", prefix: \"+965\" },\n { code: \"KY\", label: \"Cayman Islands\", prefix: \"+1-345\" },\n { code: \"KZ\", label: \"Kazakhstan\", prefix: \"+7\" },\n { code: \"LA\", label: \"Lao People's Democratic Republic\", prefix: \"+856\" },\n { code: \"LB\", label: \"Lebanon\", prefix: \"+961\" },\n { code: \"LC\", label: \"Saint Lucia\", prefix: \"+1-758\" },\n { code: \"LI\", label: \"Liechtenstein\", prefix: \"+423\" },\n { code: \"LK\", label: \"Sri Lanka\", prefix: \"+94\" },\n { code: \"LR\", label: \"Liberia\", prefix: \"+231\" },\n { code: \"LS\", label: \"Lesotho\", prefix: \"+266\" },\n { code: \"LT\", label: \"Lithuania\", prefix: \"+370\" },\n { code: \"LU\", label: \"Luxembourg\", prefix: \"+352\" },\n { code: \"LV\", label: \"Latvia\", prefix: \"+371\" },\n { code: \"LY\", label: \"Libya\", prefix: \"+218\" },\n { code: \"MA\", label: \"Morocco\", prefix: \"+212\" },\n { code: \"MC\", label: \"Monaco\", prefix: \"+377\" },\n { code: \"MD\", label: \"Moldova, Republic of\", prefix: \"+373\" },\n { code: \"ME\", label: \"Montenegro\", prefix: \"+382\" },\n { code: \"MF\", label: \"Saint Martin (French part)\", prefix: \"+590\" },\n { code: \"MG\", label: \"Madagascar\", prefix: \"+261\" },\n { code: \"MH\", label: \"Marshall Islands\", prefix: \"+692\" },\n {\n code: \"MK\",\n label: \"Macedonia, the Former Yugoslav Republic of\",\n prefix: \"+389\",\n },\n { code: \"ML\", label: \"Mali\", prefix: \"+223\" },\n { code: \"MM\", label: \"Myanmar\", prefix: \"+95\" },\n { code: \"MN\", label: \"Mongolia\", prefix: \"+976\" },\n { code: \"MO\", label: \"Macao\", prefix: \"+853\" },\n { code: \"MP\", label: \"Northern Mariana Islands\", prefix: \"+1-670\" },\n { code: \"MQ\", label: \"Martinique\", prefix: \"+596\" },\n { code: \"MR\", label: \"Mauritania\", prefix: \"+222\" },\n { code: \"MS\", label: \"Montserrat\", prefix: \"+1-664\" },\n { code: \"MT\", label: \"Malta\", prefix: \"+356\" },\n { code: \"MU\", label: \"Mauritius\", prefix: \"+230\" },\n { code: \"MV\", label: \"Maldives\", prefix: \"+960\" },\n { code: \"MW\", label: \"Malawi\", prefix: \"+265\" },\n { code: \"MX\", label: \"Mexico\", prefix: \"+52\", currency: \"MXN\" },\n { code: \"MY\", label: \"Malaysia\", prefix: \"+60\" },\n { code: \"MZ\", label: \"Mozambique\", prefix: \"+258\" },\n { code: \"NA\", label: \"Namibia\", prefix: \"+264\" },\n { code: \"NC\", label: \"New Caledonia\", prefix: \"+687\" },\n { code: \"NE\", label: \"Niger\", prefix: \"+227\" },\n { code: \"NF\", label: \"Norfolk Island\", prefix: \"+672\" },\n { code: \"NG\", label: \"Nigeria\", prefix: \"+234\" },\n { code: \"NI\", label: \"Nicaragua\", prefix: \"+505\" },\n { code: \"NL\", label: \"Netherlands\", prefix: \"+31\" },\n { code: \"NO\", label: \"Norway\", prefix: \"+47\" },\n { code: \"NP\", label: \"Nepal\", prefix: \"+977\" },\n { code: \"NR\", label: \"Nauru\", prefix: \"+674\" },\n { code: \"NU\", label: \"Niue\", prefix: \"+683\" },\n { code: \"NZ\", label: \"New Zealand\", prefix: \"+64\" },\n { code: \"OM\", label: \"Oman\", prefix: \"+968\" },\n { code: \"PA\", label: \"Panama\", prefix: \"+507\" },\n { code: \"PE\", label: \"Peru\", prefix: \"+51\", currency: \"PEN\" },\n { code: \"PE-USD\", label: \"Peru\", prefix: \"+51\", currency: \"USD\" },\n { code: \"PF\", label: \"French Polynesia\", prefix: \"+689\" },\n { code: \"PG\", label: \"Papua New Guinea\", prefix: \"+675\" },\n { code: \"PH\", label: \"Philippines\", prefix: \"+63\" },\n { code: \"PK\", label: \"Pakistan\", prefix: \"+92\" },\n { code: \"PL\", label: \"Poland\", prefix: \"+48\" },\n { code: \"PM\", label: \"Saint Pierre and Miquelon\", prefix: \"+508\" },\n { code: \"PN\", label: \"Pitcairn\", prefix: \"+870\" },\n { code: \"PR\", label: \"Puerto Rico\", prefix: \"+1\" },\n { code: \"PS\", label: \"Palestine, State of\", prefix: \"+970\" },\n { code: \"PT\", label: \"Portugal\", prefix: \"+351\" },\n { code: \"PW\", label: \"Palau\", prefix: \"+680\" },\n { code: \"PY\", label: \"Paraguay\", prefix: \"+595\", currency: \"PYG\" },\n { code: \"QA\", label: \"Qatar\", prefix: \"+974\" },\n { code: \"RE\", label: \"Reunion\", prefix: \"+262\" },\n { code: \"RO\", label: \"Romania\", prefix: \"+40\" },\n { code: \"RS\", label: \"Serbia\", prefix: \"+381\" },\n { code: \"RU\", label: \"Russian Federation\", prefix: \"+7\" },\n { code: \"RW\", label: \"Rwanda\", prefix: \"+250\" },\n { code: \"SA\", label: \"Saudi Arabia\", prefix: \"+966\" },\n { code: \"SB\", label: \"Solomon Islands\", prefix: \"+677\" },\n { code: \"SC\", label: \"Seychelles\", prefix: \"+248\" },\n { code: \"SD\", label: \"Sudan\", prefix: \"+249\" },\n { code: \"SE\", label: \"Sweden\", prefix: \"+46\" },\n { code: \"SG\", label: \"Singapore\", prefix: \"+65\" },\n { code: \"SH\", label: \"Saint Helena\", prefix: \"+290\" },\n { code: \"SI\", label: \"Slovenia\", prefix: \"+386\" },\n { code: \"SJ\", label: \"Svalbard and Jan Mayen\", prefix: \"+47\" },\n { code: \"SK\", label: \"Slovakia\", prefix: \"+421\" },\n { code: \"SL\", label: \"Sierra Leone\", prefix: \"+232\" },\n { code: \"SM\", label: \"San Marino\", prefix: \"+378\" },\n { code: \"SN\", label: \"Senegal\", prefix: \"+221\" },\n { code: \"SO\", label: \"Somalia\", prefix: \"+252\" },\n { code: \"SR\", label: \"Suriname\", prefix: \"+597\" },\n { code: \"SS\", label: \"South Sudan\", prefix: \"+211\" },\n { code: \"ST\", label: \"Sao Tome and Principe\", prefix: \"+239\" },\n { code: \"SV\", label: \"El Salvador\", prefix: \"+503\", currency: \"BTC\" },\n { code: \"SX\", label: \"Sint Maarten (Dutch part)\", prefix: \"+1-721\" },\n { code: \"SY\", label: \"Syrian Arab Republic\", prefix: \"+963\" },\n { code: \"SZ\", label: \"Swaziland\", prefix: \"+268\" },\n { code: \"TC\", label: \"Turks and Caicos Islands\", prefix: \"+1-649\" },\n { code: \"TD\", label: \"Chad\", prefix: \"+235\" },\n { code: \"TF\", label: \"French Southern Territories\", prefix: \"+262\" },\n { code: \"TG\", label: \"Togo\", prefix: \"+228\" },\n { code: \"TH\", label: \"Thailand\", prefix: \"+66\" },\n { code: \"TJ\", label: \"Tajikistan\", prefix: \"+992\" },\n { code: \"TK\", label: \"Tokelau\", prefix: \"+690\" },\n { code: \"TL\", label: \"Timor-Leste\", prefix: \"+670\" },\n { code: \"TM\", label: \"Turkmenistan\", prefix: \"+993\" },\n { code: \"TN\", label: \"Tunisia\", prefix: \"+216\" },\n { code: \"TO\", label: \"Tonga\", prefix: \"+676\" },\n { code: \"TR\", label: \"Turkey\", prefix: \"+90\" },\n { code: \"TT\", label: \"Trinidad and Tobago\", prefix: \"+1-868\" },\n { code: \"TV\", label: \"Tuvalu\", prefix: \"+688\" },\n { code: \"TW\", label: \"Taiwan, Province of China\", prefix: \"+886\" },\n { code: \"TZ\", label: \"United Republic of Tanzania\", prefix: \"+255\" },\n { code: \"UA\", label: \"Ukraine\", prefix: \"+380\" },\n { code: \"UG\", label: \"Uganda\", prefix: \"+256\" },\n { code: \"US\", label: \"United States\", prefix: \"+1\", currency: \"USD\" },\n { code: \"UY\", label: \"Uruguay\", prefix: \"+598\" },\n { code: \"UZ\", label: \"Uzbekistan\", prefix: \"+998\" },\n { code: \"VA\", label: \"Holy See (Vatican City State)\", prefix: \"+379\" },\n { code: \"VC\", label: \"Saint Vincent and the Grenadines\", prefix: \"+1-784\" },\n { code: \"VE\", label: \"Venezuela\", prefix: \"+58\", currency: \"VES\" },\n { code: \"VG\", label: \"British Virgin Islands\", prefix: \"+1-284\" },\n { code: \"VI\", label: \"US Virgin Islands\", prefix: \"+1-340\" },\n { code: \"VN\", label: \"Vietnam\", prefix: \"+84\" },\n { code: \"VU\", label: \"Vanuatu\", prefix: \"+678\" },\n { code: \"WF\", label: \"Wallis and Futuna\", prefix: \"+681\" },\n { code: \"WS\", label: \"Samoa\", prefix: \"+685\" },\n { code: \"XK\", label: \"Kosovo\", prefix: \"+383\" },\n { code: \"YE\", label: \"Yemen\", prefix: \"+967\" },\n { code: \"YT\", label: \"Mayotte\", prefix: \"+262\" },\n { code: \"ZA\", label: \"South Africa\", prefix: \"+27\" },\n { code: \"ZM\", label: \"Zambia\", prefix: \"+260\" },\n { code: \"ZW\", label: \"Zimbabwe\", prefix: \"+263\" },\n];\n","import React, { useRef } from \"react\";\nimport Countdown from \"react-countdown\";\nimport en from \"../locale/en\";\nimport es from \"../locale/es\";\n\nconst Timer = (props) => {\n const locale = props.locale;\n const content = locale === \"es\" ? es : en;\n const ref = useRef(Date.now());\n\n return (\n <Countdown\n date={ref.current + 5 * 60 * 1000}\n renderer={({ minutes, seconds }) => (\n <span\n style={{\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"16px\",\n color: `${minutes < 1 ? \"red\" : \"#000F37\"}`,\n textAlign: \"center\"\n }}\n >\n {content.calculator.recalculate_description}\n <b>{`0${minutes}`}:{seconds < 10 ? `0${seconds}` : seconds}</b>\n </span>\n )}\n onComplete={props.onTimeout}\n ></Countdown>\n );\n};\n\nexport default Timer;\n","import { BACKEND_SETTINGS } from \"./backend-settings\";\n\nclass EndPoints {\n constructor(testMode = 'production', externalConfig = null) {\n this._testMode = testMode;\n this.baseUrl = externalConfig?.backendUrl;\n this.path_managment_operations = `${this.baseUrl}/handle-operations`;\n }\n\n\n get CALLBACK() {\n return {\n landing_transfer: (baseUrl, locale) => `${baseUrl}/${locale}/send`,\n landing_receive: (baseUrl, locale) => `${baseUrl}/${locale}/receive`,\n landing_wallet: (baseUrl, locale) => `${baseUrl}/${locale}/wallet`,\n referral_transfer: (baseUrl, locale, storeId) => `${baseUrl}/${locale}/login?referral=operation&type=transfer&reference=${storeId}`,\n referral_receive: (baseUrl, locale, storeId) => `${baseUrl}/${locale}/login?referral=operation&type=pay&reference=${storeId}`,\n referral_recharge: (baseUrl, locale, storeId) => `${baseUrl}/${locale}/login?referral=operation&type=recharge&reference=${storeId}`,\n }\n };\n\n get OPERATIONS() {\n return {\n calculate: (storeId, source) => `${this.path_managment_operations}/calculate/v1/update/${storeId}/${source}`,\n validateCoupon: `${this.path_managment_operations}/coupon/v1/validate`\n }\n };\n\n get EXCHANGE() {\n return {\n getRate: (currencyFrom, currencyTo) => `https://api.exchangerate.host/convert?from=${currencyFrom}&to=${currencyTo}`,\n getRate_bk_1: (currencyFrom, currencyTo) => `https://api-us.exchangerate.host/convert?from=${currencyFrom}&to=${currencyTo}`,\n getRate_bk_2: (currencyFrom, currencyTo) => `https://api-eu.exchangerate.host/convert?from=${currencyFrom}&to=${currencyTo}`,\n getRate_v2: (currencyFrom) => `https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/${currencyFrom.toLowerCase()}.json`,\n getRate_v3: (currencyFrom, currencyTo) => `https://cdnhlp-staging.traund.xyz/rates/v1/${currencyFrom}/${currencyTo}`,\n getUSDBlueRate: `https://api.bluelytics.com.ar/v2/latest`\n }\n };\n}\n\nexport default EndPoints;","import React from \"react\";\nimport { CircleFlag } from 'react-circle-flags'\n\nconst FlagsHelpers = (props) => {\n let code = props.code && props.code.toLowerCase();\n if (code == \"ach\") code = \"us\";\n\n let url = {\n 'traund': 'https://images-traund.s3.amazonaws.com/payment-methods/Traund.svg',\n 'paypal': 'https://images-traund.s3.amazonaws.com/payment-methods/paypal.svg',\n 'usdt': 'https://images-traund.s3.amazonaws.com/payment-methods/Tether.svg',\n 'wise': 'https://images-traund.s3.amazonaws.com/payment-methods/Wise.svg',\n 'payoneer': 'https://images-traund.s3.amazonaws.com/payment-methods/Payoneer.svg',\n 'deel': 'https://images-traund.s3.amazonaws.com/payment-methods/Deel.svg',\n 'ontop': 'https://images-traund.s3.amazonaws.com/payment-methods/Ontop.svg'\n }\n\n return (\n code?.length > 2 ?\n <img\n data-testid='circle-country-flag'\n height='16'\n width='16'\n style={{width: 16, height: 16}}\n src={url[code]}\n />\n :\n <CircleFlag countryCode={code} height=\"16\" style={{width: 16, height: 16}}/>\n );\n}\n\nexport default FlagsHelpers;\n","const peruTaxStrategy = (amount) => {\n const taxRate = 0.05;\n if (amount < 1000) return { newAmount: amount, appliedDiscount: 0 };\n\n const perThousand = Math.floor(amount / 1000);\n let discount = parseFloat((perThousand * taxRate).toFixed(2));\n return { newAmount: parseFloat((amount - discount).toFixed(2)), appliedDiscount: discount };\n};\n\nconst colombiaTaxStrategy = (amount) => {\n const taxPerThousand = 4;\n if (amount < 1000) return { newAmount: amount, appliedDiscount: 0 };\n\n const discount = Math.round(amount / 1000) * taxPerThousand;\n return { newAmount: amount - discount, appliedDiscount: discount };\n};\n\nconst noTaxStrategy = (amount) => ({ newAmount: amount, appliedDiscount: 0 });\n\nconst taxStrategyFactory = (country, isSender) => {\n if (!country) return;\n if (isSender && country.toLowerCase() === \"co\") return noTaxStrategy;\n\n switch (country.toLowerCase()) {\n case \"pe\":\n case \"pe-usd\":\n return peruTaxStrategy;\n case \"co\":\n return colombiaTaxStrategy;\n default:\n return noTaxStrategy;\n }\n};\n\nexport const applyTaxDiscount = (countryFrom, countryTo, amountFrom, amountTo) => {\n const senderStrategy = taxStrategyFactory(countryFrom, true);\n const receiverStrategy = taxStrategyFactory(countryTo, false);\n\n const senderTax = senderStrategy(amountFrom);\n const receiverTax = receiverStrategy(amountTo);\n\n const isDiscountApplied = senderTax.appliedDiscount > 0 || receiverTax.appliedDiscount > 0;\n const appliedOnDate = isDiscountApplied ? new Date().toISOString() : null;\n\n return {\n newAmountSender: senderTax.newAmount,\n newAmountReceiver: receiverTax.newAmount,\n appliedDiscountSender: senderTax.appliedDiscount,\n appliedDiscountReceiver: receiverTax.appliedDiscount,\n isDiscountApplied,\n appliedOnDate,\n };\n};\n","import CryptoJS from 'crypto-js';\n\nexport function generateSignature(secretKey, params) {\n const {\n timestamp = Date.now().toString(),\n method,\n url,\n channel = 'default',\n body = '',\n } = params;\n\n const bodyString =\n body ?\n (typeof body === 'string' ? body : JSON.stringify(body)) :\n '';\n\n const stringToSign = `${timestamp}+${method.toUpperCase()}+${url}+${channel}+${bodyString}`;\n\n const signature = CryptoJS.HmacSHA256(stringToSign, secretKey).toString(CryptoJS.enc.Hex);\n\n return {\n signature,\n timestamp,\n };\n}\n\nexport function getSignatureHeader(method, url, body = null, apikey = null, secretKey = null) {\n const referenceApiKey = apikey ;\n const signatureParams = {\n method: method,\n url: url,\n body: body\n };\n \n const result = generateSignature(secretKey, signatureParams);\n return `orq:${referenceApiKey}:${result.timestamp}:${result.signature}`;\n}","import React, { useState, useEffect, useCallback, useRef } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Chip from \"@material-ui/core/Chip\";\nimport Button from \"@material-ui/core/Button\";\nimport en from \"./locale/en\";\nimport es from \"./locale/es\";\nimport loadFirebaseDB from \"./firebase.config\";\nimport Endpoints from \"./core/endpoints\";\nimport TransferUser from \"./model/transferUser\";\nimport { TransferType, UserType, SimulatorMode } from \"./model/enums\";\nimport CalculateHelper from \"./utils/calculateHelper\";\nimport OperationsHelper from \"./utils/operationsHelper\";\nimport InputAmount from \"./components/inputAmount\";\nimport Timer from \"./countdown\";\nimport Fees from \"./components/fees\";\nimport Disclaimers from \"./components/disclaimers\";\nimport TransferDetail from \"./model/transferDetail\";\nimport { addLabelToPaymentMethods, setIdForPaymentMethods } from \"./helpers/paymentMethodHelper\";\nimport PaymentMethodSelector from \"./components/paymentMethodSelector\";\nimport { simulatorStyles } from \"./components/simulatorStyles\";\nimport { countries } from \"./data/countries\";\nimport { applyTaxDiscount } from \"./helpers/taxDiscount\";\nimport { Divider } from \"@material-ui/core\";\nconst useStyles = simulatorStyles;\n\nfunction Simulator(props) {\n /**\n * HELPERS\n */\n const { locale, pathname, locales } = props;\n const content = locale === \"es\" ? es : en;\n const classes = useStyles();\n\n const __ENDPOINTS = new Endpoints(props.testMode, props.config);\n const __calculateHelper = new CalculateHelper(props.testMode, props.config);\n const __operationsHelper = new OperationsHelper(props.testMode, props.reference,props.config, props.secretKey);\n\n const __firebase = loadFirebaseDB(props.testMode, props.config);\n\n const [simulatorMode, setSimulatorMode] = useState(SimulatorMode.SEND);\n const [suscribedGlobalOptions, setSuscribedGlobalOptions] = useState(false);\n const [globalTransferOptions, setGlobalTransferOptions] = useState(null);\n const [arrayTransferOptions, setArrayTransferOptions] = useState([]);\n const [result, setResult] = useState({\n success: true,\n code: \"\",\n message: \"\"\n });\n\n const [storeId, setStoreId] = useState(null);\n const [sender, setSender] = useState(new TransferUser(UserType.SENDER));\n const [transferDetail, setTransferDetail] = useState(new TransferDetail());\n const [receiver, setReceiver] = useState(new TransferUser(UserType.RECEIVER));\n\n const [typingTimeout, setTypingTimeout] = useState(0);\n const [recalculate, setRecalculate] = useState(true);\n const [toModel, setToModel] = useState(null);\n\n const isFirstRender = useRef(true);\n\n const updateTransferOptions = async (options) => {\n let newOptions = await __calculateHelper.getCaculateRates(options);\n newOptions.expiration = +new Date().getTime();\n newOptions.frequency = 43200;\n\n await __firebase\n .firestore()\n .collection(\"variables\")\n .doc(\"transfer-options\")\n .update(newOptions);\n };\n\n const updateWalletTransaction = async (storeId, sender, receiver) => {\n let newData = {\n from: {\n amount: sender.amount,\n amountConverted: receiver.amount,\n fees: sender.fees,\n exchangeRate: 1\n },\n to: {\n amount: receiver.amount\n }\n };\n\n await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .update(newData);\n };\n\n const applyTransferSender = (transferOptions, source, amount, currency) => {\n return new TransferUser(UserType.SENDER)\n .setTransferOptions(transferOptions)\n .setTransferOption(source)\n .setLimits()\n .setCurrency(currency)\n .setTransferAmount(amount, 1, 100, 100);\n }\n\n const applyTransferReceiver = (sender, transferOptions, target, currency) => {\n let validTargets = sender.selectedOption.send.targets;\n return new TransferUser(UserType.RECEIVER)\n .setTransferOptions(transferOptions.filter(x => validTargets.includes(x.code)))\n .setTransferOption(target)\n .setLimits()\n .setCurrency(currency)\n .setTransferAmount(100, 1, 100, 100);\n }\n\n const cleanSimulationMode = (storeId, mode, transferType = TransferType.COUNTRY, senderCountry = \"US\", senderAmount = 100, receiverCountry = props.initialCountryTo, senderCurrency, receiverCurrency) => {\n let senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n if (mode == SimulatorMode.COLLECT) {\n senderOptions = senderOptions.filter(x => x.type == TransferType.COUNTRY);\n if (transferType == TransferType.WALLET) {\n senderCountry = \"US\";\n receiverCountry = props.initialCountryTo;\n }\n }\n let senderModel = applyTransferSender(senderOptions, senderCountry, senderAmount, senderCurrency);\n\n let receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled && x.collect.sources.includes(senderCountry));\n let receiverModel = applyTransferReceiver(senderModel, receiverOptions, receiverCountry, receiverCurrency);\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == TransferType.COUNTRY ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n let transferDetailModel = new TransferDetail().setDetails(senderModel, receiverModel);\n\n setSender(senderModel);\n setReceiver(receiverModel);\n setTransferDetail(transferDetailModel);\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount)\n }));\n\n if (senderModel.amount >= senderModel.minAmount && senderModel.amount <= senderModel.maxAmount) calculateReceiver(storeId, senderModel, receiverModel);\n }\n\n /**\n * HANDLERS\n */\n\n const handleSimulatorMode = async (mode) => {\n if (mode == simulatorMode) return;\n cleanSimulation(simulatorMode === SimulatorMode.SEND ? SimulatorMode.COLLECT : SimulatorMode.SEND);\n };\n\n const handleSendAmount = async ({ target }) => {\n\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n senderModel.amount = +target.value;\n let receiverModel = receiver;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: senderModel.amount\n }));\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount),\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= senderModel.minAmount && +target.value <= senderModel.maxAmount) calculateReceiver(storeId, senderModel, receiverModel);\n };\n\n const handleSendCountry = ({ target }, option) => {\n\n\n let senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n\n let senderModel = applyTransferSender(senderOptions, option.code, sender.amount, option.currency);\n let newReceiverCountry = senderModel.selectedOption.send.targets.includes(receiver.selectedOption.code) ? receiver.selectedOption.code : senderModel.selectedOption.send.targets[0];\n let receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled && x.collect.sources.includes(option.code));\n let receiverModel = applyTransferReceiver(senderModel, receiverOptions, newReceiverCountry, option.currency);\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n selectedOption: senderModel.selectedOption,\n minAmount: senderModel.minAmount?.toFixed(2),\n maxAmount: senderModel.maxAmount?.toFixed(2)\n }));\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, option.currency, \"\");\n receiverModel.expirationDate = expiration;\n receiverModel.isLoading = true;\n receiverModel.isDisabled = !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount);\n setReceiver(receiverModel);\n\n let transferDetailModel = new TransferDetail().setDetails(senderModel, receiverModel);\n setTransferDetail(transferDetailModel);\n\n if (senderModel.amount >= senderModel.minAmount && senderModel.amount <= senderModel.maxAmount) {\n if (senderModel.selectedOption.type == TransferType.COUNTRY) {\n calculateReceiver(storeId, senderModel, receiverModel);\n } else {\n calculateReceiverWallet(storeId, senderModel, receiverModel);\n }\n }\n };\n\n const handleReceiveAmount = async ({ target }) => {\n\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n let receiverModel = receiver;\n receiverModel.amount = +target.value;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: true,\n }));\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: receiverModel.amount,\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= receiverModel.minAmount && +target.value <= receiverModel.maxAmount) {\n if (senderModel.selectedOption.type == TransferType.COUNTRY) {\n calculateSender(storeId, senderModel, receiverModel);\n } else {\n calculateSenderWallet(storeId, senderModel, receiverModel);\n }\n }\n };\n\n const handleReceiveCountry = ({ target }, option) => {\n\n let onlyCountry = simulatorMode == SimulatorMode.COLLECT;\n let newReceiverCountry = arrayTransferOptions.find(x => x.code == option.code);\n let newSenderCountry = newReceiverCountry.collect.sources.includes(sender.selectedOption.code) ?\n sender.selectedOption.code :\n newReceiverCountry.collect.sources[0];\n\n let senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n senderOptions = onlyCountry ? senderOptions.filter(x => x.type == TransferType.COUNTRY) : senderOptions;\n\n let senderModel = applyTransferSender(senderOptions, newSenderCountry, sender.amount, sender.currency);\n\n let receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled);\n let receiverModel = applyTransferReceiver(senderModel, receiverOptions, option.code, option.currency);\n\n senderModel.isLoading = false;\n senderModel.isDisabled = false;\n setSender(senderModel);\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount),\n selectedOption: receiverModel.selectedOption,\n minAmount: receiverModel.minAmount?.toFixed(2),\n maxAmount: receiverModel.maxAmount?.toFixed(2),\n expirationDate: receiverModel.expirationDate\n }));\n\n if (senderModel.amount >= senderModel.minAmount && senderModel.amount <= senderModel.maxAmount) {\n if (senderModel.selectedOption.type == TransferType.COUNTRY) {\n calculateReceiver(storeId, senderModel, receiverModel);\n } else {\n calculateReceiverWallet(storeId, senderModel, receiverModel);\n }\n }\n };\n\n const handleWalletSendAmount = async ({ target }) => {\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n senderModel.amount = +target.value;\n let receiverModel = receiver;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: senderModel.amount\n }));\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !senderModel.minAmount || !senderModel.maxAmount ? true : (senderModel.amount < senderModel.minAmount || senderModel.amount > senderModel.maxAmount),\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= senderModel.minAmount && +target.value <= senderModel.maxAmount) {\n setTypingTimeout(setTimeout(async () => {\n calculateReceiverWallet(storeId, senderModel, receiverModel);\n }, 1000));\n }\n };\n\n const handleWalletReceiveAmount = async ({ target }) => {\n clearTimeout(typingTimeout);\n\n let senderModel = sender;\n let receiverModel = receiver;\n receiverModel.amount = +target.value;\n\n let { expiration } = __operationsHelper.calculateExpirationDate(senderModel.selectedOption.type == \"country\" ? \"transference\" : \"recharge\", senderModel.currency, receiverModel.currency, \"\");\n receiverModel.expirationDate = expiration;\n\n setSender((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: true,\n }));\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: receiverModel.amount,\n expirationDate: receiverModel.expirationDate\n }));\n\n if (+target.value >= receiverModel.minAmount && +target.value <= receiverModel.maxAmount) {\n setTypingTimeout(setTimeout(async () => {\n calculateSenderWallet(storeId, senderModel, receiverModel);\n }, 1000));\n }\n };\n\n /**\n * RENDER FUNCTIONS \n */\n\n const cleanSimulation = (mode = SimulatorMode.SEND) => {\n setSimulatorMode(mode);\n }\n\n /**\n * CALCULATE FUNCTIONS \n */\n\n const calculateReceiver = async (storeId, sender, receiver) => {\n\n setRecalculate(false)\n\n let model = {\n coupon: \"\",\n from: {\n amount: +sender.amount,\n country: sender.selectedOption.code,\n currency: sender.selectedOption.currency,\n },\n to: {\n amount: +receiver.amount,\n country: receiver.selectedOption.code,\n currency: receiver.selectedOption.currency,\n },\n };\n\n\n setTypingTimeout(setTimeout(async () => {\n const res = __operationsHelper.calculate(storeId, \"from\", model);\n if (res) {\n setRecalculate(true);\n }\n }, 1000))\n\n }\n\n const calculateSender = async (storeId, sender, receiver) => {\n\n setRecalculate(false)\n\n let model = {\n coupon: \"\",\n from: {\n amount: +sender.amount,\n country: sender.selectedOption.code,\n currency: sender.selectedOption.currency,\n },\n to: {\n amount: +receiver.amount,\n country: receiver.selectedOption.code,\n currency: receiver.selectedOption.currency,\n },\n };\n\n setTypingTimeout(setTimeout(async () => {\n const res = __operationsHelper.calculate(storeId, \"to\", model);\n if (res) {\n setRecalculate(true);\n }\n }, 1000))\n }\n\n const calculateAgain = async () => {\n\n setRecalculate(false)\n const storeId = sessionStorage.getItem(\"storeId\") || \"\"\n\n if (storeId === \"\") return\n\n let model = {\n coupon: \"\",\n from: {\n amount: +sender.amount,\n country: sender.selectedOption.code,\n currency: sender.selectedOption.currency,\n },\n to: {\n amount: +receiver.amount,\n country: receiver.selectedOption.code,\n currency: receiver.selectedOption.currency,\n },\n };\n\n\n const res = await __operationsHelper.calculate(storeId, \"from\", model);\n\n if (res) {\n setRecalculate(true)\n }\n\n }\n\n const initialCalculate = async () => {\n\n setRecalculate(false)\n const storeId = sessionStorage.getItem(\"storeId\") || \"\"\n\n if (storeId === \"\") return\n\n let model = {\n coupon: \"\",\n from: {\n amount: 100,\n country: \"US\",\n currency: \"USD\",\n },\n to: {\n amount: 0,\n country: props.initialCountryTo || \"PE-USD\",\n currency: countries.find(e => e.code === props.initialCountryTo)?.currency || \"USD\",\n },\n };\n\n\n const res = await __operationsHelper.calculate(storeId, \"from\", model);\n\n if (res) {\n setRecalculate(true)\n }\n\n }\n\n const calculateSenderWallet = async (storeId, sender, receiver) => {\n\n let paymentMethod = sender.selectedOption.code.toLowerCase();\n let result = await __operationsHelper.calculateWallet(\"to\", paymentMethod, receiver.amount);\n\n sender.amount = result.amount;\n sender.fees = result.fees;\n\n updateWalletTransaction(storeId, sender, receiver);\n }\n\n const calculateReceiverWallet = async (storeId, sender, receiver) => {\n\n let paymentMethod = sender.selectedOption.code.toLowerCase();\n let result = await __operationsHelper.calculateWallet(\"from\", paymentMethod, sender.amount);\n\n sender.fees = result.fees;\n receiver.amount = result.amount;\n\n updateWalletTransaction(storeId, sender, receiver);\n }\n\n const getUrl = (simulatorMode, storeId) => {\n let url = \"\"\n switch (simulatorMode) {\n case SimulatorMode.COLLECT:\n url = __ENDPOINTS.CALLBACK.referral_receive(props.appUrl, locale, storeId);\n break;\n case SimulatorMode.SEND:\n url = sender.selectedOption.type === TransferType.COUNTRY ?\n `${props.startUrl}/${storeId}` :\n __ENDPOINTS.CALLBACK.referral_recharge(props.appUrl, locale, storeId);\n break;\n }\n\n return url;\n }\n\n const updateTransactionPaymentMethods = async (paymentMethods) => {\n await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .update({\n to: {\n ...toModel,\n paymentMethods: paymentMethods\n }\n });\n }\n\n const updateReceivedAmount = async (receivedAmount) => {\n await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .update({\n \"to.amount\": receivedAmount\n });\n }\n\n const handleNext = async () => {\n if (simulatorMode == SimulatorMode.SEND) {\n await updateTransactionPaymentMethods(receiver.paymentMethods)\n }\n\n await updateReceivedAmount(receiver.amount);\n const url = getUrl(simulatorMode, storeId);\n window.location.replace(url)\n }\n\n const handleOnchangePaymentMethod = (value) => {\n\n if (!value) return;\n\n const selected = receiver.paymentMethods.find(\n (payment) => payment.id == value\n );\n\n let newOrder = receiver.paymentMethods.map((payment) => {\n if (payment.name?.toLowerCase() == selected.name?.toLowerCase()) payment.isActive = true;\n else payment.isActive = false;\n return payment;\n });\n\n setReceiver((prev) => ({\n ...prev,\n paymentMethods: arrayMove(newOrder)\n }))\n\n }\n\n const arrayMove = (array) => {\n var newArray = array.slice();\n newArray.sort(function (a) {\n return !a.isActive ? 1 : -1;\n }); // put in first\n return newArray;\n };\n\n const setFees = (fromFeesModel) => {\n if (!fromFeesModel || fromFeesModel == null) return\n let feesKeys = Object.keys(fromFeesModel)\n\n let fees = {\n traund: 0.0,\n paypal: 0.0,\n network: 0.0,\n payoneer: 0.0,\n wise: 0.0,\n deel: 0.0,\n ontop: 0.0,\n ach: 0.0,\n }\n\n let newFees = feesKeys.map((e) => ({\n [e]: fromFeesModel[e]?.amount\n }))\n\n let returnedFees = {}\n newFees.forEach(element => {\n returnedFees = {\n ...fees,\n ...element\n }\n });\n\n return returnedFees\n\n }\n\n const isOutOfLimits = () => {\n return (sender.amount < sender.minAmount || sender.amount > sender.maxAmount) ||\n (receiver.amount < receiver.minAmount || receiver.amount > receiver.maxAmount)\n }\n\n const createTransaction = async (calculateData) => {\n try {\n const transaction = await __firebase\n .firestore()\n .collection(\"transactions\")\n .add(calculateData);\n\n const storeId = transaction.id;\n setStoreId(storeId);\n sessionStorage.setItem(\"storeId\", storeId);\n\n return storeId;\n } catch (e) {\n setResult({\n success: false,\n code: 'ID-001-W',\n message: ''\n });\n\n return \"\"\n }\n };\n\n const handleTransactionData = useCallback((calculateData) => {\n const { from, to } = calculateData;\n const isUsdtReceiver = to.currency === \"USDT\";\n\n let amountReceiver = 0.0;\n let paymentMethods = to.paymentMethods?.filter(e => e.name.toLowerCase() !== \"trc20\").map((el) => ({\n ...el,\n id: el.name.replace(/ /g, \"\").toLowerCase(),\n isActive: false\n })) || [];\n\n setToModel(to);\n\n if (paymentMethods.length > 0) {\n paymentMethods[0].isActive = true;\n const activeMethod = paymentMethods.find(element => element.isActive);\n amountReceiver = activeMethod?.isWallet ? activeMethod.amountCrypto : activeMethod.amount;\n } else {\n amountReceiver = to.amount;\n }\n\n setSender(prevState => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: from.amount,\n calculatedAmount: from.amountConverted,\n fees: from.fees\n }));\n\n let taxFeeValue = 0;\n if ([\"CO\", \"PE\", \"PE-USD\"].includes(to.country)) {\n let feeTaxTo = applyTaxDiscount(from.country, to.country, from.amount, amountReceiver);\n if (feeTaxTo) {\n taxFeeValue = feeTaxTo.appliedDiscountReceiver;\n amountReceiver = feeTaxTo.newAmountReceiver;\n }\n }\n\n setTransferDetail(prevState => {\n let middleAmountResult = from.amountConverted;\n let exchangeRateResult = from.exchangeRate;\n let feesResult = setFees(from.fees) || prevState.fees;\n let showTotalFees = false;\n let totalFees = 0;\n let rate = from.exchangeRate || 0;\n let exchangeRateLabel = \"x\";\n let currencyReceiver = to.currency;\n let networkFeeValue = 0;\n\n if (isUsdtReceiver) {\n const __networkFee = 2;\n rate = 1;\n networkFeeValue = Number(Math.abs(from.amountConverted - amountReceiver / rate)).toFixed(2);\n\n if (from.currency !== \"USD\") {\n rate = ((+amountReceiver + __networkFee) / +from.amountConverted).toFixed(2);\n networkFeeValue = from?.fees?.networkFee?.amountUSD || 0;\n }\n\n exchangeRateResult = 1;\n feesResult.network = Number(networkFeeValue);\n middleAmountResult = amountReceiver;\n showTotalFees = true;\n totalFees = Number(networkFeeValue);\n }\n\n if (rate < 1) {\n exchangeRateLabel = \"÷\";\n currencyReceiver = from.currency;\n rate = (Math.floor((from.amountConverted / amountReceiver) * 100) / 100).toFixed(2);\n networkFeeValue = Number(Math.abs(amountReceiver * rate - from.amountConverted)).toFixed(2);\n exchangeRateResult = rate;\n }\n\n return {\n ...prevState,\n isLoading: false,\n showTotalFees: showTotalFees,\n amount: from.amount,\n calculatedAmount: middleAmountResult,\n exchangeRate: exchangeRateResult,\n fees: feesResult,\n currency: from.currency,\n currencyReceiver: currencyReceiver,\n totalFees: totalFees,\n exchangeRateLabel: exchangeRateLabel,\n tax: taxFeeValue\n };\n });\n\n setReceiver(prevState => ({\n ...prevState,\n isLoading: false,\n isDisabled: false,\n amount: amountReceiver,\n currency: to.currency,\n paymentMethods: addLabelToPaymentMethods(content, setIdForPaymentMethods(paymentMethods))\n }));\n }, [content]);\n\n const subscribeTransaction = async (storeId) => {\n try {\n return subscriptionRef = await __firebase\n .firestore()\n .collection(\"transactions\")\n .doc(storeId)\n .onSnapshot(async (transaction) => {\n\n if (isFirstRender.current && storeId) {\n initialCalculate()\n isFirstRender.current = false\n return\n }\n\n const calculateData = await transaction.data();\n if (calculateData) {\n handleTransactionData(calculateData);\n }\n });\n } catch (e) {\n setResult({\n success: false,\n code: 'ID-001-W',\n message: ''\n });\n }\n };\n\n useEffect(() => {\n let subscriptionRef = null;\n\n const subscribeTransferOptions = async () => {\n try {\n let optionsData = null;\n subscriptionRef = await __firebase\n .firestore()\n .collection(\"variables\")\n .doc(\"transfer-options\")\n .onSnapshot(async (options) => {\n const { expiration, frequency, ...restOptions } = options.data() || {};\n\n if (expiration && frequency) {\n const validOptions = Object.values(restOptions)\n .filter(option => option && option.code);\n\n if (validOptions.length > 0) {\n setArrayTransferOptions(validOptions);\n setSuscribedGlobalOptions(true);\n setGlobalTransferOptions(restOptions);\n\n const differenceInSeconds = (new Date().getTime() - new Date(expiration).getTime()) / 1000;\n\n if (differenceInSeconds > frequency) {\n updateTransferOptions(restOptions);\n }\n }\n }\n });\n\n return optionsData;\n } catch (e) {\n console.error(\"Error in subscribeTransferOptions: \", e);\n setResult({\n success: false,\n code: 'ID-001-W',\n message: 'Failed to subscribe to transfer options.'\n });\n }\n };\n\n subscribeTransferOptions();\n\n return () => {\n if (subscriptionRef) {\n subscriptionRef();\n }\n };\n }, [__firebase]);\n\n\n useEffect(() => {\n let storeId = sessionStorage.getItem('storeId') || \"\";\n\n let subscriptionRef = null;\n\n if (!globalTransferOptions || !suscribedGlobalOptions) return;\n\n const initializeTransfer = async () => {\n try {\n\n const senderOptions = arrayTransferOptions.filter(x => x.send.enabled);\n const senderModel = applyTransferSender(senderOptions, \"US\", 100, \"USD\");\n\n const receiverOptions = arrayTransferOptions.filter(x => x.collect.enabled && x.collect.sources.includes(\"US\"));\n const receiverInitialCurrency = countries.find(e => e.code === props.initialCountryTo)?.currency || \"USD\";\n const receiverModel = applyTransferReceiver(senderModel, receiverOptions, props.initialCountryTo, receiverInitialCurrency);\n\n const { expiration } = __operationsHelper.calculateExpirationDate(\n senderModel.selectedOption.type === \"country\" ? \"transference\" : \"recharge\",\n senderModel.currency,\n receiverModel.currency,\n \"\"\n );\n receiverModel.expirationDate = expiration;\n\n const transferDetailModel = new TransferDetail().setDetails(senderModel, receiverModel);\n\n setSender(senderModel);\n setReceiver(receiverModel);\n setTransferDetail(transferDetailModel);\n\n if (!storeId) {\n const model = {\n coupon: \"\",\n from: {\n amount: +senderModel.amount,\n country: senderModel.selectedOption.code,\n currency: senderModel.selectedOption.currency,\n },\n to: {\n amount: +receiverModel.amount,\n country: receiverModel.selectedOption.code,\n currency: receiverModel.selectedOption.currency,\n },\n timestamp: Date.now(),\n };\n\n storeId = await createTransaction(model);\n subscriptionRef = subscribeTransaction(storeId);\n sessionStorage.setItem('storeId', storeId);\n }\n\n if (storeId) {\n setStoreId(storeId);\n subscriptionRef = subscribeTransaction(storeId);\n }\n } catch (error) {\n console.error(\"Error initializing transfer:\", error);\n }\n };\n\n initializeTransfer();\n\n return () => {\n if (subscriptionRef && typeof subscriptionRef.unsubscribe === 'function') {\n subscriptionRef.unsubscribe();\n }\n };\n }, [globalTransferOptions, suscribedGlobalOptions]);\n\n // useEffect(() => {\n // if (sender.amount == 0 && receiver.amount == 0) return;\n // transferDetail.setDetails(sender, receiver);\n // }, [sender])\n\n useEffect(() => {\n\n if (simulatorMode == null) return;\n if (globalTransferOptions == null) return;\n\n setReceiver((prevState) => ({\n ...prevState,\n isLoading: true,\n isDisabled: !sender?.minAmount || !sender?.maxAmount ? true : (sender?.amount < sender?.minAmount || sender?.amount > sender?.maxAmount)\n }));\n cleanSimulationMode(storeId, simulatorMode, sender?.selectedOption?.type, sender?.selectedOption?.code, sender?.amount, receiver?.selectedOption?.code, sender?.currency, receiver?.currency);\n }, [simulatorMode])\n\n return <main>\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@400&display=swap\"\n rel=\"stylesheet\"\n />\n <Paper className={classes.root}>\n <Grid container direction=\"column\" spacing={0}>\n <Grid\n container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\" }}\n >\n <Grid item>\n <Typography\n className={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {content.simulator.header_accion}\n </Typography>\n </Grid>\n </Grid>\n\n <Grid\n container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\" }}\n >\n <Grid item xs={9}>\n <Grid container spacing={3} justifyContent=\"center\">\n <Grid item>\n <Chip\n className={(simulatorMode === SimulatorMode.SEND ? classes.chipOptionChecked : classes.chipOptionUnchecked)}\n label={content.simulator.header_chips.option_send}\n variant=\"outlined\"\n onClick={() => { handleSimulatorMode(SimulatorMode.SEND) }}\n />\n </Grid>\n <Grid item>\n <Chip\n className={(simulatorMode === SimulatorMode.COLLECT ? classes.chipOptionChecked : classes.chipOptionUnchecked)}\n label={content.simulator.header_chips.option_receive}\n variant=\"outlined\"\n onClick={() => { handleSimulatorMode(SimulatorMode.COLLECT) }}\n />\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {(simulatorMode === SimulatorMode.SEND) ?\n <Grid item xs={12}>\n <Grid container>\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n <InputAmount\n id=\"transfer-sender\"\n content={content}\n user={sender}\n onChangeAmount={sender.selectedOption.type == TransferType.COUNTRY ? handleSendAmount : handleWalletSendAmount}\n onChangeCountry={handleSendCountry}\n />\n </Grid>\n {!sender.isLoading && !receiver.isLoading &&\n <Grid item xs={12}>\n <Fees\n content={content}\n details={transferDetail}\n walletName={sender.selectedOption.type == TransferType.WALLET && sender.selectedOption.code?.toUpperCase()}\n simulatorMode={simulatorMode}\n locale={locale}\n />\n </Grid>}\n {(sender.selectedOption.type == TransferType.COUNTRY) ?\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n\n <InputAmount\n id=\"transfer-receiver\"\n content={content}\n user={receiver}\n onChangeAmount={handleReceiveAmount}\n onChangeCountry={handleReceiveCountry}\n disabled={true}\n />\n\n </Grid> :\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n\n <InputAmount\n id=\"wallet-receiver\"\n content={content}\n user={receiver}\n onChangeAmount={handleWalletReceiveAmount}\n onChangeCountry={handleReceiveCountry}\n disabled={true}\n />\n\n </Grid>\n }\n </Grid>\n </Grid> : \"\"\n }\n {(simulatorMode === SimulatorMode.COLLECT) ?\n <Grid item xs={12}>\n <Grid container>\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n <InputAmount\n id=\"collect-sender\"\n content={content}\n user={sender}\n onChangeAmount={sender.selectedOption.type == TransferType.COUNTRY ? handleSendAmount : handleWalletSendAmount}\n onChangeCountry={handleSendCountry}\n />\n </Grid>\n {!sender.isLoading && !receiver.isLoading && <Grid item xs={12}>\n <Fees\n content={content}\n details={transferDetail}\n walletName={sender.selectedOption.type == TransferType.WALLET && sender.selectedOption.code?.toUpperCase()}\n simulatorMode={simulatorMode}\n locale={locale}\n />\n </Grid>}\n <Grid item xs={12} style={{ paddingBottom: \"15px\" }}>\n <InputAmount\n id=\"collect-receiver\"\n content={content}\n user={receiver}\n onChangeAmount={handleReceiveAmount}\n onChangeCountry={handleReceiveCountry}\n disabled={true}\n />\n </Grid>\n </Grid>\n </Grid> : \"\"\n }\n\n {\n ([\"VE\", \"AR\"].includes(receiver.selectedOption.code) && !receiver.isLoading) &&\n <Grid item xs={12} style={{ marginTop: 15, marginBottom: 15 }}>\n <PaymentMethodSelector paymentMethods={receiver.paymentMethods} onChange={handleOnchangePaymentMethod} />\n </Grid>\n }\n\n {!props.onlyView && <Grid item xs={12} style={{ marginBottom: 15 }}>\n <Disclaimers\n simulatorMode={simulatorMode}\n transferType={sender.selectedOption.type}\n locale={locale}\n expirationDate={receiver.expirationDate}\n option={sender.selectedOption}\n />\n </Grid>}\n {!props.onlyView && <Grid item xs={12}>\n <Button className={classes.button} variant=\"contained\" onClick={handleNext}\n disabled={sender.isLoading || receiver.isLoading || isOutOfLimits()} fullWidth>\n {content.simulator.footer_action_button}\n </Button>\n </Grid>}\n <Grid item xs={12} style={{ marginTop: 15, marginBottom: 15, textAlign: \"center\" }}>\n {(recalculate && sender.selectedOption.type != TransferType.WALLET) && <Timer onTimeout={calculateAgain} locale={locale} />}\n </Grid>\n <Grid item xs={12} style={{ marginTop: \"30px\" }}>\n <Divider ></Divider>\n </Grid>\n <Grid item xs={12} container\n direction=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ paddingBottom: \"10px\", }} >\n <Typography\n variant=\"subtitle1\"\n style={{ display: \"flex\", alignItems: \"center\", textAlign: \"center\" }}\n >\n <span style={{ fontSize: \"10px\", textAlign: \"center\" }}>Powered by </span>\n <span style={{ fontWeight: \"bold\", fontSize: \"12px\", textAlign: \"center\" }}>Orquezta</span>\n </Typography>\n </Grid>\n </Grid>\n </Paper>\n </main>;\n}\n\nexport default Simulator;","import TransferOption from \"./transferOption\";\nimport { UserType } from \"./enums\";\n\n\nclass TransferUser {\n constructor(type = UserType.SENDER) {\n this.isLoading = false;\n this.isDisabled = false;\n this.type = type;\n this.transferOptions = [TransferOption];\n this.selectedOption = new TransferOption();\n this.amount = 0;\n this.currency = \"\";\n this.calculatedAmount = 0;\n this.paymentMethods = [];\n this.minAmount = 0;\n this.maxAmount = 0;\n this.expirationDate = new Date();\n this.fees = {\n traund: 0.0,\n paypal: 0.0,\n network: 0.0,\n payoneer: 0.0,\n wise: 0.0,\n deel: 0.0,\n ontop: 0.0,\n ach: 0.0\n };\n }\n\n setTransferOptions = (transferOptions) => {\n this.transferOptions = transferOptions;\n return this;\n }\n\n setTransferOption = (optionCode) => {\n this.selectedOption = this.transferOptions.find(x => x.code == optionCode);\n return this;\n }\n\n setLimits = () => {\n let minMaxRate = this.selectedOption.middleAmount.rateBuy;\n this.minAmount = minMaxRate * (this.type == UserType.SENDER ? this.selectedOption.send.minAmount?.toFixed(2) : this.selectedOption.collect.minAmount?.toFixed(2));\n this.maxAmount = minMaxRate * (this.type == UserType.SENDER ? this.selectedOption.send.maxAmount?.toFixed(2) : this.selectedOption.collect.maxAmount?.toFixed(2));\n return this;\n }\n\n setTransferAmount = (amount) => {\n this.amount = amount;\n return this;\n }\n\n setCurrency = (currency) => {\n this.currency = currency\n return this;\n }\n\n setPaymentMethods = (paymentMethods) => {\n this.paymentMethods = paymentMethods;\n return this;\n }\n}\n\nexport default TransferUser;","import { TransferType } from \"./enums\";\n\nclass TransferOption {\n constructor(code) {\n this.code = code;\n this.type = TransferType.COUNTRY;\n this.currency = \"\";\n this.currencyCalc = \"\";\n this.middleAmount = {\n currency: \"\",\n rateBuy: 0,\n rateSell: 0\n };\n this.send = {\n enabled: false,\n targets: [],\n minAmount: 20,\n maxAmount: 5000\n };\n this.collect = {\n enabled: false,\n sources: [],\n minAmount: 20,\n maxAmount: 5000\n };\n }\n}\n\nexport default TransferOption;\n\n\n/*\nconst transferOption = {\n type: TransferType.COUNTRY,\n code: string,\n currency: string,\n currencyCalc: string,\n middleAmount: {\n currency: \"USD\",\n rateBuy: 0,\n rateSell: 0\n },\n send: {\n enabled: false,\n targets: [],\n minAmount: 20,\n maxAmount: 5000\n },\n receive: {\n enabled: false,\n sources: [],\n minAmount: 20,\n maxAmount: 5000\n }\n}\n*/","export const TransferType = Object.freeze({\n COUNTRY: \"country\",\n WALLET: \"wallet\",\n CREDIT_CARD: \"credit-card\"\n});\n\nexport const UserType = Object.freeze({\n SENDER: \"sender\",\n RECEIVER: \"receiver\"\n});\n\nexport const SimulatorMode = Object.freeze({\n SEND: \"SEND\",\n COLLECT: \"COLLECT\"\n});\n\n\n","import RateHelper from \"./rateHelper\";\n\nclass CalculateHelper {\n constructor(testMode = 'production',config=null) {\n this._testMode = testMode;\n this.config = config;\n }\n\n async getCaculateRates(countriesData) {\n const rateHelper = new RateHelper(this._testMode, this.config);\n const middleCurrency = \"USD\";\n\n for (var key in countriesData) {\n if (countriesData.hasOwnProperty(key)) {\n let itemCountry = countriesData[key];\n if (itemCountry.code) {\n let usdRate = await rateHelper.getExchangeRate(middleCurrency, itemCountry.currencyCalc);\n if (usdRate) {\n usdRate = parseFloat(itemCountry.code == \"SV\" ? usdRate : usdRate.toFixed(2));\n countriesData[key].middleAmount.rateBuy = countriesData[key].middleAmount.rateSell = usdRate;\n }\n }\n }\n }\n\n return countriesData;\n };\n}\n\nexport default CalculateHelper;\n","import axios from \"axios\";\nimport EndPoints from \"../core/endpoints\";\n\nclass RateHelper {\n constructor(testMode = 'production',externalConfig = null) {\n this.endpoints = new EndPoints(testMode, externalConfig);\n }\n\n async getExchangeRate(currencyFrom, currencyTo) {\n try {\n if (currencyFrom === currencyTo) return 1.00;\n\n if (currencyTo == \"ARS\") {\n const { data } = await axios.get(this.endpoints.EXCHANGE.getUSDBlueRate);\n let blueRate = await JSON.parse(JSON.stringify(data));\n return blueRate.blue.value_sell;\n } else {\n const { data } = await axios.get(this.endpoints.EXCHANGE.getRate_v2(currencyFrom));\n return parseFloat(data[currencyFrom.toLowerCase()][currencyTo.toLowerCase()].toFixed(2));\n }\n } catch (e) {\n return e;\n }\n };\n\n async convertAmount(currencyFrom, currencyTo, amount) {\n try {\n if (currencyFrom === currencyTo) {\n return amount * 1.00;\n } else {\n const rate = await this.getExchangeRate(currencyFrom, currencyTo);\n return amount * rate * 1.00;\n }\n } catch (e) {\n return e;\n }\n };\n}\n\nexport default RateHelper; ","import axios from \"axios\";\nimport moment from \"moment\";\nimport EndPoints from \"../core/endpoints\";\nimport { TRANSACTION_TIMES } from \"../core/transaction-settings\";\nimport { getExpirationDate } from \"../core/working-setup\";\nimport { getSignatureHeader } from \"../../src/core/signature\";\nimport { config } from \"aws-sdk\";\n\nclass OperationsHelper {\n constructor(testMode = 'production', apiKey = null, config=null, secretKey = null) {\n this.endpoints = new EndPoints(testMode, config);\n this.reference = apiKey;\n this.secretKey = secretKey;\n this.FEES = {\n \"ach\": { type: \"A\", value: 0 },\n \"wise\": { type: \"A\", value: 0.39 },\n \"payoneer\": { type: \"P\", value: 0.02 },\n \"deel\": { type: \"A\", value: 0 },\n \"ontop\": { type: \"A\", value: 2 }\n }\n }\n\n \n\n async calculate(storeId, source, body) {\n const url = this.endpoints.OPERATIONS.calculate(storeId, source)\n return await axios.post(\n url,\n body,\n {\n headers: {\n \"x-api-access-sig\": getSignatureHeader('POST', url, body, this.reference,this.secretKey) \n },\n }\n );\n };\n\n async calculateWallet(source, paymentMethod, amount) {\n \n const defaultFee = { type: \"A\", value: 0 };\n const feeDetails = this.FEES[paymentMethod] || defaultFee;\n \n const numericAmount = Number(amount) || 0;\n\n let fee = parseFloat((feeDetails.type === \"A\" ? feeDetails.value : numericAmount * feeDetails.value).toFixed(2));\n \n let amountCalc = source === \"from\" ? (numericAmount - fee) : (numericAmount + fee);\n \n let fees = { total: fee, data: [] };\n fees[paymentMethod] = {\n type: feeDetails.type,\n value: feeDetails.value,\n amount: fee,\n amountUSD: fee,\n exchangeRate: 1,\n forgiven: false\n };\n \n return {\n amount: amountCalc,\n fees\n };\n }\n \n\n calculateExpirationDate(transactionType, fromCurrency, toCurrency, toPaymentMethod) {\n const now = new Date();\n\n const settings = this.getSettingsForDates(transactionType, fromCurrency, toCurrency, toPaymentMethod);\n const result = getExpirationDate(settings.TYPE, now, settings.PROCESS_TIME, settings.UNIT)\n\n return {\n now,\n expiration: result[\"$d\"]\n }\n }\n\n getSettingsForDates(transactionType, fromCurrency, toCurrency, toPaymentMethod) {\n let timeSettings = TRANSACTION_TIMES[transactionType].default;\n let fromEval = fromCurrency === 'USDT' ? 'USD' : fromCurrency;\n let toEval = toCurrency === 'USDT' ? 'USD' : toCurrency;\n\n if (fromEval === toEval) {\n return TRANSACTION_TIMES[transactionType].same;\n }\n\n if (toCurrency === \"COP\" && toPaymentMethod !== \"bancolombia\") {\n return TRANSACTION_TIMES[transactionType][\"CO-others\"];\n }\n\n return timeSettings;\n }\n}\n\nexport default OperationsHelper; ","const __sendMoneyTime = 720;\nconst __addFundsTime = 5;\n\nexport const TRANSACTION_SETTINGS = {\n \"transference\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"pay\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"warranty\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"wallet\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\"\n },\n \"recharge\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\"\n },\n \"withdrawal\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __sendMoneyTime,\n UNIT: \"minutes\"\n },\n \"debiting\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\"\n }\n}\n\nconst __twelve_hours_in_minutes = 720;\nconst __twentyfour_hours_in_minutes = 1440;\nconst __two_days_in_minutes = 1440;\nconst __three_days_in_minutes = 2160;\n\nexport const TRANSACTION_TIMES = {\n \"transference\": {\n \"default\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n },\n \"CO-others\": {\n EXPIRATION_TIME: 30,\n PROCESS_TIME: __two_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"pay\": {\n \"default\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n },\n \"CO-others\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __two_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"warranty\": {\n \"default\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n }\n },\n \"wallet\": {\n \"default\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"recharge\": {\n \"default\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_TRAUND\"\n }\n },\n \"withdrawal\": {\n \"default\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __twelve_hours_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __three_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_BANKS_TRANSFER\"\n },\n \"CO-others\": {\n EXPIRATION_TIME: 720,\n PROCESS_TIME: __two_days_in_minutes,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"debiting\": {\n \"default\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n },\n \"same\": {\n EXPIRATION_TIME: 3,\n PROCESS_TIME: 3,\n UNIT: \"minutes\",\n TYPE: \"BUSINESS_HOURS_TRAUND\"\n }\n },\n \"creditcard-stripe\": {\n \"default\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_BANKS_TRANSFER\"\n },\n \"same\": {\n EXPIRATION_TIME: 7200,\n PROCESS_TIME: __addFundsTime,\n UNIT: \"days\",\n TYPE: \"BUSINESS_DAYS_BANKS_TRANSFER\"\n }\n },\n}","const dayJs = require('dayjs');\nconst dayjsBusinessTime = require('dayjs-business-time');\nvar utc = require('dayjs/plugin/utc')\nconst businessHours = dayJs.extend(dayjsBusinessTime);\n\nconst __start_part_1 = '00:00:00';\nconst __end_part_1 = '02:00:00';\nconst __start_part_2 = '13:00:00';\nconst __end_part_2 = '23:59:59';\n\nconst HOLIDAYS = [\n '2024-01-01',\n '2024-04-06',\n '2024-04-07',\n '2024-04-08',\n '2024-04-09',\n '2024-05-01',\n '2024-06-03',\n '2024-06-04',\n '2024-06-05',\n '2024-06-09',\n '2024-06-10',\n '2024-06-11',\n '2024-06-15',\n '2024-07-07',\n '2024-07-08',\n '2024-07-09',\n '2024-07-10',\n '2024-08-02',\n '2024-08-03',\n '2024-08-30',\n '2024-08-31',\n '2024-09-01',\n '2024-09-02',\n '2024-09-03',\n '2024-09-04',\n '2024-09-21',\n '2024-09-22',\n '2024-09-23',\n '2024-09-24',\n '2024-09-25',\n '2024-09-27',\n '2024-09-28',\n '2024-09-29',\n '2024-09-30',\n '2024-10-01',\n '2024-10-02',\n '2024-10-03',\n '2024-10-09',\n '2024-11-09',\n '2024-11-10',\n '2024-11-11',\n '2024-11-12',\n '2024-11-13',\n '2024-11-23',\n '2024-12-22',\n '2024-12-23',\n '2024-12-24',\n '2024-12-25',\n '2024-12-29',\n '2024-12-30',\n '2024-12-31',\n '2025-01-01',\n]\n\nconst BUSINESS_HOURS_TODAY = {\n sunday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n monday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n saturday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ]\n}\n\nconst BUSINESS_HOURS_TRAUND = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n saturday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ]\n}\n\nconst BUSINESS_HOURS_BANKS_TRANSFER = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_1 },\n { start: __start_part_2, end: __end_part_2 }\n ],\n saturday: null\n}\n\nconst BUSINESS_DAYS_TRAUND = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n}\n\nconst BUSINESS_DAYS_BANKS_TRANSFER = {\n sunday: null,\n monday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n tuesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n wednesday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n thursday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n friday: [\n { start: __start_part_1, end: __end_part_2 }\n ],\n saturday: null\n}\n\nexport function getExpirationDate(calculateType, day, timeToAdd, unit) {\n let config = BUSINESS_HOURS_TRAUND;\n switch (calculateType) {\n case \"BUSINESS_HOURS_TRAUND\":\n config = BUSINESS_HOURS_TRAUND;\n break;\n case \"BUSINESS_HOURS_BANKS_TRANSFER\":\n config = BUSINESS_HOURS_BANKS_TRANSFER;\n break;\n case \"BUSINESS_DAYS_TRAUND\":\n config = BUSINESS_DAYS_TRAUND;\n break;\n case \"BUSINESS_DAYS_BANKS_TRANSFER\":\n config = BUSINESS_DAYS_BANKS_TRANSFER;\n break;\n }\n businessHours.setHolidays(HOLIDAYS);\n businessHours.setBusinessTime(config);\n return businessHours(day).addBusinessTime(timeToAdd, unit);\n}\n\nexport function getLastBusinessTime(calculateType, day) {\n let config = BUSINESS_HOURS_TRAUND;\n switch (calculateType) {\n case \"BUSINESS_HOURS_TRAUND\":\n config = BUSINESS_HOURS_TRAUND;\n break;\n case \"BUSINESS_HOURS_BANKS_TRANSFER\":\n config = BUSINESS_HOURS_BANKS_TRANSFER;\n break;\n case \"BUSINESS_DAYS_TRAUND\":\n config = BUSINESS_DAYS_TRAUND;\n break;\n case \"BUSINESS_DAYS_BANKS_TRANSFER\":\n config = BUSINESS_DAYS_BANKS_TRANSFER;\n break;\n case \"BUSINESS_HOURS_TODAY\":\n config = BUSINESS_HOURS_TODAY;\n break;\n }\n //businessHours.setHolidays(HOLIDAYS);\n businessHours.setBusinessTime(config);\n return businessHours(day)\n .nextBusinessDay()\n .lastBusinessTime();\n}","import React, { Fragment } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport InputBase from \"@material-ui/core/InputBase\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport TextField from \"@material-ui/core/TextField\";\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\nimport FlagsHelpers from \"./../helpers/flagsHelpers\";\n\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { matchSorter } from \"match-sorter\";\n\nimport componentStyles from \"./componentStyles\";\n\nconst filterOptions = (options, { inputValue }) => {\n return matchSorter(options, inputValue, { keys: [\"label\", \"currency\"] });\n}\nconst InputAmount = (props) => {\n const classes = componentStyles;\n\n const {\n id,\n content,\n user,\n onChangeAmount,\n onChangeCountry,\n disabled = false\n } = props;\n\n let transferOptions = user.transferOptions;\n let selectedOption = user.selectedOption;\n let labels = {\n \"transfer-sender\": content.common.sender.transfer_action,\n \"transfer-receiver\": content.common.receiver.transfer_action,\n \"collect-sender\": content.common.sender.collect_action,\n \"collect-receiver\": content.common.receiver.collect_action,\n \"wallet-sender\": content.common.sender.wallet_action,\n \"wallet-receiver\": content.common.receiver.wallet_action\n }\n\n\n return (\n <>\n <Grid container direction=\"column\" spacing={0}>\n <Grid item xs={12}>\n <Typography\n style={classes.labelAmount}\n gutterBottom\n variant=\"subtitle1\"\n component=\"div\"\n >\n {labels[id]}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Grid container>\n <Grid item xs={5}>\n <Paper style={classes.inputAmount}>\n <InputBase\n id={id}\n style={classes.inputAmountText}\n required\n value={user.isLoading || user.isDisabled ? \"\" : (user.amount > 0 ? user.amount.toString() : \"\").toString()}\n type=\"number\"\n disabled={user.isLoading || user.isDisabled || disabled}\n startAdornment={\n <InputAdornment\n position=\"start\"\n style={{ marginTop: \"0px\" }}\n >\n <span> {user.isLoading && !user.isDisabled && <CircularProgress size={18} />} </span>\n </InputAdornment>\n }\n inputprops={{\n inputProps: { min: user.minAmount, max: user.maxAmount },\n }}\n onChange={onChangeAmount}\n />\n </Paper>\n </Grid>\n <Grid item xs={7}>\n <Autocomplete\n disabled={user.isLoading || user.isDisabled}\n options={transferOptions}\n style={{\n fontSize: 12,\n fontWeight: 600,\n \"& > span\": {\n marginRight: 10,\n fontSize: 18,\n },\n }}\n filterOptions={filterOptions}\n value={\n transferOptions.find(x => x.code == selectedOption.code)\n }\n autoHighlight\n getOptionLabel={(option) =>\n `${option?.currency || \"\"}`\n }\n renderOption={(option) => (\n <Fragment>\n <span style={{ marginRight: \"5px\" }}>\n <FlagsHelpers code={option.code == \"PE-USD\" ? \"PE\" : option.code} />\n </span>\n {\" \"}\n {option?.currency || \"\"}\n </Fragment>\n )}\n disableClearable\n renderInput={(params) => (\n <Paper variant=\"outlined\" style={classes.rootFlags} >\n <TextField\n style={{ fontSize: \"15px\" }}\n {...params}\n variant=\"standard\"\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <FlagsHelpers\n code={selectedOption.code == \"PE-USD\" ?\n \"PE\" :\n selectedOption.code\n }>\n </FlagsHelpers>\n ),\n disableUnderline: true,\n }}\n />\n </Paper>\n )}\n onChange={onChangeCountry}\n />\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={12}>\n {!user.isLoading && !user.isDisabled && (\n <FormHelperText style={{ color: \"red\" }}>\n {(user.amount < user.minAmount &&\n content.common.min_value.replace(\n \"minValue\",\n user.minAmount\n )) ||\n (user.amount > user.maxAmount &&\n content.common.max_value.replace(\n \"maxValue\",\n user.maxAmount\n ))}\n </FormHelperText>\n )}\n </Grid>\n\n </Grid>\n </>\n );\n}\n\nexport default InputAmount;\n","const componentStyles = {\n root: {\n fontFamily: \"Poppins\",\n padding: \"26px 21px\",\n maxWidth: 400,\n flexGrow: 1,\n borderRadius: \"24px\",\n borderWidth: \"1px\",\n backgroundColor: \"#FFFFFF\",\n boxShadow: \"0px 4px 7px rgba(61, 71, 86, 0.52)\"\n },\n labelAmount: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n labelExpiration: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputExpiration: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#008AFF\"\n },\n inputAmount: {\n background: \"#C7CDD7\",\n borderRadius: \"2px\"\n },\n inputAmountText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 600,\n fontSize: \"20px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n labelCoupon: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"15px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n inputCoupon: {\n background: \"#A1ACBD\",\n borderRadius: \"2px\"\n },\n inputCouponText: {\n marginLeft: \"10px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"18px\",\n lineHeight: \"20px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n buttonStart: {\n background: \"#008AFF\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n buttonStartDisabled: {\n background: \"#C0C0C0\",\n borderRadius: \"12px\",\n maxWidth: \"100%\",\n minWidth: \"100%\"\n },\n textButtonStart: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\"\n },\n labelUpdateTC: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"14px\",\n lineHeight: \"16px\",\n color: \"#000F37\",\n textAlign: \"center\"\n },\n textTimeTC: {\n fontWeight: \"bold\",\n textAlign: \"center\"\n },\n divider: {\n height: 28,\n margin: 4\n },\n rootFlags: {\n fontFamily: \"Poppins\",\n padding: \"5px 5px\",\n minWidth: 100,\n //maxWidth: 150,\n borderWidth: \"0px\",\n },\n};\nexport default componentStyles;\n","import { Divider, Grid, Typography } from \"@material-ui/core\";\nimport { SimulatorMode } from \"../model/enums\";\nimport { useEffect, useState } from \"react\";\n\nconst Fees = (props) => {\n\n const { content, details, simulatorMode, walletName = \"\", locale } = props;\n const [isUSDTReceiver, setIsUSDTReceiver] = useState(false);\n\n useEffect(() => {\n setIsUSDTReceiver(details.currencyReceiver == \"USDT\")\n }, [details])\n\n return <Grid container direction=\"column\" spacing={0} style={{ marginBottom: 15 }}>\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {details.fees.traund.toFixed(2)}{\" \"}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.comision}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n\n {\n walletName?.length > 0 &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\"></Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ textAlign: \"right\" }}\n >\n {(details.fees.payoneer || details.fees.wise || details.fees.deel || details.fees.ontop || 0).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {locale == \"es\" &&\n <span>\n {content?.calculator.wallet_fee}{\" \"}{walletName[0]}<span style={{ textTransform: 'lowercase' }}>{walletName.slice(1)}</span>\n </span>}\n {locale == \"en\" &&\n <span>\n {walletName[0]}<span style={{ textTransform: 'lowercase' }}>{walletName.slice(1)}</span>{\" \"}{content?.calculator.wallet_fee}\n </span>}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n <Grid item xs={12}>\n <Divider style={{ margin: 4 }}></Divider>\n </Grid>\n {(details.showTotalFees && !isUSDTReceiver) &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.totalFees}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.total_fees}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n {isUSDTReceiver &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"body2\"\n color=\"textPrimary\">\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n style={{ textAlign: \"right\" }}\n >\n {(details.calculatedAmount + details.fees.network).toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">\n {` USDT`}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.converted_amount_network}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n {isUSDTReceiver &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"body2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}>\n -\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"body2\"\n style={{ textAlign: \"right\" }}\n >\n {details.fees.network.toFixed(2)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">\n {` USDT`}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"body2\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.tron_network_fee}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n =\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.calculatedAmount}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {isUSDTReceiver ? \"USDT\" : details.currency}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {(walletName?.length > 0 || simulatorMode == SimulatorMode.COLLECT) ? content?.calculator.converted_amount_receive : content?.calculator.converted_amount}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.exchangeRateLabel}\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.exchangeRate}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {isUSDTReceiver ? \"USDT\" : (details.exchangeRateLabel == \"x\" ? details.currencyReceiver : details.currency)}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {content?.calculator.exchange_rate}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n {details.tax > 0 &&\n <Grid item xs={12} style={{ display: \"contents\" }}>\n <Grid container spacing={1}>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n -\n </Typography>\n </Grid>\n <Grid item md={4}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"right\" }}\n >\n {details.tax}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\" }}\n >\n {details.currencyReceiver}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <Typography variant=\"body2\" color=\"textSecondary\">{\" \"}</Typography>\n </Grid>\n <Grid item xs={5}>\n <Typography\n variant=\"subtitle2\"\n color=\"textPrimary\"\n style={{ fontWeight: \"bold\", textAlign: \"left\", marginLeft: \"10px\" }}\n >\n {details.currencyReceiver == \"COP\" ? content?.calculator.tax_co : content?.calculator.tax_pe}\n </Typography>\n </Grid>\n </Grid>\n </Grid>\n }\n </Grid>\n}\n\nexport default Fees;","import { Alert } from \"@material-ui/lab\";\nimport en from \"../locale/en\";\nimport es from \"../locale/es\";\nimport { Typography } from \"@material-ui/core\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { useEffect, useState } from \"react\";\nimport { SimulatorMode, TransferType } from \"../model/enums\";\nimport { countries } from \"../data/countries\";\nimport moment from \"moment\";\n\nconst Disclaimers = (props) => {\n\n const disclaimerTypes = {\n send: \"send\",\n sendWithIntegration: \"sendWithIntegration\",\n receive: \"receive\",\n receiveWithIntegration: \"receiveWithIntegration\",\n wallet: \"wallet\"\n }\n\n const {\n locale,\n expirationDate,\n simulatorMode,\n transferType,\n option } = props;\n\n const content = locale == \"es\" ? es : en;\n const [name, setName] = useState(\"\");\n const [expiration, setExpiration] = useState(moment(expirationDate).locale(locale).format('LL'));\n \n const pickUpAlert = (name, option) => {\n\n const optionName = getOptionName(option);\n \n let __expiration = expiration.charAt(0).toUpperCase() + expiration.slice(1);\n\n switch (name) {\n case disclaimerTypes.send:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography variant=\"body2\">\n {content.disclaimers.send}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\">\n {content.disclaimers.sendDescription} {\" \"}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\" style={{ color: \"#666\" }}>\n <b>{__expiration}</b>\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.sendWithIntegration:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography style={{ fontSize: \"0.8rem\" }}>\n {content.disclaimers.send}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\">\n {content.disclaimers.sendDescription}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\" style={{ color: \"#666\" }}>\n <b>{__expiration}</b>\n </Typography>\n <Typography variant=\"caption\" align=\"justify\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.sendDisclaimer?.replace(\"{COUNTRY}\", optionName)}\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.receive:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography style={{ fontSize: \"0.8rem\" }}>\n {content.disclaimers.receive}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"justify\">\n {content.disclaimers.receiveDescription}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"caption\" style={{ color: \"#878787\"}}>\n {\n (simulatorMode === SimulatorMode.COLLECT && option.code == \"US\") ? content.disclaimers.receiveZelle : content.disclaimers.receiveBanks\n }\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.receiveWithIntegration:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography style={{ fontSize: \"0.8rem\" }}>\n {content.disclaimers.receive}\n </Typography>\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"justify\">\n {content.disclaimers.receiveDescription}\n </Typography>\n <Typography variant=\"caption\" align=\"justify\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.receiveDisclaimer?.replace(\"{COUNTRY}\", optionName)}\n </Typography>\n <Typography variant=\"caption\" style={{ color: \"#878787\"}}>\n {\n (simulatorMode === SimulatorMode.COLLECT && option.code == \"US\") ? content.disclaimers.receiveZelle : content.disclaimers.receiveBanks\n }\n </Typography>\n </Grid>\n </Grid>\n case disclaimerTypes.wallet:\n return <Grid container spacing={2}>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n {content.disclaimers.wallet}\n </Alert>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\">\n {content.disclaimers.walletDescription}\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\" align=\"center\" style={{ color: \"#666\" }}>\n <b>{__expiration}</b>\n </Typography>\n {option.code == \"ACH\" ?\n <Typography variant=\"caption\" align=\"center\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.walletDisclaimerACH}\n </Typography> :\n <Typography variant=\"caption\" align=\"center\"\n style={{ display: \"inline-block\", color: \"#878787\", lineHeight: \"15px\", marginTop: 10, maringBottom: 15 }}>\n {content.disclaimers.walletDisclaimer?.replace(\"{PAYMENTMETHOD}\", optionName)}\n </Typography>}\n </Grid>\n {/* <Grid item xs={12}>\n <Alert severity=\"warning\">\n {content.disclaimers.walletDisclaimer?.replace(\"{PAYMENTMETHOD}\", optionName)}\n </Alert>\n </Grid> */}\n </Grid>\n default:\n return <Typography>{\" \"}</Typography>\n }\n }\n\n const getName = (simulatorMode, transferType, countryCode) => {\n\n let name = \"\";\n\n if (simulatorMode == SimulatorMode.SEND && [\"MX\", \"CL\"].includes(countryCode)) {\n name = disclaimerTypes.sendWithIntegration\n }\n else if (simulatorMode == SimulatorMode.SEND) {\n name = disclaimerTypes.send\n }\n\n if (simulatorMode == SimulatorMode.COLLECT && [\"MX\", \"CL\"].includes(countryCode)) {\n name = disclaimerTypes.receiveWithIntegration\n }\n else if (simulatorMode == SimulatorMode.COLLECT) {\n name = disclaimerTypes.receive\n }\n\n if (transferType == TransferType.WALLET) {\n name = disclaimerTypes.wallet\n }\n\n return name;\n }\n\n const getCountryByCode = (countryCode) => {\n return countries.find(e => e.code === countryCode)\n }\n\n const getOptionName = (option) => {\n if (option.type == TransferType.WALLET) {\n return option.code?.toUpperCase()\n }\n else {\n return getCountryByCode(option.code)?.label\n }\n }\n\n useEffect(() => {\n const name = getName(simulatorMode, transferType, option.code);\n setName(name)\n setExpiration(moment(expirationDate).locale(locale).format('LL'))\n }, [simulatorMode, transferType, option, locale, expirationDate])\n\n return (\n pickUpAlert(name, option)\n )\n}\n\nexport default Disclaimers;","import TransferOption from \"./transferOption\";\nimport { UserType } from \"./enums\";\n\nclass TransferDetail {\n constructor() {\n this.isLoading = false;\n this.showTotalFees = false;\n this.currency = \"\";\n this.currencyReceiver = \"\";\n this.amount = 0;\n this.calculatedAmount = 0;\n this.exchangeRateLabel = \"x\";\n this.exchangeRate = 0;\n this.fees = {\n traund: 0.0,\n paypal: 0.0,\n network: 0.0,\n payoneer: 0.0,\n wise: 0.0,\n deel: 0.0,\n ontop: 0.0,\n ach: 0.0,\n tax: 0.00\n };\n this.totalFees = 0;\n this.middleAmount = 0;\n this.cryptoAmount = 0;\n }\n\n setFees = (fees) => {\n this.fees = fees;\n return this;\n }\n\n setDetails = (sender, receiver) => {\n const withoutFee = { amount: 0, value: 0, type: \"A\", amountUSD: 0, enabled: false };\n\n const isUsdt = receiver?.selectedOption?.currency == \"USDT\";\n const convertValue = sender.calculatedAmount;\n const receivedValue = receiver.amount;\n const fromExchangeRate = sender.exchangeRate;\n const fees = sender.fees;\n\n const sendValue = sender.amount;\n const paymentMethods = receiver.paymentMethods;\n\n this.currencyReceiver = receiver?.selectedOption?.currency || \"\"\n this.currency = sender.selectedOption?.currency;\n this.showTotalFees = false;\n this.exchangeRateLabel = \"x\";\n\n if (convertValue != 0 && receivedValue != 0 && fees) {\n\n let feeTaxTo = applyTaxDiscount(sender.code, receiver.code, convertValue, receivedValue);\n\n let feeTraund = fees.traund != null ? { ...fees.traund, enabled: true } : withoutFee;\n let feePaypal = fees.paypal != null ? { ...fees.paypal, enabled: true } : withoutFee;\n let feePayoneer = fees.payoneer != null ? { ...fees.payoneer, enabled: true } : withoutFee;\n let feeWise = fees.wise != null ? { ...fees.wise, enabled: true } : withoutFee;\n let feeDeel = fees.deel != null ? { ...fees.deel, enabled: true } : withoutFee;\n let feeACH = fees.ach != null ? { ...fees.ach, enabled: true } : withoutFee;\n let feeOntop = fees.ontop != null ? { ...fees.ontop, enabled: true } : withoutFee;\n let feeTax = feeTaxTo ? { amount: feeTaxTo, value: 0, type: \"A\", amountUSD: 0, enabled: true } : withoutFee;\n\n let rate = fromExchangeRate || 0;\n let networkFeeValue = 0.00;\n let traundFeeValue = feeTraund.enabled ? feeTraund?.amount : 0.00;\n let paypalFeeValue = feePaypal.enabled ? feePaypal?.amount : 0.00;\n let payoneerFeeValue = feePayoneer.enabled ? feePayoneer?.amount : 0.00;\n let wiseFeeValue = feeWise.enabled ? feeWise?.amount : 0.00;\n let deelFeeValue = feeDeel.enabled ? feeDeel?.amount : 0.00;\n let achFeeValue = feeACH.enabled ? feeACH?.amount : 0.00;\n let ontopFeeValue = feeOntop.enabled ? feeOntop?.amount : 0.00;\n let taxFeeValue = feeTax.enabled ? feeTax.amount : 0.00;\n\n this.showTotalFees = paypalFeeValue > 0;\n if (isUsdt) {\n rate = 1;\n networkFeeValue = Number(Math.abs(convertValue - receivedValue / rate)).toFixed(2);\n if (this.currency != \"USD\") {\n {\n if (paymentMethods.length && paymentMethods[0].isWallet) {\n networkFeeValue = Number(Math.abs(sendValue - Number(paymentMethods[0].amount) / fromExchangeRate)).toFixed(2)\n }\n }\n }\n this.cryptoAmount = receivedValue;\n this.showTotalFees = true;\n }\n\n if (rate < 1) {\n this.exchangeRateLabel = \"÷\"\n rate = (Math.floor((convertValue / receivedValue) * 100) / 100).toFixed(2);\n networkFeeValue = Number(Math.abs(receivedValue * rate - convertValue)).toFixed(2);\n }\n\n this.exchangeRate = rate;\n this.totalFees = traundFeeValue + paypalFeeValue + payoneerFeeValue + wiseFeeValue + deelFeeValue + achFeeValue + ontopFeeValue + networkFeeValue;\n this.fees = {\n traund: traundFeeValue,\n paypal: paypalFeeValue,\n network: networkFeeValue,\n payoneer: payoneerFeeValue,\n wise: wiseFeeValue,\n deel: deelFeeValue,\n ontop: ontopFeeValue,\n ach: achFeeValue,\n tax: taxFeeValue\n }\n }\n return this;\n };\n}\n\nexport default TransferDetail;","export const addLabelToPaymentMethods = (content, paymentMethods) => {\n if (paymentMethods) {\n return paymentMethods.map(paymentMethod => ({\n ...paymentMethod,\n label: paymentMethodLabel(content, paymentMethod.name)\n }));\n }\n}\n\nexport const paymentMethodLabel = (content, paymentMethodName) => {\n\n const labels = {\n Zelle: 'Zelle',\n BBVABank: content.banks.bbva,\n STP: 'STP',\n BANK: 'BANK',\n CreditBankOfPeru: content.banks.bcp,\n Interbank: 'Interbank',\n ScotiabankPeru: content.banks.scotiabank_peru,\n WesternDiscountBank: content.banks.western_discount_bank,\n Provincial: 'Provincial',\n Mercantil: 'Mercantil',\n Banesco: 'Banesco',\n UalaNew: 'Ualá',\n MercadoPagoNew: 'Mercado Pago',\n bank: 'Otra entidad financiera (CBU)'\n }\n return paymentMethodName in labels ? labels[paymentMethodName] : paymentMethodName;\n}\n\nexport const setIdForPaymentMethods = (payments) => {\n if (payments) {\n let paymentsWithId = payments.map((el) => {\n return {\n ...el,\n id: el.name.replace(/ /g, \"\").toLowerCase()\n };\n });\n\n return paymentsWithId;\n }\n\n return false;\n}\n","import { Grid, Select } from \"@material-ui/core\";\nimport MenuItem from \"@material-ui/core/MenuItem\"\nimport { useEffect, useState } from \"react\";\n\nconst PaymentMethodSelector = ({ paymentMethods, onChange }) => {\n\n const [selectedItem, setSelectedItem] = useState(paymentMethods[0]?.id || \"\");\n\n const handleOnChange = ({ target }) => {\n onChange && onChange(target.value)\n setSelectedItem(target.value)\n }\n\n useEffect(() => {\n setSelectedItem(paymentMethods[0]?.id || \"\")\n }, [paymentMethods])\n\n return <Grid container>\n <Grid item xs={12}>\n {paymentMethods && (<Grid item xs={12} >\n <Select\n id=\"demo-customized-select-native\"\n value={selectedItem}\n onChange={handleOnChange}\n style={{ minWidth: 300 }}\n fullWidth={true}\n >\n {paymentMethods &&\n paymentMethods.filter(e => e.id != \"trc20\").map((payment, index) => (\n <MenuItem key={payment.name + index} value={payment.id}>\n {payment.label} {/* ({payment.currency}) */}\n </MenuItem>\n ))}\n </Select>\n </Grid>\n )}\n </Grid>\n </Grid>\n}\n\nexport default PaymentMethodSelector;","import { makeStyles } from \"@material-ui/core\";\n\nexport const simulatorStyles = makeStyles((theme) => ({\n // 'input[type=number]::-webkit-outer-spin-button': {\n // '-webkit-appearance': 'none',\n // margin: 0\n // },\n // 'input[type=number]::-webkit-inner-spin-button': {\n // '-webkit-appearance': 'none',\n // margin: 0\n // },\n // 'input[type=number]': {\n // '-moz-appearance': 'textfield'\n // },\n root: {\n fontFamily: \"Poppins\",\n padding: \"26px 21px 0 21px\",\n maxWidth: 480,\n flexGrow: 1,\n borderRadius: \"24px\",\n borderWidth: \"1px\",\n backgroundColor: \"#FFFFFF\",\n boxShadow: \"0px 4px 7px rgba(61, 71, 86, 0.52)\"\n },\n labelAmount: {\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 500,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#000F37\"\n },\n chipOptionChecked: {\n backgroundColor: \"#008AFF !important\",\n borderWidth: \"0px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\",\n '&:hover': {\n background: \"#008AFF !important\",\n },\n '&:focus': {\n background: \"#008AFF !important\",\n }\n },\n chipOptionUnchecked: {\n background: \"#FFFFFF\",\n borderColor: \"#008AFF\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#008AFF\"\n },\n button: {\n background: \"#008AFF\",\n borderWidth: \"0px\",\n fontFamily: \"Poppins\",\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"16px\",\n lineHeight: \"20px\",\n color: \"#F4F4F4\",\n '&:hover': {\n background: \"#008AFF\",\n }\n }\n}));\n"],"names":[],"version":3,"file":"index.js.map"}
|