{"version":3,"file":"756.9710671f1e520902.js","mappings":"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","names":["BannerInfoList","id","title","description","imgName","imgMobileName","button","i0","routes","path","component","PortfolioComponent","BaseComponent","constructor","modalService","translate","walletService","cryptoUserService","statsService","indexService","agreementService","router","googleAnalyticsService","settingService","eventService","facebookAnalyticsService","super","this","environment","indexType","IndexType","IndexModel","Big","slides","perView","spacing","t","getFullBalance","type","isMobile","window","innerWidth","onresize","ngOnInit","setLoading","initVarData","Promise","all","refreshStats","refreshBalance","refreshGasLimits","getWalletAddressInfo","getIndexInfo","getUserDividendsTotalSumAsync","getUserDividendsTotalSumForLastWeekAsync","getUserAvailableDividendsSumAsync","getIndexesInfoByType","getPresaleIndexesInfoByType","getProfitSumByType","ProfitType","getTwitterNickname","finally","setIndexInfo","gasLimit","getOperationGasLimit","WithdrawCommission","createTwitterTimeline","loadVideo","addBanners","setInterval","currentBanner","userBanners","length","getCryptoUser","user","get","CryptoUserModel","isAutoCompoundEnabled","balance","gasPrice","getStats","StatsModel","getTransFee","mul","div","gwei","getTotalBalance","ripeBalance","getRipeBalance","fullBalanceBig","add","getTransFeeUsdt","MathCeilingBig","eth2usd","usdtToUsd","ripeToUsdt","MathFloorBig","Object","values","indexesDict","forEach","index","indexPriceDict","indexBalance","tokenName","assetsIndexes","push","availableIndexes","investmentsInIndex","availableIndexInfo","map","key","presales","presaleIndexesDict","assetsPresale","userInvestedSum","assetsIndexInfo","assetsPresaleInfo","hasAssets","then","resp","allDividendsSum","defaultRound","data","usdRoundDecimals","catch","e","showResponseError","daysCount","allDividendsSumForlastWeek","getUserAvailableDividends","availableDividendsSum","getGrowthPercent","growthPercent","ex","getInfo","walletAddress","showDepositModal","modalRef","open","DepositModal","backdropClass","centered","windowClass","componentInstance","pushEvent","trackEvent","showSurveyModal","HeaderButtonSurveyEvent","emit","navigateToIndexPage","isPresale","indexTypeLabels","find","item","value","indexNameToUrl","label","toLowerCase","replace","navigateByUrl","response","totalProfitSum","checkNeedAgreement","checkHasAgreed","showAgreementModal","result","createNewAgreement","switchView","selectedView","twitterNickname","loadScript","element","document","getElementById","twitterWidgetInterval","twttr","widgets","createTimeline","sourceType","screenName","theme","cards","chrome","height","clearInterval","twitterLoaded","videoPlaceholder","videoElement","createElement","classList","muted","loop","playsInline","sourceElement","src","apiUrl","appendChild","addEventListener","parentElement","closest","remove","isCurrentShownViewport","isInViewport","rect","getBoundingClientRect","top","left","right","documentElement","clientWidth","innerHeight","isPreviousInViewport","play","pause","handleHideBanner","setHideMainBanner","refresh","showDepositInfo","showInfo","showAutoCompoundInfo","autoCompoundText","handleAutoCompoundEnabled","setAutoCompoundEnabled","navigateTab","route","showBannerAction","banner","isVerified","banners","core","selectors","ctx","canActivate","SecureInnerPagesGuard","PortfolioRoutingModule","RouterModule","PortfolioModule","CommonModule","SharedModule","CarouselModule","FormsModule","RoundPipe","transform","precision","undefined","str","toString","includes","exponent","split","Math","pow","toFixed","pure"],"sourceRoot":"webpack:///","sources":["./src/app/shared/constants/bannersInfo.ts","./src/app/components/portfolio/portfolio.component.html","./src/app/components/portfolio/portfolio-routing.module.ts","./src/app/components/portfolio/portfolio.component.ts","./src/app/components/portfolio/portfolio.module.ts","./src/app/shared/constants/indexType.ts","./src/app/shared/pipes/round.pipe.ts"],"sourcesContent":["export var BannerInfoList = [\r\n { \r\n id: 1,\r\n title: \"First steps\",\r\n description: \"Let's pick up the right index for you\",\r\n imgName: \"coins-background.png\",\r\n imgMobileName: \"coins-bottom-background.png\",\r\n button: 'buttons.getStarted'\r\n },\r\n {\r\n id: 2,\r\n title: \"First steps\",\r\n description: \"Complete a quick KYC to get started\",\r\n imgName: \"coins-background.png\",\r\n imgMobileName: \"coins-bottom-background.png\",\r\n button: 'buttons.verifyIdentity'\r\n },\r\n { \r\n id: 3,\r\n title: \"Presale\",\r\n description: \"Become a part of the music community\",\r\n imgName: \"presale-banner.png\",\r\n imgMobileName: \"presale-banner.png\",\r\n button: 'buttons.getStarted'\r\n },\r\n];","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ userBanners[currentBanner].title }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ userBanners[currentBanner].description }}\r\n
\r\n
\r\n \r\n
{{ userBanners[currentBanner].button | lang }}
\r\n \r\n \r\n
\r\n
1\" class=\"col-auto d-flex justify-content-end\">\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'Total account value' | lang}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ${{ getTotalBalance() | round: 1e2 }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{{'Total rewards' | lang}}
\r\n
\r\n ${{allDividendsSum | round: 1e2}}\r\n
\r\n
\r\n\r\n
\r\n
{{'Rewards for last week' | lang}}
\r\n
\r\n ${{allDividendsSumForlastWeek | round: 1e2}}\r\n
\r\n
\r\n\r\n
\r\n
{{'Referral earnings' | lang}}
\r\n
\r\n ${{totalProfitSum}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
{{'Auto Compound' | lang}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{ index.title | lang}}
\r\n
\r\n
\r\n
${{investmentsInIndex[index.indexType] | round: 1e2 }}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{ index.title | lang}}
\r\n
{{ 'Presale' | lang}}
\r\n
\r\n
\r\n
${{ index.userInvestedSum | round: 1e2 }}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{'My assets' | lang}}
\r\n
\r\n
\r\n
{{ index.title | lang}}
\r\n
\r\n
\r\n
${{investmentsInIndex[index.indexType] | round: 1e2 }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{ index.title | lang}}
\r\n
{{ 'Presale' | lang}}
\r\n
\r\n
\r\n
${{ index.userInvestedSum | round: 1e2 }}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'Top up your wallet' | lang}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ 'Our platform accepts USDT and USDC on Arbitrum and ERC-20 networks.' | lang}}\r\n
\r\n
\r\n {{ 'You can send crypto from your external wallet or swap any cryptocurrency to USDT on Arbitrum using our platform.' | lang}}\r\n
\r\n
\r\n
\r\n
\r\n {{ 'We recommend using Arbitrum network for lower transaction fees.' | lang}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{'Featured products' | lang}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'Our selection of the most relevant and profitable products for you' | lang}}\r\n
\r\n
\r\n \r\n \r\n \r\n
0\" class=\"row noselect\">\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
0\" class=\"row mt-1\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{ index.title | lang}}
\r\n
{{ index.shortTextContent | lang}}
\r\n
\r\n
\r\n
\r\n
{{'up to' | lang}} {{index.apy | round: 1e2 }}% {{'APY' | lang}}
\r\n
\r\n
\r\n
\r\n
{{'riskLevel.' + index.riskLevel | lang}}
\r\n
\r\n
\r\n
\r\n
{{ 'Min investment' | lang}} ${{ index.minInvestment }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"row mt-1\">\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ index.title | lang}}\r\n
\r\n
\r\n
\r\n
{{ index.shortTextContent | lang}}
\r\n
\r\n
\r\n
\r\n
{{'APY' | lang}}
\r\n
{{ 'up to' | lang}} {{index.apy}}%
\r\n
\r\n
\r\n
{{'Risk' | lang}}
\r\n
{{ 'riskLevel.' + index.riskLevel | lang}}
\r\n
\r\n
\r\n
{{'Min investment' | lang}}
\r\n
${{ index.minInvestment }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{ 'Socials' | lang}}
\r\n
{{ 'Get to know us' | lang}}
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { SecureInnerPagesGuard } from 'src/app/shared/guard';\r\nimport { PortfolioComponent } from './portfolio.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PortfolioComponent,\r\n canActivate: [SecureInnerPagesGuard]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class PortfolioRoutingModule { }\r\n","import { Component, OnInit, } from '@angular/core';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BaseComponent } from 'src/app/shared/component/base/base.component';\r\nimport { CryptoUserModel, IndexFilterModel, IndexModel, ModalInfoModel, StatsModel } from 'src/app/shared/model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CryptoUserService, EventService, IndexService, SettingService, StatsService, WalletService } from 'src/app/shared/services';\r\nimport { DepositModal } from 'src/app/shared/component/modals/deposit-modal';\r\nimport Big from 'big.js';\r\nimport { IndexType, ProfitType } from 'src/app/shared/enums';\r\nimport { Router } from '@angular/router';\r\nimport { IndexInfoByTypeDict, WithdrawCommission } from 'src/app/shared/constants';\r\nimport { AgreementService } from 'src/app/shared/services/agreement.service';\r\nimport { GoogleAnalyticsService } from 'src/app/shared/services/google-analytics.service';\r\nimport { indexType } from 'src/app/shared/constants/indexType';\r\nimport { environment } from 'src/environments/environment';\r\nimport { FacebookAnalyticsService } from 'src/app/shared/services/facebook-analytics.service';\r\nimport { BannerInfoList } from 'src/app/shared/constants/bannersInfo';\r\n\r\n@Component({\r\n selector: 'app-portfolio',\r\n templateUrl: './portfolio.component.html',\r\n styleUrls: ['./portfolio.component.scss']\r\n})\r\nexport class PortfolioComponent extends BaseComponent implements OnInit {\r\n modalRef: NgbModalRef;\r\n apiUrl = environment.apiUrl;\r\n indexTypeLabels = indexType;\r\n indexType = IndexType;\r\n growthPercent: number = 0;\r\n walletAddress: string = \"\";\r\n index: IndexModel = new IndexModel();\r\n gasLimit = new Big(0);\r\n selectedView = \"cards\";\r\n\r\n getCryptoUser: () => CryptoUserModel;\r\n balance: () => number;\r\n gasPrice: () => Big;\r\n getStats: () => StatsModel;\r\n getTransFee: () => Big;\r\n getFullBalance: (type: string) => number;\r\n getRipeBalance: () => Big;\r\n getTotalBalance: () => Big; // usdt на балансе + стоимость имеющихся токенов\r\n getTransFeeUsdt: () => Big;\r\n\r\n availableIndexes = [];\r\n assetsIndexes = [];\r\n assetsIndexInfo = [];\r\n hasAssets: boolean = false;\r\n availableIndexInfo = [];\r\n investmentsInIndex: { [indexType: number]: number; } = {}; // key - indexId, value - investments\r\n indexPriceDict: { [indexType: number]: number; } = {}; // key - indexId, value - price\r\n allDividendsSum: Big;\r\n allDividendsSumForlastWeek: Big;\r\n availableDividendsSum: Big;\r\n totalProfitSum: Big;\r\n totalAccountValue: Big; // сколько дивов выплачено + сумма инвестиций (на сколько юзер купил токенов)\r\n indexesDict: IndexInfoByTypeDict = null;\r\n twitterNickname: string = \"\";\r\n twitterLoaded: boolean = false;\r\n twitterWidgetInterval: any = {};\r\n isMobile: boolean;\r\n modalBgSrc = \"assets/images/coins-background-mobile.png\";\r\n isPreviousInViewport: boolean = false;\r\n autoCompoundText = \"Auto-compound automatically reinvests your weekly royalties to maximize your returns over time.\";\r\n isAutoCompoundEnabled: boolean = false;\r\n assetsPresaleInfo = [];\r\n presaleIndexesDict: IndexInfoByTypeDict = null;\r\n\r\n currentBanner: number = 0;\r\n banners = BannerInfoList;\r\n userBanners = [];\r\n public assetsCarouselBreakpoints: any = {\r\n \"(max-width: 750px)\": {\r\n slides: { perView: 1, spacing: 20 },\r\n },\r\n \"(min-width: 750px) and (max-width: 990px)\": {\r\n slides: { perView: 2, spacing: 20 },\r\n },\r\n \"(min-width: 990px) and (max-width: 1280px)\": {\r\n slides: { perView: 2, spacing: 20 },\r\n },\r\n \"(min-width: 1281px) and (max-width: 1399px)\": {\r\n slides: { perView: 2, spacing: 20 },\r\n },\r\n \"(min-width: 1400px)\": {\r\n slides: { perView: 1, spacing: 20 },\r\n }\r\n };\r\n constructor(\r\n private modalService: NgbModal,\r\n private translate: TranslateService,\r\n private walletService: WalletService,\r\n private cryptoUserService: CryptoUserService,\r\n private statsService: StatsService,\r\n private indexService: IndexService,\r\n private agreementService: AgreementService,\r\n private router: Router,\r\n private googleAnalyticsService: GoogleAnalyticsService,\r\n private settingService: SettingService,\r\n private eventService: EventService,\r\n private facebookAnalyticsService: FacebookAnalyticsService,\r\n ) {\r\n super(translate, modalService);\r\n let t = this;\r\n\r\n t.getFullBalance = (type) => {\r\n return t.walletService.getFullBalance(type);\r\n };\r\n\r\n t.isMobile = window.innerWidth < 570;\r\n window.onresize = () => {\r\n t.isMobile = window.innerWidth < 570;\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n let t = this;\r\n t.setLoading(true);\r\n\r\n t.initVarData();\r\n\r\n Promise.all([\r\n t.statsService.refreshStats(),\r\n t.walletService.refreshBalance(),\r\n t.walletService.refreshGasLimits(),\r\n // t.getGrowthPercent(),\r\n t.getWalletAddressInfo(),\r\n t.getIndexInfo(),\r\n t.getUserDividendsTotalSumAsync(),\r\n t.getUserDividendsTotalSumForLastWeekAsync(),\r\n t.getUserAvailableDividendsSumAsync(),\r\n t.getIndexesInfoByType(IndexType.Any),\r\n t.getPresaleIndexesInfoByType(IndexType.Any),\r\n t.getProfitSumByType(ProfitType.RipeToken),\r\n t.getTwitterNickname()\r\n ])\r\n .finally(async () => {\r\n try {\r\n t.setIndexInfo();\r\n }\r\n finally {\r\n t.gasLimit = new Big(await t.walletService.getOperationGasLimit(WithdrawCommission.SellRipeToken));\r\n t.setLoading(false);\r\n t.createTwitterTimeline();\r\n t.loadVideo();\r\n }\r\n });\r\n\r\n t.addBanners();\r\n setInterval(() => {\r\n t.currentBanner = (t.currentBanner + 1) % t.userBanners.length;\r\n }, 3000);\r\n }\r\n\r\n initVarData() {\r\n let t = this;\r\n t.getCryptoUser = () => {\r\n let user = t.cryptoUserService.get() ?? new CryptoUserModel();\r\n t.isAutoCompoundEnabled = user?.isAutoCompoundEnabled ?? false;\r\n return user;\r\n }\r\n\r\n t.balance = () => {\r\n return t.walletService.getFullBalance(\"USDT\");\r\n }\r\n\r\n t.gasPrice = () => {\r\n return new Big(t.getStats().gasPrice);\r\n };\r\n\r\n t.getStats = () => {\r\n if (!!t.statsService.getStats()) {\r\n return t.statsService.getStats();\r\n }\r\n else return new StatsModel();\r\n };\r\n\r\n t.getTransFee = () => {\r\n return t.gasLimit.mul(t.gasPrice()).div(t.gwei);\r\n };\r\n\r\n t.getTotalBalance = () => {\r\n let ripeBalance = t.getRipeBalance();\r\n let fullBalanceBig = new Big(t.getFullBalance(\"USDT\"));\r\n return !!ripeBalance ? ripeBalance.add(fullBalanceBig) : 0\r\n }\r\n\r\n t.getTransFeeUsdt = () => {\r\n return t.MathCeilingBig(t.getTransFee().mul(t.getStats().eth2usd).div(t.getStats().usdtToUsd), 2);\r\n };\r\n\r\n t.getRipeBalance = () => {\r\n if (!!t.getStats().ripeToUsdt) {\r\n let ripeBalance = t.walletService.getFullBalance(\"RipeToken\");\r\n return t.MathFloorBig(new Big(ripeBalance * t.getStats().ripeToUsdt), 2);\r\n }\r\n return new Big(0);\r\n }\r\n\r\n }\r\n\r\n setIndexInfo() {\r\n let t = this;\r\n // var values = Object.values(IndexesInfo.indexesInfo);\r\n let values = Object.values(t.indexesDict);\r\n\r\n values.forEach(index => {\r\n if (index.indexType == IndexType.RipeIndex)\r\n t.indexPriceDict[IndexType.RipeIndex] = t.getStats().ripeToUsdt;\r\n else\r\n t.indexPriceDict[index.indexType] = 0;\r\n let indexBalance = t.getFullBalance(index.tokenName);\r\n if (!!index.tokenName && indexBalance > 0)\r\n t.assetsIndexes.push(index.indexType);\r\n else\r\n t.availableIndexes.push(index.indexType);\r\n t.investmentsInIndex[index.indexType] = new Big(indexBalance * t.getStats().ripeToUsdt);\r\n });\r\n\r\n t.availableIndexInfo = t.availableIndexes.map(key => t.indexesDict[key]);\r\n\r\n let presales = Object.values(t.presaleIndexesDict);\r\n let assetsPresale = [];\r\n presales.forEach(index => {\r\n if (!!index.title && index.userInvestedSum > 0)\r\n assetsPresale.push(index.indexType);\r\n });\r\n\r\n t.assetsIndexInfo = t.assetsIndexes.map(key => t.indexesDict[key]);\r\n t.assetsPresaleInfo = assetsPresale.map(key => t.presaleIndexesDict[key]);\r\n t.hasAssets = t.assetsIndexInfo.length > 0 || t.assetsPresaleInfo.length > 0;\r\n }\r\n\r\n getUserDividendsTotalSumAsync() {\r\n var t = this;\r\n let filterModel: IndexFilterModel = {\r\n type: IndexType.RipeIndex\r\n }\r\n\r\n return t.indexService.getUserDividendsTotalSumAsync(filterModel)\r\n .then((resp) => {\r\n t.allDividendsSum = new Big(t.defaultRound(resp.data, t.usdRoundDecimals));\r\n })\r\n .catch((e) => {\r\n t.showResponseError(e);\r\n });\r\n }\r\n\r\n getUserDividendsTotalSumForLastWeekAsync() {\r\n var t = this;\r\n let filterModel: IndexFilterModel = {\r\n type: IndexType.RipeIndex,\r\n daysCount: 7\r\n }\r\n return t.indexService.getUserDividendsTotalSumAsync(filterModel)\r\n .then((resp) => {\r\n t.allDividendsSumForlastWeek = new Big(t.defaultRound(resp.data, t.usdRoundDecimals));\r\n })\r\n .catch((e) => {\r\n t.showResponseError(e);\r\n });\r\n }\r\n\r\n getUserAvailableDividendsSumAsync() {\r\n var t = this;\r\n return t.indexService.getUserAvailableDividends(IndexType.RipeIndex)\r\n .then((resp) => {\r\n t.availableDividendsSum = new Big(t.defaultRound(resp.data, t.usdRoundDecimals));\r\n })\r\n .catch((e) => {\r\n t.showResponseError(e);\r\n });\r\n }\r\n\r\n public getGrowthPercent() {\r\n let t = this;\r\n return t.walletService.getGrowthPercent()\r\n .then(resp => {\r\n t.growthPercent = resp.data;\r\n })\r\n .catch(ex => {\r\n t.showResponseError(ex);\r\n })\r\n }\r\n\r\n getIndexInfo(){\r\n var t = this;\r\n return t.indexService.getIndexInfo(IndexType.RipeIndex)\r\n .then((resp) => {\r\n t.index = resp.data;\r\n })\r\n .catch((e) => {\r\n t.showResponseError(e);\r\n });\r\n }\r\n\r\n getWalletAddressInfo() {\r\n var t = this;\r\n return t.walletService.getInfo()\r\n .then((resp) => {\r\n if (!!resp.data) {\r\n t.walletAddress = resp.data;\r\n }\r\n }).catch((e) => {\r\n t.showResponseError(e);\r\n });\r\n }\r\n\r\n public showDepositModal() {\r\n let t = this;\r\n t.modalRef = t.modalService.open(DepositModal,\r\n {\r\n backdropClass: 'light-white-backdrop',\r\n centered: true,\r\n windowClass: 'super-modal-delete-users very-nice-shadow',\r\n });\r\n\r\n t.modalRef.componentInstance.walletAddress = t.walletAddress;\r\n t.googleAnalyticsService.pushEvent('top_up', 'btn_click', 'money');\r\n t.facebookAnalyticsService.trackEvent('Purchase', 'USDT');\r\n }\r\n\r\n public showSurveyModal() {\r\n let t = this;\r\n t.eventService.HeaderButtonSurveyEvent.emit();\r\n }\r\n\r\n public navigateToIndexPage(indexType: IndexType, isPresale: boolean = false){\r\n var t = this;\r\n let type = t.indexTypeLabels.find(item => item.value === indexType);\r\n let indexNameToUrl = type ? type.label.toLowerCase().replace(/\\s/g, '-') : '';\r\n let url = isPresale ? '/presale/' : '/indexes/';\r\n t.router.navigateByUrl(url + indexNameToUrl);\r\n if (indexType == IndexType.RipeIndex){\r\n t.googleAnalyticsService.pushEvent('ripe_growth', 'block_click', 'assets');\r\n t.facebookAnalyticsService.trackEvent('ViewContent', type.label);\r\n }\r\n }\r\n\r\n // метод получающий инфу об индексах в виде словаря\r\n getIndexesInfoByType(type: IndexType) {\r\n let t = this;\r\n return t.indexService.getIndexesInfoByType(type)\r\n .then(response => {\r\n t.indexesDict = response.data;\r\n })\r\n .catch(ex => {\r\n t.showResponseError(ex);\r\n })\r\n }\r\n\r\n // метод получающий инфу об пресейле в виде словаря\r\n getPresaleIndexesInfoByType(type: IndexType) {\r\n let t = this;\r\n return t.indexService.getPresaleIndexesInfoByType(type)\r\n .then(response => {\r\n t.presaleIndexesDict = response.data;\r\n })\r\n .catch(ex => {\r\n t.showResponseError(ex);\r\n })\r\n }\r\n\r\n getProfitSumByType(type: ProfitType) {\r\n let t = this;\r\n return t.walletService.getProfitSumByType(type)\r\n .then(response => {\r\n t.totalProfitSum = new Big(response.data);\r\n })\r\n .catch(ex => {\r\n t.showResponseError(ex);\r\n })\r\n }\r\n\r\n checkNeedAgreement(){\r\n let t = this;\r\n t.agreementService.checkHasAgreed()\r\n .then(resp => {\r\n if (resp.data === false) {\r\n t.showAgreementModal()\r\n .then(result => {\r\n if (result) {\r\n t.agreementService.createNewAgreement(true);\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n switchView() {\r\n let t = this;\r\n t.selectedView = t.selectedView == \"cards\" ? \"list\" : \"cards\";\r\n }\r\n\r\n getTwitterNickname(){\r\n var t = this;\r\n return t.settingService.getTwitterNickname()\r\n .then(resp => {\r\n t.twitterNickname = resp.data.value;\r\n })\r\n }\r\n\r\n createTwitterTimeline(){\r\n var t = this;\r\n if (!t.twitterNickname || t.twitterNickname == \"\") return;\r\n\r\n t.loadScript('twitter').then(()=>\r\n {\r\n var element = document.getElementById(\"twitter-timeline\");\r\n if (element){\r\n t.twitterWidgetInterval = setInterval(function() {\r\n if (!!(window).twttr && !!(window).twttr.widgets) {\r\n try {\r\n (window).twttr.widgets.createTimeline(\r\n {\r\n sourceType: \"profile\",\r\n screenName: t.twitterNickname\r\n },\r\n element,\r\n {\r\n theme: \"dark\",\r\n cards: \"hidden\",\r\n chrome: \"transparent noborders noheader noscrollbar\",\r\n height: \"144\"\r\n }\r\n )\r\n }\r\n catch {\r\n clearInterval(t.twitterWidgetInterval);\r\n return;\r\n }\r\n t.twitterLoaded = true;\r\n clearInterval(t.twitterWidgetInterval);\r\n }\r\n }, 1000);\r\n }\r\n })\r\n\r\n }\r\n\r\n loadVideo() {\r\n let t = this;\r\n // Получаем ссылку на элемент заглушки видео\r\n let videoPlaceholder = document.getElementById('videoPlaceholder');\r\n // Создаем новый элемент video\r\n let videoElement = document.createElement('video');\r\n videoElement.classList.add('video-bg');\r\n videoElement.muted = true;\r\n videoElement.loop = false;\r\n // для айфонов\r\n videoElement.playsInline = true;\r\n\r\n // Создаем источник видео\r\n let sourceElement = document.createElement('source');\r\n sourceElement.src = t.apiUrl + 'images/video/coins_2666.mp4';\r\n sourceElement.type = 'video/mp4';\r\n\r\n // Добавляем источник к видео\r\n videoElement.appendChild(sourceElement);\r\n\r\n // Когда видео загружено, заменяем заглушку видео на настоящее видео\r\n videoElement.addEventListener('loadeddata', () => {\r\n // Находим родительский элемент для заглушки видео\r\n let parentElement = videoPlaceholder.closest('.animate-block');\r\n // Если удалось найти родительский элемент, добавляем видео к нему\r\n if (parentElement) {\r\n // Удаляем заглушку\r\n videoPlaceholder.remove();\r\n // Добавляем видео на страницу\r\n parentElement.appendChild(videoElement);\r\n }\r\n });\r\n\r\n // Обработчик события прокрутки страницы\r\n window.addEventListener('scroll', () => {\r\n\r\n var isCurrentShownViewport = isInViewport(videoElement);\r\n\r\n let rect = videoElement.getBoundingClientRect();\r\n // Проверяем, видим ли блок с видео\r\n if (isCurrentShownViewport) {\r\n if(!t.isPreviousInViewport){\r\n videoElement.play();\r\n }\r\n } else {\r\n // Если блок не видим, останавливаем видео\r\n videoElement.pause();\r\n }\r\n\r\n // TODO: отрефакторить механику отображения анимки\r\n if(!isCurrentShownViewport){\r\n // записываем false в предыдущее значение, если блок полностью не виден\r\n if(window.innerHeight - rect.top < (t.isMobile ? 78 : 0) ) {\r\n t.isPreviousInViewport = isCurrentShownViewport;\r\n }\r\n }\r\n else {\r\n t.isPreviousInViewport = isCurrentShownViewport;\r\n }\r\n });\r\n\r\n // Функция для проверки видимости элемента в поле зрения браузера\r\n function isInViewport(element) {\r\n let rect = element.getBoundingClientRect();\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n && window.innerHeight - rect.top >= 200\r\n );\r\n }\r\n }\r\n\r\n handleHideBanner() {\r\n var t = this;\r\n t.cryptoUserService.setHideMainBanner()\r\n .then((resp) => { if (resp) {\r\n t.cryptoUserService.refresh();\r\n }\r\n })\r\n .catch(e => t.showResponseError(e));\r\n }\r\n\r\n showDepositInfo(){\r\n this.showInfo(\r\n 'Our platform accepts USDT and USDC on Arbitrum and ERC-20 networks.'\r\n + '
You can send crypto from your external wallet or swap any cryptocurrency to USDT on Arbitrum using our platform.'\r\n );\r\n }\r\n\r\n showAutoCompoundInfo(){\r\n this.showInfo(this.autoCompoundText);\r\n }\r\n\r\n handleAutoCompoundEnabled() {\r\n var t = this;\r\n t.cryptoUserService.setAutoCompoundEnabled(t.isAutoCompoundEnabled)\r\n .then((resp) => { if (resp) {\r\n t.cryptoUserService.refresh();\r\n }\r\n })\r\n .catch(e => {\r\n t.showResponseError(e),\r\n t.cryptoUserService.refresh();\r\n });\r\n }\r\n\r\n public navigateTab(route: string){\r\n var t = this;\r\n t.router.navigateByUrl(route);\r\n }\r\n\r\n public showBannerAction(banner: number) {\r\n let t = this;\r\n switch (banner) {\r\n case 1:\r\n t.showSurveyModal();\r\n break;\r\n\r\n case 2:\r\n t.navigateTab('/verification');\r\n break;\r\n\r\n case 3:\r\n t.navigateTab('/presale/electroflow');\r\n break;\r\n }\r\n }\r\n\r\n addBanners() {\r\n let t = this;\r\n t.userBanners.push(t.getCryptoUser().isVerified ? t.banners[0] : t.banners[1]);\r\n t.userBanners.push(t.banners[2]);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PortfolioComponent } from './portfolio.component';\r\nimport { PortfolioRoutingModule } from './portfolio-routing.module';\r\nimport { OnboardingComponent } from './onboarding/onboarding.component';\r\nimport { CarouselModule } from 'src/app/shared/component/carousel/carousel.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n PortfolioComponent,\r\n OnboardingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n PortfolioRoutingModule,\r\n SharedModule,\r\n CarouselModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class PortfolioModule { }\r\n","import { IndexType } from \"../enums\";\r\n\r\nexport var indexType = [\r\n { value: IndexType.Any, label: \"All\" },\r\n { value: IndexType.RipeIndex, label: \"Ripe Index\" },\r\n { value: IndexType.MeritocracyRecords, label: \"Meritocracy Records\" },\r\n { value: IndexType.ClassicalMusic, label: \"Classical Music\" },\r\n // { value: IndexType.Uprising, label: \"Uprising\" },\r\n // { value: IndexType.PopFavs, label: \"Pop favs\" }\r\n { value: IndexType.Electroflow, label: \"Electroflow\" },\r\n\r\n];\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BaseComponent } from '../component/base/base.component';\r\n\r\n@Pipe({name: 'round'})\r\nexport class RoundPipe extends BaseComponent implements PipeTransform {\r\n transform(value: number, precision: number): number | string {\r\n if (value != null && value != undefined){\r\n const str = value.toString();\r\n if (str.includes('e') && str.includes('-')) {\r\n const exponent = +str.split('-')[1];\r\n if (precision >= Math.pow(10, exponent))\r\n return this.defaultRound(value, precision).toFixed(exponent);\r\n }\r\n return this.defaultRound(value, precision);\r\n }\r\n \r\n }\r\n}"],"x_google_ignoreList":[]}