@matchain/matchid-sdk-react 0.1.30 → 0.1.32
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.d.mts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +596 -67
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +596 -67
- package/dist/index.mjs.map +1 -1
- package/example/src/App.tsx +13 -3
- package/example/src/components/Login/index.tsx +2 -2
- package/example/src/config/index.ts +5 -1
- package/example/src/pages/User.tsx +1 -1
- package/package.json +2 -1
- package/readme.md +29 -3
package/dist/index.mjs
CHANGED
|
@@ -512,6 +512,19 @@ function LinkedinIcon({
|
|
|
512
512
|
|
|
513
513
|
// src/assets/icon/YoutubeIcon.tsx
|
|
514
514
|
import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
515
|
+
function YoutubeIcon({ size = 40, ...props }) {
|
|
516
|
+
return /* @__PURE__ */ jsxs16("svg", { width: size, height: size, ...{ props }, viewBox: "0 0 40 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
517
|
+
/* @__PURE__ */ jsx26("rect", { width: "40", height: "40", rx: "8", fill: "#FF0000" }),
|
|
518
|
+
/* @__PURE__ */ jsx26(
|
|
519
|
+
"path",
|
|
520
|
+
{
|
|
521
|
+
d: "M33.9855 13.1304C33.656 11.9065 32.691 10.9415 31.4671 10.612C29.231 10 20.287 10 20.287 10C20.287 10 11.3429 10 9.10689 10.5884C7.9065 10.9179 6.91794 11.9065 6.58843 13.1304C6 15.3664 6 20.0032 6 20.0032C6 20.0032 6 24.6636 6.58843 26.876C6.91794 28.1 7.88296 29.065 9.10689 29.3945C11.3664 30.0065 20.287 30.0065 20.287 30.0065C20.287 30.0065 29.231 30.0065 31.4671 29.418C32.691 29.0885 33.656 28.1235 33.9855 26.8996C34.5739 24.6636 34.5739 20.0268 34.5739 20.0268C34.5739 20.0268 34.5975 15.3664 33.9855 13.1304Z",
|
|
522
|
+
fill: "white"
|
|
523
|
+
}
|
|
524
|
+
),
|
|
525
|
+
/* @__PURE__ */ jsx26("path", { d: "M17.439 24.2867L24.8767 20.003L17.439 15.7192V24.2867Z", fill: "#FF0000" })
|
|
526
|
+
] });
|
|
527
|
+
}
|
|
515
528
|
|
|
516
529
|
// src/assets/icon/BTCDarkIcon.tsx
|
|
517
530
|
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
@@ -630,7 +643,7 @@ function ArrowDownIcon({ width = 20, height = 21, color = "black", ...props }) {
|
|
|
630
643
|
{
|
|
631
644
|
d: "M5 7.5L9.29289 11.7929C9.68342 12.1834 10.3166 12.1834 10.7071 11.7929L15 7.5",
|
|
632
645
|
stroke: color,
|
|
633
|
-
|
|
646
|
+
strokeWidth: "1.5",
|
|
634
647
|
strokeLinecap: "round",
|
|
635
648
|
strokeLinejoin: "round"
|
|
636
649
|
}
|
|
@@ -806,7 +819,9 @@ var persistedState = persist(
|
|
|
806
819
|
setTheme: (theme) => set({ theme }),
|
|
807
820
|
setEndpoints: (endpoints) => set({ endpoints }),
|
|
808
821
|
address: "",
|
|
809
|
-
setAddress: (address) => set({ address })
|
|
822
|
+
setAddress: (address) => set({ address }),
|
|
823
|
+
locale: "en",
|
|
824
|
+
setLocale: (locale) => set({ locale })
|
|
810
825
|
}),
|
|
811
826
|
{ name: "match-local" }
|
|
812
827
|
);
|
|
@@ -855,6 +870,19 @@ var getAppid = () => {
|
|
|
855
870
|
return "";
|
|
856
871
|
}
|
|
857
872
|
};
|
|
873
|
+
var getLocale = () => {
|
|
874
|
+
try {
|
|
875
|
+
const store = localStore.getState();
|
|
876
|
+
const locale = store?.locale;
|
|
877
|
+
if (locale) {
|
|
878
|
+
return locale;
|
|
879
|
+
} else {
|
|
880
|
+
return "en";
|
|
881
|
+
}
|
|
882
|
+
} catch (e) {
|
|
883
|
+
return "en";
|
|
884
|
+
}
|
|
885
|
+
};
|
|
858
886
|
var getToken = () => {
|
|
859
887
|
try {
|
|
860
888
|
const store = localStore.getState();
|
|
@@ -903,6 +931,7 @@ var request = async (config) => {
|
|
|
903
931
|
if (token) {
|
|
904
932
|
instance.defaults.headers.common["Authorization"] = token;
|
|
905
933
|
}
|
|
934
|
+
instance.defaults.headers.common["Accept-Language"] = getLocale();
|
|
906
935
|
const { data } = await instance.request(config);
|
|
907
936
|
matchlog_default.log("api", data);
|
|
908
937
|
if (data.code == 401001) {
|
|
@@ -1123,8 +1152,8 @@ function truncateAddress(address) {
|
|
|
1123
1152
|
const end = address.slice(-2);
|
|
1124
1153
|
return `${start}...${end}`;
|
|
1125
1154
|
}
|
|
1126
|
-
function
|
|
1127
|
-
return
|
|
1155
|
+
function getAppClientId() {
|
|
1156
|
+
return "react-sdk-" + getVersion();
|
|
1128
1157
|
}
|
|
1129
1158
|
|
|
1130
1159
|
// src/store/useModalStore.ts
|
|
@@ -1163,7 +1192,7 @@ function useUserInfo() {
|
|
|
1163
1192
|
eventManager_default.emit("onLogout");
|
|
1164
1193
|
};
|
|
1165
1194
|
const loginByMethod = async (method) => {
|
|
1166
|
-
const link = `${endpoints.back}api/v1/auth/${method}?appid=${appid}&provider=${method}&redirect=${encodeURIComponent(endpoints.auth + "login/" + method)}&authorization=${(/* @__PURE__ */ new Date()).getTime()}`;
|
|
1195
|
+
const link = `${endpoints.back}api/v1/auth/${method == "youtube" ? "google" : method}?appid=${appid}&provider=${method == "youtube" ? "google" : method}&redirect=${encodeURIComponent(endpoints.auth + "login/" + method)}&authorization=${(/* @__PURE__ */ new Date()).getTime()}${method == "youtube" ? "&auth_type=youtube" : ""}`;
|
|
1167
1196
|
matchlog_default.log("link", link);
|
|
1168
1197
|
return window.open(
|
|
1169
1198
|
link,
|
|
@@ -1197,6 +1226,7 @@ function useUserInfo() {
|
|
|
1197
1226
|
return SOLOpen("login");
|
|
1198
1227
|
case "telegram":
|
|
1199
1228
|
return await loginByTelegram();
|
|
1229
|
+
case "youtube":
|
|
1200
1230
|
case "twitter":
|
|
1201
1231
|
case "google":
|
|
1202
1232
|
case "discord":
|
|
@@ -1289,7 +1319,8 @@ function useUserInfo() {
|
|
|
1289
1319
|
case "github":
|
|
1290
1320
|
case "linkedin":
|
|
1291
1321
|
case "facebook":
|
|
1292
|
-
|
|
1322
|
+
case "youtube":
|
|
1323
|
+
const link = `${endpoints.back}api/v1/auth/${method == "youtube" ? "google" : method}?appid=${appid}&provider=${method == "youtube" ? "google" : method}&redirect=${encodeURIComponent(endpoints.auth + "bind/" + method)}&authorization=${token.includes("Bearer ") ? token.split(" ")[1] : token}${method == "youtube" ? "&auth_type=youtube" : ""}`;
|
|
1293
1324
|
matchlog_default.log("link", link);
|
|
1294
1325
|
return window.open(
|
|
1295
1326
|
link,
|
|
@@ -1514,6 +1545,7 @@ function useCopyClipboard(timeout = 500) {
|
|
|
1514
1545
|
}
|
|
1515
1546
|
|
|
1516
1547
|
// src/components/PasswordModal/index.tsx
|
|
1548
|
+
import { FormattedMessage, useIntl } from "react-intl";
|
|
1517
1549
|
import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1518
1550
|
function PasswordModal({
|
|
1519
1551
|
title,
|
|
@@ -1521,28 +1553,40 @@ function PasswordModal({
|
|
|
1521
1553
|
onSuccess,
|
|
1522
1554
|
...props
|
|
1523
1555
|
}) {
|
|
1524
|
-
const { refreshOverview } = useUserInfo();
|
|
1556
|
+
const { refreshOverview, overview } = useUserInfo();
|
|
1525
1557
|
const { isLogin, did } = useUserInfo();
|
|
1526
1558
|
const [password, setPassword] = useState3("");
|
|
1527
1559
|
const [rePassword, setRePassword] = useState3("");
|
|
1528
1560
|
const [error, setError] = useState3("");
|
|
1529
|
-
const { generateWallet } = useWallet();
|
|
1561
|
+
const { generateWallet, initWallet } = useWallet();
|
|
1562
|
+
const intl = useIntl();
|
|
1530
1563
|
const passwordError = useMemo2(() => {
|
|
1531
|
-
if (password.length < 6) return
|
|
1564
|
+
if (password.length < 6) return intl.formatMessage({
|
|
1565
|
+
id: "passwordMinError"
|
|
1566
|
+
}, {
|
|
1567
|
+
length: 6
|
|
1568
|
+
});
|
|
1532
1569
|
return "";
|
|
1533
1570
|
}, [password]);
|
|
1534
1571
|
const rePasswordError = useMemo2(() => {
|
|
1535
1572
|
if (rePassword != password) {
|
|
1536
|
-
return
|
|
1573
|
+
return intl.formatMessage({
|
|
1574
|
+
id: "passwordMatchError"
|
|
1575
|
+
});
|
|
1537
1576
|
}
|
|
1538
1577
|
return "";
|
|
1539
1578
|
}, [rePassword, password]);
|
|
1540
1579
|
useEffect3(() => {
|
|
1541
|
-
if (isOpen) {
|
|
1580
|
+
if (isOpen && overview) {
|
|
1542
1581
|
setPassword("");
|
|
1543
1582
|
setRePassword("");
|
|
1583
|
+
const did2 = overview.did.split(":")[2];
|
|
1584
|
+
initWallet({
|
|
1585
|
+
did: did2,
|
|
1586
|
+
address: ""
|
|
1587
|
+
});
|
|
1544
1588
|
}
|
|
1545
|
-
}, [isOpen]);
|
|
1589
|
+
}, [isOpen, overview]);
|
|
1546
1590
|
const [isSubmitting, setIsSubmitting] = useState3(false);
|
|
1547
1591
|
const onContinue = async () => {
|
|
1548
1592
|
if (isSubmitting) return;
|
|
@@ -1560,26 +1604,32 @@ function PasswordModal({
|
|
|
1560
1604
|
setIsSubmitting(false);
|
|
1561
1605
|
}
|
|
1562
1606
|
};
|
|
1563
|
-
return /* @__PURE__ */ jsx40(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title ||
|
|
1607
|
+
return /* @__PURE__ */ jsx40(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
1608
|
+
id: "passwordTitle"
|
|
1609
|
+
}), children: /* @__PURE__ */ jsxs26("div", { className: "matchid-password-box", children: [
|
|
1564
1610
|
/* @__PURE__ */ jsxs26("div", { className: "matchid-password-header", children: [
|
|
1565
1611
|
/* @__PURE__ */ jsx40("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ jsx40(PasswordRoundIcon, {}) }),
|
|
1566
|
-
/* @__PURE__ */ jsx40("div", { className: "matchid-password-header-content", children:
|
|
1612
|
+
/* @__PURE__ */ jsx40("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ jsx40(FormattedMessage, { id: "passwordTips" }) })
|
|
1567
1613
|
] }),
|
|
1568
1614
|
/* @__PURE__ */ jsxs26("div", { className: "matchid-password-content", children: [
|
|
1569
|
-
/* @__PURE__ */ jsx40(Field, { label: "
|
|
1615
|
+
/* @__PURE__ */ jsx40(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ jsx40(
|
|
1570
1616
|
Input,
|
|
1571
1617
|
{
|
|
1572
|
-
placeholder:
|
|
1618
|
+
placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
|
|
1573
1619
|
maxLength: 32,
|
|
1574
1620
|
type: "password",
|
|
1575
1621
|
onChange: (e) => setPassword(e.target.value),
|
|
1576
1622
|
value: password
|
|
1577
1623
|
}
|
|
1578
1624
|
) }),
|
|
1579
|
-
/* @__PURE__ */ jsx40(Field, { label:
|
|
1625
|
+
/* @__PURE__ */ jsx40(Field, { label: intl.formatMessage({
|
|
1626
|
+
id: "rePassword"
|
|
1627
|
+
}), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ jsx40(
|
|
1580
1628
|
Input,
|
|
1581
1629
|
{
|
|
1582
|
-
placeholder:
|
|
1630
|
+
placeholder: intl.formatMessage({
|
|
1631
|
+
id: "rePasswordPlaceholder"
|
|
1632
|
+
}),
|
|
1583
1633
|
maxLength: 32,
|
|
1584
1634
|
onChange: (e) => setRePassword(e.target.value),
|
|
1585
1635
|
value: rePassword,
|
|
@@ -1596,7 +1646,7 @@ function PasswordModal({
|
|
|
1596
1646
|
size: "lg",
|
|
1597
1647
|
onClick: onContinue,
|
|
1598
1648
|
loading: isSubmitting,
|
|
1599
|
-
children: "
|
|
1649
|
+
children: /* @__PURE__ */ jsx40(FormattedMessage, { id: "continue" })
|
|
1600
1650
|
}
|
|
1601
1651
|
)
|
|
1602
1652
|
] }) });
|
|
@@ -1604,6 +1654,7 @@ function PasswordModal({
|
|
|
1604
1654
|
|
|
1605
1655
|
// src/components/RecoveryModal/index.tsx
|
|
1606
1656
|
import { useEffect as useEffect4, useMemo as useMemo3, useState as useState4 } from "react";
|
|
1657
|
+
import { FormattedMessage as FormattedMessage2, useIntl as useIntl2 } from "react-intl";
|
|
1607
1658
|
import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1608
1659
|
function RecoveryModal({
|
|
1609
1660
|
title,
|
|
@@ -1612,19 +1663,29 @@ function RecoveryModal({
|
|
|
1612
1663
|
...props
|
|
1613
1664
|
}) {
|
|
1614
1665
|
const { refreshOverview } = useUserInfo();
|
|
1615
|
-
const { isLogin } = useUserInfo();
|
|
1666
|
+
const { isLogin, overview } = useUserInfo();
|
|
1616
1667
|
const [password, setPassword] = useState4("");
|
|
1617
|
-
const { recoveryWallet } = useWallet();
|
|
1668
|
+
const { recoveryWallet, initWallet } = useWallet();
|
|
1618
1669
|
const [error, setError] = useState4("");
|
|
1670
|
+
const intl = useIntl2();
|
|
1619
1671
|
const passwordError = useMemo3(() => {
|
|
1620
|
-
if (password.length < 6) return
|
|
1672
|
+
if (password.length < 6) return intl.formatMessage({
|
|
1673
|
+
id: "passwordMinError"
|
|
1674
|
+
}, {
|
|
1675
|
+
length: 6
|
|
1676
|
+
});
|
|
1621
1677
|
return "";
|
|
1622
1678
|
}, [password]);
|
|
1623
1679
|
useEffect4(() => {
|
|
1624
|
-
if (isOpen) {
|
|
1680
|
+
if (isOpen && overview) {
|
|
1625
1681
|
setPassword("");
|
|
1682
|
+
const did = overview.did.split(":")[2];
|
|
1683
|
+
initWallet({
|
|
1684
|
+
did,
|
|
1685
|
+
address: overview.address
|
|
1686
|
+
});
|
|
1626
1687
|
}
|
|
1627
|
-
}, [isOpen]);
|
|
1688
|
+
}, [isOpen, overview]);
|
|
1628
1689
|
const [isSubmitting, setIsSubmitting] = useState4(false);
|
|
1629
1690
|
const onContinue = async () => {
|
|
1630
1691
|
if (isSubmitting) return;
|
|
@@ -1640,15 +1701,17 @@ function RecoveryModal({
|
|
|
1640
1701
|
setIsSubmitting(false);
|
|
1641
1702
|
}
|
|
1642
1703
|
};
|
|
1643
|
-
return /* @__PURE__ */ jsx41(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title ||
|
|
1704
|
+
return /* @__PURE__ */ jsx41(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
1705
|
+
id: "recoverTitle"
|
|
1706
|
+
}), children: /* @__PURE__ */ jsxs27("div", { className: "matchid-password-box", children: [
|
|
1644
1707
|
/* @__PURE__ */ jsxs27("div", { className: "matchid-password-header", children: [
|
|
1645
1708
|
/* @__PURE__ */ jsx41("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ jsx41(PasswordRoundIcon, {}) }),
|
|
1646
|
-
/* @__PURE__ */ jsx41("div", { className: "matchid-password-header-content", children:
|
|
1709
|
+
/* @__PURE__ */ jsx41("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ jsx41(FormattedMessage2, { id: "recoverTips" }) })
|
|
1647
1710
|
] }),
|
|
1648
|
-
/* @__PURE__ */ jsx41("div", { className: "matchid-password-content", children: /* @__PURE__ */ jsx41(Field, { label: "
|
|
1711
|
+
/* @__PURE__ */ jsx41("div", { className: "matchid-password-content", children: /* @__PURE__ */ jsx41(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 ? passwordError || error : error, children: /* @__PURE__ */ jsx41(
|
|
1649
1712
|
Input,
|
|
1650
1713
|
{
|
|
1651
|
-
placeholder:
|
|
1714
|
+
placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
|
|
1652
1715
|
maxLength: 32,
|
|
1653
1716
|
type: "password",
|
|
1654
1717
|
onChange: (e) => setPassword(e.target.value),
|
|
@@ -1664,7 +1727,7 @@ function RecoveryModal({
|
|
|
1664
1727
|
size: "lg",
|
|
1665
1728
|
onClick: onContinue,
|
|
1666
1729
|
loading: isSubmitting,
|
|
1667
|
-
children: "
|
|
1730
|
+
children: /* @__PURE__ */ jsx41(FormattedMessage2, { id: "continue" })
|
|
1668
1731
|
}
|
|
1669
1732
|
)
|
|
1670
1733
|
] }) });
|
|
@@ -1697,8 +1760,10 @@ import { useEffect as useEffect7, useState as useState7 } from "react";
|
|
|
1697
1760
|
|
|
1698
1761
|
// src/components/EmailModal/StepEmail.tsx
|
|
1699
1762
|
import { useEffect as useEffect5, useMemo as useMemo4, useState as useState5 } from "react";
|
|
1763
|
+
import { FormattedMessage as FormattedMessage3, useIntl as useIntl3 } from "react-intl";
|
|
1700
1764
|
import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1701
1765
|
function StepEmail(props) {
|
|
1766
|
+
const intl = useIntl3();
|
|
1702
1767
|
const [emailVal, setEmailVal] = useState5("");
|
|
1703
1768
|
useEffect5(() => {
|
|
1704
1769
|
if (props.email) {
|
|
@@ -1712,17 +1777,21 @@ function StepEmail(props) {
|
|
|
1712
1777
|
props.onContinue(emailVal);
|
|
1713
1778
|
};
|
|
1714
1779
|
return /* @__PURE__ */ jsxs28("div", { className: "matchid-email-email-box", children: [
|
|
1715
|
-
/* @__PURE__ */ jsx42(Field, { label:
|
|
1780
|
+
/* @__PURE__ */ jsx42(Field, { label: intl.formatMessage({
|
|
1781
|
+
id: "emailAddress"
|
|
1782
|
+
}), children: /* @__PURE__ */ jsx42(
|
|
1716
1783
|
Input,
|
|
1717
1784
|
{
|
|
1718
|
-
placeholder:
|
|
1785
|
+
placeholder: intl.formatMessage({
|
|
1786
|
+
id: "emailAddressPlaceholder"
|
|
1787
|
+
}),
|
|
1719
1788
|
onChange: (e) => setEmailVal(e.target.value),
|
|
1720
1789
|
value: emailVal
|
|
1721
1790
|
}
|
|
1722
1791
|
) }),
|
|
1723
1792
|
/* @__PURE__ */ jsx42(Button, { disabled: !canContinue, style: {
|
|
1724
1793
|
marginTop: "64px"
|
|
1725
|
-
}, onClick: onContinue, size: "lg", block: true, highlight: true, children: "
|
|
1794
|
+
}, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ jsx42(FormattedMessage3, { id: "continue" }) })
|
|
1726
1795
|
] });
|
|
1727
1796
|
}
|
|
1728
1797
|
|
|
@@ -1734,15 +1803,19 @@ var EMAIL_INTERVAL = 60;
|
|
|
1734
1803
|
var EMAIL_CODE_LENGTH = 6;
|
|
1735
1804
|
|
|
1736
1805
|
// src/components/EmailModal/StepVerify.tsx
|
|
1806
|
+
import { FormattedMessage as FormattedMessage4, useIntl as useIntl4 } from "react-intl";
|
|
1737
1807
|
import { jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
1738
1808
|
function StepVerify(props) {
|
|
1809
|
+
const intl = useIntl4();
|
|
1739
1810
|
const { getLoginEmailCode, loginByEmail } = useUserInfo();
|
|
1740
1811
|
const [error, setError] = useState6("");
|
|
1741
1812
|
const [code, setCode] = useState6("");
|
|
1742
1813
|
const [sending, setSending] = useState6(false);
|
|
1743
1814
|
const [submitting, setSubmitting] = useState6(false);
|
|
1744
1815
|
const sendTimeRef = useRef(0);
|
|
1745
|
-
const [sendBtnText, setSendBtnText] = useState6(
|
|
1816
|
+
const [sendBtnText, setSendBtnText] = useState6(intl.formatMessage({
|
|
1817
|
+
id: "send"
|
|
1818
|
+
}));
|
|
1746
1819
|
const intervalTime = EMAIL_INTERVAL;
|
|
1747
1820
|
const codeLength = EMAIL_CODE_LENGTH;
|
|
1748
1821
|
const intervalRef = useRef(null);
|
|
@@ -1760,14 +1833,18 @@ function StepVerify(props) {
|
|
|
1760
1833
|
sendTimeRef.current--;
|
|
1761
1834
|
setSendBtnText(`${sendTimeRef.current}s`);
|
|
1762
1835
|
if (sendTimeRef.current <= 0) {
|
|
1763
|
-
setSendBtnText(
|
|
1836
|
+
setSendBtnText(intl.formatMessage({
|
|
1837
|
+
id: "Resend"
|
|
1838
|
+
}));
|
|
1764
1839
|
clearInterval(intervalRef.current);
|
|
1765
1840
|
setSending(false);
|
|
1766
1841
|
}
|
|
1767
1842
|
}, 1e3);
|
|
1768
1843
|
} catch (err) {
|
|
1769
1844
|
console.error("Send email error", err);
|
|
1770
|
-
setError(
|
|
1845
|
+
setError(intl.formatMessage({
|
|
1846
|
+
id: "sendCodeErrorTip"
|
|
1847
|
+
}, { error: err.message }));
|
|
1771
1848
|
setSending(false);
|
|
1772
1849
|
}
|
|
1773
1850
|
};
|
|
@@ -1808,13 +1885,17 @@ function StepVerify(props) {
|
|
|
1808
1885
|
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ jsx43(EmailLineIcon, {}) }),
|
|
1809
1886
|
/* @__PURE__ */ jsxs29("div", { className: "matchid-email-verify-header-content", children: [
|
|
1810
1887
|
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-value", children: props.email }),
|
|
1811
|
-
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-tips", children:
|
|
1888
|
+
/* @__PURE__ */ jsx43("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ jsx43(FormattedMessage4, { id: "sendEmailTips" }) })
|
|
1812
1889
|
] })
|
|
1813
1890
|
] }),
|
|
1814
|
-
/* @__PURE__ */ jsx43(Field, { label:
|
|
1891
|
+
/* @__PURE__ */ jsx43(Field, { label: intl.formatMessage({
|
|
1892
|
+
id: "verificationCode"
|
|
1893
|
+
}), error, children: /* @__PURE__ */ jsx43(
|
|
1815
1894
|
Input,
|
|
1816
1895
|
{
|
|
1817
|
-
placeholder:
|
|
1896
|
+
placeholder: intl.formatMessage({
|
|
1897
|
+
id: "codePlaceholder"
|
|
1898
|
+
}),
|
|
1818
1899
|
maxLength: codeLength,
|
|
1819
1900
|
onChange: (e) => setCode(e.target.value),
|
|
1820
1901
|
value: code,
|
|
@@ -1837,11 +1918,12 @@ function StepVerify(props) {
|
|
|
1837
1918
|
)
|
|
1838
1919
|
}
|
|
1839
1920
|
) }),
|
|
1840
|
-
/* @__PURE__ */ jsx43(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: "
|
|
1921
|
+
/* @__PURE__ */ jsx43(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ jsx43(FormattedMessage4, { id: "continue" }) })
|
|
1841
1922
|
] });
|
|
1842
1923
|
}
|
|
1843
1924
|
|
|
1844
1925
|
// src/components/EmailModal/index.tsx
|
|
1926
|
+
import { useIntl as useIntl5 } from "react-intl";
|
|
1845
1927
|
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
1846
1928
|
function EmailModal({
|
|
1847
1929
|
isOpen = false,
|
|
@@ -1852,6 +1934,7 @@ function EmailModal({
|
|
|
1852
1934
|
}) {
|
|
1853
1935
|
const [step, setStep] = useState7("input");
|
|
1854
1936
|
const [emailVal, setEmailVal] = useState7("");
|
|
1937
|
+
const intl = useIntl5();
|
|
1855
1938
|
useEffect7(() => {
|
|
1856
1939
|
if (!isOpen) {
|
|
1857
1940
|
setStep("input");
|
|
@@ -1864,7 +1947,9 @@ function EmailModal({
|
|
|
1864
1947
|
isOpen,
|
|
1865
1948
|
width,
|
|
1866
1949
|
onClose,
|
|
1867
|
-
title:
|
|
1950
|
+
title: intl.formatMessage({
|
|
1951
|
+
id: "email"
|
|
1952
|
+
}),
|
|
1868
1953
|
onBack: step == "verify" ? () => setStep("input") : onBack,
|
|
1869
1954
|
children: step === "input" ? /* @__PURE__ */ jsx44(StepEmail, { email: emailVal, onContinue: (email) => {
|
|
1870
1955
|
setEmailVal(email);
|
|
@@ -1907,6 +1992,7 @@ function Popover({
|
|
|
1907
1992
|
|
|
1908
1993
|
// src/components/LoginBox/index.tsx
|
|
1909
1994
|
import { useState as useState9 } from "react";
|
|
1995
|
+
import { FormattedMessage as FormattedMessage5, useIntl as useIntl6 } from "react-intl";
|
|
1910
1996
|
import { Fragment as Fragment2, jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
1911
1997
|
var RecommendItem = ({
|
|
1912
1998
|
icon,
|
|
@@ -1961,16 +2047,17 @@ function LoginBox({
|
|
|
1961
2047
|
const [emailOpen, setEmailOpen] = useState9(false);
|
|
1962
2048
|
const { login } = useUserInfo();
|
|
1963
2049
|
const [showWallet, setShowWallet] = useState9(false);
|
|
2050
|
+
const intl = useIntl6();
|
|
1964
2051
|
const methodMap = {
|
|
1965
2052
|
wallet: {
|
|
1966
2053
|
icon: /* @__PURE__ */ jsx46(WalletIcon, {}),
|
|
1967
|
-
name: "
|
|
2054
|
+
name: intl.formatMessage({ id: "wallet" }),
|
|
1968
2055
|
onClick: () => setShowWallet(!showWallet),
|
|
1969
2056
|
type: "wallet"
|
|
1970
2057
|
},
|
|
1971
2058
|
email: {
|
|
1972
2059
|
icon: /* @__PURE__ */ jsx46(EmailIcon, {}),
|
|
1973
|
-
name: "
|
|
2060
|
+
name: intl.formatMessage({ id: "email" }),
|
|
1974
2061
|
onClick: () => {
|
|
1975
2062
|
setEmailOpen(true);
|
|
1976
2063
|
}
|
|
@@ -2009,6 +2096,11 @@ function LoginBox({
|
|
|
2009
2096
|
icon: /* @__PURE__ */ jsx46(FacebookIcon, {}),
|
|
2010
2097
|
name: "Facebook",
|
|
2011
2098
|
onClick: () => login("facebook")
|
|
2099
|
+
},
|
|
2100
|
+
youtube: {
|
|
2101
|
+
icon: /* @__PURE__ */ jsx46(YoutubeIcon, {}),
|
|
2102
|
+
name: "Youtube",
|
|
2103
|
+
onClick: () => login("youtube")
|
|
2012
2104
|
}
|
|
2013
2105
|
};
|
|
2014
2106
|
const walletMethods = [
|
|
@@ -2080,7 +2172,7 @@ function LoginBox({
|
|
|
2080
2172
|
);
|
|
2081
2173
|
}) }),
|
|
2082
2174
|
methods.length > 0 && /* @__PURE__ */ jsxs31("div", { className: "matchid-login-other", children: [
|
|
2083
|
-
/* @__PURE__ */ jsx46("div", { className: "matchid-login-other-text", children:
|
|
2175
|
+
/* @__PURE__ */ jsx46("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ jsx46(FormattedMessage5, { id: "otherLoginMethods" }) }),
|
|
2084
2176
|
/* @__PURE__ */ jsx46("div", { className: "matchid-login-method-box", children: methods.map((m) => {
|
|
2085
2177
|
return /* @__PURE__ */ jsx46(
|
|
2086
2178
|
"div",
|
|
@@ -2114,6 +2206,7 @@ function LoginBox({
|
|
|
2114
2206
|
import { useState as useState11 } from "react";
|
|
2115
2207
|
|
|
2116
2208
|
// src/components/LoginPanel/index.tsx
|
|
2209
|
+
import { FormattedMessage as FormattedMessage6 } from "react-intl";
|
|
2117
2210
|
import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2118
2211
|
function LoginPanel({
|
|
2119
2212
|
header,
|
|
@@ -2123,8 +2216,8 @@ function LoginPanel({
|
|
|
2123
2216
|
return /* @__PURE__ */ jsxs32("div", { className: "matchid-login-panel", children: [
|
|
2124
2217
|
header ? header : /* @__PURE__ */ jsxs32("div", { className: "matchid-login-panel-header", children: [
|
|
2125
2218
|
/* @__PURE__ */ jsxs32("div", { className: "matchid-login-panel-header-content", children: [
|
|
2126
|
-
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-title", children:
|
|
2127
|
-
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-subtilte", children:
|
|
2219
|
+
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ jsx47(FormattedMessage6, { id: "loginTitle" }) }),
|
|
2220
|
+
/* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ jsx47(FormattedMessage6, { id: "loginTips" }) })
|
|
2128
2221
|
] }),
|
|
2129
2222
|
onClose && /* @__PURE__ */ jsx47("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ jsx47(CloseRoundIcon, {}) })
|
|
2130
2223
|
] }),
|
|
@@ -2180,6 +2273,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
2180
2273
|
}
|
|
2181
2274
|
|
|
2182
2275
|
// src/components/UserPopover/index.tsx
|
|
2276
|
+
import { FormattedMessage as FormattedMessage7, useIntl as useIntl7 } from "react-intl";
|
|
2183
2277
|
import { jsx as jsx50, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2184
2278
|
function UserContent() {
|
|
2185
2279
|
const { logout, address, username } = useUserInfo();
|
|
@@ -2214,6 +2308,7 @@ function UserContent() {
|
|
|
2214
2308
|
};
|
|
2215
2309
|
const [usernameOpen, setUsernameOpen] = useState10(false);
|
|
2216
2310
|
const [copied, setCopied] = useCopyClipboard();
|
|
2311
|
+
const intl = useIntl7();
|
|
2217
2312
|
return /* @__PURE__ */ jsxs34("div", { className: "matchid-user-popover-content", children: [
|
|
2218
2313
|
/* @__PURE__ */ jsxs34("div", { className: "matchid-user-popover-list", children: [
|
|
2219
2314
|
/* @__PURE__ */ jsx50(UserItem, { onClick: () => {
|
|
@@ -2222,9 +2317,11 @@ function UserContent() {
|
|
|
2222
2317
|
/* @__PURE__ */ jsx50(UserDivider, {}),
|
|
2223
2318
|
/* @__PURE__ */ jsx50(UserItem, { onClick: () => {
|
|
2224
2319
|
setUsernameOpen(true);
|
|
2225
|
-
}, icon: /* @__PURE__ */ jsx50(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx50(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username ||
|
|
2320
|
+
}, icon: /* @__PURE__ */ jsx50(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx50(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
|
|
2321
|
+
id: "setUsername"
|
|
2322
|
+
}) })
|
|
2226
2323
|
] }),
|
|
2227
|
-
/* @__PURE__ */ jsx50(Button, { onClick: onLogout, loading: logouting, children: "
|
|
2324
|
+
/* @__PURE__ */ jsx50(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ jsx50(FormattedMessage7, { id: "disconnect" }) }),
|
|
2228
2325
|
/* @__PURE__ */ jsx50(UsernameModal, { isOpen: usernameOpen, onClose: () => {
|
|
2229
2326
|
setUsernameOpen(false);
|
|
2230
2327
|
}, onSuccess: () => {
|
|
@@ -2240,6 +2337,7 @@ function UserPopover({
|
|
|
2240
2337
|
}
|
|
2241
2338
|
|
|
2242
2339
|
// src/components/LoginButton/index.tsx
|
|
2340
|
+
import { FormattedMessage as FormattedMessage8, useIntl as useIntl8 } from "react-intl";
|
|
2243
2341
|
import { Fragment as Fragment3, jsx as jsx51, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
2244
2342
|
function LoginButton({
|
|
2245
2343
|
loginRender,
|
|
@@ -2251,6 +2349,7 @@ function LoginButton({
|
|
|
2251
2349
|
popoverGap = 20,
|
|
2252
2350
|
...props
|
|
2253
2351
|
}) {
|
|
2352
|
+
const intl = useIntl8();
|
|
2254
2353
|
const { isLogin, username } = useUserInfo();
|
|
2255
2354
|
const [loginOpen, setLoginOpen] = useState11(false);
|
|
2256
2355
|
if (!isLogin) {
|
|
@@ -2258,13 +2357,15 @@ function LoginButton({
|
|
|
2258
2357
|
/* @__PURE__ */ jsx51(LoginModal, { methods, recommendMethods, isOpen: loginOpen, onClose: () => setLoginOpen(false) }),
|
|
2259
2358
|
/* @__PURE__ */ jsxs35(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
|
|
2260
2359
|
/* @__PURE__ */ jsx51(UnLoginIcon_default, {}),
|
|
2261
|
-
/* @__PURE__ */ jsx51("span", { children: "
|
|
2360
|
+
/* @__PURE__ */ jsx51("span", { children: /* @__PURE__ */ jsx51(FormattedMessage8, { id: "login" }) })
|
|
2262
2361
|
] })
|
|
2263
2362
|
] });
|
|
2264
2363
|
}
|
|
2265
2364
|
return loginRender ? /* @__PURE__ */ jsx51(Fragment3, { children: loginRender }) : /* @__PURE__ */ jsx51(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ jsxs35(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
|
|
2266
2365
|
/* @__PURE__ */ jsx51(LoginIcon_default, {}),
|
|
2267
|
-
/* @__PURE__ */ jsx51("span", { children: username ? truncateAddress(username) : "MatchID
|
|
2366
|
+
/* @__PURE__ */ jsx51("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
|
|
2367
|
+
id: "user"
|
|
2368
|
+
}) })
|
|
2268
2369
|
] }) });
|
|
2269
2370
|
}
|
|
2270
2371
|
|
|
@@ -2293,6 +2394,7 @@ function InfoRoundIcon({
|
|
|
2293
2394
|
}
|
|
2294
2395
|
|
|
2295
2396
|
// src/components/UsernameModal/index.tsx
|
|
2397
|
+
import { FormattedMessage as FormattedMessage9, useIntl as useIntl9 } from "react-intl";
|
|
2296
2398
|
import { jsx as jsx53, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
2297
2399
|
var ValidItem = ({
|
|
2298
2400
|
success = false,
|
|
@@ -2346,11 +2448,18 @@ function UsernameModal({
|
|
|
2346
2448
|
setIsSubmitting(false);
|
|
2347
2449
|
}
|
|
2348
2450
|
};
|
|
2349
|
-
|
|
2350
|
-
|
|
2451
|
+
const intl = useIntl9();
|
|
2452
|
+
return /* @__PURE__ */ jsx53(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
2453
|
+
id: username ? "editUsernameTitle" : "setUsernameTitle"
|
|
2454
|
+
}), children: /* @__PURE__ */ jsxs37("div", { className: "matchid-username-box", children: [
|
|
2455
|
+
/* @__PURE__ */ jsx53(Field, { label: intl.formatMessage({
|
|
2456
|
+
id: "username"
|
|
2457
|
+
}), error, children: /* @__PURE__ */ jsx53(
|
|
2351
2458
|
Input,
|
|
2352
2459
|
{
|
|
2353
|
-
placeholder:
|
|
2460
|
+
placeholder: intl.formatMessage({
|
|
2461
|
+
id: "usernamePlaceholder"
|
|
2462
|
+
}),
|
|
2354
2463
|
onChange: (e) => {
|
|
2355
2464
|
setVal(e.target.value);
|
|
2356
2465
|
setError("");
|
|
@@ -2363,17 +2472,21 @@ function UsernameModal({
|
|
|
2363
2472
|
ValidItem,
|
|
2364
2473
|
{
|
|
2365
2474
|
success: isValid,
|
|
2366
|
-
text:
|
|
2475
|
+
text: intl.formatMessage({
|
|
2476
|
+
id: "usernameValidError"
|
|
2477
|
+
})
|
|
2367
2478
|
}
|
|
2368
2479
|
),
|
|
2369
|
-
/* @__PURE__ */ jsx53(ValidItem, { success: isLength, text:
|
|
2480
|
+
/* @__PURE__ */ jsx53(ValidItem, { success: isLength, text: intl.formatMessage({
|
|
2481
|
+
id: "usernameLengthError"
|
|
2482
|
+
}) })
|
|
2370
2483
|
] }),
|
|
2371
2484
|
/* @__PURE__ */ jsx53(Button, { disabled: !isSafe, loading: isSubmitting, style: {
|
|
2372
2485
|
marginTop: "64px"
|
|
2373
|
-
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: "
|
|
2486
|
+
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ jsx53(FormattedMessage9, { id: "confirm" }) }),
|
|
2374
2487
|
/* @__PURE__ */ jsx53(Button, { style: {
|
|
2375
2488
|
marginTop: "24px"
|
|
2376
|
-
}, onClick: props.onClose, size: "lg", block: true, children:
|
|
2489
|
+
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ jsx53(FormattedMessage9, { id: "nextTime" }) })
|
|
2377
2490
|
] }) });
|
|
2378
2491
|
}
|
|
2379
2492
|
|
|
@@ -2437,6 +2550,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
|
|
|
2437
2550
|
var walletSigningImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAABAsUlEQVR4Xu19CXQUx7X2vCUveS/vJdgx+yaJHQwI8G4wzWIbG2LLNrbxPgnY7CC0SyNpJBAIECAZAbLB8gAyKGGxiFnkGJwmz47xsU0mvyEWoGW0D0jgSeK88L84/7l/fS2V3GrNaDRCEiPpfud8p3qqu6tnpvt+favqVpXJxGAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYbYvCwkKlpKREvXDhglpQUKCKz+qlS5e0z8j3N5aXl6tXrlwJMf4OBoPRDD777LPg7Ozs0MOHD1NiYiLNnTuX7rzrDho5ejj179+f+vbt69ccNGgQBQQE0LBhw2jUqFE0ZswYun3sGBo3cQxNmDiexk+8XaTBIh1LwYLfbY/vcvsnTpyofUbqjXfeeSdNnjyZHnnkEXrxxRcpKSmJfvnLX9KuXbtCz5w5ozgcjmDjs8LoQlBVNcBqtZrFjbfjIYAR/fCHP6Qf/OAH9C//8i/0z//8zw2p3P6nf/qnhtRfKH4K00B534z5kvr/71//9V/p3/7t36hHjx6aeM6cOZPWr19Pubm56tmzZ81CCHqYGF0LH3/8sW3lypXqtGnTqHfv3tpDAOLBkakkHiQ8KJ4EwOTmAfMHGoWiO1HeO2O+O+r/M5wDMfiv//ovuuuuuyg6OloTAhOj68But6cvWLBAc51xs40PhHwojHmeiGP9jcbv2N3Y0v/A+L/p/z94gqhiwSPYsWNHuonRuSFc/h5Qc9xQvNXxpseN/t73vtcgBCbDQyDdf32e/hh/pvFh7040/hetIcrBs4H7P2LECEpNTaWTJ08miRcIVwk6G/Lz8wOys7Nts2fPph/96EcNN9hI5Mt9uPF4AOAW6vPkMc1RHmcsl+l/bMk9wjMwdOhQraHw008/zTAxOheE8eehoQ91O1mnd2f4ktLY5bEyT79tPEdPvWi0N+HJQKi+//3v03/8x39o3gw+y7eXPAapvlFT5hn3ucvrDMfrabwfbUWIQHJyMrYZnQUOhyMdXXvS+EWWx4dFNgLp98OQjMcZzzWWhxQPJozylltu0bwOtDKD+B4y78c//vEN77/11lu1/J/85CdainzwP//zP7XfAqI+ixTfR6b6bX3aWY9vDfUNhfr7647yWYAIcJtAJwFc/xUrVtjRvac3UiPxIOBBQl3vwQcfJPQQWFcnqVu3blW3bNmiWiwWdc6cOWpwcLADDwCMW76JcD4eJqMIoMwJEybQnj17KC8vT33vvffUo0ePqkeOHNFSfJbbN7L/3XffVQ8ePKju3btXfeutt9SsrCx127ZtGtPT09XMzEwtxW+Rv0fmdbX9mzZtajHXrVunrlq1ShXPh+uJJ57QYiggoNJ701N/b/GciGeBcnJy8sTLJUD/vDH8DMIIdk+ZMqXhLe6O4jCttffhhx8mq9WqijqezViOxIcffmjeuHGjberUqdSzZ88GATCWb6p/cFDuzp07STwoiqEohp9A3JvQL7/80iZEwfbMM884ho8Y1qzXB/FH13FoaCjZ7XZz49IYfoOTJ08qP/vZzxxwjY1GrzdUuJfiOPv27dvNBQUFAcZy3OFXv/pVRkREBPXp06dJmfoHB28LRVEIobrGMhj+h9zcXGVn9puOsWPHau0pRhEAkQeP74477iB4XuwF+ClWr15txk0yvp0l4eqhPv3CCy+QMH6fwj7RFSREIEm4j5rb6O4apvoHBvXxQ4cOsQB0EiA0fPXqdSSqew1VO5MbEYAHuHbtWnQNKo0KYNx8nDt3ThH1Qs34jIYpjR+NZC+98gqlpaUpxvNbijNnziQtXbrU1ZwAYPupp56y48Eyns/wT6iqGrxhwwY72oQ8tQkg/7777iPxnIU2Pptx0wGjxgAPfVeYnlB2xH2/8dZbqv3SpRsyzHfeeSc0MDCwyTVMuodlxowZlJ+fbzOey/Bf5OTkKM8++6wDPS0mNwKA5wptAeL+I4/hTzh+/HgeRnrpu3kk0YgDz0DU+0m8wc3Gc1uDV4QnoTd8vQCAw4cPx5uCBaCTYdOmTbtRjTS5EQA8R2gnCAsLYwHwN6SkpIQOGTLErQDg7T948GAM/T3dViO93n77bQoKCvIoAGgsfOmll1gAOhnsdvtus9ncRABA3GM8Xz/96U9ZAPwNBw8epF69ejW6WZKoFowfP55sAsbzWot58+Yp9957b0N8gF4AsI3AHfGg5LW0l4HhPxBVSdVdOwCIe/vAAw+wAPgbsrKytBZ+k0EAZCgp+vFVVW0zAYiIiFBmzZrVcA2T7iGRvQ3oNz5//ry58ZkMfwcChvSNySaDCED4Oc7Dz7BlyxatfmYyCADcfwgAxgVcvHixzQQgPj5eCQkJaQglNukeEHzGd1myZAkJD8Dc+EyGvwMRlQi39iQAmF2I4zz8DBkZGc0KwOOPPw7V7hABkB7AE0880WZtDoyOAwtAJ4QnD0DWzxH73VECACJYaMHChXRSVZPy8/OV9iQCU0BRxem2tNvtjXnunHKuoEApqCdcdqSY+BXbzXHnzp12xIywAHQiePIAZCNdRwsArouBQYgcjIyMbHPGxMSQxWLRJjXFcFWMW09JSdEo6rDdjrj/r7/+OmVmZtZx2zba8eablJ2djcZfre8eg7RycnI07t27l3bv3k3ozcF+EMciLyEhQZsr0p3xgywAfojmBOBmeAAgrov97UHZzoA3FSiHCoNyGHF3JFx3SYwJQXdsv379tAlg0RWMAC6kAwYM0HqNbrvtNi3EV27LFM+N8X5KsgD4ITZv3uxWAGAsN0sAmP5DOZRbP6TbeIx8Zjy5/pIsAH4ITx6ADA1uawFITU1F2KhWtj8IgBQ7fJfuRCnwoNHI9cYu9+vT5ozcE3EOC4AfwlMjYHt5AOnp6cpzzz2nXQvXQMrseMr73JwAIh9G725KMWN53oiyJk2axALgb+hoATh69KiC+QEwt4DJzYPC7FrUi8VDDz1ERUVFvCSbP8FTFUDeuLYWAFVVe8ydOzcJjUnNNRgxuw7xLKF3YNmyZfjM8Cds2rSpQQD0xt9eAgB88sknIUlJSY5x48ZpLfH//u//rrU5QBA6gsa6bnekNzcex8iZk2WPCT7LvOaov5f4jKHA6NbNzMxUvnsKGH4BbwLw2GOPtbkAAJgjbs+ePa6ly5cThgg/+eST2gSSiDxsTz766KPa+AYQcyB2R959991ad59RBORnGC4m+MCYDYSC475gnQi48NjGfwhiW79f5uE8yaeeegqxFw7h+dkcvIio/0EKgNH421sAAFGucvb8efN///d/m/Pz8815eXnm48ePtytxjezsbI1ZWVnmrVu3djvu2LFjNyZ2xZvapBMAGD7uO0ZkIlgqNzc3ad++fea9e/eabTab9p/hsy987733zIgwbHznGX4DbwIARW8vAWDcHMAo582b16QhFu46XH8E9KBtiA23G8CbALSnB8C4OYAnhAVgMBOziQWge8ObALAH0PUAAUAwFnsADBaAbggpAOwBMLwKAFrOWQC6FiAATz/9NAsAw7sAsAfQ9QAB4EZAhgZvAsCNgF0P7AEwGsAC0P3QnADgviNIiAWgm0COBTAaP1cBui6a6wXAfWcPoBtBjgY0Gr8UACzmUFBQ4JMA5OXl9Th16pSKqaQwDVdUVJTPxCoyGDW4atWqNiPKRYTb+vXrCZ4Pfntubi4dOHAgD3MEOm5gIlI6kxXwzckYxZHzolKQOUs5lxmiFGbOUxyZcwXnKIXpsxRHukhTZymFabO0z9h2ZNal2mfkp32X5+54yXOCBWkhSs2BjT6H10IAEKILgzcZBAApIgExTRgLQDfA1q1bPQoAiPhuXwRAGH8AlvZCqCkGgaBOaRyM0xLKCUmQthXxgOOthymw8JDD1e3fv782LgDz4YkHPsP4e1qC62pWgOu91WpNjpkcWY9Q4ZbJdHHLNCrdMoOK02ZSyeYp5Fh3H5VsuI+K19xDJevupWLBErHtqM9zpIp0rchLEUy9V8sr1R3vECxKvoeKVwsm3UcF1sl0IfFBqt4b7qg9mKoYv1NzgABg7AX+E5NOAPC/I8WUYPX/h9LoREbXgzcBwCAPXwRg7969edOnT9eMV3zUypCjxPCAod4pU2mY+jwpAPL89iLKl/MEQhRuv/12wn9h8hGu3+0LrnlvvXpx7RwqjA6mysShVJU4XGO5dQhVxg+lSstQKo8KosqoQKqKGkhlUYNFOpiqowZQaVSASAdprNseqO2rO2aAOCdAcBBVYH9EgChnIJWHB1Fp+FAqXjaSioQIlO5c4qjNb7kIYDwEuneNAiC9Pk0AduwgzBDc6ERG14M3AfC1ChAXF6eN/TYZHiz5cMlUDknV72tvowfl9SAyss4L4cGQZCxdJaoB6SYfUHs0XanIDqWC6DuoLHYMOeMCyRkdRM6YIKrStgVjYMz9qDpSMLyvRmd4P0G5Xceq+jy5LffJc2ReZThEQIjJKiEEEePp0rrZ9Cc1006XPmhRdQBjAYxVAP190ARg+3YWgO4AowCYDMaC4Z6+CMDzL9UtNW5yY3w3m3rB0f9W+RlVlt///veqyQcU7opRLqSZqXj5aKpeFUhXwvtQjTDSWkFsOyMGkDNyoDDkQfVG36f1jB1MTosowyLKjO5D5ZGDqTxiFP0x+X669sE6+vbcQcX4/dwBHgDmeWhWALKyWAC6A7wJAHoBuooAeKL87WgT8FUAnDnxStHmF+nCijFUFjZEGLww0Mj+goPqjF+48M4oCACIN7obw24JIwXjRHnx/eiydQDVWPuINIAc8SOpdPMM+tPHm1SqYQ+A4SO8CYCvbQDuBMBd2f7I1giAKy+9hyNz0e4LsVOpOHocVccMo7K4ocL9H07lsUFUZhlGFTGiHh8p6vfhom4vPIHWsAqCEicYP4iqE0W1InEQVVqH0cXUO6nk7afp6vFIs/G7eQILAKMB3gTA1yoAZvw1CgDq9rJ+L3sF5PX0n3GezHf3fVpDX8rCuoS+CgBQc3ijuSw7lC4mKeSwjKcSwVJBh2Wctu2wjCVH7GgqTRwhPgsiTdBtI43XbbvZXyr2l8YJWoJEeSKNGUGX4iZSyRvP0+WjyaddedYWd2G2qArAjYDdA94EwNdGQMSYy+4kSTm9tJwa+uc//7lXLliwAFNQ2e+99171Rvnggw/aQ0JCHFOmTHGhsU//3fTEvHeffPKJ2vBjfMCfP8xNuvrORvWybaG9Yt8KKtu3khxvL7aX7npVrXjjJbVo29P1fEot2fa44E+17eptT4g0RPAJkTdHdWybq1Zqx9TtR55+f9HWp9XC9Lka/5D5onrt4DafGi0Bd3EATQQA3YAsAF0f3gTA1zgARJgZy5HE8lsvv/yyA5GF3lhZWWmrqalpUZ3WG+RCl7t27VIRA2By893AGxEACXLkB/z94vu2v/7xlO2vLWyV72iwB8BogDcB8LUNoDkBQB1beAg3ZGA3gv3796swcpOb7wa2hQB0BrAAMBrgTQB8rQJ4EgDkQQBeeOGFm2ZgEABj/Lue3UUAuBGQ0QBvAtAWjYCgvwgAewDuPQCwkQBwHED3gDcB8DUOoDkBQISgPwsA2ii6gwC48wBA9gC6IfQCYHJjtL62ATz/4gseBQD0ZwFAJODp06dv2vfrKHgSgEaDgVgAuge8CUBbVgH8XQAwDv6jjz66ad+vo+CpCiA/cyNgN4I3AfC1EZA9APdA9+A3n2cpjpwFiiNrgVKYPldxYs6AtLmKQ7Ci/jO2keIztr/7PEfbrhXbko4ss+L6IN3nrkZ3cQBgIwHgOIDuAW8C4GscwHPPd14PoGfPnu3iAVw/kx5w/cw2tfa4hS6+/jgVbvgpFabMpLI106kwaQY51ggmT6PytdOpOGm6lq8xaRqVJk8V2/dRRfIUcdw0urJuKjnXKeRMnU6laSFUfTjJ4TqZrhiv2RzYA2A0wJsA+NoG8Nzzz3daAWiPKsDf7R8E/+nERrVi60/pj5Z76Fz4CLqwagQVrxpGJauGUEmoSMOGUsnKQCpePlykg7X84hVDqXRlEJWtHCj2D6bS0CCqDBtIZdGBVB4RRNXhgVQqyvpq3SNU+osoh+tMmmK8tiewADAa4E0AulMVoE+fPqQK6M+5UbiOZipVtlByxAdTWcwoKhIGXBwWRCVRgpGBVBIu0nCkAcLwsR2gGXxJKIRggGBf8bmfxqrovlRlGUDVMYPrRhau6EMOyyT6atNsKj/8qtl4bU/w1AjYSAC4EbB7wJsA+NwI2ImrAO3hARTusioX0udTqWUkOS2B5EwYIdKhgkOoXHyusgRQhUgrRIrtstgAqowIEG/3fuRY1YfKV/al6uX9qWJlb+EF9BHGL0Qgsh9dEZ+vLO9FTrHvgvVuqj2RQN9+vksxXt8dWuQBcBxA94A3AfA1DqAzewC9evVq80bAioOpSskbi6nMOoac1iC6kjKMnIlBdYwfJIRAvMktIo3tVzfeXxi4MxqTiPSiytDe5Fx5G1Wu6klVK3tp25ct/akyIUAcJ46PEIIgvATHusn0p/etKl060KIGQfYAGA3wJgC+tgF0ZgFoj16A65/nKVd+lUzFaXdT5cYJVLVhnCYCV9ZACPrXze5jwWw/mPBDMKY+FQLgjLyVnGG30OVQka66RduuSehPV9YOo8vWgdo5pTHDqXxHCF3Nu7H5AEAWgG4IbwLgcxWA4wAagex5Pf780eakv7z7Gl3a9ACVbb6HKtYHU1nKSCpLGCaqBoKxgXWMGkylcUOoNFqksYJRA0VVYCCVhdWlGiNFNSFxKJXFiPMiBVdPpWvH4ugfjvfMxmt7QouqANwI2D3gTQC6eiOg/F5ge3gAElSwK+mb38So1Yfmq19smaX+PmWK+qV1hkgnC+KzZN3nApF+mTJD/cPqyepXSVPVr6yK+oc194vPM9Wv4u9Vz8eLfWseVv9+eF2bzAcAchxAN4Q3AejqcQB6AcBgpbb2APwRnjyARqHA7AF0D3gTAF/bAJqLA4Dx+YsA6A1f7wH85je/uWnfr6PgTgDkf4BtFoBuBG8C0JZVAH8aDmw0fhBtAN1BAIyNgPr/AJ+5EbAbwZsA+NwI2EwVwJ8FAHMW4sHvDgJg9ADcCgDHAXQPeBOAtowD8GcBQP2XPQD2ALodvAmAr20AnVkAuosHwALAaIA3AfC5CtBMHIA/CADm/jcaP4gpy7uLALSoCsCNgN0D3gSgrRoBQUwJ9sorr9D27dvzhLutgH369HFLm82mHjlyhMTD6pEt2X/s2DF666238kaOHKksW7bMrl+URE985+5SBTDGAbgVAI4D6B7wJgBtFQcA4oHDSrx4C4OYox9egZ633HKLlo+HsG/fvlp8PkbpgdhGHrrrwJbsxxh/+flHP/qRtgqw0fhB9gDYA+iW8CYAvrYBeIoDAGFk+odNrhZkpPG89qAnAeiOgUBuBQAegN2u6M9zOBzWs2fPhurzGJ0c3gSgtVUAd+WBRsNrjsZzb4TGco3Xkr0A3XFWYON/YxQAIYrK0aNHVavV6nruuedcoaGhKoRSCEKLRh8y/BjeBMDXRsAX573o8S1uNLqW0FhGa2gs0x3hjaC68Hu7XTV1cbTIA3jjDTpXUKD89re/paVLl9Lw4cO1SE5U4XDe2LFjKTU1FROosAh0ZngTAF/jAKKiorQHxeTGEPU0GqCRxuPbmnLFYnk9eACjRo2icxcuqKYujpZ4AHgu3n///Qzcz379+mmGD+J/klW3oUOH0ttvv+3Iz89XDJdgdBZ4EwBf2wD27dtHgwcPblKWvxHVFNkmIdseHnvsMSoqKgoxdXF4EwA0xIaFhdGKFSs040ceiP8MS6tBCLANTpkyhTIyMhwnT55UGl2E0TngTQB8rQKIByE0MjJSa9E3uTG8m028vfAWw8MPyof69ttvp+zsbBzT5WGsAoB6EcDzgLc7elHkcyH34f+CAMgl33HsXXfdRTt27LB/9tlnXB3obPAmAL42AgJ2uz1E1A/VZ5991oVuxIceekjjzJkzbzqnT59OkydP1nj33XfT1KlTEZvgOnTokCq+d7d4gI1xAJJ6ETB6BcY8fT6enzFjxtCWLVu4TaCzwZsA+BoHoMdXX30V+sUXX9jOnDnjN/z4449tH374YQNFlQX5ZuN378pw5wHo6cnQjZT5siqFhsG9e/c6xP+pfHc1hl/DmwD42gbA8H/4KgCSxihK43nYD69KeALcJtBZ4E0AWlMFYPg3jI2ARhoNXxq/NwEA0Z7ywAMP0M6dO7lNoDPAmwD42gjI8H+01AOQ20jR4IexHD/+8Y+0RkBPIoDjEG49ceJESktLIxYBP4c3AfA1DoDh/5CNgDBkkxsBAI1dpBif8fjjj9OC1xbQyJEjG3pS3J0HLwBCINsEOE7Aj+FNALgNoOsBHsDcuXM1oza5MX5QBkmh2w+DqNCDcvjwYfrkky8yNm3aRKNHj9YM3d1zIwmRQJyAeMa4YdBfIQXAZDB8Sa4CdD1s377d/PDDD2uGbTIYrbzvMuIP7jzq9MnJyRkwYrvd3uPXv/510tq1a7XYCTnuw5MQoNowY8YM2rNnj727dLN2KuzYsUPU637s9iEA0X8vbpzPAkD2/IDrH9mU63mpSu3BNco3B2OUb46GKtfz4xVXvtjOjxCMF5R5ESKNqd8Xqu1zNezrXMfjOOxD/rdnMhWy7/ObB3/rtq2hC15doN1zo9Hq3X4YP4554oknXJs3b24yAtDhcCTl5uaqgwYP0kK/5ZTi7ojy7rnnHjp69Cg+M/wJCN3Vh3vqjR+fFUWhDz74wCcBIHtuwJ/yt6k1B61Um72cqna+SleyX6bad56nr/f/jK7sf5muCdaK7dr9z4tt5L0o9r0iUjNdFdtXtbwXOuXx2EaeS/Cvx2Lpb/nr1OtqVoDxf+povPXWWyELF79GAUGDtPq7UQBkrD88QlQP4P0J47caimmEhYsXqePGjXPbHqAnvI1169axAPgbWiIAx48fb7EA/FXdF3z1SJpauvFpuhg3mYotk6gkfqxIx4h0DDkSRndxjqEy61jB0VSRPJqq19xPFRufpMrsJWbjf9WRyM7ONi9evNjRp29vzVhlHd9kMFTkw1hnzZpFcXFxSY0KcYPU1FTl5Zdf1lx9kxvDl0RVITo6mgXA39DWAlCRE6EUZ5qpMPIOqloRSBURg7T17KoiBlBVeH/Bfl2a1Sv7kjNMpKv6UrX43dUrB1FR6ASqWP+KvWan9aZUBXbt2qWEhq1wDR8xXDNwk+4+Y1t+hpFipqZ7770Xxp+Rnp7ew1BUEwijtgcFBXkcAi4Jj2Ljxo0sAP4GCMCAAQMa3Sz9w3Hffff5JAB/+3QnFW2YRo7oIHJG9iOnMIrKsAFUEd6XyoUYVEciHSgEoZ+2zn1ZfR5S5FVGimOFWFRHiLzIQVpaHll/vKDM044X51eKYysi64+/SeVXRvQRxt+HrqzsSc5VP6HLWNY7HCv89iNHZCAVh42lwuRHqTBtrmL8v9obb775ZuiyZcuof//+Ho1U3m80+Am3322d3wibzRYgXHo7Rn56qv8jH2XC40BA2alTp+yNCmHcfOzfv58GDhzo9oHAtu8CkEVF66ZQZWIAXbOKt2FUX6qKEsYS25+cMQOpOq4vVYjUGSPSuAHkjMY+sC6vPG6QSIXhxQhvIU4cHy2Ow75YnCeOjxPHxoAiT5RVHi2OF+dXivKRdzPK15b2jhKM6Fm3rHdE/WexvyphMBWGj6KilCfJkW5WjP9XeyIvLy9k0aJFmofnyUhB3Gs05KG1Pisry6ovwx1g/BaLRcVAKk/Tv0niuiNGjKD169erH3zwwU3xgBjNoK0F4JtPMzMcrz9OjsRRdDlRGL1FGIulX9169gnCYCwg8pFiHzjIkMptHGfMc5fe7OPFb4mBAMDwezYIQLkQmKqkYXTBOoHKdqyk2pw0xfh/tRcOHz5sXrJkicPbsGzcZ9Tf8YZuSZ1/586dwfHx8SqGALvrRjQSDYSLFy8+LYQloKEQhv8AAgD30GR4KForANc/ylGuHU6hi/H3UUlkkHCXhRcQ2afuTRmFbT37eUjd5SF1l+cPx/fVjP7Kil6a618Z1odKBR2i+lMSPZwK1s6m2vey6PqZPMX4f7UHcnJylNjYWBem8TIZDFJG6snPsp8/NTU1Q7zZvdb5k5OT7ePHj28IBza5MXoQ+1E9QDUhPT09QFcEw5/Q1h4A8I9P3gxx/iJSLc+e7yrf+hiVb5hN5RtnUXHaI1Qm6BAsESytT/EZ2512//qHqXTDw1S87kFtf1E9L2x9nK7uX0pfv5/h+vbzjgmH3bFjR6h482tTpMsGPyMhAjBQdPc9/PDDrm3btrW4zh8YGOj2OZGUwUPwEKxWK9f5/R0QgLZsBNSDCk+E/u+ZLJvr9Hqb69Rmwa3dix9n2ajgkI0uHTcb/5v2gLiXIWjwg6B7Mn4QAgAjvfPOO7328wNw36Ojo1X0DsjnQs6sZBQBVCfGCQ8h1hKr7tvnPwFQDA9oTwFgdBxQ53/11VcdWADFXZCPJPLR1YfRgKGhoUn6MtwBdf6YmBh1woQJWkOhfDbkdGryM/iDf/0BTVWmUERk5GlxToCxLIYfAgIwaNCgJg8JC0DnAfr5wyPDXAGBAY0M0qS7p/o5/BDbcejQoSYLf7hDbGys/Y477tCMH16DfPPL8uRgIWwPGzGELPFJdlQXjOUw/BRtHQfA6Figzv/z+T/T4vZRr5cRfkYBkG/+xx57zHX69GnV6XQqjUtqDBgxjB9Lrsn4Afnm15eP68HtR51/zZo1XOfvbGiPRkBGx+DECTUE03cPChigvZXloh24d1IMTPX3E2/wadOmUXx8vNVYjhH6Oj/K0AuAUVxwPUwIiuO3b9/Odf7OBhaAzgnU+VesCHUMGTJEewNLQ9ULAPLR5QfvAP38UVFRScZyjECdPzIyUkVXn7d+flwH1YOIiIjTubm5Ad+Vwug0aOs4AEb74+DBo0psfJwrMChQq9PLOrnRRcdbH/vxJhfueYv6+dHVh94B1PfdtfJLQmCwdgDcfg7y6cRoTw8A4+Cvf5SpuPJTlW8EkbY7j6ZqcxBgW6bI++Zo47xv8q11Y/ZPpgmK/Pw1ddsiH6n2fU+mK3TpgF+5tdnZ2aFYsUeO54fhS0M11d87eAMgBGD27Nktiu3HGxz99rI9SD4D7maLwjXvvf9uCl21kuv8nR3t0Q1IBXkBNflx5q+PJduvHY6kmtxldGXfUqret5yq31kiuKyOOYvrt5G35Mb35yyiK3sXUa1tETn3LKxL9y6kGttCurJHbO9+jWqzxTl7FlNtzny6kmOma79YSl/nLqznEvp6/3wt78q+RVSdG0Z//k26w/leqhkTnBh/Z0cD/fyLFy/WVuwxGe6V9ADkNgQCdf61a9dajeUYgUg9dPVhSm99I6IsSx9TIOv8CAfmfv4ugLYWANfv9gVfPZmhlr39M6rYPIWKUyZRSfIEKrYGU1nSRJGOJ4d1IpVo28FUap1UnxdMxSKvRGyXiv3YLkOe2O8QeSX1+0vFdrHY79CODRacVJ8XTOWJo6k47nbBMVQSN5pKYkdqn0vikIo8yyiRjqIisa84fox2vCN5FFWljKHKtWPE9miqWnc7Va4eTWVrx2rXu7jlKSrKXkLO46lm42/tSKDOj/H8xth+owBI48eCLi2J7d+4cWOwKFeFOy/X+5MeBVK5FqDs/oNIJCYmcp2/q6Ct4wAq8qxKkXjzXlh9N1UlBpIjJpCqYgdQFYbURjZO3eUhdZfXsuMx30D9vAPY1ob4DqhLkd+Qh9F+4nhLf6qJ70fO+P5Um9BfS68liu1kcVxCAFXFD6GLCRPpXPJMqv1lnP3v6s6b8sY7evSoEp8Y5woaEthwXyT1b2sYr34Ov5bW+THBp5wkBJTtCHLcAAjjh+eRkpJiZ+PvQmjrOIDLJ9+g/5M4VbxdR5IzoR99vaY31VgxGAjDY+uHyWL4LIg8pBhJd6P7Lb6xNqmP9r1cKb0b8euUPnQtRXzvlL5UkTCISiKH0aW4u6lw+3xy5EQoxt/b3hACHRoeHq411LprlJPReDBW1Pnnzp3rU2w/xF8OFUaqd/dBuSw45vkXb36u83c1tHUjoOtEplpgnU5lUUOoOqYv1cb3rDNaGGm7E8N1+xKGH9dRbiMFG++vsfalq6v7CoMXb/7VvenqmgGa4V9NGaSxKn4QlYYPocLISVSevphqd1kV4+9tT2A8P/r5MZ7fGHZr0t0rGC7cfix42tLx/PFWi3rf/fc1lCerEMbx/fAG4CEIEeJ+/q6IthYAzHpzcfUjVBR+u+aKX175E3Kuuq1uhpx2Znn0YG3IcWXUQKoSxHZF1Hd51VH9NVZEDdIm+dDG88f3pcvC0C/Hic/C/b8sBKI6cTBdESyLC6CK8JF0IfJOKtk6nypsMYrx97YXPvzwQ/OKFSscPXv2bHQ/jCmM/7bbbtPWb2hpbD8a8CZODBau/Xcr/Bgb+yQR4RcZGcnj+bsq2joOoDY/UyndH0cXEu6n0tiRVB42iCrDwf5UJlLnyl4irw9VCDpX9KJqYbiVob01Ylqt8lBMrdWrYT+Oxfj66pW9yRlWtx9lIK8srO5YbIOYogtCUB3eV6PcRqrN11efr+VhjgJtPL9II4QIrKr7TpfFdaojhXjEBlKVJZCKku+i4s1PUcW+6AxHXqjXOnVbAAtrirq2CyvwmAwGKe+NfFujfo7Y/o0bN7ZoDj9h/HYM7JGz+OrLk/dccsiwQK3Oz7H9XRht7QEAmA+g5kiSoypnAZW+PptKNs+i0g0PUfmGmVQiiBQsrk8dgqX122X1n/X75Xk4Rr+/SXnrH6Sy9TOoJHWGtl0kWCq2C0XqECwW2yX12471OEack/ogFaaIY5JnCortJGzPoCJxbNnrc4ThL3M53gn1WqduKyC2f9HiRYQ3v7s3Mu4LjBdEg9+zzz5Lx44dczkcDqVRQQagqy8iIsKOhjx9W4L+XsttXBcigbgAh6M63VgWowuhrbsBJTAG/h9nd9swD8C145YO4dW81bZrx+JEGiOYZLt6LMFWcyjadu09q+3qEcHDMWK/OO5IUt0x78XZHIdXi2Msgjg2STBO238tf7Xtf/57m40KDluNv629oKpqyNJlS6l3315NDF8S9wXuOsJ07598Px04cMAmjN+sK6YJ4L4vW7ZMxUo+xn5+dwIAcVkVFkaYWchYFqOLob0EgOEb0M+/dOlSh/FegLJ7Dtu4LxjVh0U7Fi1ZlKQvwx1kbD8a8tCaLxv7TG7utfz8Y1E+lowrKCxUGhXG6Hpo6zgAhu84ePCgEhUV5cIcevqRd0jltiSMH639wj1vUZ1/48aN9kmTJjX085sM4qK/10hxzK233EIZGRl07tw5RV8WowuireMAGL5h7969Wmz/LcLoTAZj14sAhAGj++bMmdOi2H403MH4vc3hp6cUAPQqbNqyhXhF324Ad42AIAtA+wOx/StXriRMuuGpbi7vA+r8WNG3pXP4xcbGauP5TR7uqzvK6/W49VbKyMxs0YxBjE4OFoCbA+F5mZcvX+5Aq7zsgzcavgzBxZsfsf1hYWFJxnKMQLBORESEGhwc3GTZd2+U18V4g0wWgO4Bd3EAIAtA+wGt6xaLxTVq1Ci3hi8pg3ywYk9L5+1HuC668GTkoMmNoXuivC6qI6+//joLQHdAe3oA2nwAJzO1MfjXD1pFukak8fWpVbcd37r9KFcSY/dV7wZysyGMWKvzu3P7ZQs98mH8eIO3NLY/Kz0rIDk5ye7pXurFQJZvFAh5HHsA3QjuugHBGxUA564FytdHku3XcsLo2ptL6OqbC6h250LBnwu+Vs/5VLsLedjn2/5rgl/vWkrX3l5C1/asoNqccPrm0NoM4/fwJyC2PzomShtPL1fW0RN50vDl7L0tje2PCI1QJ0+5r2Fgj576bkRcAx6fDAgyHgtiJV/0ArAAdAO0tQBgPgDn8U220s1POsqtU6jMEkxFceOpKHo8lYq02DKeSupZVJ8iDyytT1uyv1iUWyJYahlLjoRgKg6fQBXJc+jyLqvXt+XNAPr5Q0NDHT173aYZocmN4YEwVDT4YTIPX2L7sQaffskvT0SXYFxcnCYu6FI07gdZALoR3MUBgK0VgNqja5TK3UuoKOFOqooMpGpBbSx/9ACqjhKME8R2jMiT25gvINa3/RjPr80BEDFAG2dQsbw/VS0fSlXpL7qun9yeZPxeNxOI7U9ISHAFBQU1+Z/1RL0dRonW+5iYmAyr1eq1SoPYfkzg6eltrieEfsuWLfZ9+/YlhYSEeJz0kwWgG8FdHADYWgEoTAtRCpOnUUVMEF2J7kdXlvWiy8sFQ3vXjdrDIJ82YkVoH2H0vahyRW8q1wYTDaSSzTPJuS+sxd+3vYE5/DCeX9b5TW4MDsT/LWP7jxw54vX7I7YfE3JCVHCesT4Pok0BwoAgIHgI69ev18bzi/tpfuqpp7T5A4zngCwA3Qht3QhYmDpLCMA9VCHe2DWWXuSM6C/e0P3ockRvbV6AK2G9tG2NYb210XiXw3vXMbK3z/vLMeJvlTB+bVnu3lS0fjo5bEta/H3bE+jnxxx+qHN7M34Y3axZsxDb7/AW2w/jX7p0qQp3HsYPQzeG+IKoEsCjGDt2LDwKFdUFnA8BeOyxxzx2E7IAdCO0tQCcy5ynFGAUnmUIVVuEkSYNocvWwU1m5GlTYlYgS38qTwiiws0/JcehhBZ/3/YCxvOjzm+cw89I/M9wxadOnYr59ZOKiopCdMU0gYztRxeirMOjDKMAyNiC+unBGs3hxwLAaEBbxwE481KV0j3L6I+WCVSxKohKIwOpLCqAKiP7U1nkIO2Njm0Q2+UYey/SCm1ev35ULSjzWnI8xvRXirzSmED6Y/wEKrYttjvyrAHG79WRkLH9w4cPb/K/Gon/GWMAXn755Qyz2ey1zo9+fkzSIeftN7kpTwsb/v4PafiIoejPbzKHHwsAowFt7QEArhPrQirfXumoWDeXCpMVKl03nUpTp9eP359Bjg3TtLH9GO9fJrYxvr9uvP80La2bH2C62D+jfvz/DJE/XTvH/fkzqDT9MSrZvdhOhSdu6vh19PMvWbLEYwObJP5fEG9pBN688sorlJaW5rEHA119mJwDYiFXApJlyHslvQnU7Sc/cC+t37DF7Rx+LACMBrR1N6DEXz7MNf/PsQzbldwltqpfRNqcR6Lrx+1H21zHwxrG8LuOr9Rthzbadh2vO8d1PFIw3OP52v58sf3Bxps6Zx36+ZcvX95o3n5PlIaLtzUa6SAC8+bNI6z021BgPWRsv5y3H29+We9HWZJyngD0IgixUA8ccL+oCQsAowHuBED/VmmtAHQ3yH7+Xr16NXkzu6P+GBiu7AKcP38+RvuZZbmyzo9WfLj98lyjAMg83K+4uLjTzU3jxQLAaIC7OAAWAN+AOn94eLhr2LBhjQy7OQEAjceCAQEB9NJLLzk2bdqkNQainx+t+PrQXaSye09fFob+rl271uscfiwAjAa4iwNgAWg53n///dCIiAht0I6xXt6cALg7DimiBFEdeP755xEJqN0b6SHIY3EdGD/q+viM7XvuuUczft1X8wgWAEYD3DUCsgC0HPj/MN2WfjVdkd1ksA2MFG9yEK6+XizkMaDM+8lPfqIFD2FbLtkl90EQcD05OSiur+/n9wYWAEYDWABuDLLFX/bD6wUABgbDxZsaQ3pzc3MRipvxxBNPaG95vQvfHPX1fXkNlAsRueOOO2jVqlXN1vmNYAFgNMBdHAALQMvgcDjS0TIPY5dvfP0bXa6rh2MOHDhAX331VSjm8cOinYj6g6HJYyWNZYAwfhirUWRQPUA4sK+LdrAAMBrAHkDrcezYMRVdfvL/0v9vSGFgs2fPdqWkpDTp39++fXuS2Wx2oU/fWF0AIRz6Vn7Z9Yfj8Pa///77G2L7fQULAKMB3A3YOtgLCpTFS5bY9XVzk+4/hLEGBA6it956SzWc2oATJ06EYkkvNCDKFXlNBmM0jiGAYNx5552YIchjP783sAAwGsAC0Dqov/3t7meeecat0Ur+9LE5dOrUqWZj+48cOaLV490JgHzr6z/PnDmT1q1b51Od3wgWAEYDOA7AdzidTiUvL881adykJkYridV6rVYrtptFenq69v/r3/Ty/5d5SCEEGPorjreLawc0LsU3sAAwGnAz4gDIkdfjun2Xcv1kmvLNmXTl2zO7FDp3UEG+8Vh/xPnz57GKT5MZdeR/hnTixIl06NAhj3V0DNCJjY21DxkypNFb3kjZAIgBQGlpaR7L8wUsAIwGdGQjoOtQZsilrDBzTV6k7drRSLr2i4VUm7eE/nw0jv6ippNLfT3jW3u+YjzP37B161YzptRC/d9kMFb8bzCs+fPnw2CVxmfWAeP50W+PtfrcjejTE3V+HJeQkKAKsW5Vnd8IFgBGAzpCAL49k6X8+XCcrWSL2VGQ+gQVpUyliqQJVLVmlOAIKl89joo3KnQxcx5d/dV61/UPNpqNZfgLxNs/ODMzUzVWm0C5/BbGA2zatIlUVVX05xYUFFgP5x22vfTKK+rQoUObCIik/P9BZfoDCPK5oTq/ESwAjAa0dxwARui58mIdZRtnU2H8JCqyTKRSyyhyWoaQM2EgXbYGkTNpOJUmj6FC6x1UnDaDyrc+7vjrqU0qXWpdK3d7Ij8/X0lOTtbq+CaD4UgPAPMAiLd8hjCgHg6HI/jTTz9VrVar+vOf/9yF1X0guJ6MH5T/P6pmmZmve43t9xUQgCeffNLjJKIsAN0I7ekB/F3dGVx7cBUVJk8mR9RgKg0fSM6oAeSMDiBnjGCUoCWwEaviAqkybgSVpD9Ff87fSnTpgyYigLaCb9R05VzWIsV5fAtdfnc9VR/dQF//OoscWS8qtbZFiisvJsB4XlvgzV1vhirTprqtt+M/gxeAlXvfffddTOlNDz30EI0YMUIzKnfnGAkPAm0L6OrDBJ51V21bQAAwJ6Cn2YlZALoR2qsb8NvPc5Wv37XaL1oVKowcSRWY3Se8vzB+kUbVM7apAJRHDqbKmGFUEjWJyjaH0P+e3eugwu/aBa5/uNnsOhJnu/KLMPoq/Rk6b51ax2TBNVPIkf4IOXc8TeXZC23Xf5dl/u4btQ3yjuRR4JCARv+RnqjTY1QgGu0wOs+XFXpwHMYAYGAPPIa2qvMbwQLAaEB7CcCVEym7K3Y+TYUxo6kkZogQgMHC+IUARAjDj8a2YJw0fMwZCIrtmEFUDS9AiEZJ8gS6sm8x/b/fbXb87+l029W9S23X9r5GpWunUmnKJCpOvJ3KLSOoNHYYVVpHUNWakVS5ZjRVi+2ilClUvus1+r8nNzSJwrsRYIRec7P9yP/OXfy+8VjjPrjksp8/NTU1ANdrD+Tl5ZkxHsHTWAQWgG6E9ogD+PbzHKXmF4tdjg2TqDp5GFUJ464WVQBnrGDEAO3tXyE8gVJsW0B4AiC260VBHFsVLzyC16dTza4n6MquZ6h8/TRRFhYIGUrOhEFif3+qtvQT7Eu1yf2odm0Q1a4WImMZSA7LSLoQN4Eqsxe7rh1fm2T8jq0BYv8x244xOk9PT4buifr/Gl2CycnJ9vz8/ABTO+K9997TPAAWAEabxwFgfb7ag2HpVZvvpWsp/ena6j7iTd9PGLSo/2NRDxi2eMtXWUZTzepxVJ10O1UlBgljDtDe/HWeQB+6LHjN0ptc4vxrSX3E/oFUHRmgTQLqjMMxaEvoK8qFoAwUgjJYW4ikLHywYH8qiQ6gS1GBVBx/JxW+OT/PdabxxJitAcJ6MYrP5MZoboRojYewCKNrlzq/EewBMBrQ1o2AroPxSk22cNNXj6UryYOo1ioMNnpg3WIeUQOoPGEYla4RnkHmHPUvtqdtNTufViuy5lBh4jjh9qNqII4Vb/Wa2D70dVxP+jqhL11N6E9XhcFrC41E9BLVhLppwPGmhyhgQRBnOBoVRfUhfJAQgH5UFtWfyoSXURwzgi69MZ+cH+40G7+rLxBvf2XVqlV2T4tpuKO+KuDOM0Aff/8B/emhWQ/Txo0b263ObwR7AIwGtLUAXD31Rl7xujnCBR9FzuShmpE6heE6w4TBCuMs3XAXVWc9fdqVtygAx5Oa3uMvv07ZXfb6s+SIG02VMGYLGgnFm1+IQE1Sf7psHaK96Wvj+pAr5laqEd5BTaLwEuLFW19UF8piMO14gOZdOGPE+bH9NC8C6wVUrR5JJW++QjUfbjU3/qa+4ZNPPtk9d+5cj11nngjjl1UGOUcA4gSwDsBrr71GWZmZdCI///SZM2cCtAt1AFgAGA2QcQD6N9SNCMC1j3ZTYdJUYZTDRH1cvLXX1C8Mgl6AmOFUnvkIXT+d3qi862pWwF9OrM678sYzVGUdSuX1AnBFGPDlxL50bU0/rSrxdYIQgIRb6WtRJfg6WQjEalEFSB5GzsTh5EwaSpeF4NRVHW6ja1bs701VW6dS7a+WnXbZb2zp8JycnN1YiUcas7s3upE4BkYGw0eLOyb2nPfM07R961bK2b8/IzMzU/n8ozOK8C4C5HU6AlwFYDQg95e/1Cai1Bv9jQhAzantdC51lvAAArUGuStrh2m8bB1GjjXjqDxrvmo8R+L/frIp4/KuZ6go5W7hwgcJ1x7dhn21HoPqiH5UFd2HKuMHirf6cKpOvZ2qXp9KV95+mr7OWeAq3zZHLd/xqKskZQKVWEZQoahmlKTdTX87tsLl+sTzfPstxcGDB3djxV6TzrhBCIK+UVBO9QVPAZ4VYgIwa9CWLVscH330kcff3pGQ3YAsAH4O4XaGwF3DlNPeiJvaGm574w1NAPSu6o0IwPXP96olb5jpojWYytcM14y1cu0ociSMp9KNs+l/T6ZZjefo8bffpKiV2fPpUuL9VBgxkiqXDaDSFQOpXKSO5YF0MWYcFax5gKp3v0SuX7ya948vttvo0nEzzr12whLqzF1JlzKeo4KMeVR2OJyoILvZ67UUWOoLkXxy2C7e6vi/0M8vu/tg9GjJRwwAFvoQhp937Ngx2x/+8Acb2hCMZd4ssAfgx0Do6BdffGGLjo62mc1mB+qdWDACq8Zi/Plzzz3X8BkzxyKVeSCU3RdOnjxZ69duqyqAS9Tpne8m7i7NfpFKMqZR4eo7qGjDA3Qx43FyHk5Cmc0CvQh//XCzuTonQi3fupCK1j5KF5NnUqF1OhWte4xKc0Kp5vja0ziGzjSdCusfX+aaXfnp5pr8zWbX2b1m4/4bwalTp9QpU6ZoBiIDfGD0/fr1o+DgYFq4cKG2FNfatWvNqqqahQEFGMvwB7AA+DGwMkxiYiKNHDlSizdH3REzwIJ42NCIJD9jG3lyH4ib6gtRvnRbTW0gAIArPzXgb59szLt2PJ4uvSm8gexXqTovMaNWzVKMx3qCEJJgZ84a5fLhlNBvPsymq3kbMwqzzIozP02hghvv0msNIM7CI6MVK1Zob3kYPdz7zenptH3nTq1OL4ymQ1rybwTcCOinwAOWsjZFCweVRtiRNLWRAHQHiHuVJKga8zsD2APwU4gHKvTxkMcbzTDbkTS5eRhYALoe2APwY2B+OKNhdhRNbh4GFoCuBxYAP8b4iWObGKaRJjc3DTQe5yuN5YEsAF0PXAXwY4ybOKaJYeopJ4jEtgwzlY14raHJzQOgJwtA1wO6f9kD8FN4EgBp6Gi1RyMhbhLmk+/Zs6fGW2+9VctDzwG69UB8Roo8EBNNGPfLJaZMbh4EEGPThcvIAtCFwB6AH8OTAMBQccMQYLJlyxaNmHcO00qnpaU1fMaNk/uxb/PmzVoKIs+4HwtTYFCKJ48Ao9RYALoWWAD8GM0JAPr5N2zYYP/8888V8MyZM+h31lL9Z1+YmZmpDU4xxgJIwgMQDwwLQBcCNwL6KdCvjPnkxWYTAUAe3P+tW7eqxvNuBNu3b29WAOABIJy18VmMzgx4ACEhIR4nJmUBuEloTgBAjEXHuHHjeTcCVB/kUtXuJq3kNoCuBzQCYlpwT2sSoH2IBeAmAAKAN67JgwCgCoDJIo3n3QiEoGgCYHLzIOCaiH3nXoCuhX379pkx96AnAYAH8Pq2bWQ/d07Rn8doZyAUePr06U0MXxJVAIvF4iouLk4ynttaREREaOWifJMbAcA69h9//DELQBdCZGSkefTo0Y26j0319xtpz9496e09b1OhH41g7DZA3Uw/QEdP1Nkw+g+jBY3ntQafffZZsH6Mu5G45pw5c1xnz5694fH0DP+AzWbrsXDhwnSMYNQbPyhD0DE8fP/+/Q68kIznM9oZCQkJWp++DPYxEotMoCHQ0QazyBw8eFAdPHhwE8OXxHeYN2+eqj+H0bkRHx+vvPTSS1pMiN74sS1HkyL4a/PmzWbDqYyOwIGDv2y08ISR6LM3m82ESUCM5/qC3/3ud+b58+c7mpvjDo1BqampLABdCOLlkQf3310PADwANDRDIDABSqMTGR2DXbt2hT748IMePQBUDbCw5KZNm+xw4Y3ntwSIGcjMzHSNHz++yUOgJ1zBd999lwWgi0B4jemYPAaNfO4aAPFsYX7Il19++bTdbr+hORQZrQRWlF23bp0W7uuuHUByzJgxlLVrF32mqj6JAIKFwsLC0r0tTY12CMxApD+X0TkhDL+HeFmoclWj5u77zAdn0iEO/Lp5QN3+wIEDKuphctopI8VhWl0NQ4d373zLkZubqxjLcYcTJ06E7Ny5U5uSGlUJd/3+knj7JyQk5OnPZ3Q+nD9/3pyfn29bunSptgKUpyXBwe/9y/do0fKFjrMFBWZdEYyOxtmzZ81oDESEnn5yEJPhhmEf6nPPP/+8Qxi2raCgwNa4pDocPXpUydiaYXvhpRccQUFB2hRiIrvZQUCoB6alpSnflcLoTBAuvFk8R7YdWTvoqblParEeciSpSXef9c/V2DFjCfMeNiqI0fGAF3D48OE89MEb+2r1RB5uKG4uqgRw2efPn6+uWbNG3bZtm2qxWNTZs2erISEhDgQYYfSgp7L05WF0oTgXXUF2QZXZOWiz2dQtW7aoMTExqnjju+bMmUMDBw6gH/ygbhVgd/cd9xsNwRglunbtWuKuPz/Cpk2bMoYPH+7RCzBWDWQrLurvoLEhUX+ukdgvRwXKBwIp8uQkpChb5oG8v/326ydubSnxImjOxXdH3G+chyoCJjU1MfwLycnJhL56o7G7Ix4eiAAM3928giY3D4CeRsFg3jwa701LKO+7Mb85wvjhKRw6dEi9dOkSv/39DZ9++mlGUlKStsqMsc5ufGgkPQmAu4dLn+fpGGbXJDwODAvOysrq0LUJGT4A/bH5+flJcXFxWiuuSXcDjYatZ3NdiO7orjz9tZhdg3g5oLoBbxFrG+zbt88unq8AE8P/gTaBB6Y+QP/5Xz/UbqbRYJldj7jPraGnc9G1jHal6OhotPjbTYzOhUPvHlLnL/iZFg2IBh/jA+PpwTHul3MMGvObY2vaCHw9R3ZVGfObI85pzW9pzTnGPG9szTltRf39R5UQ3cqPPvqotlApRnhyi38nBKK6RH3N/M4776CbjyZMmEB9+/bVBnfIh83kRvkl5cPRUQbQXFuEJ/p6HX8WgNb8/rYiro0uXSwzh1GkmzIyKDs721xQUKB890QxOiUqKyuDEeCTkpISumvXLlq1ahU99NBDdP/99xNi/DFqcNiwYcxOSNw7EEFecNcR4+ErMcz7hRde0Gb22bNnz+nU1FRF/egjxfgcMboYzp8/H/zll1+qvz9/Xj3/1VfqVwYWFRWhu0e9cOGCto20sLBQo3gz8P4ust/Bk3kwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDN/x/wHjsXZ4EUApzgAAAABJRU5ErkJggg==";
|
|
2438
2551
|
|
|
2439
2552
|
// src/components/SOLModal/index.tsx
|
|
2553
|
+
import { useIntl as useIntl10 } from "react-intl";
|
|
2440
2554
|
import { jsx as jsx54, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
2441
2555
|
function WalletContent({
|
|
2442
2556
|
onSuccess,
|
|
@@ -2634,7 +2748,12 @@ function SOLModal({
|
|
|
2634
2748
|
onSuccess,
|
|
2635
2749
|
...props
|
|
2636
2750
|
}) {
|
|
2637
|
-
|
|
2751
|
+
const intl = useIntl10();
|
|
2752
|
+
return /* @__PURE__ */ jsx54(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
2753
|
+
id: type == "bind" ? "bindWith" : "loginWith"
|
|
2754
|
+
}, {
|
|
2755
|
+
name: "SOL"
|
|
2756
|
+
}), children: /* @__PURE__ */ jsx54(ConnectionProvider, { endpoint: clusterApiUrl("devnet"), children: /* @__PURE__ */ jsx54(WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ jsx54(WalletModalProvider, { children: /* @__PURE__ */ jsx54(WalletContent, { onSuccess, type }) }) }) }) });
|
|
2638
2757
|
}
|
|
2639
2758
|
|
|
2640
2759
|
// src/context/BusinessProvider.tsx
|
|
@@ -2679,7 +2798,7 @@ var context_default = Providers;
|
|
|
2679
2798
|
|
|
2680
2799
|
// src/hooks/useWalletInit.ts
|
|
2681
2800
|
import { useEffect as useEffect10, useState as useState14 } from "react";
|
|
2682
|
-
var AppClientId2 =
|
|
2801
|
+
var AppClientId2 = getAppClientId();
|
|
2683
2802
|
function useWalletInit({
|
|
2684
2803
|
refreshOverview
|
|
2685
2804
|
}) {
|
|
@@ -2817,7 +2936,8 @@ function useInit({
|
|
|
2817
2936
|
theme,
|
|
2818
2937
|
appid,
|
|
2819
2938
|
events,
|
|
2820
|
-
endpoints
|
|
2939
|
+
endpoints,
|
|
2940
|
+
locale
|
|
2821
2941
|
}) {
|
|
2822
2942
|
const {
|
|
2823
2943
|
setAppid,
|
|
@@ -2826,7 +2946,9 @@ function useInit({
|
|
|
2826
2946
|
setMid,
|
|
2827
2947
|
token,
|
|
2828
2948
|
setOverview,
|
|
2829
|
-
setTheme
|
|
2949
|
+
setTheme,
|
|
2950
|
+
setLocale,
|
|
2951
|
+
locale: realLocale
|
|
2830
2952
|
} = useLocalStore_default();
|
|
2831
2953
|
const overviewLoadingRef = useRef2(false);
|
|
2832
2954
|
const searchParams = new URLSearchParams(window.location.search);
|
|
@@ -2841,6 +2963,9 @@ function useInit({
|
|
|
2841
2963
|
useEffect11(() => {
|
|
2842
2964
|
setEndpoints(realEndpoints);
|
|
2843
2965
|
}, [realEndpoints]);
|
|
2966
|
+
useEffect11(() => {
|
|
2967
|
+
setLocale(locale || "en");
|
|
2968
|
+
}, [locale]);
|
|
2844
2969
|
useEffect11(() => {
|
|
2845
2970
|
if (matchToken) {
|
|
2846
2971
|
const tokenData = JSON.parse(atob(matchToken));
|
|
@@ -2913,26 +3038,429 @@ function useInit({
|
|
|
2913
3038
|
return {
|
|
2914
3039
|
loadOverview,
|
|
2915
3040
|
login,
|
|
2916
|
-
endpoints: realEndpoints
|
|
3041
|
+
endpoints: realEndpoints,
|
|
3042
|
+
locale: realLocale
|
|
2917
3043
|
};
|
|
2918
3044
|
}
|
|
2919
3045
|
|
|
2920
3046
|
// src/MatchContext.tsx
|
|
2921
3047
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
3048
|
+
import { IntlProvider } from "react-intl";
|
|
3049
|
+
|
|
3050
|
+
// src/i18n/en.json
|
|
3051
|
+
var en_default = {
|
|
3052
|
+
email: "Email",
|
|
3053
|
+
emailAddress: "Email Address",
|
|
3054
|
+
emailAddressPlaceholder: "Enter Your Email Address",
|
|
3055
|
+
continue: "Continue",
|
|
3056
|
+
send: "Send",
|
|
3057
|
+
resend: "Resend",
|
|
3058
|
+
sendCodeErrorTip: "Failed to send code: {error}",
|
|
3059
|
+
sendEmailTips: "We have sent a verification code to your email",
|
|
3060
|
+
verificationCode: "Verification Code",
|
|
3061
|
+
codePlaceholder: "Enter the code",
|
|
3062
|
+
wallet: "Wallet",
|
|
3063
|
+
otherLoginMethods: "Other login methods",
|
|
3064
|
+
login: "Login",
|
|
3065
|
+
user: "User",
|
|
3066
|
+
loginTitle: "Log in / Sign up",
|
|
3067
|
+
loginTips: "You can use the following methods",
|
|
3068
|
+
passwordMinError: "Password must be at least {length} characters",
|
|
3069
|
+
passwordMatchError: "The password you entered twice do not match",
|
|
3070
|
+
passwordTitle: "Set Password",
|
|
3071
|
+
passwordTips: "Please set the wallet password that will be used to recover the wallet",
|
|
3072
|
+
password: "Password",
|
|
3073
|
+
passwordPlaceholder: "Enter Your Password",
|
|
3074
|
+
rePassword: "Re Password",
|
|
3075
|
+
rePasswordPlaceholder: "Re Enter the Password",
|
|
3076
|
+
recoverTitle: "Recover Wallet",
|
|
3077
|
+
recoverTips: "Please enter your password to recover your wallet",
|
|
3078
|
+
bindWith: "Bind with {name} Wallet",
|
|
3079
|
+
loginWith: "Login with {name} Wallet",
|
|
3080
|
+
editUsernameTitle: "Edit User Name",
|
|
3081
|
+
setUsernameTitle: "Set User Name",
|
|
3082
|
+
username: "User Name",
|
|
3083
|
+
usernamePlaceholder: "Enter Your User Name",
|
|
3084
|
+
usernameValidError: "Name can be composed of numbers and letters as well as characters",
|
|
3085
|
+
usernameLengthError: "No less than 2 characters",
|
|
3086
|
+
confirm: "Confirm",
|
|
3087
|
+
nextTime: "Next time",
|
|
3088
|
+
setUsername: "Set a User Name",
|
|
3089
|
+
disconnect: "Disconnect"
|
|
3090
|
+
};
|
|
3091
|
+
|
|
3092
|
+
// src/i18n/zh.json
|
|
3093
|
+
var zh_default = {
|
|
3094
|
+
email: "\u90AE\u7BB1",
|
|
3095
|
+
emailAddress: "\u90AE\u7BB1\u5730\u5740",
|
|
3096
|
+
emailAddressPlaceholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u90AE\u7BB1\u5730\u5740",
|
|
3097
|
+
continue: "\u7EE7\u7EED",
|
|
3098
|
+
send: "\u53D1\u9001",
|
|
3099
|
+
resend: "\u91CD\u65B0\u53D1\u9001",
|
|
3100
|
+
sendCodeErrorTip: "\u53D1\u9001\u9A8C\u8BC1\u7801\u5931\u8D25\uFF1A{error}",
|
|
3101
|
+
sendEmailTips: "\u6211\u4EEC\u5DF2\u5411\u60A8\u7684\u90AE\u7BB1\u53D1\u9001\u9A8C\u8BC1\u7801",
|
|
3102
|
+
verificationCode: "\u9A8C\u8BC1\u7801",
|
|
3103
|
+
codePlaceholder: "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801",
|
|
3104
|
+
wallet: "\u94B1\u5305",
|
|
3105
|
+
otherLoginMethods: "\u5176\u4ED6\u767B\u5F55\u65B9\u5F0F",
|
|
3106
|
+
login: "\u767B\u5F55",
|
|
3107
|
+
user: "\u7528\u6237",
|
|
3108
|
+
loginTitle: "\u767B\u5F55 / \u6CE8\u518C",
|
|
3109
|
+
loginTips: "\u60A8\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u65B9\u5F0F\u767B\u5F55",
|
|
3110
|
+
passwordMinError: "\u5BC6\u7801\u5FC5\u987B\u81F3\u5C11\u5305\u542B {length} \u4E2A\u5B57\u7B26",
|
|
3111
|
+
passwordMatchError: "\u4E24\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4",
|
|
3112
|
+
passwordTitle: "\u8BBE\u7F6E\u5BC6\u7801",
|
|
3113
|
+
passwordTips: "\u8BF7\u8BBE\u7F6E\u7528\u4E8E\u6062\u590D\u94B1\u5305\u7684\u94B1\u5305\u5BC6\u7801",
|
|
3114
|
+
password: "\u5BC6\u7801",
|
|
3115
|
+
passwordPlaceholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u5BC6\u7801",
|
|
3116
|
+
rePassword: "\u786E\u8BA4\u5BC6\u7801",
|
|
3117
|
+
rePasswordPlaceholder: "\u8BF7\u518D\u6B21\u8F93\u5165\u5BC6\u7801",
|
|
3118
|
+
recoverTitle: "\u6062\u590D\u94B1\u5305",
|
|
3119
|
+
recoverTips: "\u8BF7\u8F93\u5165\u60A8\u7684\u5BC6\u7801\u4EE5\u6062\u590D\u94B1\u5305",
|
|
3120
|
+
bindWith: "\u7ED1\u5B9A {name} \u94B1\u5305",
|
|
3121
|
+
loginWith: "\u4F7F\u7528 {name} \u94B1\u5305\u767B\u5F55",
|
|
3122
|
+
editUsernameTitle: "\u4FEE\u6539\u7528\u6237\u540D",
|
|
3123
|
+
setUsernameTitle: "\u8BBE\u7F6E\u7528\u6237\u540D",
|
|
3124
|
+
username: "\u7528\u6237\u540D",
|
|
3125
|
+
usernamePlaceholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u7528\u6237\u540D",
|
|
3126
|
+
usernameValidError: "\u7528\u6237\u540D\u53EF\u4EE5\u7531\u6570\u5B57\u3001\u5B57\u6BCD\u548C\u5B57\u7B26\u7EC4\u6210",
|
|
3127
|
+
usernameLengthError: "\u7528\u6237\u540D\u4E0D\u5F97\u5C11\u4E8E 2 \u4E2A\u5B57\u7B26",
|
|
3128
|
+
confirm: "\u786E\u8BA4",
|
|
3129
|
+
nextTime: "\u4E0B\u6B21\u518D\u8BF4",
|
|
3130
|
+
setUsername: "\u8BBE\u7F6E\u7528\u6237\u540D",
|
|
3131
|
+
disconnect: "\u65AD\u5F00\u8FDE\u63A5"
|
|
3132
|
+
};
|
|
3133
|
+
|
|
3134
|
+
// src/i18n/tw.json
|
|
3135
|
+
var tw_default = {
|
|
3136
|
+
email: "\u90F5\u7BB1",
|
|
3137
|
+
emailAddress: "\u90F5\u7BB1\u5730\u5740",
|
|
3138
|
+
emailAddressPlaceholder: "\u8ACB\u8F38\u5165\u60A8\u7684\u90F5\u7BB1\u5730\u5740",
|
|
3139
|
+
continue: "\u7E7C\u7E8C",
|
|
3140
|
+
send: "\u767C\u9001",
|
|
3141
|
+
resend: "\u91CD\u65B0\u767C\u9001",
|
|
3142
|
+
sendCodeErrorTip: "\u767C\u9001\u9A57\u8B49\u78BC\u5931\u6557\uFF1A{error}",
|
|
3143
|
+
sendEmailTips: "\u6211\u5011\u5DF2\u5411\u60A8\u7684\u90F5\u7BB1\u767C\u9001\u9A57\u8B49\u78BC",
|
|
3144
|
+
verificationCode: "\u9A57\u8B49\u78BC",
|
|
3145
|
+
codePlaceholder: "\u8ACB\u8F38\u5165\u9A57\u8B49\u78BC",
|
|
3146
|
+
wallet: "\u9322\u5305",
|
|
3147
|
+
otherLoginMethods: "\u5176\u4ED6\u767B\u5165\u65B9\u5F0F",
|
|
3148
|
+
login: "\u767B\u5165",
|
|
3149
|
+
user: "\u7528\u6236",
|
|
3150
|
+
loginTitle: "\u767B\u5165 / \u8A3B\u518A",
|
|
3151
|
+
loginTips: "\u60A8\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u65B9\u5F0F\u767B\u5165",
|
|
3152
|
+
passwordMinError: "\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u5305\u542B {length} \u500B\u5B57\u7B26",
|
|
3153
|
+
passwordMatchError: "\u5169\u6B21\u8F38\u5165\u7684\u5BC6\u78BC\u4E0D\u4E00\u81F4",
|
|
3154
|
+
passwordTitle: "\u8A2D\u7F6E\u5BC6\u78BC",
|
|
3155
|
+
passwordTips: "\u8ACB\u8A2D\u7F6E\u7528\u65BC\u6062\u5FA9\u9322\u5305\u7684\u5BC6\u78BC",
|
|
3156
|
+
password: "\u5BC6\u78BC",
|
|
3157
|
+
passwordPlaceholder: "\u8ACB\u8F38\u5165\u60A8\u7684\u5BC6\u78BC",
|
|
3158
|
+
rePassword: "\u78BA\u8A8D\u5BC6\u78BC",
|
|
3159
|
+
rePasswordPlaceholder: "\u8ACB\u518D\u6B21\u8F38\u5165\u5BC6\u78BC",
|
|
3160
|
+
recoverTitle: "\u6062\u5FA9\u9322\u5305",
|
|
3161
|
+
recoverTips: "\u8ACB\u8F38\u5165\u60A8\u7684\u5BC6\u78BC\u4EE5\u6062\u5FA9\u9322\u5305",
|
|
3162
|
+
bindWith: "\u7D81\u5B9A {name} \u9322\u5305",
|
|
3163
|
+
loginWith: "\u4F7F\u7528 {name} \u9322\u5305\u767B\u5165",
|
|
3164
|
+
editUsernameTitle: "\u4FEE\u6539\u7528\u6236\u540D",
|
|
3165
|
+
setUsernameTitle: "\u8A2D\u7F6E\u7528\u6236\u540D",
|
|
3166
|
+
username: "\u7528\u6236\u540D",
|
|
3167
|
+
usernamePlaceholder: "\u8ACB\u8F38\u5165\u60A8\u7684\u7528\u6236\u540D",
|
|
3168
|
+
usernameValidError: "\u7528\u6236\u540D\u53EF\u4EE5\u7531\u6578\u5B57\u3001\u5B57\u6BCD\u548C\u5B57\u7B26\u7D44\u6210",
|
|
3169
|
+
usernameLengthError: "\u7528\u6236\u540D\u4E0D\u5F97\u5C11\u65BC 2 \u500B\u5B57\u7B26",
|
|
3170
|
+
confirm: "\u78BA\u8A8D",
|
|
3171
|
+
nextTime: "\u4E0B\u6B21\u518D\u8AAA",
|
|
3172
|
+
setUsername: "\u8A2D\u7F6E\u7528\u6236\u540D",
|
|
3173
|
+
disconnect: "\u65B7\u958B\u9023\u63A5"
|
|
3174
|
+
};
|
|
3175
|
+
|
|
3176
|
+
// src/i18n/fr.json
|
|
3177
|
+
var fr_default = {
|
|
3178
|
+
email: "Email",
|
|
3179
|
+
emailAddress: "Adresse Email",
|
|
3180
|
+
emailAddressPlaceholder: "Entrez votre adresse email",
|
|
3181
|
+
continue: "Continuer",
|
|
3182
|
+
send: "Envoyer",
|
|
3183
|
+
resend: "Renvoyer",
|
|
3184
|
+
sendCodeErrorTip: "\xC9chec de l'envoi du code : {error}",
|
|
3185
|
+
sendEmailTips: "Un code de v\xE9rification a \xE9t\xE9 envoy\xE9 \xE0 votre email",
|
|
3186
|
+
verificationCode: "Code de v\xE9rification",
|
|
3187
|
+
codePlaceholder: "Entrez le code",
|
|
3188
|
+
wallet: "Portefeuille",
|
|
3189
|
+
otherLoginMethods: "Autres m\xE9thodes de connexion",
|
|
3190
|
+
login: "Connexion",
|
|
3191
|
+
user: "Utilisateur",
|
|
3192
|
+
loginTitle: "Connexion / Inscription",
|
|
3193
|
+
loginTips: "Vous pouvez utiliser les m\xE9thodes suivantes",
|
|
3194
|
+
passwordMinError: "Le mot de passe doit contenir au moins {length} caract\xE8res",
|
|
3195
|
+
passwordMatchError: "Les mots de passe ne correspondent pas",
|
|
3196
|
+
passwordTitle: "D\xE9finir un mot de passe",
|
|
3197
|
+
passwordTips: "Veuillez d\xE9finir le mot de passe pour restaurer le portefeuille",
|
|
3198
|
+
password: "Mot de passe",
|
|
3199
|
+
passwordPlaceholder: "Entrez votre mot de passe",
|
|
3200
|
+
rePassword: "Confirmer le mot de passe",
|
|
3201
|
+
rePasswordPlaceholder: "Ressaisissez le mot de passe",
|
|
3202
|
+
recoverTitle: "Restaurer le portefeuille",
|
|
3203
|
+
recoverTips: "Entrez votre mot de passe pour restaurer le portefeuille",
|
|
3204
|
+
bindWith: "Lier avec le portefeuille {name}",
|
|
3205
|
+
loginWith: "Connexion avec le portefeuille {name}",
|
|
3206
|
+
editUsernameTitle: "Modifier le nom d'utilisateur",
|
|
3207
|
+
setUsernameTitle: "D\xE9finir un nom d'utilisateur",
|
|
3208
|
+
username: "Nom d'utilisateur",
|
|
3209
|
+
usernamePlaceholder: "Entrez votre nom d'utilisateur",
|
|
3210
|
+
usernameValidError: "Le nom peut contenir des lettres, chiffres et caract\xE8res",
|
|
3211
|
+
usernameLengthError: "Le nom doit comporter au moins 2 caract\xE8res",
|
|
3212
|
+
confirm: "Confirmer",
|
|
3213
|
+
nextTime: "La prochaine fois",
|
|
3214
|
+
setUsername: "D\xE9finir un nom d'utilisateur",
|
|
3215
|
+
disconnect: "D\xE9connecter"
|
|
3216
|
+
};
|
|
3217
|
+
|
|
3218
|
+
// src/i18n/ja.json
|
|
3219
|
+
var ja_default = {
|
|
3220
|
+
email: "\u30E1\u30FC\u30EB",
|
|
3221
|
+
emailAddress: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",
|
|
3222
|
+
emailAddressPlaceholder: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3223
|
+
continue: "\u7D9A\u3051\u308B",
|
|
3224
|
+
send: "\u9001\u4FE1",
|
|
3225
|
+
resend: "\u518D\u9001\u4FE1",
|
|
3226
|
+
sendCodeErrorTip: "\u30B3\u30FC\u30C9\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {error}",
|
|
3227
|
+
sendEmailTips: "\u78BA\u8A8D\u30B3\u30FC\u30C9\u3092\u30E1\u30FC\u30EB\u306B\u9001\u4FE1\u3057\u307E\u3057\u305F",
|
|
3228
|
+
verificationCode: "\u78BA\u8A8D\u30B3\u30FC\u30C9",
|
|
3229
|
+
codePlaceholder: "\u30B3\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3230
|
+
wallet: "\u30A6\u30A9\u30EC\u30C3\u30C8",
|
|
3231
|
+
otherLoginMethods: "\u305D\u306E\u4ED6\u306E\u30ED\u30B0\u30A4\u30F3\u65B9\u6CD5",
|
|
3232
|
+
login: "\u30ED\u30B0\u30A4\u30F3",
|
|
3233
|
+
user: "\u30E6\u30FC\u30B6\u30FC",
|
|
3234
|
+
loginTitle: "\u30ED\u30B0\u30A4\u30F3 / \u767B\u9332",
|
|
3235
|
+
loginTips: "\u4EE5\u4E0B\u306E\u65B9\u6CD5\u3067\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u307E\u3059",
|
|
3236
|
+
passwordMinError: "\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u6700\u4F4E {length} \u6587\u5B57\u5FC5\u8981\u3067\u3059",
|
|
3237
|
+
passwordMatchError: "\u5165\u529B\u3055\u308C\u305F\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",
|
|
3238
|
+
passwordTitle: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8A2D\u5B9A",
|
|
3239
|
+
passwordTips: "\u30A6\u30A9\u30EC\u30C3\u30C8\u5FA9\u5143\u7528\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3240
|
+
password: "\u30D1\u30B9\u30EF\u30FC\u30C9",
|
|
3241
|
+
passwordPlaceholder: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3242
|
+
rePassword: "\u30D1\u30B9\u30EF\u30FC\u30C9\u78BA\u8A8D",
|
|
3243
|
+
rePasswordPlaceholder: "\u518D\u5EA6\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3244
|
+
recoverTitle: "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u5FA9\u5143",
|
|
3245
|
+
recoverTips: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u5FA9\u5143\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3246
|
+
bindWith: "{name}\u30A6\u30A9\u30EC\u30C3\u30C8\u3068\u9023\u643A",
|
|
3247
|
+
loginWith: "{name}\u30A6\u30A9\u30EC\u30C3\u30C8\u3067\u30ED\u30B0\u30A4\u30F3",
|
|
3248
|
+
editUsernameTitle: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u7DE8\u96C6",
|
|
3249
|
+
setUsernameTitle: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u8A2D\u5B9A",
|
|
3250
|
+
username: "\u30E6\u30FC\u30B6\u30FC\u540D",
|
|
3251
|
+
usernamePlaceholder: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3252
|
+
usernameValidError: "\u540D\u524D\u306F\u6587\u5B57\u3001\u6570\u5B57\u3001\u8A18\u53F7\u3067\u69CB\u6210\u3067\u304D\u307E\u3059",
|
|
3253
|
+
usernameLengthError: "2\u6587\u5B57\u4EE5\u4E0A\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
3254
|
+
confirm: "\u78BA\u8A8D",
|
|
3255
|
+
nextTime: "\u6B21\u56DE",
|
|
3256
|
+
setUsername: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u8A2D\u5B9A",
|
|
3257
|
+
disconnect: "\u5207\u65AD"
|
|
3258
|
+
};
|
|
3259
|
+
|
|
3260
|
+
// src/i18n/ko.json
|
|
3261
|
+
var ko_default = {
|
|
3262
|
+
email: "\uC774\uBA54\uC77C",
|
|
3263
|
+
emailAddress: "\uC774\uBA54\uC77C \uC8FC\uC18C",
|
|
3264
|
+
emailAddressPlaceholder: "\uC774\uBA54\uC77C \uC8FC\uC18C\uB97C \uC785\uB825\uD558\uC138\uC694",
|
|
3265
|
+
continue: "\uACC4\uC18D\uD558\uAE30",
|
|
3266
|
+
send: "\uBCF4\uB0B4\uAE30",
|
|
3267
|
+
resend: "\uC7AC\uC804\uC1A1",
|
|
3268
|
+
sendCodeErrorTip: "\uCF54\uB4DC \uC804\uC1A1 \uC2E4\uD328: {error}",
|
|
3269
|
+
sendEmailTips: "\uC778\uC99D \uCF54\uB4DC\uB97C \uC774\uBA54\uC77C\uB85C \uBCF4\uB0C8\uC2B5\uB2C8\uB2E4",
|
|
3270
|
+
verificationCode: "\uC778\uC99D \uCF54\uB4DC",
|
|
3271
|
+
codePlaceholder: "\uCF54\uB4DC\uB97C \uC785\uB825\uD558\uC138\uC694",
|
|
3272
|
+
wallet: "\uC9C0\uAC11",
|
|
3273
|
+
otherLoginMethods: "\uB2E4\uB978 \uB85C\uADF8\uC778 \uBC29\uBC95",
|
|
3274
|
+
login: "\uB85C\uADF8\uC778",
|
|
3275
|
+
user: "\uC0AC\uC6A9\uC790",
|
|
3276
|
+
loginTitle: "\uB85C\uADF8\uC778 / \uD68C\uC6D0\uAC00\uC785",
|
|
3277
|
+
loginTips: "\uB2E4\uC74C \uBC29\uBC95\uC73C\uB85C \uB85C\uADF8\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4",
|
|
3278
|
+
passwordMinError: "\uBE44\uBC00\uBC88\uD638\uB294 \uCD5C\uC18C {length}\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4",
|
|
3279
|
+
passwordMatchError: "\uB450 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
|
|
3280
|
+
passwordTitle: "\uBE44\uBC00\uBC88\uD638 \uC124\uC815",
|
|
3281
|
+
passwordTips: "\uC9C0\uAC11 \uBCF5\uAD6C\uC5D0 \uC0AC\uC6A9\uD560 \uBE44\uBC00\uBC88\uD638\uB97C \uC124\uC815\uD558\uC138\uC694",
|
|
3282
|
+
password: "\uBE44\uBC00\uBC88\uD638",
|
|
3283
|
+
passwordPlaceholder: "\uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694",
|
|
3284
|
+
rePassword: "\uBE44\uBC00\uBC88\uD638 \uD655\uC778",
|
|
3285
|
+
rePasswordPlaceholder: "\uBE44\uBC00\uBC88\uD638\uB97C \uB2E4\uC2DC \uC785\uB825\uD558\uC138\uC694",
|
|
3286
|
+
recoverTitle: "\uC9C0\uAC11 \uBCF5\uAD6C",
|
|
3287
|
+
recoverTips: "\uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD574 \uC9C0\uAC11\uC744 \uBCF5\uAD6C\uD558\uC138\uC694",
|
|
3288
|
+
bindWith: "{name} \uC9C0\uAC11\uACFC \uC5F0\uACB0",
|
|
3289
|
+
loginWith: "{name} \uC9C0\uAC11\uC73C\uB85C \uB85C\uADF8\uC778",
|
|
3290
|
+
editUsernameTitle: "\uC0AC\uC6A9\uC790 \uC774\uB984 \uC218\uC815",
|
|
3291
|
+
setUsernameTitle: "\uC0AC\uC6A9\uC790 \uC774\uB984 \uC124\uC815",
|
|
3292
|
+
username: "\uC0AC\uC6A9\uC790 \uC774\uB984",
|
|
3293
|
+
usernamePlaceholder: "\uC0AC\uC6A9\uC790 \uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694",
|
|
3294
|
+
usernameValidError: "\uC774\uB984\uC740 \uBB38\uC790, \uC22B\uC790 \uBC0F \uD2B9\uC218\uBB38\uC790\uB85C \uAD6C\uC131\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4",
|
|
3295
|
+
usernameLengthError: "\uC774\uB984\uC740 \uCD5C\uC18C 2\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4",
|
|
3296
|
+
confirm: "\uD655\uC778",
|
|
3297
|
+
nextTime: "\uB2E4\uC74C\uC5D0",
|
|
3298
|
+
setUsername: "\uC0AC\uC6A9\uC790 \uC774\uB984 \uC124\uC815",
|
|
3299
|
+
disconnect: "\uC5F0\uACB0 \uB04A\uAE30"
|
|
3300
|
+
};
|
|
3301
|
+
|
|
3302
|
+
// src/i18n/vi.json
|
|
3303
|
+
var vi_default = {
|
|
3304
|
+
email: "Email",
|
|
3305
|
+
emailAddress: "\u0110\u1ECBa ch\u1EC9 Email",
|
|
3306
|
+
emailAddressPlaceholder: "Nh\u1EADp \u0111\u1ECBa ch\u1EC9 Email c\u1EE7a b\u1EA1n",
|
|
3307
|
+
continue: "Ti\u1EBFp t\u1EE5c",
|
|
3308
|
+
send: "G\u1EEDi",
|
|
3309
|
+
resend: "G\u1EEDi l\u1EA1i",
|
|
3310
|
+
sendCodeErrorTip: "G\u1EEDi m\xE3 th\u1EA5t b\u1EA1i: {error}",
|
|
3311
|
+
sendEmailTips: "Ch\xFAng t\xF4i \u0111\xE3 g\u1EEDi m\xE3 x\xE1c minh \u0111\u1EBFn email c\u1EE7a b\u1EA1n",
|
|
3312
|
+
verificationCode: "M\xE3 x\xE1c minh",
|
|
3313
|
+
codePlaceholder: "Nh\u1EADp m\xE3",
|
|
3314
|
+
wallet: "V\xED",
|
|
3315
|
+
otherLoginMethods: "Ph\u01B0\u01A1ng th\u1EE9c \u0111\u0103ng nh\u1EADp kh\xE1c",
|
|
3316
|
+
login: "\u0110\u0103ng nh\u1EADp",
|
|
3317
|
+
user: "Ng\u01B0\u1EDDi d\xF9ng",
|
|
3318
|
+
loginTitle: "\u0110\u0103ng nh\u1EADp / \u0110\u0103ng k\xFD",
|
|
3319
|
+
loginTips: "B\u1EA1n c\xF3 th\u1EC3 s\u1EED d\u1EE5ng c\xE1c ph\u01B0\u01A1ng th\u1EE9c sau",
|
|
3320
|
+
passwordMinError: "M\u1EADt kh\u1EA9u ph\u1EA3i c\xF3 \xEDt nh\u1EA5t {length} k\xFD t\u1EF1",
|
|
3321
|
+
passwordMatchError: "Hai m\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp",
|
|
3322
|
+
passwordTitle: "T\u1EA1o m\u1EADt kh\u1EA9u",
|
|
3323
|
+
passwordTips: "Vui l\xF2ng \u0111\u1EB7t m\u1EADt kh\u1EA9u \u0111\u1EC3 kh\xF4i ph\u1EE5c v\xED",
|
|
3324
|
+
password: "M\u1EADt kh\u1EA9u",
|
|
3325
|
+
passwordPlaceholder: "Nh\u1EADp m\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n",
|
|
3326
|
+
rePassword: "X\xE1c nh\u1EADn m\u1EADt kh\u1EA9u",
|
|
3327
|
+
rePasswordPlaceholder: "Nh\u1EADp l\u1EA1i m\u1EADt kh\u1EA9u",
|
|
3328
|
+
recoverTitle: "Kh\xF4i ph\u1EE5c v\xED",
|
|
3329
|
+
recoverTips: "Nh\u1EADp m\u1EADt kh\u1EA9u \u0111\u1EC3 kh\xF4i ph\u1EE5c v\xED",
|
|
3330
|
+
bindWith: "Li\xEAn k\u1EBFt v\u1EDBi v\xED {name}",
|
|
3331
|
+
loginWith: "\u0110\u0103ng nh\u1EADp b\u1EB1ng v\xED {name}",
|
|
3332
|
+
editUsernameTitle: "Ch\u1EC9nh s\u1EEDa t\xEAn ng\u01B0\u1EDDi d\xF9ng",
|
|
3333
|
+
setUsernameTitle: "\u0110\u1EB7t t\xEAn ng\u01B0\u1EDDi d\xF9ng",
|
|
3334
|
+
username: "T\xEAn ng\u01B0\u1EDDi d\xF9ng",
|
|
3335
|
+
usernamePlaceholder: "Nh\u1EADp t\xEAn ng\u01B0\u1EDDi d\xF9ng c\u1EE7a b\u1EA1n",
|
|
3336
|
+
usernameValidError: "T\xEAn ch\u1EC9 \u0111\u01B0\u1EE3c ch\u1EE9a ch\u1EEF, s\u1ED1 v\xE0 k\xFD t\u1EF1",
|
|
3337
|
+
usernameLengthError: "T\xEAn ph\u1EA3i d\xE0i \xEDt nh\u1EA5t 2 k\xFD t\u1EF1",
|
|
3338
|
+
confirm: "X\xE1c nh\u1EADn",
|
|
3339
|
+
nextTime: "L\u1EA7n sau",
|
|
3340
|
+
setUsername: "\u0110\u1EB7t t\xEAn ng\u01B0\u1EDDi d\xF9ng",
|
|
3341
|
+
disconnect: "Ng\u1EAFt k\u1EBFt n\u1ED1i"
|
|
3342
|
+
};
|
|
3343
|
+
|
|
3344
|
+
// src/i18n/es.json
|
|
3345
|
+
var es_default = {
|
|
3346
|
+
email: "Correo",
|
|
3347
|
+
emailAddress: "Direcci\xF3n de correo",
|
|
3348
|
+
emailAddressPlaceholder: "Introduce tu direcci\xF3n de correo",
|
|
3349
|
+
continue: "Continuar",
|
|
3350
|
+
send: "Enviar",
|
|
3351
|
+
resend: "Reenviar",
|
|
3352
|
+
sendCodeErrorTip: "Error al enviar el c\xF3digo: {error}",
|
|
3353
|
+
sendEmailTips: "Hemos enviado un c\xF3digo de verificaci\xF3n a tu correo",
|
|
3354
|
+
verificationCode: "C\xF3digo de verificaci\xF3n",
|
|
3355
|
+
codePlaceholder: "Introduce el c\xF3digo",
|
|
3356
|
+
wallet: "Cartera",
|
|
3357
|
+
otherLoginMethods: "Otros m\xE9todos de inicio de sesi\xF3n",
|
|
3358
|
+
login: "Iniciar sesi\xF3n",
|
|
3359
|
+
user: "Usuario",
|
|
3360
|
+
loginTitle: "Iniciar sesi\xF3n / Registrarse",
|
|
3361
|
+
loginTips: "Puedes usar los siguientes m\xE9todos",
|
|
3362
|
+
passwordMinError: "La contrase\xF1a debe tener al menos {length} caracteres",
|
|
3363
|
+
passwordMatchError: "Las contrase\xF1as no coinciden",
|
|
3364
|
+
passwordTitle: "Establecer contrase\xF1a",
|
|
3365
|
+
passwordTips: "Configura la contrase\xF1a para recuperar tu cartera",
|
|
3366
|
+
password: "Contrase\xF1a",
|
|
3367
|
+
passwordPlaceholder: "Introduce tu contrase\xF1a",
|
|
3368
|
+
rePassword: "Confirmar contrase\xF1a",
|
|
3369
|
+
rePasswordPlaceholder: "Repite la contrase\xF1a",
|
|
3370
|
+
recoverTitle: "Recuperar cartera",
|
|
3371
|
+
recoverTips: "Introduce tu contrase\xF1a para recuperar la cartera",
|
|
3372
|
+
bindWith: "Vincular con la cartera {name}",
|
|
3373
|
+
loginWith: "Iniciar sesi\xF3n con la cartera {name}",
|
|
3374
|
+
editUsernameTitle: "Editar nombre de usuario",
|
|
3375
|
+
setUsernameTitle: "Establecer nombre de usuario",
|
|
3376
|
+
username: "Nombre de usuario",
|
|
3377
|
+
usernamePlaceholder: "Introduce tu nombre de usuario",
|
|
3378
|
+
usernameValidError: "El nombre puede contener letras, n\xFAmeros y caracteres",
|
|
3379
|
+
usernameLengthError: "El nombre debe tener al menos 2 caracteres",
|
|
3380
|
+
confirm: "Confirmar",
|
|
3381
|
+
nextTime: "La pr\xF3xima vez",
|
|
3382
|
+
setUsername: "Establecer nombre de usuario",
|
|
3383
|
+
disconnect: "Desconectar"
|
|
3384
|
+
};
|
|
3385
|
+
|
|
3386
|
+
// src/i18n/pt.json
|
|
3387
|
+
var pt_default = {
|
|
3388
|
+
email: "Email",
|
|
3389
|
+
emailAddress: "Endere\xE7o de Email",
|
|
3390
|
+
emailAddressPlaceholder: "Digite seu endere\xE7o de email",
|
|
3391
|
+
continue: "Continuar",
|
|
3392
|
+
send: "Enviar",
|
|
3393
|
+
resend: "Reenviar",
|
|
3394
|
+
sendCodeErrorTip: "Falha ao enviar c\xF3digo: {error}",
|
|
3395
|
+
sendEmailTips: "Enviamos um c\xF3digo de verifica\xE7\xE3o para seu email",
|
|
3396
|
+
verificationCode: "C\xF3digo de Verifica\xE7\xE3o",
|
|
3397
|
+
codePlaceholder: "Digite o c\xF3digo",
|
|
3398
|
+
wallet: "Carteira",
|
|
3399
|
+
otherLoginMethods: "Outros m\xE9todos de login",
|
|
3400
|
+
login: "Entrar",
|
|
3401
|
+
user: "Usu\xE1rio",
|
|
3402
|
+
loginTitle: "Entrar / Registrar",
|
|
3403
|
+
loginTips: "Voc\xEA pode usar os m\xE9todos abaixo",
|
|
3404
|
+
passwordMinError: "A senha deve ter pelo menos {length} caracteres",
|
|
3405
|
+
passwordMatchError: "As senhas digitadas n\xE3o coincidem",
|
|
3406
|
+
passwordTitle: "Definir Senha",
|
|
3407
|
+
passwordTips: "Configure uma senha para recuperar sua carteira",
|
|
3408
|
+
password: "Senha",
|
|
3409
|
+
passwordPlaceholder: "Digite sua senha",
|
|
3410
|
+
rePassword: "Confirmar Senha",
|
|
3411
|
+
rePasswordPlaceholder: "Digite a senha novamente",
|
|
3412
|
+
recoverTitle: "Recuperar Carteira",
|
|
3413
|
+
recoverTips: "Digite sua senha para recuperar a carteira",
|
|
3414
|
+
bindWith: "Vincular com Carteira {name}",
|
|
3415
|
+
loginWith: "Entrar com Carteira {name}",
|
|
3416
|
+
editUsernameTitle: "Editar Nome de Usu\xE1rio",
|
|
3417
|
+
setUsernameTitle: "Definir Nome de Usu\xE1rio",
|
|
3418
|
+
username: "Nome de Usu\xE1rio",
|
|
3419
|
+
usernamePlaceholder: "Digite seu nome de usu\xE1rio",
|
|
3420
|
+
usernameValidError: "O nome pode conter letras, n\xFAmeros e caracteres",
|
|
3421
|
+
usernameLengthError: "Deve ter no m\xEDnimo 2 caracteres",
|
|
3422
|
+
confirm: "Confirmar",
|
|
3423
|
+
nextTime: "Pr\xF3xima vez",
|
|
3424
|
+
setUsername: "Definir Nome de Usu\xE1rio",
|
|
3425
|
+
disconnect: "Desconectar"
|
|
3426
|
+
};
|
|
3427
|
+
|
|
3428
|
+
// src/i18n/index.ts
|
|
3429
|
+
var messages = {
|
|
3430
|
+
en: en_default,
|
|
3431
|
+
zh: zh_default,
|
|
3432
|
+
tw: tw_default,
|
|
3433
|
+
fr: fr_default,
|
|
3434
|
+
ja: ja_default,
|
|
3435
|
+
ko: ko_default,
|
|
3436
|
+
vi: vi_default,
|
|
3437
|
+
es: es_default,
|
|
3438
|
+
pt: pt_default
|
|
3439
|
+
};
|
|
3440
|
+
|
|
3441
|
+
// src/MatchContext.tsx
|
|
2922
3442
|
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
2923
3443
|
var queryClient = new QueryClient();
|
|
2924
3444
|
var MatchContext = createContext(void 0);
|
|
2925
|
-
var MatchProvider = ({ children, appid, events, theme = "light", endpoints }) => {
|
|
2926
|
-
const { loadOverview, login, endpoints: realEndPoints } = useInit({
|
|
3445
|
+
var MatchProvider = ({ children, appid, events, theme = "light", endpoints, locale }) => {
|
|
3446
|
+
const { loadOverview, login, endpoints: realEndPoints, locale: realLocale } = useInit({
|
|
2927
3447
|
theme,
|
|
2928
3448
|
appid,
|
|
2929
3449
|
events,
|
|
2930
|
-
endpoints
|
|
3450
|
+
endpoints,
|
|
3451
|
+
locale
|
|
3452
|
+
});
|
|
3453
|
+
matchlog_default.log("config", {
|
|
3454
|
+
appid,
|
|
3455
|
+
theme,
|
|
3456
|
+
endpoints,
|
|
3457
|
+
locale,
|
|
3458
|
+
realLocale
|
|
2931
3459
|
});
|
|
2932
3460
|
useWalletInit({
|
|
2933
3461
|
refreshOverview: loadOverview
|
|
2934
3462
|
});
|
|
2935
|
-
return /* @__PURE__ */ jsx57(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx57(
|
|
3463
|
+
return /* @__PURE__ */ jsx57(IntlProvider, { locale: realLocale, messages: messages[realLocale], children: /* @__PURE__ */ jsx57(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx57(
|
|
2936
3464
|
MatchContext.Provider,
|
|
2937
3465
|
{
|
|
2938
3466
|
value: {
|
|
@@ -2940,11 +3468,12 @@ var MatchProvider = ({ children, appid, events, theme = "light", endpoints }) =>
|
|
|
2940
3468
|
endpoints: realEndPoints,
|
|
2941
3469
|
events,
|
|
2942
3470
|
login,
|
|
2943
|
-
theme
|
|
3471
|
+
theme,
|
|
3472
|
+
locale: realLocale
|
|
2944
3473
|
},
|
|
2945
3474
|
children: /* @__PURE__ */ jsx57(context_default, { children })
|
|
2946
3475
|
}
|
|
2947
|
-
) });
|
|
3476
|
+
) }) });
|
|
2948
3477
|
};
|
|
2949
3478
|
var useMatch = () => {
|
|
2950
3479
|
const context = useContext(MatchContext);
|