{"version":3,"file":"ng-web-apis-payment-request.mjs","sources":["../../../libs/payment-request/src/directives/payment-item/payment-item.directive.ts","../../../libs/payment-request/src/directives/payment/payment.directive.ts","../../../libs/payment-request/src/tokens/payment-methods.ts","../../../libs/payment-request/src/tokens/payment-options.ts","../../../libs/payment-request/src/tokens/payment-request-support.ts","../../../libs/payment-request/src/services/payment-request.service.ts","../../../libs/payment-request/src/utils/is-error.ts","../../../libs/payment-request/src/directives/payment-submit/payment-submit.directive.ts","../../../libs/payment-request/src/module.ts","../../../libs/payment-request/src/ng-web-apis-payment-request.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\n\n@Directive({\n    standalone: true,\n    selector: '[waPaymentItem][paymentAmount][paymentLabel]',\n})\nexport class WaPaymentItem implements PaymentItem {\n    @Input('paymentAmount')\n    public amount!: PaymentCurrencyAmount;\n\n    @Input('paymentLabel')\n    public label!: string;\n\n    @Input('paymentPending')\n    public pending?: boolean;\n}\n\n/**\n * @deprecated: use {@link WaPaymentItem}\n */\nexport const PaymentItemDirective = WaPaymentItem;\n","import type {QueryList} from '@angular/core';\nimport {ContentChildren, Directive, Input} from '@angular/core';\n\nimport type {PaymentShippingOption} from '../../tokens/payment-options';\nimport {WaPaymentItem} from '../payment-item/payment-item.directive';\n\n@Directive({\n    standalone: true,\n    selector: '[waPayment][paymentTotal]',\n})\nexport class WaPayment implements PaymentDetailsInit {\n    @Input('paymentTotal')\n    public total!: PaymentItem;\n\n    @Input('paymentId')\n    public id?: string;\n\n    @Input('paymentModifiers')\n    public modifiers?: PaymentDetailsModifier[];\n\n    @Input('paymentShippingOptions')\n    public shippingOptions?: PaymentShippingOption[];\n\n    public displayItems?: PaymentItem[];\n\n    @ContentChildren(WaPaymentItem)\n    protected set paymentItems(items: QueryList<PaymentItem>) {\n        this.displayItems = items.toArray();\n    }\n}\n\n/**\n * @deprecated use {@link WaPayment}\n */\nexport const PaymentDirective = WaPayment;\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_PAYMENT_METHODS = new InjectionToken<PaymentMethodData[]>(\n    '[WA_PAYMENT_METHODS]',\n    {\n        factory: () => [{supportedMethods: 'basic-card'}],\n    },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_PAYMENT_METHODS}\n */\nexport const PAYMENT_METHODS = WA_PAYMENT_METHODS;\n","import {InjectionToken} from '@angular/core';\n\nexport interface WaPaymentOptions {\n    requestBillingAddress?: boolean;\n    requestPayerEmail?: boolean;\n    requestPayerName?: boolean;\n    requestPayerPhone?: boolean;\n    requestShipping?: boolean;\n    shippingType?: 'delivery' | 'pickup' | 'shipping';\n}\n\n/**\n * @deprecated: drop in v5.0, use {@link WaPaymentOptions}\n */\nexport type PaymentOptions = WaPaymentOptions;\n\nexport interface WaPaymentShippingOption {\n    amount: PaymentCurrencyAmount;\n    id: string;\n    label: string;\n    selected?: boolean;\n}\n\n/**\n * @deprecated: drop in v5.0, use {@link WaPaymentShippingOption}\n */\nexport type PaymentShippingOption = WaPaymentShippingOption;\n\nexport const WA_PAYMENT_OPTIONS = new InjectionToken<WaPaymentOptions>(\n    '[WA_PAYMENT_OPTIONS]',\n    {\n        factory: () => ({}),\n    },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_PAYMENT_OPTIONS}\n */\nexport const PAYMENT_OPTIONS = WA_PAYMENT_OPTIONS;\n","import {inject, InjectionToken} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\n\ndeclare global {\n    interface Window {\n        PaymentRequest: PaymentRequest;\n    }\n}\n\nexport const WA_PAYMENT_REQUEST_SUPPORT = new InjectionToken<boolean>(\n    '[WA_PAYMENT_REQUEST_SUPPORT]',\n    {\n        factory: () => !!inject(WA_WINDOW).PaymentRequest,\n    },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_PAYMENT_REQUEST_SUPPORT}\n */\nexport const PAYMENT_REQUEST_SUPPORT = WA_PAYMENT_REQUEST_SUPPORT;\n","import {inject, Injectable} from '@angular/core';\n\nimport {PAYMENT_METHODS} from '../tokens/payment-methods';\nimport type {PaymentOptions} from '../tokens/payment-options';\nimport {PAYMENT_OPTIONS} from '../tokens/payment-options';\nimport {PAYMENT_REQUEST_SUPPORT} from '../tokens/payment-request-support';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class PaymentRequestService {\n    private readonly supported = inject(PAYMENT_REQUEST_SUPPORT);\n    private readonly paymentMethods = inject(PAYMENT_METHODS);\n    private readonly paymentOptions = inject(PAYMENT_OPTIONS);\n\n    public async request(\n        details: PaymentDetailsInit,\n        methods: PaymentMethodData[] = this.paymentMethods,\n        options: PaymentOptions = this.paymentOptions,\n    ): Promise<PaymentResponse> {\n        if (!this.supported) {\n            return Promise.reject(\n                new Error('Payment Request is not supported in your browser'),\n            );\n        }\n\n        const gateway = new PaymentRequest(\n            methods,\n            details,\n            // @ts-ignore\n            options,\n        );\n\n        return gateway\n            .canMakePayment()\n            .then(async (canPay) =>\n                canPay\n                    ? gateway.show(details)\n                    : Promise.reject(\n                          new Error('Payment Request cannot make the payment'),\n                      ),\n            );\n    }\n}\n","export function isError(item: unknown): item is DOMException | Error {\n    return item instanceof Error || item instanceof DOMException;\n}\n","import {Directive, ElementRef, inject, Output} from '@angular/core';\nimport type {Observable} from 'rxjs';\nimport {catchError, filter, from, fromEvent, of, share, switchMap} from 'rxjs';\n\nimport {PaymentRequestService} from '../../services/payment-request.service';\nimport {PAYMENT_METHODS} from '../../tokens/payment-methods';\nimport {PAYMENT_OPTIONS} from '../../tokens/payment-options';\nimport {isError} from '../../utils/is-error';\nimport {WaPayment} from '../payment/payment.directive';\n\n@Directive({\n    standalone: true,\n    selector: '[waPaymentSubmit]',\n})\nexport class WaPaymentSubmit {\n    private readonly paymentHost = inject(WaPayment);\n    private readonly paymentRequest = inject(PaymentRequestService);\n    private readonly nativeElement: HTMLElement = inject(ElementRef).nativeElement;\n    private readonly methods = inject(PAYMENT_METHODS);\n    private readonly options = inject(PAYMENT_OPTIONS);\n\n    @Output()\n    public readonly waPaymentSubmit: Observable<PaymentResponse>;\n\n    @Output()\n    public readonly waPaymentError: Observable<DOMException | Error>;\n\n    constructor() {\n        const requests$ = fromEvent(this.nativeElement, 'click').pipe(\n            switchMap(() =>\n                from(\n                    this.paymentRequest.request(\n                        {...this.paymentHost},\n                        this.methods,\n                        this.options,\n                    ),\n                ).pipe(catchError((error) => of(error))),\n            ),\n            share(),\n        );\n\n        this.waPaymentSubmit = requests$.pipe(filter((response) => !isError(response)));\n\n        this.waPaymentError = requests$.pipe(filter(isError));\n    }\n}\n\n/**\n * @deprecated: use {@link WaPaymentSubmit}\n */\nexport const PaymentSubmitDirective = WaPaymentSubmit;\n","import {WaPayment} from './directives/payment/payment.directive';\nimport {WaPaymentItem} from './directives/payment-item/payment-item.directive';\nimport {WaPaymentSubmit} from './directives/payment-submit/payment-submit.directive';\n\nexport const WaPaymentRequest = [WaPayment, WaPaymentItem, WaPaymentSubmit];\n\n/**\n * @deprecated: use {@link WaPaymentRequest}\n */\nexport const PaymentRequestModule = WaPaymentRequest;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}