{"version":3,"file":"ngx-tingg.mjs","sources":["../../../projects/ngx-tingg/src/lib/tingg.configs.ts","../../../projects/ngx-tingg/src/lib/shared/services/api.service.ts","../../../projects/ngx-tingg/src/lib/shared/services/auth.service.ts","../../../projects/ngx-tingg/src/lib/shared/services/data.service.ts","../../../projects/ngx-tingg/src/lib/shared/services/loader.service.ts","../../../projects/ngx-tingg/src/lib/components/charge-request/charge-request.component.ts","../../../projects/ngx-tingg/src/lib/components/charge-request/charge-request.component.html","../../../projects/ngx-tingg/src/lib/shared/interceptors/apikey.interceptor.ts","../../../projects/ngx-tingg/src/lib/components/direct-card-request/direct-card-request.component.ts","../../../projects/ngx-tingg/src/lib/components/direct-card-request/direct-card-request.component.html","../../../projects/ngx-tingg/src/lib/shared/error-handler/error.notification.service.ts","../../../projects/ngx-tingg/src/lib/shared/error-handler/error.service.ts","../../../projects/ngx-tingg/src/lib/shared/error-handler/error-logger.service.ts","../../../projects/ngx-tingg/src/lib/shared/error-handler/global-error.handler.ts","../../../projects/ngx-tingg/src/lib/shared/interceptors/error.interceptor.ts","../../../projects/ngx-tingg/src/lib/shared/interceptors/loader.interceptor.ts","../../../projects/ngx-tingg/src/lib/ngx-tingg.module.ts","../../../projects/ngx-tingg/src/public-api.ts","../../../projects/ngx-tingg/src/ngx-tingg.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { token } from './tingg.interfaces';\r\n\r\nexport const TINGG_CONFIGS = new InjectionToken<token>('tingg.configs')","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { TINGG_CONFIGS } from '../../tingg.configs';\nimport { IchargeRequest, token } from '../../tingg.interfaces';\n\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ApiService {\n  env!: URL\n\n  constructor(\n    private http: HttpClient,\n    @Inject(TINGG_CONFIGS) private token: token\n  ) {\n    this.env = this.token.isProduction\n    ? new URL('https://api.tingg.africa/v3') \n    : new URL('https://api-dev.tingg.africa/v3')\n  }\n\n  chargeRequest(data: IchargeRequest): Observable<IchargeRequest> {\n    return this.http.post<IchargeRequest>(`${this.env}/charge/request`, data)\n  }\n\n  getCountries(): Observable<any> {\n    return this.http.get('https://restcountries.com/v3.1/all')\n  }\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\n\nimport { TINGG_CONFIGS } from '../../tingg.configs';\nimport { token, tokenRequest } from '../../tingg.interfaces';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AuthService {\n  env!: URL\n\n  constructor(\n    private http: HttpClient,\n    @Inject(TINGG_CONFIGS) private token: token\n  ){\n    this.env = token.isProduction\n    ? new URL('https://api.tingg.africa/v1/oauth/token/request') \n    : new URL('https://api-dev.tingg.africa/v1/oauth/token/request')\n  }\n\n\n  tokenRequest(): Observable<any> {\n    return this.http.post<tokenRequest>(`${this.env}`, \n    { grant_type: this.token.grant_type,\n      client_id: this.token.client_id,\n      client_secret: this.token.client_secret \n    }).pipe(map((response:any) => {\n      console.log(response)\n      sessionStorage.setItem('tingg_token', response.access_token)\n      return response\n    }))\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DataService {\n\n  public chargeRequest$ = new BehaviorSubject<any>([])\n\n  public dirextCardRequest$ = new BehaviorSubject<any>([])\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n  private isLoading$$ = new BehaviorSubject<boolean>(false)\r\n  isLoading$ = this.isLoading$$.asObservable()\r\n  \r\n  setLoading(isLoading: boolean) {\r\n    this.isLoading$$.next(isLoading)\r\n  }\r\n}","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { AuthService } from '../../shared/services/auth.service';\nimport { ApiService } from '../../shared/services/api.service';\nimport { IchargeRequestF } from '../../tingg.interfaces';\nimport { DataService } from '../../shared/services/data.service';\nimport { LoaderService } from '../../shared/services/loader.service';\n\n\n@Component({\n  selector: 'tingg-charge-request',\n  templateUrl: './charge-request.component.html',\n  styleUrls: ['./charge-request.component.css']\n})\nexport class ChargeRequestComponent implements OnInit, OnDestroy {\n  destroyComponent = new Subject<boolean>()\n  chargeForm!: FormGroup\n  numberRegex: RegExp = /^[0-9]+$/\n\n  @Input() charge_msisdn!: string\n  @Input() charge_amount!: string\n  @Input() country_code!: string\n  @Input() currency_code!: string\n  @Input() merchant_transaction_id!: string\n  @Input() service_code!: string\n  @Input() payment_mode_code: string = \"STK_PUSH\"\n  @Input() payment_option_code: string = \"SAFKE\"\n\n  constructor(\n    private api: ApiService,\n    private auth: AuthService,\n    private data: DataService,\n    private formBuilder: FormBuilder,\n    public loadingService: LoaderService,\n  ){}\n\n  ngOnInit(): void {\n    this.auth.tokenRequest()\n    .pipe(takeUntil(this.destroyComponent))\n    .subscribe({\n      next: (res:any) => {\n        console.log(\"Res is: \", res)\n      }, error: (e:any) => {\n        throw new Error(\"Something isn't right!\")\n      }\n    })\n\n    this.chargeForm = this.formBuilder.group({\n      charge_msisdn: [this.charge_msisdn, [Validators.required, Validators.minLength(10), Validators.maxLength(12), Validators.pattern(this.numberRegex)]],\n      charge_amount: [this.charge_amount, [Validators.required, Validators.pattern(this.numberRegex)]],\n      country_code: [{ value: this.country_code, disabled: true }, [Validators.required]],\n      currency_code: [{ value: this.currency_code, disabled: true }, [Validators.required]],\n      merchant_transaction_id: [this.generateRandomString(4), [Validators.required]],\n      service_code: [this.service_code, [Validators.required]],\n      payment_mode_code: [this.payment_mode_code, [Validators.required]],\n      payment_option_code: [this.payment_option_code, [Validators.required]],\n    }) as IchargeRequestF\n  }\n\n  ngOnDestroy(): void {\n    this.destroyComponent.next(true)\n    this.destroyComponent.complete()\n  }\n\n  chargeRequest(): void {\n    this.api.chargeRequest(this.chargeForm.getRawValue())\n    .pipe(takeUntil(this.destroyComponent))\n    .subscribe({\n      next: (response: any) => {\n        this.data.chargeRequest$.next(response)\n        console.log(response, \"ssss\")\n      },\n      error: (e:any) => {\n        throw new Error(e.error_description)\n      }\n    })\n  }\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","<body>\r\n    <form [formGroup]=\"chargeForm\" [autocomplete]=\"'off'\">\r\n\r\n        <div class=\"msmsms\">\r\n\r\n            <div class=\"group half\">\r\n                <label>\r\n                <span>\r\n                    <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/M-PESA_LOGO-01.svg/64px-M-PESA_LOGO-01.svg.png\" alt=\"\">\r\n                </span>\r\n                <div class=\"pay-method\">\r\n                    <input type=\"radio\" checked>\r\n                </div>\r\n              </label>\r\n            </div>\r\n            <div class=\"group half\" [style.filter]=\"'grayscale(1)'\">\r\n                <label>\r\n                <span style=\"display: flex; justify-content: center; align-items: center;\">\r\n                    <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Visa_Inc._logo.svg/64px-Visa_Inc._logo.svg.png?20170118154621\" alt=\"\">\r\n                </span>\r\n                <div class=\"pay-method\">\r\n                    <input type=\"radio\" disabled>\r\n                </div>\r\n            </label>\r\n            </div>\r\n        </div>\r\n\r\n\r\n        <div class=\"group\">\r\n            <label>\r\n            <span>Amount</span>\r\n            <input formControlName=\"charge_amount\"  name=\"first-name\" class=\"field\" placeholder=\"Ex. 300\" />\r\n          </label>\r\n\r\n            <label>\r\n            <span>Phone Number</span>\r\n            <input  formControlName=\"charge_msisdn\" name=\"last-name\" class=\"field\" placeholder=\"Ex. 254787654321\"  />\r\n          </label>\r\n        </div>\r\n\r\n        <div class=\"group\">\r\n            <label>\r\n            <span>Currency</span>\r\n            <input formControlName=\"currency_code\" name=\"address_line1\" class=\"field\" placeholder=\"\" />\r\n          </label>\r\n\r\n            <label>\r\n            <span>Country</span>\r\n            <input formControlName=\"country_code\" name=\"address_line2\" class=\"field\" placeholder=\"\" />\r\n          </label>\r\n        </div>\r\n\r\n\r\n        <div *ngIf=\"loadingService.isLoading$ | async\" class=\"col-md-2\">\r\n            <div class=\"preloader-dot-circle-rotator\"></div>\r\n        </div>\r\n\r\n        <button [ngClass]=\"{ 'is-invalid': !chargeForm.valid }\" [disabled]=\"!chargeForm.valid\" (click)=\"chargeRequest()\" type=\"submit\" class=\"submitcr\">\r\n          Make payment\r\n        </button>\r\n    </form>\r\n</body>","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 { TINGG_CONFIGS } from '../../tingg.configs';\n\n@Injectable()\nexport class ApikeyInterceptor implements HttpInterceptor {\n\n  constructor(\n    @Inject(TINGG_CONFIGS) private token:any\n  ){}\n\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n    request = request.clone({\n      setHeaders: {\n        'apikey': this.token.apikey\n      }\n    });\n  return next.handle(request)\n  }\n}","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'tingg-direct-card-request',\n  templateUrl: './direct-card-request.component.html',\n  styleUrls: ['./direct-card-request.component.css']\n})\nexport class DirectCardRequestComponent {\n\n}\n","<body>\n    <form [autocomplete]=\"'off'\">\n\n        <div class=\"msmsms\">\n\n            <div class=\"group half\">\n                <label>\n                    <span style=\"display: flex; justify-content: center; align-items: center;\">\n                        <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Visa_Inc._logo.svg/64px-Visa_Inc._logo.svg.png?20170118154621\" alt=\"\">\n                    </span>\n                    <div class=\"pay-method\">\n                        <input type=\"radio\" checked>\n                    </div>\n                </label>\n            </div>\n\n\n            <div class=\"group half\" [style.filter]=\"'grayscale(1)'\">\n                <label>\n                    <span>\n                        <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/M-PESA_LOGO-01.svg/64px-M-PESA_LOGO-01.svg.png\" alt=\"\">\n                    </span>\n                    <div class=\"pay-method\">\n                        <input type=\"radio\" disabled>\n                    </div>\n                </label>\n            </div>\n\n        </div>\n\n        <div class=\"group\">\n            <label>\n            <span>Amount</span>\n            <input name=\"first-name\" class=\"field\" placeholder=\"Ex. 300\" />\n          </label>\n\n            <label>\n            <span>Phone Number</span>\n            <input name=\"last-name\" class=\"field\" placeholder=\"Ex. 254787654321\"  />\n          </label>\n        </div>\n\n        <div class=\"group\">\n            <label>\n            <span>Currency</span>\n            <input  name=\"address_line1\" class=\"field\" placeholder=\"\" />\n          </label>\n\n            <label>\n            <span>Country</span>\n            <input  name=\"address_line2\" class=\"field\" placeholder=\"\" />\n          </label>\n        </div>\n\n\n        <!-- <div *ngIf=\"loadingService.isLoading$ | async\" class=\"col-md-2\">\n            <div class=\"preloader-dot-circle-rotator\"></div>\n        </div> -->\n\n        <button type=\"submit\" class=\"submitcr\">\n          Make payment\n        </button>\n    </form>\n</body>","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 { 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 { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { NotificationService } from \"./error.notification.service\";\r\nimport { ErrorService } from \"./error.service\";\r\nimport { LoggingService } from \"./error-logger.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 {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor,\n  HttpErrorResponse\n} from '@angular/common/http';\nimport { Observable, catchError } from 'rxjs';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n\n  constructor() {}\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 { 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}","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ChargeRequestComponent } from './components/charge-request/charge-request.component';\nimport { TINGG_CONFIGS } from './tingg.configs';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { ApikeyInterceptor } from './shared/interceptors/apikey.interceptor';\nimport { DirectCardRequestComponent } from './components/direct-card-request/direct-card-request.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { GlobalErrorHndler } from './shared/error-handler/global-error.handler';\nimport { ErrorInterceptor } from './shared/interceptors/error.interceptor';\nimport { LoaderInterceptor } from './shared/interceptors/loader.interceptor';\nimport { DataService } from './shared/services/data.service';\n\n\n\n@NgModule({\n  declarations: [\n    ChargeRequestComponent,\n    DirectCardRequestComponent\n  ],\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    ReactiveFormsModule,\n    FormsModule,\n\n    MatSnackBarModule\n  ],\n  exports: [\n    ChargeRequestComponent,\n    DirectCardRequestComponent,\n  ],\n  providers: [\n    DataService,\n    { provide: HTTP_INTERCEPTORS, useClass: ApikeyInterceptor, multi: true },\n    { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },\n    { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n    { provide: ErrorHandler, useClass: GlobalErrorHndler }\n  ]\n})\nexport class NgxTinggModule {\n  static forRoot(\n    grant_type: string,\n    client_id: string,\n    client_secret: string,\n    apikey: string,\n    isProduction: boolean\n  ): ModuleWithProviders<NgxTinggModule> {\n    return {\n      ngModule: NgxTinggModule,\n      providers: [\n        { provide: TINGG_CONFIGS,\n          useValue: {\n            grant_type,\n            client_id, \n            client_secret,\n            apikey,\n            isProduction\n          } \n        }\n      ]\n    }\n  }\n}\n\n\n","/*\n * Public API Surface of ngx-tingg\n */\n\nexport * from './lib/ngx-tingg.module';\n\nexport * from './lib/components/charge-request/charge-request.component'\nexport * from './lib/components/direct-card-request/direct-card-request.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ApiService","i2.AuthService","i3.DataService","i5.LoaderService","i1","i1.LoaderService"],"mappings":"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"}