@igo2/integration 18.0.0-next.1 → 18.0.0-next.11

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 (84) hide show
  1. package/esm2022/lib/about/about-tool/about-tool.component.mjs +4 -4
  2. package/esm2022/lib/about/about.module.mjs +5 -5
  3. package/esm2022/lib/analytics/analytics-listener.service.mjs +9 -5
  4. package/esm2022/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs +8 -4
  5. package/esm2022/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.mjs +5 -5
  6. package/esm2022/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs +4 -4
  7. package/esm2022/lib/catalog/catalog-library-tool/catalog-library-tool.module.mjs +5 -5
  8. package/esm2022/lib/catalog/catalog.module.mjs +5 -5
  9. package/esm2022/lib/catalog/catalog.state.mjs +4 -4
  10. package/esm2022/lib/context/context-editor-tool/context-editor-tool.component.mjs +4 -4
  11. package/esm2022/lib/context/context-manager-tool/context-manager-tool.component.mjs +4 -4
  12. package/esm2022/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.mjs +4 -4
  13. package/esm2022/lib/context/context-share-tool/context-share-tool.component.mjs +4 -4
  14. package/esm2022/lib/context/context.module.mjs +5 -5
  15. package/esm2022/lib/context/context.state.mjs +4 -4
  16. package/esm2022/lib/directions/directions-tool/directions-tool.component.mjs +6 -6
  17. package/esm2022/lib/directions/directions.module.mjs +5 -5
  18. package/esm2022/lib/directions/directions.state.mjs +9 -21
  19. package/esm2022/lib/draw/draw.module.mjs +5 -5
  20. package/esm2022/lib/draw/draw.state.mjs +6 -6
  21. package/esm2022/lib/draw/drawing-tool/drawing-tool.component.mjs +4 -4
  22. package/esm2022/lib/draw/drawing-tool/drawing-tool.module.mjs +5 -5
  23. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  24. package/esm2022/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.mjs +7 -7
  25. package/esm2022/lib/filter/active-time-filter-tool/active-time-filter-tool.component.mjs +7 -7
  26. package/esm2022/lib/filter/filter.module.mjs +5 -5
  27. package/esm2022/lib/filter/ogc-filter-tool/ogc-filter-tool.component.mjs +4 -4
  28. package/esm2022/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +106 -106
  29. package/esm2022/lib/filter/time-filter-tool/time-filter-tool.component.mjs +4 -4
  30. package/esm2022/lib/geometry-form/data-issue-reporter-tool/data-issue-reporter-tool.component.mjs +10 -6
  31. package/esm2022/lib/geometry-form/geometry-form.module.mjs +5 -5
  32. package/esm2022/lib/import-export/import-export-tool/import-export-tool.component.mjs +4 -4
  33. package/esm2022/lib/import-export/import-export.module.mjs +5 -5
  34. package/esm2022/lib/import-export/import-export.state.mjs +4 -4
  35. package/esm2022/lib/integration.module.mjs +5 -5
  36. package/esm2022/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +4 -4
  37. package/esm2022/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +12 -6
  38. package/esm2022/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +23 -23
  39. package/esm2022/lib/map/layer-list-tool.state.mjs +4 -4
  40. package/esm2022/lib/map/map-details-tool/map-details-tool.component.mjs +50 -21
  41. package/esm2022/lib/map/map-legend/map-legend-tool.component.mjs +9 -9
  42. package/esm2022/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +4 -4
  43. package/esm2022/lib/map/map-proximity.state.mjs +10 -11
  44. package/esm2022/lib/map/map-tool/map-tool.component.mjs +50 -14
  45. package/esm2022/lib/map/map-tools/map-tools.component.mjs +58 -25
  46. package/esm2022/lib/map/map.module.mjs +5 -5
  47. package/esm2022/lib/map/map.state.mjs +4 -6
  48. package/esm2022/lib/measure/measure.module.mjs +5 -5
  49. package/esm2022/lib/measure/measure.state.mjs +7 -6
  50. package/esm2022/lib/measure/measurer-tool/measurer-tool.component.mjs +4 -4
  51. package/esm2022/lib/measure/measurer-tool/measurer-tool.module.mjs +5 -5
  52. package/esm2022/lib/print/print-tool/print-tool.component.mjs +4 -4
  53. package/esm2022/lib/print/print.module.mjs +5 -5
  54. package/esm2022/lib/search/query.state.mjs +4 -4
  55. package/esm2022/lib/search/search-bar/search-bar-binding.directive.mjs +4 -4
  56. package/esm2022/lib/search/search-bar/search-bar.module.mjs +5 -5
  57. package/esm2022/lib/search/search-results-tool/search-results-tool.component.mjs +4 -4
  58. package/esm2022/lib/search/search-results-tool/search-results-tool.module.mjs +5 -5
  59. package/esm2022/lib/search/search.module.mjs +5 -5
  60. package/esm2022/lib/search/search.state.mjs +5 -5
  61. package/esm2022/lib/storage/storage.state.mjs +4 -4
  62. package/esm2022/lib/tool/tool.state.mjs +4 -4
  63. package/esm2022/lib/workspace/shared/edition-actions.service.mjs +4 -4
  64. package/esm2022/lib/workspace/shared/feature-actions.service.mjs +4 -4
  65. package/esm2022/lib/workspace/shared/wfs-actions.service.mjs +4 -4
  66. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  67. package/esm2022/lib/workspace/workspace-button/workspace-button.component.mjs +7 -6
  68. package/esm2022/lib/workspace/workspace.module.mjs +5 -5
  69. package/esm2022/lib/workspace/workspace.state.mjs +4 -4
  70. package/fesm2022/igo2-integration.mjs +525 -434
  71. package/fesm2022/igo2-integration.mjs.map +1 -1
  72. package/lib/directions/directions-tool/directions-tool.component.d.ts +3 -3
  73. package/lib/directions/directions.state.d.ts +2 -2
  74. package/lib/environment/environment.interface.d.ts +2 -1
  75. package/lib/filter/spatial-filter-tool/spatial-filter-tool.component.d.ts +4 -6
  76. package/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.d.ts +5 -6
  77. package/lib/map/map-details-tool/map-details-tool.component.d.ts +12 -4
  78. package/lib/map/map-legend/map-legend-tool.component.d.ts +4 -4
  79. package/lib/map/map-proximity.state.d.ts +4 -3
  80. package/lib/map/map-tool/map-tool.component.d.ts +14 -3
  81. package/lib/map/map-tools/map-tools.component.d.ts +15 -6
  82. package/lib/tool/tool.state.d.ts +2 -1
  83. package/lib/workspace/workspace-button/workspace-button.component.d.ts +4 -4
  84. package/package.json +4 -4
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ChangeDetectorRef, Component, Input, NgModule, CUSTOM_ELEMENTS_SCHEMA, Injectable, ChangeDetectionStrategy, Optional, Inject, ViewChild, Directive, Self, HostListener, ElementRef } from '@angular/core';
3
3
  import { __decorate, __metadata } from 'tslib';
4
- import * as i6$2 from '@angular/common';
5
- import { NgIf, NgFor, AsyncPipe, CommonModule, DecimalPipe } from '@angular/common';
4
+ import * as i6$1 from '@angular/common';
5
+ import { NgIf, NgFor, AsyncPipe, CommonModule, DecimalPipe, NgTemplateOutlet } from '@angular/common';
6
6
  import * as i3 from '@angular/common/http';
7
7
  import { HttpClient } from '@angular/common/http';
8
8
  import * as i7 from '@angular/material/button';
9
9
  import { MatButtonModule } from '@angular/material/button';
10
- import * as i1 from '@angular/material/icon';
10
+ import * as i10 from '@angular/material/icon';
11
11
  import { MatIconModule, MatIconRegistry } from '@angular/material/icon';
12
12
  import * as i8 from '@angular/material/menu';
13
13
  import { MatMenuModule } from '@angular/material/menu';
@@ -17,21 +17,21 @@ import * as i2 from '@igo2/auth';
17
17
  import { AuthService } from '@igo2/auth';
18
18
  import { CustomHtmlComponent, SanitizeHtmlPipe } from '@igo2/common/custom-html';
19
19
  import { InteractiveTourComponent } from '@igo2/common/interactive-tour';
20
- import * as i1$2 from '@igo2/common/tool';
20
+ import * as i1$1 from '@igo2/common/tool';
21
21
  import { ToolComponent } from '@igo2/common/tool';
22
22
  import * as i5 from '@igo2/core/config';
23
23
  import { version, ConfigService } from '@igo2/core/config';
24
24
  import * as i2$1 from '@igo2/core/language';
25
25
  import { IgoLanguageModule, LanguageService } from '@igo2/core/language';
26
26
  import { of, BehaviorSubject, combineLatest, Subject, map, forkJoin, ReplaySubject, interval } from 'rxjs';
27
- import * as i6$1 from '@ngx-translate/core';
27
+ import * as i11 from '@ngx-translate/core';
28
28
  import { EntityStore, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy, EntityTableComponent, getEntityTitle } from '@igo2/common/entity';
29
- import * as i1$1 from '@igo2/geo';
30
- import { IgoMap, CatalogBrowserComponent, CatalogService, CatalogLibaryComponent, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore, IgoDirectionsModule, FeatureStore, DrawComponent, OgcFilterableItemComponent, TimeFilterItemComponent, OgcFilterableListComponent, OgcFilterableListBindingDirective, FeatureStoreSelectionStrategy, FeatureMotion, mapExtentStrategyActiveToolTip, noElementSelected, OgcFilterWidget, WfsWorkspace, FeatureWorkspace, EditionWorkspace, SpatialFilterItemType, MeasureLengthUnit, SpatialFilterType, featureToOl, createOverlayMarkerStyle, moveToOlFeatures, SpatialFilterTypeComponent, SpatialFilterItemComponent, FeatureDetailsComponent, SpatialFilterService, DataSourceService, LayerService, TimeFilterListComponent, TimeFilterListBindingDirective, ImportExportComponent, formatScale, zoneMtm, zoneUtm, computeProjectionsConstraints, LayerListControlsEnum, sourceCanSearch, LayerListComponent, LayerListBindingDirective, ExportButtonComponent, OgcFilterButtonComponent, TimeFilterButtonComponent, TrackFeatureButtonComponent, MetadataButtonComponent, SearchSourceService, LayerLegendListComponent, LayerLegendListBindingDirective, roundCoordTo, featureFromOl, measureOlGeometryLength, FEATURE, VectorLayer, StyleModalLayerButtonComponent, MeasurerComponent, PrintComponent, getCommonVectorStyle, computeOlFeaturesExtent, featuresAreOutOfView, featuresAreTooDeepInView, getCommonVectorSelectedStyle, SearchResultsComponent, SearchResultAddButtonComponent, GeoPropertiesStrategy } from '@igo2/geo';
29
+ import * as i1 from '@igo2/geo';
30
+ import { IgoMap, CatalogBrowserComponent, CatalogService, CatalogLibaryComponent, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepsFeatureStore, IgoDirectionsModule, FeatureStore, DrawComponent, isLayerItem, OgcFilterableItemComponent, TimeFilterItemComponent, OgcFilterableListComponent, OgcFilterableListBindingDirective, FeatureStoreSelectionStrategy, FeatureMotion, mapExtentStrategyActiveToolTip, noElementSelected, OgcFilterWidget, WfsWorkspace, FeatureWorkspace, EditionWorkspace, SpatialFilterItemType, MeasureLengthUnit, SpatialFilterType, featureToOl, createOverlayMarkerStyle, moveToOlFeatures, SpatialFilterTypeComponent, SpatialFilterItemComponent, FeatureDetailsComponent, SpatialFilterService, LayerService, TimeFilterListComponent, TimeFilterListBindingDirective, isBaseLayer, ImportExportComponent, formatScale, zoneMtm, zoneUtm, computeProjectionsConstraints, LayerListControlsEnum, sourceCanSearch, LayerViewerComponent, ExportButtonComponent, OgcFilterButtonComponent, TimeFilterButtonComponent, TrackFeatureButtonComponent, MetadataButtonComponent, SearchSourceService, LayerLegendListComponent, LayerLegendListBindingDirective, roundCoordTo, featureFromOl, measureOlGeometryLength, FEATURE, VectorLayer, StyleModalLayerButtonComponent, MeasurerComponent, PrintComponent, getCommonVectorStyle, computeOlFeaturesExtent, featuresAreOutOfView, featuresAreTooDeepInView, getCommonVectorSelectedStyle, SearchResultsComponent, SearchResultAddButtonComponent, isLayerGroup, GeoPropertiesStrategy } from '@igo2/geo';
31
31
  import { take, skipWhile, takeUntil, tap, debounceTime, map as map$1, skip } from 'rxjs/operators';
32
32
  import * as i4 from '@igo2/core/storage';
33
33
  import { StorageScope, StorageService, StorageServiceEventEnum } from '@igo2/core/storage';
34
- import * as i1$3 from '@igo2/context';
34
+ import * as i1$2 from '@igo2/context';
35
35
  import { ContextEditComponent, ContextEditBindingDirective, ContextListComponent, ContextListBindingDirective, ContextPermissionsComponent, ContextPermissionsBindingDirective, ShareMapComponent, ContextImportExportComponent } from '@igo2/context';
36
36
  import * as i4$1 from '@igo2/core/message';
37
37
  import { MessageService, IgoMessageModule } from '@igo2/core/message';
@@ -43,42 +43,43 @@ import * as olstyle from 'ol/style';
43
43
  import { WorkspaceStore } from '@igo2/common/workspace';
44
44
  import * as i5$1 from '@igo2/common/widget';
45
45
  import * as i3$1 from '@igo2/core/media';
46
+ import { Media, MediaService } from '@igo2/core/media';
46
47
  import * as jsPDF from 'jspdf';
47
48
  import 'jspdf-autotable';
48
49
  import moment from 'moment';
49
50
  import * as i2$2 from '@igo2/common/form';
50
51
  import { FormService, IgoFormModule } from '@igo2/common/form';
51
- import * as i3$2 from '@angular/forms';
52
+ import * as i2$3 from '@angular/forms';
52
53
  import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
53
54
  import * as i5$2 from '@angular/material/tabs';
54
55
  import { MatTabsModule } from '@angular/material/tabs';
55
- import * as i8$2 from '@angular/material/divider';
56
+ import * as i7$2 from '@angular/material/divider';
56
57
  import { MatDividerModule } from '@angular/material/divider';
57
58
  import * as i13 from '@angular/material/slide-toggle';
58
59
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
59
60
  import * as i12 from '@angular/material/core';
60
61
  import { MatOptionModule } from '@angular/material/core';
61
- import * as i5$3 from '@angular/material/form-field';
62
+ import * as i7$1 from '@angular/material/form-field';
62
63
  import { MatFormFieldModule } from '@angular/material/form-field';
63
64
  import * as i8$1 from '@angular/material/input';
64
65
  import { MatInputModule } from '@angular/material/input';
65
- import * as i11 from '@angular/material/select';
66
+ import * as i11$1 from '@angular/material/select';
66
67
  import { MatSelectModule } from '@angular/material/select';
67
68
  import { Clipboard, uuid, NumberUtils } from '@igo2/utils';
68
69
  import * as olProj from 'ol/proj';
69
- import * as i10 from '@angular/material/list';
70
+ import * as i9 from '@angular/material/list';
70
71
  import { MatListModule } from '@angular/material/list';
71
- import * as i9 from '@angular/material/radio';
72
+ import * as i9$1 from '@angular/material/radio';
72
73
  import { MatRadioModule } from '@angular/material/radio';
73
74
  import olLineString from 'ol/geom/LineString';
74
75
  import olLayerVector from 'ol/layer/Vector';
75
- import * as i9$1 from '@angular/material/badge';
76
+ import * as i9$2 from '@angular/material/badge';
76
77
  import { MatBadgeModule } from '@angular/material/badge';
77
78
  import { FlexibleComponent } from '@igo2/common/flexible';
78
79
  import olFeature from 'ol/Feature';
79
80
  import olPoint from 'ol/geom/Point';
80
81
  import pointOnFeature from '@turf/point-on-feature';
81
- import * as i1$4 from '@igo2/core/analytics';
82
+ import * as i1$3 from '@igo2/core/analytics';
82
83
 
83
84
  let AboutToolComponent = class AboutToolComponent {
84
85
  configService;
@@ -167,8 +168,8 @@ let AboutToolComponent = class AboutToolComponent {
167
168
  name = name.slice(0, index);
168
169
  return name;
169
170
  }
170
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AboutToolComponent, deps: [{ token: i5.ConfigService }, { token: i2.AuthService }, { token: i3.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i2$1.LanguageService }], target: i0.ɵɵFactoryTarget.Component });
171
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: AboutToolComponent, isStandalone: true, selector: "igo-about-tool", inputs: { headerHtml: "headerHtml", html: "html", discoverTitleInLocale: "discoverTitleInLocale", trainingGuideURLs: "trainingGuideURLs" }, ngImport: i0, template: "<p></p>\n<igo-interactive-tour\n mat-raised-button\n tourToStart=\"global\"\n menuIsOpen=\"true\"\n styleButton=\"raised\"\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\"\n>\n</igo-interactive-tour>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button\n *ngFor=\"let guide of trainingGuideURLs\"\n mat-menu-item\n (click)=\"openGuide(guide)\"\n >\n {{ formatFileName(guide) }}\n </button>\n</mat-menu>\n\n<igo-custom-html\n *ngIf=\"headerHtml !== ''\"\n class=\"mat-typography\"\n [html]=\"headerHtml | translate\"\n>\n</igo-custom-html>\n\n<igo-custom-html\n class=\"mat-typography\"\n [html]=\"html | translate: { version: effectiveVersion }\"\n>\n</igo-custom-html>\n", styles: ["igo-interactive-tour button{margin-left:20px}.training-guide-button{margin-left:5px;background-color:#1976d2;color:#fff;padding:0 12px}\n"], dependencies: [{ kind: "component", type: InteractiveTourComponent, selector: "igo-interactive-tour", inputs: ["tourToStart", "styleButton", "discoverTitleInLocale$"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: CustomHtmlComponent, selector: "igo-custom-html", inputs: ["html"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AboutToolComponent, deps: [{ token: i5.ConfigService }, { token: i2.AuthService }, { token: i3.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i2$1.LanguageService }], target: i0.ɵɵFactoryTarget.Component });
172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AboutToolComponent, isStandalone: true, selector: "igo-about-tool", inputs: { headerHtml: "headerHtml", html: "html", discoverTitleInLocale: "discoverTitleInLocale", trainingGuideURLs: "trainingGuideURLs" }, ngImport: i0, template: "<p></p>\n<igo-interactive-tour\n mat-raised-button\n tourToStart=\"global\"\n menuIsOpen=\"true\"\n styleButton=\"raised\"\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\"\n>\n</igo-interactive-tour>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button\n *ngFor=\"let guide of trainingGuideURLs\"\n mat-menu-item\n (click)=\"openGuide(guide)\"\n >\n {{ formatFileName(guide) }}\n </button>\n</mat-menu>\n\n<igo-custom-html\n *ngIf=\"headerHtml !== ''\"\n class=\"mat-typography\"\n [html]=\"headerHtml | translate\"\n>\n</igo-custom-html>\n\n<igo-custom-html\n class=\"mat-typography\"\n [html]=\"html | translate: { version: effectiveVersion }\"\n>\n</igo-custom-html>\n", styles: ["igo-interactive-tour button{margin-left:20px}.training-guide-button{margin-left:5px;background-color:#1976d2;color:#fff;padding:0 12px}\n"], dependencies: [{ kind: "component", type: InteractiveTourComponent, selector: "igo-interactive-tour", inputs: ["tourToStart", "styleButton", "discoverTitleInLocale$"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: CustomHtmlComponent, selector: "igo-custom-html", inputs: ["html"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
172
173
  };
173
174
  AboutToolComponent = __decorate([
174
175
  ToolComponent({
@@ -182,7 +183,7 @@ AboutToolComponent = __decorate([
182
183
  ChangeDetectorRef,
183
184
  LanguageService])
184
185
  ], AboutToolComponent);
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AboutToolComponent, decorators: [{
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AboutToolComponent, decorators: [{
186
187
  type: Component,
187
188
  args: [{ selector: 'igo-about-tool', standalone: true, imports: [
188
189
  InteractiveTourComponent,
@@ -215,11 +216,11 @@ class IgoAppAboutModule {
215
216
  providers: []
216
217
  };
217
218
  }
218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
219
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent], exports: [AboutToolComponent] });
220
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent] });
219
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
220
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent], exports: [AboutToolComponent] });
221
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent] });
221
222
  }
222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppAboutModule, decorators: [{
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, decorators: [{
223
224
  type: NgModule,
224
225
  args: [{
225
226
  imports: [AboutToolComponent],
@@ -228,7 +229,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
228
229
  }]
229
230
  }] });
230
231
 
231
- // import { BehaviorSubject } from 'rxjs';
232
232
  /**
233
233
  * Service that holds the state of the map module
234
234
  */
@@ -237,7 +237,6 @@ class MapState {
237
237
  projectionService;
238
238
  storageService;
239
239
  configService;
240
- // public mapCenter$ = new BehaviorSubject<boolean>(false);
241
240
  get showAllLegendsValue() {
242
241
  return this._legendToolShowAll;
243
242
  }
@@ -268,15 +267,15 @@ class MapState {
268
267
  }, this.storageService, this.configService);
269
268
  this.mapService.setMap(this.map);
270
269
  }
271
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapState, deps: [{ token: i1$1.MapService }, { token: i1$1.ProjectionService }, { token: i4.StorageService }, { token: i5.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
272
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapState, providedIn: 'root' });
270
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapState, deps: [{ token: i1.MapService }, { token: i1.ProjectionService }, { token: i4.StorageService }, { token: i5.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
271
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapState, providedIn: 'root' });
273
272
  }
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapState, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapState, decorators: [{
275
274
  type: Injectable,
276
275
  args: [{
277
276
  providedIn: 'root'
278
277
  }]
279
- }], ctorParameters: () => [{ type: i1$1.MapService }, { type: i1$1.ProjectionService }, { type: i4.StorageService }, { type: i5.ConfigService }] });
278
+ }], ctorParameters: () => [{ type: i1.MapService }, { type: i1.ProjectionService }, { type: i4.StorageService }, { type: i5.ConfigService }] });
280
279
 
281
280
  /**
282
281
  * Service that holds the state of the catalog module
@@ -321,10 +320,10 @@ class CatalogState {
321
320
  clearCatalogItemsStores() {
322
321
  this.catalogItemsStores.clear();
323
322
  }
324
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CatalogState, deps: [{ token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
325
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CatalogState, providedIn: 'root' });
323
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogState, deps: [{ token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
324
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogState, providedIn: 'root' });
326
325
  }
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CatalogState, decorators: [{
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogState, decorators: [{
328
327
  type: Injectable,
329
328
  args: [{
330
329
  providedIn: 'root'
@@ -374,6 +373,10 @@ let CatalogBrowserToolComponent = class CatalogBrowserToolComponent {
374
373
  const catalog$ = catalogStore.stateView.firstBy$((record) => record.state.selected === true);
375
374
  const authenticate$ = this.authService.authenticate$;
376
375
  this.catalog$$ = combineLatest([catalog$, authenticate$]).subscribe(([record]) => {
376
+ // Mute an error, that we are not able to replicate where the record is undefined
377
+ if (record === undefined) {
378
+ return;
379
+ }
377
380
  const catalog = record.entity;
378
381
  this.catalog = catalog;
379
382
  this.loadCatalogItems(this.catalog);
@@ -406,8 +409,8 @@ let CatalogBrowserToolComponent = class CatalogBrowserToolComponent {
406
409
  this.store$.next(store);
407
410
  });
408
411
  }
409
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CatalogBrowserToolComponent, deps: [{ token: i1$1.CatalogService }, { token: CatalogState }, { token: MapState }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
410
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: CatalogBrowserToolComponent, isStandalone: true, selector: "igo-catalog-browser-tool", inputs: { toggleCollapsedGroup: "toggleCollapsedGroup" }, ngImport: i0, template: "<igo-catalog-browser\n *ngIf=\"store$ | async as store\"\n [catalog]=\"catalog\"\n [store]=\"store\"\n [map]=\"map\"\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\"\n>\n</igo-catalog-browser>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CatalogBrowserComponent, selector: "igo-catalog-browser", inputs: ["catalogAllowLegend", "catalog", "store", "map", "toggleCollapsedGroup"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
412
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogBrowserToolComponent, deps: [{ token: i1.CatalogService }, { token: CatalogState }, { token: MapState }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
413
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CatalogBrowserToolComponent, isStandalone: true, selector: "igo-catalog-browser-tool", inputs: { toggleCollapsedGroup: "toggleCollapsedGroup" }, ngImport: i0, template: "<igo-catalog-browser\n *ngIf=\"store$ | async as store\"\n [catalog]=\"catalog\"\n [store]=\"store\"\n [map]=\"map\"\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\"\n>\n</igo-catalog-browser>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CatalogBrowserComponent, selector: "igo-catalog-browser", inputs: ["catalogAllowLegend", "catalog", "store", "map", "toggleCollapsedGroup"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
411
414
  };
412
415
  CatalogBrowserToolComponent = __decorate([
413
416
  ToolComponent({
@@ -420,10 +423,10 @@ CatalogBrowserToolComponent = __decorate([
420
423
  MapState,
421
424
  AuthService])
422
425
  ], CatalogBrowserToolComponent);
423
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CatalogBrowserToolComponent, decorators: [{
426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogBrowserToolComponent, decorators: [{
424
427
  type: Component,
425
428
  args: [{ selector: 'igo-catalog-browser-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, CatalogBrowserComponent, AsyncPipe], template: "<igo-catalog-browser\n *ngIf=\"store$ | async as store\"\n [catalog]=\"catalog\"\n [store]=\"store\"\n [map]=\"map\"\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\"\n>\n</igo-catalog-browser>\n" }]
426
- }], ctorParameters: () => [{ type: i1$1.CatalogService }, { type: CatalogState }, { type: MapState }, { type: i2.AuthService }], propDecorators: { toggleCollapsedGroup: [{
429
+ }], ctorParameters: () => [{ type: i1.CatalogService }, { type: CatalogState }, { type: MapState }, { type: i2.AuthService }], propDecorators: { toggleCollapsedGroup: [{
427
430
  type: Input
428
431
  }] } });
429
432
 
@@ -431,11 +434,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
431
434
  * @deprecated import the CatalogBrowserToolComponent directly
432
435
  */
433
436
  class IgoAppCatalogBrowserToolModule {
434
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogBrowserToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
435
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogBrowserToolModule, imports: [CatalogBrowserToolComponent], exports: [CatalogBrowserToolComponent] });
436
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogBrowserToolModule, imports: [CatalogBrowserToolComponent] });
437
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogBrowserToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
438
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogBrowserToolModule, imports: [CatalogBrowserToolComponent], exports: [CatalogBrowserToolComponent] });
439
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogBrowserToolModule, imports: [CatalogBrowserToolComponent] });
437
440
  }
438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogBrowserToolModule, decorators: [{
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogBrowserToolModule, decorators: [{
439
442
  type: NgModule,
440
443
  args: [{
441
444
  imports: [CatalogBrowserToolComponent],
@@ -469,10 +472,10 @@ class ImportExportState {
469
472
  setsExportOptions(exportOptions) {
470
473
  this.exportOptions$.next(exportOptions);
471
474
  }
472
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportExportState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
473
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportExportState, providedIn: 'root' });
475
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportExportState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
476
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportExportState, providedIn: 'root' });
474
477
  }
475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportExportState, decorators: [{
478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportExportState, decorators: [{
476
479
  type: Injectable,
477
480
  args: [{
478
481
  providedIn: 'root'
@@ -518,15 +521,15 @@ class ToolState {
518
521
  this.openSidenav$.next(true);
519
522
  }
520
523
  }
521
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ToolState, deps: [{ token: i1$2.ToolService }, { token: ImportExportState }], target: i0.ɵɵFactoryTarget.Injectable });
522
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ToolState, providedIn: 'root' });
524
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolState, deps: [{ token: i1$1.ToolService }, { token: ImportExportState }], target: i0.ɵɵFactoryTarget.Injectable });
525
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolState, providedIn: 'root' });
523
526
  }
524
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ToolState, decorators: [{
527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolState, decorators: [{
525
528
  type: Injectable,
526
529
  args: [{
527
530
  providedIn: 'root'
528
531
  }]
529
- }], ctorParameters: () => [{ type: i1$2.ToolService }, { type: ImportExportState }] });
532
+ }], ctorParameters: () => [{ type: i1$1.ToolService }, { type: ImportExportState }] });
530
533
 
531
534
  /**
532
535
  * Tool to browse the list of available catalogs.
@@ -601,8 +604,8 @@ let CatalogLibraryToolComponent = class CatalogLibraryToolComponent {
601
604
  this.store.load(catalogs.concat((this.storageService.get('addedCatalogs') || [])));
602
605
  });
603
606
  }
604
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CatalogLibraryToolComponent, deps: [{ token: i1$1.CatalogService }, { token: CatalogState }, { token: ToolState }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Component });
605
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: CatalogLibraryToolComponent, isStandalone: true, selector: "igo-catalog-library-tool", inputs: { addCatalogAllowed: "addCatalogAllowed", predefinedCatalogs: "predefinedCatalogs" }, ngImport: i0, template: "<igo-catalog-library\n [predefinedCatalogs]=\"predefinedCatalogs\"\n [addCatalogAllowed]=\"addCatalogAllowed\"\n [store]=\"store\"\n (catalogSelectChange)=\"onCatalogSelectChange($event)\"\n>\n</igo-catalog-library>\n", dependencies: [{ kind: "component", type: CatalogLibaryComponent, selector: "igo-catalog-library", inputs: ["store", "map", "addCatalogAllowed", "predefinedCatalogs"], outputs: ["catalogSelectChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
607
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogLibraryToolComponent, deps: [{ token: i1.CatalogService }, { token: CatalogState }, { token: ToolState }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Component });
608
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CatalogLibraryToolComponent, isStandalone: true, selector: "igo-catalog-library-tool", inputs: { addCatalogAllowed: "addCatalogAllowed", predefinedCatalogs: "predefinedCatalogs" }, ngImport: i0, template: "<igo-catalog-library\n [predefinedCatalogs]=\"predefinedCatalogs\"\n [addCatalogAllowed]=\"addCatalogAllowed\"\n [store]=\"store\"\n (catalogSelectChange)=\"onCatalogSelectChange($event)\"\n>\n</igo-catalog-library>\n", dependencies: [{ kind: "component", type: CatalogLibaryComponent, selector: "igo-catalog-library", inputs: ["store", "map", "addCatalogAllowed", "predefinedCatalogs"], outputs: ["catalogSelectChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
606
609
  };
607
610
  CatalogLibraryToolComponent = __decorate([
608
611
  ToolComponent({
@@ -615,10 +618,10 @@ CatalogLibraryToolComponent = __decorate([
615
618
  ToolState,
616
619
  StorageService])
617
620
  ], CatalogLibraryToolComponent);
618
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CatalogLibraryToolComponent, decorators: [{
621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogLibraryToolComponent, decorators: [{
619
622
  type: Component,
620
623
  args: [{ selector: 'igo-catalog-library-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CatalogLibaryComponent], template: "<igo-catalog-library\n [predefinedCatalogs]=\"predefinedCatalogs\"\n [addCatalogAllowed]=\"addCatalogAllowed\"\n [store]=\"store\"\n (catalogSelectChange)=\"onCatalogSelectChange($event)\"\n>\n</igo-catalog-library>\n" }]
621
- }], ctorParameters: () => [{ type: i1$1.CatalogService }, { type: CatalogState }, { type: ToolState }, { type: i4.StorageService }], propDecorators: { addCatalogAllowed: [{
624
+ }], ctorParameters: () => [{ type: i1.CatalogService }, { type: CatalogState }, { type: ToolState }, { type: i4.StorageService }], propDecorators: { addCatalogAllowed: [{
622
625
  type: Input
623
626
  }], predefinedCatalogs: [{
624
627
  type: Input
@@ -628,11 +631,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
628
631
  * @deprecated import the CatalogLibraryToolComponent directly
629
632
  */
630
633
  class IgoAppCatalogLibraryToolModule {
631
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogLibraryToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
632
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogLibraryToolModule, imports: [CatalogLibraryToolComponent], exports: [CatalogLibraryToolComponent] });
633
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogLibraryToolModule, imports: [CatalogLibraryToolComponent] });
634
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogLibraryToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
635
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogLibraryToolModule, imports: [CatalogLibraryToolComponent], exports: [CatalogLibraryToolComponent] });
636
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogLibraryToolModule, imports: [CatalogLibraryToolComponent] });
634
637
  }
635
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogLibraryToolModule, decorators: [{
638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogLibraryToolModule, decorators: [{
636
639
  type: NgModule,
637
640
  args: [{
638
641
  imports: [CatalogLibraryToolComponent],
@@ -644,11 +647,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
644
647
  * @deprecated import the components directly
645
648
  */
646
649
  class IgoAppCatalogModule {
647
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
648
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogModule, exports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule] });
649
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogModule, imports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule] });
650
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
651
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogModule, exports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule] });
652
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogModule, imports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule] });
650
653
  }
651
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppCatalogModule, decorators: [{
654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppCatalogModule, decorators: [{
652
655
  type: NgModule,
653
656
  args: [{
654
657
  exports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule]
@@ -663,8 +666,8 @@ let ContextEditorToolComponent = class ContextEditorToolComponent {
663
666
  submitSuccessed() {
664
667
  this.toolState.toolbox.activatePreviousTool();
665
668
  }
666
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextEditorToolComponent, deps: [{ token: ToolState }], target: i0.ɵɵFactoryTarget.Component });
667
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ContextEditorToolComponent, isStandalone: true, selector: "igo-context-editor-tool", ngImport: i0, template: "<igo-context-edit\n igoContextEditBinding\n (submitSuccessed)=\"submitSuccessed()\"\n></igo-context-edit>\n", dependencies: [{ kind: "component", type: ContextEditComponent, selector: "igo-context-edit", inputs: ["context"], outputs: ["submitForm"] }, { kind: "directive", type: ContextEditBindingDirective, selector: "[igoContextEditBinding]", outputs: ["submitSuccessed"] }] });
669
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextEditorToolComponent, deps: [{ token: ToolState }], target: i0.ɵɵFactoryTarget.Component });
670
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContextEditorToolComponent, isStandalone: true, selector: "igo-context-editor-tool", ngImport: i0, template: "<igo-context-edit\n igoContextEditBinding\n (submitSuccessed)=\"submitSuccessed()\"\n></igo-context-edit>\n", dependencies: [{ kind: "component", type: ContextEditComponent, selector: "igo-context-edit", inputs: ["context"], outputs: ["submitForm"] }, { kind: "directive", type: ContextEditBindingDirective, selector: "[igoContextEditBinding]", outputs: ["submitSuccessed"] }] });
668
671
  };
669
672
  ContextEditorToolComponent = __decorate([
670
673
  ToolComponent({
@@ -675,7 +678,7 @@ ContextEditorToolComponent = __decorate([
675
678
  }),
676
679
  __metadata("design:paramtypes", [ToolState])
677
680
  ], ContextEditorToolComponent);
678
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextEditorToolComponent, decorators: [{
681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextEditorToolComponent, decorators: [{
679
682
  type: Component,
680
683
  args: [{ selector: 'igo-context-editor-tool', standalone: true, imports: [ContextEditComponent, ContextEditBindingDirective], template: "<igo-context-edit\n igoContextEditBinding\n (submitSuccessed)=\"submitSuccessed()\"\n></igo-context-edit>\n" }]
681
684
  }], ctorParameters: () => [{ type: ToolState }] });
@@ -697,8 +700,8 @@ let ContextManagerToolComponent = class ContextManagerToolComponent {
697
700
  managePermissions() {
698
701
  this.toolState.toolbox.activateTool('contextPermissionManager');
699
702
  }
700
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextManagerToolComponent, deps: [{ token: ToolState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Component });
701
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ContextManagerToolComponent, isStandalone: true, selector: "igo-context-manager-tool", inputs: { toolToOpenOnContextChange: "toolToOpenOnContextChange" }, ngImport: i0, template: "<igo-context-list\n igoContextListBinding\n [map]=\"map\"\n (edit)=\"editContext()\"\n (managePermissions)=\"managePermissions()\"\n>\n</igo-context-list>\n", dependencies: [{ kind: "component", type: ContextListComponent, selector: "igo-context-list", inputs: ["contexts", "selectedContext", "map", "defaultContextId", "term"], outputs: ["select", "unselect", "edit", "delete", "save", "clone", "create", "hide", "show", "showHiddenContexts", "favorite", "managePermissions", "manageTools", "filterPermissionsChanged"] }, { kind: "directive", type: ContextListBindingDirective, selector: "[igoContextListBinding]" }] });
703
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextManagerToolComponent, deps: [{ token: ToolState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Component });
704
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContextManagerToolComponent, isStandalone: true, selector: "igo-context-manager-tool", inputs: { toolToOpenOnContextChange: "toolToOpenOnContextChange" }, ngImport: i0, template: "<igo-context-list\n igoContextListBinding\n [map]=\"map\"\n (edit)=\"editContext()\"\n (managePermissions)=\"managePermissions()\"\n>\n</igo-context-list>\n", dependencies: [{ kind: "component", type: ContextListComponent, selector: "igo-context-list", inputs: ["contexts", "selectedContext", "map", "defaultContextId", "term"], outputs: ["select", "unselect", "edit", "delete", "save", "clone", "create", "hide", "show", "showHiddenContexts", "favorite", "managePermissions", "manageTools", "filterPermissionsChanged"] }, { kind: "directive", type: ContextListBindingDirective, selector: "[igoContextListBinding]" }] });
702
705
  };
703
706
  ContextManagerToolComponent = __decorate([
704
707
  ToolComponent({
@@ -709,7 +712,7 @@ ContextManagerToolComponent = __decorate([
709
712
  __metadata("design:paramtypes", [ToolState,
710
713
  MapState])
711
714
  ], ContextManagerToolComponent);
712
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextManagerToolComponent, decorators: [{
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextManagerToolComponent, decorators: [{
713
716
  type: Component,
714
717
  args: [{ selector: 'igo-context-manager-tool', standalone: true, imports: [ContextListComponent, ContextListBindingDirective], template: "<igo-context-list\n igoContextListBinding\n [map]=\"map\"\n (edit)=\"editContext()\"\n (managePermissions)=\"managePermissions()\"\n>\n</igo-context-list>\n" }]
715
718
  }], ctorParameters: () => [{ type: ToolState }, { type: MapState }], propDecorators: { toolToOpenOnContextChange: [{
@@ -717,8 +720,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
717
720
  }] } });
718
721
 
719
722
  let ContextPermissionManagerToolComponent = class ContextPermissionManagerToolComponent {
720
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextPermissionManagerToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
721
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ContextPermissionManagerToolComponent, isStandalone: true, selector: "igo-context-permission-manager-tool", ngImport: i0, template: "<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\n", dependencies: [{ kind: "component", type: ContextPermissionsComponent, selector: "igo-context-permissions", inputs: ["context", "permissions"], outputs: ["addPermission", "removePermission", "scopeChanged"] }, { kind: "directive", type: ContextPermissionsBindingDirective, selector: "[igoContextPermissionsBinding]" }] });
723
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextPermissionManagerToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
724
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContextPermissionManagerToolComponent, isStandalone: true, selector: "igo-context-permission-manager-tool", ngImport: i0, template: "<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\n", dependencies: [{ kind: "component", type: ContextPermissionsComponent, selector: "igo-context-permissions", inputs: ["context", "permissions"], outputs: ["addPermission", "removePermission", "scopeChanged"] }, { kind: "directive", type: ContextPermissionsBindingDirective, selector: "[igoContextPermissionsBinding]" }] });
722
725
  };
723
726
  ContextPermissionManagerToolComponent = __decorate([
724
727
  ToolComponent({
@@ -728,7 +731,7 @@ ContextPermissionManagerToolComponent = __decorate([
728
731
  parent: 'contextManager'
729
732
  })
730
733
  ], ContextPermissionManagerToolComponent);
731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextPermissionManagerToolComponent, decorators: [{
734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextPermissionManagerToolComponent, decorators: [{
732
735
  type: Component,
733
736
  args: [{ selector: 'igo-context-permission-manager-tool', standalone: true, imports: [ContextPermissionsComponent, ContextPermissionsBindingDirective], template: "<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\n" }]
734
737
  }] });
@@ -760,10 +763,10 @@ class LayerListToolState {
760
763
  sortAlpha: this.sortAlpha$.value
761
764
  };
762
765
  }
763
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LayerListToolState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
764
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LayerListToolState, providedIn: 'root' });
766
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerListToolState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
767
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerListToolState, providedIn: 'root' });
765
768
  }
766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LayerListToolState, decorators: [{
769
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerListToolState, decorators: [{
767
770
  type: Injectable,
768
771
  args: [{
769
772
  providedIn: 'root'
@@ -783,8 +786,8 @@ let ContextShareToolComponent = class ContextShareToolComponent {
783
786
  this.mapState = mapState;
784
787
  this.layerListToolState = layerListToolState;
785
788
  }
786
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextShareToolComponent, deps: [{ token: MapState }, { token: LayerListToolState }], target: i0.ɵɵFactoryTarget.Component });
787
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ContextShareToolComponent, isStandalone: true, selector: "igo-context-share-tool", ngImport: i0, template: "<igo-share-map [map]=\"map\"></igo-share-map>\n", dependencies: [{ kind: "component", type: ShareMapComponent, selector: "igo-share-map", inputs: ["map"] }] });
789
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextShareToolComponent, deps: [{ token: MapState }, { token: LayerListToolState }], target: i0.ɵɵFactoryTarget.Component });
790
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContextShareToolComponent, isStandalone: true, selector: "igo-context-share-tool", ngImport: i0, template: "<igo-share-map [map]=\"map\"></igo-share-map>\n", dependencies: [{ kind: "component", type: ShareMapComponent, selector: "igo-share-map", inputs: ["map"] }] });
788
791
  };
789
792
  ContextShareToolComponent = __decorate([
790
793
  ToolComponent({
@@ -795,7 +798,7 @@ ContextShareToolComponent = __decorate([
795
798
  __metadata("design:paramtypes", [MapState,
796
799
  LayerListToolState])
797
800
  ], ContextShareToolComponent);
798
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextShareToolComponent, decorators: [{
801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextShareToolComponent, decorators: [{
799
802
  type: Component,
800
803
  args: [{ selector: 'igo-context-share-tool', standalone: true, imports: [ShareMapComponent], template: "<igo-share-map [map]=\"map\"></igo-share-map>\n" }]
801
804
  }], ctorParameters: () => [{ type: MapState }, { type: LayerListToolState }] });
@@ -811,11 +814,11 @@ const INTEGRATION_CONTEXT_DIRECTIVES = [
811
814
  * @deprecated import the components/directive directly or INTEGRATION_CONTEXT_DIRECTIVES for the set
812
815
  */
813
816
  class IgoAppContextModule {
814
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppContextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
815
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppContextModule, imports: [ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent], exports: [ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent] });
816
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppContextModule, imports: [INTEGRATION_CONTEXT_DIRECTIVES] });
817
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppContextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
818
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppContextModule, imports: [ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent], exports: [ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent] });
819
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppContextModule, imports: [INTEGRATION_CONTEXT_DIRECTIVES] });
817
820
  }
818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppContextModule, decorators: [{
821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppContextModule, decorators: [{
819
822
  type: NgModule,
820
823
  args: [{
821
824
  imports: [...INTEGRATION_CONTEXT_DIRECTIVES],
@@ -898,15 +901,15 @@ class ContextState {
898
901
  }
899
902
  this.setContext(context);
900
903
  }
901
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextState, deps: [{ token: i1$3.ContextService }, { token: i1$2.ToolService }, { token: ToolState }, { token: i2$1.LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
902
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextState, providedIn: 'root' });
904
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextState, deps: [{ token: i1$2.ContextService }, { token: i1$1.ToolService }, { token: ToolState }, { token: i2$1.LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
905
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextState, providedIn: 'root' });
903
906
  }
904
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ContextState, decorators: [{
907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextState, decorators: [{
905
908
  type: Injectable,
906
909
  args: [{
907
910
  providedIn: 'root'
908
911
  }]
909
- }], ctorParameters: () => [{ type: i1$3.ContextService }, { type: i1$2.ToolService }, { type: ToolState }, { type: i2$1.LanguageService }] });
912
+ }], ctorParameters: () => [{ type: i1$2.ContextService }, { type: i1$1.ToolService }, { type: ToolState }, { type: i2$1.LanguageService }] });
910
913
 
911
914
  /**
912
915
  * Service that holds the state of the direction module
@@ -936,35 +939,23 @@ class DirectionState {
936
939
  this.routesFeatureStore = new RoutesFeatureStore([], {
937
940
  map: this.mapState.map
938
941
  });
939
- this.stepFeatureStore = new StepFeatureStore([], {
942
+ this.stepFeatureStore = new StepsFeatureStore([], {
940
943
  map: this.mapState.map
941
944
  });
942
- this.mapState.map.ol.once('rendercomplete', () => {
943
- this.stopsFeatureStore.empty$.subscribe((empty) => {
944
- if (this.stopsFeatureStore.layer?.options) {
945
- this.stopsFeatureStore.layer.options.showInLayerList = !empty;
946
- }
947
- });
948
- this.routesFeatureStore.empty$.subscribe((empty) => {
949
- if (this.routesFeatureStore.layer?.options) {
950
- this.routesFeatureStore.layer.options.showInLayerList = !empty;
951
- }
952
- });
953
- });
954
- this.mapState.map.layers$.subscribe(() => {
955
- if (!this.mapState.map.getLayerById('igo-direction-stops-layer')) {
945
+ this.mapState.map.layerController.all$.subscribe(() => {
946
+ if (!this.mapState.map.layerController.getById('igo-direction-stops-layer')) {
956
947
  this.stopsStore.deleteMany(this.stopsStore.all());
957
948
  this.stopsFeatureStore.deleteMany(this.stopsFeatureStore.all()); // not necessary
958
949
  }
959
- if (!this.mapState.map.getLayerById('igo-direction-route-layer')) {
950
+ if (!this.mapState.map.layerController.getById('igo-direction-route-layer')) {
960
951
  this.routesFeatureStore.deleteMany(this.routesFeatureStore.all());
961
952
  }
962
953
  });
963
954
  }
964
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionState, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
965
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionState, providedIn: 'root' });
955
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionState, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
956
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionState, providedIn: 'root' });
966
957
  }
967
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionState, decorators: [{
958
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionState, decorators: [{
968
959
  type: Injectable,
969
960
  args: [{
970
961
  providedIn: 'root'
@@ -1015,7 +1006,7 @@ let DirectionsToolComponent = class DirectionsToolComponent {
1015
1006
  * step store
1016
1007
  * @internal
1017
1008
  */
1018
- get zoomToActiveRoute$() {
1009
+ get zoomOnActiveRoute$() {
1019
1010
  return this.directionState.zoomToActiveRoute$;
1020
1011
  }
1021
1012
  get authenticated$() {
@@ -1049,8 +1040,8 @@ let DirectionsToolComponent = class DirectionsToolComponent {
1049
1040
  }
1050
1041
  });
1051
1042
  }
1052
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionsToolComponent, deps: [{ token: DirectionState }, { token: MapState }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }, { token: i4.StorageService }, { token: ContextState }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
1053
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: DirectionsToolComponent, isStandalone: true, selector: "igo-directions-tool", ngImport: i0, template: "<igo-directions\n [contextUri]=\"currentContextUri\"\n [debounce]=\"debounceTime\"\n [stopsStore]=\"stopsStore\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stepFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"\n [authenticated$]=\"authenticated$\"\n>\n</igo-directions>\n", dependencies: [{ kind: "ngmodule", type: IgoDirectionsModule }, { kind: "component", type: i1$1.DirectionsComponent, selector: "igo-directions", inputs: ["contextUri", "stopsStore", "stopsFeatureStore", "routesFeatureStore", "stepFeatureStore", "debounce", "length", "coordRoundedDecimals", "zoomToActiveRoute$", "authenticated$"] }] });
1043
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionsToolComponent, deps: [{ token: DirectionState }, { token: MapState }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }, { token: i4.StorageService }, { token: ContextState }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
1044
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DirectionsToolComponent, isStandalone: true, selector: "igo-directions-tool", ngImport: i0, template: "<igo-directions\n [contextUri]=\"currentContextUri\"\n [debounce]=\"debounceTime\"\n [stopsStore]=\"stopsStore\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stepsFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [zoomOnActiveRoute$]=\"zoomOnActiveRoute$\"\n [authenticated$]=\"authenticated$\"\n>\n</igo-directions>\n", dependencies: [{ kind: "ngmodule", type: IgoDirectionsModule }, { kind: "component", type: i1.DirectionsComponent, selector: "igo-directions", inputs: ["contextUri", "stopsStore", "stopsFeatureStore", "routesFeatureStore", "stepsFeatureStore", "debounce", "length", "coordRoundedDecimals", "zoomOnActiveRoute$", "authenticated$"] }] });
1054
1045
  };
1055
1046
  DirectionsToolComponent = __decorate([
1056
1047
  ToolComponent({
@@ -1066,9 +1057,9 @@ DirectionsToolComponent = __decorate([
1066
1057
  ContextState,
1067
1058
  AuthService])
1068
1059
  ], DirectionsToolComponent);
1069
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionsToolComponent, decorators: [{
1060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionsToolComponent, decorators: [{
1070
1061
  type: Component,
1071
- args: [{ selector: 'igo-directions-tool', standalone: true, imports: [IgoDirectionsModule], template: "<igo-directions\n [contextUri]=\"currentContextUri\"\n [debounce]=\"debounceTime\"\n [stopsStore]=\"stopsStore\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stepFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"\n [authenticated$]=\"authenticated$\"\n>\n</igo-directions>\n" }]
1062
+ args: [{ selector: 'igo-directions-tool', standalone: true, imports: [IgoDirectionsModule], template: "<igo-directions\n [contextUri]=\"currentContextUri\"\n [debounce]=\"debounceTime\"\n [stopsStore]=\"stopsStore\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stepsFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [zoomOnActiveRoute$]=\"zoomOnActiveRoute$\"\n [authenticated$]=\"authenticated$\"\n>\n</igo-directions>\n" }]
1072
1063
  }], ctorParameters: () => [{ type: DirectionState }, { type: MapState }, { type: i2$1.LanguageService }, { type: i4$1.MessageService }, { type: i4.StorageService }, { type: ContextState }, { type: i2.AuthService }] });
1073
1064
 
1074
1065
  /**
@@ -1081,11 +1072,11 @@ class IgoAppDirectionsModule {
1081
1072
  providers: []
1082
1073
  };
1083
1074
  }
1084
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDirectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1085
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDirectionsModule, imports: [DirectionsToolComponent], exports: [DirectionsToolComponent] });
1086
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDirectionsModule, imports: [DirectionsToolComponent] });
1075
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDirectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1076
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDirectionsModule, imports: [DirectionsToolComponent], exports: [DirectionsToolComponent] });
1077
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDirectionsModule, imports: [DirectionsToolComponent] });
1087
1078
  }
1088
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDirectionsModule, decorators: [{
1079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDirectionsModule, decorators: [{
1089
1080
  type: NgModule,
1090
1081
  args: [{
1091
1082
  imports: [DirectionsToolComponent],
@@ -1104,9 +1095,9 @@ class DrawState {
1104
1095
  activeDrawingLayer;
1105
1096
  constructor(mapState) {
1106
1097
  this.mapState = mapState;
1107
- this.mapState.map.layers$.subscribe(() => {
1098
+ this.mapState.map.layerController.all$.subscribe(() => {
1108
1099
  this.layersID.forEach((layerId) => {
1109
- if (!this.mapState.map.getLayerById(layerId)) {
1100
+ if (!this.mapState.map.layerController.getById(layerId)) {
1110
1101
  const deletedStore = this.stores.find((store) => store.layer.id === layerId);
1111
1102
  deletedStore.deleteMany(deletedStore.all());
1112
1103
  this.stores.splice(this.stores.indexOf(deletedStore, 0), 1);
@@ -1121,10 +1112,10 @@ class DrawState {
1121
1112
  store = new FeatureStore([], { map: this.mapState.map });
1122
1113
  }
1123
1114
  }
1124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DrawState, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
1125
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DrawState, providedIn: 'root' });
1115
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawState, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
1116
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawState, providedIn: 'root' });
1126
1117
  }
1127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DrawState, decorators: [{
1118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawState, decorators: [{
1128
1119
  type: Injectable,
1129
1120
  args: [{
1130
1121
  providedIn: 'root'
@@ -1176,8 +1167,8 @@ let DrawingToolComponent = class DrawingToolComponent {
1176
1167
  this.drawState = drawState;
1177
1168
  this.mapState = mapState;
1178
1169
  }
1179
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DrawingToolComponent, deps: [{ token: DrawState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Component });
1180
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: DrawingToolComponent, isStandalone: true, selector: "igo-drawing-tool", ngImport: i0, template: "<igo-draw\n [stores]=\"stores\"\n [map]=\"map\"\n (layersIDEvent)=\"addLayersID($event)\"\n [activeDrawingLayer]=\"activeDrawingLayer\"\n [drawControls]=\"drawControls\"\n (drawControlsEvent)=\"addDrawControls($event)\"\n (activeLayerChange)=\"activeDrawingLayer = $event\"\n>\n</igo-draw>\n", dependencies: [{ kind: "component", type: DrawComponent, selector: "igo-draw", inputs: ["map", "stores", "drawControls", "activeDrawingLayer"], outputs: ["activeLayerChange", "drawControlsEvent", "layersIDEvent", "fillColor", "strokeColor", "strokeWidth", "fontSize", "fontStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1170
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawingToolComponent, deps: [{ token: DrawState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Component });
1171
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DrawingToolComponent, isStandalone: true, selector: "igo-drawing-tool", ngImport: i0, template: "<igo-draw\n [stores]=\"stores\"\n [map]=\"map\"\n (layersIDEvent)=\"addLayersID($event)\"\n [activeDrawingLayer]=\"activeDrawingLayer\"\n [drawControls]=\"drawControls\"\n (drawControlsEvent)=\"addDrawControls($event)\"\n (activeLayerChange)=\"activeDrawingLayer = $event\"\n>\n</igo-draw>\n", dependencies: [{ kind: "component", type: DrawComponent, selector: "igo-draw", inputs: ["map", "stores", "drawControls", "activeDrawingLayer"], outputs: ["activeLayerChange", "drawControlsEvent", "layersIDEvent", "fillColor", "strokeColor", "strokeWidth", "fontSize", "fontStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1181
1172
  };
1182
1173
  DrawingToolComponent = __decorate([
1183
1174
  ToolComponent({
@@ -1188,7 +1179,7 @@ DrawingToolComponent = __decorate([
1188
1179
  __metadata("design:paramtypes", [DrawState,
1189
1180
  MapState])
1190
1181
  ], DrawingToolComponent);
1191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DrawingToolComponent, decorators: [{
1182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawingToolComponent, decorators: [{
1192
1183
  type: Component,
1193
1184
  args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DrawComponent], template: "<igo-draw\n [stores]=\"stores\"\n [map]=\"map\"\n (layersIDEvent)=\"addLayersID($event)\"\n [activeDrawingLayer]=\"activeDrawingLayer\"\n [drawControls]=\"drawControls\"\n (drawControlsEvent)=\"addDrawControls($event)\"\n (activeLayerChange)=\"activeDrawingLayer = $event\"\n>\n</igo-draw>\n" }]
1194
1185
  }], ctorParameters: () => [{ type: DrawState }, { type: MapState }] });
@@ -1197,11 +1188,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
1197
1188
  * @deprecated import the DrawingToolComponent directly
1198
1189
  */
1199
1190
  class IgoAppDrawingToolModule {
1200
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawingToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1201
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawingToolModule, imports: [DrawingToolComponent], exports: [DrawingToolComponent] });
1202
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawingToolModule, imports: [DrawingToolComponent] });
1191
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawingToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1192
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawingToolModule, imports: [DrawingToolComponent], exports: [DrawingToolComponent] });
1193
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawingToolModule, imports: [DrawingToolComponent] });
1203
1194
  }
1204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawingToolModule, decorators: [{
1195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawingToolModule, decorators: [{
1205
1196
  type: NgModule,
1206
1197
  args: [{
1207
1198
  imports: [DrawingToolComponent],
@@ -1213,11 +1204,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
1213
1204
  * @deprecated import the DrawingToolComponent directly
1214
1205
  */
1215
1206
  class IgoAppDrawModule {
1216
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1217
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawModule, exports: [IgoAppDrawingToolModule] });
1218
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawModule, imports: [IgoAppDrawingToolModule] });
1207
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1208
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawModule, exports: [IgoAppDrawingToolModule] });
1209
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawModule, imports: [IgoAppDrawingToolModule] });
1219
1210
  }
1220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppDrawModule, decorators: [{
1211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppDrawModule, decorators: [{
1221
1212
  type: NgModule,
1222
1213
  args: [{
1223
1214
  exports: [IgoAppDrawingToolModule]
@@ -1239,8 +1230,8 @@ let ActiveOgcFilterToolComponent = class ActiveOgcFilterToolComponent {
1239
1230
  return this.mapState.map;
1240
1231
  }
1241
1232
  get layer() {
1242
- for (const lay of this.map.layers) {
1243
- if (lay.options.active === true) {
1233
+ for (const lay of this.map.layerController.all) {
1234
+ if (isLayerItem(lay) && this.map.layerController.isSelected(lay)) {
1244
1235
  return lay;
1245
1236
  }
1246
1237
  }
@@ -1250,8 +1241,8 @@ let ActiveOgcFilterToolComponent = class ActiveOgcFilterToolComponent {
1250
1241
  constructor(mapState) {
1251
1242
  this.mapState = mapState;
1252
1243
  }
1253
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ActiveOgcFilterToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
1254
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ActiveOgcFilterToolComponent, isStandalone: true, selector: "igo-active-ogc-filter-tool", ngImport: i0, template: "<igo-ogc-filterable-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n>\n</igo-ogc-filterable-item>\n", dependencies: [{ kind: "component", type: OgcFilterableItemComponent, selector: "igo-ogc-filterable-item", inputs: ["layer", "map", "header"] }], animations: [toolSlideInOut$1()] });
1244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActiveOgcFilterToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
1245
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActiveOgcFilterToolComponent, isStandalone: true, selector: "igo-active-ogc-filter-tool", ngImport: i0, template: "<igo-ogc-filterable-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n>\n</igo-ogc-filterable-item>\n", dependencies: [{ kind: "component", type: OgcFilterableItemComponent, selector: "igo-ogc-filterable-item", inputs: ["layer", "map", "header"] }], animations: [toolSlideInOut$1()] });
1255
1246
  };
1256
1247
  ActiveOgcFilterToolComponent = __decorate([
1257
1248
  ToolComponent({
@@ -1262,7 +1253,7 @@ ActiveOgcFilterToolComponent = __decorate([
1262
1253
  }),
1263
1254
  __metadata("design:paramtypes", [MapState])
1264
1255
  ], ActiveOgcFilterToolComponent);
1265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ActiveOgcFilterToolComponent, decorators: [{
1256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActiveOgcFilterToolComponent, decorators: [{
1266
1257
  type: Component,
1267
1258
  args: [{ selector: 'igo-active-ogc-filter-tool', animations: [toolSlideInOut$1()], standalone: true, imports: [OgcFilterableItemComponent], template: "<igo-ogc-filterable-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n>\n</igo-ogc-filterable-item>\n" }]
1268
1259
  }], ctorParameters: () => [{ type: MapState }] });
@@ -1282,8 +1273,8 @@ let ActiveTimeFilterToolComponent = class ActiveTimeFilterToolComponent {
1282
1273
  return this.mapState.map;
1283
1274
  }
1284
1275
  get layer() {
1285
- for (const lay of this.map.layers) {
1286
- if (lay.options.active === true) {
1276
+ for (const lay of this.map.layerController.all) {
1277
+ if (isLayerItem(lay) && this.map.layerController.isSelected(lay)) {
1287
1278
  return lay;
1288
1279
  }
1289
1280
  }
@@ -1293,8 +1284,8 @@ let ActiveTimeFilterToolComponent = class ActiveTimeFilterToolComponent {
1293
1284
  constructor(mapState) {
1294
1285
  this.mapState = mapState;
1295
1286
  }
1296
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ActiveTimeFilterToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
1297
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ActiveTimeFilterToolComponent, isStandalone: true, selector: "igo-active-time-filter-tool", ngImport: i0, template: "<igo-time-filter-item\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n>\n</igo-time-filter-item>\n", dependencies: [{ kind: "component", type: TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: ["header", "layer"] }], animations: [toolSlideInOut()] });
1287
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActiveTimeFilterToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
1288
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActiveTimeFilterToolComponent, isStandalone: true, selector: "igo-active-time-filter-tool", ngImport: i0, template: "<igo-time-filter-item\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n>\n</igo-time-filter-item>\n", dependencies: [{ kind: "component", type: TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: ["header", "layer"] }], animations: [toolSlideInOut()] });
1298
1289
  };
1299
1290
  ActiveTimeFilterToolComponent = __decorate([
1300
1291
  ToolComponent({
@@ -1305,14 +1296,14 @@ ActiveTimeFilterToolComponent = __decorate([
1305
1296
  }),
1306
1297
  __metadata("design:paramtypes", [MapState])
1307
1298
  ], ActiveTimeFilterToolComponent);
1308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ActiveTimeFilterToolComponent, decorators: [{
1299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActiveTimeFilterToolComponent, decorators: [{
1309
1300
  type: Component,
1310
1301
  args: [{ selector: 'igo-active-time-filter-tool', animations: [toolSlideInOut()], standalone: true, imports: [TimeFilterItemComponent], template: "<igo-time-filter-item\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n>\n</igo-time-filter-item>\n" }]
1311
1302
  }], ctorParameters: () => [{ type: MapState }] });
1312
1303
 
1313
1304
  let OgcFilterToolComponent = class OgcFilterToolComponent {
1314
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: OgcFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1315
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: OgcFilterToolComponent, isStandalone: true, selector: "igo-ogc-filter-tool", ngImport: i0, template: "<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\n", dependencies: [{ kind: "component", type: OgcFilterableListComponent, selector: "igo-ogc-filterable-list", inputs: ["layers", "map"] }, { kind: "directive", type: OgcFilterableListBindingDirective, selector: "[igoOgcFilterableListBinding]" }] });
1305
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OgcFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1306
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OgcFilterToolComponent, isStandalone: true, selector: "igo-ogc-filter-tool", ngImport: i0, template: "<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\n", dependencies: [{ kind: "component", type: OgcFilterableListComponent, selector: "igo-ogc-filterable-list", inputs: ["layers", "map"] }, { kind: "directive", type: OgcFilterableListBindingDirective, selector: "[igoOgcFilterableListBinding]" }] });
1316
1307
  };
1317
1308
  OgcFilterToolComponent = __decorate([
1318
1309
  ToolComponent({
@@ -1321,7 +1312,7 @@ OgcFilterToolComponent = __decorate([
1321
1312
  icon: 'filter'
1322
1313
  })
1323
1314
  ], OgcFilterToolComponent);
1324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: OgcFilterToolComponent, decorators: [{
1315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OgcFilterToolComponent, decorators: [{
1325
1316
  type: Component,
1326
1317
  args: [{ selector: 'igo-ogc-filter-tool', standalone: true, imports: [OgcFilterableListComponent, OgcFilterableListBindingDirective], template: "<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\n" }]
1327
1318
  }] });
@@ -1337,10 +1328,10 @@ class StorageState {
1337
1328
  constructor(igoStorageService) {
1338
1329
  this.igoStorageService = igoStorageService;
1339
1330
  }
1340
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StorageState, deps: [{ token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
1341
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StorageState, providedIn: 'root' });
1331
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageState, deps: [{ token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
1332
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageState, providedIn: 'root' });
1342
1333
  }
1343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StorageState, decorators: [{
1334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageState, decorators: [{
1344
1335
  type: Injectable,
1345
1336
  args: [{
1346
1337
  providedIn: 'root'
@@ -1550,10 +1541,10 @@ class EditionActionsService {
1550
1541
  });
1551
1542
  return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, this.ogcFilterWidget, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState);
1552
1543
  }
1553
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: EditionActionsService, deps: [{ token: OgcFilterWidget, optional: true }, { token: StorageState }, { token: i2$1.LanguageService }, { token: i3$1.MediaService }, { token: ToolState }], target: i0.ɵɵFactoryTarget.Injectable });
1554
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: EditionActionsService, providedIn: 'root' });
1544
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditionActionsService, deps: [{ token: OgcFilterWidget, optional: true }, { token: StorageState }, { token: i2$1.LanguageService }, { token: i3$1.MediaService }, { token: ToolState }], target: i0.ɵɵFactoryTarget.Injectable });
1545
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditionActionsService, providedIn: 'root' });
1555
1546
  }
1556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: EditionActionsService, decorators: [{
1547
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditionActionsService, decorators: [{
1557
1548
  type: Injectable,
1558
1549
  args: [{
1559
1550
  providedIn: 'root'
@@ -1606,10 +1597,10 @@ class FeatureActionsService {
1606
1597
  });
1607
1598
  return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, undefined, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState);
1608
1599
  }
1609
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FeatureActionsService, deps: [{ token: StorageState }, { token: i2$1.LanguageService }, { token: ToolState }, { token: i3$1.MediaService }], target: i0.ɵɵFactoryTarget.Injectable });
1610
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FeatureActionsService, providedIn: 'root' });
1600
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureActionsService, deps: [{ token: StorageState }, { token: i2$1.LanguageService }, { token: ToolState }, { token: i3$1.MediaService }], target: i0.ɵɵFactoryTarget.Injectable });
1601
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureActionsService, providedIn: 'root' });
1611
1602
  }
1612
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FeatureActionsService, decorators: [{
1603
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureActionsService, decorators: [{
1613
1604
  type: Injectable,
1614
1605
  args: [{
1615
1606
  providedIn: 'root'
@@ -1661,10 +1652,10 @@ class WfsActionsService {
1661
1652
  });
1662
1653
  return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, this.ogcFilterWidget, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState);
1663
1654
  }
1664
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WfsActionsService, deps: [{ token: OgcFilterWidget, optional: true }, { token: StorageState }, { token: i2$1.LanguageService }, { token: i3$1.MediaService }, { token: ToolState }], target: i0.ɵɵFactoryTarget.Injectable });
1665
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WfsActionsService, providedIn: 'root' });
1655
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WfsActionsService, deps: [{ token: OgcFilterWidget, optional: true }, { token: StorageState }, { token: i2$1.LanguageService }, { token: i3$1.MediaService }, { token: ToolState }], target: i0.ɵɵFactoryTarget.Injectable });
1656
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WfsActionsService, providedIn: 'root' });
1666
1657
  }
1667
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WfsActionsService, decorators: [{
1658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WfsActionsService, decorators: [{
1668
1659
  type: Injectable,
1669
1660
  args: [{
1670
1661
  providedIn: 'root'
@@ -1857,10 +1848,10 @@ class WorkspaceState {
1857
1848
  this.activeWorkspace$$.unsubscribe();
1858
1849
  }
1859
1850
  }
1860
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WorkspaceState, deps: [{ token: FeatureActionsService }, { token: WfsActionsService }, { token: EditionActionsService }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
1861
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WorkspaceState, providedIn: 'root' });
1851
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceState, deps: [{ token: FeatureActionsService }, { token: WfsActionsService }, { token: EditionActionsService }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
1852
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceState, providedIn: 'root' });
1862
1853
  }
1863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WorkspaceState, decorators: [{
1854
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceState, decorators: [{
1864
1855
  type: Injectable,
1865
1856
  args: [{
1866
1857
  providedIn: 'root'
@@ -1873,7 +1864,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
1873
1864
  let SpatialFilterToolComponent = class SpatialFilterToolComponent {
1874
1865
  matIconRegistry;
1875
1866
  spatialFilterService;
1876
- dataSourceService;
1877
1867
  layerService;
1878
1868
  mapState;
1879
1869
  messageService;
@@ -1904,12 +1894,10 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
1904
1894
  thematicLength = 0;
1905
1895
  measureUnit = MeasureLengthUnit.Meters;
1906
1896
  unsubscribe$ = new Subject();
1907
- moveendKey;
1908
1897
  defaultStyle;
1909
- constructor(matIconRegistry, spatialFilterService, dataSourceService, layerService, mapState, messageService, languageService, importExportState, toolState, workspaceState, cdRef) {
1898
+ constructor(matIconRegistry, spatialFilterService, layerService, mapState, messageService, languageService, importExportState, toolState, workspaceState, cdRef) {
1910
1899
  this.matIconRegistry = matIconRegistry;
1911
1900
  this.spatialFilterService = spatialFilterService;
1912
- this.dataSourceService = dataSourceService;
1913
1901
  this.layerService = layerService;
1914
1902
  this.mapState = mapState;
1915
1903
  this.messageService = messageService;
@@ -1920,7 +1908,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
1920
1908
  this.cdRef = cdRef;
1921
1909
  }
1922
1910
  ngOnInit() {
1923
- for (const layer of this.map.layers) {
1911
+ for (const layer of this.map.layerController.all) {
1924
1912
  if (layer.title &&
1925
1913
  layer.title.includes(this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'))) {
1926
1914
  this.layers.push(layer);
@@ -1961,7 +1949,8 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
1961
1949
  if (!record &&
1962
1950
  this.activeLayers.length &&
1963
1951
  this.workspaceState.store.all().length > 1) {
1964
- if (this.itemType === SpatialFilterItemType.Thematics) {
1952
+ if (this.itemType === SpatialFilterItemType.Thematics &&
1953
+ this.thematics) {
1965
1954
  for (const thematic of this.thematics) {
1966
1955
  if (!thematic.zeroResults) {
1967
1956
  layerToOpenWks = this.activeLayers.find((layer) => layer.title.includes(thematic.name + ' ' + this.iterator.toString()));
@@ -1986,7 +1975,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
1986
1975
  this.activeLayers.length &&
1987
1976
  this.workspaceState.store.all().length > 1) {
1988
1977
  this.selectWorkspaceEntity(record);
1989
- this.moveendKey = this.map.ol.on('moveend', () => {
1978
+ this.map.ol.on('moveend', () => {
1990
1979
  this.selectWorkspaceEntity(record);
1991
1980
  });
1992
1981
  }
@@ -2029,7 +2018,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2029
2018
  this.queryType = undefined;
2030
2019
  }
2031
2020
  clearMap() {
2032
- this.map.removeLayers(this.layers);
2021
+ this.map.layerController.remove(...this.layers);
2033
2022
  this.layers = [];
2034
2023
  this.activeLayers = [];
2035
2024
  this.thematicLength = 0;
@@ -2125,7 +2114,8 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2125
2114
  for (const feature of features) {
2126
2115
  if (this.type === SpatialFilterType.Predefined) {
2127
2116
  for (const layer of this.layers) {
2128
- if (layer.options._internal &&
2117
+ if (isLayerItem(layer) &&
2118
+ layer.options._internal &&
2129
2119
  layer.options._internal.code === feature.properties.code &&
2130
2120
  !buffer) {
2131
2121
  if (!layer.title?.startsWith('Zone')) {
@@ -2138,7 +2128,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2138
2128
  this.activeLayers = [];
2139
2129
  const index = this.layers.indexOf(layer);
2140
2130
  this.layers.splice(index, 1);
2141
- this.map.removeLayer(layer);
2131
+ this.map.layerController.remove(layer);
2142
2132
  }
2143
2133
  }
2144
2134
  }
@@ -2149,7 +2139,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2149
2139
  layer.title?.startsWith('Zone')) {
2150
2140
  const index = this.layers.indexOf(layer);
2151
2141
  this.layers.splice(index, 1);
2152
- this.map.removeLayer(layer);
2142
+ this.map.layerController.remove(layer);
2153
2143
  }
2154
2144
  }
2155
2145
  }
@@ -2186,28 +2176,28 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2186
2176
  })
2187
2177
  });
2188
2178
  };
2189
- this.dataSourceService
2190
- .createAsyncDataSource({
2191
- type: 'vector',
2192
- queryable: true
2193
- })
2179
+ const options = {
2180
+ isIgoInternalLayer: true,
2181
+ title: ('Zone ' +
2182
+ i +
2183
+ ' - ' +
2184
+ this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
2185
+ workspace: { enabled: true },
2186
+ _internal: {
2187
+ code: this.type === SpatialFilterType.Predefined
2188
+ ? feature.properties.code
2189
+ : undefined
2190
+ },
2191
+ sourceOptions: {
2192
+ type: 'vector',
2193
+ queryable: true
2194
+ },
2195
+ visible: true
2196
+ };
2197
+ this.layerService
2198
+ .createAsyncLayer(options)
2194
2199
  .pipe(take(1))
2195
- .subscribe((dataSource) => {
2196
- const olLayer = this.layerService.createLayer({
2197
- isIgoInternalLayer: true,
2198
- title: ('Zone ' +
2199
- i +
2200
- ' - ' +
2201
- this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
2202
- workspace: { enabled: true },
2203
- _internal: {
2204
- code: this.type === SpatialFilterType.Predefined
2205
- ? feature.properties.code
2206
- : undefined
2207
- },
2208
- source: dataSource,
2209
- visible: true
2210
- });
2200
+ .subscribe((layer) => {
2211
2201
  const featuresOl = features.map((f) => {
2212
2202
  return featureToOl(f, this.map.projection);
2213
2203
  });
@@ -2216,12 +2206,12 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2216
2206
  featuresOl[0].set('nom', 'Zone', true);
2217
2207
  featuresOl[0].set('type', type, true);
2218
2208
  }
2219
- const ol = dataSource.ol;
2209
+ const ol = layer.dataSource.ol;
2220
2210
  ol.addFeatures(featuresOl);
2221
- olLayer.ol.setStyle(this.defaultStyle);
2222
- this.map.addLayer(olLayer);
2223
- this.layers.push(olLayer);
2224
- this.activeLayers.push(olLayer);
2211
+ layer.ol.setStyle(this.defaultStyle);
2212
+ this.map.layerController.add(layer);
2213
+ this.layers.push(layer);
2214
+ this.activeLayers.push(layer);
2225
2215
  this.cdRef.detectChanges();
2226
2216
  });
2227
2217
  }
@@ -2241,56 +2231,57 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2241
2231
  i++;
2242
2232
  }
2243
2233
  }
2244
- this.dataSourceService
2245
- .createAsyncDataSource({
2246
- type: 'cluster',
2247
- id,
2248
- queryable: true,
2249
- distance: 120,
2250
- meta: {
2251
- title: 'Cluster'
2234
+ const icon = features[0].meta.icon;
2235
+ let style;
2236
+ if (!icon) {
2237
+ style = createOverlayMarkerStyle();
2238
+ }
2239
+ else {
2240
+ style = this.createSvgIcon(icon) || createOverlayMarkerStyle();
2241
+ }
2242
+ const options = {
2243
+ isIgoInternalLayer: true,
2244
+ title: (features[0].meta.title +
2245
+ ' ' +
2246
+ i +
2247
+ ' - ' +
2248
+ this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
2249
+ visible: true,
2250
+ style,
2251
+ sourceOptions: {
2252
+ type: 'cluster',
2253
+ id,
2254
+ queryable: true,
2255
+ distance: 120,
2256
+ meta: {
2257
+ title: 'Cluster'
2258
+ }
2252
2259
  }
2253
- })
2260
+ };
2261
+ this.layerService
2262
+ .createAsyncLayer(options)
2254
2263
  .pipe(take(1))
2255
- .subscribe((dataSource) => {
2256
- const icon = features[0].meta.icon;
2257
- let style;
2258
- if (!icon) {
2259
- style = createOverlayMarkerStyle();
2260
- }
2261
- else {
2262
- style = this.createSvgIcon(icon) || createOverlayMarkerStyle();
2263
- }
2264
- const olLayer = this.layerService.createLayer({
2265
- isIgoInternalLayer: true,
2266
- title: (features[0].meta.title +
2267
- ' ' +
2268
- i +
2269
- ' - ' +
2270
- this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
2271
- source: dataSource,
2272
- visible: true,
2273
- style
2274
- });
2264
+ .subscribe((layer) => {
2275
2265
  const featuresOl = features.map((feature) => {
2276
2266
  return featureToOl(feature, this.map.projection);
2277
2267
  });
2278
- const ol = dataSource.ol;
2268
+ const ol = layer.dataSource.ol;
2279
2269
  ol.getSource().addFeatures(featuresOl);
2280
- if (this.layers.find((layer) => layer.id === olLayer.id)) {
2281
- this.map.removeLayer(this.layers.find((layer) => layer.id === olLayer.id));
2270
+ const previousLayer = this.layers.find((prevLayer) => prevLayer.id === layer.id);
2271
+ if (previousLayer) {
2272
+ this.map.layerController.remove(previousLayer);
2282
2273
  i = i - 1;
2283
- olLayer.title = (features[0].meta.title +
2274
+ layer.title = (features[0].meta.title +
2284
2275
  ' ' +
2285
2276
  i +
2286
2277
  ' - ' +
2287
2278
  this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'));
2288
- olLayer.options.title = olLayer.title;
2279
+ layer.options.title = layer.title;
2289
2280
  }
2290
2281
  this.iterator = i;
2291
- this.map.addLayer(olLayer);
2292
- this.layers.push(olLayer);
2293
- this.pushLayer(olLayer);
2282
+ this.map.layerController.add(layer);
2283
+ this.layers.push(layer);
2284
+ this.pushLayer(layer);
2294
2285
  this.cdRef.detectChanges();
2295
2286
  });
2296
2287
  }
@@ -2326,42 +2317,43 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2326
2317
  i++;
2327
2318
  }
2328
2319
  }
2329
- this.dataSourceService
2330
- .createAsyncDataSource({
2331
- type: 'vector',
2332
- id,
2333
- queryable: true
2334
- })
2320
+ const options = {
2321
+ isIgoInternalLayer: true,
2322
+ title: (features[0].meta.title +
2323
+ ' ' +
2324
+ i +
2325
+ ' - ' +
2326
+ this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
2327
+ sourceOptions: {
2328
+ type: 'vector',
2329
+ id,
2330
+ queryable: true
2331
+ },
2332
+ visible: true
2333
+ };
2334
+ this.layerService
2335
+ .createAsyncLayer(options)
2335
2336
  .pipe(take(1))
2336
- .subscribe((dataSource) => {
2337
- const olLayer = this.layerService.createLayer({
2338
- isIgoInternalLayer: true,
2339
- title: (features[0].meta.title +
2340
- ' ' +
2341
- i +
2342
- ' - ' +
2343
- this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter')),
2344
- source: dataSource,
2345
- visible: true
2346
- });
2337
+ .subscribe((layer) => {
2347
2338
  const featuresOl = features.map((feature) => {
2348
2339
  return featureToOl(feature, this.map.projection);
2349
2340
  });
2350
- const ol = dataSource.ol;
2341
+ const ol = layer.dataSource.ol;
2351
2342
  ol.addFeatures(featuresOl);
2352
- if (this.layers.find((layer) => layer.id === olLayer.id)) {
2353
- this.map.removeLayer(this.layers.find((layer) => layer.id === olLayer.id));
2343
+ const previousLayer = this.layers.find((prevLayer) => prevLayer.id === layer.id);
2344
+ if (previousLayer) {
2345
+ this.map.layerController.remove(previousLayer);
2354
2346
  i = i - 1;
2355
- olLayer.title = (features[0].meta.title +
2347
+ layer.title = (features[0].meta.title +
2356
2348
  ' ' +
2357
2349
  i +
2358
2350
  ' - ' +
2359
2351
  this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'));
2360
- olLayer.options.title = olLayer.title;
2352
+ layer.options.title = layer.title;
2361
2353
  }
2362
- this.map.addLayer(olLayer);
2363
- this.layers.push(olLayer);
2364
- this.pushLayer(olLayer);
2354
+ this.map.layerController.add(layer);
2355
+ this.layers.push(layer);
2356
+ this.pushLayer(layer);
2365
2357
  this.cdRef.detectChanges();
2366
2358
  });
2367
2359
  }
@@ -2383,8 +2375,8 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
2383
2375
  }
2384
2376
  this.activeLayers.push(layer);
2385
2377
  }
2386
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SpatialFilterToolComponent, deps: [{ token: i1.MatIconRegistry }, { token: i1$1.SpatialFilterService }, { token: i1$1.DataSourceService }, { token: i1$1.LayerService }, { token: MapState }, { token: i4$1.MessageService }, { token: i2$1.LanguageService }, { token: ImportExportState }, { token: ToolState }, { token: WorkspaceState }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2387
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: SpatialFilterToolComponent, isStandalone: true, selector: "igo-spatial-filter-tool", inputs: { type: "type", itemType: "itemType", freehandDrawIsActive: "freehandDrawIsActive" }, ngImport: i0, template: "<igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [zone]=\"zone\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zoneChange)=\"onZoneChange($event)\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n>\n</igo-spatial-filter-type>\n\n<igo-spatial-filter-item\n [type]=\"type\"\n [queryType]=\"queryType\"\n [map]=\"map\"\n [zone]=\"zone\"\n [loading]=\"loading\"\n [store]=\"store\"\n [layers]=\"activeLayers\"\n [allLayers]=\"layers\"\n [thematicLength]=\"thematicLength\"\n (radiusEvent)=\"buffer = $event\"\n (bufferEvent)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n (freehandControl)=\"freehandDrawIsActive = $event\"\n (drawZoneEvent)=\"zone = $event\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (itemTypeChange)=\"itemType = $event\"\n (thematicChange)=\"thematics = $event\"\n (toggleSearch)=\"getOutputToggleSearch()\"\n (clearButtonEvent)=\"clearMap()\"\n (clearSearchEvent)=\"getOutputClearSearch()\"\n (export)=\"activateExportTool()\"\n (openWorkspace)=\"activateWorkspace()\"\n (entityChange)=\"activateWorkspace($event)\"\n>\n</igo-spatial-filter-item>\n<ng-container *ngIf=\"selectedFeature$ | async as feature\">\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\n</ng-container>\n", styles: [":host igo-spatial-filter-item{display:block;padding:0 12px}:host ::ng-deep .mat-mdc-tab-body-wrapper{margin-top:12px;padding:0 12px}\n"], dependencies: [{ kind: "component", type: SpatialFilterTypeComponent, selector: "igo-spatial-filter-type", inputs: ["store", "selectedQueryType", "zone", "layers"], outputs: ["eventType", "eventQueryType", "zoneChange", "zoneWithBufferChange", "bufferChange", "measureUnitChange"] }, { kind: "component", type: SpatialFilterItemComponent, selector: "igo-spatial-filter-item", inputs: ["map", "type", "queryType", "zone", "loading", "store", "layers", "allLayers", "thematicLength"], outputs: ["toggleSearch", "itemTypeChange", "thematicChange", "drawZoneEvent", "bufferEvent", "zoneWithBufferChange", "measureUnitChange", "radiusEvent", "freehandControl", "predefinedRadius", "clearButtonEvent", "clearSearchEvent", "export", "openWorkspace", "entityChange"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2378
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialFilterToolComponent, deps: [{ token: i10.MatIconRegistry }, { token: i1.SpatialFilterService }, { token: i1.LayerService }, { token: MapState }, { token: i4$1.MessageService }, { token: i2$1.LanguageService }, { token: ImportExportState }, { token: ToolState }, { token: WorkspaceState }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2379
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialFilterToolComponent, isStandalone: true, selector: "igo-spatial-filter-tool", inputs: { type: "type", itemType: "itemType", freehandDrawIsActive: "freehandDrawIsActive" }, ngImport: i0, template: "<igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [zone]=\"zone\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zoneChange)=\"onZoneChange($event)\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n>\n</igo-spatial-filter-type>\n\n<igo-spatial-filter-item\n [type]=\"type\"\n [queryType]=\"queryType\"\n [map]=\"map\"\n [zone]=\"zone\"\n [loading]=\"loading\"\n [store]=\"store\"\n [layers]=\"activeLayers\"\n [allLayers]=\"layers\"\n [thematicLength]=\"thematicLength\"\n (radiusEvent)=\"buffer = $event\"\n (bufferEvent)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n (freehandControl)=\"freehandDrawIsActive = $event\"\n (drawZoneEvent)=\"zone = $event\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (itemTypeChange)=\"itemType = $event\"\n (thematicChange)=\"thematics = $event\"\n (toggleSearch)=\"getOutputToggleSearch()\"\n (clearButtonEvent)=\"clearMap()\"\n (clearSearchEvent)=\"getOutputClearSearch()\"\n (export)=\"activateExportTool()\"\n (openWorkspace)=\"activateWorkspace()\"\n (entityChange)=\"activateWorkspace($event)\"\n>\n</igo-spatial-filter-item>\n<ng-container *ngIf=\"selectedFeature$ | async as feature\">\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\n</ng-container>\n", styles: [":host igo-spatial-filter-item{display:block;padding:0 12px}:host ::ng-deep .mat-mdc-tab-body-wrapper{margin-top:12px;padding:0 12px}\n"], dependencies: [{ kind: "component", type: SpatialFilterTypeComponent, selector: "igo-spatial-filter-type", inputs: ["store", "selectedQueryType", "zone", "layers"], outputs: ["eventType", "eventQueryType", "zoneChange", "zoneWithBufferChange", "bufferChange", "measureUnitChange"] }, { kind: "component", type: SpatialFilterItemComponent, selector: "igo-spatial-filter-item", inputs: ["map", "type", "queryType", "zone", "loading", "store", "layers", "allLayers", "thematicLength"], outputs: ["toggleSearch", "itemTypeChange", "thematicChange", "drawZoneEvent", "bufferEvent", "zoneWithBufferChange", "measureUnitChange", "radiusEvent", "freehandControl", "predefinedRadius", "clearButtonEvent", "clearSearchEvent", "export", "openWorkspace", "entityChange"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2388
2380
  };
2389
2381
  SpatialFilterToolComponent = __decorate([
2390
2382
  ToolComponent({
@@ -2398,7 +2390,6 @@ SpatialFilterToolComponent = __decorate([
2398
2390
  ,
2399
2391
  __metadata("design:paramtypes", [MatIconRegistry,
2400
2392
  SpatialFilterService,
2401
- DataSourceService,
2402
2393
  LayerService,
2403
2394
  MapState,
2404
2395
  MessageService,
@@ -2408,7 +2399,7 @@ SpatialFilterToolComponent = __decorate([
2408
2399
  WorkspaceState,
2409
2400
  ChangeDetectorRef])
2410
2401
  ], SpatialFilterToolComponent);
2411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SpatialFilterToolComponent, decorators: [{
2402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialFilterToolComponent, decorators: [{
2412
2403
  type: Component,
2413
2404
  args: [{ selector: 'igo-spatial-filter-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
2414
2405
  SpatialFilterTypeComponent,
@@ -2418,7 +2409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
2418
2409
  NgIf,
2419
2410
  AsyncPipe
2420
2411
  ], template: "<igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [zone]=\"zone\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zoneChange)=\"onZoneChange($event)\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n>\n</igo-spatial-filter-type>\n\n<igo-spatial-filter-item\n [type]=\"type\"\n [queryType]=\"queryType\"\n [map]=\"map\"\n [zone]=\"zone\"\n [loading]=\"loading\"\n [store]=\"store\"\n [layers]=\"activeLayers\"\n [allLayers]=\"layers\"\n [thematicLength]=\"thematicLength\"\n (radiusEvent)=\"buffer = $event\"\n (bufferEvent)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n (freehandControl)=\"freehandDrawIsActive = $event\"\n (drawZoneEvent)=\"zone = $event\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (itemTypeChange)=\"itemType = $event\"\n (thematicChange)=\"thematics = $event\"\n (toggleSearch)=\"getOutputToggleSearch()\"\n (clearButtonEvent)=\"clearMap()\"\n (clearSearchEvent)=\"getOutputClearSearch()\"\n (export)=\"activateExportTool()\"\n (openWorkspace)=\"activateWorkspace()\"\n (entityChange)=\"activateWorkspace($event)\"\n>\n</igo-spatial-filter-item>\n<ng-container *ngIf=\"selectedFeature$ | async as feature\">\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\n</ng-container>\n", styles: [":host igo-spatial-filter-item{display:block;padding:0 12px}:host ::ng-deep .mat-mdc-tab-body-wrapper{margin-top:12px;padding:0 12px}\n"] }]
2421
- }], ctorParameters: () => [{ type: i1.MatIconRegistry }, { type: i1$1.SpatialFilterService }, { type: i1$1.DataSourceService }, { type: i1$1.LayerService }, { type: MapState }, { type: i4$1.MessageService }, { type: i2$1.LanguageService }, { type: ImportExportState }, { type: ToolState }, { type: WorkspaceState }, { type: i0.ChangeDetectorRef }], propDecorators: { type: [{
2412
+ }], ctorParameters: () => [{ type: i10.MatIconRegistry }, { type: i1.SpatialFilterService }, { type: i1.LayerService }, { type: MapState }, { type: i4$1.MessageService }, { type: i2$1.LanguageService }, { type: ImportExportState }, { type: ToolState }, { type: WorkspaceState }, { type: i0.ChangeDetectorRef }], propDecorators: { type: [{
2422
2413
  type: Input
2423
2414
  }], itemType: [{
2424
2415
  type: Input
@@ -2427,8 +2418,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
2427
2418
  }] } });
2428
2419
 
2429
2420
  let TimeFilterToolComponent = class TimeFilterToolComponent {
2430
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TimeFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2431
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: TimeFilterToolComponent, isStandalone: true, selector: "igo-time-filter-tool", ngImport: i0, template: "<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\n", dependencies: [{ kind: "component", type: TimeFilterListComponent, selector: "igo-time-filter-list", inputs: ["layers"] }, { kind: "directive", type: TimeFilterListBindingDirective, selector: "[igoTimeFilterListBinding]" }] });
2421
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimeFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2422
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TimeFilterToolComponent, isStandalone: true, selector: "igo-time-filter-tool", ngImport: i0, template: "<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\n", dependencies: [{ kind: "component", type: TimeFilterListComponent, selector: "igo-time-filter-list", inputs: ["layers"] }, { kind: "directive", type: TimeFilterListBindingDirective, selector: "[igoTimeFilterListBinding]" }] });
2432
2423
  };
2433
2424
  TimeFilterToolComponent = __decorate([
2434
2425
  ToolComponent({
@@ -2437,7 +2428,7 @@ TimeFilterToolComponent = __decorate([
2437
2428
  icon: 'history'
2438
2429
  })
2439
2430
  ], TimeFilterToolComponent);
2440
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TimeFilterToolComponent, decorators: [{
2431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimeFilterToolComponent, decorators: [{
2441
2432
  type: Component,
2442
2433
  args: [{ selector: 'igo-time-filter-tool', standalone: true, imports: [TimeFilterListComponent, TimeFilterListBindingDirective], template: "<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\n" }]
2443
2434
  }] });
@@ -2452,8 +2443,8 @@ class IgoAppFilterModule {
2452
2443
  providers: []
2453
2444
  };
2454
2445
  }
2455
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2456
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppFilterModule, imports: [OgcFilterToolComponent,
2446
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2447
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppFilterModule, imports: [OgcFilterToolComponent,
2457
2448
  ActiveOgcFilterToolComponent,
2458
2449
  TimeFilterToolComponent,
2459
2450
  ActiveTimeFilterToolComponent,
@@ -2462,13 +2453,13 @@ class IgoAppFilterModule {
2462
2453
  TimeFilterToolComponent,
2463
2454
  ActiveTimeFilterToolComponent,
2464
2455
  SpatialFilterToolComponent] });
2465
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppFilterModule, imports: [OgcFilterToolComponent,
2456
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppFilterModule, imports: [OgcFilterToolComponent,
2466
2457
  ActiveOgcFilterToolComponent,
2467
2458
  TimeFilterToolComponent,
2468
2459
  ActiveTimeFilterToolComponent,
2469
2460
  SpatialFilterToolComponent] });
2470
2461
  }
2471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppFilterModule, decorators: [{
2462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppFilterModule, decorators: [{
2472
2463
  type: NgModule,
2473
2464
  args: [{
2474
2465
  imports: [
@@ -2517,9 +2508,12 @@ let DataIssueReporterToolComponent = class DataIssueReporterToolComponent {
2517
2508
  this.httpClient = httpClient;
2518
2509
  }
2519
2510
  ngOnInit() {
2520
- combineLatest([this.languageService.language$, this.map.layers$]).subscribe(([_language, layers]) => {
2511
+ combineLatest([
2512
+ this.languageService.language$,
2513
+ this.map.layerController.all$
2514
+ ]).subscribe(([_language, layers]) => {
2521
2515
  const baseLayerOrShownInLayerList = layers
2522
- .filter((l) => l.baseLayer || l.showInLayerList)
2516
+ .filter((l) => isBaseLayer(l) || l.showInLayerList)
2523
2517
  .map((l) => {
2524
2518
  return { value: `${l.title}-${l.id}`, title: l.title };
2525
2519
  });
@@ -2629,8 +2623,8 @@ let DataIssueReporterToolComponent = class DataIssueReporterToolComponent {
2629
2623
  this.clearForm();
2630
2624
  }
2631
2625
  }
2632
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DataIssueReporterToolComponent, deps: [{ token: MapState }, { token: i2$2.FormService }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
2633
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: DataIssueReporterToolComponent, selector: "igo-issue-reporter-tool", inputs: { url: "url" }, ngImport: i0, template: "<igo-form\n *ngIf=\"form$ | async as form\"\n [form]=\"form\"\n [formData]=\"data$ | async\"\n (submitForm)=\"onSubmit($any($event))\"\n>\n <div *ngIf=\"form.fields.length\" class=\"form-container\">\n <igo-form-field\n *ngFor=\"let field of form.fields\"\n [field]=\"field\"\n ></igo-form-field>\n </div>\n\n <div formButtons class=\"actions-container\">\n <button\n mat-stroked-button\n type=\"button\"\n color=\"primary\"\n (click)=\"clearForm()\"\n >\n {{ 'igo.integration.dataIssueReporterTool.reset.button' | translate }}\n </button>\n <button\n mat-flat-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"submitDisabled\"\n >\n {{ 'igo.integration.dataIssueReporterTool.submit.button' | translate }}\n </button>\n </div>\n</igo-form>\n", styles: [":host .actions-container button:not(:last-child){margin-right:8px}:host .form-container{width:100%;padding:10px}:host .form-container igo-form-field{display:block;height:auto}\n"], dependencies: [{ kind: "directive", type: i6$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$2.FormFieldComponent, selector: "igo-form-field", inputs: ["field"] }, { kind: "component", type: i2$2.FormComponent, selector: "igo-form", inputs: ["form", "formData", "autocomplete"], outputs: ["submitForm"] }, { kind: "pipe", type: i6$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
2626
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataIssueReporterToolComponent, deps: [{ token: MapState }, { token: i2$2.FormService }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
2627
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataIssueReporterToolComponent, selector: "igo-issue-reporter-tool", inputs: { url: "url" }, ngImport: i0, template: "<igo-form\n *ngIf=\"form$ | async as form\"\n [form]=\"form\"\n [formData]=\"data$ | async\"\n (submitForm)=\"onSubmit($any($event))\"\n>\n <div *ngIf=\"form.fields.length\" class=\"form-container\">\n <igo-form-field\n *ngFor=\"let field of form.fields\"\n [field]=\"field\"\n ></igo-form-field>\n </div>\n\n <div formButtons class=\"actions-container\">\n <button\n mat-stroked-button\n type=\"button\"\n color=\"primary\"\n (click)=\"clearForm()\"\n >\n {{ 'igo.integration.dataIssueReporterTool.reset.button' | translate }}\n </button>\n <button\n mat-flat-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"submitDisabled\"\n >\n {{ 'igo.integration.dataIssueReporterTool.submit.button' | translate }}\n </button>\n </div>\n</igo-form>\n", styles: [":host .actions-container button:not(:last-child){margin-right:8px}:host .form-container{width:100%;padding:10px}:host .form-container igo-form-field{display:block;height:auto}\n"], dependencies: [{ kind: "directive", type: i6$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$2.FormFieldComponent, selector: "igo-form-field", inputs: ["field"] }, { kind: "component", type: i2$2.FormComponent, selector: "igo-form", inputs: ["form", "formData", "autocomplete"], outputs: ["submitForm"] }, { kind: "pipe", type: i6$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
2634
2628
  };
2635
2629
  DataIssueReporterToolComponent = __decorate([
2636
2630
  ToolComponent({
@@ -2644,7 +2638,7 @@ DataIssueReporterToolComponent = __decorate([
2644
2638
  MessageService,
2645
2639
  HttpClient])
2646
2640
  ], DataIssueReporterToolComponent);
2647
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DataIssueReporterToolComponent, decorators: [{
2641
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataIssueReporterToolComponent, decorators: [{
2648
2642
  type: Component,
2649
2643
  args: [{ selector: 'igo-issue-reporter-tool', template: "<igo-form\n *ngIf=\"form$ | async as form\"\n [form]=\"form\"\n [formData]=\"data$ | async\"\n (submitForm)=\"onSubmit($any($event))\"\n>\n <div *ngIf=\"form.fields.length\" class=\"form-container\">\n <igo-form-field\n *ngFor=\"let field of form.fields\"\n [field]=\"field\"\n ></igo-form-field>\n </div>\n\n <div formButtons class=\"actions-container\">\n <button\n mat-stroked-button\n type=\"button\"\n color=\"primary\"\n (click)=\"clearForm()\"\n >\n {{ 'igo.integration.dataIssueReporterTool.reset.button' | translate }}\n </button>\n <button\n mat-flat-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"submitDisabled\"\n >\n {{ 'igo.integration.dataIssueReporterTool.submit.button' | translate }}\n </button>\n </div>\n</igo-form>\n", styles: [":host .actions-container button:not(:last-child){margin-right:8px}:host .form-container{width:100%;padding:10px}:host .form-container igo-form-field{display:block;height:auto}\n"] }]
2650
2644
  }], ctorParameters: () => [{ type: MapState }, { type: i2$2.FormService }, { type: i2$1.LanguageService }, { type: i4$1.MessageService }, { type: i3.HttpClient }], propDecorators: { url: [{
@@ -2652,19 +2646,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
2652
2646
  }] } });
2653
2647
 
2654
2648
  class IgoAppGeometryFormModule {
2655
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppGeometryFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2656
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppGeometryFormModule, declarations: [DataIssueReporterToolComponent], imports: [CommonModule,
2649
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppGeometryFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2650
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppGeometryFormModule, declarations: [DataIssueReporterToolComponent], imports: [CommonModule,
2657
2651
  MatButtonModule,
2658
2652
  IgoLanguageModule,
2659
2653
  IgoFormModule,
2660
2654
  IgoMessageModule], exports: [DataIssueReporterToolComponent] });
2661
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppGeometryFormModule, imports: [CommonModule,
2655
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppGeometryFormModule, imports: [CommonModule,
2662
2656
  MatButtonModule,
2663
2657
  IgoLanguageModule,
2664
2658
  IgoFormModule,
2665
2659
  IgoMessageModule] });
2666
2660
  }
2667
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppGeometryFormModule, decorators: [{
2661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppGeometryFormModule, decorators: [{
2668
2662
  type: NgModule,
2669
2663
  args: [{
2670
2664
  imports: [
@@ -2739,8 +2733,8 @@ let ImportExportToolComponent = class ImportExportToolComponent {
2739
2733
  importExportTypeChange(event) {
2740
2734
  this.importExportType = event.value;
2741
2735
  }
2742
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportExportToolComponent, deps: [{ token: MapState }, { token: ImportExportState }, { token: WorkspaceState }, { token: ContextState }], target: i0.ɵɵFactoryTarget.Component });
2743
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ImportExportToolComponent, isStandalone: true, selector: "igo-import-export-tool", inputs: { projectionsLimitations: "projectionsLimitations", selectFirstProj: "selectFirstProj", importExportType: "importExportType", importExportShowBothType: "importExportShowBothType" }, ngImport: i0, template: "<mat-tab-group *ngIf=\"importExportShowBothType\">\n <mat-tab\n [label]=\"'igo.integration.importExportTool.importExportData' | translate\"\n >\n <igo-import-export\n [contextUri]=\"(contextState.context$ | async).uri\"\n [map]=\"map\"\n [selectFirstProj]=\"selectFirstProj\"\n [projectionsLimitations]=\"projectionsLimitations\"\n [store]=\"workspaceStore\"\n [selectedMode]=\"importExportState.selectedMode$ | async\"\n (selectMode)=\"modeChanged($any($event))\"\n [exportOptions$]=\"importExportState.exportOptions$\"\n (exportOptionsChange)=\"exportOptionsChange($event)\"\n >\n </igo-import-export>\n </mat-tab>\n <mat-tab\n [label]=\"'igo.integration.importExportTool.importExportContext' | translate\"\n >\n <igo-context-import-export [map]=\"map\"></igo-context-import-export>\n </mat-tab>\n</mat-tab-group>\n\n<igo-import-export\n *ngIf=\"!importExportShowBothType && importExportType === 'layer'\"\n [contextUri]=\"(contextState.context$ | async).uri\"\n [map]=\"map\"\n [store]=\"workspaceStore\"\n [selectedMode]=\"importExportState.selectedMode$ | async\"\n (selectMode)=\"modeChanged($any($event))\"\n [exportOptions$]=\"importExportState.exportOptions$\"\n (exportOptionsChange)=\"exportOptionsChange($event)\"\n>\n</igo-import-export>\n\n<igo-context-import-export\n *ngIf=\"!importExportShowBothType && importExportType === 'context'\"\n [map]=\"map\"\n>\n</igo-context-import-export>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i5$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i5$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: ImportExportComponent, selector: "igo-import-export", inputs: ["selectFirstProj", "map", "contextUri", "projectionsLimitations", "store", "selectedMode", "exportOptions$"], outputs: ["selectMode", "exportOptionsChange"] }, { kind: "component", type: ContextImportExportComponent, selector: "igo-context-import-export", inputs: ["map"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2736
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportExportToolComponent, deps: [{ token: MapState }, { token: ImportExportState }, { token: WorkspaceState }, { token: ContextState }], target: i0.ɵɵFactoryTarget.Component });
2737
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImportExportToolComponent, isStandalone: true, selector: "igo-import-export-tool", inputs: { projectionsLimitations: "projectionsLimitations", selectFirstProj: "selectFirstProj", importExportType: "importExportType", importExportShowBothType: "importExportShowBothType" }, ngImport: i0, template: "<mat-tab-group *ngIf=\"importExportShowBothType\">\n <mat-tab\n [label]=\"'igo.integration.importExportTool.importExportData' | translate\"\n >\n <igo-import-export\n [contextUri]=\"(contextState.context$ | async).uri\"\n [map]=\"map\"\n [selectFirstProj]=\"selectFirstProj\"\n [projectionsLimitations]=\"projectionsLimitations\"\n [store]=\"workspaceStore\"\n [selectedMode]=\"importExportState.selectedMode$ | async\"\n (selectMode)=\"modeChanged($any($event))\"\n [exportOptions$]=\"importExportState.exportOptions$\"\n (exportOptionsChange)=\"exportOptionsChange($event)\"\n >\n </igo-import-export>\n </mat-tab>\n <mat-tab\n [label]=\"'igo.integration.importExportTool.importExportContext' | translate\"\n >\n <igo-context-import-export [map]=\"map\"></igo-context-import-export>\n </mat-tab>\n</mat-tab-group>\n\n<igo-import-export\n *ngIf=\"!importExportShowBothType && importExportType === 'layer'\"\n [contextUri]=\"(contextState.context$ | async).uri\"\n [map]=\"map\"\n [store]=\"workspaceStore\"\n [selectedMode]=\"importExportState.selectedMode$ | async\"\n (selectMode)=\"modeChanged($any($event))\"\n [exportOptions$]=\"importExportState.exportOptions$\"\n (exportOptionsChange)=\"exportOptionsChange($event)\"\n>\n</igo-import-export>\n\n<igo-context-import-export\n *ngIf=\"!importExportShowBothType && importExportType === 'context'\"\n [map]=\"map\"\n>\n</igo-context-import-export>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i5$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i5$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: ImportExportComponent, selector: "igo-import-export", inputs: ["selectFirstProj", "map", "contextUri", "projectionsLimitations", "store", "selectedMode", "exportOptions$"], outputs: ["selectMode", "exportOptionsChange"] }, { kind: "component", type: ContextImportExportComponent, selector: "igo-context-import-export", inputs: ["map"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2744
2738
  };
2745
2739
  ImportExportToolComponent = __decorate([
2746
2740
  ToolComponent({
@@ -2753,7 +2747,7 @@ ImportExportToolComponent = __decorate([
2753
2747
  WorkspaceState,
2754
2748
  ContextState])
2755
2749
  ], ImportExportToolComponent);
2756
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportExportToolComponent, decorators: [{
2750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportExportToolComponent, decorators: [{
2757
2751
  type: Component,
2758
2752
  args: [{ selector: 'igo-import-export-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
2759
2753
  NgIf,
@@ -2783,11 +2777,11 @@ class IgoAppImportExportModule {
2783
2777
  providers: []
2784
2778
  };
2785
2779
  }
2786
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppImportExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2787
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppImportExportModule, imports: [ImportExportToolComponent], exports: [ImportExportToolComponent] });
2788
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppImportExportModule, imports: [ImportExportToolComponent] });
2780
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppImportExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2781
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppImportExportModule, imports: [ImportExportToolComponent], exports: [ImportExportToolComponent] });
2782
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppImportExportModule, imports: [ImportExportToolComponent] });
2789
2783
  }
2790
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppImportExportModule, decorators: [{
2784
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppImportExportModule, decorators: [{
2791
2785
  type: NgModule,
2792
2786
  args: [{
2793
2787
  imports: [ImportExportToolComponent],
@@ -3179,10 +3173,10 @@ class AdvancedCoordinatesComponent {
3179
3173
  }
3180
3174
  });
3181
3175
  }
3182
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdvancedCoordinatesComponent, deps: [{ token: MapState }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }, { token: i0.ChangeDetectorRef }, { token: i4.StorageService }, { token: i5.ConfigService }, { token: i3$2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
3183
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: AdvancedCoordinatesComponent, isStandalone: true, selector: "igo-advanced-coordinates", inputs: { projectionsLimitations: "projectionsLimitations" }, ngImport: i0, template: "<div class=\"advanced-coordinates__coordinates-container\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-form-field *ngIf=\"units; else elseBlock\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\n }}</mat-label>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon'\n | translate\n \"\n [value]=\"coordinates[0]\"\n ></textarea>\n </mat-form-field>\n <ng-template #elseBlock>\n <mat-form-field subscriptSizing=\"dynamic\">\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.est'\n | translate\n \"\n [value]=\"coordinates[0]\"\n ></textarea>\n </mat-form-field>\n </ng-template>\n\n <mat-form-field *ngIf=\"units; else elseBlock2\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\n }}</mat-label>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat'\n | translate\n \"\n [value]=\"coordinates[1]\"\n ></textarea>\n </mat-form-field>\n <ng-template #elseBlock2>\n <mat-form-field subscriptSizing=\"dynamic\">\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.nord'\n | translate\n \"\n [value]=\"coordinates[1]\"\n ></textarea>\n </mat-form-field>\n </ng-template>\n <button\n mat-icon-button\n [attr.aria-label]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.copy'\n | translate\n \"\n class=\"igo-form-button-group advanced-coordinates__copy-coordinates\"\n (click)=\"copyTextToClipboard()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <form class=\"igo-form advanced-coordinates__form\" [formGroup]=\"form\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-form-field class=\"igo-input-container\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem'\n | translate\n }}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n <mat-option\n matTooltipShowDelay=\"500\"\n *ngFor=\"let projection of projections$ | async\"\n [value]=\"projection\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ projection.translatedValue || projection.alias }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-slide-toggle\n class=\"center-toggle mat-typography\"\n [checked]=\"center\"\n [labelPosition]=\"'before'\"\n (change)=\"displayCenter($event.checked)\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.center'\n | translate\n }}\n </mat-slide-toggle>\n </div>\n </form>\n\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate\n }}\n {{ map.viewController.getZoom() }}\n </p>\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate\n }}\n {{ formattedScale$ | async }}\n </p>\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.resolution'\n | translate\n }}\n {{ map.viewController.getResolution() | number: '1.0-0' }}\n </p>\n</div>\n", styles: [":host{padding:12px 0}textarea{resize:none}.advanced-coordinates__coordinates-container{width:100%;display:flex;flex-direction:column;padding:12px 0}.advanced-coordinates__coordinates-container__inner{display:flex;align-items:center;margin-bottom:16px}.advanced-coordinates__coordinates-container__inner mat-form-field{flex:1}.advanced-coordinates__coordinates-container__inner mat-form-field:not(:first-child),.advanced-coordinates__coordinates-container__inner button:not(:first-child){margin-left:8px}.advanced-coordinates__form{display:flex;flex-direction:column}.advanced-coordinates__form mat-slide-toggle{flex:1}.advanced-coordinates__form mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}.advanced-coordinates__form mat-slide-toggle ::ng-deep .mdc-label{flex:1}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
3176
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedCoordinatesComponent, deps: [{ token: MapState }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }, { token: i0.ChangeDetectorRef }, { token: i4.StorageService }, { token: i5.ConfigService }, { token: i2$3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
3177
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AdvancedCoordinatesComponent, isStandalone: true, selector: "igo-advanced-coordinates", inputs: { projectionsLimitations: "projectionsLimitations" }, ngImport: i0, template: "<div class=\"advanced-coordinates__coordinates-container\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-form-field *ngIf=\"units; else elseBlock\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\n }}</mat-label>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon'\n | translate\n \"\n [value]=\"coordinates[0]\"\n ></textarea>\n </mat-form-field>\n <ng-template #elseBlock>\n <mat-form-field subscriptSizing=\"dynamic\">\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.est'\n | translate\n \"\n [value]=\"coordinates[0]\"\n ></textarea>\n </mat-form-field>\n </ng-template>\n\n <mat-form-field *ngIf=\"units; else elseBlock2\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\n }}</mat-label>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat'\n | translate\n \"\n [value]=\"coordinates[1]\"\n ></textarea>\n </mat-form-field>\n <ng-template #elseBlock2>\n <mat-form-field subscriptSizing=\"dynamic\">\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.nord'\n | translate\n \"\n [value]=\"coordinates[1]\"\n ></textarea>\n </mat-form-field>\n </ng-template>\n <button\n mat-icon-button\n [attr.aria-label]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.copy'\n | translate\n \"\n class=\"igo-form-button-group advanced-coordinates__copy-coordinates\"\n (click)=\"copyTextToClipboard()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <form class=\"igo-form advanced-coordinates__form\" [formGroup]=\"form\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-form-field class=\"igo-input-container\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem'\n | translate\n }}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n <mat-option\n matTooltipShowDelay=\"500\"\n *ngFor=\"let projection of projections$ | async\"\n [value]=\"projection\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ projection.translatedValue || projection.alias }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-slide-toggle\n class=\"center-toggle mat-typography\"\n [checked]=\"center\"\n [labelPosition]=\"'before'\"\n (change)=\"displayCenter($event.checked)\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.center'\n | translate\n }}\n </mat-slide-toggle>\n </div>\n </form>\n\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate\n }}\n {{ map.viewController.getZoom() }}\n </p>\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate\n }}\n {{ formattedScale$ | async }}\n </p>\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.resolution'\n | translate\n }}\n {{ map.viewController.getResolution() | number: '1.0-0' }}\n </p>\n</div>\n", styles: [":host{padding:12px 0}textarea{resize:none}.advanced-coordinates__coordinates-container{width:100%;display:flex;flex-direction:column;padding:12px 0}.advanced-coordinates__coordinates-container__inner{display:flex;align-items:center;margin-bottom:16px}.advanced-coordinates__coordinates-container__inner mat-form-field{flex:1}.advanced-coordinates__coordinates-container__inner mat-form-field:not(:first-child),.advanced-coordinates__coordinates-container__inner button:not(:first-child){margin-left:8px}.advanced-coordinates__form{display:flex;flex-direction:column}.advanced-coordinates__form mat-slide-toggle{flex:1}.advanced-coordinates__form mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}.advanced-coordinates__form mat-slide-toggle ::ng-deep .mdc-label{flex:1}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i11$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
3184
3178
  }
3185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdvancedCoordinatesComponent, decorators: [{
3179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedCoordinatesComponent, decorators: [{
3186
3180
  type: Component,
3187
3181
  args: [{ selector: 'igo-advanced-coordinates', standalone: true, imports: [
3188
3182
  NgIf,
@@ -3200,13 +3194,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
3200
3194
  DecimalPipe,
3201
3195
  IgoLanguageModule
3202
3196
  ], template: "<div class=\"advanced-coordinates__coordinates-container\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-form-field *ngIf=\"units; else elseBlock\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\n }}</mat-label>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon'\n | translate\n \"\n [value]=\"coordinates[0]\"\n ></textarea>\n </mat-form-field>\n <ng-template #elseBlock>\n <mat-form-field subscriptSizing=\"dynamic\">\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.est'\n | translate\n \"\n [value]=\"coordinates[0]\"\n ></textarea>\n </mat-form-field>\n </ng-template>\n\n <mat-form-field *ngIf=\"units; else elseBlock2\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\n }}</mat-label>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat'\n | translate\n \"\n [value]=\"coordinates[1]\"\n ></textarea>\n </mat-form-field>\n <ng-template #elseBlock2>\n <mat-form-field subscriptSizing=\"dynamic\">\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.nord'\n | translate\n \"\n [value]=\"coordinates[1]\"\n ></textarea>\n </mat-form-field>\n </ng-template>\n <button\n mat-icon-button\n [attr.aria-label]=\"\n 'igo.integration.advanced-map-tool.advanced-coordinates.copy'\n | translate\n \"\n class=\"igo-form-button-group advanced-coordinates__copy-coordinates\"\n (click)=\"copyTextToClipboard()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <form class=\"igo-form advanced-coordinates__form\" [formGroup]=\"form\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-form-field class=\"igo-input-container\" subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem'\n | translate\n }}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n <mat-option\n matTooltipShowDelay=\"500\"\n *ngFor=\"let projection of projections$ | async\"\n [value]=\"projection\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ projection.translatedValue || projection.alias }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-slide-toggle\n class=\"center-toggle mat-typography\"\n [checked]=\"center\"\n [labelPosition]=\"'before'\"\n (change)=\"displayCenter($event.checked)\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.center'\n | translate\n }}\n </mat-slide-toggle>\n </div>\n </form>\n\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate\n }}\n {{ map.viewController.getZoom() }}\n </p>\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate\n }}\n {{ formattedScale$ | async }}\n </p>\n <p class=\"igo-zoom mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.resolution'\n | translate\n }}\n {{ map.viewController.getResolution() | number: '1.0-0' }}\n </p>\n</div>\n", styles: [":host{padding:12px 0}textarea{resize:none}.advanced-coordinates__coordinates-container{width:100%;display:flex;flex-direction:column;padding:12px 0}.advanced-coordinates__coordinates-container__inner{display:flex;align-items:center;margin-bottom:16px}.advanced-coordinates__coordinates-container__inner mat-form-field{flex:1}.advanced-coordinates__coordinates-container__inner mat-form-field:not(:first-child),.advanced-coordinates__coordinates-container__inner button:not(:first-child){margin-left:8px}.advanced-coordinates__form{display:flex;flex-direction:column}.advanced-coordinates__form mat-slide-toggle{flex:1}.advanced-coordinates__form mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}.advanced-coordinates__form mat-slide-toggle ::ng-deep .mdc-label{flex:1}\n"] }]
3203
- }], ctorParameters: () => [{ type: MapState }, { type: i2$1.LanguageService }, { type: i4$1.MessageService }, { type: i0.ChangeDetectorRef }, { type: i4.StorageService }, { type: i5.ConfigService }, { type: i3$2.UntypedFormBuilder }], propDecorators: { projectionsLimitations: [{
3197
+ }], ctorParameters: () => [{ type: MapState }, { type: i2$1.LanguageService }, { type: i4$1.MessageService }, { type: i0.ChangeDetectorRef }, { type: i4.StorageService }, { type: i5.ConfigService }, { type: i2$3.UntypedFormBuilder }], propDecorators: { projectionsLimitations: [{
3204
3198
  type: Input
3205
3199
  }] } });
3206
3200
 
3207
3201
  class AdvancedSwipeComponent {
3208
3202
  mapState;
3209
- contextService;
3210
3203
  formBuilder;
3211
3204
  toolState;
3212
3205
  swipe = false;
@@ -3222,9 +3215,8 @@ class AdvancedSwipeComponent {
3222
3215
  get map() {
3223
3216
  return this.mapState.map;
3224
3217
  }
3225
- constructor(mapState, contextService, formBuilder, toolState) {
3218
+ constructor(mapState, formBuilder, toolState) {
3226
3219
  this.mapState = mapState;
3227
- this.contextService = contextService;
3228
3220
  this.formBuilder = formBuilder;
3229
3221
  this.toolState = toolState;
3230
3222
  this.buildForm();
@@ -3234,7 +3226,10 @@ class AdvancedSwipeComponent {
3234
3226
  * @internal
3235
3227
  */
3236
3228
  ngOnInit() {
3237
- this.map.layers$.subscribe((ll) => (this.userControlledLayerList = ll.filter((layer) => !layer.baseLayer && layer.showInLayerList && layer.displayed)));
3229
+ this.map.layerController.all$.subscribe((layers) => (this.userControlledLayerList = layers.filter((layer) => isLayerItem(layer) &&
3230
+ !layer.baseLayer &&
3231
+ layer.showInLayerList &&
3232
+ layer.displayed)));
3238
3233
  }
3239
3234
  /**
3240
3235
  * Desactivate the swipe
@@ -3273,7 +3268,7 @@ class AdvancedSwipeComponent {
3273
3268
  if (e._selected) {
3274
3269
  e._selected = false;
3275
3270
  }
3276
- const allLayers = this.userControlledLayerList.length;
3271
+ const allLayers = this.userControlledLayerList?.length;
3277
3272
  const selectedLayers = this.form.controls.layers.value.length;
3278
3273
  if (selectedLayers === allLayers) {
3279
3274
  e._selected = true;
@@ -3311,10 +3306,10 @@ class AdvancedSwipeComponent {
3311
3306
  contextEmit() {
3312
3307
  this.toolState.toolbox.activateTool('contextManager');
3313
3308
  }
3314
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdvancedSwipeComponent, deps: [{ token: MapState }, { token: i1$3.ContextService }, { token: i3$2.UntypedFormBuilder }, { token: ToolState }], target: i0.ɵɵFactoryTarget.Component });
3315
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: AdvancedSwipeComponent, isStandalone: true, selector: "igo-advanced-swipe", ngImport: i0, template: "<div\n *ngIf=\"userControlledLayerList.length; else noLayersBlock\"\n class=\"igo-swipe-select-container\"\n>\n <form class=\"igo-form\" [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-swipe.swipe-select'\n | translate\n }}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.selectAll'\n | translate\n }}\n </mat-option>\n <mat-divider></mat-divider>\n <mat-option\n *ngFor=\"let layer of userControlledLayerList\"\n [value]=\"layer\"\n (click)=\"applyNewLayers(e)\"\n >{{ layer.title }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n <mat-slide-toggle\n class=\"swipe-toggle mat-typography\"\n [checked]=\"swipe\"\n [labelPosition]=\"'before'\"\n (change)=\"startSwipe($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate }}\n </mat-slide-toggle>\n </form>\n</div>\n\n<ng-template #noLayersBlock>\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate }}\n </p>\n <p class=\"map-empty mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate\n }}\n </p>\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.search-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.context-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host{padding:12px 0}:host .igo-swipe-select-container{padding:12px 0}:host .igo-swipe-select-container mat-form-field{width:100%}:host .igo-form{display:flex;flex-direction:column;width:100%}:host mat-slide-toggle{flex:1}:host mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}:host mat-slide-toggle ::ng-deep .mdc-label{flex:1}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:4px}:host .map-empty{padding:12px 0;text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host .advanced-tool-line{height:2px;background-color:gray}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i10.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i10.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i10.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i10.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
3309
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedSwipeComponent, deps: [{ token: MapState }, { token: i2$3.UntypedFormBuilder }, { token: ToolState }], target: i0.ɵɵFactoryTarget.Component });
3310
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AdvancedSwipeComponent, isStandalone: true, selector: "igo-advanced-swipe", ngImport: i0, template: "<div\n *ngIf=\"userControlledLayerList?.length; else noLayersBlock\"\n class=\"igo-swipe-select-container\"\n>\n <form class=\"igo-form\" [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-swipe.swipe-select'\n | translate\n }}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.selectAll'\n | translate\n }}\n </mat-option>\n <mat-divider></mat-divider>\n <mat-option\n *ngFor=\"let layer of userControlledLayerList\"\n [value]=\"layer\"\n (click)=\"applyNewLayers(e)\"\n >{{ layer.title }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n <mat-slide-toggle\n class=\"swipe-toggle mat-typography\"\n [checked]=\"swipe\"\n [labelPosition]=\"'before'\"\n (change)=\"startSwipe($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate }}\n </mat-slide-toggle>\n </form>\n</div>\n\n<ng-template #noLayersBlock>\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate }}\n </p>\n <p class=\"map-empty mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate\n }}\n </p>\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.search-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.context-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host{padding:12px 0}:host .igo-swipe-select-container{padding:12px 0}:host .igo-swipe-select-container mat-form-field{width:100%}:host .igo-form{display:flex;flex-direction:column;width:100%}:host mat-slide-toggle{flex:1}:host mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}:host mat-slide-toggle ::ng-deep .mdc-label{flex:1}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:4px}:host .map-empty{padding:12px 0;text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host .advanced-tool-line{height:2px;background-color:gray}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i11$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i9.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i9.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i9.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i9.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
3316
3311
  }
3317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdvancedSwipeComponent, decorators: [{
3312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedSwipeComponent, decorators: [{
3318
3313
  type: Component,
3319
3314
  args: [{ selector: 'igo-advanced-swipe', standalone: true, imports: [
3320
3315
  NgIf,
@@ -3330,28 +3325,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
3330
3325
  MatIconModule,
3331
3326
  IgoLanguageModule,
3332
3327
  IgoIconComponent
3333
- ], template: "<div\n *ngIf=\"userControlledLayerList.length; else noLayersBlock\"\n class=\"igo-swipe-select-container\"\n>\n <form class=\"igo-form\" [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-swipe.swipe-select'\n | translate\n }}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.selectAll'\n | translate\n }}\n </mat-option>\n <mat-divider></mat-divider>\n <mat-option\n *ngFor=\"let layer of userControlledLayerList\"\n [value]=\"layer\"\n (click)=\"applyNewLayers(e)\"\n >{{ layer.title }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n <mat-slide-toggle\n class=\"swipe-toggle mat-typography\"\n [checked]=\"swipe\"\n [labelPosition]=\"'before'\"\n (change)=\"startSwipe($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate }}\n </mat-slide-toggle>\n </form>\n</div>\n\n<ng-template #noLayersBlock>\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate }}\n </p>\n <p class=\"map-empty mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate\n }}\n </p>\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.search-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.context-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host{padding:12px 0}:host .igo-swipe-select-container{padding:12px 0}:host .igo-swipe-select-container mat-form-field{width:100%}:host .igo-form{display:flex;flex-direction:column;width:100%}:host mat-slide-toggle{flex:1}:host mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}:host mat-slide-toggle ::ng-deep .mdc-label{flex:1}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:4px}:host .map-empty{padding:12px 0;text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host .advanced-tool-line{height:2px;background-color:gray}\n"] }]
3334
- }], ctorParameters: () => [{ type: MapState }, { type: i1$3.ContextService }, { type: i3$2.UntypedFormBuilder }, { type: ToolState }] });
3328
+ ], template: "<div\n *ngIf=\"userControlledLayerList?.length; else noLayersBlock\"\n class=\"igo-swipe-select-container\"\n>\n <form class=\"igo-form\" [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-swipe.swipe-select'\n | translate\n }}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.selectAll'\n | translate\n }}\n </mat-option>\n <mat-divider></mat-divider>\n <mat-option\n *ngFor=\"let layer of userControlledLayerList\"\n [value]=\"layer\"\n (click)=\"applyNewLayers(e)\"\n >{{ layer.title }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n <mat-slide-toggle\n class=\"swipe-toggle mat-typography\"\n [checked]=\"swipe\"\n [labelPosition]=\"'before'\"\n (change)=\"startSwipe($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate }}\n </mat-slide-toggle>\n </form>\n</div>\n\n<ng-template #noLayersBlock>\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate }}\n </p>\n <p class=\"map-empty mat-typography\">\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate\n }}\n </p>\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.search-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.context-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host{padding:12px 0}:host .igo-swipe-select-container{padding:12px 0}:host .igo-swipe-select-container mat-form-field{width:100%}:host .igo-form{display:flex;flex-direction:column;width:100%}:host mat-slide-toggle{flex:1}:host mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}:host mat-slide-toggle ::ng-deep .mdc-label{flex:1}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:4px}:host .map-empty{padding:12px 0;text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host .advanced-tool-line{height:2px;background-color:gray}\n"] }]
3329
+ }], ctorParameters: () => [{ type: MapState }, { type: i2$3.UntypedFormBuilder }, { type: ToolState }] });
3335
3330
 
3336
3331
  let AdvancedMapToolComponent = class AdvancedMapToolComponent {
3337
3332
  mapState;
3338
3333
  get tracking$() {
3339
- return this.mapState.map.geolocationController.tracking$;
3334
+ return this.mapState.map.geolocationController?.tracking$;
3340
3335
  }
3341
3336
  get followPosition$() {
3342
- return this.mapState.map.geolocationController.followPosition$;
3337
+ return this.mapState.map.geolocationController?.followPosition$;
3343
3338
  }
3344
3339
  constructor(mapState) {
3345
3340
  this.mapState = mapState;
3346
3341
  }
3347
3342
  toggleTracking(value) {
3343
+ if (!this.mapState.map.geolocationController) {
3344
+ return;
3345
+ }
3348
3346
  this.mapState.map.geolocationController.tracking = value;
3349
3347
  }
3350
3348
  toggleFollow(value) {
3349
+ if (!this.mapState.map.geolocationController) {
3350
+ return;
3351
+ }
3351
3352
  this.mapState.map.geolocationController.followPosition = value;
3352
3353
  }
3353
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdvancedMapToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
3354
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: AdvancedMapToolComponent, isStandalone: true, selector: "igo-advanced-map-tool", ngImport: i0, template: "<h4 class=\"nameOfTool\">\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.swipe-tool' | translate\n }}\n</h4>\n<igo-advanced-swipe></igo-advanced-swipe>\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\n<h4 class=\"nameOfTool\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.coordinates'\n | translate\n }}\n</h4>\n<igo-advanced-coordinates></igo-advanced-coordinates>\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\n\n<h4 class=\"nameOfTool\">\n {{ 'igo.integration.advanced-map-tool.geolocation.title' | translate }}\n</h4>\n\n<div class=\"igo-input-container\">\n <div class=\"geolocation-slide-toggle-container\">\n <mat-slide-toggle\n class=\"geolocation-option\"\n [checked]=\"tracking$ | async\"\n [labelPosition]=\"'before'\"\n (change)=\"toggleTracking($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.geolocation.tracking' | translate }}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"geolocation-option\"\n [disabled]=\"(tracking$ | async) !== true\"\n [labelPosition]=\"'before'\"\n [checked]=\"followPosition$ | async\"\n (change)=\"toggleFollow($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.geolocation.follow' | translate }}\n </mat-slide-toggle>\n </div>\n</div>\n", styles: [":host{display:block;padding:0 16px 12px}.nameOfTool{text-align:center;font-weight:700;font-size:small;margin:12px 0 8px}.advanced-tool-line{height:2px;background-color:gray}.geolocation-slide-toggle-container{display:flex;flex-direction:column;padding:12px 0}.geolocation-slide-toggle-container mat-slide-toggle{flex:1}.geolocation-slide-toggle-container mat-slide-toggle:not(:last-child){margin-bottom:16px}.geolocation-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}.geolocation-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{flex:1}mat-divider{margin:0 -16px}\n"], dependencies: [{ kind: "component", type: AdvancedSwipeComponent, selector: "igo-advanced-swipe" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: AdvancedCoordinatesComponent, selector: "igo-advanced-coordinates", inputs: ["projectionsLimitations"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
3354
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedMapToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
3355
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AdvancedMapToolComponent, isStandalone: true, selector: "igo-advanced-map-tool", ngImport: i0, template: "<h4 class=\"nameOfTool\">\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.swipe-tool' | translate\n }}\n</h4>\n<igo-advanced-swipe></igo-advanced-swipe>\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\n<h4 class=\"nameOfTool\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.coordinates'\n | translate\n }}\n</h4>\n<igo-advanced-coordinates></igo-advanced-coordinates>\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\n\n<h4 class=\"nameOfTool\">\n {{ 'igo.integration.advanced-map-tool.geolocation.title' | translate }}\n</h4>\n\n<div class=\"igo-input-container\">\n <div class=\"geolocation-slide-toggle-container\">\n <mat-slide-toggle\n class=\"geolocation-option\"\n [checked]=\"tracking$ | async\"\n [labelPosition]=\"'before'\"\n (change)=\"toggleTracking($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.geolocation.tracking' | translate }}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"geolocation-option\"\n [disabled]=\"(tracking$ | async) !== true\"\n [labelPosition]=\"'before'\"\n [checked]=\"followPosition$ | async\"\n (change)=\"toggleFollow($event.checked)\"\n >\n {{ 'igo.integration.advanced-map-tool.geolocation.follow' | translate }}\n </mat-slide-toggle>\n </div>\n</div>\n", styles: [":host{display:block;padding:0 16px 12px}.nameOfTool{text-align:center;font-weight:700;font-size:small;margin:12px 0 8px}.advanced-tool-line{height:2px;background-color:gray}.geolocation-slide-toggle-container{display:flex;flex-direction:column;padding:12px 0}.geolocation-slide-toggle-container mat-slide-toggle{flex:1}.geolocation-slide-toggle-container mat-slide-toggle:not(:last-child){margin-bottom:16px}.geolocation-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{display:flex;justify-content:space-between}.geolocation-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{flex:1}mat-divider{margin:0 -16px}\n"], dependencies: [{ kind: "component", type: AdvancedSwipeComponent, selector: "igo-advanced-swipe" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: AdvancedCoordinatesComponent, selector: "igo-advanced-coordinates", inputs: ["projectionsLimitations"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
3355
3356
  };
3356
3357
  AdvancedMapToolComponent = __decorate([
3357
3358
  ToolComponent({
@@ -3365,7 +3366,7 @@ AdvancedMapToolComponent = __decorate([
3365
3366
  ,
3366
3367
  __metadata("design:paramtypes", [MapState])
3367
3368
  ], AdvancedMapToolComponent);
3368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AdvancedMapToolComponent, decorators: [{
3369
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedMapToolComponent, decorators: [{
3369
3370
  type: Component,
3370
3371
  args: [{ selector: 'igo-advanced-map-tool', standalone: true, imports: [
3371
3372
  AdvancedSwipeComponent,
@@ -3381,7 +3382,6 @@ class WorkspaceButtonComponent {
3381
3382
  workspaceState;
3382
3383
  hasWorkspace$ = new BehaviorSubject(false);
3383
3384
  hasWorkspace$$;
3384
- _layer;
3385
3385
  layer$ = new BehaviorSubject(undefined);
3386
3386
  set layer(value) {
3387
3387
  this._layer = value;
@@ -3390,6 +3390,7 @@ class WorkspaceButtonComponent {
3390
3390
  get layer() {
3391
3391
  return this._layer;
3392
3392
  }
3393
+ _layer;
3393
3394
  color = 'primary';
3394
3395
  constructor(workspaceState) {
3395
3396
  this.workspaceState = workspaceState;
@@ -3398,7 +3399,7 @@ class WorkspaceButtonComponent {
3398
3399
  this.hasWorkspace$$ = combineLatest([
3399
3400
  this.workspaceState.workspaceEnabled$,
3400
3401
  this.layer$
3401
- ]).subscribe((bunch) => this.hasWorkspace$.next(bunch[0] && bunch[1]?.options.workspace?.enabled));
3402
+ ]).subscribe(([enabled, layer]) => this.hasWorkspace$.next(enabled && isLayerItem(layer) && layer.options.workspace?.enabled));
3402
3403
  }
3403
3404
  ngOnDestroy() {
3404
3405
  this.hasWorkspace$$.unsubscribe();
@@ -3415,10 +3416,10 @@ class WorkspaceButtonComponent {
3415
3416
  this.workspaceState.setActiveWorkspaceById(this.layer.id);
3416
3417
  }
3417
3418
  }
3418
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WorkspaceButtonComponent, deps: [{ token: WorkspaceState }], target: i0.ɵɵFactoryTarget.Component });
3419
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: WorkspaceButtonComponent, isStandalone: true, selector: "igo-workspace-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\n *ngIf=\"hasWorkspace$ | async\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\n [color]=\"color\"\n (click)=\"activateWorkspace()\"\n>\n <mat-icon>table</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3419
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceButtonComponent, deps: [{ token: WorkspaceState }], target: i0.ɵɵFactoryTarget.Component });
3420
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: WorkspaceButtonComponent, isStandalone: true, selector: "igo-workspace-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\n *ngIf=\"hasWorkspace$ | async\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\n [color]=\"color\"\n (click)=\"activateWorkspace()\"\n>\n <mat-icon>table</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3420
3421
  }
3421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WorkspaceButtonComponent, decorators: [{
3422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceButtonComponent, decorators: [{
3422
3423
  type: Component,
3423
3424
  args: [{ selector: 'igo-workspace-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
3424
3425
  NgIf,
@@ -3438,8 +3439,11 @@ let MapDetailsToolComponent = class MapDetailsToolComponent {
3438
3439
  mapState;
3439
3440
  toolState;
3440
3441
  searchSourceService;
3441
- cdRef;
3442
3442
  importExportState;
3443
+ configService;
3444
+ mediaService;
3445
+ cdr;
3446
+ isDesktop;
3443
3447
  delayedShowEmptyMapContent = false;
3444
3448
  toggleLegendOnVisibilityChange = false;
3445
3449
  expandLegendOfVisibleLayers = false;
@@ -3449,12 +3453,24 @@ let MapDetailsToolComponent = class MapDetailsToolComponent {
3449
3453
  layerListControls = {};
3450
3454
  queryBadge = false;
3451
3455
  layerAdditionAllowed = true;
3456
+ _layerViewerOptions;
3457
+ get layerViewerOptions() {
3458
+ return {
3459
+ filterAndSortOptions: this.layerFilterAndSortOptions,
3460
+ legend: {
3461
+ showForVisibleLayers: this.expandLegendOfVisibleLayers,
3462
+ showOnVisibilityChange: this.toggleLegendOnVisibilityChange,
3463
+ updateOnResolutionChange: this.updateLegendOnResolutionChange
3464
+ },
3465
+ queryBadge: this.queryBadge,
3466
+ ...this._layerViewerOptions
3467
+ };
3468
+ }
3452
3469
  get map() {
3453
3470
  return this.mapState.map;
3454
3471
  }
3455
3472
  get layers$() {
3456
- return this.map.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.showInLayerList !== false &&
3457
- (!this.excludeBaseLayers || !layer.baseLayer))));
3473
+ return this.map.layerController.all$;
3458
3474
  }
3459
3475
  get excludeBaseLayers() {
3460
3476
  return this.layerListControls.excludeBaseLayers || false;
@@ -3488,18 +3504,22 @@ let MapDetailsToolComponent = class MapDetailsToolComponent {
3488
3504
  get contextToolInToolbar() {
3489
3505
  return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;
3490
3506
  }
3491
- constructor(mapState, toolState, searchSourceService, cdRef, importExportState) {
3507
+ constructor(mapState, toolState, searchSourceService, importExportState, configService, mediaService, cdr) {
3492
3508
  this.mapState = mapState;
3493
3509
  this.toolState = toolState;
3494
3510
  this.searchSourceService = searchSourceService;
3495
- this.cdRef = cdRef;
3496
3511
  this.importExportState = importExportState;
3512
+ this.configService = configService;
3513
+ this.mediaService = mediaService;
3514
+ this.cdr = cdr;
3515
+ this._layerViewerOptions = this.configService.getConfig('layer');
3497
3516
  }
3498
3517
  ngOnInit() {
3518
+ this.handleMedia();
3499
3519
  // prevent message to be shown too quickly. Waiting for layers
3500
3520
  setTimeout(() => {
3501
3521
  this.delayedShowEmptyMapContent = true;
3502
- this.cdRef.detectChanges();
3522
+ this.cdr.detectChanges();
3503
3523
  }, 250);
3504
3524
  }
3505
3525
  searchEmit() {
@@ -3523,8 +3543,14 @@ let MapDetailsToolComponent = class MapDetailsToolComponent {
3523
3543
  this.importExportState.setMode(ImportExportMode.export);
3524
3544
  this.toolState.toolbox.activateTool('importExport');
3525
3545
  }
3526
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapDetailsToolComponent, deps: [{ token: MapState }, { token: ToolState }, { token: i1$1.SearchSourceService }, { token: i0.ChangeDetectorRef }, { token: ImportExportState }], target: i0.ɵɵFactoryTarget.Component });
3527
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: MapDetailsToolComponent, isStandalone: true, selector: "igo-map-details-tool", inputs: { toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendOfVisibleLayers: "expandLegendOfVisibleLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", ogcButton: "ogcButton", timeButton: "timeButton", layerListControls: "layerListControls", queryBadge: "queryBadge", layerAdditionAllowed: "layerAdditionAllowed" }, ngImport: i0, template: "<igo-layer-list\n class=\"mapDetailsList\"\n *ngIf=\"(layers$ | async).length; else empty\"\n [map]=\"map\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [queryBadge]=\"queryBadge\"\n>\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n</igo-layer-list>\n\n<ng-template #empty>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}:host .mapDetailsList{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LayerListComponent, selector: "igo-layer-list", inputs: ["layersAreAllVisible", "ogcButton", "timeButton", "map", "layers", "floatLabel", "layerFilterAndSortOptions", "excludeBaseLayers", "toggleLegendOnVisibilityChange", "expandLegendOfVisibleLayers", "updateLegendOnResolutionChange", "queryBadge"], outputs: ["appliedFilterAndSort"] }, { kind: "directive", type: LayerListBindingDirective, selector: "[igoLayerListBinding]" }, { kind: "component", type: WorkspaceButtonComponent, selector: "igo-workspace-button", inputs: ["layer", "color"] }, { kind: "component", type: ExportButtonComponent, selector: "igo-export-button", inputs: ["layer", "color"] }, { kind: "component", type: OgcFilterButtonComponent, selector: "igo-ogc-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TimeFilterButtonComponent, selector: "igo-time-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i10.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i10.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i10.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i10.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
3546
+ handleMedia() {
3547
+ this.mediaService.media$.subscribe((result) => {
3548
+ this.isDesktop = result === Media.Desktop;
3549
+ this.cdr.detectChanges();
3550
+ });
3551
+ }
3552
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapDetailsToolComponent, deps: [{ token: MapState }, { token: ToolState }, { token: i1.SearchSourceService }, { token: ImportExportState }, { token: i5.ConfigService }, { token: i3$1.MediaService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3553
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapDetailsToolComponent, isStandalone: true, selector: "igo-map-details-tool", inputs: { toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendOfVisibleLayers: "expandLegendOfVisibleLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", ogcButton: "ogcButton", timeButton: "timeButton", layerListControls: "layerListControls", queryBadge: "queryBadge", layerAdditionAllowed: "layerAdditionAllowed" }, ngImport: i0, template: "<igo-layer-viewer\n class=\"mapDetailsList\"\n *ngIf=\"(layers$ | async).length; else empty\"\n [map]=\"map\"\n [options]=\"layerViewerOptions\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [isDesktop]=\"isDesktop\"\n>\n <ng-template #customBottomActions let-layer=\"layer\">\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n</igo-layer-viewer>\n\n<ng-template #empty>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}:host .mapDetailsList{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LayerViewerComponent, selector: "igo-layer-viewer", inputs: ["map", "options", "isDesktop", "excludeBaseLayers"], outputs: ["appliedFilterAndSort"] }, { kind: "component", type: WorkspaceButtonComponent, selector: "igo-workspace-button", inputs: ["layer", "color"] }, { kind: "component", type: ExportButtonComponent, selector: "igo-export-button", inputs: ["layer", "color"] }, { kind: "component", type: OgcFilterButtonComponent, selector: "igo-ogc-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TimeFilterButtonComponent, selector: "igo-time-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i9.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i9.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i9.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i9.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
3528
3554
  };
3529
3555
  MapDetailsToolComponent = __decorate([
3530
3556
  ToolComponent({
@@ -3535,15 +3561,16 @@ MapDetailsToolComponent = __decorate([
3535
3561
  __metadata("design:paramtypes", [MapState,
3536
3562
  ToolState,
3537
3563
  SearchSourceService,
3538
- ChangeDetectorRef,
3539
- ImportExportState])
3564
+ ImportExportState,
3565
+ ConfigService,
3566
+ MediaService,
3567
+ ChangeDetectorRef])
3540
3568
  ], MapDetailsToolComponent);
3541
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapDetailsToolComponent, decorators: [{
3569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapDetailsToolComponent, decorators: [{
3542
3570
  type: Component,
3543
3571
  args: [{ selector: 'igo-map-details-tool', standalone: true, imports: [
3544
3572
  NgIf,
3545
- LayerListComponent,
3546
- LayerListBindingDirective,
3573
+ LayerViewerComponent,
3547
3574
  WorkspaceButtonComponent,
3548
3575
  ExportButtonComponent,
3549
3576
  OgcFilterButtonComponent,
@@ -3554,8 +3581,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
3554
3581
  MatIconModule,
3555
3582
  AsyncPipe,
3556
3583
  IgoLanguageModule
3557
- ], template: "<igo-layer-list\n class=\"mapDetailsList\"\n *ngIf=\"(layers$ | async).length; else empty\"\n [map]=\"map\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [queryBadge]=\"queryBadge\"\n>\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n</igo-layer-list>\n\n<ng-template #empty>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}:host .mapDetailsList{overflow:hidden}\n"] }]
3558
- }], ctorParameters: () => [{ type: MapState }, { type: ToolState }, { type: i1$1.SearchSourceService }, { type: i0.ChangeDetectorRef }, { type: ImportExportState }], propDecorators: { toggleLegendOnVisibilityChange: [{
3584
+ ], template: "<igo-layer-viewer\n class=\"mapDetailsList\"\n *ngIf=\"(layers$ | async).length; else empty\"\n [map]=\"map\"\n [options]=\"layerViewerOptions\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [isDesktop]=\"isDesktop\"\n>\n <ng-template #customBottomActions let-layer=\"layer\">\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n</igo-layer-viewer>\n\n<ng-template #empty>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}:host .mapDetailsList{overflow:hidden}\n"] }]
3585
+ }], ctorParameters: () => [{ type: MapState }, { type: ToolState }, { type: i1.SearchSourceService }, { type: ImportExportState }, { type: i5.ConfigService }, { type: i3$1.MediaService }, { type: i0.ChangeDetectorRef }], propDecorators: { toggleLegendOnVisibilityChange: [{
3559
3586
  type: Input
3560
3587
  }], expandLegendOfVisibleLayers: [{
3561
3588
  type: Input
@@ -3593,10 +3620,10 @@ let MapLegendToolComponent = class MapLegendToolComponent {
3593
3620
  return this.mapState.map;
3594
3621
  }
3595
3622
  get visibleOrInRangeLayers$() {
3596
- return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.visible$.value && layer.isInResolutionsRange$.value)));
3623
+ return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.displayed)));
3597
3624
  }
3598
3625
  get visibleLayers$() {
3599
- return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.visible$.value)));
3626
+ return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.visible)));
3600
3627
  }
3601
3628
  get excludeBaseLayers() {
3602
3629
  return this.layerListControls.excludeBaseLayers || false;
@@ -3622,13 +3649,13 @@ let MapLegendToolComponent = class MapLegendToolComponent {
3622
3649
  }
3623
3650
  ngOnInit() {
3624
3651
  this.resolution$$ = combineLatest([
3625
- this.map.layers$,
3652
+ this.map.layerController.all$,
3626
3653
  this.map.viewController.resolution$
3627
3654
  ])
3628
3655
  .pipe(debounceTime(10))
3629
3656
  .subscribe((bunch) => {
3630
3657
  this.layers$.next(bunch[0].filter((layer) => layer.showInLayerList !== false &&
3631
- (!this.excludeBaseLayers || !layer.baseLayer)));
3658
+ (!this.excludeBaseLayers || !isBaseLayer(layer))));
3632
3659
  });
3633
3660
  if (this.allowShowAllLegends) {
3634
3661
  this.mapState.showAllLegendsValue =
@@ -3681,8 +3708,8 @@ let MapLegendToolComponent = class MapLegendToolComponent {
3681
3708
  contextEmit() {
3682
3709
  this.toolState.toolbox.activateTool('contextManager');
3683
3710
  }
3684
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapLegendToolComponent, deps: [{ token: MapState }, { token: ToolState }, { token: i1$1.SearchSourceService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3685
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: MapLegendToolComponent, isStandalone: true, selector: "igo-map-legend-tool", inputs: { updateLegendOnResolutionChange: "updateLegendOnResolutionChange", layerAdditionAllowed: "layerAdditionAllowed", allowShowAllLegends: "allowShowAllLegends", showAllLegendsValue: "showAllLegendsValue", layerListControls: "layerListControls" }, ngImport: i0, template: "<igo-layer-legend-list\n *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n>\n</igo-layer-legend-list>\n<ng-template\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n></ng-template>\n\n<p\n class=\"map-empty mat-typography\"\n *ngIf=\"\n !allowShowAllLegends &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n \"\n>\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n</p>\n\n<ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LayerLegendListComponent, selector: "igo-layer-legend-list", inputs: ["layers", "excludeBaseLayers", "updateLegendOnResolutionChange", "allowShowAllLegends", "showAllLegendsValue"], outputs: ["allLegendsShown"] }, { kind: "directive", type: LayerLegendListBindingDirective, selector: "[igoLayerLegendListBinding]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i10.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i10.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i10.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i10.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
3711
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapLegendToolComponent, deps: [{ token: MapState }, { token: ToolState }, { token: i1.SearchSourceService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3712
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapLegendToolComponent, isStandalone: true, selector: "igo-map-legend-tool", inputs: { updateLegendOnResolutionChange: "updateLegendOnResolutionChange", layerAdditionAllowed: "layerAdditionAllowed", allowShowAllLegends: "allowShowAllLegends", showAllLegendsValue: "showAllLegendsValue", layerListControls: "layerListControls" }, ngImport: i0, template: "<igo-layer-legend-list\n *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n>\n</igo-layer-legend-list>\n<ng-template\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n></ng-template>\n\n<p\n class=\"map-empty mat-typography\"\n *ngIf=\"\n !allowShowAllLegends &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n \"\n>\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n</p>\n\n<ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LayerLegendListComponent, selector: "igo-layer-legend-list", inputs: ["layers", "excludeBaseLayers", "updateLegendOnResolutionChange", "allowShowAllLegends", "showAllLegendsValue"], outputs: ["allLegendsShown"] }, { kind: "directive", type: LayerLegendListBindingDirective, selector: "[igoLayerLegendListBinding]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i9.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i9.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i9.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i9.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
3686
3713
  };
3687
3714
  MapLegendToolComponent = __decorate([
3688
3715
  ToolComponent({
@@ -3695,7 +3722,7 @@ MapLegendToolComponent = __decorate([
3695
3722
  SearchSourceService,
3696
3723
  ChangeDetectorRef])
3697
3724
  ], MapLegendToolComponent);
3698
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapLegendToolComponent, decorators: [{
3725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapLegendToolComponent, decorators: [{
3699
3726
  type: Component,
3700
3727
  args: [{ selector: 'igo-map-legend-tool', standalone: true, imports: [
3701
3728
  NgIf,
@@ -3706,7 +3733,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
3706
3733
  AsyncPipe,
3707
3734
  IgoLanguageModule
3708
3735
  ], template: "<igo-layer-legend-list\n *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n>\n</igo-layer-legend-list>\n<ng-template\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n></ng-template>\n\n<p\n class=\"map-empty mat-typography\"\n *ngIf=\"\n !allowShowAllLegends &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n \"\n>\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n</p>\n\n<ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n</ng-template>\n", styles: [":host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}\n"] }]
3709
- }], ctorParameters: () => [{ type: MapState }, { type: ToolState }, { type: i1$1.SearchSourceService }, { type: i0.ChangeDetectorRef }], propDecorators: { updateLegendOnResolutionChange: [{
3736
+ }], ctorParameters: () => [{ type: MapState }, { type: ToolState }, { type: i1.SearchSourceService }, { type: i0.ChangeDetectorRef }], propDecorators: { updateLegendOnResolutionChange: [{
3710
3737
  type: Input
3711
3738
  }], layerAdditionAllowed: [{
3712
3739
  type: Input
@@ -3758,7 +3785,7 @@ class MapProximityState {
3758
3785
  .subscribe((bunch) => {
3759
3786
  this.proximityFeatureStore.clear();
3760
3787
  const enabled = bunch[0];
3761
- const layers = this.map.layers;
3788
+ const layers = this.map.layerController.all;
3762
3789
  const currentPos = this.map.geolocationController.position$.value;
3763
3790
  const locationType = bunch[1];
3764
3791
  const proximityRadiusValue = bunch[2];
@@ -3781,7 +3808,8 @@ class MapProximityState {
3781
3808
  const coordLonLat = olProj.transform(coord, this.map.projection, 'EPSG:4269');
3782
3809
  const roundedCoordLonLat = roundCoordTo(coordLonLat, 6);
3783
3810
  this.currentPositionCoordinate$.next(roundedCoordLonLat);
3784
- const layersToMonitor = layers.filter((layer) => layer.ol instanceof olLayerVector &&
3811
+ const layersToMonitor = layers.filter((layer) => isLayerItem(layer) &&
3812
+ layer.ol instanceof olLayerVector &&
3785
3813
  layer.dataSource.options.queryable &&
3786
3814
  layer.visible &&
3787
3815
  layer.isInResolutionsRange);
@@ -3852,15 +3880,13 @@ class MapProximityState {
3852
3880
  });
3853
3881
  }
3854
3882
  getQueryTitle(feature, layer) {
3855
- let title;
3856
- if (layer.options?.source?.options) {
3883
+ if (isLayerItem(layer) && layer.options?.source?.options) {
3857
3884
  const dataSourceOptions = layer.options.source
3858
3885
  .options;
3859
3886
  if (dataSourceOptions.queryTitle) {
3860
- title = this.getLabelMatch(feature, dataSourceOptions.queryTitle);
3887
+ return this.getLabelMatch(feature, dataSourceOptions.queryTitle);
3861
3888
  }
3862
3889
  }
3863
- return title;
3864
3890
  }
3865
3891
  getLabelMatch(feature, labelMatch) {
3866
3892
  let label = labelMatch;
@@ -3874,10 +3900,10 @@ class MapProximityState {
3874
3900
  }
3875
3901
  return label;
3876
3902
  }
3877
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapProximityState, deps: [{ token: MapState }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
3878
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapProximityState, providedIn: 'root' });
3903
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapProximityState, deps: [{ token: MapState }, { token: i4.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
3904
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapProximityState, providedIn: 'root' });
3879
3905
  }
3880
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapProximityState, decorators: [{
3906
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapProximityState, decorators: [{
3881
3907
  type: Injectable,
3882
3908
  args: [{
3883
3909
  providedIn: 'root'
@@ -3969,8 +3995,8 @@ let MapProximityToolComponent = class MapProximityToolComponent {
3969
3995
  this.messageService.success('igo.integration.map-proximity-tool.copyMsg', 'igo.integration.map-proximity-tool.copyTitle');
3970
3996
  }
3971
3997
  }
3972
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapProximityToolComponent, deps: [{ token: MapState }, { token: MapProximityState }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
3973
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: MapProximityToolComponent, isStandalone: true, selector: "igo-map-proximity-tool", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }], ngImport: i0, template: "<igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"mapProximityState.proximityFeatureStore\"\n [template]=\"tableTemplate\"\n></igo-entity-table>\n<br />\n<mat-form-field\n *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord\"\n class=\"coordinates\"\n>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"'igo.integration.map-proximity-tool.lon' | translate\"\n [value]=\"coord[0]\"\n ></textarea>\n</mat-form-field>\n<mat-form-field\n *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord2\"\n class=\"coordinates2\"\n>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"'igo.integration.map-proximity-tool.lat' | translate\"\n [value]=\"coord2[1]\"\n ></textarea>\n</mat-form-field>\n\n<button\n *ngIf=\"\n (mapProximityState.currentPositionCoordinate$ | async) &&\n (mapProximityState.currentPositionCoordinate$ | async).length\n \"\n mat-icon-button\n (click)=\"copyTextToClipboard()\"\n>\n <mat-icon>content_copy</mat-icon>\n</button>\n<div class=\"title-container\">\n <mat-label class=\"title mat-typography\">{{\n 'igo.integration.map-proximity-tool.method' | translate\n }}</mat-label>\n</div>\n<div class=\"igo-input-container mat-typography\">\n <mat-radio-group (change)=\"onLocationTypeChange($event)\">\n <mat-radio-button\n [checked]=\"\n (mapProximityState.proximitylocationType$ | async) === 'geolocation'\n \"\n value=\"geolocation\"\n >{{\n 'igo.integration.map-proximity-tool.geolocation' | translate\n }}</mat-radio-button\n >\n <mat-radio-button\n [checked]=\"\n (mapProximityState.proximitylocationType$ | async) === 'mapCenter'\n \"\n value=\"mapCenter\"\n >{{\n 'igo.integration.map-proximity-tool.mapCenter' | translate\n }}</mat-radio-button\n >\n </mat-radio-group>\n</div>\n\n<div class=\"radius-unit\">\n <mat-form-field class=\"radius-field\" floatLabel=\"always\">\n <mat-label>{{\n 'igo.integration.map-proximity-tool.radiusM' | translate\n }}</mat-label>\n <input\n type=\"number\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"maxDistance\"\n matInput\n placeholder=\"{{\n 'igo.integration.map-proximity-tool.radiusM' | translate\n }}\"\n />\n </mat-form-field>\n</div>\n", styles: [":host .table-compact{height:auto}:host .table-compact ::ng-deep .mat-mdc-header-cell.mat-column-selectionCheckbox{width:52px}:host textarea{resize:none}:host mat-form-field{padding:10px 15px}:host mat-form-field.coordinates{width:110px}:host mat-form-field.coordinates2{width:100px;padding:0 10px 0 3px}:host mat-form-field.igo-input-container{width:60%;padding:0 15px}:host .radius-unit{display:flex;width:90%;margin-left:2px;padding:5px}:host .radius-unit mat-form-field.radius-field{display:flex;flex-flow:column nowrap;width:100%}:host .title-container{padding:10px}:host .title{margin-left:5px;font-size:initial}:host .mat-mdc-radio-group{display:flex;flex-direction:column}:host .mat-mdc-radio-button{display:inline-flex;position:relative;margin-left:12px}\n"], dependencies: [{ kind: "component", type: EntityTableComponent, selector: "igo-entity-table", inputs: ["store", "paginator", "template", "scrollBehavior", "sortNullsFirst", "withPaginator", "paginatorOptions"], outputs: ["entityClick", "entitySelectChange", "entitySortChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i9.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i9.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
3998
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapProximityToolComponent, deps: [{ token: MapState }, { token: MapProximityState }, { token: i2$1.LanguageService }, { token: i4$1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
3999
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapProximityToolComponent, isStandalone: true, selector: "igo-map-proximity-tool", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }], ngImport: i0, template: "<igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"mapProximityState.proximityFeatureStore\"\n [template]=\"tableTemplate\"\n></igo-entity-table>\n<br />\n<mat-form-field\n *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord\"\n class=\"coordinates\"\n>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"'igo.integration.map-proximity-tool.lon' | translate\"\n [value]=\"coord[0]\"\n ></textarea>\n</mat-form-field>\n<mat-form-field\n *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord2\"\n class=\"coordinates2\"\n>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"1\"\n [placeholder]=\"'igo.integration.map-proximity-tool.lat' | translate\"\n [value]=\"coord2[1]\"\n ></textarea>\n</mat-form-field>\n\n<button\n *ngIf=\"\n (mapProximityState.currentPositionCoordinate$ | async) &&\n (mapProximityState.currentPositionCoordinate$ | async).length\n \"\n mat-icon-button\n (click)=\"copyTextToClipboard()\"\n>\n <mat-icon>content_copy</mat-icon>\n</button>\n<div class=\"title-container\">\n <mat-label class=\"title mat-typography\">{{\n 'igo.integration.map-proximity-tool.method' | translate\n }}</mat-label>\n</div>\n<div class=\"igo-input-container mat-typography\">\n <mat-radio-group (change)=\"onLocationTypeChange($event)\">\n <mat-radio-button\n [checked]=\"\n (mapProximityState.proximitylocationType$ | async) === 'geolocation'\n \"\n value=\"geolocation\"\n >{{\n 'igo.integration.map-proximity-tool.geolocation' | translate\n }}</mat-radio-button\n >\n <mat-radio-button\n [checked]=\"\n (mapProximityState.proximitylocationType$ | async) === 'mapCenter'\n \"\n value=\"mapCenter\"\n >{{\n 'igo.integration.map-proximity-tool.mapCenter' | translate\n }}</mat-radio-button\n >\n </mat-radio-group>\n</div>\n\n<div class=\"radius-unit\">\n <mat-form-field class=\"radius-field\" floatLabel=\"always\">\n <mat-label>{{\n 'igo.integration.map-proximity-tool.radiusM' | translate\n }}</mat-label>\n <input\n type=\"number\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"maxDistance\"\n matInput\n placeholder=\"{{\n 'igo.integration.map-proximity-tool.radiusM' | translate\n }}\"\n />\n </mat-form-field>\n</div>\n", styles: [":host .table-compact{height:auto}:host .table-compact ::ng-deep .mat-mdc-header-cell.mat-column-selectionCheckbox{width:52px}:host textarea{resize:none}:host mat-form-field{padding:10px 15px}:host mat-form-field.coordinates{width:110px}:host mat-form-field.coordinates2{width:100px;padding:0 10px 0 3px}:host mat-form-field.igo-input-container{width:60%;padding:0 15px}:host .radius-unit{display:flex;width:90%;margin-left:2px;padding:5px}:host .radius-unit mat-form-field.radius-field{display:flex;flex-flow:column nowrap;width:100%}:host .title-container{padding:10px}:host .title{margin-left:5px;font-size:initial}:host .mat-mdc-radio-group{display:flex;flex-direction:column}:host .mat-mdc-radio-button{display:inline-flex;position:relative;margin-left:12px}\n"], dependencies: [{ kind: "component", type: EntityTableComponent, selector: "igo-entity-table", inputs: ["store", "paginator", "template", "scrollBehavior", "sortNullsFirst", "withPaginator", "paginatorOptions"], outputs: ["entityClick", "entitySelectChange", "entitySortChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i9$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i9$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
3974
4000
  };
3975
4001
  MapProximityToolComponent = __decorate([
3976
4002
  ToolComponent({
@@ -3987,7 +4013,7 @@ MapProximityToolComponent = __decorate([
3987
4013
  LanguageService,
3988
4014
  MessageService])
3989
4015
  ], MapProximityToolComponent);
3990
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapProximityToolComponent, decorators: [{
4016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapProximityToolComponent, decorators: [{
3991
4017
  type: Component,
3992
4018
  args: [{ selector: 'igo-map-proximity-tool', standalone: true, imports: [
3993
4019
  EntityTableComponent,
@@ -4013,6 +4039,10 @@ let MapToolComponent = class MapToolComponent {
4013
4039
  mapState;
4014
4040
  toolState;
4015
4041
  importExportState;
4042
+ configService;
4043
+ mediaService;
4044
+ cdr;
4045
+ isDesktop;
4016
4046
  toggleLegendOnVisibilityChange = false;
4017
4047
  expandLegendOfVisibleLayers = false;
4018
4048
  updateLegendOnResolutionChange = false;
@@ -4042,10 +4072,30 @@ let MapToolComponent = class MapToolComponent {
4042
4072
  }
4043
4073
  return filterSortOptions;
4044
4074
  }
4045
- constructor(mapState, toolState, importExportState) {
4075
+ _layerViewerOptions;
4076
+ get layerViewerOptions() {
4077
+ return {
4078
+ filterAndSortOptions: this.layerFilterAndSortOptions,
4079
+ legend: {
4080
+ showForVisibleLayers: this.expandLegendOfVisibleLayers,
4081
+ showOnVisibilityChange: this.toggleLegendOnVisibilityChange,
4082
+ updateOnResolutionChange: this.updateLegendOnResolutionChange
4083
+ },
4084
+ queryBadge: this.queryBadge,
4085
+ ...this._layerViewerOptions
4086
+ };
4087
+ }
4088
+ constructor(mapState, toolState, importExportState, configService, mediaService, cdr) {
4046
4089
  this.mapState = mapState;
4047
4090
  this.toolState = toolState;
4048
4091
  this.importExportState = importExportState;
4092
+ this.configService = configService;
4093
+ this.mediaService = mediaService;
4094
+ this.cdr = cdr;
4095
+ this._layerViewerOptions = this.configService.getConfig('layer');
4096
+ }
4097
+ ngOnInit() {
4098
+ this.handleMedia();
4049
4099
  }
4050
4100
  activateExport(layer) {
4051
4101
  let id = layer.id;
@@ -4059,8 +4109,14 @@ let MapToolComponent = class MapToolComponent {
4059
4109
  this.importExportState.setMode(ImportExportMode.export);
4060
4110
  this.toolState.toolbox.activateTool('importExport');
4061
4111
  }
4062
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapToolComponent, deps: [{ token: MapState }, { token: ToolState }, { token: ImportExportState }], target: i0.ɵɵFactoryTarget.Component });
4063
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: MapToolComponent, isStandalone: true, selector: "igo-map-tool", inputs: { toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendOfVisibleLayers: "expandLegendOfVisibleLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", ogcButton: "ogcButton", timeButton: "timeButton", layerListControls: "layerListControls", queryBadge: "queryBadge" }, ngImport: i0, template: "<mat-tab-group>\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\n <igo-layer-list\n [map]=\"map\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [queryBadge]=\"queryBadge\"\n >\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n </igo-layer-list>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\n <igo-context-list igoContextListBinding></igo-context-list>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i5$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i5$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: LayerListComponent, selector: "igo-layer-list", inputs: ["layersAreAllVisible", "ogcButton", "timeButton", "map", "layers", "floatLabel", "layerFilterAndSortOptions", "excludeBaseLayers", "toggleLegendOnVisibilityChange", "expandLegendOfVisibleLayers", "updateLegendOnResolutionChange", "queryBadge"], outputs: ["appliedFilterAndSort"] }, { kind: "directive", type: LayerListBindingDirective, selector: "[igoLayerListBinding]" }, { kind: "component", type: WorkspaceButtonComponent, selector: "igo-workspace-button", inputs: ["layer", "color"] }, { kind: "component", type: ExportButtonComponent, selector: "igo-export-button", inputs: ["layer", "color"] }, { kind: "component", type: OgcFilterButtonComponent, selector: "igo-ogc-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TimeFilterButtonComponent, selector: "igo-time-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "component", type: ContextListComponent, selector: "igo-context-list", inputs: ["contexts", "selectedContext", "map", "defaultContextId", "term"], outputs: ["select", "unselect", "edit", "delete", "save", "clone", "create", "hide", "show", "showHiddenContexts", "favorite", "managePermissions", "manageTools", "filterPermissionsChanged"] }, { kind: "directive", type: ContextListBindingDirective, selector: "[igoContextListBinding]" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4112
+ handleMedia() {
4113
+ this.mediaService.media$.subscribe((result) => {
4114
+ this.isDesktop = result === Media.Desktop;
4115
+ this.cdr.detectChanges();
4116
+ });
4117
+ }
4118
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapToolComponent, deps: [{ token: MapState }, { token: ToolState }, { token: ImportExportState }, { token: i5.ConfigService }, { token: i3$1.MediaService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4119
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapToolComponent, isStandalone: true, selector: "igo-map-tool", inputs: { toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendOfVisibleLayers: "expandLegendOfVisibleLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", ogcButton: "ogcButton", timeButton: "timeButton", layerListControls: "layerListControls", queryBadge: "queryBadge" }, ngImport: i0, template: "<mat-tab-group>\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\n <igo-layer-viewer\n [map]=\"map\"\n [options]=\"layerViewerOptions\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [isDesktop]=\"isDesktop\"\n >\n <ng-template #customBottomActions let-layer=\"layer\">\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\n <igo-context-list igoContextListBinding></igo-context-list>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i5$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i5$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: WorkspaceButtonComponent, selector: "igo-workspace-button", inputs: ["layer", "color"] }, { kind: "component", type: ExportButtonComponent, selector: "igo-export-button", inputs: ["layer", "color"] }, { kind: "component", type: OgcFilterButtonComponent, selector: "igo-ogc-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TimeFilterButtonComponent, selector: "igo-time-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "component", type: LayerViewerComponent, selector: "igo-layer-viewer", inputs: ["map", "options", "isDesktop", "excludeBaseLayers"], outputs: ["appliedFilterAndSort"] }, { kind: "component", type: ContextListComponent, selector: "igo-context-list", inputs: ["contexts", "selectedContext", "map", "defaultContextId", "term"], outputs: ["select", "unselect", "edit", "delete", "save", "clone", "create", "hide", "show", "showHiddenContexts", "favorite", "managePermissions", "manageTools", "filterPermissionsChanged"] }, { kind: "directive", type: ContextListBindingDirective, selector: "[igoContextListBinding]" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4064
4120
  };
4065
4121
  MapToolComponent = __decorate([
4066
4122
  ToolComponent({
@@ -4070,25 +4126,27 @@ MapToolComponent = __decorate([
4070
4126
  }),
4071
4127
  __metadata("design:paramtypes", [MapState,
4072
4128
  ToolState,
4073
- ImportExportState])
4129
+ ImportExportState,
4130
+ ConfigService,
4131
+ MediaService,
4132
+ ChangeDetectorRef])
4074
4133
  ], MapToolComponent);
4075
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapToolComponent, decorators: [{
4134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapToolComponent, decorators: [{
4076
4135
  type: Component,
4077
4136
  args: [{ selector: 'igo-map-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4078
4137
  MatTabsModule,
4079
- LayerListComponent,
4080
- LayerListBindingDirective,
4081
4138
  WorkspaceButtonComponent,
4082
4139
  ExportButtonComponent,
4083
4140
  OgcFilterButtonComponent,
4084
4141
  TimeFilterButtonComponent,
4085
4142
  TrackFeatureButtonComponent,
4086
4143
  MetadataButtonComponent,
4144
+ LayerViewerComponent,
4087
4145
  ContextListComponent,
4088
4146
  ContextListBindingDirective,
4089
4147
  IgoLanguageModule
4090
- ], template: "<mat-tab-group>\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\n <igo-layer-list\n [map]=\"map\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [queryBadge]=\"queryBadge\"\n >\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n </igo-layer-list>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\n <igo-context-list igoContextListBinding></igo-context-list>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}\n"] }]
4091
- }], ctorParameters: () => [{ type: MapState }, { type: ToolState }, { type: ImportExportState }], propDecorators: { toggleLegendOnVisibilityChange: [{
4148
+ ], template: "<mat-tab-group>\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\n <igo-layer-viewer\n [map]=\"map\"\n [options]=\"layerViewerOptions\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [isDesktop]=\"isDesktop\"\n >\n <ng-template #customBottomActions let-layer=\"layer\">\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-ogc-filter-button\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n ></igo-ogc-filter-button>\n <igo-time-filter-button\n [header]=\"timeButton\"\n [layer]=\"layer\"\n ></igo-time-filter-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\n <igo-context-list igoContextListBinding></igo-context-list>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}\n"] }]
4149
+ }], ctorParameters: () => [{ type: MapState }, { type: ToolState }, { type: ImportExportState }, { type: i5.ConfigService }, { type: i3$1.MediaService }, { type: i0.ChangeDetectorRef }], propDecorators: { toggleLegendOnVisibilityChange: [{
4092
4150
  type: Input
4093
4151
  }], expandLegendOfVisibleLayers: [{
4094
4152
  type: Input
@@ -4113,6 +4171,10 @@ let MapToolsComponent = class MapToolsComponent {
4113
4171
  mapState;
4114
4172
  searchSourceService;
4115
4173
  importExportState;
4174
+ configService;
4175
+ mediaService;
4176
+ cdr;
4177
+ isDesktop;
4116
4178
  layers$ = new BehaviorSubject([]);
4117
4179
  showAllLegendsValue$ = new BehaviorSubject(false);
4118
4180
  resolution$$;
@@ -4151,10 +4213,10 @@ let MapToolsComponent = class MapToolsComponent {
4151
4213
  }
4152
4214
  queryBadge = false;
4153
4215
  get visibleOrInRangeLayers$() {
4154
- return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.visible$.value && layer.isInResolutionsRange$.value)));
4216
+ return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.displayed)));
4155
4217
  }
4156
4218
  get visibleLayers$() {
4157
- return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.visible$.value)));
4219
+ return this.layers$.pipe(map$1((layers) => layers.filter((layer) => layer.visible)));
4158
4220
  }
4159
4221
  get excludeBaseLayers() {
4160
4222
  return this.layerListControls.excludeBaseLayers || false;
@@ -4175,6 +4237,19 @@ let MapToolsComponent = class MapToolsComponent {
4175
4237
  }
4176
4238
  return filterSortOptions;
4177
4239
  }
4240
+ _layerViewerOptions;
4241
+ get layerViewerOptions() {
4242
+ return {
4243
+ filterAndSortOptions: this.layerFilterAndSortOptions,
4244
+ legend: {
4245
+ showForVisibleLayers: this.expandLegendOfVisibleLayers,
4246
+ showOnVisibilityChange: this.toggleLegendOnVisibilityChange,
4247
+ updateOnResolutionChange: this.updateLegendOnResolutionChange
4248
+ },
4249
+ queryBadge: this.queryBadge,
4250
+ ...this._layerViewerOptions
4251
+ };
4252
+ }
4178
4253
  tabGroup;
4179
4254
  get searchToolInToolbar() {
4180
4255
  return (this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&
@@ -4189,23 +4264,27 @@ let MapToolsComponent = class MapToolsComponent {
4189
4264
  get contextToolInToolbar() {
4190
4265
  return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;
4191
4266
  }
4192
- constructor(layerListToolState, toolState, mapState, searchSourceService, importExportState) {
4267
+ constructor(layerListToolState, toolState, mapState, searchSourceService, importExportState, configService, mediaService, cdr) {
4193
4268
  this.layerListToolState = layerListToolState;
4194
4269
  this.toolState = toolState;
4195
4270
  this.mapState = mapState;
4196
4271
  this.searchSourceService = searchSourceService;
4197
4272
  this.importExportState = importExportState;
4273
+ this.configService = configService;
4274
+ this.mediaService = mediaService;
4275
+ this.cdr = cdr;
4276
+ this._layerViewerOptions = this.configService.getConfig('layer');
4198
4277
  }
4199
4278
  ngOnInit() {
4279
+ this.handleMedia();
4200
4280
  this.selectedTab();
4201
4281
  this.resolution$$ = combineLatest([
4202
- this.map.layers$,
4282
+ this.map.layerController.all$,
4203
4283
  this.map.viewController.resolution$
4204
4284
  ])
4205
4285
  .pipe(debounceTime(10))
4206
- .subscribe((bunch) => {
4207
- this.layers$.next(bunch[0].filter((layer) => layer.showInLayerList !== false &&
4208
- (!this.excludeBaseLayers || !layer.baseLayer)));
4286
+ .subscribe(([layers]) => {
4287
+ this.layers$.next(layers);
4209
4288
  });
4210
4289
  if (this.allowShowAllLegends) {
4211
4290
  this.mapState.showAllLegendsValue =
@@ -4246,8 +4325,7 @@ let MapToolsComponent = class MapToolsComponent {
4246
4325
  }
4247
4326
  tabChanged(tab) {
4248
4327
  this.layerListToolState.setSelectedTab(tab.index);
4249
- this.layers$.next(this.map.layers.filter((layer) => layer.showInLayerList !== false &&
4250
- (!this.excludeBaseLayers || !layer.baseLayer)));
4328
+ this.layers$.next(this.map.layerController.all);
4251
4329
  }
4252
4330
  onLayerListChange(appliedFilters) {
4253
4331
  this.layerListToolState.setKeyword(appliedFilters.keyword);
@@ -4331,8 +4409,14 @@ let MapToolsComponent = class MapToolsComponent {
4331
4409
  }
4332
4410
  return false;
4333
4411
  }
4334
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapToolsComponent, deps: [{ token: LayerListToolState }, { token: ToolState }, { token: MapState }, { token: i1$1.SearchSourceService }, { token: ImportExportState }], target: i0.ɵɵFactoryTarget.Component });
4335
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: MapToolsComponent, isStandalone: true, selector: "igo-map-tools", inputs: { allowShowAllLegends: "allowShowAllLegends", showAllLegendsValue: "showAllLegendsValue", toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendOfVisibleLayers: "expandLegendOfVisibleLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", selectedTabAtOpening: "selectedTabAtOpening", ogcButton: "ogcButton", timeButton: "timeButton", layerAdditionAllowed: "layerAdditionAllowed", layerListControls: "layerListControls", queryBadge: "queryBadge" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: ["tabGroup"], descendants: true, static: true }], ngImport: i0, template: "<mat-tab-group\n #tabGroup\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\n (selectedTabChange)=\"tabChanged($event)\"\n>\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\n <igo-layer-list\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [queryBadge]=\"queryBadge\"\n [map]=\"map\"\n (appliedFilterAndSort)=\"onLayerListChange($event)\"\n >\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <igo-style-modal-layer-button\n *ngIf=\"isStyleEditButton(layer)\"\n [layer]=\"layer\"\n ></igo-style-modal-layer-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-time-filter-button\n *ngIf=\"isTimeFilterButton(layer)\"\n [header]=\"timeButton\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n ></igo-time-filter-button>\n <igo-ogc-filter-button\n *ngIf=\"isOGCFilterButton(layer)\"\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n ></igo-ogc-filter-button>\n <igo-export-button\n *ngIf=\"isExportButton(layer)\"\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n </ng-template>\n </igo-layer-list>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n <igo-layer-legend-list\n *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend-list>\n <ng-template\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n ></ng-template>\n\n <p\n class=\"map-empty mat-typography\"\n *ngIf=\"\n !allowShowAllLegends &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n \"\n >\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n </mat-tab>\n\n <ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n</mat-tab-group>\n", styles: [":host mat-tab-group{height:100%}:host ::ng-deep .mat-mdc-tab-body-wrapper{flex:1}:host ::ng-deep .mat-tab-body{margin-top:8px}:host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}\n"], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i5$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i5$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LayerListComponent, selector: "igo-layer-list", inputs: ["layersAreAllVisible", "ogcButton", "timeButton", "map", "layers", "floatLabel", "layerFilterAndSortOptions", "excludeBaseLayers", "toggleLegendOnVisibilityChange", "expandLegendOfVisibleLayers", "updateLegendOnResolutionChange", "queryBadge"], outputs: ["appliedFilterAndSort"] }, { kind: "directive", type: LayerListBindingDirective, selector: "[igoLayerListBinding]" }, { kind: "component", type: StyleModalLayerButtonComponent, selector: "igo-style-modal-layer-button", inputs: ["layer"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"] }, { kind: "component", type: TimeFilterButtonComponent, selector: "igo-time-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: OgcFilterButtonComponent, selector: "igo-ogc-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: ExportButtonComponent, selector: "igo-export-button", inputs: ["layer", "color"] }, { kind: "component", type: WorkspaceButtonComponent, selector: "igo-workspace-button", inputs: ["layer", "color"] }, { kind: "component", type: LayerLegendListComponent, selector: "igo-layer-legend-list", inputs: ["layers", "excludeBaseLayers", "updateLegendOnResolutionChange", "allowShowAllLegends", "showAllLegendsValue"], outputs: ["allLegendsShown"] }, { kind: "directive", type: LayerLegendListBindingDirective, selector: "[igoLayerLegendListBinding]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i10.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i10.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i10.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i10.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4412
+ handleMedia() {
4413
+ this.mediaService.media$.subscribe((result) => {
4414
+ this.isDesktop = result === Media.Desktop;
4415
+ this.cdr.detectChanges();
4416
+ });
4417
+ }
4418
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapToolsComponent, deps: [{ token: LayerListToolState }, { token: ToolState }, { token: MapState }, { token: i1.SearchSourceService }, { token: ImportExportState }, { token: i5.ConfigService }, { token: i3$1.MediaService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4419
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapToolsComponent, isStandalone: true, selector: "igo-map-tools", inputs: { allowShowAllLegends: "allowShowAllLegends", showAllLegendsValue: "showAllLegendsValue", toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendOfVisibleLayers: "expandLegendOfVisibleLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", selectedTabAtOpening: "selectedTabAtOpening", ogcButton: "ogcButton", timeButton: "timeButton", layerAdditionAllowed: "layerAdditionAllowed", layerListControls: "layerListControls", queryBadge: "queryBadge" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: ["tabGroup"], descendants: true, static: true }], ngImport: i0, template: "<mat-tab-group\n #tabGroup\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\n (selectedTabChange)=\"tabChanged($event)\"\n>\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\n <igo-layer-viewer\n [options]=\"layerViewerOptions\"\n [map]=\"map\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [isDesktop]=\"isDesktop\"\n (appliedFilterAndSort)=\"onLayerListChange($event)\"\n >\n <ng-template #customBottomActions let-layer=\"layer\">\n <igo-style-modal-layer-button\n *ngIf=\"isStyleEditButton(layer)\"\n [layer]=\"layer\"\n ></igo-style-modal-layer-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-time-filter-button\n *ngIf=\"isTimeFilterButton(layer)\"\n [header]=\"timeButton\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n ></igo-time-filter-button>\n <igo-ogc-filter-button\n *ngIf=\"isOGCFilterButton(layer)\"\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n ></igo-ogc-filter-button>\n <igo-export-button\n *ngIf=\"isExportButton(layer)\"\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n </ng-template>\n\n <ng-container ngProjectAs=\"[emptyList]\">\n <ng-template [ngTemplateOutlet]=\"emptyLayers\"></ng-template>\n </ng-container>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n <igo-layer-legend-list\n *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend-list>\n <ng-template\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n ></ng-template>\n\n <p\n class=\"map-empty mat-typography\"\n *ngIf=\"\n !allowShowAllLegends &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n \"\n >\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n </mat-tab>\n\n <ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n</mat-tab-group>\n", styles: [":host mat-tab-group{height:100%}:host ::ng-deep mat-tab-header{border-bottom:1px solid #ccc}:host ::ng-deep .mat-mdc-tab-body-wrapper{flex:1}:host ::ng-deep .mat-tab-body{margin-top:8px}:host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}\n"], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i5$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i5$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LayerViewerComponent, selector: "igo-layer-viewer", inputs: ["map", "options", "isDesktop", "excludeBaseLayers"], outputs: ["appliedFilterAndSort"] }, { kind: "component", type: StyleModalLayerButtonComponent, selector: "igo-style-modal-layer-button", inputs: ["layer"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"] }, { kind: "component", type: TimeFilterButtonComponent, selector: "igo-time-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: OgcFilterButtonComponent, selector: "igo-ogc-filter-button", inputs: ["layer", "map", "color", "header"] }, { kind: "component", type: ExportButtonComponent, selector: "igo-export-button", inputs: ["layer", "color"] }, { kind: "component", type: WorkspaceButtonComponent, selector: "igo-workspace-button", inputs: ["layer", "color"] }, { kind: "component", type: LayerLegendListComponent, selector: "igo-layer-legend-list", inputs: ["layers", "excludeBaseLayers", "updateLegendOnResolutionChange", "allowShowAllLegends", "showAllLegendsValue"], outputs: ["allLegendsShown"] }, { kind: "directive", type: LayerLegendListBindingDirective, selector: "[igoLayerLegendListBinding]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i9.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i9.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i9.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i9.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4336
4420
  };
4337
4421
  MapToolsComponent = __decorate([
4338
4422
  ToolComponent({
@@ -4344,15 +4428,18 @@ MapToolsComponent = __decorate([
4344
4428
  ToolState,
4345
4429
  MapState,
4346
4430
  SearchSourceService,
4347
- ImportExportState])
4431
+ ImportExportState,
4432
+ ConfigService,
4433
+ MediaService,
4434
+ ChangeDetectorRef])
4348
4435
  ], MapToolsComponent);
4349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MapToolsComponent, decorators: [{
4436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapToolsComponent, decorators: [{
4350
4437
  type: Component,
4351
4438
  args: [{ selector: 'igo-map-tools', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4352
4439
  MatTabsModule,
4353
4440
  NgIf,
4354
- LayerListComponent,
4355
- LayerListBindingDirective,
4441
+ NgTemplateOutlet,
4442
+ LayerViewerComponent,
4356
4443
  StyleModalLayerButtonComponent,
4357
4444
  MetadataButtonComponent,
4358
4445
  TrackFeatureButtonComponent,
@@ -4366,8 +4453,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
4366
4453
  MatIconModule,
4367
4454
  AsyncPipe,
4368
4455
  IgoLanguageModule
4369
- ], template: "<mat-tab-group\n #tabGroup\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\n (selectedTabChange)=\"tabChanged($event)\"\n>\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\n <igo-layer-list\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [queryBadge]=\"queryBadge\"\n [map]=\"map\"\n (appliedFilterAndSort)=\"onLayerListChange($event)\"\n >\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <igo-style-modal-layer-button\n *ngIf=\"isStyleEditButton(layer)\"\n [layer]=\"layer\"\n ></igo-style-modal-layer-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-time-filter-button\n *ngIf=\"isTimeFilterButton(layer)\"\n [header]=\"timeButton\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n ></igo-time-filter-button>\n <igo-ogc-filter-button\n *ngIf=\"isOGCFilterButton(layer)\"\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n ></igo-ogc-filter-button>\n <igo-export-button\n *ngIf=\"isExportButton(layer)\"\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n </ng-template>\n </igo-layer-list>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n <igo-layer-legend-list\n *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend-list>\n <ng-template\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n ></ng-template>\n\n <p\n class=\"map-empty mat-typography\"\n *ngIf=\"\n !allowShowAllLegends &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n \"\n >\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n </mat-tab>\n\n <ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n</mat-tab-group>\n", styles: [":host mat-tab-group{height:100%}:host ::ng-deep .mat-mdc-tab-body-wrapper{flex:1}:host ::ng-deep .mat-tab-body{margin-top:8px}:host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}\n"] }]
4370
- }], ctorParameters: () => [{ type: LayerListToolState }, { type: ToolState }, { type: MapState }, { type: i1$1.SearchSourceService }, { type: ImportExportState }], propDecorators: { allowShowAllLegends: [{
4456
+ ], template: "<mat-tab-group\n #tabGroup\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\n (selectedTabChange)=\"tabChanged($event)\"\n>\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\n <igo-layer-viewer\n [options]=\"layerViewerOptions\"\n [map]=\"map\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [isDesktop]=\"isDesktop\"\n (appliedFilterAndSort)=\"onLayerListChange($event)\"\n >\n <ng-template #customBottomActions let-layer=\"layer\">\n <igo-style-modal-layer-button\n *ngIf=\"isStyleEditButton(layer)\"\n [layer]=\"layer\"\n ></igo-style-modal-layer-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n <igo-track-feature-button\n [trackFeature]=\"true\"\n [layer]=\"layer\"\n ></igo-track-feature-button>\n <igo-time-filter-button\n *ngIf=\"isTimeFilterButton(layer)\"\n [header]=\"timeButton\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n ></igo-time-filter-button>\n <igo-ogc-filter-button\n *ngIf=\"isOGCFilterButton(layer)\"\n [header]=\"ogcButton\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n ></igo-ogc-filter-button>\n <igo-export-button\n *ngIf=\"isExportButton(layer)\"\n [layer]=\"layer\"\n (click)=\"activateExport(layer)\"\n ></igo-export-button>\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n </ng-template>\n\n <ng-container ngProjectAs=\"[emptyList]\">\n <ng-template [ngTemplateOutlet]=\"emptyLayers\"></ng-template>\n </ng-container>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n <igo-layer-legend-list\n *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend-list>\n <ng-template\n *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n ></ng-template>\n\n <p\n class=\"map-empty mat-typography\"\n *ngIf=\"\n !allowShowAllLegends &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n \"\n >\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n </mat-tab>\n\n <ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n <p\n *ngIf=\"\n layerAdditionAllowed &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n \"\n class=\"map-empty mat-typography\"\n >\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon matListItemIcon>search</mat-icon>\n <span\n matListItemTitle\n class=\"search-tool mat-typography\"\n (click)=\"searchEmit()\"\n >\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool mat-typography\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool mat-typography\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n</mat-tab-group>\n", styles: [":host mat-tab-group{height:100%}:host ::ng-deep mat-tab-header{border-bottom:1px solid #ccc}:host ::ng-deep .mat-mdc-tab-body-wrapper{flex:1}:host ::ng-deep .mat-tab-body{margin-top:8px}:host ::ng-deep .mat-mdc-tab-body-content{overflow:hidden}:host .map-empty,:host .search-tool,:host .catalog-tool,:host .context-tool{margin:10px}:host .map-empty{text-align:justify}:host .search-tool,:host .catalog-tool,:host .context-tool{cursor:pointer}:host mat-list mat-list-item h4{font-weight:700}:host mat-list-item ::ng-deep .mdc-list-item__primary-text{font-size:smaller}:host mat-list.mat-mdc-list-base mat-list-item.mat-mdc-list-item ::ng-deep div.mdc-list-item__content div.mdc-list-item__primary-text{padding-left:5px}\n"] }]
4457
+ }], ctorParameters: () => [{ type: LayerListToolState }, { type: ToolState }, { type: MapState }, { type: i1.SearchSourceService }, { type: ImportExportState }, { type: i5.ConfigService }, { type: i3$1.MediaService }, { type: i0.ChangeDetectorRef }], propDecorators: { allowShowAllLegends: [{
4371
4458
  type: Input
4372
4459
  }], showAllLegendsValue: [{
4373
4460
  type: Input
@@ -4404,8 +4491,8 @@ class IgoAppMapModule {
4404
4491
  providers: []
4405
4492
  };
4406
4493
  }
4407
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4408
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMapModule, imports: [AdvancedMapToolComponent,
4494
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4495
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMapModule, imports: [AdvancedMapToolComponent,
4409
4496
  MapProximityToolComponent,
4410
4497
  MapToolComponent,
4411
4498
  MapToolsComponent,
@@ -4416,14 +4503,14 @@ class IgoAppMapModule {
4416
4503
  MapToolsComponent,
4417
4504
  MapDetailsToolComponent,
4418
4505
  MapLegendToolComponent] });
4419
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMapModule, imports: [AdvancedMapToolComponent,
4506
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMapModule, imports: [AdvancedMapToolComponent,
4420
4507
  MapProximityToolComponent,
4421
4508
  MapToolComponent,
4422
4509
  MapToolsComponent,
4423
4510
  MapDetailsToolComponent,
4424
4511
  MapLegendToolComponent] });
4425
4512
  }
4426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMapModule, decorators: [{
4513
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMapModule, decorators: [{
4427
4514
  type: NgModule,
4428
4515
  args: [{
4429
4516
  imports: [
@@ -4459,8 +4546,9 @@ class MeasureState {
4459
4546
  this.store = new FeatureStore([], {
4460
4547
  map: this.mapState.map
4461
4548
  });
4462
- this.mapState.map.layers$.subscribe((layers) => {
4463
- if (layers.filter((l) => l.id?.startsWith('igo-measures-')).length === 0) {
4549
+ this.mapState.map.layerController.all$.subscribe((layers) => {
4550
+ const hasMeasure = layers.some((l) => l.id?.startsWith('igo-measures-'));
4551
+ if (!hasMeasure) {
4464
4552
  this.store.deleteMany(this.store.all());
4465
4553
  this.mapState.map.ol
4466
4554
  .getOverlays()
@@ -4470,10 +4558,10 @@ class MeasureState {
4470
4558
  }
4471
4559
  });
4472
4560
  }
4473
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MeasureState, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
4474
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MeasureState, providedIn: 'root' });
4561
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MeasureState, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
4562
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MeasureState, providedIn: 'root' });
4475
4563
  }
4476
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MeasureState, decorators: [{
4564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MeasureState, decorators: [{
4477
4565
  type: Injectable,
4478
4566
  args: [{
4479
4567
  providedIn: 'root'
@@ -4504,8 +4592,8 @@ let MeasurerToolComponent = class MeasurerToolComponent {
4504
4592
  this.measureState = measureState;
4505
4593
  this.mapState = mapState;
4506
4594
  }
4507
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MeasurerToolComponent, deps: [{ token: MeasureState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Component });
4508
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: MeasurerToolComponent, isStandalone: true, selector: "igo-measurer-tool", ngImport: i0, template: "<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\n", dependencies: [{ kind: "component", type: MeasurerComponent, selector: "igo-measurer", inputs: ["map", "store", "activeMeasureType", "minSegmentLength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4595
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MeasurerToolComponent, deps: [{ token: MeasureState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Component });
4596
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MeasurerToolComponent, isStandalone: true, selector: "igo-measurer-tool", ngImport: i0, template: "<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\n", dependencies: [{ kind: "component", type: MeasurerComponent, selector: "igo-measurer", inputs: ["map", "store", "activeMeasureType", "minSegmentLength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4509
4597
  };
4510
4598
  MeasurerToolComponent = __decorate([
4511
4599
  ToolComponent({
@@ -4516,7 +4604,7 @@ MeasurerToolComponent = __decorate([
4516
4604
  __metadata("design:paramtypes", [MeasureState,
4517
4605
  MapState])
4518
4606
  ], MeasurerToolComponent);
4519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MeasurerToolComponent, decorators: [{
4607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MeasurerToolComponent, decorators: [{
4520
4608
  type: Component,
4521
4609
  args: [{ selector: 'igo-measurer-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MeasurerComponent], template: "<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\n" }]
4522
4610
  }], ctorParameters: () => [{ type: MeasureState }, { type: MapState }] });
@@ -4525,11 +4613,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
4525
4613
  * @deprecated import the MeasurerToolComponent directly
4526
4614
  */
4527
4615
  class IgoAppMeasurerToolModule {
4528
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasurerToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4529
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasurerToolModule, imports: [MeasurerToolComponent], exports: [MeasurerToolComponent] });
4530
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasurerToolModule, imports: [MeasurerToolComponent] });
4616
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasurerToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4617
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasurerToolModule, imports: [MeasurerToolComponent], exports: [MeasurerToolComponent] });
4618
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasurerToolModule, imports: [MeasurerToolComponent] });
4531
4619
  }
4532
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasurerToolModule, decorators: [{
4620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasurerToolModule, decorators: [{
4533
4621
  type: NgModule,
4534
4622
  args: [{
4535
4623
  imports: [MeasurerToolComponent],
@@ -4541,11 +4629,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
4541
4629
  * @deprecated import the MeasurerToolComponent directly
4542
4630
  */
4543
4631
  class IgoAppMeasureModule {
4544
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4545
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasureModule, exports: [IgoAppMeasurerToolModule] });
4546
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasureModule, imports: [IgoAppMeasurerToolModule] });
4632
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4633
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasureModule, exports: [IgoAppMeasurerToolModule] });
4634
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasureModule, imports: [IgoAppMeasurerToolModule] });
4547
4635
  }
4548
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppMeasureModule, decorators: [{
4636
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppMeasureModule, decorators: [{
4549
4637
  type: NgModule,
4550
4638
  args: [{
4551
4639
  exports: [IgoAppMeasurerToolModule]
@@ -4560,8 +4648,8 @@ let PrintToolComponent = class PrintToolComponent {
4560
4648
  constructor(mapState) {
4561
4649
  this.mapState = mapState;
4562
4650
  }
4563
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PrintToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
4564
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: PrintToolComponent, isStandalone: true, selector: "igo-print-tool", ngImport: i0, template: "<igo-print [map]=\"map\"></igo-print>\n", dependencies: [{ kind: "component", type: PrintComponent, selector: "igo-print", inputs: ["map", "outputFormat", "paperFormat", "orientation", "imageFormat", "legendPosition", "resolution"] }] });
4651
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintToolComponent, deps: [{ token: MapState }], target: i0.ɵɵFactoryTarget.Component });
4652
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PrintToolComponent, isStandalone: true, selector: "igo-print-tool", ngImport: i0, template: "<igo-print [map]=\"map\"></igo-print>\n", dependencies: [{ kind: "component", type: PrintComponent, selector: "igo-print", inputs: ["map", "outputFormat", "paperFormat", "orientation", "imageFormat", "legendPosition", "resolution"] }] });
4565
4653
  };
4566
4654
  PrintToolComponent = __decorate([
4567
4655
  ToolComponent({
@@ -4571,7 +4659,7 @@ PrintToolComponent = __decorate([
4571
4659
  }),
4572
4660
  __metadata("design:paramtypes", [MapState])
4573
4661
  ], PrintToolComponent);
4574
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PrintToolComponent, decorators: [{
4662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintToolComponent, decorators: [{
4575
4663
  type: Component,
4576
4664
  args: [{ selector: 'igo-print-tool', standalone: true, imports: [PrintComponent], template: "<igo-print [map]=\"map\"></igo-print>\n" }]
4577
4665
  }], ctorParameters: () => [{ type: MapState }] });
@@ -4586,11 +4674,11 @@ class IgoAppPrintModule {
4586
4674
  providers: []
4587
4675
  };
4588
4676
  }
4589
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4590
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppPrintModule, imports: [PrintToolComponent], exports: [PrintToolComponent] });
4591
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppPrintModule, imports: [PrintToolComponent] });
4677
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4678
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppPrintModule, imports: [PrintToolComponent], exports: [PrintToolComponent] });
4679
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppPrintModule, imports: [PrintToolComponent] });
4592
4680
  }
4593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppPrintModule, decorators: [{
4681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppPrintModule, decorators: [{
4594
4682
  type: NgModule,
4595
4683
  args: [{
4596
4684
  imports: [PrintToolComponent],
@@ -4680,7 +4768,7 @@ class SearchState {
4680
4768
  this.monitorLayerDeletion();
4681
4769
  }
4682
4770
  monitorLayerDeletion() {
4683
- this.mapState.map.layers$.subscribe((layers) => {
4771
+ this.mapState.map.layerController.all$.subscribe((layers) => {
4684
4772
  this.searchLayerStores.forEach((store) => {
4685
4773
  const layer = layers.find((l) => l.id === store.layer.id);
4686
4774
  if (!layer) {
@@ -4741,12 +4829,12 @@ class SearchState {
4741
4829
  this.storageService.set('searchResultsGeometryEnabled', value);
4742
4830
  this.searchResultsGeometryEnabled$.next(value);
4743
4831
  }
4744
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SearchState, deps: [{ token: i1$1.SearchSourceService }, { token: i4.StorageService }, { token: WorkspaceState }, { token: i5.ConfigService }, { token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
4745
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SearchState });
4832
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchState, deps: [{ token: i1.SearchSourceService }, { token: i4.StorageService }, { token: WorkspaceState }, { token: i5.ConfigService }, { token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
4833
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchState });
4746
4834
  }
4747
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SearchState, decorators: [{
4835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchState, decorators: [{
4748
4836
  type: Injectable
4749
- }], ctorParameters: () => [{ type: i1$1.SearchSourceService }, { type: i4.StorageService }, { type: WorkspaceState }, { type: i5.ConfigService }, { type: MapState }] });
4837
+ }], ctorParameters: () => [{ type: i1.SearchSourceService }, { type: i4.StorageService }, { type: WorkspaceState }, { type: i5.ConfigService }, { type: MapState }] });
4750
4838
 
4751
4839
  class SearchBarBindingDirective {
4752
4840
  component;
@@ -4794,16 +4882,16 @@ class SearchBarBindingDirective {
4794
4882
  this.searchState.setSearchType(searchType);
4795
4883
  }
4796
4884
  }
4797
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SearchBarBindingDirective, deps: [{ token: i1$1.SearchBarComponent, self: true }, { token: SearchState }], target: i0.ɵɵFactoryTarget.Directive });
4798
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: SearchBarBindingDirective, isStandalone: true, selector: "[igoSearchBarBinding]", host: { listeners: { "searchTermChange": "onSearchTermChange($event)", "searchTypeChange": "onSearchTypeChange($event)" } }, ngImport: i0 });
4885
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBarBindingDirective, deps: [{ token: i1.SearchBarComponent, self: true }, { token: SearchState }], target: i0.ɵɵFactoryTarget.Directive });
4886
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SearchBarBindingDirective, isStandalone: true, selector: "[igoSearchBarBinding]", host: { listeners: { "searchTermChange": "onSearchTermChange($event)", "searchTypeChange": "onSearchTypeChange($event)" } }, ngImport: i0 });
4799
4887
  }
4800
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SearchBarBindingDirective, decorators: [{
4888
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBarBindingDirective, decorators: [{
4801
4889
  type: Directive,
4802
4890
  args: [{
4803
4891
  selector: '[igoSearchBarBinding]',
4804
4892
  standalone: true
4805
4893
  }]
4806
- }], ctorParameters: () => [{ type: i1$1.SearchBarComponent, decorators: [{
4894
+ }], ctorParameters: () => [{ type: i1.SearchBarComponent, decorators: [{
4807
4895
  type: Self
4808
4896
  }] }, { type: SearchState }], propDecorators: { onSearchTermChange: [{
4809
4897
  type: HostListener,
@@ -5291,8 +5379,8 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
5291
5379
  });
5292
5380
  }, 250);
5293
5381
  }
5294
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SearchResultsToolComponent, deps: [{ token: MapState }, { token: SearchState }, { token: i0.ElementRef }, { token: ToolState }, { token: DirectionState }, { token: i5.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
5295
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: SearchResultsToolComponent, isStandalone: true, selector: "igo-search-results-tool", inputs: { showIcons: "showIcons", topPanelStateDefault: "topPanelStateDefault", topPanelState: "topPanelState" }, ngImport: i0, template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n (topPanelState$ | async) === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n >zoom_in</mat-icon\n >\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: SearchResultsComponent, selector: "igo-search-results", inputs: ["map", "store", "showIcons", "mode", "withZoomButton", "tabsMode", "term", "settingsChange$", "termSplitter"], outputs: ["resultFocus", "resultUnfocus", "resultSelect", "moreResults", "resultMouseenter", "resultMouseleave"] }, { kind: "component", type: SearchResultAddButtonComponent, selector: "igo-search-add-button", inputs: ["layer", "store", "added", "map", "saveSearchResultInLayer", "color", "stores"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i9$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5382
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchResultsToolComponent, deps: [{ token: MapState }, { token: SearchState }, { token: i0.ElementRef }, { token: ToolState }, { token: DirectionState }, { token: i5.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
5383
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchResultsToolComponent, isStandalone: true, selector: "igo-search-results-tool", inputs: { showIcons: "showIcons", topPanelStateDefault: "topPanelStateDefault", topPanelState: "topPanelState" }, ngImport: i0, template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n (topPanelState$ | async) === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n >zoom_in</mat-icon\n >\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: SearchResultsComponent, selector: "igo-search-results", inputs: ["map", "store", "showIcons", "mode", "withZoomButton", "tabsMode", "term", "settingsChange$", "termSplitter"], outputs: ["resultFocus", "resultUnfocus", "resultSelect", "moreResults", "resultMouseenter", "resultMouseleave"] }, { kind: "component", type: SearchResultAddButtonComponent, selector: "igo-search-add-button", inputs: ["layer", "store", "added", "map", "saveSearchResultInLayer", "color", "stores"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i9$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5296
5384
  };
5297
5385
  SearchResultsToolComponent = __decorate([
5298
5386
  ToolComponent({
@@ -5307,7 +5395,7 @@ SearchResultsToolComponent = __decorate([
5307
5395
  DirectionState,
5308
5396
  ConfigService])
5309
5397
  ], SearchResultsToolComponent);
5310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SearchResultsToolComponent, decorators: [{
5398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchResultsToolComponent, decorators: [{
5311
5399
  type: Component,
5312
5400
  args: [{ selector: 'igo-search-results-tool', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
5313
5401
  NgIf,
@@ -5336,11 +5424,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
5336
5424
  * @deprecated import the components/directive directly or INTEGRATION_SEARCH_DIRECTIVES for the set
5337
5425
  */
5338
5426
  class IgoAppSearchModule {
5339
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5340
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchModule, imports: [SearchBarBindingDirective, SearchResultsToolComponent], exports: [SearchBarBindingDirective, SearchResultsToolComponent] });
5341
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchModule, imports: [SearchResultsToolComponent] });
5427
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5428
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchModule, imports: [SearchBarBindingDirective, SearchResultsToolComponent], exports: [SearchBarBindingDirective, SearchResultsToolComponent] });
5429
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchModule, imports: [SearchResultsToolComponent] });
5342
5430
  }
5343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchModule, decorators: [{
5431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchModule, decorators: [{
5344
5432
  type: NgModule,
5345
5433
  args: [{
5346
5434
  imports: [SearchBarBindingDirective, SearchResultsToolComponent],
@@ -5352,11 +5440,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
5352
5440
  * @deprecated import the WorkspaceButtonComponent directly
5353
5441
  */
5354
5442
  class IgoAppWorkspaceModule {
5355
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppWorkspaceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5356
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppWorkspaceModule, imports: [WorkspaceButtonComponent], exports: [WorkspaceButtonComponent] });
5357
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppWorkspaceModule, imports: [WorkspaceButtonComponent] });
5443
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppWorkspaceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5444
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppWorkspaceModule, imports: [WorkspaceButtonComponent], exports: [WorkspaceButtonComponent] });
5445
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppWorkspaceModule, imports: [WorkspaceButtonComponent] });
5358
5446
  }
5359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppWorkspaceModule, decorators: [{
5447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppWorkspaceModule, decorators: [{
5360
5448
  type: NgModule,
5361
5449
  args: [{
5362
5450
  imports: [WorkspaceButtonComponent],
@@ -5368,8 +5456,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
5368
5456
  * @deprecated import the components directly
5369
5457
  */
5370
5458
  class IgoIntegrationModule {
5371
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoIntegrationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5372
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoIntegrationModule, exports: [IgoAppContextModule,
5459
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoIntegrationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5460
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoIntegrationModule, exports: [IgoAppContextModule,
5373
5461
  IgoAppCatalogModule,
5374
5462
  IgoAppDirectionsModule,
5375
5463
  IgoAppDrawModule,
@@ -5382,7 +5470,7 @@ class IgoIntegrationModule {
5382
5470
  IgoAppFilterModule,
5383
5471
  IgoAppAboutModule,
5384
5472
  IgoAppGeometryFormModule] });
5385
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoIntegrationModule, imports: [IgoAppContextModule,
5473
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoIntegrationModule, imports: [IgoAppContextModule,
5386
5474
  IgoAppCatalogModule,
5387
5475
  IgoAppDirectionsModule,
5388
5476
  IgoAppDrawModule,
@@ -5396,7 +5484,7 @@ class IgoIntegrationModule {
5396
5484
  IgoAppAboutModule,
5397
5485
  IgoAppGeometryFormModule] });
5398
5486
  }
5399
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoIntegrationModule, decorators: [{
5487
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoIntegrationModule, decorators: [{
5400
5488
  type: NgModule,
5401
5489
  args: [{
5402
5490
  imports: [],
@@ -5479,11 +5567,14 @@ class AnalyticsListenerService {
5479
5567
  if (!layers) {
5480
5568
  return;
5481
5569
  }
5482
- layers.map((layer) => {
5570
+ layers.forEach((layer) => {
5483
5571
  let wmsParams;
5484
5572
  let wmtsParams;
5485
5573
  let xyzParams;
5486
5574
  let restParams;
5575
+ if (isLayerGroup(layer)) {
5576
+ return;
5577
+ }
5487
5578
  switch (layer.dataSource.options.type) {
5488
5579
  case 'wms': {
5489
5580
  const wmsDataSource = layer.dataSource
@@ -5541,15 +5632,15 @@ class AnalyticsListenerService {
5541
5632
  });
5542
5633
  });
5543
5634
  }
5544
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AnalyticsListenerService, deps: [{ token: i1$4.AnalyticsService }, { token: i2.AuthService }, { token: ContextState }, { token: ToolState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
5545
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AnalyticsListenerService, providedIn: 'root' });
5635
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnalyticsListenerService, deps: [{ token: i1$3.AnalyticsService }, { token: i2.AuthService }, { token: ContextState }, { token: ToolState }, { token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
5636
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnalyticsListenerService, providedIn: 'root' });
5546
5637
  }
5547
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AnalyticsListenerService, decorators: [{
5638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnalyticsListenerService, decorators: [{
5548
5639
  type: Injectable,
5549
5640
  args: [{
5550
5641
  providedIn: 'root'
5551
5642
  }]
5552
- }], ctorParameters: () => [{ type: i1$4.AnalyticsService }, { type: i2.AuthService }, { type: ContextState }, { type: ToolState }, { type: MapState }] });
5643
+ }], ctorParameters: () => [{ type: i1$3.AnalyticsService }, { type: i2.AuthService }, { type: ContextState }, { type: ToolState }, { type: MapState }] });
5553
5644
 
5554
5645
  const INTEGRATION_FILTER_DIRECTIVES = [
5555
5646
  OgcFilterToolComponent,
@@ -5588,25 +5679,25 @@ class QueryState {
5588
5679
  const geoPropertiesStrategy = new GeoPropertiesStrategy({ map: this.mapState.map }, this.propertyTypeDetectorService, this.capabilitiesService);
5589
5680
  this.store.addStrategy(geoPropertiesStrategy, true);
5590
5681
  }
5591
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: QueryState, deps: [{ token: i5.ConfigService }, { token: i1$1.PropertyTypeDetectorService }, { token: i1$1.CapabilitiesService }, { token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
5592
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: QueryState, providedIn: 'root' });
5682
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QueryState, deps: [{ token: i5.ConfigService }, { token: i1.PropertyTypeDetectorService }, { token: i1.CapabilitiesService }, { token: MapState }], target: i0.ɵɵFactoryTarget.Injectable });
5683
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QueryState, providedIn: 'root' });
5593
5684
  }
5594
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: QueryState, decorators: [{
5685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QueryState, decorators: [{
5595
5686
  type: Injectable,
5596
5687
  args: [{
5597
5688
  providedIn: 'root'
5598
5689
  }]
5599
- }], ctorParameters: () => [{ type: i5.ConfigService }, { type: i1$1.PropertyTypeDetectorService }, { type: i1$1.CapabilitiesService }, { type: MapState }] });
5690
+ }], ctorParameters: () => [{ type: i5.ConfigService }, { type: i1.PropertyTypeDetectorService }, { type: i1.CapabilitiesService }, { type: MapState }] });
5600
5691
 
5601
5692
  /**
5602
5693
  * @deprecated import the SearchResultsToolComponent directly
5603
5694
  */
5604
5695
  class IgoAppSearchResultsToolModule {
5605
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchResultsToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5606
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchResultsToolModule, imports: [SearchResultsToolComponent], exports: [SearchResultsToolComponent] });
5607
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchResultsToolModule, imports: [SearchResultsToolComponent] });
5696
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchResultsToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5697
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchResultsToolModule, imports: [SearchResultsToolComponent], exports: [SearchResultsToolComponent] });
5698
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchResultsToolModule, imports: [SearchResultsToolComponent] });
5608
5699
  }
5609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchResultsToolModule, decorators: [{
5700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchResultsToolModule, decorators: [{
5610
5701
  type: NgModule,
5611
5702
  args: [{
5612
5703
  imports: [SearchResultsToolComponent],
@@ -5618,11 +5709,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
5618
5709
  * @deprecated import the SearchBarBindingDirective directly
5619
5710
  */
5620
5711
  class IgoAppSearchBarModule {
5621
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5622
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchBarModule, imports: [SearchBarBindingDirective], exports: [SearchBarBindingDirective] });
5623
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchBarModule });
5712
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5713
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchBarModule, imports: [SearchBarBindingDirective], exports: [SearchBarBindingDirective] });
5714
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchBarModule });
5624
5715
  }
5625
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoAppSearchBarModule, decorators: [{
5716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppSearchBarModule, decorators: [{
5626
5717
  type: NgModule,
5627
5718
  args: [{
5628
5719
  imports: [SearchBarBindingDirective],