From a1b7c892c30adba75a81aeb4e50cb2a306a53788 Mon Sep 17 00:00:00 2001
From: NikitK-deriv <103182473+NikitK-deriv@users.noreply.github.com>
Date: Tue, 19 Dec 2023 13:11:21 +0300
Subject: [PATCH] [CRO][Translation] MyAffiliate signup form (#5992)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat: new affiliate signup page
* fix: urls and phone
* fix: translations
* fix: getting the language
* fix: phone number issue
* fix: enable capital letter for email input
* fix: phone code send wrong values
* auto-pull-translation
* translation: 📚 sync translations from crowdin feature branch
* fix: a lot of minor issues
* chore: fix eslnit issue
* fix: responsive design for modals and arabic language
* fix: terms of use sending to API
* fix: resolving react minify errors
* fix: react minify errors, ab test, validation
* chore: new localise text and wizard size change
* auto-pull-translation
* translation: 📚 sync translations from crowdin feature branch
* fix: datepicker input
* fix: datepicker input and password passing
* fix: ab testing
* fix: add ab test for one more button and fix datapicker input
* fix: datapicker input
* fix: datepicker, states
* refactor: tracking events, some minor changes with keys, brackets and id
* refactor: handlers and password validation
* refactor: make tracking utility and some refactor around
* refactor: types, state, images
* refactor: state, local constants movement
* fix: security, deployment, console logs
* refactor: validation and state management
* fix: increase length of phone number
* refactor: inputs, filter and data fix by individual account
* chore: console log
* fix: issue with incorrect name
* fix: add mandatory fields
* fix: state empty on try again
* refactor: validate feature movement and prepare for debounce
* fix: api limitations
* fix: deployment issue
* fix: deployment issue
* refactor: button enabling condition
* refactor: step view and date picker on safari fix
* feat: add new text
* auto-pull-translation
* chore: empty commit
* auto-pull-translation
* translation: 📚 sync translations from crowdin feature branch
* chore: empty commit
* fix: update password validation
---------
Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com>
---
crowdin/messages.json | 112 +-
package-lock.json | 221 +-
package.json | 1 +
src/components/custom/signup.tsx | 4 +-
src/components/elements/dropdown-search.tsx | 4 +
src/components/elements/dropdown.tsx | 3 +-
src/components/form/input.tsx | 20 +-
src/components/layout/layout.tsx | 2 +
.../navigation/affiliates-nav/index.tsx | 28 +
.../navigation/payment-agent-nav/index.tsx | 9 +-
.../use-partners-signup-link/index.ts | 29 +
.../hooks/use-residence-list/index.tsx | 37 +-
src/features/hooks/use-states-list/index.tsx | 32 +
src/images/common/affiliate/map.png | Bin 0 -> 167650 bytes
src/images/svg/signup-affiliates/calendar.svg | 3 +
.../svg/signup-affiliates/closed-eye.svg | 3 +
src/images/svg/signup-affiliates/company.svg | 8 +
src/images/svg/signup-affiliates/cpa.svg | 13 +
src/images/svg/signup-affiliates/failed.svg | 8 +
.../svg/signup-affiliates/individual.svg | 10 +
.../svg/signup-affiliates/opened-eye.svg | 3 +
src/images/svg/signup-affiliates/revenue.svg | 11 +
src/images/svg/signup-affiliates/selected.svg | 5 +
src/images/svg/signup-affiliates/success.svg | 8 +
src/images/svg/signup-affiliates/turnover.svg | 13 +
src/pages/endpoint/index.tsx | 4 +-
.../landing/ebooks/components/_get-ebook.tsx | 4 +-
.../_deriv-affiliate-programme.tsx | 12 +-
src/pages/partners/affiliate-ib/_faq-data.tsx | 14 +-
.../partners/affiliate-ib/_partner-cta.tsx | 13 +-
.../partners/affiliate-ib/_who-can-apply.tsx | 10 +-
src/pages/partners/affiliate-ib/index.tsx | 9 +-
src/pages/reset-password/index.tsx | 4 +-
src/pages/signup-affiliates/_lazy-loading.ts | 11 +
src/pages/signup-affiliates/_types.ts | 134 +
.../components/_account-address.tsx | 171 +
.../components/_account-details.tsx | 219 +
.../components/_account-plan.tsx | 76 +
.../components/_account-terms.tsx | 144 +
.../components/_account-type.tsx | 66 +
.../components/_signup-form.tsx | 200 +
.../components/_signup-status.tsx | 298 +
.../signup-affiliates/components/_wizard.tsx | 108 +
.../components/wizard-component/index.tsx | 96 +
.../components/wizard-component/stepper.tsx | 170 +
.../wizard-component/wizard-footer.tsx | 101 +
.../wizard-component/wizard-header.tsx | 39 +
src/pages/signup-affiliates/index.tsx | 188 +
.../signup-affiliates/utils/_account-card.tsx | 147 +
.../utils/_affiliate-header.tsx | 73 +
.../utils/_affiliate-input.tsx | 144 +
.../signup-affiliates/utils/_birth-form.tsx | 15 +
.../signup-affiliates/utils/_birth-picker.tsx | 130 +
.../signup-affiliates/utils/_tracking.ts | 19 +
src/pages/signup-affiliates/utils/_utils.tsx | 71 +
.../validations/_affilaite_validation.tsx | 213 +
src/translations/ach.json | 9192 +++++++++--------
src/translations/ar.json | 114 +-
src/translations/bn.json | 112 +-
src/translations/de.json | 112 +-
src/translations/es.json | 158 +-
src/translations/fr.json | 118 +-
src/translations/it.json | 116 +-
src/translations/ko.json | 112 +-
src/translations/pl.json | 118 +-
src/translations/pt.json | 178 +-
src/translations/ru.json | 176 +-
src/translations/si.json | 112 +-
src/translations/sw.json | 434 +-
src/translations/th.json | 128 +-
src/translations/tr.json | 118 +-
src/translations/vi.json | 168 +-
src/translations/zh_cn.json | 426 +-
src/translations/zh_tw.json | 308 +-
74 files changed, 10411 insertions(+), 5279 deletions(-)
create mode 100644 src/features/components/templates/navigation/affiliates-nav/index.tsx
create mode 100644 src/features/hooks/ab-testing/use-partners-signup-link/index.ts
create mode 100644 src/features/hooks/use-states-list/index.tsx
create mode 100644 src/images/common/affiliate/map.png
create mode 100644 src/images/svg/signup-affiliates/calendar.svg
create mode 100644 src/images/svg/signup-affiliates/closed-eye.svg
create mode 100644 src/images/svg/signup-affiliates/company.svg
create mode 100644 src/images/svg/signup-affiliates/cpa.svg
create mode 100644 src/images/svg/signup-affiliates/failed.svg
create mode 100644 src/images/svg/signup-affiliates/individual.svg
create mode 100644 src/images/svg/signup-affiliates/opened-eye.svg
create mode 100644 src/images/svg/signup-affiliates/revenue.svg
create mode 100644 src/images/svg/signup-affiliates/selected.svg
create mode 100644 src/images/svg/signup-affiliates/success.svg
create mode 100644 src/images/svg/signup-affiliates/turnover.svg
create mode 100644 src/pages/signup-affiliates/_lazy-loading.ts
create mode 100644 src/pages/signup-affiliates/_types.ts
create mode 100644 src/pages/signup-affiliates/components/_account-address.tsx
create mode 100644 src/pages/signup-affiliates/components/_account-details.tsx
create mode 100644 src/pages/signup-affiliates/components/_account-plan.tsx
create mode 100644 src/pages/signup-affiliates/components/_account-terms.tsx
create mode 100644 src/pages/signup-affiliates/components/_account-type.tsx
create mode 100644 src/pages/signup-affiliates/components/_signup-form.tsx
create mode 100644 src/pages/signup-affiliates/components/_signup-status.tsx
create mode 100644 src/pages/signup-affiliates/components/_wizard.tsx
create mode 100644 src/pages/signup-affiliates/components/wizard-component/index.tsx
create mode 100644 src/pages/signup-affiliates/components/wizard-component/stepper.tsx
create mode 100644 src/pages/signup-affiliates/components/wizard-component/wizard-footer.tsx
create mode 100644 src/pages/signup-affiliates/components/wizard-component/wizard-header.tsx
create mode 100644 src/pages/signup-affiliates/index.tsx
create mode 100644 src/pages/signup-affiliates/utils/_account-card.tsx
create mode 100644 src/pages/signup-affiliates/utils/_affiliate-header.tsx
create mode 100644 src/pages/signup-affiliates/utils/_affiliate-input.tsx
create mode 100644 src/pages/signup-affiliates/utils/_birth-form.tsx
create mode 100644 src/pages/signup-affiliates/utils/_birth-picker.tsx
create mode 100644 src/pages/signup-affiliates/utils/_tracking.ts
create mode 100644 src/pages/signup-affiliates/utils/_utils.tsx
create mode 100644 src/pages/signup-affiliates/validations/_affilaite_validation.tsx
diff --git a/crowdin/messages.json b/crowdin/messages.json
index e58084bc37c..59950c115d0 100644
--- a/crowdin/messages.json
+++ b/crowdin/messages.json
@@ -2,6 +2,7 @@
"3670321": "<0>IVV.US0> The iShares Core S&P 500 ETF tracks the performance of an index of large-capitalisation US equities.",
"3965745": "Your payout can potentially grow by 1% or 5% on average per tick.",
"4506932": "How do I add a Deriv X account?",
+ "5629598": "Company website/social media URL*",
"5681962": "EUR/USD DFX10 Index",
"6312314": "Deriv (V) Ltd (Company No. 014556), incorporated on the 17th February 2016, is registered in the Republic of Vanuatu with its registered office located at 1276, Govant Building, Kumul Highway, Port Vila, Republic of Vanuatu. Deriv (V) Ltd is licensed by the Vanuatu Financial Services Commission <0>(view licence)0> and is a member of the <1>Financial Markets Association1>.",
"7128051": "How can I adjust or remove my self-exclusion limits?",
@@ -126,6 +127,7 @@
"115911783": "Of course, this list isn’t complete. Every day, impersonators come up with new ways to try to steal your information and money.",
"117174749": "Can I close an open position before expiry?",
"117273069": "<0>Wall Street 300> follows the stock performance of the top 30 listed companies in the US.",
+ "117318539": "Password should have lower and uppercase English letters with numbers.",
"117920584": "As per <0>our terms0>, we only allow one account per client, which you can open in the currency of your choice (either fiat or crypto). If you want to trade with other currencies, you can add multiple cryptocurrency accounts to your profile.",
"118164751": "This plan is available exclusively for EU-based clients. <0>Please note that according to regulations, you cannot have clients who reside in Portugal or Spain.0>",
"119888059": "Who can apply",
@@ -133,6 +135,7 @@
"120180174": "0–19.999%",
"121961018": "If you're residing in the EU or UK, <0>contact us via live chat0>, and we'll help you with it.",
"123005346": "No artificial barriers to customer withdrawals",
+ "127307725": "A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.",
"128120244": "Since 1999, the Group has served traders around the world with integrity and reliability. We always hold ourselves to the highest ethical standards and regulatory requirements.",
"131637194": "For <0>metals0>, there is a fixed commission of USD 4 per lot. A deal for 1 lot of XAU/USD will pay out USD 4 in commission based on the following formula:",
"132319176": " take profit level",
@@ -178,9 +181,11 @@
"176773798": "0.5%",
"176823932": "We may decline your verification documents if they are insufficiently clear, invalid, expired, or have cropped edges.",
"176972763": "<0>GLD.US0> The SPDR Gold Shares ETF tracks the price of gold bullion in the over-the-counter (OTC) market.",
+ "177720589": "If you hit <0>Yes0>, the details you entered will be lost, and you’ll need to restart the registration process.",
"179737767": "Our legacy options trading platform.",
"180412186": "Predict whether the exit spot will be strictly higher or lower than the entry spot at the end of the contract period.",
"181754600": "How can I identify emails from impersonators of Deriv customer support?",
+ "182234515": "Choose the type of partner account you want to register",
"182438100": "Frequently asked questions - DBot",
"183032954": "No, the High/Low Ticks options are only available on the SmartTrader and Deriv Bot trading platforms, and are available to trade on synthetics.",
"186459036": "Your net profit will depend on how much the final price is above the predetermined strike price, with the maximum potential gains growing if the price of the underlying asset rises significantly. Your losses are limited to the initial stake required to purchase the call option.",
@@ -198,6 +203,7 @@
"200347746": "You’ll be brought back to the <0>Cashier0> page. Click Review pending and select the transaction that you'd like to cancel.",
"201096446": "UNG.US",
"202712649": "Fast and secure deposit and withdrawal options",
+ "203271702": "Try again",
"209516313": "The MT5 trading signals service allows you to copy the trades of more experienced traders to your MT5 account. Once you’ve subscribed to a signal, the provider’s deals will be automatically replicated on your Deriv MT5 trading account each time they place a trade.",
"209799068": "A contract for difference (CFD) allows you to trade on the price movement of an asset, without buying the underlying asset.",
"210989591": "Add a Deriv X real account.",
@@ -281,6 +287,7 @@
"275316510": "Impersonators ask you to send confidential information over an unsecure platform, for example via SMS, WhatsApp, email, etc.",
"276482397": "No, you can't.",
"278499050": "Use your local currency to make deposits into and withdrawals from your Deriv account.",
+ "279593550": "Partner Signup Page | Deriv",
"281247370": "Margin Calculator",
"284321953": "Can I close a lookbacks contract before the expiry time?",
"286667499": "Open a real account, make a deposit, and start trading derived FX and other markets.",
@@ -318,6 +325,7 @@
"316920917": "Oops, sorry...",
"317551740": "$ 8.00",
"317744607": "Discover DBot now",
+ "317753588": "Second website/social media URL",
"318239044": "Pfizer",
"318433321": "Instruments available for options trading",
"318815297": "Trade the way you like",
@@ -435,6 +443,7 @@
"431284069": "Your net profit will depend on how much the spot price falls below the barrier, with the maximum potential gains growing if the underlying price falls significantly. Your losses are limited to the initial stake required to purchase the short turbo option.",
"432518896": "Client trust is our highest priority, and that’s why millions of users choose us. Here are some of the things that make us a leading online trading service provider.",
"432775041": "Get Trading",
+ "433348384": "Real accounts are not available to politically exposed persons (PEPs).",
"434113887": "Frequently asked questions - Deriv MT5",
"434254071": "rc rp",
"434669878": "Best forex spread award",
@@ -535,7 +544,6 @@
"517286342": "
To place a vanilla options contract, you’ll need to:
Select the underlying asset you want to trade.
Determine your contract duration or end time.
Predict the asset’s price movement by choosing Call or Put.
Select your preferred strike price
Enter your stake.
Purchase the contract
",
"517833647": "Volatility 50 (1s) Index",
"517844699": "Alibaba Group Holding Ltd",
- "518861708": "Open a demo Deriv MT5 or demo Deriv X account and practise with an unlimited amount of virtual funds.",
"518906831": "Can I use the same address to make a cryptocurrency deposit?",
"519988278": "Fox Corp Class B",
"520136698": "Boom 500 Index",
@@ -643,6 +651,7 @@
"618098617": "Your IB commissions earned from MT5 and Deriv EZ are credited directly into your Deriv MT5 account daily. You can transfer the funds to your Deriv account and withdraw them via your preferred payment method.",
"618453683": "On Deriv, you can trade CFDs with high leverage, enabling you to pay just a fraction of the contract’s value. It will amplify your potential gain and also increase your potential loss.",
"619354706": "Max(6.83, -10) ",
+ "619481945": "Mobile number is required",
"619610610": "Close your account at any time you want.",
"621291584": "0.75",
"622253642": "Save time – no need to open, monitor, and close trades.",
@@ -659,6 +668,7 @@
"630831015": "Dtrader trading platform",
"631600257": "Strong regulatory compliance that instils confidence in clients from all over the world.",
"632417472": "Trade multipliers on synthetics 24/7, 365 days a year. Trade multipliers on forex and cryptocurrencies round the clock on weekdays.",
+ "633498400": "You should enter 8-13 numbers",
"633640589": "${GENERAL}",
"635121138": "Affiliate and IB programme | Deriv",
"636073620": "Subscribe to Deriv MetaTrader 5 trading signals to copy the trades of experienced traders, or become a signal provider and share your strategies.",
@@ -728,6 +738,7 @@
"699722384": "1. You must have an MQL5 community account to subscribe to trading signals. If you don't have an account yet, please go to <0>MQL5.com0> to register.",
"700128691": "We’re steadfast in our commitment to high ethical standards. Find more reasons to know why Deriv is the choice of online traders.",
"700971061": "You can find your Deriv MT5 server name on your <0>Deriv MT5 dashboard0>. Click Trade on your preferred MT5 account and look for the server below the broker name.",
+ "701236336": "Website url",
"701775446": "Volatility 200 Index",
"701840176": "Commission per USD 100k turnover",
"702074152": "PARTNERS",
@@ -758,6 +769,7 @@
"730281403": "Make instant bank transfers to all the major banks in your country.",
"731382582": "BNB/USD",
"731636050": "Can I open multiple turbo options contracts simultaneously?",
+ "732351316": "Step 3 : Address details (3 of 5)",
"733057061": "Learn how to trade cryptocurrencies with Deriv",
"733615113": "No, it isn’t. DP2P is a peer-to-peer service for our clients to make deposits and withdrawals using their local currency. As our payment agent, you can use the DP2P platform to offer your services to Deriv clients in your country",
"733921210": "For instance, if you are trading the USD/JPY forex pair, the swap charge will be computed in Japanese Yen (JPY) which is the quote currency. On the other hand, if you are trading oil, then the swap charge will be computed in US Dollar (USD), which is the denomination of the underlying asset – oil.",
@@ -893,10 +905,12 @@
"856928872": "Yes, as long as you pass our checks. Initially, you'll start with a 500 USD limit for buy and sell orders.",
"860052562": "Airbnb",
"861659702": "Easy-to-use platforms, superior charts",
+ "862283602": "Phone number*",
"862480295": "Our swap calculator helps you to estimate the swap charges required to keep your positions open overnight on Deriv MT5.",
"866130068": "product department",
"866196404": "What are the major differences between DTrader, Deriv MT5 and Deriv X?",
"867182964": "6,000 + 2,250 = USD 8,250",
+ "867244595": "We’re unable to process your sign-up request at this time. Please try again.",
"867458310": "No, the trade barrier can only be set before you open a contract. Once your turbo options contract is opened, the barrier cannot be changed.",
"867582421": "Help centre | Frequently asked questions | Account | Deriv",
"868154618": "Accounts",
@@ -942,6 +956,7 @@
"897732167": "Deriv MT5 logo",
"898646134": "To see your account’s trading limits, go to Settings > Security and safety > <0>Account limits0>.",
"899411431": "Once you’re shown options to select from, choose “Complaints”. You can also type \"complaint\".",
+ "899612897": "You should enter 8-13 numbers.",
"901158881": "This feature allows you to set the level of profit that you are comfortable with when the market moves in your favour. Once the amount is reached, your position will be closed automatically and your earnings will be deposited into your Deriv account.",
"902057285": "Click Yes to confirm the cancellation. Your funds will be returned to your Deriv account, and your account balance will be updated accordingly.",
"903422317": "Get instant access to your trades wherever you are whenever you want.",
@@ -977,6 +992,7 @@
"934685291": "This helps you to set the stop loss and take profit level when the asset price moves in Up or Down direction.",
"935167918": "3.75",
"935645176": "Additional terms and restrictions for Deriv clients in certain countries",
+ "937831119": "Last name*",
"938314093": "ARRK.US",
"938692453": "Swaps charged upon rollover for short (sell) positions.",
"938792466": "Customise your contracts to suit your style and risk appetite using innovative features like stop loss, take profit, and deal cancellation.",
@@ -988,6 +1004,7 @@
"943716510": "Introduction to cryptocurrencies",
"946654704": "Client trades with a stake of USD 10.",
"947541466": "Trade 24/7 on our proprietary synthetics that simulate real-world market movements. These indices are unaffected by regular market hours, global events, or market and liquidity risks. Manage your exposure by selecting the volatility level to suit your risk appetite.",
+ "947758334": "City is required",
"948545552": "150+",
"949495445": "even/odd option trade",
"949617971": "Your Deriv X password is linked to the standalone Deriv X trading platform while your Deriv password gives you access to platforms hosted on our website such as DTrader and DBot.",
@@ -1064,6 +1081,7 @@
"1025032938": "Do I have to pay any fees to become a payment agent for Deriv?",
"1026160856": "Predict whether the last digit of the last tick of a contract will be an even number or an odd number.",
"1026845997": "Endpoint",
+ "1027349186": "First Name",
"1029179269": "Set profit level",
"1030898603": "What is the maximum I can lose when I trade turbo options?",
"1032907147": "AUD/NZD",
@@ -1109,6 +1127,7 @@
"1070284669": "<0>Stop loss and take profit level in the Down direction = asset price × {(-stop loss OR take profit amount - commission) ÷ (stake × multiplier) + 1}0>",
"1070403135": "weekend trading",
"1070720669": "Enjoy trading asset prices derived from simulated markets.",
+ "1072012627": "Country is required",
"1072128975": "Once your identity has been verified, you can use Deriv P2P on desktop or mobile.",
"1072571985": "If you created your Deriv account using Apple/Google/Facebook, try resetting your Apple/Google/Facebook password. After that, you should be able to log in to Deriv as usual.",
"1076548216": "Leverage Deriv’s technology to launch your own trading app. Deliver an enhanced trading experience to your clients and earn from every trade executed on your app.",
@@ -1199,6 +1218,7 @@
"1169889619": "Already have an account? <0>Log in0>",
"1170266535": "<0>Deriv Trader0> offers multipliers trading on a range of underlying assets such as forex, cryptocurrencies, and derived. This platform allows you to open multipliers trades that offer the opportunity to multiply potential profit without risking more than your stake. You may find this platform more intuitive if you're new to the trading world.",
"1171083830": "Hit <0>Get0> next to <0>Deriv account0>.",
+ "1171332705": "Username*",
"1171765024": "Step 3",
"1172611503": "If you select ‘Asian Fall’, you will win the payout if the last tick is lower than the average of the ticks.",
"1172806588": "Make instant deposits using your local e-wallet.",
@@ -1227,6 +1247,7 @@
"1196310280": "Intel",
"1197939158": "Don't accept",
"1197965598": "Accumulators (or accumulator options) allow you to heighten your potential profit exponentially without risking more than your stake. Your potential profit will increase regardless of market movement, as long as the price moves within the trade barriers.",
+ "1198529439": "Please enter a valid street",
"1198781410": "We’ve designed a customer-centric and intuitive trading experience for Deriv that’s optimised to convert visitors into clients. We’ll also provide you with the tools and creative materials you need to drive traffic to Deriv.",
"1199693297": "20 - 800",
"1203468323": "- Set other optional contract parameters.",
@@ -1351,9 +1372,11 @@
"1312819271": "Let’s say you want to trade 2 lots of EUR/USD.",
"1313291854": "If you select 'Reset Call', you receive the payout if the exit price is higher than either the entry price or the price at reset time.",
"1316697520": "Markets available for multipliers trading",
+ "1319030942": "Signup failed",
"1320418221": "Estimate the margin you need to hold your positions. The result depends on leverage, volume lot, and your Deriv MT5 account balance.",
"1323941798": "Short",
"1324376913": "Our values are the fabric of our culture",
+ "1325181938": "Street*",
"1326142154": "high-low option trade",
"1326235397": "These indices correspond to simulated markets with constant volatilities of 10%, 25%, 50%, 75%, and 100%.",
"1327067520": "Deriv P2P makes withdrawals and deposits simple, it’s the best user-friendly app.",
@@ -1396,6 +1419,7 @@
"1364972610": "How do High/Low Ticks contracts work?",
"1365926355": "Deriv X trading paltform",
"1367358043": "<0>USD 2000> Volume",
+ "1367856592": "Choose which plan you would like to subscribe.",
"1367990698": "Volatility 10 Index",
"1370484308": "A chart illustrating a losing High Ticks trade type contract",
"1370655673": "Affiliate and IB programmes | Partnership programmes | Deriv",
@@ -1409,6 +1433,8 @@
"1376955476": "Swap charge",
"1377692190": "1. Go to your Deriv X dashboard.",
"1380047398": "Scan to download",
+ "1380676466": " is required",
+ "1383065219": "Please create a username and password for your affiliate account.",
"1384321002": "If you are not satisfied with the outcome, you can escalate your complaint, provided that the <0>complaints policy0> associated with your account states that escalation is possible.",
"1384941966": "Citigroup",
"1385878133": "No money",
@@ -1454,6 +1480,7 @@
"1413295628": "DIA.US",
"1413567719": "What is payout per point?",
"1413977299": "You can trade Digits contracts on the Deriv Trader, SmartTrader, and Deriv Bot trading platforms, on synthetics.",
+ "1414394793": "Country*",
"1415101574": "We have a diverse suite of 7 trading platforms: <0>Deriv MT50>, <1>Deriv X1>, <2>Deriv Trader2>, <3>Deriv Bot3>, <4>Deriv GO4>, <5>SmartTrader5>, and <6>Binary Bot6>. Each of these platforms is designed to fit any trading style, regardless of your trading experience.",
"1416184764": "How can I identify Deriv customer support impersonators on Telegram?",
"1416248668": "Choose the best rates",
@@ -1478,6 +1505,8 @@
"1435321289": "Process all deposits and withdrawals quickly and accurately",
"1435793182": "Predict whether the exit spot will be higher or lower than either the entry spot or the spot at reset time.",
"1437505451": "Pip Calculator",
+ "1437672633": "Step 4 : Personal details (4 of 5)",
+ "1438632095": "Please enter a valid company registration number.",
"1442199408": "Deriv MT5 trading platform",
"1446857185": "
Select the market and asset you want to trade.
Choose which Digits contract to open (Matches/Differs; Even/Odd; Over/Under).
Set your preferred tick duration and last digit prediction.
Enter your stake or desired potential payout amount.
Open your Digits trade.
",
"1446914689": "Guernsey alt img",
@@ -1560,6 +1589,7 @@
"1516021730": "20 - 1,000",
"1516676261": "Deposit",
"1518575473": "Uptime",
+ "1519951161": "Space not available",
"1523687535": "We don’t pay commission, but you can set your own commission rate per transaction within reasonable thresholds. When you sign up, our team will be in touch to work out the details with you.",
"1524248407": "Trade on financial markets plus our proprietary synthetics that are available 24/7.",
"1524725659": "When will the commission be paid out?",
@@ -1572,6 +1602,7 @@
"1529762880": "You must have a minimum balance in your Deriv account while your application is under review. The amount of this balance depends on your country of residence. You only need to maintain the minimum balance until your application is successful.",
"1529770577": "Derived indices consist of asset prices generated from real-world and simulated markets and indices, with little to no influence from real-world events. You can trade from a variety of derived indices, including synthetic indices, derived FX indices, and baskets.",
"1533284111": "What is a floating exchange rate?",
+ "1533452395": "Earn based on each contract's payout probability or client's trade. <0>Learn more>",
"1535175777": "Make deposits and withdrawals through your local bank in real-time.",
"1536955851": "Options trading | Trading types | Deriv",
"1537212469": "Spot price",
@@ -1621,6 +1652,7 @@
"1573231398": "Why trade cryptocurrencies on Deriv",
"1573429525": "Call/Put",
"1573589662": "Do keep in mind that we do not allow unauthorised incentives, gifts, and payments to encourage client signups. Payment will be withheld if any suspicions or activity of this conduct is discovered.",
+ "1574365902": "Please enter a valid url",
"1574476135": "Let’s say you predict that the market will go up.",
"1575069722": "Here are some of the ways we ensure that Deriv P2P is as secure as possible:",
"1575147178": "Only ups/Only downs | Digital options contract | Deriv",
@@ -1651,6 +1683,7 @@
"1597478217": "No, you cannot close an Asians contract before it expires.",
"1598664071": "List of directors",
"1599891822": "Stop loss amount in Down direction",
+ "1602016750": "Company registration number*",
"1602627054": "So your pip value is <0>2 USD0>.",
"1602716515": "When you join our IB programme,",
"1602800752": "Save your strategies",
@@ -1670,8 +1703,10 @@
"1613233789": "Blog",
"1613273277": "Real world market",
"1614573899": "Open a digital options contract with an Asians trade type on Deriv’s trading platforms and earn payouts with accurate market predictions.",
+ "1614857155": "Please enter a valid city",
"1616071522": "<0>France 400> tracks the performance of the 40 most traded stocks among the top 100 listed companies in France.",
"1616502762": "<0>US Tech 1000> follows the stock performance of the 100 largest non-financial companies in the US.",
+ "1617759657": "Already have a Deriv affiliate account? ",
"1618280107": "Offer competitive prices on all our products",
"1619070150": "You are being redirected to an external website.",
"1619579199": "Why is my Deriv P2P balance different from my Deriv account balance?",
@@ -1759,6 +1794,7 @@
"1686378613": "DBot is a web-based strategy builder for trading digital options. It’s a platform where you can build your own trading bot using drag-and-drop 'blocks'.",
"1688330506": "<0>221.59610>",
"1688556728": "European indices",
+ "1690730424": "Only Latin and Alphabet characters",
"1691701175": "Stock & indices",
"1691844143": " Based on the number of ticks and the accumulator value, your potential profit may exceed your set amount multiple times.",
"1692056155": "Unsubscribe | Emails | Deriv",
@@ -1768,6 +1804,7 @@
"1694777943": "A user-friendly trading platform",
"1695892307": "Can I enter multiple lookbacks contracts simultaneously?",
"1696396625": "google",
+ "1698515050": "Create partner account",
"1700291683": "It’s completely free of charge to join the IB programme.",
"1701577545": "The maximum duration for every contract is limited and differs according to the chosen accumulator value. When the maximum duration is reached, the contract will be automatically closed.",
"1702295087": "Make easy deposits and withdrawals using Vietnam's famous banks.",
@@ -1820,6 +1857,7 @@
"1748626120": "No hidden costs",
"1748670878": "Can I use my Binance wallet to make the cryptocurrency deposit?",
"1748925202": "How can I reactivate my Deriv MT5 account?",
+ "1752444975": "Company second website/social media URL",
"1752586208": "What payment methods can I use to exchange with other traders?",
"1752611984": "Open a digital options contract with an Up/Down trade type on Deriv’s trading platforms and earn payouts with accurate market predictions.",
"1753559268": "We'll pay your IB commission into your MT5 Synthetic account daily.",
@@ -1939,6 +1977,7 @@
"1862283751": "Trade forex, synthetic indices, and cryptocurrencies wherever, whenever you want and maximise your potential profit with multipliers on Deriv GO.",
"1862328242": "success",
"1867740000": "GBP/USD DFX10 Index",
+ "1868644151": "Partner with us as an affiliate. Earn commission from the total net revenue of your referred clients’ from option trading platforms.",
"1868860566": "EUR/SEK",
"1869230144": "<0>-7.230>",
"1869497149": "Enjoy a smooth trading experience with easy-to-use charts and a pleasant dark theme.",
@@ -1947,6 +1986,7 @@
"1872216697": "Yes, you can choose the duration of your Asians contract anywhere between 5 and 10 ticks.",
"1872568231": "GBP/TRY",
"1872607463": "banner",
+ "1873174451": "Postcode is required",
"1873182175": "Apple account sign in page",
"1873188024": "A deal for 1 lot of the Volatility Index 75 for a price of USD 500,000 per USD 100,000 turnover will pay out a commission of USD 5. The minimum volume required to receive the minimum commission of USD 0.01 is determined using this formula:",
"1874424045": "I lost my phone. How can I disable two-factor authentication (2FA)?",
@@ -2157,6 +2197,7 @@
"2045764916": "0.0006631",
"2046788283": "What markets can I trade on DTrader?",
"2048307729": "Help Deriv clients to make multiple deposits and withdrawals daily.",
+ "2049136184": "Username is required",
"2049247194": "20-22 November 2023",
"2049759467": "Can I customise the duration for an Only Ups/Only Downs contract?",
"2051986867": "So you will require a swap charge of <0>0.24 USD0> to keep the position open for one night.",
@@ -2186,6 +2227,8 @@
"2065278286": "Spread",
"2067757832": "Derived Indices",
"2068595952": "What is derived?",
+ "2069455291": "Date of Birth*",
+ "2069660515": "Postal/Zip code*",
"2070356006": "Start earning based on your chosen commission plan –– up to 45% of the total net revenue generated by your referred clients.",
"2070897729": "Trade CFDs on forex, commodities, cryptocurrencies, stocks, stock indices, and derived indices.",
"2071458958": "The minimum volume for micro forex pairs is 0.1 lot.",
@@ -2208,6 +2251,7 @@
"2089087110": "Basket indices",
"2089257874": "internal audit department",
"2092654058": "To onboard with Deriv Prime’s liquidity solution and trading services, you will need to follow a streamlined process:",
+ "2094921906": "Street is required",
"2095230169": "Reliable",
"2097023111": "A low-cost way to trade diverse asset groups",
"2097310605": "Why trade synthetics on Deriv",
@@ -2223,6 +2267,8 @@
"2108799022": "<0>Rise/Fall:0> Predict whether the exit spot will be strictly higher or lower than the entry spot at the end of the contract period.",
"2109279238": "derived",
"2109387636": "How many trading platforms do you offer?",
+ "2109960759": "Company name is required",
+ "2110013669": "Password*",
"2112006652": "FIL/USD",
"2112510770": "Check if your browser and device are updated. If they're not, compatibility issues may prevent the email from reaching you.",
"2115934251": "When you open a turbo options contract, you’ll pay an initial stake amount. This is the cost of entering the turbo options trade. You’ll also need to determine a trade barrier. The spot price must not touch or breach this barrier throughout your contract duration, otherwise your contract will be terminated early without any gains.",
@@ -4111,9 +4157,6 @@
"-2121510827": "Sweden",
"-1357648282": "For fair resolution of any complaints, please <0>chat0> with us. To learn more, see our <1>complaint policy1>.",
"-1838458999": "For fair resolution of any complaints, please <0>chat0> with us.",
- "-1131400885": "Deriv Investments (Europe) Limited",
- "-1231248751": "Deriv Investments (Europe) Limited (Company No. C 70156), incorporated on the 22nd April 2015, is registered in Malta with its registered office located at Level 3, W Business Centre, Triq Dun Karm, Birkirkara BKR9033, Malta. Deriv Investments (Europe) Ltd is licensed in Malta and regulated by the Malta Financial Services Authority under the Investments Services Act <0>(view licence)0> to provide investment services.",
- "-2051445931": "Clients in the European Union who wish to trade financial instruments can have accounts under Deriv Investments (Europe) Limited.",
"-1446148261": "CFDs - Forex",
"-1121949345": "CFDs - Stock indices",
"-33096025": "CFDs - Cryptocurrencies",
@@ -4121,6 +4164,9 @@
"-1238176624": "CFDs - Synthetics: Volatility 250 (1s) Index",
"-1076679821": "Multipliers - Cryptocurrencies",
"-812435767": "Multipliers - Synthetics: Crash 300 Index",
+ "-1131400885": "Deriv Investments (Europe) Limited",
+ "-1231248751": "Deriv Investments (Europe) Limited (Company No. C 70156), incorporated on the 22nd April 2015, is registered in Malta with its registered office located at Level 3, W Business Centre, Triq Dun Karm, Birkirkara BKR9033, Malta. Deriv Investments (Europe) Ltd is licensed in Malta and regulated by the Malta Financial Services Authority under the Investments Services Act <0>(view licence)0> to provide investment services.",
+ "-2051445931": "Clients in the European Union who wish to trade financial instruments can have accounts under Deriv Investments (Europe) Limited.",
"-112814932": "Deriv (FX) Ltd",
"-1269257733": "Clients in the rest of the world (except for restricted countries such as the USA, Canada, and Hong Kong) who wish to trade CFDs on forex and cryptocurrencies can have MT5 Financial STP accounts under Deriv (FX) Ltd.",
"-2019617323": "Deriv (BVI) Ltd",
@@ -4156,6 +4202,59 @@
"-880201385": "info",
"-771133354": "For more details on our products and the risks involved in online trading, read our <0>key information documents (KIDs)0> on forex, stocks, stock indices, commodities, synthetic indices, and cryptocurrencies.",
"-466084206": "Read our guidelines on secure and responsible trading. Understand the risks involved in online trading and how you can manage them.",
+ "-333013269": "Personal address",
+ "-794179340": "Company address",
+ "-136976514": "Country of residence*",
+ "-1474274516": "State/province*",
+ "-1253349870": "Town/city*",
+ "-1120954663": "First name*",
+ "-1929304521": "Website/social media URL*",
+ "-1113902570": "Details",
+ "-303056592": "Affiliate account details",
+ "-1441847447": "Earn based on the monthly net revenue generated by your client. <0>Learn more>",
+ "-1674476166": "Earn based on each successful referral. <0>Learn more>",
+ "-63489872": "<0>Note:0> This plan is available exclusively for EU-based clients only.",
+ "-2068229627": "I am not a PEP, and I have not been a PEP in the last 12 months.",
+ "-1841395447": "I have read and accepted <0>Deriv’s terms and conditions0>",
+ "-412683223": "I have read and accepted <0>Deriv’s general terms of use and affiliates and introducing brokers’ terms and conditions0>",
+ "-1805422644": "I consent to receive promotional materials and notifications regarding your partnership program.",
+ "-925958201": "Individual",
+ "-1468933628": "Register for an individual account.",
+ "-2147340077": "Company",
+ "-1412113272": "Register for a company account.",
+ "-1808676023": "Deriv Affiliate",
+ "-1918023753": "Our introducing broker programme is available to all Deriv affiliates. Earn commission from your clients' trades on Deriv's CFD trading platforms.",
+ "-498923246": "Want to sign up as a trader?",
+ "-1760596315": "Create a Deriv account",
+ "-573454478": "User name",
+ "-1986150937": "Thank you for signing up",
+ "-1598032031": "Your application has been received. We’re processing your application. You can expect to hear back from us within 3 to 5 business days.",
+ "-2017825013": "Got it",
+ "-1588894283": "Are you sure you want to cancel your registration?",
+ "-1057336268": "No, continue",
+ "-1830091000": "Username already exists. Please enter another:",
+ "-260364285": "Change username",
+ "-830224473": "Your website is not a valid entry. Please enter another:",
+ "-1129605560": "Change website url",
+ "-1754713622": "Step 1 : Account type (1 of 5)",
+ "-1691254967": "Step 2 : Subscription plan (2 of 5)",
+ "-1085862265": "Subscription plan",
+ "-730447440": "Address details",
+ "-1823540512": "Personal details",
+ "-1130147753": " Details",
+ "-990526713": "Step 5 : Terms of use (5 of 5)",
+ "-204765990": "Terms of use",
+ "-1541554430": "Next",
+ "-26610045": "Add an affiliate account",
+ "-435672026": "Wrong email",
+ "-265889213": "Empty input not available",
+ "-1787546919": "You should enter ${min_digit}-${max_digit} characters.",
+ "-442533603": "Incorrect company name",
+ "-840841662": "Only Latin characters",
+ "-1430656728": "Password is required",
+ "-1049534775": "Please enter a valid postcode with Latin characters.",
+ "-420140433": "Company registration number is required",
+ "-1857429287": "Last Name",
"-706927392": "Important Guidelines",
"-2086585870": "Partners Guide",
"-776458472": "General terms of use",
@@ -4210,6 +4309,9 @@
"-943253121": "The term ‘margin’ refers to the deposit needed to open a leveraged position, which is a position larger than your capital investment and leads to increased market exposure.",
"-339497727": "Trade types margin market",
"-1009744297": "Use our margin calculator to calculate the margin required to increase your market exposure (the market value of your position) on Deriv’s CFD trading platforms.",
+ "-1603400333": "Open a demo CFDs account and practise with an unlimited amount of virtual funds.",
+ "-446423672": "Open a demo Deriv MT5, Deriv X, or Deriv cTrader account and practise with an unlimited amount of virtual funds.",
+ "-1978157334": "Trade with a real Deriv MT5, Deriv X, or Deriv cTrader account and get access to high leverage to trade positions larger than your existing capital.",
"-1207172200": "Start trading CFDs on Deriv",
"-1703690406": "When you trade CFDs on margin, you increase your market exposure, thus amplifying both your potential profit and potential loss.",
"-843831637": "Stop loss",
@@ -4246,8 +4348,6 @@
"-894512007": "favourite markets icon",
"-252740007": "instant access icon",
"-1156092900": "flexible icon",
- "-1603400333": "Open a demo CFDs account and practise with an unlimited amount of virtual funds.",
- "-1242544018": "Trade with a real Deriv MT5 or real Deriv X account and get access to high leverage to trade positions larger than your existing capital.",
"-544150655": "Markets available for margin trading",
"-867909844": "Access over 30 assets and also trade with up to 1:30 leverage and zero commission on trades.",
"-309438223": "Trade synthetic indices on margin 24/7 without being affected by natural events and liquidity risks.",
diff --git a/package-lock.json b/package-lock.json
index e0fb9355bf7..9db448a1f43 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -62,6 +62,7 @@
"prompt-sync": "^4.2.0",
"prop-types": "^15.8.1",
"react": "^18.2.0",
+ "react-date-picker": "8.4.0",
"react-device-detect": "^2.2.2",
"react-dom": "^18.2.0",
"react-hook-form": "^7.43.9",
@@ -2445,6 +2446,7 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
"integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true,
"optional": true,
"engines": {
"node": ">=0.1.90"
@@ -4192,7 +4194,8 @@
"node_modules/@gar/promisify": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
- "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
+ "dev": true
},
"node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": {
"version": "2.12.1",
@@ -7782,6 +7785,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
"integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "dev": true,
"dependencies": {
"@gar/promisify": "^1.0.1",
"semver": "^7.3.5"
@@ -7791,6 +7795,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
@@ -7802,6 +7807,7 @@
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -7815,13 +7821,15 @@
"node_modules/@npmcli/fs/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/@npmcli/move-file": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
"integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
"deprecated": "This functionality has been moved to @npmcli/fs",
+ "dev": true,
"dependencies": {
"mkdirp": "^1.0.4",
"rimraf": "^3.0.2"
@@ -7834,6 +7842,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -17114,6 +17123,14 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/@types/react-calendar": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/@types/react-calendar/-/react-calendar-3.9.0.tgz",
+ "integrity": "sha512-KpAu1MKAGFw5hNwlDnWsHWqI9i/igAB+8jH97YV7QpC2v7rlwNEU5i6VMFb73lGRacuejM/Zd2LklnEzkFV3XA==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/react-dom": {
"version": "18.2.17",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz",
@@ -18107,6 +18124,14 @@
"tslib": "^2.3.1"
}
},
+ "node_modules/@wojtekmaj/date-utils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.1.tgz",
+ "integrity": "sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/date-utils?sponsor=1"
+ }
+ },
"node_modules/@xmldom/xmldom": {
"version": "0.8.10",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
@@ -18272,6 +18297,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -18490,7 +18516,8 @@
"node_modules/aproba": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+ "dev": true
},
"node_modules/arch": {
"version": "2.2.0",
@@ -18515,6 +18542,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
"integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
+ "dev": true,
"dependencies": {
"delegates": "^1.0.0",
"readable-stream": "^3.6.0"
@@ -18527,6 +18555,7 @@
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -20442,6 +20471,7 @@
"version": "15.3.0",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
"integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "dev": true,
"dependencies": {
"@npmcli/fs": "^1.0.0",
"@npmcli/move-file": "^1.0.1",
@@ -20470,6 +20500,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
@@ -20481,6 +20512,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -20492,6 +20524,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -20505,7 +20538,8 @@
"node_modules/cacache/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/cache-base": {
"version": "1.0.1",
@@ -20901,6 +20935,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "dev": true,
"engines": {
"node": ">=10"
}
@@ -20990,6 +21025,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true,
"engines": {
"node": ">=6"
}
@@ -21039,6 +21075,7 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
"integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
+ "dev": true,
"dependencies": {
"string-width": "^4.2.0"
},
@@ -21373,6 +21410,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "dev": true,
"bin": {
"color-support": "bin.js"
}
@@ -21614,7 +21652,8 @@
"node_modules/console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+ "dev": true
},
"node_modules/constant-case": {
"version": "3.0.4",
@@ -23395,7 +23434,8 @@
"node_modules/delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
+ "dev": true
},
"node_modules/depd": {
"version": "2.0.0",
@@ -23465,6 +23505,14 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/detect-element-overflow": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/detect-element-overflow/-/detect-element-overflow-1.4.2.tgz",
+ "integrity": "sha512-4m6cVOtvm/GJLjo7WFkPfwXoEIIbM7GQwIh4WEa4g7IsNi1YzwUsGL5ApNLrrHL29bHeNeQ+/iZhw+YHqgE2Fw==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/detect-element-overflow?sponsor=1"
+ }
+ },
"node_modules/detect-indent": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
@@ -26994,6 +27042,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
@@ -29286,6 +29335,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
"integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
+ "dev": true,
"dependencies": {
"aproba": "^1.0.3 || ^2.0.0",
"color-support": "^1.1.2",
@@ -29519,6 +29569,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-user-locale": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-1.5.1.tgz",
+ "integrity": "sha512-WiNpoFRcHn1qxP9VabQljzGwkAQDrcpqUtaP0rNBEkFxJdh4f3tik6MfZsMYZc+UgQJdGCxWEjL9wnCUlRQXag==",
+ "dependencies": {
+ "lodash.memoize": "^4.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1"
+ }
+ },
"node_modules/get-value": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-3.0.1.tgz",
@@ -30241,7 +30302,8 @@
"node_modules/has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+ "dev": true
},
"node_modules/has-value": {
"version": "1.0.0",
@@ -31139,7 +31201,8 @@
"node_modules/infer-owner": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
},
"node_modules/inflight": {
"version": "1.0.6",
@@ -37178,6 +37241,14 @@
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
},
+ "node_modules/make-event-props": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz",
+ "integrity": "sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1"
+ }
+ },
"node_modules/makeerror": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
@@ -37472,11 +37543,35 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/merge-class-names": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/merge-class-names/-/merge-class-names-1.4.2.tgz",
+ "integrity": "sha512-bOl98VzwCGi25Gcn3xKxnR5p/WrhWFQB59MS/aGENcmUc6iSm96yrFDF0XSNurX9qN4LbJm0R9kfvsQ17i8zCw==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/merge-class-names?sponsor=1"
+ }
+ },
"node_modules/merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
+ "node_modules/merge-refs": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.2.2.tgz",
+ "integrity": "sha512-RwcT7GsQR3KbuLw1rRuodq4Nt547BKEBkliZ0qqsrpyNne9bGTFtsFIsIpx82huWhcl3kOlOlH4H0xkPk/DqVw==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -37691,6 +37786,7 @@
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
@@ -37702,6 +37798,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
"integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
@@ -37713,6 +37810,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
"integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
@@ -37724,6 +37822,7 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
"integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
@@ -37734,12 +37833,14 @@
"node_modules/minipass/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/minizlib": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
"integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dev": true,
"dependencies": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
@@ -37751,7 +37852,8 @@
"node_modules/minizlib/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/mississippi": {
"version": "3.0.0",
@@ -38410,6 +38512,7 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
"integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dev": true,
"dependencies": {
"hosted-git-info": "^4.0.1",
"is-core-module": "^2.5.0",
@@ -38424,6 +38527,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -38435,6 +38539,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
@@ -38446,6 +38551,7 @@
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -38459,7 +38565,8 @@
"node_modules/normalize-package-data/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/normalize-path": {
"version": "3.0.0",
@@ -41414,6 +41521,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
"integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
+ "dev": true,
"dependencies": {
"are-we-there-yet": "^2.0.0",
"console-control-strings": "^1.1.0",
@@ -42036,6 +42144,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
"integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
+ "dev": true,
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -43693,7 +43802,8 @@
"node_modules/promise-inflight": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true
},
"node_modules/promise.allsettled": {
"version": "1.0.7",
@@ -44186,6 +44296,48 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-calendar": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-3.9.0.tgz",
+ "integrity": "sha512-g6RJCEaPovHTiV2bMhBUfm0a1YoMj4bOUpL8hQSLmR1Glhc7lgRLtZBd4mcC4jkoGsb+hv9uA/QH4pZcm5l9lQ==",
+ "dependencies": {
+ "@wojtekmaj/date-utils": "^1.0.2",
+ "get-user-locale": "^1.2.0",
+ "merge-class-names": "^1.1.1",
+ "prop-types": "^15.6.0"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-date-picker": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/react-date-picker/-/react-date-picker-8.4.0.tgz",
+ "integrity": "sha512-zocntugDUyiHmV2Nq1qnsk4kDQuhBLUsDTz7akfIEJ0jVX925w0K5Ai5oZzWFNQOzXL/ITxafmDMuSbzlpBt/A==",
+ "dependencies": {
+ "@types/react-calendar": "^3.0.0",
+ "@wojtekmaj/date-utils": "^1.0.3",
+ "get-user-locale": "^1.2.0",
+ "make-event-props": "^1.1.0",
+ "merge-class-names": "^1.1.1",
+ "merge-refs": "^1.0.0",
+ "prop-types": "^15.6.0",
+ "react-calendar": "^3.3.1",
+ "react-fit": "^1.4.0",
+ "update-input-width": "^1.2.2"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-date-picker?sponsor=1"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/react-dev-utils": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
@@ -44376,6 +44528,33 @@
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz",
"integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw=="
},
+ "node_modules/react-fit": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/react-fit/-/react-fit-1.7.1.tgz",
+ "integrity": "sha512-y/TYovCCBzfIwRJsbLj0rH4Es40wPQhU5GPPq9GlbdF09b0OdzTdMSkBza0QixSlgFzTm6dkM7oTFzaVvaBx+w==",
+ "dependencies": {
+ "detect-element-overflow": "^1.4.0",
+ "prop-types": "^15.6.0",
+ "tiny-warning": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-fit?sponsor=1"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "@types/react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-hook-form": {
"version": "7.48.2",
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.48.2.tgz",
@@ -47027,6 +47206,7 @@
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
"integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dev": true,
"dependencies": {
"minipass": "^3.1.1"
},
@@ -48225,6 +48405,7 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
"integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "dev": true,
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
@@ -48261,6 +48442,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -48269,6 +48451,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -48279,7 +48462,8 @@
"node_modules/tar/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/telejson": {
"version": "6.0.8",
@@ -49294,6 +49478,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
"integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dev": true,
"dependencies": {
"unique-slug": "^2.0.0"
}
@@ -49302,6 +49487,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
"integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dev": true,
"dependencies": {
"imurmurhash": "^0.1.4"
}
@@ -49584,6 +49770,14 @@
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
},
+ "node_modules/update-input-width": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/update-input-width/-/update-input-width-1.4.2.tgz",
+ "integrity": "sha512-/p0XLhrQQQ4bMWD7bL9duYObwYCO1qGr8R19xcMmoMSmXuQ7/1//veUnCObQ7/iW6E2pGS6rFkS4TfH4ur7e/g==",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/update-input-width?sponsor=1"
+ }
+ },
"node_modules/upper-case": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
@@ -50762,6 +50956,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
"integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "dev": true,
"dependencies": {
"string-width": "^1.0.2 || 2 || 3 || 4"
}
diff --git a/package.json b/package.json
index a302f916833..4fbdbab34fa 100644
--- a/package.json
+++ b/package.json
@@ -57,6 +57,7 @@
"prompt-sync": "^4.2.0",
"prop-types": "^15.8.1",
"react": "^18.2.0",
+ "react-date-picker": "8.4.0",
"react-device-detect": "^2.2.2",
"react-dom": "^18.2.0",
"react-hook-form": "^7.43.9",
diff --git a/src/components/custom/signup.tsx b/src/components/custom/signup.tsx
index 05b190c063a..995909e9788 100644
--- a/src/components/custom/signup.tsx
+++ b/src/components/custom/signup.tsx
@@ -1,9 +1,9 @@
import React, { useState } from 'react'
-import { graphql, useStaticQuery, navigate } from 'gatsby'
+import { graphql, navigate, useStaticQuery } from 'gatsby'
import styled from 'styled-components'
import Cookies from 'js-cookie'
import { getLanguage } from '../../common/utility'
-import { getCookiesObject, getCookiesFields, getDataObjFromCookies } from 'common/cookies'
+import { getCookiesFields, getCookiesObject, getDataObjFromCookies } from 'common/cookies'
import { Flex } from 'components/containers'
import Login, { TSocialProvider } from 'common/login'
import validation from 'common/validation'
diff --git a/src/components/elements/dropdown-search.tsx b/src/components/elements/dropdown-search.tsx
index ae672a8a6d9..2fd3ed7d693 100644
--- a/src/components/elements/dropdown-search.tsx
+++ b/src/components/elements/dropdown-search.tsx
@@ -92,6 +92,10 @@ const DropdownSearch = ({
}
}, [selected_item])
+ useEffect(() => {
+ setDropdownItems([...items])
+ }, [items])
+
const handleInputChange = (e) => {
setInputValue(e.target.value)
toggleListVisibility(e)
diff --git a/src/components/elements/dropdown.tsx b/src/components/elements/dropdown.tsx
index f6df0bcf1c9..0d3b9a611ae 100644
--- a/src/components/elements/dropdown.tsx
+++ b/src/components/elements/dropdown.tsx
@@ -247,7 +247,6 @@ const UnorderedList = styled.ul`
position: absolute;
left: 0;
top: 0.8rem;
- border-radius: 4px;
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.16);
transition: opacity 0.1s cubic-bezier(0, 0, 0.38, 0.9),
max-height 0.25s cubic-bezier(0, 0, 0.38, 0.9);
@@ -313,7 +312,7 @@ export const StyledLabel = styled.label`
color: var(--color-green);
transform: translate(-0.6rem, -2.2rem) scale(0.7);
@media ${device.tabletL} {
- top: 9px;
+ top: 15px;
}
`
}}
diff --git a/src/components/form/input.tsx b/src/components/form/input.tsx
index 479d74a42a0..7de2314369f 100644
--- a/src/components/form/input.tsx
+++ b/src/components/form/input.tsx
@@ -22,7 +22,7 @@ interface ReactInput extends React.ComponentPropsWithoutRef<'input'> {
) => void
}
-type InputProps = ReactInput & InputWrapperProps & StyledInputProps & StyledLabelProps
+export type InputProps = ReactInput & InputWrapperProps & StyledInputProps & StyledLabelProps
type InputWrapperProps = {
border?: string
@@ -53,10 +53,10 @@ type StyledLabelProps = {
htmlFor?: string
}
-const RelativeWrapper = styled.div`
+export const RelativeWrapper = styled.div`
position: relative;
`
-const InputWrapper = styled.div`
+export const InputWrapper = styled.div`
/* prettier-ignore */
width: 100%;
border: ${(props) => props.border || '1px solid var(--color-grey-2)'};
@@ -96,7 +96,7 @@ const InputWrapper = styled.div`
`}
`
-const StyledError = styled.img`
+export const StyledError = styled.img`
position: absolute;
right: 0.8rem;
top: 1.2rem;
@@ -112,7 +112,7 @@ const StyledError = styled.img`
}
`
-const StyledInput = styled.input`
+export const StyledInput = styled.input`
color: ${({ inputColor }) =>
inputColor ? `var(--color-${inputColor})` : 'var(--color-black)'};
font-size: var(--text-size-s);
@@ -130,7 +130,7 @@ const StyledInput = styled.input`
& ~ label {
font-size: 1.75rem;
- top: 1.95rem;
+ top: 15px;
}
}
@media ${device.mobileL} {
@@ -154,7 +154,7 @@ const StyledInput = styled.input`
background-color: ${({ background }) =>
background ? `var(--color-${background})` : 'var(--color-grey-1)'};
- @media ${device.mobileL} {
+ @media ${device.tablet} {
transform: translate(-0.6rem, -20px) scale(0.7);
}
}
@@ -179,21 +179,21 @@ const StyledInput = styled.input`
background ? `var(--color-${background})` : 'var(--color-grey-1)'};
@media ${device.tabletL} {
- top: 9px;
+ top: 15px;
}
}
`}
}
`
-const ErrorMessages = styled(Text)`
+export const ErrorMessages = styled(Text)`
padding: 6px;
font-size: 1.2rem;
min-height: 16px;
color: var(--color-red-1);
`
-const StyledLabel = styled.label`
+export const StyledLabel = styled.label`
color: ${({ label_color }) =>
label_color ? `var(--color-${label_color})` : 'var(--color-grey)'};
font-size: var(--text-size-xs);
diff --git a/src/components/layout/layout.tsx b/src/components/layout/layout.tsx
index fd5cf15bfcd..89c2c4c2606 100644
--- a/src/components/layout/layout.tsx
+++ b/src/components/layout/layout.tsx
@@ -15,6 +15,7 @@ import BugBountyNav from 'features/components/templates/navigation/bug-bounty-na
import CareerNav from 'features/components/templates/navigation/career-nav'
import MarketNav from 'features/components/templates/navigation/market-nav'
import PpcProvider from 'features/contexts/ppc-campaign/ppc.provider'
+import AffiliateNav from 'features/components/templates/navigation/affiliates-nav'
import BannerAlert from 'components/custom/_banner-alert'
import { bannerTypes } from 'common/constants'
@@ -80,6 +81,7 @@ const Navs = {
careers: ,
'payment-methods': ,
+ affiliates: ,
}
const Layout = ({
diff --git a/src/features/components/templates/navigation/affiliates-nav/index.tsx b/src/features/components/templates/navigation/affiliates-nav/index.tsx
new file mode 100644
index 00000000000..178a3039e39
--- /dev/null
+++ b/src/features/components/templates/navigation/affiliates-nav/index.tsx
@@ -0,0 +1,28 @@
+import React from 'react'
+import Link from 'features/components/atoms/link'
+import Image from 'features/components/atoms/image'
+import NavTemplate from 'features/components/templates/navigation/template'
+import LanguageSwitcher from 'features/components/molecules/language-switcher'
+import { partners_nav_logo } from 'features/components/templates/navigation/payment-agent-nav/payment-agent-nav.module.scss'
+import PartnerNavLogo from 'images/svg/partner-nav-logo.svg'
+
+const AffiliateNav = () => {
+ return (
+ (
+
+
+
+ )}
+ >
+
+
+ )
+}
+
+export default AffiliateNav
diff --git a/src/features/components/templates/navigation/payment-agent-nav/index.tsx b/src/features/components/templates/navigation/payment-agent-nav/index.tsx
index 11905ae6eba..5eb0980efdf 100644
--- a/src/features/components/templates/navigation/payment-agent-nav/index.tsx
+++ b/src/features/components/templates/navigation/payment-agent-nav/index.tsx
@@ -1,7 +1,7 @@
import React, { useMemo } from 'react'
import NavTemplate from '../template'
import affiliateNavItems from './data'
-import { partners_nav_logo, partners_buttons } from './payment-agent-nav.module.scss'
+import { partners_buttons, partners_nav_logo } from './payment-agent-nav.module.scss'
import PrimeLogo from 'images/svg/deriv-prime/deriv-prime-logo.svg'
import PartnerNavLogo from 'images/svg/partner-nav-logo.svg'
import Image from 'features/components/atoms/image'
@@ -12,6 +12,7 @@ import Link from 'features/components/atoms/link'
import Flex from 'features/components/atoms/flex-box'
import { getLocationPathname } from 'common/utility'
import useScrollToElement from 'features/hooks/use-scroll-to-element'
+import useAffiliateSignupLink from 'features/hooks/ab-testing/use-partners-signup-link'
import useRegion from 'components/hooks/use-region'
import { TString } from 'types/generics'
import { localize } from 'components/localization'
@@ -25,6 +26,8 @@ const PaymentAgentAffiliateNav = ({ is_prime_page = false }: { is_prime_page?: b
const clickToScrollHandler = useScrollToElement('getintouch')
const { is_eu } = useRegion()
+ const { affiliate_signup_link } = useAffiliateSignupLink()
+
const texts: contentType = is_eu
? {
login: '_t_Affiliate log in_t_',
@@ -67,7 +70,7 @@ const PaymentAgentAffiliateNav = ({ is_prime_page = false }: { is_prime_page?: b
window.open('https://login.deriv.com/signup.php', '_blank')}
+ onClick={() => window.open(affiliate_signup_link, '_blank')}
visible={'larger-than-tablet'}
className={partners_buttons}
>
@@ -75,7 +78,7 @@ const PaymentAgentAffiliateNav = ({ is_prime_page = false }: { is_prime_page?: b
>
)
- }, [path_name])
+ }, [path_name, affiliate_signup_link])
return (
{
+ const [affiliate_signup_link, setAffiliateSignupLink] = useState('')
+
+ useEffect(() => {
+ const partners_signup_ab_test = Analytics?.getFeatureValue(
+ 'partners_signup_ab_test',
+ 'fallback',
+ )
+ const language = getLanguage()
+
+ const calculated_link =
+ partners_signup_ab_test === true
+ ? `${window.location.origin}${
+ language !== 'en' ? '/' + language : ''
+ }/signup-affiliates`
+ : affiliate_signup_url
+
+ setAffiliateSignupLink(calculated_link)
+ }, [])
+
+ return { affiliate_signup_link }
+}
+
+export default useAffiliateSignupLink
diff --git a/src/features/hooks/use-residence-list/index.tsx b/src/features/hooks/use-residence-list/index.tsx
index e942aeefb8e..5f7c7b9414c 100644
--- a/src/features/hooks/use-residence-list/index.tsx
+++ b/src/features/hooks/use-residence-list/index.tsx
@@ -1,29 +1,46 @@
import { useEffect, useMemo } from 'react'
-import useWS from '../../../components/hooks/useWS'
+import useWS from 'components/hooks/useWS'
export type ResidenceType = {
text: string
value: string
}
-const formatResidenceList = (residences) => {
+const formatResidenceList = ({
+ residences,
+ restricted,
+}: {
+ residences: any[]
+ restricted: ['Iran', 'North Korea', 'Myanmar (Burma)', 'Syria', 'Cuba']
+}) => {
if (!residences.length) {
return []
}
- return residences?.map(({ text: display_name, text: name, value: symbol }) => ({
- name,
- display_name,
- symbol,
- }))
+ return residences
+ .filter(({ text: name }) => !restricted.includes(name))
+ .map(({ text: display_name, text: name, value: symbol, phone_idd: prefix }) => {
+ return {
+ name,
+ display_name,
+ symbol,
+ prefix,
+ }
+ })
}
-export const useResidenceList = () => {
+export const useResidenceList = ({
+ restricted_countries,
+}: {
+ restricted_countries?: ['Iran', 'North Korea', 'Myanmar (Burma)', 'Syria', 'Cuba']
+} = {}) => {
const { send, data } = useWS('residence_list')
-
useEffect(() => {
send()
}, [send])
- const residence_list = useMemo(() => formatResidenceList(data || []), [data])
+ const residence_list = useMemo(
+ () => formatResidenceList({ residences: data || [], restricted: restricted_countries }),
+ [data],
+ )
return [residence_list]
}
diff --git a/src/features/hooks/use-states-list/index.tsx b/src/features/hooks/use-states-list/index.tsx
new file mode 100644
index 00000000000..4e51087e79a
--- /dev/null
+++ b/src/features/hooks/use-states-list/index.tsx
@@ -0,0 +1,32 @@
+import { useEffect, useMemo } from 'react'
+import useWS from '../../../components/hooks/useWS'
+
+export type ResidenceType = {
+ text: string
+ value: string
+}
+
+const formatStatesList = (states) => {
+ if (!states.length) {
+ return []
+ }
+
+ return states?.map(
+ ({ text }) =>
+ typeof text !== undefined && {
+ name: text,
+ display_name: text,
+ },
+ )
+}
+
+export const useStatesList = (country_code) => {
+ const { send, data } = useWS('states_list')
+
+ useEffect(() => {
+ send({ states_list: country_code })
+ }, [country_code])
+
+ const states_list = useMemo(() => formatStatesList(data || []), [data])
+ return [states_list]
+}
diff --git a/src/images/common/affiliate/map.png b/src/images/common/affiliate/map.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea65455cc1fd4bc50a7e41124af91ee3d789fd6a
GIT binary patch
literal 167650
zcmXt9WmH?;5>0S-cPr2qclRJIP^`t>-QC@t;_lGmuEmN4cXxMpd9?lBkF1-lm6e;h
z=ggkH_sj{Ela)Y5AV2^B0LW63VhR8N^xIpY8yw8rMI7T=^z8y~BdKZ+03c%ic>w{b
z>3Dy>Vy_?}0w^CL+JE~1Wh^Ws3;9>gij$~ba@uA9`^Q9l~(KhsvthbE|wTIY3hGJUtMM9iW!FM$%
z&Z}2HIBbu3nyxARW?RMKysBJY;U6aAy$&&L6p6i6G*2BeO}qS@h~CY(ghLGwC8MXfraGnP|zhEw&nl~#NjVnr-m
z!dC&SEY{G0uGPyCXf>;pc5dig^IhQ2|KF{EN9{d8>Fs{gC1{;_^oU1*^$36ib<=p5jDWV<+F90~>qXHOFl
z>wZ~dq2OU}$Gm`rMi^**J!)G0Vy;hIF
zSh8eCgy*eqcrcpOunr@j3gPOvN+4bGav$7fg$N**v9=SkO2Y^O^IOjQ$#ov=wI;_`;iHHQ^1uVt#h+wRTPxfCu}8E^k$Fhm1I7
zEkrV=1)ey&KRj9;{xUP8Dfix#?1NDy<3(Ca6t<4<-S+!D997%4{LY8#ptWr_MD+hF
zdhqodxcE=-j;U;enG@cZT@Y<-oR`NEk%x}q*sRjcIN97f&h?M+t{e>Uj3;q9;ulGy
znJO-|DIPcYz5;mO38Y?kju-d4P^BJ^t1k9l_n+;B