@igo2/integration 1.10.0 → 1.12.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 (121) hide show
  1. package/bundles/igo2-integration.umd.js +1297 -608
  2. package/bundles/igo2-integration.umd.js.map +1 -1
  3. package/esm2015/lib/about/about-tool/about-tool.component.js +3 -3
  4. package/esm2015/lib/about/about-tool/index.js +1 -1
  5. package/esm2015/lib/about/about.module.js +1 -1
  6. package/esm2015/lib/about/index.js +1 -1
  7. package/esm2015/lib/analytics/analytics-listener.service.js +1 -1
  8. package/esm2015/lib/analytics/analytics.module.js +1 -1
  9. package/esm2015/lib/analytics/index.js +1 -1
  10. package/esm2015/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.js +1 -1
  11. package/esm2015/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.js +1 -1
  12. package/esm2015/lib/catalog/catalog-library-tool/catalog-library-tool.component.js +1 -1
  13. package/esm2015/lib/catalog/catalog-library-tool/catalog-library-tool.module.js +1 -1
  14. package/esm2015/lib/catalog/catalog.module.js +1 -1
  15. package/esm2015/lib/catalog/catalog.state.js +1 -1
  16. package/esm2015/lib/catalog/index.js +1 -1
  17. package/esm2015/lib/context/context-editor-tool/context-editor-tool.component.js +1 -1
  18. package/esm2015/lib/context/context-manager-tool/context-manager-tool.component.js +1 -1
  19. package/esm2015/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.js +1 -1
  20. package/esm2015/lib/context/context-share-tool/context-share-tool.component.js +1 -1
  21. package/esm2015/lib/context/context.module.js +1 -1
  22. package/esm2015/lib/context/context.state.js +1 -1
  23. package/esm2015/lib/context/index.js +1 -1
  24. package/esm2015/lib/directions/directions-tool/directions-tool.component.js +17 -8
  25. package/esm2015/lib/directions/directions-tool/index.js +1 -1
  26. package/esm2015/lib/directions/directions.module.js +1 -1
  27. package/esm2015/lib/directions/directions.state.js +1 -1
  28. package/esm2015/lib/directions/index.js +1 -1
  29. package/esm2015/lib/draw/draw.module.js +1 -1
  30. package/esm2015/lib/draw/draw.state.js +1 -1
  31. package/esm2015/lib/draw/drawing-tool/drawing-tool.component.js +1 -1
  32. package/esm2015/lib/draw/index.js +1 -1
  33. package/esm2015/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.js +1 -1
  34. package/esm2015/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.js +1 -1
  35. package/esm2015/lib/filter/active-ogc-filter-tool/index.js +1 -1
  36. package/esm2015/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.js +1 -1
  37. package/esm2015/lib/filter/active-time-filter-tool/active-time-filter-tool.component.js +1 -1
  38. package/esm2015/lib/filter/active-time-filter-tool/index.js +1 -1
  39. package/esm2015/lib/filter/filter.module.js +1 -1
  40. package/esm2015/lib/filter/index.js +1 -1
  41. package/esm2015/lib/filter/ogc-filter-tool/index.js +1 -1
  42. package/esm2015/lib/filter/ogc-filter-tool/ogc-filter-tool.component.js +1 -1
  43. package/esm2015/lib/filter/spatial-filter-tool/index.js +1 -1
  44. package/esm2015/lib/filter/spatial-filter-tool/spatial-filter-tool.component.js +4 -1
  45. package/esm2015/lib/filter/time-filter-tool/index.js +1 -1
  46. package/esm2015/lib/filter/time-filter-tool/time-filter-tool.component.js +1 -1
  47. package/esm2015/lib/import-export/import-export-tool/import-export-tool.component.js +1 -1
  48. package/esm2015/lib/import-export/import-export-tool/index.js +1 -1
  49. package/esm2015/lib/import-export/import-export.module.js +1 -1
  50. package/esm2015/lib/import-export/import-export.state.js +1 -1
  51. package/esm2015/lib/import-export/index.js +1 -1
  52. package/esm2015/lib/integration.module.js +1 -1
  53. package/esm2015/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.js +1 -1
  54. package/esm2015/lib/map/advanced-map-tool/advanced-map-tool.component.js +60 -11
  55. package/esm2015/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.js +1 -1
  56. package/esm2015/lib/map/advanced-map-tool/index.js +1 -1
  57. package/esm2015/lib/map/index.js +3 -1
  58. package/esm2015/lib/map/layer-list-tool.state.js +1 -1
  59. package/esm2015/lib/map/map-details-tool/index.js +1 -1
  60. package/esm2015/lib/map/map-details-tool/map-details-tool.component.js +1 -1
  61. package/esm2015/lib/map/map-legend/index.js +1 -1
  62. package/esm2015/lib/map/map-legend/map-legend-tool.component.js +1 -1
  63. package/esm2015/lib/map/map-proximity-tool/index.js +2 -0
  64. package/esm2015/lib/map/map-proximity-tool/map-proximity-tool.component.js +221 -0
  65. package/esm2015/lib/map/map-proximity.state.js +164 -0
  66. package/esm2015/lib/map/map-tool/index.js +1 -1
  67. package/esm2015/lib/map/map-tool/map-tool.component.js +1 -1
  68. package/esm2015/lib/map/map-tools/index.js +1 -1
  69. package/esm2015/lib/map/map-tools/map-tools.component.js +2 -2
  70. package/esm2015/lib/map/map.module.js +18 -8
  71. package/esm2015/lib/map/map.state.js +8 -6
  72. package/esm2015/lib/measure/index.js +1 -1
  73. package/esm2015/lib/measure/measure.module.js +1 -1
  74. package/esm2015/lib/measure/measure.state.js +1 -1
  75. package/esm2015/lib/measure/measurer-tool/measurer-tool.component.js +1 -1
  76. package/esm2015/lib/measure/measurer-tool/measurer-tool.module.js +1 -1
  77. package/esm2015/lib/print/index.js +1 -1
  78. package/esm2015/lib/print/print-tool/index.js +1 -1
  79. package/esm2015/lib/print/print-tool/print-tool.component.js +1 -1
  80. package/esm2015/lib/print/print.module.js +1 -1
  81. package/esm2015/lib/search/index.js +1 -1
  82. package/esm2015/lib/search/query.state.js +1 -1
  83. package/esm2015/lib/search/search-bar/search-bar-binding.directive.js +1 -1
  84. package/esm2015/lib/search/search-bar/search-bar.module.js +1 -1
  85. package/esm2015/lib/search/search-results-tool/search-results-tool.component.js +52 -28
  86. package/esm2015/lib/search/search-results-tool/search-results-tool.module.js +1 -1
  87. package/esm2015/lib/search/search.module.js +1 -1
  88. package/esm2015/lib/search/search.state.js +1 -1
  89. package/esm2015/lib/storage/index.js +1 -1
  90. package/esm2015/lib/storage/storage.module.js +1 -1
  91. package/esm2015/lib/storage/storage.state.js +1 -1
  92. package/esm2015/lib/tool/index.js +1 -1
  93. package/esm2015/lib/tool/tool.module.js +1 -1
  94. package/esm2015/lib/tool/tool.state.js +1 -1
  95. package/esm2015/lib/workspace/index.js +1 -1
  96. package/esm2015/lib/workspace/shared/edition-actions.service.js +157 -0
  97. package/esm2015/lib/workspace/shared/feature-actions.service.js +1 -1
  98. package/esm2015/lib/workspace/shared/index.js +1 -1
  99. package/esm2015/lib/workspace/shared/wfs-actions.service.js +2 -2
  100. package/esm2015/lib/workspace/shared/workspace.utils.js +1 -1
  101. package/esm2015/lib/workspace/workspace-button/index.js +1 -1
  102. package/esm2015/lib/workspace/workspace-button/workspace-button.component.js +1 -1
  103. package/esm2015/lib/workspace/workspace.module.js +1 -1
  104. package/esm2015/lib/workspace/workspace.state.js +41 -7
  105. package/esm2015/public_api.js +1 -1
  106. package/fesm2015/igo2-integration.js +843 -217
  107. package/fesm2015/igo2-integration.js.map +1 -1
  108. package/lib/directions/directions-tool/directions-tool.component.d.ts +6 -1
  109. package/lib/map/advanced-map-tool/advanced-map-tool.component.d.ts +7 -0
  110. package/lib/map/index.d.ts +2 -0
  111. package/lib/map/map-proximity-tool/index.d.ts +1 -0
  112. package/lib/map/map-proximity-tool/map-proximity-tool.component.d.ts +36 -0
  113. package/lib/map/map-proximity.state.d.ts +28 -0
  114. package/lib/map/map.module.d.ts +30 -28
  115. package/lib/map/map.state.d.ts +4 -1
  116. package/lib/search/search-results-tool/search-results-tool.component.d.ts +7 -1
  117. package/lib/workspace/shared/edition-actions.service.d.ts +26 -0
  118. package/lib/workspace/shared/workspace.utils.d.ts +2 -2
  119. package/lib/workspace/workspace.state.d.ts +8 -3
  120. package/ngcc.config.js +3 -3
  121. package/package.json +3 -3
@@ -1,19 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { NgModule, Injectable, Component, Input, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Inject, ViewChild, Directive, Self, HostListener } from '@angular/core';
3
- import * as i2 from '@igo2/context';
3
+ import * as i1 from '@igo2/context';
4
4
  import { IgoContextModule, IgoContextImportExportModule } from '@igo2/context';
5
5
  import { __decorate } from 'tslib';
6
- import * as i7 from '@igo2/common';
7
- import { ToolComponent, EntityStore, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy, WorkspaceStore, IgoSpinnerModule, getEntityTitle, FlexibleComponent, IgoFlexibleModule, IgoPanelModule, IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';
8
- import { BehaviorSubject, Subject, combineLatest, ReplaySubject, forkJoin, of } from 'rxjs';
9
- import * as i1 from '@igo2/geo';
10
- import { IgoMap, IgoCatalogLibraryModule, IgoCatalogBrowserModule, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore, IgoDirectionsModule, FeatureStore, IgoDrawingToolModule, FeatureStoreSelectionStrategy, FeatureMotion, mapExtentStrategyActiveToolTip, noElementSelected, OgcFilterWidget, WfsWorkspace, FeatureWorkspace, IgoImportExportModule, LayerListControlsEnum, sourceCanSearch, VectorLayer, zoneMtm, zoneUtm, formatScale, computeProjectionsConstraints, IgoLayerModule, IgoMetadataModule, IgoDownloadModule, IgoFilterModule, IgoMeasurerModule, IgoPrintModule, IgoSearchModule, FEATURE, getCommonVectorStyle, featureToOl, computeOlFeaturesExtent, featuresAreOutOfView, featuresAreTooDeepInView, featureFromOl, getCommonVectorSelectedStyle, moveToOlFeatures, IgoFeatureModule, IgoFeatureDetailsModule, SpatialFilterItemType, MeasureLengthUnit, SpatialFilterType, createOverlayMarkerStyle, IgoQueryModule } from '@igo2/geo';
11
- import * as i4 from '@angular/common';
6
+ import * as i4 from '@igo2/common';
7
+ import { ToolComponent, EntityStore, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy, WorkspaceStore, IgoSpinnerModule, IgoEntityTableModule, getEntityTitle, FlexibleComponent, IgoFlexibleModule, IgoPanelModule, IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';
8
+ import { BehaviorSubject, Subject, of, combineLatest, ReplaySubject, interval, forkJoin } from 'rxjs';
9
+ import * as i1$1 from '@igo2/geo';
10
+ import { IgoMap, IgoCatalogLibraryModule, IgoCatalogBrowserModule, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore, IgoDirectionsModule, FeatureStore, IgoDrawingToolModule, FeatureStoreSelectionStrategy, FeatureMotion, mapExtentStrategyActiveToolTip, noElementSelected, OgcFilterWidget, WfsWorkspace, FeatureWorkspace, EditionWorkspace, IgoImportExportModule, LayerListControlsEnum, sourceCanSearch, VectorLayer, zoneMtm, zoneUtm, formatScale, computeProjectionsConstraints, roundCoordTo, featureFromOl, measureOlGeometryLength, FEATURE, IgoLayerModule, IgoMetadataModule, IgoDownloadModule, IgoFilterModule, IgoMeasurerModule, IgoPrintModule, IgoSearchModule, getCommonVectorStyle, featureToOl, computeOlFeaturesExtent, featuresAreOutOfView, featuresAreTooDeepInView, getCommonVectorSelectedStyle, moveToOlFeatures, IgoFeatureModule, IgoFeatureDetailsModule, SpatialFilterItemType, MeasureLengthUnit, SpatialFilterType, createOverlayMarkerStyle, IgoQueryModule } from '@igo2/geo';
11
+ import * as i2 from '@igo2/core';
12
+ import { StorageScope, StorageServiceEventEnum, IgoLanguageModule } from '@igo2/core';
13
+ import * as i5 from '@angular/common';
12
14
  import { CommonModule } from '@angular/common';
13
15
  import { take, skipWhile, map, debounceTime, takeUntil, tap, skip } from 'rxjs/operators';
14
16
  import * as i2$1 from '@igo2/auth';
15
- import * as i2$2 from '@igo2/core';
16
- import { StorageScope, StorageServiceEventEnum, IgoLanguageModule } from '@igo2/core';
17
17
  import * as i3 from '@angular/material/button';
18
18
  import { MatButtonModule } from '@angular/material/button';
19
19
  import * as i4$1 from '@angular/material/tooltip';
@@ -21,10 +21,10 @@ import { MatTooltipModule } from '@angular/material/tooltip';
21
21
  import * as i6 from '@angular/material/icon';
22
22
  import { MatIconModule } from '@angular/material/icon';
23
23
  import * as i8 from '@ngx-translate/core';
24
- import * as i5 from '@angular/material/tabs';
24
+ import * as i5$1 from '@angular/material/tabs';
25
25
  import { MatTabsModule } from '@angular/material/tabs';
26
26
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
27
- import * as i7$1 from '@angular/material/list';
27
+ import * as i7 from '@angular/material/list';
28
28
  import { MatListModule } from '@angular/material/list';
29
29
  import * as i10 from '@angular/material/slide-toggle';
30
30
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
@@ -36,18 +36,22 @@ import * as i3$1 from '@angular/forms';
36
36
  import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
37
37
  import * as i6$1 from '@angular/material/form-field';
38
38
  import { MatFormFieldModule } from '@angular/material/form-field';
39
- import * as i7$2 from '@angular/material/select';
39
+ import * as i7$1 from '@angular/material/select';
40
40
  import { MatSelectModule } from '@angular/material/select';
41
41
  import * as i9 from '@angular/material/divider';
42
42
  import { MatDividerModule } from '@angular/material/divider';
43
- import { Clipboard } from '@igo2/utils';
44
- import * as olproj from 'ol/proj';
43
+ import { Clipboard, uuid, NumberUtils } from '@igo2/utils';
44
+ import * as olProj from 'ol/proj';
45
45
  import * as i10$1 from '@angular/material/input';
46
46
  import { MatInputModule } from '@angular/material/input';
47
47
  import { MatCheckboxModule } from '@angular/material/checkbox';
48
+ import * as i7$2 from '@angular/material/radio';
49
+ import { MatRadioModule } from '@angular/material/radio';
50
+ import olFormatGeoJSON from 'ol/format/GeoJSON';
51
+ import olLayerVector from 'ol/layer/Vector';
52
+ import olLineString from 'ol/geom/LineString';
48
53
  import * as i12 from '@angular/material/badge';
49
54
  import { MatBadgeModule } from '@angular/material/badge';
50
- import olFormatGeoJSON from 'ol/format/GeoJSON';
51
55
  import olFeature from 'ol/Feature';
52
56
  import olPoint from 'ol/geom/Point';
53
57
  import pointOnFeature from '@turf/point-on-feature';
@@ -144,14 +148,14 @@ class ToolState {
144
148
  }
145
149
  }
146
150
  }
147
- ToolState.ɵfac = function ToolState_Factory(t) { return new (t || ToolState)(i0.ɵɵinject(i7.ToolService), i0.ɵɵinject(ImportExportState)); };
151
+ ToolState.ɵfac = function ToolState_Factory(t) { return new (t || ToolState)(i0.ɵɵinject(i4.ToolService), i0.ɵɵinject(ImportExportState)); };
148
152
  ToolState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ToolState, factory: ToolState.ɵfac, providedIn: 'root' });
149
153
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolState, [{
150
154
  type: Injectable,
151
155
  args: [{
152
156
  providedIn: 'root'
153
157
  }]
154
- }], function () { return [{ type: i7.ToolService }, { type: ImportExportState }]; }, null); })();
158
+ }], function () { return [{ type: i4.ToolService }, { type: ImportExportState }]; }, null); })();
155
159
 
156
160
  let ContextEditorToolComponent = class ContextEditorToolComponent {
157
161
  constructor(toolState) {
@@ -166,7 +170,7 @@ ContextEditorToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
166
170
  i0.ɵɵelementStart(0, "igo-context-edit", 0);
167
171
  i0.ɵɵlistener("submitSuccessed", function ContextEditorToolComponent_Template_igo_context_edit_submitSuccessed_0_listener() { return ctx.submitSuccessed(); });
168
172
  i0.ɵɵelementEnd();
169
- } }, directives: [i2.ContextEditComponent, i2.ContextEditBindingDirective], encapsulation: 2 });
173
+ } }, directives: [i1.ContextEditComponent, i1.ContextEditBindingDirective], encapsulation: 2 });
170
174
  ContextEditorToolComponent = __decorate([
171
175
  ToolComponent({
172
176
  name: 'contextEditor',
@@ -188,10 +192,11 @@ ContextEditorToolComponent = __decorate([
188
192
  * Service that holds the state of the map module
189
193
  */
190
194
  class MapState {
191
- constructor(mapService, projectionService // Don't remove this or it'll never be injected
192
- ) {
195
+ constructor(mapService, projectionService, // Don't remove this or it'll never be injected,
196
+ storageService) {
193
197
  this.mapService = mapService;
194
198
  this.projectionService = projectionService;
199
+ this.storageService = storageService;
195
200
  this._map = new IgoMap({
196
201
  controls: {
197
202
  scaleLine: true,
@@ -199,7 +204,7 @@ class MapState {
199
204
  collapsed: true
200
205
  }
201
206
  }
202
- });
207
+ }, this.storageService);
203
208
  this.mapService.setMap(this.map);
204
209
  }
205
210
  // public mapCenter$ = new BehaviorSubject<boolean>(false);
@@ -214,14 +219,14 @@ class MapState {
214
219
  */
215
220
  get map() { return this._map; }
216
221
  }
217
- MapState.ɵfac = function MapState_Factory(t) { return new (t || MapState)(i0.ɵɵinject(i1.MapService), i0.ɵɵinject(i1.ProjectionService)); };
222
+ MapState.ɵfac = function MapState_Factory(t) { return new (t || MapState)(i0.ɵɵinject(i1$1.MapService), i0.ɵɵinject(i1$1.ProjectionService), i0.ɵɵinject(i2.StorageService)); };
218
223
  MapState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MapState, factory: MapState.ɵfac, providedIn: 'root' });
219
224
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MapState, [{
220
225
  type: Injectable,
221
226
  args: [{
222
227
  providedIn: 'root'
223
228
  }]
224
- }], function () { return [{ type: i1.MapService }, { type: i1.ProjectionService }]; }, null); })();
229
+ }], function () { return [{ type: i1$1.MapService }, { type: i1$1.ProjectionService }, { type: i2.StorageService }]; }, null); })();
225
230
 
226
231
  let ContextManagerToolComponent = class ContextManagerToolComponent {
227
232
  constructor(toolState, mapState) {
@@ -244,7 +249,7 @@ ContextManagerToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
244
249
  i0.ɵɵelementEnd();
245
250
  } if (rf & 2) {
246
251
  i0.ɵɵproperty("map", ctx.map);
247
- } }, directives: [i2.ContextListComponent, i2.ContextListBindingDirective], encapsulation: 2 });
252
+ } }, directives: [i1.ContextListComponent, i1.ContextListBindingDirective], encapsulation: 2 });
248
253
  ContextManagerToolComponent = __decorate([
249
254
  ToolComponent({
250
255
  name: 'contextManager',
@@ -267,7 +272,7 @@ let ContextPermissionManagerToolComponent = class ContextPermissionManagerToolCo
267
272
  ContextPermissionManagerToolComponent.ɵfac = function ContextPermissionManagerToolComponent_Factory(t) { return new (t || ContextPermissionManagerToolComponent)(); };
268
273
  ContextPermissionManagerToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContextPermissionManagerToolComponent, selectors: [["igo-context-permission-manager-tool"]], decls: 1, vars: 0, consts: [["igoContextPermissionsBinding", ""]], template: function ContextPermissionManagerToolComponent_Template(rf, ctx) { if (rf & 1) {
269
274
  i0.ɵɵelement(0, "igo-context-permissions", 0);
270
- } }, directives: [i2.ContextPermissionsComponent, i2.ContextPermissionsBindingDirective], encapsulation: 2 });
275
+ } }, directives: [i1.ContextPermissionsComponent, i1.ContextPermissionsBindingDirective], encapsulation: 2 });
271
276
  ContextPermissionManagerToolComponent = __decorate([
272
277
  ToolComponent({
273
278
  name: 'contextPermissionManager',
@@ -336,7 +341,7 @@ ContextShareToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: C
336
341
  i0.ɵɵelement(0, "igo-share-map", 0);
337
342
  } if (rf & 2) {
338
343
  i0.ɵɵproperty("map", ctx.map);
339
- } }, directives: [i2.ShareMapComponent], encapsulation: 2 });
344
+ } }, directives: [i1.ShareMapComponent], encapsulation: 2 });
340
345
  ContextShareToolComponent = __decorate([
341
346
  ToolComponent({
342
347
  name: 'shareMap',
@@ -489,14 +494,14 @@ let CatalogLibraryToolComponent = class CatalogLibraryToolComponent {
489
494
  });
490
495
  }
491
496
  };
492
- CatalogLibraryToolComponent.ɵfac = function CatalogLibraryToolComponent_Factory(t) { return new (t || CatalogLibraryToolComponent)(i0.ɵɵdirectiveInject(i1.CatalogService), i0.ɵɵdirectiveInject(CatalogState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(i2$2.StorageService)); };
497
+ CatalogLibraryToolComponent.ɵfac = function CatalogLibraryToolComponent_Factory(t) { return new (t || CatalogLibraryToolComponent)(i0.ɵɵdirectiveInject(i1$1.CatalogService), i0.ɵɵdirectiveInject(CatalogState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(i2.StorageService)); };
493
498
  CatalogLibraryToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogLibraryToolComponent, selectors: [["igo-catalog-library-tool"]], inputs: { addCatalogAllowed: "addCatalogAllowed", predefinedCatalogs: "predefinedCatalogs" }, decls: 1, vars: 3, consts: [[3, "predefinedCatalogs", "addCatalogAllowed", "store", "catalogSelectChange"]], template: function CatalogLibraryToolComponent_Template(rf, ctx) { if (rf & 1) {
494
499
  i0.ɵɵelementStart(0, "igo-catalog-library", 0);
495
500
  i0.ɵɵlistener("catalogSelectChange", function CatalogLibraryToolComponent_Template_igo_catalog_library_catalogSelectChange_0_listener($event) { return ctx.onCatalogSelectChange($event); });
496
501
  i0.ɵɵelementEnd();
497
502
  } if (rf & 2) {
498
503
  i0.ɵɵproperty("predefinedCatalogs", ctx.predefinedCatalogs)("addCatalogAllowed", ctx.addCatalogAllowed)("store", ctx.store);
499
- } }, directives: [i1.CatalogLibaryComponent], encapsulation: 2, changeDetection: 0 });
504
+ } }, directives: [i1$1.CatalogLibaryComponent], encapsulation: 2, changeDetection: 0 });
500
505
  CatalogLibraryToolComponent = __decorate([
501
506
  ToolComponent({
502
507
  name: 'catalog',
@@ -511,7 +516,7 @@ CatalogLibraryToolComponent = __decorate([
511
516
  templateUrl: './catalog-library-tool.component.html',
512
517
  changeDetection: ChangeDetectionStrategy.OnPush
513
518
  }]
514
- }], function () { return [{ type: i1.CatalogService }, { type: CatalogState }, { type: ToolState }, { type: i2$2.StorageService }]; }, { addCatalogAllowed: [{
519
+ }], function () { return [{ type: i1$1.CatalogService }, { type: CatalogState }, { type: ToolState }, { type: i2.StorageService }]; }, { addCatalogAllowed: [{
515
520
  type: Input
516
521
  }], predefinedCatalogs: [{
517
522
  type: Input
@@ -622,13 +627,13 @@ let CatalogBrowserToolComponent = class CatalogBrowserToolComponent {
622
627
  });
623
628
  }
624
629
  };
625
- CatalogBrowserToolComponent.ɵfac = function CatalogBrowserToolComponent_Factory(t) { return new (t || CatalogBrowserToolComponent)(i0.ɵɵdirectiveInject(i1.CatalogService), i0.ɵɵdirectiveInject(CatalogState), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2$1.AuthService)); };
630
+ CatalogBrowserToolComponent.ɵfac = function CatalogBrowserToolComponent_Factory(t) { return new (t || CatalogBrowserToolComponent)(i0.ɵɵdirectiveInject(i1$1.CatalogService), i0.ɵɵdirectiveInject(CatalogState), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2$1.AuthService)); };
626
631
  CatalogBrowserToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CatalogBrowserToolComponent, selectors: [["igo-catalog-browser-tool"]], inputs: { toggleCollapsedGroup: "toggleCollapsedGroup" }, decls: 2, vars: 3, consts: [[3, "catalog", "store", "map", "toggleCollapsedGroup", 4, "ngIf"], [3, "catalog", "store", "map", "toggleCollapsedGroup"]], template: function CatalogBrowserToolComponent_Template(rf, ctx) { if (rf & 1) {
627
632
  i0.ɵɵtemplate(0, CatalogBrowserToolComponent_igo_catalog_browser_0_Template, 1, 4, "igo-catalog-browser", 0);
628
633
  i0.ɵɵpipe(1, "async");
629
634
  } if (rf & 2) {
630
635
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.store$));
631
- } }, directives: [i4.NgIf, i1.CatalogBrowserComponent], pipes: [i4.AsyncPipe], encapsulation: 2, changeDetection: 0 });
636
+ } }, directives: [i5.NgIf, i1$1.CatalogBrowserComponent], pipes: [i5.AsyncPipe], encapsulation: 2, changeDetection: 0 });
632
637
  CatalogBrowserToolComponent = __decorate([
633
638
  ToolComponent({
634
639
  name: 'catalogBrowser',
@@ -644,7 +649,7 @@ CatalogBrowserToolComponent = __decorate([
644
649
  templateUrl: './catalog-browser-tool.component.html',
645
650
  changeDetection: ChangeDetectionStrategy.OnPush
646
651
  }]
647
- }], function () { return [{ type: i1.CatalogService }, { type: CatalogState }, { type: MapState }, { type: i2$1.AuthService }]; }, { toggleCollapsedGroup: [{
652
+ }], function () { return [{ type: i1$1.CatalogService }, { type: CatalogState }, { type: MapState }, { type: i2$1.AuthService }]; }, { toggleCollapsedGroup: [{
648
653
  type: Input
649
654
  }] }); })();
650
655
 
@@ -755,13 +760,96 @@ DirectionState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Direction
755
760
  }]
756
761
  }], function () { return [{ type: MapState }]; }, null); })();
757
762
 
763
+ /**
764
+ * Service that holds the state of the context module
765
+ */
766
+ class ContextState {
767
+ constructor(contextService, toolService, toolState, languageService) {
768
+ this.contextService = contextService;
769
+ this.toolService = toolService;
770
+ this.toolState = toolState;
771
+ this.languageService = languageService;
772
+ /**
773
+ * Observable of the active context
774
+ */
775
+ this.context$ = new BehaviorSubject(undefined);
776
+ this.contextService.context$.subscribe((context) => {
777
+ this.onContextChange(context);
778
+ });
779
+ this.contextService.toolsChanged$.subscribe((context) => {
780
+ this.updateTools(context);
781
+ });
782
+ }
783
+ /**
784
+ * Set the active context
785
+ * @param context Detailed context
786
+ */
787
+ setContext(context) {
788
+ this.updateTools(context);
789
+ this.context$.next(context);
790
+ }
791
+ /**
792
+ * Update the tool state with the context's tools
793
+ * @param context Detailed context
794
+ */
795
+ updateTools(context) {
796
+ const toolbox = this.toolState.toolbox;
797
+ const tools = [];
798
+ const contextTools = context.tools || [];
799
+ contextTools.forEach((contextTool) => {
800
+ const baseTool = this.toolService.getTool(contextTool.name);
801
+ if (baseTool === undefined) {
802
+ return;
803
+ }
804
+ const options = Object.assign({}, baseTool.options || {}, contextTool.options || {});
805
+ const tool = Object.assign({}, baseTool, contextTool, { options });
806
+ tools.push(tool);
807
+ });
808
+ tools.forEach((tool) => {
809
+ if (tool.parent) {
810
+ const parentIndex = tools.findIndex((el) => el.name === tool.parent);
811
+ if (parentIndex !== -1) {
812
+ tools[parentIndex].children = [];
813
+ tools[parentIndex].children.push(tool.name);
814
+ }
815
+ }
816
+ });
817
+ toolbox.setTools(tools);
818
+ toolbox.setToolbar(context.toolbar || []);
819
+ // TODO: This is a patch so the context service can work without
820
+ // injecting the ToolState or without being completely refactored
821
+ this.contextService.setTools([].concat(tools));
822
+ this.contextService.setToolbar(context.toolbar || []);
823
+ }
824
+ /**
825
+ * Set a new context and update the tool state
826
+ * @param context Detailed context
827
+ */
828
+ onContextChange(context) {
829
+ if (context === undefined) {
830
+ return;
831
+ }
832
+ this.setContext(context);
833
+ }
834
+ }
835
+ ContextState.ɵfac = function ContextState_Factory(t) { return new (t || ContextState)(i0.ɵɵinject(i1.ContextService), i0.ɵɵinject(i4.ToolService), i0.ɵɵinject(ToolState), i0.ɵɵinject(i2.LanguageService)); };
836
+ ContextState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ContextState, factory: ContextState.ɵfac, providedIn: 'root' });
837
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextState, [{
838
+ type: Injectable,
839
+ args: [{
840
+ providedIn: 'root'
841
+ }]
842
+ }], function () { return [{ type: i1.ContextService }, { type: i4.ToolService }, { type: ToolState }, { type: i2.LanguageService }]; }, null); })();
843
+
758
844
  let DirectionsToolComponent = class DirectionsToolComponent {
759
- constructor(directionState, mapState, languageService, messageService, storageService) {
845
+ constructor(directionState, mapState, languageService, messageService, storageService, contextState, authService) {
760
846
  this.directionState = directionState;
761
847
  this.mapState = mapState;
762
848
  this.languageService = languageService;
763
849
  this.messageService = messageService;
764
850
  this.storageService = storageService;
851
+ this.contextState = contextState;
852
+ this.authService = authService;
765
853
  }
766
854
  /**
767
855
  * stops
@@ -803,14 +891,19 @@ let DirectionsToolComponent = class DirectionsToolComponent {
803
891
  this.messageService.info(msg, title, { timeOut: 20000 });
804
892
  this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);
805
893
  }
894
+ this.contextState.context$.subscribe(c => {
895
+ if (!this.authService.authenticated) {
896
+ this.currentContextUri = c.uri;
897
+ }
898
+ });
806
899
  }
807
900
  };
808
- DirectionsToolComponent.ɵfac = function DirectionsToolComponent_Factory(t) { return new (t || DirectionsToolComponent)(i0.ɵɵdirectiveInject(DirectionState), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2$2.LanguageService), i0.ɵɵdirectiveInject(i2$2.MessageService), i0.ɵɵdirectiveInject(i2$2.StorageService)); };
809
- DirectionsToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DirectionsToolComponent, selectors: [["igo-directions-tool"]], decls: 1, vars: 6, consts: [[3, "debounceTime", "stopsStore", "stopsFeatureStore", "stepFeatureStore", "routesFeatureStore", "zoomToActiveRoute$"]], template: function DirectionsToolComponent_Template(rf, ctx) { if (rf & 1) {
901
+ DirectionsToolComponent.ɵfac = function DirectionsToolComponent_Factory(t) { return new (t || DirectionsToolComponent)(i0.ɵɵdirectiveInject(DirectionState), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i2.StorageService), i0.ɵɵdirectiveInject(ContextState), i0.ɵɵdirectiveInject(i2$1.AuthService)); };
902
+ DirectionsToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DirectionsToolComponent, selectors: [["igo-directions-tool"]], decls: 1, vars: 7, consts: [[3, "contextUri", "debounceTime", "stopsStore", "stopsFeatureStore", "stepFeatureStore", "routesFeatureStore", "zoomToActiveRoute$"]], template: function DirectionsToolComponent_Template(rf, ctx) { if (rf & 1) {
810
903
  i0.ɵɵelement(0, "igo-directions", 0);
811
904
  } if (rf & 2) {
812
- i0.ɵɵproperty("debounceTime", ctx.debounceTime)("stopsStore", ctx.stopsStore)("stopsFeatureStore", ctx.stopsFeatureStore)("stepFeatureStore", ctx.stepFeatureStore)("routesFeatureStore", ctx.routesFeatureStore)("zoomToActiveRoute$", ctx.zoomToActiveRoute$);
813
- } }, directives: [i1.DirectionsComponent], encapsulation: 2 });
905
+ i0.ɵɵproperty("contextUri", ctx.currentContextUri)("debounceTime", ctx.debounceTime)("stopsStore", ctx.stopsStore)("stopsFeatureStore", ctx.stopsFeatureStore)("stepFeatureStore", ctx.stepFeatureStore)("routesFeatureStore", ctx.routesFeatureStore)("zoomToActiveRoute$", ctx.zoomToActiveRoute$);
906
+ } }, directives: [i1$1.DirectionsComponent], encapsulation: 2 });
814
907
  DirectionsToolComponent = __decorate([
815
908
  ToolComponent({
816
909
  name: 'directions',
@@ -824,7 +917,7 @@ DirectionsToolComponent = __decorate([
824
917
  selector: 'igo-directions-tool',
825
918
  templateUrl: './directions-tool.component.html'
826
919
  }]
827
- }], function () { return [{ type: DirectionState }, { type: MapState }, { type: i2$2.LanguageService }, { type: i2$2.MessageService }, { type: i2$2.StorageService }]; }, null); })();
920
+ }], function () { return [{ type: DirectionState }, { type: MapState }, { type: i2.LanguageService }, { type: i2.MessageService }, { type: i2.StorageService }, { type: ContextState }, { type: i2$1.AuthService }]; }, null); })();
828
921
 
829
922
  class IgoAppDirectionsModule {
830
923
  static forRoot() {
@@ -900,7 +993,7 @@ DrawingToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Drawin
900
993
  i0.ɵɵelement(0, "igo-draw", 0);
901
994
  } if (rf & 2) {
902
995
  i0.ɵɵproperty("store", ctx.store)("map", ctx.map);
903
- } }, directives: [i1.DrawComponent], encapsulation: 2, changeDetection: 0 });
996
+ } }, directives: [i1$1.DrawComponent], encapsulation: 2, changeDetection: 0 });
904
997
  DrawingToolComponent = __decorate([
905
998
  ToolComponent({
906
999
  name: 'draw',
@@ -951,14 +1044,14 @@ class StorageState {
951
1044
  return this.igoStorageService;
952
1045
  }
953
1046
  }
954
- StorageState.ɵfac = function StorageState_Factory(t) { return new (t || StorageState)(i0.ɵɵinject(i2$2.StorageService)); };
1047
+ StorageState.ɵfac = function StorageState_Factory(t) { return new (t || StorageState)(i0.ɵɵinject(i2.StorageService)); };
955
1048
  StorageState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StorageState, factory: StorageState.ɵfac, providedIn: 'root' });
956
1049
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StorageState, [{
957
1050
  type: Injectable,
958
1051
  args: [{
959
1052
  providedIn: 'root'
960
1053
  }]
961
- }], function () { return [{ type: i2$2.StorageService }]; }, null); })();
1054
+ }], function () { return [{ type: i2.StorageService }]; }, null); })();
962
1055
 
963
1056
  class FeatureActionsService {
964
1057
  constructor(storageState, languageService, toolState, mediaService) {
@@ -1084,14 +1177,14 @@ class FeatureActionsService {
1084
1177
  ];
1085
1178
  }
1086
1179
  }
1087
- FeatureActionsService.ɵfac = function FeatureActionsService_Factory(t) { return new (t || FeatureActionsService)(i0.ɵɵinject(StorageState), i0.ɵɵinject(i2$2.LanguageService), i0.ɵɵinject(ToolState), i0.ɵɵinject(i2$2.MediaService)); };
1180
+ FeatureActionsService.ɵfac = function FeatureActionsService_Factory(t) { return new (t || FeatureActionsService)(i0.ɵɵinject(StorageState), i0.ɵɵinject(i2.LanguageService), i0.ɵɵinject(ToolState), i0.ɵɵinject(i2.MediaService)); };
1088
1181
  FeatureActionsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureActionsService, factory: FeatureActionsService.ɵfac, providedIn: 'root' });
1089
1182
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureActionsService, [{
1090
1183
  type: Injectable,
1091
1184
  args: [{
1092
1185
  providedIn: 'root'
1093
1186
  }]
1094
- }], function () { return [{ type: StorageState }, { type: i2$2.LanguageService }, { type: ToolState }, { type: i2$2.MediaService }]; }, null); })();
1187
+ }], function () { return [{ type: StorageState }, { type: i2.LanguageService }, { type: ToolState }, { type: i2.MediaService }]; }, null); })();
1095
1188
 
1096
1189
  class WfsActionsService {
1097
1190
  constructor(ogcFilterWidget, storageState, languageService, mediaService, toolState) {
@@ -1124,7 +1217,7 @@ class WfsActionsService {
1124
1217
  var _a, _b;
1125
1218
  this.zoomAuto$.next(this.zoomAuto);
1126
1219
  this.storageChange$$ = this.storageService.storageChange$
1127
- .pipe(skipWhile((storageChange) => storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED))
1220
+ .pipe(skipWhile((storageChange) => (storageChange === null || storageChange === void 0 ? void 0 : storageChange.key) !== 'zoomAuto' || (storageChange === null || storageChange === void 0 ? void 0 : storageChange.event) === StorageServiceEventEnum.CLEARED))
1128
1221
  .subscribe(() => {
1129
1222
  this.zoomAuto$.next(this.zoomAuto);
1130
1223
  handleZoomAuto(workspace, this.storageService);
@@ -1228,25 +1321,171 @@ class WfsActionsService {
1228
1321
  actions : actions.filter(action => action.id !== 'ogcFilter');
1229
1322
  }
1230
1323
  }
1231
- WfsActionsService.ɵfac = function WfsActionsService_Factory(t) { return new (t || WfsActionsService)(i0.ɵɵinject(OgcFilterWidget), i0.ɵɵinject(StorageState), i0.ɵɵinject(i2$2.LanguageService), i0.ɵɵinject(i2$2.MediaService), i0.ɵɵinject(ToolState)); };
1324
+ WfsActionsService.ɵfac = function WfsActionsService_Factory(t) { return new (t || WfsActionsService)(i0.ɵɵinject(OgcFilterWidget), i0.ɵɵinject(StorageState), i0.ɵɵinject(i2.LanguageService), i0.ɵɵinject(i2.MediaService), i0.ɵɵinject(ToolState)); };
1232
1325
  WfsActionsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WfsActionsService, factory: WfsActionsService.ɵfac, providedIn: 'root' });
1233
1326
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WfsActionsService, [{
1234
1327
  type: Injectable,
1235
1328
  args: [{
1236
1329
  providedIn: 'root'
1237
1330
  }]
1238
- }], function () { return [{ type: i7.Widget, decorators: [{
1331
+ }], function () { return [{ type: i4.Widget, decorators: [{
1332
+ type: Inject,
1333
+ args: [OgcFilterWidget]
1334
+ }] }, { type: StorageState }, { type: i2.LanguageService }, { type: i2.MediaService }, { type: ToolState }]; }, null); })();
1335
+
1336
+ class EditionActionsService {
1337
+ constructor(ogcFilterWidget, storageState, languageService, mediaService, toolState) {
1338
+ this.ogcFilterWidget = ogcFilterWidget;
1339
+ this.storageState = storageState;
1340
+ this.languageService = languageService;
1341
+ this.mediaService = mediaService;
1342
+ this.toolState = toolState;
1343
+ this.maximize$ = new BehaviorSubject(this.storageService.get('workspaceMaximize'));
1344
+ this.zoomAuto$ = new BehaviorSubject(false);
1345
+ }
1346
+ get storageService() {
1347
+ return this.storageState.storageService;
1348
+ }
1349
+ get zoomAuto() {
1350
+ return this.storageService.get('zoomAuto');
1351
+ }
1352
+ ngOnDestroy() {
1353
+ if (this.storageChange$$) {
1354
+ this.storageChange$$.unsubscribe();
1355
+ }
1356
+ }
1357
+ loadActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$) {
1358
+ const actions = this.buildActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$);
1359
+ workspace.actionStore.load(actions);
1360
+ }
1361
+ buildActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$) {
1362
+ var _a, _b;
1363
+ this.zoomAuto$.next(this.zoomAuto);
1364
+ this.storageChange$$ = this.storageService.storageChange$
1365
+ .pipe(skipWhile((storageChange) => (storageChange === null || storageChange === void 0 ? void 0 : storageChange.key) !== 'zoomAuto' || (storageChange === null || storageChange === void 0 ? void 0 : storageChange.event) === StorageServiceEventEnum.CLEARED))
1366
+ .subscribe(() => {
1367
+ this.zoomAuto$.next(this.zoomAuto);
1368
+ handleZoomAuto(workspace, this.storageService);
1369
+ });
1370
+ const actions = [
1371
+ {
1372
+ id: 'zoomAuto',
1373
+ checkbox: true,
1374
+ title: 'igo.integration.workspace.zoomAuto.title',
1375
+ tooltip: 'igo.integration.workspace.zoomAuto.tooltip',
1376
+ checkCondition: this.zoomAuto$,
1377
+ handler: () => {
1378
+ handleZoomAuto(workspace, this.storageService);
1379
+ this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto'));
1380
+ }
1381
+ },
1382
+ {
1383
+ id: 'filterInMapExtent',
1384
+ checkbox: true,
1385
+ title: 'igo.integration.workspace.inMapExtent.title',
1386
+ tooltip: mapExtentStrategyActiveToolTip(workspace),
1387
+ checkCondition: rowsInMapExtentCheckCondition$,
1388
+ handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)
1389
+ },
1390
+ {
1391
+ id: 'selectedOnly',
1392
+ checkbox: true,
1393
+ title: 'igo.integration.workspace.selected.title',
1394
+ tooltip: 'igo.integration.workspace.selected.title',
1395
+ checkCondition: selectOnlyCheckCondition$,
1396
+ handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)
1397
+ },
1398
+ {
1399
+ id: 'clearselection',
1400
+ icon: 'select-off',
1401
+ title: 'igo.integration.workspace.clearSelection.title',
1402
+ tooltip: 'igo.integration.workspace.clearSelection.tooltip',
1403
+ handler: (ws) => {
1404
+ ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });
1405
+ },
1406
+ args: [workspace],
1407
+ availability: (ws) => noElementSelected(ws)
1408
+ },
1409
+ {
1410
+ id: 'wfsDownload',
1411
+ icon: 'file-export',
1412
+ title: 'igo.integration.workspace.download.title',
1413
+ tooltip: 'igo.integration.workspace.download.tooltip',
1414
+ handler: (ws) => {
1415
+ const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
1416
+ const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);
1417
+ const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];
1418
+ this.toolState.toolToActivateFromOptions({
1419
+ tool: 'importExport',
1420
+ options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection }
1421
+ });
1422
+ },
1423
+ args: [workspace]
1424
+ },
1425
+ {
1426
+ id: 'ogcFilter',
1427
+ icon: 'filter',
1428
+ title: 'igo.integration.workspace.ogcFilter.title',
1429
+ tooltip: 'igo.integration.workspace.ogcFilter.tooltip',
1430
+ handler: (widget, ws) => {
1431
+ ws.activateWidget(widget, {
1432
+ map: ws.map,
1433
+ layer: ws.layer
1434
+ });
1435
+ },
1436
+ args: [this.ogcFilterWidget, workspace]
1437
+ },
1438
+ {
1439
+ id: 'maximize',
1440
+ title: this.languageService.translate.instant('igo.integration.workspace.maximize'),
1441
+ tooltip: this.languageService.translate.instant('igo.integration.workspace.maximizeTooltip'),
1442
+ icon: 'resize',
1443
+ display: () => {
1444
+ return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));
1445
+ },
1446
+ handler: () => {
1447
+ if (!this.mediaService.isMobile()) {
1448
+ this.maximize$.next(true);
1449
+ }
1450
+ },
1451
+ },
1452
+ {
1453
+ id: 'standardExtent',
1454
+ title: this.languageService.translate.instant('igo.integration.workspace.standardExtent'),
1455
+ tooltip: this.languageService.translate.instant('igo.integration.workspace.standardExtentTooltip'),
1456
+ icon: 'resize',
1457
+ display: () => {
1458
+ return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));
1459
+ },
1460
+ handler: () => {
1461
+ this.maximize$.next(false);
1462
+ }
1463
+ }
1464
+ ];
1465
+ return ((_b = (_a = workspace.layer.dataSource.ogcFilters$) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.enabled) ?
1466
+ actions : actions.filter(action => action.id !== 'ogcFilter');
1467
+ }
1468
+ }
1469
+ EditionActionsService.ɵfac = function EditionActionsService_Factory(t) { return new (t || EditionActionsService)(i0.ɵɵinject(OgcFilterWidget), i0.ɵɵinject(StorageState), i0.ɵɵinject(i2.LanguageService), i0.ɵɵinject(i2.MediaService), i0.ɵɵinject(ToolState)); };
1470
+ EditionActionsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EditionActionsService, factory: EditionActionsService.ɵfac, providedIn: 'root' });
1471
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditionActionsService, [{
1472
+ type: Injectable,
1473
+ args: [{
1474
+ providedIn: 'root'
1475
+ }]
1476
+ }], function () { return [{ type: i4.Widget, decorators: [{
1239
1477
  type: Inject,
1240
1478
  args: [OgcFilterWidget]
1241
- }] }, { type: StorageState }, { type: i2$2.LanguageService }, { type: i2$2.MediaService }, { type: ToolState }]; }, null); })();
1479
+ }] }, { type: StorageState }, { type: i2.LanguageService }, { type: i2.MediaService }, { type: ToolState }]; }, null); })();
1242
1480
 
1243
1481
  /**
1244
1482
  * Service that holds the state of the workspace module
1245
1483
  */
1246
1484
  class WorkspaceState {
1247
- constructor(featureActionsService, wfsActionsService, storageService) {
1485
+ constructor(featureActionsService, wfsActionsService, editionActionsService, storageService) {
1248
1486
  this.featureActionsService = featureActionsService;
1249
1487
  this.wfsActionsService = wfsActionsService;
1488
+ this.editionActionsService = editionActionsService;
1250
1489
  this.storageService = storageService;
1251
1490
  this.workspacePanelExpanded = false;
1252
1491
  this.workspaceEnabled$ = new BehaviorSubject(false);
@@ -1266,6 +1505,24 @@ class WorkspaceState {
1266
1505
  * Store that holds all the available workspaces
1267
1506
  */
1268
1507
  get store() { return this._store; }
1508
+ get workspaceSelection() {
1509
+ var _a;
1510
+ if (this.workspace$.value) {
1511
+ return (_a = this.workspace$.value) === null || _a === void 0 ? void 0 : _a.entityStore.stateView.manyBy((r) => r.state.selected === true);
1512
+ }
1513
+ else {
1514
+ return [];
1515
+ }
1516
+ }
1517
+ get workspaceSelection$() {
1518
+ var _a, _b;
1519
+ if (this.workspace$.value) {
1520
+ return (_b = (_a = this.workspace$.value) === null || _a === void 0 ? void 0 : _a.entityStore) === null || _b === void 0 ? void 0 : _b.stateView.manyBy$((r) => r.state.selected === true);
1521
+ }
1522
+ else {
1523
+ return of([]);
1524
+ }
1525
+ }
1269
1526
  /**
1270
1527
  * Initialize the workspace store. Each time a workspace is activated,
1271
1528
  * subscribe to it's active widget. Tracking the active widget is useful
@@ -1289,6 +1546,9 @@ class WorkspaceState {
1289
1546
  else if (wks.entity instanceof FeatureWorkspace) {
1290
1547
  this.featureActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
1291
1548
  }
1549
+ else if (wks.entity instanceof EditionWorkspace) {
1550
+ this.editionActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
1551
+ }
1292
1552
  }
1293
1553
  });
1294
1554
  });
@@ -1298,6 +1558,9 @@ class WorkspaceState {
1298
1558
  this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {
1299
1559
  this.setWorkspaceIsMaximized(maximized);
1300
1560
  }));
1561
+ this.actionMaximize$$.push(this.editionActionsService.maximize$.subscribe(maximized => {
1562
+ this.setWorkspaceIsMaximized(maximized);
1563
+ }));
1301
1564
  this.activeWorkspace$$ = this.workspace$
1302
1565
  .subscribe((workspace) => {
1303
1566
  if (this.activeWorkspaceWidget$$ !== undefined) {
@@ -1352,6 +1615,14 @@ class WorkspaceState {
1352
1615
  this.store.activateWorkspace(wksFromId);
1353
1616
  }
1354
1617
  }
1618
+ setActiveWorkspaceByTitle(title) {
1619
+ const wksFromTitle = this.store
1620
+ .all()
1621
+ .find(workspace => workspace.title === title);
1622
+ if (wksFromTitle) {
1623
+ this.store.activateWorkspace(wksFromTitle);
1624
+ }
1625
+ }
1355
1626
  /**
1356
1627
  * Teardown all the workspaces
1357
1628
  * @internal
@@ -1379,14 +1650,14 @@ class WorkspaceState {
1379
1650
  }
1380
1651
  }
1381
1652
  }
1382
- WorkspaceState.ɵfac = function WorkspaceState_Factory(t) { return new (t || WorkspaceState)(i0.ɵɵinject(FeatureActionsService), i0.ɵɵinject(WfsActionsService), i0.ɵɵinject(i2$2.StorageService)); };
1653
+ WorkspaceState.ɵfac = function WorkspaceState_Factory(t) { return new (t || WorkspaceState)(i0.ɵɵinject(FeatureActionsService), i0.ɵɵinject(WfsActionsService), i0.ɵɵinject(EditionActionsService), i0.ɵɵinject(i2.StorageService)); };
1383
1654
  WorkspaceState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WorkspaceState, factory: WorkspaceState.ɵfac, providedIn: 'root' });
1384
1655
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkspaceState, [{
1385
1656
  type: Injectable,
1386
1657
  args: [{
1387
1658
  providedIn: 'root'
1388
1659
  }]
1389
- }], function () { return [{ type: FeatureActionsService }, { type: WfsActionsService }, { type: i2$2.StorageService }]; }, null); })();
1660
+ }], function () { return [{ type: FeatureActionsService }, { type: WfsActionsService }, { type: EditionActionsService }, { type: i2.StorageService }]; }, null); })();
1390
1661
 
1391
1662
  function WorkspaceButtonComponent_button_0_Template(rf, ctx) { if (rf & 1) {
1392
1663
  const _r2 = i0.ɵɵgetCurrentView();
@@ -1438,7 +1709,7 @@ WorkspaceButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Wo
1438
1709
  i0.ɵɵpipe(1, "async");
1439
1710
  } if (rf & 2) {
1440
1711
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.hasWorkspace$));
1441
- } }, directives: [i4.NgIf, i3.MatButton, i4$1.MatTooltip, i6.MatIcon], pipes: [i4.AsyncPipe, i8.TranslatePipe], styles: [""], changeDetection: 0 });
1712
+ } }, directives: [i5.NgIf, i3.MatButton, i4$1.MatTooltip, i6.MatIcon], pipes: [i5.AsyncPipe, i8.TranslatePipe], styles: [""], changeDetection: 0 });
1442
1713
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkspaceButtonComponent, [{
1443
1714
  type: Component,
1444
1715
  args: [{
@@ -1589,7 +1860,7 @@ ImportExportToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: I
1589
1860
  i0.ɵɵproperty("ngIf", !ctx.importExportShowBothType && ctx.importExportType === "layer");
1590
1861
  i0.ɵɵadvance(1);
1591
1862
  i0.ɵɵproperty("ngIf", !ctx.importExportShowBothType && ctx.importExportType === "context");
1592
- } }, directives: [i4.NgIf, i5.MatTabGroup, i5.MatTab, i1.ImportExportComponent, i2.ContextImportExportComponent], pipes: [i8.TranslatePipe, i4.AsyncPipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}"], changeDetection: 0 });
1863
+ } }, directives: [i5.NgIf, i5$1.MatTabGroup, i5$1.MatTab, i1$1.ImportExportComponent, i1.ContextImportExportComponent], pipes: [i8.TranslatePipe, i5.AsyncPipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}"], changeDetection: 0 });
1593
1864
  ImportExportToolComponent = __decorate([
1594
1865
  ToolComponent({
1595
1866
  name: 'importExport',
@@ -1871,7 +2142,7 @@ let MapDetailsToolComponent = class MapDetailsToolComponent {
1871
2142
  this.toolState.toolbox.activateTool('importExport');
1872
2143
  }
1873
2144
  };
1874
- MapDetailsToolComponent.ɵfac = function MapDetailsToolComponent_Factory(t) { return new (t || MapDetailsToolComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(i1.SearchSourceService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ImportExportState)); };
2145
+ MapDetailsToolComponent.ɵfac = function MapDetailsToolComponent_Factory(t) { return new (t || MapDetailsToolComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(i1$1.SearchSourceService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ImportExportState)); };
1875
2146
  MapDetailsToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapDetailsToolComponent, selectors: [["igo-map-details-tool"]], inputs: { toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendOfVisibleLayers: "expandLegendOfVisibleLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", ogcButton: "ogcButton", timeButton: "timeButton", layerListControls: "layerListControls", queryBadge: "queryBadge", layerAdditionAllowed: "layerAdditionAllowed" }, decls: 4, vars: 4, consts: [["class", "mapDetailsList", "igoLayerListBinding", "", "floatLabel", "never", 3, "map", "excludeBaseLayers", "layerFilterAndSortOptions", "expandLegendOfVisibleLayers", "toggleLegendOnVisibilityChange", "updateLegendOnResolutionChange", "queryBadge", 4, "ngIf", "ngIfElse"], ["empty", ""], ["igoLayerListBinding", "", "floatLabel", "never", 1, "mapDetailsList", 3, "map", "excludeBaseLayers", "layerFilterAndSortOptions", "expandLegendOfVisibleLayers", "toggleLegendOnVisibilityChange", "updateLegendOnResolutionChange", "queryBadge"], ["igoLayerItemToolbar", ""], [3, "layer"], [3, "layer", "click"], [3, "header", "layer"], [3, "trackFeature", "layer"], [4, "ngIf"], [1, "map-empty", "mat-typography"], ["class", "map-empty mat-typography", 4, "ngIf"], ["mat-list-icon", ""], ["viewBox", "0 0 24 24", "fit", "", "height", "100%", "width", "100%", "preserveAspectRatio", "xMidYMid meet", "focusable", "false"], ["d", "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"], ["matLine", "", 1, "search-tool", "mat-typography", 3, "click"], ["d", "M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z"], ["matLine", "", 1, "catalog-tool", "mat-typography", 3, "click"], ["d", "M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"], ["matLine", "", 1, "context-tool", "mat-typography", 3, "click"]], template: function MapDetailsToolComponent_Template(rf, ctx) { if (rf & 1) {
1876
2147
  i0.ɵɵtemplate(0, MapDetailsToolComponent_igo_layer_list_0_Template, 3, 7, "igo-layer-list", 0);
1877
2148
  i0.ɵɵpipe(1, "async");
@@ -1879,7 +2150,7 @@ MapDetailsToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Map
1879
2150
  } if (rf & 2) {
1880
2151
  const _r1 = i0.ɵɵreference(3);
1881
2152
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 2, ctx.layers$).length)("ngIfElse", _r1);
1882
- } }, directives: [i4.NgIf, i1.LayerListComponent, i1.LayerListBindingDirective, WorkspaceButtonComponent, i1.ExportButtonComponent, i1.OgcFilterButtonComponent, i1.TimeFilterButtonComponent, i1.TrackFeatureButtonComponent, i1.MetadataButtonComponent, i7$1.MatList, i7$1.MatListItem, i6.MatIcon, i7$1.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i4.AsyncPipe, i8.TranslatePipe], styles: [".map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:10px}.map-empty[_ngcontent-%COMP%]{text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:5px}.mapDetailsList[_ngcontent-%COMP%]{overflow:hidden}"] });
2153
+ } }, directives: [i5.NgIf, i1$1.LayerListComponent, i1$1.LayerListBindingDirective, WorkspaceButtonComponent, i1$1.ExportButtonComponent, i1$1.OgcFilterButtonComponent, i1$1.TimeFilterButtonComponent, i1$1.TrackFeatureButtonComponent, i1$1.MetadataButtonComponent, i7.MatList, i7.MatListItem, i6.MatIcon, i7.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i5.AsyncPipe, i8.TranslatePipe], styles: [".map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:10px}.map-empty[_ngcontent-%COMP%]{text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:5px}.mapDetailsList[_ngcontent-%COMP%]{overflow:hidden}"] });
1883
2154
  MapDetailsToolComponent = __decorate([
1884
2155
  ToolComponent({
1885
2156
  name: 'mapDetails',
@@ -1894,7 +2165,7 @@ MapDetailsToolComponent = __decorate([
1894
2165
  templateUrl: './map-details-tool.component.html',
1895
2166
  styleUrls: ['./map-details-tool.component.scss']
1896
2167
  }]
1897
- }], function () { return [{ type: MapState }, { type: ToolState }, { type: i1.SearchSourceService }, { type: i0.ChangeDetectorRef }, { type: ImportExportState }]; }, { toggleLegendOnVisibilityChange: [{
2168
+ }], function () { return [{ type: MapState }, { type: ToolState }, { type: i1$1.SearchSourceService }, { type: i0.ChangeDetectorRef }, { type: ImportExportState }]; }, { toggleLegendOnVisibilityChange: [{
1898
2169
  type: Input
1899
2170
  }], expandLegendOfVisibleLayers: [{
1900
2171
  type: Input
@@ -2007,7 +2278,7 @@ MapToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapToolCom
2007
2278
  i0.ɵɵproperty("map", ctx.map)("excludeBaseLayers", ctx.excludeBaseLayers)("layerFilterAndSortOptions", ctx.layerFilterAndSortOptions)("expandLegendOfVisibleLayers", ctx.expandLegendOfVisibleLayers)("toggleLegendOnVisibilityChange", ctx.toggleLegendOnVisibilityChange)("updateLegendOnResolutionChange", ctx.updateLegendOnResolutionChange)("floatLabel", false)("queryBadge", ctx.queryBadge);
2008
2279
  i0.ɵɵadvance(3);
2009
2280
  i0.ɵɵproperty("label", i0.ɵɵpipeBind1(7, 12, "igo.integration.tools.contexts"));
2010
- } }, directives: [i5.MatTabGroup, i5.MatTab, i1.LayerListComponent, i1.LayerListBindingDirective, i2.ContextListComponent, i2.ContextListBindingDirective, WorkspaceButtonComponent, i1.ExportButtonComponent, i1.OgcFilterButtonComponent, i1.TimeFilterButtonComponent, i1.TrackFeatureButtonComponent, i1.MetadataButtonComponent], pipes: [i8.TranslatePipe], styles: ["mat-tab-group[_ngcontent-%COMP%], mat-tab-group[_ngcontent-%COMP%] .mat-tab-body-wrapper{height:100%;overflow:hidden}[_nghost-%COMP%] .mat-tab-body-content{overflow:hidden}"], changeDetection: 0 });
2281
+ } }, directives: [i5$1.MatTabGroup, i5$1.MatTab, i1$1.LayerListComponent, i1$1.LayerListBindingDirective, i1.ContextListComponent, i1.ContextListBindingDirective, WorkspaceButtonComponent, i1$1.ExportButtonComponent, i1$1.OgcFilterButtonComponent, i1$1.TimeFilterButtonComponent, i1$1.TrackFeatureButtonComponent, i1$1.MetadataButtonComponent], pipes: [i8.TranslatePipe], styles: ["mat-tab-group[_ngcontent-%COMP%], mat-tab-group[_ngcontent-%COMP%] .mat-tab-body-wrapper{height:100%;overflow:hidden}[_nghost-%COMP%] .mat-tab-body-content{overflow:hidden}"], changeDetection: 0 });
2011
2282
  MapToolComponent = __decorate([
2012
2283
  ToolComponent({
2013
2284
  name: 'map',
@@ -2039,7 +2310,7 @@ MapToolComponent = __decorate([
2039
2310
  type: Input
2040
2311
  }] }); })();
2041
2312
 
2042
- const _c0$1 = ["tabGroup"];
2313
+ const _c0$2 = ["tabGroup"];
2043
2314
  function MapToolsComponent_igo_layer_list_5_ng_template_1_igo_time_filter_button_2_Template(rf, ctx) { if (rf & 1) {
2044
2315
  const _r14 = i0.ɵɵgetCurrentView();
2045
2316
  i0.ɵɵelementStart(0, "igo-time-filter-button", 14);
@@ -2418,7 +2689,7 @@ let MapToolsComponent = class MapToolsComponent {
2418
2689
  const options = layer.dataSource.options;
2419
2690
  return this.ogcButton && options.ogcFilters && options.ogcFilters.enabled &&
2420
2691
  (options.ogcFilters.pushButtons || options.ogcFilters.checkboxes || options.ogcFilters.radioButtons
2421
- || options.ogcFilters.select || options.ogcFilters.editable);
2692
+ || options.ogcFilters.select || options.ogcFilters.autocomplete || options.ogcFilters.editable);
2422
2693
  }
2423
2694
  isExportButton(layer) {
2424
2695
  var _a, _b;
@@ -2430,9 +2701,9 @@ let MapToolsComponent = class MapToolsComponent {
2430
2701
  return false;
2431
2702
  }
2432
2703
  };
2433
- MapToolsComponent.ɵfac = function MapToolsComponent_Factory(t) { return new (t || MapToolsComponent)(i0.ɵɵdirectiveInject(LayerListToolState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i1.SearchSourceService), i0.ɵɵdirectiveInject(ImportExportState)); };
2704
+ MapToolsComponent.ɵfac = function MapToolsComponent_Factory(t) { return new (t || MapToolsComponent)(i0.ɵɵdirectiveInject(LayerListToolState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i1$1.SearchSourceService), i0.ɵɵdirectiveInject(ImportExportState)); };
2434
2705
  MapToolsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapToolsComponent, selectors: [["igo-map-tools"]], viewQuery: function MapToolsComponent_Query(rf, ctx) { if (rf & 1) {
2435
- i0.ɵɵviewQuery(_c0$1, 7);
2706
+ i0.ɵɵviewQuery(_c0$2, 7);
2436
2707
  } if (rf & 2) {
2437
2708
  let _t;
2438
2709
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabGroup = _t.first);
@@ -2471,7 +2742,7 @@ MapToolsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapToolsC
2471
2742
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(11, 17, ctx.layers$).length !== 0)("ngIfElse", _r5);
2472
2743
  i0.ɵɵadvance(2);
2473
2744
  i0.ɵɵproperty("ngIf", !ctx.allowShowAllLegends && i0.ɵɵpipeBind1(13, 19, ctx.layers$).length !== 0 && i0.ɵɵpipeBind1(14, 21, ctx.visibleOrInRangeLayers$).length === 0);
2474
- } }, directives: [i5.MatTabGroup, i5.MatTab, i4.NgIf, i1.LayerListComponent, i1.LayerListBindingDirective, i1.MetadataButtonComponent, i1.TrackFeatureButtonComponent, WorkspaceButtonComponent, i1.TimeFilterButtonComponent, i1.OgcFilterButtonComponent, i1.ExportButtonComponent, i1.LayerLegendListComponent, i1.LayerLegendListBindingDirective, i7$1.MatList, i7$1.MatListItem, i6.MatIcon, i7$1.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i4.AsyncPipe, i8.TranslatePipe], styles: [".map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:10px}.map-empty[_ngcontent-%COMP%]{text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:5px}mat-tab-group[_ngcontent-%COMP%], mat-tab-group[_ngcontent-%COMP%] .mat-tab-body-wrapper{height:100%;overflow:hidden}[_nghost-%COMP%] .mat-tab-body-content{overflow:hidden}"], changeDetection: 0 });
2745
+ } }, directives: [i5$1.MatTabGroup, i5$1.MatTab, i5.NgIf, i1$1.LayerListComponent, i1$1.LayerListBindingDirective, i1$1.MetadataButtonComponent, i1$1.TrackFeatureButtonComponent, WorkspaceButtonComponent, i1$1.TimeFilterButtonComponent, i1$1.OgcFilterButtonComponent, i1$1.ExportButtonComponent, i1$1.LayerLegendListComponent, i1$1.LayerLegendListBindingDirective, i7.MatList, i7.MatListItem, i6.MatIcon, i7.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i5.AsyncPipe, i8.TranslatePipe], styles: [".map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:10px}.map-empty[_ngcontent-%COMP%]{text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:5px}mat-tab-group[_ngcontent-%COMP%], mat-tab-group[_ngcontent-%COMP%] .mat-tab-body-wrapper{height:100%;overflow:hidden}[_nghost-%COMP%] .mat-tab-body-content{overflow:hidden}"], changeDetection: 0 });
2475
2746
  MapToolsComponent = __decorate([
2476
2747
  ToolComponent({
2477
2748
  name: 'mapTools',
@@ -2487,7 +2758,7 @@ MapToolsComponent = __decorate([
2487
2758
  styleUrls: ['./map-tools.component.scss'],
2488
2759
  changeDetection: ChangeDetectionStrategy.OnPush
2489
2760
  }]
2490
- }], function () { return [{ type: LayerListToolState }, { type: ToolState }, { type: MapState }, { type: i1.SearchSourceService }, { type: ImportExportState }]; }, { allowShowAllLegends: [{
2761
+ }], function () { return [{ type: LayerListToolState }, { type: ToolState }, { type: MapState }, { type: i1$1.SearchSourceService }, { type: ImportExportState }]; }, { allowShowAllLegends: [{
2491
2762
  type: Input
2492
2763
  }], showAllLegendsValue: [{
2493
2764
  type: Input
@@ -2744,7 +3015,7 @@ let MapLegendToolComponent = class MapLegendToolComponent {
2744
3015
  this.toolState.toolbox.activateTool('contextManager');
2745
3016
  }
2746
3017
  };
2747
- MapLegendToolComponent.ɵfac = function MapLegendToolComponent_Factory(t) { return new (t || MapLegendToolComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(i1.SearchSourceService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
3018
+ MapLegendToolComponent.ɵfac = function MapLegendToolComponent_Factory(t) { return new (t || MapLegendToolComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(i1$1.SearchSourceService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
2748
3019
  MapLegendToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapLegendToolComponent, selectors: [["igo-map-legend-tool"]], inputs: { updateLegendOnResolutionChange: "updateLegendOnResolutionChange", layerAdditionAllowed: "layerAdditionAllowed", allowShowAllLegends: "allowShowAllLegends", showAllLegendsValue: "showAllLegendsValue", layerListControls: "layerListControls" }, decls: 8, vars: 10, consts: [["igoLayerLegendListBinding", "", 3, "excludeBaseLayers", "allowShowAllLegends", "updateLegendOnResolutionChange", "showAllLegendsValue", "allLegendsShown", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["class", "map-empty mat-typography", 4, "ngIf"], ["emptyLayers", ""], ["igoLayerLegendListBinding", "", 3, "excludeBaseLayers", "allowShowAllLegends", "updateLegendOnResolutionChange", "showAllLegendsValue", "allLegendsShown"], [1, "map-empty", "mat-typography"], [4, "ngIf"], ["mat-list-icon", ""], ["viewBox", "0 0 24 24", "fit", "", "height", "100%", "width", "100%", "preserveAspectRatio", "xMidYMid meet", "focusable", "false"], ["d", "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"], ["matLine", "", 1, "search-tool", "mat-typography", 3, "click"], ["d", "M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z"], ["matLine", "", 1, "catalog-tool", "mat-typography", 3, "click"], ["d", "M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"], ["matLine", "", 1, "context-tool", "mat-typography", 3, "click"]], template: function MapLegendToolComponent_Template(rf, ctx) { if (rf & 1) {
2749
3020
  i0.ɵɵtemplate(0, MapLegendToolComponent_igo_layer_legend_list_0_Template, 2, 6, "igo-layer-legend-list", 0);
2750
3021
  i0.ɵɵtemplate(1, MapLegendToolComponent_1_Template, 1, 0, undefined, 1);
@@ -2760,7 +3031,7 @@ MapLegendToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapL
2760
3031
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(2, 4, ctx.layers$).length !== 0)("ngIfElse", _r3);
2761
3032
  i0.ɵɵadvance(2);
2762
3033
  i0.ɵɵproperty("ngIf", !ctx.allowShowAllLegends && i0.ɵɵpipeBind1(4, 6, ctx.layers$).length !== 0 && i0.ɵɵpipeBind1(5, 8, ctx.visibleOrInRangeLayers$).length === 0);
2763
- } }, directives: [i4.NgIf, i1.LayerLegendListComponent, i1.LayerLegendListBindingDirective, i7$1.MatList, i7$1.MatListItem, i6.MatIcon, i7$1.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i4.AsyncPipe, i8.TranslatePipe], styles: [".map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:10px}.map-empty[_ngcontent-%COMP%]{text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:5px}"] });
3034
+ } }, directives: [i5.NgIf, i1$1.LayerLegendListComponent, i1$1.LayerLegendListBindingDirective, i7.MatList, i7.MatListItem, i6.MatIcon, i7.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i5.AsyncPipe, i8.TranslatePipe], styles: [".map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:10px}.map-empty[_ngcontent-%COMP%]{text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:5px}"] });
2764
3035
  MapLegendToolComponent = __decorate([
2765
3036
  ToolComponent({
2766
3037
  name: 'mapLegend',
@@ -2775,7 +3046,7 @@ MapLegendToolComponent = __decorate([
2775
3046
  templateUrl: './map-legend-tool.component.html',
2776
3047
  styleUrls: ['./map-legend-tool.component.scss']
2777
3048
  }]
2778
- }], function () { return [{ type: MapState }, { type: ToolState }, { type: i1.SearchSourceService }, { type: i0.ChangeDetectorRef }]; }, { updateLegendOnResolutionChange: [{
3049
+ }], function () { return [{ type: MapState }, { type: ToolState }, { type: i1$1.SearchSourceService }, { type: i0.ChangeDetectorRef }]; }, { updateLegendOnResolutionChange: [{
2779
3050
  type: Input
2780
3051
  }], layerAdditionAllowed: [{
2781
3052
  type: Input
@@ -2988,14 +3259,14 @@ class AdvancedSwipeComponent {
2988
3259
  this.toolState.toolbox.activateTool('contextManager');
2989
3260
  }
2990
3261
  }
2991
- AdvancedSwipeComponent.ɵfac = function AdvancedSwipeComponent_Factory(t) { return new (t || AdvancedSwipeComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2.ContextService), i0.ɵɵdirectiveInject(i3$1.FormBuilder), i0.ɵɵdirectiveInject(ToolState)); };
3262
+ AdvancedSwipeComponent.ɵfac = function AdvancedSwipeComponent_Factory(t) { return new (t || AdvancedSwipeComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i1.ContextService), i0.ɵɵdirectiveInject(i3$1.FormBuilder), i0.ɵɵdirectiveInject(ToolState)); };
2992
3263
  AdvancedSwipeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedSwipeComponent, selectors: [["igo-advanced-swipe"]], decls: 3, vars: 2, consts: [["class", "igo-swipe-select-container", 4, "ngIf", "ngIfElse"], ["noLayersBlock", ""], [1, "igo-swipe-select-container"], [1, "igo-form", 3, "formGroup"], ["formControlName", "layers", "multiple", ""], [3, "value", "click"], ["e", ""], [3, "value", "click", 4, "ngFor", "ngForOf"], [1, "swipe-toggle", "mat-typography", 3, "checked", "labelPosition", "change"], [1, "map-empty", "mat-typography"], ["mat-list-icon", "", "svgIcon", "magnify"], ["matLine", "", 1, "search-tool", "mat-typography", 3, "click"], ["mat-list-icon", "", "svgIcon", "layers-plus"], ["matLine", "", 1, "catalog-tool", "mat-typography", 3, "click"], ["mat-list-icon", "", "svgIcon", "star"], ["matLine", "", 1, "context-tool", "mat-typography", 3, "click"]], template: function AdvancedSwipeComponent_Template(rf, ctx) { if (rf & 1) {
2993
3264
  i0.ɵɵtemplate(0, AdvancedSwipeComponent_div_0_Template, 16, 14, "div", 0);
2994
3265
  i0.ɵɵtemplate(1, AdvancedSwipeComponent_ng_template_1_Template, 22, 15, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
2995
3266
  } if (rf & 2) {
2996
3267
  const _r1 = i0.ɵɵreference(2);
2997
3268
  i0.ɵɵproperty("ngIf", ctx.userControlledLayerList.length)("ngIfElse", _r1);
2998
- } }, directives: [i4.NgIf, i3$1.ɵNgNoValidate, i3$1.NgControlStatusGroup, i3$1.FormGroupDirective, i6$1.MatFormField, i6$1.MatLabel, i7$2.MatSelect, i3$1.NgControlStatus, i3$1.FormControlName, i8$1.MatOption, i9.MatDivider, i4.NgForOf, i10.MatSlideToggle, i7$1.MatList, i7$1.MatListItem, i6.MatIcon, i7$1.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i8.TranslatePipe], styles: [".nameOfTool[_ngcontent-%COMP%]{text-align:center;font-weight:bold;font-size:small;margin:15px 10px 0}.igo-swipe-select-container[_ngcontent-%COMP%]{padding:10px}.igo-swipe-select-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.igo-form[_ngcontent-%COMP%]{padding:1px 5px;width:100%}.swipe-toggle[_ngcontent-%COMP%]{padding:10px 5px 35px}.map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:5px}.map-empty[_ngcontent-%COMP%]{padding:10px;text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:15px}.advanced-tool-line[_ngcontent-%COMP%]{height:2px;background-color:gray}"] });
3269
+ } }, directives: [i5.NgIf, i3$1.ɵNgNoValidate, i3$1.NgControlStatusGroup, i3$1.FormGroupDirective, i6$1.MatFormField, i6$1.MatLabel, i7$1.MatSelect, i3$1.NgControlStatus, i3$1.FormControlName, i8$1.MatOption, i9.MatDivider, i5.NgForOf, i10.MatSlideToggle, i7.MatList, i7.MatListItem, i6.MatIcon, i7.MatListIconCssMatStyler, i8$1.MatLine], pipes: [i8.TranslatePipe], styles: [".nameOfTool[_ngcontent-%COMP%]{text-align:center;font-weight:bold;font-size:small;margin:15px 10px 0}.igo-swipe-select-container[_ngcontent-%COMP%]{padding:10px}.igo-swipe-select-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.igo-form[_ngcontent-%COMP%]{padding:1px 5px;width:100%}.swipe-toggle[_ngcontent-%COMP%]{padding:10px 5px 35px}.map-empty[_ngcontent-%COMP%], .search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{margin:5px}.map-empty[_ngcontent-%COMP%]{padding:10px;text-align:justify}.search-tool[_ngcontent-%COMP%], .catalog-tool[_ngcontent-%COMP%], .context-tool[_ngcontent-%COMP%]{cursor:pointer}mat-list[_ngcontent-%COMP%] mat-list-item[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-weight:bold}mat-list-item[_ngcontent-%COMP%] .mat-list-text{font-size:smaller}mat-list.mat-list-base[_ngcontent-%COMP%] mat-list-item.mat-list-item[_ngcontent-%COMP%] div.mat-list-item-content div.mat-list-text{padding-left:15px}.advanced-tool-line[_ngcontent-%COMP%]{height:2px;background-color:gray}"] });
2999
3270
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdvancedSwipeComponent, [{
3000
3271
  type: Component,
3001
3272
  args: [{
@@ -3003,7 +3274,7 @@ AdvancedSwipeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Adva
3003
3274
  templateUrl: './advanced-swipe.component.html',
3004
3275
  styleUrls: ['./advanced-swipe.component.scss']
3005
3276
  }]
3006
- }], function () { return [{ type: MapState }, { type: i2.ContextService }, { type: i3$1.FormBuilder }, { type: ToolState }]; }, null); })();
3277
+ }], function () { return [{ type: MapState }, { type: i1.ContextService }, { type: i3$1.FormBuilder }, { type: ToolState }]; }, null); })();
3007
3278
 
3008
3279
  function AdvancedCoordinatesComponent_mat_form_field_0_Template(rf, ctx) { if (rf & 1) {
3009
3280
  i0.ɵɵelementStart(0, "mat-form-field", 12);
@@ -3363,7 +3634,7 @@ class AdvancedCoordinatesComponent {
3363
3634
  let modifiedProj = this.projections$.value;
3364
3635
  const extent = projection.extent;
3365
3636
  const code = projection.code.match(/\d+/);
3366
- const currentExtentWGS = olproj.transformExtent(extent, projection.code, this.defaultProj.code);
3637
+ const currentExtentWGS = olProj.transformExtent(extent, projection.code, this.defaultProj.code);
3367
3638
  if (coordinates[0] < currentExtentWGS[0] || coordinates[0] > currentExtentWGS[2] ||
3368
3639
  coordinates[1] < currentExtentWGS[1] || coordinates[1] > currentExtentWGS[3]) {
3369
3640
  this.inLambert2[code] = false;
@@ -3382,7 +3653,7 @@ class AdvancedCoordinatesComponent {
3382
3653
  });
3383
3654
  }
3384
3655
  }
3385
- AdvancedCoordinatesComponent.ɵfac = function AdvancedCoordinatesComponent_Factory(t) { return new (t || AdvancedCoordinatesComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2$2.LanguageService), i0.ɵɵdirectiveInject(i2$2.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2$2.StorageService), i0.ɵɵdirectiveInject(i2$2.ConfigService), i0.ɵɵdirectiveInject(i3$1.FormBuilder)); };
3656
+ AdvancedCoordinatesComponent.ɵfac = function AdvancedCoordinatesComponent_Factory(t) { return new (t || AdvancedCoordinatesComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.StorageService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3$1.FormBuilder)); };
3386
3657
  AdvancedCoordinatesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedCoordinatesComponent, selectors: [["igo-advanced-coordinates"]], inputs: { projectionsLimitations: "projectionsLimitations" }, decls: 32, vars: 37, consts: [["class", "coordinates", 4, "ngIf", "ngIfElse"], ["elseBlock", ""], ["class", "coordinates2", 4, "ngIf", "ngIfElse"], ["elseBlock2", ""], ["mat-raised-button", "", 1, "igo-form-button-group", 3, "click"], ["svgIcon", "content-copy"], [1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], [3, "value", "valueChange"], ["matTooltipShowDelay", "500", 3, "value", "click", 4, "ngFor", "ngForOf"], [1, "center-toggle", "mat-typography", 3, "checked", "labelPosition", "change"], [1, "igo-zoom", "mat-typography"], [1, "coordinates"], ["matInput", "", "readonly", "", "rows", "1", 3, "placeholder", "value"], ["textArea", ""], [1, "coordinates2"], ["matTooltipShowDelay", "500", 3, "value", "click"]], template: function AdvancedCoordinatesComponent_Template(rf, ctx) { if (rf & 1) {
3387
3658
  i0.ɵɵtemplate(0, AdvancedCoordinatesComponent_mat_form_field_0_Template, 4, 4, "mat-form-field", 0);
3388
3659
  i0.ɵɵtemplate(1, AdvancedCoordinatesComponent_ng_template_1_Template, 4, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
@@ -3452,7 +3723,7 @@ AdvancedCoordinatesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
3452
3723
  i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(26, 28, "igo.integration.advanced-map-tool.advanced-coordinates.scale"), " ", i0.ɵɵpipeBind1(27, 30, ctx.formattedScale$), "");
3453
3724
  i0.ɵɵadvance(4);
3454
3725
  i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(30, 32, "igo.integration.advanced-map-tool.advanced-coordinates.resolution"), " ", i0.ɵɵpipeBind2(31, 34, ctx.map.viewController.getResolution(), "1.0-0"), "");
3455
- } }, directives: [i4.NgIf, i3.MatButton, i6.MatIcon, i3$1.ɵNgNoValidate, i3$1.NgControlStatusGroup, i3$1.FormGroupDirective, i6$1.MatFormField, i6$1.MatLabel, i7$2.MatSelect, i4.NgForOf, i10.MatSlideToggle, i10$1.MatInput, i8$1.MatOption], pipes: [i8.TranslatePipe, i4.AsyncPipe, i4.DecimalPipe], styles: ["textarea[_ngcontent-%COMP%]{resize:none}mat-form-field[_ngcontent-%COMP%]{padding:10px 15px}mat-form-field.coordinates[_ngcontent-%COMP%]{width:120px}mat-form-field.coordinates2[_ngcontent-%COMP%]{width:120px;padding:0 10px 0 3px}mat-form-field.igo-input-container[_ngcontent-%COMP%]{width:60%;padding:0 15px}.igo-form-button-group[_ngcontent-%COMP%]{padding:0 10px;margin:0 10px}.center-toggle[_ngcontent-%COMP%]{padding:10px 15px 35px}mat-slide-toggle[_ngcontent-%COMP%]{font-size:small}.igo-zoom[_ngcontent-%COMP%]{padding:0 15px}"] });
3726
+ } }, directives: [i5.NgIf, i3.MatButton, i6.MatIcon, i3$1.ɵNgNoValidate, i3$1.NgControlStatusGroup, i3$1.FormGroupDirective, i6$1.MatFormField, i6$1.MatLabel, i7$1.MatSelect, i5.NgForOf, i10.MatSlideToggle, i10$1.MatInput, i8$1.MatOption], pipes: [i8.TranslatePipe, i5.AsyncPipe, i5.DecimalPipe], styles: ["textarea[_ngcontent-%COMP%]{resize:none}mat-form-field[_ngcontent-%COMP%]{padding:10px 15px}mat-form-field.coordinates[_ngcontent-%COMP%]{width:120px}mat-form-field.coordinates2[_ngcontent-%COMP%]{width:120px;padding:0 10px 0 3px}mat-form-field.igo-input-container[_ngcontent-%COMP%]{width:60%;padding:0 15px}.igo-form-button-group[_ngcontent-%COMP%]{padding:0 10px;margin:0 10px}.center-toggle[_ngcontent-%COMP%]{padding:10px 15px 35px}mat-slide-toggle[_ngcontent-%COMP%]{font-size:small}.igo-zoom[_ngcontent-%COMP%]{padding:0 15px}"] });
3456
3727
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdvancedCoordinatesComponent, [{
3457
3728
  type: Component,
3458
3729
  args: [{
@@ -3460,14 +3731,29 @@ AdvancedCoordinatesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
3460
3731
  templateUrl: './advanced-coordinates.component.html',
3461
3732
  styleUrls: ['./advanced-coordinates.component.scss']
3462
3733
  }]
3463
- }], function () { return [{ type: MapState }, { type: i2$2.LanguageService }, { type: i2$2.MessageService }, { type: i0.ChangeDetectorRef }, { type: i2$2.StorageService }, { type: i2$2.ConfigService }, { type: i3$1.FormBuilder }]; }, { projectionsLimitations: [{
3734
+ }], function () { return [{ type: MapState }, { type: i2.LanguageService }, { type: i2.MessageService }, { type: i0.ChangeDetectorRef }, { type: i2.StorageService }, { type: i2.ConfigService }, { type: i3$1.FormBuilder }]; }, { projectionsLimitations: [{
3464
3735
  type: Input
3465
3736
  }] }); })();
3466
3737
 
3467
3738
  let AdvancedMapToolComponent = class AdvancedMapToolComponent {
3739
+ constructor(mapState) {
3740
+ this.mapState = mapState;
3741
+ }
3742
+ get tracking$() {
3743
+ return this.mapState.map.geolocationController.tracking$;
3744
+ }
3745
+ get followPosition$() {
3746
+ return this.mapState.map.geolocationController.followPosition$;
3747
+ }
3748
+ toggleTracking(value) {
3749
+ this.mapState.map.geolocationController.tracking = value;
3750
+ }
3751
+ toggleFollow(value) {
3752
+ this.mapState.map.geolocationController.followPosition = value;
3753
+ }
3468
3754
  };
3469
- AdvancedMapToolComponent.ɵfac = function AdvancedMapToolComponent_Factory(t) { return new (t || AdvancedMapToolComponent)(); };
3470
- AdvancedMapToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedMapToolComponent, selectors: [["igo-advanced-map-tool"]], decls: 10, vars: 6, consts: [[1, "nameOfTool"], [1, "advanced-tool-line"]], template: function AdvancedMapToolComponent_Template(rf, ctx) { if (rf & 1) {
3755
+ AdvancedMapToolComponent.ɵfac = function AdvancedMapToolComponent_Factory(t) { return new (t || AdvancedMapToolComponent)(i0.ɵɵdirectiveInject(MapState)); };
3756
+ AdvancedMapToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdvancedMapToolComponent, selectors: [["igo-advanced-map-tool"]], decls: 24, vars: 26, consts: [[1, "nameOfTool"], [1, "advanced-tool-line"], [1, "igo-input-container"], [1, "geolocation-slide-toggle-container", "mat-typography"], [1, "geolocation-option", "mat-typography", 3, "checked", "labelPosition", "change"], [1, "geolocation-option", "mat-typography", 3, "disabled", "checked", "labelPosition", "change"]], template: function AdvancedMapToolComponent_Template(rf, ctx) { if (rf & 1) {
3471
3757
  i0.ɵɵelementStart(0, "h4", 0);
3472
3758
  i0.ɵɵtext(1);
3473
3759
  i0.ɵɵpipe(2, "translate");
@@ -3480,12 +3766,43 @@ AdvancedMapToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Ad
3480
3766
  i0.ɵɵelementEnd();
3481
3767
  i0.ɵɵelement(8, "igo-advanced-coordinates");
3482
3768
  i0.ɵɵelement(9, "mat-divider", 1);
3769
+ i0.ɵɵelementStart(10, "h4", 0);
3770
+ i0.ɵɵtext(11);
3771
+ i0.ɵɵpipe(12, "translate");
3772
+ i0.ɵɵelementEnd();
3773
+ i0.ɵɵelementStart(13, "div", 2);
3774
+ i0.ɵɵelementStart(14, "div", 3);
3775
+ i0.ɵɵelementStart(15, "mat-slide-toggle", 4);
3776
+ i0.ɵɵlistener("change", function AdvancedMapToolComponent_Template_mat_slide_toggle_change_15_listener($event) { return ctx.toggleTracking($event.checked); });
3777
+ i0.ɵɵpipe(16, "async");
3778
+ i0.ɵɵtext(17);
3779
+ i0.ɵɵpipe(18, "translate");
3780
+ i0.ɵɵelementEnd();
3781
+ i0.ɵɵelementStart(19, "mat-slide-toggle", 5);
3782
+ i0.ɵɵlistener("change", function AdvancedMapToolComponent_Template_mat_slide_toggle_change_19_listener($event) { return ctx.toggleFollow($event.checked); });
3783
+ i0.ɵɵpipe(20, "async");
3784
+ i0.ɵɵpipe(21, "async");
3785
+ i0.ɵɵtext(22);
3786
+ i0.ɵɵpipe(23, "translate");
3787
+ i0.ɵɵelementEnd();
3788
+ i0.ɵɵelementEnd();
3789
+ i0.ɵɵelementEnd();
3483
3790
  } if (rf & 2) {
3484
3791
  i0.ɵɵadvance(1);
3485
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 2, "igo.integration.advanced-map-tool.advanced-swipe.swipe-tool"));
3792
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 10, "igo.integration.advanced-map-tool.advanced-swipe.swipe-tool"));
3793
+ i0.ɵɵadvance(5);
3794
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 12, "igo.integration.advanced-map-tool.advanced-coordinates.coordinates"));
3486
3795
  i0.ɵɵadvance(5);
3487
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 4, "igo.integration.advanced-map-tool.advanced-coordinates.coordinates"));
3488
- } }, directives: [AdvancedSwipeComponent, i9.MatDivider, AdvancedCoordinatesComponent], pipes: [i8.TranslatePipe], styles: [".nameOfTool[_ngcontent-%COMP%]{text-align:center;font-weight:bold;font-size:small;margin:15px 10px 0}.advanced-tool-line[_ngcontent-%COMP%]{height:2px;background-color:gray}"] });
3796
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 14, "igo.integration.advanced-map-tool.geolocation.title"));
3797
+ i0.ɵɵadvance(4);
3798
+ i0.ɵɵproperty("checked", i0.ɵɵpipeBind1(16, 16, ctx.tracking$))("labelPosition", "before");
3799
+ i0.ɵɵadvance(2);
3800
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 18, "igo.integration.advanced-map-tool.geolocation.tracking"), " ");
3801
+ i0.ɵɵadvance(2);
3802
+ i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(20, 20, ctx.tracking$) !== true)("checked", i0.ɵɵpipeBind1(21, 22, ctx.followPosition$))("labelPosition", "before");
3803
+ i0.ɵɵadvance(3);
3804
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 24, "igo.integration.advanced-map-tool.geolocation.follow"), " ");
3805
+ } }, directives: [AdvancedSwipeComponent, i9.MatDivider, AdvancedCoordinatesComponent, i10.MatSlideToggle], pipes: [i8.TranslatePipe, i5.AsyncPipe], styles: [".nameOfTool[_ngcontent-%COMP%]{text-align:center;font-weight:bold;font-size:small;margin:15px 10px 0}.advanced-tool-line[_ngcontent-%COMP%]{height:2px;background-color:gray}.geolocation-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.geolocation-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.geolocation-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.geolocation-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}"] });
3489
3806
  AdvancedMapToolComponent = __decorate([
3490
3807
  ToolComponent({
3491
3808
  name: 'advancedMap',
@@ -3503,7 +3820,363 @@ AdvancedMapToolComponent = __decorate([
3503
3820
  templateUrl: './advanced-map-tool.component.html',
3504
3821
  styleUrls: ['./advanced-map-tool.component.scss']
3505
3822
  }]
3506
- }], null, null); })();
3823
+ }], function () { return [{ type: MapState }]; }, null); })();
3824
+
3825
+ /**
3826
+ * Service that holds the state of the direction module
3827
+ */
3828
+ class MapProximityState {
3829
+ constructor(mapState) {
3830
+ this.mapState = mapState;
3831
+ this.enabled$ = new BehaviorSubject(false);
3832
+ this.proximityRadiusValue$ = new BehaviorSubject(30);
3833
+ this.proximitylocationType$ = new BehaviorSubject('geolocation');
3834
+ this.proximityFeatureStore = new FeatureStore([], { map: this.mapState.map });
3835
+ this.subs$$ = [];
3836
+ this.currentPositionCoordinate$ = new BehaviorSubject(undefined);
3837
+ this.mapState.map.ol.once('rendercomplete', () => {
3838
+ this.subscribeProximityMonitor();
3839
+ });
3840
+ }
3841
+ get map() {
3842
+ return this.mapState.map;
3843
+ }
3844
+ subscribeProximityMonitor() {
3845
+ this.subs$$.push(combineLatest([
3846
+ this.enabled$,
3847
+ this.proximitylocationType$,
3848
+ this.proximityRadiusValue$,
3849
+ interval(5000),
3850
+ this.map.geolocationController.position$
3851
+ ])
3852
+ .pipe(debounceTime(750))
3853
+ .subscribe((bunch) => {
3854
+ this.proximityFeatureStore.clear();
3855
+ const enabled = bunch[0];
3856
+ const layers = this.map.layers;
3857
+ const currentPos = this.map.geolocationController.position$.value;
3858
+ const locationType = bunch[1];
3859
+ const proximityRadiusValue = bunch[2];
3860
+ if (!enabled) {
3861
+ return;
3862
+ }
3863
+ let coord;
3864
+ if (locationType === 'geolocation') {
3865
+ if (!currentPos || !currentPos.position) {
3866
+ return;
3867
+ }
3868
+ coord = olProj.transform(currentPos.position, currentPos.projection, this.map.projection);
3869
+ this.map.mapCenter$.next(false);
3870
+ }
3871
+ else {
3872
+ coord = this.map.viewController.getCenter();
3873
+ ;
3874
+ this.map.mapCenter$.next(true);
3875
+ }
3876
+ const coordLonLat = olProj.transform(coord, this.map.projection, 'EPSG:4269');
3877
+ const roundedCoordLonLat = roundCoordTo(coordLonLat, 6);
3878
+ this.currentPositionCoordinate$.next(roundedCoordLonLat);
3879
+ const layersToMonitor = layers
3880
+ .filter(layer => layer.ol instanceof olLayerVector &&
3881
+ layer.dataSource.options.queryable &&
3882
+ layer.visible &&
3883
+ layer.isInResolutionsRange);
3884
+ layersToMonitor.map(layerToMonitor => {
3885
+ const layerSource = layerToMonitor.ol.getSource();
3886
+ // Mostly for polygon features.
3887
+ const olFeaturesAtCoordinate = layerSource.getFeaturesAtCoordinate(coord);
3888
+ if (olFeaturesAtCoordinate && olFeaturesAtCoordinate.length) {
3889
+ olFeaturesAtCoordinate.map(olFeatureAtCoordinate => {
3890
+ const featureAtThisPosition = featureFromOl(olFeatureAtCoordinate, this.map.projection);
3891
+ let title = this.getQueryTitle(featureAtThisPosition, layerToMonitor);
3892
+ // todo handle imported layers without querytitle? prompt title or detect first column?
3893
+ this.addFeatureToStore(layerToMonitor, coord, featureAtThisPosition, title, 0);
3894
+ });
3895
+ }
3896
+ else {
3897
+ // compute proximity for remaining sources
3898
+ const closestOlFeature = layerSource.getClosestFeatureToCoordinate(coord);
3899
+ if (closestOlFeature) {
3900
+ const closestOlGeom = closestOlFeature.getGeometry();
3901
+ const closestFeature = featureFromOl(closestOlFeature, this.map.projection);
3902
+ const geometryClosestPoint = closestOlGeom.getClosestPoint(coord);
3903
+ const linebetween = new olLineString([coord, geometryClosestPoint]);
3904
+ const lineLength = measureOlGeometryLength(linebetween, 'EPSG:3857');
3905
+ if (lineLength <= proximityRadiusValue) {
3906
+ let title = this.getQueryTitle(closestFeature, layerToMonitor);
3907
+ // todo handle imported layers without querytitle? prompt title or detect first column?
3908
+ this.addFeatureToStore(layerToMonitor, coord, closestFeature, title, lineLength);
3909
+ }
3910
+ }
3911
+ }
3912
+ });
3913
+ }));
3914
+ }
3915
+ /**
3916
+ * Add a feature with proximity properties to the store
3917
+ * @internal
3918
+ */
3919
+ addFeatureToStore(layer, coordFromCalculatedDistance, feature, title, distance) {
3920
+ const featureId = uuid();
3921
+ const projection = this.map.ol.getView().getProjection();
3922
+ const olGeometry = feature.ol.getGeometry();
3923
+ const geometry = new olFormatGeoJSON().writeGeometryObject(olGeometry, {
3924
+ featureProjection: projection,
3925
+ dataProjection: projection
3926
+ });
3927
+ this.proximityFeatureStore.update({
3928
+ type: FEATURE,
3929
+ geometry,
3930
+ projection: projection.getCode(),
3931
+ properties: Object.assign(Object.assign({}, feature.properties), {
3932
+ id: featureId,
3933
+ element: title,
3934
+ distance,
3935
+ coordFromCalculatedDistance,
3936
+ layerSrcId: layer.id,
3937
+ layerSrcTitle: layer.title
3938
+ }),
3939
+ meta: {
3940
+ id: featureId
3941
+ }
3942
+ });
3943
+ }
3944
+ getQueryTitle(feature, layer) {
3945
+ var _a, _b;
3946
+ let title;
3947
+ if ((_b = (_a = layer.options) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.options) {
3948
+ const dataSourceOptions = layer.options.source
3949
+ .options;
3950
+ if (dataSourceOptions.queryTitle) {
3951
+ title = this.getLabelMatch(feature, dataSourceOptions.queryTitle);
3952
+ }
3953
+ }
3954
+ return title;
3955
+ }
3956
+ getLabelMatch(feature, labelMatch) {
3957
+ let label = labelMatch;
3958
+ const labelToGet = Array.from(labelMatch.matchAll(/\$\{([^\{\}]+)\}/g));
3959
+ labelToGet.forEach(v => {
3960
+ label = label.replace(v[0], feature.properties[v[1]]);
3961
+ });
3962
+ // Nothing done? check feature's attribute
3963
+ if (labelToGet.length === 0 && label === labelMatch) {
3964
+ label = feature.properties[labelMatch] || labelMatch;
3965
+ }
3966
+ return label;
3967
+ }
3968
+ }
3969
+ MapProximityState.ɵfac = function MapProximityState_Factory(t) { return new (t || MapProximityState)(i0.ɵɵinject(MapState)); };
3970
+ MapProximityState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MapProximityState, factory: MapProximityState.ɵfac, providedIn: 'root' });
3971
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MapProximityState, [{
3972
+ type: Injectable,
3973
+ args: [{
3974
+ providedIn: 'root'
3975
+ }]
3976
+ }], function () { return [{ type: MapState }]; }, null); })();
3977
+
3978
+ const _c0$1 = ["table"];
3979
+ function MapProximityToolComponent_mat_form_field_3_Template(rf, ctx) { if (rf & 1) {
3980
+ i0.ɵɵelementStart(0, "mat-form-field", 14);
3981
+ i0.ɵɵelement(1, "textarea", 15, 16);
3982
+ i0.ɵɵpipe(3, "translate");
3983
+ i0.ɵɵelementEnd();
3984
+ } if (rf & 2) {
3985
+ const coord_r4 = ctx.ngIf;
3986
+ i0.ɵɵadvance(1);
3987
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 2, "igo.integration.map-proximity-tool.lon"))("value", coord_r4[0]);
3988
+ } }
3989
+ function MapProximityToolComponent_mat_form_field_5_Template(rf, ctx) { if (rf & 1) {
3990
+ i0.ɵɵelementStart(0, "mat-form-field", 17);
3991
+ i0.ɵɵelement(1, "textarea", 15, 16);
3992
+ i0.ɵɵpipe(3, "translate");
3993
+ i0.ɵɵelementEnd();
3994
+ } if (rf & 2) {
3995
+ const coord2_r6 = ctx.ngIf;
3996
+ i0.ɵɵadvance(1);
3997
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 2, "igo.integration.map-proximity-tool.lat"))("value", coord2_r6[1]);
3998
+ } }
3999
+ function MapProximityToolComponent_button_7_Template(rf, ctx) { if (rf & 1) {
4000
+ const _r9 = i0.ɵɵgetCurrentView();
4001
+ i0.ɵɵelementStart(0, "button", 18);
4002
+ i0.ɵɵlistener("click", function MapProximityToolComponent_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return ctx_r8.copyTextToClipboard(); });
4003
+ i0.ɵɵelement(1, "mat-icon", 19);
4004
+ i0.ɵɵelementEnd();
4005
+ } }
4006
+ let MapProximityToolComponent = class MapProximityToolComponent {
4007
+ constructor(mapState, mapProximityState, languageService, messageService) {
4008
+ this.mapState = mapState;
4009
+ this.mapProximityState = mapProximityState;
4010
+ this.languageService = languageService;
4011
+ this.messageService = messageService;
4012
+ this.subs$$ = [];
4013
+ /**
4014
+ * Table template
4015
+ * @internal
4016
+ */
4017
+ this.tableTemplate = {
4018
+ selection: true,
4019
+ selectMany: false,
4020
+ selectionCheckbox: false,
4021
+ sort: true,
4022
+ columns: [
4023
+ {
4024
+ name: 'element',
4025
+ title: this.languageService.translate.instant('igo.integration.map-proximity-tool.feature'),
4026
+ valueAccessor: (localFeature) => {
4027
+ return localFeature.properties.element;
4028
+ }
4029
+ },
4030
+ {
4031
+ name: 'distance',
4032
+ title: this.languageService.translate.instant('igo.integration.map-proximity-tool.distance'),
4033
+ valueAccessor: (localFeature) => {
4034
+ return `${NumberUtils.roundToNDecimal(localFeature.properties.distance, 1)}m`;
4035
+ }
4036
+ }
4037
+ ]
4038
+ };
4039
+ }
4040
+ get maxDistance() {
4041
+ return this.mapProximityState.proximityRadiusValue$.value;
4042
+ }
4043
+ set maxDistance(value) {
4044
+ this.mapProximityState.proximityRadiusValue$.next(value);
4045
+ }
4046
+ get map() {
4047
+ return this.mapState.map;
4048
+ }
4049
+ ngOnInit() {
4050
+ this.mapProximityState.enabled$.next(true);
4051
+ this.userDefinedFollowPosition = this.map.geolocationController.followPosition === true;
4052
+ this.userDefinedMapCenter = this.map.mapCenter$.value === true;
4053
+ this.subs$$.push(this.mapProximityState.proximitylocationType$.subscribe(v => {
4054
+ this.map.mapCenter$.next(v !== 'geolocation');
4055
+ if (v === 'geolocation') {
4056
+ this.map.geolocationController.followPosition = true;
4057
+ }
4058
+ else {
4059
+ this.map.geolocationController.followPosition = false;
4060
+ }
4061
+ }));
4062
+ }
4063
+ ngOnDestroy() {
4064
+ this.mapProximityState.enabled$.next(false);
4065
+ this.map.mapCenter$.next(this.userDefinedMapCenter);
4066
+ this.subs$$.map(s => s.unsubscribe());
4067
+ this.map.geolocationController.followPosition = this.userDefinedFollowPosition;
4068
+ }
4069
+ onLocationTypeChange(e) {
4070
+ this.mapProximityState.proximitylocationType$.next(e.value);
4071
+ }
4072
+ /**
4073
+ * Copy the coordinates to a clipboard
4074
+ */
4075
+ copyTextToClipboard() {
4076
+ var _a;
4077
+ const successful = Clipboard.copy((_a = this.mapProximityState.currentPositionCoordinate$) === null || _a === void 0 ? void 0 : _a.value.toString());
4078
+ if (successful) {
4079
+ const translate = this.languageService.translate;
4080
+ const title = translate.instant('igo.integration.map-proximity-tool.copyTitle');
4081
+ const msg = translate.instant('igo.integration.map-proximity-tool.copyMsg');
4082
+ this.messageService.success(msg, title);
4083
+ }
4084
+ }
4085
+ };
4086
+ MapProximityToolComponent.ɵfac = function MapProximityToolComponent_Factory(t) { return new (t || MapProximityToolComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(MapProximityState), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.MessageService)); };
4087
+ MapProximityToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MapProximityToolComponent, selectors: [["igo-map-proximity-tool"]], viewQuery: function MapProximityToolComponent_Query(rf, ctx) { if (rf & 1) {
4088
+ i0.ɵɵviewQuery(_c0$1, 7);
4089
+ } if (rf & 2) {
4090
+ let _t;
4091
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
4092
+ } }, decls: 31, vars: 35, consts: [[1, "table-compact", 3, "store", "template"], ["table", ""], ["class", "coordinates", 4, "ngIf"], ["class", "coordinates2", 4, "ngIf"], ["mat-icon-button", "", 3, "click", 4, "ngIf"], [1, "title-container"], [1, "title", "mat-typography"], [1, "igo-input-container", "mat-typography"], [3, "change"], ["value", "geolocation", 3, "checked"], ["value", "mapCenter", 3, "checked"], [1, "radius-unit"], ["appearance", "outline", "floatLabel", "always", 1, "measure-field"], ["type", "number", "pattern", "[0-9]*", "matInput", "", 3, "ngModel", "placeholder", "ngModelChange"], [1, "coordinates"], ["matInput", "", "readonly", "", "rows", "1", 3, "placeholder", "value"], ["textArea", ""], [1, "coordinates2"], ["mat-icon-button", "", 3, "click"], ["svgIcon", "content-copy"]], template: function MapProximityToolComponent_Template(rf, ctx) { if (rf & 1) {
4093
+ i0.ɵɵelement(0, "igo-entity-table", 0, 1);
4094
+ i0.ɵɵelement(2, "br");
4095
+ i0.ɵɵtemplate(3, MapProximityToolComponent_mat_form_field_3_Template, 4, 4, "mat-form-field", 2);
4096
+ i0.ɵɵpipe(4, "async");
4097
+ i0.ɵɵtemplate(5, MapProximityToolComponent_mat_form_field_5_Template, 4, 4, "mat-form-field", 3);
4098
+ i0.ɵɵpipe(6, "async");
4099
+ i0.ɵɵtemplate(7, MapProximityToolComponent_button_7_Template, 2, 0, "button", 4);
4100
+ i0.ɵɵpipe(8, "async");
4101
+ i0.ɵɵpipe(9, "async");
4102
+ i0.ɵɵelementStart(10, "div", 5);
4103
+ i0.ɵɵelementStart(11, "mat-label", 6);
4104
+ i0.ɵɵtext(12);
4105
+ i0.ɵɵpipe(13, "translate");
4106
+ i0.ɵɵelementEnd();
4107
+ i0.ɵɵelementEnd();
4108
+ i0.ɵɵelementStart(14, "div", 7);
4109
+ i0.ɵɵelementStart(15, "mat-radio-group", 8);
4110
+ i0.ɵɵlistener("change", function MapProximityToolComponent_Template_mat_radio_group_change_15_listener($event) { return ctx.onLocationTypeChange($event); });
4111
+ i0.ɵɵelementStart(16, "mat-radio-button", 9);
4112
+ i0.ɵɵpipe(17, "async");
4113
+ i0.ɵɵtext(18);
4114
+ i0.ɵɵpipe(19, "translate");
4115
+ i0.ɵɵelementEnd();
4116
+ i0.ɵɵelementStart(20, "mat-radio-button", 10);
4117
+ i0.ɵɵpipe(21, "async");
4118
+ i0.ɵɵtext(22);
4119
+ i0.ɵɵpipe(23, "translate");
4120
+ i0.ɵɵelementEnd();
4121
+ i0.ɵɵelementEnd();
4122
+ i0.ɵɵelementEnd();
4123
+ i0.ɵɵelementStart(24, "div", 11);
4124
+ i0.ɵɵelementStart(25, "mat-form-field", 12);
4125
+ i0.ɵɵelementStart(26, "mat-label");
4126
+ i0.ɵɵtext(27);
4127
+ i0.ɵɵpipe(28, "translate");
4128
+ i0.ɵɵelementEnd();
4129
+ i0.ɵɵelementStart(29, "input", 13);
4130
+ i0.ɵɵlistener("ngModelChange", function MapProximityToolComponent_Template_input_ngModelChange_29_listener($event) { return ctx.maxDistance = $event; });
4131
+ i0.ɵɵpipe(30, "translate");
4132
+ i0.ɵɵelementEnd();
4133
+ i0.ɵɵelementEnd();
4134
+ i0.ɵɵelementEnd();
4135
+ } if (rf & 2) {
4136
+ i0.ɵɵproperty("store", ctx.mapProximityState.proximityFeatureStore)("template", ctx.tableTemplate);
4137
+ i0.ɵɵadvance(3);
4138
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(4, 13, ctx.mapProximityState.currentPositionCoordinate$));
4139
+ i0.ɵɵadvance(2);
4140
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 15, ctx.mapProximityState.currentPositionCoordinate$));
4141
+ i0.ɵɵadvance(2);
4142
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(8, 17, ctx.mapProximityState.currentPositionCoordinate$) && i0.ɵɵpipeBind1(9, 19, ctx.mapProximityState.currentPositionCoordinate$).length);
4143
+ i0.ɵɵadvance(5);
4144
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 21, "igo.integration.map-proximity-tool.method"));
4145
+ i0.ɵɵadvance(4);
4146
+ i0.ɵɵproperty("checked", i0.ɵɵpipeBind1(17, 23, ctx.mapProximityState.proximitylocationType$) === "geolocation");
4147
+ i0.ɵɵadvance(2);
4148
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 25, "igo.integration.map-proximity-tool.geolocation"));
4149
+ i0.ɵɵadvance(2);
4150
+ i0.ɵɵproperty("checked", i0.ɵɵpipeBind1(21, 27, ctx.mapProximityState.proximitylocationType$) === "mapCenter");
4151
+ i0.ɵɵadvance(2);
4152
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(23, 29, "igo.integration.map-proximity-tool.mapCenter"));
4153
+ i0.ɵɵadvance(5);
4154
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(28, 31, "igo.integration.map-proximity-tool.radiusM"));
4155
+ i0.ɵɵadvance(2);
4156
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(30, 33, "igo.integration.map-proximity-tool.radiusM"));
4157
+ i0.ɵɵproperty("ngModel", ctx.maxDistance);
4158
+ } }, directives: [i4.EntityTableComponent, i5.NgIf, i6$1.MatLabel, i7$2.MatRadioGroup, i7$2.MatRadioButton, i6$1.MatFormField, i3$1.NumberValueAccessor, i10$1.MatInput, i3$1.DefaultValueAccessor, i3$1.PatternValidator, i3$1.NgControlStatus, i3$1.NgModel, i3.MatButton, i6.MatIcon], pipes: [i5.AsyncPipe, i8.TranslatePipe], styles: [".table-compact[_ngcontent-%COMP%]{height:auto}.table-compact[_ngcontent-%COMP%] .mat-header-cell.mat-column-selectionCheckbox{width:52px}textarea[_ngcontent-%COMP%]{resize:none}mat-form-field[_ngcontent-%COMP%]{padding:10px 15px}mat-form-field.coordinates[_ngcontent-%COMP%]{width:110px}mat-form-field.coordinates2[_ngcontent-%COMP%]{width:100px;padding:0 10px 0 3px}mat-form-field.igo-input-container[_ngcontent-%COMP%]{width:60%;padding:0 15px}.radius-unit[_ngcontent-%COMP%]{display:flex;width:90%;margin-left:2px;padding:5px}.radius-field[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:60%}.title-container[_ngcontent-%COMP%]{padding:10px}.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}"] });
4159
+ MapProximityToolComponent = __decorate([
4160
+ ToolComponent({
4161
+ name: 'map-proximity',
4162
+ title: 'igo.integration.tools.closestFeature',
4163
+ icon: 'radius'
4164
+ })
4165
+ /**
4166
+ * Tool to handle the advanced map tools
4167
+ */
4168
+ ], MapProximityToolComponent);
4169
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MapProximityToolComponent, [{
4170
+ type: Component,
4171
+ args: [{
4172
+ selector: 'igo-map-proximity-tool',
4173
+ templateUrl: './map-proximity-tool.component.html',
4174
+ styleUrls: ['./map-proximity-tool.component.scss']
4175
+ }]
4176
+ }], function () { return [{ type: MapState }, { type: MapProximityState }, { type: i2.LanguageService }, { type: i2.MessageService }]; }, { table: [{
4177
+ type: ViewChild,
4178
+ args: ['table', { static: true }]
4179
+ }] }); })();
3507
4180
 
3508
4181
  class IgoAppMapModule {
3509
4182
  static forRoot() {
@@ -3536,12 +4209,14 @@ IgoAppMapModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
3536
4209
  IgoDownloadModule,
3537
4210
  IgoImportExportModule,
3538
4211
  IgoFilterModule,
4212
+ MatRadioModule,
3539
4213
  IgoContextModule,
3540
4214
  IgoAppWorkspaceModule,
3541
4215
  MatSlideToggleModule,
3542
4216
  MatMenuModule,
3543
4217
  MatButtonModule,
3544
- MatTooltipModule
4218
+ MatTooltipModule,
4219
+ IgoEntityTableModule
3545
4220
  ]] });
3546
4221
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoAppMapModule, [{
3547
4222
  type: NgModule,
@@ -3567,20 +4242,23 @@ IgoAppMapModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
3567
4242
  IgoDownloadModule,
3568
4243
  IgoImportExportModule,
3569
4244
  IgoFilterModule,
4245
+ MatRadioModule,
3570
4246
  IgoContextModule,
3571
4247
  IgoAppWorkspaceModule,
3572
4248
  MatSlideToggleModule,
3573
4249
  MatMenuModule,
3574
4250
  MatButtonModule,
3575
- MatTooltipModule
4251
+ MatTooltipModule,
4252
+ IgoEntityTableModule
3576
4253
  ],
3577
- declarations: [AdvancedMapToolComponent, MapToolComponent,
4254
+ declarations: [AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,
3578
4255
  MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent, AdvancedSwipeComponent, AdvancedCoordinatesComponent],
3579
- exports: [AdvancedMapToolComponent, MapToolComponent, MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent],
4256
+ exports: [AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,
4257
+ MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent],
3580
4258
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
3581
4259
  }]
3582
4260
  }], null, null); })();
3583
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoAppMapModule, { declarations: [AdvancedMapToolComponent, MapToolComponent,
4261
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoAppMapModule, { declarations: [AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,
3584
4262
  MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent, AdvancedSwipeComponent, AdvancedCoordinatesComponent], imports: [FormsModule,
3585
4263
  ReactiveFormsModule,
3586
4264
  MatButtonToggleModule,
@@ -3601,12 +4279,15 @@ IgoAppMapModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
3601
4279
  IgoDownloadModule,
3602
4280
  IgoImportExportModule,
3603
4281
  IgoFilterModule,
4282
+ MatRadioModule,
3604
4283
  IgoContextModule,
3605
4284
  IgoAppWorkspaceModule,
3606
4285
  MatSlideToggleModule,
3607
4286
  MatMenuModule,
3608
4287
  MatButtonModule,
3609
- MatTooltipModule], exports: [AdvancedMapToolComponent, MapToolComponent, MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent] }); })();
4288
+ MatTooltipModule,
4289
+ IgoEntityTableModule], exports: [AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,
4290
+ MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent] }); })();
3610
4291
 
3611
4292
  /**
3612
4293
  * Service that holds the state of the measure module
@@ -3663,7 +4344,7 @@ MeasurerToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Measu
3663
4344
  i0.ɵɵelement(0, "igo-measurer", 0);
3664
4345
  } if (rf & 2) {
3665
4346
  i0.ɵɵproperty("store", ctx.store)("map", ctx.map);
3666
- } }, directives: [i1.MeasurerComponent], encapsulation: 2, changeDetection: 0 });
4347
+ } }, directives: [i1$1.MeasurerComponent], encapsulation: 2, changeDetection: 0 });
3667
4348
  MeasurerToolComponent = __decorate([
3668
4349
  ToolComponent({
3669
4350
  name: 'measurer',
@@ -3733,7 +4414,7 @@ PrintToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintToo
3733
4414
  i0.ɵɵelement(0, "igo-print", 0);
3734
4415
  } if (rf & 2) {
3735
4416
  i0.ɵɵproperty("map", ctx.map);
3736
- } }, directives: [i1.PrintComponent], encapsulation: 2 });
4417
+ } }, directives: [i1$1.PrintComponent], encapsulation: 2 });
3737
4418
  PrintToolComponent = __decorate([
3738
4419
  ToolComponent({
3739
4420
  name: 'print',
@@ -3863,14 +4544,14 @@ class SearchState {
3863
4544
  this.searchResultsGeometryEnabled$.next(value);
3864
4545
  }
3865
4546
  }
3866
- SearchState.ɵfac = function SearchState_Factory(t) { return new (t || SearchState)(i0.ɵɵinject(i1.SearchSourceService), i0.ɵɵinject(i2$2.StorageService), i0.ɵɵinject(i2$2.ConfigService)); };
4547
+ SearchState.ɵfac = function SearchState_Factory(t) { return new (t || SearchState)(i0.ɵɵinject(i1$1.SearchSourceService), i0.ɵɵinject(i2.StorageService), i0.ɵɵinject(i2.ConfigService)); };
3867
4548
  SearchState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SearchState, factory: SearchState.ɵfac, providedIn: 'root' });
3868
4549
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchState, [{
3869
4550
  type: Injectable,
3870
4551
  args: [{
3871
4552
  providedIn: 'root'
3872
4553
  }]
3873
- }], function () { return [{ type: i1.SearchSourceService }, { type: i2$2.StorageService }, { type: i2$2.ConfigService }]; }, null); })();
4554
+ }], function () { return [{ type: i1$1.SearchSourceService }, { type: i2.StorageService }, { type: i2.ConfigService }]; }, null); })();
3874
4555
 
3875
4556
  class SearchBarBindingDirective {
3876
4557
  constructor(component, searchState) {
@@ -3910,7 +4591,7 @@ class SearchBarBindingDirective {
3910
4591
  }
3911
4592
  }
3912
4593
  }
3913
- SearchBarBindingDirective.ɵfac = function SearchBarBindingDirective_Factory(t) { return new (t || SearchBarBindingDirective)(i0.ɵɵdirectiveInject(i1.SearchBarComponent, 2), i0.ɵɵdirectiveInject(SearchState)); };
4594
+ SearchBarBindingDirective.ɵfac = function SearchBarBindingDirective_Factory(t) { return new (t || SearchBarBindingDirective)(i0.ɵɵdirectiveInject(i1$1.SearchBarComponent, 2), i0.ɵɵdirectiveInject(SearchState)); };
3914
4595
  SearchBarBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SearchBarBindingDirective, selectors: [["", "igoSearchBarBinding", ""]], hostBindings: function SearchBarBindingDirective_HostBindings(rf, ctx) { if (rf & 1) {
3915
4596
  i0.ɵɵlistener("searchTermChange", function SearchBarBindingDirective_searchTermChange_HostBindingHandler($event) { return ctx.onSearchTermChange($event); })("searchTypeChange", function SearchBarBindingDirective_searchTypeChange_HostBindingHandler($event) { return ctx.onSearchTypeChange($event); });
3916
4597
  } } });
@@ -3919,7 +4600,7 @@ SearchBarBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: S
3919
4600
  args: [{
3920
4601
  selector: '[igoSearchBarBinding]'
3921
4602
  }]
3922
- }], function () { return [{ type: i1.SearchBarComponent, decorators: [{
4603
+ }], function () { return [{ type: i1$1.SearchBarComponent, decorators: [{
3923
4604
  type: Self
3924
4605
  }] }, { type: SearchState }]; }, { onSearchTermChange: [{
3925
4606
  type: HostListener,
@@ -3975,17 +4656,17 @@ function SearchResultsToolComponent_div_0_Template(rf, ctx) { if (rf & 1) {
3975
4656
  i0.ɵɵadvance(2);
3976
4657
  i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(11, 7, i0.ɵɵpipeBind1(12, 9, "igo.integration.searchResultsTool.examples")), i0.ɵɵsanitizeHtml);
3977
4658
  } }
3978
- function SearchResultsToolComponent_igo_flexible_1_ng_template_5_Template(rf, ctx) { if (rf & 1) {
4659
+ function SearchResultsToolComponent_igo_flexible_2_ng_template_5_Template(rf, ctx) { if (rf & 1) {
3979
4660
  i0.ɵɵelement(0, "igo-search-add-button", 12);
3980
4661
  } if (rf & 2) {
3981
4662
  const result_r6 = ctx.result;
3982
4663
  const ctx_r4 = i0.ɵɵnextContext(2);
3983
4664
  i0.ɵɵproperty("map", ctx_r4.map)("layer", result_r6);
3984
4665
  } }
3985
- function SearchResultsToolComponent_igo_flexible_1_igo_panel_8_button_4_Template(rf, ctx) { if (rf & 1) {
4666
+ function SearchResultsToolComponent_igo_flexible_2_igo_panel_8_button_4_Template(rf, ctx) { if (rf & 1) {
3986
4667
  const _r9 = i0.ɵɵgetCurrentView();
3987
4668
  i0.ɵɵelementStart(0, "button", 18);
3988
- i0.ɵɵlistener("click", function SearchResultsToolComponent_igo_flexible_1_igo_panel_8_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(3); return ctx_r8.zoomToFeatureExtent(); });
4669
+ i0.ɵɵlistener("click", function SearchResultsToolComponent_igo_flexible_2_igo_panel_8_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(3); return ctx_r8.zoomToFeatureExtent(); });
3989
4670
  i0.ɵɵpipe(1, "translate");
3990
4671
  i0.ɵɵpipe(2, "async");
3991
4672
  i0.ɵɵelement(3, "mat-icon", 19);
@@ -3998,17 +4679,17 @@ function SearchResultsToolComponent_igo_flexible_1_igo_panel_8_button_4_Template
3998
4679
  i0.ɵɵadvance(3);
3999
4680
  i0.ɵɵproperty("matBadge", i0.ɵɵpipeBind1(4, 7, ctx_r7.isSelectedResultOutOfView$) ? "!" : "")("matBadgeHidden", i0.ɵɵpipeBind1(5, 9, ctx_r7.isSelectedResultOutOfView$) === false);
4000
4681
  } }
4001
- function SearchResultsToolComponent_igo_flexible_1_igo_panel_8_Template(rf, ctx) { if (rf & 1) {
4682
+ function SearchResultsToolComponent_igo_flexible_2_igo_panel_8_Template(rf, ctx) { if (rf & 1) {
4002
4683
  const _r11 = i0.ɵɵgetCurrentView();
4003
4684
  i0.ɵɵelementStart(0, "igo-panel", 13);
4004
4685
  i0.ɵɵelementStart(1, "button", 14);
4005
- i0.ɵɵlistener("click", function SearchResultsToolComponent_igo_flexible_1_igo_panel_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return ctx_r10.toggleTopPanel(); });
4686
+ i0.ɵɵlistener("click", function SearchResultsToolComponent_igo_flexible_2_igo_panel_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return ctx_r10.toggleTopPanel(); });
4006
4687
  i0.ɵɵelement(2, "mat-icon", 15);
4007
4688
  i0.ɵɵpipe(3, "async");
4008
4689
  i0.ɵɵelementEnd();
4009
- i0.ɵɵtemplate(4, SearchResultsToolComponent_igo_flexible_1_igo_panel_8_button_4_Template, 6, 11, "button", 16);
4690
+ i0.ɵɵtemplate(4, SearchResultsToolComponent_igo_flexible_2_igo_panel_8_button_4_Template, 6, 11, "button", 16);
4010
4691
  i0.ɵɵelementStart(5, "igo-feature-details", 17);
4011
- i0.ɵɵlistener("routingEvent", function SearchResultsToolComponent_igo_flexible_1_igo_panel_8_Template_igo_feature_details_routingEvent_5_listener() { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(2); return ctx_r12.getRoute(); });
4692
+ i0.ɵɵlistener("routingEvent", function SearchResultsToolComponent_igo_flexible_2_igo_panel_8_Template_igo_feature_details_routingEvent_5_listener() { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(2); return ctx_r12.getRoute(); });
4012
4693
  i0.ɵɵpipe(6, "async");
4013
4694
  i0.ɵɵelementEnd();
4014
4695
  i0.ɵɵelementEnd();
@@ -4022,18 +4703,18 @@ function SearchResultsToolComponent_igo_flexible_1_igo_panel_8_Template(rf, ctx)
4022
4703
  i0.ɵɵadvance(1);
4023
4704
  i0.ɵɵproperty("feature", i0.ɵɵpipeBind1(6, 8, ctx_r5.feature$))("map", ctx_r5.map)("toolbox", ctx_r5.toolState.toolbox);
4024
4705
  } }
4025
- function SearchResultsToolComponent_igo_flexible_1_Template(rf, ctx) { if (rf & 1) {
4706
+ function SearchResultsToolComponent_igo_flexible_2_Template(rf, ctx) { if (rf & 1) {
4026
4707
  const _r14 = i0.ɵɵgetCurrentView();
4027
4708
  i0.ɵɵelementStart(0, "igo-flexible", 5, 6);
4028
4709
  i0.ɵɵpipe(2, "async");
4029
4710
  i0.ɵɵelementStart(3, "div", 7);
4030
4711
  i0.ɵɵelementStart(4, "igo-search-results", 8);
4031
- i0.ɵɵlistener("resultFocus", function SearchResultsToolComponent_igo_flexible_1_Template_igo_search_results_resultFocus_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return ctx_r13.onResultFocus($event); })("resultSelect", function SearchResultsToolComponent_igo_flexible_1_Template_igo_search_results_resultSelect_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(); return ctx_r15.onResultSelect($event); })("resultUnfocus", function SearchResultsToolComponent_igo_flexible_1_Template_igo_search_results_resultUnfocus_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r16 = i0.ɵɵnextContext(); return ctx_r16.onResultUnfocus($event); })("resultMouseenter", function SearchResultsToolComponent_igo_flexible_1_Template_igo_search_results_resultMouseenter_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r17 = i0.ɵɵnextContext(); return ctx_r17.onResultFocus($event); })("resultMouseleave", function SearchResultsToolComponent_igo_flexible_1_Template_igo_search_results_resultMouseleave_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.onResultUnfocus($event); })("moreResults", function SearchResultsToolComponent_igo_flexible_1_Template_igo_search_results_moreResults_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r19 = i0.ɵɵnextContext(); return ctx_r19.onSearch($event); });
4032
- i0.ɵɵtemplate(5, SearchResultsToolComponent_igo_flexible_1_ng_template_5_Template, 1, 2, "ng-template", null, 9, i0.ɵɵtemplateRefExtractor);
4712
+ i0.ɵɵlistener("resultFocus", function SearchResultsToolComponent_igo_flexible_2_Template_igo_search_results_resultFocus_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return ctx_r13.onResultFocus($event); })("resultSelect", function SearchResultsToolComponent_igo_flexible_2_Template_igo_search_results_resultSelect_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(); return ctx_r15.onResultSelect($event); })("resultUnfocus", function SearchResultsToolComponent_igo_flexible_2_Template_igo_search_results_resultUnfocus_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r16 = i0.ɵɵnextContext(); return ctx_r16.onResultUnfocus($event); })("resultMouseenter", function SearchResultsToolComponent_igo_flexible_2_Template_igo_search_results_resultMouseenter_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r17 = i0.ɵɵnextContext(); return ctx_r17.onResultFocus($event); })("resultMouseleave", function SearchResultsToolComponent_igo_flexible_2_Template_igo_search_results_resultMouseleave_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.onResultUnfocus($event); })("moreResults", function SearchResultsToolComponent_igo_flexible_2_Template_igo_search_results_moreResults_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r19 = i0.ɵɵnextContext(); return ctx_r19.onSearch($event); });
4713
+ i0.ɵɵtemplate(5, SearchResultsToolComponent_igo_flexible_2_ng_template_5_Template, 1, 2, "ng-template", null, 9, i0.ɵɵtemplateRefExtractor);
4033
4714
  i0.ɵɵelementEnd();
4034
4715
  i0.ɵɵelementEnd();
4035
4716
  i0.ɵɵelementStart(7, "div", 10);
4036
- i0.ɵɵtemplate(8, SearchResultsToolComponent_igo_flexible_1_igo_panel_8_Template, 7, 10, "igo-panel", 11);
4717
+ i0.ɵɵtemplate(8, SearchResultsToolComponent_igo_flexible_2_igo_panel_8_Template, 7, 10, "igo-panel", 11);
4037
4718
  i0.ɵɵpipe(9, "async");
4038
4719
  i0.ɵɵelementEnd();
4039
4720
  i0.ɵɵelementEnd();
@@ -4059,11 +4740,16 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
4059
4740
  * to show hide results icons
4060
4741
  */
4061
4742
  this.showIcons = true;
4743
+ /**
4744
+ * Determine the top panel default state
4745
+ */
4746
+ this.topPanelStateDefault = 'expanded';
4062
4747
  this.hasFeatureEmphasisOnSelection = false;
4063
4748
  this.shownResultsGeometries = [];
4064
4749
  this.shownResultsEmphasisGeometries = [];
4065
4750
  this.focusedResult$ = new BehaviorSubject(undefined);
4066
4751
  this.isSelectedResultOutOfView$ = new BehaviorSubject(false);
4752
+ this.debouncedEmpty$ = new BehaviorSubject(true);
4067
4753
  this.term = '';
4068
4754
  this.settingsChange$ = new BehaviorSubject(undefined);
4069
4755
  this.topPanelState$ = new BehaviorSubject('initial');
@@ -4176,6 +4862,7 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
4176
4862
  }
4177
4863
  });
4178
4864
  });
4865
+ this.debouncedEmpty$$ = this.store.stateView.empty$.pipe(debounceTime(1500)).subscribe(empty => this.debouncedEmpty$.next(empty));
4179
4866
  }
4180
4867
  monitorResultOutOfView() {
4181
4868
  this.isSelectedResultOutOfView$$ = combineLatest([
@@ -4275,6 +4962,9 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
4275
4962
  if (this.getRoute$$) {
4276
4963
  this.getRoute$$.unsubscribe();
4277
4964
  }
4965
+ if (this.debouncedEmpty$$) {
4966
+ this.debouncedEmpty$$.unsubscribe();
4967
+ }
4278
4968
  }
4279
4969
  /**
4280
4970
  * Try to add a feature to the map when it's being focused
@@ -4319,18 +5009,20 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
4319
5009
  this.map.searchResultsOverlay.dataSource.ol.clear();
4320
5010
  this.tryAddFeatureToMap(result);
4321
5011
  this.searchState.setSelectedResult(result);
5012
+ if (this.topPanelState === 'initial') {
5013
+ if (this.topPanelStateDefault !== 'collapsed') {
5014
+ this.topPanelState = 'expanded';
5015
+ }
5016
+ else {
5017
+ this.topPanelState = 'collapsed';
5018
+ }
5019
+ }
4322
5020
  if (this.topPanelState === 'expanded') {
4323
5021
  const igoList = this.computeElementRef()[0];
4324
5022
  const selected = this.computeElementRef()[1];
4325
- setTimeout(() => {
4326
- // To be sure the flexible component has been displayed yet
4327
- if (!this.isScrolledIntoView(igoList, selected)) {
4328
- this.adjustTopPanel(igoList, selected);
4329
- }
4330
- }, FlexibleComponent.transitionTime + 50);
4331
- }
4332
- if (this.topPanelState === 'initial') {
4333
- this.topPanelState = 'expanded';
5023
+ if (!this.isScrolledIntoView(igoList, selected)) {
5024
+ this.adjustTopPanel(igoList, selected);
5025
+ }
4334
5026
  }
4335
5027
  }
4336
5028
  onSearch(event) {
@@ -4461,21 +5153,31 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
4461
5153
  stop.text = this.featureTitle;
4462
5154
  stop.coordinates = coord;
4463
5155
  this.directionState.stopsStore.update(stop);
5156
+ if (this.map.geolocationController.position$.value) {
5157
+ const currentPos = this.map.geolocationController.position$.value;
5158
+ const stop = this.directionState.stopsStore.all().find((e) => e.position === 0);
5159
+ const currentCoord = olProj.transform(currentPos.position, currentPos.projection, 'EPSG:4326');
5160
+ const coord = roundCoordTo([currentCoord[0], currentCoord[1]], 6);
5161
+ stop.text = coord.join(',');
5162
+ stop.coordinates = coord;
5163
+ this.directionState.stopsStore.update(stop);
5164
+ }
4464
5165
  }
4465
5166
  });
4466
5167
  }, 250);
4467
5168
  }
4468
5169
  };
4469
- SearchResultsToolComponent.ɵfac = function SearchResultsToolComponent_Factory(t) { return new (t || SearchResultsToolComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(SearchState), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(DirectionState), i0.ɵɵdirectiveInject(i2$2.ConfigService)); };
4470
- SearchResultsToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultsToolComponent, selectors: [["igo-search-results-tool"]], inputs: { showIcons: "showIcons", topPanelState: "topPanelState" }, decls: 3, vars: 4, consts: [["style", "margin: 10px;", 4, "ngIf"], ["initial", "100%", "initialMobile", "100%", "collapsed", "calc(100% - 58px)", "collapsedMobile", "calc(100% - 58px)", "expanded", "60%", "expandedMobile", "60%", 3, "state", 4, "ngIf"], [2, "margin", "10px"], [1, "mat-typography"], [3, "innerHTML"], ["initial", "100%", "initialMobile", "100%", "collapsed", "calc(100% - 58px)", "collapsedMobile", "calc(100% - 58px)", "expanded", "60%", "expandedMobile", "60%", 3, "state"], ["topPanel", ""], [1, "igo-content"], ["placeholder", "false", 3, "store", "showIcons", "term", "termSplitter", "settingsChange$", "resultFocus", "resultSelect", "resultUnfocus", "resultMouseenter", "resultMouseleave", "moreResults"], ["igoSearchItemToolbar", ""], ["igoFlexibleFill", "", 1, "igo-content"], [3, "title", 4, "ngIf"], [3, "map", "layer"], [3, "title"], ["mat-icon-button", "", "panelLeftButton", "", 1, "igo-icon-button", 3, "click"], [3, "svgIcon"], ["mat-icon-button", "", "panelRightButton", "", "class", "igo-icon-button", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], ["igoFeatureDetailsDirective", "", 3, "feature", "map", "toolbox", "routingEvent"], ["mat-icon-button", "", "panelRightButton", "", "matTooltipShowDelay", "500", 1, "igo-icon-button", 3, "matTooltip", "click"], ["matBadgeColor", "accent", "matBadgeSize", "small", "svgIcon", "magnify-plus-outline", 3, "matBadge", "matBadgeHidden"]], template: function SearchResultsToolComponent_Template(rf, ctx) { if (rf & 1) {
5170
+ SearchResultsToolComponent.ɵfac = function SearchResultsToolComponent_Factory(t) { return new (t || SearchResultsToolComponent)(i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(SearchState), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(DirectionState), i0.ɵɵdirectiveInject(i2.ConfigService)); };
5171
+ SearchResultsToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultsToolComponent, selectors: [["igo-search-results-tool"]], inputs: { showIcons: "showIcons", topPanelStateDefault: "topPanelStateDefault", topPanelState: "topPanelState" }, decls: 4, vars: 6, consts: [["style", "margin: 10px;", 4, "ngIf"], ["initial", "100%", "initialMobile", "100%", "collapsed", "calc(100% - 58px)", "collapsedMobile", "calc(100% - 58px)", "expanded", "60%", "expandedMobile", "60%", 3, "state", 4, "ngIf"], [2, "margin", "10px"], [1, "mat-typography"], [3, "innerHTML"], ["initial", "100%", "initialMobile", "100%", "collapsed", "calc(100% - 58px)", "collapsedMobile", "calc(100% - 58px)", "expanded", "60%", "expandedMobile", "60%", 3, "state"], ["topPanel", ""], [1, "igo-content"], ["placeholder", "false", 3, "store", "showIcons", "term", "termSplitter", "settingsChange$", "resultFocus", "resultSelect", "resultUnfocus", "resultMouseenter", "resultMouseleave", "moreResults"], ["igoSearchItemToolbar", ""], ["igoFlexibleFill", "", 1, "igo-content"], [3, "title", 4, "ngIf"], [3, "map", "layer"], [3, "title"], ["mat-icon-button", "", "panelLeftButton", "", 1, "igo-icon-button", 3, "click"], [3, "svgIcon"], ["mat-icon-button", "", "panelRightButton", "", "class", "igo-icon-button", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], ["igoFeatureDetailsDirective", "", 3, "feature", "map", "toolbox", "routingEvent"], ["mat-icon-button", "", "panelRightButton", "", "matTooltipShowDelay", "500", 1, "igo-icon-button", 3, "matTooltip", "click"], ["matBadgeColor", "accent", "matBadgeSize", "small", "svgIcon", "magnify-plus-outline", 3, "matBadge", "matBadgeHidden"]], template: function SearchResultsToolComponent_Template(rf, ctx) { if (rf & 1) {
4471
5172
  i0.ɵɵtemplate(0, SearchResultsToolComponent_div_0_Template, 13, 11, "div", 0);
4472
- i0.ɵɵtemplate(1, SearchResultsToolComponent_igo_flexible_1_Template, 10, 11, "igo-flexible", 1);
4473
- i0.ɵɵpipe(2, "async");
5173
+ i0.ɵɵpipe(1, "async");
5174
+ i0.ɵɵtemplate(2, SearchResultsToolComponent_igo_flexible_2_Template, 10, 11, "igo-flexible", 1);
5175
+ i0.ɵɵpipe(3, "async");
4474
5176
  } if (rf & 2) {
4475
- i0.ɵɵproperty("ngIf", !ctx.store || ctx.store.stateView.empty);
4476
- i0.ɵɵadvance(1);
4477
- i0.ɵɵproperty("ngIf", ctx.store && i0.ɵɵpipeBind1(2, 2, ctx.store.stateView.empty$) === false);
4478
- } }, directives: [i4.NgIf, i7.FlexibleComponent, i1.SearchResultsComponent, i1.SearchResultAddButtonComponent, i7.PanelComponent, i3.MatButton, i6.MatIcon, i1.FeatureDetailsComponent, i1.FeatureDetailsDirective, i4$1.MatTooltip, i12.MatBadge], pipes: [i4.AsyncPipe, i8.TranslatePipe, i7.SanitizeHtmlPipe], encapsulation: 2, changeDetection: 0 });
5177
+ i0.ɵɵproperty("ngIf", (!ctx.store || ctx.store.stateView.empty) && i0.ɵɵpipeBind1(1, 2, ctx.debouncedEmpty$));
5178
+ i0.ɵɵadvance(2);
5179
+ i0.ɵɵproperty("ngIf", ctx.store && i0.ɵɵpipeBind1(3, 4, ctx.store.stateView.empty$) === false);
5180
+ } }, directives: [i5.NgIf, i4.FlexibleComponent, i1$1.SearchResultsComponent, i1$1.SearchResultAddButtonComponent, i4.PanelComponent, i3.MatButton, i6.MatIcon, i1$1.FeatureDetailsComponent, i1$1.FeatureDetailsDirective, i4$1.MatTooltip, i12.MatBadge], pipes: [i5.AsyncPipe, i8.TranslatePipe, i4.SanitizeHtmlPipe], encapsulation: 2, changeDetection: 0 });
4479
5181
  SearchResultsToolComponent = __decorate([
4480
5182
  ToolComponent({
4481
5183
  name: 'searchResults',
@@ -4490,7 +5192,9 @@ SearchResultsToolComponent = __decorate([
4490
5192
  templateUrl: './search-results-tool.component.html',
4491
5193
  changeDetection: ChangeDetectionStrategy.OnPush
4492
5194
  }]
4493
- }], function () { return [{ type: MapState }, { type: SearchState }, { type: i0.ElementRef }, { type: ToolState }, { type: DirectionState }, { type: i2$2.ConfigService }]; }, { showIcons: [{
5195
+ }], function () { return [{ type: MapState }, { type: SearchState }, { type: i0.ElementRef }, { type: ToolState }, { type: DirectionState }, { type: i2.ConfigService }]; }, { showIcons: [{
5196
+ type: Input
5197
+ }], topPanelStateDefault: [{
4494
5198
  type: Input
4495
5199
  }], topPanelState: [{
4496
5200
  type: Input
@@ -4578,7 +5282,7 @@ let OgcFilterToolComponent = class OgcFilterToolComponent {
4578
5282
  OgcFilterToolComponent.ɵfac = function OgcFilterToolComponent_Factory(t) { return new (t || OgcFilterToolComponent)(); };
4579
5283
  OgcFilterToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterToolComponent, selectors: [["igo-ogc-filter-tool"]], decls: 1, vars: 0, consts: [["igoOgcFilterableListBinding", ""]], template: function OgcFilterToolComponent_Template(rf, ctx) { if (rf & 1) {
4580
5284
  i0.ɵɵelement(0, "igo-ogc-filterable-list", 0);
4581
- } }, directives: [i1.OgcFilterableListComponent, i1.OgcFilterableListBindingDirective], encapsulation: 2 });
5285
+ } }, directives: [i1$1.OgcFilterableListComponent, i1$1.OgcFilterableListBindingDirective], encapsulation: 2 });
4582
5286
  OgcFilterToolComponent = __decorate([
4583
5287
  ToolComponent({
4584
5288
  name: 'ogcFilter',
@@ -4600,7 +5304,7 @@ let TimeFilterToolComponent = class TimeFilterToolComponent {
4600
5304
  TimeFilterToolComponent.ɵfac = function TimeFilterToolComponent_Factory(t) { return new (t || TimeFilterToolComponent)(); };
4601
5305
  TimeFilterToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeFilterToolComponent, selectors: [["igo-time-filter-tool"]], decls: 1, vars: 0, consts: [["igoTimeFilterListBinding", ""]], template: function TimeFilterToolComponent_Template(rf, ctx) { if (rf & 1) {
4602
5306
  i0.ɵɵelement(0, "igo-time-filter-list", 0);
4603
- } }, directives: [i1.TimeFilterListComponent, i1.TimeFilterListBindingDirective], encapsulation: 2 });
5307
+ } }, directives: [i1$1.TimeFilterListComponent, i1$1.TimeFilterListBindingDirective], encapsulation: 2 });
4604
5308
  TimeFilterToolComponent = __decorate([
4605
5309
  ToolComponent({
4606
5310
  name: 'timeFilter',
@@ -4894,6 +5598,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
4894
5598
  .pipe(take(1))
4895
5599
  .subscribe((dataSource) => {
4896
5600
  const olLayer = this.layerService.createLayer({
5601
+ isIgoInternalLayer: true,
4897
5602
  title: ('Zone ' + i + ' - ' + this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
4898
5603
  workspace: { enabled: true },
4899
5604
  _internal: {
@@ -4984,6 +5689,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
4984
5689
  style = this.createSvgIcon(icon) || createOverlayMarkerStyle();
4985
5690
  }
4986
5691
  const olLayer = this.layerService.createLayer({
5692
+ isIgoInternalLayer: true,
4987
5693
  title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
4988
5694
  source: dataSource,
4989
5695
  visible: true,
@@ -5049,6 +5755,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
5049
5755
  .pipe(take(1))
5050
5756
  .subscribe((dataSource) => {
5051
5757
  const olLayer = this.layerService.createLayer({
5758
+ isIgoInternalLayer: true,
5052
5759
  title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
5053
5760
  source: dataSource,
5054
5761
  visible: true
@@ -5089,7 +5796,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
5089
5796
  this.activeLayers.push(layer);
5090
5797
  }
5091
5798
  };
5092
- SpatialFilterToolComponent.ɵfac = function SpatialFilterToolComponent_Factory(t) { return new (t || SpatialFilterToolComponent)(i0.ɵɵdirectiveInject(i6.MatIconRegistry), i0.ɵɵdirectiveInject(i1.SpatialFilterService), i0.ɵɵdirectiveInject(i1.DataSourceService), i0.ɵɵdirectiveInject(i1.LayerService), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2$2.MessageService), i0.ɵɵdirectiveInject(i2$2.LanguageService), i0.ɵɵdirectiveInject(ImportExportState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(WorkspaceState), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
5799
+ SpatialFilterToolComponent.ɵfac = function SpatialFilterToolComponent_Factory(t) { return new (t || SpatialFilterToolComponent)(i0.ɵɵdirectiveInject(i6.MatIconRegistry), i0.ɵɵdirectiveInject(i1$1.SpatialFilterService), i0.ɵɵdirectiveInject(i1$1.DataSourceService), i0.ɵɵdirectiveInject(i1$1.LayerService), i0.ɵɵdirectiveInject(MapState), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(ImportExportState), i0.ɵɵdirectiveInject(ToolState), i0.ɵɵdirectiveInject(WorkspaceState), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
5093
5800
  SpatialFilterToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SpatialFilterToolComponent, selectors: [["igo-spatial-filter-tool"]], inputs: { type: "type", itemType: "itemType", freehandDrawIsActive: "freehandDrawIsActive" }, decls: 6, vars: 16, consts: [[3, "store", "selectedQueryType", "zone", "layers", "eventType", "eventQueryType", "zoneChange", "zoneWithBufferChange", "bufferChange", "measureUnitChange"], [3, "type", "queryType", "map", "zone", "loading", "store", "layers", "allLayers", "thematicLength", "radiusEvent", "bufferEvent", "measureUnitChange", "freehandControl", "drawZoneEvent", "zoneWithBufferChange", "itemTypeChange", "thematicChange", "toggleSearch", "clearButtonEvent", "clearSearchEvent", "export", "openWorkspace", "entityChange"], [4, "ngIf"], [3, "feature"]], template: function SpatialFilterToolComponent_Template(rf, ctx) { if (rf & 1) {
5094
5801
  i0.ɵɵelementStart(0, "igo-panel");
5095
5802
  i0.ɵɵelementStart(1, "igo-spatial-filter-type", 0);
@@ -5110,7 +5817,7 @@ SpatialFilterToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
5110
5817
  i0.ɵɵproperty("type", ctx.type)("queryType", ctx.queryType)("map", ctx.map)("zone", ctx.zone)("loading", ctx.loading)("store", ctx.store)("layers", ctx.activeLayers)("allLayers", ctx.layers)("thematicLength", ctx.thematicLength);
5111
5818
  i0.ɵɵadvance(2);
5112
5819
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(5, 14, ctx.selectedFeature$));
5113
- } }, directives: [i1.SpatialFilterTypeComponent, i1.SpatialFilterItemComponent, i4.NgIf], pipes: [i4.AsyncPipe], styles: [""], changeDetection: 0 });
5820
+ } }, directives: [i1$1.SpatialFilterTypeComponent, i1$1.SpatialFilterItemComponent, i5.NgIf], pipes: [i5.AsyncPipe], styles: [""], changeDetection: 0 });
5114
5821
  SpatialFilterToolComponent = __decorate([
5115
5822
  ToolComponent({
5116
5823
  name: 'spatialFilter',
@@ -5129,7 +5836,7 @@ SpatialFilterToolComponent = __decorate([
5129
5836
  styleUrls: ['./spatial-filter-tool.component.scss'],
5130
5837
  changeDetection: ChangeDetectionStrategy.OnPush
5131
5838
  }]
5132
- }], function () { return [{ type: i6.MatIconRegistry }, { type: i1.SpatialFilterService }, { type: i1.DataSourceService }, { type: i1.LayerService }, { type: MapState }, { type: i2$2.MessageService }, { type: i2$2.LanguageService }, { type: ImportExportState }, { type: ToolState }, { type: WorkspaceState }, { type: i0.ChangeDetectorRef }]; }, { type: [{
5839
+ }], function () { return [{ type: i6.MatIconRegistry }, { type: i1$1.SpatialFilterService }, { type: i1$1.DataSourceService }, { type: i1$1.LayerService }, { type: MapState }, { type: i2.MessageService }, { type: i2.LanguageService }, { type: ImportExportState }, { type: ToolState }, { type: WorkspaceState }, { type: i0.ChangeDetectorRef }]; }, { type: [{
5133
5840
  type: Input
5134
5841
  }], itemType: [{
5135
5842
  type: Input
@@ -5168,7 +5875,7 @@ ActiveTimeFilterToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ typ
5168
5875
  i0.ɵɵelement(0, "igo-time-filter-item", 0);
5169
5876
  } if (rf & 2) {
5170
5877
  i0.ɵɵproperty("map", ctx.map)("layer", ctx.layer)("header", false)("@toolSlideInOut", ctx.animate);
5171
- } }, directives: [i1.TimeFilterItemComponent], encapsulation: 2, data: { animation: [toolSlideInOut$1()] } });
5878
+ } }, directives: [i1$1.TimeFilterItemComponent], encapsulation: 2, data: { animation: [toolSlideInOut$1()] } });
5172
5879
  ActiveTimeFilterToolComponent = __decorate([
5173
5880
  ToolComponent({
5174
5881
  name: 'activeTimeFilter',
@@ -5217,7 +5924,7 @@ ActiveOgcFilterToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
5217
5924
  i0.ɵɵelement(0, "igo-ogc-filterable-item", 0);
5218
5925
  } if (rf & 2) {
5219
5926
  i0.ɵɵproperty("map", ctx.map)("layer", ctx.layer)("header", false)("@toolSlideInOut", ctx.animate);
5220
- } }, directives: [i1.OgcFilterableItemComponent], encapsulation: 2, data: { animation: [toolSlideInOut()] } });
5927
+ } }, directives: [i1$1.OgcFilterableItemComponent], encapsulation: 2, data: { animation: [toolSlideInOut()] } });
5221
5928
  ActiveOgcFilterToolComponent = __decorate([
5222
5929
  ToolComponent({
5223
5930
  name: 'activeOgcFilter',
@@ -5343,8 +6050,8 @@ let AboutToolComponent = class AboutToolComponent {
5343
6050
  this._headerHtml = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');
5344
6051
  this.loading = false;
5345
6052
  this.version = configService.getConfig('version');
5346
- this.baseUrlProfil = configService.getConfig('context.url') + '/user/igo?';
5347
- this.baseUrlGuide = configService.getConfig('depot.url') + '/projects/Documentation/files/';
6053
+ this.baseUrlProfil = configService.getConfig('storage.url');
6054
+ this.baseUrlGuide = configService.getConfig('depot.url') + configService.getConfig('depot.guideUrl');
5348
6055
  }
5349
6056
  get headerHtml() {
5350
6057
  return this._headerHtml;
@@ -5401,7 +6108,7 @@ let AboutToolComponent = class AboutToolComponent {
5401
6108
  return name;
5402
6109
  }
5403
6110
  };
5404
- AboutToolComponent.ɵfac = function AboutToolComponent_Factory(t) { return new (t || AboutToolComponent)(i0.ɵɵdirectiveInject(i2$2.ConfigService), i0.ɵɵdirectiveInject(i2$1.AuthService), i0.ɵɵdirectiveInject(i3$2.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2$2.LanguageService)); };
6111
+ AboutToolComponent.ɵfac = function AboutToolComponent_Factory(t) { return new (t || AboutToolComponent)(i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i2$1.AuthService), i0.ɵɵdirectiveInject(i3$2.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.LanguageService)); };
5405
6112
  AboutToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AboutToolComponent, selectors: [["igo-about-tool"]], inputs: { headerHtml: "headerHtml", html: "html", discoverTitleInLocale: "discoverTitleInLocale", trainingGuideURLs: "trainingGuideURLs" }, decls: 10, vars: 11, consts: [["mat-raised-button", "", "tourToStart", "global", "menuIsOpen", "true", "styleButton", "raised", 3, "discoverTitleInLocale$"], ["class", "training-guide-button", "mat-raised-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "click", 4, "ngIf"], ["class", "training-guide-button", "mat-raised-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "matMenuTriggerFor", 4, "ngIf"], ["menu", "matMenu"], ["mat-menu-item", "", 3, "click", 4, "ngFor", "ngForOf"], ["class", "mat-typography", 3, "html", 4, "ngIf"], [1, "mat-typography", 3, "html"], ["mat-raised-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "training-guide-button", 3, "disabled", "matTooltip", "click"], ["svgIcon", "file-document"], ["mat-raised-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "training-guide-button", 3, "disabled", "matTooltip", "matMenuTriggerFor"], ["mat-menu-item", "", 3, "click"]], template: function AboutToolComponent_Template(rf, ctx) { if (rf & 1) {
5406
6113
  i0.ɵɵelement(0, "p");
5407
6114
  i0.ɵɵelement(1, "igo-interactive-tour", 0);
@@ -5426,7 +6133,7 @@ AboutToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AboutToo
5426
6133
  i0.ɵɵproperty("ngIf", ctx.headerHtml !== "");
5427
6134
  i0.ɵɵadvance(1);
5428
6135
  i0.ɵɵproperty("html", i0.ɵɵpipeBind2(9, 6, ctx.html, i0.ɵɵpureFunction1(9, _c0, ctx.version)));
5429
- } }, directives: [i7.InteractiveTourComponent, i4.NgIf, i6$2.MatMenu, i4.NgForOf, i7.CustomHtmlComponent, i3.MatButton, i4$1.MatTooltip, i6.MatIcon, i6$2.MatMenuTrigger, i6$2.MatMenuItem], pipes: [i8.TranslatePipe], styles: ["igo-interactive-tour[_ngcontent-%COMP%]{margin-left:20px}.training-guide-button[_ngcontent-%COMP%]{margin-left:5px;background-color:#1976d2;color:#fff;padding:0 12px}"] });
6136
+ } }, directives: [i4.InteractiveTourComponent, i5.NgIf, i6$2.MatMenu, i5.NgForOf, i4.CustomHtmlComponent, i3.MatButton, i4$1.MatTooltip, i6.MatIcon, i6$2.MatMenuTrigger, i6$2.MatMenuItem], pipes: [i8.TranslatePipe], styles: ["igo-interactive-tour[_ngcontent-%COMP%]{margin-left:20px}.training-guide-button[_ngcontent-%COMP%]{margin-left:5px;background-color:#1976d2;color:#fff;padding:0 12px}"] });
5430
6137
  AboutToolComponent = __decorate([
5431
6138
  ToolComponent({
5432
6139
  name: 'about',
@@ -5441,7 +6148,7 @@ AboutToolComponent = __decorate([
5441
6148
  templateUrl: './about-tool.component.html',
5442
6149
  styleUrls: ['./about-tool.component.scss']
5443
6150
  }]
5444
- }], function () { return [{ type: i2$2.ConfigService }, { type: i2$1.AuthService }, { type: i3$2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2$2.LanguageService }]; }, { headerHtml: [{
6151
+ }], function () { return [{ type: i2.ConfigService }, { type: i2$1.AuthService }, { type: i3$2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2.LanguageService }]; }, { headerHtml: [{
5445
6152
  type: Input
5446
6153
  }], html: [{
5447
6154
  type: Input
@@ -5582,87 +6289,6 @@ IgoAppToolModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[]] });
5582
6289
  }]
5583
6290
  }], null, null); })();
5584
6291
 
5585
- /**
5586
- * Service that holds the state of the context module
5587
- */
5588
- class ContextState {
5589
- constructor(contextService, toolService, toolState, languageService) {
5590
- this.contextService = contextService;
5591
- this.toolService = toolService;
5592
- this.toolState = toolState;
5593
- this.languageService = languageService;
5594
- /**
5595
- * Observable of the active context
5596
- */
5597
- this.context$ = new BehaviorSubject(undefined);
5598
- this.contextService.context$.subscribe((context) => {
5599
- this.onContextChange(context);
5600
- });
5601
- this.contextService.toolsChanged$.subscribe((context) => {
5602
- this.updateTools(context);
5603
- });
5604
- }
5605
- /**
5606
- * Set the active context
5607
- * @param context Detailed context
5608
- */
5609
- setContext(context) {
5610
- this.updateTools(context);
5611
- this.context$.next(context);
5612
- }
5613
- /**
5614
- * Update the tool state with the context's tools
5615
- * @param context Detailed context
5616
- */
5617
- updateTools(context) {
5618
- const toolbox = this.toolState.toolbox;
5619
- const tools = [];
5620
- const contextTools = context.tools || [];
5621
- contextTools.forEach((contextTool) => {
5622
- const baseTool = this.toolService.getTool(contextTool.name);
5623
- if (baseTool === undefined) {
5624
- return;
5625
- }
5626
- const options = Object.assign({}, baseTool.options || {}, contextTool.options || {});
5627
- const tool = Object.assign({}, baseTool, contextTool, { options });
5628
- tools.push(tool);
5629
- });
5630
- tools.forEach((tool) => {
5631
- if (tool.parent) {
5632
- const parentIndex = tools.findIndex((el) => el.name === tool.parent);
5633
- if (parentIndex !== -1) {
5634
- tools[parentIndex].children = [];
5635
- tools[parentIndex].children.push(tool.name);
5636
- }
5637
- }
5638
- });
5639
- toolbox.setTools(tools);
5640
- toolbox.setToolbar(context.toolbar || []);
5641
- // TODO: This is a patch so the context service can work without
5642
- // injecting the ToolState or without being completely refactored
5643
- this.contextService.setTools([].concat(tools));
5644
- this.contextService.setToolbar(context.toolbar || []);
5645
- }
5646
- /**
5647
- * Set a new context and update the tool state
5648
- * @param context Detailed context
5649
- */
5650
- onContextChange(context) {
5651
- if (context === undefined) {
5652
- return;
5653
- }
5654
- this.setContext(context);
5655
- }
5656
- }
5657
- ContextState.ɵfac = function ContextState_Factory(t) { return new (t || ContextState)(i0.ɵɵinject(i2.ContextService), i0.ɵɵinject(i7.ToolService), i0.ɵɵinject(ToolState), i0.ɵɵinject(i2$2.LanguageService)); };
5658
- ContextState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ContextState, factory: ContextState.ɵfac, providedIn: 'root' });
5659
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextState, [{
5660
- type: Injectable,
5661
- args: [{
5662
- providedIn: 'root'
5663
- }]
5664
- }], function () { return [{ type: i2.ContextService }, { type: i7.ToolService }, { type: ToolState }, { type: i2$2.LanguageService }]; }, null); })();
5665
-
5666
6292
  /**
5667
6293
  * Service that holds the state of the search module
5668
6294
  */
@@ -5718,14 +6344,14 @@ class AnalyticsListenerService {
5718
6344
  });
5719
6345
  }
5720
6346
  }
5721
- AnalyticsListenerService.ɵfac = function AnalyticsListenerService_Factory(t) { return new (t || AnalyticsListenerService)(i0.ɵɵinject(i2$2.AnalyticsService), i0.ɵɵinject(i2$1.AuthService), i0.ɵɵinject(ContextState), i0.ɵɵinject(SearchState), i0.ɵɵinject(ToolState)); };
6347
+ AnalyticsListenerService.ɵfac = function AnalyticsListenerService_Factory(t) { return new (t || AnalyticsListenerService)(i0.ɵɵinject(i2.AnalyticsService), i0.ɵɵinject(i2$1.AuthService), i0.ɵɵinject(ContextState), i0.ɵɵinject(SearchState), i0.ɵɵinject(ToolState)); };
5722
6348
  AnalyticsListenerService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AnalyticsListenerService, factory: AnalyticsListenerService.ɵfac, providedIn: 'root' });
5723
6349
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnalyticsListenerService, [{
5724
6350
  type: Injectable,
5725
6351
  args: [{
5726
6352
  providedIn: 'root'
5727
6353
  }]
5728
- }], function () { return [{ type: i2$2.AnalyticsService }, { type: i2$1.AuthService }, { type: ContextState }, { type: SearchState }, { type: ToolState }]; }, null); })();
6354
+ }], function () { return [{ type: i2.AnalyticsService }, { type: i2$1.AuthService }, { type: ContextState }, { type: SearchState }, { type: ToolState }]; }, null); })();
5729
6355
 
5730
6356
  /**
5731
6357
  * Service that holds the state of the query module
@@ -5748,14 +6374,14 @@ class QueryState {
5748
6374
  }
5749
6375
  }
5750
6376
  }
5751
- QueryState.ɵfac = function QueryState_Factory(t) { return new (t || QueryState)(i0.ɵɵinject(i2$2.ConfigService)); };
6377
+ QueryState.ɵfac = function QueryState_Factory(t) { return new (t || QueryState)(i0.ɵɵinject(i2.ConfigService)); };
5752
6378
  QueryState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryState, factory: QueryState.ɵfac, providedIn: 'root' });
5753
6379
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryState, [{
5754
6380
  type: Injectable,
5755
6381
  args: [{
5756
6382
  providedIn: 'root'
5757
6383
  }]
5758
- }], function () { return [{ type: i2$2.ConfigService }]; }, null); })();
6384
+ }], function () { return [{ type: i2.ConfigService }]; }, null); })();
5759
6385
 
5760
6386
  /*
5761
6387
  * Public API Surface of tools
@@ -5765,5 +6391,5 @@ QueryState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryState, f
5765
6391
  * Generated bundle index. Do not edit.
5766
6392
  */
5767
6393
 
5768
- export { AboutToolComponent, ActiveOgcFilterToolComponent, ActiveTimeFilterToolComponent, AdvancedMapToolComponent, AnalyticsListenerService, CatalogBrowserToolComponent, CatalogLibraryToolComponent, CatalogState, ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent, ContextState, DirectionState, DirectionsToolComponent, DrawState, DrawingToolComponent, FeatureActionsService, IgoAppAboutModule, IgoAppAnalyticsModule, IgoAppCatalogBrowserToolModule, IgoAppCatalogLibraryToolModule, IgoAppCatalogModule, IgoAppContextModule, IgoAppDirectionsModule, IgoAppDrawModule, IgoAppFilterModule, IgoAppImportExportModule, IgoAppMapModule, IgoAppMeasureModule, IgoAppMeasurerToolModule, IgoAppPrintModule, IgoAppSearchBarModule, IgoAppSearchModule, IgoAppSearchResultsToolModule, IgoAppStorageModule, IgoAppToolModule, IgoAppWorkspaceModule, IgoIntegrationModule, ImportExportMode, ImportExportState, ImportExportToolComponent, ImportExportType, MapDetailsToolComponent, MapLegendToolComponent, MapState, MapToolComponent, MapToolsComponent, MeasureState, MeasurerToolComponent, OgcFilterToolComponent, PrintToolComponent, QueryState, SearchBarBindingDirective, SearchResultsToolComponent, SearchState, SpatialFilterToolComponent, StorageState, TimeFilterToolComponent, ToolState, WfsActionsService, WorkspaceButtonComponent, WorkspaceState };
6394
+ export { AboutToolComponent, ActiveOgcFilterToolComponent, ActiveTimeFilterToolComponent, AdvancedMapToolComponent, AnalyticsListenerService, CatalogBrowserToolComponent, CatalogLibraryToolComponent, CatalogState, ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent, ContextState, DirectionState, DirectionsToolComponent, DrawState, DrawingToolComponent, FeatureActionsService, IgoAppAboutModule, IgoAppAnalyticsModule, IgoAppCatalogBrowserToolModule, IgoAppCatalogLibraryToolModule, IgoAppCatalogModule, IgoAppContextModule, IgoAppDirectionsModule, IgoAppDrawModule, IgoAppFilterModule, IgoAppImportExportModule, IgoAppMapModule, IgoAppMeasureModule, IgoAppMeasurerToolModule, IgoAppPrintModule, IgoAppSearchBarModule, IgoAppSearchModule, IgoAppSearchResultsToolModule, IgoAppStorageModule, IgoAppToolModule, IgoAppWorkspaceModule, IgoIntegrationModule, ImportExportMode, ImportExportState, ImportExportToolComponent, ImportExportType, MapDetailsToolComponent, MapLegendToolComponent, MapProximityState, MapProximityToolComponent, MapState, MapToolComponent, MapToolsComponent, MeasureState, MeasurerToolComponent, OgcFilterToolComponent, PrintToolComponent, QueryState, SearchBarBindingDirective, SearchResultsToolComponent, SearchState, SpatialFilterToolComponent, StorageState, TimeFilterToolComponent, ToolState, WfsActionsService, WorkspaceButtonComponent, WorkspaceState };
5769
6395
  //# sourceMappingURL=igo2-integration.js.map