said-ngx-paypal
Version:
Paypal integration for Angular
117 lines • 7.72 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, NgZone } from '@angular/core';
var ScriptService = /** @class */ (function () {
function ScriptService(zone) {
this.zone = zone;
}
/**
* @param {?} url
* @param {?} globalVar
* @param {?} onReady
* @param {?} onError
* @return {?}
*/
ScriptService.prototype.registerScript = /**
* @param {?} url
* @param {?} globalVar
* @param {?} onReady
* @param {?} onError
* @return {?}
*/
function (url, globalVar, onReady, onError) {
var _this = this;
/** @type {?} */
var existingGlobalVar = ((/** @type {?} */ (window)))[globalVar];
if (existingGlobalVar) {
// global variable is present = script was already loaded
this.zone.run((/**
* @return {?}
*/
function () {
onReady(existingGlobalVar);
}));
return;
}
// prepare script elem
/** @type {?} */
var scriptElem = document.createElement('script');
scriptElem.id = this.getElemId(globalVar);
scriptElem.innerHTML = '';
scriptElem.onload = (/**
* @return {?}
*/
function () {
_this.zone.run((/**
* @return {?}
*/
function () {
onReady(((/** @type {?} */ (window)))[globalVar]);
}));
});
scriptElem.onerror = (/**
* @return {?}
*/
function () {
_this.zone.run((/**
* @return {?}
*/
function () {
onError(scriptElem.src);
}));
});
scriptElem.src = url;
scriptElem.async = true;
scriptElem.defer = true;
// add script to header
document.getElementsByTagName('head')[0].appendChild(scriptElem);
};
/**
* @param {?} globalVar
* @return {?}
*/
ScriptService.prototype.cleanup = /**
* @param {?} globalVar
* @return {?}
*/
function (globalVar) {
// remove script from DOM
/** @type {?} */
var scriptElem = document.getElementById(this.getElemId(globalVar));
if (scriptElem) {
scriptElem.remove();
}
};
/**
* @private
* @param {?} globalVar
* @return {?}
*/
ScriptService.prototype.getElemId = /**
* @private
* @param {?} globalVar
* @return {?}
*/
function (globalVar) {
return "ngx-paypal-script-elem-" + globalVar;
};
ScriptService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
ScriptService.ctorParameters = function () { return [
{ type: NgZone }
]; };
return ScriptService;
}());
export { ScriptService };
if (false) {
/**
* @type {?}
* @protected
*/
ScriptService.prototype.zone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9zYWlkLW5neC1wYXlwYWwvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2NyaXB0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5EO0lBR0ksdUJBQ2MsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFFMUIsQ0FBQzs7Ozs7Ozs7SUFFRCxzQ0FBYzs7Ozs7OztJQUFkLFVBQWUsR0FBVyxFQUFFLFNBQWlCLEVBQUUsT0FBaUMsRUFBRSxPQUFvQztRQUF0SCxpQkErQkM7O1lBOUJTLGlCQUFpQixHQUFHLENBQUMsbUJBQUEsTUFBTSxFQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEQsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQix5REFBeUQ7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHOzs7WUFBQztnQkFDVixPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQixDQUFDLEVBQUMsQ0FBQztZQUNILE9BQU87U0FDVjs7O1lBSUssVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxVQUFVLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUMxQixVQUFVLENBQUMsTUFBTTs7O1FBQUc7WUFDaEIsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHOzs7WUFBQztnQkFDVixPQUFPLENBQUMsQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQyxFQUFDLENBQUM7UUFDUCxDQUFDLENBQUEsQ0FBQztRQUNGLFVBQVUsQ0FBQyxPQUFPOzs7UUFBRztZQUNuQixLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7OztZQUFDO2dCQUNaLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDLENBQUEsQ0FBQztRQUNGLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRXhCLHVCQUF1QjtRQUN2QixRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Ozs7O0lBRUQsK0JBQU87Ozs7SUFBUCxVQUFRLFNBQWlCOzs7WUFFZixVQUFVLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXJFLElBQUksVUFBVSxFQUFFO1lBQ1osVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQzs7Ozs7O0lBRU8saUNBQVM7Ozs7O0lBQWpCLFVBQWtCLFNBQWlCO1FBQy9CLE9BQU8sNEJBQTBCLFNBQVcsQ0FBQztJQUNqRCxDQUFDOztnQkFwREosVUFBVTs7OztnQkFGVSxNQUFNOztJQXVEM0Isb0JBQUM7Q0FBQSxBQXJERCxJQXFEQztTQXBEWSxhQUFhOzs7Ozs7SUFHbEIsNkJBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTY3JpcHRTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJTY3JpcHQodXJsOiBzdHJpbmcsIGdsb2JhbFZhcjogc3RyaW5nLCBvblJlYWR5OiAoZ2xvYmFsVmFyOiBhbnkpID0+IHZvaWQsIG9uRXJyb3I6IChzY3JpcHRTcmM6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nR2xvYmFsVmFyID0gKHdpbmRvdyBhcyBhbnkpW2dsb2JhbFZhcl07XHJcbiAgICAgICAgaWYgKGV4aXN0aW5nR2xvYmFsVmFyKSB7XHJcbiAgICAgICAgICAgIC8vIGdsb2JhbCB2YXJpYWJsZSBpcyBwcmVzZW50ID0gc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZFxyXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uUmVhZHkoZXhpc3RpbmdHbG9iYWxWYXIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8vIHByZXBhcmUgc2NyaXB0IGVsZW1cclxuICAgICAgICBjb25zdCBzY3JpcHRFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5pZCA9IHRoaXMuZ2V0RWxlbUlkKGdsb2JhbFZhcik7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICBzY3JpcHRFbGVtLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvblJlYWR5KCh3aW5kb3cgYXMgYW55KVtnbG9iYWxWYXJdKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBzY3JpcHRFbGVtLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgb25FcnJvcihzY3JpcHRFbGVtLnNyYyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHNjcmlwdEVsZW0uc3JjID0gdXJsO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uYXN5bmMgPSB0cnVlO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uZGVmZXIgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBhZGQgc2NyaXB0IHRvIGhlYWRlclxyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYW51cChnbG9iYWxWYXI6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIC8vIHJlbW92ZSBzY3JpcHQgZnJvbSBET01cclxuICAgICAgICBjb25zdCBzY3JpcHRFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5nZXRFbGVtSWQoZ2xvYmFsVmFyKSk7XHJcblxyXG4gICAgICAgIGlmIChzY3JpcHRFbGVtKSB7XHJcbiAgICAgICAgICAgIHNjcmlwdEVsZW0ucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RWxlbUlkKGdsb2JhbFZhcjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYG5neC1wYXlwYWwtc2NyaXB0LWVsZW0tJHtnbG9iYWxWYXJ9YDtcclxuICAgIH1cclxufVxyXG4iXX0=