@ngx-performance-ui/core
Version:
Ngx Performance UI - Core
65 lines • 5.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, Inject } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { DOCUMENT } from '@angular/common';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
var LazyLoadScriptService = /** @class */ (function () {
function LazyLoadScriptService(document) {
this.document = document;
this._loadedLibraries = {};
}
/**
* @param {?} url
* @return {?}
*/
LazyLoadScriptService.prototype.loadScript = /**
* @param {?} url
* @return {?}
*/
function (url) {
var _this = this;
if (this._loadedLibraries[url]) {
return this._loadedLibraries[url].asObservable();
}
this._loadedLibraries[url] = new ReplaySubject();
/** @type {?} */
var script = this.document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onload = (/**
* @return {?}
*/
function () {
_this._loadedLibraries[url].next();
_this._loadedLibraries[url].complete();
});
this.document.body.appendChild(script);
return this._loadedLibraries[url].asObservable();
};
LazyLoadScriptService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
LazyLoadScriptService.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
]; };
/** @nocollapse */ LazyLoadScriptService.ngInjectableDef = i0.defineInjectable({ factory: function LazyLoadScriptService_Factory() { return new LazyLoadScriptService(i0.inject(i1.DOCUMENT)); }, token: LazyLoadScriptService, providedIn: "root" });
return LazyLoadScriptService;
}());
export { LazyLoadScriptService };
if (false) {
/** @type {?} */
LazyLoadScriptService.prototype._loadedLibraries;
/**
* @type {?}
* @private
*/
LazyLoadScriptService.prototype.document;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLXNjcmlwdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neC1wZXJmb3JtYW5jZS11aS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2xhenktbG9hZC1zY3JpcHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUUzQztJQU1FLCtCQUErQyxRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUY1RCxxQkFBZ0IsR0FBMEMsRUFBRSxDQUFDO0lBRUUsQ0FBQzs7Ozs7SUFFaEUsMENBQVU7Ozs7SUFBVixVQUFXLEdBQVc7UUFBdEIsaUJBa0JDO1FBakJDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7O1lBRTNDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDcEQsTUFBTSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUNoQyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTTs7O1FBQUc7WUFDZCxLQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQSxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7O2dCQTFCRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dEQUljLE1BQU0sU0FBQyxRQUFROzs7Z0NBVjlCO0NBK0JDLEFBM0JELElBMkJDO1NBeEJZLHFCQUFxQjs7O0lBQ2hDLGlEQUE2RDs7Ozs7SUFFakQseUNBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZFNjcmlwdFNlcnZpY2Uge1xuICBfbG9hZGVkTGlicmFyaWVzOiB7IFt1cmw6IHN0cmluZ106IFJlcGxheVN1YmplY3Q8YW55PiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogYW55KSB7fVxuXG4gIGxvYWRTY3JpcHQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZExpYnJhcmllc1t1cmxdLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2xvYWRlZExpYnJhcmllc1t1cmxdID0gbmV3IFJlcGxheVN1YmplY3QoKTtcblxuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXS5uZXh0KCk7XG4gICAgICB0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXS5jb21wbGV0ZSgpO1xuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgIHJldHVybiB0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXS5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuXG4vKiBVc2FnZVxudGhpcy5sYXp5TG9hZFNlcnZpY2UubG9hZFNjcmlwdCgnL2Fzc2V0cy9zY3JpcHRzL3NvbWUtc2NyaXB0LmpzJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgLy8gY29kZVxufSk7XG4qL1xuIl19