UNPKG

@ngx-performance-ui/core

Version:
61 lines 5 kB
/** * @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"; export class LazyLoadScriptService { /** * @param {?} document */ constructor(document) { this.document = document; this._loadedLibraries = {}; } /** * @param {?} url * @return {?} */ loadScript(url) { if (this._loadedLibraries[url]) { return this._loadedLibraries[url].asObservable(); } this._loadedLibraries[url] = new ReplaySubject(); /** @type {?} */ const script = this.document.createElement('script'); script.type = 'text/javascript'; script.src = url; script.onload = (/** * @return {?} */ () => { 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 = () => [ { 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" }); if (false) { /** @type {?} */ LazyLoadScriptService.prototype._loadedLibraries; /** * @type {?} * @private */ LazyLoadScriptService.prototype.document; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLXNjcmlwdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neC1wZXJmb3JtYW5jZS11aS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2xhenktbG9hZC1zY3JpcHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUszQyxNQUFNLE9BQU8scUJBQXFCOzs7O0lBR2hDLFlBQStDLFFBQWE7UUFBYixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBRjVELHFCQUFnQixHQUEwQyxFQUFFLENBQUM7SUFFRSxDQUFDOzs7OztJQUVoRSxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNsRDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDOztjQUUzQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakIsTUFBTSxDQUFDLE1BQU07OztRQUFHLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQSxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7OztZQTFCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7NENBSWMsTUFBTSxTQUFDLFFBQVE7Ozs7O0lBRjVCLGlEQUE2RDs7Ozs7SUFFakQseUNBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZFNjcmlwdFNlcnZpY2Uge1xuICBfbG9hZGVkTGlicmFyaWVzOiB7IFt1cmw6IHN0cmluZ106IFJlcGxheVN1YmplY3Q8YW55PiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogYW55KSB7fVxuXG4gIGxvYWRTY3JpcHQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZExpYnJhcmllc1t1cmxdLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2xvYWRlZExpYnJhcmllc1t1cmxdID0gbmV3IFJlcGxheVN1YmplY3QoKTtcblxuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXS5uZXh0KCk7XG4gICAgICB0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXS5jb21wbGV0ZSgpO1xuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgIHJldHVybiB0aGlzLl9sb2FkZWRMaWJyYXJpZXNbdXJsXS5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuXG4vKiBVc2FnZVxudGhpcy5sYXp5TG9hZFNlcnZpY2UubG9hZFNjcmlwdCgnL2Fzc2V0cy9zY3JpcHRzL3NvbWUtc2NyaXB0LmpzJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgLy8gY29kZVxufSk7XG4qL1xuIl19