angular-rave
Version:
Angular wrapper for integrating rave transactions
75 lines • 8.6 kB
JavaScript
import { __awaiter } from "tslib";
import { Directive, Input, Output, HostListener, EventEmitter } from '@angular/core';
import { AngularRaveService } from './angular-rave.service';
export class AngularRaveDirective {
constructor(raveService) {
this.raveService = raveService;
this.onclose = new EventEmitter();
this.callback = new EventEmitter();
this.init = new EventEmitter();
}
buttonClick() {
this.pay();
}
pay() {
return __awaiter(this, void 0, void 0, function* () {
let raveOptionsError = '';
if (this.raveOptions && Object.keys(this.raveOptions).length > 1) {
raveOptionsError = this.raveService.isInvalidOptions(this.raveOptions);
this.insertRaveOptions(this.raveOptions);
}
else {
raveOptionsError = this.raveService.isInvalidOptions(this);
this.insertRaveOptions(this);
}
if (!!raveOptionsError) {
console.error(raveOptionsError);
return;
}
yield this.raveService.loadScript();
this.raveService.checkout(this._raveOptions);
if (this.init.observers.length > 0) {
this.init.emit();
}
});
}
insertRaveOptions(object) {
const onclose = () => {
if (this.onclose.observers.length) {
this.onclose.emit();
}
};
const callback = (res) => {
this.callback.emit(res);
};
this._raveOptions = this.raveService.createRaveOptionsObject(object, callback, onclose);
}
}
AngularRaveDirective.decorators = [
{ type: Directive, args: [{
selector: '[angular-rave]',
},] }
];
AngularRaveDirective.ctorParameters = () => [
{ type: AngularRaveService }
];
AngularRaveDirective.propDecorators = {
amount: [{ type: Input }],
public_key: [{ type: Input }],
currency: [{ type: Input }],
customer: [{ type: Input }],
customizations: [{ type: Input }],
integrity_hash: [{ type: Input }],
meta: [{ type: Input }],
paymentOptions: [{ type: Input }],
payment_plan: [{ type: Input }],
redirect_url: [{ type: Input }],
subaccounts: [{ type: Input }],
tx_ref: [{ type: Input }],
raveOptions: [{ type: Input }],
onclose: [{ type: Output }],
callback: [{ type: Output }],
init: [{ type: Output }],
buttonClick: [{ type: HostListener, args: ['click',] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1yYXZlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmF2ZS9zcmMvbGliL2FuZ3VsYXItcmF2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTTVELE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLFlBQW9CLFdBQStCO1FBQS9CLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUx6QyxZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkQsYUFBUSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUM5RSxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFHUCxDQUFDO0lBR3hELFdBQVc7UUFDVCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUssR0FBRzs7WUFDUCxJQUFJLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDaEUsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUM7aUJBQU07Z0JBQ0wsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFtQixDQUFDLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFtQixDQUFDLENBQUM7YUFDN0M7WUFDRCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNoQyxPQUFPO2FBQ1I7WUFDRCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNsQjtRQUNILENBQUM7S0FBQTtJQUVELGlCQUFpQixDQUFDLE1BQTRCO1FBQzVDLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtnQkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFGLENBQUM7OztZQTdERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjthQUMzQjs7O1lBTFEsa0JBQWtCOzs7cUJBT3hCLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7NkJBQ0wsS0FBSzs2QkFDTCxLQUFLO21CQUNMLEtBQUs7NkJBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSztxQkFDTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsTUFBTTt1QkFDTixNQUFNO21CQUNOLE1BQU07MEJBS04sWUFBWSxTQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBQYXltZW50T3B0aW9uc0VudW0sIFJhdmVDdXN0b21lciwgUmF2ZUN1c3RvbWl6YXRpb24sIFJhdmVPcHRpb25zLCBSYXZlU3ViQWNjY291bnQgfSBmcm9tICcuL3JhdmUtb3B0aW9ucyc7XHJcbmltcG9ydCB7IEFuZ3VsYXJSYXZlU2VydmljZSB9IGZyb20gJy4vYW5ndWxhci1yYXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYXZlUGF5bWVudERhdGEsIFByaXZhdGVSYXZlT3B0aW9ucyB9IGZyb20gJy4vcHJpdmF0ZS1yYXZlLW9wdGlvbnMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYW5ndWxhci1yYXZlXScsIC8vdHNsaW50OmRpc2FibGUtbGluZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhclJhdmVEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgpIGFtb3VudDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHB1YmxpY19rZXk6IHN0cmluZztcclxuICBASW5wdXQoKSBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWVyOiBSYXZlQ3VzdG9tZXI7XHJcbiAgQElucHV0KCkgY3VzdG9taXphdGlvbnM6IFJhdmVDdXN0b21pemF0aW9uO1xyXG4gIEBJbnB1dCgpIGludGVncml0eV9oYXNoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWV0YTogb2JqZWN0O1xyXG4gIEBJbnB1dCgpIHBheW1lbnRPcHRpb25zOiBQYXltZW50T3B0aW9uc0VudW1bXTtcclxuICBASW5wdXQoKSBwYXltZW50X3BsYW46IHN0cmluZztcclxuICBASW5wdXQoKSByZWRpcmVjdF91cmw6IHN0cmluZztcclxuICBASW5wdXQoKSBzdWJhY2NvdW50czogUmF2ZVN1YkFjY2NvdW50W107XHJcbiAgQElucHV0KCkgdHhfcmVmOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmF2ZU9wdGlvbnM6IFJhdmVPcHRpb25zO1xyXG4gIEBPdXRwdXQoKSBvbmNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGNhbGxiYWNrOiBFdmVudEVtaXR0ZXI8UmF2ZVBheW1lbnREYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmF2ZVBheW1lbnREYXRhPigpO1xyXG4gIEBPdXRwdXQoKSBpbml0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmF2ZU9wdGlvbnM6IFByaXZhdGVSYXZlT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByYXZlU2VydmljZTogQW5ndWxhclJhdmVTZXJ2aWNlKSB7IH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIGJ1dHRvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5wYXkoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHBheSgpIHtcclxuICAgIGxldCByYXZlT3B0aW9uc0Vycm9yID0gJyc7XHJcbiAgICBpZiAodGhpcy5yYXZlT3B0aW9ucyAmJiBPYmplY3Qua2V5cyh0aGlzLnJhdmVPcHRpb25zKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJhdmVPcHRpb25zRXJyb3IgPSB0aGlzLnJhdmVTZXJ2aWNlLmlzSW52YWxpZE9wdGlvbnModGhpcy5yYXZlT3B0aW9ucyk7XHJcbiAgICAgIHRoaXMuaW5zZXJ0UmF2ZU9wdGlvbnModGhpcy5yYXZlT3B0aW9ucyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByYXZlT3B0aW9uc0Vycm9yID0gdGhpcy5yYXZlU2VydmljZS5pc0ludmFsaWRPcHRpb25zKHRoaXMgYXMgUmF2ZU9wdGlvbnMpO1xyXG4gICAgICB0aGlzLmluc2VydFJhdmVPcHRpb25zKHRoaXMgYXMgUmF2ZU9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgaWYgKCEhcmF2ZU9wdGlvbnNFcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKHJhdmVPcHRpb25zRXJyb3IpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnJhdmVTZXJ2aWNlLmxvYWRTY3JpcHQoKTtcclxuICAgIHRoaXMucmF2ZVNlcnZpY2UuY2hlY2tvdXQodGhpcy5fcmF2ZU9wdGlvbnMpO1xyXG4gICAgaWYgKHRoaXMuaW5pdC5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmluaXQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5zZXJ0UmF2ZU9wdGlvbnMob2JqZWN0OiBQYXJ0aWFsPFJhdmVPcHRpb25zPikge1xyXG4gICAgY29uc3Qgb25jbG9zZSA9ICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMub25jbG9zZS5vYnNlcnZlcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5vbmNsb3NlLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjYWxsYmFjayA9IChyZXM6IFJhdmVQYXltZW50RGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLmNhbGxiYWNrLmVtaXQocmVzKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5fcmF2ZU9wdGlvbnMgPSB0aGlzLnJhdmVTZXJ2aWNlLmNyZWF0ZVJhdmVPcHRpb25zT2JqZWN0KG9iamVjdCwgY2FsbGJhY2ssIG9uY2xvc2UpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==