{"version":3,"file":"ngx-jenga-api.mjs","sources":["../../../projects/ngx-jenga-api/src/lib/interfaces.ts","../../../projects/ngx-jenga-api/src/lib/services/api.service.ts","../../../projects/ngx-jenga-api/src/lib/jenga.keys.ts","../../../projects/ngx-jenga-api/src/lib/services/auth.service.ts","../../../projects/ngx-jenga-api/src/lib/ngx-jenga-api.component.ts","../../../projects/ngx-jenga-api/src/lib/interceptors/api-key.interceptor.ts","../../../projects/ngx-jenga-api/src/lib/interceptors/auth.interceptor.ts","../../../projects/ngx-jenga-api/src/lib/error-handler/error.service.ts","../../../projects/ngx-jenga-api/src/lib/error-handler/error.-logger.service.ts","../../../projects/ngx-jenga-api/src/lib/error-handler/error.notification.service.ts","../../../projects/ngx-jenga-api/src/lib/error-handler/global-error-handler.ts","../../../projects/ngx-jenga-api/src/lib/services/loader.service.ts","../../../projects/ngx-jenga-api/src/lib/components/merchants/merchants.component.ts","../../../projects/ngx-jenga-api/src/lib/components/merchants/merchants.component.html","../../../projects/ngx-jenga-api/src/lib/services/general.service.ts","../../../projects/ngx-jenga-api/src/lib/components/bill-payments/bill-payments.component.ts","../../../projects/ngx-jenga-api/src/lib/components/bill-payments/bill-payments.component.html","../../../projects/ngx-jenga-api/src/lib/components/merchant-payments/merchant-payments.component.ts","../../../projects/ngx-jenga-api/src/lib/components/merchant-payments/merchant-payments.component.html","../../../projects/ngx-jenga-api/src/lib/components/billers/billers.component.ts","../../../projects/ngx-jenga-api/src/lib/components/billers/billers.component.html","../../../projects/ngx-jenga-api/src/lib/interceptors/loader.interceptor.ts","../../../projects/ngx-jenga-api/src/lib/ngx-jenga-api.module.ts","../../../projects/ngx-jenga-api/src/lib/interceptors/error.interceptor.ts","../../../projects/ngx-jenga-api/src/lib/interceptors/signature.interceptor.ts","../../../projects/ngx-jenga-api/src/public-api.ts","../../../projects/ngx-jenga-api/src/ngx-jenga-api.ts"],"sourcesContent":["import { FormControl, FormGroup } from \"@angular/forms\"\r\n\r\ninterface baseLink {\r\n    myUrl: URL,\r\n    myAuthUrl: URL\r\n}\r\nconst link = new URL('https://uat.finserve.africa/v3-apis/transaction-api/v3.0')\r\nconst authLink = new URL('https://uat.finserve.africa/authentication/api/v3/authenticate/merchant')\r\nexport const BaseURL: baseLink = {\r\n  myUrl: link,\r\n  myAuthUrl: authLink\r\n}\r\n\r\n\r\nexport interface IauthReq {\r\n    merchantCode: string\r\n    consumerSecret: string\r\n}\r\n\r\n\r\nexport interface IauthRes {\r\n    accessToken: string\r\n    refreshToken: string\r\n    expiresIn: string\r\n    issuedAt: string\r\n    tokenType: string\r\n}\r\n\r\n\r\nexport interface IrecbillPayments {\r\n    biller: {\r\n        billerCode: string\r\n        countryCode: string\r\n    },\r\n    bill: {\r\n        reference: string\r\n        amount: string\r\n        currency: string\r\n    },\r\n    payer: {\r\n        name: string\r\n        account: string\r\n        reference: string\r\n        mobileNumber: string\r\n    },\r\n    partnerId: string\r\n    remarks: string\r\n}\r\n\r\n\r\nexport interface IBillForm extends FormGroup {\r\n    value: IrecbillPayments,\r\n    controls: {\r\n        billerCode: FormControl\r\n        countryCode: FormControl\r\n        reference: FormControl\r\n        amount: FormControl\r\n        currency: FormControl\r\n        name: FormControl\r\n        account: FormControl\r\n        reference2: FormControl\r\n        mobileNumber: FormControl\r\n        partnerId: FormControl\r\n        remarks: FormControl\r\n    }\r\n}\r\n\r\n\r\nexport interface IrecMerchantPayments {\r\n    biller: {\r\n        billerCode: string\r\n        countryCode: string\r\n    }\r\n    bill: {\r\n        reference: string\r\n        amount: string\r\n        currency: string\r\n    }\r\n    payer: {\r\n        name: string\r\n        account: string\r\n        reference: string\r\n        mobileNumber: string\r\n    }\r\n    partnerId: string\r\n    remarks: string\r\n}\r\n\r\n\r\nexport interface IMerchantForm extends FormGroup {\r\n    value: IrecMerchantPayments\r\n    controls: {\r\n        billerCode: FormControl\r\n        countryCode: FormControl\r\n        reference: FormControl\r\n        amount: FormControl\r\n        currency: FormControl\r\n        name: FormControl\r\n        account: FormControl\r\n        reference2: FormControl\r\n        mobileNumber: FormControl\r\n        partnerId: FormControl\r\n        remarks: FormControl\r\n    }\r\n}\r\n\r\n\r\nexport interface IMerchantPayments {\r\n    merchant: {\r\n        till: string\r\n      },\r\n      payment: {\r\n        ref: string\r\n        amount: string\r\n        currency: string\r\n      },\r\n      partner: {\r\n        id: string\r\n        ref: string\r\n      }\r\n}\r\n\r\nexport interface IMerchantPaymentsForm  extends FormGroup {\r\n    value: IMerchantPayments \r\n    controls: {\r\n        till: FormControl\r\n        ref: FormControl\r\n        amount: FormControl\r\n        currency: FormControl\r\n        id: FormControl\r\n        ref2: FormControl\r\n    }\r\n}\r\n\r\n\r\n\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseURL, IMerchantPayments, IrecbillPayments, IrecMerchantPayments } from '../interfaces';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ApiService {\n  \n  constructor(\n    private api: HttpClient\n  ) { }\n\n// ***************************GET REQUESTS***************************\n\n\n  // Get All EazzyPay Merchants\n  getAllEazzyPayMerchants(page:number, per_page:number): Observable<any> {\n    let params = new HttpParams()\n    .set('page', page)\n    .set('per_page', per_page)\n\n    return this.api.get(`${BaseURL.myUrl}/merchants`, { params })\n  }\n\n  // Get All Billers\n  getAllBillers(page:number, per_page:number, category:string): Observable<any> {\n    let params = new HttpParams()\n    .set('page', page)\n    .set('per_page', per_page)\n    .set('category', category)\n\n    return this.api.get(`${BaseURL.myUrl}/billers`, { params })\n  }\n\n\n\n\n// ***************************POST REQUESTS***************************\n\n\n  // Receive Payments - Bill Payments\n  receiveBillPayments(data:IrecbillPayments): Observable<IrecbillPayments> {\n    return this.api.post<IrecbillPayments>(`${BaseURL.myUrl}/bills/pay`, data)\n  }\n\n  // Receive Payments - Merchant Payments\n  receiveMerchantPayments(data:IMerchantPayments): Observable<IrecMerchantPayments> {\n    return this.api.post<IrecMerchantPayments>(`${BaseURL.myUrl}/tills/pay`, data)\n  }\n\n\n}\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const JENGA_API_KEYS = new InjectionToken<any>('jenga.keys')","import { HttpBackend, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { BaseURL, IauthReq } from '../interfaces';\nimport { map, Observable } from 'rxjs';\nimport { JENGA_API_KEYS } from '../jenga.keys';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AuthService {\n  private httpClient: HttpClient\n\n  constructor(\n    handler: HttpBackend,\n    @Inject(JENGA_API_KEYS) private token:any\n  ) {\n    this.httpClient = new HttpClient(handler)\n   }\n\n  authenticateMerchant(): Observable<IauthReq> {\n    const httpOptions = {\n      headers: new HttpHeaders({\n        'API-Key': `${this.token.api_key}`\n      })\n    }\n\n    return this.httpClient.post<IauthReq>(`${BaseURL.myAuthUrl}`, {\n      merchantCode: this.token.merchant_code,\n      consumerSecret: this.token.consumer_secret,\n    }, httpOptions ).pipe(map((res:any) => {\n      this.isAuthenticated() == true\n      return res\n    }))\n  }\n\n  isAuthenticated(): boolean {\n    return false\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'lib-ngx-jenga-api',\n  template: ``,\n  styles: [\n  ]\n})\nexport class NgxJengaApiComponent {\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { JENGA_API_KEYS } from '../jenga.keys';\n\n@Injectable()\nexport class ApiKeyInterceptor implements HttpInterceptor {\n\n  constructor(\n    @Inject(JENGA_API_KEYS) private token: any\n  ) {}\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    request = request.clone({\n      setHeaders: {\n        'API-Key': `${this.token.api_key}`\n      }\n    });\n  return next.handle(request);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n  \n  constructor() {}\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    const token = localStorage.getItem(\"jenga-tkn\")\n    request = request.clone({\n      setHeaders: {\n        Authorization: `Bearer ${token}`,\n      }\n    });\n  return next.handle(request);\n  }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n\r\n  getClientErrorMessage(error:Error): string {\r\n    return error.message ? error.message : error.toString()\r\n  }\r\n\r\n  getServerErrorMessage(error:HttpErrorResponse): string {\r\n    return navigator.onLine ? error.message : 'Kindly check your internet connection'\r\n  }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LoggingService {\r\n\r\n    constructor(){}\r\n\r\n  logError(message:any, stack:string){\r\n    // send the errors to database\r\n    // console.log(\"LoggingService:\" + message)\r\n  }\r\n}","import { Injectable, NgZone } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n  constructor(\r\n    private zone:NgZone,\r\n        private snack:MatSnackBar\r\n  ) { }\r\n\r\n  showSuccess(message:string){\r\n    this.zone.run(()=> {\r\n      this.snack.open(message, 'close', {\r\n        duration: 4000\r\n      });\r\n    })\r\n  }\r\n\r\n  showWarning(message:string){\r\n    this.zone.run(()=>{\r\n      this.snack.open(message, 'close', {\r\n        duration: 6000\r\n      })\r\n    })\r\n  }\r\n\r\n  showError(message:string){\r\n    this.zone.run(()=> {\r\n      this.snack.open(message, 'close', {\r\n        duration: 4000\r\n      })\r\n    })\r\n  }\r\n}","import { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { ErrorService } from \"../error-handler/error.service\";\r\nimport { LoggingService } from \"./error.-logger.service\";\r\nimport { NotificationService } from \"./error.notification.service\";\r\n\r\n\r\ntype NewType = Error | HttpErrorResponse;\r\n\r\n@Injectable()\r\nexport class GlobalErrorHndler implements ErrorHandler{\r\n\r\n    constructor(\r\n        private injector: Injector\r\n    ){ }\r\n\r\n    handleError(error: NewType) {\r\n        const errorService = this.injector.get(ErrorService)\r\n        const logger = this.injector.get(LoggingService)\r\n        const notifier = this.injector.get(NotificationService)\r\n\r\n        let message\r\n        let stackTrace:any\r\n        if (error instanceof HttpErrorResponse){\r\n            message = errorService.getServerErrorMessage(error)\r\n            notifier.showError(message)\r\n        } else {\r\n            message = errorService.getClientErrorMessage(error)\r\n            notifier.showError(message)\r\n        }\r\n        logger.logError(message, stackTrace)\r\n    }\r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LoaderService {\n\n  private isLoading$$ = new BehaviorSubject<boolean>(false)\n  isLoading$ = this.isLoading$$.asObservable()\n  \n  setLoading(isLoading: boolean) {\n    this.isLoading$$.next(isLoading)\n  }\n}","import { AfterViewInit, Component, Input, OnDestroy, ViewChild } from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table'; \nimport { ApiService } from '../../services/api.service';\nimport { AuthService } from '../../services/auth.service';\nimport { LoaderService } from '../../services/loader.service';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n  selector: 'jenga-all-merchants',\n  templateUrl: './merchants.component.html',\n  styleUrls: ['./merchants.component.css']\n})\nexport class MerchantsComponent implements AfterViewInit, OnDestroy {\n\n  merchantList: any\n  dataSource!: MatTableDataSource<any>\n  destroyComponent = new Subject<void>()\n\n  @Input() tableShadow: boolean = true\n  @Input() showSearchBar: boolean = true\n  @ViewChild(MatPaginator) paginator!: MatPaginator\n  @ViewChild(MatSort, {static: false}) sort!: MatSort\n  \n  constructor(\n    private api: ApiService,\n    public loadingService: LoaderService,\n    private authenticateEndpoint: AuthService\n  ){\n    this.authenticateEndpoint.authenticateMerchant().subscribe({\n      next: (res:any) => {\n        localStorage.setItem('jenga-tkn', res.accessToken)\n      },\n      error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n  ngAfterViewInit(): void {\n    this.getMerchants()\n  }\n\n  ngOnDestroy(): void {\n    this.destroyComponent.next()\n    this.destroyComponent.complete()\n  }\n\n  getMerchants(per_page:number = 25):void {\n    this.api.getAllEazzyPayMerchants(1, per_page)\n    .pipe(takeUntil(this.destroyComponent))\n    .subscribe({\n      next: (res:any) => {\n        this.merchantList = res.data.merchants\n        this.dataSource = new MatTableDataSource(res.data.merchants)\n        this.dataSource.paginator = this.paginator\n        this.dataSource.sort = this.sort\n      },\n      error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n  updatePageSize(event:any) {\n    const per_page = event.pageSize\n    this.getMerchants(per_page)\n  }\n\n  applyFilter(event: Event) {\n    const filterValue = (event.target as HTMLInputElement).value\n    this.dataSource.filter = filterValue.trim().toLowerCase()\n    if (this.dataSource.paginator) {\n      this.dataSource.paginator.firstPage()\n    }\n  }\n  \n}\n","<div class=\"table\">\n    <div class=\"searchBar\" *ngIf=\"showSearchBar\">\n        <input (keyup)=\"applyFilter($event)\" id=\"searchQueryInput\" type=\"text\" name=\"searchQueryInput\" placeholder=\"Search {{ merchantList?.length }} merchants\" />\n    </div>\n    <table mat-table [dataSource]=\"dataSource\" matSort [class.mat-elevation-z8]=\"tableShadow\">\n\n        <ng-container matColumnDef=\"name\">\n            <th class=\"table-header\" mat-header-cell *matHeaderCellDef mat-sort-header sortActionDescription=\"Sort by name\">Name</th>\n            <td mat-cell *matCellDef=\"let row\"> {{ row.name }} </td>\n        </ng-container>\n\n        <ng-container matColumnDef=\"tillNumber\">\n            <th class=\"table-header\" mat-header-cell *matHeaderCellDef mat-sort-header sortActionDescription=\"Sort by tillNumber\">Till Number</th>\n            <td mat-cell *matCellDef=\"let row\"> {{ row.tillNumber }} </td>\n        </ng-container>\n\n\n        <!-- <ng-container matColumnDef=\"outlets\">\n            <th class=\"table-header\" mat-header-cell *matHeaderCellDef mat-sort-header sortActionDescription=\"Sort by tillnumber\">Outlets</th>\n\n            <td mat-cell *matCellDef=\"let row\">\n                <table mat-table [dataSource]=\"row.outlets\">\n\n                    <ng-container matColumnDef=\"Oname\">\n                        <th class=\"sub-table\" mat-header-cell *matHeaderCellDef>Name</th>\n                        <td mat-cell *matCellDef=\"let row\"> {{ row.name }} </td>\n                    </ng-container>\n\n                    <ng-container matColumnDef=\"Otillnumber\">\n                        <th class=\"sub-table\" mat-header-cell *matHeaderCellDef>Till Number</th>\n                        <td mat-cell *matCellDef=\"let row\"> {{ row.tillnumber }} </td>\n                    </ng-container>\n\n                    <tr mat-header-row *matHeaderRowDef=\"['Oname', 'Otillnumber']\" RowDef=\"['Oname', 'Otillnumber']\"></tr>\n                    <tr mat-row *matRowDef=\"let row; columns: ['Oname', 'Otillnumber'];\"></tr>\n                </table>\n            </td>\n        </ng-container> -->\n\n\n        <tr mat-header-row *matHeaderRowDef=\"['name', 'tillNumber']\" RowDef=\"['name', 'tillNumber']\"></tr>\n        <tr mat-row *matRowDef=\"let row; columns: ['name', 'tillNumber'];\"></tr>\n    </table>\n    <mat-progress-bar *ngIf=\"loadingService.isLoading$ | async\" mode=\"indeterminate\"></mat-progress-bar>\n    <mat-paginator #paginator [pageSizeOptions]=\"[25, 50, 100]\" showFirstLastButtons (page)=\"updatePageSize($event)\"></mat-paginator>\n</div>","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GeneralService {\n\n  // general functions and such\n  constructor() { }\n  \n  generateRandomString(length: number): string {\n    const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n    let result = ''\n    for (let i = 0; i < length; i++) {\n      result += characters.charAt(Math.floor(Math.random() * characters.length))\n    }\n    return result\n  }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IBillForm, IrecbillPayments } from '../../interfaces';\nimport { ApiService } from '../../services/api.service';\nimport { AuthService } from '../../services/auth.service';\nimport { GeneralService } from '../../services/general.service';\n\n@Component({\n  selector: 'jenga-bill-payments',\n  templateUrl: './bill-payments.component.html',\n  styleUrls: ['./bill-payments.component.css']\n})\nexport class BillPaymentsComponent implements OnInit {\n\n  billForm!: FormGroup\n  paymentData!: IrecbillPayments\n\n  @Input() billerCode!: string\n  @Input() countryCode!: string\n  @Input() reference!: string\n  @Input() amount!: string\n  @Input() currency!: string\n  @Input() name!: string\n  @Input() account!: string\n  @Input() reference2!: string\n  @Input() partnerId!: string\n  @Input() authorization!: string\n  @Input() signature!: string\n  @Input() mobileNumber!: string\n  @Input() remarks!: string\n  @Input() cardShadow: boolean = true\n\n\n  constructor(\n    private api: ApiService,\n    private gs: GeneralService,\n    private formbuilder: FormBuilder,\n    private authenticateEndpoint: AuthService\n  ){\n    this.authenticateEndpoint.authenticateMerchant().subscribe({\n      next: (res:any) => {\n        localStorage.setItem('jenga-tkn', res.accessToken)\n      },\n      error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n  ngOnInit(): void {\n    this.billForm = this.formbuilder.group({\n      billerCode: [this.billerCode, [Validators.required]],\n      countryCode: [this.countryCode, [Validators.required]],\n      reference: [this.reference, [Validators.required]],\n      amount: [this.amount, [Validators.required]],\n      currency: [this.currency, [Validators.required]],\n      name: [this.name, [Validators.required]],\n      account: [this.account, [Validators.required]],\n      reference2: [this.gs.generateRandomString(12), [Validators.required]],\n      partnerId: [this.partnerId, [Validators.required]],\n      mobileNumber: [this.mobileNumber, [Validators.required]],\n      remarks: [this.remarks, [Validators.required]],\n    }) as IBillForm\n  }\n\n  billPayments(): void {\n    this.paymentData = {\n      biller: {\n        billerCode: this.billForm.value.billerCode,\n        countryCode: this.billForm.value.countryCode\n      },\n      bill: {\n        reference: this.billForm.value.reference,\n        amount: this.billForm.value.amount,\n        currency: this.billForm.value.currency\n      },\n      payer: {\n        name: this.billForm.value.name,\n        account: this.billForm.value.reference,\n        reference: this.billForm.value.reference2,\n        mobileNumber: this.billForm.value.mobileNumber\n      },\n      partnerId: this.billForm.value.partnerId,\n      remarks: this.billForm.value.remarks\n    }\n    this.api.receiveBillPayments(this.paymentData).subscribe({\n      next: (res:any) => {\n        console.log(\"Bill payment is: \", res)\n      },\n      error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n}\n","<mat-card [class.mat-elevation-z8]=\"cardShadow\">\n    <form class=\"user-form\" [formGroup]=\"billForm\">\n\n        <mat-form-field class=\"form-field\" appearance=\"outline\">\n            <mat-label>Name</mat-label>\n            <input matInput formControlName=\"name\">\n            <mat-error>Kindly add your name</mat-error>\n        </mat-form-field>\n        <br>\n\n        <mat-form-field class=\"form-field\" appearance=\"outline\">\n            <mat-label>Account Number</mat-label>\n            <input matInput formControlName=\"reference\">\n            <mat-error>Kindly add yur account number</mat-error>\n        </mat-form-field>\n        <br>\n\n        <mat-form-field class=\"form-field\" appearance=\"outline\">\n            <mat-label>Mobile Number</mat-label>\n            <input matInput formControlName=\"mobileNumber\">\n            <mat-error>Kindly add a mobile number</mat-error>\n        </mat-form-field>\n        <br>\n\n        <mat-form-field class=\"form-field full-width\" appearance=\"outline\" class=\"example-full-width\">\n            <mat-label>Leave a Remark</mat-label>\n            <textarea matInput formControlName=\"remarks\"></textarea>\n            <mat-error>Kindly add a remark</mat-error>\n        </mat-form-field>\n        <br>\n\n        <button (click)=\"billPayments()\" mat-raised-button color=\"primary\">Make Payment</button>\n\n    </form>\n</mat-card>","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { IMerchantPayments, IrecMerchantPayments } from '../../interfaces';\nimport { ApiService } from '../../services/api.service';\nimport { AuthService } from '../../services/auth.service';\nimport { GeneralService } from '../../services/general.service';\n\n@Component({\n  selector: 'jenga-merchant-payments',\n  templateUrl: './merchant-payments.component.html',\n  styleUrls: ['./merchant-payments.component.css']\n})\nexport class MerchantPaymentsComponent implements OnInit, OnDestroy {\n\n  destroyComponent = new Subject<void>()\n  merchantForm!: FormGroup\n  paymentData!: IMerchantPayments\n\n  @Input() till!: string\n  @Input() uniqueRef!: string\n  @Input() amount!: string\n  @Input() currency!: string\n  @Input() bankId!: string\n  @Input() mobileNumber!: string\n\n  \n  constructor(\n    private api: ApiService,\n    private general: GeneralService,\n    private formbuilder: FormBuilder,\n    private authenticateEndpoint: AuthService\n  ){\n    this.authenticateEndpoint.authenticateMerchant().subscribe({\n      next: (res:any) => {\n        localStorage.setItem('jenga-tkn', res.accessToken)\n      },\n      error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n  ngOnInit(): void {\n    this.merchantForm = this.formbuilder.group({\n      till: [this.till, [Validators.required]],\n      uniqueRef: [this.general.generateRandomString(12), [Validators.required]],\n      amount: [this.amount, [Validators.required]],\n      currency: [this.currency, [Validators.required]],\n      bankId: [this.bankId, [Validators.required]],\n      mobileNumber: [this.mobileNumber, [Validators.required]],\n    })\n  }\n\n  ngOnDestroy(): void {\n    this.destroyComponent.next()\n    this.destroyComponent.complete()\n  }\n\n  \n  merchantPayments(): void {\n    const data: IMerchantPayments = {\n      merchant: {\n        till: this.merchantForm.value.till\n      },\n      payment: {\n        ref: this.merchantForm.value.uniqueRef,\n        amount: this.merchantForm.value.amount,\n        currency: this.merchantForm.value.currency\n      },\n      partner: {\n        id: this.merchantForm.value.bankId,\n        ref: this.merchantForm.value.mobileNumber\n      }\n    }\n    this.api.receiveMerchantPayments(data).pipe(\n      takeUntil(this.destroyComponent)).subscribe({\n        next: (res:any) => {\n          console.log(res)\n        },\n        error: (e:any) => {\n          throw new Error(e.error.message)\n        }\n      })\n  }\n}\n","<mat-card>\n    <form class=\"user-form\" [formGroup]=\"merchantForm\">\n\n        <mat-form-field class=\"form-field\" appearance=\"outline\">\n            <mat-label>Till number</mat-label>\n            <input matInput formControlName=\"till\">\n            <mat-error>Kindly add the till number</mat-error>\n        </mat-form-field>\n        <br>\n\n        <mat-form-field class=\"form-field\" appearance=\"outline\">\n            <mat-label>Amount</mat-label>\n            <input matInput formControlName=\"amount\">\n            <mat-error>Kindly add your amount</mat-error>\n        </mat-form-field>\n        <br>\n\n        <mat-form-field class=\"form-field\" appearance=\"outline\">\n            <mat-label>Mobile Number</mat-label>\n            <input matInput formControlName=\"mobileNumber\">\n            <mat-error>Kindly add a mobile number</mat-error>\n        </mat-form-field>\n        <br>\n\n        <button [disabled]=\"!merchantForm.valid\" (click)=\"merchantPayments()\" mat-raised-button color=\"primary\">Make Payment</button>\n\n    </form>\n</mat-card>","import { AfterViewInit, Component, Input, ViewChild } from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table'; \nimport { ApiService } from '../../services/api.service';\nimport { LoaderService } from '../../services/loader.service';\nimport { AuthService } from '../../services/auth.service';\n\n@Component({\n  selector: 'jenga-all-billers',\n  templateUrl: './billers.component.html',\n  styleUrls: ['./billers.component.css']\n})\nexport class BillersComponent implements AfterViewInit {\n\n  billersList: any\n  dataSource!: MatTableDataSource<any>\n  @Input() showSearchBar: boolean = true\n  @Input() tableShadow: boolean = true\n  @Input() categories: string = 'utilities'\n  @ViewChild(MatPaginator) paginator!: MatPaginator\n  @ViewChild(MatSort, {static: false}) sort!: MatSort\n\n  constructor(\n    private api: ApiService,\n    public loadingService: LoaderService,\n    private authenticateEndpoint: AuthService\n  ){\n    this.authenticateEndpoint.authenticateMerchant().subscribe({\n      next: (res:any) => {\n        localStorage.setItem('jenga-tkn', res.accessToken)\n      },\n      error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n  ngAfterViewInit(): void {\n    this.getBillers(25)\n  }\n\n  getBillers(per_page:number): void {\n    this.api.getAllBillers(1, per_page, this.categories)\n    .subscribe({\n      next: (res:any) => { \n        this.billersList = res.data.billers\n        this.dataSource = new MatTableDataSource(res.data.billers)\n        this.dataSource.paginator = this.paginator\n        this.dataSource.sort = this.sort\n       },\n       error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n  updatePageSize(event:any) {\n    const per_page = event.pageSize\n    this.getBillers(per_page)\n  }\n\n  onCategorySelected(event: any) {\n    console.log('event is: ', event)\n    this.api.getAllBillers(1, 25, event.value).subscribe({\n      next: (res:any) => { \n        this.billersList = res.data.billers\n        this.dataSource = new MatTableDataSource(res.data.billers)\n        this.dataSource.paginator = this.paginator\n        this.dataSource.sort = this.sort\n       },\n       error: (e:any) => {\n        throw new Error(e.error.message)\n      }\n    })\n  }\n\n  applyFilter(event: Event) {\n    const filterValue = (event.target as HTMLInputElement).value\n    this.dataSource.filter = filterValue.trim().toLowerCase()\n    if (this.dataSource.paginator) {\n      this.dataSource.paginator.firstPage()\n    }\n  }\n\n}\n","<div class=\"table\">\n    <div class=\"searchBar\" *ngIf=\"showSearchBar\">\n        <input (keyup)=\"applyFilter($event)\" id=\"searchQueryInput\" type=\"text\" name=\"searchQueryInput\" placeholder=\"Search {{ billersList?.length }} merchants\" />\n        <br>\n    </div>\n    <table mat-table [dataSource]=\"dataSource\" matSort [class.mat-elevation-z8]=\"tableShadow\">\n\n        <ng-container [style.width]=\"'170px'\" matColumnDef=\"category\">\n            <th [style.width]=\"'170px'\" class=\"table-header\" mat-header-cell *matHeaderCellDef>\n                <mat-select (selectionChange)=\"onCategorySelected($event)\" [style.width]=\"'170px'\" [(value)]=\"categories\">\n                    <mat-option value=\"utilities\">Utilities</mat-option>\n                    <mat-option value=\"services\">Services</mat-option>\n                </mat-select>\n            </th>\n            <td mat-cell *matCellDef=\"let row\"></td>\n        </ng-container>\n\n\n        <ng-container matColumnDef=\"name\">\n            <th class=\"table-header\" mat-header-cell *matHeaderCellDef mat-sort-header sortActionDescription=\"Sort by name\">Name</th>\n            <td mat-cell *matCellDef=\"let row\"> {{ row.name }} </td>\n        </ng-container>\n\n        <ng-container matColumnDef=\"code\">\n            <th class=\"table-header\" mat-header-cell *matHeaderCellDef mat-sort-header sortActionDescription=\"Sort by code\">Code</th>\n            <td mat-cell *matCellDef=\"let row\"> {{ row.code }} </td>\n        </ng-container>\n\n\n        <!-- <ng-container matColumnDef=\"outlets\">\n            <th class=\"table-header\" mat-header-cell *matHeaderCellDef mat-sort-header sortActionDescription=\"Sort by tillnumber\">Outlets</th>\n\n            <td mat-cell *matCellDef=\"let row\">\n                <table mat-table [dataSource]=\"row.outlets\">\n\n                    <ng-container matColumnDef=\"Oname\">\n                        <th class=\"sub-table\" mat-header-cell *matHeaderCellDef>Name</th>\n                        <td mat-cell *matCellDef=\"let row\"> {{ row.name }} </td>\n                    </ng-container>\n\n                    <ng-container matColumnDef=\"Otillnumber\">\n                        <th class=\"sub-table\" mat-header-cell *matHeaderCellDef>Till Number</th>\n                        <td mat-cell *matCellDef=\"let row\"> {{ row.tillnumber }} </td>\n                    </ng-container>\n\n                    <tr mat-header-row *matHeaderRowDef=\"['Oname', 'Otillnumber']\" RowDef=\"['Oname', 'Otillnumber']\"></tr>\n                    <tr mat-row *matRowDef=\"let row; columns: ['Oname', 'Otillnumber'];\"></tr>\n                </table>\n            </td>\n        </ng-container> -->\n\n\n        <tr mat-header-row *matHeaderRowDef=\"['category', 'name', 'code']\" RowDef=\"['category', 'name', 'code']\"></tr>\n        <tr mat-row *matRowDef=\"let row; columns: ['category', 'name', 'code'];\"></tr>\n    </table>\n    <mat-progress-bar *ngIf=\"loadingService.isLoading$ | async\" mode=\"indeterminate\"></mat-progress-bar>\n    <mat-paginator #paginator [pageSizeOptions]=\"[25, 50, 100]\" showFirstLastButtons (page)=\"updatePageSize($event)\"></mat-paginator>\n</div>","import { Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor\n} from '@angular/common/http';\nimport { finalize, Observable } from 'rxjs';\nimport { LoaderService } from '../services/loader.service';\n\n@Injectable()\nexport class LoaderInterceptor implements HttpInterceptor {\n  totalRequests: number = 0\n\n  constructor(\n    private loadingService: LoaderService\n  ) {}\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    this.totalRequests++\n    this.loadingService.setLoading(true)\n\n    return next.handle(request).pipe(\n      finalize(() => {\n        this.totalRequests--\n        if (this.totalRequests === 0) {\n          // plz work\n          this.loadingService.setLoading(false)\n        }\n      })\n    )\n  }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n// configs\nimport { JENGA_API_KEYS } from './jenga.keys';\nimport { ApiKeyInterceptor } from './interceptors/api-key.interceptor';\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\nimport { GlobalErrorHndler } from './error-handler/global-error-handler';\nimport { ErrorInterceptor } from './interceptors/error.interceptor';\n\n// components\nimport { NgxJengaApiComponent } from './ngx-jenga-api.component';\nimport { MerchantsComponent } from './components/merchants/merchants.component';\nimport { BillPaymentsComponent } from './components/bill-payments/bill-payments.component';\nimport { MerchantPaymentsComponent } from './components/merchant-payments/merchant-payments.component';\nimport { BillersComponent } from './components/billers/billers.component';\n\n// material\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { LoaderInterceptor } from './interceptors/loader.interceptor';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n\n\n@NgModule({\n  declarations: [\n    NgxJengaApiComponent,\n    MerchantsComponent,\n    BillPaymentsComponent,\n    MerchantPaymentsComponent,\n    BillersComponent\n  ],\n  imports: [\n    HttpClientModule,\n    CommonModule,\n\n    // material\n    MatProgressBarModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatPaginatorModule,\n    MatSnackBarModule, \n    MatSelectModule,\n    MatButtonModule,\n    MatTableModule,\n    MatInputModule,\n    MatSortModule,\n    MatCardModule,\n    FormsModule\n  ],\n  exports: [\n    NgxJengaApiComponent,\n    MerchantsComponent,\n    BillPaymentsComponent,\n    MerchantPaymentsComponent,\n    BillersComponent\n  ],\n  providers: [\n    { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\n    { provide: HTTP_INTERCEPTORS, useClass: ApiKeyInterceptor, multi: true },\n    // { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n    { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },\n    { provide: ErrorHandler, useClass: GlobalErrorHndler },\n    // { \n    //   provide: APP_INITIALIZER, \n    //   useFactory: (authAPI: AuthService) => () => \n    //   authAPI.authenticateMerchant().subscribe({\n    //       next: (res:any) => {\n    //         console.log(\"RES IS: \", res)\n    //         localStorage.setItem('jenga-tkn', res.accessToken)\n    //       },\n    //       error: (e:any) => {\n    //         console.error(\"Error is: \", e)\n    //       }\n    //     }), \n    //   deps: [AuthService], multi: true\n    // }\n  ]\n})\nexport class NgxJengaApiModule { \n  static forRoot(\n    merchant_code: string, \n    consumer_secret: string,\n    api_key: string\n    ): ModuleWithProviders<NgxJengaApiModule> {\n    return {\n      ngModule: NgxJengaApiModule,\n      providers: [\n        { \n          provide: JENGA_API_KEYS, \n          useValue: \n          { \n            merchant_code, \n            consumer_secret, \n            api_key \n          } \n        }\n      ]\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor,\n  HttpErrorResponse\n} from '@angular/common/http';\nimport { catchError, Observable, throwError } from 'rxjs';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    return next.handle(request).pipe(\n      // retry(1), //retry 2 times on error\n      catchError((error:HttpErrorResponse) =>{\n        if (error.status === 404){\n          throw new Error(\"Failure fetching data. Kindly refresh your browser\")\n        } else {\n          throw new Error(\"Something went wrong :/\")\n        }\n      })\n    )\n  }\n}","import { Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class SignatureInterceptor implements HttpInterceptor {\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    return next.handle(request)\n  }\n}\n","/*\n * Public API Surface of ngx-jenga-api\n */\n\nexport * from './lib/services/api.service'\nexport * from './lib/services/auth.service'\nexport * from './lib/ngx-jenga-api.component'\nexport * from './lib/ngx-jenga-api.module'\nexport * from './lib/components/merchants/merchants.component'\nexport * from './lib/interfaces'\nexport * from './lib/jenga.keys'\nexport * from './lib/components/bill-payments/bill-payments.component'\nexport * from './lib/components/merchant-payments/merchant-payments.component'\nexport * from './lib/components/billers/billers.component'\nexport * from './lib/interceptors/api-key.interceptor'\nexport * from './lib/interceptors/auth.interceptor'\nexport * from './lib/interceptors/error.interceptor'\nexport * from './lib/interceptors/loader.interceptor'\nexport * from './lib/interceptors/signature.interceptor'\n\n// error handler exports\nexport * from './lib/error-handler/error.-logger.service'\nexport * from './lib/error-handler/error.notification.service'\nexport * from './lib/error-handler/error.service'\nexport * from './lib/error-handler/global-error-handler'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.ApiService","i2.LoaderService","i3.AuthService","i2.GeneralService","i4.AuthService","i5","i6","i7","i8","i9","i10","i1.LoaderService"],"mappings":"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"}