UNPKG

ngx-amap

Version:

[![npm](https://img.shields.io/npm/v/ngx-amap.svg)][npm-badge-url] [![npm](https://img.shields.io/npm/dm/ngx-amap.svg)][npm-badge-url] [![Build Status](https://travis-ci.org/xieziyu/ngx-amap.svg?branch=master)][ci-url]

85 lines 5.85 kB
/** * @fileoverview added by tsickle * Generated from: shared/plugin-loader.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { ReplaySubject } from 'rxjs'; import { switchMap } from 'rxjs/operators'; import { LoggerService } from './logger/logger.service'; import { AMapService } from './amap.service'; /** @type {?} */ const TAG = 'PluginLoader'; export class PluginLoaderService { /** * @param {?} amap * @param {?} logger */ constructor(amap, logger) { this.amap = amap; this.logger = logger; this.state = new Map(); } /** * @param {?} name * @return {?} */ load(name) { /** @type {?} */ let pKey = ''; if (Array.isArray(name)) { pKey = name.join(','); } else { pKey = name; } if (this.state.has(pKey)) { return this.state.get(pKey).asObservable(); } this.logger.d(TAG, 'loading plugin:', pKey, '...'); return this.amap.get().pipe(switchMap((/** * @param {?} m * @return {?} */ m => { /** @type {?} */ const loading$ = new ReplaySubject(1); m.plugin(name, (/** * @return {?} */ () => { this.logger.d(TAG, 'loading plugin:', pKey, 'COMPLETE'); loading$.next(); loading$.complete(); })); this.state.set(pKey, loading$); return loading$.asObservable(); }))); } } PluginLoaderService.decorators = [ { type: Injectable } ]; /** @nocollapse */ PluginLoaderService.ctorParameters = () => [ { type: AMapService }, { type: LoggerService } ]; if (false) { /** * @type {?} * @private */ PluginLoaderService.prototype.state; /** * @type {?} * @private */ PluginLoaderService.prototype.amap; /** * @type {?} * @private */ PluginLoaderService.prototype.logger; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJzaGFyZWQvcGx1Z2luLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztNQUV2QyxHQUFHLEdBQUcsY0FBYztBQUcxQixNQUFNLE9BQU8sbUJBQW1COzs7OztJQUc5QixZQUFvQixJQUFpQixFQUFVLE1BQXFCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBRjVELFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztJQUVnQixDQUFDOzs7OztJQUV4RSxJQUFJLENBQUMsSUFBdUI7O1lBQ3RCLElBQUksR0FBRyxFQUFFO1FBQ2IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3pCLFNBQVM7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRTs7a0JBQ04sUUFBUSxHQUFHLElBQUksYUFBYSxDQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7OztZQUFFLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDeEQsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxFQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0IsT0FBTyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDakMsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OztZQTlCRixVQUFVOzs7O1lBSkYsV0FBVztZQURYLGFBQWE7Ozs7Ozs7SUFPcEIsb0NBQXVEOzs7OztJQUUzQyxtQ0FBeUI7Ozs7O0lBQUUscUNBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4vbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFNYXBTZXJ2aWNlIH0gZnJvbSAnLi9hbWFwLnNlcnZpY2UnO1xuXG5jb25zdCBUQUcgPSAnUGx1Z2luTG9hZGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBsdWdpbkxvYWRlclNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRlID0gbmV3IE1hcDxzdHJpbmcsIFJlcGxheVN1YmplY3Q8dm9pZD4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbWFwOiBBTWFwU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UpIHt9XG5cbiAgbG9hZChuYW1lOiBzdHJpbmcgfCBzdHJpbmdbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGxldCBwS2V5ID0gJyc7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobmFtZSkpIHtcbiAgICAgIHBLZXkgPSBuYW1lLmpvaW4oJywnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcEtleSA9IG5hbWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXRlLmhhcyhwS2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZ2V0KHBLZXkpLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbG9hZGluZyBwbHVnaW46JywgcEtleSwgJy4uLicpO1xuICAgIHJldHVybiB0aGlzLmFtYXAuZ2V0KCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChtID0+IHtcbiAgICAgICAgY29uc3QgbG9hZGluZyQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgICAgICAgbS5wbHVnaW4obmFtZSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbG9hZGluZyBwbHVnaW46JywgcEtleSwgJ0NPTVBMRVRFJyk7XG4gICAgICAgICAgbG9hZGluZyQubmV4dCgpO1xuICAgICAgICAgIGxvYWRpbmckLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN0YXRlLnNldChwS2V5LCBsb2FkaW5nJCk7XG4gICAgICAgIHJldHVybiBsb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==