{"version":3,"file":"ngx-paypal.mjs","sources":["../../src/lib/services/script.service.ts","../../src/lib/services/paypal-script.service.ts","../../src/lib/components/paypal.component.ts","../../src/lib/ngx-paypal.module.ts","../../src/public_api.ts","../../src/ngx-paypal.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ScriptService {\r\n\r\n    constructor(\r\n        protected zone: NgZone,\r\n    ) {\r\n    }\r\n\r\n    registerScript(url: string, globalVar: string, onReady: (globalVar: any) => void): void {\r\n        const existingGlobalVar = (window as any)[globalVar];\r\n        if (existingGlobalVar) {\r\n            // global variable is present = script was already loaded\r\n            this.zone.run(() => {\r\n                onReady(existingGlobalVar);\r\n            });\r\n            return;\r\n        }\r\n\r\n\r\n        // prepare script elem\r\n        const scriptElem = document.createElement('script');\r\n        scriptElem.id = this.getElemId(globalVar);\r\n        scriptElem.innerHTML = '';\r\n        scriptElem.onload = () => {\r\n            this.zone.run(() => {\r\n                onReady((window as any)[globalVar]);\r\n            });\r\n        };\r\n        scriptElem.src = url;\r\n        scriptElem.async = true;\r\n        scriptElem.defer = true;\r\n\r\n        // add script to header\r\n        document.getElementsByTagName('head')[0].appendChild(scriptElem);\r\n    }\r\n\r\n    cleanup(globalVar: string): void {\r\n        // remove script from DOM\r\n        const scriptElem = document.getElementById(this.getElemId(globalVar));\r\n\r\n        if (scriptElem) {\r\n            scriptElem.remove();\r\n        }\r\n    }\r\n\r\n    private getElemId(globalVar: string): string {\r\n        return `ngx-paypal-script-elem-${globalVar}`;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { IPayPalUrlConfig, IQueryParam } from '../models/paypal-models';\r\nimport { ScriptService } from './script.service';\r\n\r\n@Injectable()\r\nexport class PayPalScriptService {\r\n\r\n    private readonly paypalWindowName = 'paypal';\r\n\r\n\r\n    constructor(\r\n        protected scriptService: ScriptService,\r\n    ) {\r\n    }\r\n\r\n    registerPayPalScript(config: IPayPalUrlConfig, onReady: (payPalApi: any) => void): void {\r\n        this.scriptService.registerScript(this.getUrlForConfig(config), this.paypalWindowName, onReady);\r\n    }\r\n\r\n    destroyPayPalScript(): void {\r\n        this.scriptService.cleanup(this.paypalWindowName);\r\n    }\r\n\r\n    private getUrlForConfig(config: IPayPalUrlConfig): string {\r\n        const params: IQueryParam[] = [\r\n            {\r\n                name: 'client-id',\r\n                value: config.clientId\r\n            }\r\n        ];\r\n\r\n        if (config.locale) {\r\n          params.push({\r\n              name: 'locale',\r\n              value: config.locale\r\n          });\r\n      }\r\n\r\n        if (config.currency) {\r\n            params.push({\r\n                name: 'currency',\r\n                value: config.currency\r\n            });\r\n        }\r\n\r\n        if (config.commit) {\r\n            params.push({\r\n                name: 'commit',\r\n                value: config.commit\r\n            });\r\n        }\r\n\r\n        if (config.vault) {\r\n            params.push({\r\n                name: 'vault',\r\n                value: config.vault\r\n            });\r\n        }\r\n\r\n        if (config.intent) {\r\n            params.push({\r\n                name: 'intent',\r\n                value: config.intent\r\n            });\r\n        }\r\n        \r\n        if(config.funding) {\r\n          params.push({\r\n            name:'components',\r\n            value: 'buttons,funding-eligibility'\r\n          })\r\n        }\r\n\r\n        if (config.extraParams) {\r\n            params.push(...config.extraParams);\r\n        }\r\n\r\n        return `https://www.paypal.com/sdk/js${this.getQueryString(params)}`;\r\n    }\r\n\r\n    private getQueryString(queryParams: IQueryParam[]): string {\r\n        let queryString = '';\r\n\r\n        for (let i = 0; i < queryParams.length; i++) {\r\n            const queryParam = queryParams[i];\r\n            if (i === 0) {\r\n                queryString += '?';\r\n            } else {\r\n                queryString += '&';\r\n            }\r\n\r\n            queryString += `${queryParam.name}=${queryParam.value}`;\r\n        }\r\n\r\n        return queryString;\r\n    }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  NgZone,\r\n  OnChanges,\r\n  OnDestroy,\r\n  Output,\r\n  SimpleChanges,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\nimport {\r\n  ICancelCallbackData,\r\n  IClientAuthorizeCallbackData,\r\n  ICreateOrderCallbackActions,\r\n  IInitCallbackData,\r\n  IOnApproveCallbackActions,\r\n  IOnApproveCallbackData,\r\n  IOnClickCallbackActions,\r\n  IOnInitCallbackActions,\r\n  IOnShippingChangeActions,\r\n  IOnShippingChangeData,\r\n  IPayPalConfig,\r\n  ICreateSubscriptionCallbackActions,\r\n  ICreateSubscriptionCallbackData,\r\n} from \"../models/paypal-models\";\r\nimport { PayPalScriptService } from \"../services/paypal-script.service\";\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: \"ngx-paypal\",\r\n  template: `\r\n    <div #payPalButtonContainer [id]=\"payPalButtonContainerId\"></div>\r\n  `,\r\n})\r\nexport class NgxPaypalComponent implements OnChanges, OnDestroy, AfterViewInit {\r\n  /**\r\n   * Configuration for paypal.\r\n   */\r\n  @Input() config?: IPayPalConfig;\r\n\r\n  /**\r\n   * If enabled, paypal SDK script will be loaded. Useful if you want to have multiple PayPal components on the same page\r\n   * sharing base configuration. In such a case only a single component may register script.\r\n   */\r\n  @Input() registerScript: boolean = true;\r\n\r\n  /**\r\n   * Emitted when paypal script is loaded\r\n   */\r\n  @Output() scriptLoaded = new EventEmitter<any>();\r\n\r\n  /**\r\n   * Id of the element where PayPal button will be rendered\r\n   */\r\n  public payPalButtonContainerId?: string;\r\n\r\n  private readonly ngUnsubscribe: Subject<void> = new Subject<void>();\r\n\r\n  private payPalButtonContainerElem?: ElementRef;\r\n  @ViewChild(\"payPalButtonContainer\", { static: false })\r\n  set payPalButtonContainer(content: ElementRef) {\r\n    this.payPalButtonContainerElem = content;\r\n  }\r\n\r\n  /**\r\n   * Flag that indicates if paypal should be initialized (required for handling script load events and availability of DOM element)\r\n   */\r\n  private initializePayPal: boolean = true;\r\n\r\n  /**\r\n   * Reference to PayPal global API\r\n   */\r\n  private payPal: any;\r\n\r\n  constructor(\r\n    private paypalScriptService: PayPalScriptService,\r\n    private cdr: ChangeDetectorRef,\r\n    private ngZone: NgZone\r\n  ) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (!this.payPalButtonContainerId) {\r\n      this.payPalButtonContainerId = this.generateElementId();\r\n    }\r\n\r\n    // first time config setup\r\n    const config = this.config;\r\n\r\n    if (changes.config.isFirstChange()) {\r\n      if (config && this.registerScript) {\r\n        this.initPayPalScript(config, (payPal) => {\r\n          // store reference to paypal global script\r\n          this.payPal = payPal;\r\n          this.doPayPalCheck();\r\n        });\r\n      }\r\n    }\r\n\r\n    // changes to config\r\n    if (!changes.config.isFirstChange()) {\r\n      this.reinitialize(config);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.paypalScriptService.destroyPayPalScript();\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.doPayPalCheck();\r\n  }\r\n\r\n  customInit(payPal: any): void {\r\n    this.payPal = payPal;\r\n    this.doPayPalCheck();\r\n  }\r\n\r\n  reinitialize(config: IPayPalConfig | undefined): void {\r\n    this.config = config;\r\n    this.payPal = undefined;\r\n    this.paypalScriptService.destroyPayPalScript();\r\n    this.payPalButtonContainerId = this.generateElementId();\r\n    this.initializePayPal = true;\r\n\r\n    if (this.payPalButtonContainerElem) {\r\n      try {\r\n        while (this.payPalButtonContainerElem.nativeElement.firstChild) {\r\n          this.payPalButtonContainerElem.nativeElement.removeChild(\r\n            this.payPalButtonContainerElem.nativeElement.firstChild\r\n          );\r\n        }\r\n      } catch (error) {\r\n        console.error(error);\r\n      }\r\n    }\r\n\r\n    this.cdr.detectChanges();\r\n\r\n    if (this.config) {\r\n      if (!this.payPal) {\r\n        this.initPayPalScript(this.config, (payPal) => {\r\n          // store reference to paypal global script\r\n          this.payPal = payPal;\r\n          this.doPayPalCheck();\r\n        });\r\n      } else {\r\n        this.doPayPalCheck();\r\n      }\r\n    }\r\n  }\r\n\r\n  private doPayPalCheck(): void {\r\n    if (\r\n      this.initializePayPal &&\r\n      this.config &&\r\n      this.payPal &&\r\n      this.payPalButtonContainerElem\r\n    ) {\r\n      // make sure that id is also set\r\n      if (this.payPalButtonContainerElem.nativeElement.id) {\r\n        this.initializePayPal = false;\r\n        this.initPayPal(this.config, this.payPal);\r\n      }\r\n    }\r\n  }\r\n\r\n  private initPayPalScript(\r\n    config: IPayPalConfig,\r\n    initPayPal: (paypal: any) => void\r\n  ): void {\r\n    this.paypalScriptService.registerPayPalScript(\r\n      {\r\n        clientId: config.clientId,\r\n        locale: config.advanced?.locale,\r\n        commit:\r\n          config.advanced && config.advanced.commit\r\n            ? config.advanced.commit\r\n            : undefined,\r\n        currency: config.currency,\r\n        vault: config.vault,\r\n        intent: config.intent,\r\n        funding: config.fundingSource != undefined || config.fundingSource != null ? true : false,\r\n        extraParams:\r\n          config.advanced && config.advanced.extraQueryParams\r\n            ? config.advanced.extraQueryParams\r\n            : [],\r\n      },\r\n      (paypal) => {\r\n        this.scriptLoaded.next(paypal);\r\n        initPayPal(paypal);\r\n      }\r\n    );\r\n  }\r\n\r\n  private generateElementId(): string {\r\n    return `ngx-captcha-id-${this.generateGuid()}`;\r\n  }\r\n\r\n  private initPayPal(config: IPayPalConfig, paypal: any): void {\r\n    // Running outside angular zone prevents infinite ngDoCheck lifecycle calls\r\n    this.ngZone.runOutsideAngular(() => {\r\n      // https://developer.paypal.com/docs/checkout/integrate/#2-add-the-paypal-script-to-your-web-page\r\n      const createOrder = (data: any, actions: ICreateOrderCallbackActions) => {\r\n        return this.ngZone.run(() => {\r\n          if (config.createOrderOnClient && config.createOrderOnServer) {\r\n            throw Error(`Both 'createOrderOnClient' and 'createOrderOnServer' are defined.\r\n                    Please choose one or the other.`);\r\n          }\r\n\r\n          if (!config.createOrderOnClient && !config.createOrderOnServer) {\r\n            throw Error(`Neither 'createOrderOnClient' or 'createOrderOnServer' are defined.\r\n                    Please define one of these to create order.`);\r\n          }\r\n\r\n          if (config.createOrderOnClient) {\r\n            return actions.order.create(config.createOrderOnClient(data));\r\n          }\r\n\r\n          if (config.createOrderOnServer) {\r\n            return config.createOrderOnServer(data);\r\n          }\r\n\r\n          throw Error(`Invalid state for 'createOrder'.`);\r\n        });\r\n      };\r\n      const createSubscription = (\r\n        data: ICreateSubscriptionCallbackData,\r\n        actions: ICreateSubscriptionCallbackActions\r\n      ) => {\r\n        return this.ngZone.run(() => {\r\n          if (config.createSubscriptionOnClient) {\r\n            return actions.subscription.create(\r\n              config.createSubscriptionOnClient(data)\r\n            );\r\n          }\r\n          return;\r\n        });\r\n      };\r\n      const onShippingChange = (\r\n        data: IOnShippingChangeData,\r\n        actions: IOnShippingChangeActions\r\n      ) => {\r\n        return this.ngZone.run(() => {\r\n          if (config.onShippingChange) {\r\n            return config.onShippingChange(data, actions);\r\n          }\r\n        });\r\n      };\r\n\r\n      const buttonsConfig = {\r\n        style: config.style,\r\n        fundingSource: undefined,\r\n        onApprove: (\r\n          data: IOnApproveCallbackData,\r\n          actions: IOnApproveCallbackActions\r\n        ) => {\r\n          return this.ngZone.run(() => {\r\n            if (config.onApprove) {\r\n              config.onApprove(data, actions);\r\n            }\r\n\r\n            // capture on server\r\n            if (config.authorizeOnServer) {\r\n              return config.authorizeOnServer(data, actions);\r\n            }\r\n\r\n            // capture on client\r\n            const onClientAuthorization = config.onClientAuthorization;\r\n            if (onClientAuthorization) {\r\n              actions.order\r\n                .capture()\r\n                .then((details: IClientAuthorizeCallbackData) => {\r\n                  this.ngZone.run(() => {\r\n                    onClientAuthorization(details);\r\n                  });\r\n                });\r\n            }\r\n          });\r\n        },\r\n        onError: (error: any) => {\r\n          this.ngZone.run(() => {\r\n            if (config.onError) {\r\n              config.onError(error);\r\n            }\r\n          });\r\n        },\r\n        onCancel: (data: ICancelCallbackData, actions: any) => {\r\n          this.ngZone.run(() => {\r\n            if (config.onCancel) {\r\n              config.onCancel(data, actions);\r\n            }\r\n          });\r\n        },\r\n        onClick: (data: any, actions: IOnClickCallbackActions) => {\r\n          this.ngZone.run(() => {\r\n            if (config.onClick) {\r\n              config.onClick(data, actions);\r\n            }\r\n          });\r\n        },\r\n        onInit: (data: IInitCallbackData, actions: IOnInitCallbackActions) => {\r\n          this.ngZone.run(() => {\r\n            if (config.onInit) {\r\n              config.onInit(data, actions);\r\n            }\r\n          });\r\n        },\r\n        // Add the functions if they've been created in the config object\r\n        // The API only allows one of the two to be set\r\n        ...((config.createOrderOnClient || config.createOrderOnServer) && {\r\n          createOrder,\r\n        }),\r\n        ...(config.createSubscriptionOnClient && { createSubscription }),\r\n        // The onShippingChange callback cannot be used with subscriptions\r\n        // so we only add it if it is set\r\n        ...(config.onShippingChange && { onShippingChange }),\r\n      };\r\n\r\n      let fundSource = undefined;\r\n      switch(config.fundingSource){\r\n        case \"PAYPAL\":\r\n          fundSource = paypal.FUNDING.PAYPAL;\r\n          break;\r\n        case \"CARD\":\r\n          fundSource = paypal.FUNDING.CARD;\r\n          break;\r\n        case \"PAYLATER\":\r\n          fundSource = paypal.FUNDING.PAYLATER;\r\n          break;\r\n        case \"CREDIT\":\r\n          fundSource = paypal.FUNDING.CREDIT;\r\n          break;\r\n        case \"VENMO\":\r\n          fundSource = paypal.FUNDING.VENMO;\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n      if(fundSource != undefined)\r\n      {\r\n        buttonsConfig.fundingSource = fundSource;\r\n        if(config.fundingSource !== \"PAYPAL\")\r\n          delete buttonsConfig.style?.color\r\n      }\r\n      paypal.Buttons(buttonsConfig).render(`#${this.payPalButtonContainerId}`);\r\n    });\r\n  }\r\n\r\n  private generateGuid(): string {\r\n    let d = new Date().getTime(),\r\n      d2 = (performance && performance.now && performance.now() * 1000) || 0;\r\n    return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\r\n      let r = Math.random() * 16;\r\n      if (d > 0) {\r\n        r = (d + r) % 16 | 0;\r\n        d = Math.floor(d / 16);\r\n      } else {\r\n        r = (d2 + r) % 16 | 0;\r\n        d2 = Math.floor(d2 / 16);\r\n      }\r\n      return (c == \"x\" ? r : (r & 0x7) | 0x8).toString(16);\r\n    });\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgxPaypalComponent } from './components/paypal.component';\r\nimport { ScriptService } from './services/script.service';\r\nimport { PayPalScriptService } from './services/paypal-script.service';\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  declarations: [\r\n    NgxPaypalComponent,\r\n  ],\r\n  exports: [\r\n    NgxPaypalComponent,\r\n  ],\r\n  providers: [\r\n    ScriptService,\r\n    PayPalScriptService\r\n  ]\r\n})\r\nexport class NgxPayPalModule {\r\n}\r\n\r\n\r\n","/** Public API */\r\nexport * from './lib/ngx-paypal.module';\r\nexport * from './lib/models/paypal-models';\r\nexport * from './lib/components/paypal.component';\r\nexport * from './lib/services/paypal-script.service';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ScriptService","i1.PayPalScriptService"],"mappings":"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"}