said-ngx-paypal
Version:
Paypal integration for Angular
120 lines • 8.34 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import { ScriptService } from './script.service';
var PayPalScriptService = /** @class */ (function () {
function PayPalScriptService(scriptService) {
this.scriptService = scriptService;
this.paypalWindowName = 'paypal';
}
/**
* @param {?} config
* @param {?} onReady
* @param {?} onError
* @return {?}
*/
PayPalScriptService.prototype.registerPayPalScript = /**
* @param {?} config
* @param {?} onReady
* @param {?} onError
* @return {?}
*/
function (config, onReady, onError) {
this.scriptService.registerScript(this.getUrlForConfig(config), this.paypalWindowName, onReady, onError);
};
/**
* @return {?}
*/
PayPalScriptService.prototype.destroyPayPalScript = /**
* @return {?}
*/
function () {
this.scriptService.cleanup(this.paypalWindowName);
};
/**
* @private
* @param {?} config
* @return {?}
*/
PayPalScriptService.prototype.getUrlForConfig = /**
* @private
* @param {?} config
* @return {?}
*/
function (config) {
/** @type {?} */
var params = [
{
name: 'client-id',
value: config.clientId
}
];
if (config.currency) {
params.push({
name: 'currency',
value: config.currency
});
}
if (config.commit) {
params.push({
name: 'commit',
value: config.commit
});
}
if (config.extraParams) {
params.push.apply(params, tslib_1.__spread(config.extraParams));
}
return "https://www.paypal.com/sdk/js" + this.getQueryString(params);
};
/**
* @private
* @param {?} queryParams
* @return {?}
*/
PayPalScriptService.prototype.getQueryString = /**
* @private
* @param {?} queryParams
* @return {?}
*/
function (queryParams) {
/** @type {?} */
var queryString = '';
for (var i = 0; i < queryParams.length; i++) {
/** @type {?} */
var queryParam = queryParams[i];
if (i === 0) {
queryString += '?';
}
else {
queryString += '&';
}
queryString += queryParam.name + "=" + queryParam.value;
}
return queryString;
};
PayPalScriptService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
PayPalScriptService.ctorParameters = function () { return [
{ type: ScriptService }
]; };
return PayPalScriptService;
}());
export { PayPalScriptService };
if (false) {
/**
* @type {?}
* @private
*/
PayPalScriptService.prototype.paypalWindowName;
/**
* @type {?}
* @protected
*/
PayPalScriptService.prototype.scriptService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5cGFsLXNjcmlwdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc2FpZC1uZ3gtcGF5cGFsLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3BheXBhbC1zY3JpcHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpEO0lBTUksNkJBQ2MsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFKekIscUJBQWdCLEdBQUcsUUFBUSxDQUFDO0lBTTdDLENBQUM7Ozs7Ozs7SUFFRCxrREFBb0I7Ozs7OztJQUFwQixVQUFxQixNQUF3QixFQUFFLE9BQWlDLEVBQUUsT0FBb0M7UUFDbEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdHLENBQUM7Ozs7SUFFRCxpREFBbUI7OztJQUFuQjtRQUNJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Ozs7OztJQUVPLDZDQUFlOzs7OztJQUF2QixVQUF3QixNQUF3Qjs7WUFDdEMsTUFBTSxHQUFrQjtZQUMxQjtnQkFDSSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRO2FBQ3pCO1NBQ0o7UUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDUixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRO2FBQ3pCLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDUixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU07YUFDdkIsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDcEIsTUFBTSxDQUFDLElBQUksT0FBWCxNQUFNLG1CQUFTLE1BQU0sQ0FBQyxXQUFXLEdBQUU7U0FDdEM7UUFFRCxPQUFPLGtDQUFnQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBRyxDQUFDO0lBQ3pFLENBQUM7Ozs7OztJQUVPLDRDQUFjOzs7OztJQUF0QixVQUF1QixXQUEwQjs7WUFDekMsV0FBVyxHQUFHLEVBQUU7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O2dCQUNuQyxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1QsV0FBVyxJQUFJLEdBQUcsQ0FBQzthQUN0QjtpQkFBTTtnQkFDSCxXQUFXLElBQUksR0FBRyxDQUFDO2FBQ3RCO1lBRUQsV0FBVyxJQUFPLFVBQVUsQ0FBQyxJQUFJLFNBQUksVUFBVSxDQUFDLEtBQU8sQ0FBQztTQUMzRDtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7O2dCQS9ESixVQUFVOzs7O2dCQUZGLGFBQWE7O0lBa0V0QiwwQkFBQztDQUFBLEFBaEVELElBZ0VDO1NBL0RZLG1CQUFtQjs7Ozs7O0lBRTVCLCtDQUE2Qzs7Ozs7SUFJekMsNENBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSVBheVBhbFVybENvbmZpZywgSVF1ZXJ5UGFyYW0gfSBmcm9tICcuLi9tb2RlbHMvcGF5cGFsLW1vZGVscyc7XHJcbmltcG9ydCB7IFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuL3NjcmlwdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFBheVBhbFNjcmlwdFNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5cGFsV2luZG93TmFtZSA9ICdwYXlwYWwnO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgc2NyaXB0U2VydmljZTogU2NyaXB0U2VydmljZSxcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyUGF5UGFsU2NyaXB0KGNvbmZpZzogSVBheVBhbFVybENvbmZpZywgb25SZWFkeTogKHBheVBhbEFwaTogYW55KSA9PiB2b2lkLCBvbkVycm9yOiAoc2NyaXB0U3JjOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UucmVnaXN0ZXJTY3JpcHQodGhpcy5nZXRVcmxGb3JDb25maWcoY29uZmlnKSwgdGhpcy5wYXlwYWxXaW5kb3dOYW1lLCBvblJlYWR5LCBvbkVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95UGF5UGFsU2NyaXB0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2NyaXB0U2VydmljZS5jbGVhbnVwKHRoaXMucGF5cGFsV2luZG93TmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRVcmxGb3JDb25maWcoY29uZmlnOiBJUGF5UGFsVXJsQ29uZmlnKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJhbXM6IElRdWVyeVBhcmFtW10gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdjbGllbnQtaWQnLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbmZpZy5jbGllbnRJZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKGNvbmZpZy5jdXJyZW5jeSkge1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnY3VycmVuY3knLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbmZpZy5jdXJyZW5jeVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb25maWcuY29tbWl0KSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdjb21taXQnLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbmZpZy5jb21taXRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29uZmlnLmV4dHJhUGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKC4uLmNvbmZpZy5leHRyYVBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vd3d3LnBheXBhbC5jb20vc2RrL2pzJHt0aGlzLmdldFF1ZXJ5U3RyaW5nKHBhcmFtcyl9YDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFF1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zOiBJUXVlcnlQYXJhbVtdKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcXVlcnlTdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVyeVBhcmFtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtID0gcXVlcnlQYXJhbXNbaV07XHJcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyArPSAnPyc7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyArPSAnJic7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nICs9IGAke3F1ZXJ5UGFyYW0ubmFtZX09JHtxdWVyeVBhcmFtLnZhbHVlfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcXVlcnlTdHJpbmc7XHJcbiAgICB9XHJcbn1cclxuIl19