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 6.07 kB
/** * @fileoverview added by tsickle * Generated from: shared/amap-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 { AMapLoaderService } from './amap-loader.service'; /** @type {?} */ const TAG = 'PluginLoader'; export class AmapPluginLoaderService { /** * @param {?} mapLoader * @param {?} logger */ constructor(mapLoader, logger) { this.mapLoader = mapLoader; 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.mapLoader.load().pipe(switchMap((/** * @return {?} */ () => { /** @type {?} */ const loading$ = new ReplaySubject(1); AMap.plugin(name, (/** * @return {?} */ () => { this.logger.d(TAG, 'loading plugin:', pKey, 'COMPLETE'); loading$.next(); loading$.complete(); })); this.state.set(pKey, loading$); return loading$.asObservable(); }))); } } AmapPluginLoaderService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AmapPluginLoaderService.ctorParameters = () => [ { type: AMapLoaderService }, { type: LoggerService } ]; if (false) { /** * @type {?} * @private */ AmapPluginLoaderService.prototype.state; /** * @type {?} * @private */ AmapPluginLoaderService.prototype.mapLoader; /** * @type {?} * @private */ AmapPluginLoaderService.prototype.logger; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1wbHVnaW4tbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW1hcC8iLCJzb3VyY2VzIjpbInNoYXJlZC9hbWFwLXBsdWdpbi1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztNQUVwRCxHQUFHLEdBQUcsY0FBYztBQUcxQixNQUFNLE9BQU8sdUJBQXVCOzs7OztJQUdsQyxZQUFvQixTQUE0QixFQUFVLE1BQXFCO1FBQTNELGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUZ2RSxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFFMkIsQ0FBQzs7Ozs7O0lBS25GLElBQUksQ0FBQyxJQUF1Qjs7WUFDdEIsSUFBSSxHQUFHLEVBQUU7UUFDYixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7YUFBTTtZQUNMLElBQUksR0FBRyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FDL0IsU0FBUzs7O1FBQUMsR0FBRyxFQUFFOztrQkFDUCxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQU8sQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTs7O1lBQUUsR0FBRyxFQUFFO2dCQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUN4RCxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvQixPQUFPLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7O1lBakNGLFVBQVU7Ozs7WUFKRixpQkFBaUI7WUFEakIsYUFBYTs7Ozs7OztJQU9wQix3Q0FBdUQ7Ozs7O0lBRTNDLDRDQUFvQzs7Ozs7SUFBRSx5Q0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQU1hcExvYWRlclNlcnZpY2UgfSBmcm9tICcuL2FtYXAtbG9hZGVyLnNlcnZpY2UnO1xuXG5jb25zdCBUQUcgPSAnUGx1Z2luTG9hZGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFtYXBQbHVnaW5Mb2FkZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0ZSA9IG5ldyBNYXA8c3RyaW5nLCBSZXBsYXlTdWJqZWN0PHZvaWQ+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFwTG9hZGVyOiBBTWFwTG9hZGVyU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIOWKoOi9veS4gOS4quaIluWkmuS4quaPkuS7tlxuICAgKi9cbiAgbG9hZChuYW1lOiBzdHJpbmcgfCBzdHJpbmdbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGxldCBwS2V5ID0gJyc7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobmFtZSkpIHtcbiAgICAgIHBLZXkgPSBuYW1lLmpvaW4oJywnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcEtleSA9IG5hbWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXRlLmhhcyhwS2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZ2V0KHBLZXkpLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbG9hZGluZyBwbHVnaW46JywgcEtleSwgJy4uLicpO1xuICAgIHJldHVybiB0aGlzLm1hcExvYWRlci5sb2FkKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvYWRpbmckID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgICAgIEFNYXAucGx1Z2luKG5hbWUsICgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ2xvYWRpbmcgcGx1Z2luOicsIHBLZXksICdDT01QTEVURScpO1xuICAgICAgICAgIGxvYWRpbmckLm5leHQoKTtcbiAgICAgICAgICBsb2FkaW5nJC5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdGF0ZS5zZXQocEtleSwgbG9hZGluZyQpO1xuICAgICAgICByZXR1cm4gbG9hZGluZyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=