{"version":3,"file":"ngx-culqi.mjs","sources":["../../../projects/ngx-culqi/src/lib/ngx-culqi.service.ts","../../../projects/ngx-culqi/src/public-api.ts","../../../projects/ngx-culqi/src/ngx-culqi.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ICulqiOptions, ICulqiSettings, IOrderCulqi, IOrderCulqiResponse } from './models/culqi.model';\nexport declare let Culqi: any;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxCulqiService {\n  tokenCreatedSubject = new BehaviorSubject<string | null>(null);\n  tokenCreated$ = this.tokenCreatedSubject.asObservable();\n\n  orderCreatedSubject = new BehaviorSubject<string | null>(null);\n  orderCreated$ = this.orderCreatedSubject.asObservable();\n\n  apiKeyCulqi: string | null = null;\n\n  constructor(private http: HttpClient) {\n    (window as any).culqi = this.culqi.bind(this);\n  }\n\n  /**\n    * @param {value} value of the token created by Culqi for backend\n    */\n  setTokenCreated(value: string): void {\n    this.tokenCreatedSubject.next(value);\n  }\n\n  /**\n    * @param {value} value of the order id created by Culqi\n    */\n  setOrderCreated(value: string): void {\n    this.orderCreatedSubject.next(value);\n  }\n\n  /**\n    * @param {tokenCulqi} token offered by Culqi\n    */\n  initCulqi(tokenCulqi: string): void {\n    Culqi.publicKey = tokenCulqi;\n  }\n\n  /**\n    * @param {tokenCulqi} token offered by Culqi\n    * @param {apiKeyCulqi} apiKey offered by Culqi\n    */\n  loadScriptCulqi(tokenCulqi: string, apiKeyCulqi: string): void {\n    const script = document.createElement('script');\n    script.type = 'text/javascript';\n    script.src = 'https://checkout.culqi.com/js/v4';\n    script.onload = () => {\n      this.initCulqi(tokenCulqi);\n      this.apiKeyCulqi = apiKeyCulqi;\n    };\n    document.head.appendChild(script);\n  }\n\n  /**\n    * @param {order} order to be created for generate a payment\n    * @returns returns the order created by Culqi API\n    */\n  generateOrder(order: IOrderCulqi): Observable<Partial<IOrderCulqiResponse>> {\n    return this.http.post('https://api.culqi.com/v2/orders', order, {\n      headers: {\n        Authorization: `Bearer ${this.apiKeyCulqi}`\n      }\n    });\n  }\n\n  /**\n    * @param {culqiSettings} e-commerce setup\n    * @param {culqiOptions} payment pop up configuration\n    */\n  generateToken(culqiSettings: ICulqiSettings, culqiOptions?: ICulqiOptions): void {\n    if (Culqi) {\n      Culqi.settings(culqiSettings);\n      const options: ICulqiOptions = {\n        lang: \"es\",\n        installments: false,\n        paymentMethods: {\n          tarjeta: true,\n          yape: true,\n          bancaMovil: true,\n          agente: true,\n          billetera: true,\n          cuotealo: true,\n        },\n        ...culqiOptions\n      };\n      Culqi.options(options);\n      Culqi.open();\n    }\n  }\n\n  /**\n    * function for open Culqi payment pop up\n    */\n  culqi(): void {\n    if (Culqi.token) {\n      const token = Culqi.token.id;\n      this.setTokenCreated(token);\n    } else if (Culqi.order) {\n      const order = Culqi.order;\n      this.setOrderCreated(order);\n    } else {\n      throw new Error('Culqi has not been loaded correctly.', Culqi.error);\n    }\n  }\n\n  /**\n    * function for close Culqi payment pop up\n    */\n  closeCulqi(): void {\n    Culqi.close();\n    this.tokenCreatedSubject.unsubscribe();\n    this.orderCreatedSubject.unsubscribe();\n  }\n}\n","/*\n * Public API Surface of ngx-culqi\n */\n\nexport * from './lib/ngx-culqi.service';\nexport { ICulqiOptions, IOrderCulqiResponse } from './lib/models/culqi.model';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}