UNPKG

said-ngx-paypal

Version:
101 lines 7.15 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, NgZone } from '@angular/core'; export class ScriptService { /** * @param {?} zone */ constructor(zone) { this.zone = zone; } /** * @param {?} url * @param {?} globalVar * @param {?} onReady * @param {?} onError * @return {?} */ registerScript(url, globalVar, onReady, onError) { /** @type {?} */ const existingGlobalVar = ((/** @type {?} */ (window)))[globalVar]; if (existingGlobalVar) { // global variable is present = script was already loaded this.zone.run((/** * @return {?} */ () => { onReady(existingGlobalVar); })); return; } // prepare script elem /** @type {?} */ const scriptElem = document.createElement('script'); scriptElem.id = this.getElemId(globalVar); scriptElem.innerHTML = ''; scriptElem.onload = (/** * @return {?} */ () => { this.zone.run((/** * @return {?} */ () => { onReady(((/** @type {?} */ (window)))[globalVar]); })); }); scriptElem.onerror = (/** * @return {?} */ () => { this.zone.run((/** * @return {?} */ () => { 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 {?} */ cleanup(globalVar) { // remove script from DOM /** @type {?} */ const scriptElem = document.getElementById(this.getElemId(globalVar)); if (scriptElem) { scriptElem.remove(); } } /** * @private * @param {?} globalVar * @return {?} */ getElemId(globalVar) { return `ngx-paypal-script-elem-${globalVar}`; } } ScriptService.decorators = [ { type: Injectable } ]; /** @nocollapse */ ScriptService.ctorParameters = () => [ { type: NgZone } ]; if (false) { /** * @type {?} * @protected */ ScriptService.prototype.zone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9zYWlkLW5neC1wYXlwYWwvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2NyaXB0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE1BQU0sT0FBTyxhQUFhOzs7O0lBRXRCLFlBQ2MsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFFMUIsQ0FBQzs7Ozs7Ozs7SUFFRCxjQUFjLENBQUMsR0FBVyxFQUFFLFNBQWlCLEVBQUUsT0FBaUMsRUFBRSxPQUFvQzs7Y0FDNUcsaUJBQWlCLEdBQUcsQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNwRCxJQUFJLGlCQUFpQixFQUFFO1lBQ25CLHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7OztZQUFDLEdBQUcsRUFBRTtnQkFDZixPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQixDQUFDLEVBQUMsQ0FBQztZQUNILE9BQU87U0FDVjs7O2NBSUssVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxVQUFVLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUMxQixVQUFVLENBQUMsTUFBTTs7O1FBQUcsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRzs7O1lBQUMsR0FBRyxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxDQUFDLG1CQUFBLE1BQU0sRUFBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN4QyxDQUFDLEVBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQSxDQUFDO1FBQ0YsVUFBVSxDQUFDLE9BQU87OztRQUFHLEdBQUcsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7OztZQUFDLEdBQUcsRUFBRTtnQkFDakIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixDQUFDLEVBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQSxDQUFDO1FBQ0YsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDckIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFeEIsdUJBQXVCO1FBQ3ZCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsU0FBaUI7OztjQUVmLFVBQVUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckUsSUFBSSxVQUFVLEVBQUU7WUFDWixVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdkI7SUFDTCxDQUFDOzs7Ozs7SUFFTyxTQUFTLENBQUMsU0FBaUI7UUFDL0IsT0FBTywwQkFBMEIsU0FBUyxFQUFFLENBQUM7SUFDakQsQ0FBQzs7O1lBcERKLFVBQVU7Ozs7WUFGVSxNQUFNOzs7Ozs7O0lBTW5CLDZCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2NyaXB0U2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIHpvbmU6IE5nWm9uZSxcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyU2NyaXB0KHVybDogc3RyaW5nLCBnbG9iYWxWYXI6IHN0cmluZywgb25SZWFkeTogKGdsb2JhbFZhcjogYW55KSA9PiB2b2lkLCBvbkVycm9yOiAoc2NyaXB0U3JjOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBleGlzdGluZ0dsb2JhbFZhciA9ICh3aW5kb3cgYXMgYW55KVtnbG9iYWxWYXJdO1xyXG4gICAgICAgIGlmIChleGlzdGluZ0dsb2JhbFZhcikge1xyXG4gICAgICAgICAgICAvLyBnbG9iYWwgdmFyaWFibGUgaXMgcHJlc2VudCA9IHNjcmlwdCB3YXMgYWxyZWFkeSBsb2FkZWRcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvblJlYWR5KGV4aXN0aW5nR2xvYmFsVmFyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvLyBwcmVwYXJlIHNjcmlwdCBlbGVtXHJcbiAgICAgICAgY29uc3Qgc2NyaXB0RWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uaWQgPSB0aGlzLmdldEVsZW1JZChnbG9iYWxWYXIpO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25SZWFkeSgod2luZG93IGFzIGFueSlbZ2xvYmFsVmFyXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2NyaXB0RWxlbS5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIG9uRXJyb3Ioc2NyaXB0RWxlbS5zcmMpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBzY3JpcHRFbGVtLnNyYyA9IHVybDtcclxuICAgICAgICBzY3JpcHRFbGVtLmFzeW5jID0gdHJ1ZTtcclxuICAgICAgICBzY3JpcHRFbGVtLmRlZmVyID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gYWRkIHNjcmlwdCB0byBoZWFkZXJcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdEVsZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFudXAoZ2xvYmFsVmFyOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICAvLyByZW1vdmUgc2NyaXB0IGZyb20gRE9NXHJcbiAgICAgICAgY29uc3Qgc2NyaXB0RWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0RWxlbUlkKGdsb2JhbFZhcikpO1xyXG5cclxuICAgICAgICBpZiAoc2NyaXB0RWxlbSkge1xyXG4gICAgICAgICAgICBzY3JpcHRFbGVtLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEVsZW1JZChnbG9iYWxWYXI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGBuZ3gtcGF5cGFsLXNjcmlwdC1lbGVtLSR7Z2xvYmFsVmFyfWA7XHJcbiAgICB9XHJcbn1cclxuIl19