@hestia-earth/ui-components 0.24.0-5 → 0.24.0-6

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.
@@ -5,7 +5,7 @@ import { NodeType } from '@hestia-earth/schema';
5
5
  import { unique } from '@hestia-earth/utils';
6
6
  import { DataState } from '@hestia-earth/api';
7
7
  import { from } from 'rxjs';
8
- import { map, mergeMap, shareReplay, toArray } from 'rxjs/operators';
8
+ import { map, mergeMap, shareReplay } from 'rxjs/operators';
9
9
  import { termLocation, termLocationName } from '../../terms/terms.model';
10
10
  import { HE_MAP_LOADED, createMarker, polygonsFromFeature, polygonBounds, strokeStyle, polygonToMap } from '../../common/maps-utils';
11
11
  import { baseUrl } from '../../common/utils';
@@ -50,7 +50,6 @@ export class SitesMapsComponent {
50
50
  this._loadPolygonsRequests = {};
51
51
  this._mapReady = signal(false);
52
52
  this._loadPolygons = signal(true);
53
- this.termPolygons = signal([]);
54
53
  /**
55
54
  * Display Site directly without using the node store.
56
55
  */
@@ -64,18 +63,21 @@ export class SitesMapsComponent {
64
63
  this.originalSites = toSignal(this.nodeStoreService.findByState$(NodeType.Site, DataState.original));
65
64
  this.nodes = computed(() => [...(this._sites() || []), ...(this.originalSites() || [])]);
66
65
  this.markers = computed(() => this.nodes().map(siteMarker).filter(Boolean));
67
- this._polygons = computed(() => this.nodes().flatMap(sitePolygon).filter(Boolean));
68
- this.polygons = computed(() => this._polygons().map(polygon => polygonToMap(polygon)));
69
- this.showNoLocation = computed(() => this.markers().length === 0 && this.polygons().length === 0 && this.termPolygons().length === 0);
66
+ this._sitePolygons = computed(() => this.nodes().flatMap(sitePolygon).filter(Boolean));
67
+ this.sitePolygons = computed(() => this._sitePolygons().map(polygon => polygonToMap(polygon)));
68
+ this._termPolygons = signal([]);
69
+ this.termPolygons = computed(() => this._termPolygons().map(polygon => polygonToMap(polygon)));
70
+ this.showNoLocation = computed(() => this.markers().length === 0 && this.sitePolygons().length === 0 && this.termPolygons().length === 0);
70
71
  this.mapCenter = computed(() => this.markers()?.[0]?.position || defaultCenter);
71
72
  effect(() => {
72
- this.centerPolygons(this._polygons());
73
+ const polygons = this._sitePolygons()?.length ? this._sitePolygons() : this._termPolygons();
74
+ setTimeout(() => this.centerPolygons(polygons), 1000);
73
75
  });
74
76
  effect(() => {
75
77
  if (this._mapReady() && this._loadPolygons()) {
76
78
  from(regionIds(this.nodes()))
77
- .pipe(mergeMap(id => this.loadTermId(id)), mergeMap(feature => polygonsFromFeature(feature)), map(polygon => polygonToMap(polygon)), toArray())
78
- .subscribe(values => this.termPolygons.set(values));
79
+ .pipe(mergeMap(id => this.loadTermId(id)), map(feature => polygonsFromFeature(feature)))
80
+ .subscribe(values => this._termPolygons.set(values));
79
81
  }
80
82
  }, { allowSignalWrites: true });
81
83
  }
@@ -98,11 +100,11 @@ export class SitesMapsComponent {
98
100
  });
99
101
  }
100
102
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: SitesMapsComponent, deps: [{ token: HE_MAP_LOADED }, { token: i1.HeNodeService }, { token: i1.HeNodeStoreService }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: SitesMapsComponent, selector: "he-sites-maps", inputs: { loadPolygons: "loadPolygons", sites: "sites", center: "center", zoom: "zoom", showNotice: "showNotice" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }], ngImport: i0, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of polygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i3.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { kind: "directive", type: i3.MapPolygon, selector: "map-polygon", inputs: ["options", "paths"], outputs: ["polygonClick", "polygonDblclick", "polygonDrag", "polygonDragend", "polygonDragstart", "polygonMousedown", "polygonMousemove", "polygonMouseout", "polygonMouseover", "polygonMouseup", "polygonRightclick"], exportAs: ["mapPolygon"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: SitesMapsComponent, selector: "he-sites-maps", inputs: { loadPolygons: "loadPolygons", sites: "sites", center: "center", zoom: "zoom", showNotice: "showNotice" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }], ngImport: i0, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of sitePolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i3.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { kind: "directive", type: i3.MapPolygon, selector: "map-polygon", inputs: ["options", "paths"], outputs: ["polygonClick", "polygonDblclick", "polygonDrag", "polygonDragend", "polygonDragstart", "polygonMousedown", "polygonMousemove", "polygonMouseout", "polygonMouseover", "polygonMouseup", "polygonRightclick"], exportAs: ["mapPolygon"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
104
  }
103
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: SitesMapsComponent, decorators: [{
104
106
  type: Component,
105
- args: [{ selector: 'he-sites-maps', changeDetection: ChangeDetectionStrategy.OnPush, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of polygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"] }]
107
+ args: [{ selector: 'he-sites-maps', changeDetection: ChangeDetectionStrategy.OnPush, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of sitePolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"] }]
106
108
  }], ctorParameters: function () { return [{ type: i4.Observable, decorators: [{
107
109
  type: Inject,
108
110
  args: [HE_MAP_LOADED]
@@ -120,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
120
122
  }], showNotice: [{
121
123
  type: Input
122
124
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMtbWFwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2l0ZXMvc2l0ZXMtbWFwcy9zaXRlcy1tYXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zaXRlcy9zaXRlcy1tYXBzL3NpdGVzLW1hcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQXdELE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUNMLGFBQWEsRUFDYixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixXQUFXLEVBRVgsWUFBWSxFQUViLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUFRN0MsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxT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O3NCQURWLFNBQVM7dUJBQUMsU0FBUztnQkFLaEIsWUFBWTtzQkFEZixLQUFLO2dCQVlGLEtBQUs7c0JBRFIsS0FBSztnQkFPRixNQUFNO3NCQURULEtBQUs7Z0JBTUksSUFBSTtzQkFEYixLQUFLO2dCQUdJLFVBQVU7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbmplY3QsIHNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBHb29nbGVNYXAgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XG5pbXBvcnQgeyBOb2RlVHlwZSwgSVNpdGVKU09OTEQsIFNpdGUsIElPcmdhbmlzYXRpb25KU09OTEQsIE9yZ2FuaXNhdGlvbiB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEhlTm9kZVNlcnZpY2UsIEhlTm9kZVN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL25vZGUnO1xuaW1wb3J0IHsgdGVybUxvY2F0aW9uLCB0ZXJtTG9jYXRpb25OYW1lIH0gZnJvbSAnLi4vLi4vdGVybXMvdGVybXMubW9kZWwnO1xuaW1wb3J0IHtcbiAgSEVfTUFQX0xPQURFRCxcbiAgY3JlYXRlTWFya2VyLFxuICBwb2x5Z29uc0Zyb21GZWF0dXJlLFxuICBwb2x5Z29uQm91bmRzLFxuICBzdHJva2VTdHlsZSxcbiAgZmVhdHVyZSxcbiAgcG9seWdvblRvTWFwLFxuICBJUG9seWdvbk1hcFxufSBmcm9tICcuLi8uLi9jb21tb24vbWFwcy11dGlscyc7XG5pbXBvcnQgeyBiYXNlVXJsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuaW50ZXJmYWNlIElMb2FkaW5nUmVxdWVzdHMge1xuICBbaWQ6IHN0cmluZ106IE9ic2VydmFibGU8ZmVhdHVyZT47XG59XG5cbnR5cGUgc2l0ZSA9IElTaXRlSlNPTkxEIHwgU2l0ZSB8IElPcmdhbmlzYXRpb25KU09OTEQgfCBPcmdhbmlzYXRpb247XG5cbmNvbnN0IHNpdGVMb2NhdGlvbiA9ICh7IGxhdGl0dWRlLCBsb25naXR1ZGUgfTogc2l0ZSkgPT5cbiAgbGF0aXR1ZGUgJiYgbG9uZ2l0dWRlXG4gICAgPyB7XG4gICAgICAgIGxhdDogbGF0aXR1ZGUsXG4gICAgICAgIGxuZzogbG9uZ2l0dWRlXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IHNpdGVEZWZhdWx0TG9jYXRpb24gPSAoeyByZWdpb24sIGNvdW50cnkgfTogc2l0ZSkgPT4ge1xuICBjb25zdCBtYXJrZXJzID0gW1xuICAgIHJlZ2lvbiA/IGNyZWF0ZU1hcmtlcih0ZXJtTG9jYXRpb24ocmVnaW9uKSwgdGVybUxvY2F0aW9uTmFtZShyZWdpb24pLm5hbWUsIHVuZGVmaW5lZCwgMjApIDogdW5kZWZpbmVkLFxuICAgIGNvdW50cnkgPyBjcmVhdGVNYXJrZXIodGVybUxvY2F0aW9uKGNvdW50cnkpLCB0ZXJtTG9jYXRpb25OYW1lKGNvdW50cnkpLm5hbWUsIHVuZGVmaW5lZCwgNDApIDogdW5kZWZpbmVkXG4gIF0uZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gbWFya2Vycz8uWzBdO1xufTtcblxuY29uc3Qgc2l0ZU1hcmtlciA9IChzaXRlOiBzaXRlKSA9PlxuICBjcmVhdGVNYXJrZXIoc2l0ZSA/IHNpdGVMb2NhdGlvbihzaXRlKSA6IHVuZGVmaW5lZCwgc2l0ZS5uYW1lKSB8fCBzaXRlRGVmYXVsdExvY2F0aW9uKHNpdGUpO1xuXG5jb25zdCBzaXRlUG9seWdvbiA9ICh7IGJvdW5kYXJ5IH06IHNpdGUpID0+XG4gIChib3VuZGFyeSA/IHBvbHlnb25zRnJvbUZlYXR1cmUoYm91bmRhcnkgYXMgYW55LCAnIzREOEVDQicpIDogdW5kZWZpbmVkKSBhcyBnb29nbGUubWFwcy5Qb2x5Z29uW107XG5cbmNvbnN0IHJlZ2lvbklkcyA9IChzaXRlczogc2l0ZVtdKTogc3RyaW5nW10gPT5cbiAgdW5pcXVlKFxuICAgIChzaXRlcyB8fCBbXSlcbiAgICAgIC5tYXAoKHsgY291bnRyeSwgcmVnaW9uIH0pID0+IChyZWdpb24gPyByZWdpb25bJ0BpZCddIDogY291bnRyeSA/IGNvdW50cnlbJ0BpZCddIDogbnVsbCkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICk7XG5cbmNvbnN0IGRlZmF1bHRDZW50ZXI6IGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWwgPSB7IGxhdDogMCwgbG5nOiAwIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLXNpdGVzLW1hcHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2l0ZXMtbWFwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpdGVzLW1hcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2l0ZXNNYXBzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfbG9hZFBvbHlnb25zUmVxdWVzdHM6IElMb2FkaW5nUmVxdWVzdHMgPSB7fTtcbiAgcHJpdmF0ZSBfbWFwUmVhZHkgPSBzaWduYWwoZmFsc2UpO1xuXG4gIEBWaWV3Q2hpbGQoR29vZ2xlTWFwKVxuICBwcml2YXRlIG1hcD86IEdvb2dsZU1hcDtcblxuICBwcml2YXRlIF9sb2FkUG9seWdvbnMgPSBzaWduYWwodHJ1ZSk7XG4gIEBJbnB1dCgpXG4gIHNldCBsb2FkUG9seWdvbnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9sb2FkUG9seWdvbnMuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0ZXJtUG9seWdvbnMgPSBzaWduYWwoW10gYXMgSVBvbHlnb25NYXBbXSk7XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgU2l0ZSBkaXJlY3RseSB3aXRob3V0IHVzaW5nIHRoZSBub2RlIHN0b3JlLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2l0ZXMgPSBzaWduYWwoW10gYXMgc2l0ZVtdKTtcbiAgQElucHV0KClcbiAgc2V0IHNpdGVzKHZhbHVlOiBzaXRlW10pIHtcbiAgICB0aGlzLl9zaXRlcy5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2VudGVyID0gc2lnbmFsKGRlZmF1bHRDZW50ZXIpO1xuICBASW5wdXQoKVxuICBzZXQgY2VudGVyKHZhbHVlOiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsKSB7XG4gICAgdGhpcy5fY2VudGVyLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgem9vbSA9IDI7XG4gIEBJbnB1dCgpXG4gIHByb3RlY3RlZCBzaG93Tm90aWNlID0gdHJ1ZTtcblxuICBwcm90ZWN0ZWQgb3B0aW9uczogZ29vZ2xlLm1hcHMuTWFwT3B0aW9ucyA9IHtcbiAgICBzdHlsZXM6IFtdXG4gIH07XG5cbiAgcHJpdmF0ZSBvcmlnaW5hbFNpdGVzID0gdG9TaWduYWwodGhpcy5ub2RlU3RvcmVTZXJ2aWNlLmZpbmRCeVN0YXRlJDxJU2l0ZUpTT05MRD4oTm9kZVR5cGUuU2l0ZSwgRGF0YVN0YXRlLm9yaWdpbmFsKSk7XG4gIHByaXZhdGUgbm9kZXMgPSBjb21wdXRlZCgoKSA9PiBbLi4uKHRoaXMuX3NpdGVzKCkgfHwgW10pLCAuLi4odGhpcy5vcmlnaW5hbFNpdGVzKCkgfHwgW10pXSk7XG5cbiAgcHJvdGVjdGVkIG1hcmtlcnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vZGVzKCkubWFwKHNpdGVNYXJrZXIpLmZpbHRlcihCb29sZWFuKSk7XG5cbiAgcHJvdGVjdGVkIF9wb2x5Z29ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMubm9kZXMoKS5mbGF0TWFwKHNpdGVQb2x5Z29uKS5maWx0ZXIoQm9vbGVhbikpO1xuICBwcm90ZWN0ZWQgcG9seWdvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9wb2x5Z29ucygpLm1hcChwb2x5Z29uID0+IHBvbHlnb25Ub01hcChwb2x5Z29uKSkpO1xuXG4gIHByb3RlY3RlZCBzaG93Tm9Mb2NhdGlvbiA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMubWFya2VycygpLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnBvbHlnb25zKCkubGVuZ3RoID09PSAwICYmIHRoaXMudGVybVBvbHlnb25zKCkubGVuZ3RoID09PSAwXG4gICk7XG4gIHByb3RlY3RlZCBtYXBDZW50ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1hcmtlcnMoKT8uWzBdPy5wb3NpdGlvbiB8fCBkZWZhdWx0Q2VudGVyKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEhFX01BUF9MT0FERUQpIHByb3RlY3RlZCBtYXBMb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuICAgIHByaXZhdGUgbm9kZVNlcnZpY2U6IEhlTm9kZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub2RlU3RvcmVTZXJ2aWNlOiBIZU5vZGVTdG9yZVNlcnZpY2VcbiAgKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuY2VudGVyUG9seWdvbnModGhpcy5fcG9seWdvbnMoKSk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9tYXBSZWFkeSgpICYmIHRoaXMuX2xvYWRQb2x5Z29ucygpKSB7XG4gICAgICAgICAgZnJvbShyZWdpb25JZHModGhpcy5ub2RlcygpKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBtZXJnZU1hcChpZCA9PiB0aGlzLmxvYWRUZXJtSWQoaWQpKSxcbiAgICAgICAgICAgICAgbWVyZ2VNYXAoZmVhdHVyZSA9PiBwb2x5Z29uc0Zyb21GZWF0dXJlKGZlYXR1cmUpKSxcbiAgICAgICAgICAgICAgbWFwKHBvbHlnb24gPT4gcG9seWdvblRvTWFwKHBvbHlnb24pKSxcbiAgICAgICAgICAgICAgdG9BcnJheSgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlcyA9PiB0aGlzLnRlcm1Qb2x5Z29ucy5zZXQodmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjZW50ZXJQb2x5Z29ucyhwb2x5Z29uczogZ29vZ2xlLm1hcHMuUG9seWdvbltdKSB7XG4gICAgcmV0dXJuIHBvbHlnb25zPy5sZW5ndGggPyB0aGlzLm1hcCEuZ29vZ2xlTWFwIS5maXRCb3VuZHMocG9seWdvbkJvdW5kcyhwb2x5Z29ucykpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRlcm1JZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbG9hZFBvbHlnb25zUmVxdWVzdHNbaWRdID1cbiAgICAgIHRoaXMuX2xvYWRQb2x5Z29uc1JlcXVlc3RzW2lkXSB8fFxuICAgICAgdGhpcy5ub2RlU2VydmljZVxuICAgICAgICAuZG93bmxvYWRSYXckPGZlYXR1cmU+KGAke2Jhc2VVcmwoKX0vZ2FkbS8ke2lkfS5nZW9qc29uYClcbiAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSk7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRQb2x5Z29uc1JlcXVlc3RzW2lkXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXBMb2FkZWQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBsb2FkZWQgZGF0YSBhcyBnZW9qc29uXG4gICAgICB0aGlzLm1hcC5nb29nbGVNYXAuZGF0YS5zZXRTdHlsZSgoKSA9PiAoeyAuLi5zdHJva2VTdHlsZSwgc3Ryb2tlT3BhY2l0eTogMC4xIH0pKTtcbiAgICAgIHRoaXMuX21hcFJlYWR5LnNldCh0cnVlKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGdvb2dsZS1tYXBcbiAgKm5nSWY9XCJtYXBMb2FkZWQkIHwgYXN5bmNcIlxuICAobWFwSW5pdGlhbGl6ZWQpPVwibWFwTG9hZGVkKClcIlxuICBoZWlnaHQ9XCIxMDAlXCJcbiAgd2lkdGg9XCIxMDAlXCJcbiAgW3pvb21dPVwiem9vbVwiXG4gIFtjZW50ZXJdPVwibWFwQ2VudGVyKClcIj5cbiAgPG1hcC1tYXJrZXIgKm5nRm9yPVwibGV0IG1hcmtlciBvZiBtYXJrZXJzKClcIiBbcG9zaXRpb25dPVwibWFya2VyLnBvc2l0aW9uXCIgW2ljb25dPVwibWFya2VyLmljb25cIj48L21hcC1tYXJrZXI+XG4gIDxtYXAtcG9seWdvbiAqbmdGb3I9XCJsZXQgcG9seWdvbiBvZiBwb2x5Z29ucygpXCIgW3BhdGhzXT1cInBvbHlnb24ucGF0aHNcIiBbb3B0aW9uc109XCJwb2x5Z29uLm9wdGlvbnNcIiAvPlxuICA8bWFwLXBvbHlnb24gKm5nRm9yPVwibGV0IHBvbHlnb24gb2YgdGVybVBvbHlnb25zKClcIiBbcGF0aHNdPVwicG9seWdvbi5wYXRoc1wiIFtvcHRpb25zXT1cInBvbHlnb24ub3B0aW9uc1wiIC8+XG48L2dvb2dsZS1tYXA+XG5cbjxwICpuZ0lmPVwic2hvd05vdGljZVwiIGNsYXNzPVwibXQtMiBpcy1pdGFsaWMgaXMtc2l6ZS03XCI+VGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkIG1pZ2h0IG5vdCBiZSBjb21wbGV0ZTwvcD5cblxuPGRpdiBjbGFzcz1cIm5vLWxvY2F0aW9uIGhhcy10ZXh0LWNlbnRlciBoYXMtdGV4dC1saWdodFwiICpuZ0lmPVwic2hvd05vTG9jYXRpb24oKVwiPlxuICA8c3Bhbj5ObyBwcmVjaXNlIGxvY2F0aW9uIGRhdGE8L3NwYW4+XG48L2Rpdj5cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMtbWFwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2l0ZXMvc2l0ZXMtbWFwcy9zaXRlcy1tYXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zaXRlcy9zaXRlcy1tYXBzL3NpdGVzLW1hcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQXdELE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLFdBQVcsRUFFWCxZQUFZLEVBQ2IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQVE3QyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBUSxF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QztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBL0ZVLGtCQUFrQixrQkFvRG5CLGFBQWE7a0dBcERaLGtCQUFrQiw4TUFJbEIsU0FBUyxnRENyRXRCLGd4QkFpQkE7OzJGRGdEYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzswQkFzRDVDLE1BQU07MkJBQUMsYUFBYTt5R0EvQ2YsR0FBRztzQkFEVixTQUFTO3VCQUFDLFNBQVM7Z0JBS2hCLFlBQVk7c0JBRGYsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUs7Z0JBT0YsTUFBTTtzQkFEVCxLQUFLO2dCQU1JLElBQUk7c0JBRGIsS0FBSztnQkFHSSxVQUFVO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5qZWN0LCBzaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgR29vZ2xlTWFwIH0gZnJvbSAnQGFuZ3VsYXIvZ29vZ2xlLW1hcHMnO1xuaW1wb3J0IHsgTm9kZVR5cGUsIElTaXRlSlNPTkxELCBTaXRlLCBJT3JnYW5pc2F0aW9uSlNPTkxELCBPcmdhbmlzYXRpb24gfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBIZU5vZGVTZXJ2aWNlLCBIZU5vZGVTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9ub2RlJztcbmltcG9ydCB7IHRlcm1Mb2NhdGlvbiwgdGVybUxvY2F0aW9uTmFtZSB9IGZyb20gJy4uLy4uL3Rlcm1zL3Rlcm1zLm1vZGVsJztcbmltcG9ydCB7XG4gIEhFX01BUF9MT0FERUQsXG4gIGNyZWF0ZU1hcmtlcixcbiAgcG9seWdvbnNGcm9tRmVhdHVyZSxcbiAgcG9seWdvbkJvdW5kcyxcbiAgc3Ryb2tlU3R5bGUsXG4gIGZlYXR1cmUsXG4gIHBvbHlnb25Ub01hcFxufSBmcm9tICcuLi8uLi9jb21tb24vbWFwcy11dGlscyc7XG5pbXBvcnQgeyBiYXNlVXJsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuaW50ZXJmYWNlIElMb2FkaW5nUmVxdWVzdHMge1xuICBbaWQ6IHN0cmluZ106IE9ic2VydmFibGU8ZmVhdHVyZT47XG59XG5cbnR5cGUgc2l0ZSA9IElTaXRlSlNPTkxEIHwgU2l0ZSB8IElPcmdhbmlzYXRpb25KU09OTEQgfCBPcmdhbmlzYXRpb247XG5cbmNvbnN0IHNpdGVMb2NhdGlvbiA9ICh7IGxhdGl0dWRlLCBsb25naXR1ZGUgfTogc2l0ZSkgPT5cbiAgbGF0aXR1ZGUgJiYgbG9uZ2l0dWRlXG4gICAgPyB7XG4gICAgICAgIGxhdDogbGF0aXR1ZGUsXG4gICAgICAgIGxuZzogbG9uZ2l0dWRlXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IHNpdGVEZWZhdWx0TG9jYXRpb24gPSAoeyByZWdpb24sIGNvdW50cnkgfTogc2l0ZSkgPT4ge1xuICBjb25zdCBtYXJrZXJzID0gW1xuICAgIHJlZ2lvbiA/IGNyZWF0ZU1hcmtlcih0ZXJtTG9jYXRpb24ocmVnaW9uKSwgdGVybUxvY2F0aW9uTmFtZShyZWdpb24pLm5hbWUsIHVuZGVmaW5lZCwgMjApIDogdW5kZWZpbmVkLFxuICAgIGNvdW50cnkgPyBjcmVhdGVNYXJrZXIodGVybUxvY2F0aW9uKGNvdW50cnkpLCB0ZXJtTG9jYXRpb25OYW1lKGNvdW50cnkpLm5hbWUsIHVuZGVmaW5lZCwgNDApIDogdW5kZWZpbmVkXG4gIF0uZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gbWFya2Vycz8uWzBdO1xufTtcblxuY29uc3Qgc2l0ZU1hcmtlciA9IChzaXRlOiBzaXRlKSA9PlxuICBjcmVhdGVNYXJrZXIoc2l0ZSA/IHNpdGVMb2NhdGlvbihzaXRlKSA6IHVuZGVmaW5lZCwgc2l0ZS5uYW1lKSB8fCBzaXRlRGVmYXVsdExvY2F0aW9uKHNpdGUpO1xuXG5jb25zdCBzaXRlUG9seWdvbiA9ICh7IGJvdW5kYXJ5IH06IHNpdGUpID0+XG4gIChib3VuZGFyeSA/IHBvbHlnb25zRnJvbUZlYXR1cmUoYm91bmRhcnkgYXMgYW55LCAnIzREOEVDQicpIDogdW5kZWZpbmVkKSBhcyBnb29nbGUubWFwcy5Qb2x5Z29uW107XG5cbmNvbnN0IHJlZ2lvbklkcyA9IChzaXRlczogc2l0ZVtdKTogc3RyaW5nW10gPT5cbiAgdW5pcXVlKFxuICAgIChzaXRlcyB8fCBbXSlcbiAgICAgIC5tYXAoKHsgY291bnRyeSwgcmVnaW9uIH0pID0+IChyZWdpb24gPyByZWdpb25bJ0BpZCddIDogY291bnRyeSA/IGNvdW50cnlbJ0BpZCddIDogbnVsbCkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICk7XG5cbmNvbnN0IGRlZmF1bHRDZW50ZXI6IGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWwgPSB7IGxhdDogMCwgbG5nOiAwIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLXNpdGVzLW1hcHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2l0ZXMtbWFwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpdGVzLW1hcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2l0ZXNNYXBzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfbG9hZFBvbHlnb25zUmVxdWVzdHM6IElMb2FkaW5nUmVxdWVzdHMgPSB7fTtcbiAgcHJpdmF0ZSBfbWFwUmVhZHkgPSBzaWduYWwoZmFsc2UpO1xuXG4gIEBWaWV3Q2hpbGQoR29vZ2xlTWFwKVxuICBwcml2YXRlIG1hcD86IEdvb2dsZU1hcDtcblxuICBwcml2YXRlIF9sb2FkUG9seWdvbnMgPSBzaWduYWwodHJ1ZSk7XG4gIEBJbnB1dCgpXG4gIHNldCBsb2FkUG9seWdvbnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9sb2FkUG9seWdvbnMuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IFNpdGUgZGlyZWN0bHkgd2l0aG91dCB1c2luZyB0aGUgbm9kZSBzdG9yZS5cbiAgICovXG4gIHByaXZhdGUgX3NpdGVzID0gc2lnbmFsKFtdIGFzIHNpdGVbXSk7XG4gIEBJbnB1dCgpXG4gIHNldCBzaXRlcyh2YWx1ZTogc2l0ZVtdKSB7XG4gICAgdGhpcy5fc2l0ZXMuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NlbnRlciA9IHNpZ25hbChkZWZhdWx0Q2VudGVyKTtcbiAgQElucHV0KClcbiAgc2V0IGNlbnRlcih2YWx1ZTogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbCkge1xuICAgIHRoaXMuX2NlbnRlci5zZXQodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHJvdGVjdGVkIHpvb20gPSAyO1xuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgc2hvd05vdGljZSA9IHRydWU7XG5cbiAgcHJvdGVjdGVkIG9wdGlvbnM6IGdvb2dsZS5tYXBzLk1hcE9wdGlvbnMgPSB7XG4gICAgc3R5bGVzOiBbXVxuICB9O1xuXG4gIHByaXZhdGUgb3JpZ2luYWxTaXRlcyA9IHRvU2lnbmFsKHRoaXMubm9kZVN0b3JlU2VydmljZS5maW5kQnlTdGF0ZSQ8SVNpdGVKU09OTEQ+KE5vZGVUeXBlLlNpdGUsIERhdGFTdGF0ZS5vcmlnaW5hbCkpO1xuICBwcml2YXRlIG5vZGVzID0gY29tcHV0ZWQoKCkgPT4gWy4uLih0aGlzLl9zaXRlcygpIHx8IFtdKSwgLi4uKHRoaXMub3JpZ2luYWxTaXRlcygpIHx8IFtdKV0pO1xuXG4gIHByb3RlY3RlZCBtYXJrZXJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ub2RlcygpLm1hcChzaXRlTWFya2VyKS5maWx0ZXIoQm9vbGVhbikpO1xuICBwcml2YXRlIF9zaXRlUG9seWdvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vZGVzKCkuZmxhdE1hcChzaXRlUG9seWdvbikuZmlsdGVyKEJvb2xlYW4pKTtcbiAgcHJvdGVjdGVkIHNpdGVQb2x5Z29ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3NpdGVQb2x5Z29ucygpLm1hcChwb2x5Z29uID0+IHBvbHlnb25Ub01hcChwb2x5Z29uKSkpO1xuICBwcml2YXRlIF90ZXJtUG9seWdvbnMgPSBzaWduYWwoW10gYXMgZ29vZ2xlLm1hcHMuUG9seWdvbltdKTtcbiAgcHJvdGVjdGVkIHRlcm1Qb2x5Z29ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3Rlcm1Qb2x5Z29ucygpLm1hcChwb2x5Z29uID0+IHBvbHlnb25Ub01hcChwb2x5Z29uKSkpO1xuXG4gIHByb3RlY3RlZCBzaG93Tm9Mb2NhdGlvbiA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMubWFya2VycygpLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnNpdGVQb2x5Z29ucygpLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnRlcm1Qb2x5Z29ucygpLmxlbmd0aCA9PT0gMFxuICApO1xuICBwcm90ZWN0ZWQgbWFwQ2VudGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tYXJrZXJzKCk/LlswXT8ucG9zaXRpb24gfHwgZGVmYXVsdENlbnRlcik7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChIRV9NQVBfTE9BREVEKSBwcm90ZWN0ZWQgbWFwTG9hZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgICBwcml2YXRlIG5vZGVTZXJ2aWNlOiBIZU5vZGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZVN0b3JlU2VydmljZTogSGVOb2RlU3RvcmVTZXJ2aWNlXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwb2x5Z29ucyA9IHRoaXMuX3NpdGVQb2x5Z29ucygpPy5sZW5ndGggPyB0aGlzLl9zaXRlUG9seWdvbnMoKSA6IHRoaXMuX3Rlcm1Qb2x5Z29ucygpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNlbnRlclBvbHlnb25zKHBvbHlnb25zKSwgMTAwMCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9tYXBSZWFkeSgpICYmIHRoaXMuX2xvYWRQb2x5Z29ucygpKSB7XG4gICAgICAgICAgZnJvbShyZWdpb25JZHModGhpcy5ub2RlcygpKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBtZXJnZU1hcChpZCA9PiB0aGlzLmxvYWRUZXJtSWQoaWQpKSxcbiAgICAgICAgICAgICAgbWFwKGZlYXR1cmUgPT4gcG9seWdvbnNGcm9tRmVhdHVyZShmZWF0dXJlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWVzID0+IHRoaXMuX3Rlcm1Qb2x5Z29ucy5zZXQodmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjZW50ZXJQb2x5Z29ucyhwb2x5Z29uczogZ29vZ2xlLm1hcHMuUG9seWdvbltdKSB7XG4gICAgcmV0dXJuIHBvbHlnb25zPy5sZW5ndGggPyB0aGlzLm1hcCEuZ29vZ2xlTWFwIS5maXRCb3VuZHMocG9seWdvbkJvdW5kcyhwb2x5Z29ucykpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRlcm1JZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbG9hZFBvbHlnb25zUmVxdWVzdHNbaWRdID1cbiAgICAgIHRoaXMuX2xvYWRQb2x5Z29uc1JlcXVlc3RzW2lkXSB8fFxuICAgICAgdGhpcy5ub2RlU2VydmljZVxuICAgICAgICAuZG93bmxvYWRSYXckPGZlYXR1cmU+KGAke2Jhc2VVcmwoKX0vZ2FkbS8ke2lkfS5nZW9qc29uYClcbiAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSk7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRQb2x5Z29uc1JlcXVlc3RzW2lkXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXBMb2FkZWQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBsb2FkZWQgZGF0YSBhcyBnZW9qc29uXG4gICAgICB0aGlzLm1hcC5nb29nbGVNYXAuZGF0YS5zZXRTdHlsZSgoKSA9PiAoeyAuLi5zdHJva2VTdHlsZSwgc3Ryb2tlT3BhY2l0eTogMC4xIH0pKTtcbiAgICAgIHRoaXMuX21hcFJlYWR5LnNldCh0cnVlKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGdvb2dsZS1tYXBcbiAgKm5nSWY9XCJtYXBMb2FkZWQkIHwgYXN5bmNcIlxuICAobWFwSW5pdGlhbGl6ZWQpPVwibWFwTG9hZGVkKClcIlxuICBoZWlnaHQ9XCIxMDAlXCJcbiAgd2lkdGg9XCIxMDAlXCJcbiAgW3pvb21dPVwiem9vbVwiXG4gIFtjZW50ZXJdPVwibWFwQ2VudGVyKClcIj5cbiAgPG1hcC1tYXJrZXIgKm5nRm9yPVwibGV0IG1hcmtlciBvZiBtYXJrZXJzKClcIiBbcG9zaXRpb25dPVwibWFya2VyLnBvc2l0aW9uXCIgW2ljb25dPVwibWFya2VyLmljb25cIj48L21hcC1tYXJrZXI+XG4gIDxtYXAtcG9seWdvbiAqbmdGb3I9XCJsZXQgcG9seWdvbiBvZiBzaXRlUG9seWdvbnMoKVwiIFtwYXRoc109XCJwb2x5Z29uLnBhdGhzXCIgW29wdGlvbnNdPVwicG9seWdvbi5vcHRpb25zXCIgLz5cbiAgPG1hcC1wb2x5Z29uICpuZ0Zvcj1cImxldCBwb2x5Z29uIG9mIHRlcm1Qb2x5Z29ucygpXCIgW3BhdGhzXT1cInBvbHlnb24ucGF0aHNcIiBbb3B0aW9uc109XCJwb2x5Z29uLm9wdGlvbnNcIiAvPlxuPC9nb29nbGUtbWFwPlxuXG48cCAqbmdJZj1cInNob3dOb3RpY2VcIiBjbGFzcz1cIm10LTIgaXMtaXRhbGljIGlzLXNpemUtN1wiPlRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBtaWdodCBub3QgYmUgY29tcGxldGU8L3A+XG5cbjxkaXYgY2xhc3M9XCJuby1sb2NhdGlvbiBoYXMtdGV4dC1jZW50ZXIgaGFzLXRleHQtbGlnaHRcIiAqbmdJZj1cInNob3dOb0xvY2F0aW9uKClcIj5cbiAgPHNwYW4+Tm8gcHJlY2lzZSBsb2NhdGlvbiBkYXRhPC9zcGFuPlxuPC9kaXY+XG4iXX0=
@@ -9041,7 +9041,6 @@ class SitesMapsComponent {
9041
9041
  this._loadPolygonsRequests = {};
9042
9042
  this._mapReady = signal(false);
9043
9043
  this._loadPolygons = signal(true);
9044
- this.termPolygons = signal([]);
9045
9044
  /**
9046
9045
  * Display Site directly without using the node store.
9047
9046
  */
@@ -9055,18 +9054,21 @@ class SitesMapsComponent {
9055
9054
  this.originalSites = toSignal(this.nodeStoreService.findByState$(NodeType.Site, DataState.original));
9056
9055
  this.nodes = computed(() => [...(this._sites() || []), ...(this.originalSites() || [])]);
9057
9056
  this.markers = computed(() => this.nodes().map(siteMarker).filter(Boolean));
9058
- this._polygons = computed(() => this.nodes().flatMap(sitePolygon).filter(Boolean));
9059
- this.polygons = computed(() => this._polygons().map(polygon => polygonToMap(polygon)));
9060
- this.showNoLocation = computed(() => this.markers().length === 0 && this.polygons().length === 0 && this.termPolygons().length === 0);
9057
+ this._sitePolygons = computed(() => this.nodes().flatMap(sitePolygon).filter(Boolean));
9058
+ this.sitePolygons = computed(() => this._sitePolygons().map(polygon => polygonToMap(polygon)));
9059
+ this._termPolygons = signal([]);
9060
+ this.termPolygons = computed(() => this._termPolygons().map(polygon => polygonToMap(polygon)));
9061
+ this.showNoLocation = computed(() => this.markers().length === 0 && this.sitePolygons().length === 0 && this.termPolygons().length === 0);
9061
9062
  this.mapCenter = computed(() => this.markers()?.[0]?.position || defaultCenter);
9062
9063
  effect(() => {
9063
- this.centerPolygons(this._polygons());
9064
+ const polygons = this._sitePolygons()?.length ? this._sitePolygons() : this._termPolygons();
9065
+ setTimeout(() => this.centerPolygons(polygons), 1000);
9064
9066
  });
9065
9067
  effect(() => {
9066
9068
  if (this._mapReady() && this._loadPolygons()) {
9067
9069
  from(regionIds(this.nodes()))
9068
- .pipe(mergeMap(id => this.loadTermId(id)), mergeMap(feature => polygonsFromFeature(feature)), map(polygon => polygonToMap(polygon)), toArray())
9069
- .subscribe(values => this.termPolygons.set(values));
9070
+ .pipe(mergeMap(id => this.loadTermId(id)), map(feature => polygonsFromFeature(feature)))
9071
+ .subscribe(values => this._termPolygons.set(values));
9070
9072
  }
9071
9073
  }, { allowSignalWrites: true });
9072
9074
  }
@@ -9089,11 +9091,11 @@ class SitesMapsComponent {
9089
9091
  });
9090
9092
  }
9091
9093
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: SitesMapsComponent, deps: [{ token: HE_MAP_LOADED }, { token: HeNodeService }, { token: HeNodeStoreService }], target: i0.ɵɵFactoryTarget.Component }); }
9092
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: SitesMapsComponent, selector: "he-sites-maps", inputs: { loadPolygons: "loadPolygons", sites: "sites", center: "center", zoom: "zoom", showNotice: "showNotice" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }], ngImport: i0, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of polygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i3$1.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { kind: "directive", type: i3$1.MapPolygon, selector: "map-polygon", inputs: ["options", "paths"], outputs: ["polygonClick", "polygonDblclick", "polygonDrag", "polygonDragend", "polygonDragstart", "polygonMousedown", "polygonMousemove", "polygonMouseout", "polygonMouseover", "polygonMouseup", "polygonRightclick"], exportAs: ["mapPolygon"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9094
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: SitesMapsComponent, selector: "he-sites-maps", inputs: { loadPolygons: "loadPolygons", sites: "sites", center: "center", zoom: "zoom", showNotice: "showNotice" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }], ngImport: i0, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of sitePolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i3$1.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { kind: "directive", type: i3$1.MapPolygon, selector: "map-polygon", inputs: ["options", "paths"], outputs: ["polygonClick", "polygonDblclick", "polygonDrag", "polygonDragend", "polygonDragstart", "polygonMousedown", "polygonMousemove", "polygonMouseout", "polygonMouseover", "polygonMouseup", "polygonRightclick"], exportAs: ["mapPolygon"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9093
9095
  }
9094
9096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: SitesMapsComponent, decorators: [{
9095
9097
  type: Component$1,
9096
- args: [{ selector: 'he-sites-maps', changeDetection: ChangeDetectionStrategy.OnPush, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of polygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"] }]
9098
+ args: [{ selector: 'he-sites-maps', changeDetection: ChangeDetectionStrategy.OnPush, template: "<google-map\n *ngIf=\"mapLoaded$ | async\"\n (mapInitialized)=\"mapLoaded()\"\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"zoom\"\n [center]=\"mapCenter()\">\n <map-marker *ngFor=\"let marker of markers()\" [position]=\"marker.position\" [icon]=\"marker.icon\"></map-marker>\n <map-polygon *ngFor=\"let polygon of sitePolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n <map-polygon *ngFor=\"let polygon of termPolygons()\" [paths]=\"polygon.paths\" [options]=\"polygon.options\" />\n</google-map>\n\n<p *ngIf=\"showNotice\" class=\"mt-2 is-italic is-size-7\">The information provided might not be complete</p>\n\n<div class=\"no-location has-text-center has-text-light\" *ngIf=\"showNoLocation()\">\n <span>No precise location data</span>\n</div>\n", styles: [":host{display:block;height:100%;position:relative;width:100%}.no-location{background-color:#0000004d;left:0;height:100%;position:absolute;top:0;width:100%;z-index:9}.no-location>span{display:inline-block;margin-top:12%}\n"] }]
9097
9099
  }], ctorParameters: function () { return [{ type: i4$2.Observable, decorators: [{
9098
9100
  type: Inject,
9099
9101
  args: [HE_MAP_LOADED]