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
JavaScript
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==