@ngageoint/mage.web-core-lib 6.3.0-beta.6 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./xhr-img.component";
3
- import * as i2 from "@angular/platform-browser";
3
+ import * as i2 from "@angular/common";
4
4
  export declare class MageCommonModule {
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<MageCommonModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<MageCommonModule, [typeof i1.XhrImgComponent], [typeof i2.BrowserModule], [typeof i1.XhrImgComponent]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MageCommonModule, [typeof i1.XhrImgComponent], [typeof i2.CommonModule], [typeof i1.XhrImgComponent]>;
7
7
  static ɵinj: i0.ɵɵInjectorDeclaration<MageCommonModule>;
8
8
  }
9
9
  //# sourceMappingURL=mage-common.module.d.ts.map
@@ -1,17 +1,17 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { BrowserModule } from '@angular/platform-browser';
3
2
  import { XhrImgComponent } from './xhr-img.component';
3
+ import { CommonModule } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
5
5
  export class MageCommonModule {
6
6
  }
7
7
  MageCommonModule.ɵfac = function MageCommonModule_Factory(t) { return new (t || MageCommonModule)(); };
8
8
  MageCommonModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MageCommonModule });
9
- MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [BrowserModule] });
9
+ MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] });
10
10
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MageCommonModule, [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  imports: [
14
- BrowserModule
14
+ CommonModule
15
15
  ],
16
16
  declarations: [
17
17
  XhrImgComponent
@@ -21,5 +21,5 @@ MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Browser
21
21
  ]
22
22
  }]
23
23
  }], null, null); })();
24
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [BrowserModule], exports: [XhrImgComponent] }); })();
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvY29tbW9uL21hZ2UtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7O0FBYXJELE1BQU0sT0FBTyxnQkFBZ0I7O2dGQUFoQixnQkFBZ0I7a0VBQWhCLGdCQUFnQjtzRUFUekIsYUFBYTt1RkFTSixnQkFBZ0I7Y0FYNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxhQUFhO2lCQUNkO2dCQUNELFlBQVksRUFBRTtvQkFDWixlQUFlO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZUFBZTtpQkFDaEI7YUFDRjs7d0ZBQ1ksZ0JBQWdCLG1CQU56QixlQUFlLGFBSGYsYUFBYSxhQU1iLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlcidcbmltcG9ydCB7IFhockltZ0NvbXBvbmVudCB9IGZyb20gJy4veGhyLWltZy5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBCcm93c2VyTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFhockltZ0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgWGhySW1nQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWFnZUNvbW1vbk1vZHVsZSB7fSJdfQ==
24
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [CommonModule], exports: [XhrImgComponent] }); })();
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvY29tbW9uL21hZ2UtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7O0FBYTlDLE1BQU0sT0FBTyxnQkFBZ0I7O2dGQUFoQixnQkFBZ0I7a0VBQWhCLGdCQUFnQjtzRUFUekIsWUFBWTt1RkFTSCxnQkFBZ0I7Y0FYNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixlQUFlO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZUFBZTtpQkFDaEI7YUFDRjs7d0ZBQ1ksZ0JBQWdCLG1CQU56QixlQUFlLGFBSGYsWUFBWSxhQU1aLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBYaHJJbWdDb21wb25lbnQgfSBmcm9tICcuL3hoci1pbWcuY29tcG9uZW50J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFhockltZ0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgWGhySW1nQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWFnZUNvbW1vbk1vZHVsZSB7fSJdfQ==
@@ -8,7 +8,7 @@ export class FeedService {
8
8
  this.webClient = webClient;
9
9
  // TODO: there is probably a better solution than maintaining this map here
10
10
  this._feeds = new BehaviorSubject([]);
11
- this.feeds = this._feeds.asObservable();
11
+ this.feeds$ = this._feeds.asObservable();
12
12
  this._feedItems = new Map();
13
13
  }
14
14
  feedItems(feedId) {
@@ -102,4 +102,4 @@ FeedService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeedService,
102
102
  providedIn: 'root'
103
103
  }]
104
104
  }], function () { return [{ type: i1.HttpClient }]; }, null); })();
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvZmVlZC9mZWVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQVdwQyxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFvQixTQUFxQjtRQUFyQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBRXpDLDJFQUEyRTtRQUNuRSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDN0MsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEMsZUFBVSxHQUFHLElBQUksR0FBRyxFQUEyQyxDQUFDO0lBTjNCLENBQUM7SUFPOUMsU0FBUyxDQUFDLE1BQWM7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWUsY0FBYyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBVSx1QkFBdUIsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQTZFO1FB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RUFBRSxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUFBO1lBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN4QixPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs7c0VBbEhVLFdBQVc7aUVBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTt1RkFFUCxXQUFXO2NBSHZCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEZlZWQsIEZlZWRDb250ZW50LCBGZWVkRXhwYW5kZWQsIEZlZWRQb3N0LCBGZWVkUHJldmlldywgRmVlZFRvcGljLCBTZXJ2aWNlLCBTZXJ2aWNlVHlwZSwgU3R5bGVkRmVhdHVyZSB9IGZyb20gJy4vZmVlZC5tb2RlbCdcblxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRQcmV2aWV3T3B0aW9ucyB7XG4gIHNraXBDb250ZW50RmV0Y2g/OiBib29sZWFuXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdlYkNsaWVudDogSHR0cENsaWVudCkgeyB9XG5cbiAgLy8gVE9ETzogdGhlcmUgaXMgcHJvYmFibHkgYSBiZXR0ZXIgc29sdXRpb24gdGhhbiBtYWludGFpbmluZyB0aGlzIG1hcCBoZXJlXG4gIHByaXZhdGUgX2ZlZWRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGZWVkPj4oW10pO1xuICByZWFkb25seSBmZWVkcyA9IHRoaXMuX2ZlZWRzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgX2ZlZWRJdGVtcyA9IG5ldyBNYXA8c3RyaW5nLCBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmVhdHVyZT4+PigpO1xuICBmZWVkSXRlbXMoZmVlZElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PEZlYXR1cmU+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZlZWRJdGVtcy5nZXQoZmVlZElkKS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGZldGNoQWxsRmVlZHMoKTogT2JzZXJ2YWJsZTxBcnJheTxGZWVkPj4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8RmVlZD4+KCcvYXBpL2ZlZWRzLycpO1xuICB9XG5cbiAgZmV0Y2hGZWVkKGZlZWRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGZWVkRXhwYW5kZWQ+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEZlZWRFeHBhbmRlZD4oYC9hcGkvZmVlZHMvJHtmZWVkSWR9YCk7XG4gIH1cblxuICBmZXRjaFNlcnZpY2Uoc2VydmljZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlcnZpY2U+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PFNlcnZpY2U+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfWApO1xuICB9XG5cbiAgY3JlYXRlU2VydmljZShzZXJ2aWNlOiB7IHRpdGxlOiBzdHJpbmcsIHN1bW1hcnk/OiBzdHJpbmcsIHNlcnZpY2VUeXBlOiBzdHJpbmcsIGNvbmZpZzogYW55fSk6IE9ic2VydmFibGU8U2VydmljZT4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5wb3N0PFNlcnZpY2U+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzYCwgc2VydmljZSk7XG4gIH1cblxuICBmZXRjaFNlcnZpY2VzKCk6IE9ic2VydmFibGU8QXJyYXk8U2VydmljZT4+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PFNlcnZpY2U+PihgL2FwaS9mZWVkcy9zZXJ2aWNlc2ApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlRmVlZHMoc2VydmljZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PEZlZWQ+PiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxBcnJheTxGZWVkPj4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L2ZlZWRzYCk7XG4gIH1cblxuICBmZXRjaFNlcnZpY2VUeXBlKHNlcnZpY2VUeXBlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8U2VydmljZVR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PFNlcnZpY2VUeXBlPihgL2FwaS9mZWVkcy9zZXJ2aWNlX3R5cGVzLyR7c2VydmljZVR5cGVJZH1gKTtcbiAgfVxuXG4gIGZldGNoVG9waWNzKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxGZWVkVG9waWM+PiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxBcnJheTxGZWVkVG9waWM+PihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vdG9waWNzYCk7XG4gIH1cblxuICBwcmV2aWV3RmVlZChzZXJ2aWNlSWQ6IHN0cmluZywgdG9waWNJZDogc3RyaW5nLCBmZWVkU3BlYzogUGFydGlhbDxPbWl0PEZlZWRQb3N0LCAnc2VydmljZScgfCAndG9waWMnPj4sIG9wdHM/OiBGZWVkUHJldmlld09wdGlvbnMpOiBPYnNlcnZhYmxlPEZlZWRQcmV2aWV3PiB7XG4gICAgb3B0cyA9IG9wdHMgfHwge31cbiAgICBjb25zdCBza2lwQ29udGVudEZldGNoOiBib29sZWFuID0gb3B0cy5za2lwQ29udGVudEZldGNoID09PSB0cnVlXG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LnBvc3Q8RmVlZFByZXZpZXc+KFxuICAgICAgYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L3RvcGljcy8ke3RvcGljSWR9L2ZlZWRfcHJldmlldz9za2lwX2NvbnRlbnRfZmV0Y2g9JHtza2lwQ29udGVudEZldGNofWAsXG4gICAgICB7IGZlZWQ6IGZlZWRTcGVjIH0pO1xuICB9XG5cbiAgZmV0Y2hUb3BpYyhzZXJ2aWNlSWQ6IHN0cmluZywgdG9waWNJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGZWVkVG9waWM+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEZlZWRUb3BpYz4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L3RvcGljcy8ke3RvcGljSWR9YCk7XG4gIH1cblxuICBmZXRjaFNlcnZpY2VUeXBlcygpOiBPYnNlcnZhYmxlPEFycmF5PFNlcnZpY2VUeXBlPj4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8U2VydmljZVR5cGU+PihgL2FwaS9mZWVkcy9zZXJ2aWNlX3R5cGVzYCk7XG4gIH1cblxuICBjcmVhdGVGZWVkKHNlcnZpY2VJZDogc3RyaW5nLCB0b3BpY0lkOiBzdHJpbmcsIGZlZWRDb25maWd1cmF0aW9uOiBhbnkpOiBPYnNlcnZhYmxlPEZlZWRFeHBhbmRlZD4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5wb3N0PEZlZWRFeHBhbmRlZD4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L3RvcGljcy8ke3RvcGljSWR9L2ZlZWRzYCwgZmVlZENvbmZpZ3VyYXRpb24pO1xuICB9XG5cbiAgdXBkYXRlRmVlZChmZWVkOiBQYXJ0aWFsPE9taXQ8RmVlZFBvc3QsICdpZCc+PiAmIFBpY2s8RmVlZCwgJ2lkJz4pOiBPYnNlcnZhYmxlPEZlZWRFeHBhbmRlZD4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5wdXQ8RmVlZEV4cGFuZGVkPihgL2FwaS9mZWVkcy8ke2ZlZWQuaWR9YCwgZmVlZCk7XG4gIH1cblxuICBkZWxldGVGZWVkKGZlZWQ6IEZlZWQgfCBGZWVkRXhwYW5kZWQpOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmRlbGV0ZShgL2FwaS9mZWVkcy8ke2ZlZWQuaWR9YCwge3Jlc3BvbnNlVHlwZTogJ3RleHQnfSk7XG4gIH1cblxuICBkZWxldGVTZXJ2aWNlKHNlcnZpY2U6IFNlcnZpY2UpOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgY29uc29sZS5sb2coJ2RlbGV0ZScpXG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmRlbGV0ZShgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2UuaWR9YCwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gIGZldGNoRmVlZHMoZXZlbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcnJheTxGZWVkPj4ge1xuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxBcnJheTxGZWVkPj4oKTtcbiAgICB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8RmVlZD4+KGAvYXBpL2V2ZW50cy8ke2V2ZW50SWR9L2ZlZWRzYCkuc3Vic2NyaWJlKGZlZWRzID0+IHtcbiAgICAgIGZlZWRzLm1hcChmZWVkID0+IHtcbiAgICAgICAgZmVlZC5pZCA9IGZlZWQuaWQudG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIGZlZWQ7XG4gICAgICB9KTtcblxuICAgICAgZmVlZHMuZm9yRWFjaChmZWVkID0+IHtcbiAgICAgICAgbGV0IGZlZWRJdGVtcyA9IHRoaXMuX2ZlZWRJdGVtcy5nZXQoZmVlZC5pZCk7XG4gICAgICAgIGlmICghZmVlZEl0ZW1zKSB7XG4gICAgICAgICAgZmVlZEl0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGZWF0dXJlPj4oW10pO1xuICAgICAgICAgIHRoaXMuX2ZlZWRJdGVtcy5zZXQoZmVlZC5pZCwgZmVlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgc3ViamVjdC5uZXh0KGZlZWRzKTtcbiAgICAgIHRoaXMuX2ZlZWRzLm5leHQoZmVlZHMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YmplY3Q7XG4gIH1cblxuICBmZXRjaEZlZWRJdGVtcyhldmVudDogYW55LCBmZWVkOiBGZWVkKTogT2JzZXJ2YWJsZTxGZWVkQ29udGVudD4ge1xuICAgIGNvbnN0IGZlZWRJdGVtcyA9IHRoaXMuX2ZlZWRJdGVtcy5nZXQoZmVlZC5pZClcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucG9zdDxGZWVkQ29udGVudD4oYC9hcGkvZXZlbnRzLyR7ZXZlbnQuaWR9L2ZlZWRzLyR7ZmVlZC5pZH0vY29udGVudGAsIHt9KS5waXBlKFxuICAgICAgbWFwKGNvbnRlbnQgPT4ge1xuICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGNvbnRlbnQuaXRlbXMuZmVhdHVyZXNcbiAgICAgICAgZmVhdHVyZXMuZm9yRWFjaCgoZmVhdHVyZTogU3R5bGVkRmVhdHVyZSkgPT4ge1xuICAgICAgICAgIGZlYXR1cmUuaWQgPSBTdHJpbmcoZmVhdHVyZS5pZClcbiAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMgPSBmZWF0dXJlLnByb3BlcnRpZXMgfHwge31cbiAgICAgICAgfSlcbiAgICAgICAgZmVlZEl0ZW1zLm5leHQoZmVhdHVyZXMpXG4gICAgICAgIHJldHVybiBjb250ZW50XG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvZmVlZC9mZWVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQVdwQyxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFvQixTQUFxQjtRQUFyQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBRXpDLDJFQUEyRTtRQUNuRSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDN0MsV0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFckMsZUFBVSxHQUFHLElBQUksR0FBRyxFQUEyQyxDQUFDO0lBTjNCLENBQUM7SUFPOUMsU0FBUyxDQUFDLE1BQWM7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWUsY0FBYyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBVSx1QkFBdUIsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQTZFO1FB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RUFBRSxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUFBO1lBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN4QixPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs7c0VBbEhVLFdBQVc7aUVBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTt1RkFFUCxXQUFXO2NBSHZCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEZlZWQsIEZlZWRDb250ZW50LCBGZWVkRXhwYW5kZWQsIEZlZWRQb3N0LCBGZWVkUHJldmlldywgRmVlZFRvcGljLCBTZXJ2aWNlLCBTZXJ2aWNlVHlwZSwgU3R5bGVkRmVhdHVyZSB9IGZyb20gJy4vZmVlZC5tb2RlbCdcblxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRQcmV2aWV3T3B0aW9ucyB7XG4gIHNraXBDb250ZW50RmV0Y2g/OiBib29sZWFuXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdlYkNsaWVudDogSHR0cENsaWVudCkgeyB9XG5cbiAgLy8gVE9ETzogdGhlcmUgaXMgcHJvYmFibHkgYSBiZXR0ZXIgc29sdXRpb24gdGhhbiBtYWludGFpbmluZyB0aGlzIG1hcCBoZXJlXG4gIHByaXZhdGUgX2ZlZWRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGZWVkPj4oW10pO1xuICByZWFkb25seSBmZWVkcyQgPSB0aGlzLl9mZWVkcy5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIF9mZWVkSXRlbXMgPSBuZXcgTWFwPHN0cmluZywgQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZlYXR1cmU+Pj4oKTtcbiAgZmVlZEl0ZW1zKGZlZWRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxGZWF0dXJlPj4ge1xuICAgIHJldHVybiB0aGlzLl9mZWVkSXRlbXMuZ2V0KGZlZWRJZCkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBmZXRjaEFsbEZlZWRzKCk6IE9ic2VydmFibGU8QXJyYXk8RmVlZD4+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PEZlZWQ+PignL2FwaS9mZWVkcy8nKTtcbiAgfVxuXG4gIGZldGNoRmVlZChmZWVkSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmVlZEV4cGFuZGVkPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxGZWVkRXhwYW5kZWQ+KGAvYXBpL2ZlZWRzLyR7ZmVlZElkfWApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxTZXJ2aWNlPihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH1gKTtcbiAgfVxuXG4gIGNyZWF0ZVNlcnZpY2Uoc2VydmljZTogeyB0aXRsZTogc3RyaW5nLCBzdW1tYXJ5Pzogc3RyaW5nLCBzZXJ2aWNlVHlwZTogc3RyaW5nLCBjb25maWc6IGFueX0pOiBPYnNlcnZhYmxlPFNlcnZpY2U+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucG9zdDxTZXJ2aWNlPihgL2FwaS9mZWVkcy9zZXJ2aWNlc2AsIHNlcnZpY2UpO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlcygpOiBPYnNlcnZhYmxlPEFycmF5PFNlcnZpY2U+PiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxBcnJheTxTZXJ2aWNlPj4oYC9hcGkvZmVlZHMvc2VydmljZXNgKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZUZlZWRzKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxGZWVkPj4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8RmVlZD4+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS9mZWVkc2ApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlVHlwZShzZXJ2aWNlVHlwZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlcnZpY2VUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxTZXJ2aWNlVHlwZT4oYC9hcGkvZmVlZHMvc2VydmljZV90eXBlcy8ke3NlcnZpY2VUeXBlSWR9YCk7XG4gIH1cblxuICBmZXRjaFRvcGljcyhzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RmVlZFRvcGljPj4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8RmVlZFRvcGljPj4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L3RvcGljc2ApO1xuICB9XG5cbiAgcHJldmlld0ZlZWQoc2VydmljZUlkOiBzdHJpbmcsIHRvcGljSWQ6IHN0cmluZywgZmVlZFNwZWM6IFBhcnRpYWw8T21pdDxGZWVkUG9zdCwgJ3NlcnZpY2UnIHwgJ3RvcGljJz4+LCBvcHRzPzogRmVlZFByZXZpZXdPcHRpb25zKTogT2JzZXJ2YWJsZTxGZWVkUHJldmlldz4ge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9XG4gICAgY29uc3Qgc2tpcENvbnRlbnRGZXRjaDogYm9vbGVhbiA9IG9wdHMuc2tpcENvbnRlbnRGZXRjaCA9PT0gdHJ1ZVxuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5wb3N0PEZlZWRQcmV2aWV3PihcbiAgICAgIGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS90b3BpY3MvJHt0b3BpY0lkfS9mZWVkX3ByZXZpZXc/c2tpcF9jb250ZW50X2ZldGNoPSR7c2tpcENvbnRlbnRGZXRjaH1gLFxuICAgICAgeyBmZWVkOiBmZWVkU3BlYyB9KTtcbiAgfVxuXG4gIGZldGNoVG9waWMoc2VydmljZUlkOiBzdHJpbmcsIHRvcGljSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmVlZFRvcGljPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxGZWVkVG9waWM+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS90b3BpY3MvJHt0b3BpY0lkfWApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlVHlwZXMoKTogT2JzZXJ2YWJsZTxBcnJheTxTZXJ2aWNlVHlwZT4+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PFNlcnZpY2VUeXBlPj4oYC9hcGkvZmVlZHMvc2VydmljZV90eXBlc2ApO1xuICB9XG5cbiAgY3JlYXRlRmVlZChzZXJ2aWNlSWQ6IHN0cmluZywgdG9waWNJZDogc3RyaW5nLCBmZWVkQ29uZmlndXJhdGlvbjogYW55KTogT2JzZXJ2YWJsZTxGZWVkRXhwYW5kZWQ+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucG9zdDxGZWVkRXhwYW5kZWQ+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS90b3BpY3MvJHt0b3BpY0lkfS9mZWVkc2AsIGZlZWRDb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHVwZGF0ZUZlZWQoZmVlZDogUGFydGlhbDxPbWl0PEZlZWRQb3N0LCAnaWQnPj4gJiBQaWNrPEZlZWQsICdpZCc+KTogT2JzZXJ2YWJsZTxGZWVkRXhwYW5kZWQ+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucHV0PEZlZWRFeHBhbmRlZD4oYC9hcGkvZmVlZHMvJHtmZWVkLmlkfWAsIGZlZWQpO1xuICB9XG5cbiAgZGVsZXRlRmVlZChmZWVkOiBGZWVkIHwgRmVlZEV4cGFuZGVkKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5kZWxldGUoYC9hcGkvZmVlZHMvJHtmZWVkLmlkfWAsIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pO1xuICB9XG5cbiAgZGVsZXRlU2VydmljZShzZXJ2aWNlOiBTZXJ2aWNlKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIGNvbnNvbGUubG9nKCdkZWxldGUnKVxuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5kZWxldGUoYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlLmlkfWAsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSk7XG4gIH1cblxuICBmZXRjaEZlZWRzKGV2ZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXJyYXk8RmVlZD4+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QXJyYXk8RmVlZD4+KCk7XG4gICAgdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PEZlZWQ+PihgL2FwaS9ldmVudHMvJHtldmVudElkfS9mZWVkc2ApLnN1YnNjcmliZShmZWVkcyA9PiB7XG4gICAgICBmZWVkcy5tYXAoZmVlZCA9PiB7XG4gICAgICAgIGZlZWQuaWQgPSBmZWVkLmlkLnRvU3RyaW5nKCk7XG4gICAgICAgIHJldHVybiBmZWVkO1xuICAgICAgfSk7XG5cbiAgICAgIGZlZWRzLmZvckVhY2goZmVlZCA9PiB7XG4gICAgICAgIGxldCBmZWVkSXRlbXMgPSB0aGlzLl9mZWVkSXRlbXMuZ2V0KGZlZWQuaWQpO1xuICAgICAgICBpZiAoIWZlZWRJdGVtcykge1xuICAgICAgICAgIGZlZWRJdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmVhdHVyZT4+KFtdKTtcbiAgICAgICAgICB0aGlzLl9mZWVkSXRlbXMuc2V0KGZlZWQuaWQsIGZlZWRJdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHN1YmplY3QubmV4dChmZWVkcyk7XG4gICAgICB0aGlzLl9mZWVkcy5uZXh0KGZlZWRzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJqZWN0O1xuICB9XG5cbiAgZmV0Y2hGZWVkSXRlbXMoZXZlbnQ6IGFueSwgZmVlZDogRmVlZCk6IE9ic2VydmFibGU8RmVlZENvbnRlbnQ+IHtcbiAgICBjb25zdCBmZWVkSXRlbXMgPSB0aGlzLl9mZWVkSXRlbXMuZ2V0KGZlZWQuaWQpXG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LnBvc3Q8RmVlZENvbnRlbnQ+KGAvYXBpL2V2ZW50cy8ke2V2ZW50LmlkfS9mZWVkcy8ke2ZlZWQuaWR9L2NvbnRlbnRgLCB7fSkucGlwZShcbiAgICAgIG1hcChjb250ZW50ID0+IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBjb250ZW50Lml0ZW1zLmZlYXR1cmVzXG4gICAgICAgIGZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmU6IFN0eWxlZEZlYXR1cmUpID0+IHtcbiAgICAgICAgICBmZWF0dXJlLmlkID0gU3RyaW5nKGZlYXR1cmUuaWQpXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzID0gZmVhdHVyZS5wcm9wZXJ0aWVzIHx8IHt9XG4gICAgICAgIH0pXG4gICAgICAgIGZlZWRJdGVtcy5uZXh0KGZlYXR1cmVzKVxuICAgICAgICByZXR1cm4gY29udGVudFxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtbGliL3VzZXIvdXNlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFRoaXMgdHlwZSByZXByZXNlbnRzIGEgTUFHRSB1c2VyIGFjY291bnQuICBUaGlzIGlzIGEgYmFzZSB0eXBlIHRoYXQgZGVmaW5lc1xuICogdGhlIHByb3BlcnRpZXMgb2YgYSBwZXJzaXN0ZWQgdXNlciB0aGF0IHRoZSBzZXJ2ZXIgcmV0dXJucyBmcm9tIGEgcmVhZFxuICogb3BlcmF0aW9uLCBsaWtlIGEgdXNlciBxdWVyeS4gIFRoaXMgdHlwZSBkb2VzIG5vdCBuZWNlc3NhcmlseSByZWZsZWN0IHRoZVxuICogcHJvcGVydGllcyB0aGUgY2xpZW50IHdvdWxkIHNlbmQgdG8gdGhlIHNlcnZlciBBUEkgZm9yIG11dGF0aW9uIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBJRCBvZiB0aGUgdXNlciBhY2NvdW50XG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBVbmlxdWUgbmFtZSBmb3IgdGhpcyB1c2VyIGFjY291bnRcbiAgICovXG4gIHVzZXJuYW1lOiBzdHJpbmdcbiAgZGlzcGxheU5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogV2hldGhlciBhbiBhZG1pbiBoYXMgYWN0aXZhdGVkIHRoaXMgdXNlciBhY2NvdW50IGFmdGVyIGluaXRpYWwgc2lnbi11cFxuICAgKi9cbiAgYWN0aXZlOiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYWNjb3VudCBpcyBlbmFibGVkIG9yIGRpYWJsZWQsIHR5cGljYWxseSBieSB0aGUgbWFudWFsIGFjdGlvblxuICAgKiBvZiBhbiBhZG1pbmlzdHJhdG9yXG4gICAqL1xuICBlbmFibGVkOiBib29sZWFuXG4gIC8qKlxuICAgKiBUaGUgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvciB0aGlzIHVzZXIgYWNjb3VudFxuICAgKi9cbiAgYXV0aGVudGljYXRpb246IGFueVxuICAvKipcbiAgICogSVNPLTg2MDEgZGF0ZSBzdHJpbmdcbiAgICovXG4gIGNyZWF0ZWRBdDogc3RyaW5nXG4gIC8qKlxuICAgKiBJU08tODYwMSBkYXRlIHN0cmluZ1xuICAgKi9cbiAgbGFzdFVwZGF0ZWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGF1dGhvcml6YXRpb24gcm9sZSBvZiB0aGlzIHVzZXIgYWNjb3VudCB0aGF0IGRlZmluZXMgdGhlIGFjdGlvbnMgdGhpc1xuICAgKiB1c2VyIGFjY291bnQgaGFzIHBlcm1pc3Npb24gdG8gcGVyZm9ybVxuICAgKi9cbiAgcm9sZUlkOiBzdHJpbmdcbiAgZW1haWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgaW1hZ2UgdGhhdCBpZGVudGlmaWVzIHRoaXMgdXNlciBhY2NvdW50IGluIHRoZSB1c2VyIGZlZWQsIGV0Yy47XG4gICAqIGEgcHJvZmlsZSBwaWN0dXJlXG4gICAqL1xuICBhdmF0YXJVcmw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIE1hcCBtYXJrZXIgaWNvbiBpbmZvXG4gICAqL1xuICBpY29uPzogVXNlckljb25cbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgbWFwIG1hcmtlciBpY29uIGltYWdlXG4gICAqL1xuICBpY29uVXJsPzogc3RyaW5nXG4gIHBob25lczogVXNlclBob25lW11cbiAgLyoqXG4gICAqIExpc3Qgb2YgZXZlbnRzIGluIHdoaWNoIHRoaXMgdXNlciBhY2NvdW50IGhhcyBwYXJ0aWNpcGF0ZWRcbiAgICovXG4gIHJlY2VudEV2ZW50SWRzOiBudW1iZXJbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQaG9uZSB7XG4gIHR5cGU6IHN0cmluZ1xuICBudW1iZXI6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJY29uIHtcbiAgLyoqXG4gICAqIEhleCBjb2xvciBzdHJpbmcgYmVnaW5uaW5nIHdpdGggYCNgXG4gICAqL1xuICBjb2xvcjogc3RyaW5nXG4gIC8qKlxuICAgKiBBIHN0YW5kYXJkIG1lZGlhIHR5cGUsIGUuZy4sIGBpbWFnZS9wbmdgXG4gICAqL1xuICBjb250ZW50VHlwZTogc3RyaW5nXG4gIC8qKlxuICAgKiBTaXplIGluIGJ5dGVzIG9mIHRoZSBpY29uIGltYWdlXG4gICAqL1xuICBzaXplOiBudW1iZXJcbiAgdGV4dDogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIHR5cGUgb2YgdGhlIGljb25cbiAgICovXG4gIHR5cGU6ICdjcmVhdGUnIHwgJ3VwbG9hZCcgfCAnbm9uZSdcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtbGliL3VzZXIvdXNlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFRoaXMgdHlwZSByZXByZXNlbnRzIGEgTUFHRSB1c2VyIGFjY291bnQuICBUaGlzIGlzIGEgYmFzZSB0eXBlIHRoYXQgZGVmaW5lc1xuICogdGhlIHByb3BlcnRpZXMgb2YgYSBwZXJzaXN0ZWQgdXNlciB0aGF0IHRoZSBzZXJ2ZXIgcmV0dXJucyBmcm9tIGEgcmVhZFxuICogb3BlcmF0aW9uLCBsaWtlIGEgdXNlciBxdWVyeS4gIFRoaXMgdHlwZSBkb2VzIG5vdCBuZWNlc3NhcmlseSByZWZsZWN0IHRoZVxuICogcHJvcGVydGllcyB0aGUgY2xpZW50IHdvdWxkIHNlbmQgdG8gdGhlIHNlcnZlciBBUEkgZm9yIG11dGF0aW9uIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBJRCBvZiB0aGUgdXNlciBhY2NvdW50XG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBVbmlxdWUgbmFtZSBmb3IgdGhpcyB1c2VyIGFjY291bnRcbiAgICovXG4gIHVzZXJuYW1lOiBzdHJpbmdcbiAgZGlzcGxheU5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogV2hldGhlciBhbiBhZG1pbiBoYXMgYWN0aXZhdGVkIHRoaXMgdXNlciBhY2NvdW50IGFmdGVyIGluaXRpYWwgc2lnbi11cFxuICAgKi9cbiAgYWN0aXZlOiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYWNjb3VudCBpcyBlbmFibGVkIG9yIGRpYWJsZWQsIHR5cGljYWxseSBieSB0aGUgbWFudWFsIGFjdGlvblxuICAgKiBvZiBhbiBhZG1pbmlzdHJhdG9yXG4gICAqL1xuICBlbmFibGVkOiBib29sZWFuXG4gIC8qKlxuICAgKiBUaGUgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvciB0aGlzIHVzZXIgYWNjb3VudFxuICAgKi9cbiAgYXV0aGVudGljYXRpb246IGFueVxuICAvKipcbiAgICogSVNPLTg2MDEgZGF0ZSBzdHJpbmdcbiAgICovXG4gIGNyZWF0ZWRBdDogc3RyaW5nXG4gIC8qKlxuICAgKiBJU08tODYwMSBkYXRlIHN0cmluZ1xuICAgKi9cbiAgbGFzdFVwZGF0ZWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGF1dGhvcml6YXRpb24gcm9sZSBvZiB0aGlzIHVzZXIgYWNjb3VudCB0aGF0IGRlZmluZXMgdGhlIGFjdGlvbnMgdGhpc1xuICAgKiB1c2VyIGFjY291bnQgaGFzIHBlcm1pc3Npb24gdG8gcGVyZm9ybVxuICAgKi9cbiAgcm9sZTogc3RyaW5nXG4gIGVtYWlsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIGltYWdlIHRoYXQgaWRlbnRpZmllcyB0aGlzIHVzZXIgYWNjb3VudCBpbiB0aGUgdXNlciBmZWVkLCBldGMuO1xuICAgKiBhIHByb2ZpbGUgcGljdHVyZVxuICAgKi9cbiAgYXZhdGFyVXJsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBNYXAgbWFya2VyIGljb24gaW5mb1xuICAgKi9cbiAgaWNvbj86IFVzZXJJY29uXG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIG1hcCBtYXJrZXIgaWNvbiBpbWFnZVxuICAgKi9cbiAgaWNvblVybD86IHN0cmluZ1xuICBwaG9uZXM6IFVzZXJQaG9uZVtdXG4gIC8qKlxuICAgKiBMaXN0IG9mIGV2ZW50cyBpbiB3aGljaCB0aGlzIHVzZXIgYWNjb3VudCBoYXMgcGFydGljaXBhdGVkXG4gICAqL1xuICByZWNlbnRFdmVudElkczogbnVtYmVyW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGhvbmUge1xuICB0eXBlOiBzdHJpbmdcbiAgbnVtYmVyOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VySWNvbiB7XG4gIC8qKlxuICAgKiBIZXggY29sb3Igc3RyaW5nIGJlZ2lubmluZyB3aXRoIGAjYFxuICAgKi9cbiAgY29sb3I6IHN0cmluZ1xuICAvKipcbiAgICogQSBzdGFuZGFyZCBtZWRpYSB0eXBlLCBlLmcuLCBgaW1hZ2UvcG5nYFxuICAgKi9cbiAgY29udGVudFR5cGU6IHN0cmluZ1xuICAvKipcbiAgICogU2l6ZSBpbiBieXRlcyBvZiB0aGUgaWNvbiBpbWFnZVxuICAgKi9cbiAgc2l6ZTogbnVtYmVyXG4gIHRleHQ6IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHNvdXJjZSB0eXBlIG9mIHRoZSBpY29uXG4gICAqL1xuICB0eXBlOiAnY3JlYXRlJyB8ICd1cGxvYWQnIHwgJ25vbmUnXG59XG4iXX0=
@@ -10,7 +10,7 @@ export declare class FeedService {
10
10
  private webClient;
11
11
  constructor(webClient: HttpClient);
12
12
  private _feeds;
13
- readonly feeds: Observable<Feed[]>;
13
+ readonly feeds$: Observable<Feed[]>;
14
14
  private _feedItems;
15
15
  feedItems(feedId: string): Observable<Array<Feature>>;
16
16
  fetchAllFeeds(): Observable<Array<Feed>>;
@@ -1 +1 @@
1
- {"version":3,"file":"feed.service.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/feed/feed.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAmB,UAAU,EAAW,MAAM,MAAM,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAiB,MAAM,cAAc,CAAA;;AAGrI,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,qBAGa,WAAW;IAEV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAGzC,OAAO,CAAC,MAAM,CAAwC;IACtD,QAAQ,CAAC,KAAK,qBAA8B;IAE5C,OAAO,CAAC,UAAU,CAAsD;IACxE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAIrD,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAIxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC;IAInD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAIpD,aAAa,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAC,GAAG,UAAU,CAAC,OAAO,CAAC;IAIjH,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAI3C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAI7D,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAI5D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC,WAAW,CAAC;IAQ3J,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;IAIrE,iBAAiB,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAInD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC;IAIhG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC;IAI5F,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;IAIrD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC;IAK/C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAuBpD,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC;yCArGpD,WAAW;6CAAX,WAAW;CAmHvB"}
1
+ {"version":3,"file":"feed.service.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/feed/feed.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAmB,UAAU,EAAW,MAAM,MAAM,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAiB,MAAM,cAAc,CAAA;;AAGrI,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,qBAGa,WAAW;IAEV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAGzC,OAAO,CAAC,MAAM,CAAwC;IACtD,QAAQ,CAAC,MAAM,qBAA8B;IAE7C,OAAO,CAAC,UAAU,CAAsD;IACxE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAIrD,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAIxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC;IAInD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAIpD,aAAa,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAC,GAAG,UAAU,CAAC,OAAO,CAAC;IAIjH,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAI3C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAI7D,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAI5D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC,WAAW,CAAC;IAQ3J,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;IAIrE,iBAAiB,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAInD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC;IAIhG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC;IAI5F,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;IAIrD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC;IAK/C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAuBpD,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC;yCArGpD,WAAW;6CAAX,WAAW;CAmHvB"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Component, Inject, Input, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common/http';
4
4
  import * as i2 from '@angular/platform-browser';
5
- import { BrowserModule } from '@angular/platform-browser';
5
+ import { CommonModule } from '@angular/common';
6
6
 
7
7
  const selector = 'mage-xhr-img';
8
8
  const OBJECT_URL_SERVICE = new InjectionToken(`${selector}.objectUrlService`);
@@ -115,13 +115,13 @@ class MageCommonModule {
115
115
  }
116
116
  MageCommonModule.ɵfac = function MageCommonModule_Factory(t) { return new (t || MageCommonModule)(); };
117
117
  MageCommonModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MageCommonModule });
118
- MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [BrowserModule] });
118
+ MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] });
119
119
  (function () {
120
120
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MageCommonModule, [{
121
121
  type: NgModule,
122
122
  args: [{
123
123
  imports: [
124
- BrowserModule
124
+ CommonModule
125
125
  ],
126
126
  declarations: [
127
127
  XhrImgComponent
@@ -132,7 +132,7 @@ MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Browser
132
132
  }]
133
133
  }], null, null);
134
134
  })();
135
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [BrowserModule], exports: [XhrImgComponent] }); })();
135
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [CommonModule], exports: [XhrImgComponent] }); })();
136
136
 
137
137
  /**
138
138
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngageoint-mage.web-core-lib-common.mjs","sources":["../../../projects/core-lib/common/xhr-img.component.ts","../../../projects/core-lib/common/mage-common.module.ts","../../../projects/core-lib/common/ngageoint-mage.web-core-lib-common.ts"],"sourcesContent":["import { Component, Inject, InjectionToken, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser'\nimport { Subscription } from 'rxjs'\n\nconst selector = 'mage-xhr-img'\n\n/**\n * This is a simple interface that includes the [methods](https://www.w3.org/TR/FileAPI/#creating-revoking)\n * from the [URL API](https://developer.mozilla.org/en-US/docs/Web/API/URL) for\n * managing blob URLs. This allows a service to be injected into\n * `XhrImgComponent` and overridden for testing.\n */\nexport interface ObjectUrlService {\n createObjectURL: (typeof URL)['createObjectURL']\n revokeObjectURL: (typeof URL)['revokeObjectURL']\n}\nexport const OBJECT_URL_SERVICE = new InjectionToken<ObjectUrlService>(`${selector}.objectUrlService`)\n\n/**\n * This component allows fetching images by `XMLHttpRequest` rather than the\n * browser's native mechanism. These image requests are subject to HTTP\n * interceptors that can add authorization headers to the request instead of\n * using cache-defeating URL query parameters to set an auth token. Applying\n * headers to the browser's native `img` requests is impossible, so a query\n * parameter is necessary for authorization, but adding the parameter to the\n * URL effectively bypasses the browser's caching mechanism when the auth token\n * changes for images that\n * should otherwise be subject to caching.\n *\n * The catch to fetching images by XHR is the response must be fetched as a\n * `Blob`. The user then gets a browser-specific URL for the blob by\n * `URL.createObjectURL(blob)`, which can then be assigned to the `src`\n * attribute of an `img` tag. These blob URLs must then be \"revoked\" by\n * `URL.revokeObjectURL(url)` in order to reclaim object URL's associated\n * resources. See [Mozilla's docs](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications#example_using_object_urls_to_display_images)\n * on the subject.\n *\n * To use the component, simply add the tag to a template and bind the `src`\n * attribute to the source URL of the desired image.\n * ```\n * <mage-xhr-img [src]=\"someComponent.imageUrlRequiresAuth\"></mage-xhr-img>\n * ```\n * The component encapsulates the logic of creating and releasing the object\n * URLs for the image data, preventing memory leaks.\n */\n@Component({\n selector: `${selector}`,\n template: `<img [attr.src]=\"safeBlobUrl\" (load)=\"onImgLoad()\"/>`,\n styles: [ `img { height: 100%; width: 100% }` ],\n providers: [\n {\n provide: OBJECT_URL_SERVICE,\n useValue: URL\n }\n ]\n})\nexport class XhrImgComponent implements OnChanges, OnDestroy {\n\n @Input('src')\n sourceUrl: string | null = null\n safeBlobUrl: SafeUrl | null = null\n\n private blobUrl: string\n private subscription: Subscription\n\n constructor(@Inject(OBJECT_URL_SERVICE) private objectUrlService: ObjectUrlService, private webClient: HttpClient, private sanitizer: DomSanitizer) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.sourceUrl) {\n return\n }\n if (changes.sourceUrl.isFirstChange() && !this.sourceUrl) {\n return\n }\n this.disposeCurrent()\n if (!this.sourceUrl) {\n return\n }\n this.subscription = this.webClient.get(this.sourceUrl, { responseType: 'blob' })\n .subscribe(x => {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n this.blobUrl = this.objectUrlService.createObjectURL(x)\n this.safeBlobUrl = this.sanitizer.bypassSecurityTrustUrl(this.blobUrl)\n })\n }\n\n ngOnDestroy(): void {\n this.disposeCurrent()\n }\n\n onImgLoad(): void {\n this.disposeCurrent()\n }\n\n private disposeCurrent(): void {\n if (this.blobUrl) {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n }\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.blobUrl = null\n }\n}","import { NgModule } from '@angular/core'\nimport { BrowserModule } from '@angular/platform-browser'\nimport { XhrImgComponent } from './xhr-img.component'\n\n@NgModule({\n imports: [\n BrowserModule\n ],\n declarations: [\n XhrImgComponent\n ],\n exports: [\n XhrImgComponent\n ]\n})\nexport class MageCommonModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngageoint-mage.web-core-lib-common.mjs","sources":["../../../projects/core-lib/common/xhr-img.component.ts","../../../projects/core-lib/common/mage-common.module.ts","../../../projects/core-lib/common/ngageoint-mage.web-core-lib-common.ts"],"sourcesContent":["import { Component, Inject, InjectionToken, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser'\nimport { Subscription } from 'rxjs'\n\nconst selector = 'mage-xhr-img'\n\n/**\n * This is a simple interface that includes the [methods](https://www.w3.org/TR/FileAPI/#creating-revoking)\n * from the [URL API](https://developer.mozilla.org/en-US/docs/Web/API/URL) for\n * managing blob URLs. This allows a service to be injected into\n * `XhrImgComponent` and overridden for testing.\n */\nexport interface ObjectUrlService {\n createObjectURL: (typeof URL)['createObjectURL']\n revokeObjectURL: (typeof URL)['revokeObjectURL']\n}\nexport const OBJECT_URL_SERVICE = new InjectionToken<ObjectUrlService>(`${selector}.objectUrlService`)\n\n/**\n * This component allows fetching images by `XMLHttpRequest` rather than the\n * browser's native mechanism. These image requests are subject to HTTP\n * interceptors that can add authorization headers to the request instead of\n * using cache-defeating URL query parameters to set an auth token. Applying\n * headers to the browser's native `img` requests is impossible, so a query\n * parameter is necessary for authorization, but adding the parameter to the\n * URL effectively bypasses the browser's caching mechanism when the auth token\n * changes for images that\n * should otherwise be subject to caching.\n *\n * The catch to fetching images by XHR is the response must be fetched as a\n * `Blob`. The user then gets a browser-specific URL for the blob by\n * `URL.createObjectURL(blob)`, which can then be assigned to the `src`\n * attribute of an `img` tag. These blob URLs must then be \"revoked\" by\n * `URL.revokeObjectURL(url)` in order to reclaim object URL's associated\n * resources. See [Mozilla's docs](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications#example_using_object_urls_to_display_images)\n * on the subject.\n *\n * To use the component, simply add the tag to a template and bind the `src`\n * attribute to the source URL of the desired image.\n * ```\n * <mage-xhr-img [src]=\"someComponent.imageUrlRequiresAuth\"></mage-xhr-img>\n * ```\n * The component encapsulates the logic of creating and releasing the object\n * URLs for the image data, preventing memory leaks.\n */\n@Component({\n selector: `${selector}`,\n template: `<img [attr.src]=\"safeBlobUrl\" (load)=\"onImgLoad()\"/>`,\n styles: [ `img { height: 100%; width: 100% }` ],\n providers: [\n {\n provide: OBJECT_URL_SERVICE,\n useValue: URL\n }\n ]\n})\nexport class XhrImgComponent implements OnChanges, OnDestroy {\n\n @Input('src')\n sourceUrl: string | null = null\n safeBlobUrl: SafeUrl | null = null\n\n private blobUrl: string\n private subscription: Subscription\n\n constructor(@Inject(OBJECT_URL_SERVICE) private objectUrlService: ObjectUrlService, private webClient: HttpClient, private sanitizer: DomSanitizer) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.sourceUrl) {\n return\n }\n if (changes.sourceUrl.isFirstChange() && !this.sourceUrl) {\n return\n }\n this.disposeCurrent()\n if (!this.sourceUrl) {\n return\n }\n this.subscription = this.webClient.get(this.sourceUrl, { responseType: 'blob' })\n .subscribe(x => {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n this.blobUrl = this.objectUrlService.createObjectURL(x)\n this.safeBlobUrl = this.sanitizer.bypassSecurityTrustUrl(this.blobUrl)\n })\n }\n\n ngOnDestroy(): void {\n this.disposeCurrent()\n }\n\n onImgLoad(): void {\n this.disposeCurrent()\n }\n\n private disposeCurrent(): void {\n if (this.blobUrl) {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n }\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.blobUrl = null\n }\n}","import { NgModule } from '@angular/core'\nimport { XhrImgComponent } from './xhr-img.component'\nimport { CommonModule } from '@angular/common'\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n XhrImgComponent\n ],\n exports: [\n XhrImgComponent\n ]\n})\nexport class MageCommonModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ class FeedService {
9
9
  this.webClient = webClient;
10
10
  // TODO: there is probably a better solution than maintaining this map here
11
11
  this._feeds = new BehaviorSubject([]);
12
- this.feeds = this._feeds.asObservable();
12
+ this.feeds$ = this._feeds.asObservable();
13
13
  this._feedItems = new Map();
14
14
  }
15
15
  feedItems(feedId) {
@@ -1 +1 @@
1
- {"version":3,"file":"ngageoint-mage.web-core-lib-feed.mjs","sources":["../../../projects/core-lib/feed/feed.service.ts","../../../projects/core-lib/feed/ngageoint-mage.web-core-lib-feed.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Feature } from 'geojson'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Feed, FeedContent, FeedExpanded, FeedPost, FeedPreview, FeedTopic, Service, ServiceType, StyledFeature } from './feed.model'\n\n\nexport interface FeedPreviewOptions {\n skipContentFetch?: boolean\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeedService {\n\n constructor(private webClient: HttpClient) { }\n\n // TODO: there is probably a better solution than maintaining this map here\n private _feeds = new BehaviorSubject<Array<Feed>>([]);\n readonly feeds = this._feeds.asObservable();\n\n private _feedItems = new Map<string, BehaviorSubject<Array<Feature>>>();\n feedItems(feedId: string): Observable<Array<Feature>> {\n return this._feedItems.get(feedId).asObservable();\n }\n\n fetchAllFeeds(): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>('/api/feeds/');\n }\n\n fetchFeed(feedId: string): Observable<FeedExpanded> {\n return this.webClient.get<FeedExpanded>(`/api/feeds/${feedId}`);\n }\n\n fetchService(serviceId: string): Observable<Service> {\n return this.webClient.get<Service>(`/api/feeds/services/${serviceId}`);\n }\n\n createService(service: { title: string, summary?: string, serviceType: string, config: any}): Observable<Service> {\n return this.webClient.post<Service>(`/api/feeds/services`, service);\n }\n\n fetchServices(): Observable<Array<Service>> {\n return this.webClient.get<Array<Service>>(`/api/feeds/services`);\n }\n\n fetchServiceFeeds(serviceId: string): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>(`/api/feeds/services/${serviceId}/feeds`);\n }\n\n fetchServiceType(serviceTypeId: string): Observable<ServiceType> {\n return this.webClient.get<ServiceType>(`/api/feeds/service_types/${serviceTypeId}`);\n }\n\n fetchTopics(serviceId: string): Observable<Array<FeedTopic>> {\n return this.webClient.get<Array<FeedTopic>>(`/api/feeds/services/${serviceId}/topics`);\n }\n\n previewFeed(serviceId: string, topicId: string, feedSpec: Partial<Omit<FeedPost, 'service' | 'topic'>>, opts?: FeedPreviewOptions): Observable<FeedPreview> {\n opts = opts || {}\n const skipContentFetch: boolean = opts.skipContentFetch === true\n return this.webClient.post<FeedPreview>(\n `/api/feeds/services/${serviceId}/topics/${topicId}/feed_preview?skip_content_fetch=${skipContentFetch}`,\n { feed: feedSpec });\n }\n\n fetchTopic(serviceId: string, topicId: string): Observable<FeedTopic> {\n return this.webClient.get<FeedTopic>(`/api/feeds/services/${serviceId}/topics/${topicId}`);\n }\n\n fetchServiceTypes(): Observable<Array<ServiceType>> {\n return this.webClient.get<Array<ServiceType>>(`/api/feeds/service_types`);\n }\n\n createFeed(serviceId: string, topicId: string, feedConfiguration: any): Observable<FeedExpanded> {\n return this.webClient.post<FeedExpanded>(`/api/feeds/services/${serviceId}/topics/${topicId}/feeds`, feedConfiguration);\n }\n\n updateFeed(feed: Partial<Omit<FeedPost, 'id'>> & Pick<Feed, 'id'>): Observable<FeedExpanded> {\n return this.webClient.put<FeedExpanded>(`/api/feeds/${feed.id}`, feed);\n }\n\n deleteFeed(feed: Feed | FeedExpanded): Observable<{}> {\n return this.webClient.delete(`/api/feeds/${feed.id}`, {responseType: 'text'});\n }\n\n deleteService(service: Service): Observable<{}> {\n console.log('delete')\n return this.webClient.delete(`/api/feeds/services/${service.id}`, { responseType: 'text' });\n }\n\n fetchFeeds(eventId: number): Observable<Array<Feed>> {\n const subject = new Subject<Array<Feed>>();\n this.webClient.get<Array<Feed>>(`/api/events/${eventId}/feeds`).subscribe(feeds => {\n feeds.map(feed => {\n feed.id = feed.id.toString();\n return feed;\n });\n\n feeds.forEach(feed => {\n let feedItems = this._feedItems.get(feed.id);\n if (!feedItems) {\n feedItems = new BehaviorSubject<Array<Feature>>([]);\n this._feedItems.set(feed.id, feedItems);\n }\n })\n\n subject.next(feeds);\n this._feeds.next(feeds);\n });\n\n return subject;\n }\n\n fetchFeedItems(event: any, feed: Feed): Observable<FeedContent> {\n const feedItems = this._feedItems.get(feed.id)\n return this.webClient.post<FeedContent>(`/api/events/${event.id}/feeds/${feed.id}/content`, {}).pipe(\n map(content => {\n const features = content.items.features\n features.forEach((feature: StyledFeature) => {\n feature.id = String(feature.id)\n feature.properties = feature.properties || {}\n })\n feedItems.next(features)\n return content\n })\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngageoint-mage.web-core-lib-feed.mjs","sources":["../../../projects/core-lib/feed/feed.service.ts","../../../projects/core-lib/feed/ngageoint-mage.web-core-lib-feed.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Feature } from 'geojson'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Feed, FeedContent, FeedExpanded, FeedPost, FeedPreview, FeedTopic, Service, ServiceType, StyledFeature } from './feed.model'\n\n\nexport interface FeedPreviewOptions {\n skipContentFetch?: boolean\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeedService {\n\n constructor(private webClient: HttpClient) { }\n\n // TODO: there is probably a better solution than maintaining this map here\n private _feeds = new BehaviorSubject<Array<Feed>>([]);\n readonly feeds$ = this._feeds.asObservable();\n\n private _feedItems = new Map<string, BehaviorSubject<Array<Feature>>>();\n feedItems(feedId: string): Observable<Array<Feature>> {\n return this._feedItems.get(feedId).asObservable();\n }\n\n fetchAllFeeds(): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>('/api/feeds/');\n }\n\n fetchFeed(feedId: string): Observable<FeedExpanded> {\n return this.webClient.get<FeedExpanded>(`/api/feeds/${feedId}`);\n }\n\n fetchService(serviceId: string): Observable<Service> {\n return this.webClient.get<Service>(`/api/feeds/services/${serviceId}`);\n }\n\n createService(service: { title: string, summary?: string, serviceType: string, config: any}): Observable<Service> {\n return this.webClient.post<Service>(`/api/feeds/services`, service);\n }\n\n fetchServices(): Observable<Array<Service>> {\n return this.webClient.get<Array<Service>>(`/api/feeds/services`);\n }\n\n fetchServiceFeeds(serviceId: string): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>(`/api/feeds/services/${serviceId}/feeds`);\n }\n\n fetchServiceType(serviceTypeId: string): Observable<ServiceType> {\n return this.webClient.get<ServiceType>(`/api/feeds/service_types/${serviceTypeId}`);\n }\n\n fetchTopics(serviceId: string): Observable<Array<FeedTopic>> {\n return this.webClient.get<Array<FeedTopic>>(`/api/feeds/services/${serviceId}/topics`);\n }\n\n previewFeed(serviceId: string, topicId: string, feedSpec: Partial<Omit<FeedPost, 'service' | 'topic'>>, opts?: FeedPreviewOptions): Observable<FeedPreview> {\n opts = opts || {}\n const skipContentFetch: boolean = opts.skipContentFetch === true\n return this.webClient.post<FeedPreview>(\n `/api/feeds/services/${serviceId}/topics/${topicId}/feed_preview?skip_content_fetch=${skipContentFetch}`,\n { feed: feedSpec });\n }\n\n fetchTopic(serviceId: string, topicId: string): Observable<FeedTopic> {\n return this.webClient.get<FeedTopic>(`/api/feeds/services/${serviceId}/topics/${topicId}`);\n }\n\n fetchServiceTypes(): Observable<Array<ServiceType>> {\n return this.webClient.get<Array<ServiceType>>(`/api/feeds/service_types`);\n }\n\n createFeed(serviceId: string, topicId: string, feedConfiguration: any): Observable<FeedExpanded> {\n return this.webClient.post<FeedExpanded>(`/api/feeds/services/${serviceId}/topics/${topicId}/feeds`, feedConfiguration);\n }\n\n updateFeed(feed: Partial<Omit<FeedPost, 'id'>> & Pick<Feed, 'id'>): Observable<FeedExpanded> {\n return this.webClient.put<FeedExpanded>(`/api/feeds/${feed.id}`, feed);\n }\n\n deleteFeed(feed: Feed | FeedExpanded): Observable<{}> {\n return this.webClient.delete(`/api/feeds/${feed.id}`, {responseType: 'text'});\n }\n\n deleteService(service: Service): Observable<{}> {\n console.log('delete')\n return this.webClient.delete(`/api/feeds/services/${service.id}`, { responseType: 'text' });\n }\n\n fetchFeeds(eventId: number): Observable<Array<Feed>> {\n const subject = new Subject<Array<Feed>>();\n this.webClient.get<Array<Feed>>(`/api/events/${eventId}/feeds`).subscribe(feeds => {\n feeds.map(feed => {\n feed.id = feed.id.toString();\n return feed;\n });\n\n feeds.forEach(feed => {\n let feedItems = this._feedItems.get(feed.id);\n if (!feedItems) {\n feedItems = new BehaviorSubject<Array<Feature>>([]);\n this._feedItems.set(feed.id, feedItems);\n }\n })\n\n subject.next(feeds);\n this._feeds.next(feeds);\n });\n\n return subject;\n }\n\n fetchFeedItems(event: any, feed: Feed): Observable<FeedContent> {\n const feedItems = this._feedItems.get(feed.id)\n return this.webClient.post<FeedContent>(`/api/events/${event.id}/feeds/${feed.id}/content`, {}).pipe(\n map(content => {\n const features = content.items.features\n features.forEach((feature: StyledFeature) => {\n feature.id = String(feature.id)\n feature.properties = feature.properties || {}\n })\n feedItems.next(features)\n return content\n })\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Component, Inject, Input, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common/http';
4
4
  import * as i2 from '@angular/platform-browser';
5
- import { BrowserModule } from '@angular/platform-browser';
5
+ import { CommonModule } from '@angular/common';
6
6
 
7
7
  const selector = 'mage-xhr-img';
8
8
  const OBJECT_URL_SERVICE = new InjectionToken(`${selector}.objectUrlService`);
@@ -108,12 +108,12 @@ class MageCommonModule {
108
108
  }
109
109
  MageCommonModule.ɵfac = function MageCommonModule_Factory(t) { return new (t || MageCommonModule)(); };
110
110
  MageCommonModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MageCommonModule });
111
- MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [BrowserModule] });
111
+ MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] });
112
112
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MageCommonModule, [{
113
113
  type: NgModule,
114
114
  args: [{
115
115
  imports: [
116
- BrowserModule
116
+ CommonModule
117
117
  ],
118
118
  declarations: [
119
119
  XhrImgComponent
@@ -123,7 +123,7 @@ MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Browser
123
123
  ]
124
124
  }]
125
125
  }], null, null); })();
126
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [BrowserModule], exports: [XhrImgComponent] }); })();
126
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [CommonModule], exports: [XhrImgComponent] }); })();
127
127
 
128
128
  /**
129
129
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngageoint-mage.web-core-lib-common.mjs","sources":["../../../projects/core-lib/common/xhr-img.component.ts","../../../projects/core-lib/common/mage-common.module.ts","../../../projects/core-lib/common/ngageoint-mage.web-core-lib-common.ts"],"sourcesContent":["import { Component, Inject, InjectionToken, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser'\nimport { Subscription } from 'rxjs'\n\nconst selector = 'mage-xhr-img'\n\n/**\n * This is a simple interface that includes the [methods](https://www.w3.org/TR/FileAPI/#creating-revoking)\n * from the [URL API](https://developer.mozilla.org/en-US/docs/Web/API/URL) for\n * managing blob URLs. This allows a service to be injected into\n * `XhrImgComponent` and overridden for testing.\n */\nexport interface ObjectUrlService {\n createObjectURL: (typeof URL)['createObjectURL']\n revokeObjectURL: (typeof URL)['revokeObjectURL']\n}\nexport const OBJECT_URL_SERVICE = new InjectionToken<ObjectUrlService>(`${selector}.objectUrlService`)\n\n/**\n * This component allows fetching images by `XMLHttpRequest` rather than the\n * browser's native mechanism. These image requests are subject to HTTP\n * interceptors that can add authorization headers to the request instead of\n * using cache-defeating URL query parameters to set an auth token. Applying\n * headers to the browser's native `img` requests is impossible, so a query\n * parameter is necessary for authorization, but adding the parameter to the\n * URL effectively bypasses the browser's caching mechanism when the auth token\n * changes for images that\n * should otherwise be subject to caching.\n *\n * The catch to fetching images by XHR is the response must be fetched as a\n * `Blob`. The user then gets a browser-specific URL for the blob by\n * `URL.createObjectURL(blob)`, which can then be assigned to the `src`\n * attribute of an `img` tag. These blob URLs must then be \"revoked\" by\n * `URL.revokeObjectURL(url)` in order to reclaim object URL's associated\n * resources. See [Mozilla's docs](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications#example_using_object_urls_to_display_images)\n * on the subject.\n *\n * To use the component, simply add the tag to a template and bind the `src`\n * attribute to the source URL of the desired image.\n * ```\n * <mage-xhr-img [src]=\"someComponent.imageUrlRequiresAuth\"></mage-xhr-img>\n * ```\n * The component encapsulates the logic of creating and releasing the object\n * URLs for the image data, preventing memory leaks.\n */\n@Component({\n selector: `${selector}`,\n template: `<img [attr.src]=\"safeBlobUrl\" (load)=\"onImgLoad()\"/>`,\n styles: [ `img { height: 100%; width: 100% }` ],\n providers: [\n {\n provide: OBJECT_URL_SERVICE,\n useValue: URL\n }\n ]\n})\nexport class XhrImgComponent implements OnChanges, OnDestroy {\n\n @Input('src')\n sourceUrl: string | null = null\n safeBlobUrl: SafeUrl | null = null\n\n private blobUrl: string\n private subscription: Subscription\n\n constructor(@Inject(OBJECT_URL_SERVICE) private objectUrlService: ObjectUrlService, private webClient: HttpClient, private sanitizer: DomSanitizer) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.sourceUrl) {\n return\n }\n if (changes.sourceUrl.isFirstChange() && !this.sourceUrl) {\n return\n }\n this.disposeCurrent()\n if (!this.sourceUrl) {\n return\n }\n this.subscription = this.webClient.get(this.sourceUrl, { responseType: 'blob' })\n .subscribe(x => {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n this.blobUrl = this.objectUrlService.createObjectURL(x)\n this.safeBlobUrl = this.sanitizer.bypassSecurityTrustUrl(this.blobUrl)\n })\n }\n\n ngOnDestroy(): void {\n this.disposeCurrent()\n }\n\n onImgLoad(): void {\n this.disposeCurrent()\n }\n\n private disposeCurrent(): void {\n if (this.blobUrl) {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n }\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.blobUrl = null\n }\n}","import { NgModule } from '@angular/core'\nimport { BrowserModule } from '@angular/platform-browser'\nimport { XhrImgComponent } from './xhr-img.component'\n\n@NgModule({\n imports: [\n BrowserModule\n ],\n declarations: [\n XhrImgComponent\n ],\n exports: [\n XhrImgComponent\n ]\n})\nexport class MageCommonModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngageoint-mage.web-core-lib-common.mjs","sources":["../../../projects/core-lib/common/xhr-img.component.ts","../../../projects/core-lib/common/mage-common.module.ts","../../../projects/core-lib/common/ngageoint-mage.web-core-lib-common.ts"],"sourcesContent":["import { Component, Inject, InjectionToken, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser'\nimport { Subscription } from 'rxjs'\n\nconst selector = 'mage-xhr-img'\n\n/**\n * This is a simple interface that includes the [methods](https://www.w3.org/TR/FileAPI/#creating-revoking)\n * from the [URL API](https://developer.mozilla.org/en-US/docs/Web/API/URL) for\n * managing blob URLs. This allows a service to be injected into\n * `XhrImgComponent` and overridden for testing.\n */\nexport interface ObjectUrlService {\n createObjectURL: (typeof URL)['createObjectURL']\n revokeObjectURL: (typeof URL)['revokeObjectURL']\n}\nexport const OBJECT_URL_SERVICE = new InjectionToken<ObjectUrlService>(`${selector}.objectUrlService`)\n\n/**\n * This component allows fetching images by `XMLHttpRequest` rather than the\n * browser's native mechanism. These image requests are subject to HTTP\n * interceptors that can add authorization headers to the request instead of\n * using cache-defeating URL query parameters to set an auth token. Applying\n * headers to the browser's native `img` requests is impossible, so a query\n * parameter is necessary for authorization, but adding the parameter to the\n * URL effectively bypasses the browser's caching mechanism when the auth token\n * changes for images that\n * should otherwise be subject to caching.\n *\n * The catch to fetching images by XHR is the response must be fetched as a\n * `Blob`. The user then gets a browser-specific URL for the blob by\n * `URL.createObjectURL(blob)`, which can then be assigned to the `src`\n * attribute of an `img` tag. These blob URLs must then be \"revoked\" by\n * `URL.revokeObjectURL(url)` in order to reclaim object URL's associated\n * resources. See [Mozilla's docs](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications#example_using_object_urls_to_display_images)\n * on the subject.\n *\n * To use the component, simply add the tag to a template and bind the `src`\n * attribute to the source URL of the desired image.\n * ```\n * <mage-xhr-img [src]=\"someComponent.imageUrlRequiresAuth\"></mage-xhr-img>\n * ```\n * The component encapsulates the logic of creating and releasing the object\n * URLs for the image data, preventing memory leaks.\n */\n@Component({\n selector: `${selector}`,\n template: `<img [attr.src]=\"safeBlobUrl\" (load)=\"onImgLoad()\"/>`,\n styles: [ `img { height: 100%; width: 100% }` ],\n providers: [\n {\n provide: OBJECT_URL_SERVICE,\n useValue: URL\n }\n ]\n})\nexport class XhrImgComponent implements OnChanges, OnDestroy {\n\n @Input('src')\n sourceUrl: string | null = null\n safeBlobUrl: SafeUrl | null = null\n\n private blobUrl: string\n private subscription: Subscription\n\n constructor(@Inject(OBJECT_URL_SERVICE) private objectUrlService: ObjectUrlService, private webClient: HttpClient, private sanitizer: DomSanitizer) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.sourceUrl) {\n return\n }\n if (changes.sourceUrl.isFirstChange() && !this.sourceUrl) {\n return\n }\n this.disposeCurrent()\n if (!this.sourceUrl) {\n return\n }\n this.subscription = this.webClient.get(this.sourceUrl, { responseType: 'blob' })\n .subscribe(x => {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n this.blobUrl = this.objectUrlService.createObjectURL(x)\n this.safeBlobUrl = this.sanitizer.bypassSecurityTrustUrl(this.blobUrl)\n })\n }\n\n ngOnDestroy(): void {\n this.disposeCurrent()\n }\n\n onImgLoad(): void {\n this.disposeCurrent()\n }\n\n private disposeCurrent(): void {\n if (this.blobUrl) {\n this.objectUrlService.revokeObjectURL(this.blobUrl)\n }\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.blobUrl = null\n }\n}","import { NgModule } from '@angular/core'\nimport { XhrImgComponent } from './xhr-img.component'\nimport { CommonModule } from '@angular/common'\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n XhrImgComponent\n ],\n exports: [\n XhrImgComponent\n ]\n})\nexport class MageCommonModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ class FeedService {
9
9
  this.webClient = webClient;
10
10
  // TODO: there is probably a better solution than maintaining this map here
11
11
  this._feeds = new BehaviorSubject([]);
12
- this.feeds = this._feeds.asObservable();
12
+ this.feeds$ = this._feeds.asObservable();
13
13
  this._feedItems = new Map();
14
14
  }
15
15
  feedItems(feedId) {
@@ -1 +1 @@
1
- {"version":3,"file":"ngageoint-mage.web-core-lib-feed.mjs","sources":["../../../projects/core-lib/feed/feed.service.ts","../../../projects/core-lib/feed/ngageoint-mage.web-core-lib-feed.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Feature } from 'geojson'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Feed, FeedContent, FeedExpanded, FeedPost, FeedPreview, FeedTopic, Service, ServiceType, StyledFeature } from './feed.model'\n\n\nexport interface FeedPreviewOptions {\n skipContentFetch?: boolean\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeedService {\n\n constructor(private webClient: HttpClient) { }\n\n // TODO: there is probably a better solution than maintaining this map here\n private _feeds = new BehaviorSubject<Array<Feed>>([]);\n readonly feeds = this._feeds.asObservable();\n\n private _feedItems = new Map<string, BehaviorSubject<Array<Feature>>>();\n feedItems(feedId: string): Observable<Array<Feature>> {\n return this._feedItems.get(feedId).asObservable();\n }\n\n fetchAllFeeds(): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>('/api/feeds/');\n }\n\n fetchFeed(feedId: string): Observable<FeedExpanded> {\n return this.webClient.get<FeedExpanded>(`/api/feeds/${feedId}`);\n }\n\n fetchService(serviceId: string): Observable<Service> {\n return this.webClient.get<Service>(`/api/feeds/services/${serviceId}`);\n }\n\n createService(service: { title: string, summary?: string, serviceType: string, config: any}): Observable<Service> {\n return this.webClient.post<Service>(`/api/feeds/services`, service);\n }\n\n fetchServices(): Observable<Array<Service>> {\n return this.webClient.get<Array<Service>>(`/api/feeds/services`);\n }\n\n fetchServiceFeeds(serviceId: string): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>(`/api/feeds/services/${serviceId}/feeds`);\n }\n\n fetchServiceType(serviceTypeId: string): Observable<ServiceType> {\n return this.webClient.get<ServiceType>(`/api/feeds/service_types/${serviceTypeId}`);\n }\n\n fetchTopics(serviceId: string): Observable<Array<FeedTopic>> {\n return this.webClient.get<Array<FeedTopic>>(`/api/feeds/services/${serviceId}/topics`);\n }\n\n previewFeed(serviceId: string, topicId: string, feedSpec: Partial<Omit<FeedPost, 'service' | 'topic'>>, opts?: FeedPreviewOptions): Observable<FeedPreview> {\n opts = opts || {}\n const skipContentFetch: boolean = opts.skipContentFetch === true\n return this.webClient.post<FeedPreview>(\n `/api/feeds/services/${serviceId}/topics/${topicId}/feed_preview?skip_content_fetch=${skipContentFetch}`,\n { feed: feedSpec });\n }\n\n fetchTopic(serviceId: string, topicId: string): Observable<FeedTopic> {\n return this.webClient.get<FeedTopic>(`/api/feeds/services/${serviceId}/topics/${topicId}`);\n }\n\n fetchServiceTypes(): Observable<Array<ServiceType>> {\n return this.webClient.get<Array<ServiceType>>(`/api/feeds/service_types`);\n }\n\n createFeed(serviceId: string, topicId: string, feedConfiguration: any): Observable<FeedExpanded> {\n return this.webClient.post<FeedExpanded>(`/api/feeds/services/${serviceId}/topics/${topicId}/feeds`, feedConfiguration);\n }\n\n updateFeed(feed: Partial<Omit<FeedPost, 'id'>> & Pick<Feed, 'id'>): Observable<FeedExpanded> {\n return this.webClient.put<FeedExpanded>(`/api/feeds/${feed.id}`, feed);\n }\n\n deleteFeed(feed: Feed | FeedExpanded): Observable<{}> {\n return this.webClient.delete(`/api/feeds/${feed.id}`, {responseType: 'text'});\n }\n\n deleteService(service: Service): Observable<{}> {\n console.log('delete')\n return this.webClient.delete(`/api/feeds/services/${service.id}`, { responseType: 'text' });\n }\n\n fetchFeeds(eventId: number): Observable<Array<Feed>> {\n const subject = new Subject<Array<Feed>>();\n this.webClient.get<Array<Feed>>(`/api/events/${eventId}/feeds`).subscribe(feeds => {\n feeds.map(feed => {\n feed.id = feed.id.toString();\n return feed;\n });\n\n feeds.forEach(feed => {\n let feedItems = this._feedItems.get(feed.id);\n if (!feedItems) {\n feedItems = new BehaviorSubject<Array<Feature>>([]);\n this._feedItems.set(feed.id, feedItems);\n }\n })\n\n subject.next(feeds);\n this._feeds.next(feeds);\n });\n\n return subject;\n }\n\n fetchFeedItems(event: any, feed: Feed): Observable<FeedContent> {\n const feedItems = this._feedItems.get(feed.id)\n return this.webClient.post<FeedContent>(`/api/events/${event.id}/feeds/${feed.id}/content`, {}).pipe(\n map(content => {\n const features = content.items.features\n features.forEach((feature: StyledFeature) => {\n feature.id = String(feature.id)\n feature.properties = feature.properties || {}\n })\n feedItems.next(features)\n return content\n })\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAea,WAAW,CAAA;AAEtB,IAAA,WAAA,CAAoB,SAAqB,EAAA;QAArB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;;AAGjC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAc,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAEpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,GAAG,EAA2C,CAAC;KAN1B;AAO9C,IAAA,SAAS,CAAC,MAAc,EAAA;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;KACnD;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,aAAa,CAAC,CAAC;KACvD;AAED,IAAA,SAAS,CAAC,MAAc,EAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAe,CAAc,WAAA,EAAA,MAAM,CAAE,CAAA,CAAC,CAAC;KACjE;AAED,IAAA,YAAY,CAAC,SAAiB,EAAA;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAU,CAAuB,oBAAA,EAAA,SAAS,CAAE,CAAA,CAAC,CAAC;KACxE;AAED,IAAA,aAAa,CAAC,OAA6E,EAAA;QACzF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAU,CAAqB,mBAAA,CAAA,EAAE,OAAO,CAAC,CAAC;KACrE;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAiB,CAAA,mBAAA,CAAqB,CAAC,CAAC;KAClE;AAED,IAAA,iBAAiB,CAAC,SAAiB,EAAA;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,CAAuB,oBAAA,EAAA,SAAS,CAAQ,MAAA,CAAA,CAAC,CAAC;KAClF;AAED,IAAA,gBAAgB,CAAC,aAAqB,EAAA;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,CAA4B,yBAAA,EAAA,aAAa,CAAE,CAAA,CAAC,CAAC;KACrF;AAED,IAAA,WAAW,CAAC,SAAiB,EAAA;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAmB,CAAuB,oBAAA,EAAA,SAAS,CAAS,OAAA,CAAA,CAAC,CAAC;KACxF;AAED,IAAA,WAAW,CAAC,SAAiB,EAAE,OAAe,EAAE,QAAsD,EAAE,IAAyB,EAAA;AAC/H,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;AACjB,QAAA,MAAM,gBAAgB,GAAY,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAA;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,CAAA,oBAAA,EAAuB,SAAS,CAAW,QAAA,EAAA,OAAO,oCAAoC,gBAAgB,CAAA,CAAE,EACxG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;KACvB;IAED,UAAU,CAAC,SAAiB,EAAE,OAAe,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAY,CAAuB,oBAAA,EAAA,SAAS,CAAW,QAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;KAC5F;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAqB,CAAA,wBAAA,CAA0B,CAAC,CAAC;KAC3E;AAED,IAAA,UAAU,CAAC,SAAiB,EAAE,OAAe,EAAE,iBAAsB,EAAA;AACnE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAe,CAAA,oBAAA,EAAuB,SAAS,CAAA,QAAA,EAAW,OAAO,CAAA,MAAA,CAAQ,EAAE,iBAAiB,CAAC,CAAC;KACzH;AAED,IAAA,UAAU,CAAC,IAAsD,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAe,CAAA,WAAA,EAAc,IAAI,CAAC,EAAE,CAAA,CAAE,EAAE,IAAI,CAAC,CAAC;KACxE;AAED,IAAA,UAAU,CAAC,IAAyB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,CAAA,CAAE,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;KAC/E;AAED,IAAA,aAAa,CAAC,OAAgB,EAAA;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;KAC7F;AAED,IAAA,UAAU,CAAC,OAAe,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAe,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,CAAe,YAAA,EAAA,OAAO,CAAQ,MAAA,CAAA,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAChF,YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;gBACf,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC7B,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;AAEH,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACnB,gBAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,SAAS,EAAE;AACd,oBAAA,SAAS,GAAG,IAAI,eAAe,CAAiB,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACzC,iBAAA;AACH,aAAC,CAAC,CAAA;AAEF,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,cAAc,CAAC,KAAU,EAAE,IAAU,EAAA;AACnC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAc,CAAe,YAAA,EAAA,KAAK,CAAC,EAAE,CAAU,OAAA,EAAA,IAAI,CAAC,EAAE,CAAA,QAAA,CAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAClG,GAAG,CAAC,OAAO,IAAG;AACZ,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAA;AACvC,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAsB,KAAI;gBAC1C,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC/B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAA;AAC/C,aAAC,CAAC,CAAA;AACF,YAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACxB,YAAA,OAAO,OAAO,CAAA;SACf,CAAC,CACH,CAAA;KACF;;sEAlHU,WAAW,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,CAAA;iEAAX,WAAW,EAAA,OAAA,EAAX,WAAW,CAAA,IAAA,EAAA,UAAA,EAFV,MAAM,EAAA,CAAA,CAAA;uFAEP,WAAW,EAAA,CAAA;cAHvB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACdD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngageoint-mage.web-core-lib-feed.mjs","sources":["../../../projects/core-lib/feed/feed.service.ts","../../../projects/core-lib/feed/ngageoint-mage.web-core-lib-feed.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Feature } from 'geojson'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Feed, FeedContent, FeedExpanded, FeedPost, FeedPreview, FeedTopic, Service, ServiceType, StyledFeature } from './feed.model'\n\n\nexport interface FeedPreviewOptions {\n skipContentFetch?: boolean\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeedService {\n\n constructor(private webClient: HttpClient) { }\n\n // TODO: there is probably a better solution than maintaining this map here\n private _feeds = new BehaviorSubject<Array<Feed>>([]);\n readonly feeds$ = this._feeds.asObservable();\n\n private _feedItems = new Map<string, BehaviorSubject<Array<Feature>>>();\n feedItems(feedId: string): Observable<Array<Feature>> {\n return this._feedItems.get(feedId).asObservable();\n }\n\n fetchAllFeeds(): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>('/api/feeds/');\n }\n\n fetchFeed(feedId: string): Observable<FeedExpanded> {\n return this.webClient.get<FeedExpanded>(`/api/feeds/${feedId}`);\n }\n\n fetchService(serviceId: string): Observable<Service> {\n return this.webClient.get<Service>(`/api/feeds/services/${serviceId}`);\n }\n\n createService(service: { title: string, summary?: string, serviceType: string, config: any}): Observable<Service> {\n return this.webClient.post<Service>(`/api/feeds/services`, service);\n }\n\n fetchServices(): Observable<Array<Service>> {\n return this.webClient.get<Array<Service>>(`/api/feeds/services`);\n }\n\n fetchServiceFeeds(serviceId: string): Observable<Array<Feed>> {\n return this.webClient.get<Array<Feed>>(`/api/feeds/services/${serviceId}/feeds`);\n }\n\n fetchServiceType(serviceTypeId: string): Observable<ServiceType> {\n return this.webClient.get<ServiceType>(`/api/feeds/service_types/${serviceTypeId}`);\n }\n\n fetchTopics(serviceId: string): Observable<Array<FeedTopic>> {\n return this.webClient.get<Array<FeedTopic>>(`/api/feeds/services/${serviceId}/topics`);\n }\n\n previewFeed(serviceId: string, topicId: string, feedSpec: Partial<Omit<FeedPost, 'service' | 'topic'>>, opts?: FeedPreviewOptions): Observable<FeedPreview> {\n opts = opts || {}\n const skipContentFetch: boolean = opts.skipContentFetch === true\n return this.webClient.post<FeedPreview>(\n `/api/feeds/services/${serviceId}/topics/${topicId}/feed_preview?skip_content_fetch=${skipContentFetch}`,\n { feed: feedSpec });\n }\n\n fetchTopic(serviceId: string, topicId: string): Observable<FeedTopic> {\n return this.webClient.get<FeedTopic>(`/api/feeds/services/${serviceId}/topics/${topicId}`);\n }\n\n fetchServiceTypes(): Observable<Array<ServiceType>> {\n return this.webClient.get<Array<ServiceType>>(`/api/feeds/service_types`);\n }\n\n createFeed(serviceId: string, topicId: string, feedConfiguration: any): Observable<FeedExpanded> {\n return this.webClient.post<FeedExpanded>(`/api/feeds/services/${serviceId}/topics/${topicId}/feeds`, feedConfiguration);\n }\n\n updateFeed(feed: Partial<Omit<FeedPost, 'id'>> & Pick<Feed, 'id'>): Observable<FeedExpanded> {\n return this.webClient.put<FeedExpanded>(`/api/feeds/${feed.id}`, feed);\n }\n\n deleteFeed(feed: Feed | FeedExpanded): Observable<{}> {\n return this.webClient.delete(`/api/feeds/${feed.id}`, {responseType: 'text'});\n }\n\n deleteService(service: Service): Observable<{}> {\n console.log('delete')\n return this.webClient.delete(`/api/feeds/services/${service.id}`, { responseType: 'text' });\n }\n\n fetchFeeds(eventId: number): Observable<Array<Feed>> {\n const subject = new Subject<Array<Feed>>();\n this.webClient.get<Array<Feed>>(`/api/events/${eventId}/feeds`).subscribe(feeds => {\n feeds.map(feed => {\n feed.id = feed.id.toString();\n return feed;\n });\n\n feeds.forEach(feed => {\n let feedItems = this._feedItems.get(feed.id);\n if (!feedItems) {\n feedItems = new BehaviorSubject<Array<Feature>>([]);\n this._feedItems.set(feed.id, feedItems);\n }\n })\n\n subject.next(feeds);\n this._feeds.next(feeds);\n });\n\n return subject;\n }\n\n fetchFeedItems(event: any, feed: Feed): Observable<FeedContent> {\n const feedItems = this._feedItems.get(feed.id)\n return this.webClient.post<FeedContent>(`/api/events/${event.id}/feeds/${feed.id}/content`, {}).pipe(\n map(content => {\n const features = content.items.features\n features.forEach((feature: StyledFeature) => {\n feature.id = String(feature.id)\n feature.properties = feature.properties || {}\n })\n feedItems.next(features)\n return content\n })\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAea,WAAW,CAAA;AAEtB,IAAA,WAAA,CAAoB,SAAqB,EAAA;QAArB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;;AAGjC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAc,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAErC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,GAAG,EAA2C,CAAC;KAN1B;AAO9C,IAAA,SAAS,CAAC,MAAc,EAAA;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;KACnD;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,aAAa,CAAC,CAAC;KACvD;AAED,IAAA,SAAS,CAAC,MAAc,EAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAe,CAAc,WAAA,EAAA,MAAM,CAAE,CAAA,CAAC,CAAC;KACjE;AAED,IAAA,YAAY,CAAC,SAAiB,EAAA;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAU,CAAuB,oBAAA,EAAA,SAAS,CAAE,CAAA,CAAC,CAAC;KACxE;AAED,IAAA,aAAa,CAAC,OAA6E,EAAA;QACzF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAU,CAAqB,mBAAA,CAAA,EAAE,OAAO,CAAC,CAAC;KACrE;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAiB,CAAA,mBAAA,CAAqB,CAAC,CAAC;KAClE;AAED,IAAA,iBAAiB,CAAC,SAAiB,EAAA;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,CAAuB,oBAAA,EAAA,SAAS,CAAQ,MAAA,CAAA,CAAC,CAAC;KAClF;AAED,IAAA,gBAAgB,CAAC,aAAqB,EAAA;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,CAA4B,yBAAA,EAAA,aAAa,CAAE,CAAA,CAAC,CAAC;KACrF;AAED,IAAA,WAAW,CAAC,SAAiB,EAAA;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAmB,CAAuB,oBAAA,EAAA,SAAS,CAAS,OAAA,CAAA,CAAC,CAAC;KACxF;AAED,IAAA,WAAW,CAAC,SAAiB,EAAE,OAAe,EAAE,QAAsD,EAAE,IAAyB,EAAA;AAC/H,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;AACjB,QAAA,MAAM,gBAAgB,GAAY,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAA;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,CAAA,oBAAA,EAAuB,SAAS,CAAW,QAAA,EAAA,OAAO,oCAAoC,gBAAgB,CAAA,CAAE,EACxG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;KACvB;IAED,UAAU,CAAC,SAAiB,EAAE,OAAe,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAY,CAAuB,oBAAA,EAAA,SAAS,CAAW,QAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;KAC5F;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAqB,CAAA,wBAAA,CAA0B,CAAC,CAAC;KAC3E;AAED,IAAA,UAAU,CAAC,SAAiB,EAAE,OAAe,EAAE,iBAAsB,EAAA;AACnE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAe,CAAA,oBAAA,EAAuB,SAAS,CAAA,QAAA,EAAW,OAAO,CAAA,MAAA,CAAQ,EAAE,iBAAiB,CAAC,CAAC;KACzH;AAED,IAAA,UAAU,CAAC,IAAsD,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAe,CAAA,WAAA,EAAc,IAAI,CAAC,EAAE,CAAA,CAAE,EAAE,IAAI,CAAC,CAAC;KACxE;AAED,IAAA,UAAU,CAAC,IAAyB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,CAAA,CAAE,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;KAC/E;AAED,IAAA,aAAa,CAAC,OAAgB,EAAA;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;KAC7F;AAED,IAAA,UAAU,CAAC,OAAe,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAe,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAc,CAAe,YAAA,EAAA,OAAO,CAAQ,MAAA,CAAA,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAChF,YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;gBACf,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC7B,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;AAEH,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACnB,gBAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,SAAS,EAAE;AACd,oBAAA,SAAS,GAAG,IAAI,eAAe,CAAiB,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACzC,iBAAA;AACH,aAAC,CAAC,CAAA;AAEF,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,cAAc,CAAC,KAAU,EAAE,IAAU,EAAA;AACnC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAc,CAAe,YAAA,EAAA,KAAK,CAAC,EAAE,CAAU,OAAA,EAAA,IAAI,CAAC,EAAE,CAAA,QAAA,CAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAClG,GAAG,CAAC,OAAO,IAAG;AACZ,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAA;AACvC,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAsB,KAAI;gBAC1C,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC/B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAA;AAC/C,aAAC,CAAC,CAAA;AACF,YAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACxB,YAAA,OAAO,OAAO,CAAA;SACf,CAAC,CACH,CAAA;KACF;;sEAlHU,WAAW,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,CAAA;iEAAX,WAAW,EAAA,OAAA,EAAX,WAAW,CAAA,IAAA,EAAA,UAAA,EAFV,MAAM,EAAA,CAAA,CAAA;uFAEP,WAAW,EAAA,CAAA;cAHvB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACdD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngageoint/mage.web-core-lib",
3
- "version": "6.3.0-beta.6",
3
+ "version": "6.3.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ngageoint/mage-server.git"
@@ -81,27 +81,27 @@
81
81
  }
82
82
  },
83
83
  "peerDependencies": {
84
- "@angular/animations": "^14.2.12",
85
- "@angular/cdk": "^14.2.7",
86
- "@angular/common": "^14.2.12",
87
- "@angular/core": "^14.2.12",
88
- "@angular/forms": "^14.2.12",
89
- "@angular/material": "^14.2.7",
90
- "@angular/platform-browser": "^14.2.12",
84
+ "@angular/animations": "14.3.0",
85
+ "@angular/cdk": "14.2.7",
86
+ "@angular/common": "14.3.0",
87
+ "@angular/core": "14.3.0",
88
+ "@angular/forms": "14.3.0",
89
+ "@angular/material": "14.2.7",
90
+ "@angular/platform-browser": "14.3.0",
91
91
  "@ng-select/ng-select": "9.1.0",
92
- "@angular-devkit/architect": ">= 0.1400.0, < 0.1500.0",
93
- "@angular-devkit/build-angular": "^14.2.0",
94
- "@angular-devkit/core": "^14.2.0",
95
- "@angular-devkit/schematics": "^14.2.0",
96
- "@schematics/angular": "^14.2.0",
97
- "ng-packagr": "^14.2.0",
98
- "rollup": "^2.78.0"
92
+ "@angular-devkit/architect": "0.1400.0",
93
+ "@angular-devkit/build-angular": "14.2.13",
94
+ "@angular-devkit/core": "14.2.13",
95
+ "@angular-devkit/schematics": "14.2.0",
96
+ "@schematics/angular": "14.2.0",
97
+ "ng-packagr": "14.2.0",
98
+ "rollup": "2.78.0"
99
99
  },
100
100
  "dependencies": {
101
- "@rollup/plugin-commonjs": "^25.0.7",
102
- "@rollup/plugin-node-resolve": "^15.2.3",
103
- "rxjs": "^7.0.0",
104
- "tslib": "^2.0.0"
101
+ "@rollup/plugin-commonjs": "25.0.8",
102
+ "@rollup/plugin-node-resolve": "15.3.1",
103
+ "rxjs": "7.8.2",
104
+ "tslib": "2.8.1"
105
105
  },
106
106
  "module": "fesm2015/ngageoint-mage.web-core-lib.mjs",
107
107
  "es2020": "fesm2020/ngageoint-mage.web-core-lib.mjs",
@@ -39,7 +39,7 @@ export interface User {
39
39
  * The authorization role of this user account that defines the actions this
40
40
  * user account has permission to perform
41
41
  */
42
- roleId: string;
42
+ role: string;
43
43
  email?: string;
44
44
  /**
45
45
  * URL of the image that identifies this user account in the user feed, etc.;
@@ -1 +1 @@
1
- {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/user/user.model.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,MAAM,WAAW,IAAI;IAEnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,cAAc,EAAE,GAAG,CAAA;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;CACnC"}
1
+ {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/user/user.model.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,MAAM,WAAW,IAAI;IAEnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,cAAc,EAAE,GAAG,CAAA;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;CACnC"}