{"version":3,"file":"static/chunks/7033-ee1110708e41699e.js","mappings":"qFAC8DA,SAG7DC,CAAA,EAA4B,iBA+M7BC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAvNA,IAAAC,EAAA,CACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,OACAC,IAAA,IACAC,IAAA,MACAC,IAAA,KACAC,IAAA,OACAC,IAAA,OACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,MACAC,IAAA,KACAC,IAAA,MACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,MACAC,IAAA,MACAC,IAAA,IACAC,IAAA,MACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,MACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,MACAC,IAAA,MACAC,IAAA,KACA,EAKAC,EAAA,CACAvB,IAAA,CAAWwB,SAAA,CAAYC,MAAA,IAAaC,WAAA,CAAgBC,GAAA,KACpDhC,IAAA,CAAW6B,SAAA,CAAYC,MAAA,IAAaC,WAAA,CAAgBC,GAAA,KACpDvB,IAAA,CAAWoB,SAAA,CAAYC,MAAA,IAAaC,WAAA,CAAgBC,GAAA,KACpD9C,IAAA,CAAW2C,SAAA,CAAYC,MAAA,IAAaC,WAAA,CAAgBC,GAAA,KACpD7C,IAAA,CAAW0C,SAAA,CAAYC,MAAA,IAAaC,WAAA,CAAgBC,GAAA,IACpD,EAGA,SAAAC,GAAA,CACA,QACA,kBAAAC,MACAA,MACA,mBAAAA,KAAAC,YAAA,CAEA,CAEA,SAAAC,EAAAC,CAAA,EACA,MAAAA,QAAAA,GAAAA,QAAAA,CACA,CAEA,SAAAC,EAAAD,CAAA,EACA,OAAAD,EAAAC,IAAApD,IAAA,EAAAA,CAAA,CAAAoD,EAAA,CAcA,SAAAE,EAAAC,CAAA,CAAAC,EAAA,KAAAC,CAAA,EACA,SAAAA,GACAF,CAAAA,EAAAG,SAZAH,CAAA,CAAAE,CAAA,EACA,IAAAE,EAAA,kBAA+D,EAAEF,EAAA,EAAiC,aAAE,GAEpG,OAAAF,EAAAK,OAAA,CACAD,EACA,CAAAE,EAAAC,EAAAC,IAAA,GAAyDD,EAAU,eAAgBP,EAAkB,IAAKQ,EAAAC,MAAA,CAA6B,QAEvI,EAKAT,EAAAE,EAAA,EAIA,IAAAQ,EAAAV,EAAAW,KAAA,iBACA,GAAAD,IAAA,EAAAA,EAAA,CACA,IAAAE,EAAAF,CAAA,IAAAG,IAAA,GAGAC,EAAA1B,CAAA,CAAAwB,EAAA,QACA,GAEAE,EAAAzB,QAAA,CAAAC,KAAA,EACAwB,EAAAvB,UAAA,CAAAU,EAAA,CAEAD,EAAAK,OAAA,CACAK,CAAA,IACAjE,CAAA,CAAAmE,EAAA,EAGAZ,CACA,CACA,IAGAe,EAAAf,EAAAW,KAAA,cACA,GAAAI,IAAA,EAAAA,EAAA,CACA,IAAAH,EAAAG,CAAA,IAGAD,EAAA1B,CAAA,CAAAwB,EAAA,CACA,GACAE,GACAA,EAAAzB,QAAA,CAAA2B,GAAA,EACAF,EAAAvB,UAAA,CAAAU,EAAA,CAEA,OAAAD,EAAAK,OAAA,CAAAO,EAAAnE,CAAA,CAAAmE,EAAA,CAGA,CACA,OAEAZ,CACA,CAyBA,SAAAiB,EAAApB,CAAA,CAAAI,CAAA,CAAAiB,EAAA,SAGA,CAFArB,EAAAA,EAAAsB,WAAA,GAEAD,EAAA,GACA,CACAE,OAAA,GACAtB,EAAAD,GACA,GAAiBwB,EAAAC,OAAA,CAAAJ,GAAA,CAA4B,EAAErB,EAAQ,EACvD,GAAiBA,EAAA,CAAS,EAAEwB,EAAAC,OAAA,CAAAJ,GAA2B,GAIvD,CACAE,OAAA,GACAtB,EAAAD,GACA,GAAiBwB,EAAAE,cAAA,CAAAtB,GAAA,CAA8B,EAAEJ,EAAQ,EACzD,GAAiBA,EAAA,CAAS,EAAEwB,EAAAE,cAAA,CAAAtB,GAA6B,EAGzD,CAoBA,SAAAuB,EAAA3B,CAAA,CAAAI,CAAA,CAAAiB,CAAA,CAAAO,CAAA,EACA,IAAAC,EAAAjC,IAEAkC,EACAD,GAAA,EAAA5B,EAAAD,IAAAD,EAAAC,EAAA,EACA,OAAA8B,EACAC,SAnEA/B,CAAA,CAAAI,CAAA,CAAAiB,CAAA,CAAAO,CAAA,EACA,IACA,IAAAI,EAAA,CACAC,MAAA,WACAC,SAAAlC,EACAmC,gBAAA,QACA,EAOA,OANAd,KAAAe,IAAAf,GACAW,EAAAK,qBAAA,CAAAhB,EACAW,EAAAM,qBAAA,CAAAjB,GACQe,KAAAA,IAAAR,GACRI,CAAAA,EAAAO,wBAAA,CAAAX,CAAA,EAEA,IAAA/B,KAAAC,YAAA,CAAAM,EAAA4B,EACA,CAAM,MAAAQ,EAAA,CAGN,OAAApB,EAAApB,EAAAI,EAAAiB,EACA,CACA,EAgDArB,EAAAI,EAAAiB,EAAAO,GACAR,EAAApB,EAAAI,EAAAiB,EAAA,CAmBA,IAAAoB,EAAA,EA6RA1G,CAAAA,EAAA2G,UAAA,CA3RA,WACAD,EAAA,EACA,EA0RA1G,EAAA4G,cAAA,CA9NA,SACAC,CAAA,CACA5C,CAAA,CACAI,EAAA,KACAyC,EAAA,GACAC,EAAA,GACAC,EAAA,GACA,CAEA,IAAA1C,EAUA,GARArE,CAAAA,IAHAgE,CAAAA,EAAAA,EAAAsB,WAAA,KAGArF,GAAAmE,CAAA,IACApE,EAAAgE,EACA/D,EAAAmE,EAGA4C,SA1EAhD,CAAA,CAAAI,CAAA,EACA,IAAA6C,EAAA,GAAwBjD,EAAQ,GAAGI,EAAO,EAC1C8C,EAAAT,CAAA,CAAAQ,EAAA,CAEA/G,EAAAgH,EACAA,EAAAhH,uBAAA,CACAyF,EAAA3B,EAAAI,EAAA,CACAjE,EAAA+G,EACAA,EAAA/G,0BAAA,CACAwF,EAAA3B,EAAAI,EAAA,GACAhE,EAAA8G,EACAA,EAAA9G,uBAAA,CACAuF,EAAA3B,EAAAI,EAAA,GACA/D,EAAA6G,EACAA,EAAA7G,2BAAA,CACAsF,EAAA3B,EAAAI,EAAA,GACA9D,EAAA4G,EACAA,EAAA5G,sBAAA,CACAqF,EAAA3B,EAAAI,EAAA,GACA7D,EAAA2G,EACAA,EAAA3G,0BAAA,CACAoF,EAAA3B,EAAAI,EAAA,GACA5D,EAAA0G,EACAA,EAAA1G,8BAAA,CACAmF,EAAA3B,EAAAI,EAAA,IACA3D,EAAAyG,EACAA,EAAAzG,qBAAA,CACAkF,EAAA3B,EAAAI,EAAA,IACA1D,EAAAwG,EACAA,EAAAxG,qBAAA,CACAiF,EAAA3B,EAAAI,EAAA,IACAzD,EAAAuG,EACAA,EAAAvG,4BAAA,CACAwG,SAlFAnD,CAAA,CAAAI,CAAA,EAEA,IAAAR,IACA,OAAAwB,EAAApB,EAAAI,EAAA,EACA,CAEA,IAAAgD,EAAA,CAAgCnB,MAAA,UAAAoB,SAAA,UAAAhB,sBAAA,EAAAC,sBAAA,GAQhC,MALA,EAAArC,EAAAD,IAAAD,EAAAC,EAAA,IACAoD,EAAAnB,KAAA,YACAmB,EAAAlB,QAAA,CAAAlC,GAGA,IAAAH,KAAAC,YAAA,CAAAM,EAAAgD,EACA,EAmEApD,EAAAI,EAAA,CAGA,MAAA8C,IACAT,CAAA,CAAAQ,EAAA,IACAR,CAAA,CAAAQ,EAAA,CAAA/G,uBAAA,CAAAA,EACAuG,CAAA,CAAAQ,EAAA,CAAA9G,0BAAA,CAAAA,EACAsG,CAAA,CAAAQ,EAAA,CAAA7G,uBAAA,CAAAA,EACAqG,CAAA,CAAAQ,EAAA,CAAA5G,2BAAA,CAAAA,EACAoG,CAAA,CAAAQ,EAAA,CAAA3G,sBAAA,CAAAA,EACAmG,CAAA,CAAAQ,EAAA,CAAA1G,0BAAA,CAAAA,EACAkG,CAAA,CAAAQ,EAAA,CAAAzG,8BAAA,CAAAA,EACAiG,CAAA,CAAAQ,EAAA,CAAAxG,qBAAA,CAAAA,EACAgG,CAAA,CAAAQ,EAAA,CAAAvG,qBAAA,CAAAA,EACA+F,CAAA,CAAAQ,EAAA,CAAAtG,4BAAA,CAAAA,EAEA,EAyBAqD,EAAAI,IAGA2C,EAAA,CACA,IAAAO,EAAA3G,EAAA4E,MAAA,CAAAqB,GAOA,OAJA3C,EAAAD,IAAA,CAAAD,EAAAC,IACAsD,CAAAA,EAAA,GAA0CA,EAAA,CAA8B,EAAEtD,EAAQ,GAGlFE,EAAAoD,EAAAlD,EACA,IAEA0C,CAAA,IAAAA,GAAAF,EAAA,IACA,OAAA1C,EACA/D,EAAAoF,MAAA,CAAAqB,GACAxC,EA8CA,CA5CM,oBAAA0C,GAAAA,IAAA,GAAAA,EAAA,CACN,GAAAD,EAMA,SAAkBU,WAJlBT,EAAAU,cAAA,kBACAZ,EAAAnB,OAAA,CAAAqB,EAAAW,aAAA,EACAb,CAAA,EAEkBc,WAAA,CAAAZ,EAAAa,kBAAA,IAAqE,EAOvF,GAJAb,EAAAU,cAAA,kCACAnD,CAAAA,EAAAyC,EAAAzC,4BAAA,EAGAyC,EAAAU,cAAA,mBAAAV,EAAAU,cAAA,wBAEA,IAAAI,EAAAjC,EACA3B,EACAI,EACAgC,KAAAA,EACAU,EAAAa,kBAAA,EAGA,OAAAzD,EACA0D,EAAArC,MAAA,CACAsC,OAAAN,UAAA,CAAAX,EAAAnB,OAAA,CAAAqB,EAAAW,aAAA,IAEArD,EACAC,EAEA,CAaA,GAbQyC,EAAAU,cAAA,mBAAAV,EAAAU,cAAA,wBACR,IAAAI,EAAAjC,EACA3B,EACAI,EACA0C,EAAAW,aAAA,CACAX,EAAAa,kBAAA,EAGA,OAAAzD,EACA0D,EAAArC,MAAA,CAAAqB,GACAxC,EACAC,EAEA,EACA,GAEAJ,EAAAD,GAAA,CACA,IAAA8D,EAAAP,WAAAX,GAEA,GAAAC,SACA,IAAAD,EACAkB,EAAArC,OAAA,IAEAqC,EAAAJ,WAAA,GADA,CAIA,GAAAd,IAAAA,EACA,OAAA1C,EACAhE,EAAAqF,MAAA,CAAAqB,GACAxC,EACAC,EAkDA,CAhDQ,GAAAyD,GArGR,IAuGA,OAAA5D,EACA/D,EAAAoF,MAAA,CAAAqB,GACAxC,EA4CA,CA1CQ,GACR0D,GA9GA,IA+GAA,EA7GA,IAgHA,OAAA5D,EACA9D,EAAAmF,MAAA,CAAAqB,GACAxC,EACAC,EAkCA,CAhCQ,GAAAyD,GAAA,GAAAA,EAvHR,GAyHA,OAAA5D,EACA5D,EAAAiF,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAAyD,GAAA,MAAAA,EAAA,EAER,OAAA5D,EACA3D,EAAAgF,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAAyD,GAAA,MAAAA,EAAA,KACR,OAAA5D,EACA1D,EAAA+E,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAAyD,GAAA,OAAAA,EAAA,KACR,OAAA5D,EACAzD,EAAA8E,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAAyD,EAAA,MACR,OAAA5D,EACAxD,EAAA6E,MAAA,CAAAqB,GACAxC,EACAC,EAEA,KACM,CACN,IAAA0D,EAAAC,KAAAC,GAAA,CAAArB,GACA,GAAAC,EAAA,CACA,GAAAkB,EAAA,MACA,OAAAnB,EAAAnB,OAAA,IAWA,CAVU,GAAAsC,EAAA,KACV,OAAAnB,EAAAnB,OAAA,IASA,CARU,GAAAsC,EAAA,KACV,OAAAnB,EAAAnB,OAAA,IAOA,CANU,GAAAsC,EAAA,KACV,OAAAnB,EAAAnB,OAAA,SACU,GAAAsC,EAAA,EACV,OAAAnB,EAAAnB,OAAA,SAEA,OAAAmB,EAAAnB,OAAA,GACA,CACA,GAEAsC,IAAAA,EACA,OAAA7D,EACAhE,EAAAqF,MAAA,CAAAqB,GACAxC,EACAC,EAiDA,CA/CQ,GAAA0D,EAAA,MACR,OAAA7D,EACAxD,EAAA6E,MAAA,CAAAqB,GACAxC,EACAC,EA2CA,CAzCQ,GAAA0D,EAAA,KACR,OAAA7D,EACAzD,EAAA8E,MAAA,CAAAqB,GACAxC,EACAC,EAqCA,CAnCQ,GAAA0D,EAAA,KACR,OAAA7D,EACA1D,EAAA+E,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAA0D,EAAA,IACR,OAAA7D,EACA3D,EAAAgF,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAA0D,EAAA,EACR,OAAA7D,EACA5D,EAAAiF,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAAL,QAAAA,GAAA+D,EAAA,IACR,OAAA7D,EACA7D,EAAAkF,MAAA,CAAAqB,GACAxC,EACAC,QAEQ,GAAA0D,EAhNR,IAiNA,OAAA7D,EACA/D,EAAAoF,MAAA,CAAAqB,GACAxC,QAIA,OAAAF,EACAhE,EAAAqF,MAAA,CAAAqB,GACAxC,EAEA,CACA,EAKArE,EAAAkE,QAAA,CAAAA,EAEAiE,OAAAC,cAAA,CAAApI,EAAA,cAAiDyF,MAAA,IAEjD,EApgB8DzF,uCCE9D,IAAAqI,EAA6BC,EAAQ,MAIrCtI,CAAAA,EAAAuI,CAAe,QACf,IAAAC,EAAAH,EAA4CC,EAAQ,QACpDG,EAAkBH,EAAQ,MACXtI,CAAAA,EAAAuI,CAAe,IAAAC,EAAAE,OAAA,KAAAD,EAAAE,GAAA,UAC9BC,EAAA,6FACA,GAAC,+GCPDC,EAAA,SAAAC,CAAA,EACA,IAAAA,EACA,QACA,CAEA,IAAAC,EAAaC,IAAKF,GAAAG,OAAA,GAAAC,KAAAC,GAAA,GAClB,OAAAJ,EAAA,IAAAA,CAAA,CAyDAK,CAAAA,EAAA,EA9CA,SAAAC,CAAA,EACA,SAAAA,GACAA,CAAAA,EAAA,IAEA,IAAAC,EAAAD,GAAA,GACAE,EAAAD,EAAAC,QAAA,CACAC,EAAAF,EAAAE,UAAA,CACAC,EAAAH,EAAAI,QAAA,CACAA,EAAAD,KAAA,IAAAA,EAAA,IAAAA,CAAA,CACAE,EAAAL,EAAAK,KAAA,CACAC,EAAqB,GAAAC,EAAAC,OAAA,EAAO,WAC5B,MAAW,GAAAC,EAAAC,EAAA,EAAQT,IAAAA,EAAA,EAAAL,KAAAC,GAAA,GAAAI,EAAAlD,KAAAA,CAAA,EAChB,CAAAkD,EAAA,EACHT,EAAA,aAAAO,EAAAO,EAAAJ,CAAA,CACAS,EAAW,GAAAC,EAAAC,EAAA,EAAO,GAAAN,EAAAO,QAAA,EAAQ,WAC1B,OAAAvB,EAAAC,EACA,GAAK,GACLuB,EAAAJ,CAAA,IACAK,EAAAL,CAAA,IACAM,EAAiB,GAAAC,EAAAjC,CAAA,EAASoB,GACxB,GAAAE,EAAAY,SAAA,EAAS,WACX,IAAA3B,EAAA,CAEAwB,EAAA,GACA,MACA,GAEAzB,EAAAC,IACA,IAAA4B,EAAAC,YAAA,WAEA,IADArB,EACAsB,EAAA/B,EAAAC,GACAwB,EAAAM,GACA,IAAAA,IACAC,cAAAH,GACA,OAAApB,CAAAA,EAAAiB,EAAAO,OAAA,GAAAxB,KAAA,IAAAA,GAAAA,EAAAyB,IAAA,CAAAR,GAEA,EAAKb,GACL,kBACA,OAAAmB,cAAAH,EACA,CACA,EAAG,CAAA5B,EAAAY,EAAA,EACH,IAAAsB,EAAqB,GAAAnB,EAAAC,OAAA,EAAO,WAC5B,MAlDA,CACAmB,KAAAhD,KAAAiD,KAAA,CAAAC,EAAA,OACAC,MAAAnD,KAAAiD,KAAA,CAAAC,EAAA,SACAE,QAAApD,KAAAiD,KAAA,CAAAC,EAAA,QACAG,QAAArD,KAAAiD,KAAA,CAAAC,EAAA,QACAA,aAAAlD,KAAAiD,KAAA,CA6CAb,GA7CA,GACA,CA6CA,EAAG,CAAAA,EAAA,EACH,OAAAA,EAAAW,EAAA,AACA","sources":["webpack://_N_E/../../node_modules/@coingecko/cryptoformat/lib/cryptoformat.umd.js","webpack://_N_E/../../node_modules/@mui/icons-material/Info.js","webpack://_N_E/../../node_modules/ahooks/es/useCountDown/index.js","webpack://_N_E/"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.cryptoformat = {}));\n}(this, function (exports) { 'use strict';\n\n // A map of supported currency codes to currency symbols.\n const supportedCurrencySymbols = {\n BTC: \"₿\",\n ETH: \"Ξ\",\n USD: \"$\",\n CAD: \"C$\",\n GBP: \"£\",\n EUR: \"€\",\n CHF: \"Fr.\",\n SEK: \"kr\",\n JPY: \"¥\",\n CNY: \"¥\",\n INR: \"₹\",\n RUB: \"₽\",\n AUD: \"A$\",\n HKD: \"HK$\",\n SGD: \"S$\",\n TWD: \"NT$\",\n BRL: \"R$\",\n KRW: \"₩\",\n ZAR: \"R\",\n MYR: \"RM\",\n IDR: \"Rp\",\n NZD: \"NZ$\",\n MXN: \"MX$\",\n PHP: \"₱\",\n DKK: \"kr.\",\n PLN: \"zł\",\n AED: \"DH\",\n ARS: \"$\",\n CLP: \"CLP\",\n CZK: \"Kč\",\n HUF: \"Ft\",\n ILS: \"₪\",\n KWD: \"KD\",\n LKR: \"Rs\",\n NOK: \"kr\",\n PKR: \"₨\",\n SAR: \"SR\",\n THB: \"฿\",\n TRY: \"₺\",\n XAU: \"XAU\",\n XAG: \"XAG\",\n XDR: \"XDR\",\n };\n\n // A map of override objects to apply.\n // Format:\n // { location: { start: Boolean, end: Boolean }, forLocales: { : Boolean } }\n const symbolOverrides = {\n MYR: { location: { start: true }, forLocales: { en: true } },\n SGD: { location: { start: true }, forLocales: { en: true } },\n PHP: { location: { start: true }, forLocales: { en: true } },\n BTC: { location: { start: true }, forLocales: { en: true } },\n ETH: { location: { start: true }, forLocales: { en: true } },\n };\n\n // Feature detection for Intl.NumberFormat\n function IntlNumberFormatSupported() {\n return !!(\n typeof Intl == \"object\" &&\n Intl &&\n typeof Intl.NumberFormat == \"function\"\n );\n }\n\n function isBTCETH(isoCode) {\n return isoCode === \"BTC\" || isoCode === \"ETH\";\n }\n\n function isCrypto(isoCode) {\n return isBTCETH(isoCode) || supportedCurrencySymbols[isoCode] == null;\n }\n\n // Function to transform decimal trailing zeroes to exponent\n function decimalTrailingZeroesToExponent(formattedCurrency, maximumDecimalTrailingZeroes) {\n const decimalTrailingZeroesPattern = new RegExp(`(\\\\.|,)(0{${maximumDecimalTrailingZeroes + 1},})(?=[1-9]?)`);\n\n return formattedCurrency.replace(\n decimalTrailingZeroesPattern,\n (_match, separator, decimalTrailingZeroes) => `${separator}0${decimalTrailingZeroes.length}`,\n )\n }\n\n // Function to transform the output from Intl.NumberFormat#format\n function formatCurrencyOverride(formattedCurrency, locale = \"en\", maximumDecimalTrailingZeroes) {\n if (typeof maximumDecimalTrailingZeroes !== \"undefined\") {\n formattedCurrency = decimalTrailingZeroesToExponent(formattedCurrency, maximumDecimalTrailingZeroes);\n }\n\n // If currency code remains in front\n const currencyCodeFrontMatch = formattedCurrency.match(/^[A-Z]{3}\\s?/);\n if (currencyCodeFrontMatch != null) {\n const code = currencyCodeFrontMatch[0].trim(); // trim possible trailing space\n\n // Replace currency code with symbol if whitelisted.\n const overrideObj = symbolOverrides[code];\n if (\n overrideObj &&\n overrideObj.location.start &&\n overrideObj.forLocales[locale]\n ) {\n return formattedCurrency.replace(\n currencyCodeFrontMatch[0],\n supportedCurrencySymbols[code]\n );\n } else {\n return formattedCurrency;\n }\n }\n\n // If currency code is at the back\n const currencyCodeBackMatch = formattedCurrency.match(/[A-Z]{3}$/);\n if (currencyCodeBackMatch != null) {\n const code = currencyCodeBackMatch[0];\n\n // Replace currency code with symbol if whitelisted.\n const overrideObj = symbolOverrides[code];\n if (\n overrideObj &&\n overrideObj.location.end &&\n overrideObj.forLocales[locale]\n ) {\n return formattedCurrency.replace(code, supportedCurrencySymbols[code]);\n } else {\n return formattedCurrency;\n }\n }\n\n return formattedCurrency;\n }\n\n // Generates a formatter from Intl.NumberFormat\n function generateIntlNumberFormatter(isoCode, locale, numDecimals, numSigFig) {\n try {\n const params = {\n style: \"currency\",\n currency: isoCode,\n currencyDisplay: \"symbol\",\n };\n if (numDecimals !== undefined) {\n params.minimumFractionDigits = numDecimals;\n params.maximumFractionDigits = numDecimals;\n } else if (numSigFig !== undefined) {\n params.maximumSignificantDigits = numSigFig;\n }\n return new Intl.NumberFormat(locale, params);\n } catch (e) {\n // Unsupported currency, etc.\n // Use primitive fallback\n return generateFallbackFormatter(isoCode, locale, numDecimals);\n }\n }\n\n // Generates a primitive fallback formatter with no symbol support.\n function generateFallbackFormatter(isoCode, locale, numDecimals = 2) {\n isoCode = isoCode.toUpperCase();\n\n if (numDecimals > 2) {\n return {\n format: (value) => {\n return isCrypto(isoCode)\n ? `${value.toFixed(numDecimals)} ${isoCode}`\n : `${isoCode} ${value.toFixed(numDecimals)}`;\n },\n };\n } else {\n return {\n format: (value) => {\n return isCrypto(isoCode)\n ? `${value.toLocaleString(locale)} ${isoCode}`\n : `${isoCode} ${value.toLocaleString(locale)}`;\n },\n };\n }\n }\n\n function generateAbbreviatedFormatter(isoCode, locale) {\n // Show regular numbers if no Intl.NumberFormat support.\n if (!IntlNumberFormatSupported()) {\n return generateFallbackFormatter(isoCode, locale, 0);\n }\n\n let numberFormatOptions = { style: \"decimal\", notation: \"compact\", minimumFractionDigits: 0, maximumFractionDigits: 3 };\n\n // Currency symbol is supported if currency is Fiat/BTC/ETH.\n if (!isCrypto(isoCode) || isBTCETH(isoCode)) {\n numberFormatOptions.style = \"currency\";\n numberFormatOptions.currency = isoCode;\n }\n\n return new Intl.NumberFormat(locale, numberFormatOptions);\n }\n\n function generateFormatter(isoCode, locale, numDecimals, numSigFig) {\n const isNumberFormatSupported = IntlNumberFormatSupported();\n\n const useIntlNumberFormatter =\n isNumberFormatSupported && (!isCrypto(isoCode) || isBTCETH(isoCode));\n return useIntlNumberFormatter\n ? generateIntlNumberFormatter(isoCode, locale, numDecimals, numSigFig)\n : generateFallbackFormatter(isoCode, locale, numDecimals);\n }\n\n // State variables\n let currentISOCode;\n let currentLocale;\n let currencyFormatterNormal;\n let currencyFormatterNoDecimal;\n let currencyFormatterMedium;\n let currencyFormatterTwoDecimal;\n let currencyFormatterSmall;\n let currencyFormatterVerySmall;\n let currencyFormatterVeryVerySmall;\n let currencyFormatter15DP;\n let currencyFormatter18DP;\n let currencyFormatterAbbreviated;\n\n // If a page has to display multiple currencies, formatters would have to be created for each of them\n // To save some effort, we save formatters for reuse\n let formattersCache = {};\n\n function clearCache() {\n formattersCache = {};\n }\n\n function initializeFormatters(isoCode, locale) {\n const cacheKey = `${isoCode}-${locale}`;\n const cachedFormatter = formattersCache[cacheKey];\n\n currencyFormatterNormal = cachedFormatter\n ? cachedFormatter.currencyFormatterNormal\n : generateFormatter(isoCode, locale);\n currencyFormatterNoDecimal = cachedFormatter\n ? cachedFormatter.currencyFormatterNoDecimal\n : generateFormatter(isoCode, locale, 0);\n currencyFormatterMedium = cachedFormatter\n ? cachedFormatter.currencyFormatterMedium\n : generateFormatter(isoCode, locale, 3);\n currencyFormatterTwoDecimal = cachedFormatter\n ? cachedFormatter.currencyFormatterTwoDecimal\n : generateFormatter(isoCode, locale, 2);\n currencyFormatterSmall = cachedFormatter\n ? cachedFormatter.currencyFormatterSmall\n : generateFormatter(isoCode, locale, 6);\n currencyFormatterVerySmall = cachedFormatter\n ? cachedFormatter.currencyFormatterVerySmall\n : generateFormatter(isoCode, locale, 8);\n currencyFormatterVeryVerySmall = cachedFormatter\n ? cachedFormatter.currencyFormatterVeryVerySmall\n : generateFormatter(isoCode, locale, 12);\n currencyFormatter15DP = cachedFormatter\n ? cachedFormatter.currencyFormatter15DP\n : generateFormatter(isoCode, locale, 15);\n currencyFormatter18DP = cachedFormatter\n ? cachedFormatter.currencyFormatter18DP\n : generateFormatter(isoCode, locale, 18);\n currencyFormatterAbbreviated = cachedFormatter\n ? cachedFormatter.currencyFormatterAbbreviated\n : generateAbbreviatedFormatter(isoCode, locale);\n\n // Save in cache\n if (cachedFormatter == null) {\n formattersCache[cacheKey] = {};\n formattersCache[cacheKey].currencyFormatterNormal = currencyFormatterNormal;\n formattersCache[cacheKey].currencyFormatterNoDecimal = currencyFormatterNoDecimal;\n formattersCache[cacheKey].currencyFormatterMedium = currencyFormatterMedium;\n formattersCache[cacheKey].currencyFormatterTwoDecimal = currencyFormatterTwoDecimal;\n formattersCache[cacheKey].currencyFormatterSmall = currencyFormatterSmall;\n formattersCache[cacheKey].currencyFormatterVerySmall = currencyFormatterVerySmall;\n formattersCache[cacheKey].currencyFormatterVeryVerySmall = currencyFormatterVeryVerySmall;\n formattersCache[cacheKey].currencyFormatter15DP = currencyFormatter15DP;\n formattersCache[cacheKey].currencyFormatter18DP = currencyFormatter18DP;\n formattersCache[cacheKey].currencyFormatterAbbreviated = currencyFormatterAbbreviated;\n }\n }\n\n // Moderate crypto amount threshold\n const MEDIUM_CRYPTO_THRESHOLD = 50;\n // Large crypto amount threshold\n const LARGE_CRYPTO_THRESHOLD = 1000;\n // No decimal threshold for large amounts\n const NO_DECIMAL_THRESHOLD = 100000;\n\n function formatCurrency(\n amount,\n isoCode,\n locale = \"en\",\n raw = false,\n noDecimal = false,\n abbreviated = false,\n ) {\n isoCode = isoCode.toUpperCase();\n let maximumDecimalTrailingZeroes = undefined;\n\n if (currentISOCode !== isoCode || currentLocale != locale) {\n currentISOCode = isoCode;\n currentLocale = locale;\n\n // Formatters are tied to currency code, we try to initialize as infrequently as possible.\n initializeFormatters(isoCode, locale);\n }\n\n if (abbreviated) {\n let formattedAbbreviatedCurrency = currencyFormatterAbbreviated.format(amount);\n\n // Manually add currency code to the back for non-BTC/ETH crypto currencies.\n if (isCrypto(isoCode) && !isBTCETH(isoCode)) {\n formattedAbbreviatedCurrency = `${formattedAbbreviatedCurrency} ${isoCode}`;\n }\n\n return formatCurrencyOverride(formattedAbbreviatedCurrency, locale);\n }\n\n if (noDecimal === true && amount > 100.0) {\n return formatCurrencyOverride(\n currencyFormatterNoDecimal.format(amount),\n locale\n );\n } else if (typeof noDecimal === \"object\" && noDecimal !== null) {\n if (raw) {\n // Limit to max n decimal places if applicable\n let raw_amount = noDecimal.hasOwnProperty(\"decimalPlaces\")\n ? amount.toFixed(noDecimal.decimalPlaces)\n : amount;\n // Round off to number of significant figures without trailing 0's\n return `${parseFloat(raw_amount).toPrecision(noDecimal.significantFigures) / 1}`;\n }\n\n if (noDecimal.hasOwnProperty(\"maximumDecimalTrailingZeroes\")) {\n maximumDecimalTrailingZeroes = noDecimal.maximumDecimalTrailingZeroes;\n }\n\n if (noDecimal.hasOwnProperty(\"decimalPlaces\") && noDecimal.hasOwnProperty(\"significantFigures\")) {\n // Show specified number of significant digits with cutoff of specified fraction digits\n const currencyFormatterCustom = generateFormatter(\n isoCode,\n locale,\n undefined,\n noDecimal.significantFigures\n );\n\n return formatCurrencyOverride(\n currencyFormatterCustom.format(\n Number.parseFloat(amount.toFixed(noDecimal.decimalPlaces))\n ),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (noDecimal.hasOwnProperty(\"decimalPlaces\") || noDecimal.hasOwnProperty(\"significantFigures\")) {\n const currencyFormatterCustom = generateFormatter(\n isoCode,\n locale,\n noDecimal.decimalPlaces,\n noDecimal.significantFigures\n );\n\n return formatCurrencyOverride(\n currencyFormatterCustom.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n }\n }\n\n if (isCrypto(isoCode)) {\n let price = parseFloat(amount);\n\n if (raw) {\n if (amount === 0.0) {\n return price.toFixed(2);\n }\n return price.toPrecision(8);\n }\n\n if (amount === 0.0) {\n return formatCurrencyOverride(\n currencyFormatterNormal.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (price >= LARGE_CRYPTO_THRESHOLD) {\n // Large crypto amount, show no decimal value\n return formatCurrencyOverride(\n currencyFormatterNoDecimal.format(amount),\n locale\n );\n } else if (\n price >= MEDIUM_CRYPTO_THRESHOLD &&\n price < LARGE_CRYPTO_THRESHOLD\n ) {\n // Medium crypto amount, show 3 fraction digits\n return formatCurrencyOverride(\n currencyFormatterMedium.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (price >= 1.0 && price < MEDIUM_CRYPTO_THRESHOLD) {\n // crypto amount, show 6 fraction digits\n return formatCurrencyOverride(\n currencyFormatterSmall.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (price >= 0.000001 && price < 1.0) {\n // crypto amount, show 8 fraction digits\n return formatCurrencyOverride(\n currencyFormatterVerySmall.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (price >= 10**-9 && price < 10**-6) {\n return formatCurrencyOverride(\n currencyFormatterVeryVerySmall.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (price >= 10**-12 && price < 10**-9) {\n return formatCurrencyOverride(\n currencyFormatter15DP.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (price < 10**-12) {\n return formatCurrencyOverride(\n currencyFormatter18DP.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n }\n } else {\n const unsigned_amount = Math.abs(amount);\n if (raw) {\n if (unsigned_amount < 10**-12) {\n return amount.toFixed(18);\n } else if (unsigned_amount < 10**-9) {\n return amount.toFixed(15);\n } else if (unsigned_amount < 10**-6) {\n return amount.toFixed(12);\n } else if (unsigned_amount < 10**-3) {\n return amount.toFixed(8);\n } else if (unsigned_amount < 1.0) {\n return amount.toFixed(6);\n } else {\n return amount.toFixed(2);\n }\n }\n\n if (unsigned_amount === 0.0) {\n return formatCurrencyOverride(\n currencyFormatterNormal.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (unsigned_amount < 10**-12) {\n return formatCurrencyOverride(\n currencyFormatter18DP.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (unsigned_amount < 10**-9) {\n return formatCurrencyOverride(\n currencyFormatter15DP.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (unsigned_amount < 10**-6) {\n return formatCurrencyOverride(\n currencyFormatterVeryVerySmall.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (unsigned_amount < 0.05) {\n return formatCurrencyOverride(\n currencyFormatterVerySmall.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (unsigned_amount < 1.0) {\n return formatCurrencyOverride(\n currencyFormatterSmall.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (isoCode === \"JPY\" && unsigned_amount < 100) {\n return formatCurrencyOverride(\n currencyFormatterTwoDecimal.format(amount),\n locale,\n maximumDecimalTrailingZeroes\n );\n } else if (unsigned_amount > NO_DECIMAL_THRESHOLD) {\n return formatCurrencyOverride(\n currencyFormatterNoDecimal.format(amount),\n locale\n );\n } else {\n // Let the formatter do what it seems best. In particular, we should not set any fraction amount for Japanese Yen\n return formatCurrencyOverride(\n currencyFormatterNormal.format(amount),\n locale\n );\n }\n }\n }\n\n exports.clearCache = clearCache;\n exports.formatCurrency = formatCurrency;\n exports.isCrypto = isCrypto;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z\"\n}), 'Info');","import { __read } from \"tslib\";\nimport dayjs from 'dayjs';\nimport { useEffect, useMemo, useState } from 'react';\nimport useLatest from '../useLatest';\nimport { isNumber } from '../utils/index';\nvar calcLeft = function (target) {\n if (!target) {\n return 0;\n }\n // https://stackoverflow.com/questions/4310953/invalid-date-in-safari\n var left = dayjs(target).valueOf() - Date.now();\n return left < 0 ? 0 : left;\n};\nvar parseMs = function (milliseconds) {\n return {\n days: Math.floor(milliseconds / 86400000),\n hours: Math.floor(milliseconds / 3600000) % 24,\n minutes: Math.floor(milliseconds / 60000) % 60,\n seconds: Math.floor(milliseconds / 1000) % 60,\n milliseconds: Math.floor(milliseconds) % 1000\n };\n};\nvar useCountdown = function (options) {\n if (options === void 0) {\n options = {};\n }\n var _a = options || {},\n leftTime = _a.leftTime,\n targetDate = _a.targetDate,\n _b = _a.interval,\n interval = _b === void 0 ? 1000 : _b,\n onEnd = _a.onEnd;\n var memoLeftTime = useMemo(function () {\n return isNumber(leftTime) && leftTime > 0 ? Date.now() + leftTime : undefined;\n }, [leftTime]);\n var target = 'leftTime' in options ? memoLeftTime : targetDate;\n var _c = __read(useState(function () {\n return calcLeft(target);\n }), 2),\n timeLeft = _c[0],\n setTimeLeft = _c[1];\n var onEndRef = useLatest(onEnd);\n useEffect(function () {\n if (!target) {\n // for stop\n setTimeLeft(0);\n return;\n }\n // 立即执行一次\n setTimeLeft(calcLeft(target));\n var timer = setInterval(function () {\n var _a;\n var targetLeft = calcLeft(target);\n setTimeLeft(targetLeft);\n if (targetLeft === 0) {\n clearInterval(timer);\n (_a = onEndRef.current) === null || _a === void 0 ? void 0 : _a.call(onEndRef);\n }\n }, interval);\n return function () {\n return clearInterval(timer);\n };\n }, [target, interval]);\n var formattedRes = useMemo(function () {\n return parseMs(timeLeft);\n }, [timeLeft]);\n return [timeLeft, formattedRes];\n};\nexport default useCountdown;"],"names":["factory","exports","currentISOCode","currentLocale","currencyFormatterNormal","currencyFormatterNoDecimal","currencyFormatterMedium","currencyFormatterTwoDecimal","currencyFormatterSmall","currencyFormatterVerySmall","currencyFormatterVeryVerySmall","currencyFormatter15DP","currencyFormatter18DP","currencyFormatterAbbreviated","supportedCurrencySymbols","BTC","ETH","USD","CAD","GBP","EUR","CHF","SEK","JPY","CNY","INR","RUB","AUD","HKD","SGD","TWD","BRL","KRW","ZAR","MYR","IDR","NZD","MXN","PHP","DKK","PLN","AED","ARS","CLP","CZK","HUF","ILS","KWD","LKR","NOK","PKR","SAR","THB","TRY","XAU","XAG","XDR","symbolOverrides","location","start","forLocales","en","IntlNumberFormatSupported","Intl","NumberFormat","isBTCETH","isoCode","isCrypto","formatCurrencyOverride","formattedCurrency","locale","maximumDecimalTrailingZeroes","decimalTrailingZeroesToExponent","decimalTrailingZeroesPattern","replace","_match","separator","decimalTrailingZeroes","length","currencyCodeFrontMatch","match","code","trim","overrideObj","currencyCodeBackMatch","end","generateFallbackFormatter","numDecimals","toUpperCase","format","value","toFixed","toLocaleString","generateFormatter","numSigFig","isNumberFormatSupported","useIntlNumberFormatter","generateIntlNumberFormatter","params","style","currency","currencyDisplay","undefined","minimumFractionDigits","maximumFractionDigits","maximumSignificantDigits","e","formattersCache","clearCache","formatCurrency","amount","raw","noDecimal","abbreviated","initializeFormatters","cacheKey","cachedFormatter","generateAbbreviatedFormatter","numberFormatOptions","notation","formattedAbbreviatedCurrency","parseFloat","hasOwnProperty","decimalPlaces","toPrecision","significantFigures","currencyFormatterCustom","Number","price","unsigned_amount","Math","abs","Object","defineProperty","_interopRequireDefault","__webpack_require__","Z","_createSvgIcon","_jsxRuntime","default","jsx","d","calcLeft","target","left","dayjs__WEBPACK_IMPORTED_MODULE_0___default","valueOf","Date","now","__webpack_exports__","options","_a","leftTime","targetDate","_b","interval","onEnd","memoLeftTime","react__WEBPACK_IMPORTED_MODULE_1__","useMemo","_utils_index__WEBPACK_IMPORTED_MODULE_2__","hj","_c","tslib__WEBPACK_IMPORTED_MODULE_3__","CR","useState","timeLeft","setTimeLeft","onEndRef","_useLatest__WEBPACK_IMPORTED_MODULE_4__","useEffect","timer","setInterval","targetLeft","clearInterval","current","call","formattedRes","days","floor","milliseconds","hours","minutes","seconds"],"sourceRoot":""}