UNPKG

seerbit-angular

Version:

<p align="center"> <img width="500" valign="top" src="https://res.cloudinary.com/dpejkbof5/image/upload/v1620323718/Seerbit_logo_png_ddcor4.png" data-canonical-src="https://res.cloudinary.com/dpejkbof5/image/upload/v1620323718/Seerbit_logo_png_ddcor4.png"

70 lines 8.07 kB
import { Directive, Input, Output, EventEmitter, HostListener } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./seerbit-service"; export default class SeerBitButtonDirective { seerBitService; options; callback = new EventEmitter(); close = new EventEmitter(); validationError = new EventEmitter(); _options; closeFn; callbackFn; errorFn; constructor(seerBitService) { this.seerBitService = seerBitService; } async pay() { const errorText = this.validateInput(this.options); this.generateOptions(this.options); if (errorText) { console.error(errorText); this.validationError.emit(errorText); return errorText; } await this.seerBitService.loadScript(); window.SeerbitPay(this._options, this.callbackFn, this.closeFn); } generateOptions(obj) { this._options = this.seerBitService.getSeerBitOptions(obj); this.closeFn = (...response) => { if (this.close.observers.length) { this.close.emit(...response); } }; this.callbackFn = (response, closeModal) => { this.callback.emit({ response, closeModal }); }; } validateInput(obj) { if (!this.callback.observers.length) { return 'SeerBit: Insert a callback function like so (callback)=\'PaymentComplete($event)\' to check payment status'; } return this.seerBitService.checkInput(obj); } async buttonClick() { this.pay(); } /** @nocollapse */ static ɵfac = function SeerBitButtonDirective_Factory(t) { return new (t || SeerBitButtonDirective)(i0.ɵɵdirectiveInject(i1.SeerbitService)); }; /** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: SeerBitButtonDirective, selectors: [["", "seerbit-ng", ""]], hostBindings: function SeerBitButtonDirective_HostBindings(rf, ctx) { if (rf & 1) { i0.ɵɵlistener("click", function SeerBitButtonDirective_click_HostBindingHandler() { return ctx.buttonClick(); }); } }, inputs: { options: "options" }, outputs: { callback: "callback", close: "close", validationError: "validationError" } }); } (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SeerBitButtonDirective, [{ type: Directive, args: [{ selector: '[seerbit-ng]' }] }], function () { return [{ type: i1.SeerbitService }]; }, { options: [{ type: Input }], callback: [{ type: Output }], close: [{ type: Output }], validationError: [{ type: Output }], buttonClick: [{ type: HostListener, args: ['click'] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vlci1iaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2VlcmJpdC1hbmd1bGFyL3NyYy9saWIvc2Vlci1iaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFnQnJGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sc0JBQXNCO0lBU3JCO0lBUlgsT0FBTyxDQUFpQjtJQUN2QixRQUFRLEdBQW1ELElBQUksWUFBWSxFQUFvQyxDQUFDO0lBQ2hILEtBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNuRCxlQUFlLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDL0QsUUFBUSxDQUFpQztJQUNqRCxPQUFPLENBQU07SUFDYixVQUFVLENBQU07SUFDaEIsT0FBTyxDQUFNO0lBQ2IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRWxELENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLElBQUksU0FBUyxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELGVBQWUsQ0FBQyxHQUFRO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxRQUFRLEVBQUUsRUFBRTtZQUM3QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsYUFBYSxDQUFDLEdBQW1CO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsT0FBTyw0R0FBNEcsQ0FBQztTQUNySDtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2IsQ0FBQzttR0E1Q2tCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO3VHQUF0QixpQkFBYTs7O3VGQUFiLHNCQUFzQjtjQUgxQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7YUFDekI7aUVBRVUsT0FBTztrQkFBZixLQUFLO1lBQ0ksUUFBUTtrQkFBakIsTUFBTTtZQUNHLEtBQUs7a0JBQWQsTUFBTTtZQUNHLGVBQWU7a0JBQXhCLE1BQU07WUFzQ0QsV0FBVztrQkFEaEIsWUFBWTttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VlcmJpdFNlcnZpY2UgfSBmcm9tICcuL3NlZXJiaXQtc2VydmljZSc7XG5pbXBvcnQgeyBTZWVyQml0T3B0aW9ucywgUHJpdmF0ZVNlZXJCaXRPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMvU2VlckJpdE9wdGlvbnMnO1xuaW50ZXJmYWNlIE15V2luZG93IGV4dGVuZHMgV2luZG93IHtcbiAgU2VlcmJpdFBheTpcbiAge1xuICAgIChvcHRpb25zOiBhbnksXG4gICAgIGNhbGxiYWNrOiBhbnksXG4gICAgIGNsb3NlOiBhbnlcbiAgICAgIClcbiAgfTtcbn1cbmRlY2xhcmUgdmFyIHdpbmRvdzogTXlXaW5kb3c7XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2VlcmJpdC1uZ10nXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VlckJpdEJ1dHRvbkRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IFNlZXJCaXRPcHRpb25zO1xuICBAT3V0cHV0KCkgY2FsbGJhY2s6IEV2ZW50RW1pdHRlcjx7cmVzcG9uc2U6IGFueSwgY2xvc2VNb2RhbDogYW55fT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtyZXNwb25zZTogYW55LCBjbG9zZU1vZGFsOiBhbnl9PigpO1xuICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB2YWxpZGF0aW9uRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHByaXZhdGUgX29wdGlvbnM6IFBhcnRpYWw8UHJpdmF0ZVNlZXJCaXRPcHRpb25zPjtcbiAgY2xvc2VGbjogYW55O1xuICBjYWxsYmFja0ZuOiBhbnk7XG4gIGVycm9yRm46IGFueTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWVyQml0U2VydmljZTogU2VlcmJpdFNlcnZpY2UpIHtcblxuICB9XG5cbiAgYXN5bmMgcGF5KCkge1xuICAgIGNvbnN0IGVycm9yVGV4dCA9IHRoaXMudmFsaWRhdGVJbnB1dCh0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuZ2VuZXJhdGVPcHRpb25zKHRoaXMub3B0aW9ucyk7XG4gICAgaWYgKGVycm9yVGV4dCkge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvclRleHQpO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IuZW1pdChlcnJvclRleHQpO1xuICAgICAgcmV0dXJuIGVycm9yVGV4dDtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5zZWVyQml0U2VydmljZS5sb2FkU2NyaXB0KCk7XG4gICAgd2luZG93LlNlZXJiaXRQYXkodGhpcy5fb3B0aW9ucywgdGhpcy5jYWxsYmFja0ZuLCB0aGlzLmNsb3NlRm4pO1xuICB9XG4gIGdlbmVyYXRlT3B0aW9ucyhvYmo6IGFueSkge1xuICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLnNlZXJCaXRTZXJ2aWNlLmdldFNlZXJCaXRPcHRpb25zKG9iaik7XG4gICAgdGhpcy5jbG9zZUZuID0gKC4uLnJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAodGhpcy5jbG9zZS5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY2xvc2UuZW1pdCguLi5yZXNwb25zZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmNhbGxiYWNrRm4gPSAocmVzcG9uc2UsIGNsb3NlTW9kYWwpID0+IHtcbiAgICAgIHRoaXMuY2FsbGJhY2suZW1pdCh7cmVzcG9uc2UsIGNsb3NlTW9kYWx9KTtcbiAgICB9O1xuICB9XG4gIHZhbGlkYXRlSW5wdXQob2JqOiBTZWVyQml0T3B0aW9ucykge1xuICAgIGlmICghdGhpcy5jYWxsYmFjay5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ1NlZXJCaXQ6IEluc2VydCBhIGNhbGxiYWNrIGZ1bmN0aW9uIGxpa2Ugc28gKGNhbGxiYWNrKT1cXCdQYXltZW50Q29tcGxldGUoJGV2ZW50KVxcJyB0byBjaGVjayBwYXltZW50IHN0YXR1cyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlZXJCaXRTZXJ2aWNlLmNoZWNrSW5wdXQob2JqKTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIGFzeW5jIGJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMucGF5KCk7XG4gIH1cbn1cbiJdfQ==