@igo2/geo 1.13.2 → 1.13.3

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.
@@ -116,7 +116,7 @@ import * as i14 from '@angular/material/input';
116
116
  import { MatInputModule } from '@angular/material/input';
117
117
  import * as i7$2 from '@angular/material/menu';
118
118
  import { MatMenuModule } from '@angular/material/menu';
119
- import * as i15$1 from '@angular/material/slide-toggle';
119
+ import * as i23 from '@angular/material/slide-toggle';
120
120
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
121
121
  import * as i13$1 from '@angular/material/slider';
122
122
  import { MatSliderModule, MatSlider } from '@angular/material/slider';
@@ -2991,6 +2991,7 @@ class WMSDataSource extends DataSource {
2991
2991
  }
2992
2992
  const filterQueryString = ogcFilterWriter.handleOgcFiltersAppliedValue(options, fieldNameGeometry);
2993
2993
  sourceParams.FILTER = filterQueryString;
2994
+ this.ol.updateParams({ 'FILTER': sourceParams.FILTER });
2994
2995
  this.setOgcFilters(initOgcFilters, true);
2995
2996
  const timeFilterableDataSourceOptions = options;
2996
2997
  if (timeFilterableDataSourceOptions?.timeFilterable &&
@@ -8289,7 +8290,7 @@ class IgoMap {
8289
8290
  }
8290
8291
  }
8291
8292
 
8292
- const _c0$l = ["*"];
8293
+ const _c0$m = ["*"];
8293
8294
  class MapBrowserComponent {
8294
8295
  constructor(activityService) {
8295
8296
  this.activityService = activityService;
@@ -8335,7 +8336,7 @@ class MapBrowserComponent {
8335
8336
  }
8336
8337
  }
8337
8338
  MapBrowserComponent.ɵfac = function MapBrowserComponent_Factory(t) { return new (t || MapBrowserComponent)(i0.ɵɵdirectiveInject(i2$1.ActivityService)); };
8338
- MapBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapBrowserComponent, selectors: [["igo-map-browser"]], inputs: { map: "map", view: "view" }, ngContentSelectors: _c0$l, decls: 2, vars: 1, consts: [[1, "igo-map-browser-target", 3, "id"]], template: function MapBrowserComponent_Template(rf, ctx) { if (rf & 1) {
8339
+ 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) { if (rf & 1) {
8339
8340
  i0.ɵɵprojectionDef();
8340
8341
  i0.ɵɵelement(0, "div", 0);
8341
8342
  i0.ɵɵprojection(1);
@@ -9154,7 +9155,7 @@ function computeProjectionsConstraints(projectionsLimitations) {
9154
9155
  return projectionsConstraints;
9155
9156
  }
9156
9157
 
9157
- const _c0$k = function (a0) { return { zoom: a0 }; };
9158
+ const _c0$l = function (a0) { return { zoom: a0 }; };
9158
9159
  class ZoomButtonComponent {
9159
9160
  constructor() { }
9160
9161
  get zoom() { return this.map.viewController.getZoom(); }
@@ -9175,9 +9176,9 @@ ZoomButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ZoomBut
9175
9176
  i0.ɵɵelementEnd()();
9176
9177
  } if (rf & 2) {
9177
9178
  i0.ɵɵadvance(1);
9178
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind2(2, 6, "igo.geo.mapButtons.zoomIn", i0.ɵɵpureFunction1(12, _c0$k, ctx.zoom + 1)))("color", ctx.color)("disabled", ctx.zoom >= ctx.maxZoom);
9179
+ 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);
9179
9180
  i0.ɵɵadvance(3);
9180
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind2(5, 9, "igo.geo.mapButtons.zoomOut", i0.ɵɵpureFunction1(14, _c0$k, ctx.zoom - 1)))("color", ctx.color)("disabled", ctx.zoom <= ctx.minZoom);
9181
+ 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);
9181
9182
  } }, 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}"] });
9182
9183
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ZoomButtonComponent, [{
9183
9184
  type: Component,
@@ -9367,7 +9368,7 @@ HomeExtentButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: H
9367
9368
  type: Input
9368
9369
  }] }); })();
9369
9370
 
9370
- const _c0$j = function (a0) { return [a0]; };
9371
+ const _c0$k = function (a0) { return [a0]; };
9371
9372
  function OfflineButtonComponent_div_0_Template(rf, ctx) { if (rf & 1) {
9372
9373
  const _r2 = i0.ɵɵgetCurrentView();
9373
9374
  i0.ɵɵelementStart(0, "div", 1)(1, "div")(2, "button", 2);
@@ -9379,7 +9380,7 @@ function OfflineButtonComponent_div_0_Template(rf, ctx) { if (rf & 1) {
9379
9380
  } if (rf & 2) {
9380
9381
  const ctx_r0 = i0.ɵɵnextContext();
9381
9382
  i0.ɵɵadvance(2);
9382
- 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$j, ctx_r0.btnStyle))("color", ctx_r0.checked ? ctx_r0.color : i0.ɵɵpureFunction1(9, _c0$j, ctx_r0.colorOff));
9383
+ 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));
9383
9384
  } }
9384
9385
  class OfflineButtonComponent {
9385
9386
  constructor(config) {
@@ -9575,7 +9576,7 @@ function BaseLayersSwitcherComponent_div_0_igo_mini_basemap_2_Template(rf, ctx)
9575
9576
  const ctx_r2 = i0.ɵɵnextContext(2);
9576
9577
  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);
9577
9578
  } }
9578
- const _c0$i = function (a0) { return { "container-expand": a0 }; };
9579
+ const _c0$j = function (a0) { return { "container-expand": a0 }; };
9579
9580
  function BaseLayersSwitcherComponent_div_0_Template(rf, ctx) { if (rf & 1) {
9580
9581
  const _r6 = i0.ɵɵgetCurrentView();
9581
9582
  i0.ɵɵelementStart(0, "div", 1);
@@ -9587,7 +9588,7 @@ function BaseLayersSwitcherComponent_div_0_Template(rf, ctx) { if (rf & 1) {
9587
9588
  i0.ɵɵelementEnd()();
9588
9589
  } if (rf & 2) {
9589
9590
  const ctx_r0 = i0.ɵɵnextContext();
9590
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$i, ctx_r0.expand))("@baseLayerSwitcherState", ctx_r0.expand ? "expand" : ctx_r0.useStaticIcon ? "collapseIcon" : "collapseMap");
9591
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$j, ctx_r0.expand))("@baseLayerSwitcherState", ctx_r0.expand ? "expand" : ctx_r0.useStaticIcon ? "collapseIcon" : "collapseMap");
9591
9592
  i0.ɵɵadvance(1);
9592
9593
  i0.ɵɵproperty("ngIf", ctx_r0.useStaticIcon && !ctx_r0.expand && ctx_r0.showButton);
9593
9594
  i0.ɵɵadvance(1);
@@ -10170,7 +10171,7 @@ MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBa
10170
10171
  type: Input
10171
10172
  }] }); })();
10172
10173
 
10173
- const _c0$h = function (a0, a1) { return { azimuth: a0, rotation: a1 }; };
10174
+ const _c0$i = function (a0, a1) { return { azimuth: a0, rotation: a1 }; };
10174
10175
  function RotationButtonComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10175
10176
  const _r2 = i0.ɵɵgetCurrentView();
10176
10177
  i0.ɵɵelementStart(0, "div", 1);
@@ -10185,7 +10186,7 @@ function RotationButtonComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10185
10186
  i0.ɵɵelementEnd()();
10186
10187
  } if (rf & 2) {
10187
10188
  const ctx_r0 = i0.ɵɵnextContext();
10188
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 4, ctx_r0.rotated$) ? i0.ɵɵpipeBind2(2, 6, "igo.geo.mapButtons.resetRotation", i0.ɵɵpureFunction2(15, _c0$h, ctx_r0.azimuthRounded, ctx_r0.rotationRounded)) : i0.ɵɵpipeBind1(3, 9, "igo.geo.mapButtons.tipRotation"));
10189
+ 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"));
10189
10190
  i0.ɵɵadvance(4);
10190
10191
  i0.ɵɵproperty("color", ctx_r0.color)("disabled", i0.ɵɵpipeBind1(5, 11, ctx_r0.rotated$) === false);
10191
10192
  i0.ɵɵadvance(2);
@@ -12624,7 +12625,7 @@ CatalogBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cat
12624
12625
  type: Input
12625
12626
  }] }); })();
12626
12627
 
12627
- const _c0$g = ["renderedLegend"];
12628
+ const _c0$h = ["renderedLegend"];
12628
12629
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template(rf, ctx) { if (rf & 1) {
12629
12630
  const _r15 = i0.ɵɵgetCurrentView();
12630
12631
  i0.ɵɵelementStart(0, "mat-list-item")(1, "mat-icon", 7);
@@ -12971,7 +12972,7 @@ class LayerLegendComponent {
12971
12972
  }
12972
12973
  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)); };
12973
12974
  LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerLegendComponent, selectors: [["igo-layer-legend"]], viewQuery: function LayerLegendComponent_Query(rf, ctx) { if (rf & 1) {
12974
- i0.ɵɵviewQuery(_c0$g, 5);
12975
+ i0.ɵɵviewQuery(_c0$h, 5);
12975
12976
  } if (rf & 2) {
12976
12977
  let _t;
12977
12978
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.renderedLegends = _t);
@@ -13557,7 +13558,7 @@ function LayerItemComponent_mat_checkbox_1_Template(rf, ctx) { if (rf & 1) {
13557
13558
  const ctx_r0 = i0.ɵɵnextContext();
13558
13559
  i0.ɵɵproperty("checked", ctx_r0.layerCheck);
13559
13560
  } }
13560
- const _c0$f = function (a0) { return { disabled: a0 }; };
13561
+ const _c0$g = function (a0) { return { disabled: a0 }; };
13561
13562
  function LayerItemComponent_button_4_Template(rf, ctx) { if (rf & 1) {
13562
13563
  const _r9 = i0.ɵɵgetCurrentView();
13563
13564
  i0.ɵɵelementStart(0, "button", 10);
@@ -13572,7 +13573,7 @@ function LayerItemComponent_button_4_Template(rf, ctx) { if (rf & 1) {
13572
13573
  const ctx_r1 = i0.ɵɵnextContext();
13573
13574
  i0.ɵɵproperty("color", ctx_r1.layer.visible ? "primary" : "default")("matTooltip", i0.ɵɵpipeBind1(1, 5, ctx_r1.eyeTooltip));
13574
13575
  i0.ɵɵadvance(2);
13575
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(3, 7, ctx_r1.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0$f, i0.ɵɵpipeBind1(4, 9, ctx_r1.inResolutionRange$) === false))("svgIcon", i0.ɵɵpipeBind1(5, 11, ctx_r1.layer.visible$) ? "eye" : "eye-off");
13576
+ 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");
13576
13577
  } }
13577
13578
  function LayerItemComponent_button_5_Template(rf, ctx) { if (rf & 1) {
13578
13579
  const _r11 = i0.ɵɵgetCurrentView();
@@ -13588,7 +13589,7 @@ function LayerItemComponent_button_5_Template(rf, ctx) { if (rf & 1) {
13588
13589
  const ctx_r2 = i0.ɵɵnextContext();
13589
13590
  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"));
13590
13591
  i0.ɵɵadvance(3);
13591
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(4, 9, ctx_r2.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0$f, i0.ɵɵpipeBind1(5, 11, ctx_r2.inResolutionRange$) === false))("svgIcon", ctx_r2.layer.visible ? "eye" : "eye-off");
13592
+ 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");
13592
13593
  } }
13593
13594
  function LayerItemComponent_button_6_Template(rf, ctx) { if (rf & 1) {
13594
13595
  const _r13 = i0.ɵɵgetCurrentView();
@@ -13861,7 +13862,7 @@ var LayerListDisplacement;
13861
13862
  LayerListDisplacement["Lower"] = "lower";
13862
13863
  })(LayerListDisplacement || (LayerListDisplacement = {}));
13863
13864
 
13864
- const _c0$e = ["igoLayerItemToolbar"];
13865
+ const _c0$f = ["igoLayerItemToolbar"];
13865
13866
  function LayerListComponent_igo_layer_list_tool_1_Template(rf, ctx) { if (rf & 1) {
13866
13867
  const _r7 = i0.ɵɵgetCurrentView();
13867
13868
  i0.ɵɵelementStart(0, "igo-layer-list-tool", 6);
@@ -14794,7 +14795,7 @@ class LayerListComponent {
14794
14795
  }
14795
14796
  LayerListComponent.ɵfac = function LayerListComponent_Factory(t) { return new (t || LayerListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
14796
14797
  LayerListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerListComponent, selectors: [["igo-layer-list"]], contentQueries: function LayerListComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
14797
- i0.ɵɵcontentQuery(dirIndex, _c0$e, 5);
14798
+ i0.ɵɵcontentQuery(dirIndex, _c0$f, 5);
14798
14799
  } if (rf & 2) {
14799
14800
  let _t;
14800
14801
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateLayerToolbar = _t.first);
@@ -16316,7 +16317,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_4_Template(rf, ctx) { if (rf &
16316
16317
  const property_r3 = i0.ɵɵnextContext().$implicit;
16317
16318
  i0.ɵɵproperty("innerHTML", property_r3.value, i0.ɵɵsanitizeHtml);
16318
16319
  } }
16319
- const _c0$d = function () { return { "cursor": "pointer", "color": "blue" }; };
16320
+ const _c0$e = function () { return { "cursor": "pointer", "color": "blue" }; };
16320
16321
  function FeatureDetailsComponent_table_0_tr_2_td_5_Template(rf, ctx) { if (rf & 1) {
16321
16322
  const _r20 = i0.ɵɵgetCurrentView();
16322
16323
  i0.ɵɵelementStart(0, "td")(1, "u", 13);
@@ -16327,7 +16328,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_5_Template(rf, ctx) { if (rf &
16327
16328
  const property_r3 = i0.ɵɵnextContext().$implicit;
16328
16329
  const ctx_r8 = i0.ɵɵnextContext(2);
16329
16330
  i0.ɵɵadvance(1);
16330
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(2, _c0$d));
16331
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(2, _c0$e));
16331
16332
  i0.ɵɵadvance(1);
16332
16333
  i0.ɵɵtextInterpolate(ctx_r8.getEmbeddedLinkText(property_r3.value));
16333
16334
  } }
@@ -16344,7 +16345,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_6_Template(rf, ctx) { if (rf &
16344
16345
  i0.ɵɵelementEnd()();
16345
16346
  } if (rf & 2) {
16346
16347
  i0.ɵɵadvance(1);
16347
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c0$d));
16348
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c0$e));
16348
16349
  i0.ɵɵadvance(1);
16349
16350
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "igo.geo.targetHtmlUrl"));
16350
16351
  } }
@@ -16418,13 +16419,12 @@ function FeatureDetailsComponent_iframe_1_Template(rf, ctx) { if (rf & 1) {
16418
16419
  i0.ɵɵproperty("srcdoc", ctx_r1.htmlSanitizer(ctx_r1.feature.properties), i0.ɵɵsanitizeHtml)("src", ctx_r1.urlSanitizer(ctx_r1.feature.properties.url), i0.ɵɵsanitizeResourceUrl);
16419
16420
  } }
16420
16421
  class FeatureDetailsComponent {
16421
- constructor(http, cdRef, sanitizer, networkService, messageService, languageService, configService) {
16422
+ constructor(http, cdRef, sanitizer, networkService, messageService, configService) {
16422
16423
  this.http = http;
16423
16424
  this.cdRef = cdRef;
16424
16425
  this.sanitizer = sanitizer;
16425
16426
  this.networkService = networkService;
16426
16427
  this.messageService = messageService;
16427
- this.languageService = languageService;
16428
16428
  this.configService = configService;
16429
16429
  this.unsubscribe$ = new Subject();
16430
16430
  this.ready = false;
@@ -16509,14 +16509,17 @@ class FeatureDetailsComponent {
16509
16509
  window.open(fileUrl, '_blank');
16510
16510
  this.cdRef.detectChanges();
16511
16511
  }, (error) => {
16512
- const translate = this.languageService.translate;
16513
- const title = translate.instant('igo.geo.targetHtmlUrlUnauthorizedTitle');
16514
- const message = translate.instant('igo.geo.targetHtmlUrlUnauthorized');
16515
- this.messageService.error(message, title);
16512
+ this.messageService.error('igo.geo.targetHtmlUrlUnauthorized', 'igo.geo.targetHtmlUrlUnauthorizedTitle');
16516
16513
  });
16517
16514
  }
16518
16515
  else {
16519
- window.open(value, '_blank');
16516
+ let url = value;
16517
+ if (this.isEmbeddedLink(value)) {
16518
+ var div = document.createElement('div');
16519
+ div.innerHTML = value;
16520
+ url = div.children[0].getAttribute('href');
16521
+ }
16522
+ window.open(url, '_blank');
16520
16523
  }
16521
16524
  }
16522
16525
  isUrl(value) {
@@ -16635,7 +16638,7 @@ class FeatureDetailsComponent {
16635
16638
  }
16636
16639
  }
16637
16640
  }
16638
- 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.LanguageService), i0.ɵɵdirectiveInject(i2$1.ConfigService)); };
16641
+ 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)); };
16639
16642
  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) { if (rf & 1) {
16640
16643
  i0.ɵɵtemplate(0, FeatureDetailsComponent_table_0_Template, 4, 3, "table", 0);
16641
16644
  i0.ɵɵtemplate(1, FeatureDetailsComponent_iframe_1_Template, 1, 2, "iframe", 1);
@@ -16647,7 +16650,7 @@ FeatureDetailsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Fea
16647
16650
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureDetailsComponent, [{
16648
16651
  type: Component,
16649
16652
  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'\">\r\n <tbody>\r\n <tr *ngFor=\"let property of filterFeatureProperties(feature) | keyvalue\">\r\n\r\n <td *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\">\r\n <mat-icon mat-list-avatar svgIcon=\"{{icon}}\"></mat-icon>\r\n </td>\r\n\r\n <td *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\">\r\n <a href=\"{{property.value}}\" target='_blank' rel=\"noopener noreferrer\"> {{ 'igo.geo.targetHtmlUrl' | translate }} {{title}}</a>\r\n <button class=\"copyClipboard\" mat-icon-button (click)=\"copyTextToClipboard(property.value)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td id=\"keyValue\" *ngIf=\"feature.properties.target === undefined\">\r\n {{property.key}}\r\n </td>\r\n\r\n <td *ngIf=\"feature.properties.target === undefined && !isObject(property.value) && !isUrl(property.value) && !isEmbeddedLink(property.value)\" [innerHTML]=\"property.value\">\r\n </td>\r\n\r\n <td *ngIf=\"feature.properties.target === undefined && isEmbeddedLink(property.value)\">\r\n <u [ngStyle]=\"{'cursor': 'pointer', 'color': 'blue'}\" (click)=\"openSecureUrl(property.value)\">{{ getEmbeddedLinkText(property.value) }}</u>\r\n </td>\r\n\r\n <td *ngIf=\"feature.properties.target === undefined && !isObject(property.value) && (isDoc(property.value) || isUrl(property.value)) && !isImg(property.value)\">\r\n <u [ngStyle]=\"{'cursor': 'pointer', 'color': 'blue'}\" (click)=\"openSecureUrl(property.value)\">{{ 'igo.geo.targetHtmlUrl' | translate }}</u>\r\n <button class=\"copyClipboard\" mat-icon-button (click)=\"copyTextToClipboard(property.value)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td *ngIf=\"feature.properties.target === undefined && !isObject(property.value) && isUrl(property.value) && isImg(property.value)\">\r\n <a href=\"{{property.value}}\" target='_blank' (click)=\"openSecureUrl(property.value)\" rel=\"noopener noreferrer\">\r\n <img igoImageError src=\"{{(property.value | secureImage) |\u00A0async}}\" width=\"225\" height=\"auto\">\r\n </a>\r\n </td>\r\n\r\n <td *ngIf=\"feature.properties.target === undefined && isObject(property.value)\" [innerHTML]=\"property.value | json\">\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<iframe *ngIf=\"isHtmlDisplay()\" [srcdoc]=\"htmlSanitizer(feature.properties)\" [src]=\"urlSanitizer(feature.properties.url)\"></iframe>\r\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"] }]
16650
- }], function () { return [{ type: i1$2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2$3.DomSanitizer }, { type: i2$1.NetworkService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }, { type: i2$1.ConfigService }]; }, { source: [{
16653
+ }], 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: [{
16651
16654
  type: Input
16652
16655
  }], map: [{
16653
16656
  type: Input
@@ -16663,7 +16666,7 @@ FeatureDetailsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Fea
16663
16666
  type: Output
16664
16667
  }] }); })();
16665
16668
 
16666
- const _c0$c = ["igoForm"];
16669
+ const _c0$d = ["igoForm"];
16667
16670
  const _c1$a = ["*", [["", "formButtons", ""]]];
16668
16671
  const _c2$5 = ["*", "[formButtons]"];
16669
16672
  /**
@@ -16738,7 +16741,7 @@ class FeatureFormComponent {
16738
16741
  }
16739
16742
  FeatureFormComponent.ɵfac = function FeatureFormComponent_Factory(t) { return new (t || FeatureFormComponent)(); };
16740
16743
  FeatureFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureFormComponent, selectors: [["igo-feature-form"]], viewQuery: function FeatureFormComponent_Query(rf, ctx) { if (rf & 1) {
16741
- i0.ɵɵviewQuery(_c0$c, 7);
16744
+ i0.ɵɵviewQuery(_c0$d, 7);
16742
16745
  } if (rf & 2) {
16743
16746
  let _t;
16744
16747
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.igoForm = _t.first);
@@ -17265,83 +17268,156 @@ DrawShorcutsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawS
17265
17268
  args: [{ selector: 'igo-draw-shorcuts', template: "<mat-dialog-content>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-return\"></mat-icon>{{'igo.geo.draw.finish' | translate}}</span>\r\n </div>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"backspace-outline\"></mat-icon>{{'igo.geo.draw.undo' | translate}}</span>\r\n </div>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-esc\"></mat-icon>{{'igo.geo.draw.abort' | translate}}</span>\r\n </div>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-space\"></mat-icon>{{'igo.geo.draw.move' | translate}}</span>\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"shortcuts-close\">\r\n <button mat-raised-button mat-dialog-close color=\"primary\">OK</button>\r\n</mat-dialog-actions>", styles: [".shortcut{display:flex;align-items:center}.shortcut-icon{margin-right:10px}.shortcuts-close{display:flex;justify-content:center}\n"] }]
17266
17269
  }], null, null); })();
17267
17270
 
17268
- function DrawComponent_button_23_Template(rf, ctx) { if (rf & 1) {
17269
- const _r5 = i0.ɵɵgetCurrentView();
17270
- i0.ɵɵelementStart(0, "button", 14);
17271
- i0.ɵɵlistener("click", function DrawComponent_button_23_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.deleteDrawings()); });
17271
+ class DrawLayerPopupComponent {
17272
+ constructor(dialogRef) {
17273
+ this.dialogRef = dialogRef;
17274
+ this.confirmFlag = false;
17275
+ }
17276
+ cancelDrawing() {
17277
+ this.dialogRef.close();
17278
+ }
17279
+ confirm(labelString) {
17280
+ this.confirmFlag = true;
17281
+ this.dialogRef.close(labelString);
17282
+ }
17283
+ }
17284
+ DrawLayerPopupComponent.ɵfac = function DrawLayerPopupComponent_Factory(t) { return new (t || DrawLayerPopupComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef)); };
17285
+ 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) { if (rf & 1) {
17286
+ const _r1 = i0.ɵɵgetCurrentView();
17287
+ i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
17288
+ i0.ɵɵtext(2);
17289
+ i0.ɵɵpipe(3, "translate");
17290
+ i0.ɵɵelementEnd();
17291
+ i0.ɵɵelementStart(4, "mat-form-field", 2);
17292
+ i0.ɵɵelement(5, "input", 3, 4);
17293
+ i0.ɵɵpipe(7, "translate");
17294
+ i0.ɵɵelementEnd()();
17295
+ i0.ɵɵelementStart(8, "div", 5)(9, "button", 6);
17296
+ i0.ɵɵlistener("click", function DrawLayerPopupComponent_Template_button_click_9_listener() { return ctx.cancelDrawing(); });
17297
+ i0.ɵɵtext(10);
17298
+ i0.ɵɵpipe(11, "translate");
17299
+ i0.ɵɵelementEnd();
17300
+ i0.ɵɵelementStart(12, "button", 7);
17301
+ i0.ɵɵlistener("click", function DrawLayerPopupComponent_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r1); const _r0 = i0.ɵɵreference(6); return i0.ɵɵresetView(ctx.confirm(_r0.value)); });
17302
+ i0.ɵɵtext(13, " OK ");
17303
+ i0.ɵɵelementEnd()();
17304
+ } if (rf & 2) {
17305
+ i0.ɵɵadvance(2);
17306
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, "igo.geo.draw.layer.layerDialogInstruction"), " ");
17307
+ i0.ɵɵadvance(3);
17308
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(7, 5, "igo.geo.draw.layer.title"));
17309
+ i0.ɵɵadvance(5);
17310
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 7, "igo.geo.draw.cancel"), " ");
17311
+ } }, dependencies: [i3.MatButton, i13.MatFormField, i14.MatInput, i1.MatDialogContent, i1.MatDialogActions, i7.TranslatePipe] });
17312
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawLayerPopupComponent, [{
17313
+ type: Component,
17314
+ args: [{ selector: 'igo-draw-popup-component', template: "<div mat-dialog-content>\r\n <p class=\"mat-typography\">\r\n {{ 'igo.geo.draw.layer.layerDialogInstruction' | translate }}\r\n </p>\r\n <mat-form-field class=\"example-full-width\">\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ 'igo.geo.draw.layer.title' | translate }}\"\r\n />\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\r\n OK\r\n </button>\r\n</div>\r\n" }]
17315
+ }], function () { return [{ type: i1.MatDialogRef }]; }, { confirmFlag: [{
17316
+ type: Input
17317
+ }] }); })();
17318
+
17319
+ const _c0$c = ["selectedLayer"];
17320
+ function DrawComponent_mat_option_30_Template(rf, ctx) { if (rf & 1) {
17321
+ i0.ɵɵelementStart(0, "mat-option", 2);
17322
+ i0.ɵɵtext(1);
17323
+ i0.ɵɵelementEnd();
17324
+ } if (rf & 2) {
17325
+ const layer_r7 = ctx.$implicit;
17326
+ i0.ɵɵproperty("value", layer_r7);
17327
+ i0.ɵɵadvance(1);
17328
+ i0.ɵɵtextInterpolate1(" ", layer_r7.title, " ");
17329
+ } }
17330
+ function DrawComponent_button_34_Template(rf, ctx) { if (rf & 1) {
17331
+ const _r9 = i0.ɵɵgetCurrentView();
17332
+ i0.ɵɵelementStart(0, "button", 20);
17333
+ i0.ɵɵlistener("click", function DrawComponent_button_34_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.activeDrawingLayer.visible = !ctx_r8.activeDrawingLayer.visible); });
17334
+ i0.ɵɵpipe(1, "translate");
17335
+ i0.ɵɵpipe(2, "translate");
17336
+ i0.ɵɵelement(3, "mat-icon", 21);
17337
+ i0.ɵɵelementEnd();
17338
+ } if (rf & 2) {
17339
+ const ctx_r2 = i0.ɵɵnextContext();
17340
+ i0.ɵɵproperty("color", ctx_r2.activeDrawingLayer.visible ? "primary" : "default")("matTooltip", ctx_r2.activeDrawingLayer.visible ? i0.ɵɵpipeBind1(1, 3, "igo.geo.layer.hideLayer") : i0.ɵɵpipeBind1(2, 5, "igo.geo.layer.showLayer"));
17341
+ i0.ɵɵadvance(3);
17342
+ i0.ɵɵproperty("svgIcon", ctx_r2.activeDrawingLayer.visible ? "eye" : "eye-off");
17343
+ } }
17344
+ function DrawComponent_button_37_Template(rf, ctx) { if (rf & 1) {
17345
+ const _r11 = i0.ɵɵgetCurrentView();
17346
+ i0.ɵɵelementStart(0, "button", 22);
17347
+ i0.ɵɵlistener("click", function DrawComponent_button_37_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.deleteDrawings()); });
17272
17348
  i0.ɵɵpipe(1, "translate");
17273
17349
  i0.ɵɵpipe(2, "async");
17274
- i0.ɵɵelement(3, "mat-icon", 15);
17350
+ i0.ɵɵelement(3, "mat-icon", 23);
17275
17351
  i0.ɵɵelementEnd();
17276
17352
  } if (rf & 2) {
17277
- const ctx_r0 = i0.ɵɵnextContext();
17278
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4, ctx_r0.selectedFeatures$).length === 0);
17353
+ const ctx_r3 = i0.ɵɵnextContext();
17354
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4, ctx_r3.selectedFeatures$).length === 0);
17279
17355
  } }
17280
- function DrawComponent_mat_form_field_28_div_6_Template(rf, ctx) { if (rf & 1) {
17281
- i0.ɵɵelementStart(0, "div", 19);
17282
- i0.ɵɵelement(1, "img", 20);
17356
+ function DrawComponent_mat_form_field_42_div_6_Template(rf, ctx) { if (rf & 1) {
17357
+ i0.ɵɵelementStart(0, "div", 27);
17358
+ i0.ɵɵelement(1, "img", 28);
17283
17359
  i0.ɵɵelementEnd();
17284
17360
  } if (rf & 2) {
17285
- const ctx_r6 = i0.ɵɵnextContext(2);
17361
+ const ctx_r12 = i0.ɵɵnextContext(2);
17286
17362
  i0.ɵɵadvance(1);
17287
- i0.ɵɵpropertyInterpolate("src", ctx_r6.icon, i0.ɵɵsanitizeUrl);
17363
+ i0.ɵɵpropertyInterpolate("src", ctx_r12.icon, i0.ɵɵsanitizeUrl);
17288
17364
  } }
17289
- function DrawComponent_mat_form_field_28_mat_option_10_Template(rf, ctx) { if (rf & 1) {
17290
- const _r10 = i0.ɵɵgetCurrentView();
17291
- i0.ɵɵelementStart(0, "mat-option", 21);
17292
- i0.ɵɵlistener("click", function DrawComponent_mat_form_field_28_mat_option_10_Template_mat_option_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r10); const icon_html_r8 = restoredCtx.$implicit; const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.onIconChange(icon_html_r8)); });
17293
- i0.ɵɵelementStart(1, "div", 19);
17294
- i0.ɵɵelement(2, "img", 20);
17365
+ function DrawComponent_mat_form_field_42_mat_option_10_Template(rf, ctx) { if (rf & 1) {
17366
+ const _r16 = i0.ɵɵgetCurrentView();
17367
+ i0.ɵɵelementStart(0, "mat-option", 29);
17368
+ i0.ɵɵlistener("click", function DrawComponent_mat_form_field_42_mat_option_10_Template_mat_option_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r16); const icon_html_r14 = restoredCtx.$implicit; const ctx_r15 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r15.onIconChange(icon_html_r14)); });
17369
+ i0.ɵɵelementStart(1, "div", 27);
17370
+ i0.ɵɵelement(2, "img", 28);
17295
17371
  i0.ɵɵelementEnd()();
17296
17372
  } if (rf & 2) {
17297
- const icon_html_r8 = ctx.$implicit;
17298
- i0.ɵɵproperty("value", icon_html_r8);
17373
+ const icon_html_r14 = ctx.$implicit;
17374
+ i0.ɵɵproperty("value", icon_html_r14);
17299
17375
  i0.ɵɵadvance(2);
17300
- i0.ɵɵpropertyInterpolate("src", icon_html_r8, i0.ɵɵsanitizeUrl);
17376
+ i0.ɵɵpropertyInterpolate("src", icon_html_r14, i0.ɵɵsanitizeUrl);
17301
17377
  } }
17302
- function DrawComponent_mat_form_field_28_Template(rf, ctx) { if (rf & 1) {
17303
- const _r12 = i0.ɵɵgetCurrentView();
17378
+ function DrawComponent_mat_form_field_42_Template(rf, ctx) { if (rf & 1) {
17379
+ const _r18 = i0.ɵɵgetCurrentView();
17304
17380
  i0.ɵɵelementStart(0, "mat-form-field")(1, "mat-label");
17305
17381
  i0.ɵɵtext(2);
17306
17382
  i0.ɵɵpipe(3, "translate");
17307
17383
  i0.ɵɵelementEnd();
17308
17384
  i0.ɵɵelementStart(4, "mat-select")(5, "mat-select-trigger");
17309
- i0.ɵɵtemplate(6, DrawComponent_mat_form_field_28_div_6_Template, 2, 1, "div", 16);
17385
+ i0.ɵɵtemplate(6, DrawComponent_mat_form_field_42_div_6_Template, 2, 1, "div", 24);
17310
17386
  i0.ɵɵelementEnd();
17311
- i0.ɵɵelementStart(7, "mat-option", 17);
17312
- i0.ɵɵlistener("click", function DrawComponent_mat_form_field_28_Template_mat_option_click_7_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.onIconChange()); });
17387
+ i0.ɵɵelementStart(7, "mat-option", 25);
17388
+ i0.ɵɵlistener("click", function DrawComponent_mat_form_field_42_Template_mat_option_click_7_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.onIconChange()); });
17313
17389
  i0.ɵɵtext(8);
17314
17390
  i0.ɵɵpipe(9, "translate");
17315
17391
  i0.ɵɵelementEnd();
17316
- i0.ɵɵtemplate(10, DrawComponent_mat_form_field_28_mat_option_10_Template, 3, 2, "mat-option", 18);
17392
+ i0.ɵɵtemplate(10, DrawComponent_mat_form_field_42_mat_option_10_Template, 3, 2, "mat-option", 26);
17317
17393
  i0.ɵɵelementEnd()();
17318
17394
  } if (rf & 2) {
17319
- const ctx_r2 = i0.ɵɵnextContext();
17395
+ const ctx_r5 = i0.ɵɵnextContext();
17320
17396
  i0.ɵɵadvance(2);
17321
17397
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "igo.geo.draw.icon"));
17322
17398
  i0.ɵɵadvance(4);
17323
- i0.ɵɵproperty("ngIf", ctx_r2.icon);
17399
+ i0.ɵɵproperty("ngIf", ctx_r5.icon);
17324
17400
  i0.ɵɵadvance(2);
17325
17401
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 6, "igo.geo.draw.noIcon"));
17326
17402
  i0.ɵɵadvance(2);
17327
- i0.ɵɵproperty("ngForOf", ctx_r2.icons);
17403
+ i0.ɵɵproperty("ngForOf", ctx_r5.icons);
17328
17404
  } }
17329
- function DrawComponent_button_32_Template(rf, ctx) { if (rf & 1) {
17330
- const _r14 = i0.ɵɵgetCurrentView();
17331
- i0.ɵɵelementStart(0, "button", 22);
17332
- i0.ɵɵlistener("click", function DrawComponent_button_32_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.openStyleModalDialog()); });
17405
+ function DrawComponent_button_46_Template(rf, ctx) { if (rf & 1) {
17406
+ const _r20 = i0.ɵɵgetCurrentView();
17407
+ i0.ɵɵelementStart(0, "button", 30);
17408
+ i0.ɵɵlistener("click", function DrawComponent_button_46_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.openStyleModalDialog()); });
17333
17409
  i0.ɵɵpipe(1, "translate");
17334
17410
  i0.ɵɵtext(2);
17335
17411
  i0.ɵɵpipe(3, "translate");
17336
- i0.ɵɵelement(4, "mat-icon", 23);
17412
+ i0.ɵɵelement(4, "mat-icon", 31);
17337
17413
  i0.ɵɵelementEnd();
17338
17414
  } if (rf & 2) {
17339
- const ctx_r3 = i0.ɵɵnextContext();
17415
+ const ctx_r6 = i0.ɵɵnextContext();
17340
17416
  i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.layer.style.styleModalTooltip"));
17341
17417
  i0.ɵɵadvance(2);
17342
17418
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.layer.style.styleModal"), " ");
17343
17419
  i0.ɵɵadvance(2);
17344
- i0.ɵɵproperty("matBadge", ctx_r3.selectedFeatures$.value.length);
17420
+ i0.ɵɵproperty("matBadge", ctx_r6.selectedFeatures$.value.length);
17345
17421
  } }
17346
17422
  class DrawComponent {
17347
17423
  constructor(languageService, formBuilder, drawStyleService, dialog, drawIconService) {
@@ -17373,13 +17449,21 @@ class DrawComponent {
17373
17449
  ]
17374
17450
  };
17375
17451
  this.geometryType = GeometryType; // Reference to the GeometryType enum
17452
+ this._stores = [];
17453
+ this._drawControls = [];
17454
+ this.activeLayerChange = new EventEmitter();
17455
+ this.drawControlsEvent = new EventEmitter();
17456
+ this.layersIDEvent = new EventEmitter();
17457
+ this.layerCounterID = 0;
17376
17458
  this.draw$ = new BehaviorSubject({}); // Observable of draw
17377
- this.olDrawingLayerSource = new OlVectorSource();
17459
+ this.activeDrawingLayerSource = new OlVectorSource();
17378
17460
  this.selectedFeatures$ = new BehaviorSubject([]);
17379
17461
  this.drawControlIsDisabled = true;
17380
17462
  this.drawControlIsActive = false;
17381
17463
  this.subscriptions$$ = [];
17382
17464
  this.position = 'bottom';
17465
+ this.isCreatingNewLayer = false;
17466
+ this.currGeometryType = this.geometryType.Point;
17383
17467
  this.buildForm();
17384
17468
  this.fillColor = this.drawStyleService.getFillColor();
17385
17469
  this.strokeColor = this.drawStyleService.getStrokeColor();
@@ -17390,19 +17474,85 @@ class DrawComponent {
17390
17474
  this.fontSize = this.drawStyleService.getFontSize();
17391
17475
  this.fontStyle = this.drawStyleService.getFontStyle();
17392
17476
  }
17477
+ get stores() {
17478
+ return this._stores;
17479
+ }
17480
+ set stores(value) {
17481
+ this._stores = value;
17482
+ }
17483
+ get drawControls() {
17484
+ return this._drawControls;
17485
+ }
17486
+ set drawControls(value) {
17487
+ this._drawControls = value;
17488
+ }
17489
+ get activeDrawingLayer() {
17490
+ return this._activeDrawingLayer;
17491
+ }
17492
+ set activeDrawingLayer(value) {
17493
+ this._activeDrawingLayer = value;
17494
+ }
17393
17495
  // Initialize the store that will contain the entities and create the Draw control
17394
17496
  ngOnInit() {
17395
- this.initStore();
17396
- this.drawControl = this.createDrawControl(this.fillColor, this.strokeColor, this.strokeWidth);
17397
- this.drawControl.setGeometryType(this.geometryType.Point);
17398
- this.toggleDrawControl();
17497
+ if (!this.stores.length) {
17498
+ this.activeStore = new FeatureStore([], {
17499
+ map: this.map
17500
+ });
17501
+ this.initStore();
17502
+ this.activeDrawControl = this.createDrawControl(this.fillColor, this.strokeColor, this.strokeWidth);
17503
+ this.activeDrawControl.setGeometryType(this.geometryType.Point);
17504
+ this.toggleDrawControl();
17505
+ this.stores.push(this.activeStore);
17506
+ this.drawControls.push([this.activeDrawingLayer.id, this.activeDrawControl]);
17507
+ this.drawControlsEvent.emit(this.drawControls);
17508
+ this.layersIDEvent.emit(this.activeDrawingLayer.id);
17509
+ this.onLayerChange(this.activeDrawingLayer);
17510
+ }
17511
+ else {
17512
+ this.activeStore = this.stores.find(store => store.layer.id === this.activeDrawingLayer.id);
17513
+ this.activeDrawControl = this.drawControls.find(dc => dc[0] === this.activeDrawingLayer.id)[1];
17514
+ this.deactivateDrawControl();
17515
+ this.allLayers.forEach(layer => {
17516
+ if (layer.id !== this.activeDrawingLayer.id) {
17517
+ layer.opacity = 0;
17518
+ }
17519
+ let store = this.stores.find(s => s.layer.id === layer.id);
17520
+ this.subscriptions$$.push(store.stateView
17521
+ .manyBy$((record) => {
17522
+ return record.state.selected === true;
17523
+ })
17524
+ .pipe(first())
17525
+ .subscribe((records) => {
17526
+ records.forEach((record) => {
17527
+ record.state.selected = false;
17528
+ });
17529
+ }));
17530
+ this.subscriptions$$.push(store.stateView
17531
+ .manyBy$((record) => {
17532
+ return record.state.selected === true;
17533
+ })
17534
+ .pipe(skip(1) // Skip initial emission
17535
+ )
17536
+ .subscribe((records) => {
17537
+ this.selectedFeatures$.next(records.map((record) => record.entity));
17538
+ }));
17539
+ this.subscriptions$$.push(store.count$.subscribe((cnt) => {
17540
+ cnt >= 1
17541
+ ? (this.activeStore.layer.options.showInLayerList = true)
17542
+ : (this.activeStore.layer.options.showInLayerList = false);
17543
+ }));
17544
+ });
17545
+ this.onLayerChange(this.activeDrawingLayer);
17546
+ }
17399
17547
  }
17400
17548
  /**
17401
17549
  * Remove the drawing layer and the interactions
17402
17550
  * @internal
17403
17551
  */
17404
17552
  ngOnDestroy() {
17405
- this.drawControl.setOlMap(undefined);
17553
+ this.allLayers.forEach(layer => layer.opacity = 1);
17554
+ this.activeStore.state.updateAll({ selected: false });
17555
+ this.deactivateDrawControl();
17406
17556
  this.subscriptions$$.map((s) => s.unsubscribe());
17407
17557
  }
17408
17558
  /**
@@ -17413,61 +17563,20 @@ class DrawComponent {
17413
17563
  * @returns a Draw Control
17414
17564
  */
17415
17565
  createDrawControl(fillColor, strokeColor, strokeWidth) {
17416
- const drawControl = new DrawControl({
17566
+ const activeDrawControl = new DrawControl({
17417
17567
  geometryType: undefined,
17418
- drawingLayerSource: this.olDrawingLayerSource,
17568
+ drawingLayerSource: this.activeDrawingLayerSource,
17419
17569
  drawingLayerStyle: new olstyle.Style({}),
17420
17570
  interactionStyle: createInteractionStyle(fillColor, strokeColor, strokeWidth)
17421
17571
  });
17422
- return drawControl;
17572
+ return activeDrawControl;
17423
17573
  }
17424
17574
  /**
17425
17575
  * Store initialization, including drawing layer creation
17426
17576
  */
17427
- initStore() {
17428
- this.map.removeLayer(this.olDrawingLayer);
17429
- // this.map.addLayer()
17430
- this.olDrawingLayer = new VectorLayer({
17431
- isIgoInternalLayer: true,
17432
- id: 'igo-draw-layer',
17433
- title: this.languageService.translate.instant('igo.geo.draw.drawing'),
17434
- zIndex: 200,
17435
- source: new FeatureDataSource(),
17436
- style: (feature, resolution) => {
17437
- return this.drawStyleService.createIndividualElementStyle(feature, resolution, this.labelsAreShown, feature.get('fontStyle'), feature.get('drawingStyle').fill, feature.get('drawingStyle').stroke, feature.get('offsetX'), feature.get('offsetY'), this.icon);
17438
- },
17439
- showInLayerList: true,
17440
- exportable: true,
17441
- browsable: false,
17442
- workspace: {
17443
- enabled: false
17444
- }
17445
- });
17446
- tryBindStoreLayer(this.store, this.olDrawingLayer);
17447
- tryAddLoadingStrategy(this.store, new FeatureStoreLoadingStrategy({
17448
- motion: FeatureMotion.None
17449
- }));
17450
- tryAddSelectionStrategy(this.store, new FeatureStoreSelectionStrategy({
17451
- map: this.map,
17452
- motion: FeatureMotion.None,
17453
- many: true
17454
- }));
17455
- this.store.layer.visible = true;
17456
- this.store.source.ol.on('removefeature', (event) => {
17457
- const olGeometry = event.feature.getGeometry();
17458
- this.clearLabelsOfOlGeometry(olGeometry);
17459
- });
17460
- this.subscriptions$$.push(this.store.stateView
17461
- .manyBy$((record) => {
17462
- return record.state.selected === true;
17463
- })
17464
- .pipe(first())
17465
- .subscribe((records) => {
17466
- records.forEach((record) => {
17467
- record.state.selected = false;
17468
- });
17469
- }));
17470
- this.subscriptions$$.push(this.store.stateView
17577
+ initStore(newTitle, isNewLayer) {
17578
+ this.createLayer(newTitle, isNewLayer);
17579
+ this.subscriptions$$.push(this.activeStore.stateView
17471
17580
  .manyBy$((record) => {
17472
17581
  return record.state.selected === true;
17473
17582
  })
@@ -17476,13 +17585,10 @@ class DrawComponent {
17476
17585
  .subscribe((records) => {
17477
17586
  this.selectedFeatures$.next(records.map((record) => record.entity));
17478
17587
  }));
17479
- this.subscriptions$$.push(this.store.count$.subscribe((cnt) => {
17480
- if (cnt > 0) {
17481
- this.store.setLayerExtent();
17482
- }
17588
+ this.subscriptions$$.push(this.activeStore.count$.subscribe((cnt) => {
17483
17589
  cnt >= 1
17484
- ? (this.store.layer.options.showInLayerList = true)
17485
- : (this.store.layer.options.showInLayerList = false);
17590
+ ? (this.activeStore.layer.options.showInLayerList = true)
17591
+ : (this.activeStore.layer.options.showInLayerList = false);
17486
17592
  }));
17487
17593
  }
17488
17594
  /**
@@ -17549,12 +17655,12 @@ class DrawComponent {
17549
17655
  }
17550
17656
  // deletes the feature
17551
17657
  else {
17552
- this.olDrawingLayerSource
17658
+ this.activeDrawingLayerSource
17553
17659
  .getFeatures()
17554
17660
  .forEach((drawingLayerFeature) => {
17555
17661
  const geometry = drawingLayerFeature.getGeometry();
17556
17662
  if (olGeometry === geometry) {
17557
- this.olDrawingLayerSource.removeFeature(drawingLayerFeature);
17663
+ this.activeDrawingLayerSource.removeFeature(drawingLayerFeature);
17558
17664
  }
17559
17665
  });
17560
17666
  }
@@ -17568,10 +17674,10 @@ class DrawComponent {
17568
17674
  onDrawEnd(olGeometry, radius) {
17569
17675
  this.addFeatureToStore(olGeometry, radius);
17570
17676
  this.clearLabelsOfOlGeometry(olGeometry);
17571
- this.store.layer.ol.getSource().refresh();
17677
+ this.activeStore.layer.ol.getSource().refresh();
17572
17678
  }
17573
17679
  onModifyDraw(olGeometry) {
17574
- const entities = this.store.all();
17680
+ const entities = this.activeStore.all();
17575
17681
  entities.forEach((entity) => {
17576
17682
  const entityId = entity.properties.id;
17577
17683
  const olGeometryId = olGeometry.ol_uid;
@@ -17585,7 +17691,7 @@ class DrawComponent {
17585
17691
  });
17586
17692
  }
17587
17693
  onSelectDraw(olFeature, label) {
17588
- const entities = this.store.all();
17694
+ const entities = this.activeStore.all();
17589
17695
  const olGeometry = olFeature.getGeometry();
17590
17696
  olGeometry.ol_uid = olFeature.get('id');
17591
17697
  const olGeometryCoordinates = JSON.stringify(olGeometry.getCoordinates()[0]);
@@ -17656,7 +17762,7 @@ class DrawComponent {
17656
17762
  lon4326 = point4326[0];
17657
17763
  lat4326 = point4326[1];
17658
17764
  }
17659
- this.store.update({
17765
+ this.activeStore.update({
17660
17766
  type: FEATURE,
17661
17767
  geometry,
17662
17768
  projection: projection.getCode(),
@@ -17685,6 +17791,40 @@ class DrawComponent {
17685
17791
  stroke: ['']
17686
17792
  });
17687
17793
  }
17794
+ setupLayer(isNewLayer) {
17795
+ setTimeout(() => {
17796
+ const dialogRef = this.dialog.open(DrawLayerPopupComponent, {
17797
+ disableClose: false,
17798
+ });
17799
+ dialogRef.afterClosed().subscribe((label) => {
17800
+ if (dialogRef.componentInstance.confirmFlag) {
17801
+ this.activeStore.state.updateAll({ selected: false });
17802
+ this.activeStore = new FeatureStore([], { map: this.map });
17803
+ this.activeDrawingLayerSource = new OlVectorSource();
17804
+ this.activeDrawingLayer.opacity = 0;
17805
+ this.deactivateDrawControl();
17806
+ this.initStore(label, isNewLayer);
17807
+ this.activeDrawControl = this.createDrawControl(this.fillColor, this.strokeColor, this.strokeWidth);
17808
+ this.activeDrawControl.setGeometryType(this.currGeometryType);
17809
+ this.toggleDrawControl();
17810
+ this.stores.push(this.activeStore);
17811
+ this.drawControls.push([this.activeDrawingLayer.id, this.activeDrawControl]);
17812
+ this.drawControlsEvent.emit(this.drawControls);
17813
+ this.layersIDEvent.emit(this.activeDrawingLayer.id);
17814
+ this.isCreatingNewLayer = false;
17815
+ if (!this.labelsAreShown) {
17816
+ this.onToggleLabels();
17817
+ }
17818
+ this.activeLayerChange.emit(this.activeDrawingLayer);
17819
+ }
17820
+ else {
17821
+ this.select.value = this.activeDrawingLayer;
17822
+ this.select.selectionChange.emit(this.activeDrawingLayer);
17823
+ }
17824
+ });
17825
+ }, 250);
17826
+ }
17827
+ // HTML user interactions
17688
17828
  /**
17689
17829
  * Called when the user double-clicks the selected drawing
17690
17830
  */
@@ -17698,12 +17838,14 @@ class DrawComponent {
17698
17838
  this.dialog.open(DrawShorcutsComponent);
17699
17839
  }
17700
17840
  deleteDrawings() {
17701
- this.store.deleteMany(this.selectedFeatures$.value);
17841
+ this.activeStore.deleteMany(this.selectedFeatures$.value);
17702
17842
  this.selectedFeatures$.value.forEach((selectedFeature) => {
17703
- this.olDrawingLayerSource.getFeatures().forEach((drawingLayerFeature) => {
17843
+ this.activeDrawingLayerSource
17844
+ .getFeatures()
17845
+ .forEach((drawingLayerFeature) => {
17704
17846
  const geometry = drawingLayerFeature.getGeometry();
17705
17847
  if (selectedFeature.properties.id === geometry.ol_uid) {
17706
- this.olDrawingLayerSource.removeFeature(drawingLayerFeature);
17848
+ this.activeDrawingLayerSource.removeFeature(drawingLayerFeature);
17707
17849
  }
17708
17850
  });
17709
17851
  });
@@ -17716,8 +17858,9 @@ class DrawComponent {
17716
17858
  this.drawStyleService.toggleLabelsAreShown();
17717
17859
  this.labelsAreShown = !this.labelsAreShown;
17718
17860
  this.icon
17719
- ? this.onColorChange(this.labelsAreShown, true, this.fillColor, this.strokeColor)
17720
- : this.onColorChange(this.labelsAreShown, false, this.fillColor, this.strokeColor);
17861
+ ? this.elementStyle(this.labelsAreShown, true)
17862
+ : this.elementStyle(this.labelsAreShown, false);
17863
+ this.createDrawControl();
17721
17864
  }
17722
17865
  /**
17723
17866
  * Called when the user toggles the Draw control is toggled
@@ -17727,6 +17870,69 @@ class DrawComponent {
17727
17870
  toggleIsChecked ? this.toggleDrawControl() : this.deactivateDrawControl();
17728
17871
  }
17729
17872
  // User changes properties of a drawing element
17873
+ /**
17874
+ * Display the current layer with the current store and the current layerSource
17875
+ */
17876
+ onLayerChange(currLayer) {
17877
+ if (currLayer) {
17878
+ this.activeStore.state.updateAll({ selected: false });
17879
+ this.isCreatingNewLayer = false;
17880
+ this.activeDrawingLayer.opacity = 0;
17881
+ this.activeDrawingLayer = currLayer;
17882
+ this.activeDrawingLayer.opacity = 1;
17883
+ this.deactivateDrawControl();
17884
+ if (!this.labelsAreShown) {
17885
+ this.onToggleLabels();
17886
+ }
17887
+ this.activeStore = this.stores.find(store => store.layer.id === this.activeDrawingLayer.id);
17888
+ this.activeDrawControl = this.drawControls.find(dc => dc[0] === this.activeDrawingLayer.id)[1];
17889
+ this.activeDrawingLayerSource = this.activeDrawControl.olDrawingLayerSource;
17890
+ this.activeDrawControl.setGeometryType(this.currGeometryType);
17891
+ this.toggleDrawControl();
17892
+ }
17893
+ else {
17894
+ this.setupLayer(true);
17895
+ }
17896
+ this.activeLayerChange.emit(this.activeDrawingLayer);
17897
+ }
17898
+ createLayer(newTitle, isNewLayer) {
17899
+ for (const layer of this.allLayers) {
17900
+ let numberId = Number(layer.id.replace('igo-draw-layer', ''));
17901
+ this.layerCounterID = Math.max(numberId, this.layerCounterID);
17902
+ }
17903
+ this.activeDrawingLayer = new VectorLayer({
17904
+ isIgoInternalLayer: true,
17905
+ id: 'igo-draw-layer' + ++this.layerCounterID,
17906
+ title: isNewLayer
17907
+ ? newTitle
17908
+ : this.languageService.translate.instant('igo.geo.draw.drawing'),
17909
+ zIndex: 200,
17910
+ source: new FeatureDataSource(),
17911
+ style: (feature, resolution) => {
17912
+ return this.drawStyleService.createIndividualElementStyle(feature, resolution, this.labelsAreShown, feature.get('fontStyle'), feature.get('drawingStyle').fill, feature.get('drawingStyle').stroke, feature.get('offsetX'), feature.get('offsetY'), this.icon);
17913
+ },
17914
+ showInLayerList: true,
17915
+ exportable: true,
17916
+ browsable: false,
17917
+ workspace: {
17918
+ enabled: false
17919
+ }
17920
+ });
17921
+ tryBindStoreLayer(this.activeStore, this.activeDrawingLayer);
17922
+ tryAddLoadingStrategy(this.activeStore, new FeatureStoreLoadingStrategy({
17923
+ motion: FeatureMotion.None
17924
+ }));
17925
+ tryAddSelectionStrategy(this.activeStore, new FeatureStoreSelectionStrategy({
17926
+ map: this.map,
17927
+ motion: FeatureMotion.None,
17928
+ many: true
17929
+ }));
17930
+ this.activeStore.layer.visible = true;
17931
+ this.activeStore.source.ol.on('removefeature', (event) => {
17932
+ const olGeometry = event.feature.getGeometry();
17933
+ this.clearLabelsOfOlGeometry(olGeometry);
17934
+ });
17935
+ }
17730
17936
  /**
17731
17937
  * Called when the user changes the color in a color picker
17732
17938
  * @param labelsAreShown wheter the labels are shown or not
@@ -17739,16 +17945,14 @@ class DrawComponent {
17739
17945
  this.selectedFeatures$.value.forEach((feature) => {
17740
17946
  let olFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
17741
17947
  this.updateFillAndStrokeColor(olFeature, fillColor, strokeColor);
17742
- const entity = this.store
17948
+ const entity = this.activeStore
17743
17949
  .all()
17744
17950
  .find((e) => e.meta.id === olFeature.getId());
17745
17951
  entity.properties.drawingStyle.fill = olFeature.get('fillColor_');
17746
17952
  entity.properties.drawingStyle.stroke = olFeature.get('strokeColor_');
17747
- this.store.update(entity);
17953
+ this.activeStore.update(entity);
17748
17954
  });
17749
17955
  }
17750
- this.fillColor = fillColor;
17751
- this.strokeColor = strokeColor;
17752
17956
  this.elementStyle(labelsAreShown, isAnIcon);
17753
17957
  this.createDrawControl();
17754
17958
  }
@@ -17763,12 +17967,12 @@ class DrawComponent {
17763
17967
  this.selectedFeatures$.value.forEach((feature) => {
17764
17968
  let olFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
17765
17969
  this.updateFontSizeAndStyle(olFeature, size, style);
17766
- const entity = this.store
17970
+ const entity = this.activeStore
17767
17971
  .all()
17768
17972
  .find((e) => e.meta.id === olFeature.getId());
17769
17973
  entity.properties.fontStyle = olFeature.get('fontStyle_');
17770
- this.store.update(entity);
17771
- olFeature = this.store.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
17974
+ this.activeStore.update(entity);
17975
+ olFeature = this.activeStore.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
17772
17976
  olFeature.setProperties({ fontStyle: entity.properties.fontStyle });
17773
17977
  olFeature.changed();
17774
17978
  });
@@ -17790,13 +17994,13 @@ class DrawComponent {
17790
17994
  this.selectedFeatures$.value.forEach((feature) => {
17791
17995
  let olFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
17792
17996
  this.updateOffset(olFeature, offsetX, offsetY);
17793
- const entity = this.store
17997
+ const entity = this.activeStore
17794
17998
  .all()
17795
17999
  .find((e) => e.meta.id === olFeature.getId());
17796
18000
  entity.properties.offsetX = olFeature.get('offsetX_');
17797
18001
  entity.properties.offsetY = olFeature.get('offsetY_');
17798
- this.store.update(entity);
17799
- olFeature = this.store.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
18002
+ this.activeStore.update(entity);
18003
+ olFeature = this.activeStore.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
17800
18004
  olFeature.setProperties({ offsetX: entity.properties.offsetX, offsetY: entity.properties.offsetY });
17801
18005
  olFeature.changed();
17802
18006
  });
@@ -17813,7 +18017,8 @@ class DrawComponent {
17813
18017
  * @param geometryType the geometry type selected by the user
17814
18018
  */
17815
18019
  onGeometryTypeChange(geometryType) {
17816
- this.drawControl.setGeometryType(geometryType);
18020
+ this.currGeometryType = geometryType;
18021
+ this.activeDrawControl.setGeometryType(geometryType);
17817
18022
  this.toggleDrawControl();
17818
18023
  }
17819
18024
  // Updates the properties of olFeature inputted
@@ -17844,13 +18049,57 @@ class DrawComponent {
17844
18049
  offsetY_: offsetY
17845
18050
  }, true);
17846
18051
  }
17847
- /**
17848
- * Check the amount of rows as a possible alternative
17849
- */
18052
+ // Updates values of the selected element on the HTML view
18053
+ getFeatureFontSize() {
18054
+ return this.selectedFeatures$.value.length > 0
18055
+ ? this.selectedFeatures$.value[0].properties.fontStyle
18056
+ .split(' ')[0]
18057
+ .replace('px', '')
18058
+ : '20';
18059
+ }
18060
+ getFeatureFontStyle() {
18061
+ return this.selectedFeatures$.value.length > 0
18062
+ ? this.selectedFeatures$.value[0].properties.fontStyle.substring(this.selectedFeatures$.value[0].properties.fontStyle.indexOf(' ') + 1)
18063
+ : FontType.Arial;
18064
+ }
18065
+ getFeatureFillColor() {
18066
+ return this.selectedFeatures$.value.length > 0
18067
+ ? this.selectedFeatures$.value[0].properties.drawingStyle.fill
18068
+ : 'rgba(255,255,255,0.4)';
18069
+ }
18070
+ getFeatureStrokeColor() {
18071
+ return this.selectedFeatures$.value.length > 0
18072
+ ? this.selectedFeatures$.value[0].properties.drawingStyle.stroke
18073
+ : 'rgba(143,7,7,1)';
18074
+ }
18075
+ getFeatureOffsetX() {
18076
+ return this.selectedFeatures$.value.length > 0
18077
+ ? this.selectedFeatures$.value[0].properties.offsetX
18078
+ : this.drawStyleService.getOffsetX();
18079
+ }
18080
+ getFeatureOffsetY() {
18081
+ return this.selectedFeatures$.value.length > 0
18082
+ ? this.selectedFeatures$.value[0].properties.offsetY
18083
+ : '0';
18084
+ }
18085
+ get allFontStyles() {
18086
+ return Object.values(FontType);
18087
+ }
18088
+ get allLayers() {
18089
+ return this.map.layers.filter((layer) => layer.id.includes('igo-draw-layer'));
18090
+ }
17850
18091
  updateHeightTable() {
17851
- this.numberOfDrawings = this.store.count$.getValue();
17852
- this.numberOfDrawings > 10 ? this.tableTemplate.tableHeight = '35vh' : this.tableTemplate.tableHeight = 'auto';
18092
+ // Check the amount of rows as a possible alternative
18093
+ this.numberOfDrawings = this.activeStore.count$.getValue();
18094
+ this.numberOfDrawings > 10
18095
+ ? (this.tableTemplate.tableHeight = '35vh')
18096
+ : (this.tableTemplate.tableHeight = 'auto');
17853
18097
  }
18098
+ updateActiveLayer() {
18099
+ let currLayer = this.allLayers.find(layer => layer.title === this.activeDrawingLayer.title);
18100
+ return currLayer ? currLayer : this.allLayers[0];
18101
+ }
18102
+ // Helper methods
17854
18103
  /**
17855
18104
  * Activate the correct control
17856
18105
  */
@@ -17875,20 +18124,20 @@ class DrawComponent {
17875
18124
  * @param olGeometry the new geometry to insert in the store
17876
18125
  */
17877
18126
  replaceFeatureInStore(entity, olGeometry, radius) {
17878
- this.store.delete(entity);
18127
+ this.activeStore.delete(entity);
17879
18128
  this.onDrawEnd(olGeometry, radius);
17880
18129
  }
17881
18130
  /**
17882
18131
  * Deactivate the active draw control
17883
18132
  */
17884
18133
  deactivateDrawControl() {
17885
- if (!this.drawControl) {
18134
+ if (!this.activeDrawControl) {
17886
18135
  return;
17887
18136
  }
17888
18137
  if (this.drawEnd$$) {
17889
18138
  this.drawEnd$$.unsubscribe();
17890
18139
  }
17891
- this.drawControl.setOlMap(undefined);
18140
+ this.activeDrawControl.setOlMap(undefined);
17892
18141
  this.drawControlIsActive = false;
17893
18142
  }
17894
18143
  /**
@@ -17897,37 +18146,43 @@ class DrawComponent {
17897
18146
  activateDrawControl() {
17898
18147
  this.drawControlIsDisabled = false;
17899
18148
  this.drawControlIsActive = true;
17900
- this.drawEnd$$ = this.drawControl.end$.subscribe((olGeometry) => {
18149
+ this.drawEnd$$ = this.activeDrawControl.end$.subscribe((olGeometry) => {
17901
18150
  this.openDrawDialog(olGeometry, true);
17902
18151
  });
17903
- this.drawControl.modify$.subscribe((olGeometry) => {
18152
+ this.activeDrawControl.modify$.subscribe((olGeometry) => {
17904
18153
  this.onModifyDraw(olGeometry);
17905
18154
  });
17906
18155
  if (!this.drawSelect$$) {
17907
- this.drawSelect$$ = this.drawControl.select$.subscribe((olFeature) => {
18156
+ this.drawSelect$$ = this.activeDrawControl.select$.subscribe((olFeature) => {
17908
18157
  this.openDrawDialog(olFeature, false);
17909
18158
  });
17910
18159
  }
17911
- this.drawControl.setOlMap(this.map.ol, true);
18160
+ this.activeDrawControl.setOlMap(this.map.ol, true);
17912
18161
  }
17913
18162
  /**
17914
18163
  * Recreates the style of the feature stored
17915
18164
  */
17916
18165
  elementStyle(labelsAreShown, isAnIcon) {
17917
18166
  if (isAnIcon) {
17918
- this.store.layer.ol.setStyle((feature, resolution) => {
18167
+ this.activeStore.layer.ol.setStyle((feature, resolution) => {
17919
18168
  return this.drawStyleService.createIndividualElementStyle(feature, resolution, labelsAreShown, feature.get('fontStyle'), feature.get('drawingStyle').fill, feature.get('drawingStyle').stroke, feature.get('offsetX'), feature.get('offsetY'), this.icon);
17920
18169
  });
17921
18170
  }
17922
18171
  else {
17923
- this.store.layer.ol.setStyle((feature, resolution) => {
18172
+ this.activeStore.layer.ol.setStyle((feature, resolution) => {
17924
18173
  return this.drawStyleService.createIndividualElementStyle(feature, resolution, labelsAreShown, feature.get('fontStyle'), feature.get('drawingStyle').fill, feature.get('drawingStyle').stroke, feature.get('offsetX'), feature.get('offsetY'));
17925
18174
  });
17926
18175
  }
17927
18176
  }
17928
18177
  }
17929
18178
  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)); };
17930
- DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent, selectors: [["igo-draw"]], inputs: { map: "map", store: "store" }, outputs: { fillColor: "fillColor", strokeColor: "strokeColor", strokeWidth: "strokeWidth", fontSize: "fontSize", fontStyle: "fontStyle" }, decls: 33, vars: 36, consts: [[1, "geometry-type-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [1, "draw-options", "mat-typography"], [3, "disabled", "checked", "labelPosition", "change"], [3, "checked", "labelPosition", "change"], ["class", "deleteBtn", "mat-icon-button", "", "color", "warn", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "disabled", "click", 4, "ngIf"], ["id", "storeElements", 1, "table-compact", 3, "store", "template", "dblclick"], ["table", ""], [1, "icon-options"], [4, "ngIf"], ["mat-icon-button", "", "color", "accent", "disableRipple", "true", 3, "click"], ["svgIcon", "keyboard-outline", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "shortcuts-icon", 3, "matTooltip"], ["mat-raised-button", "", "color", "primary", 3, "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "color", "warn", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "deleteBtn", 3, "matTooltip", "disabled", "click"], ["svgIcon", "delete"], ["class", "box", 4, "ngIf"], ["value", "", 3, "click"], [3, "value", "click", 4, "ngFor", "ngForOf"], [1, "box"], [3, "src"], [3, "value", "click"], ["mat-raised-button", "", "color", "primary", 3, "matTooltip", "click"], ["svgIcon", "palette", "matBadgeColor", "warn", "matBadgeSize", "medium", 1, "style-icon", 3, "matBadge"]], template: function DrawComponent_Template(rf, ctx) { if (rf & 1) {
18179
+ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent, selectors: [["igo-draw"]], viewQuery: function DrawComponent_Query(rf, ctx) { if (rf & 1) {
18180
+ i0.ɵɵviewQuery(_c0$c, 5);
18181
+ } if (rf & 2) {
18182
+ let _t;
18183
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.select = _t.first);
18184
+ } }, inputs: { map: "map", stores: "stores", drawControls: "drawControls", activeDrawingLayer: "activeDrawingLayer" }, outputs: { activeLayerChange: "activeLayerChange", drawControlsEvent: "drawControlsEvent", layersIDEvent: "layersIDEvent", fillColor: "fillColor", strokeColor: "strokeColor", strokeWidth: "strokeWidth", fontSize: "fontSize", fontStyle: "fontStyle" }, decls: 47, vars: 45, consts: [[1, "geometry-type-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [1, "draw-options", "mat-typography"], [3, "disabled", "checked", "labelPosition", "change"], [3, "checked", "labelPosition", "change"], ["appearance", "outline", 1, "layer-select"], [3, "value", "selectionChange"], ["selectedLayer", ""], [3, "value", 4, "ngFor", "ngForOf"], ["id", "createNewLayer"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["class", "deleteBtn", "mat-icon-button", "", "color", "warn", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "disabled", "click", 4, "ngIf"], [1, "table-compact", 3, "store", "template", "dblclick"], ["table", ""], [1, "icon-options"], [4, "ngIf"], ["mat-icon-button", "", "color", "accent", "disableRipple", "true", 3, "click"], ["svgIcon", "keyboard-outline", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "shortcuts-icon", 3, "matTooltip"], ["mat-raised-button", "", "color", "primary", 3, "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click"], [3, "svgIcon"], ["mat-icon-button", "", "color", "warn", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "deleteBtn", 3, "matTooltip", "disabled", "click"], ["svgIcon", "delete"], ["class", "box", 4, "ngIf"], ["value", "", 3, "click"], [3, "value", "click", 4, "ngFor", "ngForOf"], [1, "box"], [3, "src"], [3, "value", "click"], ["mat-raised-button", "", "color", "primary", 3, "matTooltip", "click"], ["svgIcon", "palette", "matBadgeColor", "warn", "matBadgeSize", "medium", 1, "style-icon", 3, "matBadge"]], template: function DrawComponent_Template(rf, ctx) { if (rf & 1) {
18185
+ const _r21 = i0.ɵɵgetCurrentView();
17931
18186
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "mat-button-toggle-group", 1);
17932
18187
  i0.ɵɵlistener("change", function DrawComponent_Template_mat_button_toggle_group_change_2_listener($event) { return ctx.onGeometryTypeChange($event.value); });
17933
18188
  i0.ɵɵelementStart(3, "mat-button-toggle", 2);
@@ -17956,20 +18211,35 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
17956
18211
  i0.ɵɵtext(20);
17957
18212
  i0.ɵɵpipe(21, "translate");
17958
18213
  i0.ɵɵelementEnd()();
17959
- i0.ɵɵelementStart(22, "div");
17960
- i0.ɵɵtemplate(23, DrawComponent_button_23_Template, 4, 6, "button", 6);
17961
- i0.ɵɵelementStart(24, "div")(25, "igo-entity-table", 7, 8);
17962
- i0.ɵɵlistener("dblclick", function DrawComponent_Template_igo_entity_table_dblclick_25_listener() { return ctx.editLabelDrawing(); });
18214
+ i0.ɵɵelement(22, "mat-divider");
18215
+ i0.ɵɵelementStart(23, "div")(24, "mat-form-field", 6)(25, "mat-label");
18216
+ i0.ɵɵtext(26);
18217
+ i0.ɵɵpipe(27, "translate");
18218
+ i0.ɵɵelementEnd();
18219
+ i0.ɵɵelementStart(28, "mat-select", 7, 8);
18220
+ i0.ɵɵlistener("selectionChange", function DrawComponent_Template_mat_select_selectionChange_28_listener() { i0.ɵɵrestoreView(_r21); const _r0 = i0.ɵɵreference(29); return i0.ɵɵresetView(ctx.onLayerChange(_r0.value)); });
18221
+ i0.ɵɵtemplate(30, DrawComponent_mat_option_30_Template, 2, 2, "mat-option", 9);
18222
+ i0.ɵɵelementStart(31, "mat-option", 10);
18223
+ i0.ɵɵtext(32);
18224
+ i0.ɵɵpipe(33, "translate");
17963
18225
  i0.ɵɵelementEnd()()();
17964
- i0.ɵɵelementStart(27, "div", 9);
17965
- i0.ɵɵtemplate(28, DrawComponent_mat_form_field_28_Template, 11, 8, "mat-form-field", 10);
18226
+ i0.ɵɵtemplate(34, DrawComponent_button_34_Template, 4, 7, "button", 11);
17966
18227
  i0.ɵɵelementEnd();
17967
- i0.ɵɵelementStart(29, "button", 11);
17968
- i0.ɵɵlistener("click", function DrawComponent_Template_button_click_29_listener() { return ctx.openShorcutsDialog(); });
17969
- i0.ɵɵelement(30, "mat-icon", 12);
17970
- i0.ɵɵpipe(31, "translate");
18228
+ i0.ɵɵelement(35, "mat-divider");
18229
+ i0.ɵɵelementStart(36, "div");
18230
+ i0.ɵɵtemplate(37, DrawComponent_button_37_Template, 4, 6, "button", 12);
18231
+ i0.ɵɵelementStart(38, "div")(39, "igo-entity-table", 13, 14);
18232
+ i0.ɵɵlistener("dblclick", function DrawComponent_Template_igo_entity_table_dblclick_39_listener() { return ctx.editLabelDrawing(); });
18233
+ i0.ɵɵelementEnd()()();
18234
+ i0.ɵɵelementStart(41, "div", 15);
18235
+ i0.ɵɵtemplate(42, DrawComponent_mat_form_field_42_Template, 11, 8, "mat-form-field", 16);
18236
+ i0.ɵɵelementEnd();
18237
+ i0.ɵɵelementStart(43, "button", 17);
18238
+ i0.ɵɵlistener("click", function DrawComponent_Template_button_click_43_listener() { return ctx.openShorcutsDialog(); });
18239
+ i0.ɵɵelement(44, "mat-icon", 18);
18240
+ i0.ɵɵpipe(45, "translate");
17971
18241
  i0.ɵɵelementEnd();
17972
- i0.ɵɵtemplate(32, DrawComponent_button_32_Template, 5, 7, "button", 13);
18242
+ i0.ɵɵtemplate(46, DrawComponent_button_46_Template, 5, 7, "button", 19);
17973
18243
  i0.ɵɵelementEnd();
17974
18244
  } if (rf & 2) {
17975
18245
  i0.ɵɵadvance(2);
@@ -17977,38 +18247,48 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
17977
18247
  i0.ɵɵadvance(1);
17978
18248
  i0.ɵɵproperty("value", ctx.geometryType.Point);
17979
18249
  i0.ɵɵadvance(1);
17980
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 22, "igo.geo.draw." + ctx.geometryType.Point), " ");
18250
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 27, "igo.geo.draw." + ctx.geometryType.Point), " ");
17981
18251
  i0.ɵɵadvance(2);
17982
18252
  i0.ɵɵproperty("value", ctx.geometryType.LineString);
17983
18253
  i0.ɵɵadvance(1);
17984
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 24, "igo.geo.draw." + ctx.geometryType.LineString), " ");
18254
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 29, "igo.geo.draw." + ctx.geometryType.LineString), " ");
17985
18255
  i0.ɵɵadvance(2);
17986
18256
  i0.ɵɵproperty("value", ctx.geometryType.Polygon);
17987
18257
  i0.ɵɵadvance(1);
17988
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 26, "igo.geo.draw." + ctx.geometryType.Polygon), " ");
18258
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 31, "igo.geo.draw." + ctx.geometryType.Polygon), " ");
17989
18259
  i0.ɵɵadvance(2);
17990
18260
  i0.ɵɵproperty("value", ctx.geometryType.Circle);
17991
18261
  i0.ɵɵadvance(1);
17992
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 28, "igo.geo.draw." + ctx.geometryType.Circle), " ");
18262
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 33, "igo.geo.draw." + ctx.geometryType.Circle), " ");
17993
18263
  i0.ɵɵadvance(3);
17994
18264
  i0.ɵɵproperty("disabled", ctx.drawControlIsDisabled)("checked", ctx.drawControlIsActive)("labelPosition", "before");
17995
18265
  i0.ɵɵadvance(1);
17996
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 30, "igo.geo.spatialFilter.drawControl"), " ");
18266
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 35, "igo.geo.spatialFilter.drawControl"), " ");
17997
18267
  i0.ɵɵadvance(2);
17998
18268
  i0.ɵɵproperty("checked", ctx.labelsAreShown)("labelPosition", "before");
17999
18269
  i0.ɵɵadvance(1);
18000
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 32, "igo.geo.draw.toggleMapTooltips"), " ");
18270
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 37, "igo.geo.draw.toggleMapTooltips"), " ");
18271
+ i0.ɵɵadvance(6);
18272
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(27, 39, "igo.geo.draw.layer.title"));
18273
+ i0.ɵɵadvance(2);
18274
+ i0.ɵɵproperty("value", ctx.updateActiveLayer());
18275
+ i0.ɵɵadvance(2);
18276
+ i0.ɵɵproperty("ngForOf", ctx.allLayers);
18277
+ i0.ɵɵadvance(2);
18278
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(33, 41, "igo.geo.draw.layer.createNewLayer"), " ");
18279
+ i0.ɵɵadvance(2);
18280
+ i0.ɵɵproperty("ngIf", ctx.activeDrawingLayer);
18001
18281
  i0.ɵɵadvance(3);
18002
- i0.ɵɵproperty("ngIf", ctx.store.count$.getValue() > 0);
18282
+ i0.ɵɵproperty("ngIf", ctx.activeStore.count$.getValue() > 0);
18003
18283
  i0.ɵɵadvance(2);
18004
- i0.ɵɵproperty("store", ctx.store)("template", ctx.tableTemplate);
18284
+ i0.ɵɵproperty("store", ctx.activeStore)("template", ctx.tableTemplate);
18005
18285
  i0.ɵɵadvance(3);
18006
18286
  i0.ɵɵproperty("ngIf", ctx.icons.length >= 1);
18007
18287
  i0.ɵɵadvance(2);
18008
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(31, 34, "igo.geo.draw.shortcuts"));
18288
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(45, 43, "igo.geo.draw.shortcuts"));
18009
18289
  i0.ɵɵadvance(2);
18010
18290
  i0.ɵɵproperty("ngIf", ctx.selectedFeatures$.value.length);
18011
- } }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i13.MatLabel, i2.MatIcon, i7$1.MatBadge, i4.MatTooltip, i15.MatSelect, i15.MatSelectTrigger, i9.MatOption, i15$1.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}.deleteBtn[_ngcontent-%COMP%]{margin-left:12px}img[_ngcontent-%COMP%]{width:100%;height:100%}.box[_ngcontent-%COMP%]{width:25px;height:25px}"], data: { animation: [
18291
+ } }, dependencies: [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, 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}"], data: { animation: [
18012
18292
  trigger('openClose', [
18013
18293
  state('open', style({
18014
18294
  opacity: 1
@@ -18033,8 +18313,22 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
18033
18313
  transition('open => closed', [animate('600ms ease')]),
18034
18314
  transition('closed => open', [animate('800ms ease')])
18035
18315
  ])
18036
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\r\n <div class=\"geometry-type-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n (change)=\"onGeometryTypeChange($event.value)\" [value]=\"geometryType.Point\">\r\n <mat-button-toggle [value]=\"geometryType.Point\">\r\n {{'igo.geo.draw.' + geometryType.Point | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.LineString\">\r\n {{'igo.geo.draw.' + geometryType.LineString | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Polygon\">\r\n {{'igo.geo.draw.' + geometryType.Polygon | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Circle\">\r\n {{'igo.geo.draw.' + geometryType.Circle | translate}}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n\r\n <div class=\"draw-options mat-typography\">\r\n <mat-slide-toggle\r\n [disabled]=\"drawControlIsDisabled\"\r\n [checked]=\"drawControlIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleDrawControl($event.checked)\">\r\n {{'igo.geo.spatialFilter.drawControl' | translate}}\r\n </mat-slide-toggle>\r\n\r\n <mat-slide-toggle\r\n [checked]=\"labelsAreShown\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleLabels()\">\r\n {{'igo.geo.draw.toggleMapTooltips' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <div>\r\n <button *ngIf=\"store.count$.getValue() > 0\"\r\n class=\"deleteBtn\"\r\n mat-icon-button\r\n color=\"warn\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.delete' | translate\"\r\n [disabled]=\"(selectedFeatures$ | async).length === 0\"\r\n (click)=\"deleteDrawings()\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n\r\n <div>\r\n <igo-entity-table\r\n #table\r\n class=\"table-compact\"\r\n id=\"storeElements\"\r\n [store]=\"store\"\r\n [template]=\"tableTemplate\"\r\n (dblclick)=\"editLabelDrawing()\">\r\n </igo-entity-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"icon-options\">\r\n <mat-form-field *ngIf=\"icons.length >= 1\">\r\n <mat-label>{{ 'igo.geo.draw.icon' | translate }}</mat-label>\r\n <mat-select>\r\n <mat-select-trigger>\r\n <div *ngIf=\"icon\" class=\"box\">\r\n <img src=\"{{ icon }}\">\r\n </div>\r\n </mat-select-trigger>\r\n <mat-option value=\"\" (click)=\"onIconChange()\">{{ 'igo.geo.draw.noIcon' | translate }}</mat-option>\r\n <mat-option\r\n *ngFor=\"let icon_html of icons\"\r\n [value]=\"icon_html\"\r\n (click)=\"onIconChange(icon_html)\">\r\n <div class=\"box\">\r\n <img src=\"{{ icon_html }}\">\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button\r\n mat-icon-button\r\n color=\"accent\"\r\n disableRipple=\"true\"\r\n (click)=\"openShorcutsDialog()\">\r\n <mat-icon\r\n class=\"shortcuts-icon\"\r\n svgIcon=\"keyboard-outline\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.shortcuts' | translate\">\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"selectedFeatures$.value.length\"\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"openStyleModalDialog()\"\r\n [matTooltip]=\"'igo.geo.layer.style.styleModalTooltip' | translate\">\r\n {{'igo.geo.layer.style.styleModal' | translate}}\r\n <mat-icon\r\n class=\"style-icon\"\r\n svgIcon=\"palette\"\r\n [matBadge]=\"selectedFeatures$.value.length\"\r\n matBadgeColor=\"warn\"\r\n matBadgeSize=\"medium\">\r\n </mat-icon>\r\n </button>\r\n</div>\r\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}.deleteBtn{margin-left:12px}img{width:100%;height:100%}.box{width:25px;height:25px}\n"] }]
18037
- }], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i1.MatDialog }, { type: DrawIconService }]; }, { fillColor: [{
18316
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\r\n <div class=\"geometry-type-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n (change)=\"onGeometryTypeChange($event.value)\" [value]=\"geometryType.Point\">\r\n <mat-button-toggle [value]=\"geometryType.Point\">\r\n {{'igo.geo.draw.' + geometryType.Point | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.LineString\">\r\n {{'igo.geo.draw.' + geometryType.LineString | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Polygon\">\r\n {{'igo.geo.draw.' + geometryType.Polygon | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Circle\">\r\n {{'igo.geo.draw.' + geometryType.Circle | translate}}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n\r\n <div class=\"draw-options mat-typography\">\r\n <mat-slide-toggle\r\n [disabled]=\"drawControlIsDisabled\"\r\n [checked]=\"drawControlIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleDrawControl($event.checked)\">\r\n {{'igo.geo.spatialFilter.drawControl' | translate}}\r\n </mat-slide-toggle>\r\n\r\n <mat-slide-toggle\r\n [checked]=\"labelsAreShown\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleLabels()\"\r\n >\r\n {{ 'igo.geo.draw.toggleMapTooltips' | translate }}\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <div>\r\n <mat-form-field appearance=\"outline\" class=\"layer-select\">\r\n <mat-label>{{'igo.geo.draw.layer.title' | translate}}</mat-label>\r\n <mat-select #selectedLayer (selectionChange)=\"onLayerChange(selectedLayer.value)\" [value]=\"updateActiveLayer()\">\r\n <mat-option *ngFor=\"let layer of allLayers\" [value]=\"layer\">\r\n {{ layer.title }}\r\n </mat-option>\r\n <mat-option id=\"createNewLayer\" >\r\n {{'igo.geo.draw.layer.createNewLayer' | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button\r\n *ngIf=\"activeDrawingLayer\"\r\n mat-icon-button\r\n [color]=\"activeDrawingLayer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"activeDrawingLayer.visible ?\r\n ('igo.geo.layer.hideLayer' | translate) :\r\n ('igo.geo.layer.showLayer' | translate)\"\r\n (click)=\"activeDrawingLayer.visible = !activeDrawingLayer.visible\">\r\n <mat-icon\r\n [svgIcon]=\"activeDrawingLayer.visible ? 'eye' : 'eye-off'\">\r\n </mat-icon>\r\n </button>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div>\r\n <button\r\n *ngIf=\"activeStore.count$.getValue() > 0\"\r\n class=\"deleteBtn\"\r\n mat-icon-button\r\n color=\"warn\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.delete' | translate\"\r\n [disabled]=\"(selectedFeatures$ | async).length === 0\"\r\n (click)=\"deleteDrawings()\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n\r\n <div>\r\n <igo-entity-table\r\n #table\r\n class=\"table-compact\"\r\n [store]=\"activeStore\"\r\n [template]=\"tableTemplate\"\r\n (dblclick)=\"editLabelDrawing()\">\r\n </igo-entity-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"icon-options\">\r\n <mat-form-field *ngIf=\"icons.length >= 1\">\r\n <mat-label>{{ 'igo.geo.draw.icon' | translate }}</mat-label>\r\n <mat-select>\r\n <mat-select-trigger>\r\n <div *ngIf=\"icon\" class=\"box\">\r\n <img src=\"{{ icon }}\">\r\n </div>\r\n </mat-select-trigger>\r\n <mat-option value=\"\" (click)=\"onIconChange()\">{{ 'igo.geo.draw.noIcon' | translate }}</mat-option>\r\n <mat-option\r\n *ngFor=\"let icon_html of icons\"\r\n [value]=\"icon_html\"\r\n (click)=\"onIconChange(icon_html)\">\r\n <div class=\"box\">\r\n <img src=\"{{ icon_html }}\">\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button\r\n mat-icon-button\r\n color=\"accent\"\r\n disableRipple=\"true\"\r\n (click)=\"openShorcutsDialog()\"\r\n >\r\n <mat-icon\r\n class=\"shortcuts-icon\"\r\n svgIcon=\"keyboard-outline\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.shortcuts' | translate\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"selectedFeatures$.value.length\"\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"openStyleModalDialog()\"\r\n [matTooltip]=\"'igo.geo.layer.style.styleModalTooltip' | translate\">\r\n {{'igo.geo.layer.style.styleModal' | translate}}\r\n <mat-icon\r\n class=\"style-icon\"\r\n svgIcon=\"palette\"\r\n [matBadge]=\"selectedFeatures$.value.length\"\r\n matBadgeColor=\"warn\"\r\n matBadgeSize=\"medium\">\r\n </mat-icon>\r\n </button>\r\n</div>\r\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}\n"] }]
18317
+ }], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i1.MatDialog }, { type: DrawIconService }]; }, { map: [{
18318
+ type: Input
18319
+ }], stores: [{
18320
+ type: Input
18321
+ }], drawControls: [{
18322
+ type: Input
18323
+ }], activeDrawingLayer: [{
18324
+ type: Input
18325
+ }], activeLayerChange: [{
18326
+ type: Output
18327
+ }], drawControlsEvent: [{
18328
+ type: Output
18329
+ }], layersIDEvent: [{
18330
+ type: Output
18331
+ }], fillColor: [{
18038
18332
  type: Output
18039
18333
  }], strokeColor: [{
18040
18334
  type: Output
@@ -18044,10 +18338,9 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
18044
18338
  type: Output
18045
18339
  }], fontStyle: [{
18046
18340
  type: Output
18047
- }], map: [{
18048
- type: Input
18049
- }], store: [{
18050
- type: Input
18341
+ }], select: [{
18342
+ type: ViewChild,
18343
+ args: ['selectedLayer']
18051
18344
  }] }); })();
18052
18345
 
18053
18346
  function StyleModalComponent_div_6_Template(rf, ctx) { if (rf & 1) {
@@ -18456,7 +18749,7 @@ i0.ɵɵsetComponentScope(LayerItemComponent, [i1$1.NgClass, i1$1.NgIf, i2.MatIco
18456
18749
  i0.ɵɵsetComponentScope(LayerLegendItemComponent, [i4.MatTooltip, i5.MatListItem, i9.MatLine, LayerLegendComponent], []);
18457
18750
  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$1.MatCheckbox, i5$1.ListItemDirective, i5$1.ListComponent, i5$1.PanelComponent, LayerItemComponent,
18458
18751
  LayerListToolComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
18459
- i0.ɵɵsetComponentScope(LayerLegendListComponent, [i1$1.NgForOf, i1$1.NgIf, i11.MatDivider, i15$1.MatSlideToggle, i4.MatTooltip, i5$1.ListItemDirective, i5$1.ListComponent, LayerLegendItemComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
18752
+ 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]);
18460
18753
 
18461
18754
  /**
18462
18755
  * @ignore
@@ -19805,11 +20098,11 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
19805
20098
  BrowserModule,
19806
20099
  BrowserAnimationsModule
19807
20100
  ],
19808
- declarations: [DrawComponent, DrawPopupComponent, DrawShorcutsComponent],
20101
+ declarations: [DrawComponent, DrawPopupComponent, DrawLayerPopupComponent, DrawShorcutsComponent],
19809
20102
  exports: [DrawComponent]
19810
20103
  }]
19811
20104
  }], null, null); })();
19812
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoDrawModule, { declarations: [DrawComponent, DrawPopupComponent, DrawShorcutsComponent], imports: [FormsModule,
20105
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoDrawModule, { declarations: [DrawComponent, DrawPopupComponent, DrawLayerPopupComponent, DrawShorcutsComponent], imports: [FormsModule,
19813
20106
  ReactiveFormsModule,
19814
20107
  CommonModule,
19815
20108
  MatButtonModule,
@@ -23430,7 +23723,7 @@ TimeFilterFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Tim
23430
23723
  i0.ɵɵproperty("ngIf", !ctx.isRange && ctx.style === "slider" && ctx.type === "year");
23431
23724
  i0.ɵɵadvance(1);
23432
23725
  i0.ɵɵproperty("ngIf", ctx.style === "slider" && ctx.type !== "year");
23433
- } }, 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, i15$1.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}"] });
23726
+ } }, 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}"] });
23434
23727
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeFilterFormComponent, [{
23435
23728
  type: Component,
23436
23729
  args: [{ selector: 'igo-time-filter-form', template: "<div *ngIf=\"style === 'calendar' && type !=='year'\">\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle class=\"time-filter-mat-datetimepicker-toggle\" [for]=\"datetimePicker\" matSuffix></mat-datetimepicker-toggle>\r\n <mat-datetimepicker #datetimePicker type=\"{{type}}\" openOnFocus=\"true\" timeInterval=\"5\"></mat-datetimepicker>\r\n <input matInput autocomplete=\"false\"\r\n placeholder=\"{{'igo.geo.timeFilter.date' | translate}}\"\r\n [matDatetimepicker]=\"datetimePicker\"\r\n [(ngModel)]=\"date\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\">\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle class=\"time-filter-mat-datetimepicker-toggle\" [for]=\"minDatetimePicker\" matSuffix></mat-datetimepicker-toggle>\r\n <mat-datetimepicker #minDatetimePicker type=\"{{type}}\" openOnFocus=\"true\" timeInterval=\"5\"></mat-datetimepicker>\r\n <input matInput autocomplete=\"false\"\r\n placeholder=\"{{'igo.geo.timeFilter.startDate' | translate}}\"\r\n [matDatetimepicker]=\"minDatetimePicker\"\r\n [(ngModel)]=\"startDate\"\r\n [min]=\"min\"\r\n [max]=\"getRangeMaxDate()\"\r\n readonly=\"readonly\"\r\n (input)=\"startDate\"\r\n (dateChange)=\"handleDateChange($event)\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle class=\"time-filter-mat-datetimepicker-toggle\" [for]=\"maxDatetimePicker\" matSuffix></mat-datetimepicker-toggle>\r\n <mat-datetimepicker #maxDatetimePicker type=\"{{type}}\" openOnFocus=\"true\" timeInterval=\"5\"></mat-datetimepicker>\r\n <input matInput autocomplete=\"false\"\r\n placeholder=\"{{'igo.geo.timeFilter.endDate' | translate}}\"\r\n [matDatetimepicker]=\"maxDatetimePicker\"\r\n [(ngModel)]=\"endDate\"\r\n [min]=\"getRangeMinDate()\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"style === 'calendar' && type ==='year'\">\r\n\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'igo.geo.timeFilter.date' | translate}}\" [(ngModel)]=\"year\" (selectionChange)=\"handleYearChange($event)\">\r\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{year}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'igo.geo.timeFilter.startDate' | translate}}\" [(ngModel)]=\"startYear\" (selectionChange)=\"handleYearChange($event)\">\r\n <mat-option [value]=\"startYear\" *ngFor=\"let startYear of startListYears\">{{startYear}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'igo.geo.timeFilter.endDate' | translate}}\" [(ngModel)]=\"endYear\" (selectionChange)=\"handleYearChange($event)\">\r\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{endYear}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n <br>\r\n <div *ngIf=\"!isRange && style === 'slider' && type === 'year'\" class=\"igo-col igo-col-100 igo-col-100-m mat-typography\">\r\n <span>{{startYear}}</span>\r\n <mat-slider\r\n id=\"time-slider\"\r\n tickInterval=\"auto\"\r\n step=\"{{step}}\"\r\n [min]=\"startYear\"\r\n [max]=\"endYear\"\r\n [value]=\"handleSliderValue()\"\r\n [color]=\"color\"\r\n thumbLabel\r\n (input)=\"handleSliderYearChange($event)\"\r\n (change)=\"handleSliderYearChange($event)\"\r\n [disabled]= \"!options.enabled || !layer.visible\">\r\n </mat-slider>\r\n <span>{{endYear}}</span>\r\n <p *ngIf= \"options.enabled\" class=\"date-below\">{{year}}</p>\r\n <div #actions class=\"igo-layer-actions-container\">\r\n <mat-slide-toggle (change)=\"toggleFilterState()\" tooltip-position=\"below\" matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\" [color]=\"color\" [checked]=\"options.enabled\"\r\n [disabled]=\"!layer.visible\">\r\n </mat-slide-toggle>\r\n <button [disabled]= \"!options.enabled || !layer.visible\" mat-icon-button color=\"primary\" (click)=\"playYear($event)\">\r\n <mat-icon svgIcon=\"{{playIcon}}\"></mat-icon>\r\n </button>\r\n <button [disabled]=\"!options.enabled || !layer.visible\" mat-icon-button color=\"primary\" (click)=\"resetFilter($event)\">\r\n <mat-icon svgIcon=\"{{resetIcon}}\"></mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n<div *ngIf=\"style === 'slider' && type !== 'year'\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-slider\r\n id=\"time-slider\"\r\n tickInterval=\"auto\"\r\n step=\"{{step}}\"\r\n [min]=\"dateToNumber(min)\"\r\n [max]=\"dateToNumber(max)\"\r\n [value]=\"handleSliderValue()\"\r\n thumbLabel\r\n (input)=\"handleSliderDateChange($event)\"\r\n (selectionChange)=\"handleSliderDateChange($event)\">\r\n </mat-slider>\r\n <p class=\"date-below\">{{handleSliderTooltip()}}</p>\r\n <button mat-icon-button color=\"primary\" (click)=\"playFilter($event)\">\r\n <mat-icon svgIcon=\"{{playIcon}}\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [".igo-layer-filters-container{padding-left:5px}mat-slider ::ng-deep div.mat-slider-thumb-label{width:32px;height:32px;margin:0 auto}mat-slider ::ng-deep span.mat-slider-thumb-label-text{font-size:10px}#time-slider{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{width:60%;margin:0 auto}}.date-below{margin:0}mat-form-field{text-align:center}mat-datetimepicker-toggle ::ng-deep .mat-icon{padding-bottom:30px}.igo-layer-actions-container>.mat-slide-toggle{vertical-align:middle}.time-filter-mat-datetimepicker-toggle ::ng-deep .mat-icon{width:auto}\n"] }]
@@ -29058,8 +29351,8 @@ i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1$1.NgForOf, i1$1.NgIf, i
29058
29351
  i0.ɵɵsetComponentScope(OgcFilterableItemComponent, [i1$1.NgClass, i1$1.NgIf, i1$1.NgStyle, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3.MatButton, i12$1.MatCheckbox, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i11.MatDivider, i4.MatTooltip, LayerLegendComponent, i5$1.CollapseDirective, OgcFilterableFormComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
29059
29352
  i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, OgcFilterableItemComponent], [i7.TranslatePipe, FilterableDataSourcePipe]);
29060
29353
  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]);
29061
- 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$1.MatCheckbox, i15$1.MatSlideToggle, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i4.MatTooltip, i5$1.EntityTableComponent, GeometryFormFieldInputComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
29062
- i0.ɵɵsetComponentScope(OgcFilterTimeComponent, [i1$1.NgForOf, i1$1.NgIf, i2$2.NgControlStatus, i2$2.NgModel, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3.MatButton, i15$1.MatSlideToggle, i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, i25.MatDatepicker, i25.MatDatepickerInput, i25.MatDatepickerToggle, OgcFilterTimeSliderComponent], [i7.TranslatePipe]);
29354
+ 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$1.MatCheckbox, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i4.MatTooltip, i5$1.EntityTableComponent, GeometryFormFieldInputComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
29355
+ 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]);
29063
29356
 
29064
29357
  function ExportButtonComponent_button_0_Template(rf, ctx) { if (rf & 1) {
29065
29358
  i0.ɵɵelementStart(0, "button", 1);
@@ -31034,7 +31327,7 @@ ImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Impor
31034
31327
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(11, 13, ctx.exportableLayers$).length === 0 && ctx.selectedMode === "export");
31035
31328
  i0.ɵɵadvance(2);
31036
31329
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(13, 15, ctx.exportableLayers$).length > 0 && ctx.selectedMode === "export");
31037
- } }, 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, i15$1.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}"] });
31330
+ } }, 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}"] });
31038
31331
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImportExportComponent, [{
31039
31332
  type: Component,
31040
31333
  args: [{ selector: 'igo-import-export', template: "<div class=\"import-export-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n [value]=\"selectedMode\"\r\n (change)=\"onImportExportChange($event)\">\r\n <mat-button-toggle [value]=\"'import'\">\r\n {{'igo.geo.importExportForm.importTabTitle' | translate}}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'export'\">\r\n {{'igo.geo.importExportForm.exportTabTitle' | translate}}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<form class=\"igo-form\" [formGroup]=\"importForm\" *ngIf=\"selectedMode === 'import'\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.geo.importExportForm.importProjPlaceholder' | translate}}</mat-label>\r\n <mat-select\r\n [(value)]=\"inputProj\">\r\n <mat-option\r\n *ngFor=\"let projection of (projections$ | async)\"\r\n [value]=\"projection\"\r\n (click)=\"$event.stopPropagation()\">\r\n <p mat-line *ngIf=\"projection.translateKey\">{{('igo.geo.importExportForm.projections.' + projection.translateKey) | translate: projection}}</p>\r\n <p mat-line *ngIf=\"!projection.translateKey\">{{projection.alias}}</p>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"importForm.invalid ? ('igo.geo.importExportForm.projections.choose' | translate) : ('igo.geo.importExportForm.importButton' | translate)\"\r\n class=\"igo-form-button-group\">\r\n <button\r\n [disabled]=\"importForm.invalid || (loading$ | async)\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"fileInput.click()\">\r\n {{'igo.geo.importExportForm.importButton' | translate}}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n <input\r\n hidden\r\n #fileInput\r\n type=\"file\"\r\n [style.display]=\"'none'\"\r\n (click)=\"fileInput.value = null\"\r\n (change)=\"importFiles($event.target.files)\">\r\n </div>\r\n</form>\r\n<section class=\"mat-typography\" *ngIf=\"selectedMode === 'import'\">\r\n <div *ngIf=\"importHtmlClarifications === ''\">\r\n <h4>{{'igo.geo.importExportForm.importClarifications' | translate}}</h4>\r\n <ul>\r\n <li>{{'igo.geo.importExportForm.importSizeMax' | translate: {size: fileSizeMb} }}</li>\r\n <li>{{'igo.geo.importExportForm.importFormatAuthorized' | translate}}</li>\r\n <li>{{'igo.geo.importExportForm.importShpZip' | translate}}</li>\r\n </ul>\r\n </div>\r\n <igo-custom-html *ngIf=\"importHtmlClarifications !== ''\" class=\"mat-typography\"\r\n [html]=\"importHtmlClarifications\">\r\n </igo-custom-html>\r\n</section>\r\n\r\n<section class=\"mat-typography\" *ngIf=\"(exportableLayers$ | async).length === 0 && selectedMode === 'export'\">\r\n <h4>{{'igo.geo.importExportForm.exportNoLayersExportable' | translate}}</h4>\r\n</section>\r\n\r\n<form class=\"igo-form\" [formGroup]=\"form\" *ngIf=\"(exportableLayers$ | async).length > 0 && selectedMode === 'export'\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.geo.importExportForm.exportLayerPlaceholder' | translate}}</mat-label>\r\n <mat-select\r\n [(value)]=\"layers\" multiple>\r\n <mat-select-trigger>\r\n {{layers.length ? getLayerTitleById(layers[0]) : ''}}\r\n <span *ngIf=\"layers.length > 1\" class=\"export-select-trigger\">\r\n (+{{layers.length - 1}} {{(layers?.length === 2 ? 'igo.geo.importExportForm.other' : 'igo.geo.importExportForm.others') | translate }})\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option\r\n *ngFor=\"let layer of (exportableLayers$ | async)\"\r\n [ngClass]=\"{'igo-export-layer-mat-option': layerHasSelectedFeatures(layer)}\"\r\n [value]=\"layer.id\"\r\n (click)=\"$event.stopPropagation()\">\r\n <p mat-line>{{layer.title}}</p>\r\n <p mat-line>\r\n <mat-slide-toggle *ngIf=\"layerHasSelectedFeatures(layer)\"\r\n [labelPosition]=\"'after'\"\r\n (click)=\"onlySelectedClick($event,layer.id)\"\r\n (checked)=\"inLayersIdToExportSelectionOnly(layer)\"\r\n (change)=\"onlySelected($event,layer.id)\">\r\n <small>{{'igo.geo.importExportForm.exportSelectedFeature' | translate}}</small>\r\n </mat-slide-toggle>\r\n </p>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.geo.importExportForm.exportFormatPlaceholder' | translate}}</mat-label>\r\n <mat-select\r\n formControlName=\"format\">\r\n <ng-container *ngIf=\"(formats$ | async).length !== 0\">\r\n <mat-option *ngFor=\"let format of (formats$ | async) | keyvalue\" [value]=\"format.key\">\r\n {{'igo.geo.export.format.' + format.value | translate}}\r\n </mat-option>\r\n </ng-container>\r\n <mat-option *ngIf=\"(formats$ | async).length === 0\" disabled=\"true\">\r\n {{'igo.geo.export.noFormat.title' | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" *ngIf=\"forceNaming && form.value.format !== 'URL'\">\r\n <mat-form-field>\r\n <input matInput formControlName=\"name\" placeholder=\"{{'igo.geo.importExportForm.exportFileNamePlaceholder' | translate}}\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" *ngIf=\"form.value.format === 'CSVcomma' || form.value.format === 'CSVsemicolon'\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.geo.importExportForm.encodingPlaceholder' | translate}}</mat-label>\r\n <mat-select\r\n formControlName=\"encoding\">\r\n <ng-container *ngIf=\"(encodings$ | async).length !== 0\">\r\n <mat-option *ngFor=\"let encoding of (encodings$ | async) | keyvalue\" [value]=\"encoding.key\">\r\n {{'igo.geo.export.encoding.' + encoding.value | translate}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"export-combine-layers mat-typography\" *ngIf=\"layers.length > 1 && (form.value.format === 'CSVcomma' || form.value.format === 'CSVsemicolon')\">\r\n <mat-slide-toggle\r\n formControlName=\"combineLayers\"\r\n [labelPosition]=\"'before'\">\r\n {{'igo.geo.importExportForm.exportCombineResults' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <div class=\"export-separator mat-typography\" *ngIf=\"layers.length > 1 && (form.value.format === 'CSVcomma' || form.value.format === 'CSVsemicolon') && form.value.combineLayers\">\r\n <mat-slide-toggle\r\n formControlName=\"separator\"\r\n [labelPosition]=\"'before'\">\r\n {{'igo.geo.importExportForm.exportSeparator' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <div class=\"export-options mat-typography\" *ngIf=\"form.value.format !== 'URL'\">\r\n <mat-slide-toggle\r\n formControlName=\"featureInMapExtent\"\r\n [labelPosition]=\"'before'\">\r\n {{'igo.geo.importExportForm.exportFeatureInExtent' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (loading$ | async)\"\r\n (click)=\"handleExportFormSubmit(form.value)\">\r\n {{form.value.format !== 'URL' ? ('igo.geo.importExportForm.exportButton' | translate): (form.value.layers.length > 1 ? ('igo.geo.importExportForm.exportButtonLinks' | translate): ('igo.geo.importExportForm.exportButtonLink' | translate))}}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n </div>\r\n\r\n <igo-custom-html *ngIf=\"exportHtmlClarifications !== ''\" class=\"mat-typography\"\r\n [html]=\"exportHtmlClarifications\">\r\n </igo-custom-html>\r\n\r\n</form>\r\n", styles: ["mat-option.igo-export-layer-mat-option{height:5em;line-height:1em}.import-export-toggle{padding:10px;text-align:center}.import-export-toggle mat-button-toggle-group{width:100%}.import-export-toggle mat-button-toggle-group mat-button-toggle{width:50%}h4{padding:0 5px}.igo-form{padding:15px 5px}.igo-input-container mat-form-field{width:100%}.igo-form-button-group{text-align:center;padding-top:10px}igo-spinner{position:absolute;padding-left:10px}.export-options,.export-combine-layers,.export-separator{overflow-x:hidden}.export-options mat-slide-toggle,.export-combine-layers mat-slide-toggle,.export-separator mat-slide-toggle{width:100%;margin:10px}.export-options mat-slide-toggle ::ng-deep .mat-slide-toggle-content,.export-combine-layers mat-slide-toggle ::ng-deep .mat-slide-toggle-content,.export-separator mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.export-select-trigger{opacity:.75;font-size:.75em}\n"] }]
@@ -31584,7 +31877,7 @@ IgoMeasurerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Common
31584
31877
  IgoLanguageModule,
31585
31878
  IgoEntityTableModule], exports: [MeasureFormatPipe,
31586
31879
  MeasurerComponent] }); })();
31587
- i0.ɵɵsetComponentScope(MeasurerComponent, [i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i2.MatIcon, i4.MatTooltip, i15$1.MatSlideToggle, i11.MatDivider, i5$1.EntityTableComponent, MeasurerItemComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
31880
+ 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]);
31588
31881
  i0.ɵɵsetComponentScope(MeasurerDialogComponent, [i1$1.NgIf], [i7.TranslatePipe, MeasureFormatPipe]);
31589
31882
 
31590
31883
  class IgoMeasureModule {
@@ -32860,7 +33153,7 @@ PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFor
32860
33153
  i0.ɵɵproperty("disabled", !ctx.form.valid || i0.ɵɵpipeBind1(62, 68, ctx.disabled$));
32861
33154
  i0.ɵɵadvance(2);
32862
33155
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(64, 70, "igo.geo.printForm.saveBtn"), " ");
32863
- } }, 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, i15$1.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}"] });
33156
+ } }, 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}"] });
32864
33157
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintFormComponent, [{
32865
33158
  type: Component,
32866
33159
  args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{'igo.geo.printForm.title' | translate}}\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{'igo.geo.printForm.subtitle' | translate}}\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{'igo.geo.printForm.comment' | translate}}\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <div class=\"print-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\">\r\n {{'igo.geo.printForm.showProjection' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\">\r\n {{'igo.geo.printForm.showScale' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\">\r\n {{'igo.geo.printForm.doZipFile' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{'igo.geo.printForm.legendPosition' | translate}}\">\r\n <mat-option *ngFor=\"let legendPosition of legendPositions | keyvalue \" [value]=\"legendPosition.key\">\r\n {{'igo.geo.printForm.legendPositions.' + legendPosition.value | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-select (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{'igo.geo.printForm.outputFormat' | translate}}\">\r\n <mat-option *ngFor=\"let outputFormat of outputFormats | keyvalue \" [value]=\"outputFormat.key\">\r\n {{outputFormat.value}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{'igo.geo.printForm.paperFormat' | translate}}\">\r\n <mat-option *ngFor=\"let paperFormat of paperFormats | keyvalue \" [value]=\"paperFormat.key\">\r\n {{('igo.geo.printForm.paperFormats.' + paperFormat.value) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'none' : 'block'\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{'igo.geo.printForm.imageFormat' | translate}}\">\r\n <mat-option *ngFor=\"let imageFormat of imageFormats | keyvalue \" [value]=\"imageFormat.key\">\r\n {{imageFormat.value}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" style=\"display: none;\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{'igo.geo.printForm.resolution' | translate}}\">\r\n <mat-option *ngFor=\"let resolution of resolutions | keyvalue \" [value]=\"resolution.key\">\r\n {{resolution.value + ' PPI'}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"orientation\"\r\n placeholder=\"{{'igo.geo.printForm.orientation' | translate}}\">\r\n <mat-option *ngFor=\"let orientation of orientations | keyvalue \" [value]=\"orientation.key\">\r\n {{('igo.geo.printForm.' + orientation.value) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group print-button-top-padding\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (disabled$ | async)\"\r\n (click)=\"handleFormSubmit(form.value, form.valid)\">\r\n {{'igo.geo.printForm.saveBtn' | translate}}\r\n </button>\r\n </div>\r\n\r\n</form>\r\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"] }]
@@ -36817,7 +37110,7 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
36817
37110
  i0.ɵɵproperty("ngForOf", ctx.getSearchSources());
36818
37111
  i0.ɵɵadvance(1);
36819
37112
  i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
36820
- } }, 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$1.MatCheckbox, i11.MatDivider, i15$1.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 });
37113
+ } }, 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$1.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 });
36821
37114
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
36822
37115
  type: Component,
36823
37116
  args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\r\n\r\n <button\r\n mat-icon-button\r\n class=\"igo-search-settings-button\"\r\n color=\"primary\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\r\n [matMenuTriggerFor]=\"searchSettingsMenu\">\r\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\r\n </button>\r\n <mat-menu\r\n #searchSettingsMenu=\"matMenu\"\r\n class=\"no-border-radius\">\r\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\r\n <button mat-raised-button\r\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\r\n </div>\r\n <ng-container *ngFor=\"let source of getSearchSources()\">\r\n <span class=\"igo-search-settings-search-source\">\r\n <mat-checkbox\r\n class=\"igo-search-settings-checkbox\"\r\n [checked]=\"source.enabled\"\r\n [value]=\"source\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"onCheckSearchSource($event, source)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\r\n [matMenuTriggerFor]=\"sub_menu\"\r\n mat-menu-item>{{source.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\r\n {{source.title}}\r\n </button>\r\n </span>\r\n <mat-menu #sub_menu=\"matMenu\">\r\n <ng-container *ngFor=\"let setting of source.settings\">\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"test_sub_menu\">\r\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\r\n </button>\r\n <mat-menu #test_sub_menu=\"matMenu\"\r\n [ngSwitch]=\"setting.type\"\r\n yPosition=\"above\">\r\n <span *ngSwitchCase=\"'radiobutton'\">\r\n <mat-radio-group\r\n class=\"igo-search-settings-radio-group\"\r\n [value]=\"setting\">\r\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\r\n class=\"mat-typography\"\r\n [value]=\"settingValue\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n [checked]=\"settingValue.enabled\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </span>\r\n <span *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\r\n <button mat-raised-button\r\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>\r\n </div>\r\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\r\n class=\"mat-menu-item\"\r\n [style.display]=\"displayBlock\"\r\n [checked]=\"settingValue.enabled\"\r\n [value]=\"setting\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-checkbox>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\r\n <mat-divider></mat-divider>\r\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\r\n </mat-slide-toggle>\r\n </span>\r\n </span>\r\n </mat-menu>\r\n</div>\r\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"] }]