{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/autocomplete-off.directive.ts","./src/app/core/adapters/response.adapter.ts","./src/app/core/custom-pipes/custom-currency-pipe.ts","./src/app/core/custom-pipes/investTime.pipe.ts","./src/app/core/custom-pipes/precentage.pipe.ts","./src/app/core/directives/onlynumber.directive.ts","./src/app/core/directives/preventSpaces.directive.ts","./src/app/core/gaurds/admin.gaurd.ts","./src/app/core/gaurds/auth.gaurd.ts","./src/app/core/gaurds/borrower.gaurd.ts","./src/app/core/gaurds/lender.gaurd.ts","./src/app/core/gaurds/no-auth.gaurd.ts","./src/app/core/helpers/Forms/form.helper.ts","./src/app/core/helpers/PaginatorI18n.ts","./src/app/core/helpers/guid.helper.ts","./src/app/core/helpers/loan-request.helper.ts","./src/app/core/helpers/shared.helper.ts","./src/app/core/interceptors/api.interceptor.ts","./src/app/core/material/material.module.ts","./src/app/core/models/admin/activity.model.ts","./src/app/core/models/identity/jwtCliams.ts","./src/app/core/models/lender/investment.ts","./src/app/core/models/loan/gaurantor.ts","./src/app/core/models/loan/loan.model.ts","./src/app/core/models/registration/main-response.model.ts","./src/app/core/models/registration/userType.enum.ts","./src/app/core/services/adminServices/setting.service.ts","./src/app/core/services/app-config.service.ts","./src/app/core/services/borrower.service.ts","./src/app/core/services/custom-adapter-and-formatter.service.ts","./src/app/core/services/grogorian-calender-i18n.service.ts","./src/app/core/services/islamic-calender-i18n.service.ts","./src/app/core/services/lender.service.ts","./src/app/core/services/loan.service.ts","./src/app/core/services/lookups.service.ts","./src/app/core/services/security.service.ts","./src/app/core/services/signalr.service.ts","./src/app/core/services/storage.service.ts","./src/app/core/validators/cr-validation.ts","./src/app/core/validators/nationalId.ts","./src/app/shared/calculator/calculator.component.ts","./src/app/shared/calculator/calculator.component.html","./src/app/shared/calender/calender.component.ts","./src/app/shared/calender/calender.component.html","./src/app/shared/confirm-dialog/confirm-dialog.component.ts","./src/app/shared/confirm-dialog/confirm-dialog.component.html","./src/app/shared/gaurantor/gaurantor.component.ts","./src/app/shared/gaurantor/gaurantor.component.html","./src/app/shared/hijri-calender/hijri-calender.component.ts","./src/app/shared/hijri-calender/hijri-calender.component.html","./src/app/shared/layouts/Identity/identity.ts","./src/app/shared/layouts/Identity/identity.html","./src/app/shared/layouts/footer/footer.component.ts","./src/app/shared/layouts/footer/footer.component.html","./src/app/shared/layouts/header/header.component.ts","./src/app/shared/layouts/header/header.component.html","./src/app/shared/layouts/side-bar/side-bar.component.ts","./src/app/shared/layouts/side-bar/side-bar.component.html","./src/app/shared/market-place/market-place.component.ts","./src/app/shared/market-place/market-place.component.html","./src/app/shared/shared.module.ts","./src/app/shared/summery/summery.component.ts","./src/app/shared/summery/summery.component.html","./src/app/views/pages/base/base.component.ts","./src/app/views/pages/base/base.component.html","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { AuthGaurd } from './core/gaurds/auth.gaurd';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { BorrowerGaurd } from './core/gaurds/borrower.gaurd';\r\nimport { NoAuthGaurd } from './core/gaurds/no-auth.gaurd';\r\nimport { BaseComponent } from './views/pages/base/base.component';\r\nimport { LenderGaurd } from './core/gaurds/lender.gaurd';\r\nimport { AdminGaurd } from './core/gaurds/admin.gaurd';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: BaseComponent,\r\n children: [\r\n {\r\n path: 'register',\r\n loadChildren: () =>\r\n import('./views/pages/registration/register/register.module').then(m => m.RegisterModule),\r\n canActivate: [NoAuthGaurd]\r\n },\r\n {\r\n path: 'register-step',\r\n loadChildren: () =>\r\n import('./views/pages/registration/registeration/registeration.module').then(m => m.RegisterationModule),\r\n canActivate: [NoAuthGaurd]\r\n }, {\r\n path: 'auth',\r\n loadChildren: () =>\r\n import('./views/pages/auth/auth.module').then(m => m.AuthModule)\r\n }, {\r\n path: 'static',\r\n loadChildren: () =>\r\n import('./views/static-page/static-pages.module').then(m => m.StaticPagesModule)\r\n }, {\r\n path: 'borrower',\r\n loadChildren: () =>\r\n import('./views/pages/borrower/borrower.module').then(m => m.BorrowerModule),\r\n canActivate: [AuthGaurd, BorrowerGaurd]\r\n },{\r\n path: 'lender',\r\n loadChildren: () =>\r\n import('./views/pages/lender/lender.module').then(m => m.LenderModule),\r\n canActivate: [AuthGaurd, LenderGaurd]\r\n },{\r\n path: 'admin',\r\n loadChildren: () => import('./views/pages/admin/admin.module').then(m => m.AdminModule),\r\n canActivate: [AuthGaurd, AdminGaurd]\r\n }, {\r\n path: '',\r\n loadChildren: () => import('./views/pages/home/home.module').then(m => m.HomeModule),\r\n canActivate: [NoAuthGaurd],\r\n },\r\n {\r\n path: 'profile',\r\n loadChildren: () => import('./views/pages/profile/profile.module').then(m => m.ProfileModule),\r\n canActivate: [AuthGaurd],\r\n }\r\n ]\r\n }\r\n , {\r\n path: '**',\r\n redirectTo: ''\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { SignalrService } from './core/services/signalr.service';\r\nimport { SecurityService } from 'src/app/core/services/security.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { StorageService } from './core/services/storage.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'UlendWeb';\r\n Authenticated: boolean = false;\r\n subscription: Subscription;\r\n\r\n constructor(\r\n private securityService: SecurityService,\r\n private signalrService: SignalrService,\r\n private storage: StorageService\r\n ) {\r\n this.Authenticated = this.securityService.IsAuthorized;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.securityService.authenticationChallenge$.subscribe(\r\n (res) => {\r\n this.Authenticated = res;\r\n }\r\n );\r\n this.chechAuthentication();\r\n }\r\n\r\n private chechAuthentication() {\r\n if (this.Authenticated) {\r\n const id_token = localStorage.getItem('authorizationDataIdToken');\r\n let identityToken = id_token.substring(1);\r\n identityToken = identityToken.substring(0, id_token.length - 2);\r\n this.storage.storeToSession('authorizationDataIdToken', identityToken);\r\n }\r\n }\r\n}\r\n","\r\n \r\n","import { SignalrService } from './core/services/signalr.service';\r\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgxUiLoaderModule } from 'ngx-ui-loader';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport {\r\n HttpClient,\r\n HttpClientModule,\r\n HTTP_INTERCEPTORS,\r\n} from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { AppConfigService } from './core/services/app-config.service';\r\nimport { ApiInterceptor } from './core/interceptors/api.interceptor';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { ResponseAdapter } from './core/adapters/response.adapter';\r\nimport { OAuthModule } from 'angular-oauth2-oidc';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AutocompleteOffDirective } from './autocomplete-off.directive';\r\n\r\nexport function httpLoaderFactory(http: HttpClient): TranslateHttpLoader {\r\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\r\n}\r\n\r\nexport function initConfig(appConfig: AppConfigService) {\r\n return () => appConfig.loadConfig();\r\n}\r\n@NgModule({\r\n declarations: [AppComponent, AutocompleteOffDirective],\r\n imports: [\r\n SharedModule,\r\n HttpClientModule,\r\n BrowserModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n NgxUiLoaderModule,\r\n SharedModule.forRoot(),\r\n ToastrModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpLoaderFactory,\r\n deps: [HttpClient],\r\n },\r\n }),\r\n OAuthModule.forRoot(),\r\n NgbModule,\r\n ],\r\n providers: [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initConfig,\r\n deps: [AppConfigService],\r\n multi: true,\r\n },\r\n SignalrService,\r\n ResponseAdapter,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ApiInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule { }\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appAutocompleteOff]'\r\n})\r\nexport class AutocompleteOffDirective {\r\n\r\n constructor() { }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainApiResult } from '../models/registration/main-response.model';\r\n\r\n@Injectable()\r\n\r\nexport class ResponseAdapter {\r\n adapt(apiResponse: any): MainApiResult {\r\n return new MainApiResult(\r\n apiResponse?.code ? apiResponse.message : null,\r\n apiResponse?.succeeded ? apiResponse.succeeded : null,\r\n apiResponse?.hasOwnProperty('data') ? apiResponse.data : apiResponse,\r\n apiResponse?.message ? apiResponse.message : null,\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'customCurrency'\r\n})\r\n\r\n\r\nexport class CustomeCurrecyPipe implements PipeTransform {\r\n constructor() { }\r\n transform(amount: any): string {\r\n const decimalCount = 2;\r\n const decimal = '.';\r\n const thousands = ',';\r\n const i: string = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount), 10).toString();\r\n const j = (i.length > 3) ? i.length % 3 : 0;\r\n const negativeSign = amount < 0 ? '-' : '';\r\n if (sessionStorage.getItem('lang') === 'ar-EG') {\r\n return `${negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, '$1' + thousands)\r\n + (decimalCount ? decimal + Math.abs(amount - +i).toFixed(decimalCount).slice(2) : '')} ر.س.`;\r\n } else {\r\n return `SAR ${negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, '$1' + thousands)\r\n + (decimalCount ? decimal + Math.abs(amount - +i).toFixed(decimalCount).slice(2) : '')}`;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'remaingInvestmentTiming'\r\n})\r\n\r\n\r\nexport class RemaingInvestmentTimingPipe implements PipeTransform {\r\n constructor() { }\r\n transform(time: string): string {\r\n\r\n if (sessionStorage.getItem('lang') === 'ar-EG') {\r\n time = time.replace('Days', 'يوم')\r\n time = time.replace('Hours', 'ساعة')\r\n time = time.replace('Minutes', 'دقيقة')\r\n time = time.replace('Seconds', 'ثانية')\r\n return time;\r\n } else {\r\n return time;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'precentage'\r\n})\r\n\r\n\r\nexport class PrecentagePipe implements PipeTransform {\r\n constructor() { }\r\n transform(amount: any): string {\r\n const precentageValue = amount;\r\n if (sessionStorage.getItem('lang') === 'ar-EG') {\r\n return `% ${precentageValue}`;\r\n } else {\r\n return `${precentageValue} %`\r\n }\r\n }\r\n}\r\n","import {Directive, ElementRef, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appOnlyNumber]'\r\n})\r\nexport class OnlyNumberDirective {\r\n\r\n constructor() {\r\n }\r\n\r\n @HostListener('keypress', ['$event']) onInputChange(event) {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode < 48 || charCode > 57) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n @HostListener('paste', ['$event']) blockPaste(event) {\r\n const pastedValue = event.clipboardData.getData('text');\r\n if (/^\\d+$/.test(pastedValue)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // @HostListener('copy', ['$event']) blockCopy(e: KeyboardEvent) {\r\n // e.preventDefault();\r\n // }\r\n\r\n // @HostListener('cut', ['$event']) blockCut(e: KeyboardEvent) {\r\n // e.preventDefault();\r\n // }\r\n}\r\n","import {Directive, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[preventSpaces]'\r\n})\r\nexport class PreventSpacesDirective {\r\n\r\n constructor() {\r\n }\r\n\r\n @HostListener('keypress', ['$event']) onInputChange(event) {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode === 32) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { UserType } from '../models/registration/userType.enum';\r\nimport { SecurityService } from '../services/security.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AdminGaurd implements CanActivate {\r\n constructor(\r\n private securityService: SecurityService,\r\n private route: Router\r\n ) { }\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot) {\r\n const userType = +this.securityService.currentUser().role as UserType;\r\n if (this.securityService.IsAuthorized && userType == UserType.Admin) {\r\n return true;\r\n }else {\r\n this.route.navigate(['/']);\r\n return false;\r\n }\r\n \r\n }\r\n}\r\n","import { SecurityService } from 'src/app/core/services/security.service';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot} from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGaurd implements CanActivate {\r\n constructor(private securityService: SecurityService) {}\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot) {\r\n if (this.securityService.IsAuthorized) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { UserType } from '../models/registration/userType.enum';\r\nimport { SecurityService } from '../services/security.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BorrowerGaurd implements CanActivate {\r\n constructor(\r\n private securityService: SecurityService,\r\n private router: Router\r\n ) { }\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot) {\r\n if (this.securityService.IsAuthorized) {\r\n const userType = +this.securityService.currentUser().role as UserType\r\n switch (userType) {\r\n case UserType.BorrowerCorporate:\r\n case UserType.Borrower: {\r\n return true;\r\n }\r\n }\r\n }\r\n this.router.navigate(['/']);\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { UserType } from '../models/registration/userType.enum';\r\nimport { SecurityService } from '../services/security.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LenderGaurd implements CanActivate {\r\n constructor(\r\n private securityService: SecurityService,\r\n private router: Router\r\n ) { }\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot) {\r\n if (this.securityService.IsAuthorized) {\r\n const userType = +this.securityService.currentUser().role as UserType\r\n switch (userType) {\r\n case UserType.Lender:\r\n case UserType.LenderCorporate: {\r\n return true;\r\n }\r\n }\r\n }\r\n this.router.navigate(['/']);\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { UserType } from '../models/registration/userType.enum';\r\nimport { SecurityService } from '../services/security.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NoAuthGaurd implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private securityService: SecurityService\r\n ) { }\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot) {\r\n if (this.securityService.IsAuthorized) {\r\n switch (+this.securityService.currentUser().role as UserType) {\r\n case UserType.BorrowerCorporate:\r\n case UserType.Borrower: {\r\n this.router.navigate(['/borrower']);\r\n return false;\r\n }\r\n case UserType.Lender:\r\n case UserType.LenderCorporate: {\r\n this.router.navigate(['/lender']);\r\n return false;\r\n }\r\n case UserType.Admin: {\r\n this.router.navigate(['/admin']);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormGroup } from '@angular/forms';\r\nimport * as arabic from '../../../../assets/i18n/ar-EG.json';\r\nimport * as english from '../../../../assets/i18n/en-US.json';\r\nimport * as validationMessage from '../../../../assets/i18n/validation-messages-constants.json';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormHelper {\r\n constructor() { }\r\n public validateForm(form) {\r\n for (const prop in form.controls) {\r\n if (form.controls.hasOwnProperty(prop)) {\r\n form.controls[prop].markAsTouched();\r\n }\r\n }\r\n }\r\n async scrollIfFormHasErrors(form: FormGroup): Promise {\r\n await form.invalid;\r\n this.scrollToError();\r\n }\r\n scrollToError(): void {\r\n const firstElementWithError = document.querySelector('.ng-invalid');\r\n this.scrollTo(firstElementWithError);\r\n }\r\n scrollTo(el: Element): void {\r\n if (el) {\r\n el.scrollIntoView({ behavior: 'smooth' });\r\n window.scrollTo(0, -100);\r\n }\r\n }\r\n getValidationMessgae(FormControl: AbstractControl, controlName) {\r\n FormControl.markAsTouched();\r\n if (FormControl.hasError('required') || FormControl.hasError('whiteSpace')) {\r\n return this.geTranslatedValidation('required');\r\n }\r\n if (FormControl.hasError('startWithZero')) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'لا يجب أن تبدأ القيمة بصفر' :\r\n 'Amount can not start with zero';\r\n }\r\n // min error\r\n else if (FormControl.hasError('min')) {\r\n const min = 'min';\r\n switch (controlName) {\r\n case 'cmpnyActivety': {\r\n return this.geTranslatedValidation('required');\r\n }\r\n case 'delegatePosition': {\r\n return this.geTranslatedValidation('required');\r\n }\r\n default: {\r\n return `${this.geTranslatedValidation('min')\r\n + String(FormControl.errors[min].min)}`;\r\n }\r\n }\r\n }\r\n // max error\r\n if (FormControl.hasError('max')) {\r\n const max = 'max';\r\n switch (controlName) {\r\n case 'availableOpportunityInDays': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n \"الحد الاقصي يجب ان يكون 60 يوم\" :\r\n 'max days must be 60 day ';\r\n }\r\n case 'rejectReason': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n \" يجب ان لا يتعدي سبب الرفض عن 500 حرف\" :\r\n 'Reject Reason Length Must Not Exceed 500 characters';\r\n }\r\n default: {\r\n return `${this.geTranslatedValidation('max')\r\n + String(FormControl.errors[max].max)}`;\r\n }\r\n }\r\n }\r\n // minlength error\r\n if (FormControl.hasError('minlength')) {\r\n const min = 'minlength';\r\n switch (controlName) {\r\n case 'addActivity': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n \"يجب ان لا تقل نشاط الجديد عن 3 احرف و لا يزيد عن 30 حرف\" :\r\n 'name must be between 3 to 30 character';\r\n }\r\n default: {\r\n return `${this.geTranslatedValidation('minLength')\r\n + String(FormControl.errors[min].requiredLength)}`\r\n + `${sessionStorage.getItem('lang') === 'ar-EG' ? ' خانات' : ' value'}`;\r\n }\r\n }\r\n\r\n }\r\n // maxlength error\r\n if (FormControl.hasError('maxlength')) {\r\n const max = 'maxlength';\r\n switch (controlName) {\r\n case 'rejectReason': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n \" يجب ان لا يتعدي سبب الرفض عن 500 حرف\" :\r\n 'Reject Reason Length Must Not Exceed 500 characters';\r\n }\r\n case 'faq': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n \" يجب ان لا يتعدي عدد الاحروف عن 500 حرف\" :\r\n 'Length Must Not Exceed 500 characters';\r\n }\r\n case 'activity': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n \" يجب ان لا يتعدي عدد الاحروف عن 30 حرف\" :\r\n 'Length Must Not Exceed 30 characters';\r\n }\r\n\r\n default: {\r\n return `${this.geTranslatedValidation('maxLength')\r\n + String(FormControl.errors[max].requiredLength)}`\r\n + `${sessionStorage.getItem('lang') === 'ar-EG' ? ' خانات' : ' value'}`;\r\n }\r\n }\r\n }\r\n if (FormControl.hasError('invalidMatch')) {\r\n switch (controlName) {\r\n case 'password_comf': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'تاكيد كلمة المرور يجب ان تكون مطابقة لكلمة المرور' :\r\n 'confirm password must match password';\r\n }\r\n default: {\r\n return this.geTranslatedValidation('invalidMatch');\r\n }\r\n }\r\n\r\n }\r\n if (FormControl.hasError('pattern')) {\r\n switch (controlName) {\r\n case 'mobileNumber': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'حقل رقم الهاتف يجب ان يكون 9 خانة و يبدأ ب 5' :\r\n 'Phone number must be 9 digit and starts with 5';\r\n }\r\n\r\n case 'email': {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'الرجاء استخدام صيغة بريد الكتروني صحيحة' :\r\n 'Please use a valid email';\r\n }\r\n case 'password': {\r\n const str = FormControl.value;\r\n if (/^[\\u0621-\\u064A0-9 ]+$/.test(str)) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'يجب ادخال نمط صحيح بالانجليزية' :\r\n 'please enter correct password in English';\r\n }\r\n\r\n if (str.length < 8) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'يجب أن تتكون كلمة المرور من 8 أحرف على الأقل ' :\r\n 'Password should at least be 8 characters long';\r\n }\r\n if (str.toUpperCase() === str) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'يجب أن تحتوي كلمة المرور على أحرف صغيرة ' :\r\n 'Please choose a complex password which contains lower case letters';\r\n }\r\n if (str.toLowerCase() === str) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'يجب أن تحتوي كلمة المرور على أحرف الكبيرة ' :\r\n 'Please choose a complex password which contains upper case letters';\r\n }\r\n if (!/\\d/.test(str)) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'يجب أن تحتوي كلمة المرور على الأرقام ' :\r\n 'Please choose a complex password which contains upper case letters';\r\n }\r\n if (!/[ `!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/.test(str)) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'يجب أن تحتوي كلمة المرور على رموز ' :\r\n 'Password must contain symbols';\r\n }\r\n // return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n // 'يجب أن تتكون كلمة المرور من 8 أحرف على الأقل وأن تكون مميزة لك ويصعب على الآخرين تخمينها وأن تحتوي على خليط من الأحرف الكبيرة والصغيرة والرموز والأرقام' :\r\n // 'Please choose a complex password which is at least 8 characters length and has upper case , lower case letters , a number and a special character';\r\n }\r\n default: {\r\n this.geTranslatedValidation('pattern');\r\n }\r\n }\r\n }\r\n if (FormControl.hasError('wonrOtp')) {\r\n return `${this.geTranslatedValidation('wonrOtp')}`;\r\n }\r\n if (FormControl.hasError('otpCounter')) {\r\n return `${this.geTranslatedValidation('otpCounter')}`;\r\n }\r\n if (FormControl.hasError('inValidNIN')) {\r\n return `${this.geTranslatedValidation('inValidNIN')\r\n + this.getTranslatedVar(controlName)}`\r\n + `${sessionStorage.getItem('lang') === 'ar-EG' ? ' صحيح' : ''}`;\r\n }\r\n if (FormControl.hasError('inValidsponsorNIN')) {\r\n return `${this.geTranslatedValidation('inValidsponsorNIN')\r\n + this.getTranslatedVar(controlName)}`\r\n + `${sessionStorage.getItem('lang') === 'ar-EG' ? ' صحيح' : ''}`;\r\n }\r\n if (FormControl.hasError('inValidCR')) {\r\n return `${this.geTranslatedValidation('inValidCR')\r\n + this.getTranslatedVar(controlName)}`\r\n + `${sessionStorage.getItem('lang') === 'ar-EG' ? ' صحيح' : ''}`;\r\n }\r\n if (FormControl.hasError('emailIsExist')) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'تم استخدام هذا البريد الالكتروني من قبل' :\r\n 'Email already exists';\r\n }\r\n if (FormControl.hasError('worngPasswor')) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'كلمة مرور خاطئة' :\r\n 'Invalid Password';\r\n }\r\n\r\n\r\n }\r\n geTranslatedValidation(key) {\r\n const validation = validationMessage.default.messages.find(x => x.key === key);\r\n return sessionStorage.getItem('lang') === 'ar-EG' ? validation.arValue : validation.enValue;\r\n }\r\n getTranslatedVar(key) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n arabic.default[key] : english.default[key];\r\n }\r\n}\r\n","import { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport * as english from '../../../assets/i18n/en-US.json';\r\nimport * as arabic from '../../../assets/i18n/ar-EG.json';\r\n\r\nexport class PaginatorI18n {\r\n\r\n\r\n constructor(private readonly translate: TranslateService) {\r\n }\r\n\r\n getPaginatorIntl(): MatPaginatorIntl {\r\n const paginatorIntl = new MatPaginatorIntl();\r\n paginatorIntl.itemsPerPageLabel = this.getTranslatedVariable('ITEMS_PER_PAGE_LABEL');\r\n paginatorIntl.nextPageLabel = this.getTranslatedVariable('NEXT_PAGE_LABEL');\r\n paginatorIntl.previousPageLabel = this.getTranslatedVariable('PREVIOUS_PAGE_LABEL');\r\n paginatorIntl.firstPageLabel = this.getTranslatedVariable('FIRST_PAGE_LABEL');\r\n paginatorIntl.lastPageLabel = this.getTranslatedVariable('LAST_PAGE_LABEL');\r\n paginatorIntl.getRangeLabel = this.getRangeLabel.bind(this);\r\n return paginatorIntl;\r\n }\r\n\r\n private getRangeLabel(page: number, pageSize: number, length: number): string {\r\n page = page;\r\n if (length === 0 || pageSize === 0) {\r\n return this.getTranslatedVariable('RANGE_PAGE_LABEL_1') + ' ' + String(length);\r\n }\r\n length = Math.max(length, 0);\r\n const startIndex = (page * pageSize) + 1;\r\n // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\r\n return String(startIndex) + '-' + String(endIndex) + this.getTranslatedVariable('RANGE_PAGE_LABEL_2') + String(length);\r\n }\r\n getTranslatedVariable(key) {\r\n return sessionStorage.getItem('lang') === 'ar-EG' ?\r\n arabic.default[key] :\r\n english.default[key];\r\n }\r\n}\r\n","export class Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = Math.random() * 16 | 0,\r\n v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\r\nimport { Gaurantor } from '../models/loan/gaurantor';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoansHelper {\r\n gaurantors = new ReplaySubject();\r\n gaurantorsTypes: any;\r\n editingGaurentor: Gaurantor;\r\n isGaurantorOpen: BehaviorSubject = new BehaviorSubject(false);\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IPagingInfo } from '../models/common/paging.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedHelper {\r\n constructor() { }\r\n\r\n onPaginatorChanged(event): IPagingInfo {\r\n return {\r\n isAscending: true,\r\n orderBy: '',\r\n pageNumber: event.pageIndex,\r\n pageSize: event.pageSize\r\n };\r\n }\r\n changeLanguage() {\r\n sessionStorage.getItem('lang') === 'ar-EG' ?\r\n sessionStorage.setItem('lang', 'en-US') :\r\n sessionStorage.setItem('lang', 'ar-EG');\r\n window.location.reload();\r\n }\r\n getArrayFromEnum(enumClass) {\r\n const enumValues = Object.values(enumClass);\r\n const newLength = enumValues.length / 2;\r\n return enumValues\r\n .map((y, i) => {\r\n return {\r\n description: String(y),\r\n id: +enumValues[i + (newLength)]\r\n };\r\n })\r\n .slice(0, newLength);\r\n }\r\n datesAdder(date: NgbDate, years: number, months: number, days: number) {\r\n if (date) {\r\n return new NgbDate(\r\n date.year + years,\r\n date.month + months,\r\n date.day + days\r\n );\r\n }\r\n }\r\n}\r\n","import { SecurityService } from 'src/app/core/services/security.service';\r\nimport { HttpErrorResponse, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { BehaviorSubject, throwError } from 'rxjs';\r\nimport { catchError, filter, finalize, map, switchMap, take, tap } from 'rxjs/operators';\r\nimport Swal from 'sweetalert2';\r\nimport { ResponseAdapter } from '../adapters/response.adapter';\r\nimport { StorageService } from '../services/storage.service';\r\nimport { AppConfigService } from '../services/app-config.service';\r\nimport { Route, Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiInterceptor implements HttpInterceptor {\r\n authorityUrl: string;\r\n private refreshTokenInProgress = false;\r\n private refreshTokenSubject: BehaviorSubject = new BehaviorSubject(null);\r\n constructor(\r\n private loaderService: NgxUiLoaderService,\r\n private responseAdapter: ResponseAdapter,\r\n private translateService: TranslateService,\r\n private storage: StorageService,\r\n private security: SecurityService,\r\n private appConfigService: AppConfigService,\r\n private router:Router\r\n\r\n ) {\r\n this.authorityUrl = this.appConfigService.getConfiguration().authUrl;\r\n\r\n }\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler\r\n ) {\r\n const token = this.storage.retrieve('authorizationData');\r\n let tokenExpiration: any =this.parseJwt(token);\r\n if(tokenExpiration.exp*1000 > new Date().getTime()||token==undefined){\r\n let clonedReq = this.addAuthenticationToken(req);\r\n if (!req.headers.get('skip-loader')) {\r\n this.loaderService.start(req.url);\r\n }\r\n return next.handle(clonedReq).pipe(\r\n map(evt => {\r\n if (evt instanceof HttpResponse &&\r\n evt.url.includes('/assets/i18n/')) {\r\n return evt;\r\n }\r\n if (evt instanceof HttpResponse) {\r\n evt = evt.clone({ body: this.responseAdapter.adapt(evt.body) });\r\n this.loaderService.stop(req.url);\r\n if (evt.body.succeeded||evt.status==200) {\r\n return evt;\r\n } else {\r\n return evt;\r\n }\r\n }\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.loaderService.stop(req.url);\r\n switch (error.status) {\r\n case 403:\r\n this.security.Handle403Error();\r\n break;\r\n case 401:\r\n if (this.refreshTokenInProgress) {\r\n // If refreshTokenInProgress is true, we will wait until refreshTokenSubject has a non-null value\r\n // which means the new token is ready and we can retry the request again\r\n return this.refreshTokenSubject.pipe(\r\n filter(result => result !== null),\r\n take(1),\r\n switchMap(() => next.handle(this.addAuthenticationToken(req)))\r\n );\r\n } else {\r\n this.refreshTokenInProgress = true;\r\n // Set the refreshTokenSubject to null so that subsequent API calls will wait until the new token has been retrieved\r\n this.refreshTokenSubject.next(null);\r\n return this.security.refreshAccessToken().pipe(\r\n tap(res =>\r\n //Update the application storage with new data\r\n this.security.setRefreshTokenData(res.data.access_token, res.data.id_token, res.data.refresh_token)\r\n ),\r\n switchMap((success: boolean) => {\r\n this.refreshTokenSubject.next(success);\r\n return next.handle(this.addAuthenticationToken(req));\r\n }),\r\n // When the call to refreshToken completes we reset the refreshTokenInProgress to false\r\n // for the next time the token needs to be refreshed\r\n finalize(() => {\r\n console.log('finalize refresh access token');\r\n this.refreshTokenInProgress = false;\r\n })\r\n );\r\n }\r\n case 400:\r\n Swal.fire({\r\n text: error.error.Errors ? error.error.Errors[0] : error.error.Message,\r\n icon: 'error',\r\n confirmButtonText: this.translateService.instant('okay'),\r\n confirmButtonColor: '#e8ab21',\r\n })\r\n break;\r\n default:\r\n Swal.fire({\r\n text: error.error.Errors ? error.error.Errors[0] : error.error.Message,\r\n icon: 'error',\r\n confirmButtonText: this.translateService.instant('okay'),\r\n confirmButtonColor: '#e8ab21',\r\n })\r\n break;\r\n }\r\n return throwError(error);\r\n }),\r\n finalize(() => {\r\n this.loaderService.stop(req.url);\r\n })\r\n );\r\n }\r\n else {\r\n console.log('Token Expired... Token Referesh')\r\n this.security.Logoff();\r\n }\r\n }\r\n parseJwt (token) {\r\n if(token!=undefined){\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n\r\n return JSON.parse(jsonPayload);\r\n }\r\n else\r\n return \"\"\r\n}\r\n\r\n private addAuthenticationToken(request: HttpRequest): HttpRequest {\r\n // If we do not have a token yet then we should not set the header.\r\n // Here we could first retrieve the token from where we store it.\r\n const token = this.storage.retrieve('authorizationData');\r\n const lang = sessionStorage.getItem('lang');\r\n let clonedReq = request.clone();\r\n if (token) {\r\n clonedReq = request.clone({\r\n setHeaders: {\r\n Authorization: 'Bearer ' + token,\r\n 'Accept-Language': lang || 'ar-EG'\r\n }\r\n });\r\n } else {\r\n clonedReq = request.clone({\r\n setHeaders: {\r\n 'Accept-Language': lang || 'ar-EG',\r\n }\r\n });\r\n }\r\n return clonedReq;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PaginatorI18n } from '../helpers/PaginatorI18n';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n OverlayModule,\r\n CommonModule,\r\n MatSelectModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatDialogModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatAutocompleteModule,\r\n MatSidenavModule,\r\n MatPaginatorModule,\r\n MatIconModule,\r\n MatListModule,\r\n NgSelectModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatStepperModule,\r\n MatProgressSpinnerModule,\r\n MatButtonModule,\r\n MatSlideToggleModule\r\n ], exports: [\r\n MatSlideToggleModule,\r\n MatStepperModule,\r\n MatSelectModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatDialogModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatAutocompleteModule,\r\n MatSidenavModule,\r\n OverlayModule,\r\n MatPaginatorModule,\r\n MatIconModule,\r\n MatListModule,\r\n NgSelectModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatProgressSpinnerModule\r\n ],\r\n providers: [\r\n {\r\n provide: MatPaginatorIntl, deps: [TranslateService],\r\n useFactory: (translateService: TranslateService) => new PaginatorI18n(translateService).getPaginatorIntl()\r\n },\r\n {\r\n provide: MatDialogRef,\r\n useValue: {}\r\n }, {\r\n provide: MAT_DIALOG_DATA,\r\n useValue: {}\r\n }\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","export class CreateActivity {\r\n borrowerActivity: {\r\n id: number,\r\n nameEn: string,\r\n nameAr: string\r\n }\r\n}\r\n\r\nexport class UpdateActivity {\r\n borrowerActivity: {\r\n id: number,\r\n nameEn: string,\r\n nameAr: string,\r\n isActive: true,\r\n hasDetails: true\r\n }\r\n}\r\n\r\nexport enum BorrowerActivity {\r\n Active = 0,\r\n InActive = 1,\r\n Both = 2\r\n}\r\n\r\nexport enum ConfigType {\r\n loan = 10,\r\n invest = 20,\r\n fees = 30\r\n}\r\n\r\nexport class ConfigObject {\r\n id: number;\r\n maxInvestLimitRatio: number;\r\n minFinancingLimit: number;\r\n maxIndividualInvestorLimitYearly: number;\r\n maxValueForIndividualInvest: number;\r\n registrationFees: number;\r\n minLoanAmount: number;\r\n maxLoanAmount: number;\r\n guaranteeCoverageRatio: number;\r\n configType: ConfigType\r\n}","import { UserType } from \"../registration/userType.enum\";\r\n\r\nexport class JwtClaims {\r\n amr: string[];\r\n AT_HASH: string;\r\n aud: string;\r\n AUTH_TIME: number\r\n email: string;\r\n EMAIL_VERIFIED: boolean\r\n exp: number;\r\n iat: number\r\n idp: string;\r\n iss: string;\r\n nbf: number\r\n nonce: string;\r\n PHONE_NUMBER: string;\r\n PHONE_NUMBER_VERIFIED: boolean\r\n preferred_username: string;\r\n role: UserType;\r\n S_HASH: string;\r\n sid: string;\r\n sub: string;\r\n UNIQUE_NAME: string;\r\n}\r\n","import { LoanDetails } from \"../loan/loan.model\"\r\n\r\nexport class InvesmentDetails {\r\n constructor(\r\n public investmentDtails: InvestmentDtails,\r\n public loan: LoanDetails\r\n ) { }\r\n}\r\n\r\nexport class InvestmentDtails {\r\n InvestRefNo: number;\r\n LoanAmount: number;\r\n CollectedAmount: number;\r\n InvestmentAmount: number;\r\n LoanRefNo?: number;\r\n InvestDate: string;\r\n InvestPercentage: string;\r\n}\r\n","export class Gaurantor {\r\n isIndividual: boolean;\r\n loanId: any;\r\n id: any;\r\n guarantorName: any;\r\n idNmuber: any;\r\n idIssuePlace: any;\r\n guarantorType: any;\r\n haveCar: any;\r\n totalSalary: number;\r\n noFamilyMember: number;\r\n accodomation: any;\r\n crNumber: any;\r\n companyName: any;\r\n otherIncomes: any;\r\n idIssueDate:any;\r\n idExpiryDate: any;\r\n dateOfBirth: any;\r\n rentAmount: any;\r\n guarantorAddress: any;\r\n socialStatus: SocialStatus;\r\n accommodation: GaurantorAccommodation;\r\n tableName: string;\r\n typeName: string;\r\n guid : string;\r\n}\r\n\r\nexport enum SocialStatus {\r\n Mareied,\r\n Single\r\n}\r\nexport enum GaurantorAccommodation {\r\n Owned,\r\n OwnedbyFather,\r\n CompanyProvided,\r\n Rent,\r\n Rent_with_Family\r\n}\r\nexport class GaurantorAddress {\r\n poBox: string;\r\n zipCode: string;\r\n city: string;\r\n homePhome: string;\r\n cellPhone: string;\r\n}\r\nexport enum GaurantorTypes {\r\n company,\r\n est,\r\n citizen,\r\n military,\r\n expat,\r\n other,\r\n}\r\n","import { RiskAverage } from \"../registration/userType.enum\";\r\nimport { Gaurantor } from \"./gaurantor\";\r\n\r\nexport class Loan {\r\n id: number;\r\n amount: string;\r\n tenure: any;\r\n frequency: any;\r\n activityTypeId: string;\r\n}\r\n\r\nexport class CreateLoan {\r\n loan: {\r\n id: number;\r\n amount: any;\r\n periodInMonths: any;\r\n paymentMechanismId: any;\r\n periodInMonthsString: string;\r\n paymentMechanismString: string;\r\n activityTypeId: any;\r\n aboutYourself: any;\r\n imageUrl: any;\r\n isSimahConsentChecked: any;\r\n isActivityProfitable: any;\r\n purposes: any;\r\n userId: any;\r\n waivedRents: any;\r\n guaranteeCoverages: Guarantee[];\r\n toatalGuaranteeValues: number;\r\n guarantors: Gaurantor[]\r\n lastThreeYearsInComes: []\r\n hasGaurentor:boolean\r\n }\r\n}\r\nexport class Guarantee {\r\n id: number;\r\n guaranteeId: string;\r\n guaranteeValue: number;\r\n}\r\n\r\nexport class OpenOpportunity {\r\n id: number;\r\n riskStyle: string;\r\n activityTypeId: number;\r\n activityType: string;\r\n activityTypeString: string;\r\n paymentMechanism: any;\r\n paymentMechanismId: number;\r\n amount: number;\r\n completePercentage: number;\r\n periodInMonths: number;\r\n monthlyInstallmentAmount: number;\r\n annualProfitRate: number;\r\n riskAverage: string;\r\n isComplete: boolean;\r\n imageUrl: any;\r\n crName:string;\r\n}\r\n\r\nexport class ApproveLoan {\r\n approveLoan: {\r\n loanId: number;\r\n riskAverage: number;\r\n annualProfitRate: number;\r\n minimumInvestmentAmount: number;\r\n availableOpportunityInDays: number;\r\n firstPaymentDate: string;\r\n creditReportFile:File\r\n }\r\n}\r\n\r\nexport class Refund {\r\n refund: {\r\n lenderId: number,\r\n iban: string,\r\n iqamaNumber: string,\r\n refundAmount: number\r\n }\r\n}\r\n\r\nexport class LoanDetails {\r\n constructor(\r\n public id: number,\r\n public amount: number,\r\n public periodInMonths: number,\r\n public paymentMechanismId: number,\r\n public periodInMonthsString: string,\r\n public paymentMechanismString: string,\r\n public activityTypeId: number,\r\n public activityTypeString: string,\r\n public aboutYourself: string,\r\n public imageUrl: string,\r\n public isSimahConsentChecked: boolean,\r\n public isActivityProfitable: boolean,\r\n public purposes: string,\r\n public userId: string,\r\n public waivedRents: any,\r\n public guaranteeCoverages: Guarantee[],\r\n public toatalGuaranteeValues: number,\r\n public guarantors: Gaurantor[],\r\n public lastThreeYearsInComes: [],\r\n public expiryDate: string,\r\n public remaingInvestmentTiming: string,\r\n public riskAverage:RiskAverage,\r\n public riskAverageString:string,\r\n public remaingAmount:number,\r\n public annualProfitRate:number,\r\n public minimumInvestmentAmount:number,\r\n public creditReport :string\r\n\r\n ) {\r\n }\r\n}\r\n","export class MainApiResult {\r\n constructor(\r\n public errors: string[],\r\n public succeeded: boolean,\r\n public data: any,\r\n public message: string) {\r\n }\r\n}\r\n","export enum UserType {\r\n Admin = 10,\r\n Borrower = 20, // before 0 \r\n\tLender = 30, // before 1\r\n\tBorrowerCorporate = 40 ,// before 2\r\n\tLenderCorporate = 50 // before 3\r\n}\r\nexport enum LoanDuration {\r\n SixMonth = 1,\r\n TwelveMonth = 2,\r\n EighteenMonth = 3,\r\n TwentyFourMonth = 4,\r\n ThirtyMonth = 5,\r\n ThirtySixMonth = 6,\r\n FortyTwoMonth = 7,\r\n FortyEightMonth = 8,\r\n Borrower,\r\n Lender,\r\n BorrowerCorporate,\r\n LenderCorporate,\r\n Admin = 10,\r\n}\r\nexport enum RiskAverage {\r\n High,\r\n Medium,\r\n Low\r\n}\r\nexport enum LoanStatus {\r\n Pending = 10,\r\n Approved = 20,\r\n Rejected = 30,\r\n Completed = 40,\r\n InProgress = 50,\r\n CLosed = 60\r\n}\r\n","import { MainApiResult } from './../../models/registration/main-response.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AppConfigService } from '../app-config.service';\r\nimport { feesSetting, investSetting, loanSetting } from '../../models/admin/faq.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingService {\r\n apiUrl: string;\r\n controlar: string = 'Confguration/';\r\n type: string = '/Create'\r\n\r\n constructor(private http: HttpClient, private config: AppConfigService) {\r\n this.apiUrl = this.config.getConfiguration().apiUrl + 'api/';\r\n }\r\n\r\n createLoanConfigration(body : loanSetting) {\r\n return this.http.post(`${this.apiUrl}${this.controlar}loan${this.type}`, body)\r\n }\r\n\r\n createInvestConfigration(body : investSetting) {\r\n return this.http.post(`${this.apiUrl}${this.controlar}Invest${this.type}`, body)\r\n }\r\n\r\n createFeesConfigration(body : feesSetting) {\r\n return this.http.post(`${this.apiUrl}${this.controlar}Fees${this.type}`, body)\r\n }\r\n\r\n getAllConfig(){\r\n return this.http.get(`${this.apiUrl}${this.controlar}GetAll`);\r\n }\r\n}\r\n","import { AppConfig } from './../models/common/app-config.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ServerConfigs } from '../models/common/server-configs.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppConfigService {\r\n config: any;\r\n\r\n constructor(\r\n\r\n ) { }\r\n\r\n public loadConfig() {\r\n return fetch('./assets/configs/config.json')\r\n .then(response => response.json())\r\n .then(data => {\r\n this.config = data;\r\n })\r\n .catch((error) => {\r\n console.error('Error:', error);\r\n });;\r\n\r\n // return this.http.get('./assets/configs/config.json')\r\n // .toPromise()\r\n // .then((config: any) => {\r\n // this.config = config['data'];\r\n // console.log('Server Configurations >> ', this.config);\r\n\r\n // // this.setAuthConfigs(config);\r\n // })\r\n // .catch((err: any) => {\r\n // console.error(err);\r\n // });\r\n }\r\n\r\n getConfiguration(): ServerConfigs {\r\n const active = this.config.activeServer;\r\n return this.config[active];\r\n }\r\n\r\n getConf(active: string): ServerConfigs {\r\n\r\n return this.config['active'];\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MainApiResult } from '../models/registration/main-response.model';\r\nimport { AppConfigService } from './app-config.service';\r\n\r\nexport interface Filter {\r\n pageSize?:any,\r\n PageNumber?:any\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BorrowerService {\r\n private apiUrl: string;\r\n private controlor: string;\r\n constructor(private http: HttpClient, private config: AppConfigService) {\r\n this.apiUrl = this.config.getConfiguration().apiUrl + 'api/';\r\n this.controlor = 'Borrower/';\r\n }\r\n getAllPositions() {\r\n return this.http.get(this.apiUrl + 'Lookup/DelegatePositions/getAll');\r\n }\r\n getAllFaq(faqForId) {\r\n return this.http.get(this.apiUrl + 'FAQ/Lookup', {\r\n params: {\r\n faqQuestionFor: faqForId,\r\n pageNumber:1,\r\n pageSize:100\r\n }\r\n });\r\n }\r\n create(body: { email: string; }) {\r\n return this.http.post(this.apiUrl + 'Borrower/create', body);\r\n }\r\n getAllBorrower(params : Filter){\r\n return this.http.get(`${this.apiUrl}${this.controlor}RequestedBorrowers/getAll`,{\r\n params: {...params}\r\n });\r\n }\r\n getAllAprrovedBorrower(params : Filter){\r\n return this.http.get(`${this.apiUrl}${this.controlor}ApprovedBorrowers/getAll`,{\r\n params: {...params}\r\n });\r\n }\r\n getBorrowerById(id : number){\r\n return this.http.get(`${this.apiUrl}${this.controlor}${id}`);\r\n }\r\n approveBorrower(body : { borrowerId: number}){\r\n return this.http.post(`${this.apiUrl}${this.controlor}ApproveBorrower`, body)\r\n }\r\n rejectBorrower(body : { borrowerId: number, rejectReason: string}){\r\n return this.http.post(`${this.apiUrl}${this.controlor}RejectBorrower`, body)\r\n }\r\n deleteBorrower(id: number){\r\n return this.http.delete(`${this.apiUrl}${this.controlor}Delete/${id}`);\r\n }\r\n activate(body: { borrowerId: number }) {\r\n return this.http.put(`${this.apiUrl}${this.controlor}Activation`, body);\r\n }\r\n\r\n dActivate(body: { borrowerId: number }) {\r\n return this.http.put(`${this.apiUrl}${this.controlor}DeActivation`, body\r\n );\r\n }\r\n getBorrowerSummery(borrowerId) {\r\n return this.http.get(`${this.apiUrl}${this.controlor}Summery`\r\n , {\r\n params: {\r\n BorrowerId: borrowerId,\r\n }\r\n }\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbDateStruct, NgbDateAdapter, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n/**\r\n * This Service handles how the date is represented in scripts i.e. ngModel.\r\n */\r\n@Injectable()\r\nexport class CustomAdapter extends NgbDateAdapter {\r\n\r\n readonly separator = '-';\r\n\r\n fromModel(value: string | null): NgbDateStruct | null {\r\n if (value && typeof value === 'string') {\r\n const date = value.split(this.separator);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10)\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n toModel(date: NgbDateStruct | null): string | null {\r\n return date ? date.day + this.separator + date.month + this.separator + date.year : null;\r\n }\r\n}\r\n/**\r\n * This Service handles how the date is rendered and parsed from keyboard i.e. in the bound input field.\r\n */\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n readonly separator = '-';\r\n parse(value: string): NgbDateStruct | null {\r\n if (value) {\r\n const date = value.split(this.separator);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10)\r\n };\r\n }\r\n return null;\r\n }\r\n format(date: NgbDateStruct | null): string {\r\n return date ? date.day + this.separator + date.month + this.separator + date.year : null;\r\n }\r\n}\r\n","\r\nimport { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst ENWEEKDAYS = ['Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sau', 'Sun'];\r\n// const MONTHS = [\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// const ENMONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\nconst MONTHS = ['01', '02', ' 03', ' 04', ' 05', ' 06', '07', '08', '09', '10', '11', '12'];\r\nconst ENMONTHS = ['01', '02', ' 03', ' 04', ' 05', ' 06', '07', '08', '09', '10', '11', '12'];\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GrogorianI18nService extends NgbDatepickerI18n {\r\n constructor(\r\n public translate: TranslateService\r\n ) {\r\n super();\r\n }\r\n getWeekdayShortName(weekday: number) {\r\n if (this.translate.currentLang === 'ar-EG') {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n else {\r\n return ENWEEKDAYS[weekday - 1];\r\n }\r\n }\r\n\r\n getMonthShortName(month: number) {\r\n if (this.translate.currentLang === 'ar-EG') {\r\n return MONTHS[month - 1];\r\n }\r\n else {\r\n return ENMONTHS[month - 1];\r\n }\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n\r\n override getWeekdayLabel(weekday: number, width?: TranslationWidth): string {\r\n return \"\";\r\n }\r\n}\r\n","\r\nimport { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst ENWEEKDAYS = ['Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sau', 'Sun'];\r\n// const MONTHS = [\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// const ENMONTHS = ['Moharram', 'Safar', 'Rabi al-Awwal', 'Rabi al-Thani', 'Jumādá al-Ūlá',\r\n// 'Jumādá al-Ākhirah', 'Rajab', 'Shabaan', 'Ramadan', 'Shawwal', 'Dhū al-Qa‘dah', 'Dhū al-Ḥijjah'];\r\nconst MONTHS = ['01', '02', ' 03', ' 04', ' 05', ' 06', '07', '08', '09', '10', '11', '12'];\r\nconst ENMONTHS = ['01', '02', ' 03', ' 04', ' 05', ' 06', '07', '08', '09', '10', '11', '12'];\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IslamicI18nService extends NgbDatepickerI18n {\r\n constructor(\r\n public translate: TranslateService\r\n ) {\r\n super();\r\n }\r\n getWeekdayShortName(weekday: number) {\r\n if (this.translate.currentLang === 'ar-EG') {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n else {\r\n return ENWEEKDAYS[weekday - 1];\r\n }\r\n }\r\n\r\n getMonthShortName(month: number) {\r\n if (this.translate.currentLang === 'ar-EG') {\r\n return MONTHS[month - 1];\r\n }\r\n else {\r\n return ENMONTHS[month - 1];\r\n }\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n \r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n\r\n getWeekdayLabel(weekday: number, width?: TranslationWidth): string {\r\n return \"\";\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { InvesmentDetails } from '../models/lender/investment';\r\nimport { MainApiResult } from '../models/registration/main-response.model';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { LoanService } from './loan.service';\r\n\r\nexport interface Filter {\r\n pageSize?: any,\r\n PageNumber?: any\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class LenderService {\r\n private apiUrl: string;\r\n private controlor: string;\r\n constructor(\r\n private http: HttpClient,\r\n private config: AppConfigService,\r\n private loanService:LoanService) {\r\n this.apiUrl = this.config.getConfiguration().apiUrl + 'api/';\r\n this.controlor = 'lender/';\r\n }\r\n create(body: { email: string; }) {\r\n return this.http.post(`${this.apiUrl}${this.controlor}create`, body);\r\n }\r\n getAllLender(params: Filter) {\r\n return this.http.get(`${this.apiUrl}${this.controlor}getAll`, {\r\n params: { ...params }\r\n });\r\n }\r\n getLenderInvestments(lenderId) {\r\n return this.http.get(`${this.apiUrl}${this.controlor}${lenderId}/investments`)\r\n }\r\n deleteLender(id: number) {\r\n return this.http.delete(`${this.apiUrl}${this.controlor}Delete/${id}`);\r\n }\r\n activate(body: { lenderId: number }) {\r\n return this.http.put(`${this.apiUrl}${this.controlor}Activation`, body);\r\n }\r\n\r\n dActivate(body: { lenderId: number }) {\r\n return this.http.put(`${this.apiUrl}${this.controlor}DeActivation`, body\r\n );\r\n }\r\n getLenderSummery(lenderId) {\r\n return this.http.get(`${this.apiUrl}${this.controlor}Summery`\r\n , {\r\n params: {\r\n LenderId: lenderId,\r\n }\r\n }\r\n )\r\n }\r\n getInvestmentDetails(id) {\r\n return this.http.get(`${this.apiUrl}${this.controlor}${id}/investmentDetails`)\r\n .pipe(map(\r\n response => {\r\n return this.adaptInvest(response);\r\n }\r\n )\r\n );\r\n }\r\n adaptInvest(response): InvesmentDetails {\r\n console.log(response.data.investmentDtails);\r\n \r\n return new InvesmentDetails(\r\n response.data.investmentDtails,\r\n this.loanService.ApadtLoan(response.data.loan)\r\n );\r\n }\r\n}\r\n","import { CreateLoan, Guarantee, LoanDetails } from 'src/app/core/models/loan/loan.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { calcDto } from 'src/app/shared/calculator/calculator.component';\r\nimport { MainApiResult } from '../models/registration/main-response.model';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { LookupsService } from './lookups.service';\r\nimport { RiskAverage } from '../models/registration/userType.enum';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoanService {\r\n apiUrl: string;\r\n key: string = 'Loan/';\r\n constructor(\r\n private http: HttpClient,\r\n private config: AppConfigService,\r\n private lookupServie: LookupsService,\r\n private translateService: TranslateService) {\r\n this.apiUrl = this.config.getConfiguration().apiUrl + 'api/';\r\n }\r\n\r\n postCalculation(body: calcDto) {\r\n return this.http.post(`${this.apiUrl}${this.key}Calculate`, body);\r\n }\r\n\r\n postLoan(body: CreateLoan) {\r\n return this.http.post(`${this.apiUrl}${this.key}Create`, body);\r\n }\r\n getBorrowerPendingLoans(borrowerId) {\r\n return this.http.post(`${this.apiUrl}${this.key}GetBorrowerPendingLoans`, borrowerId)\r\n }\r\n getAllOpenOpportunity() {\r\n return this.http.get(`${this.apiUrl}${this.key}GetAllOpenOpportunity`);\r\n }\r\n getAllCompletedOpportunity() {\r\n return this.http.get(`${this.apiUrl}${this.key}GetAllCompletedOpportunity`);\r\n }\r\n getLoanById(loan: { id: number }) {\r\n return this.http.post(`${this.apiUrl}${this.key}get`, loan)\r\n }\r\n updateLoan(body: CreateLoan) {\r\n return this.http.post(`${this.apiUrl}${this.key}Update`, body);\r\n }\r\n getLoansByStaus(body: { borrowerId: number, status: number }) {\r\n return this.http.post(`${this.apiUrl}${this.key}GetLoansByBorrowerId`, body);\r\n }\r\n getHomeSummary() {\r\n return this.http.get(`${this.apiUrl}${this.key}GetSummary`);\r\n }\r\n validateOnGuaranteeValues(body: { checkGuaranteeCoverageRatioDto: { guaranteeAmount: number, loanAmount: number } }) {\r\n return this.http.post(`${this.apiUrl}${this.key}CheckGuaranteeCoverageRatio`, body);\r\n }\r\n uploadImg(img) {\r\n return this.http.post(`${this.apiUrl}Document/UplaodFile`, img, {\r\n headers: {\r\n 'skip-loader': 'true'\r\n }\r\n })\r\n }\r\n ApadtLoan(loan: any): LoanDetails {\r\n return new LoanDetails(\r\n loan.id,\r\n loan.amount,\r\n this.lookupServie.loanLookup.durationInMonths.find((item: any) => item.id === loan.periodInMonths).duration,\r\n loan.paymentMechanismId,\r\n this.lookupServie.loanLookup.durationInMonths.find((item: any) => item.id === loan.periodInMonths).duration,\r\n this.lookupServie.loanLookup.paymentMechanism.find((item: any) => item.id === loan.paymentMechanismId).name,\r\n loan.activityTypeId,\r\n this.lookupServie.loanLookup.activesTypes.find((item: any) => item.id === loan.activityTypeId).name,\r\n loan.aboutYourself,\r\n this.apiUrl+'Document/DownloadFile?id='+loan.imageUrl,\r\n true,\r\n loan.isActivityProfitable,\r\n loan.purposes,\r\n loan.userId,\r\n null,\r\n this.adaptGuarantee(loan.guaranteeCoverages),\r\n loan.guaranteeCoverages && loan.guaranteeCoverages.length ? loan.guaranteeCoverages.reduce((a, b) => a + b.guaranteeValue, 0) : 0,\r\n loan.guarantors,\r\n loan.lastThreeYearsInComes,\r\n loan.expiryDate,\r\n loan.remaingInvestmentTiming,\r\n loan.riskAverage,\r\n this.getRiskName(loan),\r\n loan.remaingAmount,\r\n loan.annualProfitRate,\r\n loan.minimumInvestmentAmount,\r\n loan.creditReport\r\n\r\n )\r\n }\r\n getRiskName(openOpportunity) {\r\n switch (openOpportunity.riskAverage) {\r\n case RiskAverage.High: {\r\n return this.translateService.instant('High');\r\n }\r\n case RiskAverage.Low: {\r\n return this.translateService.instant('Low');\r\n }\r\n case RiskAverage.Medium: {\r\n return this.translateService.instant('Medium');\r\n }\r\n }\r\n }\r\n adaptGuarantee(guaranteeCoverages): Guarantee[] {\r\n guaranteeCoverages.forEach(element => {\r\n element.guaranteType = this.lookupServie.loanLookup.kindGuaranteType\r\n .find((item: any) => item.id === element.guaranteeId).name;\r\n });\r\n return guaranteeCoverages\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MainApiResult } from '../models/registration/main-response.model';\r\nimport { AppConfigService } from './app-config.service';\r\nexport interface Filter {\r\n pageSize?: any,\r\n PageNumber?: any\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LookupsService {\r\n apiUrl: string;\r\n controlar: string = 'Lookup/';\r\n type: string = 'getAll'\r\n constructor(private http: HttpClient, private config: AppConfigService) {\r\n this.apiUrl = this.config.getConfiguration().apiUrl + 'api/';\r\n }\r\n\r\n getAllLoanDuration() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}loanDuration/${this.type}`);\r\n }\r\n\r\n getAllPaymentMechanism() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}PaymentMechanism/${this.type}`);\r\n }\r\n\r\n getAllActivityTypes() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}BorrowerActivities/${this.type}`);\r\n }\r\n\r\n getAllInKindGuaranteType() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}InKindGuaranteType/${this.type}`);\r\n }\r\n\r\n getAllGuarantorType() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}GuarantorType/${this.type}`);\r\n }\r\n\r\n getAllDelegatePositions() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}DelegatePositions/${this.type}`);\r\n }\r\n\r\n getAllBorrowerActivities() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}BorrowerActivities/${this.type}`);\r\n }\r\n\r\n getEmployeeTypes() {\r\n return this.http.get(`${this.apiUrl}${this.controlar}EmployeeType/GetAll`);\r\n }\r\n loanLookup: {\r\n durationInMonths: any,\r\n paymentMechanism: any,\r\n activesTypes: any,\r\n kindGuaranteType: any,\r\n GuarantorType: any\r\n };\r\n}\r\n","import { SignalrService } from './signalr.service';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { JwtClaims } from '../models/identity/jwtCliams';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { MainApiResult } from '../models/registration/main-response.model';\r\n\r\n@Injectable()\r\nexport class SecurityService {\r\n private headers: HttpHeaders;\r\n private jwt = new JwtHelperService();\r\n private authenticationSource = new Subject();\r\n authenticationChallenge$ = this.authenticationSource.asObservable();\r\n private authorityUrl: string;\r\n public IsAuthorized = false;\r\n userData: any;\r\n constructor(\r\n private _router: Router,\r\n private storage: StorageService,\r\n private loader: NgxUiLoaderService,\r\n private http: HttpClient,\r\n private appConfigService: AppConfigService\r\n ) {\r\n this.headers = new HttpHeaders();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.headers.append('Accept', 'application/json');\r\n\r\n this.authorityUrl = this.appConfigService.getConfiguration().authUrl;\r\n this.appConfigService.getConfiguration();\r\n // this.appConfigService.getConfiguration().authUrl\r\n // conigs.default[conigs.default.activeServer].authUrl;\r\n\r\n if (this.storage.retrieve('authorizationDataIdToken')) {\r\n this.IsAuthorized = true;\r\n this.authenticationSource.next(true);\r\n } else {\r\n this.IsAuthorized = false;\r\n this.authenticationSource.next(false);\r\n }\r\n // logout when the token is removed or changes manually\r\n window.addEventListener('storage', (e) => {\r\n if (e.key === 'authorizationDataIdToken') {\r\n if (e.newValue !== e.oldValue) {\r\n this.IsAuthorized = false;\r\n this.authenticationSource.next(false);\r\n this.applyLogOff();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ResetAuthorizationData() {\r\n this.storage.clear('authorizationData');\r\n this.storage.clear('authorizationDataRefresh');\r\n this.storage.clear('authorizationDataIdToken');\r\n this.storage.clear('authorizationDataCode');\r\n this.IsAuthorized = false;\r\n }\r\n\r\n public GetToken(): any {\r\n return this.storage.retrieve('authorizationData');\r\n }\r\n public setAuthorizationData(access_token: string, id_token: any, code: any) {\r\n this.storage.store('authorizationData', access_token);\r\n this.storage.store('authorizationDataIdToken', id_token);\r\n this.storage.store('authorizationDataCode', code);\r\n this.IsAuthorized = true;\r\n window.location.href =\r\n this.appConfigService.getConfiguration().baseUrl + 'auth/callback';\r\n }\r\n\r\n public setRefreshTokenData(\r\n access_token: any,\r\n id_token: any,\r\n refresh_token: any\r\n ) {\r\n this.storage.store('authorizationData', access_token);\r\n this.storage.store('authorizationDataIdToken', id_token);\r\n this.storage.store('authorizationDataRefresh', refresh_token);\r\n this.storage.storeToSession('authorizationDataIdToken', id_token);\r\n }\r\n\r\n public Authorize() {\r\n let authorizationUrl = this.authorityUrl + '/connect/authorize';\r\n let client_id = this.appConfigService.getConfiguration().client_id;\r\n let redirect_uri =\r\n this.appConfigService.getConfiguration().baseUrl + 'signin-oidc';\r\n let response_type = 'code token id_token';\r\n let scope = 'openid profile offline_access loan';\r\n let nonce = 'N' + Math.random() + '' + Date.now();\r\n let state = Date.now() + '' + Math.random();\r\n let client_secret = this.appConfigService.getConfiguration().client_secret;\r\n\r\n this.storage.store('authStateControl', state);\r\n this.storage.store('authNonce', nonce);\r\n let url =\r\n authorizationUrl +\r\n '?' +\r\n 'response_type=' +\r\n encodeURI(response_type) +\r\n '&' +\r\n 'client_id=' +\r\n encodeURI(client_id) +\r\n '&' +\r\n 'client_secret=' +\r\n encodeURI(client_secret) +\r\n '&' +\r\n 'redirect_uri=' +\r\n encodeURI(redirect_uri) +\r\n '&' +\r\n 'scope=' +\r\n encodeURI(scope) +\r\n '&' +\r\n 'nonce=' +\r\n encodeURI(nonce) +\r\n '&' +\r\n 'state=' +\r\n encodeURI(state) +\r\n '&' +\r\n 'culture=' +\r\n sessionStorage.getItem('lang');\r\n window.location.href = url;\r\n }\r\n\r\n public AuthorizedCallback() {\r\n // this.ResetAuthorizationData();\r\n let hash = window.location.hash.substr(1);\r\n let result: any = hash\r\n .split('&')\r\n .reduce(function (result: any, item: string) {\r\n let parts = item.split('=');\r\n result[parts[0]] = parts[1];\r\n return result;\r\n }, {});\r\n\r\n let token = '';\r\n let id_token = '';\r\n let code = '';\r\n let authResponseIsValid = false;\r\n\r\n if (!result.error) {\r\n if (result.state !== this.storage.retrieve('authStateControl')) {\r\n console.log('AuthorizedCallback incorrect state');\r\n } else {\r\n token = result.access_token;\r\n id_token = result.id_token;\r\n code = result.code;\r\n\r\n let dataIdToken: any = this.getDataFromToken(id_token);\r\n // validate nonce\r\n if (dataIdToken.nonce !== this.storage.retrieve('authNonce')) {\r\n console.log('AuthorizedCallback incorrect nonce');\r\n } else {\r\n this.storage.clear('authNonce');\r\n this.storage.clear('authStateControl');\r\n\r\n authResponseIsValid = true;\r\n console.log(\r\n 'AuthorizedCallback state and nonce validated, returning access token'\r\n );\r\n }\r\n }\r\n }\r\n if (authResponseIsValid) {\r\n this.setAuthorizationData(token, id_token, code);\r\n }\r\n }\r\n\r\n public Logoff() {\r\n this.loader.start();\r\n let authorizationUrl = this.authorityUrl + '/connect/endsession';\r\n let id_token_hint = this.storage.retrieve('authorizationDataIdToken');\r\n let post_logout_redirect_uri = location.origin + '/';\r\n\r\n let url =\r\n authorizationUrl +\r\n '?' +\r\n 'id_token_hint=' +\r\n encodeURI(id_token_hint) +\r\n '&' +\r\n 'post_logout_redirect_uri=' +\r\n encodeURI(post_logout_redirect_uri);\r\n console.log('Logoff()');\r\n this.ResetAuthorizationData();\r\n\r\n // emit observable\r\n this.authenticationSource.next(false);\r\n window.location.href = url;\r\n this.storage.clear('id');\r\n }\r\n\r\n public Handle403Error() {\r\n this._router.navigate(['auth/forbidden']);\r\n }\r\n\r\n refreshAccessToken(): Observable {\r\n let authorizationUrl = this.authorityUrl + '/connect/token';\r\n let refreshToken = this.storage.retrieve('authorizationDataRefresh');\r\n const payload = new HttpParams()\r\n .append('grant_type', 'refresh_token')\r\n .append('refresh_token', refreshToken)\r\n .append('redirect_uri', this.appConfigService.getConfiguration().baseUrl + '/signin-oidc')\r\n .append('client_id', this.appConfigService.getConfiguration().client_id)\r\n .append('client_secret', this.appConfigService.getConfiguration().client_secret);\r\n\r\n return this.http.post(authorizationUrl, payload, {\r\n headers:{\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n }\r\n });\r\n }\r\n\r\n private applyLogOff() {\r\n let authorizationUrl = this.authorityUrl + '/connect/endsession';\r\n let id_token_hint = this.storage.retrieveFromSession(\r\n 'authorizationDataIdToken'\r\n );\r\n // sessionStorage.getItem('authorizationDataIdToken');\r\n let post_logout_redirect_uri = location.origin + '/';\r\n\r\n let url =\r\n authorizationUrl +\r\n '?' +\r\n 'id_token_hint=' +\r\n encodeURI(id_token_hint) +\r\n '&' +\r\n 'post_logout_redirect_uri=' +\r\n encodeURI(post_logout_redirect_uri);\r\n window.location.href = url;\r\n }\r\n\r\n private urlBase64Decode(str: string) {\r\n let output = str.replace('-', '+').replace('_', '/');\r\n switch (output.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n output += '==';\r\n break;\r\n case 3:\r\n output += '=';\r\n break;\r\n default:\r\n throw 'Illegal base64url string!';\r\n }\r\n\r\n return window.atob(output);\r\n }\r\n\r\n private getDataFromToken(token: any) {\r\n let data = {};\r\n if (typeof token !== 'undefined') {\r\n let encoded = token.split('.')[1];\r\n data = JSON.parse(this.urlBase64Decode(encoded));\r\n }\r\n return data;\r\n }\r\n\r\n public currentUser(): JwtClaims {\r\n return this.adaptJwtClaims(\r\n this.jwt.decodeToken(this.storage.retrieve('authorizationData'))\r\n );\r\n }\r\n\r\n adaptJwtClaims(decodedJwt: any): JwtClaims {\r\n if (!decodedJwt) return;\r\n const jwt = new JwtClaims();\r\n jwt.sub = decodedJwt.sub;\r\n jwt.amr = decodedJwt.amr;\r\n jwt.AT_HASH = decodedJwt.at_hash;\r\n jwt.aud = decodedJwt.aud;\r\n jwt.AUTH_TIME = decodedJwt.auth_time;\r\n jwt.email = decodedJwt.email;\r\n jwt.EMAIL_VERIFIED = decodedJwt.email_verified;\r\n jwt.exp = decodedJwt.exp;\r\n jwt.iat = decodedJwt.iat;\r\n jwt.idp = decodedJwt.idp;\r\n jwt.iss = decodedJwt.iss;\r\n jwt.nbf = decodedJwt.nbf;\r\n jwt.nonce = decodedJwt.nonce;\r\n jwt.PHONE_NUMBER = decodedJwt.phone_number;\r\n jwt.PHONE_NUMBER_VERIFIED = decodedJwt.phone_number_verified;\r\n jwt.preferred_username = decodedJwt.preferred_username;\r\n jwt.role = +decodedJwt.role;\r\n jwt.S_HASH = decodedJwt.s_hash;\r\n jwt.sid = decodedJwt.sid;\r\n jwt.sid = decodedJwt.sid;\r\n jwt.UNIQUE_NAME = decodedJwt.unique_name;\r\n return jwt;\r\n }\r\n forgotPassword(email: string) {\r\n return this.http.post(\r\n `${this.authorityUrl}/User/ForgotPasswordConfirmation`,\r\n {\r\n email: email,\r\n }\r\n );\r\n }\r\n resertPasswor(body: {\r\n email: any;\r\n Code: any;\r\n Password: any;\r\n ConfirmPassword: any;\r\n }) {\r\n return this.http.post(\r\n `${this.authorityUrl}/User/ResetPassword`,\r\n body\r\n );\r\n }\r\n activateAccount(body: { email: any; Token: any }) {\r\n return this.http.post(\r\n `${this.authorityUrl}/User/ActivateAccount`,\r\n body\r\n );\r\n }\r\n}\r\n","import { SecurityService } from 'src/app/core/services/security.service';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n HttpTransportType,\r\n HubConnection,\r\n HubConnectionBuilder,\r\n LogLevel,\r\n} from '@microsoft/signalr';\r\n\r\n@Injectable()\r\nexport class SignalrService {\r\n private _hubConnection: HubConnection;\r\n private SignalrHubUrl: string = '';\r\n constructor(\r\n private configurationService: AppConfigService,\r\n private securityService: SecurityService\r\n ) {\r\n this.SignalrHubUrl = this.configurationService.getConfiguration().authUrl;\r\n this.init();\r\n }\r\n\r\n public stop() {\r\n this._hubConnection.stop();\r\n }\r\n\r\n private init() {\r\n this.register();\r\n this.stablishConnection();\r\n this.registerHandlers();\r\n }\r\n\r\n private register() {\r\n this._hubConnection = new HubConnectionBuilder()\r\n .withUrl(this.SignalrHubUrl + '/hub/logout', {\r\n transport: HttpTransportType.WebSockets,\r\n skipNegotiation: true,\r\n })\r\n .configureLogging(LogLevel.Information)\r\n .withAutomaticReconnect()\r\n .build();\r\n }\r\n\r\n private stablishConnection() {\r\n this._hubConnection\r\n .start()\r\n .then(() => {\r\n console.log('Hub connection started');\r\n })\r\n .catch(() => {\r\n console.log('Error while establishing connection');\r\n });\r\n }\r\n\r\n private registerHandlers() {\r\n this._hubConnection.on('LogoutHandler', (usr) => {\r\n console.log(usr);\r\n let user = this.securityService.currentUser();\r\n if (user.sub == usr.userId) {\r\n this.securityService.Logoff();\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class StorageService {\r\n private storage: any;\r\n private session: any;\r\n constructor() {\r\n this.storage = localStorage;\r\n this.session = sessionStorage;\r\n }\r\n\r\n public retrieve(key: string): any {\r\n let item = this.storage.getItem(key);\r\n\r\n if (item && item !== 'undefined') {\r\n return JSON.parse(this.storage.getItem(key));\r\n }\r\n return;\r\n }\r\n\r\n public store(key: string, value: any) {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n public clear(key: string) {\r\n this.storage.removeItem(key);\r\n }\r\n\r\n\r\n public retrieveFromSession(key: string): any {\r\n let item = this.session.getItem(key);\r\n\r\n if (item && item !== 'undefined') {\r\n return JSON.parse(this.session.getItem(key));\r\n }\r\n return;\r\n }\r\n\r\n public storeToSession(key: string, value: any) {\r\n this.session.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n public clearFromSession(key: string) {\r\n this.session.removeItem(key);\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class CRValidation {\r\n static StratWith7(): ValidatorFn {\r\n return (crNumControl: AbstractControl): ValidationErrors | null => {\r\n const id = crNumControl.value;\r\n const isNumeric = !isNaN(parseFloat(id)) && isFinite(id);\r\n if (!isNumeric || id.length !== 10) {\r\n return { inValidCR: true };\r\n }\r\n if (id[0] !== '7') {\r\n return { inValidCR: true };\r\n }\r\n return null;\r\n };\r\n }\r\n static noWhitespaceValidator(): ValidatorFn {\r\n\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const isWhitespace = (control.value || '').trim().length === 0;\r\n if (isWhitespace) {\r\n return { inValidCR: true };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n}\r\n","import { AbstractControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class NationalId {\r\n static NinValidation(): ValidatorFn {\r\n return (idControl: AbstractControl): ValidationErrors | null => {\r\n const id = idControl.value;\r\n const isNumeric = !isNaN(parseFloat(id)) && isFinite(id);\r\n if (!isNumeric || id.length !== 10) {\r\n return { inValidNIN: true };\r\n }\r\n if (id.indexOf('1') !== 0 && id.indexOf('2') !== 0 ) {\r\n return { inValidNIN: true };\r\n }\r\n else {\r\n const odds = [];\r\n odds.push(parseInt(id.substring(0, 1), 10) * 2);\r\n odds.push(parseInt(id.substring(1, 2), 10));\r\n odds.push(parseInt(id.substring(2, 3), 10) * 2);\r\n odds.push(parseInt(id.substring(3, 4), 10));\r\n odds.push(parseInt(id.substring(4, 5), 10) * 2);\r\n odds.push(parseInt(id.substring(5, 6), 10));\r\n odds.push(parseInt(id.substring(6, 7), 10) * 2);\r\n odds.push(parseInt(id.substring(7, 8), 10));\r\n odds.push(parseInt(id.substring(8, 9), 10) * 2);\r\n odds.push(parseInt(id.substring(9, 10), 10));\r\n\r\n const result = [];\r\n const remainders = [];\r\n result.push(Math.floor(odds[0] / 10));\r\n remainders.push(odds[0] % 10);\r\n result.push(0);\r\n remainders.push(0);\r\n result.push(Math.floor(odds[2] / 10));\r\n remainders.push(odds[2] % 10);\r\n result.push(0);\r\n remainders.push(0);\r\n result.push(Math.floor(odds[4] / 10));\r\n remainders.push(odds[4] % 10);\r\n result.push(0);\r\n remainders.push(0);\r\n result.push(Math.floor(odds[6] / 10));\r\n remainders.push(odds[6] % 10);\r\n result.push(0);\r\n remainders.push(0);\r\n result.push(Math.floor(odds[8] / 10));\r\n remainders.push(odds[8] % 10);\r\n let sum = '0';\r\n sum = (result[0] + remainders[0] + odds[1] + result[2] + remainders[2] + odds[3] + result[4] +\r\n remainders[4] + odds[5] + result[6] + remainders[6] + odds[7] + result[8] + remainders[8]);\r\n let ChecknoQ = 0;\r\n let ChecknoR = 0;\r\n\r\n ChecknoQ = parseInt(sum, 10) / 10;\r\n ChecknoR = parseInt(sum, 10) % 10;\r\n let ChkID = 0;\r\n ChkID = 10 - ChecknoR;\r\n if (odds[9] === 0 && ChecknoR === 0) {\r\n return null;\r\n }\r\n else {\r\n if (ChkID === parseInt(odds[9], 10)) {\r\n return null;\r\n }\r\n else {\r\n return { inValidNIN: true };\r\n }\r\n }\r\n }\r\n };\r\n }\r\n}\r\n","import { Component, Inject, OnInit} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FormHelper } from 'src/app/core/helpers/Forms/form.helper';\r\nimport { ConfigType } from 'src/app/core/models/admin/activity.model';\r\nimport { SettingService } from 'src/app/core/services/adminServices/setting.service';\r\nimport { LoanService } from 'src/app/core/services/loan.service';\r\n\r\nexport class calcDto{\r\n calculatorDto : calculatoyDto;\r\n}\r\n\r\nexport class calculatoyDto{\r\n amount: any;\r\n tenure: number\r\n frequency:number\r\n }\r\n\r\n@Component({\r\n selector: 'app-calculator',\r\n templateUrl: './calculator.component.html',\r\n styleUrls: ['./calculator.scss']\r\n})\r\n\r\n\r\nexport class CalculatorComponent implements OnInit {\r\n months = [];\r\n compoundInterests = [];\r\n records = [];\r\n calcDto : calcDto={calculatorDto:null};\r\n calculatorModel;\r\n calculatedDataIsLoaded: boolean = false;\r\n loanDurationValue: string;\r\n periodInMonths: string;\r\n repaymentSchedules;\r\n popupMode : boolean = false;\r\n displayedColumns = [\r\n 'sn', 'installment', 'principal', 'interest', 'os'\r\n ];\r\n loanConfig;\r\n calculatorForm: FormGroup;\r\n constructor(\r\n public formHelper: FormHelper,\r\n private settingService: SettingService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n private formBuilder: FormBuilder,\r\n private loanService: LoanService,\r\n private activeRoute: ActivatedRoute,\r\n private dialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.intiateForm();\r\n this.getAllConfig()\r\n if (this.data.calculateData) {\r\n this.months = this.data.lookups.durationInMonths;\r\n this.compoundInterests = this.data.lookups.paymentMechanism;\r\n this.calculatorForm.patchValue(this.data.calculateData);\r\n this.popupMode = true;\r\n this.onCalculate();\r\n }else{\r\n this.popupMode = false;\r\n this.months = this.activeRoute.snapshot.data.pageLookups.durationInMonths.data;\r\n this.compoundInterests = this.activeRoute.snapshot.data.pageLookups.paymentMechanism.data;\r\n }\r\n }\r\n\r\n getAllConfig() {\r\n this.settingService.getAllConfig().subscribe(res => {\r\n this.loanConfig = res.data.find(config => config.configType === ConfigType.loan);\r\n this.calculatorForm.get('amount').setValidators([Validators.required,Validators.min(this.loanConfig.minLoanAmount), Validators.max(this.loanConfig.maxLoanAmount)])\r\n })\r\n }\r\n intiateForm() {\r\n this.calculatorForm = this.formBuilder.group({\r\n amount: [null, [Validators.required,Validators.min(500),Validators.max(2000000)]],\r\n tenure: [null, Validators.required],\r\n frequency: [null, Validators.required]\r\n });\r\n }\r\n isCalcValid(){\r\n if(this.calculatorForm.get('amount').valid && this.calculatorForm.get('tenure').valid && this.calculatorForm.get('frequency').valid ){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n }\r\n\r\n get frequency(){\r\n return this.calculatorForm.get('frequency');\r\n }\r\n onCalculate() {\r\n this.calcDto.calculatorDto =this.calculatorForm.value;\r\n if(this.data.calculateData){\r\n this.data.calculateData.amount = String(this.data.calculateData.amount);\r\n this.calcDto.calculatorDto.amount = String(this.data.calculateData.amount);\r\n }\r\n this.loanService.postCalculation(this.calcDto).subscribe(res => {\r\n if(res.succeeded){\r\n this.calculatorModel = res.data.calculatorModel\r\n this.calculatorModel.annualProfiRate = Number.parseFloat(this.calculatorModel.annualProfiRate).toFixed(3)\r\n this.repaymentSchedules = res.data.calculatorModel.repayment_Schedules;\r\n this.calculatedDataIsLoaded = true;\r\n }else{\r\n this.calculatedDataIsLoaded = false;\r\n }\r\n })\r\n }\r\n close(){\r\n this.dialog.closeAll();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

\r\n {{'loanCalculator'| translate}}\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 {{'loanAmount' | translate}}\r\n \r\n \r\n {{formHelper.getValidationMessgae(calculatorForm.get('amount'),'amount')}}\r\n \r\n \r\n \r\n {{'loanDurationInMonth' | translate}}\r\n \r\n \r\n {{month.duration}}\r\n \r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n \r\n {{'paymentFrequency' | translate}}\r\n \r\n \r\n {{compoundInterest.name}}\r\n \r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'onlyForknow'| translate}}

\r\n

{{'TheAmountOf' | translate}} {{calculatorModel?.amount | customCurrency}} {{'willResultAprofitOf' | translate}} {{calculatorModel?.annualProfiRate | precentage}} {{'within' | translate}} {{periodInMonths}} {{'month' | translate}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'calculatorModel.flatRate'|translate}} \r\n
{{calculatorModel.flatRate | precentage}}
\r\n
\r\n
\r\n {{'calculatorModel.annualProfiRate'|translate}} \r\n
{{calculatorModel.annualProfiRate | precentage}}
\r\n
\r\n
\r\n {{'calculatorModel.effectiveMonthly'|translate}}\r\n {{'calculatorModel.effectiveQuarterly'|translate}}\r\n {{'calculatorModel.effectiveSemiannual'|translate}}\r\n {{'calculatorModel.effectiveAnnual'|translate}}\r\n
{{calculatorModel.effectiveMonthly | precentage}}
\r\n
\r\n
\r\n {{'calculatorModel.effectiveYearly'|translate}} \r\n
{{calculatorModel.effectiveYearly | precentage}}
\r\n
\r\n
\r\n {{'calculatorModel.totalProfit'|translate}} \r\n
{{calculatorModel.totalProfit | customCurrency}}
\r\n
\r\n
\r\n {{'calculatorModel.installment'|translate}}\r\n
{{calculatorModel.installment | customCurrency}}
\r\n
\r\n
\r\n {{'calculatorModel.adminFees'|translate}} \r\n
{{calculatorModel.adminFees | customCurrency}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {{'calculatorModel.number'|translate}}\r\n \r\n \r\n {{record.sn}}\r\n \r\n \r\n \r\n \r\n {{'calculatorModel.installment'|translate}}\r\n \r\n \r\n {{record.installment |customCurrency}}\r\n \r\n \r\n \r\n \r\n \r\n {{'calculatorModel.principal' |translate}}\r\n \r\n {{record.principal | customCurrency}}\r\n \r\n \r\n \r\n \r\n \r\n {{'calculatorModel.interest'|translate}}\r\n \r\n \r\n {{record.interest | customCurrency}}\r\n \r\n \r\n \r\n \r\n \r\n {{'calculatorModel.os'|translate}}\r\n \r\n \r\n {{record.os | customCurrency}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit, Output, EventEmitter, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NgbDate, NgbDatepickerI18n, NgbDateAdapter, NgbDateParserFormatter, NgbCalendar } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CustomAdapter, CustomDateParserFormatter } from 'src/app/core/services/custom-adapter-and-formatter.service';\r\nimport { GrogorianI18nService } from 'src/app/core/services/grogorian-calender-i18n.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-calender',\r\n templateUrl: './calender.component.html',\r\n styleUrls: ['./calender.component.scss'],\r\n providers: [\r\n { provide: NgbDatepickerI18n, useClass: GrogorianI18nService },\r\n { provide: NgbDateAdapter, useClass: CustomAdapter },\r\n { provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter }]\r\n})\r\nexport class CalenderComponent implements OnInit, OnChanges {\r\n model: any;\r\n @Output()\r\n dateSelect: EventEmitter = new EventEmitter();\r\n sperator = '-';\r\n @Input() selectedDate: string;\r\n @Input() label: string;\r\n @Input() maxDateDifference: { year: number, month: number, day: number };\r\n @Input() maxDate: NgbDate;\r\n @Input() minDateDifference: { year: number, month: number, day: number };\r\n @Input() minDate: NgbDate;\r\n @Input() isRequried: boolean;\r\n @Input() positionTarget: boolean;\r\n constructor(private calendar: NgbCalendar) { }\r\n ngOnInit(): void {\r\n this.setMinAndMax();\r\n this.setValue();\r\n }\r\n setMinAndMax() {\r\n const today = this.calendar.getToday();\r\n if (!this.maxDateDifference) {\r\n if (!this.maxDate) {\r\n this.maxDate = new NgbDate(2200, 12, 29);\r\n }\r\n } else {\r\n const y = this.calendar.getNext(today, 'y', this.maxDateDifference.year);\r\n const m = this.calendar.getNext(y, 'y', this.maxDateDifference.month);\r\n this.maxDate = this.calendar.getNext(m, 'y', this.maxDateDifference.day);\r\n }\r\n if (!this.minDateDifference) {\r\n if (!this.minDate) {\r\n this.minDate = new NgbDate(1900, 1, 1);\r\n }\r\n } else {\r\n const y = this.calendar.getPrev(today, 'y', this.minDateDifference.year);\r\n const m = this.calendar.getPrev(y, 'y', this.minDateDifference.month);\r\n this.minDate = this.calendar.getPrev(m, 'y', this.minDateDifference.day);\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.model = changes.selectedDate?.currentValue;\r\n }\r\n setValue() {\r\n if (this.selectedDate) {\r\n const dateParams = this.selectedDate.split(this.sperator);\r\n this.model = new NgbDate(\r\n parseInt(dateParams[2], 10),\r\n parseInt(dateParams[1], 10),\r\n parseInt(dateParams[0], 10)\r\n );\r\n const day = this.model.day < 10 ? '0' + String(this.model.day) : String(this.model.day);\r\n const month = this.model.month < 10 ? '0' + String(this.model.month) : String(this.model.month);\r\n const year = String(this.model.year);\r\n this.model = day + this.sperator + month + this.sperator + year;\r\n } else {\r\n this.model = null;\r\n }\r\n }\r\n onDateSelect(date: NgbDate) {\r\n const day = date.day < 10 ? '0' + String(date.day) : String(date.day);\r\n const month = date.month < 10 ? '0' + String(date.month) : String(date.month);\r\n const year = String(date.year);\r\n this.dateSelect.emit(\r\n day + this.sperator + month + this.sperator + year\r\n );\r\n }\r\n\r\n}\r\n","\r\n {{label | translate}}\r\n \r\n \r\n \r\n {{'requied'|translate}}\r\n \r\n\r\n\r\n {{label | translate}}\r\n \r\n \r\n \r\n {{'requied'|translate}}\r\n \r\n\r\n\r\n {{label | translate}}\r\n \r\n \r\n \r\n \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html'\r\n})\r\nexport class ConfirmDialogComponent implements OnInit {\r\n title: string;\r\n message: string;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ConfirmDialogModel) {\r\n // Update view with given values\r\n this.title = data.title;\r\n this.message = data.message;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onConfirm(): void {\r\n // Close the dialog, return true\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onDismiss(): void {\r\n // Close the dialog, return false\r\n this.dialogRef.close(false);\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Class to represent confirm dialog model.\r\n *\r\n * It has been kept here to keep it as part of shared component.\r\n */\r\n export class ConfirmDialogModel {\r\n\r\n constructor(public title: string, public message: string) {\r\n }\r\n}\r\n","
\r\n
\r\n {{title}}\r\n
\r\n
\r\n {{message}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { FormHelper } from 'src/app/core/helpers/Forms/form.helper';\r\nimport { Guid } from 'src/app/core/helpers/guid.helper';\r\nimport { LoansHelper } from 'src/app/core/helpers/loan-request.helper';\r\nimport { Gaurantor } from 'src/app/core/models/loan/gaurantor';\r\nimport { CRValidation } from 'src/app/core/validators/cr-validation';\r\nimport { NationalId } from 'src/app/core/validators/nationalId';\r\nimport { ConfirmDialogComponent, ConfirmDialogModel } from '../confirm-dialog/confirm-dialog.component';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-gaurantor',\r\n templateUrl: './gaurantor.component.html'\r\n})\r\nexport class GaurantorComponent implements OnInit {\r\n gaurantorForm: FormGroup;\r\n isCompany: boolean;\r\n gaurantorTypes;\r\n selectedGuarantorType;\r\n idIssueDateType = 'Islamic';\r\n idIssueDateValue;\r\n idExpiryDateType = 'Islamic';\r\n idExpiryDateValue;\r\n birthDateType = 'Islamic';\r\n birthDateValue\r\n isRent: boolean;\r\n otherIncomeExist: boolean;\r\n lang = sessionStorage.getItem('lang');\r\n otherIncomes: FormArray;\r\n isEst: boolean = false;\r\n gaurentsList: Gaurantor[];\r\n editGurantor: Gaurantor = new Gaurantor();\r\n loanIdG: number;\r\n accodomations: { name: string; id: number; }[] = [\r\n { name: this.lang === 'ar-EG' ? 'مملوكة' : 'Owned', id: 1 },\r\n { name: this.lang === 'ar-EG' ? 'ملك مع الوالد' : 'Owned by Father', id: 2 },\r\n { name: this.lang === 'ar-EG' ? 'متوفر عن طريق جهة العمل' : 'Company Provided', id: 3 },\r\n { name: this.lang === 'ar-EG' ? 'ايجار' : 'Rent', id: 4 },\r\n { name: this.lang === 'ar-EG' ? 'ايجار مع العائلة' : 'Rent with Family', id: 5 }\r\n ];\r\n IncomeDescription: { name: string; id: number; }[] = [\r\n { name: this.lang === 'ar-EG' ? 'ايجارات' : 'Rents', id: 1 },\r\n { name: this.lang === 'ar-EG' ? 'اسهم' : 'StockShare', id: 2 }\r\n ];\r\n yesIsChecked: boolean = false;\r\n noIsChecked: boolean = true;\r\n constructor(\r\n private loansHelper: LoansHelper,\r\n private formBuilder: FormBuilder,\r\n public formHelper: FormHelper,\r\n private dialog: MatDialog,\r\n private activeRoute: ActivatedRoute,\r\n private translateService: TranslateService,\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.gaurantorTypes = this.loansHelper.gaurantorsTypes;\r\n this.loanIdG = this.activeRoute.snapshot.params.id\r\n if (this.loansHelper.editingGaurentor) {\r\n this.fireOnUpdateMode();\r\n } else {\r\n this.onChangeGuarantorType('1');\r\n }\r\n }\r\n initeForm() {\r\n this.gaurantorForm = this.formBuilder.group({\r\n isIndividual: [false],\r\n id: [0],\r\n loanId: [0],\r\n guarantorName: [null],\r\n idNmuber: [null],\r\n idIssuePlace: [null, Validators.required],\r\n guarantorType: [this.selectedGuarantorType],\r\n haveCar: ['0'],\r\n totalSalary: [null],\r\n socialStatus: [1],\r\n noFamilyMember: [null],\r\n accodomation: [null],\r\n crNumber: [null],\r\n companyName: [null],\r\n rentAmount: [null],\r\n otherIncomes: this.formBuilder.array([]),\r\n idIssueDate: this.formBuilder.group({\r\n gregorianDate: [null],\r\n hijriDate: [null, Validators.required]\r\n }),\r\n idExpiryDate: this.formBuilder.group({\r\n gregorianDate: [null],\r\n hijriDate: [null, Validators.required]\r\n }),\r\n dateOfBirth: this.formBuilder.group({\r\n dateType: [this.idExpiryDateType],\r\n gregorianDate: [null],\r\n hijriDate: [null]\r\n }),\r\n guarantorAddress: this.formBuilder.group({\r\n id: [0],\r\n poBox: [null],\r\n zipCode: [null],\r\n city: [null],\r\n homeNumber: [null],\r\n cellPhone: [null],\r\n }),\r\n })\r\n }\r\n fireOnUpdateMode() {\r\n this.loanIdG = Number(this.loanIdG);\r\n this.editGurantor = this.loansHelper.editingGaurentor;\r\n this.editGurantor.guarantorType = String(this.editGurantor.guarantorType); \r\n this.onChangeGuarantorType(this.editGurantor.guarantorType);\r\n this.guarantorName.patchValue(this.editGurantor.guarantorName);\r\n this.guarantorAddress.get('poBox').patchValue(this.editGurantor.guarantorAddress.poBox);\r\n this.guarantorAddress.get('zipCode').patchValue(this.editGurantor.guarantorAddress.zipCode);\r\n this.guarantorAddress.get('city').patchValue(this.editGurantor.guarantorAddress.city);\r\n this.guarantorAddress.get('homeNumber').patchValue(this.editGurantor.guarantorAddress.homeNumber?.slice(4));\r\n this.guarantorAddress.get('cellPhone').patchValue(this.editGurantor.guarantorAddress.cellPhone?.slice(4));\r\n this.loanId.setValue(this.loanIdG);\r\n this.idNmuber.patchValue(this.editGurantor.idNmuber);\r\n this.idIssuePlace.patchValue(this.editGurantor.idIssuePlace)\r\n this.noFamilyMember.patchValue(this.editGurantor.noFamilyMember);\r\n this.totalSalary.patchValue(this.editGurantor.totalSalary);\r\n this.accodomation.setValue(String(this.editGurantor.accodomation));\r\n this.rentAmount.patchValue(this.editGurantor.rentAmount);\r\n this.companyName.patchValue(this.editGurantor.companyName);\r\n this.crNumber.patchValue(this.editGurantor.crNumber);\r\n if (this.rentAmount.value !== 0) {\r\n this.onAccodomationChange(this.accodomation.value)\r\n }\r\n //set otherIncomes if exist\r\n if (this.editGurantor.otherIncomes && this.editGurantor.otherIncomes.length > 0) {\r\n this.yesIsChecked = true;\r\n this.noIsChecked = false;\r\n for (let i = 0; this.editGurantor.otherIncomes.length > i; i++) {\r\n this.otherIncomes.push(this.formBuilder.group({\r\n id: [0],\r\n otherincomeId: [this.editGurantor.otherIncomes[i].otherincomeId, Validators.required],\r\n amount: [this.editGurantor.otherIncomes[i].amount, Validators.required]\r\n }))\r\n }\r\n } else {\r\n this.yesIsChecked = false;\r\n this.noIsChecked = true;\r\n }\r\n //set idIssueDate calender value\r\n for (const key in this.editGurantor.idIssueDate) {\r\n if (this.editGurantor.idIssueDate[key]) {\r\n this.idIssueDateValue = this.editGurantor.idIssueDate[key];\r\n }\r\n }\r\n this.idIssueDate.get('hijriDate').patchValue(this.idIssueDateValue);\r\n\r\n //set idExpiryDate calender value\r\n for (const key in this.editGurantor.idExpiryDate) {\r\n if (this.editGurantor.idExpiryDate[key]) {\r\n this.idExpiryDateValue = this.editGurantor.idExpiryDate[key];\r\n }\r\n }\r\n this.idExpiryDate.get('hijriDate').patchValue(this.idExpiryDateValue);\r\n\r\n //set dateOfBirth calender value\r\n for (const key in this.editGurantor.dateOfBirth) {\r\n if (this.editGurantor.dateOfBirth[key]) {\r\n this.birthDateValue = this.editGurantor.dateOfBirth[key];\r\n }\r\n }\r\n this.dateOfBirth.get('hijriDate').patchValue(this.birthDateValue);\r\n //set haveCar value\r\n if (this.editGurantor.haveCar) {\r\n this.haveCar.patchValue(\"1\");\r\n } else {\r\n this.haveCar.patchValue(\"0\");\r\n }\r\n this.socialStatus.setValue(String(this.editGurantor.socialStatus));\r\n console.log(this.isCompany);\r\n\r\n }\r\n get guarantorAddress() {\r\n return this.gaurantorForm.get('guarantorAddress');\r\n }\r\n get isIndividual() {\r\n return this.gaurantorForm.get('isIndividual');\r\n }\r\n get loanId() {\r\n return this.gaurantorForm.get('loanId');\r\n }\r\n get idIssuePlace() {\r\n return this.gaurantorForm.get('idIssuePlace');\r\n }\r\n get guarantorName() {\r\n return this.gaurantorForm.get('guarantorName');\r\n }\r\n get guarantorType() {\r\n return this.gaurantorForm.get('guarantorType');\r\n }\r\n get idNmuber() {\r\n return this.gaurantorForm.get('idNmuber');\r\n }\r\n get haveCar() {\r\n return this.gaurantorForm.get('haveCar');\r\n }\r\n get socialStatus() {\r\n return this.gaurantorForm.get('socialStatus');\r\n }\r\n get accodomation() {\r\n return this.gaurantorForm.get('accodomation');\r\n }\r\n get totalSalary() {\r\n return this.gaurantorForm.get('totalSalary');\r\n }\r\n get noFamilyMember() {\r\n return this.gaurantorForm.get('noFamilyMember');\r\n }\r\n get crNumber() {\r\n return this.gaurantorForm.get('crNumber');\r\n }\r\n get companyName() {\r\n return this.gaurantorForm.get('companyName');\r\n }\r\n get rentAmount() {\r\n return this.gaurantorForm.get('rentAmount');\r\n }\r\n get idIssueDate() {\r\n return this.gaurantorForm.get('idIssueDate');\r\n }\r\n get idExpiryDate() {\r\n return this.gaurantorForm.get('idExpiryDate');\r\n }\r\n get dateOfBirth() {\r\n return this.gaurantorForm.get('dateOfBirth');\r\n }\r\n onChangeGuarantorType(event) {\r\n this.selectedGuarantorType = event.toString();\r\n this.initeForm();\r\n this.birthDateValue = '';\r\n this.idIssueDateValue = '';\r\n this.idExpiryDateValue = '';\r\n this.otherIncomes = this.gaurantorForm.get('otherIncomes') as FormArray;\r\n switch (String(event)) {\r\n case '3':\r\n case '4':\r\n case '5':\r\n case '6':\r\n {\r\n this.isRent = true;\r\n this.isCompany = false;\r\n this.isEst = false;\r\n this.gaurantorForm.get('isIndividual').setValue(true);\r\n break;\r\n }\r\n case '1':\r\n {\r\n this.isRent = false;\r\n this.isCompany = true;\r\n this.isEst = false;\r\n this.gaurantorForm.get('isIndividual').setValue(false);\r\n break;\r\n }\r\n case '2':\r\n {\r\n this.isRent = false;\r\n this.isCompany = true;\r\n this.isEst = true;\r\n this.gaurantorForm.get('isIndividual').setValue(false);\r\n break;\r\n }\r\n\r\n }\r\n if (this.isIndividual.value) {\r\n this.setIndividualValidators();\r\n } else {\r\n this.setCompanyValidators();\r\n }\r\n console.log(this.isCompany);\r\n\r\n }\r\n setIndividualValidators() {\r\n this.guarantorName.setValidators(Validators.required);\r\n this.idNmuber.setValidators([Validators.required, NationalId.NinValidation()]);\r\n this.totalSalary.setValidators(Validators.required);\r\n this.noFamilyMember.setValidators(Validators.required);\r\n this.guarantorAddress.get('poBox').setValidators(Validators.required);\r\n this.guarantorAddress.get('zipCode').setValidators(Validators.required);\r\n this.guarantorAddress.get('city').setValidators(Validators.required);\r\n this.guarantorAddress.get('homeNumber').setValidators([Validators.required, Validators.pattern('^[5][0-9]*$')]);\r\n this.guarantorAddress.get('cellPhone').setValidators([Validators.required, Validators.pattern('^[5][0-9]*$')]);\r\n this.crNumber.updateValueAndValidity();\r\n this.companyName.updateValueAndValidity();\r\n this.haveCar.setValue('1');\r\n this.socialStatus.setValue('1');\r\n this.accodomation.setValue('1');\r\n }\r\n setCompanyValidators() {\r\n this.guarantorName.updateValueAndValidity();\r\n this.idNmuber.updateValueAndValidity();\r\n this.totalSalary.updateValueAndValidity();\r\n this.noFamilyMember.updateValueAndValidity();\r\n this.guarantorAddress.get('poBox').updateValueAndValidity();\r\n this.guarantorAddress.get('zipCode').updateValueAndValidity();\r\n this.guarantorAddress.get('city').updateValueAndValidity();\r\n this.guarantorAddress.get('homeNumber').updateValueAndValidity();\r\n this.guarantorAddress.get('cellPhone').updateValueAndValidity();\r\n this.haveCar.setValue(0);\r\n this.socialStatus.setValue(0);\r\n this.accodomation.setValue(0);\r\n this.crNumber.setValidators([Validators.required, Validators.minLength(10), CRValidation.StratWith7()]);\r\n this.companyName.setValidators(Validators.required);\r\n }\r\n addOtherIncomes() {\r\n this.otherIncomes.push(this.formBuilder.group({\r\n id: [0],\r\n otherincomeId: [null, Validators.required],\r\n amount: [null, Validators.required]\r\n }))\r\n }\r\n setOtherIncomesIdValue(group: FormGroup, i: number) {\r\n group.get('id').setValue(i + 1);\r\n return group.get('id').value;\r\n }\r\n onRemoveIncome(groupIndex) {\r\n this.otherIncomes.removeAt(groupIndex);\r\n }\r\n onChangeDateOfBirth(event: MatRadioChange) {\r\n this.birthDateType = event.value;\r\n }\r\n onChangeidIssueDateType(event: MatRadioChange) {\r\n this.idIssueDateType = event.value;\r\n }\r\n onChangeidExpiryDateType(event: MatRadioChange) {\r\n this.idExpiryDateType = event.value;\r\n }\r\n onAccodomationChange(value: string) {\r\n if (value === '4' || value === '5') {\r\n this.isRent = true;\r\n this.rentAmount.setValidators(Validators.required);\r\n } else {\r\n this.isRent = false;\r\n this.rentAmount.updateValueAndValidity();\r\n }\r\n }\r\n onChangeOtherIncome(event) {\r\n if (event.value === \"yes\") {\r\n this.otherIncomeExist = true;\r\n this.yesIsChecked = true;\r\n this.noIsChecked = false;\r\n } else if (event.value === \"no\" && this.otherIncomes.length > 0) {\r\n this.otherIncomeExist = false;\r\n this.otherIncomes.clear();\r\n } else {\r\n this.otherIncomeExist = false;\r\n this.yesIsChecked = false;\r\n this.noIsChecked = true;\r\n }\r\n }\r\n onDateSelect(event, formControlName, dateValue, formGroup, type) {\r\n this[dateValue] = event;\r\n this.gaurantorForm['controls'][formGroup].get(formControlName).setValue(event);\r\n //to empty if user choose two date type\r\n if (type === 'Gregorian') {\r\n this.gaurantorForm['controls'][formGroup].get('hijriDate').setValue(null);\r\n } else {\r\n this.gaurantorForm['controls'][formGroup].get('gregorianDate').setValue(null);\r\n }\r\n }\r\n onSubmit() {\r\n let gaurantorObj = new Gaurantor();\r\n gaurantorObj = this.gaurantorForm.value;\r\n gaurantorObj.loanId = Number(this.loanIdG);\r\n gaurantorObj.guarantorType = Number(this.gaurantorForm.get('guarantorType').value);\r\n gaurantorObj.haveCar = this.gaurantorForm.get('haveCar').value == '1' ? true : false;\r\n gaurantorObj.socialStatus = Number(this.gaurantorForm.get('socialStatus').value);\r\n gaurantorObj.accodomation = Number(this.gaurantorForm.get('accodomation').value);\r\n gaurantorObj.guarantorAddress.cellPhone = `+966${this.guarantorAddress.get('cellPhone').value}`;\r\n gaurantorObj.guarantorAddress.homeNumber = `+966${this.guarantorAddress.get('homeNumber').value}`;\r\n if (this.editGurantor.guid == undefined) {\r\n gaurantorObj.guid = Guid.newGuid();\r\n this.loansHelper.gaurantors.next(gaurantorObj);\r\n this.loansHelper.editingGaurentor = null;\r\n } else {\r\n gaurantorObj.guid = this.editGurantor.guid;\r\n this.loansHelper.editingGaurentor = gaurantorObj;\r\n }\r\n this.close();\r\n }\r\n close() {\r\n this.loansHelper.isGaurantorOpen.next(false);\r\n }\r\n confirmDialog(i: number): void {\r\n const message = this.translateService.instant('deleteMessage');\r\n const title = this.translateService.instant('confirmAction')\r\n const dialogData = new ConfirmDialogModel(title, message);\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n maxWidth: \"400px\",\r\n data: dialogData\r\n });\r\n dialogRef.afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.onRemoveIncome(i)\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 {{type.name |translate}}\r\n \r\n
\r\n
\r\n \r\n
\r\n

{{'companyInformation' | translate}}

\r\n

{{'estInformation' | translate}}

\r\n \r\n {{'cr_num' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n {{'errorsMessages.inValidCR' | translate}}\r\n \r\n \r\n \r\n {{'cmpny_name' | translate}}\r\n {{'Est_name' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n
\r\n \r\n
\r\n

{{'personalInformation' | translate}}

\r\n \r\n {{'fullName' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n \r\n {{'nationalIdNumber' | translate}}\r\n \r\n \r\n {{formHelper.getValidationMessgae(idNmuber,'delagetNin')}}\r\n \r\n \r\n
\r\n \r\n \r\n {{'hijriDate' |translate}}\r\n \r\n \r\n {{'Gregorian' | translate}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'nationalIDInformation' | translate}}

\r\n

{{'commercialRegistration' | translate}}

\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{'issue_place' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{accodomation.name |translate}}\r\n \r\n
\r\n
\r\n
\r\n \r\n {{'rent_amount' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{'yes' |translate}} \r\n {{'no' |translate}} \r\n \r\n \r\n \r\n {{'single' |translate}} \r\n {{'married' |translate}} \r\n \r\n \r\n {{'familyNumber' | translate}} : \r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n \r\n \r\n {{'yes' |translate}} \r\n {{'no' |translate}} \r\n \r\n \r\n {{'totalSalary' | translate}} : \r\n \r\n \r\n {{'errorsMessages.required' | translate}}\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
# {{'incomeAmountInSAR'|translate}}{{'incomeDescription'|translate}}
{{setOtherIncomesIdValue(group,i)}}\r\n \r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n \r\n \r\n {{'incomeDescription'|translate}}\r\n \r\n \r\n {{kind.name}}\r\n \r\n \r\n \r\n {{'errorsMessages.required' | translate}}\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 {{'postalAddress' |translate}} :\r\n

\r\n
\r\n \r\n {{'poBox' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n \r\n {{'zpCode' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n \r\n {{'city' | translate}}\r\n \r\n \r\n {{'errorsMessages.required' | translate}}\r\n \r\n \r\n
\r\n
\r\n \r\n {{'homePhone' | translate}}\r\n +966  \r\n +966  \r\n \r\n \r\n {{formHelper.getValidationMessgae(guarantorAddress.get('homeNumber'),'mobileNumber')}}\r\n \r\n \r\n \r\n {{'mobileNumber' | translate}}\r\n +966  \r\n +966  \r\n \r\n \r\n {{formHelper.getValidationMessgae(guarantorAddress.get('cellPhone'),'mobileNumber')}}\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 {\r\n Component,\r\n OnInit,\r\n Output,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport {\r\n NgbCalendar,\r\n NgbDatepickerI18n,\r\n NgbDateAdapter,\r\n NgbDateParserFormatter,\r\n NgbCalendarIslamicUmalqura,\r\n NgbDate,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport {\r\n CustomAdapter,\r\n CustomDateParserFormatter,\r\n} from 'src/app/core/services/custom-adapter-and-formatter.service';\r\nimport { IslamicI18nService } from 'src/app/core/services/islamic-calender-i18n.service';\r\n\r\n@Component({\r\n selector: 'app-hijri-calender',\r\n templateUrl: './hijri-calender.component.html',\r\n styleUrls: ['./hijri-calender.component.scss'],\r\n providers: [\r\n { provide: NgbDatepickerI18n, useClass: IslamicI18nService },\r\n { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },\r\n { provide: NgbDateAdapter, useClass: CustomAdapter },\r\n { provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter },\r\n ],\r\n})\r\nexport class HijriCalenderComponent implements OnInit, OnChanges {\r\n model: any;\r\n @Output() dateSelect: EventEmitter = new EventEmitter();\r\n sperator = '-';\r\n @Input() selectedDate: string;\r\n @Input() label: string;\r\n @Input() maxDateDifference: { year: number; month: number; day: number };\r\n @Input() maxDate: NgbDate;\r\n @Input() minDateDifference: { year: number; month: number; day: number };\r\n @Input() minDate: NgbDate;\r\n @Input() isRequried: boolean;\r\n @Input() positionTarget: boolean;\r\n\r\n constructor(private calendar: NgbCalendar) {}\r\n ngOnInit(): void {\r\n this.setMinAndMax();\r\n this.setValue();\r\n }\r\n setMinAndMax() {\r\n const today = this.calendar.getToday();\r\n if (!this.maxDateDifference) {\r\n if (!this.maxDate) {\r\n this.maxDate = new NgbDate(1600, 12, 29);\r\n }\r\n } else {\r\n const y = this.calendar.getNext(today, 'y', this.maxDateDifference.year);\r\n const m = this.calendar.getNext(y, 'y', this.maxDateDifference.month);\r\n this.maxDate = this.calendar.getNext(m, 'y', this.maxDateDifference.day);\r\n }\r\n if (!this.minDateDifference) {\r\n if (!this.minDate) {\r\n this.minDate = new NgbDate(1300, 1, 1);\r\n }\r\n } else {\r\n const y = this.calendar.getPrev(today, 'y', this.minDateDifference.year);\r\n const m = this.calendar.getPrev(y, 'y', this.minDateDifference.month);\r\n this.minDate = this.calendar.getPrev(m, 'y', this.minDateDifference.day);\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.model = changes.selectedDate?.currentValue;\r\n }\r\n setValue() {\r\n if (this.selectedDate) {\r\n const dateParams = this.selectedDate.split(this.sperator);\r\n this.model = new NgbDate(\r\n parseInt(dateParams[2], 10),\r\n parseInt(dateParams[1], 10),\r\n parseInt(dateParams[0], 10)\r\n );\r\n const day =\r\n this.model.day < 10\r\n ? '0' + String(this.model.day)\r\n : String(this.model.day);\r\n const month =\r\n this.model.month < 10\r\n ? '0' + String(this.model.month)\r\n : String(this.model.month);\r\n const year = String(this.model.year);\r\n this.model = day + this.sperator + month + this.sperator + year;\r\n } else {\r\n this.model = null;\r\n }\r\n }\r\n onDateSelect(date: NgbDate) {\r\n const day = date.day < 10 ? '0' + String(date.day) : String(date.day);\r\n const month =\r\n date.month < 10 ? '0' + String(date.month) : String(date.month);\r\n const year = String(date.year);\r\n this.dateSelect.emit(day + this.sperator + month + this.sperator + year);\r\n }\r\n}\r\n","\r\n {{label | translate}}\r\n \r\n \r\n {{'requied'|translate}}\r\n\r\n\r\n {{label | translate}}\r\n \r\n \r\n {{'requied'|translate}}\r\n\r\n\r\n {{label | translate}}\r\n \r\n \r\n","import { Component } from \"@angular/core\";\r\nimport { SecurityService } from \"src/app/core/services/security.service\";\r\n\r\n@Component({\r\n selector: 'app-identity',\r\n templateUrl: './identity.html'\r\n})\r\nexport class Identity {\r\n authenticated = false;\r\n userName: string;\r\n\r\n constructor(private securityService: SecurityService) { }\r\n\r\n ngOnInit() {\r\n this.authenticated = this.securityService.IsAuthorized;\r\n this.setUserData()\r\n if (window.location.hash) {\r\n this.securityService.AuthorizedCallback();\r\n }\r\n }\r\n setUserData() {\r\n if (this.securityService.IsAuthorized) {\r\n this.userName = this.securityService.currentUser().preferred_username ?\r\n this.securityService.currentUser().preferred_username :\r\n this.securityService.currentUser().email;\r\n }\r\n }\r\n logoutClicked(event: any) {\r\n event.preventDefault();\r\n console.log('Logout clicked');\r\n this.logout();\r\n }\r\n\r\n login() {\r\n this.securityService.Authorize();\r\n }\r\n\r\n logout() {\r\n this.securityService.Logoff();\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SecurityService } from 'src/app/core/services/security.service';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html'\r\n})\r\nexport class FooterComponent implements OnInit {\r\n isLoggedIn: boolean;\r\n currentYear:number\r\n constructor(\r\n public router: Router,\r\n private securityService: SecurityService\r\n ) \r\n {\r\n this.currentYear=new Date().getFullYear();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isLoggedIn = this.securityService.IsAuthorized;\r\n }\r\n\r\n}\r\nfunction getFullYear() {\r\n throw new Error('Function not implemented.');\r\n}\r\n\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SharedHelper } from 'src/app/core/helpers/shared.helper';\r\nimport { UserType } from 'src/app/core/models/registration/userType.enum';\r\nimport { SecurityService } from 'src/app/core/services/security.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.css']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n headItems = [{\r\n link: '/',\r\n desc: 'home',\r\n isActive: false,\r\n queryParams: '',\r\n linkType: 'noneType'\r\n },\r\n {\r\n link: '/register/instructions',\r\n desc: 'lender',\r\n isActive: false,\r\n queryParams: 'lender',\r\n linkType: 'instructions'\r\n },\r\n {\r\n link: '/register/instructions',\r\n desc: 'borrower',\r\n isActive: false,\r\n queryParams: 'borrower',\r\n linkType: 'instructions'\r\n },\r\n {\r\n link: '/successStories',\r\n desc: 'stories',\r\n isActive: false,\r\n queryParams: '',\r\n linkType: 'noneType'\r\n },\r\n {\r\n link: '/static/about',\r\n desc: 'aboutUs',\r\n isActive: false,\r\n queryParams: '',\r\n linkType: 'noneType'\r\n },\r\n {\r\n link: '/static/faq',\r\n desc: 'help',\r\n isActive: false,\r\n queryParams: '',\r\n linkType: 'noneType'\r\n }];\r\n otherLanguage: string;\r\n isAuthorized: boolean;\r\n name;\r\n userType: UserType;\r\n constructor(\r\n public router: Router,\r\n public sharedHelper: SharedHelper,\r\n public securityService: SecurityService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.isAuthorized = this.securityService.IsAuthorized;\r\n this.userType = this.securityService.currentUser() == null ? null : +this.securityService.currentUser().role as UserType;\r\n this.setInialLanguage();\r\n this.setUserData();\r\n }\r\n setUserData() {\r\n if (this.securityService.IsAuthorized) {\r\n this.name = this.securityService.currentUser().preferred_username ?\r\n this.securityService.currentUser().preferred_username :\r\n this.securityService.currentUser().email;\r\n }\r\n }\r\n setInialLanguage() {\r\n this.otherLanguage = sessionStorage.getItem('lang') ?\r\n sessionStorage.getItem('lang') === 'ar-EG' ?\r\n 'English' :\r\n 'العربية' :\r\n 'English';\r\n }\r\n isActive(i): boolean {\r\n if (this.headItems[i].link === this.router.url) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n toggelMobileMenue(rout): void {\r\n document.body.classList.toggle('mobile-nav-active');\r\n if (rout) {\r\n if (rout === '/auth/login') {\r\n this.login();\r\n return;\r\n }\r\n this.router.navigate([rout]);\r\n }\r\n }\r\n logout() {\r\n localStorage.removeItem('phoneVerified');\r\n this.securityService.Logoff();\r\n }\r\n login() {\r\n this.securityService.Authorize();\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 {{'myAccount'|translate}}\r\n \r\n \r\n {{'logout'|translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UserType } from 'src/app/core/models/registration/userType.enum';\r\nimport { SecurityService } from 'src/app/core/services/security.service';\r\n\r\n@Component({\r\n selector: 'app-side-bar',\r\n templateUrl: './side-bar.component.html',\r\n styleUrls: ['./side-bar.component.scss']\r\n})\r\nexport class SideBarComponent implements OnInit {\r\n commands: { text: string; link: string; id: string; image: string; child: any[], isChildOpen: boolean }[];\r\n constructor(\r\n private router: Router,\r\n private securityService: SecurityService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.setLinks();\r\n }\r\n displayChild(index: number) {\r\n this.commands[index].isChildOpen = !this.commands[index].isChildOpen;\r\n }\r\n setLinks() {\r\n switch (+this.securityService.currentUser().role as UserType) {\r\n case UserType.Borrower:\r\n case UserType.BorrowerCorporate: {\r\n this.setBorrowerLinks();\r\n break;\r\n }\r\n case UserType.Lender:\r\n case UserType.LenderCorporate: {\r\n this.setLenderLinks();\r\n break;\r\n }\r\n case UserType.Admin:\r\n {\r\n this.setAdminLinks();\r\n break;\r\n }\r\n }\r\n }\r\n isActive(link) {\r\n return this.router.url === link ? true : false;\r\n }\r\n setBorrowerLinks() {\r\n this.commands = [\r\n {\r\n text: 'home',\r\n link: '/borrower',\r\n id: 'v-pills-main-tab',\r\n image: 'assets/img/profile/1.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'newLoanRequest',\r\n link: '/borrower/loan-request',\r\n id: 'v-pills-newLoanRequest-tab',\r\n image: 'assets/img/profile/2.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'penddingLoans',\r\n link: '/borrower/pendding-loans',\r\n id: 'v-pills-myPendingRequests-tab',\r\n image: 'assets/img/profile/4.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'approvedLoans',\r\n link: '/borrower/approved-loans',\r\n id: 'v-pills-myApprovedRequests-tab',\r\n image: 'assets/img/profile/3.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n // {\r\n // text: 'loanCalculator',\r\n // link: '/borrower/calculator',\r\n // id: 'v-pills-APR-tab',\r\n // image: 'assets/img/profile/4.svg',\r\n // isChildOpen: false,\r\n // child: []\r\n // }\r\n ];\r\n }\r\n setLenderLinks() {\r\n this.commands = [\r\n {\r\n text: 'home',\r\n link: '/lender',\r\n id: 'v-pills-main-tab',\r\n image: 'assets/img/profile/1.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'newInvestment',\r\n link: '/lender/marketPlace',\r\n id: 'v-pills-newLoanRequest-tab',\r\n image: 'assets/img/profile/2.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'myInvestments',\r\n link: '/lender/MyInvestment',\r\n id: 'v-pills-myPendingRequests-tab',\r\n image: 'assets/img/profile/3.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n // {\r\n // text: 'loanCalculator',\r\n // link: '/lender/calculator',\r\n // id: 'v-pills-APR-tab',\r\n // image: 'assets/img/profile/4.svg',\r\n // isChildOpen: false,\r\n // child: []\r\n // }\r\n ];\r\n }\r\n setAdminLinks() {\r\n this.commands = [\r\n {\r\n text: 'registrationRequests',\r\n link: '/admin/registrationRequests',\r\n id: 'v-pills-main-tab',\r\n image: 'assets/img/profile/1.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'adminloanRequests',\r\n link: '/admin/loanRequests',\r\n id: 'v-pills-newLoanRequest-tab',\r\n image: 'assets/img/profile/2.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'employees',\r\n link: '',\r\n id: 'v-pills-myPendingRequests-tab',\r\n image: 'assets/img/profile/1.svg',\r\n isChildOpen: false,\r\n child: [\r\n {\r\n text: 'newEmployee',\r\n link: '/admin/newEmployee',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n },\r\n {\r\n text: 'employeesList',\r\n link: '/admin/employees-list',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n }\r\n ]\r\n },\r\n {\r\n text: 'approvedLoans',\r\n link: '/admin/approvedLoans',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'rejectedLoans',\r\n link: '/admin/rejectedLoans',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'users',\r\n link: '/admin/users',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n isChildOpen: false,\r\n child: [\r\n {\r\n text: 'allLenders',\r\n link: '/admin/users/lenders',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n },\r\n {\r\n text: 'allBorrower',\r\n link: '/admin/users/borrower',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n },\r\n ]\r\n },\r\n {\r\n text: 'investment',\r\n link: '/admin/investments',\r\n id: 'v-pills-investmens-tab',\r\n image: 'assets/img/profile/4.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'InvestorPortfolios',\r\n link: '/admin/investorPortfolios',\r\n id: 'v-pills-investorPortfolios-tab',\r\n image: 'assets/img/profile/4.svg',\r\n isChildOpen: false,\r\n child: []\r\n },\r\n {\r\n text: 'adminSettings',\r\n link: '/admin/users',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n isChildOpen: false,\r\n child: [\r\n {\r\n text: 'PortalSettings',\r\n link: '/admin/settings/portalSetting',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n },\r\n {\r\n text: 'ActivetyListSetting',\r\n link: '/admin/settings/activetyListSetting',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n },\r\n {\r\n text: 'FQASettings',\r\n link: '/admin/settings/fqas',\r\n id: 'v-pills-APR-tab',\r\n image: 'assets/img/profile/4.svg',\r\n },\r\n ]\r\n }\r\n ];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \"Ulenda\"\r\n \r\n \r\n
\r\n
","import { Router } from '@angular/router';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { OpenOpportunity } from 'src/app/core/models/loan/loan.model';\r\nimport { AppConfigService } from 'src/app/core/services/app-config.service';\r\nimport { LoanService } from 'src/app/core/services/loan.service';\r\nimport { LookupsService } from 'src/app/core/services/lookups.service';\r\nimport { SecurityService } from 'src/app/core/services/security.service';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RiskAverage } from 'src/app/core/models/registration/userType.enum';\r\n\r\n@Component({\r\n selector: 'app-market-place',\r\n templateUrl: './market-place.component.html',\r\n styleUrls: ['./market-place.component.scss']\r\n})\r\n\r\nexport class MarketPlaceComponent implements OnInit, OnDestroy {\r\n apiUrl: string;\r\n durationInMonths;\r\n openOpportunityList: OpenOpportunity[] = [];\r\n totalLength: any;\r\n pageNumber : number = 1;\r\n subscriptionArray : Subscription[] = [];\r\n currentUrlIsMarketPlace: boolean;\r\n lang: string \r\n riskAverage ;\r\n riskStyle: string;\r\n constructor(private loanService: LoanService,\r\n private config: AppConfigService, \r\n private route: Router,\r\n private translateService : TranslateService,\r\n private securityService : SecurityService,\r\n private lookupsService: LookupsService) {\r\n this.apiUrl = this.config.getConfiguration().apiUrl + 'api/';\r\n this.lang = sessionStorage.getItem('lang');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.currentUrlIsMarketPlace = this.route.url === '/marketPlace' ? true : false;\r\n this.getLoanDuration();\r\n this.getAllOpenOpportunity();\r\n }\r\n getLoanDuration(){\r\n this.subscriptionArray.push(\r\n this.lookupsService.getAllLoanDuration().subscribe(res => {\r\n if(res.succeeded){\r\n this.durationInMonths = res.data;\r\n }\r\n }))\r\n }\r\n getAllOpenOpportunity(){\r\n this.subscriptionArray.push(this.loanService.getAllOpenOpportunity().subscribe(res => {\r\n if(res.succeeded){\r\n this.openOpportunityList = res.data;\r\n this.totalLength = this.openOpportunityList.length;\r\n this.openOpportunityList.forEach(openOpportunity => {\r\n openOpportunity.imageUrl=this.apiUrl+'Document/DownloadFile?id='+openOpportunity.imageUrl;\r\n openOpportunity.periodInMonths = this.durationInMonths?.find(item => item.id === openOpportunity.periodInMonths).duration;\r\n this.riskAverage = openOpportunity.riskAverage;\r\n openOpportunity.riskStyle = `mb-1 risk-${this.riskAverage}`\r\n switch (this.riskAverage) {\r\n case RiskAverage.High: {\r\n openOpportunity.riskAverage = this.translateService.instant('High');\r\n break\r\n }\r\n case RiskAverage.Low: {\r\n openOpportunity.riskAverage = this.translateService.instant('Low');\r\n break\r\n }\r\n case RiskAverage.Medium: {\r\n openOpportunity.riskAverage = this.translateService.instant('Medium');\r\n break\r\n }\r\n }\r\n })\r\n }\r\n }))\r\n }\r\n goToInvestNow(openOpportunity){\r\n if(this.securityService.IsAuthorized){\r\n this.route.navigate(['../lender/newInvest',openOpportunity.id])\r\n }else{\r\n Swal.fire({\r\n text: this.translateService.instant('logInMessage'),\r\n icon: 'warning',\r\n confirmButtonText: this.translateService.instant('yes'),\r\n confirmButtonColor: '#e8ab21',\r\n showCancelButton: true,\r\n cancelButtonText: this.translateService.instant('no'),\r\n cancelButtonColor: '#dddcdc',\r\n }).then((result =>{\r\n if(result.isConfirmed){\r\n this.securityService.Authorize();\r\n }\r\n }))\r\n }\r\n }\r\n //set number of cards based on current view\r\n getCSSClass() : string{\r\n if(this.currentUrlIsMarketPlace){\r\n return 'col-md-3 col-12 mb-4';\r\n }else{\r\n return 'col-md-4 col-12 mb-4';\r\n }\r\n }\r\n ngOnDestroy(){\r\n this.subscriptionArray.forEach(element => {\r\n element.unsubscribe();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n {{'marketPlace.first' | translate}}\r\n {{'marketPlace.sec' | translate}}\r\n

\r\n
\r\n
\r\n \"Card\r\n
\r\n {{openOpportunity.completePercentage | precentage }} \r\n \r\n
\r\n
\r\n

{{openOpportunity.crName}}

\r\n
\r\n
\r\n {{'marketPlace.title' | translate}}\r\n
\r\n
\r\n {{openOpportunity.id}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{'marketPlace.LoanDurationinMonths' | translate}}
\r\n
{{openOpportunity.periodInMonths }}
\r\n
\r\n
\r\n
{{'marketPlace.loanAmount' | translate}}
\r\n
{{openOpportunity.amount | customCurrency}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{openOpportunity.activityType}}

\r\n
\r\n
\r\n
{{'marketPlace.paymentMechanism' | translate}}
\r\n
{{openOpportunity.paymentMechanism}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'marketPlace.AnnualProfitRate' | translate}}
\r\n
{{openOpportunity.annualProfitRate | precentage}}
\r\n
\r\n
\r\n
{{'marketPlace.RiskAverage' | translate}}
\r\n
{{openOpportunity.riskAverage}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 0\" class=\" col-md-12 text-center mb-3\" id=\"marketPlace\" (pageChange)=\"pageNumber = $event\"\r\n directionLinks=\"true\" responsive=\"true\" previousLabel=\"{{'PREVIOUS_PAGE_LABEL' | translate}}\"\r\n nextLabel=\"{{'NEXT_PAGE_LABEL' | translate}}\">\r\n \r\n

\r\n {{'marketPlace.noAvailableOpportunities' | translate}}\r\n

\r\n
\r\n
","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaterialModule } from '../core/material/material.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { RouterModule } from '@angular/router';\r\nimport { BaseComponent } from '../views/pages/base/base.component';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { CustomeCurrecyPipe } from '../core/custom-pipes/custom-currency-pipe';\r\nimport { OnlyNumberDirective } from '../core/directives/onlynumber.directive';\r\nimport { PreventSpacesDirective } from '../core/directives/preventSpaces.directive';\r\nimport { CountdownModule } from 'ngx-countdown';\r\nimport { FooterComponent } from './layouts/footer/footer.component';\r\nimport { HeaderComponent } from './layouts/header/header.component';\r\nimport { SideBarComponent } from './layouts/side-bar/side-bar.component';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { HijriCalenderComponent } from './hijri-calender/hijri-calender.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CalenderComponent } from './calender/calender.component';\r\nimport { SecurityService } from '../core/services/security.service';\r\nimport { StorageService } from '../core/services/storage.service';\r\nimport { Identity } from './layouts/Identity/identity';\r\nimport { GaurantorComponent } from './gaurantor/gaurantor.component';\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\nimport { CalculatorComponent } from './calculator/calculator.component';\r\nimport { MarketPlaceComponent } from './market-place/market-place.component'\r\nimport { SummeryComponent } from './summery/summery.component';\r\nimport { PrecentagePipe } from '../core/custom-pipes/precentage.pipe';\r\nimport { RemaingInvestmentTimingPipe } from '../core/custom-pipes/investTime.pipe';\r\nexport function httpLoaderFactory(http: HttpClient): TranslateHttpLoader {\r\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\r\n}\r\n@NgModule({\r\n declarations: [\r\n CustomeCurrecyPipe,\r\n PrecentagePipe,\r\n RemaingInvestmentTimingPipe,\r\n BaseComponent,\r\n OnlyNumberDirective,\r\n PreventSpacesDirective,\r\n HeaderComponent,\r\n FooterComponent,\r\n SideBarComponent,\r\n HijriCalenderComponent,\r\n CalenderComponent,\r\n GaurantorComponent,\r\n ConfirmDialogComponent,\r\n CalculatorComponent,\r\n Identity,\r\n MarketPlaceComponent,\r\n SummeryComponent\r\n ],\r\n imports: [\r\n NgbModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n CountdownModule,\r\n NgxPaginationModule,\r\n TranslateModule.forChild({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n ],\r\n exports: [\r\n CalenderComponent,\r\n HijriCalenderComponent,\r\n MaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgxPaginationModule,\r\n BaseComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n CustomeCurrecyPipe,\r\n PrecentagePipe,\r\n RemaingInvestmentTimingPipe,\r\n OnlyNumberDirective,\r\n PreventSpacesDirective,\r\n CountdownModule,\r\n GaurantorComponent,\r\n CalculatorComponent,\r\n ConfirmDialogComponent,\r\n MarketPlaceComponent\r\n ],\r\n bootstrap: [HijriCalenderComponent]\r\n})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [\r\n SecurityService,\r\n StorageService,\r\n ]\r\n };\r\n }\r\n}\r\n","import { UserType } from './../../core/models/registration/userType.enum';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { SecurityService } from 'src/app/core/services/security.service';\r\nimport { StorageService } from 'src/app/core/services/storage.service';\r\nimport { UserProfileService } from 'src/app/core/services/user-profile.service';\r\nimport { BorrowerService } from 'src/app/core/services/borrower.service';\r\nimport { LenderService } from 'src/app/core/services/lender.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-summery',\r\n templateUrl: './summery.component.html'\r\n})\r\nexport class SummeryComponent implements OnInit, OnDestroy {\r\n logInUserType: any;\r\n userId: string;\r\n summaryData = {};\r\n subscriptionArray: Subscription[] = [];\r\n usertype: UserType;\r\n constructor(\r\n private securityService: SecurityService,\r\n private storageService: StorageService,\r\n private borrowerService: BorrowerService,\r\n private lenderService: LenderService) { }\r\n\r\n ngOnInit(): void {\r\n this.logInUserType = this.securityService.currentUser().role as UserType;\r\n this.userId = this.storageService.retrieve('id'); \r\n this.getSummeryData();\r\n }\r\n\r\n getSummeryData() {\r\n switch (+this.logInUserType) {\r\n case UserType.Borrower:\r\n case UserType.BorrowerCorporate: {\r\n this.getBorrowerSummery();\r\n break\r\n }\r\n case UserType.Lender:\r\n case UserType.LenderCorporate: {\r\n this.getLenderSummery();\r\n break\r\n }\r\n }\r\n }\r\n getLenderSummery() {\r\n this.subscriptionArray.push(this.lenderService.getLenderSummery(this.userId).subscribe(res => {\r\n if (res.succeeded) {\r\n this.summaryData = res.data;\r\n }\r\n }))\r\n }\r\n getBorrowerSummery() {\r\n this.subscriptionArray.push(this.borrowerService.getBorrowerSummery(this.userId).subscribe(res => {\r\n if (res.succeeded) {\r\n this.summaryData = res.data;\r\n }\r\n }))\r\n }\r\n ngOnDestroy() {\r\n this.subscriptionArray.forEach(element => {\r\n element.unsubscribe();\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

\r\n {{'finanicialReports' | translate}}\r\n

\r\n
    \r\n
  • \r\n

    {{'penddingLoans' | translate}}

    \r\n
    {{'count' | translate}} : {{summaryData.pendeingLoans}}
    \r\n
  • \r\n
  • \r\n

    {{'approvedLoans' | translate}}

    \r\n
    {{'count' | translate}} : {{summaryData.approvedLoans}}
    \r\n
  • \r\n
  • \r\n

    {{'omnibutInfo' | translate}}

    \r\n
    {{'acountNumber' | translate}} : {{summaryData.accountNumber}}
    \r\n
  • \r\n
\r\n
    \r\n
  • \r\n

    {{'Wallet' | translate}}

    \r\n
    {{'count' | translate}} : {{summaryData.wallet | customCurrency}}
    \r\n
  • \r\n
  • \r\n

    {{'activeInvestments' | translate}}

    \r\n
    {{'count' | translate}} : {{summaryData.activeInvestmentCount}}
    \r\n
    {{'amount' | translate}} : {{summaryData.activeInvestmentAmount | customCurrency}}
    \r\n
  • \r\n
  • \r\n

    {{'omnibutInfo' | translate}}

    \r\n
    {{'acountNumber' | translate}} : {{summaryData.accountNumber}}
    \r\n
  • \r\n
  • \r\n

    {{'totalInvestmentsPercentage' | translate}}

    \r\n
    {{'totalInvestmentsPercentage' | translate}} : {{summaryData.totalInvestmentPercentage}} %
    \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n","import { SecurityService } from 'src/app/core/services/security.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserType } from 'src/app/core/models/registration/userType.enum';\r\n\r\n@Component({\r\n selector: 'app-base',\r\n templateUrl: './base.component.html'\r\n})\r\nexport class BaseComponent implements OnInit {\r\n showFiller = false;\r\n Authenticated: boolean = false;\r\n constructor(\r\n private translate: TranslateService,\r\n private securityService: SecurityService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.setLanguage();\r\n\r\n if (this.securityService.currentUser() != null && this.securityService.currentUser().role !== UserType.Admin) {\r\n this.Authenticated = this.securityService.IsAuthorized;\r\n } else {\r\n this.Authenticated = this.securityService.IsAuthorized;\r\n }\r\n\r\n }\r\n\r\n setLanguage(): void {\r\n this.translate.addLangs(['ar-EG', 'en-US']);\r\n this.translate.setDefaultLang('ar-EG');\r\n const usedLang = sessionStorage.getItem('lang') ?\r\n sessionStorage.getItem('lang')\r\n : 'ar-EG';\r\n sessionStorage.setItem('lang', usedLang);\r\n this.translate.use(usedLang);\r\n // add rtl style sheet\r\n if (usedLang === 'ar-EG') {\r\n document.getElementsByTagName('html')[0].setAttribute('dir', 'rtl');\r\n const rtlStylSheet = document.createElement('link');\r\n rtlStylSheet.setAttribute('href', 'assets/css/rtl.css');\r\n rtlStylSheet.setAttribute('rel', 'stylesheet');\r\n document.getElementsByTagName('head')[0].append(rtlStylSheet);\r\n }\r\n }\r\n backToTop() {\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\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","// 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: false,\r\n configFile: 'assets/config/config.json'\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"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]}