@igo2/geo 1.9.4 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/bundles/igo2-geo.umd.js +743 -320
  2. package/bundles/igo2-geo.umd.js.map +1 -1
  3. package/esm2015/lib/datasource/shared/capabilities.service.js +4 -4
  4. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +1 -1
  5. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +2 -2
  6. package/esm2015/lib/filter/filter.module.js +6 -3
  7. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +185 -95
  8. package/esm2015/lib/import-export/import-export/import-export.component.js +176 -65
  9. package/esm2015/lib/import-export/shared/export.interface.js +1 -1
  10. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +17 -15
  11. package/esm2015/lib/layer/layer.module.js +8 -5
  12. package/esm2015/lib/layer/shared/layer.service.js +19 -16
  13. package/esm2015/lib/layer/shared/layers/layer.js +15 -5
  14. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +1 -1
  15. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +1 -1
  16. package/esm2015/lib/layer/shared/style.service.js +21 -16
  17. package/esm2015/lib/layer/shared/vector-style.interface.js +1 -1
  18. package/esm2015/lib/layer/utils/index.js +2 -1
  19. package/esm2015/lib/layer/utils/layer.utils.js +11 -0
  20. package/esm2015/lib/map/shared/hover-feature.directive.js +228 -78
  21. package/esm2015/lib/query/shared/query.interfaces.js +1 -1
  22. package/esm2015/lib/query/shared/query.utils.js +2 -2
  23. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +15 -5
  24. package/esm2015/lib/search/shared/search.interfaces.js +1 -1
  25. package/esm2015/lib/search/shared/sources/icherche.js +3 -2
  26. package/fesm2015/igo2-geo.js +705 -315
  27. package/fesm2015/igo2-geo.js.map +1 -1
  28. package/lib/datasource/shared/datasources/datasource.interface.d.ts +1 -0
  29. package/lib/filter/filter.module.d.ts +1 -1
  30. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +7 -2
  31. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  32. package/lib/import-export/shared/export.interface.d.ts +2 -1
  33. package/lib/layer/layer-legend/layer-legend.component.d.ts +0 -4
  34. package/lib/layer/layer.module.d.ts +1 -1
  35. package/lib/layer/shared/layer.service.d.ts +1 -1
  36. package/lib/layer/shared/layers/layer.d.ts +1 -0
  37. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -0
  38. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +1 -0
  39. package/lib/layer/shared/style.service.d.ts +4 -1
  40. package/lib/layer/shared/vector-style.interface.d.ts +9 -5
  41. package/lib/layer/utils/index.d.ts +1 -0
  42. package/lib/layer/utils/layer.utils.d.ts +2 -0
  43. package/lib/map/shared/hover-feature.directive.d.ts +14 -5
  44. package/lib/query/shared/query.interfaces.d.ts +1 -1
  45. package/lib/search/shared/search-pointer-summary.directive.d.ts +6 -0
  46. package/lib/search/shared/search.interfaces.d.ts +1 -0
  47. package/package.json +4 -4
@@ -11,7 +11,7 @@ import { MatListModule } from '@angular/material/list';
11
11
  import * as i3 from '@angular/material/tooltip';
12
12
  import { MatTooltipModule } from '@angular/material/tooltip';
13
13
  import * as i6$1 from '@igo2/common';
14
- import { getEntityId, getEntityTitle, getEntityProperty, getEntityRevision, getEntityIcon, EntityStore, EntityStoreStrategy, EntityStoreWatcher, SecureImagePipe, IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoEntityTableModule, IgoKeyValueModule, IgoFormModule, IgoFormFieldComponent, EntityTableColumnRenderer, DragAndDropDirective, IgoSpinnerModule, IgoDrapDropModule, IgoConfirmDialogModule, getEntityTitleHtml, EntityStoreFilterCustomFuncStrategy, IgoStopPropagationModule, IgoFlexibleModule, WidgetService, Workspace, ActionStore, EntityStoreFilterSelectionStrategy, IgoWidgetModule } from '@igo2/common';
14
+ import { getEntityId, getEntityTitle, getEntityProperty, getEntityRevision, getEntityIcon, EntityStore, EntityStoreStrategy, EntityStoreWatcher, SecureImagePipe, IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoCustomHtmlModule, IgoEntityTableModule, IgoKeyValueModule, IgoFormModule, IgoFormFieldComponent, EntityStoreFilterSelectionStrategy, EntityTableColumnRenderer, IgoEntityModule, DragAndDropDirective, IgoSpinnerModule, IgoDrapDropModule, IgoConfirmDialogModule, getEntityTitleHtml, EntityStoreFilterCustomFuncStrategy, IgoStopPropagationModule, IgoFlexibleModule, WidgetService, Workspace, ActionStore, IgoWidgetModule } from '@igo2/common';
15
15
  import * as i2 from '@angular/material/button';
16
16
  import { MatButtonModule } from '@angular/material/button';
17
17
  import * as i2$1 from '@igo2/core';
@@ -24,7 +24,7 @@ import { first, map, concatMap, catchError, skipWhile, debounceTime, skip, disti
24
24
  import { Watcher, uuid, SubjectStatus, ObjectUtils, NumberUtils, userAgent, downloadContent, strEnum, Clipboard, ChangeUtils } from '@igo2/utils';
25
25
  import olMap from 'ol/Map';
26
26
  import olView from 'ol/View';
27
- import olFeature from 'ol/Feature';
27
+ import OlFeature from 'ol/Feature';
28
28
  import olGeolocation from 'ol/Geolocation';
29
29
  import olAttribution from 'ol/control/Attribution';
30
30
  import olControlScaleLine from 'ol/control/ScaleLine';
@@ -88,15 +88,14 @@ import { optionsFromCapabilities } from 'ol/source/WMTS.js';
88
88
  import * as i6 from '@igo2/auth';
89
89
  import { AuthService } from '@igo2/auth';
90
90
  import OlDragBoxInteraction from 'ol/interaction/DragBox';
91
+ import olLayerVectorTile from 'ol/layer/VectorTile';
91
92
  import * as olgeom from 'ol/geom';
92
- import * as olLayer from 'ol/layer';
93
93
  import olLayerImage from 'ol/layer/Image';
94
94
  import olLayerTile from 'ol/layer/Tile';
95
- import olLayerVectorTile from 'ol/layer/VectorTile';
95
+ import RenderFeature from 'ol/render/Feature';
96
96
  import { trigger, state, style, transition, animate } from '@angular/animations';
97
97
  import stylefunction from 'ol-mapbox-style/dist/stylefunction';
98
98
  import * as striptags_ from 'striptags';
99
- import OlRenderFeature from 'ol/render/Feature';
100
99
  import * as i9 from '@angular/material/core';
101
100
  import { MAT_DATE_LOCALE, MatOptionModule, MatNativeDateModule } from '@angular/material/core';
102
101
  import * as i12 from '@angular/material/form-field';
@@ -418,6 +417,17 @@ class ImageWatcher extends Watcher {
418
417
  }
419
418
  }
420
419
 
420
+ function computeMVTOptionsOnHover(layerOptions) {
421
+ var _a, _b;
422
+ const vectorTileLayerOptions = layerOptions;
423
+ if (((_a = vectorTileLayerOptions.sourceOptions) === null || _a === void 0 ? void 0 : _a.type) === 'mvt' &&
424
+ (((_b = vectorTileLayerOptions.styleByAttribute) === null || _b === void 0 ? void 0 : _b.hoverStyle) || vectorTileLayerOptions.hoverStyle)) {
425
+ const fc = vectorTileLayerOptions.sourceOptions.featureClass;
426
+ vectorTileLayerOptions.sourceOptions.featureClass = fc ? fc : 'feature';
427
+ }
428
+ return layerOptions;
429
+ }
430
+
421
431
  var LinkedProperties;
422
432
  (function (LinkedProperties) {
423
433
  LinkedProperties["OPACITY"] = "opacity";
@@ -2648,11 +2658,15 @@ class Layer {
2648
2658
  return this.ol.getMinResolution();
2649
2659
  }
2650
2660
  set visible(value) {
2661
+ var _a, _b;
2651
2662
  this.ol.setVisible(value);
2652
2663
  this.visible$.next(value);
2653
- if (!this.hasBeenVisible$.value && value && this.messageService) {
2664
+ if (!this.hasBeenVisible$.value && value) {
2654
2665
  this.hasBeenVisible$.next(value);
2655
2666
  }
2667
+ if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.messages) && value) {
2668
+ (_b = this.options) === null || _b === void 0 ? void 0 : _b.messages.filter(m => { var _a; return (_a = m.options) === null || _a === void 0 ? void 0 : _a.showOnEachLayerVisibility; }).map(message => this.showMessage(message));
2669
+ }
2656
2670
  }
2657
2671
  get visible() {
2658
2672
  return this.visible$.value;
@@ -2673,9 +2687,7 @@ class Layer {
2673
2687
  this.hasBeenVisible$$ = this.hasBeenVisible$.subscribe(() => {
2674
2688
  if (this.options.messages && this.visible) {
2675
2689
  this.options.messages.map(message => {
2676
- message.title = message.title;
2677
- message.text = message.text;
2678
- this.messageService.message(message);
2690
+ this.showMessage(message);
2679
2691
  });
2680
2692
  }
2681
2693
  });
@@ -2684,6 +2696,14 @@ class Layer {
2684
2696
  this.layerSyncWatcher.unsubscribe();
2685
2697
  }
2686
2698
  }
2699
+ showMessage(message) {
2700
+ if (!this.messageService) {
2701
+ return;
2702
+ }
2703
+ message.title = message.title;
2704
+ message.text = message.text;
2705
+ this.messageService.message(message);
2706
+ }
2687
2707
  observeResolution() {
2688
2708
  this.resolution$$ = this.map.viewController.resolution$.subscribe(() => this.updateInResolutionsRange());
2689
2709
  }
@@ -3620,9 +3640,9 @@ class MVTDataSource extends DataSource {
3620
3640
  createOlSource() {
3621
3641
  let mvtFormat;
3622
3642
  if (this.options.featureClass === 'feature') {
3623
- mvtFormat = new olFormatMVT({ featureClass: olFeature });
3643
+ mvtFormat = new olFormatMVT({ featureClass: OlFeature });
3624
3644
  }
3625
- else if (this.options.featureClass === undefined) {
3645
+ else {
3626
3646
  mvtFormat = new olFormatMVT();
3627
3647
  }
3628
3648
  this.options.format = mvtFormat;
@@ -4297,8 +4317,7 @@ class CapabilitiesService {
4297
4317
  legendInfo,
4298
4318
  style,
4299
4319
  timeFilter,
4300
- timeExtent,
4301
- attributions
4320
+ timeExtent
4302
4321
  });
4303
4322
  const options = ObjectUtils.removeUndefined({
4304
4323
  params,
@@ -4314,6 +4333,7 @@ class CapabilitiesService {
4314
4333
  sourceFields: arcgisOptions.fields,
4315
4334
  queryTitle: arcgisOptions.displayField
4316
4335
  });
4336
+ options.params.attributions = attributions;
4317
4337
  return ObjectUtils.mergeDeep(options, baseOptions);
4318
4338
  }
4319
4339
  parseTileOrImageArcgisOptions(baseOptions, arcgisOptions, legend, serviceCapabilities) {
@@ -4356,10 +4376,10 @@ class CapabilitiesService {
4356
4376
  },
4357
4377
  legendInfo,
4358
4378
  timeFilter,
4359
- attributions,
4360
4379
  sourceFields: arcgisOptions.fields,
4361
4380
  queryTitle: arcgisOptions.displayField
4362
4381
  });
4382
+ options.attributions = attributions;
4363
4383
  return ObjectUtils.mergeDeep(options, baseOptions);
4364
4384
  }
4365
4385
  findDataSourceInCapabilities(layerArray, name) {
@@ -6179,6 +6199,7 @@ class StyleService {
6179
6199
  return olCls;
6180
6200
  }
6181
6201
  createStyleByAttribute(feature, styleByAttribute) {
6202
+ var _a;
6182
6203
  let style;
6183
6204
  const type = styleByAttribute.type ? styleByAttribute.type : this.guessTypeFeature(feature);
6184
6205
  const attribute = styleByAttribute.attribute;
@@ -6186,35 +6207,36 @@ class StyleService {
6186
6207
  const stroke = styleByAttribute.stroke;
6187
6208
  const width = styleByAttribute.width;
6188
6209
  const fill = styleByAttribute.fill;
6210
+ const anchor = styleByAttribute.anchor;
6189
6211
  const radius = styleByAttribute.radius;
6190
6212
  const icon = styleByAttribute.icon;
6191
6213
  const scale = styleByAttribute.scale;
6192
6214
  const size = data ? data.length : 0;
6193
- const label = styleByAttribute.label;
6194
- const labelStyle = label instanceof olstyle.Style ?
6195
- this.parseStyle('text', styleByAttribute.label) ||
6196
- new olstyle.Text() : undefined;
6215
+ const label = styleByAttribute.label ? styleByAttribute.label.attribute : undefined;
6216
+ let labelStyle = ((_a = styleByAttribute.label) === null || _a === void 0 ? void 0 : _a.style) ? this.parseStyle('text', styleByAttribute.label.style) : undefined;
6217
+ if (!labelStyle && label) {
6218
+ labelStyle = new olstyle.Text();
6219
+ }
6197
6220
  const baseStyle = styleByAttribute.baseStyle;
6198
6221
  if (labelStyle) {
6199
- const options = {
6200
- text: this.getLabel(feature, label)
6201
- };
6202
- labelStyle instanceof olstyle.Style ? labelStyle.setText(new olstyle.Text(options)) :
6203
- labelStyle.setText(this.getLabel(feature, label));
6222
+ labelStyle.setText(this.getLabel(feature, label));
6204
6223
  }
6205
6224
  if (type === 'circle') {
6206
6225
  for (let i = 0; i < size; i++) {
6207
- const val = typeof feature.get(attribute) !== 'undefined'
6226
+ const val = typeof feature.get(attribute) !== 'undefined' && feature.get(attribute) !== null
6208
6227
  ? feature.get(attribute)
6209
6228
  : '';
6210
- if (val === data[i] || val.toString().match(data[i])) {
6229
+ if (val === data[i] || val.toString().match(new RegExp(data[i], 'gmi'))) {
6211
6230
  if (icon) {
6212
6231
  style = [
6213
6232
  new olstyle.Style({
6214
6233
  image: new olstyle.Icon({
6234
+ color: fill ? fill[i] : undefined,
6215
6235
  src: icon[i],
6216
- scale: scale ? scale[i] : 1
6217
- })
6236
+ scale: scale ? scale[i] : 1,
6237
+ anchor: anchor ? anchor[i] : [0.5, 0.5]
6238
+ }),
6239
+ text: labelStyle instanceof olstyle.Text ? labelStyle : undefined
6218
6240
  })
6219
6241
  ];
6220
6242
  return style;
@@ -6263,10 +6285,10 @@ class StyleService {
6263
6285
  }
6264
6286
  else if (type === 'regular') {
6265
6287
  for (let i = 0; i < size; i++) {
6266
- const val = typeof feature.get(attribute) !== 'undefined'
6288
+ const val = typeof feature.get(attribute) !== 'undefined' && feature.get(attribute) !== null
6267
6289
  ? feature.get(attribute)
6268
6290
  : '';
6269
- if (val === data[i] || val.toString().match(data[i])) {
6291
+ if (val === data[i] || val.toString().match(new RegExp(data[i], 'gmi'))) {
6270
6292
  style = [
6271
6293
  new olstyle.Style({
6272
6294
  stroke: new olstyle.Stroke({
@@ -6282,7 +6304,7 @@ class StyleService {
6282
6304
  return style;
6283
6305
  }
6284
6306
  }
6285
- if (feature instanceof olFeature) {
6307
+ if (feature instanceof OlFeature) {
6286
6308
  if (!feature.getStyle()) {
6287
6309
  if (baseStyle) {
6288
6310
  style = this.createStyle(baseStyle);
@@ -6377,6 +6399,9 @@ class StyleService {
6377
6399
  }
6378
6400
  getLabel(feature, labelMatch) {
6379
6401
  let label = labelMatch;
6402
+ if (!label) {
6403
+ return;
6404
+ }
6380
6405
  const labelToGet = Array.from(labelMatch.matchAll(/\$\{([^\{\}]+)\}/g));
6381
6406
  labelToGet.forEach(v => {
6382
6407
  label = label.replace(v[0], feature.get(v[1]));
@@ -7479,7 +7504,7 @@ class IgoMap {
7479
7504
  if (this.bufferFeature) {
7480
7505
  this.buffer.dataSource.ol.removeFeature(this.bufferFeature);
7481
7506
  }
7482
- this.geolocationPositionFeature = new olFeature({ geometry: positionGeometry });
7507
+ this.geolocationPositionFeature = new OlFeature({ geometry: positionGeometry });
7483
7508
  this.geolocationPositionFeature.setId('geolocationPositionFeature');
7484
7509
  this.geolocationPositionFeature.setStyle(new olstyle.Style({
7485
7510
  image: new olstyle.Circle({
@@ -7493,7 +7518,7 @@ class IgoMap {
7493
7518
  }),
7494
7519
  }),
7495
7520
  }));
7496
- this.geolocationAccuracyFeature = new olFeature({ geometry: accuracyGeometry });
7521
+ this.geolocationAccuracyFeature = new OlFeature({ geometry: accuracyGeometry });
7497
7522
  this.geolocationAccuracyFeature.setId('geolocationAccuracyFeature');
7498
7523
  if (this.alwaysTracking) {
7499
7524
  [this.geolocationPositionFeature, this.geolocationAccuracyFeature].map(feature => {
@@ -7517,7 +7542,7 @@ class IgoMap {
7517
7542
  else {
7518
7543
  bufferText = '';
7519
7544
  }
7520
- this.bufferFeature = new olFeature(this.bufferGeom);
7545
+ this.bufferFeature = new OlFeature(this.bufferGeom);
7521
7546
  this.bufferFeature.setId('bufferFeature');
7522
7547
  this.bufferFeature.set('bufferStroke', bufferStroke);
7523
7548
  this.bufferFeature.set('bufferFill', bufferFill);
@@ -8107,6 +8132,7 @@ class HoverFeatureDirective {
8107
8132
  this.mediaService = mediaService;
8108
8133
  this.styleService = styleService;
8109
8134
  this.pointerHoverFeatureStore = new EntityStore([]);
8135
+ this.selectionMVT = {};
8110
8136
  this.hoverFeatureId = 'hoverFeatureId';
8111
8137
  /**
8112
8138
  * The delay where the mouse must be motionless before trigger the reverse search
@@ -8154,7 +8180,7 @@ class HoverFeatureDirective {
8154
8180
  * Initialize the pointer position store
8155
8181
  * @internal
8156
8182
  */
8157
- initStore(layerSource) {
8183
+ initStore() {
8158
8184
  const store = this.store;
8159
8185
  const layer = new VectorLayer({
8160
8186
  id: 'hoverFeatureId',
@@ -8167,6 +8193,64 @@ class HoverFeatureDirective {
8167
8193
  style: hoverFeatureMarker
8168
8194
  });
8169
8195
  tryBindStoreLayer(store, layer);
8196
+ this.selectionLayer = new olLayerVectorTile({
8197
+ map: this.map.ol,
8198
+ zIndex: 901,
8199
+ renderMode: "vector",
8200
+ declutter: true,
8201
+ source: new olSourceVectorTile({}),
8202
+ style: (feature) => {
8203
+ if (this.mvtStyleOptions && feature.getId() in this.selectionMVT) {
8204
+ return this.createHoverStyle(feature, this.mvtStyleOptions);
8205
+ }
8206
+ }
8207
+ });
8208
+ }
8209
+ createHoverStyle(feature, hoverStyle) {
8210
+ var _a;
8211
+ const localHoverStyle = Object.assign({}, hoverStyle);
8212
+ let label = hoverStyle.label ? hoverStyle.label.attribute : undefined;
8213
+ let hasLabelStyle = ((_a = hoverStyle.label) === null || _a === void 0 ? void 0 : _a.style) ? true : false;
8214
+ if (!feature.get('_isLabel')) {
8215
+ localHoverStyle.label = undefined;
8216
+ hasLabelStyle = false;
8217
+ label = undefined;
8218
+ }
8219
+ else {
8220
+ // clear the style for label....
8221
+ const size = localHoverStyle.data ? localHoverStyle.data.length : 0;
8222
+ const radius = [];
8223
+ const stroke = [];
8224
+ const width = [];
8225
+ const fill = [];
8226
+ for (let i = 0; i < size; i++) {
8227
+ radius.push(0);
8228
+ stroke.push('rgba(255, 255, 255, 0)');
8229
+ width.push(0);
8230
+ fill.push('rgba(255, 255, 255, 0)');
8231
+ }
8232
+ localHoverStyle.radius = radius;
8233
+ localHoverStyle.stroke = stroke;
8234
+ localHoverStyle.width = width;
8235
+ localHoverStyle.fill = fill;
8236
+ }
8237
+ if (!hasLabelStyle && label) {
8238
+ localHoverStyle.label.style =
8239
+ {
8240
+ textAlign: 'left',
8241
+ textBaseline: 'top',
8242
+ font: '12px Calibri,sans-serif',
8243
+ fill: { color: '#000' },
8244
+ backgroundFill: { color: 'rgba(255, 255, 255, 0.5)' },
8245
+ backgroundStroke: { color: 'rgba(200, 200, 200, 0.75)', width: 2 },
8246
+ stroke: { color: '#fff', width: 3 },
8247
+ overflow: true,
8248
+ offsetX: 10,
8249
+ offsetY: 20,
8250
+ padding: [2.5, 2.5, 2.5, 2.5]
8251
+ };
8252
+ }
8253
+ return this.styleService.createStyleByAttribute(feature, localHoverStyle);
8170
8254
  }
8171
8255
  /**
8172
8256
  * Stop listening to pointermove and reverse search results.
@@ -8249,58 +8333,167 @@ class HoverFeatureDirective {
8249
8333
  if (typeof this.lastTimeoutRequest !== 'undefined') { // cancel timeout when the mouse moves
8250
8334
  clearTimeout(this.lastTimeoutRequest);
8251
8335
  }
8336
+ this.clearLayer();
8337
+ let maximumZindex = -Infinity;
8338
+ let topMostOlLayer;
8252
8339
  const pixel = this.map.ol.getPixelFromCoordinate(event.coordinate);
8253
8340
  this.lastTimeoutRequest = setTimeout(() => {
8254
- this.map.ol.forEachFeatureAtPixel(pixel, function (f, l) {
8255
- if (f.get('hoverSummary') === undefined) {
8256
- const igoLayer = this.map.getLayerByOlUId(l.ol_uid);
8257
- this.setLayerStyleFromOptions(igoLayer, f);
8258
- this.pointerHoverFeatureStore.load([{ layer: igoLayer, feature: f }]);
8341
+ // retrieve the topmost layer with feature to only apply the hover on this layer.
8342
+ this.map.ol.forEachFeatureAtPixel(pixel, (mapFeature, layerOL) => {
8343
+ if (!layerOL) {
8344
+ return;
8345
+ }
8346
+ const igoLayer = this.map.getLayerByOlUId(layerOL.ol_uid);
8347
+ if (!this.canProcessHover(igoLayer)) {
8348
+ return;
8349
+ }
8350
+ if (igoLayer.zIndex <= maximumZindex) {
8351
+ return;
8352
+ }
8353
+ maximumZindex = igoLayer.zIndex;
8354
+ topMostOlLayer = layerOL;
8355
+ }, {
8356
+ hitTolerance: 10, layerFilter: olLayer => olLayer instanceof OlVectorLayer || olLayer instanceof olLayerVectorTile
8357
+ });
8358
+ if (!topMostOlLayer) {
8359
+ return;
8360
+ }
8361
+ this.clearLayer();
8362
+ this.map.ol.forEachFeatureAtPixel(pixel, (mapFeature, layerOL) => {
8363
+ var _a, _b, _c;
8364
+ if (mapFeature.get('hoverSummary') === undefined) {
8365
+ let igoLayer;
8366
+ if (layerOL instanceof OlVectorLayer) {
8367
+ igoLayer = this.map.getLayerByOlUId(layerOL.ol_uid);
8368
+ if (!this.canProcessHover(igoLayer)) {
8369
+ return;
8370
+ }
8371
+ let localOlFeature = this.handleRenderFeature(mapFeature);
8372
+ this.setLayerStyleFromOptions(igoLayer, localOlFeature);
8373
+ const featuresToLoad = [localOlFeature];
8374
+ localOlFeature.set("_isLabel", false);
8375
+ const myLabelOlFeature = new OlFeature();
8376
+ myLabelOlFeature.setProperties(localOlFeature.getProperties());
8377
+ const labelGeom = localOlFeature.getGeometry().getType() === 'Point' ? localOlFeature.getGeometry() : new olgeom.Point(event.coordinate);
8378
+ myLabelOlFeature.setGeometry(labelGeom);
8379
+ myLabelOlFeature.setId(localOlFeature.getId());
8380
+ myLabelOlFeature.set("_isLabel", true);
8381
+ this.setLayerStyleFromOptions(igoLayer, myLabelOlFeature);
8382
+ featuresToLoad.push(myLabelOlFeature);
8383
+ this.pointerHoverFeatureStore.load(featuresToLoad);
8384
+ return true;
8385
+ }
8386
+ if (layerOL instanceof olLayerVectorTile) {
8387
+ igoLayer = this.map.getLayerByOlUId(layerOL.ol_uid);
8388
+ if (!this.canProcessHover(igoLayer)) {
8389
+ return;
8390
+ }
8391
+ if ((_b = (_a = igoLayer === null || igoLayer === void 0 ? void 0 : igoLayer.options) === null || _a === void 0 ? void 0 : _a.styleByAttribute) === null || _b === void 0 ? void 0 : _b.hoverStyle) {
8392
+ this.mvtStyleOptions = igoLayer.options.styleByAttribute.hoverStyle;
8393
+ }
8394
+ else if ((_c = igoLayer === null || igoLayer === void 0 ? void 0 : igoLayer.options) === null || _c === void 0 ? void 0 : _c.hoverStyle) {
8395
+ this.mvtStyleOptions = igoLayer.options.hoverStyle;
8396
+ }
8397
+ this.selectionLayer.setSource(layerOL.getSource());
8398
+ layerOL.getFeatures(event.pixel).then((mvtFeatures) => {
8399
+ if (!mvtFeatures.length) {
8400
+ this.selectionMVT = {};
8401
+ this.selectionLayer.changed();
8402
+ this.clearLayer();
8403
+ return;
8404
+ }
8405
+ const feature = mvtFeatures[0];
8406
+ if (!feature) {
8407
+ this.clearLayer();
8408
+ return;
8409
+ }
8410
+ let localOlFeature = this.handleRenderFeature(feature);
8411
+ localOlFeature.set("_isLabel", false);
8412
+ const myLabelOlFeature = new OlFeature();
8413
+ myLabelOlFeature.setProperties(localOlFeature.getProperties());
8414
+ const labelGeom = localOlFeature.getGeometry().getType() === 'Point' ? localOlFeature.getGeometry() : new olgeom.Point(event.coordinate);
8415
+ myLabelOlFeature.setGeometry(labelGeom);
8416
+ myLabelOlFeature.setId(localOlFeature.getId());
8417
+ myLabelOlFeature.set("_isLabel", true);
8418
+ this.setLayerStyleFromOptions(igoLayer, myLabelOlFeature);
8419
+ this.pointerHoverFeatureStore.load([myLabelOlFeature]);
8420
+ this.selectionMVT[feature.getId()] = localOlFeature;
8421
+ this.selectionLayer.changed();
8422
+ });
8423
+ }
8259
8424
  }
8260
8425
  return true;
8261
- }.bind(this));
8426
+ }, {
8427
+ hitTolerance: 10, layerFilter: olLayer => olLayer === topMostOlLayer
8428
+ });
8262
8429
  }, this.igoHoverFeatureDelay);
8263
8430
  }
8431
+ canProcessHover(igoLayer) {
8432
+ if (!igoLayer) {
8433
+ return false;
8434
+ }
8435
+ if (!igoLayer.visible) {
8436
+ return false;
8437
+ }
8438
+ if (!igoLayer.options) {
8439
+ return false;
8440
+ }
8441
+ if (!igoLayer.options.styleByAttribute && !igoLayer.options.hoverStyle) {
8442
+ return false;
8443
+ }
8444
+ if ((igoLayer.options.styleByAttribute && !igoLayer.options.styleByAttribute.hoverStyle) &&
8445
+ !igoLayer.options.hoverStyle) {
8446
+ return false;
8447
+ }
8448
+ return true;
8449
+ }
8450
+ handleRenderFeature(feature) {
8451
+ let localFeature;
8452
+ if (feature instanceof RenderFeature) {
8453
+ localFeature = new OlFeature({
8454
+ geometry: this.getGeometry(feature)
8455
+ });
8456
+ localFeature.setId(feature.getId());
8457
+ }
8458
+ else if (feature instanceof OlFeature) {
8459
+ localFeature = feature;
8460
+ }
8461
+ return localFeature;
8462
+ }
8264
8463
  /**
8265
8464
  * Add a feature to the pointer store
8266
8465
  * @param text string
8267
8466
  */
8268
- addFeatureOverlay(results) {
8269
- if (results.length > 0) {
8270
- results = results[0];
8467
+ addFeatureOverlay(hoverEntity) {
8468
+ if (hoverEntity.length > 0) {
8469
+ const result = hoverEntity[0];
8271
8470
  this.clearLayer();
8272
- let geom = this.getGeometry(results.feature);
8273
- // si vector tile, merge avec les polygones voisins possiblement meme entité
8274
- if (results.layer.ol instanceof olLayer.VectorTile) {
8275
- geom = [geom];
8276
- const neighbourCollection = this.getSameFeatureNeighbour(results.feature, results.layer);
8277
- neighbourCollection.forEach((n) => {
8278
- geom.push(n.getGeometry());
8279
- });
8280
- }
8281
- const feature = new olFeature({
8282
- geometry: geom instanceof Array ? new olgeom.GeometryCollection(geom) : geom,
8471
+ const feature = new OlFeature({
8472
+ geometry: result.getGeometry(),
8283
8473
  meta: { id: this.hoverFeatureId },
8284
- hoverSummary: this.getHoverSummary(results.feature.getProperties())
8474
+ hoverSummary: this.getHoverSummary(result.getProperties())
8285
8475
  });
8286
8476
  this.store.setLayerOlFeatures([feature], FeatureMotion.None);
8287
8477
  }
8288
8478
  }
8289
- setLayerStyleFromOptions(igoLayer, feat) {
8290
- var _a, _b;
8291
- if ((_b = (_a = igoLayer.options) === null || _a === void 0 ? void 0 : _a.styleByAttribute) === null || _b === void 0 ? void 0 : _b.hoverStyle) {
8292
- this.store.layer.ol.setStyle(this.styleService.createStyleByAttribute(feat, igoLayer.options.styleByAttribute.hoverStyle));
8479
+ setLayerStyleFromOptions(igoLayer, feature) {
8480
+ var _a, _b, _c;
8481
+ if ((_b = (_a = igoLayer === null || igoLayer === void 0 ? void 0 : igoLayer.options) === null || _a === void 0 ? void 0 : _a.styleByAttribute) === null || _b === void 0 ? void 0 : _b.hoverStyle) {
8482
+ this.store.layer.ol.setStyle(this.createHoverStyle(feature, igoLayer.options.styleByAttribute.hoverStyle));
8483
+ return;
8293
8484
  }
8294
- else {
8295
- this.store.layer.ol.setStyle(hoverFeatureMarker);
8485
+ if ((_c = igoLayer === null || igoLayer === void 0 ? void 0 : igoLayer.options) === null || _c === void 0 ? void 0 : _c.hoverStyle) {
8486
+ this.store.layer.ol.setStyle(this.createHoverStyle(feature, igoLayer.options.hoverStyle));
8296
8487
  }
8297
8488
  }
8298
8489
  getHoverSummary(properties) {
8299
8490
  let summary = '';
8300
8491
  for (const [key, value] of Object.entries(properties)) {
8301
- summary += `${key}: ${value}` + '\n';
8492
+ if (!key.startsWith('_') && key !== 'geometry') {
8493
+ summary += `${key}: ${value}` + '\n';
8494
+ }
8302
8495
  }
8303
- return summary;
8496
+ return summary.length >= 2 ? summary.slice(0, -2) : summary;
8304
8497
  }
8305
8498
  getGeometry(feature) {
8306
8499
  let geom;
@@ -8330,35 +8523,14 @@ class HoverFeatureDirective {
8330
8523
  }
8331
8524
  return geom;
8332
8525
  }
8333
- getSameFeatureNeighbour(feature, layer, neighbourCollection = []) {
8334
- if (neighbourCollection.length === 0) {
8335
- neighbourCollection.push(new olFeature({
8336
- geometry: this.getGeometry(feature),
8337
- meta: { id: this.hoverFeatureId }
8338
- }));
8339
- }
8340
- const toDoNeighbour = [];
8341
- const neighbourFeatures = layer.ol.getSource().getFeaturesInExtent(feature.getGeometry().getExtent());
8342
- neighbourFeatures.forEach(f => {
8343
- const checkIf = neighbourCollection.find(x => {
8344
- return x === f;
8345
- });
8346
- if (f.getId() === feature.getId() && !checkIf) {
8347
- toDoNeighbour.push(f);
8348
- neighbourCollection.push(f);
8349
- }
8350
- });
8351
- return neighbourCollection.map(f => {
8352
- return new olFeature({
8353
- geometry: this.getGeometry(f),
8354
- meta: { id: this.hoverFeatureId }
8355
- });
8356
- });
8357
- }
8358
8526
  /**
8359
8527
  * Clear the pointer store features
8360
8528
  */
8361
8529
  clearLayer() {
8530
+ this.selectionMVT = {};
8531
+ if (this.selectionLayer) {
8532
+ this.selectionLayer.changed();
8533
+ }
8362
8534
  if (this.store) {
8363
8535
  this.store.clearLayer();
8364
8536
  }
@@ -8393,7 +8565,7 @@ function hoverFeatureMarker(feature, resolution) {
8393
8565
  text: new olstyle.Text({
8394
8566
  text: feature.get('hoverSummary'),
8395
8567
  textAlign: 'left',
8396
- textBaseline: 'bottom',
8568
+ textBaseline: 'top',
8397
8569
  font: '12px Calibri,sans-serif',
8398
8570
  fill: new olstyle.Fill({ color: '#000' }),
8399
8571
  backgroundFill: new olstyle.Fill({ color: 'rgba(255, 255, 255, 0.5)' }),
@@ -8401,7 +8573,7 @@ function hoverFeatureMarker(feature, resolution) {
8401
8573
  stroke: new olstyle.Stroke({ color: '#fff', width: 3 }),
8402
8574
  overflow: true,
8403
8575
  offsetX: 10,
8404
- offsetY: -10,
8576
+ offsetY: 20,
8405
8577
  padding: [2.5, 2.5, 2.5, 2.5]
8406
8578
  })
8407
8579
  });
@@ -8872,14 +9044,16 @@ class LayerService {
8872
9044
  layer = this.createImageLayer(layerOptions);
8873
9045
  break;
8874
9046
  case MVTDataSource:
8875
- layer = this.createVectorTileLayer(layerOptions);
9047
+ const _layerOptions = computeMVTOptionsOnHover(layerOptions);
9048
+ layer = this.createVectorTileLayer(_layerOptions);
8876
9049
  break;
8877
9050
  default:
8878
9051
  break;
8879
9052
  }
8880
9053
  return layer;
8881
9054
  }
8882
- createAsyncLayer(layerOptions, detailedContextUri) {
9055
+ createAsyncLayer(_layerOptions, detailedContextUri) {
9056
+ const layerOptions = computeMVTOptionsOnHover(_layerOptions);
8883
9057
  if (layerOptions.source) {
8884
9058
  return new Observable(d => d.next(this.createLayer(layerOptions)));
8885
9059
  }
@@ -8900,7 +9074,7 @@ class LayerService {
8900
9074
  }
8901
9075
  createVectorLayer(layerOptions) {
8902
9076
  let style;
8903
- let olLayer;
9077
+ let igoLayer;
8904
9078
  if (layerOptions.style !== undefined) {
8905
9079
  style = this.styleService.createStyle(layerOptions.style);
8906
9080
  }
@@ -8913,7 +9087,7 @@ class LayerService {
8913
9087
  layerOptions.style = feature => {
8914
9088
  return serviceStyle.createStyleByAttribute(feature, layerOptions.styleByAttribute);
8915
9089
  };
8916
- olLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
9090
+ igoLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
8917
9091
  }
8918
9092
  if (layerOptions.source instanceof ClusterDataSource) {
8919
9093
  const serviceStyle = this.styleService;
@@ -8921,20 +9095,20 @@ class LayerService {
8921
9095
  layerOptions.style = feature => {
8922
9096
  return serviceStyle.createClusterStyle(feature, layerOptions.clusterParam, baseStyle);
8923
9097
  };
8924
- olLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
9098
+ igoLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
8925
9099
  }
8926
9100
  const layerOptionsOl = Object.assign({}, layerOptions, {
8927
9101
  style
8928
9102
  });
8929
- if (!olLayer) {
8930
- olLayer = new VectorLayer(layerOptionsOl, this.messageService, this.authInterceptor);
9103
+ if (!igoLayer) {
9104
+ igoLayer = new VectorLayer(layerOptionsOl, this.messageService, this.authInterceptor);
8931
9105
  }
8932
- this.applyMapboxStyle(olLayer, layerOptionsOl);
8933
- return olLayer;
9106
+ this.applyMapboxStyle(igoLayer, layerOptionsOl);
9107
+ return igoLayer;
8934
9108
  }
8935
9109
  createVectorTileLayer(layerOptions) {
8936
9110
  let style;
8937
- let olLayer;
9111
+ let igoLayer;
8938
9112
  if (layerOptions.style !== undefined) {
8939
9113
  style = this.styleService.createStyle(layerOptions.style);
8940
9114
  }
@@ -8943,16 +9117,16 @@ class LayerService {
8943
9117
  layerOptions.style = feature => {
8944
9118
  return serviceStyle.createStyleByAttribute(feature, layerOptions.styleByAttribute);
8945
9119
  };
8946
- olLayer = new VectorTileLayer(layerOptions, this.messageService, this.authInterceptor);
9120
+ igoLayer = new VectorTileLayer(layerOptions, this.messageService, this.authInterceptor);
8947
9121
  }
8948
9122
  const layerOptionsOl = Object.assign({}, layerOptions, {
8949
9123
  style
8950
9124
  });
8951
- if (!olLayer) {
8952
- olLayer = new VectorTileLayer(layerOptionsOl, this.messageService, this.authInterceptor);
9125
+ if (!igoLayer) {
9126
+ igoLayer = new VectorTileLayer(layerOptionsOl, this.messageService, this.authInterceptor);
8953
9127
  }
8954
- this.applyMapboxStyle(olLayer, layerOptionsOl);
8955
- return olLayer;
9128
+ this.applyMapboxStyle(igoLayer, layerOptionsOl);
9129
+ return igoLayer;
8956
9130
  }
8957
9131
  applyMapboxStyle(layer, layerOptions) {
8958
9132
  if (layerOptions.mapboxStyle) {
@@ -10140,7 +10314,7 @@ function olLayerIsQueryable(olLayer) {
10140
10314
  */
10141
10315
  function layerFeatureIsQueryable(layer) {
10142
10316
  const dataSource = layer.dataSource;
10143
- return dataSource.options.queryFeature === true;
10317
+ return dataSource.options.queryLayerFeatures !== undefined ? (dataSource.options.queryLayerFeatures === true) : true;
10144
10318
  }
10145
10319
  /**
10146
10320
  * Whether an OL Vector layer is queryable
@@ -10280,7 +10454,7 @@ class QueryDirective {
10280
10454
  clickedFeatures.push(newFeature);
10281
10455
  }
10282
10456
  }
10283
- else if (featureOL instanceof OlRenderFeature) {
10457
+ else if (featureOL instanceof RenderFeature) {
10284
10458
  const newFeature = renderFeatureFromOl(featureOL, this.map.projection, layerOL);
10285
10459
  newFeature.meta = {
10286
10460
  id: layerOL.values_._layer.id + '.' + newFeature.meta.id,
@@ -10643,7 +10817,7 @@ function getCommonVectorSelectedStyle({ feature, markerColor = [0, 161, 222], ma
10643
10817
  * @returns A olStyle
10644
10818
  */
10645
10819
  function getCommonVectorStyle({ feature, markerColor = [0, 161, 222], markerOpacity = 0.5, markerOutlineColor, fillColor = [0, 161, 222], fillOpacity = 0.15, strokeColor = [0, 161, 222], strokeOpacity = 0.5, strokeWidth = 2 }) {
10646
- const isOlFeature = feature instanceof olFeature;
10820
+ const isOlFeature = feature instanceof OlFeature;
10647
10821
  let geometry;
10648
10822
  let text;
10649
10823
  if (isOlFeature) {
@@ -11520,6 +11694,7 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
11520
11694
  i0.ɵɵadvance(1);
11521
11695
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.layer.legend.noLegendScale"), " ");
11522
11696
  } }
11697
+ const _c1$c = function (a0) { return [a0]; };
11523
11698
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
11524
11699
  const _r28 = i0.ɵɵgetCurrentView();
11525
11700
  i0.ɵɵelementStart(0, "div");
@@ -11534,21 +11709,22 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
11534
11709
  const ctx_r22 = i0.ɵɵnextContext(3);
11535
11710
  i0.ɵɵadvance(1);
11536
11711
  i0.ɵɵpropertyInterpolate("id", item_r6.title);
11537
- i0.ɵɵpropertyInterpolate("src", ctx_r22.legendGraphic[item_r6.title], i0.ɵɵsanitizeUrl);
11712
+ i0.ɵɵpropertyInterpolate("src", i0.ɵɵpureFunction1(6, _c1$c, item_r6.imgGraphValue), i0.ɵɵsanitizeUrl);
11538
11713
  i0.ɵɵpropertyInterpolate("alt", i0.ɵɵpipeBind1(3, 4, "igo.geo.layer.legend.loadingLegendText"));
11539
11714
  i0.ɵɵadvance(3);
11540
11715
  i0.ɵɵproperty("ngIf", ctx_r22.imagesHeight[item_r6.title] < 16);
11541
11716
  } }
11542
11717
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template(rf, ctx) { if (rf & 1) {
11543
11718
  i0.ɵɵelement(0, "div", 15);
11719
+ i0.ɵɵpipe(1, "sanitizeHtml");
11544
11720
  } if (rf & 2) {
11545
11721
  const item_r6 = i0.ɵɵnextContext(3).$implicit;
11546
- i0.ɵɵproperty("ngStyle", item_r6.style)("innerHTML", item_r6.html, i0.ɵɵsanitizeHtml);
11722
+ i0.ɵɵproperty("ngStyle", item_r6.style)("innerHTML", i0.ɵɵpipeBind1(1, 2, item_r6.html), i0.ɵɵsanitizeHtml);
11547
11723
  } }
11548
11724
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_Template(rf, ctx) { if (rf & 1) {
11549
11725
  i0.ɵɵelementStart(0, "div");
11550
- i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template, 5, 6, "div", 0);
11551
- i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template, 1, 2, "div", 12);
11726
+ i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template, 5, 8, "div", 0);
11727
+ i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template, 2, 4, "div", 12);
11552
11728
  i0.ɵɵelementEnd();
11553
11729
  } if (rf & 2) {
11554
11730
  const item_r6 = i0.ɵɵnextContext(2).$implicit;
@@ -11557,7 +11733,7 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
11557
11733
  i0.ɵɵadvance(1);
11558
11734
  i0.ɵɵproperty("ngIf", item_r6.html);
11559
11735
  } }
11560
- const _c1$c = function (a0) { return { "with-title": a0 }; };
11736
+ const _c2$6 = function (a0) { return { "with-title": a0 }; };
11561
11737
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
11562
11738
  i0.ɵɵelementStart(0, "div");
11563
11739
  i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template, 5, 5, "mat-list-item", 0);
@@ -11572,7 +11748,7 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
11572
11748
  i0.ɵɵadvance(1);
11573
11749
  i0.ɵɵproperty("ngIf", item_r6.title);
11574
11750
  i0.ɵɵadvance(1);
11575
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c1$c, item_r6.title));
11751
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c2$6, item_r6.title));
11576
11752
  i0.ɵɵadvance(2);
11577
11753
  i0.ɵɵproperty("ngIf", ctx_r8.currentStyle !== undefined);
11578
11754
  i0.ɵɵadvance(1);
@@ -11619,6 +11795,9 @@ function LayerLegendComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
11619
11795
  i0.ɵɵproperty("ngIf", items_r1.length)("ngIfElse", _r3);
11620
11796
  } }
11621
11797
  class LayerLegendComponent {
11798
+ /**
11799
+ * activeLegend
11800
+ */
11622
11801
  constructor(capabilitiesService, languageService, http, cdRef) {
11623
11802
  this.capabilitiesService = capabilitiesService;
11624
11803
  this.languageService = languageService;
@@ -11645,10 +11824,6 @@ class LayerLegendComponent {
11645
11824
  * if getLegendGraphic is authorized
11646
11825
  */
11647
11826
  this.getLegend = true;
11648
- /**
11649
- * activeLegend
11650
- */
11651
- this.legendGraphic = {};
11652
11827
  }
11653
11828
  /**
11654
11829
  * On init, subscribe to the map's resolution and update the legend accordingly
@@ -11700,7 +11875,6 @@ class LayerLegendComponent {
11700
11875
  }
11701
11876
  getLegendGraphic(item) {
11702
11877
  const secureIMG = new SecureImagePipe(this.http);
11703
- this.currentItemTitle = item.title;
11704
11878
  secureIMG.transform(item.url).pipe(catchError((err) => {
11705
11879
  if (err.error) {
11706
11880
  err.error.caught = true;
@@ -11708,8 +11882,10 @@ class LayerLegendComponent {
11708
11882
  this.cdRef.detectChanges();
11709
11883
  return err;
11710
11884
  }
11711
- })).subscribe((legend) => {
11712
- this.legendGraphic[this.currentItemTitle] = legend;
11885
+ })).subscribe(obsLegGraph => {
11886
+ const idx = this.legendItems$.value.findIndex(leg => leg.title === item.title);
11887
+ const legendGraph = obsLegGraph;
11888
+ this.legendItems$.value[idx].imgGraphValue = legendGraph;
11713
11889
  this.cdRef.detectChanges();
11714
11890
  });
11715
11891
  }
@@ -11817,7 +11993,7 @@ LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerL
11817
11993
  i0.ɵɵpipe(1, "async");
11818
11994
  } if (rf & 2) {
11819
11995
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.legendItems$));
11820
- } }, directives: [i1$1.NgIf, i1$1.NgForOf, i1$1.NgClass, i1$3.MatListItem, i4.MatIcon, i1$3.MatListAvatarCssMatStyler, i6$1.CollapseDirective, i9.MatLine, i12.MatFormField, i13.MatSelect, i3.MatTooltip, i16.NgControlStatus, i16.NgModel, i9.MatOption, i1$1.NgStyle], pipes: [i1$1.AsyncPipe, i7.TranslatePipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
11996
+ } }, directives: [i1$1.NgIf, i1$1.NgForOf, i1$1.NgClass, i1$3.MatListItem, i4.MatIcon, i1$3.MatListAvatarCssMatStyler, i6$1.CollapseDirective, i9.MatLine, i12.MatFormField, i13.MatSelect, i3.MatTooltip, i16.NgControlStatus, i16.NgModel, i9.MatOption, i1$1.NgStyle], pipes: [i1$1.AsyncPipe, i7.TranslatePipe, i6$1.SanitizeHtmlPipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
11821
11997
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerLegendComponent, [{
11822
11998
  type: Component,
11823
11999
  args: [{
@@ -14374,7 +14550,8 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
14374
14550
  IgoCollapsibleModule,
14375
14551
  IgoImageModule,
14376
14552
  IgoPanelModule,
14377
- IgoMatBadgeIconModule
14553
+ IgoMatBadgeIconModule,
14554
+ IgoCustomHtmlModule
14378
14555
  ]] });
14379
14556
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoLayerModule, [{
14380
14557
  type: NgModule,
@@ -14400,7 +14577,8 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
14400
14577
  IgoCollapsibleModule,
14401
14578
  IgoImageModule,
14402
14579
  IgoPanelModule,
14403
- IgoMatBadgeIconModule
14580
+ IgoMatBadgeIconModule,
14581
+ IgoCustomHtmlModule
14404
14582
  ],
14405
14583
  exports: [
14406
14584
  LayerItemComponent,
@@ -14454,7 +14632,8 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
14454
14632
  IgoCollapsibleModule,
14455
14633
  IgoImageModule,
14456
14634
  IgoPanelModule,
14457
- IgoMatBadgeIconModule], exports: [LayerItemComponent,
14635
+ IgoMatBadgeIconModule,
14636
+ IgoCustomHtmlModule], exports: [LayerItemComponent,
14458
14637
  LayerLegendItemComponent,
14459
14638
  LayerLegendComponent,
14460
14639
  LayerListComponent,
@@ -18533,9 +18712,9 @@ class ModifyControl {
18533
18712
  * @param olGeometry Ol Geometry
18534
18713
  */
18535
18714
  setOlGeometry(olGeometry) {
18536
- const olFeature$1 = new olFeature({ geometry: olGeometry });
18715
+ const olFeature = new OlFeature({ geometry: olGeometry });
18537
18716
  this.olOverlaySource.clear();
18538
- this.olOverlaySource.addFeature(olFeature$1);
18717
+ this.olOverlaySource.addFeature(olFeature);
18539
18718
  }
18540
18719
  /**
18541
18720
  * Create an overlay source if none is defined in the options
@@ -18998,9 +19177,9 @@ class SliceControl {
18998
19177
  * @param olGeometry Ol Geometry
18999
19178
  */
19000
19179
  setOlGeometry(olGeometry) {
19001
- const olFeature$1 = new olFeature({ geometry: olGeometry });
19180
+ const olFeature = new OlFeature({ geometry: olGeometry });
19002
19181
  this.olOverlaySource.clear(true);
19003
- this.olOverlaySource.addFeature(olFeature$1);
19182
+ this.olOverlaySource.addFeature(olFeature);
19004
19183
  }
19005
19184
  /**
19006
19185
  * Create an overlay source if none is defined in the options
@@ -19098,7 +19277,7 @@ class SliceControl {
19098
19277
  }
19099
19278
  }
19100
19279
  this.drawLineControl.getSource().clear(true);
19101
- this.olOverlaySource.addFeatures(olSlicedGeometries.map((olGeometry) => new olFeature(olGeometry)));
19280
+ this.olOverlaySource.addFeatures(olSlicedGeometries.map((olGeometry) => new OlFeature(olGeometry)));
19102
19281
  olFeaturesToRemove.forEach((olFeature) => {
19103
19282
  this.olOverlaySource.removeFeature(olFeature);
19104
19283
  });
@@ -20757,12 +20936,12 @@ class GeometryFormFieldInputComponent {
20757
20936
  dataProjection: 'EPSG:4326',
20758
20937
  featureProjection: this.map.projection
20759
20938
  });
20760
- const olFeature$1 = new olFeature({
20939
+ const olFeature = new OlFeature({
20761
20940
  geometry: olGeometry
20762
20941
  });
20763
- olFeature$1.setStyle(this.overlayStyle);
20942
+ olFeature.setStyle(this.overlayStyle);
20764
20943
  this.olOverlaySource.clear();
20765
- this.olOverlaySource.addFeature(olFeature$1);
20944
+ this.olOverlaySource.addFeature(olFeature);
20766
20945
  }
20767
20946
  /**
20768
20947
  * Create the measure tooltip
@@ -25007,9 +25186,9 @@ SpatialFilterListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
25007
25186
  }] }); })();
25008
25187
 
25009
25188
  function SpatialFilterItemComponent_mat_slide_toggle_5_Template(rf, ctx) { if (rf & 1) {
25010
- const _r9 = i0.ɵɵgetCurrentView();
25011
- i0.ɵɵelementStart(0, "mat-slide-toggle", 15);
25012
- i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_slide_toggle_5_Template_mat_slide_toggle_change_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return ctx_r8.onDrawControlChange(); });
25189
+ const _r11 = i0.ɵɵgetCurrentView();
25190
+ i0.ɵɵelementStart(0, "mat-slide-toggle", 17);
25191
+ i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_slide_toggle_5_Template_mat_slide_toggle_change_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return ctx_r10.onDrawControlChange(); });
25013
25192
  i0.ɵɵtext(1);
25014
25193
  i0.ɵɵpipe(2, "translate");
25015
25194
  i0.ɵɵelementEnd();
@@ -25020,9 +25199,9 @@ function SpatialFilterItemComponent_mat_slide_toggle_5_Template(rf, ctx) { if (r
25020
25199
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, "igo.geo.spatialFilter.drawControl"), " ");
25021
25200
  } }
25022
25201
  function SpatialFilterItemComponent_mat_slide_toggle_6_Template(rf, ctx) { if (rf & 1) {
25023
- const _r11 = i0.ɵɵgetCurrentView();
25024
- i0.ɵɵelementStart(0, "mat-slide-toggle", 15);
25025
- i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_slide_toggle_6_Template_mat_slide_toggle_change_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return ctx_r10.onfreehandControlChange(); });
25202
+ const _r13 = i0.ɵɵgetCurrentView();
25203
+ i0.ɵɵelementStart(0, "mat-slide-toggle", 17);
25204
+ i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_slide_toggle_6_Template_mat_slide_toggle_change_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return ctx_r12.onfreehandControlChange(); });
25026
25205
  i0.ɵɵtext(1);
25027
25206
  i0.ɵɵpipe(2, "translate");
25028
25207
  i0.ɵɵelementEnd();
@@ -25038,24 +25217,24 @@ function SpatialFilterItemComponent_div_7_mat_option_7_Template(rf, ctx) { if (r
25038
25217
  i0.ɵɵpipe(2, "translate");
25039
25218
  i0.ɵɵelementEnd();
25040
25219
  } if (rf & 2) {
25041
- const measureUnit_r13 = ctx.$implicit;
25042
- i0.ɵɵproperty("value", measureUnit_r13);
25220
+ const measureUnit_r15 = ctx.$implicit;
25221
+ i0.ɵɵproperty("value", measureUnit_r15);
25043
25222
  i0.ɵɵadvance(1);
25044
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r13), " ");
25223
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r15), " ");
25045
25224
  } }
25046
25225
  function SpatialFilterItemComponent_div_7_Template(rf, ctx) { if (rf & 1) {
25047
- const _r15 = i0.ɵɵgetCurrentView();
25048
- i0.ɵɵelementStart(0, "div", 16);
25049
- i0.ɵɵelementStart(1, "form", 17);
25050
- i0.ɵɵelementStart(2, "mat-form-field", 18);
25051
- i0.ɵɵelement(3, "input", 19);
25226
+ const _r17 = i0.ɵɵgetCurrentView();
25227
+ i0.ɵɵelementStart(0, "div", 18);
25228
+ i0.ɵɵelementStart(1, "form", 19);
25229
+ i0.ɵɵelementStart(2, "mat-form-field", 20);
25230
+ i0.ɵɵelement(3, "input", 21);
25052
25231
  i0.ɵɵpipe(4, "translate");
25053
25232
  i0.ɵɵelementEnd();
25054
25233
  i0.ɵɵelementEnd();
25055
- i0.ɵɵelementStart(5, "mat-form-field", 20);
25056
- i0.ɵɵelementStart(6, "mat-select", 21);
25057
- i0.ɵɵlistener("selectionChange", function SpatialFilterItemComponent_div_7_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(); return ctx_r14.onMeasureUnitChange($event.value); });
25058
- i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_7_mat_option_7_Template, 3, 4, "mat-option", 22);
25234
+ i0.ɵɵelementStart(5, "mat-form-field", 22);
25235
+ i0.ɵɵelementStart(6, "mat-select", 23);
25236
+ i0.ɵɵlistener("selectionChange", function SpatialFilterItemComponent_div_7_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return ctx_r16.onMeasureUnitChange($event.value); });
25237
+ i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_7_mat_option_7_Template, 3, 4, "mat-option", 24);
25059
25238
  i0.ɵɵelementEnd();
25060
25239
  i0.ɵɵelementEnd();
25061
25240
  i0.ɵɵelementEnd();
@@ -25075,26 +25254,26 @@ function SpatialFilterItemComponent_div_8_mat_option_7_Template(rf, ctx) { if (r
25075
25254
  i0.ɵɵpipe(2, "translate");
25076
25255
  i0.ɵɵelementEnd();
25077
25256
  } if (rf & 2) {
25078
- const measureUnit_r17 = ctx.$implicit;
25079
- i0.ɵɵproperty("value", measureUnit_r17);
25257
+ const measureUnit_r19 = ctx.$implicit;
25258
+ i0.ɵɵproperty("value", measureUnit_r19);
25080
25259
  i0.ɵɵadvance(1);
25081
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r17), " ");
25260
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r19), " ");
25082
25261
  } }
25083
25262
  function SpatialFilterItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {
25084
- const _r19 = i0.ɵɵgetCurrentView();
25085
- i0.ɵɵelementStart(0, "div", 23);
25086
- i0.ɵɵelementStart(1, "form", 24);
25087
- i0.ɵɵelementStart(2, "mat-form-field", 25);
25088
- i0.ɵɵelementStart(3, "input", 26);
25089
- i0.ɵɵlistener("input", function SpatialFilterItemComponent_div_8_Template_input_input_3_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.getRadius(); });
25263
+ const _r21 = i0.ɵɵgetCurrentView();
25264
+ i0.ɵɵelementStart(0, "div", 25);
25265
+ i0.ɵɵelementStart(1, "form", 26);
25266
+ i0.ɵɵelementStart(2, "mat-form-field", 27);
25267
+ i0.ɵɵelementStart(3, "input", 28);
25268
+ i0.ɵɵlistener("input", function SpatialFilterItemComponent_div_8_Template_input_input_3_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return ctx_r20.getRadius(); });
25090
25269
  i0.ɵɵpipe(4, "translate");
25091
25270
  i0.ɵɵelementEnd();
25092
25271
  i0.ɵɵelementEnd();
25093
25272
  i0.ɵɵelementEnd();
25094
- i0.ɵɵelementStart(5, "mat-form-field", 20);
25095
- i0.ɵɵelementStart(6, "mat-select", 21);
25096
- i0.ɵɵlistener("selectionChange", function SpatialFilterItemComponent_div_8_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r20 = i0.ɵɵnextContext(); return ctx_r20.onMeasureUnitChange($event.value); });
25097
- i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_8_mat_option_7_Template, 3, 4, "mat-option", 22);
25273
+ i0.ɵɵelementStart(5, "mat-form-field", 22);
25274
+ i0.ɵɵelementStart(6, "mat-select", 23);
25275
+ i0.ɵɵlistener("selectionChange", function SpatialFilterItemComponent_div_8_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r22 = i0.ɵɵnextContext(); return ctx_r22.onMeasureUnitChange($event.value); });
25276
+ i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_8_mat_option_7_Template, 3, 4, "mat-option", 24);
25098
25277
  i0.ɵɵelementEnd();
25099
25278
  i0.ɵɵelementEnd();
25100
25279
  i0.ɵɵelementEnd();
@@ -25109,20 +25288,20 @@ function SpatialFilterItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {
25109
25288
  i0.ɵɵproperty("ngForOf", ctx_r3.measureUnits);
25110
25289
  } }
25111
25290
  function SpatialFilterItemComponent_mat_radio_button_13_Template(rf, ctx) { if (rf & 1) {
25112
- const _r23 = i0.ɵɵgetCurrentView();
25113
- i0.ɵɵelementStart(0, "mat-radio-button", 27);
25114
- i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_radio_button_13_Template_mat_radio_button_change_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(); return ctx_r22.onItemTypeChange($event); });
25291
+ const _r25 = i0.ɵɵgetCurrentView();
25292
+ i0.ɵɵelementStart(0, "mat-radio-button", 29);
25293
+ i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_radio_button_13_Template_mat_radio_button_change_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(); return ctx_r24.onItemTypeChange($event); });
25115
25294
  i0.ɵɵtext(1);
25116
25295
  i0.ɵɵpipe(2, "translate");
25117
25296
  i0.ɵɵelementEnd();
25118
25297
  } if (rf & 2) {
25119
- const item_r21 = ctx.$implicit;
25120
- i0.ɵɵproperty("value", item_r21);
25298
+ const item_r23 = ctx.$implicit;
25299
+ i0.ɵɵproperty("value", item_r23);
25121
25300
  i0.ɵɵadvance(1);
25122
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialFilter." + item_r21), " ");
25301
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialFilter." + item_r23), " ");
25123
25302
  } }
25124
25303
  function SpatialFilterItemComponent_div_14_mat_header_cell_3_Template(rf, ctx) { if (rf & 1) {
25125
- i0.ɵɵelementStart(0, "mat-header-cell", 38);
25304
+ i0.ɵɵelementStart(0, "mat-header-cell", 40);
25126
25305
  i0.ɵɵtext(1);
25127
25306
  i0.ɵɵpipe(2, "translate");
25128
25307
  i0.ɵɵelementEnd();
@@ -25131,16 +25310,16 @@ function SpatialFilterItemComponent_div_14_mat_header_cell_3_Template(rf, ctx) {
25131
25310
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "igo.geo.spatialFilter.Thematics"));
25132
25311
  } }
25133
25312
  function SpatialFilterItemComponent_div_14_mat_header_cell_5_Template(rf, ctx) { if (rf & 1) {
25134
- const _r31 = i0.ɵɵgetCurrentView();
25135
- i0.ɵɵelementStart(0, "mat-header-cell", 39);
25136
- i0.ɵɵelementStart(1, "mat-checkbox", 40);
25137
- i0.ɵɵlistener("change", function SpatialFilterItemComponent_div_14_mat_header_cell_5_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(2); return $event ? ctx_r30.masterToggle() : null; });
25313
+ const _r33 = i0.ɵɵgetCurrentView();
25314
+ i0.ɵɵelementStart(0, "mat-header-cell", 41);
25315
+ i0.ɵɵelementStart(1, "mat-checkbox", 42);
25316
+ i0.ɵɵlistener("change", function SpatialFilterItemComponent_div_14_mat_header_cell_5_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(2); return $event ? ctx_r32.masterToggle() : null; });
25138
25317
  i0.ɵɵelementEnd();
25139
25318
  i0.ɵɵelementEnd();
25140
25319
  } if (rf & 2) {
25141
- const ctx_r25 = i0.ɵɵnextContext(2);
25320
+ const ctx_r27 = i0.ɵɵnextContext(2);
25142
25321
  i0.ɵɵadvance(1);
25143
- i0.ɵɵproperty("checked", ctx_r25.isAllSelected())("indeterminate", ctx_r25.selectedThematics.hasValue() && !ctx_r25.isAllSelected());
25322
+ i0.ɵɵproperty("checked", ctx_r27.isAllSelected())("indeterminate", ctx_r27.selectedThematics.hasValue() && !ctx_r27.isAllSelected());
25144
25323
  } }
25145
25324
  function SpatialFilterItemComponent_div_14_mat_header_row_6_Template(rf, ctx) { if (rf & 1) {
25146
25325
  i0.ɵɵelement(0, "mat-header-row");
@@ -25149,68 +25328,68 @@ function SpatialFilterItemComponent_div_14_mat_row_7_Template(rf, ctx) { if (rf
25149
25328
  i0.ɵɵelement(0, "mat-row");
25150
25329
  } }
25151
25330
  function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template(rf, ctx) { if (rf & 1) {
25152
- const _r36 = i0.ɵɵgetCurrentView();
25153
- i0.ɵɵelementStart(0, "mat-tree-node", 41);
25154
- i0.ɵɵelementStart(1, "li", 42);
25155
- i0.ɵɵelement(2, "button", 43);
25331
+ const _r38 = i0.ɵɵgetCurrentView();
25332
+ i0.ɵɵelementStart(0, "mat-tree-node", 43);
25333
+ i0.ɵɵelementStart(1, "li", 44);
25334
+ i0.ɵɵelement(2, "button", 45);
25156
25335
  i0.ɵɵtext(3);
25157
- i0.ɵɵelementStart(4, "mat-checkbox", 44);
25158
- i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template_mat_checkbox_click_4_listener($event) { return $event.stopPropagation(); })("change", function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template_mat_checkbox_change_4_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r36); const node_r33 = restoredCtx.$implicit; const ctx_r35 = i0.ɵɵnextContext(2); return $event ? ctx_r35.onToggleChange(node_r33) : null; });
25336
+ i0.ɵɵelementStart(4, "mat-checkbox", 46);
25337
+ i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template_mat_checkbox_click_4_listener($event) { return $event.stopPropagation(); })("change", function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template_mat_checkbox_change_4_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r38); const node_r35 = restoredCtx.$implicit; const ctx_r37 = i0.ɵɵnextContext(2); return $event ? ctx_r37.onToggleChange(node_r35) : null; });
25159
25338
  i0.ɵɵelementEnd();
25160
25339
  i0.ɵɵelementEnd();
25161
25340
  i0.ɵɵelementEnd();
25162
25341
  } if (rf & 2) {
25163
- const node_r33 = ctx.$implicit;
25164
- const ctx_r28 = i0.ɵɵnextContext(2);
25342
+ const node_r35 = ctx.$implicit;
25343
+ const ctx_r30 = i0.ɵɵnextContext(2);
25165
25344
  i0.ɵɵadvance(3);
25166
- i0.ɵɵtextInterpolate1(" ", node_r33.name, " ");
25345
+ i0.ɵɵtextInterpolate1(" ", node_r35.name, " ");
25167
25346
  i0.ɵɵadvance(1);
25168
- i0.ɵɵproperty("checked", ctx_r28.selectedThematics.isSelected(node_r33));
25347
+ i0.ɵɵproperty("checked", ctx_r30.selectedThematics.isSelected(node_r35));
25169
25348
  } }
25170
25349
  function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template(rf, ctx) { if (rf & 1) {
25171
- const _r39 = i0.ɵɵgetCurrentView();
25350
+ const _r41 = i0.ɵɵgetCurrentView();
25172
25351
  i0.ɵɵelementStart(0, "mat-nested-tree-node");
25173
- i0.ɵɵelementStart(1, "div", 42);
25174
- i0.ɵɵelementStart(2, "button", 45);
25175
- i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template_button_click_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r39); const node_r37 = restoredCtx.$implicit; const ctx_r38 = i0.ɵɵnextContext(2); return ctx_r38.onToggleClick(node_r37); });
25176
- i0.ɵɵelement(3, "mat-icon", 46);
25352
+ i0.ɵɵelementStart(1, "div", 44);
25353
+ i0.ɵɵelementStart(2, "button", 47);
25354
+ i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template_button_click_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r41); const node_r39 = restoredCtx.$implicit; const ctx_r40 = i0.ɵɵnextContext(2); return ctx_r40.onToggleClick(node_r39); });
25355
+ i0.ɵɵelement(3, "mat-icon", 48);
25177
25356
  i0.ɵɵelementEnd();
25178
25357
  i0.ɵɵtext(4);
25179
- i0.ɵɵelementStart(5, "mat-checkbox", 47);
25180
- i0.ɵɵlistener("change", function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template_mat_checkbox_change_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r39); const node_r37 = restoredCtx.$implicit; const ctx_r40 = i0.ɵɵnextContext(2); return $event ? ctx_r40.childrensToggle(node_r37) : null; });
25358
+ i0.ɵɵelementStart(5, "mat-checkbox", 49);
25359
+ i0.ɵɵlistener("change", function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template_mat_checkbox_change_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r41); const node_r39 = restoredCtx.$implicit; const ctx_r42 = i0.ɵɵnextContext(2); return $event ? ctx_r42.childrensToggle(node_r39) : null; });
25181
25360
  i0.ɵɵelementEnd();
25182
25361
  i0.ɵɵelementEnd();
25183
- i0.ɵɵelementStart(6, "ul", 48);
25184
- i0.ɵɵelementContainer(7, 49);
25362
+ i0.ɵɵelementStart(6, "ul", 50);
25363
+ i0.ɵɵelementContainer(7, 51);
25185
25364
  i0.ɵɵelementEnd();
25186
25365
  i0.ɵɵelementEnd();
25187
25366
  } if (rf & 2) {
25188
- const node_r37 = ctx.$implicit;
25189
- const ctx_r29 = i0.ɵɵnextContext(2);
25367
+ const node_r39 = ctx.$implicit;
25368
+ const ctx_r31 = i0.ɵɵnextContext(2);
25190
25369
  i0.ɵɵadvance(3);
25191
- i0.ɵɵproperty("svgIcon", ctx_r29.treeControl.isExpanded(node_r37) ? "chevron-down" : "chevron-right");
25370
+ i0.ɵɵproperty("svgIcon", ctx_r31.treeControl.isExpanded(node_r39) ? "chevron-down" : "chevron-right");
25192
25371
  i0.ɵɵadvance(1);
25193
- i0.ɵɵtextInterpolate1(" ", node_r37.name, " ");
25372
+ i0.ɵɵtextInterpolate1(" ", node_r39.name, " ");
25194
25373
  i0.ɵɵadvance(1);
25195
- i0.ɵɵproperty("checked", ctx_r29.isAllSelected(node_r37))("indeterminate", ctx_r29.hasChildrenSelected(node_r37) && !ctx_r29.isAllSelected(node_r37));
25374
+ i0.ɵɵproperty("checked", ctx_r31.isAllSelected(node_r39))("indeterminate", ctx_r31.hasChildrenSelected(node_r39) && !ctx_r31.isAllSelected(node_r39));
25196
25375
  i0.ɵɵadvance(1);
25197
- i0.ɵɵclassProp("example-tree-invisible", !ctx_r29.treeControl.isExpanded(node_r37));
25376
+ i0.ɵɵclassProp("example-tree-invisible", !ctx_r31.treeControl.isExpanded(node_r39));
25198
25377
  } }
25199
25378
  function SpatialFilterItemComponent_div_14_Template(rf, ctx) { if (rf & 1) {
25200
- i0.ɵɵelementStart(0, "div", 28);
25379
+ i0.ɵɵelementStart(0, "div", 30);
25201
25380
  i0.ɵɵelementStart(1, "mat-table");
25202
- i0.ɵɵelementContainerStart(2, 29);
25203
- i0.ɵɵtemplate(3, SpatialFilterItemComponent_div_14_mat_header_cell_3_Template, 3, 3, "mat-header-cell", 30);
25381
+ i0.ɵɵelementContainerStart(2, 31);
25382
+ i0.ɵɵtemplate(3, SpatialFilterItemComponent_div_14_mat_header_cell_3_Template, 3, 3, "mat-header-cell", 32);
25204
25383
  i0.ɵɵelementContainerEnd();
25205
- i0.ɵɵelementContainerStart(4, 31);
25206
- i0.ɵɵtemplate(5, SpatialFilterItemComponent_div_14_mat_header_cell_5_Template, 2, 2, "mat-header-cell", 32);
25384
+ i0.ɵɵelementContainerStart(4, 33);
25385
+ i0.ɵɵtemplate(5, SpatialFilterItemComponent_div_14_mat_header_cell_5_Template, 2, 2, "mat-header-cell", 34);
25207
25386
  i0.ɵɵelementContainerEnd();
25208
- i0.ɵɵtemplate(6, SpatialFilterItemComponent_div_14_mat_header_row_6_Template, 1, 0, "mat-header-row", 33);
25209
- i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_14_mat_row_7_Template, 1, 0, "mat-row", 34);
25387
+ i0.ɵɵtemplate(6, SpatialFilterItemComponent_div_14_mat_header_row_6_Template, 1, 0, "mat-header-row", 35);
25388
+ i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_14_mat_row_7_Template, 1, 0, "mat-row", 36);
25210
25389
  i0.ɵɵelementEnd();
25211
- i0.ɵɵelementStart(8, "mat-tree", 35);
25212
- i0.ɵɵtemplate(9, SpatialFilterItemComponent_div_14_mat_tree_node_9_Template, 5, 2, "mat-tree-node", 36);
25213
- i0.ɵɵtemplate(10, SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template, 8, 6, "mat-nested-tree-node", 37);
25390
+ i0.ɵɵelementStart(8, "mat-tree", 37);
25391
+ i0.ɵɵtemplate(9, SpatialFilterItemComponent_div_14_mat_tree_node_9_Template, 5, 2, "mat-tree-node", 38);
25392
+ i0.ɵɵtemplate(10, SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template, 8, 6, "mat-nested-tree-node", 39);
25214
25393
  i0.ɵɵelementEnd();
25215
25394
  i0.ɵɵelementEnd();
25216
25395
  } if (rf & 2) {
@@ -25225,9 +25404,9 @@ function SpatialFilterItemComponent_div_14_Template(rf, ctx) { if (rf & 1) {
25225
25404
  i0.ɵɵproperty("matTreeNodeDefWhen", ctx_r5.hasChild);
25226
25405
  } }
25227
25406
  function SpatialFilterItemComponent_button_16_Template(rf, ctx) { if (rf & 1) {
25228
- const _r42 = i0.ɵɵgetCurrentView();
25229
- i0.ɵɵelementStart(0, "button", 50);
25230
- i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r41 = i0.ɵɵnextContext(); return ctx_r41.clearSearch(); });
25407
+ const _r44 = i0.ɵɵgetCurrentView();
25408
+ i0.ɵɵelementStart(0, "button", 52);
25409
+ i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(); return ctx_r43.clearSearch(); });
25231
25410
  i0.ɵɵtext(1);
25232
25411
  i0.ɵɵpipe(2, "translate");
25233
25412
  i0.ɵɵelementEnd();
@@ -25238,9 +25417,9 @@ function SpatialFilterItemComponent_button_16_Template(rf, ctx) { if (rf & 1) {
25238
25417
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialFilter.clearSearch"), " ");
25239
25418
  } }
25240
25419
  function SpatialFilterItemComponent_button_17_Template(rf, ctx) { if (rf & 1) {
25241
- const _r44 = i0.ɵɵgetCurrentView();
25242
- i0.ɵɵelementStart(0, "button", 51);
25243
- i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(); return ctx_r43.clearDrawZone(); });
25420
+ const _r46 = i0.ɵɵgetCurrentView();
25421
+ i0.ɵɵelementStart(0, "button", 53);
25422
+ i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const ctx_r45 = i0.ɵɵnextContext(); return ctx_r45.clearDrawZone(); });
25244
25423
  i0.ɵɵtext(1);
25245
25424
  i0.ɵɵpipe(2, "translate");
25246
25425
  i0.ɵɵelementEnd();
@@ -25250,6 +25429,41 @@ function SpatialFilterItemComponent_button_17_Template(rf, ctx) { if (rf & 1) {
25250
25429
  i0.ɵɵadvance(1);
25251
25430
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialFilter.clearForm"), " ");
25252
25431
  } }
25432
+ function SpatialFilterItemComponent_button_27_Template(rf, ctx) { if (rf & 1) {
25433
+ const _r48 = i0.ɵɵgetCurrentView();
25434
+ i0.ɵɵelementStart(0, "button", 54);
25435
+ i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_27_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const ctx_r47 = i0.ɵɵnextContext(); return ctx_r47.toggleVisibleList(); });
25436
+ i0.ɵɵpipe(1, "translate");
25437
+ i0.ɵɵelement(2, "mat-icon", 55);
25438
+ i0.ɵɵelementEnd();
25439
+ } if (rf & 2) {
25440
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.geo.spatialFilter.showSearchResults"));
25441
+ } }
25442
+ function SpatialFilterItemComponent_div_28_button_1_Template(rf, ctx) { if (rf & 1) {
25443
+ const _r51 = i0.ɵɵgetCurrentView();
25444
+ i0.ɵɵelementStart(0, "button", 59);
25445
+ i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_28_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r51); const ctx_r50 = i0.ɵɵnextContext(2); return ctx_r50.toggleVisibleList(); });
25446
+ i0.ɵɵpipe(1, "translate");
25447
+ i0.ɵɵelement(2, "mat-icon", 60);
25448
+ i0.ɵɵelementEnd();
25449
+ } if (rf & 2) {
25450
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.geo.spatialFilter.hideSearchResults"));
25451
+ } }
25452
+ function SpatialFilterItemComponent_div_28_Template(rf, ctx) { if (rf & 1) {
25453
+ const _r53 = i0.ɵɵgetCurrentView();
25454
+ i0.ɵɵelementStart(0, "div", 56);
25455
+ i0.ɵɵtemplate(1, SpatialFilterItemComponent_div_28_button_1_Template, 3, 3, "button", 57);
25456
+ i0.ɵɵelementStart(2, "igo-entity-table", 58);
25457
+ i0.ɵɵlistener("entitySelectChange", function SpatialFilterItemComponent_div_28_Template_igo_entity_table_entitySelectChange_2_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(); return ctx_r52.entityChange.emit($event); });
25458
+ i0.ɵɵelementEnd();
25459
+ i0.ɵɵelementEnd();
25460
+ } if (rf & 2) {
25461
+ const ctx_r9 = i0.ɵɵnextContext();
25462
+ i0.ɵɵadvance(1);
25463
+ i0.ɵɵproperty("ngIf", ctx_r9.listIsVisible);
25464
+ i0.ɵɵadvance(1);
25465
+ i0.ɵɵproperty("template", ctx_r9.tableTemplate)("store", ctx_r9.store);
25466
+ } }
25253
25467
  /**
25254
25468
  * Spatial-Filter-Item (search parameters)
25255
25469
  */
@@ -25274,6 +25488,7 @@ class SpatialFilterItemComponent {
25274
25488
  this.clearSearchEvent = new EventEmitter();
25275
25489
  this.export = new EventEmitter();
25276
25490
  this.openWorkspace = new EventEmitter();
25491
+ this.entityChange = new EventEmitter();
25277
25492
  this.itemType = [SpatialFilterItemType.Address, SpatialFilterItemType.Thematics];
25278
25493
  this.selectedItemType = SpatialFilterItemType.Address;
25279
25494
  this.treeControl = new NestedTreeControl(node => node.children);
@@ -25302,6 +25517,7 @@ class SpatialFilterItemComponent {
25302
25517
  this.radiusFormControl = new FormControl();
25303
25518
  this.bufferFormControl = new FormControl();
25304
25519
  this.measureUnit = MeasureLengthUnit.Meters;
25520
+ this.listIsVisible = true;
25305
25521
  }
25306
25522
  get type() {
25307
25523
  return this._type;
@@ -25522,6 +25738,24 @@ class SpatialFilterItemComponent {
25522
25738
  this.messageService.alert(this.languageService.translate.instant('igo.geo.spatialFilter.bufferAlert'), this.languageService.translate.instant('igo.geo.spatialFilter.warning'));
25523
25739
  }
25524
25740
  });
25741
+ const selectedRecordStrategy = new EntityStoreFilterSelectionStrategy({});
25742
+ const selectionStrategy = new FeatureStoreSelectionStrategy({
25743
+ layer: new VectorLayer({
25744
+ zIndex: 300,
25745
+ source: new FeatureDataSource(),
25746
+ style: undefined,
25747
+ showInLayerList: false,
25748
+ exportable: false,
25749
+ browsable: false
25750
+ }),
25751
+ map: this.map,
25752
+ hitTolerance: 15,
25753
+ motion: FeatureMotion.Default,
25754
+ many: true,
25755
+ dragBox: true
25756
+ });
25757
+ this.store.addStrategy(selectionStrategy, true);
25758
+ this.store.addStrategy(selectedRecordStrategy, false);
25525
25759
  }
25526
25760
  /**
25527
25761
  * Unsubscribe to the value stream
@@ -25753,9 +25987,10 @@ class SpatialFilterItemComponent {
25753
25987
  this.bufferEvent.emit(this.buffer);
25754
25988
  }
25755
25989
  this.toggleSearch.emit();
25756
- this.store.entities$.subscribe((value) => {
25990
+ this.store.entities$.pipe(debounceTime(500)).subscribe((value) => {
25757
25991
  if (value.length && this.layers.length === this.thematicLength + 1) {
25758
25992
  this.openWorkspace.emit();
25993
+ this.createTableTemplate();
25759
25994
  }
25760
25995
  });
25761
25996
  }
@@ -25776,6 +26011,7 @@ class SpatialFilterItemComponent {
25776
26011
  this.bufferEvent.emit(0);
25777
26012
  this.clearButtonEvent.emit();
25778
26013
  this.loading = false;
26014
+ this.tableTemplate = undefined;
25779
26015
  }
25780
26016
  clearDrawZone() {
25781
26017
  this.formControl.reset();
@@ -25880,9 +26116,30 @@ class SpatialFilterItemComponent {
25880
26116
  this.drawStyle$.next(this.PointStyle);
25881
26117
  }
25882
26118
  }
26119
+ toggleVisibleList() {
26120
+ this.listIsVisible = !this.listIsVisible;
26121
+ }
26122
+ createTableTemplate() {
26123
+ const typeColumn = {
26124
+ name: 'meta.title',
26125
+ title: this.languageService.translate.instant('igo.geo.spatialFilter.type'),
26126
+ renderer: EntityTableColumnRenderer.UnsanitizedHTML
26127
+ };
26128
+ const nameColumn = {
26129
+ name: 'properties.nom',
26130
+ title: this.languageService.translate.instant('igo.geo.spatialFilter.searchResults'),
26131
+ renderer: EntityTableColumnRenderer.UnsanitizedHTML
26132
+ };
26133
+ const columns = [typeColumn, nameColumn];
26134
+ this.tableTemplate = {
26135
+ selection: true,
26136
+ sort: true,
26137
+ columns
26138
+ };
26139
+ }
25883
26140
  }
25884
26141
  SpatialFilterItemComponent.ɵfac = function SpatialFilterItemComponent_Factory(t) { return new (t || SpatialFilterItemComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(SpatialFilterService), i0.ɵɵdirectiveInject(i2$1.MessageService), i0.ɵɵdirectiveInject(i2$1.LanguageService)); };
25885
- SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SpatialFilterItemComponent, selectors: [["igo-spatial-filter-item"]], inputs: { map: "map", type: "type", queryType: "queryType", zone: "zone", loading: "loading", store: "store", layers: "layers", allLayers: "allLayers", thematicLength: "thematicLength" }, outputs: { toggleSearch: "toggleSearch", itemTypeChange: "itemTypeChange", thematicChange: "thematicChange", drawZoneEvent: "drawZoneEvent", bufferEvent: "bufferEvent", zoneWithBufferChange: "zoneWithBufferChange", measureUnitChange: "measureUnitChange", radiusEvent: "radiusEvent", freehandControl: "freehandControl", clearButtonEvent: "clearButtonEvent", clearSearchEvent: "clearSearchEvent", export: "export", openWorkspace: "openWorkspace" }, decls: 27, vars: 40, consts: [[3, "formControl", "map", "geometryType", "drawGuide", "measure", "drawControlIsActive", "freehandDrawIsActive", "drawStyle", "overlayStyle", "radius"], [1, "header"], [3, "checked", "labelPosition", "change", 4, "ngIf"], ["class", "buffer-unit", 4, "ngIf"], ["class", "radius-unit", 4, "ngIf"], [1, "title", "mat-typography"], [3, "value"], [3, "value", "change", 4, "ngFor", "ngForOf"], ["class", "thematics", 4, "ngIf"], [1, "buttons"], ["mat-raised-button", "", "class", "clear-search-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "class", "clear-form-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "color", "primary", 1, "search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "remove-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "export-button", 3, "disabled", "click"], [3, "checked", "labelPosition", "change"], [1, "buffer-unit"], [1, "buffer-form"], [1, "buffer"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly"], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [1, "radius-unit"], [1, "radius-form"], [1, "radius"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly", "input"], [3, "value", "change"], [1, "thematics"], ["matColumnDef", "name"], ["class", "thematics-header", 4, "matHeaderCellDef"], ["matColumnDef", "select"], ["class", "checks-header", 4, "matHeaderCellDef"], [4, "matHeaderRowDef"], [4, "matRowDef", "matRowDefColumns"], [3, "dataSource", "treeControl"], ["matTreeNodeToggle", "", 4, "matTreeNodeDef"], [4, "matTreeNodeDef", "matTreeNodeDefWhen"], [1, "thematics-header"], [1, "checks-header"], [3, "checked", "indeterminate", "change"], ["matTreeNodeToggle", ""], [1, "mat-tree-node"], ["mat-icon-button", "", "disabled", ""], [1, "tree-check", 3, "checked", "click", "change"], ["mat-icon-button", "", 3, "click"], [3, "svgIcon"], [1, "tree-check-2", 3, "checked", "indeterminate", "change"], [1, "tree-ul"], ["matTreeNodeOutlet", ""], ["mat-raised-button", "", 1, "clear-search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "clear-form-button", 3, "disabled", "click"]], template: function SpatialFilterItemComponent_Template(rf, ctx) { if (rf & 1) {
26142
+ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SpatialFilterItemComponent, selectors: [["igo-spatial-filter-item"]], inputs: { map: "map", type: "type", queryType: "queryType", zone: "zone", loading: "loading", store: "store", layers: "layers", allLayers: "allLayers", thematicLength: "thematicLength" }, outputs: { toggleSearch: "toggleSearch", itemTypeChange: "itemTypeChange", thematicChange: "thematicChange", drawZoneEvent: "drawZoneEvent", bufferEvent: "bufferEvent", zoneWithBufferChange: "zoneWithBufferChange", measureUnitChange: "measureUnitChange", radiusEvent: "radiusEvent", freehandControl: "freehandControl", clearButtonEvent: "clearButtonEvent", clearSearchEvent: "clearSearchEvent", export: "export", openWorkspace: "openWorkspace", entityChange: "entityChange" }, decls: 29, vars: 42, consts: [[3, "formControl", "map", "geometryType", "drawGuide", "measure", "drawControlIsActive", "freehandDrawIsActive", "drawStyle", "overlayStyle", "radius"], [1, "header"], [3, "checked", "labelPosition", "change", 4, "ngIf"], ["class", "buffer-unit", 4, "ngIf"], ["class", "radius-unit", 4, "ngIf"], [1, "title", "mat-typography"], [3, "value"], [3, "value", "change", 4, "ngFor", "ngForOf"], ["class", "thematics", 4, "ngIf"], [1, "buttons"], ["mat-raised-button", "", "class", "clear-search-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "class", "clear-form-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "color", "primary", 1, "search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "remove-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "export-button", 3, "disabled", "click"], ["class", "chevron-down", "mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], ["class", "results", 4, "ngIf"], [3, "checked", "labelPosition", "change"], [1, "buffer-unit"], [1, "buffer-form"], [1, "buffer"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly"], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [1, "radius-unit"], [1, "radius-form"], [1, "radius"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly", "input"], [3, "value", "change"], [1, "thematics"], ["matColumnDef", "name"], ["class", "thematics-header", 4, "matHeaderCellDef"], ["matColumnDef", "select"], ["class", "checks-header", 4, "matHeaderCellDef"], [4, "matHeaderRowDef"], [4, "matRowDef", "matRowDefColumns"], [3, "dataSource", "treeControl"], ["matTreeNodeToggle", "", 4, "matTreeNodeDef"], [4, "matTreeNodeDef", "matTreeNodeDefWhen"], [1, "thematics-header"], [1, "checks-header"], [3, "checked", "indeterminate", "change"], ["matTreeNodeToggle", ""], [1, "mat-tree-node"], ["mat-icon-button", "", "disabled", ""], [1, "tree-check", 3, "checked", "click", "change"], ["mat-icon-button", "", 3, "click"], [3, "svgIcon"], [1, "tree-check-2", 3, "checked", "indeterminate", "change"], [1, "tree-ul"], ["matTreeNodeOutlet", ""], ["mat-raised-button", "", 1, "clear-search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "clear-form-button", 3, "disabled", "click"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 1, "chevron-down", 3, "matTooltip", "click"], ["svgIcon", "chevron-down"], [1, "results"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], [1, "results-list", 3, "template", "store", "entitySelectChange"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["svgIcon", "chevron-up"]], template: function SpatialFilterItemComponent_Template(rf, ctx) { if (rf & 1) {
25886
26143
  i0.ɵɵelement(0, "igo-geometry-form-field-input", 0);
25887
26144
  i0.ɵɵpipe(1, "async");
25888
26145
  i0.ɵɵpipe(2, "async");
@@ -25920,8 +26177,10 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
25920
26177
  i0.ɵɵpipe(26, "translate");
25921
26178
  i0.ɵɵelementEnd();
25922
26179
  i0.ɵɵelementEnd();
26180
+ i0.ɵɵtemplate(27, SpatialFilterItemComponent_button_27_Template, 3, 3, "button", 15);
26181
+ i0.ɵɵtemplate(28, SpatialFilterItemComponent_div_28_Template, 3, 3, "div", 16);
25923
26182
  } if (rf & 2) {
25924
- i0.ɵɵproperty("formControl", ctx.formControl)("map", ctx.map)("geometryType", ctx.geometryType)("drawGuide", i0.ɵɵpipeBind1(1, 26, ctx.drawGuide$))("measure", ctx.measure)("drawControlIsActive", ctx.drawControlIsActive)("freehandDrawIsActive", ctx.freehandDrawIsActive)("drawStyle", i0.ɵɵpipeBind1(2, 28, ctx.drawStyle$))("overlayStyle", i0.ɵɵpipeBind1(3, 30, ctx.overlayStyle$))("radius", ctx.radius);
26183
+ i0.ɵɵproperty("formControl", ctx.formControl)("map", ctx.map)("geometryType", ctx.geometryType)("drawGuide", i0.ɵɵpipeBind1(1, 28, ctx.drawGuide$))("measure", ctx.measure)("drawControlIsActive", ctx.drawControlIsActive)("freehandDrawIsActive", ctx.freehandDrawIsActive)("drawStyle", i0.ɵɵpipeBind1(2, 30, ctx.drawStyle$))("overlayStyle", i0.ɵɵpipeBind1(3, 32, ctx.overlayStyle$))("radius", ctx.radius);
25925
26184
  i0.ɵɵadvance(5);
25926
26185
  i0.ɵɵproperty("ngIf", !ctx.isPredefined());
25927
26186
  i0.ɵɵadvance(1);
@@ -25931,13 +26190,13 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
25931
26190
  i0.ɵɵadvance(1);
25932
26191
  i0.ɵɵproperty("ngIf", ctx.isPoint());
25933
26192
  i0.ɵɵadvance(2);
25934
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(11, 32, "igo.geo.spatialFilter.search"), " : ");
26193
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(11, 34, "igo.geo.spatialFilter.search"), " : ");
25935
26194
  i0.ɵɵadvance(2);
25936
26195
  i0.ɵɵproperty("value", ctx.selectedItemType);
25937
26196
  i0.ɵɵadvance(1);
25938
26197
  i0.ɵɵproperty("ngForOf", ctx.itemType);
25939
26198
  i0.ɵɵadvance(1);
25940
- i0.ɵɵproperty("ngIf", ctx.selectedItemType === "Thematics");
26199
+ i0.ɵɵproperty("ngIf", ctx.selectedItemType === "Thematics" && !ctx.tableTemplate || ctx.selectedItemType === "Thematics" && ctx.tableTemplate && !ctx.listIsVisible);
25941
26200
  i0.ɵɵadvance(2);
25942
26201
  i0.ɵɵproperty("ngIf", ctx.isPredefined());
25943
26202
  i0.ɵɵadvance(1);
@@ -25945,16 +26204,20 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
25945
26204
  i0.ɵɵadvance(1);
25946
26205
  i0.ɵɵproperty("disabled", ctx.disableSearchButton());
25947
26206
  i0.ɵɵadvance(1);
25948
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 34, "igo.geo.spatialFilter.goSearch"), " ");
26207
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 36, "igo.geo.spatialFilter.goSearch"), " ");
25949
26208
  i0.ɵɵadvance(2);
25950
26209
  i0.ɵɵproperty("disabled", ctx.allLayers.length === 0);
25951
26210
  i0.ɵɵadvance(1);
25952
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 36, "igo.geo.spatialFilter.removeLayer"), " ");
26211
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 38, "igo.geo.spatialFilter.removeLayer"), " ");
25953
26212
  i0.ɵɵadvance(2);
25954
26213
  i0.ɵɵproperty("disabled", !ctx.store.entities$.getValue().length);
25955
26214
  i0.ɵɵadvance(1);
25956
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26, 38, "igo.geo.spatialFilter.exportLayer"), " ");
25957
- } }, styles: [".header[_ngcontent-%COMP%]{margin-top:5px;width:100%}.mat-slide-toggle[_ngcontent-%COMP%]{padding:5px;margin-bottom:15px;width:98%}.mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 20px)}.title[_ngcontent-%COMP%]{margin-left:5px;font-size:medium;font-size:initial}.mat-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-top:10px}.mat-radio-button[_ngcontent-%COMP%]{display:inline-flex;position:relative;margin-left:16px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{margin-top:5px}.mat-column-select[_ngcontent-%COMP%]{overflow:auto}.buttons[_ngcontent-%COMP%]{margin-top:15px}.search-button[_ngcontent-%COMP%]{left:15px;width:165px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.search-button[_ngcontent-%COMP%]{left:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.export-button[_ngcontent-%COMP%]{left:15px;width:165px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.export-button[_ngcontent-%COMP%]{left:10px;margin-top:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.remove-button[_ngcontent-%COMP%]{margin-top:12px;left:5px;width:165px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.remove-button[_ngcontent-%COMP%]{margin:0;width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-form-button[_ngcontent-%COMP%]{left:5px;width:165px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-form-button[_ngcontent-%COMP%]{width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-search-button[_ngcontent-%COMP%]{left:5px;width:165px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-search-button[_ngcontent-%COMP%]{width:45%;min-height:35px;white-space:normal;line-height:normal}}.thematics[_ngcontent-%COMP%]{max-height:35%;overflow:auto;margin-top:5px;width:98%}.results[_ngcontent-%COMP%]{overflow:auto;max-height:250px;width:98%}.mat-column-typeResults[_ngcontent-%COMP%]{max-width:100px;margin-right:5px}.buffer-unit[_ngcontent-%COMP%], .radius-unit[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px}.radius[_ngcontent-%COMP%], .buffer[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}.example-tree-invisible[_ngcontent-%COMP%]{display:none}.tree-ul[_ngcontent-%COMP%]{margin:0;padding:0 0 0 20px;list-style-type:none}.tree-check[_ngcontent-%COMP%], .tree-check-2[_ngcontent-%COMP%]{position:relative;margin-left:auto;margin-right:5px}.thematics-header[_ngcontent-%COMP%]{max-width:250px}.checks-header[_ngcontent-%COMP%]{padding:none;max-width:calc(100% - 316px);overflow:hidden}.mat-checkbox[_ngcontent-%COMP%]{padding:5px}.mat-tree-node[_ngcontent-%COMP%]{position:relative;min-height:42px;width:280px}.mat-header-cell[_ngcontent-%COMP%]{height:56px}"], changeDetection: 0 });
26215
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26, 40, "igo.geo.spatialFilter.exportLayer"), " ");
26216
+ i0.ɵɵadvance(2);
26217
+ i0.ɵɵproperty("ngIf", ctx.store.all().length && ctx.tableTemplate && !ctx.listIsVisible);
26218
+ i0.ɵɵadvance(1);
26219
+ i0.ɵɵproperty("ngIf", ctx.store.all().length && ctx.tableTemplate && ctx.listIsVisible);
26220
+ } }, styles: [".header[_ngcontent-%COMP%]{margin-top:5px;width:100%}.mat-slide-toggle[_ngcontent-%COMP%]{padding:5px;margin-bottom:15px;width:98%}.mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 20px)}.title[_ngcontent-%COMP%]{margin-left:5px;font-size:medium;font-size:initial}.mat-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-top:10px}.mat-radio-button[_ngcontent-%COMP%]{display:inline-flex;position:relative;margin-left:16px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{margin-top:5px}.mat-column-select[_ngcontent-%COMP%]{overflow:auto}.buttons[_ngcontent-%COMP%]{margin-top:15px}.search-button[_ngcontent-%COMP%]{left:15px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.search-button[_ngcontent-%COMP%]{left:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.export-button[_ngcontent-%COMP%]{left:15px;width:46%;margin-bottom:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.export-button[_ngcontent-%COMP%]{left:10px;margin-top:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.remove-button[_ngcontent-%COMP%]{margin-top:12px;left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.remove-button[_ngcontent-%COMP%]{margin:0;width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-form-button[_ngcontent-%COMP%]{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-form-button[_ngcontent-%COMP%]{width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-search-button[_ngcontent-%COMP%]{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-search-button[_ngcontent-%COMP%]{width:45%;min-height:35px;white-space:normal;line-height:normal}}.thematics[_ngcontent-%COMP%]{max-height:35%;overflow:auto;margin-top:5px;width:98%}.results[_ngcontent-%COMP%]{overflow:auto;max-height:250px;width:98%}.mat-column-typeResults[_ngcontent-%COMP%]{max-width:100px;margin-right:5px}.buffer-unit[_ngcontent-%COMP%], .radius-unit[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px}.radius[_ngcontent-%COMP%], .buffer[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}.example-tree-invisible[_ngcontent-%COMP%]{display:none}.tree-ul[_ngcontent-%COMP%]{margin:0;padding:0 0 0 20px;list-style-type:none}.tree-check[_ngcontent-%COMP%], .tree-check-2[_ngcontent-%COMP%]{position:relative;margin-left:auto;margin-right:5px}.thematics-header[_ngcontent-%COMP%]{max-width:250px}.checks-header[_ngcontent-%COMP%]{padding:none;max-width:calc(100% - 316px);overflow:hidden}.mat-checkbox[_ngcontent-%COMP%]{padding:5px}.mat-tree-node[_ngcontent-%COMP%]{position:relative;min-height:42px;width:280px}.mat-header-cell[_ngcontent-%COMP%]{height:56px}.results[_ngcontent-%COMP%]{max-height:45%;width:98%}.results[_ngcontent-%COMP%] igo-entity-table[_ngcontent-%COMP%] div.table-container{overflow:unset}"], changeDetection: 0 });
25958
26221
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SpatialFilterItemComponent, [{
25959
26222
  type: Component,
25960
26223
  args: [{
@@ -26007,6 +26270,8 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
26007
26270
  type: Output
26008
26271
  }], openWorkspace: [{
26009
26272
  type: Output
26273
+ }], entityChange: [{
26274
+ type: Output
26010
26275
  }] }); })();
26011
26276
 
26012
26277
  const _c0$5 = ["endDatepickerTime"];
@@ -26987,6 +27252,7 @@ IgoFilterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TimeFi
26987
27252
  IgoLayerModule,
26988
27253
  IgoCollapsibleModule,
26989
27254
  IgoListModule,
27255
+ IgoEntityModule,
26990
27256
  IgoKeyValueModule,
26991
27257
  IgoGeometryModule,
26992
27258
  MatBadgeModule
@@ -27024,6 +27290,7 @@ IgoFilterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TimeFi
27024
27290
  IgoLayerModule,
27025
27291
  IgoCollapsibleModule,
27026
27292
  IgoListModule,
27293
+ IgoEntityModule,
27027
27294
  IgoKeyValueModule,
27028
27295
  IgoGeometryModule,
27029
27296
  MatBadgeModule
@@ -27117,6 +27384,7 @@ IgoFilterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TimeFi
27117
27384
  IgoLayerModule,
27118
27385
  IgoCollapsibleModule,
27119
27386
  IgoListModule,
27387
+ IgoEntityModule,
27120
27388
  IgoKeyValueModule,
27121
27389
  IgoGeometryModule,
27122
27390
  MatBadgeModule], exports: [FilterableDataSourcePipe,
@@ -27147,7 +27415,7 @@ i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1$1.NgIf, OgcFilterSelect
27147
27415
  i0.ɵɵsetComponentScope(OgcFilterableItemComponent, [i1$3.MatListItem, i1$1.NgIf, i4.MatIcon, i1$3.MatListAvatarCssMatStyler, i6$1.CollapseDirective, i9.MatLine, i1$1.NgStyle, i3.MatTooltip, i2.MatButton, i1$1.NgClass, LayerLegendComponent, OgcFilterableFormComponent, i10.MatDivider, i11.MatCheckbox, i16.NgControlStatus, i16.NgModel], [i7.TranslatePipe, i1$1.AsyncPipe]);
27148
27416
  i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i6$1.ListComponent, i1$1.NgForOf, OgcFilterableItemComponent, i6$1.ListItemDirective], [FilterableDataSourcePipe]);
27149
27417
  i0.ɵɵsetComponentScope(SpatialFilterTypeComponent, [i20.MatTabGroup, i20.MatTab, i12.MatFormField, i12.MatLabel, i13.MatSelect, i1$1.NgForOf, i9.MatOption, SpatialFilterListComponent, i18.MatButtonToggleGroup, i18.MatButtonToggle, i3.MatTooltip, i4.MatIcon], [i7.TranslatePipe]);
27150
- i0.ɵɵsetComponentScope(SpatialFilterItemComponent, [GeometryFormFieldInputComponent, i16.NgControlStatus, i16.FormControlDirective, i1$1.NgIf, i22.MatSlideToggle, i16.ɵNgNoValidate, i16.NgControlStatusGroup, i16.NgForm, i12.MatFormField, i16.NumberValueAccessor, i5.MatInput, i16.DefaultValueAccessor, i13.MatSelect, i1$1.NgForOf, i9.MatOption, i12.MatLabel, i19.MatRadioGroup, i19.MatRadioButton, i23.MatTable, i23.MatColumnDef, i23.MatHeaderCellDef, i23.MatHeaderCell, i11.MatCheckbox, i23.MatHeaderRowDef, i23.MatHeaderRow, i23.MatRowDef, i23.MatRow, i24.MatTree, i24.MatTreeNodeDef, i24.MatTreeNode, i24.MatTreeNodeToggle, i2.MatButton, i24.MatNestedTreeNode, i4.MatIcon, i24.MatTreeNodeOutlet], [i1$1.AsyncPipe, i7.TranslatePipe]);
27418
+ i0.ɵɵsetComponentScope(SpatialFilterItemComponent, [GeometryFormFieldInputComponent, i16.NgControlStatus, i16.FormControlDirective, i1$1.NgIf, i22.MatSlideToggle, i16.ɵNgNoValidate, i16.NgControlStatusGroup, i16.NgForm, i12.MatFormField, i16.NumberValueAccessor, i5.MatInput, i16.DefaultValueAccessor, i13.MatSelect, i1$1.NgForOf, i9.MatOption, i12.MatLabel, i19.MatRadioGroup, i19.MatRadioButton, i23.MatTable, i23.MatColumnDef, i23.MatHeaderCellDef, i23.MatHeaderCell, i11.MatCheckbox, i23.MatHeaderRowDef, i23.MatHeaderRow, i23.MatRowDef, i23.MatRow, i24.MatTree, i24.MatTreeNodeDef, i24.MatTreeNode, i24.MatTreeNodeToggle, i2.MatButton, i24.MatNestedTreeNode, i4.MatIcon, i24.MatTreeNodeOutlet, i3.MatTooltip, i6$1.EntityTableComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
27151
27419
  i0.ɵɵsetComponentScope(OgcFilterTimeComponent, [i1$1.NgIf, i22.MatSlideToggle, i16.NgControlStatus, i16.NgModel, OgcFilterTimeSliderComponent, i12.MatFormField, i12.MatLabel, i5.MatInput, i25.MatDatepickerToggle, i12.MatSuffix, i25.MatDatepicker, i25.MatDatepickerInput, i13.MatSelect, i16.FormControlDirective, i1$1.NgForOf, i9.MatOption], [i7.TranslatePipe]);
27152
27420
 
27153
27421
  function ExportButtonComponent_button_0_Template(rf, ctx) { if (rf & 1) {
@@ -27300,33 +27568,33 @@ class ExportService {
27300
27568
  if (format === ExportFormat.GPX && this.aggregateInComment) {
27301
27569
  return this.generateAggregatedFeature(olFeatures);
27302
27570
  }
27303
- return olFeatures.map((olFeature$1) => {
27304
- const keys = olFeature$1
27571
+ return olFeatures.map((olFeature) => {
27572
+ const keys = olFeature
27305
27573
  .getKeys()
27306
27574
  .filter((key) => !key.startsWith('_'));
27307
27575
  const properties = keys.reduce((acc, key) => {
27308
- acc[key] = olFeature$1.get(key);
27576
+ acc[key] = olFeature.get(key);
27309
27577
  return acc;
27310
- }, { geometry: olFeature$1.getGeometry() });
27311
- return new olFeature(properties);
27578
+ }, { geometry: olFeature.getGeometry() });
27579
+ return new OlFeature(properties);
27312
27580
  });
27313
27581
  }
27314
27582
  generateAggregatedFeature(olFeatures) {
27315
- return olFeatures.map((olFeature$1) => {
27316
- const keys = olFeature$1.getKeys().filter((key) => !key.startsWith('_'));
27583
+ return olFeatures.map((olFeature) => {
27584
+ const keys = olFeature.getKeys().filter((key) => !key.startsWith('_'));
27317
27585
  let comment = '';
27318
27586
  const properties = keys.reduce((acc, key) => {
27319
27587
  if (key && key !== 'geometry') {
27320
- key === 'id' && olFeature$1.get('draw') ? comment += key + ':' + olFeature$1.get('draw') + ' \r\n'
27321
- : comment += key + ':' + olFeature$1.get(key) + ' \r\n';
27588
+ key === 'id' && olFeature.get('draw') ? comment += key + ':' + olFeature.get('draw') + ' \r\n'
27589
+ : comment += key + ':' + olFeature.get(key) + ' \r\n';
27322
27590
  }
27323
- acc[key] = olFeature$1.get(key);
27591
+ acc[key] = olFeature.get(key);
27324
27592
  return acc;
27325
27593
  }, {
27326
- geometry: olFeature$1.getGeometry()
27594
+ geometry: olFeature.getGeometry()
27327
27595
  });
27328
- const newFeature = new olFeature(properties);
27329
- newFeature.set('name', olFeature$1.getId());
27596
+ const newFeature = new OlFeature(properties);
27597
+ newFeature.set('name', olFeature.getId());
27330
27598
  newFeature.set('cmt', comment);
27331
27599
  return newFeature;
27332
27600
  });
@@ -28061,7 +28329,7 @@ function ImportExportComponent_section_10_Template(rf, ctx) { if (rf & 1) {
28061
28329
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "igo.geo.importExportForm.exportNoLayersExportable"));
28062
28330
  } }
28063
28331
  function ImportExportComponent_form_12_span_9_Template(rf, ctx) { if (rf & 1) {
28064
- i0.ɵɵelementStart(0, "span", 27);
28332
+ i0.ɵɵelementStart(0, "span", 29);
28065
28333
  i0.ɵɵtext(1);
28066
28334
  i0.ɵɵpipe(2, "translate");
28067
28335
  i0.ɵɵelementEnd();
@@ -28071,9 +28339,9 @@ function ImportExportComponent_form_12_span_9_Template(rf, ctx) { if (rf & 1) {
28071
28339
  i0.ɵɵtextInterpolate2(" (+", ctx_r17.layers.length - 1, " ", i0.ɵɵpipeBind1(2, 2, (ctx_r17.layers == null ? null : ctx_r17.layers.length) === 2 ? "igo.geo.importExportForm.other" : "igo.geo.importExportForm.others"), ") ");
28072
28340
  } }
28073
28341
  function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template(rf, ctx) { if (rf & 1) {
28074
- const _r28 = i0.ɵɵgetCurrentView();
28075
- i0.ɵɵelementStart(0, "mat-slide-toggle", 30);
28076
- i0.ɵɵlistener("click", function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template_mat_slide_toggle_click_0_listener($event) { i0.ɵɵrestoreView(_r28); const layer_r24 = i0.ɵɵnextContext().$implicit; const ctx_r26 = i0.ɵɵnextContext(2); return ctx_r26.onlySelectedClick($event, layer_r24.id); })("checked", function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template_mat_slide_toggle_checked_0_listener() { i0.ɵɵrestoreView(_r28); const layer_r24 = i0.ɵɵnextContext().$implicit; const ctx_r29 = i0.ɵɵnextContext(2); return ctx_r29.inLayersIdToExportSelectionOnly(layer_r24); })("change", function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template_mat_slide_toggle_change_0_listener($event) { i0.ɵɵrestoreView(_r28); const layer_r24 = i0.ɵɵnextContext().$implicit; const ctx_r31 = i0.ɵɵnextContext(2); return ctx_r31.onlySelected($event, layer_r24.id); });
28342
+ const _r30 = i0.ɵɵgetCurrentView();
28343
+ i0.ɵɵelementStart(0, "mat-slide-toggle", 32);
28344
+ i0.ɵɵlistener("click", function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template_mat_slide_toggle_click_0_listener($event) { i0.ɵɵrestoreView(_r30); const layer_r26 = i0.ɵɵnextContext().$implicit; const ctx_r28 = i0.ɵɵnextContext(2); return ctx_r28.onlySelectedClick($event, layer_r26.id); })("checked", function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template_mat_slide_toggle_checked_0_listener() { i0.ɵɵrestoreView(_r30); const layer_r26 = i0.ɵɵnextContext().$implicit; const ctx_r31 = i0.ɵɵnextContext(2); return ctx_r31.inLayersIdToExportSelectionOnly(layer_r26); })("change", function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template_mat_slide_toggle_change_0_listener($event) { i0.ɵɵrestoreView(_r30); const layer_r26 = i0.ɵɵnextContext().$implicit; const ctx_r33 = i0.ɵɵnextContext(2); return ctx_r33.onlySelected($event, layer_r26.id); });
28077
28345
  i0.ɵɵelementStart(1, "small");
28078
28346
  i0.ɵɵtext(2);
28079
28347
  i0.ɵɵpipe(3, "translate");
@@ -28086,23 +28354,23 @@ function ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template
28086
28354
  } }
28087
28355
  const _c1$3 = function (a0) { return { "igo-export-layer-mat-option": a0 }; };
28088
28356
  function ImportExportComponent_form_12_mat_option_10_Template(rf, ctx) { if (rf & 1) {
28089
- i0.ɵɵelementStart(0, "mat-option", 28);
28357
+ i0.ɵɵelementStart(0, "mat-option", 30);
28090
28358
  i0.ɵɵlistener("click", function ImportExportComponent_form_12_mat_option_10_Template_mat_option_click_0_listener($event) { return $event.stopPropagation(); });
28091
28359
  i0.ɵɵelementStart(1, "p", 16);
28092
28360
  i0.ɵɵtext(2);
28093
28361
  i0.ɵɵelementEnd();
28094
28362
  i0.ɵɵelementStart(3, "p", 16);
28095
- i0.ɵɵtemplate(4, ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template, 4, 4, "mat-slide-toggle", 29);
28363
+ i0.ɵɵtemplate(4, ImportExportComponent_form_12_mat_option_10_mat_slide_toggle_4_Template, 4, 4, "mat-slide-toggle", 31);
28096
28364
  i0.ɵɵelementEnd();
28097
28365
  i0.ɵɵelementEnd();
28098
28366
  } if (rf & 2) {
28099
- const layer_r24 = ctx.$implicit;
28367
+ const layer_r26 = ctx.$implicit;
28100
28368
  const ctx_r18 = i0.ɵɵnextContext(2);
28101
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c1$3, ctx_r18.layerHasSelectedFeatures(layer_r24)))("value", layer_r24.id);
28369
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c1$3, ctx_r18.layerHasSelectedFeatures(layer_r26)))("value", layer_r26.id);
28102
28370
  i0.ɵɵadvance(2);
28103
- i0.ɵɵtextInterpolate(layer_r24.title);
28371
+ i0.ɵɵtextInterpolate(layer_r26.title);
28104
28372
  i0.ɵɵadvance(2);
28105
- i0.ɵɵproperty("ngIf", ctx_r18.layerHasSelectedFeatures(layer_r24));
28373
+ i0.ɵɵproperty("ngIf", ctx_r18.layerHasSelectedFeatures(layer_r26));
28106
28374
  } }
28107
28375
  function ImportExportComponent_form_12_ng_container_18_mat_option_1_Template(rf, ctx) { if (rf & 1) {
28108
28376
  i0.ɵɵelementStart(0, "mat-option", 2);
@@ -28110,14 +28378,14 @@ function ImportExportComponent_form_12_ng_container_18_mat_option_1_Template(rf,
28110
28378
  i0.ɵɵpipe(2, "translate");
28111
28379
  i0.ɵɵelementEnd();
28112
28380
  } if (rf & 2) {
28113
- const format_r35 = ctx.$implicit;
28114
- i0.ɵɵproperty("value", format_r35.key);
28381
+ const format_r37 = ctx.$implicit;
28382
+ i0.ɵɵproperty("value", format_r37.key);
28115
28383
  i0.ɵɵadvance(1);
28116
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.export.format." + format_r35.value), " ");
28384
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.export.format." + format_r37.value), " ");
28117
28385
  } }
28118
28386
  function ImportExportComponent_form_12_ng_container_18_Template(rf, ctx) { if (rf & 1) {
28119
28387
  i0.ɵɵelementContainerStart(0);
28120
- i0.ɵɵtemplate(1, ImportExportComponent_form_12_ng_container_18_mat_option_1_Template, 3, 4, "mat-option", 31);
28388
+ i0.ɵɵtemplate(1, ImportExportComponent_form_12_ng_container_18_mat_option_1_Template, 3, 4, "mat-option", 33);
28121
28389
  i0.ɵɵpipe(2, "keyvalue");
28122
28390
  i0.ɵɵpipe(3, "async");
28123
28391
  i0.ɵɵelementContainerEnd();
@@ -28127,7 +28395,7 @@ function ImportExportComponent_form_12_ng_container_18_Template(rf, ctx) { if (r
28127
28395
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind1(3, 3, ctx_r19.formats$)));
28128
28396
  } }
28129
28397
  function ImportExportComponent_form_12_mat_option_20_Template(rf, ctx) { if (rf & 1) {
28130
- i0.ɵɵelementStart(0, "mat-option", 32);
28398
+ i0.ɵɵelementStart(0, "mat-option", 34);
28131
28399
  i0.ɵɵtext(1);
28132
28400
  i0.ɵɵpipe(2, "translate");
28133
28401
  i0.ɵɵelementEnd();
@@ -28138,7 +28406,7 @@ function ImportExportComponent_form_12_mat_option_20_Template(rf, ctx) { if (rf
28138
28406
  function ImportExportComponent_form_12_div_22_Template(rf, ctx) { if (rf & 1) {
28139
28407
  i0.ɵɵelementStart(0, "div", 6);
28140
28408
  i0.ɵɵelementStart(1, "mat-form-field");
28141
- i0.ɵɵelement(2, "input", 33);
28409
+ i0.ɵɵelement(2, "input", 35);
28142
28410
  i0.ɵɵpipe(3, "translate");
28143
28411
  i0.ɵɵelementEnd();
28144
28412
  i0.ɵɵelementEnd();
@@ -28152,21 +28420,21 @@ function ImportExportComponent_form_12_div_23_ng_container_6_mat_option_1_Templa
28152
28420
  i0.ɵɵpipe(2, "translate");
28153
28421
  i0.ɵɵelementEnd();
28154
28422
  } if (rf & 2) {
28155
- const encoding_r38 = ctx.$implicit;
28156
- i0.ɵɵproperty("value", encoding_r38.key);
28423
+ const encoding_r40 = ctx.$implicit;
28424
+ i0.ɵɵproperty("value", encoding_r40.key);
28157
28425
  i0.ɵɵadvance(1);
28158
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.export.encoding." + encoding_r38.value), " ");
28426
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.export.encoding." + encoding_r40.value), " ");
28159
28427
  } }
28160
28428
  function ImportExportComponent_form_12_div_23_ng_container_6_Template(rf, ctx) { if (rf & 1) {
28161
28429
  i0.ɵɵelementContainerStart(0);
28162
- i0.ɵɵtemplate(1, ImportExportComponent_form_12_div_23_ng_container_6_mat_option_1_Template, 3, 4, "mat-option", 31);
28430
+ i0.ɵɵtemplate(1, ImportExportComponent_form_12_div_23_ng_container_6_mat_option_1_Template, 3, 4, "mat-option", 33);
28163
28431
  i0.ɵɵpipe(2, "keyvalue");
28164
28432
  i0.ɵɵpipe(3, "async");
28165
28433
  i0.ɵɵelementContainerEnd();
28166
28434
  } if (rf & 2) {
28167
- const ctx_r36 = i0.ɵɵnextContext(3);
28435
+ const ctx_r38 = i0.ɵɵnextContext(3);
28168
28436
  i0.ɵɵadvance(1);
28169
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind1(3, 3, ctx_r36.encodings$)));
28437
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind1(3, 3, ctx_r38.encodings$)));
28170
28438
  } }
28171
28439
  function ImportExportComponent_form_12_div_23_Template(rf, ctx) { if (rf & 1) {
28172
28440
  i0.ɵɵelementStart(0, "div", 6);
@@ -28175,7 +28443,7 @@ function ImportExportComponent_form_12_div_23_Template(rf, ctx) { if (rf & 1) {
28175
28443
  i0.ɵɵtext(3);
28176
28444
  i0.ɵɵpipe(4, "translate");
28177
28445
  i0.ɵɵelementEnd();
28178
- i0.ɵɵelementStart(5, "mat-select", 34);
28446
+ i0.ɵɵelementStart(5, "mat-select", 36);
28179
28447
  i0.ɵɵtemplate(6, ImportExportComponent_form_12_div_23_ng_container_6_Template, 4, 5, "ng-container", 22);
28180
28448
  i0.ɵɵpipe(7, "async");
28181
28449
  i0.ɵɵelementEnd();
@@ -28189,8 +28457,34 @@ function ImportExportComponent_form_12_div_23_Template(rf, ctx) { if (rf & 1) {
28189
28457
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(7, 4, ctx_r22.encodings$).length !== 0);
28190
28458
  } }
28191
28459
  function ImportExportComponent_form_12_div_24_Template(rf, ctx) { if (rf & 1) {
28192
- i0.ɵɵelementStart(0, "div", 35);
28193
- i0.ɵɵelementStart(1, "mat-slide-toggle", 36);
28460
+ i0.ɵɵelementStart(0, "div", 37);
28461
+ i0.ɵɵelementStart(1, "mat-slide-toggle", 38);
28462
+ i0.ɵɵtext(2);
28463
+ i0.ɵɵpipe(3, "translate");
28464
+ i0.ɵɵelementEnd();
28465
+ i0.ɵɵelementEnd();
28466
+ } if (rf & 2) {
28467
+ i0.ɵɵadvance(1);
28468
+ i0.ɵɵproperty("labelPosition", "before");
28469
+ i0.ɵɵadvance(1);
28470
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "igo.geo.importExportForm.exportCombineResults"), " ");
28471
+ } }
28472
+ function ImportExportComponent_form_12_div_25_Template(rf, ctx) { if (rf & 1) {
28473
+ i0.ɵɵelementStart(0, "div", 39);
28474
+ i0.ɵɵelementStart(1, "mat-slide-toggle", 40);
28475
+ i0.ɵɵtext(2);
28476
+ i0.ɵɵpipe(3, "translate");
28477
+ i0.ɵɵelementEnd();
28478
+ i0.ɵɵelementEnd();
28479
+ } if (rf & 2) {
28480
+ i0.ɵɵadvance(1);
28481
+ i0.ɵɵproperty("labelPosition", "before");
28482
+ i0.ɵɵadvance(1);
28483
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "igo.geo.importExportForm.exportSeparator"), " ");
28484
+ } }
28485
+ function ImportExportComponent_form_12_div_26_Template(rf, ctx) { if (rf & 1) {
28486
+ i0.ɵɵelementStart(0, "div", 41);
28487
+ i0.ɵɵelementStart(1, "mat-slide-toggle", 42);
28194
28488
  i0.ɵɵtext(2);
28195
28489
  i0.ɵɵpipe(3, "translate");
28196
28490
  i0.ɵɵelementEnd();
@@ -28202,7 +28496,7 @@ function ImportExportComponent_form_12_div_24_Template(rf, ctx) { if (rf & 1) {
28202
28496
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "igo.geo.importExportForm.exportFeatureInExtent"), " ");
28203
28497
  } }
28204
28498
  function ImportExportComponent_form_12_Template(rf, ctx) { if (rf & 1) {
28205
- const _r40 = i0.ɵɵgetCurrentView();
28499
+ const _r42 = i0.ɵɵgetCurrentView();
28206
28500
  i0.ɵɵelementStart(0, "form", 5);
28207
28501
  i0.ɵɵelementStart(1, "div", 6);
28208
28502
  i0.ɵɵelementStart(2, "mat-form-field");
@@ -28211,7 +28505,7 @@ function ImportExportComponent_form_12_Template(rf, ctx) { if (rf & 1) {
28211
28505
  i0.ɵɵpipe(5, "translate");
28212
28506
  i0.ɵɵelementEnd();
28213
28507
  i0.ɵɵelementStart(6, "mat-select", 18);
28214
- i0.ɵɵlistener("valueChange", function ImportExportComponent_form_12_Template_mat_select_valueChange_6_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return ctx_r39.layers = $event; });
28508
+ i0.ɵɵlistener("valueChange", function ImportExportComponent_form_12_Template_mat_select_valueChange_6_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r41 = i0.ɵɵnextContext(); return ctx_r41.layers = $event; });
28215
28509
  i0.ɵɵelementStart(7, "mat-select-trigger");
28216
28510
  i0.ɵɵtext(8);
28217
28511
  i0.ɵɵtemplate(9, ImportExportComponent_form_12_span_9_Template, 3, 4, "span", 19);
@@ -28238,24 +28532,26 @@ function ImportExportComponent_form_12_Template(rf, ctx) { if (rf & 1) {
28238
28532
  i0.ɵɵtemplate(22, ImportExportComponent_form_12_div_22_Template, 4, 3, "div", 24);
28239
28533
  i0.ɵɵtemplate(23, ImportExportComponent_form_12_div_23_Template, 8, 6, "div", 24);
28240
28534
  i0.ɵɵtemplate(24, ImportExportComponent_form_12_div_24_Template, 4, 4, "div", 25);
28241
- i0.ɵɵelementStart(25, "div", 26);
28242
- i0.ɵɵelementStart(26, "button", 10);
28243
- i0.ɵɵlistener("click", function ImportExportComponent_form_12_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r40); const ctx_r41 = i0.ɵɵnextContext(); return ctx_r41.handleExportFormSubmit(ctx_r41.form.value); });
28244
- i0.ɵɵpipe(27, "async");
28245
- i0.ɵɵtext(28);
28246
- i0.ɵɵpipe(29, "translate");
28247
- i0.ɵɵpipe(30, "translate");
28535
+ i0.ɵɵtemplate(25, ImportExportComponent_form_12_div_25_Template, 4, 4, "div", 26);
28536
+ i0.ɵɵtemplate(26, ImportExportComponent_form_12_div_26_Template, 4, 4, "div", 27);
28537
+ i0.ɵɵelementStart(27, "div", 28);
28538
+ i0.ɵɵelementStart(28, "button", 10);
28539
+ i0.ɵɵlistener("click", function ImportExportComponent_form_12_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r42); const ctx_r43 = i0.ɵɵnextContext(); return ctx_r43.handleExportFormSubmit(ctx_r43.form.value); });
28540
+ i0.ɵɵpipe(29, "async");
28541
+ i0.ɵɵtext(30);
28248
28542
  i0.ɵɵpipe(31, "translate");
28543
+ i0.ɵɵpipe(32, "translate");
28544
+ i0.ɵɵpipe(33, "translate");
28249
28545
  i0.ɵɵelementEnd();
28250
- i0.ɵɵelement(32, "igo-spinner", 11);
28251
- i0.ɵɵpipe(33, "async");
28546
+ i0.ɵɵelement(34, "igo-spinner", 11);
28547
+ i0.ɵɵpipe(35, "async");
28252
28548
  i0.ɵɵelementEnd();
28253
28549
  i0.ɵɵelementEnd();
28254
28550
  } if (rf & 2) {
28255
28551
  const ctx_r3 = i0.ɵɵnextContext();
28256
28552
  i0.ɵɵproperty("formGroup", ctx_r3.form);
28257
28553
  i0.ɵɵadvance(4);
28258
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 15, "igo.geo.importExportForm.exportLayerPlaceholder"));
28554
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 17, "igo.geo.importExportForm.exportLayerPlaceholder"));
28259
28555
  i0.ɵɵadvance(2);
28260
28556
  i0.ɵɵproperty("value", ctx_r3.layers);
28261
28557
  i0.ɵɵadvance(2);
@@ -28263,25 +28559,29 @@ function ImportExportComponent_form_12_Template(rf, ctx) { if (rf & 1) {
28263
28559
  i0.ɵɵadvance(1);
28264
28560
  i0.ɵɵproperty("ngIf", ctx_r3.layers.length > 1);
28265
28561
  i0.ɵɵadvance(1);
28266
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(11, 17, ctx_r3.exportableLayers$));
28562
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(11, 19, ctx_r3.exportableLayers$));
28267
28563
  i0.ɵɵadvance(5);
28268
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 19, "igo.geo.importExportForm.exportFormatPlaceholder"));
28564
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 21, "igo.geo.importExportForm.exportFormatPlaceholder"));
28269
28565
  i0.ɵɵadvance(3);
28270
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(19, 21, ctx_r3.formats$).length !== 0);
28566
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(19, 23, ctx_r3.formats$).length !== 0);
28271
28567
  i0.ɵɵadvance(2);
28272
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(21, 23, ctx_r3.formats$).length === 0);
28568
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(21, 25, ctx_r3.formats$).length === 0);
28273
28569
  i0.ɵɵadvance(2);
28274
28570
  i0.ɵɵproperty("ngIf", ctx_r3.forceNaming && ctx_r3.form.value.format !== "URL");
28275
28571
  i0.ɵɵadvance(1);
28276
28572
  i0.ɵɵproperty("ngIf", ctx_r3.form.value.format === "CSVcomma" || ctx_r3.form.value.format === "CSVsemicolon");
28277
28573
  i0.ɵɵadvance(1);
28574
+ i0.ɵɵproperty("ngIf", ctx_r3.layers.length > 1 && (ctx_r3.form.value.format === "CSVcomma" || ctx_r3.form.value.format === "CSVsemicolon"));
28575
+ i0.ɵɵadvance(1);
28576
+ i0.ɵɵproperty("ngIf", ctx_r3.layers.length > 1 && (ctx_r3.form.value.format === "CSVcomma" || ctx_r3.form.value.format === "CSVsemicolon") && ctx_r3.form.value.combineLayers);
28577
+ i0.ɵɵadvance(1);
28278
28578
  i0.ɵɵproperty("ngIf", ctx_r3.form.value.format !== "URL");
28279
28579
  i0.ɵɵadvance(2);
28280
- i0.ɵɵproperty("disabled", !ctx_r3.form.valid || i0.ɵɵpipeBind1(27, 25, ctx_r3.loading$));
28580
+ i0.ɵɵproperty("disabled", !ctx_r3.form.valid || i0.ɵɵpipeBind1(29, 27, ctx_r3.loading$));
28281
28581
  i0.ɵɵadvance(2);
28282
- i0.ɵɵtextInterpolate1(" ", ctx_r3.form.value.format !== "URL" ? i0.ɵɵpipeBind1(29, 27, "igo.geo.importExportForm.exportButton") : ctx_r3.form.value.layers.length > 1 ? i0.ɵɵpipeBind1(30, 29, "igo.geo.importExportForm.exportButtonLinks") : i0.ɵɵpipeBind1(31, 31, "igo.geo.importExportForm.exportButtonLink"), " ");
28582
+ i0.ɵɵtextInterpolate1(" ", ctx_r3.form.value.format !== "URL" ? i0.ɵɵpipeBind1(31, 29, "igo.geo.importExportForm.exportButton") : ctx_r3.form.value.layers.length > 1 ? i0.ɵɵpipeBind1(32, 31, "igo.geo.importExportForm.exportButtonLinks") : i0.ɵɵpipeBind1(33, 33, "igo.geo.importExportForm.exportButtonLink"), " ");
28283
28583
  i0.ɵɵadvance(4);
28284
- i0.ɵɵproperty("shown", i0.ɵɵpipeBind1(33, 33, ctx_r3.loading$));
28584
+ i0.ɵɵproperty("shown", i0.ɵɵpipeBind1(35, 35, ctx_r3.loading$));
28285
28585
  } }
28286
28586
  class ImportExportComponent {
28287
28587
  constructor(importService, exportService, languageService, messageService, styleListService, styleService, formBuilder, config, cdRef, storageService, downloadService) {
@@ -28583,11 +28883,20 @@ class ImportExportComponent {
28583
28883
  (ogreFormats.indexOf(data.format) >= 0 || data.format === ExportFormat.URL) && !this.popupAllowed) {
28584
28884
  this.handlePopup();
28585
28885
  }
28586
- data.layers.forEach((layer) => {
28886
+ let geomTypesCSV = [];
28887
+ let featuresCSV = [];
28888
+ let filename = "";
28889
+ for (const [layerIndex, layer] of data.layers.entries()) {
28587
28890
  const lay = this.map.getLayerById(layer);
28588
- let filename = lay.title;
28589
- if (data.name !== undefined) {
28590
- filename = data.name;
28891
+ if (!(data.format === ExportFormat.CSVsemicolon || data.format === ExportFormat.CSVcomma)
28892
+ || !data.combineLayers || data.layers.length === 1) {
28893
+ filename = lay.title;
28894
+ if (data.name) {
28895
+ filename = data.name;
28896
+ }
28897
+ }
28898
+ else {
28899
+ filename = this.languageService.translate.instant('igo.geo.export.combinedLayers');
28591
28900
  }
28592
28901
  const dSOptions = lay.dataSource.options;
28593
28902
  if (data.format === ExportFormat.URL && dSOptions.download && (dSOptions.download.url || dSOptions.download.dynamicUrl)) {
@@ -28672,6 +28981,35 @@ class ImportExportComponent {
28672
28981
  this.messageService.error(message, title, { timeOut: 20000 });
28673
28982
  }
28674
28983
  }
28984
+ else if ((data.format === ExportFormat.CSVsemicolon || data.format === ExportFormat.CSVcomma) && data.combineLayers) {
28985
+ geomTypes.forEach(geomType => geomTypesCSV.push(geomType));
28986
+ if (layerIndex !== data.layers.length - 1) {
28987
+ continue;
28988
+ }
28989
+ else {
28990
+ let previousFeature = undefined;
28991
+ geomTypesCSV.forEach(geomType => {
28992
+ geomType.features.forEach(currentFeature => {
28993
+ if (data.separator) {
28994
+ if (previousFeature) {
28995
+ if (currentFeature.get('_featureStore').layer.options.title !==
28996
+ previousFeature.get('_featureStore').layer.options.title) {
28997
+ const titleEmptyRows = this.createTitleEmptyRows(previousFeature, currentFeature);
28998
+ featuresCSV.push(titleEmptyRows[2]);
28999
+ featuresCSV.push(titleEmptyRows[1]);
29000
+ }
29001
+ }
29002
+ else {
29003
+ const titleEmptyRows = this.createTitleEmptyRows(currentFeature, currentFeature);
29004
+ featuresCSV.push(titleEmptyRows[0]);
29005
+ }
29006
+ }
29007
+ featuresCSV.push(currentFeature);
29008
+ previousFeature = currentFeature;
29009
+ });
29010
+ });
29011
+ }
29012
+ }
28675
29013
  if (geomTypes.length === 0) {
28676
29014
  this.loading$.next(false);
28677
29015
  const title = translate.instant('igo.geo.export.nothing.title');
@@ -28679,21 +29017,58 @@ class ImportExportComponent {
28679
29017
  this.messageService.error(message, title, { timeOut: 20000 });
28680
29018
  }
28681
29019
  else {
28682
- geomTypes.map(geomType => this.exportService.export(geomType.features, data.format, filename + geomType.geometryType, data.encoding, this.map.projection)
28683
- .subscribe(() => { }, (error) => this.onFileExportError(error), () => {
28684
- this.onFileExportSuccess();
28685
- geomType.features.forEach(feature => {
28686
- const radius = feature.get('rad');
28687
- if (radius) {
28688
- const point = new OlPoint([feature.get('longitude'), feature.get('latitude')]);
28689
- point.transform('EPSG:4326', feature.get('_projection'));
28690
- feature.setGeometry(point);
28691
- }
28692
- });
28693
- this.loading$.next(false);
28694
- }));
29020
+ if (!(data.format === ExportFormat.CSVsemicolon || data.format === ExportFormat.CSVcomma) || !data.combineLayers) {
29021
+ geomTypes.map(geomType => this.exportService.export(geomType.features, data.format, filename + geomType.geometryType, data.encoding, this.map.projection)
29022
+ .subscribe(() => { }, (error) => this.onFileExportError(error), () => {
29023
+ this.onFileExportSuccess();
29024
+ geomType.features.forEach(feature => {
29025
+ this.circleToPoint(feature);
29026
+ });
29027
+ this.loading$.next(false);
29028
+ }));
29029
+ }
29030
+ }
29031
+ }
29032
+ ;
29033
+ if ((data.format === ExportFormat.CSVsemicolon || data.format === ExportFormat.CSVcomma) && data.combineLayers) {
29034
+ this.exportService.export(featuresCSV, data.format, filename, data.encoding, this.map.projection)
29035
+ .subscribe(() => { }, (error) => this.onFileExportError(error), () => {
29036
+ this.onFileExportSuccess();
29037
+ featuresCSV.forEach(feature => {
29038
+ this.circleToPoint(feature);
29039
+ });
29040
+ this.loading$.next(false);
29041
+ });
29042
+ }
29043
+ }
29044
+ createTitleEmptyRows(previousFeature, currentFeature) {
29045
+ const titleRow = previousFeature.clone();
29046
+ const titleRowWithArrow = previousFeature.clone();
29047
+ const emptyRow = previousFeature.clone();
29048
+ const previousFeatureKeys = previousFeature.getKeys();
29049
+ const firstKey = previousFeatureKeys[1];
29050
+ previousFeatureKeys.forEach(key => {
29051
+ if (key === firstKey) {
29052
+ titleRow.set(key, currentFeature.get('_featureStore').layer.options.title, true);
29053
+ titleRowWithArrow.set(key, currentFeature.get('_featureStore').layer.options.title + " ===================>", true);
29054
+ emptyRow.unset(key, true);
29055
+ }
29056
+ else {
29057
+ titleRow.unset(key, true);
29058
+ titleRowWithArrow.unset(key, true);
29059
+ emptyRow.unset(key, true);
28695
29060
  }
28696
29061
  });
29062
+ const titleEmptyRows = [titleRow, titleRowWithArrow, emptyRow];
29063
+ return titleEmptyRows;
29064
+ }
29065
+ circleToPoint(feature) {
29066
+ const radius = feature.get('rad');
29067
+ if (radius) {
29068
+ const point = new OlPoint([feature.get('longitude'), feature.get('latitude')]);
29069
+ point.transform('EPSG:4326', feature.get('_projection'));
29070
+ feature.setGeometry(point);
29071
+ }
28697
29072
  }
28698
29073
  buildForm() {
28699
29074
  this.importForm = this.formBuilder.group({
@@ -28705,6 +29080,8 @@ class ImportExportComponent {
28705
29080
  layers: [[], [Validators.required]],
28706
29081
  layersWithSelection: [[]],
28707
29082
  encoding: [EncodingFormat.UTF8, [Validators.required]],
29083
+ combineLayers: [true, [Validators.required]],
29084
+ separator: [false, [Validators.required]],
28708
29085
  featureInMapExtent: [false, [Validators.required]],
28709
29086
  name: ['', [Validators.required]]
28710
29087
  });
@@ -28715,6 +29092,8 @@ class ImportExportComponent {
28715
29092
  layers: [[], [Validators.required]],
28716
29093
  layersWithSelection: [[]],
28717
29094
  encoding: [EncodingFormat.UTF8, [Validators.required]],
29095
+ combineLayers: [true, [Validators.required]],
29096
+ separator: [false, [Validators.required]],
28718
29097
  featureInMapExtent: [false, [Validators.required]],
28719
29098
  });
28720
29099
  }
@@ -28911,7 +29290,7 @@ class ImportExportComponent {
28911
29290
  }
28912
29291
  }
28913
29292
  ImportExportComponent.ɵfac = function ImportExportComponent_Factory(t) { return new (t || ImportExportComponent)(i0.ɵɵdirectiveInject(ImportService), i0.ɵɵdirectiveInject(ExportService), i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$1.MessageService), i0.ɵɵdirectiveInject(StyleListService), i0.ɵɵdirectiveInject(StyleService), i0.ɵɵdirectiveInject(i16.FormBuilder), i0.ɵɵdirectiveInject(i2$1.ConfigService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2$1.StorageService), i0.ɵɵdirectiveInject(DownloadService)); };
28914
- ImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ImportExportComponent, selectors: [["igo-import-export"]], inputs: { selectFirstProj: "selectFirstProj", map: "map", projectionsLimitations: "projectionsLimitations", store: "store", selectedMode: "selectedMode", exportOptions$: "exportOptions$" }, outputs: { selectMode: "selectMode", exportOptionsChange: "exportOptionsChange" }, decls: 14, vars: 17, consts: [[1, "import-export-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], ["class", "igo-form", 3, "formGroup", 4, "ngIf"], ["class", "mat-typography", 4, "ngIf"], [1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], [3, "value", "valueChange"], [3, "value", "click", 4, "ngFor", "ngForOf"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-form-button-group", 3, "matTooltip"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "shown"], ["hidden", "", "type", "file", 3, "click", "change"], ["fileInput", ""], [3, "value", "click"], ["mat-line", "", 4, "ngIf"], ["mat-line", ""], [1, "mat-typography"], ["multiple", "", 3, "value", "valueChange"], ["class", "export-select-trigger", 4, "ngIf"], [3, "ngClass", "value", "click", 4, "ngFor", "ngForOf"], ["formControlName", "format"], [4, "ngIf"], ["disabled", "true", 4, "ngIf"], ["class", "igo-input-container", 4, "ngIf"], ["class", "export-options mat-typography", 4, "ngIf"], [1, "igo-form-button-group"], [1, "export-select-trigger"], [3, "ngClass", "value", "click"], [3, "labelPosition", "click", "checked", "change", 4, "ngIf"], [3, "labelPosition", "click", "checked", "change"], [3, "value", 4, "ngFor", "ngForOf"], ["disabled", "true"], ["matInput", "", "formControlName", "name", 3, "placeholder"], ["formControlName", "encoding"], [1, "export-options", "mat-typography"], ["formControlName", "featureInMapExtent", 3, "labelPosition"]], template: function ImportExportComponent_Template(rf, ctx) { if (rf & 1) {
29293
+ ImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ImportExportComponent, selectors: [["igo-import-export"]], inputs: { selectFirstProj: "selectFirstProj", map: "map", projectionsLimitations: "projectionsLimitations", store: "store", selectedMode: "selectedMode", exportOptions$: "exportOptions$" }, outputs: { selectMode: "selectMode", exportOptionsChange: "exportOptionsChange" }, decls: 14, vars: 17, consts: [[1, "import-export-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], ["class", "igo-form", 3, "formGroup", 4, "ngIf"], ["class", "mat-typography", 4, "ngIf"], [1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], [3, "value", "valueChange"], [3, "value", "click", 4, "ngFor", "ngForOf"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-form-button-group", 3, "matTooltip"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "shown"], ["hidden", "", "type", "file", 3, "click", "change"], ["fileInput", ""], [3, "value", "click"], ["mat-line", "", 4, "ngIf"], ["mat-line", ""], [1, "mat-typography"], ["multiple", "", 3, "value", "valueChange"], ["class", "export-select-trigger", 4, "ngIf"], [3, "ngClass", "value", "click", 4, "ngFor", "ngForOf"], ["formControlName", "format"], [4, "ngIf"], ["disabled", "true", 4, "ngIf"], ["class", "igo-input-container", 4, "ngIf"], ["class", "export-combine-layers mat-typography", 4, "ngIf"], ["class", "export-separator mat-typography", 4, "ngIf"], ["class", "export-options mat-typography", 4, "ngIf"], [1, "igo-form-button-group"], [1, "export-select-trigger"], [3, "ngClass", "value", "click"], [3, "labelPosition", "click", "checked", "change", 4, "ngIf"], [3, "labelPosition", "click", "checked", "change"], [3, "value", 4, "ngFor", "ngForOf"], ["disabled", "true"], ["matInput", "", "formControlName", "name", 3, "placeholder"], ["formControlName", "encoding"], [1, "export-combine-layers", "mat-typography"], ["formControlName", "combineLayers", 3, "labelPosition"], [1, "export-separator", "mat-typography"], ["formControlName", "separator", 3, "labelPosition"], [1, "export-options", "mat-typography"], ["formControlName", "featureInMapExtent", 3, "labelPosition"]], template: function ImportExportComponent_Template(rf, ctx) { if (rf & 1) {
28915
29294
  i0.ɵɵelementStart(0, "div", 0);
28916
29295
  i0.ɵɵelementStart(1, "mat-button-toggle-group", 1);
28917
29296
  i0.ɵɵlistener("change", function ImportExportComponent_Template_mat_button_toggle_group_change_1_listener($event) { return ctx.onImportExportChange($event); });
@@ -28929,7 +29308,7 @@ ImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Impor
28929
29308
  i0.ɵɵtemplate(9, ImportExportComponent_section_9_Template, 14, 15, "section", 4);
28930
29309
  i0.ɵɵtemplate(10, ImportExportComponent_section_10_Template, 4, 3, "section", 4);
28931
29310
  i0.ɵɵpipe(11, "async");
28932
- i0.ɵɵtemplate(12, ImportExportComponent_form_12_Template, 34, 35, "form", 3);
29311
+ i0.ɵɵtemplate(12, ImportExportComponent_form_12_Template, 36, 37, "form", 3);
28933
29312
  i0.ɵɵpipe(13, "async");
28934
29313
  } if (rf & 2) {
28935
29314
  i0.ɵɵadvance(1);
@@ -28950,7 +29329,7 @@ ImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Impor
28950
29329
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(11, 13, ctx.exportableLayers$).length === 0 && ctx.selectedMode === "export");
28951
29330
  i0.ɵɵadvance(2);
28952
29331
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(13, 15, ctx.exportableLayers$).length > 0 && ctx.selectedMode === "export");
28953
- } }, directives: [i18.MatButtonToggleGroup, i18.MatButtonToggle, i1$1.NgIf, i16.ɵNgNoValidate, i16.NgControlStatusGroup, i16.FormGroupDirective, i12.MatFormField, i12.MatLabel, i13.MatSelect, i1$1.NgForOf, i3.MatTooltip, i2.MatButton, i6$1.SpinnerComponent, i9.MatOption, i13.MatSelectTrigger, i16.NgControlStatus, i16.FormControlName, i1$1.NgClass, i22.MatSlideToggle, i5.MatInput, i16.DefaultValueAccessor], pipes: [i7.TranslatePipe, i1$1.AsyncPipe, i6$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%]{overflow-x:hidden}.export-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.export-options[_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}"] });
29332
+ } }, directives: [i18.MatButtonToggleGroup, i18.MatButtonToggle, i1$1.NgIf, i16.ɵNgNoValidate, i16.NgControlStatusGroup, i16.FormGroupDirective, i12.MatFormField, i12.MatLabel, i13.MatSelect, i1$1.NgForOf, i3.MatTooltip, i2.MatButton, i6$1.SpinnerComponent, i9.MatOption, i13.MatSelectTrigger, i16.NgControlStatus, i16.FormControlName, i1$1.NgClass, i22.MatSlideToggle, i5.MatInput, i16.DefaultValueAccessor], pipes: [i7.TranslatePipe, i1$1.AsyncPipe, i6$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}"] });
28954
29333
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImportExportComponent, [{
28955
29334
  type: Component,
28956
29335
  args: [{
@@ -31346,7 +31725,7 @@ function addStopToStopsFeatureStore(stop, stopsStore, stopsFeatureStore, project
31346
31725
  id: stop.id,
31347
31726
  revision: previousStopRevision + 1
31348
31727
  },
31349
- ol: new olFeature({ geometry })
31728
+ ol: new OlFeature({ geometry })
31350
31729
  };
31351
31730
  stopsFeatureStore.update(stopFeatureStore);
31352
31731
  }
@@ -31376,7 +31755,7 @@ function addDirectionToRoutesFeatureStore(routesFeatureStore, direction, project
31376
31755
  id: direction.id,
31377
31756
  revision: previousRouteRevision + 1
31378
31757
  },
31379
- ol: new olFeature({ geometry })
31758
+ ol: new OlFeature({ geometry })
31380
31759
  };
31381
31760
  routesFeatureStore.update(routeFeatureStore);
31382
31761
  }
@@ -32505,7 +32884,7 @@ class DirectionsResultsComponent {
32505
32884
  const routeSegmentCoordinates = geometryMapProjection.getCoordinates();
32506
32885
  const lastPoint = routeSegmentCoordinates[0];
32507
32886
  const geometry = new olgeom.Point(lastPoint);
32508
- const feature = new olFeature({ geometry });
32887
+ const feature = new OlFeature({ geometry });
32509
32888
  const geojsonGeom = new OlGeoJSON().writeGeometryObject(geometry, {
32510
32889
  featureProjection: this.stepFeatureStore.layer.map.projection,
32511
32890
  dataProjection: this.stepFeatureStore.layer.map.projection
@@ -33652,7 +34031,8 @@ class IChercheReverseSearchSource extends SearchSource {
33652
34031
  id,
33653
34032
  title: data.properties.nom,
33654
34033
  titleHtml: titleHtml + subtitleHtml,
33655
- icon: data.icon || 'map-marker'
34034
+ icon: data.icon || 'map-marker',
34035
+ pointerSummaryTitle: this.getSubtitle(data) + ': ' + data.properties.nom
33656
34036
  }
33657
34037
  };
33658
34038
  }
@@ -36269,11 +36649,13 @@ class SearchPointerSummaryDirective {
36269
36649
  if (closestResultByType.hasOwnProperty(result.data.properties.type)) {
36270
36650
  const prevDistance = closestResultByType[result.data.properties.type].distance;
36271
36651
  if (result.data.properties.distance < prevDistance) {
36272
- closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title: result.meta.title };
36652
+ const title = result.meta.pointerSummaryTitle || result.meta.title;
36653
+ closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title };
36273
36654
  }
36274
36655
  }
36275
36656
  else {
36276
- closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title: result.meta.title };
36657
+ const title = result.meta.pointerSummaryTitle || result.meta.title;
36658
+ closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title };
36277
36659
  }
36278
36660
  }
36279
36661
  });
@@ -36297,7 +36679,7 @@ class SearchPointerSummaryDirective {
36297
36679
  }
36298
36680
  else {
36299
36681
  if (processedSummarizedClosestType.indexOf(result.data.properties.type) === -1) {
36300
- summary.push(result.meta.title);
36682
+ summary.push(result.meta.pointerSummaryTitle || result.meta.title);
36301
36683
  }
36302
36684
  }
36303
36685
  });
@@ -36354,6 +36736,14 @@ class SearchPointerSummaryDirective {
36354
36736
  this.onSearchCoordinate();
36355
36737
  }, this.igoSearchPointerSummaryDelay);
36356
36738
  }
36739
+ /**
36740
+ * Sort the results by display order.
36741
+ * @param r1 First result
36742
+ * @param r2 Second result
36743
+ */
36744
+ sortByOrder(r1, r2) {
36745
+ return r1.source.displayOrder - r2.source.displayOrder;
36746
+ }
36357
36747
  onSearchCoordinate() {
36358
36748
  this.pointerSearchStore.clear();
36359
36749
  const results = this.searchService.reverseSearch(this.lonLat, { params: { geometry: 'false', icon: 'false' } }, true);
@@ -36370,7 +36760,7 @@ class SearchPointerSummaryDirective {
36370
36760
  const newResults = this.pointerSearchStore.all()
36371
36761
  .filter((result) => result.source !== event.research.source)
36372
36762
  .concat(results);
36373
- this.pointerSearchStore.load(newResults);
36763
+ this.pointerSearchStore.load(newResults.sort(this.sortByOrder));
36374
36764
  }
36375
36765
  /**
36376
36766
  * Add a feature to the pointer store
@@ -36379,7 +36769,7 @@ class SearchPointerSummaryDirective {
36379
36769
  addPointerOverlay(text) {
36380
36770
  this.clearLayer();
36381
36771
  const geometry = new olgeom.Point(transform(this.lonLat, 'EPSG:4326', this.mapProjection));
36382
- const feature = new olFeature({ geometry });
36772
+ const feature = new OlFeature({ geometry });
36383
36773
  const geojsonGeom = new OlGeoJSON().writeGeometryObject(geometry, {
36384
36774
  featureProjection: this.mapProjection,
36385
36775
  dataProjection: this.mapProjection
@@ -38574,5 +38964,5 @@ function noElementSelected(ws) {
38574
38964
  * Generated bundle index. Do not edit.
38575
38965
  */
38576
38966
 
38577
- export { AddCatalogDialogComponent, ArcGISRestDataSource, BaseLayersSwitcherComponent, CadastreSearchSource, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogFactory, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, CompositeCatalog, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionType, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EncodingFormat, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, GeolocateButtonComponent, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoDataSourceModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoOverlayModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, LAYER, Layer, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListBindingDirective, LayerListComponent, LayerListControlsEnum, LayerListDisplacement, LayerListSelectVisibleEnum, LayerListToolComponent, LayerListToolControlsEnum, LayerListToolService, LayerService, LayerSyncWatcher, LinkedProperties, MEASURE_UNIT_AUTO, MVTDataSource, MapBrowserComponent, MapCenterComponent, MapController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, OverlayDirective, OverlayService, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, RotationButtonComponent, RoutesFeatureStore, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchResultsItemComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addDirectionToRoutesFeatureStore, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addStopToStopsFeatureStore, addStopToStore, buildUrl, cadastreSearchSourceFactory, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayMarkerStyle, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, formatDistance, formatDuration, formatInstruction, formatMeasure, formatScale, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getCommonVectorSelectedStyle, getCommonVectorStyle, getFileExtension, getFormatFromOptions, getLayersLegends, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRowsInMapExtent, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarker, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, jsonRegex, layerFeatureIsQueryable, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarker, provideCadastreSearchSource, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, removeStopFromStore, renderFeatureFromOl, roundCoordTo, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlLineString, sliceOlPolygon, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, styleListFactory, translateBearing, translateModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, zoneMtm, zoneUtm };
38967
+ export { AddCatalogDialogComponent, ArcGISRestDataSource, BaseLayersSwitcherComponent, CadastreSearchSource, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogFactory, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, CompositeCatalog, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionType, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EncodingFormat, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, GeolocateButtonComponent, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoDataSourceModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoOverlayModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, LAYER, Layer, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListBindingDirective, LayerListComponent, LayerListControlsEnum, LayerListDisplacement, LayerListSelectVisibleEnum, LayerListToolComponent, LayerListToolControlsEnum, LayerListToolService, LayerService, LayerSyncWatcher, LinkedProperties, MEASURE_UNIT_AUTO, MVTDataSource, MapBrowserComponent, MapCenterComponent, MapController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, OverlayDirective, OverlayService, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, RotationButtonComponent, RoutesFeatureStore, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchResultsItemComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addDirectionToRoutesFeatureStore, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addStopToStopsFeatureStore, addStopToStore, buildUrl, cadastreSearchSourceFactory, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeMVTOptionsOnHover, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayMarkerStyle, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, formatDistance, formatDuration, formatInstruction, formatMeasure, formatScale, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getCommonVectorSelectedStyle, getCommonVectorStyle, getFileExtension, getFormatFromOptions, getLayersLegends, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRowsInMapExtent, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarker, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, jsonRegex, layerFeatureIsQueryable, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarker, provideCadastreSearchSource, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, removeStopFromStore, renderFeatureFromOl, roundCoordTo, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlLineString, sliceOlPolygon, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, styleListFactory, translateBearing, translateModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, zoneMtm, zoneUtm };
38578
38968
  //# sourceMappingURL=igo2-geo.js.map