@igo2/geo 1.14.1 → 1.14.2

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.
Files changed (45) hide show
  1. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +7 -5
  2. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +59 -21
  3. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +7 -7
  4. package/esm2020/lib/import-export/shared/export.service.mjs +3 -3
  5. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +16 -7
  6. package/esm2020/lib/map/shared/map.utils.mjs +2 -1
  7. package/esm2020/lib/print/print/print.component.mjs +15 -12
  8. package/esm2020/lib/print/print-form/print-form.component.mjs +46 -23
  9. package/esm2020/lib/print/shared/print.service.mjs +96 -23
  10. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  11. package/esm2020/lib/query/shared/query.service.mjs +142 -28
  12. package/esm2020/lib/search/search-bar/search-bar.component.mjs +27 -8
  13. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +118 -0
  14. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +207 -29
  15. package/esm2020/lib/search/search-results/search-results-item.component.mjs +2 -2
  16. package/esm2020/lib/search/search-results/search-results.component.mjs +1 -1
  17. package/esm2020/lib/search/search-results/search-results.module.mjs +32 -5
  18. package/esm2020/lib/search/search-settings/search-settings.component.mjs +33 -9
  19. package/esm2020/lib/search/shared/search.service.mjs +10 -7
  20. package/esm2020/lib/search/shared/sources/coordinates.mjs +17 -11
  21. package/esm2020/lib/search/shared/sources/icherche.mjs +7 -7
  22. package/esm2020/lib/search/shared/sources/ilayer.mjs +4 -4
  23. package/esm2020/lib/search/shared/sources/source.mjs +1 -1
  24. package/fesm2015/igo2-geo.mjs +990 -361
  25. package/fesm2015/igo2-geo.mjs.map +1 -1
  26. package/fesm2020/igo2-geo.mjs +966 -360
  27. package/fesm2020/igo2-geo.mjs.map +1 -1
  28. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +3 -1
  29. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +9 -2
  30. package/lib/import-export/shared/export.service.d.ts +1 -1
  31. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +7 -4
  32. package/lib/map/shared/map.utils.d.ts +1 -0
  33. package/lib/print/shared/print.service.d.ts +10 -1
  34. package/lib/query/shared/query.interfaces.d.ts +8 -1
  35. package/lib/query/shared/query.service.d.ts +5 -3
  36. package/lib/search/search-bar/search-bar.component.d.ts +12 -2
  37. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -0
  38. package/lib/search/search-results/search-results-add-button.component.d.ts +20 -2
  39. package/lib/search/search-results/search-results-item.component.d.ts +0 -1
  40. package/lib/search/search-results/search-results.module.d.ts +17 -10
  41. package/lib/search/search-settings/search-settings.component.d.ts +7 -1
  42. package/lib/search/shared/search.service.d.ts +3 -1
  43. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  44. package/lib/search/shared/sources/source.d.ts +1 -1
  45. package/package.json +4 -4
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, ChangeDetectionStrategy, Input, ViewEncapsulation, Inject, NgModule, Optional, Directive, EventEmitter, Self, Output, HostListener, ViewChildren, ContentChild, ViewChild, Pipe, InjectionToken, APP_INITIALIZER, Injector } from '@angular/core';
3
- import * as i1$1 from '@angular/common';
3
+ import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i7$1 from '@angular/material/badge';
6
6
  import { MatBadgeModule } from '@angular/material/badge';
@@ -12,15 +12,15 @@ import * as i4 from '@angular/material/tooltip';
12
12
  import { MatTooltipModule } from '@angular/material/tooltip';
13
13
  import * as i5$1 from '@igo2/common';
14
14
  import { getEntityId, getEntityTitle, getEntityProperty, getEntityRevision, getEntityIcon, EntityStore, EntityStoreStrategy, EntityStoreWatcher, SecureImagePipe, EntityTableColumnRenderer, IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoCustomHtmlModule, IgoEntityTableModule, IgoKeyValueModule, IgoFormModule, IgoFormFieldComponent, DOMService, EntityStoreFilterSelectionStrategy, IgoEntityModule, IgoDOMModule, DragAndDropDirective, IgoSpinnerModule, IgoDrapDropModule, IgoConfirmDialogModule, getEntityTitleHtml, EntityStoreFilterCustomFuncStrategy, IgoStopPropagationModule, IgoFlexibleModule, WidgetService, Workspace, ActionStore, IgoWidgetModule } from '@igo2/common';
15
- import * as i3 from '@angular/material/button';
15
+ import * as i3$1 from '@angular/material/button';
16
16
  import { MatButtonModule } from '@angular/material/button';
17
17
  import * as i2$1 from '@igo2/core';
18
18
  import { IgoLanguageModule, ConfigService, Media, StorageScope, IgoMessageModule, LanguageService, StorageService } from '@igo2/core';
19
- import * as i1 from '@angular/material/dialog';
19
+ import * as i3 from '@angular/material/dialog';
20
20
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
21
21
  import * as i7 from '@ngx-translate/core';
22
- import { BehaviorSubject, combineLatest, of, Observable, forkJoin, Subject, interval, skipWhile as skipWhile$1, zip, EMPTY, ReplaySubject, timer, fromEvent, Subscription, throwError } from 'rxjs';
23
- import { map, concatMap, first, catchError, skipWhile, debounceTime, skip, distinctUntilChanged, switchMap, take, mergeMap, debounce, takeUntil } from 'rxjs/operators';
22
+ import { BehaviorSubject, combineLatest, of, Observable, forkJoin, Subject, interval, skipWhile as skipWhile$1, zip, EMPTY, ReplaySubject, timer, fromEvent, Subscription, throwError, take as take$1 } from 'rxjs';
23
+ import { map, concatMap, first, catchError, skipWhile, debounceTime, skip, distinctUntilChanged, switchMap, take, mergeMap, debounce, takeUntil, startWith } from 'rxjs/operators';
24
24
  import { Watcher, uuid, SubjectStatus, NumberUtils, ObjectUtils, userAgent, Clipboard, downloadContent, strEnum, ChangeUtils } from '@igo2/utils';
25
25
  import olMap from 'ol/Map';
26
26
  import olView from 'ol/View';
@@ -64,7 +64,7 @@ import olFormatOSMXML from 'ol/format/OSMXML';
64
64
  import olSourceOSM from 'ol/source/OSM';
65
65
  import olSourceXYZ from 'ol/source/XYZ';
66
66
  import * as OlLoadingStrategy from 'ol/loadingstrategy';
67
- import * as i1$2 from '@angular/common/http';
67
+ import * as i1$1 from '@angular/common/http';
68
68
  import { HttpParams, HttpClient, HttpHeaders } from '@angular/common/http';
69
69
  import olSourceImageWMS from 'ol/source/ImageWMS';
70
70
  import olSourceWMTS from 'ol/source/WMTS';
@@ -96,7 +96,7 @@ import RenderFeature from 'ol/render/Feature';
96
96
  import NoSleep from 'nosleep.js';
97
97
  import { trigger, state, style, transition, animate } from '@angular/animations';
98
98
  import { stylefunction } from 'ol-mapbox-style';
99
- import * as i1$3 from 'ngx-indexed-db';
99
+ import * as i1$2 from 'ngx-indexed-db';
100
100
  import { DBMode } from 'ngx-indexed-db';
101
101
  import { bearingToAzimuth, lineString } from '@turf/helpers';
102
102
  import striptags from 'striptags';
@@ -160,7 +160,7 @@ import { saveAs } from 'file-saver';
160
160
  import jsPDF from 'jspdf';
161
161
  import html2canvas from 'html2canvas';
162
162
  import JSZip from 'jszip';
163
- import * as i3$1 from '@angular/cdk/drag-drop';
163
+ import * as i3$2 from '@angular/cdk/drag-drop';
164
164
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
165
165
  import pointOnFeature from '@turf/point-on-feature';
166
166
  import Collection from 'ol/Collection';
@@ -272,7 +272,7 @@ class MetadataButtonComponent {
272
272
  return this.layer.options;
273
273
  }
274
274
  }
275
- MetadataButtonComponent.ɵfac = function MetadataButtonComponent_Factory(t) { return new (t || MetadataButtonComponent)(i0.ɵɵdirectiveInject(MetadataService), i0.ɵɵdirectiveInject(i1.MatDialog)); };
275
+ MetadataButtonComponent.ɵfac = function MetadataButtonComponent_Factory(t) { return new (t || MetadataButtonComponent)(i0.ɵɵdirectiveInject(MetadataService), i0.ɵɵdirectiveInject(i3.MatDialog)); };
276
276
  MetadataButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MetadataButtonComponent, selectors: [["igo-metadata-button"]], inputs: { layer: "layer", color: "color" }, decls: 1, vars: 1, consts: [["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "click", 4, "ngIf"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "click"], ["svgIcon", "information-outline"]], template: function MetadataButtonComponent_Template(rf, ctx) {
277
277
  if (rf & 1) {
278
278
  i0.ɵɵtemplate(0, MetadataButtonComponent_button_0_Template, 3, 4, "button", 0);
@@ -280,12 +280,12 @@ MetadataButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Met
280
280
  if (rf & 2) {
281
281
  i0.ɵɵproperty("ngIf", ctx.options && ctx.options.metadata && ctx.options.metadata.url || ctx.options && ctx.options.metadata && ctx.options.metadata.abstract);
282
282
  }
283
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i7.TranslatePipe], changeDetection: 0 });
283
+ }, dependencies: [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i7.TranslatePipe], changeDetection: 0 });
284
284
  (function () {
285
285
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MetadataButtonComponent, [{
286
286
  type: Component,
287
287
  args: [{ selector: 'igo-metadata-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"(options && options.metadata && options.metadata.url) || (options && options.metadata && options.metadata.abstract)\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.metadata.show' | translate\"\n [color]=\"color\"\n (click)=\"openMetadata(options.metadata)\">\n <mat-icon svgIcon=\"information-outline\"></mat-icon>\n</button>\n" }]
288
- }], function () { return [{ type: MetadataService }, { type: i1.MatDialog }]; }, { layer: [{
288
+ }], function () { return [{ type: MetadataService }, { type: i3.MatDialog }]; }, { layer: [{
289
289
  type: Input
290
290
  }], color: [{
291
291
  type: Input
@@ -316,7 +316,7 @@ MetadataAbstractComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: M
316
316
  i0.ɵɵadvance(1);
317
317
  i0.ɵɵproperty("ngIf", ctx.data.type === "arcgisrest");
318
318
  }
319
- }, dependencies: [i1$1.NgIf, i3.MatButton, i1.MatDialogClose, i1.MatDialogTitle, i1.MatDialogContent], styles: [".close-button{top:5px;right:5px;padding:7px;line-height:10px;position:absolute!important;min-width:auto}mat-dialog-container{position:relative}\n"], encapsulation: 2 });
319
+ }, dependencies: [i1.NgIf, i3$1.MatButton, i3.MatDialogClose, i3.MatDialogTitle, i3.MatDialogContent], styles: [".close-button{top:5px;right:5px;padding:7px;line-height:10px;position:absolute!important;min-width:auto}mat-dialog-container{position:relative}\n"], encapsulation: 2 });
320
320
  (function () {
321
321
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MetadataAbstractComponent, [{
322
322
  type: Component,
@@ -1132,6 +1132,7 @@ function roundCoordToString(coord, decimal = 3) {
1132
1132
  * and for the current UTM zone and MTM zone.
1133
1133
  * @param lonLat [number, number] array of the coordinate to transform.
1134
1134
  * @param projections Projection[] Array of destination projection.
1135
+ * @param reverseCoords To reverse coords from latLon to lonLat (search option)
1135
1136
  * @returns Returns an array of converted coordinates.
1136
1137
  */
1137
1138
  function lonLatConversion(lonLat, projections) {
@@ -2894,7 +2895,7 @@ class WFSService extends DataService {
2894
2895
  return sourceFields;
2895
2896
  }
2896
2897
  }
2897
- WFSService.ɵfac = function WFSService_Factory(t) { return new (t || WFSService)(i0.ɵɵinject(i1$2.HttpClient)); };
2898
+ WFSService.ɵfac = function WFSService_Factory(t) { return new (t || WFSService)(i0.ɵɵinject(i1$1.HttpClient)); };
2898
2899
  WFSService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WFSService, factory: WFSService.ɵfac, providedIn: 'root' });
2899
2900
  (function () {
2900
2901
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WFSService, [{
@@ -2902,7 +2903,7 @@ WFSService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WFSService, f
2902
2903
  args: [{
2903
2904
  providedIn: 'root'
2904
2905
  }]
2905
- }], function () { return [{ type: i1$2.HttpClient }]; }, null);
2906
+ }], function () { return [{ type: i1$1.HttpClient }]; }, null);
2906
2907
  })();
2907
2908
 
2908
2909
  var QueryFormat;
@@ -4380,7 +4381,7 @@ class CapabilitiesService {
4380
4381
  return legendOptions;
4381
4382
  }
4382
4383
  }
4383
- CapabilitiesService.ɵfac = function CapabilitiesService_Factory(t) { return new (t || CapabilitiesService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(MapService)); };
4384
+ CapabilitiesService.ɵfac = function CapabilitiesService_Factory(t) { return new (t || CapabilitiesService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(MapService)); };
4384
4385
  CapabilitiesService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CapabilitiesService, factory: CapabilitiesService.ɵfac, providedIn: 'root' });
4385
4386
  __decorate([
4386
4387
  Cacheable({
@@ -4408,7 +4409,7 @@ __decorate([
4408
4409
  args: [{
4409
4410
  providedIn: 'root'
4410
4411
  }]
4411
- }], function () { return [{ type: i1$2.HttpClient }, { type: MapService }]; }, { getArcgisOptions: [], getImageArcgisOptions: [], getTileArcgisOptions: [], getCapabilities: [] });
4412
+ }], function () { return [{ type: i1$1.HttpClient }, { type: MapService }]; }, { getArcgisOptions: [], getImageArcgisOptions: [], getTileArcgisOptions: [], getCapabilities: [] });
4412
4413
  })();
4413
4414
 
4414
4415
  class OptionsService {
@@ -4765,7 +4766,7 @@ class OptionsApiService extends OptionsService {
4765
4766
  }));
4766
4767
  }
4767
4768
  }
4768
- OptionsApiService.ɵfac = function OptionsApiService_Factory(t) { return new (t || OptionsApiService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject('options')); };
4769
+ OptionsApiService.ɵfac = function OptionsApiService_Factory(t) { return new (t || OptionsApiService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject('options')); };
4769
4770
  OptionsApiService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: OptionsApiService, factory: OptionsApiService.ɵfac, providedIn: 'root' });
4770
4771
  (function () {
4771
4772
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OptionsApiService, [{
@@ -4774,7 +4775,7 @@ OptionsApiService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Option
4774
4775
  providedIn: 'root'
4775
4776
  }]
4776
4777
  }], function () {
4777
- return [{ type: i1$2.HttpClient }, { type: undefined, decorators: [{
4778
+ return [{ type: i1$1.HttpClient }, { type: undefined, decorators: [{
4778
4779
  type: Inject,
4779
4780
  args: ['options']
4780
4781
  }] }];
@@ -8350,7 +8351,7 @@ class IgoMap {
8350
8351
  }
8351
8352
  }
8352
8353
 
8353
- const _c0$m = ["*"];
8354
+ const _c0$n = ["*"];
8354
8355
  class MapBrowserComponent {
8355
8356
  constructor(activityService) {
8356
8357
  this.activityService = activityService;
@@ -8396,7 +8397,7 @@ class MapBrowserComponent {
8396
8397
  }
8397
8398
  }
8398
8399
  MapBrowserComponent.ɵfac = function MapBrowserComponent_Factory(t) { return new (t || MapBrowserComponent)(i0.ɵɵdirectiveInject(i2$1.ActivityService)); };
8399
- MapBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapBrowserComponent, selectors: [["igo-map-browser"]], inputs: { map: "map", view: "view" }, ngContentSelectors: _c0$m, decls: 2, vars: 1, consts: [[1, "igo-map-browser-target", 3, "id"]], template: function MapBrowserComponent_Template(rf, ctx) {
8400
+ MapBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapBrowserComponent, selectors: [["igo-map-browser"]], inputs: { map: "map", view: "view" }, ngContentSelectors: _c0$n, decls: 2, vars: 1, consts: [[1, "igo-map-browser-target", 3, "id"]], template: function MapBrowserComponent_Template(rf, ctx) {
8400
8401
  if (rf & 1) {
8401
8402
  i0.ɵɵprojectionDef();
8402
8403
  i0.ɵɵelement(0, "div", 0);
@@ -9235,7 +9236,7 @@ function computeProjectionsConstraints(projectionsLimitations) {
9235
9236
  return projectionsConstraints;
9236
9237
  }
9237
9238
 
9238
- const _c0$l = function (a0) { return { zoom: a0 }; };
9239
+ const _c0$m = function (a0) { return { zoom: a0 }; };
9239
9240
  class ZoomButtonComponent {
9240
9241
  constructor() { }
9241
9242
  get zoom() { return this.map.viewController.getZoom(); }
@@ -9258,11 +9259,11 @@ ZoomButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ZoomBut
9258
9259
  }
9259
9260
  if (rf & 2) {
9260
9261
  i0.ɵɵadvance(1);
9261
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind2(2, 6, "igo.geo.mapButtons.zoomIn", i0.ɵɵpureFunction1(12, _c0$l, ctx.zoom + 1)))("color", ctx.color)("disabled", ctx.zoom >= ctx.maxZoom);
9262
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind2(2, 6, "igo.geo.mapButtons.zoomIn", i0.ɵɵpureFunction1(12, _c0$m, ctx.zoom + 1)))("color", ctx.color)("disabled", ctx.zoom >= ctx.maxZoom);
9262
9263
  i0.ɵɵadvance(3);
9263
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind2(5, 9, "igo.geo.mapButtons.zoomOut", i0.ɵɵpureFunction1(14, _c0$l, ctx.zoom - 1)))("color", ctx.color)("disabled", ctx.zoom <= ctx.minZoom);
9264
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind2(5, 9, "igo.geo.mapButtons.zoomOut", i0.ɵɵpureFunction1(14, _c0$m, ctx.zoom - 1)))("color", ctx.color)("disabled", ctx.zoom <= ctx.minZoom);
9264
9265
  }
9265
- }, dependencies: [i2.MatIcon, i3.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: [".igo-zoom-button-container[_ngcontent-%COMP%]{width:40px}.igo-zoom-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background-color:#fff}.igo-zoom-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#efefef}.igo-zoom-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:first-child{margin-bottom:2px}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9266
+ }, dependencies: [i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: [".igo-zoom-button-container[_ngcontent-%COMP%]{width:40px}.igo-zoom-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background-color:#fff}.igo-zoom-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#efefef}.igo-zoom-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:first-child{margin-bottom:2px}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9266
9267
  (function () {
9267
9268
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ZoomButtonComponent, [{
9268
9269
  type: Component,
@@ -9321,7 +9322,7 @@ MenuButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuBut
9321
9322
  if (rf & 2) {
9322
9323
  i0.ɵɵproperty("ngClass", ctx.menuButtonClass)("matTooltip", i0.ɵɵpipeBind1(1, 2, ctx.sidenavOpened ? "menu.close" : "menu.open"));
9323
9324
  }
9324
- }, dependencies: [i1$1.NgClass, i2.MatIcon, i3.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: ["#menu-button[_ngcontent-%COMP%]{background-color:#fff;border-radius:0;left:5px;top:5px}#menu-button.menu-button-reverse-color[_ngcontent-%COMP%]{height:40px;border-radius:0;height:45px;width:48px;left:0px;top:3px}#menu-button.menu-button-reverse-color-close[_ngcontent-%COMP%]{border-radius:0;left:5px;top:5px}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}#menu-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}"] });
9325
+ }, dependencies: [i1.NgClass, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: ["#menu-button[_ngcontent-%COMP%]{background-color:#fff;border-radius:0;left:5px;top:5px}#menu-button.menu-button-reverse-color[_ngcontent-%COMP%]{height:40px;border-radius:0;height:45px;width:48px;left:0px;top:3px}#menu-button.menu-button-reverse-color-close[_ngcontent-%COMP%]{border-radius:0;left:5px;top:5px}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}#menu-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}"] });
9325
9326
  (function () {
9326
9327
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuButtonComponent, [{
9327
9328
  type: Component,
@@ -9399,7 +9400,7 @@ GeolocateButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Ge
9399
9400
  if (rf & 2) {
9400
9401
  i0.ɵɵproperty("ngIf", ctx.map.geolocationController);
9401
9402
  }
9402
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-geolocate-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}.igo-geolocate-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9403
+ }, dependencies: [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i1.AsyncPipe, i7.TranslatePipe], styles: [".igo-geolocate-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}.igo-geolocate-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9403
9404
  (function () {
9404
9405
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GeolocateButtonComponent, [{
9405
9406
  type: Component,
@@ -9453,7 +9454,7 @@ HomeExtentButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: H
9453
9454
  i0.ɵɵadvance(1);
9454
9455
  i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 2, "igo.geo.mapButtons.home-extent"))("color", ctx.color);
9455
9456
  }
9456
- }, dependencies: [i2.MatIcon, i3.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: ["@charset \"UTF-8\";.igo-home-extent-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}\\a0[_ngcontent-%COMP%] .igo-home-extent-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9457
+ }, dependencies: [i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: ["@charset \"UTF-8\";.igo-home-extent-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}\\a0[_ngcontent-%COMP%] .igo-home-extent-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9457
9458
  (function () {
9458
9459
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HomeExtentButtonComponent, [{
9459
9460
  type: Component,
@@ -9471,7 +9472,7 @@ HomeExtentButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: H
9471
9472
  }] });
9472
9473
  })();
9473
9474
 
9474
- const _c0$k = function (a0) { return [a0]; };
9475
+ const _c0$l = function (a0) { return [a0]; };
9475
9476
  function OfflineButtonComponent_div_0_Template(rf, ctx) {
9476
9477
  if (rf & 1) {
9477
9478
  const _r2 = i0.ɵɵgetCurrentView();
@@ -9485,7 +9486,7 @@ function OfflineButtonComponent_div_0_Template(rf, ctx) {
9485
9486
  if (rf & 2) {
9486
9487
  const ctx_r0 = i0.ɵɵnextContext();
9487
9488
  i0.ɵɵadvance(2);
9488
- i0.ɵɵproperty("matTooltip", ctx_r0.checked ? i0.ɵɵpipeBind1(3, 3, "igo.geo.mapButtons.online") : i0.ɵɵpipeBind1(4, 5, "igo.geo.mapButtons.offline"))("ngClass", i0.ɵɵpureFunction1(7, _c0$k, ctx_r0.btnStyle))("color", ctx_r0.checked ? ctx_r0.color : i0.ɵɵpureFunction1(9, _c0$k, ctx_r0.colorOff));
9489
+ i0.ɵɵproperty("matTooltip", ctx_r0.checked ? i0.ɵɵpipeBind1(3, 3, "igo.geo.mapButtons.online") : i0.ɵɵpipeBind1(4, 5, "igo.geo.mapButtons.offline"))("ngClass", i0.ɵɵpureFunction1(7, _c0$l, ctx_r0.btnStyle))("color", ctx_r0.checked ? ctx_r0.color : i0.ɵɵpureFunction1(9, _c0$l, ctx_r0.colorOff));
9489
9490
  }
9490
9491
  }
9491
9492
  class OfflineButtonComponent {
@@ -9531,7 +9532,7 @@ OfflineButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Offl
9531
9532
  if (rf & 2) {
9532
9533
  i0.ɵɵproperty("ngIf", ctx.visible);
9533
9534
  }
9534
- }, dependencies: [i1$1.NgClass, i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: [".baseStyle[_ngcontent-%COMP%]{width:40px;background-color:#fff}.baseStyle[_ngcontent-%COMP%]:hover{background-color:#efefef}.toggleStyle[_ngcontent-%COMP%]{width:40px;background-color:#b9b9b9}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9535
+ }, dependencies: [i1.NgClass, i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i7.TranslatePipe], styles: [".baseStyle[_ngcontent-%COMP%]{width:40px;background-color:#fff}.baseStyle[_ngcontent-%COMP%]:hover{background-color:#efefef}.toggleStyle[_ngcontent-%COMP%]{width:40px;background-color:#b9b9b9}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9535
9536
  (function () {
9536
9537
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OfflineButtonComponent, [{
9537
9538
  type: Component,
@@ -9644,7 +9645,7 @@ WakeLockButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Wak
9644
9645
  if (rf & 2) {
9645
9646
  i0.ɵɵproperty("ngIf", ctx.visible);
9646
9647
  }
9647
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-wake-lock-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}.igo-wake-lock-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9648
+ }, dependencies: [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i1.AsyncPipe, i7.TranslatePipe], styles: [".igo-wake-lock-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}.igo-wake-lock-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}"] });
9648
9649
  (function () {
9649
9650
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WakeLockButtonComponent, [{
9650
9651
  type: Component,
@@ -9701,7 +9702,7 @@ function BaseLayersSwitcherComponent_div_0_igo_mini_basemap_2_Template(rf, ctx)
9701
9702
  i0.ɵɵproperty("map", ctx_r2.map)("baseLayer", baseLayer_r3)("title", ctx_r2.baseLayers.length > 2 && !ctx_r2.expand ? i0.ɵɵpipeBind1(1, 5, "igo.geo.baselayersSwitcher.title") : baseLayer_r3.title)("display", ctx_r2.expand || i_r4 === 0 && !ctx_r2.useStaticIcon)("disabled", !ctx_r2.expand && ctx_r2.baseLayers.length > 1);
9702
9703
  }
9703
9704
  }
9704
- const _c0$j = function (a0) { return { "container-expand": a0 }; };
9705
+ const _c0$k = function (a0) { return { "container-expand": a0 }; };
9705
9706
  function BaseLayersSwitcherComponent_div_0_Template(rf, ctx) {
9706
9707
  if (rf & 1) {
9707
9708
  const _r6 = i0.ɵɵgetCurrentView();
@@ -9715,7 +9716,7 @@ function BaseLayersSwitcherComponent_div_0_Template(rf, ctx) {
9715
9716
  }
9716
9717
  if (rf & 2) {
9717
9718
  const ctx_r0 = i0.ɵɵnextContext();
9718
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$j, ctx_r0.expand))("@baseLayerSwitcherState", ctx_r0.expand ? "expand" : ctx_r0.useStaticIcon ? "collapseIcon" : "collapseMap");
9719
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$k, ctx_r0.expand))("@baseLayerSwitcherState", ctx_r0.expand ? "expand" : ctx_r0.useStaticIcon ? "collapseIcon" : "collapseMap");
9719
9720
  i0.ɵɵadvance(1);
9720
9721
  i0.ɵɵproperty("ngIf", ctx_r0.useStaticIcon && !ctx_r0.expand && ctx_r0.showButton);
9721
9722
  i0.ɵɵadvance(1);
@@ -9934,7 +9935,7 @@ class GeoDBService {
9934
9935
  return this._newData;
9935
9936
  }
9936
9937
  }
9937
- GeoDBService.ɵfac = function GeoDBService_Factory(t) { return new (t || GeoDBService)(i0.ɵɵinject(i1$3.NgxIndexedDBService), i0.ɵɵinject(i2$1.CompressionService)); };
9938
+ GeoDBService.ɵfac = function GeoDBService_Factory(t) { return new (t || GeoDBService)(i0.ɵɵinject(i1$2.NgxIndexedDBService), i0.ɵɵinject(i2$1.CompressionService)); };
9938
9939
  GeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GeoDBService, factory: GeoDBService.ɵfac, providedIn: 'root' });
9939
9940
  (function () {
9940
9941
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GeoDBService, [{
@@ -9942,7 +9943,7 @@ GeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GeoDBServic
9942
9943
  args: [{
9943
9944
  providedIn: 'root'
9944
9945
  }]
9945
- }], function () { return [{ type: i1$3.NgxIndexedDBService }, { type: i2$1.CompressionService }]; }, null);
9946
+ }], function () { return [{ type: i1$2.NgxIndexedDBService }, { type: i2$1.CompressionService }]; }, null);
9946
9947
  })();
9947
9948
 
9948
9949
  var ResponseType;
@@ -9997,7 +9998,7 @@ class GeoNetworkService {
9997
9998
  return this.networkOnline && window.navigator.onLine;
9998
9999
  }
9999
10000
  }
10000
- GeoNetworkService.ɵfac = function GeoNetworkService_Factory(t) { return new (t || GeoNetworkService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(GeoDBService), i0.ɵɵinject(i2$1.NetworkService)); };
10001
+ GeoNetworkService.ɵfac = function GeoNetworkService_Factory(t) { return new (t || GeoNetworkService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(GeoDBService), i0.ɵɵinject(i2$1.NetworkService)); };
10001
10002
  GeoNetworkService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GeoNetworkService, factory: GeoNetworkService.ɵfac, providedIn: 'root' });
10002
10003
  (function () {
10003
10004
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GeoNetworkService, [{
@@ -10005,7 +10006,7 @@ GeoNetworkService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GeoNet
10005
10006
  args: [{
10006
10007
  providedIn: 'root'
10007
10008
  }]
10008
- }], function () { return [{ type: i1$2.HttpClient }, { type: GeoDBService }, { type: i2$1.NetworkService }]; }, null);
10009
+ }], function () { return [{ type: i1$1.HttpClient }, { type: GeoDBService }, { type: i2$1.NetworkService }]; }, null);
10009
10010
  })();
10010
10011
 
10011
10012
  class LayerService {
@@ -10168,7 +10169,7 @@ class LayerService {
10168
10169
  }
10169
10170
  }
10170
10171
  }
10171
- LayerService.ɵfac = function LayerService_Factory(t) { return new (t || LayerService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(StyleService), i0.ɵɵinject(DataSourceService), i0.ɵɵinject(GeoNetworkService), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i6.AuthInterceptor, 8)); };
10172
+ LayerService.ɵfac = function LayerService_Factory(t) { return new (t || LayerService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(StyleService), i0.ɵɵinject(DataSourceService), i0.ɵɵinject(GeoNetworkService), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i6.AuthInterceptor, 8)); };
10172
10173
  LayerService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LayerService, factory: LayerService.ɵfac, providedIn: 'root' });
10173
10174
  (function () {
10174
10175
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerService, [{
@@ -10177,7 +10178,7 @@ LayerService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LayerServic
10177
10178
  providedIn: 'root'
10178
10179
  }]
10179
10180
  }], function () {
10180
- return [{ type: i1$2.HttpClient }, { type: StyleService }, { type: DataSourceService }, { type: GeoNetworkService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }, { type: i6.AuthInterceptor, decorators: [{
10181
+ return [{ type: i1$1.HttpClient }, { type: StyleService }, { type: DataSourceService }, { type: GeoNetworkService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }, { type: i6.AuthInterceptor, decorators: [{
10181
10182
  type: Optional
10182
10183
  }] }];
10183
10184
  }, null);
@@ -10213,14 +10214,23 @@ function MiniBaseMapComponent_div_1_Template(rf, ctx) {
10213
10214
  }
10214
10215
  }
10215
10216
  class MiniBaseMapComponent {
10216
- constructor(layerService, appRef) {
10217
+ constructor(layerService, appRef, cdRef) {
10217
10218
  this.layerService = layerService;
10218
10219
  this.appRef = appRef;
10220
+ this.cdRef = cdRef;
10219
10221
  this.basemap = new IgoMap({
10220
10222
  controls: {},
10221
10223
  interactions: false
10222
10224
  });
10223
10225
  }
10226
+ get display() {
10227
+ return this._display;
10228
+ }
10229
+ set display(value) {
10230
+ this._display = value;
10231
+ this.cdRef.detectChanges();
10232
+ this.basemap.ol.getView().changed();
10233
+ }
10224
10234
  get baseLayer() {
10225
10235
  return this._baseLayer;
10226
10236
  }
@@ -10294,8 +10304,8 @@ class MiniBaseMapComponent {
10294
10304
  }
10295
10305
  }
10296
10306
  }
10297
- MiniBaseMapComponent.ɵfac = function MiniBaseMapComponent_Factory(t) { return new (t || MiniBaseMapComponent)(i0.ɵɵdirectiveInject(LayerService), i0.ɵɵdirectiveInject(i0.ApplicationRef)); };
10298
- MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBaseMapComponent, selectors: [["igo-mini-basemap"]], inputs: { map: "map", disabled: "disabled", display: "display", title: "title", baseLayer: "baseLayer" }, decls: 2, vars: 1, consts: [[1, "igo-mini-basemap-container"], [3, "click", 4, "ngIf"], [3, "click"], [3, "map"], ["class", "igo-mini-basemap-title", 4, "ngIf"], [1, "igo-mini-basemap-title"]], template: function MiniBaseMapComponent_Template(rf, ctx) {
10307
+ MiniBaseMapComponent.ɵfac = function MiniBaseMapComponent_Factory(t) { return new (t || MiniBaseMapComponent)(i0.ɵɵdirectiveInject(LayerService), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
10308
+ MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBaseMapComponent, selectors: [["igo-mini-basemap"]], inputs: { map: "map", disabled: "disabled", title: "title", display: "display", baseLayer: "baseLayer" }, decls: 2, vars: 1, consts: [[1, "igo-mini-basemap-container"], [3, "click", 4, "ngIf"], [3, "click"], [3, "map"], ["class", "igo-mini-basemap-title", 4, "ngIf"], [1, "igo-mini-basemap-title"]], template: function MiniBaseMapComponent_Template(rf, ctx) {
10299
10309
  if (rf & 1) {
10300
10310
  i0.ɵɵelementStart(0, "div", 0);
10301
10311
  i0.ɵɵtemplate(1, MiniBaseMapComponent_div_1_Template, 3, 2, "div", 1);
@@ -10310,20 +10320,20 @@ MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBa
10310
10320
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MiniBaseMapComponent, [{
10311
10321
  type: Component,
10312
10322
  args: [{ selector: 'igo-mini-basemap', template: "<div class=\"igo-mini-basemap-container\">\n\n <div *ngIf=\"display\" (click)=\"changeBaseLayer(baseLayer)\">\n <igo-map-browser [map]=\"basemap\"></igo-map-browser>\n <div *ngIf='title' class='igo-mini-basemap-title'> {{title}} </div>\n </div>\n\n</div>\n", styles: [".igo-mini-basemap-container{width:80px;height:80px;background-color:#ffffff03;border:2px solid white;box-shadow:0 1px 4px #0000004d;cursor:pointer;margin-top:5px}.igo-mini-basemap-container:hover .igo-mini-basemap-title{color:#000;text-shadow:0 0 5px white}.igo-mini-basemap-container>div{width:100%;height:100%}.igo-mini-basemap-title{position:relative;top:-76px;height:76px;width:76px;text-align:center;vertical-align:bottom;color:#fff;text-shadow:0 0 5px black;white-space:normal;display:flex;align-items:flex-end;justify-content:center}\n"] }]
10313
- }], function () { return [{ type: LayerService }, { type: i0.ApplicationRef }]; }, { map: [{
10323
+ }], function () { return [{ type: LayerService }, { type: i0.ApplicationRef }, { type: i0.ChangeDetectorRef }]; }, { map: [{
10314
10324
  type: Input
10315
10325
  }], disabled: [{
10316
10326
  type: Input
10317
- }], display: [{
10318
- type: Input
10319
10327
  }], title: [{
10320
10328
  type: Input
10329
+ }], display: [{
10330
+ type: Input
10321
10331
  }], baseLayer: [{
10322
10332
  type: Input
10323
10333
  }] });
10324
10334
  })();
10325
10335
 
10326
- const _c0$i = function (a0, a1) { return { azimuth: a0, rotation: a1 }; };
10336
+ const _c0$j = function (a0, a1) { return { azimuth: a0, rotation: a1 }; };
10327
10337
  function RotationButtonComponent_div_0_Template(rf, ctx) {
10328
10338
  if (rf & 1) {
10329
10339
  const _r2 = i0.ɵɵgetCurrentView();
@@ -10340,7 +10350,7 @@ function RotationButtonComponent_div_0_Template(rf, ctx) {
10340
10350
  }
10341
10351
  if (rf & 2) {
10342
10352
  const ctx_r0 = i0.ɵɵnextContext();
10343
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 4, ctx_r0.rotated$) ? i0.ɵɵpipeBind2(2, 6, "igo.geo.mapButtons.resetRotation", i0.ɵɵpureFunction2(15, _c0$i, ctx_r0.azimuthRounded, ctx_r0.rotationRounded)) : i0.ɵɵpipeBind1(3, 9, "igo.geo.mapButtons.tipRotation"));
10353
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 4, ctx_r0.rotated$) ? i0.ɵɵpipeBind2(2, 6, "igo.geo.mapButtons.resetRotation", i0.ɵɵpureFunction2(15, _c0$j, ctx_r0.azimuthRounded, ctx_r0.rotationRounded)) : i0.ɵɵpipeBind1(3, 9, "igo.geo.mapButtons.tipRotation"));
10344
10354
  i0.ɵɵadvance(4);
10345
10355
  i0.ɵɵproperty("color", ctx_r0.color)("disabled", i0.ɵɵpipeBind1(5, 11, ctx_r0.rotated$) === false);
10346
10356
  i0.ɵɵadvance(2);
@@ -10378,7 +10388,7 @@ RotationButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Rot
10378
10388
  if (rf & 2) {
10379
10389
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.rotated$) && !ctx.showIfNoRotation || ctx.showIfNoRotation);
10380
10390
  }
10381
- }, dependencies: [i1$1.NgIf, i1$1.NgStyle, i2.MatIcon, i3.MatButton, i4.MatTooltip, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-rotation-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}.igo-rotation-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){button[_ngcontent-%COMP%]:disabled, [_nghost-%COMP%] button .mat-button-ripple-round:disabled{display:none}}"] });
10391
+ }, dependencies: [i1.NgIf, i1.NgStyle, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i1.AsyncPipe, i7.TranslatePipe], styles: [".igo-rotation-button-container[_ngcontent-%COMP%]{width:40px;background-color:#fff}.igo-rotation-button-container[_ngcontent-%COMP%]:hover{background-color:#efefef}button[_ngcontent-%COMP%], [_nghost-%COMP%] button .mat-button-ripple-round{border-radius:0}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){button[_ngcontent-%COMP%]:disabled, [_nghost-%COMP%] button .mat-button-ripple-round:disabled{display:none}}"] });
10382
10392
  (function () {
10383
10393
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RotationButtonComponent, [{
10384
10394
  type: Component,
@@ -10663,7 +10673,7 @@ InfoSectionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InfoSe
10663
10673
  if (rf & 2) {
10664
10674
  i0.ɵɵproperty("ngIf", ctx.infoContent && ctx.infoContent.length);
10665
10675
  }
10666
- }, dependencies: [i1$1.NgIf], styles: [".infoSection[_ngcontent-%COMP%]{border-radius:10px;background-color:#6e6e6e66;padding:2.5px;position:absolute;text-align:center;top:5px;left:50%;text-shadow:0 0 5px white,0 0 10px white,0 0 15px white}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.infoSection[_ngcontent-%COMP%]{top:50px;left:10%}}"] });
10676
+ }, dependencies: [i1.NgIf], styles: [".infoSection[_ngcontent-%COMP%]{border-radius:10px;background-color:#6e6e6e66;padding:2.5px;position:absolute;text-align:center;top:5px;left:50%;text-shadow:0 0 5px white,0 0 10px white,0 0 15px white}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.infoSection[_ngcontent-%COMP%]{top:50px;left:10%}}"] });
10667
10677
  (function () {
10668
10678
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoSectionComponent, [{
10669
10679
  type: Component,
@@ -10799,29 +10809,119 @@ class QueryService {
10799
10809
  this.messageService.remove(id);
10800
10810
  });
10801
10811
  }
10802
- return layers
10803
- .filter((layer) => layer.visible && layer.isInResolutionsRange)
10812
+ const newLayers = layers.filter((layer) => layer.visible && layer.isInResolutionsRange)
10804
10813
  .map((layer) => this.queryLayer(layer, options));
10814
+ // the directive accept array in this format [observable, observable...]
10815
+ // if we use multiple 'url' in queryUrl so the result => this form [observable, observable, [observable, observable]]
10816
+ // so we need to flat the array
10817
+ let flatArray = [].concat.apply([], newLayers);
10818
+ return flatArray;
10805
10819
  }
10806
10820
  queryLayer(layer, options) {
10807
10821
  const url = this.getQueryUrl(layer.dataSource, options, false, layer.map.viewController.getExtent());
10808
10822
  if (!url) {
10809
10823
  return of([]);
10810
10824
  }
10811
- if (layer.dataSource.options.queryFormat ===
10812
- QueryFormat.HTMLGML2) {
10813
- const urlGml = this.getQueryUrl(layer.dataSource, options, true);
10814
- return this.http.get(urlGml, { responseType: 'text' }).pipe(mergeMap(gmlRes => {
10815
- const mergedGML = this.mergeGML(gmlRes, url, layer);
10816
- const imposedGeom = mergedGML[0];
10817
- const imposedProperties = mergedGML[1];
10818
- return this.http
10819
- .get(url, { responseType: 'text' })
10820
- .pipe(map(res => this.extractData(res, layer, options, url, imposedGeom, imposedProperties)));
10821
- }));
10825
+ const resolution = layer.map.viewController.getResolution();
10826
+ const scale = layer.map.viewController.getScale();
10827
+ if (layer.dataSource.options.queryFormat === QueryFormat.HTMLGML2) {
10828
+ if (typeof url === 'string') {
10829
+ const urlGml = this.getQueryUrl(layer.dataSource, options, true);
10830
+ return this.http.get(urlGml, { responseType: 'text' }).pipe(mergeMap(gmlRes => {
10831
+ const mergedGML = this.mergeGML(gmlRes, url, layer);
10832
+ const imposedGeom = mergedGML[0];
10833
+ const imposedProperties = mergedGML[1];
10834
+ return this.http
10835
+ .get(url, { responseType: 'text' })
10836
+ .pipe(map(res => this.extractData(res, layer, options, url, imposedGeom, imposedProperties)));
10837
+ }));
10838
+ }
10839
+ const urlGmls = this.getQueryUrl(layer.dataSource, options, true);
10840
+ let observables = [];
10841
+ for (let i = 0; i < urlGmls.length; i++) {
10842
+ const element = urlGmls[i];
10843
+ if (this.checkScaleAndResolution(resolution, scale, element)) {
10844
+ observables.push(this.requestDataForHTMLGML2(element.url, url[i].url, layer, options));
10845
+ }
10846
+ }
10847
+ return observables;
10848
+ }
10849
+ else {
10850
+ if (typeof url === 'string') {
10851
+ const request = this.http.get(url, { responseType: 'text' });
10852
+ return request.pipe(map(res => this.extractData(res, layer, options, url)));
10853
+ }
10854
+ let observables = [];
10855
+ for (let i = 0; i < url.length; i++) {
10856
+ const element = url[i];
10857
+ if (this.checkScaleAndResolution(resolution, scale, element)) {
10858
+ const request = this.http.get(element.url, { responseType: 'text' });
10859
+ observables.push(request.pipe(map(res => this.extractData(res, layer, options, element.url))));
10860
+ }
10861
+ }
10862
+ return observables;
10863
+ }
10864
+ }
10865
+ requestDataForHTMLGML2(urlGml, url, layer, options) {
10866
+ return this.http.get(urlGml, { responseType: 'text' }).pipe(mergeMap(gmlRes => {
10867
+ const mergedGML = this.mergeGML(gmlRes, url, layer);
10868
+ const imposedGeom = mergedGML[0];
10869
+ const imposedProperties = mergedGML[1];
10870
+ return this.http
10871
+ .get(url, { responseType: 'text' })
10872
+ .pipe(map(res => this.extractData(res, layer, options, url, imposedGeom, imposedProperties)));
10873
+ }));
10874
+ }
10875
+ checkScaleAndResolution(resolution, scale, element) {
10876
+ let checkScale;
10877
+ let checkResolution;
10878
+ if (!element.minResolution && !element.maxResolution && !element.minScale && !element.maxScale) {
10879
+ return true;
10880
+ }
10881
+ else {
10882
+ /******************* checking Resolution *******************/
10883
+ if (element.minResolution && element.maxResolution) {
10884
+ // if "minResolution" and "maxResolution" exists check if resoltion is between
10885
+ if ((resolution >= element.minResolution) && (resolution <= element.maxResolution)) {
10886
+ checkResolution = true;
10887
+ }
10888
+ }
10889
+ else {
10890
+ // check if "minResolution" or "maxResolution" exists
10891
+ if (element.minResolution && resolution >= element.minResolution) {
10892
+ checkResolution = true;
10893
+ }
10894
+ if (element.maxResolution && resolution <= element.maxResolution) {
10895
+ checkResolution = true;
10896
+ }
10897
+ }
10898
+ /******************* checking Scale *******************/
10899
+ if (element.minScale && element.maxScale) {
10900
+ // if "minScale" and "maxScale" exists check if scale is between
10901
+ if ((scale > element.minScale) && (scale < element.maxScale)) {
10902
+ checkScale = true;
10903
+ }
10904
+ }
10905
+ else {
10906
+ // check if "minScale" or "maxScale" exists
10907
+ if (element.maxScale && scale <= element.maxScale) {
10908
+ checkScale = true;
10909
+ }
10910
+ if (element.minScale && scale >= element.minScale) {
10911
+ checkScale = true;
10912
+ }
10913
+ }
10914
+ /******************* result of checking *******************/
10915
+ if (checkScale === true && checkResolution === true) {
10916
+ return true;
10917
+ }
10918
+ else if ((checkResolution === true && !checkScale) || (checkScale === true && !checkResolution)) {
10919
+ return true;
10920
+ }
10921
+ else {
10922
+ return false;
10923
+ }
10822
10924
  }
10823
- const request = this.http.get(url, { responseType: 'text' });
10824
- return request.pipe(map(res => this.extractData(res, layer, options, url)));
10825
10925
  }
10826
10926
  mergeGML(gmlRes, url, layer) {
10827
10927
  var _a, _b;
@@ -10915,18 +11015,22 @@ class QueryService {
10915
11015
  type: olmline.getType(),
10916
11016
  coordinates: olmline.getCoordinates()
10917
11017
  };
11018
+ break;
10918
11019
  case 'Point':
10919
11020
  returnGeometry = olmpts;
11021
+ break;
10920
11022
  case 'Polygon':
10921
11023
  returnGeometry = {
10922
11024
  type: olmpoly.getType(),
10923
11025
  coordinates: olmpoly.getCoordinates()
10924
11026
  };
11027
+ break;
10925
11028
  case 'MultiPolygon':
10926
11029
  returnGeometry = {
10927
11030
  type: olmpoly.getType(),
10928
11031
  coordinates: olmpoly.getCoordinates()
10929
11032
  };
11033
+ break;
10930
11034
  }
10931
11035
  const imposedProperties = {};
10932
11036
  if (queryTileField) {
@@ -11230,7 +11334,7 @@ class QueryService {
11230
11334
  }
11231
11335
  getQueryUrl(datasource, options, forceGML2 = false, mapExtent) {
11232
11336
  let url;
11233
- if (datasource.options.queryUrl) {
11337
+ if (datasource.options.queryUrls) {
11234
11338
  return this.getCustomQueryUrl(datasource, options, mapExtent);
11235
11339
  }
11236
11340
  switch (datasource.constructor) {
@@ -11369,19 +11473,39 @@ class QueryService {
11369
11473
  */
11370
11474
  getCustomQueryUrl(datasource, options, mapExtent) {
11371
11475
  const extent = olextent.getForViewAndSize(options.coordinates, options.resolution, 0, [101, 101]);
11372
- let url = datasource.options.queryUrl.replace(/\{bbox\}/g, extent.join(','))
11373
- .replace(/\{xmin\}/g, mapExtent[0].toString())
11374
- .replace(/\{ymin\}/g, mapExtent[1].toString())
11375
- .replace(/\{xmax\}/g, mapExtent[2].toString())
11376
- .replace(/\{ymax\}/g, mapExtent[3].toString())
11377
- .replace(/\{x\}/g, options.coordinates[0].toString())
11378
- .replace(/\{y\}/g, options.coordinates[1].toString())
11379
- .replace(/\{resolution\}/g, options.resolution.toString())
11380
- .replace(/\{srid\}/g, options.projection.replace('EPSG:', ''));
11381
- return url;
11476
+ return datasource.options.queryUrls.map(item => {
11477
+ let data = {
11478
+ url: item.url.replace(/\{bbox\}/g, extent.join(','))
11479
+ .replace(/\{x\}/g, options.coordinates[0].toString())
11480
+ .replace(/\{y\}/g, options.coordinates[1].toString())
11481
+ .replace(/\{resolution\}/g, options.resolution.toString())
11482
+ .replace(/\{srid\}/g, options.projection.replace('EPSG:', ''))
11483
+ };
11484
+ // if the queryFormat changed to "QueryFormat.HTMLGML2": mapExtent will be undefined
11485
+ // we need to check "mapExtent" befor replace variables in the url
11486
+ if (mapExtent) {
11487
+ data.url.replace(/\{xmin\}/g, mapExtent[0].toString())
11488
+ .replace(/\{ymin\}/g, mapExtent[1].toString())
11489
+ .replace(/\{xmax\}/g, mapExtent[2].toString())
11490
+ .replace(/\{ymax\}/g, mapExtent[3].toString());
11491
+ }
11492
+ if (item.maxResolution) {
11493
+ data.maxResolution = item.maxResolution;
11494
+ }
11495
+ if (item.minResolution) {
11496
+ data.minResolution = item.minResolution;
11497
+ }
11498
+ if (item.minScale) {
11499
+ data.minScale = item.minScale;
11500
+ }
11501
+ if (item.maxScale) {
11502
+ data.maxScale = item.maxScale;
11503
+ }
11504
+ return data;
11505
+ });
11382
11506
  }
11383
11507
  }
11384
- QueryService.ɵfac = function QueryService_Factory(t) { return new (t || QueryService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.LanguageService)); };
11508
+ QueryService.ɵfac = function QueryService_Factory(t) { return new (t || QueryService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.LanguageService)); };
11385
11509
  QueryService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryService, factory: QueryService.ɵfac, providedIn: 'root' });
11386
11510
  (function () {
11387
11511
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryService, [{
@@ -11389,7 +11513,7 @@ QueryService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryServic
11389
11513
  args: [{
11390
11514
  providedIn: 'root'
11391
11515
  }]
11392
- }], function () { return [{ type: i1$2.HttpClient }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }]; }, null);
11516
+ }], function () { return [{ type: i1$1.HttpClient }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }]; }, null);
11393
11517
  })();
11394
11518
 
11395
11519
  /**
@@ -12572,7 +12696,7 @@ class CatalogService {
12572
12696
  return layersQueryFormat;
12573
12697
  }
12574
12698
  }
12575
- CatalogService.ɵfac = function CatalogService_Factory(t) { return new (t || CatalogService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.ConfigService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(CapabilitiesService)); };
12699
+ CatalogService.ɵfac = function CatalogService_Factory(t) { return new (t || CatalogService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.ConfigService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(CapabilitiesService)); };
12576
12700
  CatalogService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CatalogService, factory: CatalogService.ɵfac, providedIn: 'root' });
12577
12701
  (function () {
12578
12702
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CatalogService, [{
@@ -12580,7 +12704,7 @@ CatalogService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CatalogSe
12580
12704
  args: [{
12581
12705
  providedIn: 'root'
12582
12706
  }]
12583
- }], function () { return [{ type: i1$2.HttpClient }, { type: i2$1.ConfigService }, { type: i2$1.LanguageService }, { type: i2$1.MessageService }, { type: CapabilitiesService }]; }, null);
12707
+ }], function () { return [{ type: i1$1.HttpClient }, { type: i2$1.ConfigService }, { type: i2$1.LanguageService }, { type: i2$1.MessageService }, { type: CapabilitiesService }]; }, null);
12584
12708
  })();
12585
12709
 
12586
12710
  function CatalogBrowserComponent_ng_template_1_ng_container_0_Template(rf, ctx) {
@@ -12597,7 +12721,7 @@ function CatalogBrowserComponent_ng_template_1_ng_container_0_Template(rf, ctx)
12597
12721
  const item_r1 = i0.ɵɵnextContext().$implicit;
12598
12722
  const ctx_r2 = i0.ɵɵnextContext();
12599
12723
  i0.ɵɵadvance(1);
12600
- i0.ɵɵproperty("catalog", ctx_r2.catalog)("group", item_r1)("state", ctx_r2.store.state)("resolution", i0.ɵɵpipeBind1(2, 7, ctx_r2.resolution$))("catalogAllowLegend", ctx_r2.catalogAllowLegend)("collapsed", ctx_r2.store.count === 1 ? false : true)("toggleCollapsed", ctx_r2.toggleCollapsedGroup);
12724
+ i0.ɵɵproperty("catalog", ctx_r2.catalog)("group", item_r1)("map", ctx_r2.map)("state", ctx_r2.store.state)("resolution", i0.ɵɵpipeBind1(2, 8, ctx_r2.resolution$))("catalogAllowLegend", ctx_r2.catalogAllowLegend)("collapsed", ctx_r2.store.count === 1 ? false : true)("toggleCollapsed", ctx_r2.toggleCollapsedGroup);
12601
12725
  }
12602
12726
  }
12603
12727
  function CatalogBrowserComponent_ng_template_1_ng_container_1_Template(rf, ctx) {
@@ -12614,13 +12738,13 @@ function CatalogBrowserComponent_ng_template_1_ng_container_1_Template(rf, ctx)
12614
12738
  const item_r1 = i0.ɵɵnextContext().$implicit;
12615
12739
  const ctx_r3 = i0.ɵɵnextContext();
12616
12740
  i0.ɵɵadvance(1);
12617
- i0.ɵɵproperty("layer", item_r1)("resolution", i0.ɵɵpipeBind1(2, 4, ctx_r3.resolution$))("catalogAllowLegend", ctx_r3.catalogAllowLegend)("added", ctx_r3.store.state.get(item_r1).added);
12741
+ i0.ɵɵproperty("layer", item_r1)("map", ctx_r3.map)("resolution", i0.ɵɵpipeBind1(2, 5, ctx_r3.resolution$))("catalogAllowLegend", ctx_r3.catalogAllowLegend)("added", ctx_r3.store.state.get(item_r1).added);
12618
12742
  }
12619
12743
  }
12620
12744
  function CatalogBrowserComponent_ng_template_1_Template(rf, ctx) {
12621
12745
  if (rf & 1) {
12622
- i0.ɵɵtemplate(0, CatalogBrowserComponent_ng_template_1_ng_container_0_Template, 3, 9, "ng-container", 2);
12623
- i0.ɵɵtemplate(1, CatalogBrowserComponent_ng_template_1_ng_container_1_Template, 3, 6, "ng-container", 2);
12746
+ i0.ɵɵtemplate(0, CatalogBrowserComponent_ng_template_1_ng_container_0_Template, 3, 10, "ng-container", 2);
12747
+ i0.ɵɵtemplate(1, CatalogBrowserComponent_ng_template_1_ng_container_1_Template, 3, 7, "ng-container", 2);
12624
12748
  }
12625
12749
  if (rf & 2) {
12626
12750
  const item_r1 = ctx.$implicit;
@@ -12809,7 +12933,7 @@ class CatalogBrowserComponent {
12809
12933
  }
12810
12934
  }
12811
12935
  CatalogBrowserComponent.ɵfac = function CatalogBrowserComponent_Factory(t) { return new (t || CatalogBrowserComponent)(i0.ɵɵdirectiveInject(LayerService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
12812
- CatalogBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogBrowserComponent, selectors: [["igo-catalog-browser"]], inputs: { catalogAllowLegend: "catalogAllowLegend", catalog: "catalog", store: "store", map: "map", toggleCollapsedGroup: "toggleCollapsedGroup" }, decls: 3, vars: 5, consts: [[3, "navigation", "selection"], ["ngFor", "", 3, "ngForOf"], [4, "ngIf"], [3, "catalog", "group", "state", "resolution", "catalogAllowLegend", "collapsed", "toggleCollapsed", "addedChange", "layerAddedChange"], ["igoListItem", "", 3, "layer", "resolution", "catalogAllowLegend", "added", "addedChange"]], template: function CatalogBrowserComponent_Template(rf, ctx) {
12936
+ CatalogBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogBrowserComponent, selectors: [["igo-catalog-browser"]], inputs: { catalogAllowLegend: "catalogAllowLegend", catalog: "catalog", store: "store", map: "map", toggleCollapsedGroup: "toggleCollapsedGroup" }, decls: 3, vars: 5, consts: [[3, "navigation", "selection"], ["ngFor", "", 3, "ngForOf"], [4, "ngIf"], [3, "catalog", "group", "map", "state", "resolution", "catalogAllowLegend", "collapsed", "toggleCollapsed", "addedChange", "layerAddedChange"], ["igoListItem", "", 3, "layer", "map", "resolution", "catalogAllowLegend", "added", "addedChange"]], template: function CatalogBrowserComponent_Template(rf, ctx) {
12813
12937
  if (rf & 1) {
12814
12938
  i0.ɵɵelementStart(0, "igo-list", 0);
12815
12939
  i0.ɵɵtemplate(1, CatalogBrowserComponent_ng_template_1_Template, 2, 2, "ng-template", 1);
@@ -12825,7 +12949,7 @@ CatalogBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cat
12825
12949
  (function () {
12826
12950
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CatalogBrowserComponent, [{
12827
12951
  type: Component,
12828
- args: [{ selector: 'igo-catalog-browser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <igo-catalog-browser-group\n [catalog]=\"catalog\"\n [group]=\"item\"\n [state]=\"store.state\"\n [resolution]=\"resolution$ | async\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [collapsed]=\"(store.count === 1) ? false : true\"\n [toggleCollapsed]=\"toggleCollapsedGroup\"\n (addedChange)=\"onGroupAddedChange($event)\"\n (layerAddedChange)=\"onLayerAddedChange($event)\">\n </igo-catalog-browser-group>\n </ng-container>\n\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"item\"\n [resolution]=\"resolution$ | async\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"store.state.get(item).added\"\n (addedChange)=\"onLayerAddedChange($event)\">\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</igo-list>\n" }]
12952
+ args: [{ selector: 'igo-catalog-browser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <igo-catalog-browser-group\n [catalog]=\"catalog\"\n [group]=\"item\"\n [map]=\"map\"\n [state]=\"store.state\"\n [resolution]=\"resolution$ | async\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [collapsed]=\"(store.count === 1) ? false : true\"\n [toggleCollapsed]=\"toggleCollapsedGroup\"\n (addedChange)=\"onGroupAddedChange($event)\"\n (layerAddedChange)=\"onLayerAddedChange($event)\">\n </igo-catalog-browser-group>\n </ng-container>\n\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"item\"\n [map]=\"map\"\n [resolution]=\"resolution$ | async\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"store.state.get(item).added\"\n (addedChange)=\"onLayerAddedChange($event)\">\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</igo-list>\n" }]
12829
12953
  }], function () { return [{ type: LayerService }, { type: i0.ChangeDetectorRef }]; }, { catalogAllowLegend: [{
12830
12954
  type: Input
12831
12955
  }], catalog: [{
@@ -12839,7 +12963,7 @@ CatalogBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cat
12839
12963
  }] });
12840
12964
  })();
12841
12965
 
12842
- const _c0$h = ["renderedLegend"];
12966
+ const _c0$i = ["renderedLegend"];
12843
12967
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template(rf, ctx) {
12844
12968
  if (rf & 1) {
12845
12969
  const _r15 = i0.ɵɵgetCurrentView();
@@ -13223,10 +13347,10 @@ class LayerLegendComponent {
13223
13347
  this.imagesHeight[id] = elemRef.height;
13224
13348
  }
13225
13349
  }
13226
- LayerLegendComponent.ɵfac = function LayerLegendComponent_Factory(t) { return new (t || LayerLegendComponent)(i0.ɵɵdirectiveInject(CapabilitiesService), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$1.ConfigService), i0.ɵɵdirectiveInject(i1$2.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
13350
+ LayerLegendComponent.ɵfac = function LayerLegendComponent_Factory(t) { return new (t || LayerLegendComponent)(i0.ɵɵdirectiveInject(CapabilitiesService), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$1.ConfigService), i0.ɵɵdirectiveInject(i1$1.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
13227
13351
  LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerLegendComponent, selectors: [["igo-layer-legend"]], viewQuery: function LayerLegendComponent_Query(rf, ctx) {
13228
13352
  if (rf & 1) {
13229
- i0.ɵɵviewQuery(_c0$h, 5);
13353
+ i0.ɵɵviewQuery(_c0$i, 5);
13230
13354
  }
13231
13355
  if (rf & 2) {
13232
13356
  let _t;
@@ -13240,12 +13364,12 @@ LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerL
13240
13364
  if (rf & 2) {
13241
13365
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.legendItems$));
13242
13366
  }
13243
- }, dependencies: [i13.MatFormField, i2$2.NgControlStatus, i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i1$1.NgStyle, i2$2.NgModel, i2.MatIcon, i15.MatSelect, i9.MatOption, i4.MatTooltip, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i5$1.CollapseDirective, i5$1.ImageErrorDirective, i1$1.AsyncPipe, i7.TranslatePipe, i5$1.SanitizeHtmlPipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
13367
+ }, dependencies: [i13.MatFormField, i2$2.NgControlStatus, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2$2.NgModel, i2.MatIcon, i15.MatSelect, i9.MatOption, i4.MatTooltip, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i5$1.CollapseDirective, i5$1.ImageErrorDirective, i1.AsyncPipe, i7.TranslatePipe, i5$1.SanitizeHtmlPipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
13244
13368
  (function () {
13245
13369
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerLegendComponent, [{
13246
13370
  type: Component,
13247
13371
  args: [{ selector: 'igo-layer-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"legendItems$ | async as items\">\n <ng-container *ngIf=\"items.length; else noItems\">\n <ng-container *ngFor=\"let item of items.slice().reverse()\" #renderedLegends>\n <div *ngIf=\"getLegend; else noItems\">\n <mat-list-item *ngIf=\"item.title\">\n <mat-icon\n id=\"legend-toggle\"\n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse\n [target]=\"legend\"\n [collapsed]=\"(item.collapsed)\"\n (toggle)=\"toggleLegendItem($event, item)\"\n svgIcon=\"chevron-up\">\n </mat-icon>\n <h4 matLine>{{computeItemTitle(item) | async}} </h4>\n </mat-list-item>\n <div #legend class=\"igo-layer-legend\" [ngClass]=\"{'with-title': item.title}\">\n <div *ngIf=\"currentStyle !== undefined\">\n <mat-form-field>\n <mat-select tooltip-position=\"below\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.legend.selectStyle' | translate\" [(ngModel)]=\"currentStyle\"\n (selectionChange)=\"onChangeStyle()\">\n <mat-option *ngFor=\"let style of styles\" [value]=\"style.name\">{{style.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div *ngIf=\"!(item.collapsed)\">\n <div *ngIf=\"item.url\">\n <img igoImageError *ngIf=\"item.imgGraphValue\" hideError=\"true\" #renderedLegend id=\"{{item.title}}\" (load)=\"onLoadImage(item.title)\"\n [src]=\"item.imgGraphValue\"\n alt=\"{{'igo.geo.layer.legend.loadingLegendText' | translate}}\">\n <small *ngIf=\"imagesHeight[item.title]<16\">\n {{'igo.geo.layer.legend.noLegendScale' | translate}}\n </small>\n </div>\n <div\n [ngStyle]=\"item.style\"\n [innerHTML]=\"item.html | sanitizeHtml\"\n *ngIf=\"item.html\">\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #noItems>\n <small>\n {{'igo.geo.layer.legend.noLegendText' | translate}}\n </small>\n </ng-template>\n\n</ng-container>\n", styles: [".igo-layer-legend.with-title{padding-left:18px}img:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
13248
- }], function () { return [{ type: CapabilitiesService }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }, { type: i1$2.HttpClient }, { type: i0.ChangeDetectorRef }]; }, { updateLegendOnResolutionChange: [{
13372
+ }], function () { return [{ type: CapabilitiesService }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }, { type: i1$1.HttpClient }, { type: i0.ChangeDetectorRef }]; }, { updateLegendOnResolutionChange: [{
13249
13373
  type: Input
13250
13374
  }], renderedLegends: [{
13251
13375
  type: ViewChildren,
@@ -13283,7 +13407,7 @@ function CatalogBrowserLayerComponent_button_4_Template(rf, ctx) {
13283
13407
  i0.ɵɵproperty("ngIf", ctx_r1.layer.externalProvider);
13284
13408
  }
13285
13409
  }
13286
- function CatalogBrowserLayerComponent_igo_layer_legend_13_Template(rf, ctx) {
13410
+ function CatalogBrowserLayerComponent_igo_layer_legend_19_Template(rf, ctx) {
13287
13411
  if (rf & 1) {
13288
13412
  i0.ɵɵelement(0, "igo-layer-legend", 3);
13289
13413
  i0.ɵɵpipe(1, "async");
@@ -13301,6 +13425,7 @@ class CatalogBrowserLayerComponent {
13301
13425
  this.layerService = layerService;
13302
13426
  this.inRange$ = new BehaviorSubject(true);
13303
13427
  this.isPreview$ = new BehaviorSubject(false);
13428
+ this.isVisible$ = new BehaviorSubject(false);
13304
13429
  this.layerLegendShown$ = new BehaviorSubject(false);
13305
13430
  this.igoLayer$ = new BehaviorSubject(undefined);
13306
13431
  this.mouseInsideAdd = false;
@@ -13328,11 +13453,19 @@ class CatalogBrowserLayerComponent {
13328
13453
  return getEntityIcon(this.layer) || 'layers';
13329
13454
  }
13330
13455
  ngOnInit() {
13331
- this.isInResolutionsRange();
13332
13456
  this.isPreview$$ = this.isPreview$.subscribe(value => this.addedLayerIsPreview.emit(value));
13457
+ this.layers$$ = this.map.layers$.subscribe(() => {
13458
+ this.isVisible();
13459
+ });
13460
+ this.resolution$$ = this.map.viewController.resolution$.subscribe((resolution) => {
13461
+ this.isInResolutionsRange(resolution);
13462
+ this.isVisible();
13463
+ });
13333
13464
  }
13334
13465
  ngOnDestroy() {
13335
13466
  this.isPreview$$.unsubscribe();
13467
+ this.resolution$$.unsubscribe();
13468
+ this.layers$$.unsubscribe();
13336
13469
  }
13337
13470
  computeTitleTooltip() {
13338
13471
  const layerOptions = this.layer.options;
@@ -13438,19 +13571,41 @@ class CatalogBrowserLayerComponent {
13438
13571
  haveGroup() {
13439
13572
  return !(!this.layer.address || this.layer.address.split('.').length === 1);
13440
13573
  }
13441
- isInResolutionsRange() {
13442
- const minResolution = this.layer.options.minResolution || 0;
13443
- const maxResolution = this.layer.options.maxResolution || Infinity;
13444
- this.inRange$.next(this.resolution >= minResolution && this.resolution <= maxResolution);
13445
- return this.inRange$.value;
13574
+ isInResolutionsRange(resolution) {
13575
+ const minResolution = (!this.layer.options.minResolution || Number.isNaN(this.layer.options.minResolution))
13576
+ ? 0 : this.layer.options.minResolution;
13577
+ const maxResolution = (!this.layer.options.maxResolution || Number.isNaN(this.layer.options.maxResolution))
13578
+ ? Infinity : this.layer.options.maxResolution;
13579
+ this.inRange$.next(resolution >= minResolution && resolution <= maxResolution);
13580
+ }
13581
+ isVisible() {
13582
+ var _a, _b;
13583
+ if ((_a = this.layer) === null || _a === void 0 ? void 0 : _a.id) {
13584
+ const oLayer = this.map.getLayerById((_b = this.layer) === null || _b === void 0 ? void 0 : _b.id);
13585
+ oLayer ? this.isVisible$.next(oLayer.visible) : this.isVisible$.next(false);
13586
+ }
13587
+ }
13588
+ getBadgeIcon() {
13589
+ if (this.inRange$.getValue()) {
13590
+ return this.isVisible$.getValue() ? '' : 'eye-off';
13591
+ }
13592
+ else {
13593
+ return 'eye-off';
13594
+ }
13446
13595
  }
13447
13596
  computeTooltip() {
13448
13597
  if (this.added) {
13449
- return this.isPreview$.value
13450
- ? 'igo.geo.catalog.layer.addToMap'
13451
- : this.inRange$.value
13598
+ if (this.isPreview$.value) {
13599
+ return 'igo.geo.catalog.layer.addToMap';
13600
+ }
13601
+ else if (this.inRange$.value) {
13602
+ return this.isVisible$.value
13452
13603
  ? 'igo.geo.catalog.layer.removeFromMap'
13453
- : 'igo.geo.catalog.layer.removeFromMapOutRange';
13604
+ : 'igo.geo.catalog.layer.removeFromMapNotVisible';
13605
+ }
13606
+ else {
13607
+ return 'igo.geo.catalog.layer.removeFromMapOutRange';
13608
+ }
13454
13609
  }
13455
13610
  else {
13456
13611
  return this.inRange$.value
@@ -13460,7 +13615,7 @@ class CatalogBrowserLayerComponent {
13460
13615
  }
13461
13616
  }
13462
13617
  CatalogBrowserLayerComponent.ɵfac = function CatalogBrowserLayerComponent_Factory(t) { return new (t || CatalogBrowserLayerComponent)(i0.ɵɵdirectiveInject(LayerService)); };
13463
- CatalogBrowserLayerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogBrowserLayerComponent, selectors: [["igo-catalog-browser-layer"]], inputs: { resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", layer: "layer", added: "added" }, outputs: { addedChange: "addedChange", addedLayerIsPreview: "addedLayerIsPreview" }, decls: 16, vars: 21, consts: [["mat-list-avatar", "", "svgIcon", "blank", 4, "ngIf"], ["mat-line", "", "matTooltipShowDelay", "500", 3, "ngClass", "matTooltip", "click"], ["disabled", "true", "mat-icon-button", "", 4, "ngIf"], [3, "layer"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click"], ["matBadge", "icon", "igoMatBadgeIcon", "eye-off", "igoMatBadgeInverseColor", "true", "matBadgeDisabled", "true", "matBadgeSize", "small", "matBadgePosition", "after", 3, "matBadgeHidden", "svgIcon"], [1, "igo-cataloglayer-legend-container"], ["legend", ""], [3, "layer", 4, "ngIf"], ["mat-list-avatar", "", "svgIcon", "blank"], ["disabled", "true", "mat-icon-button", ""], ["class", "igo-cataloglayer-external-icon", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 3, "matTooltip", "click", 4, "ngIf"], ["tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 1, "igo-cataloglayer-external-icon", 3, "matTooltip", "click"]], template: function CatalogBrowserLayerComponent_Template(rf, ctx) {
13618
+ CatalogBrowserLayerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogBrowserLayerComponent, selectors: [["igo-catalog-browser-layer"]], inputs: { resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", layer: "layer", map: "map", added: "added" }, outputs: { addedChange: "addedChange", addedLayerIsPreview: "addedLayerIsPreview" }, decls: 22, vars: 35, consts: [["mat-list-avatar", "", "svgIcon", "blank", 4, "ngIf"], ["mat-line", "", "matTooltipShowDelay", "500", 3, "ngClass", "matTooltip", "click"], ["disabled", "true", "mat-icon-button", "", 4, "ngIf"], [3, "layer"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click"], ["matBadge", "icon", "igoMatBadgeColor", "rgba(0,0,0,0.87)", "igoMatBadgeBackgroundColor", "none", "igoMatBadgeInverseColor", "true", "matBadgeSize", "small", "matBadgePosition", "after", 3, "igoMatBadgeIcon", "matBadgeHidden", "matBadgeDisabled", "svgIcon"], [1, "igo-cataloglayer-legend-container"], ["legend", ""], [3, "layer", 4, "ngIf"], ["mat-list-avatar", "", "svgIcon", "blank"], ["disabled", "true", "mat-icon-button", ""], ["class", "igo-cataloglayer-external-icon", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 3, "matTooltip", "click", 4, "ngIf"], ["tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 1, "igo-cataloglayer-external-icon", 3, "matTooltip", "click"]], template: function CatalogBrowserLayerComponent_Template(rf, ctx) {
13464
13619
  if (rf & 1) {
13465
13620
  i0.ɵɵelementStart(0, "mat-list-item");
13466
13621
  i0.ɵɵtemplate(1, CatalogBrowserLayerComponent_mat_icon_1_Template, 1, 0, "mat-icon", 0);
@@ -13476,11 +13631,17 @@ CatalogBrowserLayerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
13476
13631
  i0.ɵɵpipe(8, "async");
13477
13632
  i0.ɵɵelement(9, "mat-icon", 5);
13478
13633
  i0.ɵɵpipe(10, "async");
13479
- i0.ɵɵelementEnd()();
13480
- i0.ɵɵelementStart(11, "div", 6, 7);
13481
- i0.ɵɵtemplate(13, CatalogBrowserLayerComponent_igo_layer_legend_13_Template, 2, 3, "igo-layer-legend", 8);
13634
+ i0.ɵɵpipe(11, "async");
13635
+ i0.ɵɵpipe(12, "async");
13636
+ i0.ɵɵpipe(13, "async");
13482
13637
  i0.ɵɵpipe(14, "async");
13483
13638
  i0.ɵɵpipe(15, "async");
13639
+ i0.ɵɵpipe(16, "async");
13640
+ i0.ɵɵelementEnd()();
13641
+ i0.ɵɵelementStart(17, "div", 6, 7);
13642
+ i0.ɵɵtemplate(19, CatalogBrowserLayerComponent_igo_layer_legend_19_Template, 2, 3, "igo-layer-legend", 8);
13643
+ i0.ɵɵpipe(20, "async");
13644
+ i0.ɵɵpipe(21, "async");
13484
13645
  i0.ɵɵelementEnd();
13485
13646
  }
13486
13647
  if (rf & 2) {
@@ -13495,23 +13656,25 @@ CatalogBrowserLayerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
13495
13656
  i0.ɵɵadvance(1);
13496
13657
  i0.ɵɵproperty("layer", ctx.layer);
13497
13658
  i0.ɵɵadvance(1);
13498
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(7, 11, ctx.computeTooltip()))("color", i0.ɵɵpipeBind1(8, 13, ctx.isPreview$) ? "" : ctx.added ? "warn" : "");
13659
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(7, 13, ctx.computeTooltip()))("color", i0.ɵɵpipeBind1(8, 15, ctx.isPreview$) ? "" : ctx.added ? "warn" : "");
13499
13660
  i0.ɵɵadvance(3);
13500
- i0.ɵɵproperty("matBadgeHidden", ctx.isInResolutionsRange())("svgIcon", i0.ɵɵpipeBind1(10, 15, ctx.isPreview$) ? "plus" : ctx.added ? "delete" : "plus");
13501
- i0.ɵɵadvance(4);
13502
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(14, 17, ctx.layerLegendShown$) && i0.ɵɵpipeBind1(15, 19, ctx.igoLayer$) && ctx.catalogAllowLegend);
13661
+ i0.ɵɵproperty("igoMatBadgeIcon", ctx.getBadgeIcon())("matBadgeHidden", i0.ɵɵpipeBind1(10, 17, ctx.inRange$) && i0.ɵɵpipeBind1(11, 19, ctx.isVisible$) === true || i0.ɵɵpipeBind1(12, 21, ctx.inRange$) && !ctx.added || i0.ɵɵpipeBind1(13, 23, ctx.inRange$) && i0.ɵɵpipeBind1(14, 25, ctx.isPreview$))("matBadgeDisabled", i0.ɵɵpipeBind1(15, 27, ctx.inRange$) === false)("svgIcon", i0.ɵɵpipeBind1(16, 29, ctx.isPreview$) ? "plus" : ctx.added ? "delete" : "plus");
13662
+ i0.ɵɵadvance(10);
13663
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(20, 31, ctx.layerLegendShown$) && i0.ɵɵpipeBind1(21, 33, ctx.igoLayer$) && ctx.catalogAllowLegend);
13503
13664
  }
13504
- }, dependencies: [i1$1.NgClass, i1$1.NgIf, i7$1.MatBadge, i3.MatButton, i2.MatIcon, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i4.MatTooltip, i5$1.IgoBadgeIconDirective, MetadataButtonComponent, LayerLegendComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-cataloglayer-title[_ngcontent-%COMP%]{cursor:pointer}.igo-cataloglayer-legend-container[_ngcontent-%COMP%]{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon[_ngcontent-%COMP%]{cursor:help}"], changeDetection: 0 });
13665
+ }, dependencies: [i1.NgClass, i1.NgIf, i7$1.MatBadge, i3$1.MatButton, i2.MatIcon, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i4.MatTooltip, i5$1.IgoBadgeIconDirective, MetadataButtonComponent, LayerLegendComponent, i1.AsyncPipe, i7.TranslatePipe], styles: [".igo-cataloglayer-title[_ngcontent-%COMP%]{cursor:pointer}.igo-cataloglayer-legend-container[_ngcontent-%COMP%]{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon[_ngcontent-%COMP%]{cursor:help}"], changeDetection: 0 });
13505
13666
  (function () {
13506
13667
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CatalogBrowserLayerComponent, [{
13507
13668
  type: Component,
13508
- args: [{ selector: 'igo-catalog-browser-layer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item>\n <mat-icon *ngIf=\"haveGroup()\" mat-list-avatar svgIcon=\"blank\"></mat-icon>\n <h4 mat-line matTooltipShowDelay=\"500\" [ngClass]=\"(catalogAllowLegend)?'igo-cataloglayer-title':''\" (click)=\"askForLegend($event)\" [matTooltip]=\"computeTitleTooltip()\">{{title}}</h4>\n\n <button *ngIf=\"layer.externalProvider\"\n disabled=\"true\"\n mat-icon-button>\n <mat-icon\n class=\"igo-cataloglayer-external-icon\"\n *ngIf=\"layer.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.layer' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\">\n </mat-icon>\n </button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n\n <button\n (mouseenter)=\"onMouseEvent($event)\" (mouseleave)=\"onMouseEvent($event)\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"computeTooltip() | translate\"\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n (click)=\"onToggleClick($event)\">\n <mat-icon\n matBadge=\"icon\"\n igoMatBadgeIcon=\"eye-off\"\n igoMatBadgeInverseColor=\"true\"\n [matBadgeHidden]=\"isInResolutionsRange()\"\n matBadgeDisabled=\"true\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\">\n </mat-icon>\n </button>\n\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n <igo-layer-legend\n *ngIf=\"(layerLegendShown$ | async) && (igoLayer$ | async) && catalogAllowLegend\"\n [layer]=\"igoLayer$ | async\">\n </igo-layer-legend>\n</div>\n", styles: [".igo-cataloglayer-title{cursor:pointer}.igo-cataloglayer-legend-container{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon{cursor:help}\n"] }]
13669
+ args: [{ selector: 'igo-catalog-browser-layer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item>\n <mat-icon *ngIf=\"haveGroup()\" mat-list-avatar svgIcon=\"blank\"></mat-icon>\n <h4 mat-line matTooltipShowDelay=\"500\" [ngClass]=\"(catalogAllowLegend)?'igo-cataloglayer-title':''\" (click)=\"askForLegend($event)\" [matTooltip]=\"computeTitleTooltip()\">{{title}}</h4>\n\n <button *ngIf=\"layer.externalProvider\"\n disabled=\"true\"\n mat-icon-button>\n <mat-icon\n class=\"igo-cataloglayer-external-icon\"\n *ngIf=\"layer.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.layer' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\">\n </mat-icon>\n </button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n\n <button\n (mouseenter)=\"onMouseEvent($event)\" (mouseleave)=\"onMouseEvent($event)\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"computeTooltip() | translate\"\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n (click)=\"onToggleClick($event)\">\n <mat-icon\n matBadge=\"icon\"\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\n igoMatBadgeBackgroundColor=\"none\"\n igoMatBadgeInverseColor=\"true\"\n [matBadgeHidden]=\"((inRange$ | async) && (isVisible$ | async) === true) || ((inRange$ | async) && !added) || ((inRange$ | async) && (isPreview$ | async))\"\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\">\n </mat-icon>\n </button>\n\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n <igo-layer-legend\n *ngIf=\"(layerLegendShown$ | async) && (igoLayer$ | async) && catalogAllowLegend\"\n [layer]=\"igoLayer$ | async\">\n </igo-layer-legend>\n</div>\n", styles: [".igo-cataloglayer-title{cursor:pointer}.igo-cataloglayer-legend-container{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon{cursor:help}\n"] }]
13509
13670
  }], function () { return [{ type: LayerService }]; }, { resolution: [{
13510
13671
  type: Input
13511
13672
  }], catalogAllowLegend: [{
13512
13673
  type: Input
13513
13674
  }], layer: [{
13514
13675
  type: Input
13676
+ }], map: [{
13677
+ type: Input
13515
13678
  }], added: [{
13516
13679
  type: Input
13517
13680
  }], addedChange: [{
@@ -13595,13 +13758,13 @@ function CatalogBrowserGroupComponent_ng_template_12_ng_container_1_Template(rf,
13595
13758
  const item_r12 = i0.ɵɵnextContext().$implicit;
13596
13759
  const ctx_r14 = i0.ɵɵnextContext();
13597
13760
  i0.ɵɵadvance(1);
13598
- i0.ɵɵproperty("layer", item_r12)("resolution", ctx_r14.resolution)("catalogAllowLegend", ctx_r14.catalogAllowLegend)("added", ctx_r14.state.get(item_r12).added);
13761
+ i0.ɵɵproperty("layer", item_r12)("resolution", ctx_r14.resolution)("map", ctx_r14.map)("catalogAllowLegend", ctx_r14.catalogAllowLegend)("added", ctx_r14.state.get(item_r12).added);
13599
13762
  }
13600
13763
  }
13601
13764
  function CatalogBrowserGroupComponent_ng_template_12_Template(rf, ctx) {
13602
13765
  if (rf & 1) {
13603
13766
  i0.ɵɵtemplate(0, CatalogBrowserGroupComponent_ng_template_12_ng_container_0_Template, 1, 0, "ng-container", 14);
13604
- i0.ɵɵtemplate(1, CatalogBrowserGroupComponent_ng_template_12_ng_container_1_Template, 2, 4, "ng-container", 14);
13767
+ i0.ɵɵtemplate(1, CatalogBrowserGroupComponent_ng_template_12_ng_container_1_Template, 2, 5, "ng-container", 14);
13605
13768
  }
13606
13769
  if (rf & 2) {
13607
13770
  const item_r12 = ctx.$implicit;
@@ -13769,7 +13932,7 @@ class CatalogBrowserGroupComponent {
13769
13932
  }
13770
13933
  }
13771
13934
  CatalogBrowserGroupComponent.ɵfac = function CatalogBrowserGroupComponent_Factory(t) { return new (t || CatalogBrowserGroupComponent)(); };
13772
- CatalogBrowserGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogBrowserGroupComponent, selectors: [["igo-catalog-browser-group"]], inputs: { catalog: "catalog", group: "group", collapsed: "collapsed", resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", toggleCollapsed: "toggleCollapsed", state: "state" }, outputs: { addedChange: "addedChange", layerAddedChange: "layerAddedChange" }, decls: 14, vars: 14, consts: [["mat-list-avatar", "", "svgIcon", "chevron-up", "igoCollapse", "", 1, "igo-chevron", 3, "target", "collapsed", "toggle"], ["id", "catalog-group-title", "mat-line", "", "matTooltipShowDelay", "500", 1, "igo-catalog-group-title", 3, "matTooltip", "click"], ["disabled", "true", "mat-icon-button", "", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["notadded", ""], ["items", ""], ["ngFor", "", 3, "ngForOf"], ["disabled", "true", "mat-icon-button", ""], ["class", "igo-cataloggroup-external-icon", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 3, "matTooltip", "click", 4, "ngIf"], ["tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 1, "igo-cataloggroup-external-icon", 3, "matTooltip", "click"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "disabled", "click"], ["svgIcon", "delete"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "disabled", "click"], ["svgIcon", "plus"], [4, "ngIf"], ["igoListItem", "", 3, "layer", "resolution", "catalogAllowLegend", "added", "addedLayerIsPreview", "addedChange"]], template: function CatalogBrowserGroupComponent_Template(rf, ctx) {
13935
+ CatalogBrowserGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogBrowserGroupComponent, selectors: [["igo-catalog-browser-group"]], inputs: { catalog: "catalog", group: "group", map: "map", collapsed: "collapsed", resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", toggleCollapsed: "toggleCollapsed", state: "state" }, outputs: { addedChange: "addedChange", layerAddedChange: "layerAddedChange" }, decls: 14, vars: 14, consts: [["mat-list-avatar", "", "svgIcon", "chevron-up", "igoCollapse", "", 1, "igo-chevron", 3, "target", "collapsed", "toggle"], ["id", "catalog-group-title", "mat-line", "", "matTooltipShowDelay", "500", 1, "igo-catalog-group-title", 3, "matTooltip", "click"], ["disabled", "true", "mat-icon-button", "", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["notadded", ""], ["items", ""], ["ngFor", "", 3, "ngForOf"], ["disabled", "true", "mat-icon-button", ""], ["class", "igo-cataloggroup-external-icon", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 3, "matTooltip", "click", 4, "ngIf"], ["tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", "svgIcon", "earth-arrow-right", 1, "igo-cataloggroup-external-icon", 3, "matTooltip", "click"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "disabled", "click"], ["svgIcon", "delete"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "disabled", "click"], ["svgIcon", "plus"], [4, "ngIf"], ["igoListItem", "", 3, "layer", "resolution", "map", "catalogAllowLegend", "added", "addedLayerIsPreview", "addedChange"]], template: function CatalogBrowserGroupComponent_Template(rf, ctx) {
13773
13936
  if (rf & 1) {
13774
13937
  i0.ɵɵelementStart(0, "mat-list-item")(1, "mat-icon", 0);
13775
13938
  i0.ɵɵlistener("toggle", function CatalogBrowserGroupComponent_Template_mat_icon_toggle_1_listener($event) { return ctx.onToggleCollapsed($event); });
@@ -13805,15 +13968,17 @@ CatalogBrowserGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
13805
13968
  i0.ɵɵadvance(7);
13806
13969
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(13, 12, ctx.store.view.all$()));
13807
13970
  }
13808
- }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i2.MatIcon, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i4.MatTooltip, i5$1.ListItemDirective, i5$1.CollapseDirective, CatalogBrowserLayerComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-catalog-group-title[_ngcontent-%COMP%]{cursor:pointer;opacity:.9}#catalog-group-title[_ngcontent-%COMP%]{font-weight:700}.igo-cataloggroup-external-icon[_ngcontent-%COMP%]{cursor:help}"], changeDetection: 0 });
13971
+ }, dependencies: [i1.NgForOf, i1.NgIf, i3$1.MatButton, i2.MatIcon, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i4.MatTooltip, i5$1.ListItemDirective, i5$1.CollapseDirective, CatalogBrowserLayerComponent, i1.AsyncPipe, i7.TranslatePipe], styles: [".igo-catalog-group-title[_ngcontent-%COMP%]{cursor:pointer;opacity:.9}#catalog-group-title[_ngcontent-%COMP%]{font-weight:700}.igo-cataloggroup-external-icon[_ngcontent-%COMP%]{cursor:help}"], changeDetection: 0 });
13809
13972
  (function () {
13810
13973
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CatalogBrowserGroupComponent, [{
13811
13974
  type: Component,
13812
- args: [{ selector: 'igo-catalog-browser-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item>\n <mat-icon\n mat-list-avatar\n svgIcon=\"chevron-up\"\n igoCollapse\n class=\"igo-chevron\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\">\n </mat-icon>\n\n <h4 class=\"igo-catalog-group-title\" id=\"catalog-group-title\" mat-line matTooltipShowDelay=\"500\" [matTooltip]=\"title\" (click)=\"onTitleClick()\">{{title}}</h4>\n\n <button *ngIf=\"group.externalProvider\"\n disabled=\"true\"\n mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\">\n </mat-icon>\n </button>\n\n <ng-container *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick()\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick()\">\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n </ng-template>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"item\"\n [resolution]=\"resolution\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\">\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer;opacity:.9}#catalog-group-title{font-weight:700}.igo-cataloggroup-external-icon{cursor:help}\n"] }]
13975
+ args: [{ selector: 'igo-catalog-browser-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item>\n <mat-icon\n mat-list-avatar\n svgIcon=\"chevron-up\"\n igoCollapse\n class=\"igo-chevron\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\">\n </mat-icon>\n\n <h4 class=\"igo-catalog-group-title\" id=\"catalog-group-title\" mat-line matTooltipShowDelay=\"500\" [matTooltip]=\"title\" (click)=\"onTitleClick()\">{{title}}</h4>\n\n <button *ngIf=\"group.externalProvider\"\n disabled=\"true\"\n mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\">\n </mat-icon>\n </button>\n\n <ng-container *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick()\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick()\">\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n </ng-template>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"item\"\n [resolution]=\"resolution\"\n [map]=\"map\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\">\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer;opacity:.9}#catalog-group-title{font-weight:700}.igo-cataloggroup-external-icon{cursor:help}\n"] }]
13813
13976
  }], null, { catalog: [{
13814
13977
  type: Input
13815
13978
  }], group: [{
13816
13979
  type: Input
13980
+ }], map: [{
13981
+ type: Input
13817
13982
  }], collapsed: [{
13818
13983
  type: Input
13819
13984
  }], resolution: [{
@@ -13865,7 +14030,7 @@ function LayerItemComponent_mat_checkbox_1_Template(rf, ctx) {
13865
14030
  i0.ɵɵproperty("checked", ctx_r0.layerCheck);
13866
14031
  }
13867
14032
  }
13868
- const _c0$g = function (a0) { return { disabled: a0 }; };
14033
+ const _c0$h = function (a0) { return { disabled: a0 }; };
13869
14034
  function LayerItemComponent_button_4_Template(rf, ctx) {
13870
14035
  if (rf & 1) {
13871
14036
  const _r9 = i0.ɵɵgetCurrentView();
@@ -13882,7 +14047,7 @@ function LayerItemComponent_button_4_Template(rf, ctx) {
13882
14047
  const ctx_r1 = i0.ɵɵnextContext();
13883
14048
  i0.ɵɵproperty("color", ctx_r1.layer.visible ? "primary" : "default")("matTooltip", i0.ɵɵpipeBind1(1, 5, ctx_r1.eyeTooltip));
13884
14049
  i0.ɵɵadvance(2);
13885
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(3, 7, ctx_r1.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0$g, i0.ɵɵpipeBind1(4, 9, ctx_r1.inResolutionRange$) === false))("svgIcon", i0.ɵɵpipeBind1(5, 11, ctx_r1.layer.visible$) ? "eye" : "eye-off");
14050
+ i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(3, 7, ctx_r1.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0$h, i0.ɵɵpipeBind1(4, 9, ctx_r1.inResolutionRange$) === false))("svgIcon", i0.ɵɵpipeBind1(5, 11, ctx_r1.layer.visible$) ? "eye" : "eye-off");
13886
14051
  }
13887
14052
  }
13888
14053
  function LayerItemComponent_button_5_Template(rf, ctx) {
@@ -13901,7 +14066,7 @@ function LayerItemComponent_button_5_Template(rf, ctx) {
13901
14066
  const ctx_r2 = i0.ɵɵnextContext();
13902
14067
  i0.ɵɵproperty("color", ctx_r2.layer.visible ? "primary" : "default")("matTooltip", ctx_r2.layer.visible ? i0.ɵɵpipeBind1(1, 5, "igo.geo.layer.hideLayer") : i0.ɵɵpipeBind1(2, 7, "igo.geo.layer.showLayer"));
13903
14068
  i0.ɵɵadvance(3);
13904
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(4, 9, ctx_r2.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0$g, i0.ɵɵpipeBind1(5, 11, ctx_r2.inResolutionRange$) === false))("svgIcon", ctx_r2.layer.visible ? "eye" : "eye-off");
14069
+ i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(4, 9, ctx_r2.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0$h, i0.ɵɵpipeBind1(5, 11, ctx_r2.inResolutionRange$) === false))("svgIcon", ctx_r2.layer.visible ? "eye" : "eye-off");
13905
14070
  }
13906
14071
  }
13907
14072
  function LayerItemComponent_button_6_Template(rf, ctx) {
@@ -14186,7 +14351,7 @@ var LayerListDisplacement;
14186
14351
  LayerListDisplacement["Lower"] = "lower";
14187
14352
  })(LayerListDisplacement || (LayerListDisplacement = {}));
14188
14353
 
14189
- const _c0$f = ["igoLayerItemToolbar"];
14354
+ const _c0$g = ["igoLayerItemToolbar"];
14190
14355
  function LayerListComponent_igo_layer_list_tool_1_Template(rf, ctx) {
14191
14356
  if (rf & 1) {
14192
14357
  const _r7 = i0.ɵɵgetCurrentView();
@@ -15150,7 +15315,7 @@ class LayerListComponent {
15150
15315
  LayerListComponent.ɵfac = function LayerListComponent_Factory(t) { return new (t || LayerListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
15151
15316
  LayerListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerListComponent, selectors: [["igo-layer-list"]], contentQueries: function LayerListComponent_ContentQueries(rf, ctx, dirIndex) {
15152
15317
  if (rf & 1) {
15153
- i0.ɵɵcontentQuery(dirIndex, _c0$f, 5);
15318
+ i0.ɵɵcontentQuery(dirIndex, _c0$g, 5);
15154
15319
  }
15155
15320
  if (rf & 2) {
15156
15321
  let _t;
@@ -15359,7 +15524,7 @@ LayerListToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Laye
15359
15524
  i0.ɵɵadvance(4);
15360
15525
  i0.ɵɵproperty("svgIcon", ctx.selectionMode ? "checkbox-multiple-marked-outline" : "checkbox-multiple-blank-outline");
15361
15526
  }
15362
- }, dependencies: [i13.MatFormField, i13.MatSuffix, i14.MatInput, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i1$1.NgIf, i2$2.NgModel, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5.MatListItem, i7$1.MatBadge, i5$1.IgoBadgeIconDirective, i7.TranslatePipe], styles: ["mat-form-field.inputFilter[_ngcontent-%COMP%]{width:calc(100% - 100px);max-width:200px}.selection-mode[_ngcontent-%COMP%]{margin-left:5px}"], changeDetection: 0 });
15527
+ }, dependencies: [i13.MatFormField, i13.MatSuffix, i14.MatInput, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i1.NgIf, i2$2.NgModel, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i5.MatListItem, i7$1.MatBadge, i5$1.IgoBadgeIconDirective, i7.TranslatePipe], styles: ["mat-form-field.inputFilter[_ngcontent-%COMP%]{width:calc(100% - 100px);max-width:200px}.selection-mode[_ngcontent-%COMP%]{margin-left:5px}"], changeDetection: 0 });
15363
15528
  (function () {
15364
15529
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerListToolComponent, [{
15365
15530
  type: Component,
@@ -15750,7 +15915,7 @@ TrackFeatureButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
15750
15915
  if (rf & 2) {
15751
15916
  i0.ɵɵproperty("ngIf", ctx.options.trackFeature);
15752
15917
  }
15753
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i7.TranslatePipe], changeDetection: 0 });
15918
+ }, dependencies: [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i7.TranslatePipe], changeDetection: 0 });
15754
15919
  (function () {
15755
15920
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TrackFeatureButtonComponent, [{
15756
15921
  type: Component,
@@ -16780,7 +16945,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_4_Template(rf, ctx) {
16780
16945
  i0.ɵɵproperty("innerHTML", property_r3.value, i0.ɵɵsanitizeHtml);
16781
16946
  }
16782
16947
  }
16783
- const _c0$e = function () { return { "cursor": "pointer", "color": "blue" }; };
16948
+ const _c0$f = function () { return { "cursor": "pointer", "color": "blue" }; };
16784
16949
  function FeatureDetailsComponent_table_0_tr_2_td_5_Template(rf, ctx) {
16785
16950
  if (rf & 1) {
16786
16951
  const _r20 = i0.ɵɵgetCurrentView();
@@ -16793,7 +16958,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_5_Template(rf, ctx) {
16793
16958
  const property_r3 = i0.ɵɵnextContext().$implicit;
16794
16959
  const ctx_r8 = i0.ɵɵnextContext(2);
16795
16960
  i0.ɵɵadvance(1);
16796
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(2, _c0$e));
16961
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(2, _c0$f));
16797
16962
  i0.ɵɵadvance(1);
16798
16963
  i0.ɵɵtextInterpolate(ctx_r8.getEmbeddedLinkText(property_r3.value));
16799
16964
  }
@@ -16813,7 +16978,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_6_Template(rf, ctx) {
16813
16978
  }
16814
16979
  if (rf & 2) {
16815
16980
  i0.ɵɵadvance(1);
16816
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c0$e));
16981
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c0$f));
16817
16982
  i0.ɵɵadvance(1);
16818
16983
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "igo.geo.targetHtmlUrl"));
16819
16984
  }
@@ -17123,7 +17288,7 @@ class FeatureDetailsComponent {
17123
17288
  }
17124
17289
  }
17125
17290
  }
17126
- FeatureDetailsComponent.ɵfac = function FeatureDetailsComponent_Factory(t) { return new (t || FeatureDetailsComponent)(i0.ɵɵdirectiveInject(i1$2.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2$3.DomSanitizer), i0.ɵɵdirectiveInject(i2$1.NetworkService), i0.ɵɵdirectiveInject(i2$1.MessageService), i0.ɵɵdirectiveInject(i2$1.ConfigService)); };
17291
+ FeatureDetailsComponent.ɵfac = function FeatureDetailsComponent_Factory(t) { return new (t || FeatureDetailsComponent)(i0.ɵɵdirectiveInject(i1$1.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2$3.DomSanitizer), i0.ɵɵdirectiveInject(i2$1.NetworkService), i0.ɵɵdirectiveInject(i2$1.MessageService), i0.ɵɵdirectiveInject(i2$1.ConfigService)); };
17127
17292
  FeatureDetailsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureDetailsComponent, selectors: [["igo-feature-details"]], inputs: { source: "source", map: "map", toolbox: "toolbox", feature: "feature" }, outputs: { routeEvent: "routeEvent", selectFeature: "selectFeature", htmlDisplayEvent: "htmlDisplayEvent" }, decls: 2, vars: 2, consts: [["class", "igo-striped mat-typography", 4, "ngIf"], [3, "srcdoc", "src", 4, "ngIf"], [1, "igo-striped", "mat-typography"], [4, "ngFor", "ngForOf"], [4, "ngIf"], ["id", "keyValue", 4, "ngIf"], [3, "innerHTML", 4, "ngIf"], ["mat-list-avatar", "", 3, "svgIcon"], ["target", "_blank", "rel", "noopener noreferrer", 3, "href"], ["mat-icon-button", "", 1, "copyClipboard", 3, "click"], ["svgIcon", "content-copy"], ["id", "keyValue"], [3, "innerHTML"], [3, "ngStyle", "click"], ["target", "_blank", "rel", "noopener noreferrer", 3, "href", "click"], ["igoImageError", "", "width", "225", "height", "auto", 3, "src"], [3, "srcdoc", "src"]], template: function FeatureDetailsComponent_Template(rf, ctx) {
17128
17293
  if (rf & 1) {
17129
17294
  i0.ɵɵtemplate(0, FeatureDetailsComponent_table_0_Template, 4, 3, "table", 0);
@@ -17134,12 +17299,12 @@ FeatureDetailsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Fea
17134
17299
  i0.ɵɵadvance(1);
17135
17300
  i0.ɵɵproperty("ngIf", ctx.isHtmlDisplay());
17136
17301
  }
17137
- }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i1$1.NgStyle, i2.MatIcon, i5$1.ImageErrorDirective, i1$1.AsyncPipe, i1$1.JsonPipe, i7.TranslatePipe, i5$1.KeyValuePipe, i5$1.SecureImagePipe], styles: ["table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}#keyValue[_ngcontent-%COMP%]{width:30%}table[_ngcontent-%COMP%] .routing{cursor:pointer}iframe[_ngcontent-%COMP%]{height:calc(100% - 4px);width:100%;border:0}.copyClipboard[_ngcontent-%COMP%]{border:none;background:transparent;cursor:pointer}"], changeDetection: 0 });
17302
+ }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgStyle, i2.MatIcon, i5$1.ImageErrorDirective, i1.AsyncPipe, i1.JsonPipe, i7.TranslatePipe, i5$1.KeyValuePipe, i5$1.SecureImagePipe], styles: ["table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}#keyValue[_ngcontent-%COMP%]{width:30%}table[_ngcontent-%COMP%] .routing{cursor:pointer}iframe[_ngcontent-%COMP%]{height:calc(100% - 4px);width:100%;border:0}.copyClipboard[_ngcontent-%COMP%]{border:none;background:transparent;cursor:pointer}"], changeDetection: 0 });
17138
17303
  (function () {
17139
17304
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureDetailsComponent, [{
17140
17305
  type: Component,
17141
17306
  args: [{ selector: 'igo-feature-details', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"igo-striped mat-typography\" *ngIf=\"ready && feature && isObject(feature.properties) && feature.properties.target !== 'iframe'\">\n <tbody>\n <tr *ngFor=\"let property of filterFeatureProperties(feature) | keyvalue\">\n\n <td *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\">\n <mat-icon mat-list-avatar svgIcon=\"{{icon}}\"></mat-icon>\n </td>\n\n <td *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\">\n <a href=\"{{property.value}}\" target='_blank' rel=\"noopener noreferrer\"> {{ 'igo.geo.targetHtmlUrl' | translate }} {{title}}</a>\n <button class=\"copyClipboard\" mat-icon-button (click)=\"copyTextToClipboard(property.value)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n </td>\n\n <td id=\"keyValue\" *ngIf=\"feature.properties.target === undefined\">\n {{property.key}}\n </td>\n\n <td *ngIf=\"feature.properties.target === undefined && !isObject(property.value) && !isUrl(property.value) && !isEmbeddedLink(property.value)\" [innerHTML]=\"property.value\">\n </td>\n\n <td *ngIf=\"feature.properties.target === undefined && isEmbeddedLink(property.value)\">\n <u [ngStyle]=\"{'cursor': 'pointer', 'color': 'blue'}\" (click)=\"openSecureUrl(property.value)\">{{ getEmbeddedLinkText(property.value) }}</u>\n </td>\n\n <td *ngIf=\"feature.properties.target === undefined && !isObject(property.value) && (isDoc(property.value) || isUrl(property.value)) && !isImg(property.value)\">\n <u [ngStyle]=\"{'cursor': 'pointer', 'color': 'blue'}\" (click)=\"openSecureUrl(property.value)\">{{ 'igo.geo.targetHtmlUrl' | translate }}</u>\n <button class=\"copyClipboard\" mat-icon-button (click)=\"copyTextToClipboard(property.value)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n </td>\n\n <td *ngIf=\"feature.properties.target === undefined && !isObject(property.value) && isUrl(property.value) && isImg(property.value)\">\n <a href=\"{{property.value}}\" target='_blank' (click)=\"openSecureUrl(property.value)\" rel=\"noopener noreferrer\">\n <img igoImageError src=\"{{(property.value | secureImage) |\u00A0async}}\" width=\"225\" height=\"auto\">\n </a>\n </td>\n\n <td *ngIf=\"feature.properties.target === undefined && isObject(property.value)\" [innerHTML]=\"property.value | json\">\n </td>\n\n </tr>\n </tbody>\n</table>\n\n<iframe *ngIf=\"isHtmlDisplay()\" [srcdoc]=\"htmlSanitizer(feature.properties)\" [src]=\"urlSanitizer(feature.properties.url)\"></iframe>\n", styles: ["table{width:100%}table td{padding:5px}#keyValue{width:30%}table ::ng-deep .routing{cursor:pointer}iframe{height:calc(100% - 4px);width:100%;border:0}.copyClipboard{border:none;background:transparent;cursor:pointer}\n"] }]
17142
- }], function () { return [{ type: i1$2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2$3.DomSanitizer }, { type: i2$1.NetworkService }, { type: i2$1.MessageService }, { type: i2$1.ConfigService }]; }, { source: [{
17307
+ }], function () { return [{ type: i1$1.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2$3.DomSanitizer }, { type: i2$1.NetworkService }, { type: i2$1.MessageService }, { type: i2$1.ConfigService }]; }, { source: [{
17143
17308
  type: Input
17144
17309
  }], map: [{
17145
17310
  type: Input
@@ -17156,7 +17321,7 @@ FeatureDetailsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Fea
17156
17321
  }] });
17157
17322
  })();
17158
17323
 
17159
- const _c0$d = ["igoForm"];
17324
+ const _c0$e = ["igoForm"];
17160
17325
  const _c1$a = ["*", [["", "formButtons", ""]]];
17161
17326
  const _c2$5 = ["*", "[formButtons]"];
17162
17327
  /**
@@ -17232,7 +17397,7 @@ class FeatureFormComponent {
17232
17397
  FeatureFormComponent.ɵfac = function FeatureFormComponent_Factory(t) { return new (t || FeatureFormComponent)(); };
17233
17398
  FeatureFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureFormComponent, selectors: [["igo-feature-form"]], viewQuery: function FeatureFormComponent_Query(rf, ctx) {
17234
17399
  if (rf & 1) {
17235
- i0.ɵɵviewQuery(_c0$d, 7);
17400
+ i0.ɵɵviewQuery(_c0$e, 7);
17236
17401
  }
17237
17402
  if (rf & 2) {
17238
17403
  let _t;
@@ -17251,7 +17416,7 @@ FeatureFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Featur
17251
17416
  if (rf & 2) {
17252
17417
  i0.ɵɵproperty("form", ctx.form)("formData", i0.ɵɵpipeBind1(2, 2, ctx.feature$));
17253
17418
  }
17254
- }, dependencies: [i5$1.FormComponent, i1$1.AsyncPipe], styles: ["[_nghost-%COMP%]{display:block}igo-form[_ngcontent-%COMP%]{height:100%}"], changeDetection: 0 });
17419
+ }, dependencies: [i5$1.FormComponent, i1.AsyncPipe], styles: ["[_nghost-%COMP%]{display:block}igo-form[_ngcontent-%COMP%]{height:100%}"], changeDetection: 0 });
17255
17420
  (function () {
17256
17421
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureFormComponent, [{
17257
17422
  type: Component,
@@ -18264,7 +18429,7 @@ class DrawPopupComponent {
18264
18429
  return this.languageService.translate.instant('igo.geo.draw.labelType.' + option);
18265
18430
  }
18266
18431
  }
18267
- DrawPopupComponent.ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
18432
+ DrawPopupComponent.ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
18268
18433
  DrawPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawPopupComponent, selectors: [["igo-draw-popup-component"]], inputs: { confirmFlag: "confirmFlag", labelFlag: "labelFlag", coordinatesMeasureUnit: "coordinatesMeasureUnit", lengthMeasureUnit: "lengthMeasureUnit", areaMeasureUnit: "areaMeasureUnit" }, decls: 14, vars: 14, consts: [["mat-dialog-title", ""], [1, "geometry-type-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [4, "ngIf"], [1, "mat-typography"], ["class", "mat-typography", 4, "ngIf"], ["mat-dialog-actions", ""], ["mat-raised-button", "", 3, "click"], ["mat-raised-button", "", "color", "primary", 3, "click"], [3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [3, "value", "disabled", "checked", "change"], ["class", "mat-typography", 3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "disabled", "checked", "change"], [1, "readOnly-Input"], ["matInput", "", "placeholder", "(Latitude, Longitude)", "readonly", "", 3, "value"], ["input", ""], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], ["matInput", "", "readonly", "", 3, "placeholder", "value"], [1, "input"], ["matInput", "", "cdkFocusInitial", "", 3, "placeholder", "value", "select", "input"]], template: function DrawPopupComponent_Template(rf, ctx) {
18269
18434
  if (rf & 1) {
18270
18435
  i0.ɵɵelementStart(0, "div")(1, "h2", 0);
@@ -18302,13 +18467,13 @@ DrawPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawPopu
18302
18467
  i0.ɵɵadvance(1);
18303
18468
  i0.ɵɵproperty("ngIf", ctx.labelFlag === ctx.labelType.Custom);
18304
18469
  }
18305
- }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i14.MatInput, i15.MatSelect, i9.MatOption, i1.MatDialogTitle, i1.MatDialogActions, i17.MatRadioGroup, i17.MatRadioButton, i12.MatCheckbox, i7.TranslatePipe], styles: [".mat-radio-button[_ngcontent-%COMP%] ~ .mat-radio-button[_ngcontent-%COMP%]{margin-left:16px}.readOnly-Input[_ngcontent-%COMP%]{width:200px!important}.unit-field[_ngcontent-%COMP%]{width:50px;margin-left:10px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView[_ngcontent-%COMP%]{top:5em!important} .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle[_ngcontent-%COMP%], .mat-dialog-actions[_ngcontent-%COMP%]{display:flex!important;justify-content:center}.input[_ngcontent-%COMP%]{width:auto!important}.mat-button-toggle-group[_ngcontent-%COMP%], .mat-button-toggle[_ngcontent-%COMP%]{width:100%}mat-checkbox[_ngcontent-%COMP%]{margin-right:10px}"] });
18470
+ }, dependencies: [i1.NgForOf, i1.NgIf, i3$1.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i14.MatInput, i15.MatSelect, i9.MatOption, i3.MatDialogTitle, i3.MatDialogActions, i17.MatRadioGroup, i17.MatRadioButton, i12.MatCheckbox, i7.TranslatePipe], styles: [".mat-radio-button[_ngcontent-%COMP%] ~ .mat-radio-button[_ngcontent-%COMP%]{margin-left:16px}.readOnly-Input[_ngcontent-%COMP%]{width:200px!important}.unit-field[_ngcontent-%COMP%]{width:50px;margin-left:10px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView[_ngcontent-%COMP%]{top:5em!important} .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle[_ngcontent-%COMP%], .mat-dialog-actions[_ngcontent-%COMP%]{display:flex!important;justify-content:center}.input[_ngcontent-%COMP%]{width:auto!important}.mat-button-toggle-group[_ngcontent-%COMP%], .mat-button-toggle[_ngcontent-%COMP%]{width:100%}mat-checkbox[_ngcontent-%COMP%]{margin-right:10px}"] });
18306
18471
  (function () {
18307
18472
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawPopupComponent, [{
18308
18473
  type: Component,
18309
18474
  args: [{ selector: 'igo-draw-popup-component', template: "<div>\n <h2 mat-dialog-title>\n {{ 'igo.geo.draw.popupTitle' | translate }}\n </h2>\n</div>\n\n\n<div class=\"geometry-type-toggle mat-typography\">\n <mat-button-toggle-group\n (change)=\"onLabelTypeChange($event.value)\" [value]=\"customOrPredefined\">\n <mat-button-toggle [value]=\"labelType.Custom\" >\n {{ 'igo.geo.draw.labelType.custom' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"labelType.Predefined\">\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n<div *ngIf=\"labelFlag !== labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.builtInInstructions' | translate }}</p>\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\" class=\"mat-typography\">\n <mat-radio-button *ngFor=\"let option of arrayBuiltInType\" [value]=\"option.value\" [disabled]=\"optionAvailable(option.value)\" \n (change)=\"onLabelTypeChange($event.value)\" [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-radio-button>\n </mat-radio-group>\n <ng-container class=\"mat-typography\" *ngIf=\"olGeometryType === 'Polygon'\">\n <mat-checkbox\n *ngFor=\"let option of arrayBuiltInType\"\n class=\"mat-typography\"\n [value]=\"option.value\"\n [disabled]=\"optionAvailable(option.value)\"\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\n [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"labelFlag === labelType.Coordinates\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"(Latitude, Longitude)\"\n value=\"{{currentCoordinates}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"coordinatesMeasureUnit\" (selectionChange)=\"onChangeCoordinateUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\n {{unit}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder={{lengthLabelT}}\n value=\"{{currentLength}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"lengthMeasureUnit\" (selectionChange)=\"onChangeLengthUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\n {{getLengthUnitEnum(unit)}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\n value=\"{{currentArea}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"areaMeasureUnit\" (selectionChange)=\"onChangeAreaUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\n {{getAreaUnitEnum(unit)}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n\n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm()\"> \n {{noLabelButton()}} \n </button>\n </div>\n</div>\n\n<div *ngIf=\"labelFlag === labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.dialogInstruction' | translate }}</p>\n <mat-form-field class=\"input\">\n <input\n #input\n matInput\n (select)=\"true\"\n (input)=\"getLabelLength($event.target.value)\"\n placeholder=\"{{'igo.geo.draw.dialogTitle' | translate}}\"\n value=\"{{ currentLabel }}\"\n cdkFocusInitial/>\n </mat-form-field>\n </div>\n \n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm(input.value)\">\n {{noLabelButton()}}\n </button>\n </div>\n</div>\n", styles: [".mat-radio-button~.mat-radio-button{margin-left:16px}.readOnly-Input{width:200px!important}.unit-field{width:50px;margin-left:10px;margin-top:10px}.mat-form-field{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView{top:5em!important}::ng-deep .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle,.mat-dialog-actions{display:flex!important;justify-content:center}.input{width:auto!important}.mat-button-toggle-group,.mat-button-toggle{width:100%}mat-checkbox{margin-right:10px}\n"] }]
18310
18475
  }], function () {
18311
- return [{ type: i2$1.LanguageService }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
18476
+ return [{ type: i2$1.LanguageService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
18312
18477
  type: Inject,
18313
18478
  args: [MAT_DIALOG_DATA]
18314
18479
  }] }];
@@ -18364,7 +18529,7 @@ DrawShorcutsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawS
18364
18529
  i0.ɵɵadvance(5);
18365
18530
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 10, "igo.geo.draw.move"));
18366
18531
  }
18367
- }, dependencies: [i3.MatButton, i2.MatIcon, i1.MatDialogClose, i1.MatDialogContent, i1.MatDialogActions, i7.TranslatePipe], styles: [".shortcut[_ngcontent-%COMP%]{display:flex;align-items:center}.shortcut-icon[_ngcontent-%COMP%]{margin-right:10px}.shortcuts-close[_ngcontent-%COMP%]{display:flex;justify-content:center}"] });
18532
+ }, dependencies: [i3$1.MatButton, i2.MatIcon, i3.MatDialogClose, i3.MatDialogContent, i3.MatDialogActions, i7.TranslatePipe], styles: [".shortcut[_ngcontent-%COMP%]{display:flex;align-items:center}.shortcut-icon[_ngcontent-%COMP%]{margin-right:10px}.shortcuts-close[_ngcontent-%COMP%]{display:flex;justify-content:center}"] });
18368
18533
  (function () {
18369
18534
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawShorcutsComponent, [{
18370
18535
  type: Component,
@@ -18385,7 +18550,7 @@ class DrawLayerPopupComponent {
18385
18550
  this.dialogRef.close(labelString);
18386
18551
  }
18387
18552
  }
18388
- DrawLayerPopupComponent.ɵfac = function DrawLayerPopupComponent_Factory(t) { return new (t || DrawLayerPopupComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef)); };
18553
+ DrawLayerPopupComponent.ɵfac = function DrawLayerPopupComponent_Factory(t) { return new (t || DrawLayerPopupComponent)(i0.ɵɵdirectiveInject(i3.MatDialogRef)); };
18389
18554
  DrawLayerPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawLayerPopupComponent, selectors: [["igo-draw-popup-component"]], inputs: { confirmFlag: "confirmFlag" }, decls: 14, vars: 9, consts: [["mat-dialog-content", ""], [1, "mat-typography"], [1, "example-full-width"], ["matInput", "", 3, "placeholder"], ["input", ""], ["mat-dialog-actions", ""], ["mat-raised-button", "", 3, "click"], ["mat-raised-button", "", "color", "primary", 3, "click"]], template: function DrawLayerPopupComponent_Template(rf, ctx) {
18390
18555
  if (rf & 1) {
18391
18556
  const _r1 = i0.ɵɵgetCurrentView();
@@ -18415,17 +18580,17 @@ DrawLayerPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dra
18415
18580
  i0.ɵɵadvance(5);
18416
18581
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 7, "igo.geo.draw.cancel"), " ");
18417
18582
  }
18418
- }, dependencies: [i3.MatButton, i13.MatFormField, i14.MatInput, i1.MatDialogContent, i1.MatDialogActions, i7.TranslatePipe] });
18583
+ }, dependencies: [i3$1.MatButton, i13.MatFormField, i14.MatInput, i3.MatDialogContent, i3.MatDialogActions, i7.TranslatePipe] });
18419
18584
  (function () {
18420
18585
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawLayerPopupComponent, [{
18421
18586
  type: Component,
18422
18587
  args: [{ selector: 'igo-draw-popup-component', template: "<div mat-dialog-content>\n <p class=\"mat-typography\">\n {{ 'igo.geo.draw.layer.layerDialogInstruction' | translate }}\n </p>\n <mat-form-field class=\"example-full-width\">\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.layer.title' | translate }}\"\n />\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\">\n {{ 'igo.geo.draw.cancel' | translate }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\n OK\n </button>\n</div>\n" }]
18423
- }], function () { return [{ type: i1.MatDialogRef }]; }, { confirmFlag: [{
18588
+ }], function () { return [{ type: i3.MatDialogRef }]; }, { confirmFlag: [{
18424
18589
  type: Input
18425
18590
  }] });
18426
18591
  })();
18427
18592
 
18428
- const _c0$c = ["selectedLayer"];
18593
+ const _c0$d = ["selectedLayer"];
18429
18594
  function DrawComponent_mat_slide_toggle_22_Template(rf, ctx) {
18430
18595
  if (rf & 1) {
18431
18596
  const _r10 = i0.ɵɵgetCurrentView();
@@ -19530,10 +19695,10 @@ class DrawComponent {
19530
19695
  return Number(length / (2 * Math.PI));
19531
19696
  }
19532
19697
  }
19533
- DrawComponent.ɵfac = function DrawComponent_Factory(t) { return new (t || DrawComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(DrawStyleService), i0.ɵɵdirectiveInject(i1.MatDialog), i0.ɵɵdirectiveInject(DrawIconService)); };
19698
+ DrawComponent.ɵfac = function DrawComponent_Factory(t) { return new (t || DrawComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(DrawStyleService), i0.ɵɵdirectiveInject(i3.MatDialog), i0.ɵɵdirectiveInject(DrawIconService)); };
19534
19699
  DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent, selectors: [["igo-draw"]], viewQuery: function DrawComponent_Query(rf, ctx) {
19535
19700
  if (rf & 1) {
19536
- i0.ɵɵviewQuery(_c0$c, 5);
19701
+ i0.ɵɵviewQuery(_c0$d, 5);
19537
19702
  }
19538
19703
  if (rf & 2) {
19539
19704
  let _t;
@@ -19656,7 +19821,7 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
19656
19821
  i0.ɵɵadvance(2);
19657
19822
  i0.ɵɵproperty("ngIf", ctx.selectedFeatures$.value.length);
19658
19823
  }
19659
- }, dependencies: [i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.MinValidator, i2$2.NgForm, i2$2.FormControlDirective, i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i11.MatDivider, i13.MatFormField, i13.MatLabel, i2.MatIcon, i7$1.MatBadge, i4.MatTooltip, i14.MatInput, i15.MatSelect, i15.MatSelectTrigger, i9.MatOption, i23.MatSlideToggle, i5$1.EntityTableComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".geometry-type-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:25%}.draw-options[_ngcontent-%COMP%]{overflow-x:hidden}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.icon-options[_ngcontent-%COMP%]{margin:5px 5px 0}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}img[_ngcontent-%COMP%]{width:100%;height:100%}.deleteBtn[_ngcontent-%COMP%]{margin-left:12px}.storeTable[_ngcontent-%COMP%]{height:auto!important}.layer-select[_ngcontent-%COMP%]{width:85%;padding:10px 10px 0%}.input-button-container[_ngcontent-%COMP%]{padding:10px}.input-button-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:25%}.input-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:8px;bottom:10px}.radius[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}.radius-unit[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px} igo-entity-table td:last-child{text-align:right!important} igo-entity-table td:last-child button{margin:0%!important}"], data: { animation: [
19824
+ }, dependencies: [i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.MinValidator, i2$2.NgForm, i2$2.FormControlDirective, i1.NgForOf, i1.NgIf, i3$1.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i11.MatDivider, i13.MatFormField, i13.MatLabel, i2.MatIcon, i7$1.MatBadge, i4.MatTooltip, i14.MatInput, i15.MatSelect, i15.MatSelectTrigger, i9.MatOption, i23.MatSlideToggle, i5$1.EntityTableComponent, i1.AsyncPipe, i7.TranslatePipe], styles: [".geometry-type-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:25%}.draw-options[_ngcontent-%COMP%]{overflow-x:hidden}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.icon-options[_ngcontent-%COMP%]{margin:5px 5px 0}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}img[_ngcontent-%COMP%]{width:100%;height:100%}.deleteBtn[_ngcontent-%COMP%]{margin-left:12px}.storeTable[_ngcontent-%COMP%]{height:auto!important}.layer-select[_ngcontent-%COMP%]{width:85%;padding:10px 10px 0%}.input-button-container[_ngcontent-%COMP%]{padding:10px}.input-button-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:25%}.input-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:8px;bottom:10px}.radius[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}.radius-unit[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px} igo-entity-table td:last-child{text-align:right!important} igo-entity-table td:last-child button{margin:0%!important}"], data: { animation: [
19660
19825
  trigger('openClose', [
19661
19826
  state('open', style({
19662
19827
  opacity: 1
@@ -19683,7 +19848,7 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
19683
19848
  transition('closed => open', [animate('800ms ease')])
19684
19849
  ])
19685
19850
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <div class=\"geometry-type-toggle mat-typography\">\n <mat-button-toggle-group\n (change)=\"onGeometryTypeChange($event.value)\" [value]=\"geometryType.Point\">\n <mat-button-toggle [value]=\"geometryType.Point\">\n {{'igo.geo.draw.' + geometryType.Point | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.LineString\">\n {{'igo.geo.draw.' + geometryType.LineString | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.Polygon\">\n {{'igo.geo.draw.' + geometryType.Polygon | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.Circle\">\n {{'igo.geo.draw.' + geometryType.Circle | translate}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <div class=\"draw-options mat-typography\">\n <mat-slide-toggle\n [disabled]=\"drawControlIsDisabled\"\n [checked]=\"drawControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDrawControl($event.checked)\">\n {{'igo.geo.spatialFilter.drawControl' | translate}}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n [checked]=\"labelsAreShown\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleLabels()\">\n {{ 'igo.geo.draw.toggleMapTooltips' | translate }}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n *ngIf=\"!isPoint()\"\n [checked]=\"freehandMode\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleFreehandMode($event)\">\n {{ 'igo.geo.draw.freehandMode' | translate }}\n </mat-slide-toggle>\n\n <div class=\"radius-unit\" *ngIf=\"isCircle()\">\n <form class=\"radius-form\">\n <mat-form-field class=\"radius\">\n <input\n matInput type=\"number\"\n min=\"0\"\n placeholder=\"{{ 'igo.geo.spatialFilter.radius' | translate }}\"\n [formControl]=\"radiusFormControl\"\n [readonly]=\"this.freehandMode\">\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\n <mat-option\n *ngFor=\"let measureUnit of measureUnits\"\n [value]=\"measureUnit\">\n {{('igo.geo.measure.' + measureUnit) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <mat-divider></mat-divider>\n\n <div>\n <mat-form-field appearance=\"outline\" class=\"layer-select\">\n <mat-label>{{'igo.geo.draw.layer.title' | translate}}</mat-label>\n <mat-select #selectedLayer (selectionChange)=\"onLayerChange(selectedLayer.value)\" [value]=\"updateActiveLayer()\">\n <mat-option *ngFor=\"let layer of allLayers\" [value]=\"layer\">\n {{ layer.title }}\n </mat-option>\n <mat-option id=\"createNewLayer\" >\n {{'igo.geo.draw.layer.createNewLayer' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <button\n *ngIf=\"activeDrawingLayer\"\n mat-icon-button\n [color]=\"activeDrawingLayer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"activeDrawingLayer.visible ?\n ('igo.geo.layer.hideLayer' | translate) :\n ('igo.geo.layer.showLayer' | translate)\"\n (click)=\"activeDrawingLayer.visible = !activeDrawingLayer.visible\">\n <mat-icon\n [svgIcon]=\"activeDrawingLayer.visible ? 'eye' : 'eye-off'\">\n </mat-icon>\n </button>\n </div>\n <mat-divider></mat-divider>\n <div>\n <button\n *ngIf=\"activeStore.count$.getValue() > 0\"\n class=\"deleteBtn\"\n mat-icon-button\n color=\"warn\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.delete' | translate\"\n [disabled]=\"(selectedFeatures$ | async).length === 0\"\n (click)=\"deleteDrawings()\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n\n <div>\n <igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"activeStore\"\n [template]=\"tableTemplate\">\n </igo-entity-table>\n </div>\n </div>\n\n <div class=\"icon-options\">\n <mat-form-field *ngIf=\"icons.length >= 1\">\n <mat-label>{{ 'igo.geo.draw.icon' | translate }}</mat-label>\n <mat-select>\n <mat-select-trigger>\n <div *ngIf=\"icon\" class=\"box\">\n <img src=\"{{ icon }}\">\n </div>\n </mat-select-trigger>\n <mat-option value=\"\" (click)=\"onIconChange()\">{{ 'igo.geo.draw.noIcon' | translate }}</mat-option>\n <mat-option\n *ngFor=\"let icon_html of icons\"\n [value]=\"icon_html\"\n (click)=\"onIconChange(icon_html)\">\n <div class=\"box\">\n <img src=\"{{ icon_html }}\">\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <button\n mat-icon-button\n color=\"accent\"\n disableRipple=\"true\"\n (click)=\"openShorcutsDialog()\"\n >\n <mat-icon\n class=\"shortcuts-icon\"\n svgIcon=\"keyboard-outline\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.shortcuts' | translate\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"selectedFeatures$.value.length\"\n mat-raised-button\n color=\"primary\"\n (click)=\"openStyleModalDialog()\"\n [matTooltip]=\"'igo.geo.layer.style.styleModalTooltip' | translate\">\n {{'igo.geo.layer.style.styleModal' | translate}}\n <mat-icon\n class=\"style-icon\"\n svgIcon=\"palette\"\n [matBadge]=\"selectedFeatures$.value.length\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\">\n </mat-icon>\n </button>\n</div>\n", styles: [".geometry-type-toggle{padding:10px;text-align:center}.geometry-type-toggle mat-button-toggle-group{width:100%}.geometry-type-toggle mat-button-toggle-group mat-button-toggle{width:25%}.draw-options{overflow-x:hidden}.draw-options mat-slide-toggle{width:100%;margin:10px}.draw-options mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.icon-options{margin:5px 5px 0}.edition-drawing{padding:10px 0}img{width:100%;height:100%}.deleteBtn{margin-left:12px}.storeTable{height:auto!important}.layer-select{width:85%;padding:10px 10px 0%}.input-button-container{padding:10px}.input-button-container mat-form-field{width:25%}.input-button-container button{left:8px;bottom:10px}.radius{display:flex;flex-flow:column nowrap;width:110%}.unit-field{width:110px;margin-left:30px}.radius-unit{display:flex;width:100%;margin-left:2px;padding:5px}::ng-deep igo-entity-table td:last-child{text-align:right!important}::ng-deep igo-entity-table td:last-child button{margin:0%!important}\n"] }]
19686
- }], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i1.MatDialog }, { type: DrawIconService }]; }, { map: [{
19851
+ }], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i3.MatDialog }, { type: DrawIconService }]; }, { map: [{
19687
19852
  type: Input
19688
19853
  }], stores: [{
19689
19854
  type: Input
@@ -19878,7 +20043,7 @@ class StyleModalComponent {
19878
20043
  this.dialogRef.close(this.styleModalData);
19879
20044
  }
19880
20045
  }
19881
- StyleModalComponent.ɵfac = function StyleModalComponent_Factory(t) { return new (t || StyleModalComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(DrawStyleService), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
20046
+ StyleModalComponent.ɵfac = function StyleModalComponent_Factory(t) { return new (t || StyleModalComponent)(i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(DrawStyleService), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
19882
20047
  StyleModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StyleModalComponent, selectors: [["igo-style-modal-component"]], inputs: { confirmFlag: "confirmFlag" }, decls: 54, vars: 46, consts: [["mat-dialog-content", ""], ["mat-dialog-title", "", 1, "mat-typography"], [1, "edition-drawing", "mat-typography", 3, "hidden"], [1, "igo-form", 3, "formGroup"], ["class", "fill-color-picker mat-typography", 4, "ngIf"], [1, "stroke-color-picker", "mat-typography"], ["svgIcon", "square-outline", 1, "stroke-palette-icon"], ["appearance", "outline", "floatLabel", "always", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "stroke-field", 3, "matTooltip"], ["formControlName", "stroke", "matInput", "", "type", "text", 3, "readonly", "colorPicker", "cpWidth", "cpPosition", "cpPositionOffset", "cpOutputFormat", "cpCancelButton", "cpCancelButtonText", "cpOKButton", "colorPickerChange"], ["strokeColorInput", ""], [1, "igo-input-container"], ["appearance", "outline", 1, "igo-form-input-box"], ["matInput", "", "type", "number", "placeholder", "10", "min", "10", "onkeydown", "return event.keyCode !== 69", 3, "value", "input"], ["testFontSize", ""], ["matSuffix", ""], [3, "value", "selectionChange"], ["testFontStyle", ""], [3, "value", 4, "ngFor", "ngForOf"], ["matInput", "", "type", "number", "onkeydown", "return event.keyCode !== 69", 3, "value", "input"], ["offsetXInput", ""], ["offsetYInput", ""], ["mat-dialog-actions", ""], ["mat-raised-button", "", 3, "click"], ["mat-raised-button", "", "color", "primary", 3, "click"], [1, "fill-color-picker", "mat-typography"], ["svgIcon", "square", 1, "stroke-palette-icon"], ["appearance", "outline", "floatLabel", "always", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "fill-field", 3, "matTooltip"], ["formControlName", "fill", "matInput", "", "type", "text", 3, "readonly", "colorPicker", "cpWidth", "cpOutputFormat", "cpPosition", "cpPositionOffset", "cpCancelButton", "cpCancelButtonText", "cpOKButton", "colorPickerChange"], ["fillColorInput", ""], [3, "value"]], template: function StyleModalComponent_Template(rf, ctx) {
19883
20048
  if (rf & 1) {
19884
20049
  i0.ɵɵelementStart(0, "div", 0)(1, "h2", 1);
@@ -19982,13 +20147,13 @@ StyleModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StyleMo
19982
20147
  i0.ɵɵadvance(4);
19983
20148
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(51, 44, "igo.geo.draw.cancel"), " ");
19984
20149
  }
19985
- }, dependencies: [i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i1$1.NgForOf, i1$1.NgIf, i2.MatIcon, i3.MatButton, i15.MatSelect, i9.MatOption, i4.MatTooltip, i12$1.ColorPickerDirective, i7.TranslatePipe], styles: ["h2[_ngcontent-%COMP%]{font-weight:700;font-size:large}.igo-form[_ngcontent-%COMP%]{padding:10px}.fill-field[_ngcontent-%COMP%], .stroke-field[_ngcontent-%COMP%]{width:130px}.fill-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.fill-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:8px}.stroke-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.stroke-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:35px}.box[_ngcontent-%COMP%]{width:25px;height:25px}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}.igo-input-container[_ngcontent-%COMP%] .mat-form-field[_ngcontent-%COMP%] + .mat-form-field[_ngcontent-%COMP%]{margin-left:8px}.igo-form-input-box[_ngcontent-%COMP%]{width:150px}button[_ngcontent-%COMP%]{margin-right:5px}"] });
20150
+ }, dependencies: [i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i1.NgForOf, i1.NgIf, i2.MatIcon, i3$1.MatButton, i15.MatSelect, i9.MatOption, i4.MatTooltip, i12$1.ColorPickerDirective, i7.TranslatePipe], styles: ["h2[_ngcontent-%COMP%]{font-weight:700;font-size:large}.igo-form[_ngcontent-%COMP%]{padding:10px}.fill-field[_ngcontent-%COMP%], .stroke-field[_ngcontent-%COMP%]{width:130px}.fill-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.fill-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:8px}.stroke-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.stroke-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:35px}.box[_ngcontent-%COMP%]{width:25px;height:25px}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}.igo-input-container[_ngcontent-%COMP%] .mat-form-field[_ngcontent-%COMP%] + .mat-form-field[_ngcontent-%COMP%]{margin-left:8px}.igo-form-input-box[_ngcontent-%COMP%]{width:150px}button[_ngcontent-%COMP%]{margin-right:5px}"] });
19986
20151
  (function () {
19987
20152
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StyleModalComponent, [{
19988
20153
  type: Component,
19989
20154
  args: [{ selector: 'igo-style-modal-component', template: "<div mat-dialog-content>\n <h2 mat-dialog-title class=\"mat-typography\">{{ 'igo.geo.layer.style.styleModal' | translate }}</h2>\n <div\n class=\"edition-drawing mat-typography\"\n [hidden]=\"data.features.length === 0\">\n <form\n class=\"igo-form\"\n [formGroup]=\"form\">\n <div class=\"fill-color-picker mat-typography\" *ngIf=\"linestringOnly !== true\">\n <span>\n <mat-icon class=\"stroke-palette-icon\" svgIcon=\"square\"></mat-icon>\n {{ 'igo.geo.draw.fill' | translate }}\n </span>\n\n <mat-form-field\n class=\"fill-field\"\n appearance=\"outline\"\n floatLabel=\"always\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.colorPicker' | translate\">\n <mat-label>{{ getFeatureFillColor() }}</mat-label>\n <input\n #fillColorInput\n formControlName=\"fill\"\n matInput\n type=\"text\"\n [style.background]=\"getFeatureFillColor()\"\n [readonly]=\"true\"\n [colorPicker]=\"getFeatureFillColor()\"\n [cpWidth]=\"'200px'\"\n [cpOutputFormat]=\"'rgba'\"\n [cpPosition]=\"'bottom'\"\n [cpPositionOffset]=\"'-75%'\"\n [cpCancelButton]=\"true\"\n [cpCancelButtonText]=\"'igo.geo.draw.cancel' | translate\"\n [cpOKButton]=\"true\"\n (colorPickerChange)=\"styleModalData.fillColor = $event\">\n </mat-form-field>\n </div>\n\n <div class=\"stroke-color-picker mat-typography\">\n <span>\n <mat-icon\n class=\"stroke-palette-icon\"\n svgIcon=\"square-outline\">\n </mat-icon>\n {{'igo.geo.draw.stroke' | translate}}\n </span>\n\n <mat-form-field\n class=\"stroke-field\"\n appearance=\"outline\"\n floatLabel=\"always\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.colorPicker' | translate\">\n <mat-label>{{ getFeatureStrokeColor() }}</mat-label>\n <input\n #strokeColorInput\n formControlName=\"stroke\"\n matInput\n type=\"text\"\n [style.background]=\"getFeatureStrokeColor()\"\n [readonly]=\"true\"\n [colorPicker]=\"getFeatureStrokeColor()\"\n [cpWidth]=\"'200px'\"\n [cpPosition]=\"'bottom'\"\n [cpPositionOffset]=\"'-75%'\"\n [cpOutputFormat]=\"'rgba'\"\n [cpCancelButton]=\"true\"\n [cpCancelButtonText]=\"'igo.geo.draw.cancel' | translate\"\n [cpOKButton]=\"true\"\n (colorPickerChange)=\"styleModalData.strokeColor = $event\">\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.fontSize' | translate }}</mat-label>\n <input\n matInput\n #testFontSize\n type=\"number\"\n placeholder=\"10\"\n min=\"10\"\n onkeydown=\"return event.keyCode !== 69\"\n [value]=\"getFeatureFontSize()\"\n (input)=\"styleModalData.fontSize = $event.target.value\">\n <span matSuffix>px</span>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.fontStyle' | translate }}</mat-label>\n <mat-select\n #testFontStyle\n [value]=\"getFeatureFontStyle()\"\n (selectionChange)=\"styleModalData.fontStyle = $event.value\">\n <mat-option\n *ngFor=\"let fontSelect of allFontStyles\"\n [value]=\"fontSelect\">\n {{ fontSelect }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.offsetX' | translate }}</mat-label>\n <input\n matInput\n #offsetXInput\n type=\"number\"\n onkeydown=\"return event.keyCode !== 69\"\n [value]=\"getFeatureOffsetX()\"\n (input)=\"styleModalData.offsetX = $event.target.value\">\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.offsetY' | translate }}</mat-label>\n <input\n matInput\n #offsetYInput\n type=\"number\"\n onkeydown=\"return event.keyCode !== 69\"\n [value]=\"getFeatureOffsetY()\"\n (input)=\"styleModalData.offsetY= $event.target.value\">\n </mat-form-field>\n </div>\n </form>\n </div>\n</div>\n<div mat-dialog-actions>\n <button \n mat-raised-button \n (click)=\"cancelDrawing()\">{{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm()\">OK\n </button>\n</div>\n", styles: ["h2{font-weight:700;font-size:large}.igo-form{padding:10px}.fill-field,.stroke-field{width:130px}.fill-color-picker mat-icon{position:relative;top:7px}.fill-color-picker mat-form-field{left:8px}.stroke-color-picker mat-icon{position:relative;top:7px}.stroke-color-picker mat-form-field{left:35px}.box{width:25px;height:25px}.edition-drawing{padding:10px 0}.igo-input-container .mat-form-field+.mat-form-field{margin-left:8px}.igo-form-input-box{width:150px}button{margin-right:5px}\n"] }]
19990
20155
  }], function () {
19991
- return [{ type: i1.MatDialogRef }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: undefined, decorators: [{
20156
+ return [{ type: i3.MatDialogRef }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: undefined, decorators: [{
19992
20157
  type: Inject,
19993
20158
  args: [MAT_DIALOG_DATA]
19994
20159
  }] }];
@@ -20132,11 +20297,11 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatInputM
20132
20297
  TrackFeatureButtonComponent,
20133
20298
  StyleModalComponent] });
20134
20299
  })();
20135
- i0.ɵɵsetComponentScope(LayerItemComponent, [i1$1.NgClass, i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5.MatListItem, i9.MatLine, i5.MatListIconCssMatStyler, i7$1.MatBadge, i12.MatCheckbox, LayerLegendComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
20300
+ i0.ɵɵsetComponentScope(LayerItemComponent, [i1.NgClass, i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i5.MatListItem, i9.MatLine, i5.MatListIconCssMatStyler, i7$1.MatBadge, i12.MatCheckbox, LayerLegendComponent], [i1.AsyncPipe, i7.TranslatePipe]);
20136
20301
  i0.ɵɵsetComponentScope(LayerLegendItemComponent, [i4.MatTooltip, i5.MatListItem, i9.MatLine, LayerLegendComponent], []);
20137
- i0.ɵɵsetComponentScope(LayerListComponent, [i2$2.NgControlStatus, i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i1$1.NgTemplateOutlet, i2$2.NgModel, i11.MatDivider, i7$2.MatMenu, i7$2.MatMenuTrigger, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5.MatList, i5.MatListItem, i13$1.MatSlider, i7$1.MatBadge, i12.MatCheckbox, i5$1.ListItemDirective, i5$1.ListComponent, i5$1.PanelComponent, LayerItemComponent,
20138
- LayerListToolComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
20139
- i0.ɵɵsetComponentScope(LayerLegendListComponent, [i1$1.NgForOf, i1$1.NgIf, i11.MatDivider, i23.MatSlideToggle, i4.MatTooltip, i5$1.ListItemDirective, i5$1.ListComponent, LayerLegendItemComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
20302
+ i0.ɵɵsetComponentScope(LayerListComponent, [i2$2.NgControlStatus, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i2$2.NgModel, i11.MatDivider, i7$2.MatMenu, i7$2.MatMenuTrigger, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i5.MatList, i5.MatListItem, i13$1.MatSlider, i7$1.MatBadge, i12.MatCheckbox, i5$1.ListItemDirective, i5$1.ListComponent, i5$1.PanelComponent, LayerItemComponent,
20303
+ LayerListToolComponent], [i1.AsyncPipe, i7.TranslatePipe]);
20304
+ i0.ɵɵsetComponentScope(LayerLegendListComponent, [i1.NgForOf, i1.NgIf, i11.MatDivider, i23.MatSlideToggle, i4.MatTooltip, i5$1.ListItemDirective, i5$1.ListComponent, LayerLegendItemComponent], [i1.AsyncPipe, i7.TranslatePipe]);
20140
20305
 
20141
20306
  /**
20142
20307
  * @ignore
@@ -20202,8 +20367,8 @@ IgoCatalogBrowserModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
20202
20367
  IgoMetadataModule,
20203
20368
  IgoLayerModule], exports: [CatalogBrowserComponent] });
20204
20369
  })();
20205
- i0.ɵɵsetComponentScope(CatalogBrowserComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, CatalogBrowserGroupComponent,
20206
- CatalogBrowserLayerComponent], [i1$1.AsyncPipe]);
20370
+ i0.ɵɵsetComponentScope(CatalogBrowserComponent, [i1.NgForOf, i1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, CatalogBrowserGroupComponent,
20371
+ CatalogBrowserLayerComponent], [i1.AsyncPipe]);
20207
20372
 
20208
20373
  function AddCatalogDialogComponent_mat_option_11_Template(rf, ctx) {
20209
20374
  if (rf & 1) {
@@ -20246,7 +20411,7 @@ function AddCatalogDialogComponent_mat_option_23_Template(rf, ctx) {
20246
20411
  i0.ɵɵtextInterpolate(type_r9);
20247
20412
  }
20248
20413
  }
20249
- const _c0$b = function (a0, a1) { return { value: a0, email: a1 }; };
20414
+ const _c0$c = function (a0, a1) { return { value: a0, email: a1 }; };
20250
20415
  function AddCatalogDialogComponent_span_24_Template(rf, ctx) {
20251
20416
  if (rf & 1) {
20252
20417
  i0.ɵɵelementStart(0, "span")(1, "p", 20);
@@ -20256,7 +20421,7 @@ function AddCatalogDialogComponent_span_24_Template(rf, ctx) {
20256
20421
  if (rf & 2) {
20257
20422
  const ctx_r5 = i0.ɵɵnextContext();
20258
20423
  i0.ɵɵadvance(2);
20259
- i0.ɵɵtextInterpolate(ctx_r5.languageService.translate.instant("igo.geo.catalog.externalProvider.unavailableWithEmail", i0.ɵɵpureFunction2(1, _c0$b, ctx_r5.addedCatalog.url, ctx_r5.emailAddress)));
20424
+ i0.ɵɵtextInterpolate(ctx_r5.languageService.translate.instant("igo.geo.catalog.externalProvider.unavailableWithEmail", i0.ɵɵpureFunction2(1, _c0$c, ctx_r5.addedCatalog.url, ctx_r5.emailAddress)));
20260
20425
  }
20261
20426
  }
20262
20427
  const _c1$9 = function (a0) { return { value: a0 }; };
@@ -20335,7 +20500,7 @@ class AddCatalogDialogComponent {
20335
20500
  this.dialogRef.close();
20336
20501
  }
20337
20502
  }
20338
- AddCatalogDialogComponent.ɵfac = function AddCatalogDialogComponent_Factory(t) { return new (t || AddCatalogDialogComponent)(i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$1.ConfigService), i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA, 8)); };
20503
+ AddCatalogDialogComponent.ɵfac = function AddCatalogDialogComponent_Factory(t) { return new (t || AddCatalogDialogComponent)(i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$1.ConfigService), i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA, 8)); };
20339
20504
  AddCatalogDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddCatalogDialogComponent, selectors: [["igo-add-catalog-dialog"]], decls: 34, vars: 25, consts: [["mat-dialog-title", "", 1, "mat-typography"], ["mat-dialog-content", "", 1, "mat-typography"], [1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], ["type", "text", "formControlName", "title", "matInput", "", 3, "placeholder", "matAutocomplete"], [3, "optionSelected"], ["auto2", "matAutocomplete"], ["matTooltipShowDelay", "500", 3, "matTooltip", "value", 4, "ngFor", "ngForOf"], ["type", "text", "formControlName", "url", "placeholder", "URL", "matInput", "", 3, "matAutocomplete"], ["auto", "matAutocomplete"], ["formControlName", "type", "placeholder", "Type"], [3, "value", "click", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["mat-dialog-actions", "", 2, "justify-content", "center"], [1, "igo-form-button-group", "add-catalog-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "click"], ["id", "addCatalogBtnDialog", "mat-raised-button", "", "type", "button", "color", "primary", 3, "disabled", "click"], ["matTooltipShowDelay", "500", 3, "matTooltip", "value"], [3, "value", "click"], ["mat-line", ""], [1, "error"]], template: function AddCatalogDialogComponent_Template(rf, ctx) {
20340
20505
  if (rf & 1) {
20341
20506
  i0.ɵɵelementStart(0, "h1", 0);
@@ -20403,13 +20568,13 @@ AddCatalogDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A
20403
20568
  i0.ɵɵadvance(1);
20404
20569
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(33, 23, "igo.geo.catalog.library.add"), " ");
20405
20570
  }
20406
- }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i9.MatLine, i4.MatTooltip, i3.MatButton, i13.MatFormField, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i14.MatInput, i15.MatSelect, i9.MatOption, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i1.MatDialogTitle, i1.MatDialogContent, i1.MatDialogActions, i1$1.AsyncPipe, i7.TranslatePipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}.add-catalog-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}.igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center}button[_ngcontent-%COMP%]{cursor:pointer}button#addCatalogBtnDialog[disabled=true][_ngcontent-%COMP%]{cursor:default;background-color:#0000001f;color:#00000042}.error[_ngcontent-%COMP%]{color:red}"] });
20571
+ }, dependencies: [i1.NgForOf, i1.NgIf, i9.MatLine, i4.MatTooltip, i3$1.MatButton, i13.MatFormField, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i14.MatInput, i15.MatSelect, i9.MatOption, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i3.MatDialogTitle, i3.MatDialogContent, i3.MatDialogActions, i1.AsyncPipe, i7.TranslatePipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}.add-catalog-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}.igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center}button[_ngcontent-%COMP%]{cursor:pointer}button#addCatalogBtnDialog[disabled=true][_ngcontent-%COMP%]{cursor:default;background-color:#0000001f;color:#00000042}.error[_ngcontent-%COMP%]{color:red}"] });
20407
20572
  (function () {
20408
20573
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddCatalogDialogComponent, [{
20409
20574
  type: Component,
20410
20575
  args: [{ selector: 'igo-add-catalog-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{'igo.geo.catalog.library.addTitle' | translate}}</h1>\n<div mat-dialog-content class=\"mat-typography\">\n <form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input type=\"text\" formControlName=\"title\" placeholder=\"{{'igo.geo.printForm.title' | translate}}\" matInput [matAutocomplete]=\"auto2\">\n <mat-autocomplete #auto2=\"matAutocomplete\" (optionSelected)='changeUrlOrTitle($event.option.value)'>\n <mat-option *ngFor=\"let predefinedCatalog of (predefinedCatalogsList$ | async)\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"predefinedCatalog.title\" [value]=\"predefinedCatalog\">\n {{predefinedCatalog.title}}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input type=\"text\" formControlName=\"url\" placeholder=\"URL\" matInput [matAutocomplete]=\"auto\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)='changeUrlOrTitle($event.option.value)'>\n <mat-option *ngFor=\"let predefinedCatalog of (predefinedCatalogsList$ | async)\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"predefinedCatalog.url\" [value]=\"predefinedCatalog\">\n {{predefinedCatalog.url}}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-select\n formControlName=\"type\"\n placeholder=\"Type\">\n <mat-option\n *ngFor=\"let type of typeCapabilities\"\n [value]=\"type\"\n (click)=\"$event.stopPropagation()\">\n <p mat-line>{{type}}</p>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </form>\n <span *ngIf=\"error && addedCatalog && emailAddress\">\n <p class=\"error\">{{languageService.translate.instant('igo.geo.catalog.externalProvider.unavailableWithEmail', { value: addedCatalog.url, email: emailAddress })}}</p>\n </span>\n <span *ngIf=\"error && addedCatalog && !emailAddress\">\n <p class=\"error\">{{languageService.translate.instant('igo.geo.catalog.unavailable', { value: addedCatalog.url })}}</p>\n </span>\n</div>\n<div mat-dialog-actions style=\"justify-content: center\">\n <div class=\"igo-form-button-group add-catalog-button-top-padding\">\n <button\n mat-raised-button\n type=\"button\"\n (click)=\"cancel()\">\n {{'igo.geo.catalog.library.cancel' | translate}}\n </button>\n <button\n id=\"addCatalogBtnDialog\"\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!form.valid\"\n (click)=\"addCatalog(form.value)\">\n {{'igo.geo.catalog.library.add' | translate}}\n </button>\n </div>\n</div>", styles: ["mat-form-field{width:100%}.add-catalog-button-top-padding{padding-top:25px}.igo-form{padding:10px 5px 5px}.igo-form-button-group{text-align:center}button{cursor:pointer}button#addCatalogBtnDialog[disabled=true]{cursor:default;background-color:#0000001f;color:#00000042}.error{color:red}\n"] }]
20411
20576
  }], function () {
20412
- return [{ type: i2$2.UntypedFormBuilder }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
20577
+ return [{ type: i2$2.UntypedFormBuilder }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
20413
20578
  type: Optional
20414
20579
  }, {
20415
20580
  type: Inject,
@@ -20602,7 +20767,7 @@ class CatalogLibaryComponent {
20602
20767
  });
20603
20768
  }
20604
20769
  }
20605
- CatalogLibaryComponent.ɵfac = function CatalogLibaryComponent_Factory(t) { return new (t || CatalogLibaryComponent)(i0.ɵɵdirectiveInject(CapabilitiesService), i0.ɵɵdirectiveInject(i2$1.MessageService), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$1.StorageService), i0.ɵɵdirectiveInject(i1.MatDialog)); };
20770
+ CatalogLibaryComponent.ɵfac = function CatalogLibaryComponent_Factory(t) { return new (t || CatalogLibaryComponent)(i0.ɵɵdirectiveInject(CapabilitiesService), i0.ɵɵdirectiveInject(i2$1.MessageService), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$1.StorageService), i0.ɵɵdirectiveInject(i3.MatDialog)); };
20606
20771
  CatalogLibaryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogLibaryComponent, selectors: [["igo-catalog-library"]], inputs: { store: "store", map: "map", addCatalogAllowed: "addCatalogAllowed", predefinedCatalogs: "predefinedCatalogs" }, outputs: { catalogSelectChange: "catalogSelectChange" }, decls: 4, vars: 5, consts: [[3, "navigation"], ["ngFor", "", 3, "ngForOf"], ["class", "btnAddCatalog", 4, "ngIf"], ["igoListItem", "", "color", "accent", 3, "map", "catalog", "catalogRemove", "select"], [1, "btnAddCatalog"], ["mat-raised-button", "", "matTooltipPosition", "above", "color", "primary", 3, "matTooltip", "click"], ["svgIcon", "earth-plus"]], template: function CatalogLibaryComponent_Template(rf, ctx) {
20607
20772
  if (rf & 1) {
20608
20773
  i0.ɵɵelementStart(0, "igo-list", 0);
@@ -20623,7 +20788,7 @@ CatalogLibaryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cata
20623
20788
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CatalogLibaryComponent, [{
20624
20789
  type: Component,
20625
20790
  args: [{ selector: 'igo-catalog-library', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\">\n <ng-template ngFor let-catalog [ngForOf]=\"getCatalogs() | async\">\n <igo-catalog-library-item\n igoListItem\n color=\"accent\"\n [map]=\"map\"\n [catalog]=\"catalog\"\n (catalogRemove)=\"onCatalogRemove(catalog)\"\n (select)=\"onCatalogSelect(catalog)\">\n </igo-catalog-library-item>\n </ng-template>\n</igo-list>\n\n<div *ngIf=\"addCatalogAllowed\" class=btnAddCatalog>\n <button\n mat-raised-button\n [matTooltip]=\"'igo.geo.catalog.library.addBtn' | translate\"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"addCatalogDialog()\">\n {{'igo.geo.catalog.library.addBtn' | translate}}\n <mat-icon svgIcon=\"earth-plus\"></mat-icon>\n </button>\n</div>\n", styles: ["igo-list{height:auto}.btnAddCatalog{justify-content:center;display:flex;margin:30px 0}\n"] }]
20626
- }], function () { return [{ type: CapabilitiesService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: i1.MatDialog }]; }, { store: [{
20791
+ }], function () { return [{ type: CapabilitiesService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: i3.MatDialog }]; }, { store: [{
20627
20792
  type: Input
20628
20793
  }], map: [{
20629
20794
  type: Input
@@ -20704,7 +20869,7 @@ CatalogLibaryItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
20704
20869
  i0.ɵɵadvance(1);
20705
20870
  i0.ɵɵproperty("ngIf", !ctx.catalog.removable);
20706
20871
  }
20707
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i5.MatListItem, i9.MatLine, i4.MatTooltip, i3.MatButton, i7.TranslatePipe], styles: [".igo-blank[_ngcontent-%COMP%]{cursor:pointer}.igo-external-provider[_ngcontent-%COMP%]{cursor:help}"], changeDetection: 0 });
20872
+ }, dependencies: [i1.NgIf, i2.MatIcon, i5.MatListItem, i9.MatLine, i4.MatTooltip, i3$1.MatButton, i7.TranslatePipe], styles: [".igo-blank[_ngcontent-%COMP%]{cursor:pointer}.igo-external-provider[_ngcontent-%COMP%]{cursor:help}"], changeDetection: 0 });
20708
20873
  (function () {
20709
20874
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CatalogLibaryItemComponent, [{
20710
20875
  type: Component,
@@ -20790,7 +20955,7 @@ IgoCatalogLibraryModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
20790
20955
  MatDialogModule], exports: [CatalogLibaryComponent,
20791
20956
  AddCatalogDialogComponent] });
20792
20957
  })();
20793
- i0.ɵɵsetComponentScope(CatalogLibaryComponent, [i1$1.NgForOf, i1$1.NgIf, i2.MatIcon, i4.MatTooltip, i5$1.ListItemDirective, i5$1.ListComponent, i3.MatButton, CatalogLibaryItemComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
20958
+ i0.ɵɵsetComponentScope(CatalogLibaryComponent, [i1.NgForOf, i1.NgIf, i2.MatIcon, i4.MatTooltip, i5$1.ListItemDirective, i5$1.ListComponent, i3$1.MatButton, CatalogLibaryItemComponent], [i1.AsyncPipe, i7.TranslatePipe]);
20794
20959
 
20795
20960
  class IgoCatalogModule {
20796
20961
  }
@@ -21342,7 +21507,7 @@ class SpatialFilterService {
21342
21507
  }
21343
21508
  }
21344
21509
  }
21345
- SpatialFilterService.ɵfac = function SpatialFilterService_Factory(t) { return new (t || SpatialFilterService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.ConfigService)); };
21510
+ SpatialFilterService.ɵfac = function SpatialFilterService_Factory(t) { return new (t || SpatialFilterService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.ConfigService)); };
21346
21511
  SpatialFilterService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SpatialFilterService, factory: SpatialFilterService.ɵfac, providedIn: 'root' });
21347
21512
  (function () {
21348
21513
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SpatialFilterService, [{
@@ -21350,7 +21515,7 @@ SpatialFilterService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Spa
21350
21515
  args: [{
21351
21516
  providedIn: 'root'
21352
21517
  }]
21353
- }], function () { return [{ type: i1$2.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }]; }, null);
21518
+ }], function () { return [{ type: i1$1.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }]; }, null);
21354
21519
  })();
21355
21520
 
21356
21521
  class DownloadService {
@@ -21463,7 +21628,7 @@ DownloadButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dow
21463
21628
  if (rf & 2) {
21464
21629
  i0.ɵɵproperty("ngIf", ctx.options && ctx.options.download && (ctx.options.download["dynamicUrl"] || ctx.options.download["url"]));
21465
21630
  }
21466
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i7.TranslatePipe], changeDetection: 0 });
21631
+ }, dependencies: [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i7.TranslatePipe], changeDetection: 0 });
21467
21632
  (function () {
21468
21633
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DownloadButtonComponent, [{
21469
21634
  type: Component,
@@ -22627,7 +22792,7 @@ class MeasurerDialogComponent {
22627
22792
  this.dialogRef.close();
22628
22793
  }
22629
22794
  }
22630
- MeasurerDialogComponent.ɵfac = function MeasurerDialogComponent_Factory(t) { return new (t || MeasurerDialogComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
22795
+ MeasurerDialogComponent.ɵfac = function MeasurerDialogComponent_Factory(t) { return new (t || MeasurerDialogComponent)(i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
22631
22796
  MeasurerDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MeasurerDialogComponent, selectors: [["igo-measurer-dialog"]], decls: 5, vars: 5, consts: [["mat-dialog-title", ""], ["class", "mat-typography", 4, "ngIf"], [1, "mat-typography"], ["colspan", "2"]], template: function MeasurerDialogComponent_Template(rf, ctx) {
22632
22797
  if (rf & 1) {
22633
22798
  i0.ɵɵelementStart(0, "h3", 0);
@@ -22651,14 +22816,14 @@ MeasurerDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Mea
22651
22816
  type: Component,
22652
22817
  args: [{ selector: 'igo-measurer-dialog', template: "<h3 mat-dialog-title>{{'igo.geo.measure.dialog.title' | translate}}</h3>\n\n<table *ngIf=\"data.length > 0\"\n class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">{{'igo.geo.measure.dialog.length.title' | translate}}</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{data.length | measureFormat: measureLengthUnit.Meters}}</td>\n <td>{{'igo.geo.measure.dialog.lengthInMeters' | translate}}</td>\n </tr>\n <tr>\n <td>{{data.length | measureFormat: measureLengthUnit.Kilometers}}</td>\n <td>{{'igo.geo.measure.dialog.lengthInKilometers' | translate}}</td>\n </tr>\n <tr>\n <td>{{data.length | measureFormat: measureLengthUnit.Miles}}</td>\n <td>{{'igo.geo.measure.dialog.lengthInMiles' | translate}}</td>\n </tr>\n <tr>\n <td>{{data.length | measureFormat: measureLengthUnit.Feet}}</td>\n <td>{{'igo.geo.measure.dialog.lengthInFeet' | translate}}</td>\n </tr>\n </tbody>\n</table>\n\n<table *ngIf=\"data.area > 0\"\n class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">{{'igo.geo.measure.dialog.area.title' | translate}}</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{data.area | measureFormat: measureAreaUnit.SquareMeters}}</td>\n <td>{{'igo.geo.measure.dialog.areaInSquareMeters' | translate}}</td>\n </tr>\n <tr>\n <td>{{data.area | measureFormat:measureAreaUnit.SquareKilometers}}</td>\n <td>{{'igo.geo.measure.dialog.areaInSquareKilometers' | translate}}</td>\n </tr>\n <tr>\n <td>{{data.area | measureFormat: measureAreaUnit.SquareMiles}}</td>\n <td>{{'igo.geo.measure.dialog.areaInSquareMiles' | translate}}</td>\n </tr>\n <tr>\n <td>{{data.area | measureFormat: measureAreaUnit.Acres}}</td>\n <td>{{'igo.geo.measure.dialog.areaInAcres' | translate}}</td>\n </tr>\n <tr>\n <td>{{data.area | measureFormat: measureAreaUnit.Hectares}}</td>\n <td>{{'igo.geo.measure.dialog.areaInHectares' | translate}}</td>\n </tr>\n <tr>\n <td>{{'igo.geo.measure.dialog.perimeterInMeters' | translate}}</td>\n <td>{{data.perimeter | measureFormat: measureLengthUnit.Meters}}</td>\n </tr>\n </tbody>\n</table>\n", styles: [":host{font-family:Roboto,Helvetica Neue,sans-serif}h3{text-align:center;margin:0}table{width:100%;padding:10px}table tbody tr td:last-child{padding-left:10px}\n"] }]
22653
22818
  }], function () {
22654
- return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
22819
+ return [{ type: i3.MatDialogRef }, { type: undefined, decorators: [{
22655
22820
  type: Inject,
22656
22821
  args: [MAT_DIALOG_DATA]
22657
22822
  }] }];
22658
22823
  }, null);
22659
22824
  })();
22660
22825
 
22661
- const _c0$a = ["table"];
22826
+ const _c0$b = ["table"];
22662
22827
  function MeasurerComponent_mat_divider_13_Template(rf, ctx) {
22663
22828
  if (rf & 1) {
22664
22829
  i0.ɵɵelement(0, "mat-divider");
@@ -23600,10 +23765,10 @@ class MeasurerComponent {
23600
23765
  return true;
23601
23766
  }
23602
23767
  }
23603
- MeasurerComponent.ɵfac = function MeasurerComponent_Factory(t) { return new (t || MeasurerComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i1.MatDialog), i0.ɵɵdirectiveInject(i2$1.StorageService)); };
23768
+ MeasurerComponent.ɵfac = function MeasurerComponent_Factory(t) { return new (t || MeasurerComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i3.MatDialog), i0.ɵɵdirectiveInject(i2$1.StorageService)); };
23604
23769
  MeasurerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MeasurerComponent, selectors: [["igo-measurer"]], viewQuery: function MeasurerComponent_Query(rf, ctx) {
23605
23770
  if (rf & 1) {
23606
- i0.ɵɵviewQuery(_c0$a, 7);
23771
+ i0.ɵɵviewQuery(_c0$b, 7);
23607
23772
  }
23608
23773
  if (rf & 2) {
23609
23774
  let _t;
@@ -23707,7 +23872,7 @@ MeasurerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MeasurerC
23707
23872
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MeasurerComponent, [{
23708
23873
  type: Component,
23709
23874
  args: [{ selector: 'igo-measurer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <div class=\"measure-type-toggle mat-typography\">\n <mat-button-toggle-group\n [value]=\"activeMeasureType\"\n (change)=\"onMeasureTypeChange($event.value)\">\n <mat-button-toggle [value]=\"measureType.Length\">\n {{('igo.geo.measure.' + measureType.Length) | translate}}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"measureType.Area\">\n {{('igo.geo.measure.' + measureType.Area) | translate}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <div class=\"measure-options mat-typography\">\n <mat-slide-toggle\n [disabled]=\"drawControlIsDisabled\"\n [checked]=\"drawControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDrawControl($event.checked)\">\n {{'igo.geo.measure.toggleActive' | translate}}\n </mat-slide-toggle>\n\n <mat-divider *ngIf=\"(hasLine$ | async)\"></mat-divider>\n\n <mat-slide-toggle *ngIf=\"(hasLine$ | async)\"\n [checked]=\"displayLines\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDisplayLines($event.checked)\">\n {{'igo.geo.measure.toggleDisplayLines' | translate}}\n </mat-slide-toggle>\n\n <mat-divider *ngIf=\"(hasLine$ | async) || (hasArea$ | async)\"></mat-divider>\n\n <mat-slide-toggle *ngIf=\"(hasArea$ | async)\"\n [checked]=\"displayDistance\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDisplayDistance($event.checked)\">\n {{'igo.geo.measure.toggleDisplayDistance' | translate}}\n </mat-slide-toggle>\n\n <mat-slide-toggle *ngIf=\"(hasArea$ | async)\"\n [checked]=\"displayAreas\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDisplayAreas($event.checked)\">\n {{'igo.geo.measure.toggleDisplayAreas' | translate}}\n </mat-slide-toggle>\n\n <mat-divider *ngIf=\"(hasArea$ | async)\"></mat-divider>\n\n <mat-slide-toggle\n [checked]=\"measureUnitsAuto\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleMeasureUnitsAuto($event.checked)\">\n {{'igo.geo.measure.toggleAutoUnits' | translate}}\n </mat-slide-toggle>\n </div>\n\n <ng-container *ngIf=\"measure$ | async as measure\">\n <igo-measurer-item *ngIf=\"activeMeasureType === measureType.Length || activeMeasureType === measureType.Area\"\n [measureType]=\"measureType.Length\"\n [measureUnit]=\"measureLengthUnit.Meters\"\n [measure]=\"measure.length\"\n [auto]=\"measureUnitsAuto\"\n [placeholder]=\"(activeMeasureType === measureType.Area ? 'igo.geo.measure.perimeter' : 'igo.geo.measure.length') | translate\"\n (measureUnitChange)=\"onLengthUnitChange($event)\">\n </igo-measurer-item>\n\n <igo-measurer-item *ngIf=\"activeMeasureType === measureType.Area\"\n [measureType]=\"measureType.Area\"\n [measureUnit]=\"measureAreaUnit.SquareMeters\"\n [measure]=\"measure.area\"\n [auto]=\"measureUnitsAuto\"\n [placeholder]=\"'igo.geo.measure.area' | translate\"\n (measureUnitChange)=\"onAreaUnitChange($event)\">\n </igo-measurer-item>\n </ng-container>\n\n <mat-divider *ngIf=\"(hasLine$ | async) || (hasArea$ | async)\"></mat-divider>\n\n <div class=\"measure-store-buttons\">\n <button *ngIf=\"(hasLine$ | async) || (hasArea$ | async)\"\n mat-icon-button\n [matTooltip]=\"'igo.geo.measure.actionbar.calculate.tooltip' | translate\"\n [disabled]=\"(selectedFeatures$ | async).length === 0\"\n color=\"accent\"\n (click)=\"onCalculateClick()\">\n <mat-icon svgIcon=\"calculator\"></mat-icon>\n </button>\n\n <button *ngIf=\"(hasLine$ | async) || (hasArea$ | async)\"\n mat-icon-button\n [matTooltip]=\"'igo.geo.measure.actionbar.delete.tooltip' | translate\"\n [disabled]=\"(selectedFeatures$ | async).length === 0\"\n color=\"warn\"\n (click)=\"onDeleteClick()\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n\n <!--button\n mat-icon-button\n [matTooltip]=\"'igo.geo.measure.actionbar.modify.tooltip' | translate\"\n [disabled]=\"(selectedFeatures$ | async).length !== 1\"\n (click)=\"onModifyClick()\">\n <mat-icon svgIcon=\"edit\"></mat-icon>\n </button-->\n </div>\n\n <igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"store\"\n [template]=\"tableTemplate\">\n </igo-entity-table>\n</div>\n", styles: [".measure-type-toggle{padding:10px;text-align:center}.measure-type-toggle mat-button-toggle-group{width:100%}.measure-type-toggle mat-button-toggle-group mat-button-toggle{width:50%}.measure-options{overflow-x:hidden}.measure-options mat-slide-toggle{width:100%;margin:10px}.measure-options mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.measure-store-buttons{margin-left:-2px}.measure-store-buttons button:first-of-type{margin-left:14px}.table-compact ::ng-deep .mat-header-cell.mat-column-selectionCheckbox{width:52px}\n"] }]
23710
- }], function () { return [{ type: i2$1.LanguageService }, { type: i1.MatDialog }, { type: i2$1.StorageService }]; }, { map: [{
23875
+ }], function () { return [{ type: i2$1.LanguageService }, { type: i3.MatDialog }, { type: i2$1.StorageService }]; }, { map: [{
23711
23876
  type: Input
23712
23877
  }], store: [{
23713
23878
  type: Input
@@ -24421,7 +24586,7 @@ GeometryFormFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
24421
24586
  i0.ɵɵadvance(1);
24422
24587
  i0.ɵɵproperty("ngIf", ctx.drawGuideField);
24423
24588
  }
24424
- }, dependencies: [i1$1.NgIf, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgModel, i2$2.FormControlDirective, i2.MatIcon, i13.MatFormField, i13.MatPrefix, i13.MatSuffix, i14.MatInput, i18.MatButtonToggleGroup, i18.MatButtonToggle, GeometryFormFieldInputComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;width:100%}.geometry-type-toggle[_ngcontent-%COMP%], .draw-guide-field[_ngcontent-%COMP%]{width:100%}.geometry-type-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.draw-guide-field[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0 10px}.draw-guide-units[_ngcontent-%COMP%]{padding:10px}"], changeDetection: 0 });
24589
+ }, dependencies: [i1.NgIf, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgModel, i2$2.FormControlDirective, i2.MatIcon, i13.MatFormField, i13.MatPrefix, i13.MatSuffix, i14.MatInput, i18.MatButtonToggleGroup, i18.MatButtonToggle, GeometryFormFieldInputComponent, i1.AsyncPipe, i7.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;width:100%}.geometry-type-toggle[_ngcontent-%COMP%], .draw-guide-field[_ngcontent-%COMP%]{width:100%}.geometry-type-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.draw-guide-field[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0 10px}.draw-guide-units[_ngcontent-%COMP%]{padding:10px}"], changeDetection: 0 });
24425
24590
  GeometryFormFieldComponent = __decorate([
24426
24591
  IgoFormFieldComponent('geometry')
24427
24592
  ], GeometryFormFieldComponent);
@@ -25368,7 +25533,7 @@ TimeFilterFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Tim
25368
25533
  i0.ɵɵadvance(1);
25369
25534
  i0.ɵɵproperty("ngIf", ctx.style === "slider" && ctx.type !== "year");
25370
25535
  }
25371
- }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgModel, i9.MatOption, i2.MatIcon, i3.MatButton, i13$1.MatSlider, i23.MatSlideToggle, i13.MatFormField, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, i12$2.MatDatetimepickerComponent, i12$2.MatDatetimepickerToggleComponent, i12$2.MatDatetimepickerInputDirective, i7.TranslatePipe], styles: [".igo-layer-filters-container[_ngcontent-%COMP%]{padding-left:5px}mat-slider[_ngcontent-%COMP%] div.mat-slider-thumb-label{width:32px;height:32px;margin:0 auto}mat-slider[_ngcontent-%COMP%] span.mat-slider-thumb-label-text{font-size:10px}#time-slider[_ngcontent-%COMP%]{width:70%;margin:0 auto}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){#time-slider[_ngcontent-%COMP%]{width:60%;margin:0 auto}}.date-below[_ngcontent-%COMP%]{margin:0}mat-form-field[_ngcontent-%COMP%]{text-align:center}mat-datetimepicker-toggle[_ngcontent-%COMP%] .mat-icon{padding-bottom:30px}.igo-layer-actions-container[_ngcontent-%COMP%] > .mat-slide-toggle[_ngcontent-%COMP%]{vertical-align:middle}.time-filter-mat-datetimepicker-toggle[_ngcontent-%COMP%] .mat-icon{width:auto}"] });
25536
+ }, dependencies: [i1.NgForOf, i1.NgIf, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgModel, i9.MatOption, i2.MatIcon, i3$1.MatButton, i13$1.MatSlider, i23.MatSlideToggle, i13.MatFormField, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, i12$2.MatDatetimepickerComponent, i12$2.MatDatetimepickerToggleComponent, i12$2.MatDatetimepickerInputDirective, i7.TranslatePipe], styles: [".igo-layer-filters-container[_ngcontent-%COMP%]{padding-left:5px}mat-slider[_ngcontent-%COMP%] div.mat-slider-thumb-label{width:32px;height:32px;margin:0 auto}mat-slider[_ngcontent-%COMP%] span.mat-slider-thumb-label-text{font-size:10px}#time-slider[_ngcontent-%COMP%]{width:70%;margin:0 auto}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){#time-slider[_ngcontent-%COMP%]{width:60%;margin:0 auto}}.date-below[_ngcontent-%COMP%]{margin:0}mat-form-field[_ngcontent-%COMP%]{text-align:center}mat-datetimepicker-toggle[_ngcontent-%COMP%] .mat-icon{padding-bottom:30px}.igo-layer-actions-container[_ngcontent-%COMP%] > .mat-slide-toggle[_ngcontent-%COMP%]{vertical-align:middle}.time-filter-mat-datetimepicker-toggle[_ngcontent-%COMP%] .mat-icon{width:auto}"] });
25372
25537
  (function () {
25373
25538
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeFilterFormComponent, [{
25374
25539
  type: Component,
@@ -25389,7 +25554,7 @@ TimeFilterFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Tim
25389
25554
  }] });
25390
25555
  })();
25391
25556
 
25392
- const _c0$9 = function (a0) { return { disabled: a0 }; };
25557
+ const _c0$a = function (a0) { return { disabled: a0 }; };
25393
25558
  function TimeFilterItemComponent_mat_list_item_0_button_4_Template(rf, ctx) {
25394
25559
  if (rf & 1) {
25395
25560
  const _r6 = i0.ɵɵgetCurrentView();
@@ -25405,7 +25570,7 @@ function TimeFilterItemComponent_mat_list_item_0_button_4_Template(rf, ctx) {
25405
25570
  const ctx_r4 = i0.ɵɵnextContext(2);
25406
25571
  i0.ɵɵproperty("color", ctx_r4.layer.visible ? "primary" : "default")("matTooltip", ctx_r4.layer.visible ? i0.ɵɵpipeBind1(1, 4, "igo.geo.layer.hideLayer") : i0.ɵɵpipeBind1(2, 6, "igo.geo.layer.showLayer"));
25407
25572
  i0.ɵɵadvance(3);
25408
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$9, i0.ɵɵpipeBind1(4, 8, ctx_r4.inResolutionRange$) === false))("svgIcon", ctx_r4.layer.visible ? "eye" : "eye-off");
25573
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$a, i0.ɵɵpipeBind1(4, 8, ctx_r4.inResolutionRange$) === false))("svgIcon", ctx_r4.layer.visible ? "eye" : "eye-off");
25409
25574
  }
25410
25575
  }
25411
25576
  const _c1$8 = function (a0) { return { "cursor": a0 }; };
@@ -26173,7 +26338,7 @@ function OgcFilterFormComponent_igo_ogc_filter_time_41_Template(rf, ctx) {
26173
26338
  i0.ɵɵproperty("datasource", ctx_r8.datasource)("currentFilter", ctx_r8.currentFilter);
26174
26339
  }
26175
26340
  }
26176
- const _c0$8 = function (a0, a1) { return { "logical": a0, "logicalHidden": a1 }; };
26341
+ const _c0$9 = function (a0, a1) { return { "logical": a0, "logicalHidden": a1 }; };
26177
26342
  const _c1$7 = function (a0, a1) { return { "operator": a0, "dualInput": a1 }; };
26178
26343
  const _c2$4 = function () { return ["expression", "pattern"]; };
26179
26344
  const _c3$1 = function () { return ["lowerBoundary", "begin"]; };
@@ -26481,7 +26646,7 @@ OgcFilterFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcF
26481
26646
  if (rf & 2) {
26482
26647
  i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 27, "igo.geo.filter.toggleFilterState"))("checked", ctx.currentFilter.active);
26483
26648
  i0.ɵɵadvance(2);
26484
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(67, _c0$8, ctx.activeFilters.indexOf(ctx.currentFilter) !== 0 && ctx.currentFilter.active === true, ctx.activeFilters.indexOf(ctx.currentFilter) === 0 || ctx.currentFilter.active !== true));
26649
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(67, _c0$9, ctx.activeFilters.indexOf(ctx.currentFilter) !== 0 && ctx.currentFilter.active === true, ctx.activeFilters.indexOf(ctx.currentFilter) === 0 || ctx.currentFilter.active !== true));
26485
26650
  i0.ɵɵadvance(1);
26486
26651
  i0.ɵɵproperty("disabled", !ctx.currentFilter.active)("value", ctx.currentFilter.parentLogical)("matTooltip", ctx.currentFilter.parentLogical ? i0.ɵɵpipeBind1(4, 29, "igo.geo.operators.tooltip." + ctx.currentFilter.parentLogical) : "");
26487
26652
  i0.ɵɵadvance(2);
@@ -26619,7 +26784,7 @@ function OgcFilterableItemComponent_mat_icon_2_Template(rf, ctx) {
26619
26784
  i0.ɵɵproperty("target", _r4)("collapsed", ctx_r0.filtersCollapsed);
26620
26785
  }
26621
26786
  }
26622
- const _c0$7 = function (a0) { return { "cursor": a0 }; };
26787
+ const _c0$8 = function (a0) { return { "cursor": a0 }; };
26623
26788
  function OgcFilterableItemComponent_h4_3_Template(rf, ctx) {
26624
26789
  if (rf & 1) {
26625
26790
  const _r10 = i0.ɵɵgetCurrentView();
@@ -26630,7 +26795,7 @@ function OgcFilterableItemComponent_h4_3_Template(rf, ctx) {
26630
26795
  }
26631
26796
  if (rf & 2) {
26632
26797
  const ctx_r1 = i0.ɵɵnextContext();
26633
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c0$7, ctx_r1.filtersCollapsed ? "default" : "pointer"))("matTooltip", ctx_r1.layer.title);
26798
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c0$8, ctx_r1.filtersCollapsed ? "default" : "pointer"))("matTooltip", ctx_r1.layer.title);
26634
26799
  i0.ɵɵadvance(1);
26635
26800
  i0.ɵɵtextInterpolate(ctx_r1.layer.title);
26636
26801
  }
@@ -27241,7 +27406,7 @@ OGCFilterTimeService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: OGC
27241
27406
  }], function () { return []; }, null);
27242
27407
  })();
27243
27408
 
27244
- const _c0$6 = ["selection"];
27409
+ const _c0$7 = ["selection"];
27245
27410
  function OgcFilterSelectionComponent_div_1_div_1_div_2_mat_option_4_Template(rf, ctx) {
27246
27411
  if (rf & 1) {
27247
27412
  i0.ɵɵelementStart(0, "mat-option", 13);
@@ -28644,7 +28809,7 @@ class OgcFilterSelectionComponent {
28644
28809
  OgcFilterSelectionComponent.ɵfac = function OgcFilterSelectionComponent_Factory(t) { return new (t || OgcFilterSelectionComponent)(i0.ɵɵdirectiveInject(OGCFilterService), i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i5$1.DOMService), i0.ɵɵdirectiveInject(i2$1.ConfigService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
28645
28810
  OgcFilterSelectionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterSelectionComponent, selectors: [["igo-ogc-filter-selection"]], viewQuery: function OgcFilterSelectionComponent_Query(rf, ctx) {
28646
28811
  if (rf & 1) {
28647
- i0.ɵɵviewQuery(_c0$6, 5);
28812
+ i0.ɵɵviewQuery(_c0$7, 5);
28648
28813
  }
28649
28814
  if (rf & 2) {
28650
28815
  let _t;
@@ -29016,7 +29181,7 @@ SpatialFilterListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
29016
29181
  i0.ɵɵadvance(1);
29017
29182
  i0.ɵɵproperty("ngForOf", ctx.measureUnits);
29018
29183
  }
29019
- }, dependencies: [i1$1.NgForOf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgForm, i2$2.FormControlDirective, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i13.MatFormField, i14.MatInput, i15.MatSelect, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".buffer-div[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px}.zone-list[_ngcontent-%COMP%]{padding:5px;width:95%;margin-left:2px}.buffer[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}"], changeDetection: 0 });
29184
+ }, dependencies: [i1.NgForOf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgForm, i2$2.FormControlDirective, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i13.MatFormField, i14.MatInput, i15.MatSelect, i1.AsyncPipe, i7.TranslatePipe], styles: [".buffer-div[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px}.zone-list[_ngcontent-%COMP%]{padding:5px;width:95%;margin-left:2px}.buffer[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}"], changeDetection: 0 });
29020
29185
  (function () {
29021
29186
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SpatialFilterListComponent, [{
29022
29187
  type: Component,
@@ -30170,7 +30335,7 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
30170
30335
  }] });
30171
30336
  })();
30172
30337
 
30173
- const _c0$5 = ["endDatepickerTime"];
30338
+ const _c0$6 = ["endDatepickerTime"];
30174
30339
  const _c1$4 = ["beginDatepickerTime"];
30175
30340
  const _c2$2 = ["beginTime"];
30176
30341
  const _c3 = ["endTime"];
@@ -31058,7 +31223,7 @@ class OgcFilterTimeComponent {
31058
31223
  OgcFilterTimeComponent.ɵfac = function OgcFilterTimeComponent_Factory(t) { return new (t || OgcFilterTimeComponent)(i0.ɵɵdirectiveInject(OGCFilterTimeService)); };
31059
31224
  OgcFilterTimeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterTimeComponent, selectors: [["igo-ogc-filter-time"]], viewQuery: function OgcFilterTimeComponent_Query(rf, ctx) {
31060
31225
  if (rf & 1) {
31061
- i0.ɵɵviewQuery(_c0$5, 5);
31226
+ i0.ɵɵviewQuery(_c0$6, 5);
31062
31227
  i0.ɵɵviewQuery(_c1$4, 5);
31063
31228
  i0.ɵɵviewQuery(_c2$2, 5);
31064
31229
  i0.ɵɵviewQuery(_c3, 5);
@@ -31268,7 +31433,7 @@ OgcFilterTimeSliderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
31268
31433
  i0.ɵɵadvance(2);
31269
31434
  i0.ɵɵpropertyInterpolate("svgIcon", ctx.resetIcon);
31270
31435
  }
31271
- }, dependencies: [i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3.MatButton, i13$1.MatSlider], styles: ["input{text-align:center!important;margin:auto 5px!important} .mat-slider-thumb{transform:scale(0)!important} .mat-slider-thumb-label{transform:rotate(45deg)!important;border-radius:50% 50% 0!important;background-color:#ffd740!important} .mat-slider-thumb-label-text{opacity:1!important;transform:rotate(135deg)!important} .mat-slider-horizontal .mat-slider-thumb-label{top:10px!important;transform:rotate(225deg)!important} .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(225deg)!important}.datetime-container[_ngcontent-%COMP%], .slider-container[_ngcontent-%COMP%]{text-align:center}.datetime-input[_ngcontent-%COMP%]{display:inline-block;margin:5px 25px}.date-input[_ngcontent-%COMP%]{width:120px;margin-right:25px}.time-input[_ngcontent-%COMP%]{display:inherit;margin-right:25px}.hour-input[_ngcontent-%COMP%], .minute-input[_ngcontent-%COMP%]{width:40px}.minute-input[_ngcontent-%COMP%]{margin-left:10px}"] });
31436
+ }, dependencies: [i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3$1.MatButton, i13$1.MatSlider], styles: ["input{text-align:center!important;margin:auto 5px!important} .mat-slider-thumb{transform:scale(0)!important} .mat-slider-thumb-label{transform:rotate(45deg)!important;border-radius:50% 50% 0!important;background-color:#ffd740!important} .mat-slider-thumb-label-text{opacity:1!important;transform:rotate(135deg)!important} .mat-slider-horizontal .mat-slider-thumb-label{top:10px!important;transform:rotate(225deg)!important} .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(225deg)!important}.datetime-container[_ngcontent-%COMP%], .slider-container[_ngcontent-%COMP%]{text-align:center}.datetime-input[_ngcontent-%COMP%]{display:inline-block;margin:5px 25px}.date-input[_ngcontent-%COMP%]{width:120px;margin-right:25px}.time-input[_ngcontent-%COMP%]{display:inherit;margin-right:25px}.hour-input[_ngcontent-%COMP%], .minute-input[_ngcontent-%COMP%]{width:40px}.minute-input[_ngcontent-%COMP%]{margin-left:10px}"] });
31272
31437
  (function () {
31273
31438
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterTimeSliderComponent, [{
31274
31439
  type: Component,
@@ -31492,19 +31657,19 @@ IgoFilterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TimeFi
31492
31657
  OgcFilterTimeComponent,
31493
31658
  OgcFilterTimeSliderComponent] });
31494
31659
  })();
31495
- i0.ɵɵsetComponentScope(TimeFilterButtonComponent, [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5$1.ListItemDirective, i7$1.MatBadge, TimeFilterItemComponent], [i7.TranslatePipe]);
31496
- i0.ɵɵsetComponentScope(TimeFilterItemComponent, [i1$1.NgClass, i1$1.NgIf, i1$1.NgStyle, i2.MatIcon, i3.MatButton, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i4.MatTooltip, LayerLegendComponent, i5$1.CollapseDirective, TimeFilterFormComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
31497
- i0.ɵɵsetComponentScope(TimeFilterListComponent, [i1$1.NgForOf, i5$1.ListItemDirective, i5$1.ListComponent, TimeFilterItemComponent], [FilterableDataSourcePipe]);
31498
- i0.ɵɵsetComponentScope(OgcFilterFormComponent, [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i3.MatButton, i12.MatCheckbox, i13.MatFormField, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, OgcFilterTimeComponent], [i1$1.AsyncPipe, i7.TranslatePipe, i5$1.KeyValuePipe]);
31499
- i0.ɵɵsetComponentScope(OgcFilterButtonComponent, [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5$1.ListItemDirective, i7$1.MatBadge, OgcFilterableItemComponent], [i7.TranslatePipe]);
31500
- i0.ɵɵsetComponentScope(OgcFilterSelectionComponent, [i1$1.NgForOf, i1$1.NgIf, i1$1.NgStyle, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgModel, i2$2.FormGroupDirective, i2$2.FormControlName, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i17.MatRadioGroup, i17.MatRadioButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i12.MatCheckbox, i13.MatFormField, i14.MatInput, i15.MatSelect, i11.MatDivider, i4.MatTooltip, OgcFilterTimeComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
31501
- i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, OgcFilterFormComponent,
31660
+ i0.ɵɵsetComponentScope(TimeFilterButtonComponent, [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i5$1.ListItemDirective, i7$1.MatBadge, TimeFilterItemComponent], [i7.TranslatePipe]);
31661
+ i0.ɵɵsetComponentScope(TimeFilterItemComponent, [i1.NgClass, i1.NgIf, i1.NgStyle, i2.MatIcon, i3$1.MatButton, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i4.MatTooltip, LayerLegendComponent, i5$1.CollapseDirective, TimeFilterFormComponent], [i1.AsyncPipe, i7.TranslatePipe]);
31662
+ i0.ɵɵsetComponentScope(TimeFilterListComponent, [i1.NgForOf, i5$1.ListItemDirective, i5$1.ListComponent, TimeFilterItemComponent], [FilterableDataSourcePipe]);
31663
+ i0.ɵɵsetComponentScope(OgcFilterFormComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i3$1.MatButton, i12.MatCheckbox, i13.MatFormField, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, OgcFilterTimeComponent], [i1.AsyncPipe, i7.TranslatePipe, i5$1.KeyValuePipe]);
31664
+ i0.ɵɵsetComponentScope(OgcFilterButtonComponent, [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i5$1.ListItemDirective, i7$1.MatBadge, OgcFilterableItemComponent], [i7.TranslatePipe]);
31665
+ i0.ɵɵsetComponentScope(OgcFilterSelectionComponent, [i1.NgForOf, i1.NgIf, i1.NgStyle, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgModel, i2$2.FormGroupDirective, i2$2.FormControlName, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i17.MatRadioGroup, i17.MatRadioButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i12.MatCheckbox, i13.MatFormField, i14.MatInput, i15.MatSelect, i11.MatDivider, i4.MatTooltip, OgcFilterTimeComponent], [i1.AsyncPipe, i7.TranslatePipe]);
31666
+ i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1.NgForOf, i1.NgIf, i5$1.ListItemDirective, OgcFilterFormComponent,
31502
31667
  OgcFilterSelectionComponent], []);
31503
- i0.ɵɵsetComponentScope(OgcFilterableItemComponent, [i1$1.NgClass, i1$1.NgIf, i1$1.NgStyle, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3.MatButton, i12.MatCheckbox, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i11.MatDivider, i4.MatTooltip, LayerLegendComponent, i5$1.CollapseDirective, OgcFilterableFormComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
31504
- i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, OgcFilterableItemComponent], [i7.TranslatePipe, FilterableDataSourcePipe]);
31505
- i0.ɵɵsetComponentScope(SpatialFilterTypeComponent, [i1$1.NgForOf, i9.MatOption, i2.MatIcon, i20.MatTabGroup, i20.MatTab, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i13.MatLabel, i15.MatSelect, i4.MatTooltip, SpatialFilterListComponent], [i7.TranslatePipe]);
31506
- i0.ɵɵsetComponentScope(SpatialFilterItemComponent, [i1$1.NgForOf, i1$1.NgIf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgForm, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3.MatButton, i17.MatRadioGroup, i17.MatRadioButton, i21.MatTable, i21.MatHeaderCellDef, i21.MatHeaderRowDef, i21.MatColumnDef, i21.MatRowDef, i21.MatHeaderCell, i21.MatHeaderRow, i21.MatRow, i22.MatNestedTreeNode, i22.MatTreeNodeDef, i22.MatTreeNodeToggle, i22.MatTree, i22.MatTreeNode, i22.MatTreeNodeOutlet, i12.MatCheckbox, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i4.MatTooltip, i5$1.EntityTableComponent, GeometryFormFieldInputComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
31507
- i0.ɵɵsetComponentScope(OgcFilterTimeComponent, [i1$1.NgForOf, i1$1.NgIf, i2$2.NgControlStatus, i2$2.NgModel, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3.MatButton, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, i25.MatDatepicker, i25.MatDatepickerInput, i25.MatDatepickerToggle, OgcFilterTimeSliderComponent], [i7.TranslatePipe]);
31668
+ i0.ɵɵsetComponentScope(OgcFilterableItemComponent, [i1.NgClass, i1.NgIf, i1.NgStyle, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3$1.MatButton, i12.MatCheckbox, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i11.MatDivider, i4.MatTooltip, LayerLegendComponent, i5$1.CollapseDirective, OgcFilterableFormComponent], [i1.AsyncPipe, i7.TranslatePipe]);
31669
+ i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i1.NgForOf, i1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, OgcFilterableItemComponent], [i7.TranslatePipe, FilterableDataSourcePipe]);
31670
+ i0.ɵɵsetComponentScope(SpatialFilterTypeComponent, [i1.NgForOf, i9.MatOption, i2.MatIcon, i20.MatTabGroup, i20.MatTab, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i13.MatLabel, i15.MatSelect, i4.MatTooltip, SpatialFilterListComponent], [i7.TranslatePipe]);
31671
+ i0.ɵɵsetComponentScope(SpatialFilterItemComponent, [i1.NgForOf, i1.NgIf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgForm, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3$1.MatButton, i17.MatRadioGroup, i17.MatRadioButton, i21.MatTable, i21.MatHeaderCellDef, i21.MatHeaderRowDef, i21.MatColumnDef, i21.MatRowDef, i21.MatHeaderCell, i21.MatHeaderRow, i21.MatRow, i22.MatNestedTreeNode, i22.MatTreeNodeDef, i22.MatTreeNodeToggle, i22.MatTree, i22.MatTreeNode, i22.MatTreeNodeOutlet, i12.MatCheckbox, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i4.MatTooltip, i5$1.EntityTableComponent, GeometryFormFieldInputComponent], [i1.AsyncPipe, i7.TranslatePipe]);
31672
+ i0.ɵɵsetComponentScope(OgcFilterTimeComponent, [i1.NgForOf, i1.NgIf, i2$2.NgControlStatus, i2$2.NgModel, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3$1.MatButton, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, i25.MatDatepicker, i25.MatDatepickerInput, i25.MatDatepickerToggle, OgcFilterTimeSliderComponent], [i7.TranslatePipe]);
31508
31673
 
31509
31674
  function ExportButtonComponent_button_0_Template(rf, ctx) {
31510
31675
  if (rf & 1) {
@@ -31559,7 +31724,7 @@ ExportButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Expor
31559
31724
  if (rf & 2) {
31560
31725
  i0.ɵɵproperty("ngIf", ctx.layerIsExportable());
31561
31726
  }
31562
- }, dependencies: [i2.MatIcon, i4.MatTooltip, i1$1.NgIf, i3.MatButton, i7.TranslatePipe], changeDetection: 0 });
31727
+ }, dependencies: [i2.MatIcon, i4.MatTooltip, i1.NgIf, i3$1.MatButton, i7.TranslatePipe], changeDetection: 0 });
31563
31728
  (function () {
31564
31729
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExportButtonComponent, [{
31565
31730
  type: Component,
@@ -31655,14 +31820,14 @@ class ExportService {
31655
31820
  const exportOlFeatures = this.generateFeature(olFeatures, format);
31656
31821
  return this.exportAsync(exportOlFeatures, format, title, encoding, projectionIn, projectionOut);
31657
31822
  }
31658
- generateFeature(olFeatures, format) {
31823
+ generateFeature(olFeatures, format, excludePrefix = '_') {
31659
31824
  if (format === ExportFormat.GPX && this.aggregateInComment) {
31660
31825
  return this.generateAggregatedFeature(olFeatures);
31661
31826
  }
31662
31827
  return olFeatures.map((olFeature) => {
31663
31828
  const keys = olFeature
31664
31829
  .getKeys()
31665
- .filter((key) => !key.startsWith('_'));
31830
+ .filter((key) => !key.startsWith(excludePrefix));
31666
31831
  const properties = keys.reduce((acc, key) => {
31667
31832
  acc[key] = olFeature.get(key);
31668
31833
  return acc;
@@ -32291,7 +32456,7 @@ ImportService.allowedZipMimeTypes = [
32291
32456
  'application/x-zip'
32292
32457
  ];
32293
32458
  ImportService.allowedExtensions = ['geojson', 'kml', 'gpx', 'json', 'gml', 'zip'];
32294
- ImportService.ɵfac = function ImportService_Factory(t) { return new (t || ImportService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.ConfigService)); };
32459
+ ImportService.ɵfac = function ImportService_Factory(t) { return new (t || ImportService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.ConfigService)); };
32295
32460
  ImportService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ImportService, factory: ImportService.ɵfac, providedIn: 'root' });
32296
32461
  (function () {
32297
32462
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImportService, [{
@@ -32299,7 +32464,7 @@ ImportService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ImportServ
32299
32464
  args: [{
32300
32465
  providedIn: 'root'
32301
32466
  }]
32302
- }], function () { return [{ type: i1$2.HttpClient }, { type: i2$1.ConfigService }]; }, null);
32467
+ }], function () { return [{ type: i1$1.HttpClient }, { type: i2$1.ConfigService }]; }, null);
32303
32468
  })();
32304
32469
 
32305
32470
  class StyleListService {
@@ -32439,7 +32604,7 @@ function ImportExportComponent_form_8_Template(rf, ctx) {
32439
32604
  i0.ɵɵstyleProp("display", "none");
32440
32605
  }
32441
32606
  }
32442
- const _c0$4 = function (a0) { return { size: a0 }; };
32607
+ const _c0$5 = function (a0) { return { size: a0 }; };
32443
32608
  function ImportExportComponent_section_9_div_1_Template(rf, ctx) {
32444
32609
  if (rf & 1) {
32445
32610
  i0.ɵɵelementStart(0, "div")(1, "h4");
@@ -32464,7 +32629,7 @@ function ImportExportComponent_section_9_div_1_Template(rf, ctx) {
32464
32629
  i0.ɵɵadvance(2);
32465
32630
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "igo.geo.importExportForm.importClarifications"));
32466
32631
  i0.ɵɵadvance(4);
32467
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 6, "igo.geo.importExportForm.importSizeMax", i0.ɵɵpureFunction1(13, _c0$4, ctx_r17.fileSizeMb)));
32632
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 6, "igo.geo.importExportForm.importSizeMax", i0.ɵɵpureFunction1(13, _c0$5, ctx_r17.fileSizeMb)));
32468
32633
  i0.ɵɵadvance(3);
32469
32634
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 9, "igo.geo.importExportForm.importFormatAuthorized"));
32470
32635
  i0.ɵɵadvance(3);
@@ -33589,7 +33754,7 @@ ImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Impor
33589
33754
  i0.ɵɵadvance(2);
33590
33755
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(13, 15, ctx.exportableLayers$).length > 0 && ctx.selectedMode === "export");
33591
33756
  }
33592
- }, dependencies: [i4.MatTooltip, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i13.MatLabel, i15.MatSelect, i15.MatSelectTrigger, i9.MatOption, i14.MatInput, i23.MatSlideToggle, i5$1.SpinnerComponent, i5$1.CustomHtmlComponent, i1$1.AsyncPipe, i7.TranslatePipe, i5$1.KeyValuePipe], styles: ["mat-option.igo-export-layer-mat-option[_ngcontent-%COMP%]{height:5em;line-height:1em}.import-export-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:50%}h4[_ngcontent-%COMP%]{padding:0 5px}.igo-form[_ngcontent-%COMP%]{padding:15px 5px}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center;padding-top:10px}igo-spinner[_ngcontent-%COMP%]{position:absolute;padding-left:10px}.export-options[_ngcontent-%COMP%], .export-combine-layers[_ngcontent-%COMP%], .export-separator[_ngcontent-%COMP%]{overflow-x:hidden}.export-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%], .export-combine-layers[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%], .export-separator[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.export-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content, .export-combine-layers[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content, .export-separator[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.export-select-trigger[_ngcontent-%COMP%]{opacity:.75;font-size:.75em}"] });
33757
+ }, dependencies: [i4.MatTooltip, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i1.NgClass, i1.NgForOf, i1.NgIf, i3$1.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i13.MatLabel, i15.MatSelect, i15.MatSelectTrigger, i9.MatOption, i14.MatInput, i23.MatSlideToggle, i5$1.SpinnerComponent, i5$1.CustomHtmlComponent, i1.AsyncPipe, i7.TranslatePipe, i5$1.KeyValuePipe], styles: ["mat-option.igo-export-layer-mat-option[_ngcontent-%COMP%]{height:5em;line-height:1em}.import-export-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:50%}h4[_ngcontent-%COMP%]{padding:0 5px}.igo-form[_ngcontent-%COMP%]{padding:15px 5px}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center;padding-top:10px}igo-spinner[_ngcontent-%COMP%]{position:absolute;padding-left:10px}.export-options[_ngcontent-%COMP%], .export-combine-layers[_ngcontent-%COMP%], .export-separator[_ngcontent-%COMP%]{overflow-x:hidden}.export-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%], .export-combine-layers[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%], .export-separator[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.export-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content, .export-combine-layers[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content, .export-separator[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.export-select-trigger[_ngcontent-%COMP%]{opacity:.75;font-size:.75em}"] });
33593
33758
  (function () {
33594
33759
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImportExportComponent, [{
33595
33760
  type: Component,
@@ -33961,8 +34126,8 @@ IgoMapModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModul
33961
34126
  MapCenterComponent,
33962
34127
  MenuButtonComponent] });
33963
34128
  })();
33964
- i0.ɵɵsetComponentScope(BaseLayersSwitcherComponent, [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, MiniBaseMapComponent], [i7.TranslatePipe]);
33965
- i0.ɵɵsetComponentScope(MiniBaseMapComponent, [i1$1.NgIf, MapBrowserComponent], []);
34129
+ i0.ɵɵsetComponentScope(BaseLayersSwitcherComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, MiniBaseMapComponent], [i7.TranslatePipe]);
34130
+ i0.ɵɵsetComponentScope(MiniBaseMapComponent, [i1.NgIf, MapBrowserComponent], []);
33966
34131
 
33967
34132
  function MeasurerItemComponent_mat_option_8_Template(rf, ctx) {
33968
34133
  if (rf & 1) {
@@ -34080,7 +34245,7 @@ MeasurerItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Measu
34080
34245
  i0.ɵɵadvance(1);
34081
34246
  i0.ɵɵproperty("ngForOf", ctx.measureUnits);
34082
34247
  }
34083
- }, dependencies: [i1$1.NgForOf, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i9.MatOption, i1$1.AsyncPipe, i7.TranslatePipe, MeasureFormatPipe], styles: ["[_nghost-%COMP%]{display:flex;width:100%;padding:5px 10px}.measure-field[_ngcontent-%COMP%]{pointer-events:none;display:flex;flex-flow:column nowrap;width:100%}.unit-field[_ngcontent-%COMP%]{width:50px;margin-left:10px;margin-top:10px}"], changeDetection: 0 });
34248
+ }, dependencies: [i1.NgForOf, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i9.MatOption, i1.AsyncPipe, i7.TranslatePipe, MeasureFormatPipe], styles: ["[_nghost-%COMP%]{display:flex;width:100%;padding:5px 10px}.measure-field[_ngcontent-%COMP%]{pointer-events:none;display:flex;flex-flow:column nowrap;width:100%}.unit-field[_ngcontent-%COMP%]{width:50px;margin-left:10px;margin-top:10px}"], changeDetection: 0 });
34084
34249
  (function () {
34085
34250
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MeasurerItemComponent, [{
34086
34251
  type: Component,
@@ -34168,8 +34333,8 @@ IgoMeasurerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Common
34168
34333
  IgoEntityTableModule], exports: [MeasureFormatPipe,
34169
34334
  MeasurerComponent] });
34170
34335
  })();
34171
- i0.ɵɵsetComponentScope(MeasurerComponent, [i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i2.MatIcon, i4.MatTooltip, i23.MatSlideToggle, i11.MatDivider, i5$1.EntityTableComponent, MeasurerItemComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
34172
- i0.ɵɵsetComponentScope(MeasurerDialogComponent, [i1$1.NgIf], [i7.TranslatePipe, MeasureFormatPipe]);
34336
+ i0.ɵɵsetComponentScope(MeasurerComponent, [i1.NgIf, i3$1.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i2.MatIcon, i4.MatTooltip, i23.MatSlideToggle, i11.MatDivider, i5$1.EntityTableComponent, MeasurerItemComponent], [i1.AsyncPipe, i7.TranslatePipe]);
34337
+ i0.ɵɵsetComponentScope(MeasurerDialogComponent, [i1.NgIf], [i7.TranslatePipe, MeasureFormatPipe]);
34173
34338
 
34174
34339
  class IgoMeasureModule {
34175
34340
  }
@@ -34853,12 +35018,12 @@ class PrintService {
34853
35018
  * @param doZipFile - Indicate if we do a zip with the file
34854
35019
  * @return Image file of the map with extension format given as parameter
34855
35020
  */
34856
- downloadMapImage(map, resolution, format = 'png', projection = false, scale = false, legend = false, title = '', subtitle = '', comment = '', doZipFile = true) {
35021
+ downloadMapImage(map, resolution, format = 'png', projection = false, scale = false, title = '', subtitle = '', comment = '', doZipFile = true, legendPosition) {
34857
35022
  const status$ = new Subject();
34858
35023
  // const resolution = map.ol.getView().getResolution();
34859
35024
  this.activityId = this.activityService.register();
34860
35025
  const translate = this.languageService.translate;
34861
- map.ol.once('rendercomplete', (event) => {
35026
+ map.ol.once('rendercomplete', (event) => __awaiter(this, void 0, void 0, function* () {
34862
35027
  format = format.toLowerCase();
34863
35028
  const oldCanvas = event.target
34864
35029
  .getViewport()
@@ -34867,8 +35032,6 @@ class PrintService {
34867
35032
  const newContext = newCanvas.getContext('2d');
34868
35033
  // Postion in height to set the canvas in new canvas
34869
35034
  let positionHCanvas = 0;
34870
- // Position in width to set the Proj/Scale in new canvas
34871
- let positionWProjScale = 10;
34872
35035
  // Get height/width of map canvas
34873
35036
  const width = oldCanvas.width;
34874
35037
  let height = oldCanvas.height;
@@ -34890,11 +35053,19 @@ class PrintService {
34890
35053
  // Set the new canvas with the new calculated size
34891
35054
  newCanvas.width = width;
34892
35055
  newCanvas.height = height;
34893
- // Patch Jpeg default black background to white
34894
- if (format === 'jpeg') {
34895
- newContext.fillStyle = '#ffffff';
34896
- newContext.fillRect(0, 0, width, height);
34897
- newContext.fillStyle = '#000000';
35056
+ if (['bmp', 'gif', 'jpeg', 'png', 'tiff'].indexOf(format) > -1) {
35057
+ // Patch Jpeg default black background to white
35058
+ if (format === 'jpeg') {
35059
+ newContext.fillStyle = '#ffffff';
35060
+ newContext.fillRect(0, 0, width, height);
35061
+ newContext.fillStyle = '#000000';
35062
+ }
35063
+ else if (title !== '' || subtitle !== '' || comment !== '' ||
35064
+ projection !== false || scale !== false) {
35065
+ newContext.fillStyle = '#ffffff';
35066
+ newContext.fillRect(0, 0, width, height);
35067
+ newContext.fillStyle = '#000000';
35068
+ }
34898
35069
  }
34899
35070
  // If a title need to be added to canvas
34900
35071
  if (title !== '') {
@@ -34915,19 +35086,20 @@ class PrintService {
34915
35086
  }
34916
35087
  // Set font for next section
34917
35088
  newContext.font = '20px Calibri';
34918
- // If projection need to be added to canvas
34919
- if (projection !== false) {
34920
- const projText = translate.instant('igo.geo.printForm.projection');
34921
- newContext.textAlign = 'start';
34922
- newContext.fillText(projText + ': ' + map.projection, positionWProjScale, positionHProjScale);
34923
- positionWProjScale += 200; // Width position change for scale position
34924
- }
34925
- // If scale need to be added to canvas
34926
- if (scale !== false) {
34927
- const scaleText = translate.instant('igo.geo.printForm.scale');
34928
- const mapScale = map.viewController.getScale(resolution);
34929
- newContext.textAlign = 'start';
34930
- newContext.fillText(scaleText + ': ~ 1 / ' + formatScale(mapScale), positionWProjScale, positionHProjScale);
35089
+ // If projection or/end scale need to be added to canvas
35090
+ if ((projection !== false) || (scale !== false)) {
35091
+ let projectionScaleText = '';
35092
+ if (projection !== false) {
35093
+ const projText = translate.instant('igo.geo.printForm.projection');
35094
+ projectionScaleText = projText + ': ' + map.projection + ' ';
35095
+ }
35096
+ if (scale !== false) {
35097
+ const scaleText = translate.instant('igo.geo.printForm.scale');
35098
+ const mapScale = map.viewController.getScale(resolution);
35099
+ projectionScaleText += scaleText + ': ~ 1 / ' + formatScale(mapScale);
35100
+ }
35101
+ newContext.textAlign = 'center';
35102
+ newContext.fillText(projectionScaleText, width / 2, positionHProjScale, width * 0.9);
34931
35103
  }
34932
35104
  // If a comment need to be added to canvas
34933
35105
  if (comment !== '') {
@@ -34965,6 +35137,12 @@ class PrintService {
34965
35137
  }
34966
35138
  // Add map to new canvas
34967
35139
  newContext.drawImage(oldCanvas, 0, positionHCanvas);
35140
+ // Check the legendPosition
35141
+ if (legendPosition !== 'none') {
35142
+ if (['topleft', 'topright', 'bottomleft', 'bottomright'].indexOf(legendPosition) > -1) {
35143
+ yield this.addLegendToImage(newCanvas, map, resolution, legendPosition, format);
35144
+ }
35145
+ }
34968
35146
  let status = SubjectStatus.Done;
34969
35147
  let fileNameWithExt = 'map.' + format;
34970
35148
  if (format.toLowerCase() === 'tiff') {
@@ -35004,10 +35182,72 @@ class PrintService {
35004
35182
  this.addFileToZip(tfwFileNameWithExt, blob);
35005
35183
  }
35006
35184
  }
35007
- });
35185
+ }));
35008
35186
  map.ol.renderSync();
35009
35187
  return status$;
35010
35188
  }
35189
+ /**
35190
+ * Create and Add Legend to the map canvas
35191
+ * @param canvas Canvas of the map
35192
+ * @param map Map of the app
35193
+ * @param resolution Resolution of map
35194
+ * @param legendPosition Legend position
35195
+ * @param format Image format
35196
+ */
35197
+ addLegendToImage(canvas, map, resolution, legendPosition, format) {
35198
+ return __awaiter(this, void 0, void 0, function* () {
35199
+ const fileNameWithExt = 'map.' + format;
35200
+ const context = canvas.getContext('2d');
35201
+ // Get html code for the legend
35202
+ const html = yield this.getLayersLegendHtml(map, canvas.width, resolution).toPromise();
35203
+ // If no legend, save the map directly
35204
+ if (html === '') {
35205
+ yield this.saveCanvasImageAsFile(canvas, fileNameWithExt, format);
35206
+ return true;
35207
+ }
35208
+ // Create div to contain html code for legend
35209
+ const div = window.document.createElement('div');
35210
+ div.style.position = 'absolute';
35211
+ div.style.top = '0';
35212
+ // Add html code to convert in the new window
35213
+ window.document.body.appendChild(div);
35214
+ div.innerHTML = html;
35215
+ yield this.timeout(1);
35216
+ const canvasLegend = yield html2canvas(div, { useCORS: true }).catch((e) => {
35217
+ console.log(e);
35218
+ });
35219
+ if (canvasLegend) {
35220
+ const canvasHeight = canvas.height;
35221
+ const canvasWidth = canvas.width;
35222
+ const legendHeight = canvasLegend.height;
35223
+ const legendWidth = canvasLegend.width;
35224
+ // Move the legend to the correct position on the page
35225
+ const offset = canvasHeight * 0.01;
35226
+ let legendX;
35227
+ let legendY;
35228
+ if (legendPosition === 'bottomright') {
35229
+ legendX = canvasWidth - legendWidth - offset;
35230
+ legendY = canvasHeight - legendHeight - offset;
35231
+ }
35232
+ else if (legendPosition === 'topright') {
35233
+ legendX = canvasWidth - legendWidth - offset;
35234
+ legendY = offset;
35235
+ }
35236
+ else if (legendPosition === 'bottomleft') {
35237
+ legendX = offset;
35238
+ legendY = canvasHeight - legendHeight - offset;
35239
+ }
35240
+ else if (legendPosition === 'topleft') {
35241
+ legendX = offset;
35242
+ legendY = offset;
35243
+ }
35244
+ context.drawImage(canvasLegend, legendX, legendY, legendWidth, legendHeight);
35245
+ context.strokeRect(legendX, legendY, legendWidth, legendHeight);
35246
+ div.parentNode.removeChild(div); // remove temp div (IE style)
35247
+ return true;
35248
+ }
35249
+ });
35250
+ }
35011
35251
  renderMap(map, size, extent) {
35012
35252
  map.ol.updateSize();
35013
35253
  map.ol.renderSync();
@@ -35184,7 +35424,7 @@ class PrintService {
35184
35424
  return n * k;
35185
35425
  }
35186
35426
  }
35187
- PrintService.ɵfac = function PrintService_Factory(t) { return new (t || PrintService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.ActivityService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.ConfigService)); };
35427
+ PrintService.ɵfac = function PrintService_Factory(t) { return new (t || PrintService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.ActivityService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.ConfigService)); };
35188
35428
  PrintService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrintService, factory: PrintService.ɵfac, providedIn: 'root' });
35189
35429
  (function () {
35190
35430
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintService, [{
@@ -35192,7 +35432,7 @@ PrintService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrintServic
35192
35432
  args: [{
35193
35433
  providedIn: 'root'
35194
35434
  }]
35195
- }], function () { return [{ type: i1$2.HttpClient }, { type: i2$1.MessageService }, { type: i2$1.ActivityService }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }]; }, null);
35435
+ }], function () { return [{ type: i1$1.HttpClient }, { type: i2$1.MessageService }, { type: i2$1.ActivityService }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }]; }, null);
35196
35436
  })();
35197
35437
 
35198
35438
  const PrintOutputFormat = strEnum(['Pdf', 'Image']);
@@ -35224,18 +35464,47 @@ const PrintLegendPosition = strEnum([
35224
35464
  'newpage'
35225
35465
  ]);
35226
35466
 
35227
- function PrintFormComponent_mat_option_28_Template(rf, ctx) {
35467
+ function PrintFormComponent_mat_option_28_ng_container_1_Template(rf, ctx) {
35228
35468
  if (rf & 1) {
35229
- i0.ɵɵelementStart(0, "mat-option", 19);
35469
+ i0.ɵɵelementContainerStart(0);
35230
35470
  i0.ɵɵtext(1);
35231
35471
  i0.ɵɵpipe(2, "translate");
35472
+ i0.ɵɵelementContainerEnd();
35473
+ }
35474
+ if (rf & 2) {
35475
+ const legendPosition_r6 = i0.ɵɵnextContext().$implicit;
35476
+ i0.ɵɵadvance(1);
35477
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.printForm.legendPositions." + legendPosition_r6.value), " ");
35478
+ }
35479
+ }
35480
+ function PrintFormComponent_mat_option_28_ng_container_2_Template(rf, ctx) {
35481
+ if (rf & 1) {
35482
+ i0.ɵɵelementContainerStart(0);
35483
+ i0.ɵɵtext(1);
35484
+ i0.ɵɵpipe(2, "translate");
35485
+ i0.ɵɵelementContainerEnd();
35486
+ }
35487
+ if (rf & 2) {
35488
+ const ctx_r8 = i0.ɵɵnextContext(2);
35489
+ i0.ɵɵadvance(1);
35490
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r8.outputFormat === "Pdf" ? "igo.geo.printForm.legendPositions.newpage" : "igo.geo.printForm.legendPositions.newimage"), " ");
35491
+ }
35492
+ }
35493
+ const _c0$4 = function () { return ["newpage", "newimage"]; };
35494
+ function PrintFormComponent_mat_option_28_Template(rf, ctx) {
35495
+ if (rf & 1) {
35496
+ i0.ɵɵelementStart(0, "mat-option", 19);
35497
+ i0.ɵɵtemplate(1, PrintFormComponent_mat_option_28_ng_container_1_Template, 3, 3, "ng-container", 20);
35498
+ i0.ɵɵtemplate(2, PrintFormComponent_mat_option_28_ng_container_2_Template, 3, 3, "ng-container", 20);
35232
35499
  i0.ɵɵelementEnd();
35233
35500
  }
35234
35501
  if (rf & 2) {
35235
35502
  const legendPosition_r6 = ctx.$implicit;
35236
35503
  i0.ɵɵproperty("value", legendPosition_r6.key);
35237
35504
  i0.ɵɵadvance(1);
35238
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm.legendPositions." + legendPosition_r6.value), " ");
35505
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpureFunction0(3, _c0$4).includes(legendPosition_r6.value));
35506
+ i0.ɵɵadvance(1);
35507
+ i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction0(4, _c0$4).includes(legendPosition_r6.value));
35239
35508
  }
35240
35509
  }
35241
35510
  function PrintFormComponent_mat_option_34_Template(rf, ctx) {
@@ -35245,10 +35514,10 @@ function PrintFormComponent_mat_option_34_Template(rf, ctx) {
35245
35514
  i0.ɵɵelementEnd();
35246
35515
  }
35247
35516
  if (rf & 2) {
35248
- const outputFormat_r7 = ctx.$implicit;
35249
- i0.ɵɵproperty("value", outputFormat_r7.key);
35517
+ const outputFormat_r10 = ctx.$implicit;
35518
+ i0.ɵɵproperty("value", outputFormat_r10.key);
35250
35519
  i0.ɵɵadvance(1);
35251
- i0.ɵɵtextInterpolate1(" ", outputFormat_r7.value, " ");
35520
+ i0.ɵɵtextInterpolate1(" ", outputFormat_r10.value, " ");
35252
35521
  }
35253
35522
  }
35254
35523
  function PrintFormComponent_mat_option_40_Template(rf, ctx) {
@@ -35259,10 +35528,10 @@ function PrintFormComponent_mat_option_40_Template(rf, ctx) {
35259
35528
  i0.ɵɵelementEnd();
35260
35529
  }
35261
35530
  if (rf & 2) {
35262
- const paperFormat_r8 = ctx.$implicit;
35263
- i0.ɵɵproperty("value", paperFormat_r8.key);
35531
+ const paperFormat_r11 = ctx.$implicit;
35532
+ i0.ɵɵproperty("value", paperFormat_r11.key);
35264
35533
  i0.ɵɵadvance(1);
35265
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm.paperFormats." + paperFormat_r8.value), " ");
35534
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm.paperFormats." + paperFormat_r11.value), " ");
35266
35535
  }
35267
35536
  }
35268
35537
  function PrintFormComponent_mat_option_46_Template(rf, ctx) {
@@ -35272,10 +35541,10 @@ function PrintFormComponent_mat_option_46_Template(rf, ctx) {
35272
35541
  i0.ɵɵelementEnd();
35273
35542
  }
35274
35543
  if (rf & 2) {
35275
- const imageFormat_r9 = ctx.$implicit;
35276
- i0.ɵɵproperty("value", imageFormat_r9.key);
35544
+ const imageFormat_r12 = ctx.$implicit;
35545
+ i0.ɵɵproperty("value", imageFormat_r12.key);
35277
35546
  i0.ɵɵadvance(1);
35278
- i0.ɵɵtextInterpolate1(" ", imageFormat_r9.value, " ");
35547
+ i0.ɵɵtextInterpolate1(" ", imageFormat_r12.value, " ");
35279
35548
  }
35280
35549
  }
35281
35550
  function PrintFormComponent_mat_option_52_Template(rf, ctx) {
@@ -35285,10 +35554,10 @@ function PrintFormComponent_mat_option_52_Template(rf, ctx) {
35285
35554
  i0.ɵɵelementEnd();
35286
35555
  }
35287
35556
  if (rf & 2) {
35288
- const resolution_r10 = ctx.$implicit;
35289
- i0.ɵɵproperty("value", resolution_r10.key);
35557
+ const resolution_r13 = ctx.$implicit;
35558
+ i0.ɵɵproperty("value", resolution_r13.key);
35290
35559
  i0.ɵɵadvance(1);
35291
- i0.ɵɵtextInterpolate1(" ", resolution_r10.value + " PPI", " ");
35560
+ i0.ɵɵtextInterpolate1(" ", resolution_r13.value + " PPI", " ");
35292
35561
  }
35293
35562
  }
35294
35563
  function PrintFormComponent_mat_option_58_Template(rf, ctx) {
@@ -35299,10 +35568,10 @@ function PrintFormComponent_mat_option_58_Template(rf, ctx) {
35299
35568
  i0.ɵɵelementEnd();
35300
35569
  }
35301
35570
  if (rf & 2) {
35302
- const orientation_r11 = ctx.$implicit;
35303
- i0.ɵɵproperty("value", orientation_r11.key);
35571
+ const orientation_r14 = ctx.$implicit;
35572
+ i0.ɵɵproperty("value", orientation_r14.key);
35304
35573
  i0.ɵɵadvance(1);
35305
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm." + orientation_r11.value), " ");
35574
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm." + orientation_r14.value), " ");
35306
35575
  }
35307
35576
  }
35308
35577
  class PrintFormComponent {
@@ -35480,7 +35749,7 @@ class PrintFormComponent {
35480
35749
  }
35481
35750
  }
35482
35751
  PrintFormComponent.ɵfac = function PrintFormComponent_Factory(t) { return new (t || PrintFormComponent)(i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder)); };
35483
- PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFormComponent, selectors: [["igo-print-form"]], inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, decls: 65, vars: 72, consts: [[1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], ["matInput", "", "formControlName", "title", 3, "placeholder"], ["matInput", "", "formControlName", "subtitle", 3, "placeholder"], ["matInput", "", "formControlName", "comment", 3, "placeholder"], [1, "print-slide-toggle-container", "mat-typography"], ["formControlName", "showProjection", 1, "print-option", 3, "labelPosition"], ["formControlName", "showScale", 1, "print-option", 3, "labelPosition"], ["formControlName", "doZipFile", 1, "print-option", 3, "labelPosition"], ["formControlName", "legendPosition", 3, "placeholder"], [3, "value", 4, "ngFor", "ngForOf"], ["formControlName", "outputFormat", 3, "placeholder", "selectionChange"], ["formControlName", "paperFormat", 3, "placeholder"], ["formControlName", "imageFormat", 3, "placeholder"], [1, "igo-input-container", 2, "display", "none"], ["formControlName", "resolution", 3, "placeholder"], ["formControlName", "orientation", 3, "placeholder"], [1, "igo-form-button-group", "print-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "value"]], template: function PrintFormComponent_Template(rf, ctx) {
35752
+ PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFormComponent, selectors: [["igo-print-form"]], inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, decls: 65, vars: 72, consts: [[1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], ["matInput", "", "formControlName", "title", 3, "placeholder"], ["matInput", "", "formControlName", "subtitle", 3, "placeholder"], ["matInput", "", "formControlName", "comment", 3, "placeholder"], [1, "print-slide-toggle-container", "mat-typography"], ["formControlName", "showProjection", 1, "print-option", 3, "labelPosition"], ["formControlName", "showScale", 1, "print-option", 3, "labelPosition"], ["formControlName", "doZipFile", 1, "print-option", 3, "labelPosition"], ["formControlName", "legendPosition", 3, "placeholder"], [3, "value", 4, "ngFor", "ngForOf"], ["formControlName", "outputFormat", 3, "placeholder", "selectionChange"], ["formControlName", "paperFormat", 3, "placeholder"], ["formControlName", "imageFormat", 3, "placeholder"], [1, "igo-input-container", 2, "display", "none"], ["formControlName", "resolution", 3, "placeholder"], ["formControlName", "orientation", 3, "placeholder"], [1, "igo-form-button-group", "print-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "value"], [4, "ngIf"]], template: function PrintFormComponent_Template(rf, ctx) {
35484
35753
  if (rf & 1) {
35485
35754
  i0.ɵɵelementStart(0, "form", 0)(1, "div", 1)(2, "mat-form-field");
35486
35755
  i0.ɵɵelement(3, "input", 2);
@@ -35508,7 +35777,7 @@ PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFor
35508
35777
  i0.ɵɵelementEnd()()();
35509
35778
  i0.ɵɵelementStart(24, "div", 1)(25, "mat-form-field")(26, "mat-select", 9);
35510
35779
  i0.ɵɵpipe(27, "translate");
35511
- i0.ɵɵtemplate(28, PrintFormComponent_mat_option_28_Template, 3, 4, "mat-option", 10);
35780
+ i0.ɵɵtemplate(28, PrintFormComponent_mat_option_28_Template, 3, 5, "mat-option", 10);
35512
35781
  i0.ɵɵpipe(29, "keyvalue");
35513
35782
  i0.ɵɵelementEnd()()();
35514
35783
  i0.ɵɵelementStart(30, "div", 1)(31, "mat-form-field")(32, "mat-select", 11);
@@ -35600,11 +35869,11 @@ PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFor
35600
35869
  i0.ɵɵadvance(2);
35601
35870
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(64, 70, "igo.geo.printForm.saveBtn"), " ");
35602
35871
  }
35603
- }, dependencies: [i1$1.NgForOf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i3.MatButton, i13.MatFormField, i15.MatSelect, i9.MatOption, i14.MatInput, i23.MatSlideToggle, i1$1.AsyncPipe, i7.TranslatePipe, i5$1.KeyValuePipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}.print-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}.igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center}"] });
35872
+ }, dependencies: [i1.NgForOf, i1.NgIf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i3$1.MatButton, i13.MatFormField, i15.MatSelect, i9.MatOption, i14.MatInput, i23.MatSlideToggle, i1.AsyncPipe, i7.TranslatePipe, i5$1.KeyValuePipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}.print-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}.igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center}"] });
35604
35873
  (function () {
35605
35874
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintFormComponent, [{
35606
35875
  type: Component,
35607
- args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"title\"\n placeholder=\"{{'igo.geo.printForm.title' | translate}}\">\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"subtitle\"\n placeholder=\"{{'igo.geo.printForm.subtitle' | translate}}\">\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"comment\"\n placeholder=\"{{'igo.geo.printForm.comment' | translate}}\">\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <div class=\"print-slide-toggle-container mat-typography\">\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showProjection\"\n [labelPosition]=\"'before'\">\n {{'igo.geo.printForm.showProjection' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showScale\"\n [labelPosition]=\"'before'\">\n {{'igo.geo.printForm.showScale' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"doZipFile\"\n [labelPosition]=\"'before'\"\n [style.display]=\"isPrintService ? 'none' : ''\">\n {{'igo.geo.printForm.doZipFile' | translate}}\n </mat-slide-toggle>\n </div>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-select\n formControlName=\"legendPosition\"\n placeholder=\"{{'igo.geo.printForm.legendPosition' | translate}}\">\n <mat-option *ngFor=\"let legendPosition of legendPositions | keyvalue \" [value]=\"legendPosition.key\">\n {{'igo.geo.printForm.legendPositions.' + legendPosition.value | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-select (selectionChange)=\"toggleImageSaveProp()\"\n formControlName=\"outputFormat\"\n placeholder=\"{{'igo.geo.printForm.outputFormat' | translate}}\">\n <mat-option *ngFor=\"let outputFormat of outputFormats | keyvalue \" [value]=\"outputFormat.key\">\n {{outputFormat.value}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\n <mat-form-field>\n <mat-select\n formControlName=\"paperFormat\"\n placeholder=\"{{'igo.geo.printForm.paperFormat' | translate}}\">\n <mat-option *ngFor=\"let paperFormat of paperFormats | keyvalue \" [value]=\"paperFormat.key\">\n {{('igo.geo.printForm.paperFormats.' + paperFormat.value) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'none' : 'block'\">\n <mat-form-field>\n <mat-select\n formControlName=\"imageFormat\"\n placeholder=\"{{'igo.geo.printForm.imageFormat' | translate}}\">\n <mat-option *ngFor=\"let imageFormat of imageFormats | keyvalue \" [value]=\"imageFormat.key\">\n {{imageFormat.value}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" style=\"display: none;\">\n <mat-form-field>\n <mat-select\n formControlName=\"resolution\"\n placeholder=\"{{'igo.geo.printForm.resolution' | translate}}\">\n <mat-option *ngFor=\"let resolution of resolutions | keyvalue \" [value]=\"resolution.key\">\n {{resolution.value + ' PPI'}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\n <mat-form-field>\n <mat-select\n formControlName=\"orientation\"\n placeholder=\"{{'igo.geo.printForm.orientation' | translate}}\">\n <mat-option *ngFor=\"let orientation of orientations | keyvalue \" [value]=\"orientation.key\">\n {{('igo.geo.printForm.' + orientation.value) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-form-button-group print-button-top-padding\">\n <button\n mat-raised-button\n type=\"button\"\n [disabled]=\"!form.valid || (disabled$ | async)\"\n (click)=\"handleFormSubmit(form.value, form.valid)\">\n {{'igo.geo.printForm.saveBtn' | translate}}\n </button>\n </div>\n\n</form>\n", styles: ["mat-form-field{width:100%}.print-slide-toggle-container{overflow-x:hidden}.print-slide-toggle-container mat-slide-toggle{width:100%;margin:10px}.print-slide-toggle-container mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding{padding-top:25px}.igo-form{padding:10px 5px 5px}.igo-form-button-group{text-align:center}\n"] }]
35876
+ args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"title\"\n placeholder=\"{{'igo.geo.printForm.title' | translate}}\">\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"subtitle\"\n placeholder=\"{{'igo.geo.printForm.subtitle' | translate}}\">\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"comment\"\n placeholder=\"{{'igo.geo.printForm.comment' | translate}}\">\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <div class=\"print-slide-toggle-container mat-typography\">\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showProjection\"\n [labelPosition]=\"'before'\">\n {{'igo.geo.printForm.showProjection' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showScale\"\n [labelPosition]=\"'before'\">\n {{'igo.geo.printForm.showScale' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"doZipFile\"\n [labelPosition]=\"'before'\"\n [style.display]=\"isPrintService ? 'none' : ''\">\n {{'igo.geo.printForm.doZipFile' | translate}}\n </mat-slide-toggle>\n </div>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-select\n formControlName=\"legendPosition\"\n placeholder=\"{{'igo.geo.printForm.legendPosition' | translate}}\">\n <mat-option *ngFor=\"let legendPosition of legendPositions | keyvalue \" [value]=\"legendPosition.key\">\n <ng-container *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\">\n {{'igo.geo.printForm.legendPositions.' + legendPosition.value | translate}}\n </ng-container>\n\n <ng-container *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\">\n {{ ((outputFormat === 'Pdf') ? 'igo.geo.printForm.legendPositions.newpage' : \n 'igo.geo.printForm.legendPositions.newimage') | translate}}\n </ng-container>\n </mat-option>\n\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-select (selectionChange)=\"toggleImageSaveProp()\"\n formControlName=\"outputFormat\"\n placeholder=\"{{'igo.geo.printForm.outputFormat' | translate}}\">\n <mat-option *ngFor=\"let outputFormat of outputFormats | keyvalue \" [value]=\"outputFormat.key\">\n {{outputFormat.value}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\n <mat-form-field>\n <mat-select\n formControlName=\"paperFormat\"\n placeholder=\"{{'igo.geo.printForm.paperFormat' | translate}}\">\n <mat-option *ngFor=\"let paperFormat of paperFormats | keyvalue \" [value]=\"paperFormat.key\">\n {{('igo.geo.printForm.paperFormats.' + paperFormat.value) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'none' : 'block'\">\n <mat-form-field>\n <mat-select\n formControlName=\"imageFormat\"\n placeholder=\"{{'igo.geo.printForm.imageFormat' | translate}}\">\n <mat-option *ngFor=\"let imageFormat of imageFormats | keyvalue \" [value]=\"imageFormat.key\">\n {{imageFormat.value}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" style=\"display: none;\">\n <mat-form-field>\n <mat-select\n formControlName=\"resolution\"\n placeholder=\"{{'igo.geo.printForm.resolution' | translate}}\">\n <mat-option *ngFor=\"let resolution of resolutions | keyvalue \" [value]=\"resolution.key\">\n {{resolution.value + ' PPI'}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\n <mat-form-field>\n <mat-select\n formControlName=\"orientation\"\n placeholder=\"{{'igo.geo.printForm.orientation' | translate}}\">\n <mat-option *ngFor=\"let orientation of orientations | keyvalue \" [value]=\"orientation.key\">\n {{('igo.geo.printForm.' + orientation.value) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-form-button-group print-button-top-padding\">\n <button\n mat-raised-button\n type=\"button\"\n [disabled]=\"!form.valid || (disabled$ | async)\"\n (click)=\"handleFormSubmit(form.value, form.valid)\">\n {{'igo.geo.printForm.saveBtn' | translate}}\n </button>\n </div>\n\n</form>\n", styles: ["mat-form-field{width:100%}.print-slide-toggle-container{overflow-x:hidden}.print-slide-toggle-container mat-slide-toggle{width:100%;margin:10px}.print-slide-toggle-container mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding{padding-top:25px}.igo-form{padding:10px 5px 5px}.igo-form-button-group{text-align:center}\n"] }]
35608
35877
  }], function () { return [{ type: i2$2.UntypedFormBuilder }]; }, { disabled$: [{
35609
35878
  type: Input
35610
35879
  }], imageFormat: [{
@@ -35706,25 +35975,28 @@ class PrintComponent {
35706
35975
  this.printService.defineNbFileToProcess(nbFileToProcess);
35707
35976
  const resolution = +data.resolution;
35708
35977
  let nbRequests = data.showLegend ? 2 : 1;
35978
+ if (data.legendPosition === 'newpage') {
35979
+ nbRequests++;
35980
+ }
35709
35981
  this.printService
35710
- .downloadMapImage(this.map, resolution, data.imageFormat, data.showProjection, data.showScale, data.showLegend, data.title, data.subtitle, data.comment, data.doZipFile)
35982
+ .downloadMapImage(this.map, resolution, data.imageFormat, data.showProjection, data.showScale, data.title, data.subtitle, data.comment, data.doZipFile, data.legendPosition)
35711
35983
  .pipe(take(1))
35712
35984
  .subscribe(() => {
35713
35985
  nbRequests--;
35714
- if (!nbRequests) {
35715
- this.disabled$.next(false);
35986
+ if (data.legendPosition === 'newpage') {
35987
+ this.printService.getLayersLegendImage(this.map, data.imageFormat, data.doZipFile, resolution).then(() => {
35988
+ nbRequests--;
35989
+ if (!nbRequests) {
35990
+ this.disabled$.next(false);
35991
+ }
35992
+ });
35716
35993
  }
35717
- });
35718
- if (data.showLegend) {
35719
- this.printService
35720
- .getLayersLegendImage(this.map, data.imageFormat, data.doZipFile, +resolution)
35721
- .then(() => {
35722
- nbRequests--;
35994
+ else {
35723
35995
  if (!nbRequests) {
35724
35996
  this.disabled$.next(false);
35725
35997
  }
35726
- });
35727
- }
35998
+ }
35999
+ });
35728
36000
  }
35729
36001
  }
35730
36002
  }
@@ -36673,7 +36945,7 @@ DirectionsInputsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: D
36673
36945
  i0.ɵɵadvance(1);
36674
36946
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx.stopsStore.view.all$()));
36675
36947
  }
36676
- }, dependencies: [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i3$1.CdkDropList, i3$1.CdkDrag, i3$1.CdkDragHandle, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3.MatButton, i13.MatFormField, i13.MatSuffix, i14.MatInput, i9.MatOption, i9.MatOptgroup, i4.MatTooltip, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-input-container[_ngcontent-%COMP%]{width:100%}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.igo-input-container.reduce[_ngcontent-%COMP%]{width:70%}.igo-input-container.reduce[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.stops-list[_ngcontent-%COMP%]{max-width:100%;min-height:60px;display:block;background:white;border-radius:4px;overflow:hidden;padding:20px 10px}.swipe-vertical[_ngcontent-%COMP%]{cursor:move}.stop-box[_ngcontent-%COMP%]{height:60px;padding:20px 10px;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:white}.cdk-drag-preview[_ngcontent-%COMP%]{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:0}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.stops-list.cdk-drop-list-dragging[_ngcontent-%COMP%] .stop-box[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}"] });
36948
+ }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i3$2.CdkDropList, i3$2.CdkDrag, i3$2.CdkDragHandle, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3$1.MatButton, i13.MatFormField, i13.MatSuffix, i14.MatInput, i9.MatOption, i9.MatOptgroup, i4.MatTooltip, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i1.AsyncPipe, i7.TranslatePipe], styles: [".igo-input-container[_ngcontent-%COMP%]{width:100%}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.igo-input-container.reduce[_ngcontent-%COMP%]{width:70%}.igo-input-container.reduce[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.stops-list[_ngcontent-%COMP%]{max-width:100%;min-height:60px;display:block;background:white;border-radius:4px;overflow:hidden;padding:20px 10px}.swipe-vertical[_ngcontent-%COMP%]{cursor:move}.stop-box[_ngcontent-%COMP%]{height:60px;padding:20px 10px;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:white}.cdk-drag-preview[_ngcontent-%COMP%]{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:0}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.stops-list.cdk-drop-list-dragging[_ngcontent-%COMP%] .stop-box[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}"] });
36677
36949
  (function () {
36678
36950
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsInputsComponent, [{
36679
36951
  type: Component,
@@ -36868,9 +37140,10 @@ class SearchSourceService {
36868
37140
  * and the results they yielded.
36869
37141
  */
36870
37142
  class SearchService {
36871
- constructor(searchSourceService, mapService) {
37143
+ constructor(searchSourceService, mapService, storageService) {
36872
37144
  this.searchSourceService = searchSourceService;
36873
37145
  this.mapService = mapService;
37146
+ this.storageService = storageService;
36874
37147
  }
36875
37148
  /**
36876
37149
  * Perform a research by text
@@ -36922,7 +37195,8 @@ class SearchService {
36922
37195
  const sources = this.searchSourceService
36923
37196
  .getEnabledSources()
36924
37197
  .filter(reverseSourceFonction);
36925
- return this.reverseSearchSources(sources, lonLat, options || {});
37198
+ const reverseSearchCoordsFormat = this.storageService.get('reverseSearchCoordsFormatEnabled') || false;
37199
+ return this.reverseSearchSources(sources, lonLat, options || {}, reverseSearchCoordsFormat);
36926
37200
  }
36927
37201
  /**
36928
37202
  * Create a text research out of all given search sources
@@ -36945,10 +37219,10 @@ class SearchService {
36945
37219
  * @param lonLat Any lon/lat coordinates
36946
37220
  * @returns Observable of Researches
36947
37221
  */
36948
- reverseSearchSources(sources, lonLat, options) {
37222
+ reverseSearchSources(sources, lonLat, options, reverseSearchCoordsFormat) {
36949
37223
  return sources.map((source) => {
36950
37224
  return {
36951
- request: source.reverseSearch(lonLat, options),
37225
+ request: source.reverseSearch(lonLat, options, reverseSearchCoordsFormat),
36952
37226
  reverse: true,
36953
37227
  source
36954
37228
  };
@@ -36963,7 +37237,7 @@ class SearchService {
36963
37237
  return typeof term === 'string' && term !== '';
36964
37238
  }
36965
37239
  }
36966
- SearchService.ɵfac = function SearchService_Factory(t) { return new (t || SearchService)(i0.ɵɵinject(SearchSourceService), i0.ɵɵinject(MapService)); };
37240
+ SearchService.ɵfac = function SearchService_Factory(t) { return new (t || SearchService)(i0.ɵɵinject(SearchSourceService), i0.ɵɵinject(MapService), i0.ɵɵinject(i2$1.StorageService)); };
36967
37241
  SearchService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SearchService, factory: SearchService.ɵfac, providedIn: 'root' });
36968
37242
  (function () {
36969
37243
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchService, [{
@@ -36971,7 +37245,7 @@ SearchService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SearchServ
36971
37245
  args: [{
36972
37246
  providedIn: 'root'
36973
37247
  }]
36974
- }], function () { return [{ type: SearchSourceService }, { type: MapService }]; }, null);
37248
+ }], function () { return [{ type: SearchSourceService }, { type: MapService }, { type: i2$1.StorageService }]; }, null);
36975
37249
  })();
36976
37250
 
36977
37251
  function DirectionsButtonsComponent_button_4_Template(rf, ctx) {
@@ -37185,7 +37459,7 @@ DirectionsButtonsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
37185
37459
  i0.ɵɵadvance(2);
37186
37460
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(12, 15, ctx.routesFeatureStore.count$) >= 1);
37187
37461
  }
37188
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i1$1.AsyncPipe, i7.TranslatePipe] });
37462
+ }, dependencies: [i1.NgIf, i2.MatIcon, i3$1.MatButton, i4.MatTooltip, i1.AsyncPipe, i7.TranslatePipe] });
37189
37463
  (function () {
37190
37464
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsButtonsComponent, [{
37191
37465
  type: Component,
@@ -37389,7 +37663,7 @@ DirectionsResultsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
37389
37663
  if (rf & 2) {
37390
37664
  i0.ɵɵproperty("ngIf", ctx.directions && ctx.activeDirection);
37391
37665
  }
37392
- }, dependencies: [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i5.MatList, i5.MatListItem, i9.MatLine, i5.MatListIconCssMatStyler, i5.MatListSubheaderCssMatStyler, i11.MatDivider, i13.MatFormField, i9.MatOption, i15.MatSelect, i7.TranslatePipe], styles: [".igo-input-container[_ngcontent-%COMP%]{width:100%;padding:20px 10px}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:70%}.igo-route-title[_ngcontent-%COMP%]{font-weight:700}.igo-steps[_ngcontent-%COMP%]{cursor:pointer}.mat-line[_ngcontent-%COMP%]{word-wrap:break-word!important;white-space:pre-wrap!important}.mat-line.right[_ngcontent-%COMP%]{text-align:right}.rotate-90[_ngcontent-%COMP%]{transform:rotate(90deg)}.rotate-45[_ngcontent-%COMP%]{transform:rotate(45deg)}.rotate-270[_ngcontent-%COMP%]{transform:rotate(270deg)}.rotate-250[_ngcontent-%COMP%]{transform:rotate(250deg)}.rotate-290[_ngcontent-%COMP%]{transform:rotate(290deg)}.icon-flipped[_ngcontent-%COMP%]{transform:scaleY(-1)}"] });
37666
+ }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i5.MatList, i5.MatListItem, i9.MatLine, i5.MatListIconCssMatStyler, i5.MatListSubheaderCssMatStyler, i11.MatDivider, i13.MatFormField, i9.MatOption, i15.MatSelect, i7.TranslatePipe], styles: [".igo-input-container[_ngcontent-%COMP%]{width:100%;padding:20px 10px}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:70%}.igo-route-title[_ngcontent-%COMP%]{font-weight:700}.igo-steps[_ngcontent-%COMP%]{cursor:pointer}.mat-line[_ngcontent-%COMP%]{word-wrap:break-word!important;white-space:pre-wrap!important}.mat-line.right[_ngcontent-%COMP%]{text-align:right}.rotate-90[_ngcontent-%COMP%]{transform:rotate(90deg)}.rotate-45[_ngcontent-%COMP%]{transform:rotate(45deg)}.rotate-270[_ngcontent-%COMP%]{transform:rotate(270deg)}.rotate-250[_ngcontent-%COMP%]{transform:rotate(250deg)}.rotate-290[_ngcontent-%COMP%]{transform:rotate(290deg)}.icon-flipped[_ngcontent-%COMP%]{transform:scaleY(-1)}"] });
37393
37667
  (function () {
37394
37668
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsResultsComponent, [{
37395
37669
  type: Component,
@@ -37842,9 +38116,6 @@ class IChercheSearchSource extends SearchSource {
37842
38116
  this.formatter = formatter;
37843
38117
  this.title$ = new BehaviorSubject('');
37844
38118
  this.hashtagsLieuxToKeep = [];
37845
- this.languageService.translate
37846
- .get(this.options.title)
37847
- .subscribe((title) => this.title$.next(title));
37848
38119
  const authService = injector.get(AuthService);
37849
38120
  if (this.settings.length) {
37850
38121
  if (!authService) {
@@ -37856,6 +38127,9 @@ class IChercheSearchSource extends SearchSource {
37856
38127
  });
37857
38128
  }
37858
38129
  }
38130
+ this.languageService.language$.subscribe(() => {
38131
+ this.title$.next(this.languageService.translate.instant(this.options.title));
38132
+ });
37859
38133
  }
37860
38134
  get title() {
37861
38135
  return this.title$.getValue();
@@ -38299,7 +38573,7 @@ class IChercheSearchSource extends SearchSource {
38299
38573
  IChercheSearchSource.id = 'icherche';
38300
38574
  IChercheSearchSource.type = FEATURE;
38301
38575
  IChercheSearchSource.propertiesBlacklist = [];
38302
- IChercheSearchSource.ɵfac = function IChercheSearchSource_Factory(t) { return new (t || IChercheSearchSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(IChercheSearchResultFormatter), i0.ɵɵinject(i0.Injector)); };
38576
+ IChercheSearchSource.ɵfac = function IChercheSearchSource_Factory(t) { return new (t || IChercheSearchSource)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(IChercheSearchResultFormatter), i0.ɵɵinject(i0.Injector)); };
38303
38577
  IChercheSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheSearchSource, factory: IChercheSearchSource.ɵfac });
38304
38578
  __decorate([
38305
38579
  Cacheable({
@@ -38310,7 +38584,7 @@ __decorate([
38310
38584
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheSearchSource, [{
38311
38585
  type: Injectable
38312
38586
  }], function () {
38313
- return [{ type: i1$2.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
38587
+ return [{ type: i1$1.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
38314
38588
  type: Inject,
38315
38589
  args: ['options']
38316
38590
  }] }, { type: IChercheSearchResultFormatter, decorators: [{
@@ -38328,9 +38602,9 @@ class IChercheReverseSearchSource extends SearchSource {
38328
38602
  this.http = http;
38329
38603
  this.languageService = languageService;
38330
38604
  this.title$ = new BehaviorSubject('');
38331
- this.languageService.translate
38332
- .get(this.options.title)
38333
- .subscribe((title) => this.title$.next(title));
38605
+ this.languageService.language$.subscribe(() => {
38606
+ this.title$.next(this.languageService.translate.instant(this.options.title));
38607
+ });
38334
38608
  const authService = injector.get(AuthService);
38335
38609
  if (this.settings.length) {
38336
38610
  if (!authService) {
@@ -38544,7 +38818,7 @@ class IChercheReverseSearchSource extends SearchSource {
38544
38818
  IChercheReverseSearchSource.id = 'icherchereverse';
38545
38819
  IChercheReverseSearchSource.type = FEATURE;
38546
38820
  IChercheReverseSearchSource.propertiesBlacklist = [];
38547
- IChercheReverseSearchSource.ɵfac = function IChercheReverseSearchSource_Factory(t) { return new (t || IChercheReverseSearchSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(i0.Injector)); };
38821
+ IChercheReverseSearchSource.ɵfac = function IChercheReverseSearchSource_Factory(t) { return new (t || IChercheReverseSearchSource)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(i0.Injector)); };
38548
38822
  IChercheReverseSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheReverseSearchSource, factory: IChercheReverseSearchSource.ɵfac });
38549
38823
  __decorate([
38550
38824
  Cacheable({
@@ -38555,7 +38829,7 @@ __decorate([
38555
38829
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheReverseSearchSource, [{
38556
38830
  type: Injectable
38557
38831
  }], function () {
38558
- return [{ type: i1$2.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
38832
+ return [{ type: i1$1.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
38559
38833
  type: Inject,
38560
38834
  args: ['options']
38561
38835
  }] }, { type: i0.Injector }];
@@ -38647,9 +38921,9 @@ class CoordinatesReverseSearchSource extends SearchSource {
38647
38921
  this.languageService = languageService;
38648
38922
  this.title$ = new BehaviorSubject('');
38649
38923
  this.projections = projections;
38650
- this.languageService.translate
38651
- .get(this.options.title)
38652
- .subscribe(title => this.title$.next(title));
38924
+ this.languageService.language$.subscribe(() => {
38925
+ this.title$.next(this.languageService.translate.instant(this.options.title));
38926
+ });
38653
38927
  }
38654
38928
  get title() {
38655
38929
  return this.title$.getValue();
@@ -38673,15 +38947,17 @@ class CoordinatesReverseSearchSource extends SearchSource {
38673
38947
  * @param options options of ReverseSearchOptions (distance, conf, zoom, params)
38674
38948
  * @returns Observable of <SearchResult<Feature>[]
38675
38949
  */
38676
- reverseSearch(lonLat, options) {
38677
- return of([this.dataToResult(lonLat, options)]);
38950
+ reverseSearch(lonLat, options, reverseSearchCoordsFormatEnabled) {
38951
+ return of([this.dataToResult(lonLat, options, reverseSearchCoordsFormatEnabled)]);
38678
38952
  }
38679
- dataToResult(data, options) {
38953
+ dataToResult(data, options, reverseSearchCoordsFormatEnabled) {
38680
38954
  const dataDMS = convertDDToDMS(data);
38681
38955
  const convertedCoord = lonLatConversion(data, this.projections);
38682
38956
  const coords = convertedCoord.reduce((obj, item) => (obj[item.alias] = item.igo2CoordFormat, obj), {});
38683
- const roundedCoordString = roundCoordTo(data, 6).join(', ');
38684
- const roundedCoordStringDMS = dataDMS.join(', ');
38957
+ const roundedCoordString = (!reverseSearchCoordsFormatEnabled) ?
38958
+ roundCoordTo(data, 6).join(', ') : roundCoordTo(data, 6).reverse().join(', ');
38959
+ const roundedCoordStringDMS = (!reverseSearchCoordsFormatEnabled) ?
38960
+ dataDMS.join(', ') : dataDMS.reverse().join(', ');
38685
38961
  let geometry = {
38686
38962
  type: 'Point',
38687
38963
  coordinates: [data[0], data[1]]
@@ -38705,9 +38981,13 @@ class CoordinatesReverseSearchSource extends SearchSource {
38705
38981
  subtitleHtml += subtitleHtml === '' ? '<br>' : '<small> - </small>';
38706
38982
  subtitleHtml += '<small>Confiance: ' + options.conf + '%</small>';
38707
38983
  }
38708
- const coordKey = this.languageService.translate.instant('igo.geo.search.coordinates.coord');
38984
+ const coordKey = (!reverseSearchCoordsFormatEnabled) ?
38985
+ this.languageService.translate.instant('igo.geo.search.coordinates.coord') :
38986
+ this.languageService.translate.instant('igo.geo.search.coordinates.reversedCoord');
38709
38987
  properties[coordKey] = roundedCoordString;
38710
- const coordKeyDMS = this.languageService.translate.instant('igo.geo.search.coordinates.coordDMS');
38988
+ const coordKeyDMS = (!reverseSearchCoordsFormatEnabled) ?
38989
+ this.languageService.translate.instant('igo.geo.search.coordinates.coordDMS') :
38990
+ this.languageService.translate.instant('igo.geo.search.coordinates.reversedCoordDMS');
38711
38991
  properties[coordKeyDMS] = roundedCoordStringDMS;
38712
38992
  return {
38713
38993
  source: this,
@@ -38847,9 +39127,9 @@ class ILayerSearchSource extends SearchSource {
38847
39127
  this.languageService = languageService;
38848
39128
  this.formatter = formatter;
38849
39129
  this.title$ = new BehaviorSubject('');
38850
- this.languageService.translate
38851
- .get(this.options.title)
38852
- .subscribe(title => this.title$.next(title));
39130
+ this.languageService.language$.subscribe(() => {
39131
+ this.title$.next(this.languageService.translate.instant(this.options.title));
39132
+ });
38853
39133
  }
38854
39134
  get title() {
38855
39135
  return this.title$.getValue();
@@ -39087,7 +39367,7 @@ class ILayerSearchSource extends SearchSource {
39087
39367
  }
39088
39368
  ILayerSearchSource.id = 'ilayer';
39089
39369
  ILayerSearchSource.type = LAYER;
39090
- ILayerSearchSource.ɵfac = function ILayerSearchSource_Factory(t) { return new (t || ILayerSearchSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(ILayerSearchResultFormatter)); };
39370
+ ILayerSearchSource.ɵfac = function ILayerSearchSource_Factory(t) { return new (t || ILayerSearchSource)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(ILayerSearchResultFormatter)); };
39091
39371
  ILayerSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ILayerSearchSource, factory: ILayerSearchSource.ɵfac });
39092
39372
  __decorate([
39093
39373
  Cacheable({
@@ -39098,7 +39378,7 @@ __decorate([
39098
39378
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ILayerSearchSource, [{
39099
39379
  type: Injectable
39100
39380
  }], function () {
39101
- return [{ type: i1$2.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
39381
+ return [{ type: i1$1.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
39102
39382
  type: Inject,
39103
39383
  args: ['options']
39104
39384
  }] }, { type: ILayerSearchResultFormatter, decorators: [{
@@ -39250,7 +39530,7 @@ SearchSelectorComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
39250
39530
  i0.ɵɵadvance(2);
39251
39531
  i0.ɵɵproperty("ngForOf", ctx.searchTypes);
39252
39532
  }
39253
- }, dependencies: [i1$1.NgForOf, i4.MatTooltip, i2.MatIcon, i3.MatButton, i7$2.MatMenu, i7$2.MatMenuTrigger, i17.MatRadioGroup, i17.MatRadioButton, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-search-selector-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-selector-radio-group[_ngcontent-%COMP%]{display:inline-flex;flex-direction:column}.igo-search-selector-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}"], changeDetection: 0 });
39533
+ }, dependencies: [i1.NgForOf, i4.MatTooltip, i2.MatIcon, i3$1.MatButton, i7$2.MatMenu, i7$2.MatMenuTrigger, i17.MatRadioGroup, i17.MatRadioButton, i1.AsyncPipe, i7.TranslatePipe], styles: [".igo-search-selector-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-selector-radio-group[_ngcontent-%COMP%]{display:inline-flex;flex-direction:column}.igo-search-selector-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}"], changeDetection: 0 });
39254
39534
  (function () {
39255
39535
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSelectorComponent, [{
39256
39536
  type: Component,
@@ -39507,18 +39787,29 @@ function SearchSettingsComponent_span_8_Template(rf, ctx) {
39507
39787
  i0.ɵɵpipe(8, "translate");
39508
39788
  i0.ɵɵtext(9);
39509
39789
  i0.ɵɵpipe(10, "translate");
39790
+ i0.ɵɵelementEnd();
39791
+ i0.ɵɵelementStart(11, "mat-slide-toggle", 26);
39792
+ i0.ɵɵlistener("change", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_change_11_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r48 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r48.reverseSearchCoordsFormat($event)); })("click", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_click_11_listener($event) { return $event.stopPropagation(); });
39793
+ i0.ɵɵpipe(12, "translate");
39794
+ i0.ɵɵpipe(13, "translate");
39795
+ i0.ɵɵtext(14);
39796
+ i0.ɵɵpipe(15, "translate");
39510
39797
  i0.ɵɵelementEnd()()();
39511
39798
  }
39512
39799
  if (rf & 2) {
39513
39800
  const ctx_r3 = i0.ɵɵnextContext();
39514
39801
  i0.ɵɵadvance(3);
39515
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(4, 8, "igo.geo.search.pointerSearchSummary.tooltip"))("checked", ctx_r3.pointerSummaryEnabled)("labelPosition", "after");
39802
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(4, 12, "igo.geo.search.pointerSearchSummary.tooltip"))("checked", ctx_r3.pointerSummaryEnabled)("labelPosition", "after");
39516
39803
  i0.ɵɵadvance(2);
39517
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 10, "igo.geo.search.pointerSearchSummary.title"), " ");
39804
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 14, "igo.geo.search.pointerSearchSummary.title"), " ");
39518
39805
  i0.ɵɵadvance(2);
39519
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(8, 12, "igo.geo.search.searchResultsGeometry.tooltip"))("checked", ctx_r3.searchResultsGeometryEnabled)("labelPosition", "after");
39806
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(8, 16, "igo.geo.search.searchResultsGeometry.tooltip"))("checked", ctx_r3.searchResultsGeometryEnabled)("labelPosition", "after");
39520
39807
  i0.ɵɵadvance(2);
39521
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 14, "igo.geo.search.searchResultsGeometry.title"), " ");
39808
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 18, "igo.geo.search.searchResultsGeometry.title"), " ");
39809
+ i0.ɵɵadvance(2);
39810
+ i0.ɵɵproperty("matTooltip", ctx_r3.reverseSearchCoordsFormatEnabled ? i0.ɵɵpipeBind1(12, 20, "igo.geo.search.reverseCoordFormat.tooltipLatLon") : i0.ɵɵpipeBind1(13, 22, "igo.geo.search.reverseCoordFormat.tooltipLonLat"))("checked", ctx_r3.reverseSearchCoordsFormatEnabled)("labelPosition", "after");
39811
+ i0.ɵɵadvance(3);
39812
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 24, "igo.geo.search.reverseCoordFormat.title"), " ");
39522
39813
  }
39523
39814
  }
39524
39815
  /**
@@ -39541,6 +39832,7 @@ class SearchSettingsComponent {
39541
39832
  this.displayBlock = 'block';
39542
39833
  this.pointerSummaryEnabled = false;
39543
39834
  this.searchResultsGeometryEnabled = false;
39835
+ this.reverseSearchCoordsFormatEnabled = false;
39544
39836
  /**
39545
39837
  * Event emitted when the enabled search source changes
39546
39838
  */
@@ -39553,6 +39845,10 @@ class SearchSettingsComponent {
39553
39845
  * Event emitted when the show geometry summary is changed
39554
39846
  */
39555
39847
  this.searchResultsGeometryStatus = new EventEmitter();
39848
+ /**
39849
+ * Event emitted when the coords format is changed
39850
+ */
39851
+ this.reverseSearchCoordsFormatStatus = new EventEmitter();
39556
39852
  }
39557
39853
  get isTouchScreen() {
39558
39854
  return this.mediaService.isTouchScreen();
@@ -39705,13 +40001,17 @@ class SearchSettingsComponent {
39705
40001
  this.searchResultsGeometryEnabled = event.checked;
39706
40002
  this.searchResultsGeometryStatus.emit(this.searchResultsGeometryEnabled);
39707
40003
  }
40004
+ reverseSearchCoordsFormat(event) {
40005
+ this.reverseSearchCoordsFormatEnabled = event.checked;
40006
+ this.reverseSearchCoordsFormatStatus.emit(this.reverseSearchCoordsFormatEnabled);
40007
+ }
39708
40008
  }
39709
40009
  SearchSettingsComponent.ɵfac = function SearchSettingsComponent_Factory(t) { return new (t || SearchSettingsComponent)(i0.ɵɵdirectiveInject(SearchSourceService), i0.ɵɵdirectiveInject(i2$1.MediaService), i0.ɵɵdirectiveInject(i2$1.StorageService)); };
39710
40010
  SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchSettingsComponent, selectors: [["igo-search-settings"]], hostBindings: function SearchSettingsComponent_HostBindings(rf, ctx) {
39711
40011
  if (rf & 1) {
39712
40012
  i0.ɵɵlistener("keydown", function SearchSettingsComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
39713
40013
  }
39714
- }, inputs: { pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled" }, outputs: { searchSourceChange: "searchSourceChange", pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus" }, decls: 9, vars: 7, consts: [[1, "igo-search-settings"], ["mat-icon-button", "", "color", "primary", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-search-settings-button", 3, "matTooltip", "matMenuTriggerFor"], ["svgIcon", "chevron-down"], [1, "no-border-radius"], ["searchSettingsMenu", "matMenu"], ["class", "checkAllButton", 4, "ngIf"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [1, "checkAllButton"], ["mat-raised-button", "", 3, "click"], [1, "igo-search-settings-search-source"], [1, "igo-search-settings-checkbox", 3, "checked", "value", "click", "change"], ["mat-menu-item", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["sub_menu", "matMenu"], ["mat-menu-item", "", 3, "matMenuTriggerFor"], ["mat-menu-item", ""], ["yPosition", "above", 3, "ngSwitch"], ["test_sub_menu", "matMenu"], [4, "ngSwitchCase"], [1, "igo-search-settings-radio-group", 3, "value"], ["class", "mat-typography", 3, "value", "matTooltip", "checked", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "matTooltip", "checked", "click", "change"], ["class", "mat-menu-item", 3, "display", "checked", "value", "matTooltip", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-menu-item", 3, "checked", "value", "matTooltip", "click", "change"], [1, "pointer-summary-slide-toggle-container", "mat-typography"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "pointer-summary-option", 3, "matTooltip", "checked", "labelPosition", "change", "click"]], template: function SearchSettingsComponent_Template(rf, ctx) {
40014
+ }, inputs: { pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", reverseSearchCoordsFormatEnabled: "reverseSearchCoordsFormatEnabled" }, outputs: { searchSourceChange: "searchSourceChange", pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus", reverseSearchCoordsFormatStatus: "reverseSearchCoordsFormatStatus" }, decls: 9, vars: 7, consts: [[1, "igo-search-settings"], ["mat-icon-button", "", "color", "primary", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-search-settings-button", 3, "matTooltip", "matMenuTriggerFor"], ["svgIcon", "chevron-down"], [1, "no-border-radius"], ["searchSettingsMenu", "matMenu"], ["class", "checkAllButton", 4, "ngIf"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [1, "checkAllButton"], ["mat-raised-button", "", 3, "click"], [1, "igo-search-settings-search-source"], [1, "igo-search-settings-checkbox", 3, "checked", "value", "click", "change"], ["mat-menu-item", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["sub_menu", "matMenu"], ["mat-menu-item", "", 3, "matMenuTriggerFor"], ["mat-menu-item", ""], ["yPosition", "above", 3, "ngSwitch"], ["test_sub_menu", "matMenu"], [4, "ngSwitchCase"], [1, "igo-search-settings-radio-group", 3, "value"], ["class", "mat-typography", 3, "value", "matTooltip", "checked", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "matTooltip", "checked", "click", "change"], ["class", "mat-menu-item", 3, "display", "checked", "value", "matTooltip", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-menu-item", 3, "checked", "value", "matTooltip", "click", "change"], [1, "pointer-summary-slide-toggle-container", "mat-typography"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "search-option", 3, "matTooltip", "checked", "labelPosition", "change", "click"]], template: function SearchSettingsComponent_Template(rf, ctx) {
39715
40015
  if (rf & 1) {
39716
40016
  i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
39717
40017
  i0.ɵɵpipe(2, "translate");
@@ -39720,7 +40020,7 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
39720
40020
  i0.ɵɵelementStart(4, "mat-menu", 3, 4);
39721
40021
  i0.ɵɵtemplate(6, SearchSettingsComponent_div_6_Template, 5, 5, "div", 5);
39722
40022
  i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_Template, 8, 5, "ng-container", 6);
39723
- i0.ɵɵtemplate(8, SearchSettingsComponent_span_8_Template, 11, 16, "span", 7);
40023
+ i0.ɵɵtemplate(8, SearchSettingsComponent_span_8_Template, 16, 26, "span", 7);
39724
40024
  i0.ɵɵelementEnd()();
39725
40025
  }
39726
40026
  if (rf & 2) {
@@ -39734,21 +40034,25 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
39734
40034
  i0.ɵɵadvance(1);
39735
40035
  i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
39736
40036
  }
39737
- }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i1$1.NgSwitch, i1$1.NgSwitchCase, i4.MatTooltip, i2.MatIcon, i3.MatButton, i7$2.MatMenu, i7$2.MatMenuItem, i7$2.MatMenuTrigger, i17.MatRadioGroup, i17.MatRadioButton, i12.MatCheckbox, i11.MatDivider, i23.MatSlideToggle, i7.TranslatePipe], styles: [".checkAllButton[_ngcontent-%COMP%]{text-align:center;padding:0 5px}.igo-search-settings-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.igo-search-settings-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}.igo-search-settings-checkbox[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{display:flex}.igo-search-settings-search-source[_ngcontent-%COMP%]{display:flex;width:100%}.igo-search-settings-search-source[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:flex;margin-left:5px;margin-right:5px}.pointer-summary-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{margin:10px}"], changeDetection: 0 });
40037
+ }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgSwitch, i1.NgSwitchCase, i4.MatTooltip, i2.MatIcon, i3$1.MatButton, i7$2.MatMenu, i7$2.MatMenuItem, i7$2.MatMenuTrigger, i17.MatRadioGroup, i17.MatRadioButton, i12.MatCheckbox, i11.MatDivider, i23.MatSlideToggle, i7.TranslatePipe], styles: [".checkAllButton[_ngcontent-%COMP%]{text-align:center;padding:0 5px}.igo-search-settings-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.igo-search-settings-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}.igo-search-settings-checkbox[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{display:flex}.igo-search-settings-search-source[_ngcontent-%COMP%]{display:flex;width:100%}.igo-search-settings-search-source[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:flex;margin-left:5px;margin-right:5px}.search-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{margin:10px}"], changeDetection: 0 });
39738
40038
  (function () {
39739
40039
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
39740
40040
  type: Component,
39741
- args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\n\n <button\n mat-icon-button\n class=\"igo-search-settings-button\"\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\n [matMenuTriggerFor]=\"searchSettingsMenu\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n <mat-menu\n #searchSettingsMenu=\"matMenu\"\n class=\"no-border-radius\">\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\n <button mat-raised-button\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\n </div>\n <ng-container *ngFor=\"let source of getSearchSources()\">\n <span class=\"igo-search-settings-search-source\">\n <mat-checkbox\n class=\"igo-search-settings-checkbox\"\n [checked]=\"source.enabled\"\n [value]=\"source\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onCheckSearchSource($event, source)\">\n </mat-checkbox>\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\n [matMenuTriggerFor]=\"sub_menu\"\n mat-menu-item>{{source.title}}\n </button>\n <button\n mat-menu-item\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\n {{source.title}}\n </button>\n </span>\n <mat-menu #sub_menu=\"matMenu\">\n <ng-container *ngFor=\"let setting of source.settings\">\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"test_sub_menu\">\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\n </button>\n <mat-menu #test_sub_menu=\"matMenu\"\n [ngSwitch]=\"setting.type\"\n yPosition=\"above\">\n <span *ngSwitchCase=\"'radiobutton'\">\n <mat-radio-group\n class=\"igo-search-settings-radio-group\"\n [value]=\"setting\">\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\n class=\"mat-typography\"\n [value]=\"settingValue\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n [checked]=\"settingValue.enabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-radio-button>\n </mat-radio-group>\n </span>\n <span *ngSwitchCase=\"'checkbox'\">\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\n <button mat-raised-button\n (click)=\"checkUncheckAll($event, source, setting)\">{{setting.allEnabled || setting.allEnabled === undefined ? ('igo.geo.search.searchSources.settings.unselectAll' | translate): ('igo.geo.search.searchSources.settings.selectAll' | translate)}}</button>\n </div>\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\n class=\"mat-menu-item\"\n [style.display]=\"displayBlock\"\n [checked]=\"settingValue.enabled\"\n [value]=\"setting\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-checkbox>\n </span>\n </mat-menu>\n </ng-container>\n </mat-menu>\n </ng-container>\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\n <mat-divider></mat-divider>\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\n </mat-slide-toggle>\n </span>\n </span>\n </mat-menu>\n</div>\n", styles: [".checkAllButton{text-align:center;padding:0 5px}.igo-search-settings-button ::ng-deep div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group{display:flex;flex-direction:column}.igo-search-settings-radio-group mat-radio-button{margin:5px}.igo-search-settings-checkbox mat-radio-button{display:flex}.igo-search-settings-search-source{display:flex;width:100%}.igo-search-settings-search-source mat-checkbox{display:flex;margin-left:5px;margin-right:5px}.pointer-summary-option{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container{overflow-x:hidden}.pointer-summary-slide-toggle-container mat-slide-toggle{margin:10px}\n"] }]
40041
+ args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\n\n <button\n mat-icon-button\n class=\"igo-search-settings-button\"\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\n [matMenuTriggerFor]=\"searchSettingsMenu\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n <mat-menu\n #searchSettingsMenu=\"matMenu\"\n class=\"no-border-radius\">\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\n <button mat-raised-button\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\n </div>\n <ng-container *ngFor=\"let source of getSearchSources()\">\n <span class=\"igo-search-settings-search-source\">\n <mat-checkbox\n class=\"igo-search-settings-checkbox\"\n [checked]=\"source.enabled\"\n [value]=\"source\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onCheckSearchSource($event, source)\">\n </mat-checkbox>\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\n [matMenuTriggerFor]=\"sub_menu\"\n mat-menu-item>{{source.title}}\n </button>\n <button\n mat-menu-item\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\n {{source.title}}\n </button>\n </span>\n <mat-menu #sub_menu=\"matMenu\">\n <ng-container *ngFor=\"let setting of source.settings\">\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"test_sub_menu\">\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\n </button>\n <mat-menu #test_sub_menu=\"matMenu\"\n [ngSwitch]=\"setting.type\"\n yPosition=\"above\">\n <span *ngSwitchCase=\"'radiobutton'\">\n <mat-radio-group\n class=\"igo-search-settings-radio-group\"\n [value]=\"setting\">\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\n class=\"mat-typography\"\n [value]=\"settingValue\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n [checked]=\"settingValue.enabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-radio-button>\n </mat-radio-group>\n </span>\n <span *ngSwitchCase=\"'checkbox'\">\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\n <button mat-raised-button\n (click)=\"checkUncheckAll($event, source, setting)\">{{setting.allEnabled || setting.allEnabled === undefined ? ('igo.geo.search.searchSources.settings.unselectAll' | translate): ('igo.geo.search.searchSources.settings.selectAll' | translate)}}</button>\n </div>\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\n class=\"mat-menu-item\"\n [style.display]=\"displayBlock\"\n [checked]=\"settingValue.enabled\"\n [value]=\"setting\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-checkbox>\n </span>\n </mat-menu>\n </ng-container>\n </mat-menu>\n </ng-container>\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\n <mat-divider></mat-divider>\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\n <mat-slide-toggle class=\"search-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"search-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"search-option\" (change)=\"reverseSearchCoordsFormat($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"reverseSearchCoordsFormatEnabled ? ('igo.geo.search.reverseCoordFormat.tooltipLatLon' | translate)\n : ('igo.geo.search.reverseCoordFormat.tooltipLonLat' | translate)\"\n (click)=\"$event.stopPropagation()\" [checked]=\"reverseSearchCoordsFormatEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.reverseCoordFormat.title' | translate}}\n </mat-slide-toggle>\n </span>\n </span>\n </mat-menu>\n</div>\n", styles: [".checkAllButton{text-align:center;padding:0 5px}.igo-search-settings-button ::ng-deep div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group{display:flex;flex-direction:column}.igo-search-settings-radio-group mat-radio-button{margin:5px}.igo-search-settings-checkbox mat-radio-button{display:flex}.igo-search-settings-search-source{display:flex;width:100%}.igo-search-settings-search-source mat-checkbox{display:flex;margin-left:5px;margin-right:5px}.search-option{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container{overflow-x:hidden}.pointer-summary-slide-toggle-container mat-slide-toggle{margin:10px}\n"] }]
39742
40042
  }], function () { return [{ type: SearchSourceService }, { type: i2$1.MediaService }, { type: i2$1.StorageService }]; }, { pointerSummaryEnabled: [{
39743
40043
  type: Input
39744
40044
  }], searchResultsGeometryEnabled: [{
39745
40045
  type: Input
40046
+ }], reverseSearchCoordsFormatEnabled: [{
40047
+ type: Input
39746
40048
  }], searchSourceChange: [{
39747
40049
  type: Output
39748
40050
  }], pointerSummaryStatus: [{
39749
40051
  type: Output
39750
40052
  }], searchResultsGeometryStatus: [{
39751
40053
  type: Output
40054
+ }], reverseSearchCoordsFormatStatus: [{
40055
+ type: Output
39752
40056
  }], handleKeyboardEvent: [{
39753
40057
  type: HostListener,
39754
40058
  args: ['document:keydown', ['$event']]
@@ -39861,12 +40165,12 @@ function SearchBarComponent_igo_search_settings_15_Template(rf, ctx) {
39861
40165
  if (rf & 1) {
39862
40166
  const _r11 = i0.ɵɵgetCurrentView();
39863
40167
  i0.ɵɵelementStart(0, "igo-search-settings", 15);
39864
- i0.ɵɵlistener("pointerSummaryStatus", function SearchBarComponent_igo_search_settings_15_Template_igo_search_settings_pointerSummaryStatus_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.pointerSummaryStatus.emit($event)); })("searchResultsGeometryStatus", function SearchBarComponent_igo_search_settings_15_Template_igo_search_settings_searchResultsGeometryStatus_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.searchResultsGeometryStatus.emit($event)); })("searchSourceChange", function SearchBarComponent_igo_search_settings_15_Template_igo_search_settings_searchSourceChange_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onSearchSettingsChange()); });
40168
+ i0.ɵɵlistener("pointerSummaryStatus", function SearchBarComponent_igo_search_settings_15_Template_igo_search_settings_pointerSummaryStatus_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.pointerSummaryStatus.emit($event)); })("searchResultsGeometryStatus", function SearchBarComponent_igo_search_settings_15_Template_igo_search_settings_searchResultsGeometryStatus_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.searchResultsGeometryStatus.emit($event)); })("reverseSearchCoordsFormatStatus", function SearchBarComponent_igo_search_settings_15_Template_igo_search_settings_reverseSearchCoordsFormatStatus_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.reverseSearchCoordsFormatStatus.emit($event)); })("searchSourceChange", function SearchBarComponent_igo_search_settings_15_Template_igo_search_settings_searchSourceChange_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.onSearchSettingsChange()); });
39865
40169
  i0.ɵɵelementEnd();
39866
40170
  }
39867
40171
  if (rf & 2) {
39868
40172
  const ctx_r5 = i0.ɵɵnextContext();
39869
- i0.ɵɵproperty("pointerSummaryEnabled", ctx_r5.pointerSummaryEnabled)("searchResultsGeometryEnabled", ctx_r5.searchResultsGeometryEnabled);
40173
+ i0.ɵɵproperty("pointerSummaryEnabled", ctx_r5.pointerSummaryEnabled)("searchResultsGeometryEnabled", ctx_r5.searchResultsGeometryEnabled)("reverseSearchCoordsFormatEnabled", ctx_r5.reverseSearchCoordsFormatEnabled);
39870
40174
  }
39871
40175
  }
39872
40176
  const _c1$2 = function (a0) { return { empty: a0 }; };
@@ -39904,10 +40208,15 @@ class SearchBarComponent {
39904
40208
  * Event emitted when the show geometry setting is changed
39905
40209
  */
39906
40210
  this.searchResultsGeometryStatus = new EventEmitter();
40211
+ /**
40212
+ * Event emitted when the coords format setting is changed
40213
+ */
40214
+ this.reverseSearchCoordsFormatStatus = new EventEmitter();
39907
40215
  this.term$ = new BehaviorSubject('');
39908
40216
  this.disabled$ = new BehaviorSubject(false);
39909
40217
  this.pointerSummaryEnabled = false;
39910
40218
  this.searchResultsGeometryEnabled = false;
40219
+ this._reverseSearchCoordsFormatEnabled = false;
39911
40220
  /**
39912
40221
  * Whether a float label should be displayed
39913
40222
  */
@@ -39986,6 +40295,16 @@ class SearchBarComponent {
39986
40295
  get disabled() {
39987
40296
  return this.disabled$.value;
39988
40297
  }
40298
+ /**
40299
+ * When reverse coordinates status change
40300
+ */
40301
+ get reverseSearchCoordsFormatEnabled() {
40302
+ return this._reverseSearchCoordsFormatEnabled;
40303
+ }
40304
+ set reverseSearchCoordsFormatEnabled(value) {
40305
+ this._reverseSearchCoordsFormatEnabled = value;
40306
+ this.setTerm(this.term, true);
40307
+ }
39989
40308
  /**
39990
40309
  * Whether the search bar is empty
39991
40310
  * @internal
@@ -40069,12 +40388,12 @@ class SearchBarComponent {
40069
40388
  * Send the term into the stream only if this component is not disabled
40070
40389
  * @param term Search term
40071
40390
  */
40072
- setTerm(term) {
40391
+ setTerm(term, reverseCoordEvent) {
40073
40392
  if (this.disabled) {
40074
40393
  return;
40075
40394
  }
40076
40395
  term = term || '';
40077
- if (term !== this.term) {
40396
+ if (term !== this.term && !reverseCoordEvent) {
40078
40397
  this.term$.next(term);
40079
40398
  }
40080
40399
  const slug = term.replace(/(#[^\s]*)/g, '').trim();
@@ -40206,7 +40525,7 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
40206
40525
  let _t;
40207
40526
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
40208
40527
  }
40209
- }, inputs: { searchTypes: "searchTypes", searchType: "searchType", term: "term", disabled: "disabled", pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", floatLabel: "floatLabel", appearance: "appearance", placeholder: "placeholder", label: "label", color: "color", termSplitter: "termSplitter", debounce: "debounce", minLength: "minLength", searchSelector: "searchSelector", searchSettings: "searchSettings", forceNA: "forceNA", store: "store" }, outputs: { pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus", searchTermChange: "searchTermChange", search: "search", searchTypeChange: "searchTypeChange", clearFeature: "clearFeature", searchSettingsChange: "searchSettingsChange" }, decls: 16, vars: 28, consts: [[1, "igo-search-bar-container", 3, "ngClass"], [3, "floatLabel", "appearance"], [4, "ngIf"], ["matInput", "", "autocomplete", "off", 3, "ngClass", "disabled", "placeholder", "value", "keyup", "touchend"], ["input", ""], [1, "search-bar-buttons"], ["mat-icon-button", "", 3, "color", "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", 3, "color", 4, "ngIf"], [3, "searchTypes", "searchType", "searchTypeChange", 4, "ngIf"], [3, "pointerSummaryEnabled", "searchResultsGeometryEnabled", "pointerSummaryStatus", "searchResultsGeometryStatus", "searchSourceChange", 4, "ngIf"], ["mat-icon-button", "", 3, "color", "matTooltip", "click"], ["svgIcon", "close"], ["mat-icon-button", "", 3, "color"], ["svgIcon", "magnify"], [3, "searchTypes", "searchType", "searchTypeChange"], [3, "pointerSummaryEnabled", "searchResultsGeometryEnabled", "pointerSummaryStatus", "searchResultsGeometryStatus", "searchSourceChange"]], template: function SearchBarComponent_Template(rf, ctx) {
40528
+ }, inputs: { searchTypes: "searchTypes", searchType: "searchType", term: "term", disabled: "disabled", pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", reverseSearchCoordsFormatEnabled: "reverseSearchCoordsFormatEnabled", floatLabel: "floatLabel", appearance: "appearance", placeholder: "placeholder", label: "label", color: "color", termSplitter: "termSplitter", debounce: "debounce", minLength: "minLength", searchSelector: "searchSelector", searchSettings: "searchSettings", forceNA: "forceNA", store: "store" }, outputs: { pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus", reverseSearchCoordsFormatStatus: "reverseSearchCoordsFormatStatus", searchTermChange: "searchTermChange", search: "search", searchTypeChange: "searchTypeChange", clearFeature: "clearFeature", searchSettingsChange: "searchSettingsChange" }, decls: 16, vars: 28, consts: [[1, "igo-search-bar-container", 3, "ngClass"], [3, "floatLabel", "appearance"], [4, "ngIf"], ["matInput", "", "autocomplete", "off", 3, "ngClass", "disabled", "placeholder", "value", "keyup", "touchend"], ["input", ""], [1, "search-bar-buttons"], ["mat-icon-button", "", 3, "color", "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", 3, "color", 4, "ngIf"], [3, "searchTypes", "searchType", "searchTypeChange", 4, "ngIf"], [3, "pointerSummaryEnabled", "searchResultsGeometryEnabled", "reverseSearchCoordsFormatEnabled", "pointerSummaryStatus", "searchResultsGeometryStatus", "reverseSearchCoordsFormatStatus", "searchSourceChange", 4, "ngIf"], ["mat-icon-button", "", 3, "color", "matTooltip", "click"], ["svgIcon", "close"], ["mat-icon-button", "", 3, "color"], ["svgIcon", "magnify"], [3, "searchTypes", "searchType", "searchTypeChange"], [3, "pointerSummaryEnabled", "searchResultsGeometryEnabled", "reverseSearchCoordsFormatEnabled", "pointerSummaryStatus", "searchResultsGeometryStatus", "reverseSearchCoordsFormatStatus", "searchSourceChange"]], template: function SearchBarComponent_Template(rf, ctx) {
40210
40529
  if (rf & 1) {
40211
40530
  i0.ɵɵelementStart(0, "div", 0);
40212
40531
  i0.ɵɵpipe(1, "async");
@@ -40224,7 +40543,7 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
40224
40543
  i0.ɵɵpipe(12, "async");
40225
40544
  i0.ɵɵtemplate(13, SearchBarComponent_button_13_Template, 2, 1, "button", 7);
40226
40545
  i0.ɵɵtemplate(14, SearchBarComponent_igo_search_selector_14_Template, 2, 4, "igo-search-selector", 8);
40227
- i0.ɵɵtemplate(15, SearchBarComponent_igo_search_settings_15_Template, 1, 2, "igo-search-settings", 9);
40546
+ i0.ɵɵtemplate(15, SearchBarComponent_igo_search_settings_15_Template, 1, 3, "igo-search-settings", 9);
40228
40547
  i0.ɵɵelementEnd()();
40229
40548
  }
40230
40549
  if (rf & 2) {
@@ -40244,11 +40563,11 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
40244
40563
  i0.ɵɵadvance(1);
40245
40564
  i0.ɵɵproperty("ngIf", ctx.searchSettings);
40246
40565
  }
40247
- }, dependencies: [i1$1.NgClass, i1$1.NgIf, i4.MatTooltip, i2.MatIcon, i3.MatButton, i13.MatFormField, i13.MatLabel, i14.MatInput, SearchSelectorComponent, SearchSettingsComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: ["[_nghost-%COMP%] .mat-form-field{padding:0 5px}[_nghost-%COMP%] .mat-form-field-wrapper{margin-bottom:-1.5em}[_nghost-%COMP%] span.mat-form-field-label-wrapper{top:-20px}[_nghost-%COMP%] div.mat-form-field-infix{left:5px;right:5px;padding:0 0 12px!important}[_nghost-%COMP%] div.mat-form-field-underline{display:none}.igo-search-bar-container[_ngcontent-%COMP%]{position:relative;width:100%;display:inline-flex;overflow:hidden}.igo-search-bar-container[_ngcontent-%COMP%] > mat-form-field[_ngcontent-%COMP%]{width:calc(100% - 80px)}.igo-search-bar-container.empty[_ngcontent-%COMP%] > mat-form-field[_ngcontent-%COMP%]{width:calc(100% - 40px)}.search-bar-buttons[_ngcontent-%COMP%]{position:relative;right:0px;display:inline-flex;top:0}.search-bar-buttons[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:nth-child(2):before{content:\"\";left:0px;top:5px;border-right:1px solid #ddd;height:28px}igo-search-selector[_ngcontent-%COMP%]{background-color:#fff;top:0;border-radius:0}igo-search-settings[_ngcontent-%COMP%]{background-color:#fff;top:0;border-radius:0}"], changeDetection: 0 });
40566
+ }, dependencies: [i1.NgClass, i1.NgIf, i4.MatTooltip, i2.MatIcon, i3$1.MatButton, i13.MatFormField, i13.MatLabel, i14.MatInput, SearchSelectorComponent, SearchSettingsComponent, i1.AsyncPipe, i7.TranslatePipe], styles: ["[_nghost-%COMP%] .mat-form-field{padding:0 5px}[_nghost-%COMP%] .mat-form-field-wrapper{margin-bottom:-1.5em}[_nghost-%COMP%] span.mat-form-field-label-wrapper{top:-20px}[_nghost-%COMP%] div.mat-form-field-infix{left:5px;right:5px;padding:0 0 12px!important}[_nghost-%COMP%] div.mat-form-field-underline{display:none}.igo-search-bar-container[_ngcontent-%COMP%]{position:relative;width:100%;display:inline-flex;overflow:hidden}.igo-search-bar-container[_ngcontent-%COMP%] > mat-form-field[_ngcontent-%COMP%]{width:calc(100% - 80px)}.igo-search-bar-container.empty[_ngcontent-%COMP%] > mat-form-field[_ngcontent-%COMP%]{width:calc(100% - 40px)}.search-bar-buttons[_ngcontent-%COMP%]{position:relative;right:0px;display:inline-flex;top:0}.search-bar-buttons[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:nth-child(2):before{content:\"\";left:0px;top:5px;border-right:1px solid #ddd;height:28px}igo-search-selector[_ngcontent-%COMP%]{background-color:#fff;top:0;border-radius:0}igo-search-settings[_ngcontent-%COMP%]{background-color:#fff;top:0;border-radius:0}"], changeDetection: 0 });
40248
40567
  (function () {
40249
40568
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchBarComponent, [{
40250
40569
  type: Component,
40251
- args: [{ selector: 'igo-search-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-bar-container\" [ngClass]=\"{empty: empty$ | async}\">\n <mat-form-field [floatLabel]=\"floatLabel\" [appearance]=\"appearance\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input\n #input\n matInput\n autocomplete=\"off\"\n [ngClass]=\"{'hasSearchIcon': showSearchButton}\"\n [disabled]=\"disabled$ | async\"\n [placeholder]=\"placeholder ? placeholder : (placeholder$ | async) ? (placeholder$.value | translate) : undefined\"\n [value]=\"term$ | async\"\n (keyup)=\"onKeyup($event)\"\n (touchend)=\"onKeyup($event)\">\n </mat-form-field>\n\n <div class=\"search-bar-buttons\">\n <button *ngIf=\"(empty$ | async)===false\"\n mat-icon-button\n [color]=\"color\"\n (click)=\"onClearButtonClick()\"\n [matTooltip]=\"'igo.geo.search.clearSearch' | translate\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n \n <button *ngIf=\"showSearchButton\"\n mat-icon-button\n [color]=\"color\">\n <mat-icon svgIcon=\"magnify\"></mat-icon>\n </button>\n\n <igo-search-selector\n *ngIf=\"searchSelector\"\n [searchTypes]=\"searchTypes\"\n [searchType]=\"searchType$ | async\"\n (searchTypeChange)=\"onSearchTypeChange($event)\">\n </igo-search-selector>\n\n <igo-search-settings\n *ngIf=\"searchSettings\"\n [pointerSummaryEnabled]=\"pointerSummaryEnabled\"\n (pointerSummaryStatus)=\"pointerSummaryStatus.emit($event)\"\n [searchResultsGeometryEnabled]=\"searchResultsGeometryEnabled\"\n (searchResultsGeometryStatus)=\"searchResultsGeometryStatus.emit($event)\"\n (searchSourceChange)=\"onSearchSettingsChange()\">\n </igo-search-settings>\n </div>\n</div>\n", styles: [":host ::ng-deep .mat-form-field{padding:0 5px}:host ::ng-deep .mat-form-field-wrapper{margin-bottom:-1.5em}:host ::ng-deep span.mat-form-field-label-wrapper{top:-20px}:host ::ng-deep div.mat-form-field-infix{left:5px;right:5px;padding:0 0 12px!important}:host ::ng-deep div.mat-form-field-underline{display:none}.igo-search-bar-container{position:relative;width:100%;display:inline-flex;overflow:hidden}.igo-search-bar-container>mat-form-field{width:calc(100% - 80px)}.igo-search-bar-container.empty>mat-form-field{width:calc(100% - 40px)}.search-bar-buttons{position:relative;right:0px;display:inline-flex;top:0}.search-bar-buttons>button:nth-child(2):before{content:\"\";left:0px;top:5px;border-right:1px solid #ddd;height:28px}igo-search-selector{background-color:#fff;top:0;border-radius:0}igo-search-settings{background-color:#fff;top:0;border-radius:0}\n"] }]
40570
+ args: [{ selector: 'igo-search-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-bar-container\" [ngClass]=\"{empty: empty$ | async}\">\n <mat-form-field [floatLabel]=\"floatLabel\" [appearance]=\"appearance\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input\n #input\n matInput\n autocomplete=\"off\"\n [ngClass]=\"{'hasSearchIcon': showSearchButton}\"\n [disabled]=\"disabled$ | async\"\n [placeholder]=\"placeholder ? placeholder : (placeholder$ | async) ? (placeholder$.value | translate) : undefined\"\n [value]=\"term$ | async\"\n (keyup)=\"onKeyup($event)\"\n (touchend)=\"onKeyup($event)\">\n </mat-form-field>\n\n <div class=\"search-bar-buttons\">\n <button *ngIf=\"(empty$ | async)===false\"\n mat-icon-button\n [color]=\"color\"\n (click)=\"onClearButtonClick()\"\n [matTooltip]=\"'igo.geo.search.clearSearch' | translate\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n \n <button *ngIf=\"showSearchButton\"\n mat-icon-button\n [color]=\"color\">\n <mat-icon svgIcon=\"magnify\"></mat-icon>\n </button>\n\n <igo-search-selector\n *ngIf=\"searchSelector\"\n [searchTypes]=\"searchTypes\"\n [searchType]=\"searchType$ | async\"\n (searchTypeChange)=\"onSearchTypeChange($event)\">\n </igo-search-selector>\n\n <igo-search-settings\n *ngIf=\"searchSettings\"\n [pointerSummaryEnabled]=\"pointerSummaryEnabled\"\n (pointerSummaryStatus)=\"pointerSummaryStatus.emit($event)\"\n [searchResultsGeometryEnabled]=\"searchResultsGeometryEnabled\"\n (searchResultsGeometryStatus)=\"searchResultsGeometryStatus.emit($event)\"\n [reverseSearchCoordsFormatEnabled]=\"reverseSearchCoordsFormatEnabled\"\n (reverseSearchCoordsFormatStatus)=\"reverseSearchCoordsFormatStatus.emit($event)\"\n (searchSourceChange)=\"onSearchSettingsChange()\">\n </igo-search-settings>\n </div>\n</div>\n", styles: [":host ::ng-deep .mat-form-field{padding:0 5px}:host ::ng-deep .mat-form-field-wrapper{margin-bottom:-1.5em}:host ::ng-deep span.mat-form-field-label-wrapper{top:-20px}:host ::ng-deep div.mat-form-field-infix{left:5px;right:5px;padding:0 0 12px!important}:host ::ng-deep div.mat-form-field-underline{display:none}.igo-search-bar-container{position:relative;width:100%;display:inline-flex;overflow:hidden}.igo-search-bar-container>mat-form-field{width:calc(100% - 80px)}.igo-search-bar-container.empty>mat-form-field{width:calc(100% - 40px)}.search-bar-buttons{position:relative;right:0px;display:inline-flex;top:0}.search-bar-buttons>button:nth-child(2):before{content:\"\";left:0px;top:5px;border-right:1px solid #ddd;height:28px}igo-search-selector{background-color:#fff;top:0;border-radius:0}igo-search-settings{background-color:#fff;top:0;border-radius:0}\n"] }]
40252
40571
  }], function () { return [{ type: i2$1.ConfigService }, { type: SearchService }, { type: SearchSourceService }]; }, { searchTypes: [{
40253
40572
  type: Input
40254
40573
  }], searchType: [{
@@ -40257,6 +40576,8 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
40257
40576
  type: Output
40258
40577
  }], searchResultsGeometryStatus: [{
40259
40578
  type: Output
40579
+ }], reverseSearchCoordsFormatStatus: [{
40580
+ type: Output
40260
40581
  }], term: [{
40261
40582
  type: Input
40262
40583
  }], disabled: [{
@@ -40265,6 +40586,8 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
40265
40586
  type: Input
40266
40587
  }], searchResultsGeometryEnabled: [{
40267
40588
  type: Input
40589
+ }], reverseSearchCoordsFormatEnabled: [{
40590
+ type: Input
40268
40591
  }], floatLabel: [{
40269
40592
  type: Input
40270
40593
  }], appearance: [{
@@ -40513,12 +40836,12 @@ SearchResultsItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
40513
40836
  i0.ɵɵadvance(1);
40514
40837
  i0.ɵɵproperty("ngIf", ctx.withZoomButton);
40515
40838
  }
40516
- }, dependencies: [i1$1.NgIf, i4.MatTooltip, i2.MatIcon, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i3.MatButton, i5$1.StopPropagationDirective], styles: ["[_nghost-%COMP%] small{color:#8c8c8c} .search-result-tooltip{white-space:pre-line}"], changeDetection: 0 });
40839
+ }, dependencies: [i1.NgIf, i4.MatTooltip, i2.MatIcon, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i3$1.MatButton, i5$1.StopPropagationDirective], styles: ["[_nghost-%COMP%] small{color:#8c8c8c} .search-result-tooltip{white-space:pre-line}"], changeDetection: 0 });
40517
40840
  (function () {
40518
40841
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultsItemComponent, [{
40519
40842
  type: Component,
40520
40843
  args: [{ selector: 'igo-search-results-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item>\n <mat-icon *ngIf=\"icon\" mat-list-avatar svgIcon=\"{{showIcons ? icon : 'blank'}}\"></mat-icon>\n\n <h4 matLine *ngIf=\"titleHtml\" [innerHtml]=\"titleHtml\" matTooltipShowDelay=\"500\" [matTooltip]=\"tooltipHtml\" matTooltipClass=\"search-result-tooltip\"></h4>\n <h4 matLine *ngIf=\"!titleHtml\" matTooltipShowDelay=\"500\" [matTooltip]=\"title\">{{title}}</h4>\n\n <button *ngIf=\"withZoomButton\"\n igoStopPropagation\n mat-icon-button\n (click)=\"onZoomHandler()\">\n <mat-icon svgIcon=\"magnify\"></mat-icon>\n </button>\n\n <ng-content\n select=[igoSearchItemToolbar]>\n </ng-content>\n\n</mat-list-item>\n", styles: [":host ::ng-deep small{color:#8c8c8c}::ng-deep .search-result-tooltip{white-space:pre-line}\n"] }]
40521
- }], function () { return []; }, { result: [{
40844
+ }], null, { result: [{
40522
40845
  type: Input
40523
40846
  }], map: [{
40524
40847
  type: Input
@@ -40852,7 +41175,7 @@ SearchResultsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sear
40852
41175
  i0.ɵɵadvance(1);
40853
41176
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 2, ctx.results$));
40854
41177
  }
40855
- }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i1$1.NgTemplateOutlet, i5$1.CollapsibleComponent, i5$1.ListItemDirective, i5$1.ListComponent, SearchResultsItemComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".moreResults[_ngcontent-%COMP%]{cursor:pointer;color:#00f;float:right;margin-right:10px;margin-top:5px}igo-list[_ngcontent-%COMP%] mat-list{height:100%}"], changeDetection: 0 });
41178
+ }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i5$1.CollapsibleComponent, i5$1.ListItemDirective, i5$1.ListComponent, SearchResultsItemComponent, i1.AsyncPipe, i7.TranslatePipe], styles: [".moreResults[_ngcontent-%COMP%]{cursor:pointer;color:#00f;float:right;margin-right:10px;margin-top:5px}igo-list[_ngcontent-%COMP%] mat-list{height:100%}"], changeDetection: 0 });
40856
41179
  (function () {
40857
41180
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultsComponent, [{
40858
41181
  type: Component,
@@ -40891,35 +41214,173 @@ SearchResultsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sear
40891
41214
  }] });
40892
41215
  })();
40893
41216
 
41217
+ function SaveFeatureDialogComponent_mat_option_13_Template(rf, ctx) {
41218
+ if (rf & 1) {
41219
+ i0.ɵɵelementStart(0, "mat-option", 14)(1, "p", 15);
41220
+ i0.ɵɵtext(2);
41221
+ i0.ɵɵelementEnd()();
41222
+ }
41223
+ if (rf & 2) {
41224
+ const layer_r2 = ctx.$implicit;
41225
+ i0.ɵɵproperty("value", layer_r2);
41226
+ i0.ɵɵadvance(2);
41227
+ i0.ɵɵtextInterpolate(layer_r2.title);
41228
+ }
41229
+ }
41230
+ class SaveFeatureDialogComponent {
41231
+ constructor(formBuilder, languageService, dialogRef, data) {
41232
+ this.formBuilder = formBuilder;
41233
+ this.languageService = languageService;
41234
+ this.dialogRef = dialogRef;
41235
+ this.data = data;
41236
+ this.layers = [];
41237
+ this.form = this.formBuilder.group({
41238
+ layerName: ['', [Validators.required]],
41239
+ });
41240
+ }
41241
+ ngOnInit() {
41242
+ this.feature = this.data.feature;
41243
+ this.layers = this.data.layers;
41244
+ this.filteredLayers = this.form.controls['layerName'].valueChanges.pipe(startWith(''), map(val => this.filter(val)));
41245
+ }
41246
+ filter(val) {
41247
+ if (typeof val !== 'string') {
41248
+ return;
41249
+ }
41250
+ return this.layers.map(l => l).filter(layer => { var _a; return (_a = layer === null || layer === void 0 ? void 0 : layer.title) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(val.toLowerCase()); });
41251
+ }
41252
+ displayFn(layer) {
41253
+ return layer && layer.title ? layer.title : '';
41254
+ }
41255
+ save() {
41256
+ const data = { layer: this.form.value.layerName, feature: this.feature };
41257
+ this.dialogRef.close(data);
41258
+ }
41259
+ cancel() {
41260
+ this.dialogRef.close();
41261
+ }
41262
+ }
41263
+ SaveFeatureDialogComponent.ɵfac = function SaveFeatureDialogComponent_Factory(t) { return new (t || SaveFeatureDialogComponent)(i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA, 8)); };
41264
+ SaveFeatureDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SaveFeatureDialogComponent, selectors: [["igo-save-feature-dialog"]], decls: 23, vars: 21, consts: [["mat-dialog-title", "", 1, "mat-typography"], ["mat-dialog-content", "", 1, "mat-typography"], [1, "igo-form", 3, "formGroup"], [3, "navigation", "selection"], ["igoListItem", "", "color", "accent", "showIcons", "true", 3, "result"], [1, "igo-input-container"], ["type", "text", "matInput", "", "formControlName", "layerName", 3, "placeholder", "matAutocomplete"], [3, "displayWith"], ["auto", "matAutocomplete"], [3, "value", 4, "ngFor", "ngForOf"], ["mat-dialog-actions", "", 2, "justify-content", "center"], [1, "igo-form-button-group", "create-layer-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "click"], ["id", "createLayerBtnDialog", "mat-raised-button", "", "type", "button", "color", "primary", 3, "click"], [3, "value"], ["mat-line", ""]], template: function SaveFeatureDialogComponent_Template(rf, ctx) {
41265
+ if (rf & 1) {
41266
+ i0.ɵɵelementStart(0, "h1", 0);
41267
+ i0.ɵɵtext(1);
41268
+ i0.ɵɵpipe(2, "translate");
41269
+ i0.ɵɵelementEnd();
41270
+ i0.ɵɵelementStart(3, "div", 1)(4, "form", 2)(5, "igo-list", 3);
41271
+ i0.ɵɵelement(6, "igo-search-results-item", 4);
41272
+ i0.ɵɵelementEnd();
41273
+ i0.ɵɵelementStart(7, "div", 5)(8, "mat-form-field");
41274
+ i0.ɵɵelement(9, "input", 6);
41275
+ i0.ɵɵpipe(10, "translate");
41276
+ i0.ɵɵelementStart(11, "mat-autocomplete", 7, 8);
41277
+ i0.ɵɵtemplate(13, SaveFeatureDialogComponent_mat_option_13_Template, 3, 2, "mat-option", 9);
41278
+ i0.ɵɵpipe(14, "async");
41279
+ i0.ɵɵelementEnd()()()()();
41280
+ i0.ɵɵelementStart(15, "div", 10)(16, "div", 11)(17, "button", 12);
41281
+ i0.ɵɵlistener("click", function SaveFeatureDialogComponent_Template_button_click_17_listener() { return ctx.cancel(); });
41282
+ i0.ɵɵtext(18);
41283
+ i0.ɵɵpipe(19, "translate");
41284
+ i0.ɵɵelementEnd();
41285
+ i0.ɵɵelementStart(20, "button", 13);
41286
+ i0.ɵɵlistener("click", function SaveFeatureDialogComponent_Template_button_click_20_listener() { return ctx.save(); });
41287
+ i0.ɵɵtext(21);
41288
+ i0.ɵɵpipe(22, "translate");
41289
+ i0.ɵɵelementEnd()()();
41290
+ }
41291
+ if (rf & 2) {
41292
+ const _r0 = i0.ɵɵreference(12);
41293
+ i0.ɵɵadvance(1);
41294
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 11, "igo.geo.layer.saveFeatureInLayer"));
41295
+ i0.ɵɵadvance(3);
41296
+ i0.ɵɵproperty("formGroup", ctx.form);
41297
+ i0.ɵɵadvance(1);
41298
+ i0.ɵɵproperty("navigation", false)("selection", false);
41299
+ i0.ɵɵadvance(1);
41300
+ i0.ɵɵproperty("result", ctx.feature);
41301
+ i0.ɵɵadvance(3);
41302
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(10, 13, "igo.geo.layer.chooseOrSet"));
41303
+ i0.ɵɵproperty("matAutocomplete", _r0);
41304
+ i0.ɵɵadvance(2);
41305
+ i0.ɵɵproperty("displayWith", ctx.displayFn);
41306
+ i0.ɵɵadvance(2);
41307
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(14, 15, ctx.filteredLayers));
41308
+ i0.ɵɵadvance(5);
41309
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(19, 17, "igo.geo.layer.cancelBtn"), " ");
41310
+ i0.ɵɵadvance(3);
41311
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 19, "igo.geo.layer.saveBtn"), " ");
41312
+ }
41313
+ }, dependencies: [i1.NgForOf, i9.MatLine, i3$1.MatButton, i3.MatDialogTitle, i3.MatDialogContent, i3.MatDialogActions, i5$1.ListItemDirective, i5$1.ListComponent, i13.MatFormField, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i14.MatInput, i9.MatOption, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, SearchResultsItemComponent, i1.AsyncPipe, i7.TranslatePipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}.create-layer-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}.igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center}button[_ngcontent-%COMP%]{cursor:pointer}button#createLayerBtnDialog[disabled=true][_ngcontent-%COMP%]{cursor:default;background-color:#0000001f;color:#00000042}.error[_ngcontent-%COMP%]{color:red}"] });
41314
+ (function () {
41315
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SaveFeatureDialogComponent, [{
41316
+ type: Component,
41317
+ args: [{ selector: 'igo-save-feature-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{'igo.geo.layer.saveFeatureInLayer' | translate}}</h1>\n\n<div mat-dialog-content class=\"mat-typography\">\n <form class=\"igo-form\" [formGroup]=\"form\">\n <igo-list [navigation]=\"false\" [selection]=\"false\">\n <igo-search-results-item\n igoListItem\n color=\"accent\"\n [result]=\"feature\"\n showIcons=\"true\">\n </igo-search-results-item>\n </igo-list>\n \n <div class=\"igo-input-container\">\n <mat-form-field>\n <input type=\"text\"\n placeholder=\"{{'igo.geo.layer.chooseOrSet' | translate}}\"\n matInput\n [matAutocomplete]=\"auto\"\n formControlName=\"layerName\">\n <mat-autocomplete [displayWith]=\"displayFn\" #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let layer of filteredLayers | async\" [value]=\"layer\">\n <p mat-line>{{layer.title}}</p>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </form>\n</div>\n\n<div mat-dialog-actions style=\"justify-content: center\">\n <div class=\"igo-form-button-group create-layer-button-top-padding\">\n <button\n mat-raised-button\n type=\"button\"\n (click)=\"cancel()\">\n {{'igo.geo.layer.cancelBtn' | translate}}\n </button>\n <button\n id=\"createLayerBtnDialog\"\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n (click)=\"save()\">\n {{'igo.geo.layer.saveBtn' | translate}}\n </button>\n </div>\n</div>", styles: ["mat-form-field{width:100%}.create-layer-button-top-padding{padding-top:25px}.igo-form{padding:10px 5px 5px}.igo-form-button-group{text-align:center}button{cursor:pointer}button#createLayerBtnDialog[disabled=true]{cursor:default;background-color:#0000001f;color:#00000042}.error{color:red}\n"] }]
41318
+ }], function () {
41319
+ return [{ type: i2$2.UntypedFormBuilder }, { type: i2$1.LanguageService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
41320
+ type: Optional
41321
+ }, {
41322
+ type: Inject,
41323
+ args: [MAT_DIALOG_DATA]
41324
+ }] }];
41325
+ }, null);
41326
+ })();
41327
+
40894
41328
  function SearchResultAddButtonComponent_button_0_Template(rf, ctx) {
40895
41329
  if (rf & 1) {
40896
- const _r2 = i0.ɵɵgetCurrentView();
40897
- i0.ɵɵelementStart(0, "button", 1);
40898
- i0.ɵɵlistener("mouseenter", function SearchResultAddButtonComponent_button_0_Template_button_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMouseEvent($event)); })("mouseleave", function SearchResultAddButtonComponent_button_0_Template_button_mouseleave_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onMouseEvent($event)); })("click", function SearchResultAddButtonComponent_button_0_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onToggleClick($event)); });
41330
+ const _r3 = i0.ɵɵgetCurrentView();
41331
+ i0.ɵɵelementStart(0, "button", 2);
41332
+ i0.ɵɵlistener("mouseenter", function SearchResultAddButtonComponent_button_0_Template_button_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onMouseEvent($event)); })("mouseleave", function SearchResultAddButtonComponent_button_0_Template_button_mouseleave_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onMouseEvent($event)); })("click", function SearchResultAddButtonComponent_button_0_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onToggleClick($event)); });
40899
41333
  i0.ɵɵpipe(1, "translate");
40900
41334
  i0.ɵɵpipe(2, "async");
40901
- i0.ɵɵpipe(3, "async");
40902
- i0.ɵɵelement(4, "mat-icon", 2);
41335
+ i0.ɵɵelement(3, "mat-icon", 3);
41336
+ i0.ɵɵpipe(4, "async");
40903
41337
  i0.ɵɵpipe(5, "async");
40904
41338
  i0.ɵɵpipe(6, "async");
41339
+ i0.ɵɵpipe(7, "async");
41340
+ i0.ɵɵpipe(8, "async");
41341
+ i0.ɵɵpipe(9, "async");
41342
+ i0.ɵɵpipe(10, "async");
40905
41343
  i0.ɵɵelementEnd();
40906
41344
  }
40907
41345
  if (rf & 2) {
40908
41346
  const ctx_r0 = i0.ɵɵnextContext();
40909
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 4, i0.ɵɵpipeBind1(2, 6, ctx_r0.tooltip$)))("color", i0.ɵɵpipeBind1(3, 8, ctx_r0.isPreview$) ? "" : ctx_r0.added ? "warn" : "");
40910
- i0.ɵɵadvance(4);
40911
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(5, 10, ctx_r0.inRange$))("svgIcon", i0.ɵɵpipeBind1(6, 12, ctx_r0.isPreview$) ? "plus" : ctx_r0.added ? "delete" : "plus");
41347
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 6, ctx_r0.computeTooltip()))("color", i0.ɵɵpipeBind1(2, 8, ctx_r0.isPreview$) ? "" : ctx_r0.added ? "warn" : "");
41348
+ i0.ɵɵadvance(3);
41349
+ i0.ɵɵproperty("igoMatBadgeIcon", ctx_r0.getBadgeIcon())("matBadgeHidden", i0.ɵɵpipeBind1(4, 10, ctx_r0.inRange$) && i0.ɵɵpipeBind1(5, 12, ctx_r0.isVisible$) === true || i0.ɵɵpipeBind1(6, 14, ctx_r0.inRange$) && !ctx_r0.added || i0.ɵɵpipeBind1(7, 16, ctx_r0.inRange$) && i0.ɵɵpipeBind1(8, 18, ctx_r0.isPreview$))("matBadgeDisabled", i0.ɵɵpipeBind1(9, 20, ctx_r0.inRange$) === false)("svgIcon", i0.ɵɵpipeBind1(10, 22, ctx_r0.isPreview$) ? "plus" : ctx_r0.added ? "delete" : "plus");
41350
+ }
41351
+ }
41352
+ function SearchResultAddButtonComponent_button_1_Template(rf, ctx) {
41353
+ if (rf & 1) {
41354
+ const _r7 = i0.ɵɵgetCurrentView();
41355
+ i0.ɵɵelementStart(0, "button", 4);
41356
+ i0.ɵɵlistener("click", function SearchResultAddButtonComponent_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.addFeatureToLayer()); });
41357
+ i0.ɵɵpipe(1, "translate");
41358
+ i0.ɵɵpipe(2, "async");
41359
+ i0.ɵɵelement(3, "mat-icon", 5);
41360
+ i0.ɵɵpipe(4, "async");
41361
+ i0.ɵɵelementEnd();
41362
+ }
41363
+ if (rf & 2) {
41364
+ const ctx_r1 = i0.ɵɵnextContext();
41365
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, i0.ɵɵpipeBind1(2, 4, ctx_r1.addFeatureToLayerTooltip$)));
41366
+ i0.ɵɵadvance(3);
41367
+ i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(4, 6, ctx_r1.inRange$));
40912
41368
  }
40913
41369
  }
40914
41370
  class SearchResultAddButtonComponent {
40915
- constructor(layerService) {
41371
+ constructor(layerService, dialog, dataSourceService) {
40916
41372
  this.layerService = layerService;
41373
+ this.dialog = dialog;
41374
+ this.dataSourceService = dataSourceService;
40917
41375
  this.tooltip$ = new BehaviorSubject('igo.geo.catalog.layer.addToMap');
41376
+ this.addFeatureToLayerTooltip$ = new BehaviorSubject('igo.geo.search.addToLayer');
40918
41377
  this.inRange$ = new BehaviorSubject(true);
41378
+ this.isVisible$ = new BehaviorSubject(false);
40919
41379
  this.isPreview$ = new BehaviorSubject(false);
40920
41380
  this.layersSubcriptions = [];
40921
41381
  this.mouseInsideAdd = false;
40922
41382
  this._color = 'primary';
41383
+ this.stores = [];
40923
41384
  }
40924
41385
  get color() {
40925
41386
  return this._color;
@@ -40927,6 +41388,9 @@ class SearchResultAddButtonComponent {
40927
41388
  set color(value) {
40928
41389
  this._color = value;
40929
41390
  }
41391
+ get allLayers() {
41392
+ return this.map.layers.filter((layer) => layer.id.includes('igo-search-layer'));
41393
+ }
40930
41394
  /**
40931
41395
  * @internal
40932
41396
  */
@@ -40935,13 +41399,17 @@ class SearchResultAddButtonComponent {
40935
41399
  this.added =
40936
41400
  this.map.layers.findIndex(lay => lay.id === this.layer.data.sourceOptions.id) !== -1;
40937
41401
  }
41402
+ this.layers$$ = this.map.layers$.subscribe(() => {
41403
+ this.isVisible();
41404
+ });
40938
41405
  this.resolution$$ = this.map.viewController.resolution$.subscribe(value => {
40939
41406
  this.isInResolutionsRange(value);
40940
- this.tooltip$.next(this.computeTooltip());
41407
+ this.isVisible();
40941
41408
  });
40942
41409
  }
40943
41410
  ngOnDestroy() {
40944
41411
  this.resolution$$.unsubscribe();
41412
+ this.layers$$.unsubscribe();
40945
41413
  }
40946
41414
  /**
40947
41415
  * On mouse event, mouseenter /mouseleave
@@ -41043,11 +41511,34 @@ class SearchResultAddButtonComponent {
41043
41511
  const maxResolution = this.layer.data.maxResolution || Infinity;
41044
41512
  this.inRange$.next(resolution >= minResolution && resolution <= maxResolution);
41045
41513
  }
41514
+ isVisible() {
41515
+ var _a, _b, _c;
41516
+ if ((_c = (_b = (_a = this.layer) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.sourceOptions) === null || _c === void 0 ? void 0 : _c.id) {
41517
+ const oLayer = this.map.getLayerById(this.layer.data.sourceOptions.id);
41518
+ oLayer ? this.isVisible$.next(oLayer.visible) : this.isVisible$.next(false);
41519
+ }
41520
+ }
41521
+ getBadgeIcon() {
41522
+ if (this.inRange$.value) {
41523
+ return this.isVisible$.value ? '' : 'eye-off';
41524
+ }
41525
+ else {
41526
+ return 'eye-off';
41527
+ }
41528
+ }
41046
41529
  computeTooltip() {
41047
41530
  if (this.added) {
41048
- return this.inRange$.value
41049
- ? 'igo.geo.catalog.layer.removeFromMap'
41050
- : 'igo.geo.catalog.layer.removeFromMapOutRange';
41531
+ if (this.isPreview$.value) {
41532
+ return 'igo.geo.catalog.layer.addToMap';
41533
+ }
41534
+ else if (this.inRange$.value) {
41535
+ return this.isVisible$.value
41536
+ ? 'igo.geo.catalog.layer.removeFromMap'
41537
+ : 'igo.geo.catalog.layer.removeFromMapNotVisible';
41538
+ }
41539
+ else {
41540
+ return 'igo.geo.catalog.layer.removeFromMapOutRange';
41541
+ }
41051
41542
  }
41052
41543
  else {
41053
41544
  return this.inRange$.value
@@ -41055,21 +41546,137 @@ class SearchResultAddButtonComponent {
41055
41546
  : 'igo.geo.catalog.layer.addToMapOutRange';
41056
41547
  }
41057
41548
  }
41549
+ addFeatureToLayer() {
41550
+ if (this.layer.meta.dataType !== 'Feature') {
41551
+ return;
41552
+ }
41553
+ const selectedFeature = this.layer;
41554
+ const dialogRef = this.dialog.open(SaveFeatureDialogComponent, {
41555
+ width: '700px',
41556
+ data: {
41557
+ feature: selectedFeature,
41558
+ layers: this.allLayers
41559
+ }
41560
+ });
41561
+ dialogRef.afterClosed().subscribe((data) => {
41562
+ if (data) {
41563
+ if (this.stores.length > 0) {
41564
+ this.stores.map((store) => {
41565
+ store.state.updateAll({ selected: false });
41566
+ (store === null || store === void 0 ? void 0 : store.layer).visible = false;
41567
+ return store;
41568
+ });
41569
+ }
41570
+ // check if is new layer
41571
+ if (typeof data.layer === 'string') {
41572
+ this.createLayer(data.layer, data.feature);
41573
+ }
41574
+ else {
41575
+ const activeStore = this.stores.find(store => store.layer.id === data.layer.id);
41576
+ activeStore.layer.visible = true;
41577
+ activeStore.layer.opacity = 1;
41578
+ this.addFeature(data.feature, activeStore);
41579
+ }
41580
+ }
41581
+ });
41582
+ }
41583
+ createLayer(layerTitle, selectedFeature) {
41584
+ const activeStore = new FeatureStore([], {
41585
+ map: this.map
41586
+ });
41587
+ // set layer id
41588
+ let layerCounterID = 0;
41589
+ for (const layer of this.allLayers) {
41590
+ let numberId = Number(layer.id.replace('igo-search-layer', ''));
41591
+ layerCounterID = Math.max(numberId, layerCounterID);
41592
+ }
41593
+ this.dataSourceService
41594
+ .createAsyncDataSource({
41595
+ type: 'vector',
41596
+ queryable: true
41597
+ })
41598
+ .pipe(take$1(1))
41599
+ .subscribe((dataSource) => {
41600
+ let searchLayer = new VectorLayer({
41601
+ isIgoInternalLayer: true,
41602
+ id: 'igo-search-layer' + ++layerCounterID,
41603
+ title: layerTitle,
41604
+ source: dataSource,
41605
+ style: createOverlayDefaultStyle({
41606
+ text: '',
41607
+ strokeWidth: 1,
41608
+ fillColor: 'rgba(255,255,255,0.4)',
41609
+ strokeColor: 'rgba(143,7,7,1)'
41610
+ }),
41611
+ showInLayerList: true,
41612
+ exportable: true,
41613
+ workspace: {
41614
+ enabled: true
41615
+ }
41616
+ });
41617
+ tryBindStoreLayer(activeStore, searchLayer);
41618
+ tryAddLoadingStrategy(activeStore, new FeatureStoreLoadingStrategy({
41619
+ motion: FeatureMotion.None
41620
+ }));
41621
+ tryAddSelectionStrategy(activeStore, new FeatureStoreSelectionStrategy({
41622
+ map: this.map,
41623
+ motion: FeatureMotion.None,
41624
+ many: true
41625
+ }));
41626
+ activeStore.layer.visible = true;
41627
+ activeStore.source.ol.on('removefeature', (event) => {
41628
+ const olGeometry = event.feature.getGeometry();
41629
+ this.clearLabelsOfOlGeometry(olGeometry);
41630
+ });
41631
+ this.addFeature(selectedFeature, activeStore);
41632
+ this.stores.push(activeStore);
41633
+ });
41634
+ }
41635
+ addFeature(feature, activeStore) {
41636
+ const newFeature = {
41637
+ type: feature.data.type,
41638
+ geometry: {
41639
+ coordinates: feature.data.geometry.coordinates,
41640
+ type: feature.data.geometry.type
41641
+ },
41642
+ projection: feature.data.projection,
41643
+ properties: feature.data.properties,
41644
+ meta: {
41645
+ id: feature.meta.id
41646
+ }
41647
+ };
41648
+ delete newFeature.properties.Route;
41649
+ activeStore.update(newFeature);
41650
+ activeStore.setLayerExtent();
41651
+ activeStore.layer.ol.getSource().refresh();
41652
+ }
41653
+ clearLabelsOfOlGeometry(olGeometry) {
41654
+ getTooltipsOfOlGeometry(olGeometry).forEach((olTooltip) => {
41655
+ if (olTooltip && olTooltip.getMap()) {
41656
+ this.map.ol.removeOverlay(olTooltip);
41657
+ }
41658
+ });
41659
+ }
41058
41660
  }
41059
- SearchResultAddButtonComponent.ɵfac = function SearchResultAddButtonComponent_Factory(t) { return new (t || SearchResultAddButtonComponent)(i0.ɵɵdirectiveInject(LayerService)); };
41060
- SearchResultAddButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultAddButtonComponent, selectors: [["igo-search-add-button"]], inputs: { layer: "layer", added: "added", map: "map", color: "color" }, decls: 1, vars: 1, consts: [["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click", 4, "ngIf"], ["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click"], ["matBadge", "icon", "igoMatBadgeIcon", "eye-off", "igoMatBadgeInverseColor", "true", "matBadgeDisabled", "true", "matBadgeSize", "small", "matBadgePosition", "after", 3, "matBadgeHidden", "svgIcon"]], template: function SearchResultAddButtonComponent_Template(rf, ctx) {
41661
+ SearchResultAddButtonComponent.ɵfac = function SearchResultAddButtonComponent_Factory(t) { return new (t || SearchResultAddButtonComponent)(i0.ɵɵdirectiveInject(LayerService), i0.ɵɵdirectiveInject(i3.MatDialog), i0.ɵɵdirectiveInject(DataSourceService)); };
41662
+ SearchResultAddButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultAddButtonComponent, selectors: [["igo-search-add-button"]], inputs: { layer: "layer", store: "store", added: "added", map: "map", color: "color", stores: "stores" }, decls: 2, vars: 2, consts: [["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click", 4, "ngIf"], ["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], ["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click"], ["matBadge", "icon", "igoMatBadgeColor", "rgba(0,0,0,0.87)", "igoMatBadgeBackgroundColor", "none", "igoMatBadgeInverseColor", "true", "matBadgeSize", "small", "matBadgePosition", "after", 3, "igoMatBadgeIcon", "matBadgeHidden", "matBadgeDisabled", "svgIcon"], ["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["matBadge", "icon", "igoMatBadgeIcon", "eye-off", "igoMatBadgeInverseColor", "true", "matBadgeDisabled", "true", "matBadgeSize", "small", "matBadgePosition", "after", "svgIcon", "file-plus-outline", 3, "matBadgeHidden"]], template: function SearchResultAddButtonComponent_Template(rf, ctx) {
41061
41663
  if (rf & 1) {
41062
- i0.ɵɵtemplate(0, SearchResultAddButtonComponent_button_0_Template, 7, 14, "button", 0);
41664
+ i0.ɵɵtemplate(0, SearchResultAddButtonComponent_button_0_Template, 11, 24, "button", 0);
41665
+ i0.ɵɵtemplate(1, SearchResultAddButtonComponent_button_1_Template, 5, 8, "button", 1);
41063
41666
  }
41064
41667
  if (rf & 2) {
41065
41668
  i0.ɵɵproperty("ngIf", ctx.layer.meta.dataType === "Layer");
41669
+ i0.ɵɵadvance(1);
41670
+ i0.ɵɵproperty("ngIf", ctx.layer.meta.dataType === "Feature");
41066
41671
  }
41067
- }, dependencies: [i1$1.NgIf, i7$1.MatBadge, i4.MatTooltip, i2.MatIcon, i3.MatButton, i5$1.StopPropagationDirective, i5$1.IgoBadgeIconDirective, i1$1.AsyncPipe, i7.TranslatePipe], changeDetection: 0 });
41672
+ }, dependencies: [i1.NgIf, i7$1.MatBadge, i4.MatTooltip, i2.MatIcon, i3$1.MatButton, i5$1.StopPropagationDirective, i5$1.IgoBadgeIconDirective, i1.AsyncPipe, i7.TranslatePipe], changeDetection: 0 });
41068
41673
  (function () {
41069
41674
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultAddButtonComponent, [{
41070
41675
  type: Component,
41071
- args: [{ selector: 'igo-search-add-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\nigoStopPropagation\n(mouseenter)=\"onMouseEvent($event)\" (mouseleave)=\"onMouseEvent($event)\"\n*ngIf=\"layer.meta.dataType === 'Layer'\"\nmat-icon-button\ntooltip-position=\"below\"\nmatTooltipShowDelay=\"500\"\n[matTooltip]=\"(tooltip$ | async) | translate\"\n[color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n(click)=\"onToggleClick($event)\">\n<mat-icon\n matBadge=\"icon\"\n igoMatBadgeIcon=\"eye-off\"\n igoMatBadgeInverseColor=\"true\"\n [matBadgeHidden]=\"(inRange$ | async)\"\n matBadgeDisabled=\"true\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\">\n</mat-icon>\n</button>\n" }]
41072
- }], function () { return [{ type: LayerService }]; }, { layer: [{
41676
+ args: [{ selector: 'igo-search-add-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\nigoStopPropagation\n(mouseenter)=\"onMouseEvent($event)\" (mouseleave)=\"onMouseEvent($event)\"\n*ngIf=\"layer.meta.dataType === 'Layer'\"\nmat-icon-button\ntooltip-position=\"below\"\nmatTooltipShowDelay=\"500\"\n[matTooltip]=\"computeTooltip() | translate\"\n[color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n(click)=\"onToggleClick($event)\">\n<mat-icon\n matBadge=\"icon\"\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\n igoMatBadgeBackgroundColor=\"none\"\n igoMatBadgeInverseColor=\"true\"\n [matBadgeHidden]=\"((inRange$ | async) && (isVisible$ | async) === true) || ((inRange$ | async) && !added) || ((inRange$ | async) && (isPreview$ | async))\"\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\">\n</mat-icon>\n</button>\n\n<button\nigoStopPropagation\n*ngIf=\"layer.meta.dataType === 'Feature'\"\nmat-icon-button\ntooltip-position=\"below\"\nmatTooltipShowDelay=\"500\"\n[matTooltip]=\"(addFeatureToLayerTooltip$ | async) | translate\"\n(click)=\"addFeatureToLayer()\">\n<mat-icon\n matBadge=\"icon\"\n igoMatBadgeIcon=\"eye-off\"\n igoMatBadgeInverseColor=\"true\"\n [matBadgeHidden]=\"(inRange$ | async)\"\n matBadgeDisabled=\"true\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n svgIcon=\"file-plus-outline\">\n</mat-icon>\n</button>\n" }]
41677
+ }], function () { return [{ type: LayerService }, { type: i3.MatDialog }, { type: DataSourceService }]; }, { layer: [{
41678
+ type: Input
41679
+ }], store: [{
41073
41680
  type: Input
41074
41681
  }], added: [{
41075
41682
  type: Input
@@ -41077,6 +41684,8 @@ SearchResultAddButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ ty
41077
41684
  type: Input
41078
41685
  }], color: [{
41079
41686
  type: Input
41687
+ }], stores: [{
41688
+ type: Input
41080
41689
  }] });
41081
41690
  })();
41082
41691
 
@@ -41093,12 +41702,18 @@ IgoSearchResultsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
41093
41702
  MatIconModule,
41094
41703
  MatListModule,
41095
41704
  MatButtonModule,
41705
+ MatDialogModule,
41096
41706
  IgoCollapsibleModule,
41097
41707
  IgoListModule,
41098
41708
  IgoStopPropagationModule,
41099
41709
  IgoLanguageModule,
41100
41710
  IgoMatBadgeIconModule,
41101
- IgoMetadataModule] });
41711
+ IgoMetadataModule,
41712
+ MatFormFieldModule,
41713
+ ReactiveFormsModule,
41714
+ MatInputModule,
41715
+ MatSelectModule,
41716
+ MatAutocompleteModule] });
41102
41717
  (function () {
41103
41718
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoSearchResultsModule, [{
41104
41719
  type: NgModule,
@@ -41110,12 +41725,18 @@ IgoSearchResultsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
41110
41725
  MatIconModule,
41111
41726
  MatListModule,
41112
41727
  MatButtonModule,
41728
+ MatDialogModule,
41113
41729
  IgoCollapsibleModule,
41114
41730
  IgoListModule,
41115
41731
  IgoStopPropagationModule,
41116
41732
  IgoLanguageModule,
41117
41733
  IgoMatBadgeIconModule,
41118
41734
  IgoMetadataModule,
41735
+ MatFormFieldModule,
41736
+ ReactiveFormsModule,
41737
+ MatInputModule,
41738
+ MatSelectModule,
41739
+ MatAutocompleteModule,
41119
41740
  ],
41120
41741
  exports: [
41121
41742
  SearchResultsComponent,
@@ -41124,7 +41745,8 @@ IgoSearchResultsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
41124
41745
  declarations: [
41125
41746
  SearchResultsComponent,
41126
41747
  SearchResultsItemComponent,
41127
- SearchResultAddButtonComponent
41748
+ SearchResultAddButtonComponent,
41749
+ SaveFeatureDialogComponent
41128
41750
  ]
41129
41751
  }]
41130
41752
  }], null, null);
@@ -41132,18 +41754,25 @@ IgoSearchResultsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
41132
41754
  (function () {
41133
41755
  (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoSearchResultsModule, { declarations: [SearchResultsComponent,
41134
41756
  SearchResultsItemComponent,
41135
- SearchResultAddButtonComponent], imports: [CommonModule,
41757
+ SearchResultAddButtonComponent,
41758
+ SaveFeatureDialogComponent], imports: [CommonModule,
41136
41759
  MatBadgeModule,
41137
41760
  MatTooltipModule,
41138
41761
  MatIconModule,
41139
41762
  MatListModule,
41140
41763
  MatButtonModule,
41764
+ MatDialogModule,
41141
41765
  IgoCollapsibleModule,
41142
41766
  IgoListModule,
41143
41767
  IgoStopPropagationModule,
41144
41768
  IgoLanguageModule,
41145
41769
  IgoMatBadgeIconModule,
41146
- IgoMetadataModule], exports: [SearchResultsComponent,
41770
+ IgoMetadataModule,
41771
+ MatFormFieldModule,
41772
+ ReactiveFormsModule,
41773
+ MatInputModule,
41774
+ MatSelectModule,
41775
+ MatAutocompleteModule], exports: [SearchResultsComponent,
41147
41776
  SearchResultAddButtonComponent] });
41148
41777
  })();
41149
41778
 
@@ -41604,7 +42233,7 @@ ToastComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToastCompone
41604
42233
  i0.ɵɵadvance(1);
41605
42234
  i0.ɵɵproperty("feature", ctx.feature);
41606
42235
  }
41607
- }, dependencies: [i1$1.NgIf, i2.MatIcon, i3.MatButton, i5$1.PanelComponent, i5$1.FlexibleComponent, FeatureDetailsComponent], styles: ["[_nghost-%COMP%]{position:absolute;bottom:0px;width:100%;max-height:calc(100% - 50px);background-color:#fff}igo-feature-details[_ngcontent-%COMP%] table{width:100%}"] });
42236
+ }, dependencies: [i1.NgIf, i2.MatIcon, i3$1.MatButton, i5$1.PanelComponent, i5$1.FlexibleComponent, FeatureDetailsComponent], styles: ["[_nghost-%COMP%]{position:absolute;bottom:0px;width:100%;max-height:calc(100% - 50px);background-color:#fff}igo-feature-details[_ngcontent-%COMP%] table{width:100%}"] });
41608
42237
  (function () {
41609
42238
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToastComponent, [{
41610
42239
  type: Component,
@@ -42198,7 +42827,7 @@ class ConfirmationPopupComponent {
42198
42827
  this.dialogRef.close(this.data.cancel);
42199
42828
  }
42200
42829
  }
42201
- ConfirmationPopupComponent.ɵfac = function ConfirmationPopupComponent_Factory(t) { return new (t || ConfirmationPopupComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
42830
+ ConfirmationPopupComponent.ɵfac = function ConfirmationPopupComponent_Factory(t) { return new (t || ConfirmationPopupComponent)(i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
42202
42831
  ConfirmationPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConfirmationPopupComponent, selectors: [["igo-confirmation-popup-component"]], decls: 8, vars: 2, consts: [["mat-dialog-content", ""], [1, "mat-typography"], ["mat-dialog-actions", ""], ["mat-raised-button", "", "color", "primary", 3, "click"], ["mat-raised-button", "", 3, "click"]], template: function ConfirmationPopupComponent_Template(rf, ctx) {
42203
42832
  if (rf & 1) {
42204
42833
  i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
@@ -42219,13 +42848,13 @@ ConfirmationPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
42219
42848
  i0.ɵɵadvance(5);
42220
42849
  i0.ɵɵtextInterpolate1("", ctx.languageService.translate.instant("igo.geo.workspace.cancel"), " ");
42221
42850
  }
42222
- }, dependencies: [i3.MatButton, i1.MatDialogContent, i1.MatDialogActions], styles: ["div.mat-dialog-actions[_ngcontent-%COMP%]{justify-content:center}"] });
42851
+ }, dependencies: [i3$1.MatButton, i3.MatDialogContent, i3.MatDialogActions], styles: ["div.mat-dialog-actions[_ngcontent-%COMP%]{justify-content:center}"] });
42223
42852
  (function () {
42224
42853
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfirmationPopupComponent, [{
42225
42854
  type: Component,
42226
42855
  args: [{ selector: 'igo-confirmation-popup-component', template: "<div mat-dialog-content>\n <p class=\"mat-typography\">{{data.type === 'add' ?\n languageService.translate.instant('igo.geo.workspace.addConfirmation') :\n languageService.translate.instant('igo.geo.workspace.deleteConfirmation')}}</p>\n</div>\n<div mat-dialog-actions>\n <button\n mat-raised-button\n color=\"primary\"\n (click)=\"confirmedAction()\">Ok\n </button>\n <button\n mat-raised-button\n (click)=\"cancelAction()\">{{languageService.translate.instant('igo.geo.workspace.cancel')}}\n </button>\n</div>", styles: ["div.mat-dialog-actions{justify-content:center}\n"] }]
42227
42856
  }], function () {
42228
- return [{ type: i1.MatDialogRef }, { type: i2$1.LanguageService }, { type: undefined, decorators: [{
42857
+ return [{ type: i3.MatDialogRef }, { type: i2$1.LanguageService }, { type: undefined, decorators: [{
42229
42858
  type: Inject,
42230
42859
  args: [MAT_DIALOG_DATA]
42231
42860
  }] }];
@@ -43121,7 +43750,7 @@ class EditionWorkspaceService {
43121
43750
  });
43122
43751
  }
43123
43752
  }
43124
- EditionWorkspaceService.ɵfac = function EditionWorkspaceService_Factory(t) { return new (t || EditionWorkspaceService)(i0.ɵɵinject(LayerService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject(i2$1.ConfigService), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i1.MatDialog), i0.ɵɵinject(StyleService), i0.ɵɵinject(i6.AuthInterceptor)); };
43753
+ EditionWorkspaceService.ɵfac = function EditionWorkspaceService_Factory(t) { return new (t || EditionWorkspaceService)(i0.ɵɵinject(LayerService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject(i2$1.ConfigService), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i3.MatDialog), i0.ɵɵinject(StyleService), i0.ɵɵinject(i6.AuthInterceptor)); };
43125
43754
  EditionWorkspaceService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EditionWorkspaceService, factory: EditionWorkspaceService.ɵfac, providedIn: 'root' });
43126
43755
  (function () {
43127
43756
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditionWorkspaceService, [{
@@ -43129,7 +43758,7 @@ EditionWorkspaceService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token:
43129
43758
  args: [{
43130
43759
  providedIn: 'root'
43131
43760
  }]
43132
- }], function () { return [{ type: LayerService }, { type: i2$1.StorageService }, { type: i2$1.ConfigService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }, { type: i1$2.HttpClient }, { type: i1.MatDialog }, { type: StyleService }, { type: i6.AuthInterceptor }]; }, null);
43761
+ }], function () { return [{ type: LayerService }, { type: i2$1.StorageService }, { type: i2$1.ConfigService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }, { type: i1$1.HttpClient }, { type: i3.MatDialog }, { type: StyleService }, { type: i6.AuthInterceptor }]; }, null);
43133
43762
  })();
43134
43763
  function getColumnKeyWithoutPropertiesTag(column) {
43135
43764
  if (column.includes('properties.')) {
@@ -43902,7 +44531,7 @@ class OsrmDirectionsSource extends DirectionsSource {
43902
44531
  }
43903
44532
  }
43904
44533
  OsrmDirectionsSource._name = 'OSRM Québec';
43905
- OsrmDirectionsSource.ɵfac = function OsrmDirectionsSource_Factory(t) { return new (t || OsrmDirectionsSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.ConfigService)); };
44534
+ OsrmDirectionsSource.ɵfac = function OsrmDirectionsSource_Factory(t) { return new (t || OsrmDirectionsSource)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.ConfigService)); };
43906
44535
  OsrmDirectionsSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: OsrmDirectionsSource, factory: OsrmDirectionsSource.ɵfac });
43907
44536
  __decorate([
43908
44537
  Cacheable({
@@ -43912,7 +44541,7 @@ __decorate([
43912
44541
  (function () {
43913
44542
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OsrmDirectionsSource, [{
43914
44543
  type: Injectable
43915
- }], function () { return [{ type: i1$2.HttpClient }, { type: i2$1.ConfigService }]; }, { route: [] });
44544
+ }], function () { return [{ type: i1$1.HttpClient }, { type: i2$1.ConfigService }]; }, { route: [] });
43916
44545
  })();
43917
44546
 
43918
44547
  function osrmDirectionsSourcesFactory(http, config) {
@@ -44154,7 +44783,7 @@ class NominatimSearchSource extends SearchSource {
44154
44783
  }
44155
44784
  NominatimSearchSource.id = 'nominatim';
44156
44785
  NominatimSearchSource.type = FEATURE;
44157
- NominatimSearchSource.ɵfac = function NominatimSearchSource_Factory(t) { return new (t || NominatimSearchSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject('options'), i0.ɵɵinject(i2$1.StorageService)); };
44786
+ NominatimSearchSource.ɵfac = function NominatimSearchSource_Factory(t) { return new (t || NominatimSearchSource)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject('options'), i0.ɵɵinject(i2$1.StorageService)); };
44158
44787
  NominatimSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NominatimSearchSource, factory: NominatimSearchSource.ɵfac });
44159
44788
  __decorate([
44160
44789
  Cacheable({
@@ -44165,7 +44794,7 @@ __decorate([
44165
44794
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NominatimSearchSource, [{
44166
44795
  type: Injectable
44167
44796
  }], function () {
44168
- return [{ type: i1$2.HttpClient }, { type: undefined, decorators: [{
44797
+ return [{ type: i1$1.HttpClient }, { type: undefined, decorators: [{
44169
44798
  type: Inject,
44170
44799
  args: ['options']
44171
44800
  }] }, { type: i2$1.StorageService }];
@@ -44433,7 +45062,7 @@ StoredQueriesSearchSource.propertiesBlacklist = [
44433
45062
  'coord_x',
44434
45063
  'coord_y'
44435
45064
  ];
44436
- StoredQueriesSearchSource.ɵfac = function StoredQueriesSearchSource_Factory(t) { return new (t || StoredQueriesSearchSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options')); };
45065
+ StoredQueriesSearchSource.ɵfac = function StoredQueriesSearchSource_Factory(t) { return new (t || StoredQueriesSearchSource)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options')); };
44437
45066
  StoredQueriesSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StoredQueriesSearchSource, factory: StoredQueriesSearchSource.ɵfac });
44438
45067
  __decorate([
44439
45068
  Cacheable({
@@ -44444,7 +45073,7 @@ __decorate([
44444
45073
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StoredQueriesSearchSource, [{
44445
45074
  type: Injectable
44446
45075
  }], function () {
44447
- return [{ type: i1$2.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
45076
+ return [{ type: i1$1.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
44448
45077
  type: Inject,
44449
45078
  args: ['options']
44450
45079
  }] }];
@@ -44593,7 +45222,7 @@ class StoredQueriesReverseSearchSource extends SearchSource {
44593
45222
  StoredQueriesReverseSearchSource.id = 'storedqueriesreverse';
44594
45223
  StoredQueriesReverseSearchSource.type = FEATURE;
44595
45224
  StoredQueriesReverseSearchSource.propertiesBlacklist = [];
44596
- StoredQueriesReverseSearchSource.ɵfac = function StoredQueriesReverseSearchSource_Factory(t) { return new (t || StoredQueriesReverseSearchSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options')); };
45225
+ StoredQueriesReverseSearchSource.ɵfac = function StoredQueriesReverseSearchSource_Factory(t) { return new (t || StoredQueriesReverseSearchSource)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options')); };
44597
45226
  StoredQueriesReverseSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StoredQueriesReverseSearchSource, factory: StoredQueriesReverseSearchSource.ɵfac });
44598
45227
  __decorate([
44599
45228
  Cacheable({
@@ -44604,7 +45233,7 @@ __decorate([
44604
45233
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StoredQueriesReverseSearchSource, [{
44605
45234
  type: Injectable
44606
45235
  }], function () {
44607
- return [{ type: i1$2.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
45236
+ return [{ type: i1$1.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
44608
45237
  type: Inject,
44609
45238
  args: ['options']
44610
45239
  }] }];
@@ -44762,7 +45391,7 @@ class ConfigFileToGeoDBService {
44762
45391
  return typeof value === 'string' && regex.test(value.toLowerCase());
44763
45392
  }
44764
45393
  }
44765
- ConfigFileToGeoDBService.ɵfac = function ConfigFileToGeoDBService_Factory(t) { return new (t || ConfigFileToGeoDBService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(GeoDBService), i0.ɵɵinject(i2$1.MessageService)); };
45394
+ ConfigFileToGeoDBService.ɵfac = function ConfigFileToGeoDBService_Factory(t) { return new (t || ConfigFileToGeoDBService)(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(GeoDBService), i0.ɵɵinject(i2$1.MessageService)); };
44766
45395
  ConfigFileToGeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ConfigFileToGeoDBService, factory: ConfigFileToGeoDBService.ɵfac, providedIn: 'root' });
44767
45396
  (function () {
44768
45397
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfigFileToGeoDBService, [{
@@ -44770,7 +45399,7 @@ ConfigFileToGeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token:
44770
45399
  args: [{
44771
45400
  providedIn: 'root'
44772
45401
  }]
44773
- }], function () { return [{ type: i1$2.HttpClient }, { type: GeoDBService }, { type: i2$1.MessageService }]; }, null);
45402
+ }], function () { return [{ type: i1$1.HttpClient }, { type: GeoDBService }, { type: i2$1.MessageService }]; }, null);
44774
45403
  })();
44775
45404
 
44776
45405
  /*