UNPKG

@ng-web-apis/payment-request

Version:

This is a library for declarative use of Payment Request API with Angular

41 lines 6.96 kB
import { Directive, ElementRef, inject, Output } from '@angular/core'; import { catchError, filter, from, fromEvent, of, share, switchMap } from 'rxjs'; import { PaymentRequestService } from '../../services/payment-request.service'; import { PAYMENT_METHODS } from '../../tokens/payment-methods'; import { PAYMENT_OPTIONS } from '../../tokens/payment-options'; import { isError } from '../../utils/is-error'; import { WaPayment } from '../payment/payment.directive'; import * as i0 from "@angular/core"; class WaPaymentSubmit { paymentHost = inject(WaPayment); paymentRequest = inject(PaymentRequestService); nativeElement = inject(ElementRef).nativeElement; methods = inject(PAYMENT_METHODS); options = inject(PAYMENT_OPTIONS); waPaymentSubmit; waPaymentError; constructor() { const requests$ = fromEvent(this.nativeElement, 'click').pipe(switchMap(() => from(this.paymentRequest.request({ ...this.paymentHost }, this.methods, this.options)).pipe(catchError((error) => of(error)))), share()); this.waPaymentSubmit = requests$.pipe(filter((response) => !isError(response))); this.waPaymentError = requests$.pipe(filter(isError)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaPaymentSubmit, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WaPaymentSubmit, isStandalone: true, selector: "[waPaymentSubmit]", outputs: { waPaymentSubmit: "waPaymentSubmit", waPaymentError: "waPaymentError" }, ngImport: i0 }); } export { WaPaymentSubmit }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaPaymentSubmit, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[waPaymentSubmit]', }] }], ctorParameters: function () { return []; }, propDecorators: { waPaymentSubmit: [{ type: Output }], waPaymentError: [{ type: Output }] } }); /** * @deprecated: use {@link WaPaymentSubmit} */ export const PaymentSubmitDirective = WaPaymentSubmit; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1zdWJtaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wYXltZW50LXJlcXVlc3Qvc3JjL2RpcmVjdGl2ZXMvcGF5bWVudC1zdWJtaXQvcGF5bWVudC1zdWJtaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7O0FBRXZELE1BSWEsZUFBZTtJQUNQLFdBQVcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQy9DLGFBQWEsR0FBZ0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM5RCxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFHbkMsZUFBZSxDQUE4QjtJQUc3QyxjQUFjLENBQW1DO0lBRWpFO1FBQ0ksTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN6RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ1gsSUFBSSxDQUNBLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUN2QixFQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBQyxFQUNyQixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxPQUFPLENBQ2YsQ0FDSixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQzNDLEVBQ0QsS0FBSyxFQUFFLENBQ1YsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQzt3R0E5QlEsZUFBZTs0RkFBZixlQUFlOztTQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7MEVBU21CLGVBQWU7c0JBRDlCLE1BQU07Z0JBSVMsY0FBYztzQkFEN0IsTUFBTTs7QUF1Qlg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIGZyb20sIGZyb21FdmVudCwgb2YsIHNoYXJlLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1BheW1lbnRSZXF1ZXN0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC1yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHtQQVlNRU5UX01FVEhPRFN9IGZyb20gJy4uLy4uL3Rva2Vucy9wYXltZW50LW1ldGhvZHMnO1xuaW1wb3J0IHtQQVlNRU5UX09QVElPTlN9IGZyb20gJy4uLy4uL3Rva2Vucy9wYXltZW50LW9wdGlvbnMnO1xuaW1wb3J0IHtpc0Vycm9yfSBmcm9tICcuLi8uLi91dGlscy9pcy1lcnJvcic7XG5pbXBvcnQge1dhUGF5bWVudH0gZnJvbSAnLi4vcGF5bWVudC9wYXltZW50LmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd2FQYXltZW50U3VibWl0XScsXG59KVxuZXhwb3J0IGNsYXNzIFdhUGF5bWVudFN1Ym1pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50SG9zdCA9IGluamVjdChXYVBheW1lbnQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudFJlcXVlc3QgPSBpbmplY3QoUGF5bWVudFJlcXVlc3RTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRob2RzID0gaW5qZWN0KFBBWU1FTlRfTUVUSE9EUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFBBWU1FTlRfT1BUSU9OUyk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgd2FQYXltZW50U3VibWl0OiBPYnNlcnZhYmxlPFBheW1lbnRSZXNwb25zZT47XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgd2FQYXltZW50RXJyb3I6IE9ic2VydmFibGU8RE9NRXhjZXB0aW9uIHwgRXJyb3I+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RzJCA9IGZyb21FdmVudCh0aGlzLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICBmcm9tKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRSZXF1ZXN0LnJlcXVlc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4udGhpcy5wYXltZW50SG9zdH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGhvZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKS5waXBlKGNhdGNoRXJyb3IoKGVycm9yKSA9PiBvZihlcnJvcikpKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzaGFyZSgpLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMud2FQYXltZW50U3VibWl0ID0gcmVxdWVzdHMkLnBpcGUoZmlsdGVyKChyZXNwb25zZSkgPT4gIWlzRXJyb3IocmVzcG9uc2UpKSk7XG5cbiAgICAgICAgdGhpcy53YVBheW1lbnRFcnJvciA9IHJlcXVlc3RzJC5waXBlKGZpbHRlcihpc0Vycm9yKSk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkOiB1c2Uge0BsaW5rIFdhUGF5bWVudFN1Ym1pdH1cbiAqL1xuZXhwb3J0IGNvbnN0IFBheW1lbnRTdWJtaXREaXJlY3RpdmUgPSBXYVBheW1lbnRTdWJtaXQ7XG4iXX0=