@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';
@@ -3021,6 +3021,7 @@ class WMSDataSource extends DataSource {
3021
3021
  }
3022
3022
  const filterQueryString = ogcFilterWriter.handleOgcFiltersAppliedValue(options, fieldNameGeometry);
3023
3023
  sourceParams.FILTER = filterQueryString;
3024
+ this.ol.updateParams({ 'FILTER': sourceParams.FILTER });
3024
3025
  this.setOgcFilters(initOgcFilters, true);
3025
3026
  const timeFilterableDataSourceOptions = options;
3026
3027
  if ((timeFilterableDataSourceOptions === null || timeFilterableDataSourceOptions === void 0 ? void 0 : timeFilterableDataSourceOptions.timeFilterable) &&
@@ -8346,7 +8347,7 @@ class IgoMap {
8346
8347
  }
8347
8348
  }
8348
8349
 
8349
- const _c0$l = ["*"];
8350
+ const _c0$m = ["*"];
8350
8351
  class MapBrowserComponent {
8351
8352
  constructor(activityService) {
8352
8353
  this.activityService = activityService;
@@ -8392,7 +8393,7 @@ class MapBrowserComponent {
8392
8393
  }
8393
8394
  }
8394
8395
  MapBrowserComponent.ɵfac = function MapBrowserComponent_Factory(t) { return new (t || MapBrowserComponent)(i0.ɵɵdirectiveInject(i2$1.ActivityService)); };
8395
- 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) {
8396
+ 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) {
8396
8397
  if (rf & 1) {
8397
8398
  i0.ɵɵprojectionDef();
8398
8399
  i0.ɵɵelement(0, "div", 0);
@@ -9231,7 +9232,7 @@ function computeProjectionsConstraints(projectionsLimitations) {
9231
9232
  return projectionsConstraints;
9232
9233
  }
9233
9234
 
9234
- const _c0$k = function (a0) { return { zoom: a0 }; };
9235
+ const _c0$l = function (a0) { return { zoom: a0 }; };
9235
9236
  class ZoomButtonComponent {
9236
9237
  constructor() { }
9237
9238
  get zoom() { return this.map.viewController.getZoom(); }
@@ -9254,9 +9255,9 @@ ZoomButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ZoomBut
9254
9255
  }
9255
9256
  if (rf & 2) {
9256
9257
  i0.ɵɵadvance(1);
9257
- 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);
9258
+ 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);
9258
9259
  i0.ɵɵadvance(3);
9259
- 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);
9260
+ 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);
9260
9261
  }
9261
9262
  }, 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}"] });
9262
9263
  (function () {
@@ -9467,7 +9468,7 @@ HomeExtentButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: H
9467
9468
  }] });
9468
9469
  })();
9469
9470
 
9470
- const _c0$j = function (a0) { return [a0]; };
9471
+ const _c0$k = function (a0) { return [a0]; };
9471
9472
  function OfflineButtonComponent_div_0_Template(rf, ctx) {
9472
9473
  if (rf & 1) {
9473
9474
  const _r2 = i0.ɵɵgetCurrentView();
@@ -9481,7 +9482,7 @@ function OfflineButtonComponent_div_0_Template(rf, ctx) {
9481
9482
  if (rf & 2) {
9482
9483
  const ctx_r0 = i0.ɵɵnextContext();
9483
9484
  i0.ɵɵadvance(2);
9484
- 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));
9485
+ 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));
9485
9486
  }
9486
9487
  }
9487
9488
  class OfflineButtonComponent {
@@ -9697,7 +9698,7 @@ function BaseLayersSwitcherComponent_div_0_igo_mini_basemap_2_Template(rf, ctx)
9697
9698
  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);
9698
9699
  }
9699
9700
  }
9700
- const _c0$i = function (a0) { return { "container-expand": a0 }; };
9701
+ const _c0$j = function (a0) { return { "container-expand": a0 }; };
9701
9702
  function BaseLayersSwitcherComponent_div_0_Template(rf, ctx) {
9702
9703
  if (rf & 1) {
9703
9704
  const _r6 = i0.ɵɵgetCurrentView();
@@ -9711,7 +9712,7 @@ function BaseLayersSwitcherComponent_div_0_Template(rf, ctx) {
9711
9712
  }
9712
9713
  if (rf & 2) {
9713
9714
  const ctx_r0 = i0.ɵɵnextContext();
9714
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$i, ctx_r0.expand))("@baseLayerSwitcherState", ctx_r0.expand ? "expand" : ctx_r0.useStaticIcon ? "collapseIcon" : "collapseMap");
9715
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0$j, ctx_r0.expand))("@baseLayerSwitcherState", ctx_r0.expand ? "expand" : ctx_r0.useStaticIcon ? "collapseIcon" : "collapseMap");
9715
9716
  i0.ɵɵadvance(1);
9716
9717
  i0.ɵɵproperty("ngIf", ctx_r0.useStaticIcon && !ctx_r0.expand && ctx_r0.showButton);
9717
9718
  i0.ɵɵadvance(1);
@@ -10319,7 +10320,7 @@ MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBa
10319
10320
  }] });
10320
10321
  })();
10321
10322
 
10322
- const _c0$h = function (a0, a1) { return { azimuth: a0, rotation: a1 }; };
10323
+ const _c0$i = function (a0, a1) { return { azimuth: a0, rotation: a1 }; };
10323
10324
  function RotationButtonComponent_div_0_Template(rf, ctx) {
10324
10325
  if (rf & 1) {
10325
10326
  const _r2 = i0.ɵɵgetCurrentView();
@@ -10336,7 +10337,7 @@ function RotationButtonComponent_div_0_Template(rf, ctx) {
10336
10337
  }
10337
10338
  if (rf & 2) {
10338
10339
  const ctx_r0 = i0.ɵɵnextContext();
10339
- 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"));
10340
+ 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"));
10340
10341
  i0.ɵɵadvance(4);
10341
10342
  i0.ɵɵproperty("color", ctx_r0.color)("disabled", i0.ɵɵpipeBind1(5, 11, ctx_r0.rotated$) === false);
10342
10343
  i0.ɵɵadvance(2);
@@ -12828,7 +12829,7 @@ CatalogBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cat
12828
12829
  }] });
12829
12830
  })();
12830
12831
 
12831
- const _c0$g = ["renderedLegend"];
12832
+ const _c0$h = ["renderedLegend"];
12832
12833
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template(rf, ctx) {
12833
12834
  if (rf & 1) {
12834
12835
  const _r15 = i0.ɵɵgetCurrentView();
@@ -13215,7 +13216,7 @@ class LayerLegendComponent {
13215
13216
  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)); };
13216
13217
  LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerLegendComponent, selectors: [["igo-layer-legend"]], viewQuery: function LayerLegendComponent_Query(rf, ctx) {
13217
13218
  if (rf & 1) {
13218
- i0.ɵɵviewQuery(_c0$g, 5);
13219
+ i0.ɵɵviewQuery(_c0$h, 5);
13219
13220
  }
13220
13221
  if (rf & 2) {
13221
13222
  let _t;
@@ -13854,7 +13855,7 @@ function LayerItemComponent_mat_checkbox_1_Template(rf, ctx) {
13854
13855
  i0.ɵɵproperty("checked", ctx_r0.layerCheck);
13855
13856
  }
13856
13857
  }
13857
- const _c0$f = function (a0) { return { disabled: a0 }; };
13858
+ const _c0$g = function (a0) { return { disabled: a0 }; };
13858
13859
  function LayerItemComponent_button_4_Template(rf, ctx) {
13859
13860
  if (rf & 1) {
13860
13861
  const _r9 = i0.ɵɵgetCurrentView();
@@ -13871,7 +13872,7 @@ function LayerItemComponent_button_4_Template(rf, ctx) {
13871
13872
  const ctx_r1 = i0.ɵɵnextContext();
13872
13873
  i0.ɵɵproperty("color", ctx_r1.layer.visible ? "primary" : "default")("matTooltip", i0.ɵɵpipeBind1(1, 5, ctx_r1.eyeTooltip));
13873
13874
  i0.ɵɵadvance(2);
13874
- 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");
13875
+ 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");
13875
13876
  }
13876
13877
  }
13877
13878
  function LayerItemComponent_button_5_Template(rf, ctx) {
@@ -13890,7 +13891,7 @@ function LayerItemComponent_button_5_Template(rf, ctx) {
13890
13891
  const ctx_r2 = i0.ɵɵnextContext();
13891
13892
  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"));
13892
13893
  i0.ɵɵadvance(3);
13893
- 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");
13894
+ 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");
13894
13895
  }
13895
13896
  }
13896
13897
  function LayerItemComponent_button_6_Template(rf, ctx) {
@@ -14175,7 +14176,7 @@ var LayerListDisplacement;
14175
14176
  LayerListDisplacement["Lower"] = "lower";
14176
14177
  })(LayerListDisplacement || (LayerListDisplacement = {}));
14177
14178
 
14178
- const _c0$e = ["igoLayerItemToolbar"];
14179
+ const _c0$f = ["igoLayerItemToolbar"];
14179
14180
  function LayerListComponent_igo_layer_list_tool_1_Template(rf, ctx) {
14180
14181
  if (rf & 1) {
14181
14182
  const _r7 = i0.ɵɵgetCurrentView();
@@ -15139,7 +15140,7 @@ class LayerListComponent {
15139
15140
  LayerListComponent.ɵfac = function LayerListComponent_Factory(t) { return new (t || LayerListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
15140
15141
  LayerListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerListComponent, selectors: [["igo-layer-list"]], contentQueries: function LayerListComponent_ContentQueries(rf, ctx, dirIndex) {
15141
15142
  if (rf & 1) {
15142
- i0.ɵɵcontentQuery(dirIndex, _c0$e, 5);
15143
+ i0.ɵɵcontentQuery(dirIndex, _c0$f, 5);
15143
15144
  }
15144
15145
  if (rf & 2) {
15145
15146
  let _t;
@@ -16740,7 +16741,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_4_Template(rf, ctx) {
16740
16741
  i0.ɵɵproperty("innerHTML", property_r3.value, i0.ɵɵsanitizeHtml);
16741
16742
  }
16742
16743
  }
16743
- const _c0$d = function () { return { "cursor": "pointer", "color": "blue" }; };
16744
+ const _c0$e = function () { return { "cursor": "pointer", "color": "blue" }; };
16744
16745
  function FeatureDetailsComponent_table_0_tr_2_td_5_Template(rf, ctx) {
16745
16746
  if (rf & 1) {
16746
16747
  const _r20 = i0.ɵɵgetCurrentView();
@@ -16753,7 +16754,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_5_Template(rf, ctx) {
16753
16754
  const property_r3 = i0.ɵɵnextContext().$implicit;
16754
16755
  const ctx_r8 = i0.ɵɵnextContext(2);
16755
16756
  i0.ɵɵadvance(1);
16756
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(2, _c0$d));
16757
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(2, _c0$e));
16757
16758
  i0.ɵɵadvance(1);
16758
16759
  i0.ɵɵtextInterpolate(ctx_r8.getEmbeddedLinkText(property_r3.value));
16759
16760
  }
@@ -16773,7 +16774,7 @@ function FeatureDetailsComponent_table_0_tr_2_td_6_Template(rf, ctx) {
16773
16774
  }
16774
16775
  if (rf & 2) {
16775
16776
  i0.ɵɵadvance(1);
16776
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c0$d));
16777
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c0$e));
16777
16778
  i0.ɵɵadvance(1);
16778
16779
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "igo.geo.targetHtmlUrl"));
16779
16780
  }
@@ -16863,13 +16864,12 @@ function FeatureDetailsComponent_iframe_1_Template(rf, ctx) {
16863
16864
  }
16864
16865
  }
16865
16866
  class FeatureDetailsComponent {
16866
- constructor(http, cdRef, sanitizer, networkService, messageService, languageService, configService) {
16867
+ constructor(http, cdRef, sanitizer, networkService, messageService, configService) {
16867
16868
  this.http = http;
16868
16869
  this.cdRef = cdRef;
16869
16870
  this.sanitizer = sanitizer;
16870
16871
  this.networkService = networkService;
16871
16872
  this.messageService = messageService;
16872
- this.languageService = languageService;
16873
16873
  this.configService = configService;
16874
16874
  this.unsubscribe$ = new Subject();
16875
16875
  this.ready = false;
@@ -16955,14 +16955,17 @@ class FeatureDetailsComponent {
16955
16955
  window.open(fileUrl, '_blank');
16956
16956
  this.cdRef.detectChanges();
16957
16957
  }, (error) => {
16958
- const translate = this.languageService.translate;
16959
- const title = translate.instant('igo.geo.targetHtmlUrlUnauthorizedTitle');
16960
- const message = translate.instant('igo.geo.targetHtmlUrlUnauthorized');
16961
- this.messageService.error(message, title);
16958
+ this.messageService.error('igo.geo.targetHtmlUrlUnauthorized', 'igo.geo.targetHtmlUrlUnauthorizedTitle');
16962
16959
  });
16963
16960
  }
16964
16961
  else {
16965
- window.open(value, '_blank');
16962
+ let url = value;
16963
+ if (this.isEmbeddedLink(value)) {
16964
+ var div = document.createElement('div');
16965
+ div.innerHTML = value;
16966
+ url = div.children[0].getAttribute('href');
16967
+ }
16968
+ window.open(url, '_blank');
16966
16969
  }
16967
16970
  }
16968
16971
  isUrl(value) {
@@ -17081,7 +17084,7 @@ class FeatureDetailsComponent {
17081
17084
  }
17082
17085
  }
17083
17086
  }
17084
- 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)); };
17087
+ 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)); };
17085
17088
  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) {
17086
17089
  if (rf & 1) {
17087
17090
  i0.ɵɵtemplate(0, FeatureDetailsComponent_table_0_Template, 4, 3, "table", 0);
@@ -17097,7 +17100,7 @@ FeatureDetailsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Fea
17097
17100
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureDetailsComponent, [{
17098
17101
  type: Component,
17099
17102
  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"] }]
17100
- }], 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: [{
17103
+ }], 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: [{
17101
17104
  type: Input
17102
17105
  }], map: [{
17103
17106
  type: Input
@@ -17114,7 +17117,7 @@ FeatureDetailsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Fea
17114
17117
  }] });
17115
17118
  })();
17116
17119
 
17117
- const _c0$c = ["igoForm"];
17120
+ const _c0$d = ["igoForm"];
17118
17121
  const _c1$a = ["*", [["", "formButtons", ""]]];
17119
17122
  const _c2$5 = ["*", "[formButtons]"];
17120
17123
  /**
@@ -17190,7 +17193,7 @@ class FeatureFormComponent {
17190
17193
  FeatureFormComponent.ɵfac = function FeatureFormComponent_Factory(t) { return new (t || FeatureFormComponent)(); };
17191
17194
  FeatureFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureFormComponent, selectors: [["igo-feature-form"]], viewQuery: function FeatureFormComponent_Query(rf, ctx) {
17192
17195
  if (rf & 1) {
17193
- i0.ɵɵviewQuery(_c0$c, 7);
17196
+ i0.ɵɵviewQuery(_c0$d, 7);
17194
17197
  }
17195
17198
  if (rf & 2) {
17196
17199
  let _t;
@@ -17736,97 +17739,181 @@ DrawShorcutsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawS
17736
17739
  }], null, null);
17737
17740
  })();
17738
17741
 
17739
- function DrawComponent_button_23_Template(rf, ctx) {
17742
+ class DrawLayerPopupComponent {
17743
+ constructor(dialogRef) {
17744
+ this.dialogRef = dialogRef;
17745
+ this.confirmFlag = false;
17746
+ }
17747
+ cancelDrawing() {
17748
+ this.dialogRef.close();
17749
+ }
17750
+ confirm(labelString) {
17751
+ this.confirmFlag = true;
17752
+ this.dialogRef.close(labelString);
17753
+ }
17754
+ }
17755
+ DrawLayerPopupComponent.ɵfac = function DrawLayerPopupComponent_Factory(t) { return new (t || DrawLayerPopupComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef)); };
17756
+ 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) {
17757
+ if (rf & 1) {
17758
+ const _r1 = i0.ɵɵgetCurrentView();
17759
+ i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
17760
+ i0.ɵɵtext(2);
17761
+ i0.ɵɵpipe(3, "translate");
17762
+ i0.ɵɵelementEnd();
17763
+ i0.ɵɵelementStart(4, "mat-form-field", 2);
17764
+ i0.ɵɵelement(5, "input", 3, 4);
17765
+ i0.ɵɵpipe(7, "translate");
17766
+ i0.ɵɵelementEnd()();
17767
+ i0.ɵɵelementStart(8, "div", 5)(9, "button", 6);
17768
+ i0.ɵɵlistener("click", function DrawLayerPopupComponent_Template_button_click_9_listener() { return ctx.cancelDrawing(); });
17769
+ i0.ɵɵtext(10);
17770
+ i0.ɵɵpipe(11, "translate");
17771
+ i0.ɵɵelementEnd();
17772
+ i0.ɵɵelementStart(12, "button", 7);
17773
+ 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)); });
17774
+ i0.ɵɵtext(13, " OK ");
17775
+ i0.ɵɵelementEnd()();
17776
+ }
17777
+ if (rf & 2) {
17778
+ i0.ɵɵadvance(2);
17779
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, "igo.geo.draw.layer.layerDialogInstruction"), " ");
17780
+ i0.ɵɵadvance(3);
17781
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(7, 5, "igo.geo.draw.layer.title"));
17782
+ i0.ɵɵadvance(5);
17783
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 7, "igo.geo.draw.cancel"), " ");
17784
+ }
17785
+ }, dependencies: [i3.MatButton, i13.MatFormField, i14.MatInput, i1.MatDialogContent, i1.MatDialogActions, i7.TranslatePipe] });
17786
+ (function () {
17787
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawLayerPopupComponent, [{
17788
+ type: Component,
17789
+ 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" }]
17790
+ }], function () { return [{ type: i1.MatDialogRef }]; }, { confirmFlag: [{
17791
+ type: Input
17792
+ }] });
17793
+ })();
17794
+
17795
+ const _c0$c = ["selectedLayer"];
17796
+ function DrawComponent_mat_option_30_Template(rf, ctx) {
17740
17797
  if (rf & 1) {
17741
- const _r5 = i0.ɵɵgetCurrentView();
17742
- i0.ɵɵelementStart(0, "button", 14);
17743
- 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()); });
17798
+ i0.ɵɵelementStart(0, "mat-option", 2);
17799
+ i0.ɵɵtext(1);
17800
+ i0.ɵɵelementEnd();
17801
+ }
17802
+ if (rf & 2) {
17803
+ const layer_r7 = ctx.$implicit;
17804
+ i0.ɵɵproperty("value", layer_r7);
17805
+ i0.ɵɵadvance(1);
17806
+ i0.ɵɵtextInterpolate1(" ", layer_r7.title, " ");
17807
+ }
17808
+ }
17809
+ function DrawComponent_button_34_Template(rf, ctx) {
17810
+ if (rf & 1) {
17811
+ const _r9 = i0.ɵɵgetCurrentView();
17812
+ i0.ɵɵelementStart(0, "button", 20);
17813
+ 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); });
17814
+ i0.ɵɵpipe(1, "translate");
17815
+ i0.ɵɵpipe(2, "translate");
17816
+ i0.ɵɵelement(3, "mat-icon", 21);
17817
+ i0.ɵɵelementEnd();
17818
+ }
17819
+ if (rf & 2) {
17820
+ const ctx_r2 = i0.ɵɵnextContext();
17821
+ 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"));
17822
+ i0.ɵɵadvance(3);
17823
+ i0.ɵɵproperty("svgIcon", ctx_r2.activeDrawingLayer.visible ? "eye" : "eye-off");
17824
+ }
17825
+ }
17826
+ function DrawComponent_button_37_Template(rf, ctx) {
17827
+ if (rf & 1) {
17828
+ const _r11 = i0.ɵɵgetCurrentView();
17829
+ i0.ɵɵelementStart(0, "button", 22);
17830
+ 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()); });
17744
17831
  i0.ɵɵpipe(1, "translate");
17745
17832
  i0.ɵɵpipe(2, "async");
17746
- i0.ɵɵelement(3, "mat-icon", 15);
17833
+ i0.ɵɵelement(3, "mat-icon", 23);
17747
17834
  i0.ɵɵelementEnd();
17748
17835
  }
17749
17836
  if (rf & 2) {
17750
- const ctx_r0 = i0.ɵɵnextContext();
17751
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4, ctx_r0.selectedFeatures$).length === 0);
17837
+ const ctx_r3 = i0.ɵɵnextContext();
17838
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4, ctx_r3.selectedFeatures$).length === 0);
17752
17839
  }
17753
17840
  }
17754
- function DrawComponent_mat_form_field_28_div_6_Template(rf, ctx) {
17841
+ function DrawComponent_mat_form_field_42_div_6_Template(rf, ctx) {
17755
17842
  if (rf & 1) {
17756
- i0.ɵɵelementStart(0, "div", 19);
17757
- i0.ɵɵelement(1, "img", 20);
17843
+ i0.ɵɵelementStart(0, "div", 27);
17844
+ i0.ɵɵelement(1, "img", 28);
17758
17845
  i0.ɵɵelementEnd();
17759
17846
  }
17760
17847
  if (rf & 2) {
17761
- const ctx_r6 = i0.ɵɵnextContext(2);
17848
+ const ctx_r12 = i0.ɵɵnextContext(2);
17762
17849
  i0.ɵɵadvance(1);
17763
- i0.ɵɵpropertyInterpolate("src", ctx_r6.icon, i0.ɵɵsanitizeUrl);
17850
+ i0.ɵɵpropertyInterpolate("src", ctx_r12.icon, i0.ɵɵsanitizeUrl);
17764
17851
  }
17765
17852
  }
17766
- function DrawComponent_mat_form_field_28_mat_option_10_Template(rf, ctx) {
17853
+ function DrawComponent_mat_form_field_42_mat_option_10_Template(rf, ctx) {
17767
17854
  if (rf & 1) {
17768
- const _r10 = i0.ɵɵgetCurrentView();
17769
- i0.ɵɵelementStart(0, "mat-option", 21);
17770
- 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)); });
17771
- i0.ɵɵelementStart(1, "div", 19);
17772
- i0.ɵɵelement(2, "img", 20);
17855
+ const _r16 = i0.ɵɵgetCurrentView();
17856
+ i0.ɵɵelementStart(0, "mat-option", 29);
17857
+ 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)); });
17858
+ i0.ɵɵelementStart(1, "div", 27);
17859
+ i0.ɵɵelement(2, "img", 28);
17773
17860
  i0.ɵɵelementEnd()();
17774
17861
  }
17775
17862
  if (rf & 2) {
17776
- const icon_html_r8 = ctx.$implicit;
17777
- i0.ɵɵproperty("value", icon_html_r8);
17863
+ const icon_html_r14 = ctx.$implicit;
17864
+ i0.ɵɵproperty("value", icon_html_r14);
17778
17865
  i0.ɵɵadvance(2);
17779
- i0.ɵɵpropertyInterpolate("src", icon_html_r8, i0.ɵɵsanitizeUrl);
17866
+ i0.ɵɵpropertyInterpolate("src", icon_html_r14, i0.ɵɵsanitizeUrl);
17780
17867
  }
17781
17868
  }
17782
- function DrawComponent_mat_form_field_28_Template(rf, ctx) {
17869
+ function DrawComponent_mat_form_field_42_Template(rf, ctx) {
17783
17870
  if (rf & 1) {
17784
- const _r12 = i0.ɵɵgetCurrentView();
17871
+ const _r18 = i0.ɵɵgetCurrentView();
17785
17872
  i0.ɵɵelementStart(0, "mat-form-field")(1, "mat-label");
17786
17873
  i0.ɵɵtext(2);
17787
17874
  i0.ɵɵpipe(3, "translate");
17788
17875
  i0.ɵɵelementEnd();
17789
17876
  i0.ɵɵelementStart(4, "mat-select")(5, "mat-select-trigger");
17790
- i0.ɵɵtemplate(6, DrawComponent_mat_form_field_28_div_6_Template, 2, 1, "div", 16);
17877
+ i0.ɵɵtemplate(6, DrawComponent_mat_form_field_42_div_6_Template, 2, 1, "div", 24);
17791
17878
  i0.ɵɵelementEnd();
17792
- i0.ɵɵelementStart(7, "mat-option", 17);
17793
- 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()); });
17879
+ i0.ɵɵelementStart(7, "mat-option", 25);
17880
+ 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()); });
17794
17881
  i0.ɵɵtext(8);
17795
17882
  i0.ɵɵpipe(9, "translate");
17796
17883
  i0.ɵɵelementEnd();
17797
- i0.ɵɵtemplate(10, DrawComponent_mat_form_field_28_mat_option_10_Template, 3, 2, "mat-option", 18);
17884
+ i0.ɵɵtemplate(10, DrawComponent_mat_form_field_42_mat_option_10_Template, 3, 2, "mat-option", 26);
17798
17885
  i0.ɵɵelementEnd()();
17799
17886
  }
17800
17887
  if (rf & 2) {
17801
- const ctx_r2 = i0.ɵɵnextContext();
17888
+ const ctx_r5 = i0.ɵɵnextContext();
17802
17889
  i0.ɵɵadvance(2);
17803
17890
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "igo.geo.draw.icon"));
17804
17891
  i0.ɵɵadvance(4);
17805
- i0.ɵɵproperty("ngIf", ctx_r2.icon);
17892
+ i0.ɵɵproperty("ngIf", ctx_r5.icon);
17806
17893
  i0.ɵɵadvance(2);
17807
17894
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 6, "igo.geo.draw.noIcon"));
17808
17895
  i0.ɵɵadvance(2);
17809
- i0.ɵɵproperty("ngForOf", ctx_r2.icons);
17896
+ i0.ɵɵproperty("ngForOf", ctx_r5.icons);
17810
17897
  }
17811
17898
  }
17812
- function DrawComponent_button_32_Template(rf, ctx) {
17899
+ function DrawComponent_button_46_Template(rf, ctx) {
17813
17900
  if (rf & 1) {
17814
- const _r14 = i0.ɵɵgetCurrentView();
17815
- i0.ɵɵelementStart(0, "button", 22);
17816
- 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()); });
17901
+ const _r20 = i0.ɵɵgetCurrentView();
17902
+ i0.ɵɵelementStart(0, "button", 30);
17903
+ 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()); });
17817
17904
  i0.ɵɵpipe(1, "translate");
17818
17905
  i0.ɵɵtext(2);
17819
17906
  i0.ɵɵpipe(3, "translate");
17820
- i0.ɵɵelement(4, "mat-icon", 23);
17907
+ i0.ɵɵelement(4, "mat-icon", 31);
17821
17908
  i0.ɵɵelementEnd();
17822
17909
  }
17823
17910
  if (rf & 2) {
17824
- const ctx_r3 = i0.ɵɵnextContext();
17911
+ const ctx_r6 = i0.ɵɵnextContext();
17825
17912
  i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.layer.style.styleModalTooltip"));
17826
17913
  i0.ɵɵadvance(2);
17827
17914
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.layer.style.styleModal"), " ");
17828
17915
  i0.ɵɵadvance(2);
17829
- i0.ɵɵproperty("matBadge", ctx_r3.selectedFeatures$.value.length);
17916
+ i0.ɵɵproperty("matBadge", ctx_r6.selectedFeatures$.value.length);
17830
17917
  }
17831
17918
  }
17832
17919
  class DrawComponent {
@@ -17859,13 +17946,21 @@ class DrawComponent {
17859
17946
  ]
17860
17947
  };
17861
17948
  this.geometryType = GeometryType; // Reference to the GeometryType enum
17949
+ this._stores = [];
17950
+ this._drawControls = [];
17951
+ this.activeLayerChange = new EventEmitter();
17952
+ this.drawControlsEvent = new EventEmitter();
17953
+ this.layersIDEvent = new EventEmitter();
17954
+ this.layerCounterID = 0;
17862
17955
  this.draw$ = new BehaviorSubject({}); // Observable of draw
17863
- this.olDrawingLayerSource = new OlVectorSource();
17956
+ this.activeDrawingLayerSource = new OlVectorSource();
17864
17957
  this.selectedFeatures$ = new BehaviorSubject([]);
17865
17958
  this.drawControlIsDisabled = true;
17866
17959
  this.drawControlIsActive = false;
17867
17960
  this.subscriptions$$ = [];
17868
17961
  this.position = 'bottom';
17962
+ this.isCreatingNewLayer = false;
17963
+ this.currGeometryType = this.geometryType.Point;
17869
17964
  this.buildForm();
17870
17965
  this.fillColor = this.drawStyleService.getFillColor();
17871
17966
  this.strokeColor = this.drawStyleService.getStrokeColor();
@@ -17876,19 +17971,85 @@ class DrawComponent {
17876
17971
  this.fontSize = this.drawStyleService.getFontSize();
17877
17972
  this.fontStyle = this.drawStyleService.getFontStyle();
17878
17973
  }
17974
+ get stores() {
17975
+ return this._stores;
17976
+ }
17977
+ set stores(value) {
17978
+ this._stores = value;
17979
+ }
17980
+ get drawControls() {
17981
+ return this._drawControls;
17982
+ }
17983
+ set drawControls(value) {
17984
+ this._drawControls = value;
17985
+ }
17986
+ get activeDrawingLayer() {
17987
+ return this._activeDrawingLayer;
17988
+ }
17989
+ set activeDrawingLayer(value) {
17990
+ this._activeDrawingLayer = value;
17991
+ }
17879
17992
  // Initialize the store that will contain the entities and create the Draw control
17880
17993
  ngOnInit() {
17881
- this.initStore();
17882
- this.drawControl = this.createDrawControl(this.fillColor, this.strokeColor, this.strokeWidth);
17883
- this.drawControl.setGeometryType(this.geometryType.Point);
17884
- this.toggleDrawControl();
17994
+ if (!this.stores.length) {
17995
+ this.activeStore = new FeatureStore([], {
17996
+ map: this.map
17997
+ });
17998
+ this.initStore();
17999
+ this.activeDrawControl = this.createDrawControl(this.fillColor, this.strokeColor, this.strokeWidth);
18000
+ this.activeDrawControl.setGeometryType(this.geometryType.Point);
18001
+ this.toggleDrawControl();
18002
+ this.stores.push(this.activeStore);
18003
+ this.drawControls.push([this.activeDrawingLayer.id, this.activeDrawControl]);
18004
+ this.drawControlsEvent.emit(this.drawControls);
18005
+ this.layersIDEvent.emit(this.activeDrawingLayer.id);
18006
+ this.onLayerChange(this.activeDrawingLayer);
18007
+ }
18008
+ else {
18009
+ this.activeStore = this.stores.find(store => store.layer.id === this.activeDrawingLayer.id);
18010
+ this.activeDrawControl = this.drawControls.find(dc => dc[0] === this.activeDrawingLayer.id)[1];
18011
+ this.deactivateDrawControl();
18012
+ this.allLayers.forEach(layer => {
18013
+ if (layer.id !== this.activeDrawingLayer.id) {
18014
+ layer.opacity = 0;
18015
+ }
18016
+ let store = this.stores.find(s => s.layer.id === layer.id);
18017
+ this.subscriptions$$.push(store.stateView
18018
+ .manyBy$((record) => {
18019
+ return record.state.selected === true;
18020
+ })
18021
+ .pipe(first())
18022
+ .subscribe((records) => {
18023
+ records.forEach((record) => {
18024
+ record.state.selected = false;
18025
+ });
18026
+ }));
18027
+ this.subscriptions$$.push(store.stateView
18028
+ .manyBy$((record) => {
18029
+ return record.state.selected === true;
18030
+ })
18031
+ .pipe(skip(1) // Skip initial emission
18032
+ )
18033
+ .subscribe((records) => {
18034
+ this.selectedFeatures$.next(records.map((record) => record.entity));
18035
+ }));
18036
+ this.subscriptions$$.push(store.count$.subscribe((cnt) => {
18037
+ cnt >= 1
18038
+ ? (this.activeStore.layer.options.showInLayerList = true)
18039
+ : (this.activeStore.layer.options.showInLayerList = false);
18040
+ }));
18041
+ });
18042
+ this.onLayerChange(this.activeDrawingLayer);
18043
+ }
17885
18044
  }
17886
18045
  /**
17887
18046
  * Remove the drawing layer and the interactions
17888
18047
  * @internal
17889
18048
  */
17890
18049
  ngOnDestroy() {
17891
- this.drawControl.setOlMap(undefined);
18050
+ this.allLayers.forEach(layer => layer.opacity = 1);
18051
+ this.activeStore.state.updateAll({ selected: false });
18052
+ this.deactivateDrawControl();
17892
18053
  this.subscriptions$$.map((s) => s.unsubscribe());
17893
18054
  }
17894
18055
  /**
@@ -17899,61 +18060,20 @@ class DrawComponent {
17899
18060
  * @returns a Draw Control
17900
18061
  */
17901
18062
  createDrawControl(fillColor, strokeColor, strokeWidth) {
17902
- const drawControl = new DrawControl({
18063
+ const activeDrawControl = new DrawControl({
17903
18064
  geometryType: undefined,
17904
- drawingLayerSource: this.olDrawingLayerSource,
18065
+ drawingLayerSource: this.activeDrawingLayerSource,
17905
18066
  drawingLayerStyle: new olstyle.Style({}),
17906
18067
  interactionStyle: createInteractionStyle(fillColor, strokeColor, strokeWidth)
17907
18068
  });
17908
- return drawControl;
18069
+ return activeDrawControl;
17909
18070
  }
17910
18071
  /**
17911
18072
  * Store initialization, including drawing layer creation
17912
18073
  */
17913
- initStore() {
17914
- this.map.removeLayer(this.olDrawingLayer);
17915
- // this.map.addLayer()
17916
- this.olDrawingLayer = new VectorLayer({
17917
- isIgoInternalLayer: true,
17918
- id: 'igo-draw-layer',
17919
- title: this.languageService.translate.instant('igo.geo.draw.drawing'),
17920
- zIndex: 200,
17921
- source: new FeatureDataSource(),
17922
- style: (feature, resolution) => {
17923
- 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);
17924
- },
17925
- showInLayerList: true,
17926
- exportable: true,
17927
- browsable: false,
17928
- workspace: {
17929
- enabled: false
17930
- }
17931
- });
17932
- tryBindStoreLayer(this.store, this.olDrawingLayer);
17933
- tryAddLoadingStrategy(this.store, new FeatureStoreLoadingStrategy({
17934
- motion: FeatureMotion.None
17935
- }));
17936
- tryAddSelectionStrategy(this.store, new FeatureStoreSelectionStrategy({
17937
- map: this.map,
17938
- motion: FeatureMotion.None,
17939
- many: true
17940
- }));
17941
- this.store.layer.visible = true;
17942
- this.store.source.ol.on('removefeature', (event) => {
17943
- const olGeometry = event.feature.getGeometry();
17944
- this.clearLabelsOfOlGeometry(olGeometry);
17945
- });
17946
- this.subscriptions$$.push(this.store.stateView
17947
- .manyBy$((record) => {
17948
- return record.state.selected === true;
17949
- })
17950
- .pipe(first())
17951
- .subscribe((records) => {
17952
- records.forEach((record) => {
17953
- record.state.selected = false;
17954
- });
17955
- }));
17956
- this.subscriptions$$.push(this.store.stateView
18074
+ initStore(newTitle, isNewLayer) {
18075
+ this.createLayer(newTitle, isNewLayer);
18076
+ this.subscriptions$$.push(this.activeStore.stateView
17957
18077
  .manyBy$((record) => {
17958
18078
  return record.state.selected === true;
17959
18079
  })
@@ -17962,13 +18082,10 @@ class DrawComponent {
17962
18082
  .subscribe((records) => {
17963
18083
  this.selectedFeatures$.next(records.map((record) => record.entity));
17964
18084
  }));
17965
- this.subscriptions$$.push(this.store.count$.subscribe((cnt) => {
17966
- if (cnt > 0) {
17967
- this.store.setLayerExtent();
17968
- }
18085
+ this.subscriptions$$.push(this.activeStore.count$.subscribe((cnt) => {
17969
18086
  cnt >= 1
17970
- ? (this.store.layer.options.showInLayerList = true)
17971
- : (this.store.layer.options.showInLayerList = false);
18087
+ ? (this.activeStore.layer.options.showInLayerList = true)
18088
+ : (this.activeStore.layer.options.showInLayerList = false);
17972
18089
  }));
17973
18090
  }
17974
18091
  /**
@@ -18035,12 +18152,12 @@ class DrawComponent {
18035
18152
  }
18036
18153
  // deletes the feature
18037
18154
  else {
18038
- this.olDrawingLayerSource
18155
+ this.activeDrawingLayerSource
18039
18156
  .getFeatures()
18040
18157
  .forEach((drawingLayerFeature) => {
18041
18158
  const geometry = drawingLayerFeature.getGeometry();
18042
18159
  if (olGeometry === geometry) {
18043
- this.olDrawingLayerSource.removeFeature(drawingLayerFeature);
18160
+ this.activeDrawingLayerSource.removeFeature(drawingLayerFeature);
18044
18161
  }
18045
18162
  });
18046
18163
  }
@@ -18054,10 +18171,10 @@ class DrawComponent {
18054
18171
  onDrawEnd(olGeometry, radius) {
18055
18172
  this.addFeatureToStore(olGeometry, radius);
18056
18173
  this.clearLabelsOfOlGeometry(olGeometry);
18057
- this.store.layer.ol.getSource().refresh();
18174
+ this.activeStore.layer.ol.getSource().refresh();
18058
18175
  }
18059
18176
  onModifyDraw(olGeometry) {
18060
- const entities = this.store.all();
18177
+ const entities = this.activeStore.all();
18061
18178
  entities.forEach((entity) => {
18062
18179
  const entityId = entity.properties.id;
18063
18180
  const olGeometryId = olGeometry.ol_uid;
@@ -18071,7 +18188,7 @@ class DrawComponent {
18071
18188
  });
18072
18189
  }
18073
18190
  onSelectDraw(olFeature, label) {
18074
- const entities = this.store.all();
18191
+ const entities = this.activeStore.all();
18075
18192
  const olGeometry = olFeature.getGeometry();
18076
18193
  olGeometry.ol_uid = olFeature.get('id');
18077
18194
  const olGeometryCoordinates = JSON.stringify(olGeometry.getCoordinates()[0]);
@@ -18142,7 +18259,7 @@ class DrawComponent {
18142
18259
  lon4326 = point4326[0];
18143
18260
  lat4326 = point4326[1];
18144
18261
  }
18145
- this.store.update({
18262
+ this.activeStore.update({
18146
18263
  type: FEATURE,
18147
18264
  geometry,
18148
18265
  projection: projection.getCode(),
@@ -18171,6 +18288,40 @@ class DrawComponent {
18171
18288
  stroke: ['']
18172
18289
  });
18173
18290
  }
18291
+ setupLayer(isNewLayer) {
18292
+ setTimeout(() => {
18293
+ const dialogRef = this.dialog.open(DrawLayerPopupComponent, {
18294
+ disableClose: false,
18295
+ });
18296
+ dialogRef.afterClosed().subscribe((label) => {
18297
+ if (dialogRef.componentInstance.confirmFlag) {
18298
+ this.activeStore.state.updateAll({ selected: false });
18299
+ this.activeStore = new FeatureStore([], { map: this.map });
18300
+ this.activeDrawingLayerSource = new OlVectorSource();
18301
+ this.activeDrawingLayer.opacity = 0;
18302
+ this.deactivateDrawControl();
18303
+ this.initStore(label, isNewLayer);
18304
+ this.activeDrawControl = this.createDrawControl(this.fillColor, this.strokeColor, this.strokeWidth);
18305
+ this.activeDrawControl.setGeometryType(this.currGeometryType);
18306
+ this.toggleDrawControl();
18307
+ this.stores.push(this.activeStore);
18308
+ this.drawControls.push([this.activeDrawingLayer.id, this.activeDrawControl]);
18309
+ this.drawControlsEvent.emit(this.drawControls);
18310
+ this.layersIDEvent.emit(this.activeDrawingLayer.id);
18311
+ this.isCreatingNewLayer = false;
18312
+ if (!this.labelsAreShown) {
18313
+ this.onToggleLabels();
18314
+ }
18315
+ this.activeLayerChange.emit(this.activeDrawingLayer);
18316
+ }
18317
+ else {
18318
+ this.select.value = this.activeDrawingLayer;
18319
+ this.select.selectionChange.emit(this.activeDrawingLayer);
18320
+ }
18321
+ });
18322
+ }, 250);
18323
+ }
18324
+ // HTML user interactions
18174
18325
  /**
18175
18326
  * Called when the user double-clicks the selected drawing
18176
18327
  */
@@ -18184,12 +18335,14 @@ class DrawComponent {
18184
18335
  this.dialog.open(DrawShorcutsComponent);
18185
18336
  }
18186
18337
  deleteDrawings() {
18187
- this.store.deleteMany(this.selectedFeatures$.value);
18338
+ this.activeStore.deleteMany(this.selectedFeatures$.value);
18188
18339
  this.selectedFeatures$.value.forEach((selectedFeature) => {
18189
- this.olDrawingLayerSource.getFeatures().forEach((drawingLayerFeature) => {
18340
+ this.activeDrawingLayerSource
18341
+ .getFeatures()
18342
+ .forEach((drawingLayerFeature) => {
18190
18343
  const geometry = drawingLayerFeature.getGeometry();
18191
18344
  if (selectedFeature.properties.id === geometry.ol_uid) {
18192
- this.olDrawingLayerSource.removeFeature(drawingLayerFeature);
18345
+ this.activeDrawingLayerSource.removeFeature(drawingLayerFeature);
18193
18346
  }
18194
18347
  });
18195
18348
  });
@@ -18202,8 +18355,9 @@ class DrawComponent {
18202
18355
  this.drawStyleService.toggleLabelsAreShown();
18203
18356
  this.labelsAreShown = !this.labelsAreShown;
18204
18357
  this.icon
18205
- ? this.onColorChange(this.labelsAreShown, true, this.fillColor, this.strokeColor)
18206
- : this.onColorChange(this.labelsAreShown, false, this.fillColor, this.strokeColor);
18358
+ ? this.elementStyle(this.labelsAreShown, true)
18359
+ : this.elementStyle(this.labelsAreShown, false);
18360
+ this.createDrawControl();
18207
18361
  }
18208
18362
  /**
18209
18363
  * Called when the user toggles the Draw control is toggled
@@ -18213,6 +18367,69 @@ class DrawComponent {
18213
18367
  toggleIsChecked ? this.toggleDrawControl() : this.deactivateDrawControl();
18214
18368
  }
18215
18369
  // User changes properties of a drawing element
18370
+ /**
18371
+ * Display the current layer with the current store and the current layerSource
18372
+ */
18373
+ onLayerChange(currLayer) {
18374
+ if (currLayer) {
18375
+ this.activeStore.state.updateAll({ selected: false });
18376
+ this.isCreatingNewLayer = false;
18377
+ this.activeDrawingLayer.opacity = 0;
18378
+ this.activeDrawingLayer = currLayer;
18379
+ this.activeDrawingLayer.opacity = 1;
18380
+ this.deactivateDrawControl();
18381
+ if (!this.labelsAreShown) {
18382
+ this.onToggleLabels();
18383
+ }
18384
+ this.activeStore = this.stores.find(store => store.layer.id === this.activeDrawingLayer.id);
18385
+ this.activeDrawControl = this.drawControls.find(dc => dc[0] === this.activeDrawingLayer.id)[1];
18386
+ this.activeDrawingLayerSource = this.activeDrawControl.olDrawingLayerSource;
18387
+ this.activeDrawControl.setGeometryType(this.currGeometryType);
18388
+ this.toggleDrawControl();
18389
+ }
18390
+ else {
18391
+ this.setupLayer(true);
18392
+ }
18393
+ this.activeLayerChange.emit(this.activeDrawingLayer);
18394
+ }
18395
+ createLayer(newTitle, isNewLayer) {
18396
+ for (const layer of this.allLayers) {
18397
+ let numberId = Number(layer.id.replace('igo-draw-layer', ''));
18398
+ this.layerCounterID = Math.max(numberId, this.layerCounterID);
18399
+ }
18400
+ this.activeDrawingLayer = new VectorLayer({
18401
+ isIgoInternalLayer: true,
18402
+ id: 'igo-draw-layer' + ++this.layerCounterID,
18403
+ title: isNewLayer
18404
+ ? newTitle
18405
+ : this.languageService.translate.instant('igo.geo.draw.drawing'),
18406
+ zIndex: 200,
18407
+ source: new FeatureDataSource(),
18408
+ style: (feature, resolution) => {
18409
+ 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);
18410
+ },
18411
+ showInLayerList: true,
18412
+ exportable: true,
18413
+ browsable: false,
18414
+ workspace: {
18415
+ enabled: false
18416
+ }
18417
+ });
18418
+ tryBindStoreLayer(this.activeStore, this.activeDrawingLayer);
18419
+ tryAddLoadingStrategy(this.activeStore, new FeatureStoreLoadingStrategy({
18420
+ motion: FeatureMotion.None
18421
+ }));
18422
+ tryAddSelectionStrategy(this.activeStore, new FeatureStoreSelectionStrategy({
18423
+ map: this.map,
18424
+ motion: FeatureMotion.None,
18425
+ many: true
18426
+ }));
18427
+ this.activeStore.layer.visible = true;
18428
+ this.activeStore.source.ol.on('removefeature', (event) => {
18429
+ const olGeometry = event.feature.getGeometry();
18430
+ this.clearLabelsOfOlGeometry(olGeometry);
18431
+ });
18432
+ }
18216
18433
  /**
18217
18434
  * Called when the user changes the color in a color picker
18218
18435
  * @param labelsAreShown wheter the labels are shown or not
@@ -18225,16 +18442,14 @@ class DrawComponent {
18225
18442
  this.selectedFeatures$.value.forEach((feature) => {
18226
18443
  let olFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
18227
18444
  this.updateFillAndStrokeColor(olFeature, fillColor, strokeColor);
18228
- const entity = this.store
18445
+ const entity = this.activeStore
18229
18446
  .all()
18230
18447
  .find((e) => e.meta.id === olFeature.getId());
18231
18448
  entity.properties.drawingStyle.fill = olFeature.get('fillColor_');
18232
18449
  entity.properties.drawingStyle.stroke = olFeature.get('strokeColor_');
18233
- this.store.update(entity);
18450
+ this.activeStore.update(entity);
18234
18451
  });
18235
18452
  }
18236
- this.fillColor = fillColor;
18237
- this.strokeColor = strokeColor;
18238
18453
  this.elementStyle(labelsAreShown, isAnIcon);
18239
18454
  this.createDrawControl();
18240
18455
  }
@@ -18249,12 +18464,12 @@ class DrawComponent {
18249
18464
  this.selectedFeatures$.value.forEach((feature) => {
18250
18465
  let olFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
18251
18466
  this.updateFontSizeAndStyle(olFeature, size, style);
18252
- const entity = this.store
18467
+ const entity = this.activeStore
18253
18468
  .all()
18254
18469
  .find((e) => e.meta.id === olFeature.getId());
18255
18470
  entity.properties.fontStyle = olFeature.get('fontStyle_');
18256
- this.store.update(entity);
18257
- olFeature = this.store.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
18471
+ this.activeStore.update(entity);
18472
+ olFeature = this.activeStore.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
18258
18473
  olFeature.setProperties({ fontStyle: entity.properties.fontStyle });
18259
18474
  olFeature.changed();
18260
18475
  });
@@ -18276,13 +18491,13 @@ class DrawComponent {
18276
18491
  this.selectedFeatures$.value.forEach((feature) => {
18277
18492
  let olFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
18278
18493
  this.updateOffset(olFeature, offsetX, offsetY);
18279
- const entity = this.store
18494
+ const entity = this.activeStore
18280
18495
  .all()
18281
18496
  .find((e) => e.meta.id === olFeature.getId());
18282
18497
  entity.properties.offsetX = olFeature.get('offsetX_');
18283
18498
  entity.properties.offsetY = olFeature.get('offsetY_');
18284
- this.store.update(entity);
18285
- olFeature = this.store.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
18499
+ this.activeStore.update(entity);
18500
+ olFeature = this.activeStore.layer.ol.getSource().getFeatures().find(f => f.getId() === entity.meta.id);
18286
18501
  olFeature.setProperties({ offsetX: entity.properties.offsetX, offsetY: entity.properties.offsetY });
18287
18502
  olFeature.changed();
18288
18503
  });
@@ -18299,7 +18514,8 @@ class DrawComponent {
18299
18514
  * @param geometryType the geometry type selected by the user
18300
18515
  */
18301
18516
  onGeometryTypeChange(geometryType) {
18302
- this.drawControl.setGeometryType(geometryType);
18517
+ this.currGeometryType = geometryType;
18518
+ this.activeDrawControl.setGeometryType(geometryType);
18303
18519
  this.toggleDrawControl();
18304
18520
  }
18305
18521
  // Updates the properties of olFeature inputted
@@ -18330,13 +18546,57 @@ class DrawComponent {
18330
18546
  offsetY_: offsetY
18331
18547
  }, true);
18332
18548
  }
18333
- /**
18334
- * Check the amount of rows as a possible alternative
18335
- */
18549
+ // Updates values of the selected element on the HTML view
18550
+ getFeatureFontSize() {
18551
+ return this.selectedFeatures$.value.length > 0
18552
+ ? this.selectedFeatures$.value[0].properties.fontStyle
18553
+ .split(' ')[0]
18554
+ .replace('px', '')
18555
+ : '20';
18556
+ }
18557
+ getFeatureFontStyle() {
18558
+ return this.selectedFeatures$.value.length > 0
18559
+ ? this.selectedFeatures$.value[0].properties.fontStyle.substring(this.selectedFeatures$.value[0].properties.fontStyle.indexOf(' ') + 1)
18560
+ : FontType.Arial;
18561
+ }
18562
+ getFeatureFillColor() {
18563
+ return this.selectedFeatures$.value.length > 0
18564
+ ? this.selectedFeatures$.value[0].properties.drawingStyle.fill
18565
+ : 'rgba(255,255,255,0.4)';
18566
+ }
18567
+ getFeatureStrokeColor() {
18568
+ return this.selectedFeatures$.value.length > 0
18569
+ ? this.selectedFeatures$.value[0].properties.drawingStyle.stroke
18570
+ : 'rgba(143,7,7,1)';
18571
+ }
18572
+ getFeatureOffsetX() {
18573
+ return this.selectedFeatures$.value.length > 0
18574
+ ? this.selectedFeatures$.value[0].properties.offsetX
18575
+ : this.drawStyleService.getOffsetX();
18576
+ }
18577
+ getFeatureOffsetY() {
18578
+ return this.selectedFeatures$.value.length > 0
18579
+ ? this.selectedFeatures$.value[0].properties.offsetY
18580
+ : '0';
18581
+ }
18582
+ get allFontStyles() {
18583
+ return Object.values(FontType);
18584
+ }
18585
+ get allLayers() {
18586
+ return this.map.layers.filter((layer) => layer.id.includes('igo-draw-layer'));
18587
+ }
18336
18588
  updateHeightTable() {
18337
- this.numberOfDrawings = this.store.count$.getValue();
18338
- this.numberOfDrawings > 10 ? this.tableTemplate.tableHeight = '35vh' : this.tableTemplate.tableHeight = 'auto';
18589
+ // Check the amount of rows as a possible alternative
18590
+ this.numberOfDrawings = this.activeStore.count$.getValue();
18591
+ this.numberOfDrawings > 10
18592
+ ? (this.tableTemplate.tableHeight = '35vh')
18593
+ : (this.tableTemplate.tableHeight = 'auto');
18339
18594
  }
18595
+ updateActiveLayer() {
18596
+ let currLayer = this.allLayers.find(layer => layer.title === this.activeDrawingLayer.title);
18597
+ return currLayer ? currLayer : this.allLayers[0];
18598
+ }
18599
+ // Helper methods
18340
18600
  /**
18341
18601
  * Activate the correct control
18342
18602
  */
@@ -18361,20 +18621,20 @@ class DrawComponent {
18361
18621
  * @param olGeometry the new geometry to insert in the store
18362
18622
  */
18363
18623
  replaceFeatureInStore(entity, olGeometry, radius) {
18364
- this.store.delete(entity);
18624
+ this.activeStore.delete(entity);
18365
18625
  this.onDrawEnd(olGeometry, radius);
18366
18626
  }
18367
18627
  /**
18368
18628
  * Deactivate the active draw control
18369
18629
  */
18370
18630
  deactivateDrawControl() {
18371
- if (!this.drawControl) {
18631
+ if (!this.activeDrawControl) {
18372
18632
  return;
18373
18633
  }
18374
18634
  if (this.drawEnd$$) {
18375
18635
  this.drawEnd$$.unsubscribe();
18376
18636
  }
18377
- this.drawControl.setOlMap(undefined);
18637
+ this.activeDrawControl.setOlMap(undefined);
18378
18638
  this.drawControlIsActive = false;
18379
18639
  }
18380
18640
  /**
@@ -18383,38 +18643,47 @@ class DrawComponent {
18383
18643
  activateDrawControl() {
18384
18644
  this.drawControlIsDisabled = false;
18385
18645
  this.drawControlIsActive = true;
18386
- this.drawEnd$$ = this.drawControl.end$.subscribe((olGeometry) => {
18646
+ this.drawEnd$$ = this.activeDrawControl.end$.subscribe((olGeometry) => {
18387
18647
  this.openDrawDialog(olGeometry, true);
18388
18648
  });
18389
- this.drawControl.modify$.subscribe((olGeometry) => {
18649
+ this.activeDrawControl.modify$.subscribe((olGeometry) => {
18390
18650
  this.onModifyDraw(olGeometry);
18391
18651
  });
18392
18652
  if (!this.drawSelect$$) {
18393
- this.drawSelect$$ = this.drawControl.select$.subscribe((olFeature) => {
18653
+ this.drawSelect$$ = this.activeDrawControl.select$.subscribe((olFeature) => {
18394
18654
  this.openDrawDialog(olFeature, false);
18395
18655
  });
18396
18656
  }
18397
- this.drawControl.setOlMap(this.map.ol, true);
18657
+ this.activeDrawControl.setOlMap(this.map.ol, true);
18398
18658
  }
18399
18659
  /**
18400
18660
  * Recreates the style of the feature stored
18401
18661
  */
18402
18662
  elementStyle(labelsAreShown, isAnIcon) {
18403
18663
  if (isAnIcon) {
18404
- this.store.layer.ol.setStyle((feature, resolution) => {
18664
+ this.activeStore.layer.ol.setStyle((feature, resolution) => {
18405
18665
  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);
18406
18666
  });
18407
18667
  }
18408
18668
  else {
18409
- this.store.layer.ol.setStyle((feature, resolution) => {
18669
+ this.activeStore.layer.ol.setStyle((feature, resolution) => {
18410
18670
  return this.drawStyleService.createIndividualElementStyle(feature, resolution, labelsAreShown, feature.get('fontStyle'), feature.get('drawingStyle').fill, feature.get('drawingStyle').stroke, feature.get('offsetX'), feature.get('offsetY'));
18411
18671
  });
18412
18672
  }
18413
18673
  }
18414
18674
  }
18415
18675
  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)); };
18416
- 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) {
18676
+ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent, selectors: [["igo-draw"]], viewQuery: function DrawComponent_Query(rf, ctx) {
18417
18677
  if (rf & 1) {
18678
+ i0.ɵɵviewQuery(_c0$c, 5);
18679
+ }
18680
+ if (rf & 2) {
18681
+ let _t;
18682
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.select = _t.first);
18683
+ }
18684
+ }, 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) {
18685
+ if (rf & 1) {
18686
+ const _r21 = i0.ɵɵgetCurrentView();
18418
18687
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "mat-button-toggle-group", 1);
18419
18688
  i0.ɵɵlistener("change", function DrawComponent_Template_mat_button_toggle_group_change_2_listener($event) { return ctx.onGeometryTypeChange($event.value); });
18420
18689
  i0.ɵɵelementStart(3, "mat-button-toggle", 2);
@@ -18443,20 +18712,35 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
18443
18712
  i0.ɵɵtext(20);
18444
18713
  i0.ɵɵpipe(21, "translate");
18445
18714
  i0.ɵɵelementEnd()();
18446
- i0.ɵɵelementStart(22, "div");
18447
- i0.ɵɵtemplate(23, DrawComponent_button_23_Template, 4, 6, "button", 6);
18448
- i0.ɵɵelementStart(24, "div")(25, "igo-entity-table", 7, 8);
18449
- i0.ɵɵlistener("dblclick", function DrawComponent_Template_igo_entity_table_dblclick_25_listener() { return ctx.editLabelDrawing(); });
18715
+ i0.ɵɵelement(22, "mat-divider");
18716
+ i0.ɵɵelementStart(23, "div")(24, "mat-form-field", 6)(25, "mat-label");
18717
+ i0.ɵɵtext(26);
18718
+ i0.ɵɵpipe(27, "translate");
18719
+ i0.ɵɵelementEnd();
18720
+ i0.ɵɵelementStart(28, "mat-select", 7, 8);
18721
+ 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)); });
18722
+ i0.ɵɵtemplate(30, DrawComponent_mat_option_30_Template, 2, 2, "mat-option", 9);
18723
+ i0.ɵɵelementStart(31, "mat-option", 10);
18724
+ i0.ɵɵtext(32);
18725
+ i0.ɵɵpipe(33, "translate");
18450
18726
  i0.ɵɵelementEnd()()();
18451
- i0.ɵɵelementStart(27, "div", 9);
18452
- i0.ɵɵtemplate(28, DrawComponent_mat_form_field_28_Template, 11, 8, "mat-form-field", 10);
18727
+ i0.ɵɵtemplate(34, DrawComponent_button_34_Template, 4, 7, "button", 11);
18453
18728
  i0.ɵɵelementEnd();
18454
- i0.ɵɵelementStart(29, "button", 11);
18455
- i0.ɵɵlistener("click", function DrawComponent_Template_button_click_29_listener() { return ctx.openShorcutsDialog(); });
18456
- i0.ɵɵelement(30, "mat-icon", 12);
18457
- i0.ɵɵpipe(31, "translate");
18729
+ i0.ɵɵelement(35, "mat-divider");
18730
+ i0.ɵɵelementStart(36, "div");
18731
+ i0.ɵɵtemplate(37, DrawComponent_button_37_Template, 4, 6, "button", 12);
18732
+ i0.ɵɵelementStart(38, "div")(39, "igo-entity-table", 13, 14);
18733
+ i0.ɵɵlistener("dblclick", function DrawComponent_Template_igo_entity_table_dblclick_39_listener() { return ctx.editLabelDrawing(); });
18734
+ i0.ɵɵelementEnd()()();
18735
+ i0.ɵɵelementStart(41, "div", 15);
18736
+ i0.ɵɵtemplate(42, DrawComponent_mat_form_field_42_Template, 11, 8, "mat-form-field", 16);
18737
+ i0.ɵɵelementEnd();
18738
+ i0.ɵɵelementStart(43, "button", 17);
18739
+ i0.ɵɵlistener("click", function DrawComponent_Template_button_click_43_listener() { return ctx.openShorcutsDialog(); });
18740
+ i0.ɵɵelement(44, "mat-icon", 18);
18741
+ i0.ɵɵpipe(45, "translate");
18458
18742
  i0.ɵɵelementEnd();
18459
- i0.ɵɵtemplate(32, DrawComponent_button_32_Template, 5, 7, "button", 13);
18743
+ i0.ɵɵtemplate(46, DrawComponent_button_46_Template, 5, 7, "button", 19);
18460
18744
  i0.ɵɵelementEnd();
18461
18745
  }
18462
18746
  if (rf & 2) {
@@ -18465,39 +18749,49 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
18465
18749
  i0.ɵɵadvance(1);
18466
18750
  i0.ɵɵproperty("value", ctx.geometryType.Point);
18467
18751
  i0.ɵɵadvance(1);
18468
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 22, "igo.geo.draw." + ctx.geometryType.Point), " ");
18752
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 27, "igo.geo.draw." + ctx.geometryType.Point), " ");
18469
18753
  i0.ɵɵadvance(2);
18470
18754
  i0.ɵɵproperty("value", ctx.geometryType.LineString);
18471
18755
  i0.ɵɵadvance(1);
18472
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 24, "igo.geo.draw." + ctx.geometryType.LineString), " ");
18756
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 29, "igo.geo.draw." + ctx.geometryType.LineString), " ");
18473
18757
  i0.ɵɵadvance(2);
18474
18758
  i0.ɵɵproperty("value", ctx.geometryType.Polygon);
18475
18759
  i0.ɵɵadvance(1);
18476
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 26, "igo.geo.draw." + ctx.geometryType.Polygon), " ");
18760
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 31, "igo.geo.draw." + ctx.geometryType.Polygon), " ");
18477
18761
  i0.ɵɵadvance(2);
18478
18762
  i0.ɵɵproperty("value", ctx.geometryType.Circle);
18479
18763
  i0.ɵɵadvance(1);
18480
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 28, "igo.geo.draw." + ctx.geometryType.Circle), " ");
18764
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 33, "igo.geo.draw." + ctx.geometryType.Circle), " ");
18481
18765
  i0.ɵɵadvance(3);
18482
18766
  i0.ɵɵproperty("disabled", ctx.drawControlIsDisabled)("checked", ctx.drawControlIsActive)("labelPosition", "before");
18483
18767
  i0.ɵɵadvance(1);
18484
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 30, "igo.geo.spatialFilter.drawControl"), " ");
18768
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 35, "igo.geo.spatialFilter.drawControl"), " ");
18485
18769
  i0.ɵɵadvance(2);
18486
18770
  i0.ɵɵproperty("checked", ctx.labelsAreShown)("labelPosition", "before");
18487
18771
  i0.ɵɵadvance(1);
18488
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 32, "igo.geo.draw.toggleMapTooltips"), " ");
18772
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 37, "igo.geo.draw.toggleMapTooltips"), " ");
18773
+ i0.ɵɵadvance(6);
18774
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(27, 39, "igo.geo.draw.layer.title"));
18775
+ i0.ɵɵadvance(2);
18776
+ i0.ɵɵproperty("value", ctx.updateActiveLayer());
18777
+ i0.ɵɵadvance(2);
18778
+ i0.ɵɵproperty("ngForOf", ctx.allLayers);
18779
+ i0.ɵɵadvance(2);
18780
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(33, 41, "igo.geo.draw.layer.createNewLayer"), " ");
18781
+ i0.ɵɵadvance(2);
18782
+ i0.ɵɵproperty("ngIf", ctx.activeDrawingLayer);
18489
18783
  i0.ɵɵadvance(3);
18490
- i0.ɵɵproperty("ngIf", ctx.store.count$.getValue() > 0);
18784
+ i0.ɵɵproperty("ngIf", ctx.activeStore.count$.getValue() > 0);
18491
18785
  i0.ɵɵadvance(2);
18492
- i0.ɵɵproperty("store", ctx.store)("template", ctx.tableTemplate);
18786
+ i0.ɵɵproperty("store", ctx.activeStore)("template", ctx.tableTemplate);
18493
18787
  i0.ɵɵadvance(3);
18494
18788
  i0.ɵɵproperty("ngIf", ctx.icons.length >= 1);
18495
18789
  i0.ɵɵadvance(2);
18496
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(31, 34, "igo.geo.draw.shortcuts"));
18790
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(45, 43, "igo.geo.draw.shortcuts"));
18497
18791
  i0.ɵɵadvance(2);
18498
18792
  i0.ɵɵproperty("ngIf", ctx.selectedFeatures$.value.length);
18499
18793
  }
18500
- }, 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: [
18794
+ }, 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: [
18501
18795
  trigger('openClose', [
18502
18796
  state('open', style({
18503
18797
  opacity: 1
@@ -18523,8 +18817,22 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
18523
18817
  transition('open => closed', [animate('600ms ease')]),
18524
18818
  transition('closed => open', [animate('800ms ease')])
18525
18819
  ])
18526
- ], 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"] }]
18527
- }], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i1.MatDialog }, { type: DrawIconService }]; }, { fillColor: [{
18820
+ ], 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"] }]
18821
+ }], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i1.MatDialog }, { type: DrawIconService }]; }, { map: [{
18822
+ type: Input
18823
+ }], stores: [{
18824
+ type: Input
18825
+ }], drawControls: [{
18826
+ type: Input
18827
+ }], activeDrawingLayer: [{
18828
+ type: Input
18829
+ }], activeLayerChange: [{
18830
+ type: Output
18831
+ }], drawControlsEvent: [{
18832
+ type: Output
18833
+ }], layersIDEvent: [{
18834
+ type: Output
18835
+ }], fillColor: [{
18528
18836
  type: Output
18529
18837
  }], strokeColor: [{
18530
18838
  type: Output
@@ -18534,10 +18842,9 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
18534
18842
  type: Output
18535
18843
  }], fontStyle: [{
18536
18844
  type: Output
18537
- }], map: [{
18538
- type: Input
18539
- }], store: [{
18540
- type: Input
18845
+ }], select: [{
18846
+ type: ViewChild,
18847
+ args: ['selectedLayer']
18541
18848
  }] });
18542
18849
  })();
18543
18850
 
@@ -18964,7 +19271,7 @@ i0.ɵɵsetComponentScope(LayerItemComponent, [i1$1.NgClass, i1$1.NgIf, i2.MatIco
18964
19271
  i0.ɵɵsetComponentScope(LayerLegendItemComponent, [i4.MatTooltip, i5.MatListItem, i9.MatLine, LayerLegendComponent], []);
18965
19272
  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,
18966
19273
  LayerListToolComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
18967
- 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]);
19274
+ 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]);
18968
19275
 
18969
19276
  /**
18970
19277
  * @ignore
@@ -20396,13 +20703,13 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
20396
20703
  BrowserModule,
20397
20704
  BrowserAnimationsModule
20398
20705
  ],
20399
- declarations: [DrawComponent, DrawPopupComponent, DrawShorcutsComponent],
20706
+ declarations: [DrawComponent, DrawPopupComponent, DrawLayerPopupComponent, DrawShorcutsComponent],
20400
20707
  exports: [DrawComponent]
20401
20708
  }]
20402
20709
  }], null, null);
20403
20710
  })();
20404
20711
  (function () {
20405
- (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoDrawModule, { declarations: [DrawComponent, DrawPopupComponent, DrawShorcutsComponent], imports: [FormsModule,
20712
+ (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoDrawModule, { declarations: [DrawComponent, DrawPopupComponent, DrawLayerPopupComponent, DrawShorcutsComponent], imports: [FormsModule,
20406
20713
  ReactiveFormsModule,
20407
20714
  CommonModule,
20408
20715
  MatButtonModule,
@@ -24180,7 +24487,7 @@ TimeFilterFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Tim
24180
24487
  i0.ɵɵadvance(1);
24181
24488
  i0.ɵɵproperty("ngIf", ctx.style === "slider" && ctx.type !== "year");
24182
24489
  }
24183
- }, 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}"] });
24490
+ }, 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}"] });
24184
24491
  (function () {
24185
24492
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeFilterFormComponent, [{
24186
24493
  type: Component,
@@ -30275,8 +30582,8 @@ i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1$1.NgForOf, i1$1.NgIf, i
30275
30582
  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]);
30276
30583
  i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, OgcFilterableItemComponent], [i7.TranslatePipe, FilterableDataSourcePipe]);
30277
30584
  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]);
30278
- 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]);
30279
- 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]);
30585
+ 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]);
30586
+ 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]);
30280
30587
 
30281
30588
  function ExportButtonComponent_button_0_Template(rf, ctx) {
30282
30589
  if (rf & 1) {
@@ -32341,7 +32648,7 @@ ImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Impor
32341
32648
  i0.ɵɵadvance(2);
32342
32649
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(13, 15, ctx.exportableLayers$).length > 0 && ctx.selectedMode === "export");
32343
32650
  }
32344
- }, 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}"] });
32651
+ }, 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}"] });
32345
32652
  (function () {
32346
32653
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImportExportComponent, [{
32347
32654
  type: Component,
@@ -32920,7 +33227,7 @@ IgoMeasurerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Common
32920
33227
  IgoEntityTableModule], exports: [MeasureFormatPipe,
32921
33228
  MeasurerComponent] });
32922
33229
  })();
32923
- 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]);
33230
+ 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]);
32924
33231
  i0.ɵɵsetComponentScope(MeasurerDialogComponent, [i1$1.NgIf], [i7.TranslatePipe, MeasureFormatPipe]);
32925
33232
 
32926
33233
  class IgoMeasureModule {
@@ -34241,7 +34548,7 @@ PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFor
34241
34548
  i0.ɵɵadvance(2);
34242
34549
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(64, 70, "igo.geo.printForm.saveBtn"), " ");
34243
34550
  }
34244
- }, 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}"] });
34551
+ }, 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}"] });
34245
34552
  (function () {
34246
34553
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintFormComponent, [{
34247
34554
  type: Component,
@@ -38362,7 +38669,7 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
38362
38669
  i0.ɵɵadvance(1);
38363
38670
  i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
38364
38671
  }
38365
- }, 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 });
38672
+ }, 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 });
38366
38673
  (function () {
38367
38674
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
38368
38675
  type: Component,