ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
92 lines • 6.45 kB
JavaScript
/**
* @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 {?} */
var TAG = 'PluginLoader';
var AmapPluginLoaderService = /** @class */ (function () {
function AmapPluginLoaderService(mapLoader, logger) {
this.mapLoader = mapLoader;
this.logger = logger;
this.state = new Map();
}
/**
* 加载一个或多个插件
*/
/**
* 加载一个或多个插件
* @param {?} name
* @return {?}
*/
AmapPluginLoaderService.prototype.load = /**
* 加载一个或多个插件
* @param {?} name
* @return {?}
*/
function (name) {
var _this = this;
/** @type {?} */
var 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 {?}
*/
function () {
/** @type {?} */
var loading$ = new ReplaySubject(1);
AMap.plugin(name, (/**
* @return {?}
*/
function () {
_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 = function () { return [
{ type: AMapLoaderService },
{ type: LoggerService }
]; };
return AmapPluginLoaderService;
}());
export { AmapPluginLoaderService };
if (false) {
/**
* @type {?}
* @private
*/
AmapPluginLoaderService.prototype.state;
/**
* @type {?}
* @private
*/
AmapPluginLoaderService.prototype.mapLoader;
/**
* @type {?}
* @private
*/
AmapPluginLoaderService.prototype.logger;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1wbHVnaW4tbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW1hcC8iLCJzb3VyY2VzIjpbInNoYXJlZC9hbWFwLXBsdWdpbi1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztJQUVwRCxHQUFHLEdBQUcsY0FBYztBQUUxQjtJQUlFLGlDQUFvQixTQUE0QixFQUFVLE1BQXFCO1FBQTNELGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUZ2RSxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFFMkIsQ0FBQztJQUVuRjs7T0FFRzs7Ozs7O0lBQ0gsc0NBQUk7Ozs7O0lBQUosVUFBSyxJQUF1QjtRQUE1QixpQkF3QkM7O1lBdkJLLElBQUksR0FBRyxFQUFFO1FBQ2IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQy9CLFNBQVM7OztRQUFDOztnQkFDRixRQUFRLEdBQUcsSUFBSSxhQUFhLENBQU8sQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTs7O1lBQUU7Z0JBQ2hCLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3hELFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsRUFBQyxDQUFDO1lBQ0gsS0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2pDLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOztnQkFqQ0YsVUFBVTs7OztnQkFKRixpQkFBaUI7Z0JBRGpCLGFBQWE7O0lBdUN0Qiw4QkFBQztDQUFBLEFBbENELElBa0NDO1NBakNZLHVCQUF1Qjs7Ozs7O0lBQ2xDLHdDQUF1RDs7Ozs7SUFFM0MsNENBQW9DOzs7OztJQUFFLHlDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBTWFwTG9hZGVyU2VydmljZSB9IGZyb20gJy4vYW1hcC1sb2FkZXIuc2VydmljZSc7XG5cbmNvbnN0IFRBRyA9ICdQbHVnaW5Mb2FkZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW1hcFBsdWdpbkxvYWRlclNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRlID0gbmV3IE1hcDxzdHJpbmcsIFJlcGxheVN1YmplY3Q8dm9pZD4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXBMb2FkZXI6IEFNYXBMb2FkZXJTZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSkge31cblxuICAvKipcbiAgICog5Yqg6L295LiA5Liq5oiW5aSa5Liq5o+S5Lu2XG4gICAqL1xuICBsb2FkKG5hbWU6IHN0cmluZyB8IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgbGV0IHBLZXkgPSAnJztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShuYW1lKSkge1xuICAgICAgcEtleSA9IG5hbWUuam9pbignLCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwS2V5ID0gbmFtZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUuaGFzKHBLZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS5nZXQocEtleSkuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuZChUQUcsICdsb2FkaW5nIHBsdWdpbjonLCBwS2V5LCAnLi4uJyk7XG4gICAgcmV0dXJuIHRoaXMubWFwTG9hZGVyLmxvYWQoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgbG9hZGluZyQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgICAgICAgQU1hcC5wbHVnaW4obmFtZSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbG9hZGluZyBwbHVnaW46JywgcEtleSwgJ0NPTVBMRVRFJyk7XG4gICAgICAgICAgbG9hZGluZyQubmV4dCgpO1xuICAgICAgICAgIGxvYWRpbmckLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN0YXRlLnNldChwS2V5LCBsb2FkaW5nJCk7XG4gICAgICAgIHJldHVybiBsb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==