{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/components/card-info/card-info.component.ts","webpack:///src/app/components/card-info/card-info.component.html","webpack:///src/app/components/card-recommendation/card-recommendation.component.ts","webpack:///src/app/components/card-recommendation/card-recommendation.component.html","webpack:///src/app/components/desired-credit-limit/desired-credit-limit.component.ts","webpack:///src/app/components/desired-credit-limit/desired-credit-limit.component.html","webpack:///src/app/components/recommendation/recommendation.component.ts","webpack:///src/app/components/recommendation/recommendation.component.html","webpack:///src/configurations/configurations.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///src/shared/services/calculator/calculator.service.ts","webpack:///src/shared/services/card/card.service.ts","webpack:///src/shared/services/formatting/formatting.service.ts","webpack:///src/shared/services/http.service.ts","webpack:///src/shared/services/sharingData/sharing-data.service.ts","webpack:///src/shared/services/translation/translating-data.service.ts","webpack:///src/shared/services/validation/validation.service.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","routes","path","component","redirectTo","pathMatch","AppRoutingModule","forRoot","imports","AppComponent","title","fullYear","Date","getFullYear","LanguageClass","$localize","DirectionClass","currentDate","selector","templateUrl","styleUrls","init","translatingDataService","sharingDataService","retrieveTranslatedData","minimumPaymtCalSharedData","TranslatedData","getTranlateddata","AppModule","provide","useFactory","deps","multi","declarations","providers","bootstrap","CardInfoComponent","cardService","calculatorService","router","datePipe","CalculationDateInfoAr","CalculationDateInfoEn","date","CalculationDate","transform","getLanguage","getConfigDetails","getMinimumPaymtCalSharedData","getAPR","language","toLowerCase","trim","CalculationDateInfo","replace","translatedData","configurations","getConfigInfo","SelectedCard","aprInputData","MinPayment","MurabahaRate","UserEnteredAmount","DesiredCreditLimit","CalculatedAnnualFee","url","calDataGetReq","Body","calculateAPR","isSuccess","errorMessage","ErrorList","find","Id","Text","getDataCalculatorPage","subscribe","data","ErrorCode","balancePayOff","NumberOfMonths","toString","aprValue","AprValue","selectedCard","Name","minPayment","MinPaymentPer","tawarruqFee","cardImgUrl","SelectionImage","creditLimit","CardCurrency","annualFee","AnnualFee","calculatedAnnualFee","err","Nationality","MonthlyIncome","navigate","CardRecommendationComponent","recommendedCards","nationality","monthlyIncome","incomeUSD","numericValue","parseFloat","isNaN","Math","round","getRecommendedCardList","CardList","console","log","card","DesiredCreditLimitComponent","formBuilder","validationService","formattingService","submitted","selcetedCard","buildingForm","desiredCreditLimitFormGroup","group","DesiredCreditLimitTxBx","required","DesiredCreditLimitValidation","MinCreditLimit","MaxCreditLimit","controls","valueChanges","change","incomeVal","value","unwantedContentRemovedValue","setValue","invalid","desiredCreditLimit","event","target","removeFormattedValue","removeFormattedCurrency","formattedValue","formatCurrency","get","desiredCreditLimitTxBx_Blur","calcuateBtnClick","RecommendationComponent","route","recommendationsFormGroup","NetIncomeTxBx","NetSalaryBoundaries","min","max","setSaudi","setNonSaudi","NetIncomeTxBx_Blur","proceed","environment","production","baseURI","bootstrapModule","error","CalculatorService","http","post","pipe","handleError","message","providedIn","CardService","income","cardDetails","list","filter","MinIncomeSaudi","MinIncomeExpat","FormattingService","strVal","String","commaRemoved","numbVal","Number","formattedStr","toFixed","num","HttpService","baseUri","uri","body","ErrorEvent","status","SharingDataService","TranslatingDataService","rt","loaded","jsonData","toPromise","ValidationService","minValue","maxValue","isDesiredCreditLimit","control","enteredValue","enteredValueNum","match"],"mappings":"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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DesiredCreditLimitComponent } from './components/desired-credit-limit/desired-credit-limit.component';\r\nimport { CardInfoComponent } from './components/card-info/card-info.component';\r\nimport { CardRecommendationComponent } from './components/card-recommendation/card-recommendation.component';\r\nimport { RecommendationComponent } from './components/recommendation/recommendation.component';\r\n\r\n\r\nconst routes: Routes = [ \r\n { path: 'cardinfo', component: CardInfoComponent },\r\n { path: 'desiredCreditLimit', component: DesiredCreditLimitComponent },\r\n {\r\n path: 'recommendation',\r\n component: RecommendationComponent//,\r\n // resolve: { resolvedData: JsonResolver },\r\n },\r\n { path: 'cardrecommendation', component: CardRecommendationComponent },\r\n { path: '', redirectTo: 'recommendation', pathMatch: 'full' },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslatingDataService } from '../shared/services/translation/translating-data.service';\r\nimport { SharingDataService } from '../shared/services/sharingData/sharing-data.service';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { of, throwError } from 'rxjs';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css'],\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'creditCardApp';\r\n fullYear = new Date().getFullYear();\r\n LanguageClass = $localize`:@@LanguageClass:LanguageClass`;\r\n DirectionClass = $localize`:@@DirectionClass:DirectionClass`;\r\n\r\n constructor() //private translatingDataService: TranslatingDataService,\r\n //public sharingDataService: SharingDataService\r\n {}\r\n\r\n currentDate = new Date();\r\n\r\n ngOnInit() {\r\n // if (\r\n // this.sharingDataService.minimumPaymtCalSharedData.TranslatedData == null\r\n // ) {\r\n // this.sharingDataService.minimumPaymtCalSharedData.TranslatedData = this.translatingDataService.getTranlateddata();\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 \"Logo\r\n
\r\n
\r\n
\r\n \r\n Credit Card Payment Calculator\r\n \r\n \r\n Credit Card Payment Calculator\r\n \r\n
\r\n
\r\n Last update:\r\n {{currentDate | date:'dd-MM-yyyy'}}\r\n
\r\n
\r\n
\r\n
Credit Card Payment Calculator
\r\n
\r\n Last update:\r\n {{currentDate | date:'dd-MM-yyyy'}}\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 \r\n \r\n \r\n
\r\n
\r\n ©\r\n {{fullYear}} CopyrightStatement\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { HttpService } from '../shared/services/http.service';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DesiredCreditLimitComponent } from './components/desired-credit-limit/desired-credit-limit.component';\r\nimport { CardInfoComponent } from './components/card-info/card-info.component';\r\nimport { CardRecommendationComponent } from './components/card-recommendation/card-recommendation.component';\r\nimport { RecommendationComponent } from './components/recommendation/recommendation.component';\r\nimport { TranslatingDataService } from '../shared/services/translation/translating-data.service';\r\nimport { SharingDataService } from 'src/shared/services/sharingData/sharing-data.service';\r\n\r\nexport function init(\r\n translatingDataService: TranslatingDataService,\r\n sharingDataService: SharingDataService\r\n) {\r\n return () =>\r\n translatingDataService.retrieveTranslatedData().then(() => {\r\n sharingDataService.minimumPaymtCalSharedData.TranslatedData = translatingDataService.getTranlateddata();\r\n });\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n DesiredCreditLimitComponent,\r\n CardInfoComponent,\r\n RecommendationComponent,\r\n CardRecommendationComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n ],\r\n providers: [\r\n HttpService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: init,\r\n deps: [TranslatingDataService, SharingDataService],\r\n multi: true,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SharingDataService } from '../../../shared/services/sharingData/sharing-data.service';\r\nimport { IMinimumPaymtCalSharedData } from '../../models/minimumPaymtCalSharedData.model';\r\nimport { ConfigData } from '../../models/configData.model';\r\nimport { CardService } from '../../../shared/services/card/card.service';\r\nimport { IAprInputData } from '../../models/aprInputData.model';\r\nimport { IRequestG } from '../../models/dtos/requestG.model';\r\nimport { CalculatorService } from '../../../shared/services/calculator/calculator.service';\r\nimport { Router } from '@angular/router';\r\nimport { JsonDetails } from 'src/app/models/jsonDetails.model';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-card-info',\r\n templateUrl: './card-info.component.html',\r\n styleUrls: ['./card-info.component.css'],\r\n providers: [DatePipe]\r\n})\r\nexport class CardInfoComponent implements OnInit {\r\n creditLimit: string;\r\n selectedCard: string;\r\n minPayment: string;\r\n balancePayOff: string;\r\n aprValue: string;\r\n tawarruqFee: string;\r\n annualFee: string;\r\n calculatedAnnualFee: string;\r\n cardImgUrl: string;\r\n isSuccess: boolean;\r\n errorMessage: string;\r\n configurations: ConfigData;\r\n minimumPaymtCalSharedData: IMinimumPaymtCalSharedData;\r\n translatedData :JsonDetails;\r\n CalculationDate: string;\r\n CalculationDateInfo: string;\r\n CalculationDateInfoAr: string=\"***تم احتساب معدل الفائدة السنوية المذكور اعلاه باعتبار تاريخ الموافقة على البطاقة \";\r\n CalculationDateInfoEn: string=\"***The APR computation is assuming as the Card allotment/approval date.\";\r\n language: string;\r\n\r\n\r\n constructor(public sharingDataService: SharingDataService, private cardService: CardService, private calculatorService: CalculatorService, private router: Router, private datePipe: DatePipe) {\r\n }\r\n\r\n ngOnInit(): void {\r\n const date = new Date();\r\n this.CalculationDate = this.datePipe.transform(date, 'dd-MMM-yyyy');\r\n this.getLanguage();\r\n this.getConfigDetails();\r\n this.getMinimumPaymtCalSharedData();\r\n this.getAPR(); \r\n }\r\n\r\n getLanguage() {\r\n this.language = this.cardService.getLanguage();\r\n if(this.language.toLowerCase().trim() == 'en') {\r\n this.CalculationDateInfo = this.CalculationDateInfoEn.replace(\"\",this.CalculationDate); \r\n } else {\r\n this.CalculationDateInfo = this.CalculationDateInfoAr.replace(\"\",this.CalculationDate); \r\n }\r\n }\r\n\r\n getConfigDetails() {\r\n this.translatedData = this.sharingDataService.minimumPaymtCalSharedData.TranslatedData;\r\n this.configurations = this.cardService.getConfigInfo();\r\n }\r\n\r\n getMinimumPaymtCalSharedData(): void {\r\n this.minimumPaymtCalSharedData = this.sharingDataService.minimumPaymtCalSharedData;\r\n }\r\n\r\n getAPR() { \r\n if (this.configurations && this.minimumPaymtCalSharedData.SelectedCard) { \r\n\r\n let aprInputData: IAprInputData = {\r\n MinPayment: this.configurations.MinPayment,\r\n MurabahaRate: this.configurations.MurabahaRate,\r\n UserEnteredAmount: this.minimumPaymtCalSharedData.DesiredCreditLimit,\r\n CalculatedAnnualFee : this.minimumPaymtCalSharedData.SelectedCard.CalculatedAnnualFee\r\n };\r\n\r\n let url = \"api/CreditCardPaymentCalc/getAPR\";\r\n let calDataGetReq: IRequestG = { Body: aprInputData };\r\n this.calculateAPR(url, calDataGetReq);\r\n }\r\n else {\r\n this.isSuccess = false;\r\n this.errorMessage = this.translatedData.ErrorList.find(e => e.Id==\"GenericError\").Text;\r\n }\r\n }\r\n\r\n calculateAPR(url: string, calDataGetReq: IRequestG) {\r\n this.calculatorService.getDataCalculatorPage(url, calDataGetReq).subscribe(\r\n (data) => {\r\n if (data != null) {\r\n if (data.Error.ErrorCode == '000') {\r\n// this.balancePayOff = data.Body.NumberOfMonths.toString() + ' Months'; \r\n this.balancePayOff = data.Body.NumberOfMonths.toString() + \" \" + $localize`:@@months:months`;; \r\n this.aprValue = data.Body.AprValue.toString() + '%'; \r\n this.selectedCard = this.minimumPaymtCalSharedData.SelectedCard.Name;\r\n this.minPayment = this.configurations.MinPaymentPer + '%';\r\n this.tawarruqFee = this.configurations.MurabahaRate + '%';\r\n this.cardImgUrl = this.minimumPaymtCalSharedData.SelectedCard.SelectionImage;\r\n\r\n this.creditLimit = this.minimumPaymtCalSharedData.SelectedCard.CardCurrency.toString() +' '+ this.minimumPaymtCalSharedData.DesiredCreditLimit.toString();\r\n this.annualFee = this.minimumPaymtCalSharedData.SelectedCard.CardCurrency.toString() +' '+ this.minimumPaymtCalSharedData.SelectedCard.AnnualFee.toString();\r\n this.isSuccess = true; \r\n }\r\n else {\r\n this.isSuccess = false;\r\n this.errorMessage = this.translatedData.ErrorList.find(e => e.Id==\"CardInfoCalculationError\").Text;\r\n }\r\n this.calculatedAnnualFee = this.minimumPaymtCalSharedData.SelectedCard.CardCurrency.toString() +' '+ this.minimumPaymtCalSharedData.SelectedCard.CalculatedAnnualFee.toString();\r\n }\r\n else {\r\n this.isSuccess = false;\r\n this.errorMessage = this.translatedData.ErrorList.find(e => e.Id==\"CardInfoCalculationError\").Text;\r\n }\r\n },\r\n (err) => {\r\n this.isSuccess = false;\r\n this.errorMessage = this.translatedData.ErrorList.find(e => e.Id==\"GenericError\").Text;\r\n }\r\n );\r\n\r\n }\r\n backToHome() {\r\n this.sharingDataService.minimumPaymtCalSharedData.DesiredCreditLimit = 0;\r\n this.sharingDataService.minimumPaymtCalSharedData.Nationality = true;\r\n this.sharingDataService.minimumPaymtCalSharedData.MonthlyIncome = 0;\r\n this.sharingDataService.minimumPaymtCalSharedData.SelectedCard = null,\r\n this.sharingDataService.minimumPaymtCalSharedData.DesiredCreditLimit = 0;\r\n this.sharingDataService.minimumPaymtCalSharedData.TranslatedData = null;\r\n this.router.navigate(['/recommendation']);\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 \"Platinum\r\n
\r\n
\r\n
\r\n

{{selectedCard}}

\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 CardInfoLabelCreditLimit\r\n
\r\n
{{ creditLimit }}
\r\n
\r\n \r\n \r\n
\r\n
CardInfoLabelSelectedCard
\r\n
\r\n {{ selectedCard }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n CardInfoLabelTimeRequiredToRepay\r\n
\r\n
{{ balancePayOff }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n CardInfoLabelAPR\r\n
\r\n
{{ aprValue }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n CardInfoLabelMonthlyFee\r\n
\r\n
{{ tawarruqFee }}
\r\n
\r\n \r\n \r\n
\r\n
CardInfoLabelAnnualFee
\r\n
{{ calculatedAnnualFee }}
\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 CardInfoTNC1\r\n

\r\n\r\n

\r\n CardInfoTNC3\r\n

\r\n\r\n

\r\n {{CalculationDateInfo}}\r\n

\r\n\r\n

\r\n CardInfoTNC4\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

{{errorMessage}}

\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 { Component, OnInit } from '@angular/core';\r\nimport { SharingDataService } from 'src/shared/services/sharingData/sharing-data.service';\r\nimport { CardService } from 'src/shared/services/card/card.service';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Card } from '../../models/card.model';\r\nimport { TranslatingDataService } from '../../../shared/services/translation/translating-data.service';\r\n\r\n@Component({\r\n selector: 'app-card-recommendation',\r\n templateUrl: './card-recommendation.component.html',\r\n styleUrls: ['./card-recommendation.component.css'],\r\n})\r\nexport class CardRecommendationComponent implements OnInit {\r\n constructor(\r\n public sharingDataService: SharingDataService,\r\n private cardService: CardService,\r\n private router: Router\r\n ) {}\r\n recommendedCards: Card[] = [];\r\n isSuccess: boolean = false;\r\n errorMessage: string;\r\n ngOnInit(): void {\r\n let nationality = this.sharingDataService.minimumPaymtCalSharedData.Nationality;\r\n let monthlyIncome = this.sharingDataService.minimumPaymtCalSharedData.MonthlyIncome;\r\n let translatedData = this.sharingDataService.minimumPaymtCalSharedData.TranslatedData;\r\n\r\n let incomeUSD =0;\r\n const numericValue = parseFloat(monthlyIncome.toString().replace(/,/g, '')); \r\n if (!isNaN(numericValue)) {\r\n incomeUSD = Math.round((numericValue / 3.75)*100)/100;\r\n } else {\r\n this.errorMessage = translatedData.ErrorList.find(e => e.Id==\"GenericError\").Text;\r\n }\r\n\r\n if (translatedData) {\r\n this.recommendedCards = this.cardService.getRecommendedCardList(\r\n nationality,\r\n monthlyIncome,\r\n incomeUSD,\r\n translatedData.CardList\r\n );\r\n this.isSuccess = true;\r\n } else {\r\n //TODO: Handle this.\r\n this.isSuccess = false;\r\n this.errorMessage = translatedData.ErrorList.find(e => e.Id==\"GenericError\").Text;\r\n console.log('Error:CardList data is null.');\r\n }\r\n //this.recommendedCards=this.cardService.getRecommendedCardList(false,45000);\r\n //console.log(this.recommendedCards);\r\n }\r\n selectClickHandler(card: Card) {\r\n this.sharingDataService.minimumPaymtCalSharedData.SelectedCard = card;\r\n if(this.sharingDataService.minimumPaymtCalSharedData.SelectedCard.CardCurrency=='USD') {\r\n const numericValue = parseFloat(this.sharingDataService.minimumPaymtCalSharedData.MonthlyIncome.toString().replace(/,/g, '')); \r\n if (!isNaN(numericValue)) {\r\n this.sharingDataService.minimumPaymtCalSharedData.MonthlyIncome = Math.round((numericValue / 3.75)*100)/100;\r\n } else {\r\n this.errorMessage = this.sharingDataService.minimumPaymtCalSharedData.TranslatedData.ErrorList.find(e => e.Id==\"GenericError\").Text;\r\n }\r\n }\r\n }\r\n proceedClickHandler() {\r\n this.router.navigate(['/desiredCreditLimit']);\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

Based on your initial input, below Card(s) are suitable for you.

\r\n
\r\n
0\">\r\n\r\n \r\n
\r\n
\r\n
\"{{card.Name}}\"
\r\n
\r\n
{{card.Name}}
\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
\r\n
\r\n

No card is avaliable for you.

\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{errorMessage}}

\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n ","import { Component, OnInit } from '@angular/core';\r\nimport { SharingDataService } from 'src/shared/services/sharingData/sharing-data.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Card } from 'src/app/models/card.model';\r\nimport { ValidationService } from 'src/shared/services/validation/validation.service';\r\nimport { FormattingService } from 'src/shared/services/formatting/formatting.service';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-desired-credit-limit',\r\n templateUrl: './desired-credit-limit.component.html',\r\n styleUrls: ['./desired-credit-limit.component.css']\r\n})\r\nexport class DesiredCreditLimitComponent implements OnInit {\r\n\r\n constructor(private sharingDataService: SharingDataService,\r\n private formBuilder: FormBuilder,\r\n private validationService: ValidationService,\r\n private formattingService: FormattingService,\r\n private router: Router\r\n ) { }\r\n\r\n desiredCreditLimitFormGroup: FormGroup;\r\n selcetedCard: Card;\r\n submitted: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.selcetedCard = this.sharingDataService.minimumPaymtCalSharedData.SelectedCard;\r\n this.buildingForm(this.selcetedCard);\r\n }\r\n\r\n buildingForm(selcetedCard: Card) {\r\n this.desiredCreditLimitFormGroup = this.formBuilder.group({\r\n DesiredCreditLimitTxBx: ['', [Validators.required, this.validationService.DesiredCreditLimitValidation(selcetedCard.MinCreditLimit, selcetedCard.MaxCreditLimit,true)]]\r\n });\r\n this.desiredCreditLimitFormGroup.controls.DesiredCreditLimitTxBx.valueChanges.subscribe((change) => {\r\n let incomeVal = this.desiredCreditLimitFormGroup.controls.DesiredCreditLimitTxBx.value;\r\n let unwantedContentRemovedValue = incomeVal.replace(/[^0-9,.]/g, '');\r\n if (change != unwantedContentRemovedValue) {\r\n this.desiredCreditLimitFormGroup.controls.DesiredCreditLimitTxBx.setValue(unwantedContentRemovedValue);\r\n }\r\n });\r\n }\r\n calcuateBtnClick() {\r\n this.submitted = true;\r\n // stop here, if FormGroup is invalid\r\n if (this.desiredCreditLimitFormGroup.invalid) {\r\n return;\r\n }\r\n let desiredCreditLimit = this.desiredCreditLimitFormGroup.controls.DesiredCreditLimitTxBx.value\r\n this.sharingDataService.minimumPaymtCalSharedData.DesiredCreditLimit = desiredCreditLimit;\r\n this.router.navigate(['/cardinfo']);\r\n }\r\n desiredCreditLimitTxBx_Blur(event: any) {\r\n let value = event.target.value;\r\n let removeFormattedValue = this.formattingService.removeFormattedCurrency(value);\r\n let formattedValue = this.formattingService.formatCurrency(removeFormattedValue);\r\n this.desiredCreditLimitFormGroup.get('DesiredCreditLimitTxBx').setValue(formattedValue);\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
\"Platinum
\r\n
\r\n
\r\n

{{selcetedCard?.Name}}

\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
PleaseEnterCreditLimitError
\r\n
CreditLimitShouldNotGreater
\r\n
CreditLimitContainsNonNumerics
\r\n
\r\n
\r\n
\r\n USD\r\n
\r\n
\r\n SAR\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
DesiredCreditLimitTermsAndConditions
\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 { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { SharingDataService } from '../../../shared/services/sharingData/sharing-data.service';\r\nimport { ValidationService } from 'src/shared/services/validation/validation.service';\r\nimport { ConfigData } from '../../models/configData.model';\r\nimport { CardService } from '../../../shared/services/card/card.service';\r\nimport { FormattingService } from 'src/shared/services/formatting/formatting.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { JsonResolved } from '../../models/jsonResolved.model';\r\n\r\n@Component({\r\n selector: 'app-recommendation',\r\n templateUrl: './recommendation.component.html',\r\n styleUrls: ['./recommendation.component.css'],\r\n})\r\nexport class RecommendationComponent implements OnInit {\r\n constructor(\r\n public sharingDataService: SharingDataService,\r\n private formBuilder: FormBuilder,\r\n private validationService: ValidationService,\r\n private router: Router,\r\n private cardService: CardService,\r\n private formattingService: FormattingService,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n nationality: string;\r\n configurations: ConfigData;\r\n recommendationsFormGroup: FormGroup;\r\n submitted: boolean = false;\r\n\r\n getConfigDetails() {\r\n this.configurations = this.cardService.getConfigInfo();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getConfigDetails();\r\n this.buildingForm();\r\n console.log(this.sharingDataService.minimumPaymtCalSharedData.Nationality);\r\n console.log(\r\n this.sharingDataService.minimumPaymtCalSharedData.TranslatedData\r\n );\r\n }\r\n\r\n buildingForm() {\r\n this.recommendationsFormGroup = this.formBuilder.group({\r\n NetIncomeTxBx: [\r\n '',\r\n [\r\n Validators.required,\r\n this.validationService.DesiredCreditLimitValidation(\r\n this.configurations.NetSalaryBoundaries.min,\r\n this.configurations.NetSalaryBoundaries.max\r\n ),\r\n ],\r\n ],\r\n });\r\n this.recommendationsFormGroup.controls.NetIncomeTxBx.valueChanges.subscribe(\r\n (change) => {\r\n let incomeVal = this.recommendationsFormGroup.controls.NetIncomeTxBx\r\n .value;\r\n let unwantedContentRemovedValue = incomeVal.replace(/[^0-9,.]/g, '');\r\n if (change != unwantedContentRemovedValue) {\r\n this.recommendationsFormGroup.controls.NetIncomeTxBx.setValue(\r\n unwantedContentRemovedValue\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n setSaudi() {\r\n this.sharingDataService.minimumPaymtCalSharedData.Nationality = true;\r\n }\r\n\r\n setNonSaudi() {\r\n this.sharingDataService.minimumPaymtCalSharedData.Nationality = false;\r\n }\r\n\r\n NetIncomeTxBx_Blur(event: any) {\r\n let value = event.target.value;\r\n let removeFormattedValue = this.formattingService.removeFormattedCurrency(\r\n value\r\n );\r\n let formattedValue = this.formattingService.formatCurrency(\r\n removeFormattedValue\r\n );\r\n this.recommendationsFormGroup.get('NetIncomeTxBx').setValue(formattedValue);\r\n }\r\n\r\n proceed() {\r\n this.submitted = true;\r\n this.sharingDataService.minimumPaymtCalSharedData.MonthlyIncome = this.recommendationsFormGroup.get(\r\n 'NetIncomeTxBx'\r\n ).value;\r\n this.router.navigate(['/cardrecommendation']);\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

TellUsAboutYourself

\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 \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 PleaseEnterMonthlyIncome\r\n
\r\n
\r\n ShouldNotLessIncome\r\n
\r\n
\r\n ShouldNotMoreIncome\r\n
\r\n
\r\n IncomeContainsNonNumerics\r\n
\r\n
\r\n
\r\n
\r\n SAR\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 RecommendationTermsAndConditions\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","export const configurations = {\r\n MurabahaRate: 2.75,\r\n MinPayment: 100, \r\n MinPaymentPer: 5,\r\n\r\n NetSalaryBoundaries:{\r\n min:100,\r\n max:1000000,\r\n }\r\n};\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: true,\r\n baseURI:\"http://localhost:14214/\"\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpService } from '../http.service';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { IRequestG } from '../../../app/models/dtos/requestG.model';\r\nimport { IAprOutputData } from '../../../app/models/aprOutputData.model';\r\nimport { IResponseG } from '../../../app/models/dtos/responseG.model';\r\nimport { IAprInputData } from '../../../app/models/aprInputData.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CalculatorService {\r\n\r\n constructor(private http: HttpService) { }\r\n\r\n public getDataCalculatorPage(url: string, calDataGetReq: IRequestG): Observable> {\r\n return this.http.post, IRequestG>(url, calDataGetReq).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n private handleError(error: HttpErrorResponse): Observable {\r\n console.error(error);\r\n return Observable.throw(error.message || 'Server error');\r\n }\r\n\r\n}\r\n","import { Injectable, LOCALE_ID, Inject } from '@angular/core';\r\nimport { Card } from '../../../app/models/card.model';\r\nimport { configurations } from '../../../configurations/configurations';\r\nimport { ConfigData } from '../../../app/models/configData.model';\r\nimport { SharingDataService } from '../sharingData/sharing-data.service';\r\nimport { JsonDetails } from '../../../app/models/jsonDetails.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CardService {\r\n\r\n constructor(@Inject(LOCALE_ID) private language: string) {}\r\n\r\n getRecommendedCardList(nationality: boolean, income: number,incomeUSD: number, cardDetails: Card[]): Card[] {\r\n let list: Card[] = [];\r\n\r\n if(nationality)\r\n {\r\n list = cardDetails.filter(\r\n (card) =>\r\n (card.MinIncomeSaudi <= income)\r\n );\r\n }\r\n else\r\n {\r\n list = cardDetails.filter(\r\n (card) =>\r\n (card.MinIncomeExpat <= income)\r\n ); \r\n }\r\n return list;\r\n }\r\n\r\n getConfigInfo(): ConfigData {\r\n return configurations;\r\n }\r\n\r\n public getLanguage(): string {\r\n return this.language;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormattingService {\r\n\r\n constructor() { }\r\n\r\n formatCurrency(value: number) {\r\n if (value != null) {\r\n let strVal = String(value);\r\n let commaRemoved = strVal.replace(',', '');\r\n let numbVal = Number(commaRemoved);\r\n let formattedStr = numbVal.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\r\n return formattedStr;\r\n }\r\n else {\r\n return \"0.00\";\r\n }\r\n }\r\n removeFormattedCurrency(value: string) {\r\n let commaRemoved = value.replace(',', '');\r\n let num = Number(commaRemoved);\r\n return num;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../environments/environment';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable()\r\n\r\nexport class HttpService {\r\n private baseUri = environment.baseURI;\r\n //options: any;\r\n constructor(private http: HttpClient) {\r\n //this.options = new HttpHeaders().set('Content-Type', 'application/json');\r\n }\r\n\r\n public get(uri: string): Observable {\r\n return this.http.get(`${this.baseUri}${uri}`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public post(uri: string, body: E): Observable {\r\n return this.http.post(`${this.baseUri}${uri}`, body).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError(error);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IMinimumPaymtCalSharedData } from 'src/app/models/minimumPaymtCalSharedData.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SharingDataService {\r\n minimumPaymtCalSharedData: IMinimumPaymtCalSharedData;\r\n constructor() {\r\n this.minimumPaymtCalSharedData = {\r\n Nationality: true,\r\n MonthlyIncome: 0,\r\n SelectedCard: null,\r\n DesiredCreditLimit: 0,\r\n TranslatedData: null,\r\n };\r\n }\r\n}\r\n","import { Injectable, LOCALE_ID, Inject } from '@angular/core';\r\nimport { HttpErrorResponse, HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { JsonDetails } from '../../../app/models/jsonDetails.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TranslatingDataService {\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(LOCALE_ID) private language: string\r\n ) {\r\n //this.translatedData = this.retrieveTranslatedData();\r\n }\r\n // private translatedData: Observable = null;\r\n\r\n private translatedData: JsonDetails;\r\n private loaded: boolean;\r\n public getTranlateddata(): JsonDetails {\r\n return this.translatedData;\r\n }\r\n\r\n public retrieveTranslatedData() {\r\n let rt: Promise;\r\n if (!this.loaded) {\r\n let language = this.getLanguage();\r\n const jsonData = this.http\r\n .get('assets/jsons/' + 'list-' + language + '.json')\r\n .toPromise();\r\n jsonData\r\n .then((data) => {\r\n this.translatedData = data;\r\n this.loaded = true;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.handleError(error);\r\n });\r\n rt = jsonData;\r\n }\r\n return rt;\r\n }\r\n\r\n private getLanguage(): string {\r\n //return window.location.pathname.includes('/ar/') ? 'ar' : 'en';\r\n return this.language;\r\n }\r\n /*\r\n public getTranlateddata(): Observable {\r\n return this.translatedData;\r\n }\r\n\r\n private retrieveTranslatedData(): Observable {\r\n let language = this.getLanguage();\r\n\r\n return this.http\r\n .get>('assets/jsons/' + 'list-' + language + '.json')\r\n .pipe(catchError(this.handleError));\r\n }*/\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `JSON file not loaded ${error.status}, ` + `body was: ${error.error}`\r\n );\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidationService {\r\n\r\n constructor() { }\r\n DesiredCreditLimitValidation(minValue: number, maxValue: number, isDesiredCreditLimit=false) {\r\n\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n if (control.value == null || control.value == \"\") {\r\n return null;\r\n }\r\n let enteredValue = control.value;\r\n let enteredValueNum = Number(enteredValue.replace(',', ''));\r\n if (control.value.match(/^(\\d?\\d?\\d(,\\d\\d\\d)*|\\d+)(\\.\\d\\d)?$/)) {\r\n if (enteredValueNum >= minValue) {\r\n if (enteredValueNum <= maxValue) {\r\n return null;\r\n }\r\n else {\r\n return { 'moreThanMax': true };\r\n }\r\n\r\n }\r\n else {\r\n if(!isDesiredCreditLimit) {\r\n return { 'lessThanMin': true };\r\n } \r\n }\r\n\r\n } else {\r\n return { 'invalidcurrency': true };\r\n }\r\n\r\n };\r\n\r\n }\r\n\r\n NetIncomeValidator(minValue:number, maxValue:number){\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n if (control.value == null || control.value == \"\") {\r\n return null;\r\n }\r\n let enteredValue = control.value;\r\n let enteredValueNum = Number(enteredValue.replace(',', ''));\r\n if (control.value.match(/^(\\d?\\d?\\d(,\\d\\d\\d)*|\\d+)(\\.\\d\\d)?$/)) {\r\n if (enteredValueNum >= minValue) {\r\n if (enteredValueNum <= maxValue) {\r\n return null;\r\n }\r\n else {\r\n return { 'moreThanMax': true };\r\n }\r\n\r\n }\r\n else {\r\n return { 'lessThanMin': true };\r\n }\r\n\r\n } else {\r\n return { 'invalidcurrency': true };\r\n }\r\n\r\n };\r\n }\r\n\r\n}\r\n"]}