@igo2/integration 21.0.0-next.4 → 21.0.0-next.41
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ChangeDetectorRef,
|
|
2
|
+
import { inject, ChangeDetectorRef, input, model, Component, CUSTOM_ELEMENTS_SCHEMA, NgModule, Injectable, ChangeDetectionStrategy, signal, DestroyRef, viewChild, Directive, ElementRef, linkedSignal, effect } from '@angular/core';
|
|
3
3
|
import { __decorate, __metadata } from 'tslib';
|
|
4
4
|
import { HttpClient } from '@angular/common/http';
|
|
5
5
|
import * as i1 from '@angular/material/button';
|
|
@@ -14,25 +14,25 @@ import { AuthService, UserService } from '@igo2/auth';
|
|
|
14
14
|
import { CustomHtmlComponent, SanitizeHtmlPipe } from '@igo2/common/custom-html';
|
|
15
15
|
import { ToolComponent, ToolService } from '@igo2/common/tool';
|
|
16
16
|
import { ConfigService, version } from '@igo2/core/config';
|
|
17
|
-
import {
|
|
18
|
-
import { of, BehaviorSubject, combineLatest, forkJoin, map as map$1, merge, Subject, ReplaySubject, interval } from 'rxjs';
|
|
17
|
+
import { IgoLanguageModule, LanguageService } from '@igo2/core/language';
|
|
19
18
|
import * as i3$1 from '@ngx-translate/core';
|
|
20
19
|
import { TranslateModule } from '@ngx-translate/core';
|
|
21
20
|
import * as i3$2 from '@angular/common';
|
|
22
21
|
import { AsyncPipe, formatDate, CommonModule, DecimalPipe, NgTemplateOutlet } from '@angular/common';
|
|
23
22
|
import { EntityStore, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy, EntityTableComponent, getEntityTitle } from '@igo2/common/entity';
|
|
24
23
|
import * as i1$1 from '@igo2/geo';
|
|
25
|
-
import { MapService,
|
|
24
|
+
import { MapService, OverlayService, IgoMap, CatalogService, CatalogBrowserComponent, generateIdFromSourceOptions, isLayerItemOptions, CatalogItemType, CatalogLibraryComponent, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepsFeatureStore, IgoDirectionsModule, FeatureStore, DrawComponent, isLayerItem, OgcFilterableItemComponent, TimeFilterItemComponent, OgcFilterableListComponent, OgcFilterableListBindingDirective, FeatureStoreSelectionStrategy, FeatureMotion, mapExtentStrategyActiveToolTip, noElementSelected, OgcFilterWidget, InteractiveSelectionFormWidget, WfsWorkspace, FeatureWorkspace, EditionWorkspace, SpatialFilterService, LayerService, SpatialFilterItemType, MeasureLengthUnit, SpatialFilterType, featureToOl, moveToOlFeatures, RADIUS_NAME, SpatialFilterTypeComponent, SpatialFilterItemComponent, FeatureDetailsComponent, TimeFilterListComponent, TimeFilterListBindingDirective, isBaseLayer, ImportExportComponent, formatScale, zoneMtm, zoneUtm, computeProjectionsConstraints, SearchSourceService, LayerListControlsEnum, sourceCanSearch, LayerViewerComponent, ExportButtonComponent, OgcFilterButtonComponent, TimeFilterButtonComponent, TrackFeatureButtonComponent, MetadataButtonComponent, LayerLegendListComponent, LayerLegendListBindingDirective, roundCoordTo, featureFromOl, measureOlGeometryLength, FEATURE, VectorLayer, VectorTileLayer, isOlFlatStyleLike, StyleModalLayerButtonComponent, MeasurerComponent, PrintComponent, SearchBarComponent, SearchResultsComponent, styleVariant, computeOlFeaturesExtent, featuresAreOutOfView, SearchResultAddButtonComponent, isLayerGroup, PropertyTypeDetectorService, GeoPropertiesStrategy } from '@igo2/geo';
|
|
25
|
+
import { BehaviorSubject, combineLatest, forkJoin, map as map$1, of, merge, Subject, ReplaySubject, interval } from 'rxjs';
|
|
26
26
|
import { take, switchMap, concatAll, map, toArray, skipWhile, distinctUntilChanged, takeUntil, tap, debounceTime, skip } from 'rxjs/operators';
|
|
27
27
|
import { StorageService, StorageScope, StorageServiceEventEnum } from '@igo2/core/storage';
|
|
28
28
|
import { ContextService, ContextEditComponent, ContextListComponent, ContextPermissionsComponent, ShareMapComponent, ContextImportExportComponent } from '@igo2/context';
|
|
29
|
-
import { createExcelWorkBook, addExcelSheetToWorkBook, writeExcelFile,
|
|
30
|
-
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
29
|
+
import { ObjectUtils, createExcelWorkBook, addExcelSheetToWorkBook, writeExcelFile, uuid, NumberUtils } from '@igo2/utils';
|
|
30
|
+
import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
31
31
|
import { MediaService, Media } from '@igo2/core/media';
|
|
32
|
-
import { MessageService
|
|
32
|
+
import { MessageService } from '@igo2/core/message';
|
|
33
33
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
34
34
|
import { SELECTION_MARKER_ICON } from '@igo2/common/icon';
|
|
35
|
-
import * as
|
|
35
|
+
import * as olproj from 'ol/proj';
|
|
36
36
|
import { transform } from 'ol/proj';
|
|
37
37
|
import * as olstyle from 'ol/style';
|
|
38
38
|
import { WorkspaceStore } from '@igo2/common/workspace';
|
|
@@ -68,8 +68,6 @@ import * as i4$2 from '@angular/material/badge';
|
|
|
68
68
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
69
69
|
import { FlexibleComponent } from '@igo2/common/flexible';
|
|
70
70
|
import { PanelComponent } from '@igo2/common/panel';
|
|
71
|
-
import olFeature from 'ol/Feature';
|
|
72
|
-
import olPoint from 'ol/geom/Point';
|
|
73
71
|
import pointOnFeature from '@turf/point-on-feature';
|
|
74
72
|
import { AnalyticsService } from '@igo2/core/analytics';
|
|
75
73
|
|
|
@@ -78,47 +76,25 @@ let AboutToolComponent = class AboutToolComponent {
|
|
|
78
76
|
auth = inject(AuthService);
|
|
79
77
|
http = inject(HttpClient);
|
|
80
78
|
cdRef = inject(ChangeDetectorRef);
|
|
81
|
-
languageService = inject(LanguageService);
|
|
82
79
|
userService = inject(UserService, {
|
|
83
80
|
optional: true
|
|
84
81
|
});
|
|
85
82
|
configOptions;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
set headerHtml(value) {
|
|
90
|
-
this._headerHtml = Array.isArray(value) ? value.join('\n') : value;
|
|
91
|
-
}
|
|
92
|
-
get html() {
|
|
93
|
-
return this._html;
|
|
94
|
-
}
|
|
95
|
-
set html(value) {
|
|
96
|
-
this._html = Array.isArray(value) ? value.join('\n') : value;
|
|
97
|
-
}
|
|
98
|
-
_discoverTitleInLocale = 'IGO';
|
|
99
|
-
discoverTitleInLocale$ = of(this._discoverTitleInLocale);
|
|
100
|
-
get discoverTitleInLocale() {
|
|
101
|
-
return this._discoverTitleInLocale;
|
|
102
|
-
}
|
|
103
|
-
set discoverTitleInLocale(value) {
|
|
104
|
-
this._discoverTitleInLocale = value;
|
|
105
|
-
this.discoverTitleInLocale$ = of(value);
|
|
106
|
-
}
|
|
107
|
-
trainingGuideURLs = model(undefined, ...(ngDevMode ? [{ debugName: "trainingGuideURLs" }] : /* istanbul ignore next */ []));
|
|
83
|
+
headerHtml = input('', { ...(ngDevMode ? { debugName: "headerHtml" } : /* istanbul ignore next */ {}), transform: (value) => (Array.isArray(value) ? value.join('\n') : value) });
|
|
84
|
+
html = input('igo.integration.aboutTool.html', { ...(ngDevMode ? { debugName: "html" } : /* istanbul ignore next */ {}), transform: (value) => (Array.isArray(value) ? value.join('\n') : value) });
|
|
85
|
+
trainingGuideURLs = model(...(ngDevMode ? [undefined, { debugName: "trainingGuideURLs" }] : /* istanbul ignore next */ []));
|
|
108
86
|
effectiveVersion;
|
|
109
|
-
_html = 'igo.integration.aboutTool.html';
|
|
110
|
-
_headerHtml;
|
|
111
87
|
baseUrlGuide;
|
|
112
88
|
loading = false;
|
|
113
89
|
constructor() {
|
|
114
|
-
this.headerHtml = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');
|
|
115
90
|
this.configOptions = this.configService.getConfigs();
|
|
116
91
|
const configVersion = this.configOptions.version;
|
|
117
92
|
this.effectiveVersion = configVersion?.app ?? version.app;
|
|
118
|
-
this.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
93
|
+
const depot = this.configOptions.depot;
|
|
94
|
+
if (depot) {
|
|
95
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
96
|
+
this.baseUrlGuide = depot.url + depot.guideUrl;
|
|
97
|
+
}
|
|
122
98
|
}
|
|
123
99
|
ngOnInit() {
|
|
124
100
|
if (this.auth.authenticated) {
|
|
@@ -138,7 +114,7 @@ let AboutToolComponent = class AboutToolComponent {
|
|
|
138
114
|
openGuide(guide) {
|
|
139
115
|
const url = guide
|
|
140
116
|
? this.baseUrlGuide + guide
|
|
141
|
-
: this.baseUrlGuide + this.trainingGuideURLs()[0];
|
|
117
|
+
: this.baseUrlGuide + (this.trainingGuideURLs()?.[0] ?? '');
|
|
142
118
|
this.loading = true;
|
|
143
119
|
this.http
|
|
144
120
|
.get(url, {
|
|
@@ -162,8 +138,8 @@ let AboutToolComponent = class AboutToolComponent {
|
|
|
162
138
|
name = name.slice(0, index);
|
|
163
139
|
return name;
|
|
164
140
|
}
|
|
165
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
166
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
141
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AboutToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: AboutToolComponent, isStandalone: true, selector: "igo-about-tool", inputs: { headerHtml: { classPropertyName: "headerHtml", publicName: "headerHtml", isSignal: true, isRequired: false, transformFunction: null }, html: { classPropertyName: "html", publicName: "html", isSignal: true, isRequired: false, transformFunction: null }, trainingGuideURLs: { classPropertyName: "trainingGuideURLs", publicName: "trainingGuideURLs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { trainingGuideURLs: "trainingGuideURLsChange" }, ngImport: i0, template: "@if (auth.authenticated && trainingGuideURLs()?.length === 1) {\n <button\n class=\"training-guide-button\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\"\n >\n {{ 'igo.integration.aboutTool.trainingGuide' | translate }}\n <mat-icon>description</mat-icon>\n </button>\n}\n\n@if (auth.authenticated && (trainingGuideURLs()?.length ?? 0) > 1) {\n <button\n class=\"training-guide-button\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\"\n >\n {{ 'igo.integration.aboutTool.trainingGuide' | translate }}\n <mat-icon>description</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\">\n @for (guide of trainingGuideURLs(); track guide) {\n <button mat-menu-item (click)=\"openGuide(guide)\">\n {{ formatFileName(guide) }}\n </button>\n }\n</mat-menu>\n\n@if (headerHtml() !== '') {\n <igo-custom-html [html]=\"headerHtml() | translate\" />\n}\n\n<igo-custom-html [html]=\"html() | translate: { version: effectiveVersion }\" />\n", styles: [".training-guide-button{margin:16px 0 0 16px;background-color:#1976d2;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.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: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CustomHtmlComponent, selector: "igo-custom-html", inputs: ["html"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
167
143
|
};
|
|
168
144
|
AboutToolComponent = __decorate([
|
|
169
145
|
ToolComponent({
|
|
@@ -173,7 +149,7 @@ AboutToolComponent = __decorate([
|
|
|
173
149
|
}),
|
|
174
150
|
__metadata("design:paramtypes", [])
|
|
175
151
|
], AboutToolComponent);
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AboutToolComponent, decorators: [{
|
|
177
153
|
type: Component,
|
|
178
154
|
args: [{ selector: 'igo-about-tool', imports: [
|
|
179
155
|
MatButtonModule,
|
|
@@ -182,14 +158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
182
158
|
MatMenuModule,
|
|
183
159
|
CustomHtmlComponent,
|
|
184
160
|
IgoLanguageModule
|
|
185
|
-
], template: "@if (auth.authenticated && trainingGuideURLs()?.length === 1) {\n <button\n class=\"training-guide-button\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\"\n >\n {{ 'igo.integration.aboutTool.trainingGuide' | translate }}\n <mat-icon>description</mat-icon>\n </button>\n}\n\n@if (auth.authenticated && (trainingGuideURLs()?.length ?? 0) > 1) {\n <button\n class=\"training-guide-button\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\"\n >\n {{ 'igo.integration.aboutTool.trainingGuide' | translate }}\n <mat-icon>description</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\">\n @for (guide of trainingGuideURLs(); track guide) {\n <button mat-menu-item (click)=\"openGuide(guide)\">\n {{ formatFileName(guide) }}\n </button>\n }\n</mat-menu>\n\n@if (headerHtml !== '') {\n <igo-custom-html [html]=\"headerHtml | translate\" />\n}\n\n<igo-custom-html [html]=\"html | translate: { version: effectiveVersion }\" />\n", styles: [".training-guide-button{margin:16px 0 0 16px;background-color:#1976d2;color:#fff}\n"] }]
|
|
186
|
-
}], ctorParameters: () => [], propDecorators: { headerHtml: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], html: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], discoverTitleInLocale: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], trainingGuideURLs: [{ type: i0.Input, args: [{ isSignal: true, alias: "trainingGuideURLs", required: false }] }, { type: i0.Output, args: ["trainingGuideURLsChange"] }] } });
|
|
161
|
+
], template: "@if (auth.authenticated && trainingGuideURLs()?.length === 1) {\n <button\n class=\"training-guide-button\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\"\n >\n {{ 'igo.integration.aboutTool.trainingGuide' | translate }}\n <mat-icon>description</mat-icon>\n </button>\n}\n\n@if (auth.authenticated && (trainingGuideURLs()?.length ?? 0) > 1) {\n <button\n class=\"training-guide-button\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\"\n >\n {{ 'igo.integration.aboutTool.trainingGuide' | translate }}\n <mat-icon>description</mat-icon>\n </button>\n}\n\n<mat-menu #menu=\"matMenu\">\n @for (guide of trainingGuideURLs(); track guide) {\n <button mat-menu-item (click)=\"openGuide(guide)\">\n {{ formatFileName(guide) }}\n </button>\n }\n</mat-menu>\n\n@if (headerHtml() !== '') {\n <igo-custom-html [html]=\"headerHtml() | translate\" />\n}\n\n<igo-custom-html [html]=\"html() | translate: { version: effectiveVersion }\" />\n", styles: [".training-guide-button{margin:16px 0 0 16px;background-color:#1976d2;color:#fff}\n"] }]
|
|
162
|
+
}], ctorParameters: () => [], propDecorators: { headerHtml: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerHtml", required: false }] }], html: [{ type: i0.Input, args: [{ isSignal: true, alias: "html", required: false }] }], trainingGuideURLs: [{ type: i0.Input, args: [{ isSignal: true, alias: "trainingGuideURLs", required: false }] }, { type: i0.Output, args: ["trainingGuideURLsChange"] }] } });
|
|
193
163
|
|
|
194
164
|
/**
|
|
195
165
|
* @deprecated import the AboutToolComponent directly
|
|
@@ -201,11 +171,11 @@ class IgoAppAboutModule {
|
|
|
201
171
|
providers: []
|
|
202
172
|
};
|
|
203
173
|
}
|
|
204
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
205
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
206
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
174
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
175
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent], exports: [AboutToolComponent] });
|
|
176
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent] });
|
|
207
177
|
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppAboutModule, decorators: [{
|
|
209
179
|
type: NgModule,
|
|
210
180
|
args: [{
|
|
211
181
|
imports: [AboutToolComponent],
|
|
@@ -219,9 +189,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
219
189
|
*/
|
|
220
190
|
class MapState {
|
|
221
191
|
mapService = inject(MapService);
|
|
222
|
-
projectionService = inject(ProjectionService);
|
|
223
192
|
storageService = inject(StorageService);
|
|
224
193
|
configService = inject(ConfigService);
|
|
194
|
+
overlayService = inject(OverlayService);
|
|
225
195
|
get showAllLegendsValue() {
|
|
226
196
|
return this._legendToolShowAll;
|
|
227
197
|
}
|
|
@@ -245,12 +215,13 @@ class MapState {
|
|
|
245
215
|
}
|
|
246
216
|
}
|
|
247
217
|
}, this.storageService, this.configService);
|
|
218
|
+
this._map.initializeOverlays(this.overlayService);
|
|
248
219
|
this.mapService.setMap(this.map);
|
|
249
220
|
}
|
|
250
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
251
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
222
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapState, providedIn: 'root' });
|
|
252
223
|
}
|
|
253
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapState, decorators: [{
|
|
254
225
|
type: Injectable,
|
|
255
226
|
args: [{
|
|
256
227
|
providedIn: 'root'
|
|
@@ -301,10 +272,10 @@ class CatalogState {
|
|
|
301
272
|
clearCatalogItemsStores() {
|
|
302
273
|
this.catalogItemsStores.clear();
|
|
303
274
|
}
|
|
304
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
305
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
275
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: CatalogState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
276
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: CatalogState, providedIn: 'root' });
|
|
306
277
|
}
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: CatalogState, decorators: [{
|
|
308
279
|
type: Injectable,
|
|
309
280
|
args: [{
|
|
310
281
|
providedIn: 'root'
|
|
@@ -384,8 +355,8 @@ let CatalogBrowserToolComponent = class CatalogBrowserToolComponent {
|
|
|
384
355
|
this.store$.next(store);
|
|
385
356
|
});
|
|
386
357
|
}
|
|
387
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
388
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
358
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: CatalogBrowserToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
359
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: CatalogBrowserToolComponent, isStandalone: true, selector: "igo-catalog-browser-tool", inputs: { toggleCollapsedGroup: { classPropertyName: "toggleCollapsedGroup", publicName: "toggleCollapsedGroup", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (store$ | async; as store) {\n <igo-catalog-browser\n [catalog]=\"catalog!\"\n [store]=\"store\"\n [map]=\"map\"\n [toggleCollapsedGroup]=\"toggleCollapsedGroup()\"\n />\n}\n", dependencies: [{ kind: "component", type: CatalogBrowserComponent, selector: "igo-catalog-browser", inputs: ["catalogAllowLegend", "catalog", "store", "map", "toggleCollapsedGroup"], outputs: ["catalogAllowLegendChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
389
360
|
};
|
|
390
361
|
CatalogBrowserToolComponent = __decorate([
|
|
391
362
|
ToolComponent({
|
|
@@ -394,20 +365,20 @@ CatalogBrowserToolComponent = __decorate([
|
|
|
394
365
|
parent: 'catalog'
|
|
395
366
|
})
|
|
396
367
|
], CatalogBrowserToolComponent);
|
|
397
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
368
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: CatalogBrowserToolComponent, decorators: [{
|
|
398
369
|
type: Component,
|
|
399
|
-
args: [{ selector: 'igo-catalog-browser-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CatalogBrowserComponent, AsyncPipe], template: "@if (store$ | async; as store) {\n <igo-catalog-browser\n [catalog]=\"catalog
|
|
370
|
+
args: [{ selector: 'igo-catalog-browser-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CatalogBrowserComponent, AsyncPipe], template: "@if (store$ | async; as store) {\n <igo-catalog-browser\n [catalog]=\"catalog!\"\n [store]=\"store\"\n [map]=\"map\"\n [toggleCollapsedGroup]=\"toggleCollapsedGroup()\"\n />\n}\n" }]
|
|
400
371
|
}], propDecorators: { toggleCollapsedGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleCollapsedGroup", required: false }] }] } });
|
|
401
372
|
|
|
402
373
|
/**
|
|
403
374
|
* @deprecated import the CatalogBrowserToolComponent directly
|
|
404
375
|
*/
|
|
405
376
|
class IgoAppCatalogBrowserToolModule {
|
|
406
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
407
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
408
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
377
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogBrowserToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
378
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogBrowserToolModule, imports: [CatalogBrowserToolComponent], exports: [CatalogBrowserToolComponent] });
|
|
379
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogBrowserToolModule, imports: [CatalogBrowserToolComponent] });
|
|
409
380
|
}
|
|
410
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogBrowserToolModule, decorators: [{
|
|
411
382
|
type: NgModule,
|
|
412
383
|
args: [{
|
|
413
384
|
imports: [CatalogBrowserToolComponent],
|
|
@@ -441,10 +412,10 @@ class ImportExportState {
|
|
|
441
412
|
setsExportOptions(exportOptions) {
|
|
442
413
|
this.exportOptions$.next(exportOptions);
|
|
443
414
|
}
|
|
444
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
445
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
415
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ImportExportState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
416
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ImportExportState, providedIn: 'root' });
|
|
446
417
|
}
|
|
447
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
418
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ImportExportState, decorators: [{
|
|
448
419
|
type: Injectable,
|
|
449
420
|
args: [{
|
|
450
421
|
providedIn: 'root'
|
|
@@ -486,10 +457,10 @@ class ToolState {
|
|
|
486
457
|
this.openSidenav$.next(true);
|
|
487
458
|
}
|
|
488
459
|
}
|
|
489
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
490
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
460
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToolState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
461
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToolState, providedIn: 'root' });
|
|
491
462
|
}
|
|
492
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
463
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToolState, decorators: [{
|
|
493
464
|
type: Injectable,
|
|
494
465
|
args: [{
|
|
495
466
|
providedIn: 'root'
|
|
@@ -675,48 +646,49 @@ let CatalogLibraryToolComponent = class CatalogLibraryToolComponent {
|
|
|
675
646
|
* Get the item abstract for getCatalogList
|
|
676
647
|
*/
|
|
677
648
|
getMetadataAbstract(item) {
|
|
678
|
-
return item.options.metadata
|
|
649
|
+
return item.options.metadata?.abstract?.replaceAll('\n', '') ?? '';
|
|
679
650
|
}
|
|
680
651
|
/**
|
|
681
652
|
* Get the item url metadata for getCatalogList
|
|
682
653
|
*/
|
|
683
654
|
getMetadataUrl(item) {
|
|
684
|
-
return item.options.metadata
|
|
655
|
+
return item.options.metadata?.url;
|
|
685
656
|
}
|
|
686
657
|
layersInfoFromContexts() {
|
|
687
658
|
return this.contextService.getLocalContexts().pipe(switchMap((contextsList) => forkJoin(contextsList.ours.map((context) => this.contextService.getLocalContext(context.uri)))), concatAll(), map((detailedContext) => {
|
|
688
|
-
return detailedContext.layers
|
|
659
|
+
return (detailedContext.layers ?? [])
|
|
689
660
|
.filter((layer) => isLayerItemOptions(layer))
|
|
690
|
-
.map((layer) => getInfoFromSourceOptions(layer.sourceOptions, detailedContext.title ?? detailedContext.uri));
|
|
661
|
+
.map((layer) => getInfoFromSourceOptions(layer.sourceOptions, detailedContext.title ?? detailedContext.uri ?? ''));
|
|
691
662
|
}), concatAll(), toArray());
|
|
692
663
|
}
|
|
664
|
+
/**
|
|
665
|
+
* Sort items like the catalog browser display does (by title when a direction is set)
|
|
666
|
+
*/
|
|
667
|
+
sortItemsForDisplay(items, direction) {
|
|
668
|
+
if (direction === undefined) {
|
|
669
|
+
return items;
|
|
670
|
+
}
|
|
671
|
+
return [...items].sort((a, b) => ObjectUtils.naturalCompare(a.title, b.title, direction));
|
|
672
|
+
}
|
|
693
673
|
listExportFromCatalogs() {
|
|
694
|
-
let rank = 1;
|
|
695
|
-
const finalListExportOutputs = [];
|
|
696
674
|
return this.store.entities$.pipe(switchMap((catalogs) => combineLatest(catalogs.map((catalog) => this.catalogService.loadCatalogItems(catalog).pipe(map((items) => {
|
|
697
675
|
return { catalog, items };
|
|
698
676
|
}))))), map((catalogsWithItems) => {
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
const
|
|
677
|
+
let rank = 1;
|
|
678
|
+
const listExports = [];
|
|
679
|
+
const collect = (items, direction, groupTitle, catalogTitle) => {
|
|
680
|
+
for (const item of this.sortItemsForDisplay(items, direction)) {
|
|
703
681
|
if (item.type === CatalogItemType.Group) {
|
|
704
682
|
const group = item;
|
|
705
|
-
group.items.
|
|
706
|
-
catalogListExports.push(this.formatLayer(layer, rank, group.title, catalog.title));
|
|
707
|
-
rank++;
|
|
708
|
-
});
|
|
683
|
+
collect(group.items ?? [], group.sortDirection, group.title, catalogTitle);
|
|
709
684
|
}
|
|
710
685
|
else {
|
|
711
|
-
|
|
712
|
-
catalogListExports.push(this.formatLayer(layer, rank, '', catalog.title));
|
|
713
|
-
rank++;
|
|
686
|
+
listExports.push(this.formatLayer(item, rank++, groupTitle, catalogTitle));
|
|
714
687
|
}
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
return finalListExportOutputs;
|
|
688
|
+
}
|
|
689
|
+
};
|
|
690
|
+
catalogsWithItems.forEach(({ catalog, items }) => collect(items, catalog.sortDirection, '', catalog.title));
|
|
691
|
+
return listExports;
|
|
720
692
|
}));
|
|
721
693
|
}
|
|
722
694
|
async getCatalogList() {
|
|
@@ -728,23 +700,26 @@ let CatalogLibraryToolComponent = class CatalogLibraryToolComponent {
|
|
|
728
700
|
this.exportExcel(listExport);
|
|
729
701
|
});
|
|
730
702
|
}
|
|
731
|
-
formatLayer(
|
|
732
|
-
const
|
|
703
|
+
formatLayer(catalogItem, rank, groupTitle, catalogTitle) {
|
|
704
|
+
const sourceOptions = catalogItem.options.sourceOptions;
|
|
705
|
+
const infos = sourceOptions
|
|
706
|
+
? getInfoFromSourceOptions(sourceOptions, catalogItem.id)
|
|
707
|
+
: undefined;
|
|
733
708
|
const t = this.languageService.translate;
|
|
734
709
|
return {
|
|
735
|
-
id: infos.id,
|
|
710
|
+
id: infos?.id ?? catalogItem.options.id,
|
|
736
711
|
rank: rank.toString(),
|
|
737
|
-
layerTitle:
|
|
712
|
+
layerTitle: catalogItem.title,
|
|
738
713
|
layerGroup: groupTitle,
|
|
739
714
|
catalog: catalogTitle,
|
|
740
|
-
provider:
|
|
715
|
+
provider: catalogItem.externalProvider
|
|
741
716
|
? t.instant('igo.integration.catalog.listExport.external')
|
|
742
717
|
: t.instant('igo.integration.catalog.listExport.internal'),
|
|
743
|
-
url: infos
|
|
744
|
-
layerName: infos
|
|
718
|
+
url: infos?.url,
|
|
719
|
+
layerName: infos?.layerName,
|
|
745
720
|
context: '',
|
|
746
|
-
metadataAbstract: this.getMetadataAbstract(
|
|
747
|
-
metadataUrl: this.getMetadataUrl(
|
|
721
|
+
metadataAbstract: this.getMetadataAbstract(catalogItem),
|
|
722
|
+
metadataUrl: this.getMetadataUrl(catalogItem)
|
|
748
723
|
};
|
|
749
724
|
}
|
|
750
725
|
/**
|
|
@@ -791,11 +766,11 @@ let CatalogLibraryToolComponent = class CatalogLibraryToolComponent {
|
|
|
791
766
|
await addExcelSheetToWorkBook('Informations', catalogOutput, workBook, {
|
|
792
767
|
json2SheetOpts: { skipHeader: true }
|
|
793
768
|
});
|
|
794
|
-
const documentName = this.languageService.translate.instant('igo.integration.catalog.listExport.documentName', { value: formatDate(Date.now(),
|
|
769
|
+
const documentName = this.languageService.translate.instant('igo.integration.catalog.listExport.documentName', { value: formatDate(Date.now(), "yyyy-MM-dd-HH'h'mm", 'en-US') });
|
|
795
770
|
writeExcelFile(workBook, documentName, { compression: true });
|
|
796
771
|
}
|
|
797
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
798
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
772
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: CatalogLibraryToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
773
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: CatalogLibraryToolComponent, isStandalone: true, selector: "igo-catalog-library-tool", inputs: { addCatalogAllowed: { classPropertyName: "addCatalogAllowed", publicName: "addCatalogAllowed", isSignal: true, isRequired: false, transformFunction: null }, exportButton: { classPropertyName: "exportButton", publicName: "exportButton", isSignal: true, isRequired: false, transformFunction: null }, predefinedCatalogs: { classPropertyName: "predefinedCatalogs", publicName: "predefinedCatalogs", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<igo-catalog-library\n [predefinedCatalogs]=\"predefinedCatalogs()\"\n [addCatalogAllowed]=\"addCatalogAllowed()\"\n [store]=\"store\"\n (catalogSelectChange)=\"onCatalogSelectChange($event)\"\n/>\n@if (exportButton()) {\n <div class=\"get-catalog-list-button\">\n <button\n matButton=\"elevated\"\n [matTooltip]=\"\n 'igo.integration.catalog.library.getCatalogListTooltip' | translate\n \"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"getCatalogList()\"\n >\n {{ 'igo.integration.catalog.library.getCatalogList' | translate }}\n </button>\n </div>\n}\n", styles: [".get-catalog-list-button{display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "component", type: CatalogLibraryComponent, selector: "igo-catalog-library", inputs: ["store", "addCatalogAllowed", "predefinedCatalogs"], outputs: ["predefinedCatalogsChange", "catalogSelectChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
799
774
|
};
|
|
800
775
|
CatalogLibraryToolComponent = __decorate([
|
|
801
776
|
ToolComponent({
|
|
@@ -804,25 +779,25 @@ CatalogLibraryToolComponent = __decorate([
|
|
|
804
779
|
icon: 'library_add'
|
|
805
780
|
})
|
|
806
781
|
], CatalogLibraryToolComponent);
|
|
807
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: CatalogLibraryToolComponent, decorators: [{
|
|
808
783
|
type: Component,
|
|
809
784
|
args: [{ selector: 'igo-catalog-library-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
810
785
|
CatalogLibraryComponent,
|
|
811
786
|
MatButtonModule,
|
|
812
787
|
MatTooltipModule,
|
|
813
788
|
TranslateModule
|
|
814
|
-
], template: "<igo-catalog-library\n [predefinedCatalogs]=\"predefinedCatalogs()\"\n [addCatalogAllowed]=\"addCatalogAllowed()\"\n [store]=\"store\"\n (catalogSelectChange)=\"onCatalogSelectChange($event)\"\n/>\n@if (exportButton()) {\n <div class=\"get-catalog-list-button\">\n <button\n matButton=\"elevated\"\n [matTooltip]=\"\n 'igo.integration.catalog.library.
|
|
789
|
+
], template: "<igo-catalog-library\n [predefinedCatalogs]=\"predefinedCatalogs()\"\n [addCatalogAllowed]=\"addCatalogAllowed()\"\n [store]=\"store\"\n (catalogSelectChange)=\"onCatalogSelectChange($event)\"\n/>\n@if (exportButton()) {\n <div class=\"get-catalog-list-button\">\n <button\n matButton=\"elevated\"\n [matTooltip]=\"\n 'igo.integration.catalog.library.getCatalogListTooltip' | translate\n \"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"getCatalogList()\"\n >\n {{ 'igo.integration.catalog.library.getCatalogList' | translate }}\n </button>\n </div>\n}\n", styles: [".get-catalog-list-button{display:flex;justify-content:center;align-items:center}\n"] }]
|
|
815
790
|
}], propDecorators: { addCatalogAllowed: [{ type: i0.Input, args: [{ isSignal: true, alias: "addCatalogAllowed", required: false }] }], exportButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportButton", required: false }] }], predefinedCatalogs: [{ type: i0.Input, args: [{ isSignal: true, alias: "predefinedCatalogs", required: false }] }] } });
|
|
816
791
|
|
|
817
792
|
/**
|
|
818
793
|
* @deprecated import the CatalogLibraryToolComponent directly
|
|
819
794
|
*/
|
|
820
795
|
class IgoAppCatalogLibraryToolModule {
|
|
821
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
822
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
823
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
796
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogLibraryToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
797
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogLibraryToolModule, imports: [CatalogLibraryToolComponent], exports: [CatalogLibraryToolComponent] });
|
|
798
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogLibraryToolModule, imports: [CatalogLibraryToolComponent] });
|
|
824
799
|
}
|
|
825
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogLibraryToolModule, decorators: [{
|
|
826
801
|
type: NgModule,
|
|
827
802
|
args: [{
|
|
828
803
|
imports: [CatalogLibraryToolComponent],
|
|
@@ -834,11 +809,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
834
809
|
* @deprecated import the components directly
|
|
835
810
|
*/
|
|
836
811
|
class IgoAppCatalogModule {
|
|
837
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
838
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
839
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
812
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
813
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogModule, exports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule] });
|
|
814
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogModule, imports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule] });
|
|
840
815
|
}
|
|
841
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppCatalogModule, decorators: [{
|
|
842
817
|
type: NgModule,
|
|
843
818
|
args: [{
|
|
844
819
|
exports: [IgoAppCatalogLibraryToolModule, IgoAppCatalogBrowserToolModule]
|
|
@@ -850,8 +825,8 @@ let ContextEditorToolComponent = class ContextEditorToolComponent {
|
|
|
850
825
|
submitSuccessed() {
|
|
851
826
|
this.toolState.toolbox.activatePreviousTool();
|
|
852
827
|
}
|
|
853
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
854
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
828
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextEditorToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
829
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: ContextEditorToolComponent, isStandalone: true, selector: "igo-context-editor-tool", ngImport: i0, template: "<igo-context-edit (submitSuccessed)=\"submitSuccessed()\" />\n", dependencies: [{ kind: "component", type: ContextEditComponent, selector: "igo-context-edit", outputs: ["submitSuccessed"] }] });
|
|
855
830
|
};
|
|
856
831
|
ContextEditorToolComponent = __decorate([
|
|
857
832
|
ToolComponent({
|
|
@@ -861,7 +836,7 @@ ContextEditorToolComponent = __decorate([
|
|
|
861
836
|
parent: 'contextManager'
|
|
862
837
|
})
|
|
863
838
|
], ContextEditorToolComponent);
|
|
864
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
839
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextEditorToolComponent, decorators: [{
|
|
865
840
|
type: Component,
|
|
866
841
|
args: [{ selector: 'igo-context-editor-tool', imports: [ContextEditComponent], template: "<igo-context-edit (submitSuccessed)=\"submitSuccessed()\" />\n" }]
|
|
867
842
|
}] });
|
|
@@ -881,8 +856,8 @@ let ContextManagerToolComponent = class ContextManagerToolComponent {
|
|
|
881
856
|
managePermissions() {
|
|
882
857
|
this.toolState.toolbox.activateTool('contextPermissionManager');
|
|
883
858
|
}
|
|
884
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
885
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
859
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextManagerToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
860
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.24", type: ContextManagerToolComponent, isStandalone: true, selector: "igo-context-manager-tool", inputs: { toolToOpenOnContextChange: { classPropertyName: "toolToOpenOnContextChange", publicName: "toolToOpenOnContextChange", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<igo-context-list\n [map]=\"map\"\n (edit)=\"editContext()\"\n (managePermissions)=\"managePermissions()\"\n [isDesktop]=\"isDesktop()\"\n/>\n", dependencies: [{ kind: "component", type: ContextListComponent, selector: "igo-context-list", inputs: ["isDesktop", "contexts", "selectedContext", "map", "defaultContextId", "term"], outputs: ["selectedContextChange", "select", "unselect", "edit", "delete", "save", "clone", "create", "hide", "show", "showHiddenContexts", "favorite", "managePermissions", "manageTools", "filterPermissionsChanged"] }] });
|
|
886
861
|
};
|
|
887
862
|
ContextManagerToolComponent = __decorate([
|
|
888
863
|
ToolComponent({
|
|
@@ -891,14 +866,14 @@ ContextManagerToolComponent = __decorate([
|
|
|
891
866
|
icon: 'star'
|
|
892
867
|
})
|
|
893
868
|
], ContextManagerToolComponent);
|
|
894
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
869
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextManagerToolComponent, decorators: [{
|
|
895
870
|
type: Component,
|
|
896
871
|
args: [{ selector: 'igo-context-manager-tool', imports: [ContextListComponent], template: "<igo-context-list\n [map]=\"map\"\n (edit)=\"editContext()\"\n (managePermissions)=\"managePermissions()\"\n [isDesktop]=\"isDesktop()\"\n/>\n" }]
|
|
897
872
|
}], propDecorators: { toolToOpenOnContextChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolToOpenOnContextChange", required: false }] }] } });
|
|
898
873
|
|
|
899
874
|
let ContextPermissionManagerToolComponent = class ContextPermissionManagerToolComponent {
|
|
900
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
901
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
875
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextPermissionManagerToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
876
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: ContextPermissionManagerToolComponent, isStandalone: true, selector: "igo-context-permission-manager-tool", ngImport: i0, template: "<igo-context-permissions />\n", dependencies: [{ kind: "component", type: ContextPermissionsComponent, selector: "igo-context-permissions", inputs: ["context", "permissions"], outputs: ["contextChange", "permissionsChange"] }] });
|
|
902
877
|
};
|
|
903
878
|
ContextPermissionManagerToolComponent = __decorate([
|
|
904
879
|
ToolComponent({
|
|
@@ -908,7 +883,7 @@ ContextPermissionManagerToolComponent = __decorate([
|
|
|
908
883
|
parent: 'contextManager'
|
|
909
884
|
})
|
|
910
885
|
], ContextPermissionManagerToolComponent);
|
|
911
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
886
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextPermissionManagerToolComponent, decorators: [{
|
|
912
887
|
type: Component,
|
|
913
888
|
args: [{ selector: 'igo-context-permission-manager-tool', imports: [ContextPermissionsComponent], template: "<igo-context-permissions />\n" }]
|
|
914
889
|
}] });
|
|
@@ -940,10 +915,10 @@ class LayerListToolState {
|
|
|
940
915
|
sortAlpha: this.sortAlpha$.value
|
|
941
916
|
};
|
|
942
917
|
}
|
|
943
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
944
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
918
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: LayerListToolState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
919
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: LayerListToolState, providedIn: 'root' });
|
|
945
920
|
}
|
|
946
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
921
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: LayerListToolState, decorators: [{
|
|
947
922
|
type: Injectable,
|
|
948
923
|
args: [{
|
|
949
924
|
providedIn: 'root'
|
|
@@ -959,8 +934,8 @@ let ContextShareToolComponent = class ContextShareToolComponent {
|
|
|
959
934
|
get layerListControls() {
|
|
960
935
|
return this.layerListToolState.getLayerListControls();
|
|
961
936
|
}
|
|
962
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
963
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
937
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextShareToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
938
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: ContextShareToolComponent, isStandalone: true, selector: "igo-context-share-tool", ngImport: i0, template: "<igo-share-map [map]=\"map\" />\n", dependencies: [{ kind: "component", type: ShareMapComponent, selector: "igo-share-map", inputs: ["map"] }] });
|
|
964
939
|
};
|
|
965
940
|
ContextShareToolComponent = __decorate([
|
|
966
941
|
ToolComponent({
|
|
@@ -969,7 +944,7 @@ ContextShareToolComponent = __decorate([
|
|
|
969
944
|
icon: 'share'
|
|
970
945
|
})
|
|
971
946
|
], ContextShareToolComponent);
|
|
972
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
947
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextShareToolComponent, decorators: [{
|
|
973
948
|
type: Component,
|
|
974
949
|
args: [{ selector: 'igo-context-share-tool', imports: [ShareMapComponent], template: "<igo-share-map [map]=\"map\" />\n" }]
|
|
975
950
|
}] });
|
|
@@ -985,11 +960,11 @@ const INTEGRATION_CONTEXT_DIRECTIVES = [
|
|
|
985
960
|
* @deprecated import the components/directive directly or INTEGRATION_CONTEXT_DIRECTIVES for the set
|
|
986
961
|
*/
|
|
987
962
|
class IgoAppContextModule {
|
|
988
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
989
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
990
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
963
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppContextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
964
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppContextModule, imports: [ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent], exports: [ContextEditorToolComponent, ContextManagerToolComponent, ContextPermissionManagerToolComponent, ContextShareToolComponent] });
|
|
965
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppContextModule, imports: [INTEGRATION_CONTEXT_DIRECTIVES] });
|
|
991
966
|
}
|
|
992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
967
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppContextModule, decorators: [{
|
|
993
968
|
type: NgModule,
|
|
994
969
|
args: [{
|
|
995
970
|
imports: [...INTEGRATION_CONTEXT_DIRECTIVES],
|
|
@@ -1013,7 +988,9 @@ class ContextState {
|
|
|
1013
988
|
this.onContextChange(context);
|
|
1014
989
|
});
|
|
1015
990
|
this.contextService.toolsChanged$.subscribe((context) => {
|
|
1016
|
-
|
|
991
|
+
if (context) {
|
|
992
|
+
this.updateTools(context);
|
|
993
|
+
}
|
|
1017
994
|
});
|
|
1018
995
|
}
|
|
1019
996
|
/**
|
|
@@ -1057,7 +1034,7 @@ class ContextState {
|
|
|
1057
1034
|
toolbox.setToolbar(context.toolbar || []);
|
|
1058
1035
|
// TODO: This is a patch so the context service can work without
|
|
1059
1036
|
// injecting the ToolState or without being completely refactored
|
|
1060
|
-
this.contextService.setTools([]
|
|
1037
|
+
this.contextService.setTools([...tools]);
|
|
1061
1038
|
this.contextService.setToolbar(context.toolbar || []);
|
|
1062
1039
|
}
|
|
1063
1040
|
/**
|
|
@@ -1070,10 +1047,10 @@ class ContextState {
|
|
|
1070
1047
|
}
|
|
1071
1048
|
this.setContext(context);
|
|
1072
1049
|
}
|
|
1073
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1074
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1050
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1051
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextState, providedIn: 'root' });
|
|
1075
1052
|
}
|
|
1076
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1053
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ContextState, decorators: [{
|
|
1077
1054
|
type: Injectable,
|
|
1078
1055
|
args: [{
|
|
1079
1056
|
providedIn: 'root'
|
|
@@ -1120,10 +1097,10 @@ class DirectionState {
|
|
|
1120
1097
|
}
|
|
1121
1098
|
});
|
|
1122
1099
|
}
|
|
1123
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1124
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1100
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DirectionState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1101
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DirectionState, providedIn: 'root' });
|
|
1125
1102
|
}
|
|
1126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DirectionState, decorators: [{
|
|
1127
1104
|
type: Injectable,
|
|
1128
1105
|
args: [{
|
|
1129
1106
|
providedIn: 'root'
|
|
@@ -1185,13 +1162,13 @@ let DirectionsToolComponent = class DirectionsToolComponent {
|
|
|
1185
1162
|
this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);
|
|
1186
1163
|
}
|
|
1187
1164
|
this.contextState.context$.subscribe((c) => {
|
|
1188
|
-
if (!this.authService.authenticated) {
|
|
1165
|
+
if (!this.authService.authenticated && c) {
|
|
1189
1166
|
this.currentContextUri = c.uri;
|
|
1190
1167
|
}
|
|
1191
1168
|
});
|
|
1192
1169
|
}
|
|
1193
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1194
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1170
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DirectionsToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1171
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", 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 [zoomToActiveRoute]=\"zoomToActiveRoute\"\n [authenticated$]=\"authenticated$\"\n/>\n", dependencies: [{ kind: "ngmodule", type: IgoDirectionsModule }, { kind: "component", type: i1$1.DirectionsComponent, selector: "igo-directions", inputs: ["contextUri", "stopsStore", "stopsFeatureStore", "routesFeatureStore", "stepsFeatureStore", "debounce", "length", "coordRoundedDecimals", "zoomToActiveRoute", "authenticated$"] }] });
|
|
1195
1172
|
};
|
|
1196
1173
|
DirectionsToolComponent = __decorate([
|
|
1197
1174
|
ToolComponent({
|
|
@@ -1200,7 +1177,7 @@ DirectionsToolComponent = __decorate([
|
|
|
1200
1177
|
icon: 'directions'
|
|
1201
1178
|
})
|
|
1202
1179
|
], DirectionsToolComponent);
|
|
1203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DirectionsToolComponent, decorators: [{
|
|
1204
1181
|
type: Component,
|
|
1205
1182
|
args: [{ selector: 'igo-directions-tool', imports: [IgoDirectionsModule], template: "<igo-directions\n [contextUri]=\"currentContextUri\"\n [debounce]=\"debounceTime\"\n [stopsStore]=\"stopsStore\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stepsFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [zoomToActiveRoute]=\"zoomToActiveRoute\"\n [authenticated$]=\"authenticated$\"\n/>\n" }]
|
|
1206
1183
|
}] });
|
|
@@ -1215,11 +1192,11 @@ class IgoAppDirectionsModule {
|
|
|
1215
1192
|
providers: []
|
|
1216
1193
|
};
|
|
1217
1194
|
}
|
|
1218
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1219
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
1220
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
1195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDirectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1196
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDirectionsModule, imports: [DirectionsToolComponent], exports: [DirectionsToolComponent] });
|
|
1197
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDirectionsModule, imports: [DirectionsToolComponent] });
|
|
1221
1198
|
}
|
|
1222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDirectionsModule, decorators: [{
|
|
1223
1200
|
type: NgModule,
|
|
1224
1201
|
args: [{
|
|
1225
1202
|
imports: [DirectionsToolComponent],
|
|
@@ -1256,10 +1233,10 @@ class DrawState {
|
|
|
1256
1233
|
store = new FeatureStore([], { map: this.mapState.map });
|
|
1257
1234
|
}
|
|
1258
1235
|
}
|
|
1259
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1260
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DrawState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1237
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DrawState, providedIn: 'root' });
|
|
1261
1238
|
}
|
|
1262
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DrawState, decorators: [{
|
|
1263
1240
|
type: Injectable,
|
|
1264
1241
|
args: [{
|
|
1265
1242
|
providedIn: 'root'
|
|
@@ -1279,6 +1256,9 @@ let DrawingToolComponent = class DrawingToolComponent {
|
|
|
1279
1256
|
get stores() {
|
|
1280
1257
|
return this.drawState.stores;
|
|
1281
1258
|
}
|
|
1259
|
+
set stores(stores) {
|
|
1260
|
+
this.drawState.stores = stores;
|
|
1261
|
+
}
|
|
1282
1262
|
/**
|
|
1283
1263
|
* Map to measure on
|
|
1284
1264
|
* @internal
|
|
@@ -1307,8 +1287,8 @@ let DrawingToolComponent = class DrawingToolComponent {
|
|
|
1307
1287
|
addDrawControls(dc) {
|
|
1308
1288
|
this.drawControls = dc;
|
|
1309
1289
|
}
|
|
1310
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1311
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1290
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DrawingToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1291
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", 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", dependencies: [{ kind: "component", type: DrawComponent, selector: "igo-draw", inputs: ["map", "stores", "drawControls", "activeDrawingLayer"], outputs: ["storesChange", "drawControlsChange", "activeDrawingLayerChange", "activeLayerChange", "drawControlsEvent", "layersIDEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1312
1292
|
};
|
|
1313
1293
|
DrawingToolComponent = __decorate([
|
|
1314
1294
|
ToolComponent({
|
|
@@ -1317,20 +1297,20 @@ DrawingToolComponent = __decorate([
|
|
|
1317
1297
|
icon: 'stylus_note'
|
|
1318
1298
|
})
|
|
1319
1299
|
], DrawingToolComponent);
|
|
1320
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1300
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DrawingToolComponent, decorators: [{
|
|
1321
1301
|
type: Component,
|
|
1322
|
-
args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
1302
|
+
args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
1323
1303
|
}] });
|
|
1324
1304
|
|
|
1325
1305
|
/**
|
|
1326
1306
|
* @deprecated import the DrawingToolComponent directly
|
|
1327
1307
|
*/
|
|
1328
1308
|
class IgoAppDrawingToolModule {
|
|
1329
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1330
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
1331
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
1309
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawingToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1310
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawingToolModule, imports: [DrawingToolComponent], exports: [DrawingToolComponent] });
|
|
1311
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawingToolModule, imports: [DrawingToolComponent] });
|
|
1332
1312
|
}
|
|
1333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawingToolModule, decorators: [{
|
|
1334
1314
|
type: NgModule,
|
|
1335
1315
|
args: [{
|
|
1336
1316
|
imports: [DrawingToolComponent],
|
|
@@ -1342,11 +1322,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
1342
1322
|
* @deprecated import the DrawingToolComponent directly
|
|
1343
1323
|
*/
|
|
1344
1324
|
class IgoAppDrawModule {
|
|
1345
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1346
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
1347
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
1325
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1326
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawModule, exports: [IgoAppDrawingToolModule] });
|
|
1327
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawModule, imports: [IgoAppDrawingToolModule] });
|
|
1348
1328
|
}
|
|
1349
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppDrawModule, decorators: [{
|
|
1350
1330
|
type: NgModule,
|
|
1351
1331
|
args: [{
|
|
1352
1332
|
exports: [IgoAppDrawingToolModule]
|
|
@@ -1376,8 +1356,8 @@ let ActiveOgcFilterToolComponent = class ActiveOgcFilterToolComponent {
|
|
|
1376
1356
|
return;
|
|
1377
1357
|
}
|
|
1378
1358
|
animate = 'enter';
|
|
1379
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1380
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1359
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActiveOgcFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1360
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", 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", dependencies: [{ kind: "component", type: OgcFilterableItemComponent, selector: "igo-ogc-filterable-item", inputs: ["layer", "map", "header"] }], animations: [toolSlideInOut$1()] });
|
|
1381
1361
|
};
|
|
1382
1362
|
ActiveOgcFilterToolComponent = __decorate([
|
|
1383
1363
|
ToolComponent({
|
|
@@ -1387,7 +1367,7 @@ ActiveOgcFilterToolComponent = __decorate([
|
|
|
1387
1367
|
parent: 'mapTools'
|
|
1388
1368
|
})
|
|
1389
1369
|
], ActiveOgcFilterToolComponent);
|
|
1390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1370
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActiveOgcFilterToolComponent, decorators: [{
|
|
1391
1371
|
type: Component,
|
|
1392
1372
|
args: [{ selector: 'igo-active-ogc-filter-tool', animations: [toolSlideInOut$1()], imports: [OgcFilterableItemComponent], template: "<igo-ogc-filterable-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n/>\n" }]
|
|
1393
1373
|
}] });
|
|
@@ -1415,8 +1395,8 @@ let ActiveTimeFilterToolComponent = class ActiveTimeFilterToolComponent {
|
|
|
1415
1395
|
return;
|
|
1416
1396
|
}
|
|
1417
1397
|
animate = 'enter';
|
|
1418
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1419
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1398
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActiveTimeFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1399
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", 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", dependencies: [{ kind: "component", type: TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: ["header", "layer"] }], animations: [toolSlideInOut()] });
|
|
1420
1400
|
};
|
|
1421
1401
|
ActiveTimeFilterToolComponent = __decorate([
|
|
1422
1402
|
ToolComponent({
|
|
@@ -1426,14 +1406,14 @@ ActiveTimeFilterToolComponent = __decorate([
|
|
|
1426
1406
|
parent: 'mapTools'
|
|
1427
1407
|
})
|
|
1428
1408
|
], ActiveTimeFilterToolComponent);
|
|
1429
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1409
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActiveTimeFilterToolComponent, decorators: [{
|
|
1430
1410
|
type: Component,
|
|
1431
1411
|
args: [{ selector: 'igo-active-time-filter-tool', animations: [toolSlideInOut()], imports: [TimeFilterItemComponent], template: "<igo-time-filter-item\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\"\n/>\n" }]
|
|
1432
1412
|
}] });
|
|
1433
1413
|
|
|
1434
1414
|
let OgcFilterToolComponent = class OgcFilterToolComponent {
|
|
1435
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1436
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1415
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: OgcFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1416
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: OgcFilterToolComponent, isStandalone: true, selector: "igo-ogc-filter-tool", ngImport: i0, template: "<igo-ogc-filterable-list igoOgcFilterableListBinding [layers]=\"[]\" />\n", dependencies: [{ kind: "component", type: OgcFilterableListComponent, selector: "igo-ogc-filterable-list", inputs: ["layers"], outputs: ["layersChange"] }, { kind: "directive", type: OgcFilterableListBindingDirective, selector: "[igoOgcFilterableListBinding]" }] });
|
|
1437
1417
|
};
|
|
1438
1418
|
OgcFilterToolComponent = __decorate([
|
|
1439
1419
|
ToolComponent({
|
|
@@ -1442,9 +1422,9 @@ OgcFilterToolComponent = __decorate([
|
|
|
1442
1422
|
icon: 'filter'
|
|
1443
1423
|
})
|
|
1444
1424
|
], OgcFilterToolComponent);
|
|
1445
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: OgcFilterToolComponent, decorators: [{
|
|
1446
1426
|
type: Component,
|
|
1447
|
-
args: [{ selector: 'igo-ogc-filter-tool', imports: [OgcFilterableListComponent, OgcFilterableListBindingDirective], template: "<igo-ogc-filterable-list igoOgcFilterableListBinding />\n" }]
|
|
1427
|
+
args: [{ selector: 'igo-ogc-filter-tool', imports: [OgcFilterableListComponent, OgcFilterableListBindingDirective], template: "<igo-ogc-filterable-list igoOgcFilterableListBinding [layers]=\"[]\" />\n" }]
|
|
1448
1428
|
}] });
|
|
1449
1429
|
|
|
1450
1430
|
/**
|
|
@@ -1455,10 +1435,10 @@ class StorageState {
|
|
|
1455
1435
|
get storageService() {
|
|
1456
1436
|
return this.igoStorageService;
|
|
1457
1437
|
}
|
|
1458
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1459
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1438
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: StorageState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1439
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: StorageState, providedIn: 'root' });
|
|
1460
1440
|
}
|
|
1461
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1441
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: StorageState, decorators: [{
|
|
1462
1442
|
type: Injectable,
|
|
1463
1443
|
args: [{
|
|
1464
1444
|
providedIn: 'root'
|
|
@@ -1519,17 +1499,17 @@ function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOn
|
|
|
1519
1499
|
title: 'igo.integration.workspace.download.title',
|
|
1520
1500
|
tooltip: 'igo.integration.workspace.download.tooltip',
|
|
1521
1501
|
handler: (ws) => {
|
|
1522
|
-
const filterStrategy = ws.entityStore
|
|
1523
|
-
const filterSelectionStrategy = ws.entityStore
|
|
1524
|
-
const layersWithSelection = filterSelectionStrategy
|
|
1502
|
+
const filterStrategy = ws.entityStore?.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
|
|
1503
|
+
const filterSelectionStrategy = ws.entityStore?.getStrategyOfType(EntityStoreFilterSelectionStrategy);
|
|
1504
|
+
const layersWithSelection = filterSelectionStrategy?.active
|
|
1525
1505
|
? [ws.layer.id]
|
|
1526
1506
|
: [];
|
|
1527
1507
|
toolState.toolToActivateFromOptions({
|
|
1528
1508
|
tool: 'importExport',
|
|
1529
1509
|
options: {
|
|
1530
1510
|
layers: [ws.layer.id],
|
|
1531
|
-
featureInMapExtent: filterStrategy
|
|
1532
|
-
layersWithSelection
|
|
1511
|
+
featureInMapExtent: filterStrategy?.active,
|
|
1512
|
+
layersWithSelection: layersWithSelection.filter((id) => id !== undefined)
|
|
1533
1513
|
}
|
|
1534
1514
|
});
|
|
1535
1515
|
},
|
|
@@ -1548,7 +1528,7 @@ function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOn
|
|
|
1548
1528
|
},
|
|
1549
1529
|
args: [ogcFilterWidget, workspace],
|
|
1550
1530
|
availability: (widget, ws) => of(ws.layer.options.sourceOptions
|
|
1551
|
-
?.ogcFilters?.enabled)
|
|
1531
|
+
?.ogcFilters?.enabled ?? false)
|
|
1552
1532
|
},
|
|
1553
1533
|
{
|
|
1554
1534
|
id: 'interactiveSelect',
|
|
@@ -1628,7 +1608,7 @@ function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOn
|
|
|
1628
1608
|
args: [workspace]
|
|
1629
1609
|
}
|
|
1630
1610
|
];
|
|
1631
|
-
const returnActions = workspace.layer.options.workspace
|
|
1611
|
+
const returnActions = workspace.layer.options.workspace?.printable !== false
|
|
1632
1612
|
? actions
|
|
1633
1613
|
: actions.filter((action) => action.id !== 'print');
|
|
1634
1614
|
return returnActions;
|
|
@@ -1675,10 +1655,10 @@ class EditionActionsService {
|
|
|
1675
1655
|
});
|
|
1676
1656
|
return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, this.ogcFilterWidget, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState);
|
|
1677
1657
|
}
|
|
1678
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1679
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1658
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: EditionActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1659
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: EditionActionsService, providedIn: 'root' });
|
|
1680
1660
|
}
|
|
1681
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: EditionActionsService, decorators: [{
|
|
1682
1662
|
type: Injectable,
|
|
1683
1663
|
args: [{
|
|
1684
1664
|
providedIn: 'root'
|
|
@@ -1721,12 +1701,12 @@ class FeatureActionsService {
|
|
|
1721
1701
|
this.zoomAuto$.next(this.zoomAuto);
|
|
1722
1702
|
handleZoomAuto(workspace, this.storageService);
|
|
1723
1703
|
});
|
|
1724
|
-
return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, undefined, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState, this.interactiveSelectionFormWidget);
|
|
1704
|
+
return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, undefined, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState, this.interactiveSelectionFormWidget ?? undefined);
|
|
1725
1705
|
}
|
|
1726
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1727
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1706
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: FeatureActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1707
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: FeatureActionsService, providedIn: 'root' });
|
|
1728
1708
|
}
|
|
1729
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1709
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: FeatureActionsService, decorators: [{
|
|
1730
1710
|
type: Injectable,
|
|
1731
1711
|
args: [{
|
|
1732
1712
|
providedIn: 'root'
|
|
@@ -1772,12 +1752,12 @@ class WfsActionsService {
|
|
|
1772
1752
|
this.zoomAuto$.next(this.zoomAuto);
|
|
1773
1753
|
handleZoomAuto(workspace, this.storageService);
|
|
1774
1754
|
});
|
|
1775
|
-
return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, this.ogcFilterWidget, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState, this.interactiveSelectionFormWidget);
|
|
1755
|
+
return getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$, this.ogcFilterWidget, this.zoomAuto$, this.maximize$, this.storageService, this.languageService, this.mediaService, this.toolState, this.interactiveSelectionFormWidget ?? undefined);
|
|
1776
1756
|
}
|
|
1777
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1778
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1757
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WfsActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1758
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WfsActionsService, providedIn: 'root' });
|
|
1779
1759
|
}
|
|
1780
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1760
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WfsActionsService, decorators: [{
|
|
1781
1761
|
type: Injectable,
|
|
1782
1762
|
args: [{
|
|
1783
1763
|
providedIn: 'root'
|
|
@@ -1819,7 +1799,7 @@ class WorkspaceState {
|
|
|
1819
1799
|
_store;
|
|
1820
1800
|
get workspaceSelection() {
|
|
1821
1801
|
if (this.workspace$.value) {
|
|
1822
|
-
return this.workspace$.value?.entityStore
|
|
1802
|
+
return this.workspace$.value?.entityStore?.stateView.manyBy((r) => r.state.selected === true);
|
|
1823
1803
|
}
|
|
1824
1804
|
else {
|
|
1825
1805
|
return [];
|
|
@@ -1827,7 +1807,7 @@ class WorkspaceState {
|
|
|
1827
1807
|
}
|
|
1828
1808
|
get workspaceSelection$() {
|
|
1829
1809
|
if (this.workspace$.value) {
|
|
1830
|
-
return this.workspace$.value?.entityStore?.stateView.manyBy$((r) => r.state.selected === true);
|
|
1810
|
+
return (this.workspace$.value?.entityStore?.stateView.manyBy$((r) => r.state.selected === true) ?? of([]));
|
|
1831
1811
|
}
|
|
1832
1812
|
else {
|
|
1833
1813
|
return of([]);
|
|
@@ -1846,15 +1826,13 @@ class WorkspaceState {
|
|
|
1846
1826
|
this._store = new WorkspaceStore([]);
|
|
1847
1827
|
this._store.stateView
|
|
1848
1828
|
.firstBy$((record) => record.state.active === true)
|
|
1849
|
-
.
|
|
1850
|
-
|
|
1829
|
+
.pipe(map((record) => (record ? record.entity : undefined)), distinctUntilChanged())
|
|
1830
|
+
.subscribe((workspace) => {
|
|
1851
1831
|
this.workspace$.next(workspace);
|
|
1852
1832
|
});
|
|
1853
|
-
this._store.stateView
|
|
1854
|
-
.all$()
|
|
1855
|
-
.subscribe((workspaces) => {
|
|
1833
|
+
this._store.stateView.all$().subscribe((workspaces) => {
|
|
1856
1834
|
workspaces.map((wks) => {
|
|
1857
|
-
if (wks.entity.actionStore
|
|
1835
|
+
if (wks.entity.actionStore?.empty) {
|
|
1858
1836
|
if (wks.entity instanceof WfsWorkspace) {
|
|
1859
1837
|
this.wfsActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
|
|
1860
1838
|
}
|
|
@@ -1884,8 +1862,8 @@ class WorkspaceState {
|
|
|
1884
1862
|
this.rowsInMapExtentCheckCondition$$ =
|
|
1885
1863
|
this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {
|
|
1886
1864
|
this._store.stateView.all().map((wks) => {
|
|
1887
|
-
if (!wks.entity.actionStore
|
|
1888
|
-
const filterStrategy = wks.entity.entityStore
|
|
1865
|
+
if (!wks.entity.actionStore?.empty) {
|
|
1866
|
+
const filterStrategy = wks.entity.entityStore?.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
|
|
1889
1867
|
if (filterStrategy) {
|
|
1890
1868
|
if (rowsInMapExtent) {
|
|
1891
1869
|
filterStrategy.activate();
|
|
@@ -1899,8 +1877,8 @@ class WorkspaceState {
|
|
|
1899
1877
|
});
|
|
1900
1878
|
this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {
|
|
1901
1879
|
this._store.stateView.all().map((wks) => {
|
|
1902
|
-
if (!wks.entity.actionStore
|
|
1903
|
-
const filterStrategy = wks.entity.entityStore
|
|
1880
|
+
if (!wks.entity.actionStore?.empty) {
|
|
1881
|
+
const filterStrategy = wks.entity.entityStore?.getStrategyOfType(EntityStoreFilterSelectionStrategy);
|
|
1904
1882
|
if (filterStrategy) {
|
|
1905
1883
|
if (selectOnly) {
|
|
1906
1884
|
filterStrategy.activate();
|
|
@@ -1957,10 +1935,10 @@ class WorkspaceState {
|
|
|
1957
1935
|
this.activeWorkspace$$.unsubscribe();
|
|
1958
1936
|
}
|
|
1959
1937
|
}
|
|
1960
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1961
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1938
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WorkspaceState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1939
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WorkspaceState, providedIn: 'root' });
|
|
1962
1940
|
}
|
|
1963
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1941
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WorkspaceState, decorators: [{
|
|
1964
1942
|
type: Injectable,
|
|
1965
1943
|
args: [{
|
|
1966
1944
|
providedIn: 'root'
|
|
@@ -1983,9 +1961,9 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
1983
1961
|
get map() {
|
|
1984
1962
|
return this.mapState.map;
|
|
1985
1963
|
}
|
|
1986
|
-
type = model(
|
|
1964
|
+
type = model(...(ngDevMode ? [undefined, { debugName: "type" }] : /* istanbul ignore next */ []));
|
|
1987
1965
|
itemType = model(SpatialFilterItemType.Thematics, ...(ngDevMode ? [{ debugName: "itemType" }] : /* istanbul ignore next */ []));
|
|
1988
|
-
freehandDrawIsActive = model(
|
|
1966
|
+
freehandDrawIsActive = model(...(ngDevMode ? [undefined, { debugName: "freehandDrawIsActive" }] : /* istanbul ignore next */ []));
|
|
1989
1967
|
layers = [];
|
|
1990
1968
|
activeLayers = [];
|
|
1991
1969
|
queryType;
|
|
@@ -2034,7 +2012,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2034
2012
|
const ids = [];
|
|
2035
2013
|
const re = new RegExp('^Zone \\d+');
|
|
2036
2014
|
for (const layer of this.layers) {
|
|
2037
|
-
if (!layer.title
|
|
2015
|
+
if (!layer.title?.match(re)) {
|
|
2038
2016
|
ids.push(layer.id);
|
|
2039
2017
|
}
|
|
2040
2018
|
}
|
|
@@ -2054,7 +2032,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2054
2032
|
this.thematics) {
|
|
2055
2033
|
for (const thematic of this.thematics) {
|
|
2056
2034
|
if (!thematic.zeroResults) {
|
|
2057
|
-
layerToOpenWks = this.activeLayers.find((layer) => layer.title
|
|
2035
|
+
layerToOpenWks = this.activeLayers.find((layer) => layer.title?.includes(thematic.name + ' ' + this.iterator.toString()));
|
|
2058
2036
|
break;
|
|
2059
2037
|
}
|
|
2060
2038
|
}
|
|
@@ -2062,7 +2040,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2062
2040
|
else {
|
|
2063
2041
|
const title = 'Adresses ' + this.iterator.toString();
|
|
2064
2042
|
this.activeLayers.forEach((layer) => {
|
|
2065
|
-
if (layer.title
|
|
2043
|
+
if (layer.title?.includes(title)) {
|
|
2066
2044
|
layerToOpenWks = layer;
|
|
2067
2045
|
}
|
|
2068
2046
|
});
|
|
@@ -2084,10 +2062,12 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2084
2062
|
}
|
|
2085
2063
|
selectWorkspaceEntity(record) {
|
|
2086
2064
|
this.workspaceState.store.all().forEach((workspace) => {
|
|
2087
|
-
workspace.entityStore
|
|
2088
|
-
if (
|
|
2065
|
+
workspace.entityStore?.state.updateAll({ selected: false });
|
|
2066
|
+
if (
|
|
2067
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2068
|
+
workspace.title.includes(record['added'][0]?.meta?.title)) {
|
|
2089
2069
|
this.workspaceState.setActiveWorkspaceById(workspace.id);
|
|
2090
|
-
workspace.entityStore
|
|
2070
|
+
workspace.entityStore?.state.updateMany(record['added'], {
|
|
2091
2071
|
selected: true
|
|
2092
2072
|
});
|
|
2093
2073
|
}
|
|
@@ -2144,7 +2124,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2144
2124
|
thematics = [theme];
|
|
2145
2125
|
}
|
|
2146
2126
|
else {
|
|
2147
|
-
thematics = this.thematics;
|
|
2127
|
+
thematics = this.thematics ?? [];
|
|
2148
2128
|
}
|
|
2149
2129
|
if (this.measureUnit === MeasureLengthUnit.Kilometers &&
|
|
2150
2130
|
type !== SpatialFilterType.Point) {
|
|
@@ -2166,10 +2146,10 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2166
2146
|
const grouped = this.getFeatureByType(features);
|
|
2167
2147
|
grouped.forEach(({ points, lines }) => {
|
|
2168
2148
|
if (points.length > 0) {
|
|
2169
|
-
this.tryAddPointToMap(points, points[0].meta
|
|
2149
|
+
this.tryAddPointToMap(points, points[0].meta?.id);
|
|
2170
2150
|
}
|
|
2171
2151
|
if (lines.length > 0) {
|
|
2172
|
-
this.tryAddLayerToMap(lines, lines[0].meta
|
|
2152
|
+
this.tryAddLayerToMap(lines, lines[0].meta?.id);
|
|
2173
2153
|
}
|
|
2174
2154
|
});
|
|
2175
2155
|
thematics.forEach((thematic) => {
|
|
@@ -2206,7 +2186,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2206
2186
|
group = { points: [], lines: [] };
|
|
2207
2187
|
grouped.set(typeKey, group);
|
|
2208
2188
|
}
|
|
2209
|
-
if (feature.geometry
|
|
2189
|
+
if (feature.geometry?.type === 'Point') {
|
|
2210
2190
|
feature.properties.longitude = feature.geometry.coordinates[0];
|
|
2211
2191
|
feature.properties.latitude = feature.geometry.coordinates[1];
|
|
2212
2192
|
group.points.push(feature);
|
|
@@ -2233,22 +2213,20 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2233
2213
|
zoneIndex = parseInt(match[1], 10);
|
|
2234
2214
|
}
|
|
2235
2215
|
}
|
|
2236
|
-
const titleFeature = features[0].meta
|
|
2216
|
+
const titleFeature = features[0].meta?.title;
|
|
2237
2217
|
// Count how many layers with the same meta.title already exist
|
|
2238
2218
|
let i = 1;
|
|
2239
2219
|
for (const layer of this.layers) {
|
|
2240
|
-
if (layer.title?.startsWith(titleFeature)) {
|
|
2220
|
+
if (layer.title?.startsWith(titleFeature ?? '')) {
|
|
2241
2221
|
i++;
|
|
2242
2222
|
}
|
|
2243
2223
|
}
|
|
2244
|
-
const style = createOverlayMarkerStyle();
|
|
2245
2224
|
// 🔑 Use zoneIndex to sync layer naming
|
|
2246
2225
|
const filterLabel = this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter');
|
|
2247
2226
|
const options = {
|
|
2248
2227
|
isIgoInternalLayer: true,
|
|
2249
2228
|
title: `${titleFeature} ${zoneIndex} - ${filterLabel}`,
|
|
2250
2229
|
visible: true,
|
|
2251
|
-
style,
|
|
2252
2230
|
sourceOptions: {
|
|
2253
2231
|
type: 'cluster',
|
|
2254
2232
|
id,
|
|
@@ -2263,12 +2241,15 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2263
2241
|
.createAsyncLayer(options)
|
|
2264
2242
|
.pipe(take(1))
|
|
2265
2243
|
.subscribe((layer) => {
|
|
2244
|
+
if (!layer)
|
|
2245
|
+
return;
|
|
2246
|
+
const vectorLayer = layer;
|
|
2266
2247
|
const featuresOl = features.map((feature) => {
|
|
2267
|
-
return featureToOl(feature, this.map.
|
|
2248
|
+
return featureToOl(feature, this.map.projectionCode);
|
|
2268
2249
|
});
|
|
2269
|
-
const ol =
|
|
2250
|
+
const ol = vectorLayer.dataSource.ol;
|
|
2270
2251
|
ol.getSource().addFeatures(featuresOl);
|
|
2271
|
-
const previousLayer = this.layers.find((prevLayer) => prevLayer.id ===
|
|
2252
|
+
const previousLayer = this.layers.find((prevLayer) => prevLayer.id === vectorLayer.id);
|
|
2272
2253
|
if (previousLayer) {
|
|
2273
2254
|
this.map.layerController.remove(previousLayer);
|
|
2274
2255
|
this.layers = this.layers.filter((l) => l.id !== layer.id);
|
|
@@ -2292,13 +2273,13 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2292
2273
|
return;
|
|
2293
2274
|
}
|
|
2294
2275
|
for (const layer of this.layers) {
|
|
2295
|
-
if (layer.title?.startsWith(features[0].meta
|
|
2276
|
+
if (layer.title?.startsWith(features[0].meta?.title ?? '')) {
|
|
2296
2277
|
i++;
|
|
2297
2278
|
}
|
|
2298
2279
|
}
|
|
2299
2280
|
const options = {
|
|
2300
2281
|
isIgoInternalLayer: true,
|
|
2301
|
-
title: (features[0].meta
|
|
2282
|
+
title: ((features[0].meta?.title ?? '') +
|
|
2302
2283
|
' ' +
|
|
2303
2284
|
i +
|
|
2304
2285
|
' - ' +
|
|
@@ -2314,16 +2295,19 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2314
2295
|
.createAsyncLayer(options)
|
|
2315
2296
|
.pipe(take(1))
|
|
2316
2297
|
.subscribe((layer) => {
|
|
2298
|
+
if (!layer)
|
|
2299
|
+
return;
|
|
2300
|
+
const vectorLayer = layer;
|
|
2317
2301
|
const featuresOl = features.map((feature) => {
|
|
2318
|
-
return featureToOl(feature, this.map.
|
|
2302
|
+
return featureToOl(feature, this.map.projectionCode);
|
|
2319
2303
|
});
|
|
2320
|
-
const ol =
|
|
2304
|
+
const ol = vectorLayer.dataSource.ol;
|
|
2321
2305
|
ol.addFeatures(featuresOl);
|
|
2322
|
-
const previousLayer = this.layers.find((prevLayer) => prevLayer.id ===
|
|
2306
|
+
const previousLayer = this.layers.find((prevLayer) => prevLayer.id === vectorLayer.id);
|
|
2323
2307
|
if (previousLayer) {
|
|
2324
2308
|
this.map.layerController.remove(previousLayer);
|
|
2325
2309
|
i = i - 1;
|
|
2326
|
-
layer.title = (features[0].meta
|
|
2310
|
+
layer.title = ((features[0].meta?.title ?? '') +
|
|
2327
2311
|
' ' +
|
|
2328
2312
|
i +
|
|
2329
2313
|
' - ' +
|
|
@@ -2361,14 +2345,14 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2361
2345
|
return;
|
|
2362
2346
|
const olSource = zoneLayer.dataSource.ol;
|
|
2363
2347
|
// Convert to OL feature (same way as when adding)
|
|
2364
|
-
const featureOl = featureToOl(feature, this.map.
|
|
2348
|
+
const featureOl = featureToOl(feature, this.map.projectionCode);
|
|
2365
2349
|
// Find matching OL feature(s) by id or geometry
|
|
2366
2350
|
const toRemove = olSource.getFeatures().filter((f) => {
|
|
2367
2351
|
return f.getId() === featureOl.getId();
|
|
2368
2352
|
});
|
|
2369
2353
|
if (toRemove.length) {
|
|
2370
2354
|
toRemove.forEach((f) => olSource.removeFeature(f));
|
|
2371
|
-
this.zones = this.zones.filter((z) => z.meta
|
|
2355
|
+
this.zones = this.zones.filter((z) => z.meta?.id !== feature.meta?.id);
|
|
2372
2356
|
}
|
|
2373
2357
|
if (olSource.getFeatures().length === 0) {
|
|
2374
2358
|
this.map.layerController.remove(zoneLayer);
|
|
@@ -2391,8 +2375,11 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2391
2375
|
if (!zoneLayer) {
|
|
2392
2376
|
this.defaultStyle = this.createZoneStyle(features[0]);
|
|
2393
2377
|
this.createZoneLayer(lastZoneIndex + 1, features).subscribe((layer) => {
|
|
2394
|
-
|
|
2395
|
-
|
|
2378
|
+
if (!layer)
|
|
2379
|
+
return;
|
|
2380
|
+
const vectorLayer = layer;
|
|
2381
|
+
this.setActiveZoneLayer(vectorLayer);
|
|
2382
|
+
this.addFeaturesToLayer(vectorLayer, features);
|
|
2396
2383
|
this.cdRef.detectChanges();
|
|
2397
2384
|
});
|
|
2398
2385
|
}
|
|
@@ -2404,11 +2391,11 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2404
2391
|
if (this.type() !== SpatialFilterType.Predefined)
|
|
2405
2392
|
return false;
|
|
2406
2393
|
return this.layers
|
|
2407
|
-
.filter((l) => l.title
|
|
2394
|
+
.filter((l) => l.title?.includes('Zone'))
|
|
2408
2395
|
.some((layer) => {
|
|
2409
|
-
const olSource = layer.dataSource
|
|
2396
|
+
const olSource = layer.dataSource?.ol;
|
|
2410
2397
|
const layerFeatures = olSource.getFeatures();
|
|
2411
|
-
return this.zones.every((zone) => layerFeatures.some((feature) => feature.getId() === zone.meta
|
|
2398
|
+
return this.zones.every((zone) => layerFeatures.some((feature) => feature.getId() === zone.meta?.id));
|
|
2412
2399
|
});
|
|
2413
2400
|
}
|
|
2414
2401
|
findLastZoneIndex() {
|
|
@@ -2435,7 +2422,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2435
2422
|
? this.buffer /
|
|
2436
2423
|
Math.cos((Math.PI / 180) * coordinates[1]) /
|
|
2437
2424
|
resolution
|
|
2438
|
-
:
|
|
2425
|
+
: 0,
|
|
2439
2426
|
fill: new olstyle.Fill({ color: 'rgba(200, 200, 20, 0.2)' }),
|
|
2440
2427
|
stroke: new olstyle.Stroke({ width: 1, color: 'orange' })
|
|
2441
2428
|
}),
|
|
@@ -2478,7 +2465,7 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2478
2465
|
const olSource = layer.dataSource.ol;
|
|
2479
2466
|
if (buffer)
|
|
2480
2467
|
olSource.clear();
|
|
2481
|
-
const featuresOl = features.map((f) => featureToOl(f, this.map.
|
|
2468
|
+
const featuresOl = features.map((f) => featureToOl(f, this.map.projectionCode));
|
|
2482
2469
|
const type = this.type();
|
|
2483
2470
|
if (type !== SpatialFilterType.Predefined) {
|
|
2484
2471
|
const customType = type === SpatialFilterType.Point ? 'Cercle' : 'Polygone';
|
|
@@ -2503,6 +2490,8 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2503
2490
|
}
|
|
2504
2491
|
setPointProps(featureOl, projectionCode, radius) {
|
|
2505
2492
|
const olGeometry = featureOl.getGeometry();
|
|
2493
|
+
if (!olGeometry)
|
|
2494
|
+
return;
|
|
2506
2495
|
const [longitude, latitude] = transform(olGeometry.getFlatCoordinates(), projectionCode, 'EPSG:4326');
|
|
2507
2496
|
const props = {
|
|
2508
2497
|
[RADIUS_NAME]: radius,
|
|
@@ -2512,8 +2501,8 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
2512
2501
|
};
|
|
2513
2502
|
Object.entries(props).forEach(([key, value]) => featureOl.set(key, value, true));
|
|
2514
2503
|
}
|
|
2515
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2516
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
2504
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SpatialFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2505
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: SpatialFilterToolComponent, isStandalone: true, selector: "igo-spatial-filter-tool", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, itemType: { classPropertyName: "itemType", publicName: "itemType", isSignal: true, isRequired: false, transformFunction: null }, freehandDrawIsActive: { classPropertyName: "freehandDrawIsActive", publicName: "freehandDrawIsActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { type: "typeChange", itemType: "itemTypeChange", freehandDrawIsActive: "freehandDrawIsActiveChange" }, ngImport: i0, template: "<igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zonesWithBufferChange)=\"onAddZoneWithBuffer($event)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n [zones]=\"zones\"\n (addZone)=\"onAddZone($event)\"\n (removeZone)=\"onRemovedZone($event)\"\n/>\n\n<igo-spatial-filter-item\n [type]=\"type()!\"\n [queryType]=\"queryType\"\n [map]=\"map\"\n [zones]=\"zones\"\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.set($event)\"\n (drawZoneEvent)=\"this.zones = [$event]\"\n (zonesWithBufferChange)=\"onAddZoneWithBuffer($event)\"\n (itemTypeChange)=\"itemType.set($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@if (selectedFeature$ | async; as feature) {\n <igo-feature-details [feature]=\"feature\" />\n}\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", "zones", "layers"], outputs: ["selectedQueryTypeChange", "eventType", "eventQueryType", "bufferChange", "measureUnitChange", "addZone", "removeZone", "zonesWithBufferChange"] }, { kind: "component", type: SpatialFilterItemComponent, selector: "igo-spatial-filter-item", inputs: ["map", "type", "queryType", "zones", "loading", "store", "layers", "allLayers", "thematicLength"], outputs: ["loadingChange", "toggleSearch", "itemTypeChange", "thematicChange", "drawZoneEvent", "bufferEvent", "zonesWithBufferChange", "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: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2517
2506
|
};
|
|
2518
2507
|
SpatialFilterToolComponent = __decorate([
|
|
2519
2508
|
ToolComponent({
|
|
@@ -2525,19 +2514,19 @@ SpatialFilterToolComponent = __decorate([
|
|
|
2525
2514
|
* Spatial Filter Type
|
|
2526
2515
|
*/
|
|
2527
2516
|
], SpatialFilterToolComponent);
|
|
2528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SpatialFilterToolComponent, decorators: [{
|
|
2529
2518
|
type: Component,
|
|
2530
2519
|
args: [{ selector: 'igo-spatial-filter-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2531
2520
|
SpatialFilterTypeComponent,
|
|
2532
2521
|
SpatialFilterItemComponent,
|
|
2533
2522
|
FeatureDetailsComponent,
|
|
2534
2523
|
AsyncPipe
|
|
2535
|
-
], template: "<igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zonesWithBufferChange)=\"onAddZoneWithBuffer($event)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n [zones]=\"zones\"\n (addZone)=\"onAddZone($event)\"\n (removeZone)=\"onRemovedZone($event)\"\n/>\n\n<igo-spatial-filter-item\n [type]=\"type()
|
|
2524
|
+
], template: "<igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zonesWithBufferChange)=\"onAddZoneWithBuffer($event)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n [zones]=\"zones\"\n (addZone)=\"onAddZone($event)\"\n (removeZone)=\"onRemovedZone($event)\"\n/>\n\n<igo-spatial-filter-item\n [type]=\"type()!\"\n [queryType]=\"queryType\"\n [map]=\"map\"\n [zones]=\"zones\"\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.set($event)\"\n (drawZoneEvent)=\"this.zones = [$event]\"\n (zonesWithBufferChange)=\"onAddZoneWithBuffer($event)\"\n (itemTypeChange)=\"itemType.set($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@if (selectedFeature$ | async; as feature) {\n <igo-feature-details [feature]=\"feature\" />\n}\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"] }]
|
|
2536
2525
|
}], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }, { type: i0.Output, args: ["typeChange"] }], itemType: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemType", required: false }] }, { type: i0.Output, args: ["itemTypeChange"] }], freehandDrawIsActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "freehandDrawIsActive", required: false }] }, { type: i0.Output, args: ["freehandDrawIsActiveChange"] }] } });
|
|
2537
2526
|
|
|
2538
2527
|
let TimeFilterToolComponent = class TimeFilterToolComponent {
|
|
2539
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2540
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
2528
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: TimeFilterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2529
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: TimeFilterToolComponent, isStandalone: true, selector: "igo-time-filter-tool", ngImport: i0, template: "<igo-time-filter-list igoTimeFilterListBinding />\n", dependencies: [{ kind: "component", type: TimeFilterListComponent, selector: "igo-time-filter-list", inputs: ["layers"], outputs: ["layersChange"] }, { kind: "directive", type: TimeFilterListBindingDirective, selector: "[igoTimeFilterListBinding]" }] });
|
|
2541
2530
|
};
|
|
2542
2531
|
TimeFilterToolComponent = __decorate([
|
|
2543
2532
|
ToolComponent({
|
|
@@ -2546,7 +2535,7 @@ TimeFilterToolComponent = __decorate([
|
|
|
2546
2535
|
icon: 'history'
|
|
2547
2536
|
})
|
|
2548
2537
|
], TimeFilterToolComponent);
|
|
2549
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: TimeFilterToolComponent, decorators: [{
|
|
2550
2539
|
type: Component,
|
|
2551
2540
|
args: [{ selector: 'igo-time-filter-tool', imports: [TimeFilterListComponent, TimeFilterListBindingDirective], template: "<igo-time-filter-list igoTimeFilterListBinding />\n" }]
|
|
2552
2541
|
}] });
|
|
@@ -2561,8 +2550,8 @@ class IgoAppFilterModule {
|
|
|
2561
2550
|
providers: []
|
|
2562
2551
|
};
|
|
2563
2552
|
}
|
|
2564
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2565
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
2553
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2554
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppFilterModule, imports: [OgcFilterToolComponent,
|
|
2566
2555
|
ActiveOgcFilterToolComponent,
|
|
2567
2556
|
TimeFilterToolComponent,
|
|
2568
2557
|
ActiveTimeFilterToolComponent,
|
|
@@ -2571,13 +2560,13 @@ class IgoAppFilterModule {
|
|
|
2571
2560
|
TimeFilterToolComponent,
|
|
2572
2561
|
ActiveTimeFilterToolComponent,
|
|
2573
2562
|
SpatialFilterToolComponent] });
|
|
2574
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
2563
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppFilterModule, imports: [OgcFilterToolComponent,
|
|
2575
2564
|
ActiveOgcFilterToolComponent,
|
|
2576
2565
|
TimeFilterToolComponent,
|
|
2577
2566
|
ActiveTimeFilterToolComponent,
|
|
2578
2567
|
SpatialFilterToolComponent] });
|
|
2579
2568
|
}
|
|
2580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2569
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppFilterModule, decorators: [{
|
|
2581
2570
|
type: NgModule,
|
|
2582
2571
|
args: [{
|
|
2583
2572
|
imports: [
|
|
@@ -2606,7 +2595,7 @@ let DataIssueReporterToolComponent = class DataIssueReporterToolComponent {
|
|
|
2606
2595
|
/**
|
|
2607
2596
|
* Url to report the data issue. Use the Post protocol to send the form.
|
|
2608
2597
|
*/
|
|
2609
|
-
url = input(
|
|
2598
|
+
url = input(...(ngDevMode ? [undefined, { debugName: "url" }] : /* istanbul ignore next */ []));
|
|
2610
2599
|
/**
|
|
2611
2600
|
* Map to link to the form
|
|
2612
2601
|
* @internal
|
|
@@ -2714,10 +2703,10 @@ let DataIssueReporterToolComponent = class DataIssueReporterToolComponent {
|
|
|
2714
2703
|
});
|
|
2715
2704
|
}
|
|
2716
2705
|
ngOnDestroy() {
|
|
2717
|
-
this.valueChanges
|
|
2706
|
+
this.valueChanges$$?.unsubscribe();
|
|
2718
2707
|
}
|
|
2719
2708
|
clearForm() {
|
|
2720
|
-
this.form$.value
|
|
2709
|
+
this.form$.value?.control.reset();
|
|
2721
2710
|
}
|
|
2722
2711
|
onSubmit(data) {
|
|
2723
2712
|
const submitTitle = 'igo.integration.dataIssueReporterTool.submit.title';
|
|
@@ -2733,8 +2722,8 @@ let DataIssueReporterToolComponent = class DataIssueReporterToolComponent {
|
|
|
2733
2722
|
this.clearForm();
|
|
2734
2723
|
}
|
|
2735
2724
|
}
|
|
2736
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2737
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
2725
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DataIssueReporterToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2726
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: DataIssueReporterToolComponent, isStandalone: false, selector: "igo-issue-reporter-tool", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (form$ | async; as form) {\n <igo-form\n [form]=\"form\"\n [formData]=\"(data$ | async)!\"\n (submitForm)=\"onSubmit($any($event))\"\n >\n @if (form.fields.length) {\n <div class=\"form-container\">\n @for (field of form.fields; track field) {\n <igo-form-field [field]=\"field\" />\n }\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 matButton=\"filled\"\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}\n", styles: [":host .actions-container{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}:host .form-container{width:100%;padding:10px}:host .form-container igo-form-field{display:block;height:auto}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.FormFieldComponent, selector: "igo-form-field", inputs: ["field"] }, { kind: "component", type: i2$1.FormComponent, selector: "igo-form", inputs: ["form", "formData", "autocomplete"], outputs: ["submitForm"] }, { kind: "pipe", type: i3$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
2738
2727
|
};
|
|
2739
2728
|
DataIssueReporterToolComponent = __decorate([
|
|
2740
2729
|
ToolComponent({
|
|
@@ -2743,34 +2732,20 @@ DataIssueReporterToolComponent = __decorate([
|
|
|
2743
2732
|
icon: 'feedback'
|
|
2744
2733
|
})
|
|
2745
2734
|
], DataIssueReporterToolComponent);
|
|
2746
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2735
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: DataIssueReporterToolComponent, decorators: [{
|
|
2747
2736
|
type: Component,
|
|
2748
|
-
args: [{ selector: 'igo-issue-reporter-tool', standalone: false, template: "@if (form$ | async; as form) {\n <igo-form\n [form]=\"form\"\n [formData]=\"data$ | async
|
|
2737
|
+
args: [{ selector: 'igo-issue-reporter-tool', standalone: false, template: "@if (form$ | async; as form) {\n <igo-form\n [form]=\"form\"\n [formData]=\"(data$ | async)!\"\n (submitForm)=\"onSubmit($any($event))\"\n >\n @if (form.fields.length) {\n <div class=\"form-container\">\n @for (field of form.fields; track field) {\n <igo-form-field [field]=\"field\" />\n }\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 matButton=\"filled\"\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}\n", styles: [":host .actions-container{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}:host .form-container{width:100%;padding:10px}:host .form-container igo-form-field{display:block;height:auto}\n"] }]
|
|
2749
2738
|
}], propDecorators: { url: [{ type: i0.Input, args: [{ isSignal: true, alias: "url", required: false }] }] } });
|
|
2750
2739
|
|
|
2751
2740
|
class IgoAppGeometryFormModule {
|
|
2752
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2753
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
2754
|
-
|
|
2755
|
-
IgoLanguageModule,
|
|
2756
|
-
IgoFormModule,
|
|
2757
|
-
IgoMessageModule], exports: [DataIssueReporterToolComponent] });
|
|
2758
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoAppGeometryFormModule, imports: [CommonModule,
|
|
2759
|
-
MatButtonModule,
|
|
2760
|
-
IgoLanguageModule,
|
|
2761
|
-
IgoFormModule,
|
|
2762
|
-
IgoMessageModule] });
|
|
2741
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppGeometryFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2742
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppGeometryFormModule, declarations: [DataIssueReporterToolComponent], imports: [CommonModule, MatButtonModule, IgoLanguageModule, IgoFormModule], exports: [DataIssueReporterToolComponent] });
|
|
2743
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppGeometryFormModule, imports: [CommonModule, MatButtonModule, IgoLanguageModule, IgoFormModule] });
|
|
2763
2744
|
}
|
|
2764
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2745
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppGeometryFormModule, decorators: [{
|
|
2765
2746
|
type: NgModule,
|
|
2766
2747
|
args: [{
|
|
2767
|
-
imports: [
|
|
2768
|
-
CommonModule,
|
|
2769
|
-
MatButtonModule,
|
|
2770
|
-
IgoLanguageModule,
|
|
2771
|
-
IgoFormModule,
|
|
2772
|
-
IgoMessageModule
|
|
2773
|
-
],
|
|
2748
|
+
imports: [CommonModule, MatButtonModule, IgoLanguageModule, IgoFormModule],
|
|
2774
2749
|
declarations: [DataIssueReporterToolComponent],
|
|
2775
2750
|
exports: [DataIssueReporterToolComponent],
|
|
2776
2751
|
schemas: []
|
|
@@ -2782,7 +2757,7 @@ let ImportExportToolComponent = class ImportExportToolComponent {
|
|
|
2782
2757
|
importExportState = inject(ImportExportState);
|
|
2783
2758
|
workspaceState = inject(WorkspaceState);
|
|
2784
2759
|
contextState = inject(ContextState);
|
|
2785
|
-
projectionsLimitations = input(
|
|
2760
|
+
projectionsLimitations = input(...(ngDevMode ? [undefined, { debugName: "projectionsLimitations" }] : /* istanbul ignore next */ []));
|
|
2786
2761
|
selectFirstProj = input(false, ...(ngDevMode ? [{ debugName: "selectFirstProj" }] : /* istanbul ignore next */ []));
|
|
2787
2762
|
/**
|
|
2788
2763
|
* Map to measure on
|
|
@@ -2831,8 +2806,8 @@ let ImportExportToolComponent = class ImportExportToolComponent {
|
|
|
2831
2806
|
importExportTypeChange(event) {
|
|
2832
2807
|
this.importExportType.set(event.value);
|
|
2833
2808
|
}
|
|
2834
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2835
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
2809
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ImportExportToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2810
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: ImportExportToolComponent, isStandalone: true, selector: "igo-import-export-tool", inputs: { projectionsLimitations: { classPropertyName: "projectionsLimitations", publicName: "projectionsLimitations", isSignal: true, isRequired: false, transformFunction: null }, selectFirstProj: { classPropertyName: "selectFirstProj", publicName: "selectFirstProj", isSignal: true, isRequired: false, transformFunction: null }, importExportType: { classPropertyName: "importExportType", publicName: "importExportType", isSignal: true, isRequired: false, transformFunction: null }, importExportShowBothType: { classPropertyName: "importExportShowBothType", publicName: "importExportShowBothType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { importExportType: "importExportTypeChange" }, ngImport: i0, template: "@if (importExportShowBothType()) {\n <mat-tab-group>\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 </mat-tab>\n <mat-tab\n [label]=\"\n 'igo.integration.importExportTool.importExportContext' | translate\n \"\n >\n <igo-context-import-export [map]=\"map\" />\n </mat-tab>\n </mat-tab-group>\n}\n\n@if (!importExportShowBothType() && importExportType() === 'layer') {\n <igo-import-export\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}\n\n@if (!importExportShowBothType() && importExportType() === 'context') {\n <igo-context-import-export [map]=\"map\" />\n}\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i1$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i1$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-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: ["selectedModeChange", "selectMode", "exportOptionsChange"] }, { kind: "component", type: ContextImportExportComponent, selector: "igo-context-import-export", inputs: ["map"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2836
2811
|
};
|
|
2837
2812
|
ImportExportToolComponent = __decorate([
|
|
2838
2813
|
ToolComponent({
|
|
@@ -2841,7 +2816,7 @@ ImportExportToolComponent = __decorate([
|
|
|
2841
2816
|
icon: 'file_save'
|
|
2842
2817
|
})
|
|
2843
2818
|
], ImportExportToolComponent);
|
|
2844
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2819
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ImportExportToolComponent, decorators: [{
|
|
2845
2820
|
type: Component,
|
|
2846
2821
|
args: [{ selector: 'igo-import-export-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2847
2822
|
MatTabsModule,
|
|
@@ -2849,7 +2824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
2849
2824
|
ContextImportExportComponent,
|
|
2850
2825
|
AsyncPipe,
|
|
2851
2826
|
IgoLanguageModule
|
|
2852
|
-
], template: "@if (importExportShowBothType()) {\n <mat-tab-group>\n <mat-tab\n [label]=\"'igo.integration.importExportTool.importExportData' | translate\"\n >\n <igo-import-export\n [contextUri]=\"(contextState.context$ | async)
|
|
2827
|
+
], template: "@if (importExportShowBothType()) {\n <mat-tab-group>\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 </mat-tab>\n <mat-tab\n [label]=\"\n 'igo.integration.importExportTool.importExportContext' | translate\n \"\n >\n <igo-context-import-export [map]=\"map\" />\n </mat-tab>\n </mat-tab-group>\n}\n\n@if (!importExportShowBothType() && importExportType() === 'layer') {\n <igo-import-export\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}\n\n@if (!importExportShowBothType() && importExportType() === 'context') {\n <igo-context-import-export [map]=\"map\" />\n}\n", styles: ["mat-form-field{width:100%}\n"] }]
|
|
2853
2828
|
}], propDecorators: { projectionsLimitations: [{ type: i0.Input, args: [{ isSignal: true, alias: "projectionsLimitations", required: false }] }], selectFirstProj: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectFirstProj", required: false }] }], importExportType: [{ type: i0.Input, args: [{ isSignal: true, alias: "importExportType", required: false }] }, { type: i0.Output, args: ["importExportTypeChange"] }], importExportShowBothType: [{ type: i0.Input, args: [{ isSignal: true, alias: "importExportShowBothType", required: false }] }] } });
|
|
2854
2829
|
|
|
2855
2830
|
/**
|
|
@@ -2862,11 +2837,11 @@ class IgoAppImportExportModule {
|
|
|
2862
2837
|
providers: []
|
|
2863
2838
|
};
|
|
2864
2839
|
}
|
|
2865
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
2866
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
2867
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
2840
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppImportExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2841
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppImportExportModule, imports: [ImportExportToolComponent], exports: [ImportExportToolComponent] });
|
|
2842
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppImportExportModule, imports: [ImportExportToolComponent] });
|
|
2868
2843
|
}
|
|
2869
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2844
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppImportExportModule, decorators: [{
|
|
2870
2845
|
type: NgModule,
|
|
2871
2846
|
args: [{
|
|
2872
2847
|
imports: [ImportExportToolComponent],
|
|
@@ -2895,10 +2870,13 @@ class AdvancedCoordinatesComponent {
|
|
|
2895
2870
|
inLambert2 = { 32198: true, 3798: true };
|
|
2896
2871
|
mapState$$;
|
|
2897
2872
|
formStatus$$;
|
|
2898
|
-
|
|
2899
|
-
projectionsConstraints;
|
|
2873
|
+
projectionsLimitations = input({}, { ...(ngDevMode ? { debugName: "projectionsLimitations" } : /* istanbul ignore next */ {}), transform: (value) => value ?? {} });
|
|
2900
2874
|
defaultProj;
|
|
2901
|
-
currentZones = {
|
|
2875
|
+
currentZones = {
|
|
2876
|
+
utm: undefined,
|
|
2877
|
+
mtm: undefined
|
|
2878
|
+
};
|
|
2879
|
+
projectionsConstraints;
|
|
2902
2880
|
units = true;
|
|
2903
2881
|
get map() {
|
|
2904
2882
|
return this.mapState.map;
|
|
@@ -2909,12 +2887,6 @@ class AdvancedCoordinatesComponent {
|
|
|
2909
2887
|
set inputProj(value) {
|
|
2910
2888
|
this.form.patchValue({ inputProj: value });
|
|
2911
2889
|
}
|
|
2912
|
-
get projectionsLimitations() {
|
|
2913
|
-
return this._projectionsLimitations || {};
|
|
2914
|
-
}
|
|
2915
|
-
set projectionsLimitations(value) {
|
|
2916
|
-
this._projectionsLimitations = value;
|
|
2917
|
-
}
|
|
2918
2890
|
constructor() {
|
|
2919
2891
|
this.defaultProj = {
|
|
2920
2892
|
translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),
|
|
@@ -3068,7 +3040,7 @@ class AdvancedCoordinatesComponent {
|
|
|
3068
3040
|
* Create a list of currents projections
|
|
3069
3041
|
*/
|
|
3070
3042
|
computeProjections() {
|
|
3071
|
-
this.projectionsConstraints = computeProjectionsConstraints(this.projectionsLimitations);
|
|
3043
|
+
this.projectionsConstraints = computeProjectionsConstraints(this.projectionsLimitations());
|
|
3072
3044
|
const projections = [];
|
|
3073
3045
|
if (!this.currentCenterDefaultProj) {
|
|
3074
3046
|
this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);
|
|
@@ -3153,7 +3125,7 @@ class AdvancedCoordinatesComponent {
|
|
|
3153
3125
|
* @param projections Array of the InputProjections
|
|
3154
3126
|
*/
|
|
3155
3127
|
pushMtm(projections) {
|
|
3156
|
-
if (this.projectionsConstraints
|
|
3128
|
+
if (this.projectionsConstraints?.mtm) {
|
|
3157
3129
|
const zone = zoneMtm(this.currentCenterDefaultProj[0]);
|
|
3158
3130
|
const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;
|
|
3159
3131
|
projections.splice(3, 0, {
|
|
@@ -3230,13 +3202,20 @@ class AdvancedCoordinatesComponent {
|
|
|
3230
3202
|
lambertProjections.forEach((projection) => {
|
|
3231
3203
|
let modifiedProj = this.projections$.value;
|
|
3232
3204
|
const extent = projection.extent;
|
|
3233
|
-
const
|
|
3234
|
-
const
|
|
3205
|
+
const codeMatch = projection.code.match(/\d+/);
|
|
3206
|
+
const code = codeMatch?.[0];
|
|
3207
|
+
if (!extent ||
|
|
3208
|
+
!olproj.get(projection.code) ||
|
|
3209
|
+
!olproj.get(this.defaultProj.code)) {
|
|
3210
|
+
return;
|
|
3211
|
+
}
|
|
3212
|
+
const currentExtentWGS = olproj.transformExtent(extent, projection.code, this.defaultProj.code);
|
|
3235
3213
|
if (coordinates[0] < currentExtentWGS[0] ||
|
|
3236
3214
|
coordinates[0] > currentExtentWGS[2] ||
|
|
3237
3215
|
coordinates[1] < currentExtentWGS[1] ||
|
|
3238
3216
|
coordinates[1] > currentExtentWGS[3]) {
|
|
3239
|
-
|
|
3217
|
+
if (code)
|
|
3218
|
+
this.inLambert2[code] = false;
|
|
3240
3219
|
if (this.inputProj.alias === projection.alias) {
|
|
3241
3220
|
this.inputProj = this.projections$.value[0];
|
|
3242
3221
|
}
|
|
@@ -3244,17 +3223,17 @@ class AdvancedCoordinatesComponent {
|
|
|
3244
3223
|
this.projections$.next(modifiedProj);
|
|
3245
3224
|
}
|
|
3246
3225
|
else {
|
|
3247
|
-
if (!this.inLambert2[code]) {
|
|
3226
|
+
if (code && !this.inLambert2[code]) {
|
|
3248
3227
|
this.projections$.next(modifiedProj.concat(projection));
|
|
3249
3228
|
this.inLambert2[code] = true;
|
|
3250
3229
|
}
|
|
3251
3230
|
}
|
|
3252
3231
|
});
|
|
3253
3232
|
}
|
|
3254
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3255
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
3233
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AdvancedCoordinatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3234
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: AdvancedCoordinatesComponent, isStandalone: true, selector: "igo-advanced-coordinates", inputs: { projectionsLimitations: { classPropertyName: "projectionsLimitations", publicName: "projectionsLimitations", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"advanced-coordinates__coordinates-container\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n @if (units) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon'\n | 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 } @else {\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 }\n\n @if (units) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat'\n | 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 } @else {\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 }\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 @for (projection of projections$ | async; track projection) {\n <mat-option\n matTooltipShowDelay=\"500\"\n [value]=\"projection\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ projection.translatedValue || projection.alias }}\n </mat-option>\n }\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\"\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\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate\n }}\n {{ map.viewController.getZoom() }}\n </p>\n <p class=\"igo-zoom\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate\n }}\n {{ formattedScale$ | async }}\n </p>\n <p class=\"igo-zoom\">\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: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i7.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: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
3256
3235
|
}
|
|
3257
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AdvancedCoordinatesComponent, decorators: [{
|
|
3258
3237
|
type: Component,
|
|
3259
3238
|
args: [{ selector: 'igo-advanced-coordinates', imports: [
|
|
3260
3239
|
MatFormFieldModule,
|
|
@@ -3270,9 +3249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
3270
3249
|
DecimalPipe,
|
|
3271
3250
|
IgoLanguageModule
|
|
3272
3251
|
], template: "<div class=\"advanced-coordinates__coordinates-container\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n @if (units) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lon'\n | 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 } @else {\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 }\n\n @if (units) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{\n 'igo.integration.advanced-map-tool.advanced-coordinates.lat'\n | 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 } @else {\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 }\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 @for (projection of projections$ | async; track projection) {\n <mat-option\n matTooltipShowDelay=\"500\"\n [value]=\"projection\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ projection.translatedValue || projection.alias }}\n </mat-option>\n }\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\"\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\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate\n }}\n {{ map.viewController.getZoom() }}\n </p>\n <p class=\"igo-zoom\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate\n }}\n {{ formattedScale$ | async }}\n </p>\n <p class=\"igo-zoom\">\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"] }]
|
|
3273
|
-
}], ctorParameters: () => [], propDecorators: { projectionsLimitations: [{
|
|
3274
|
-
type: Input
|
|
3275
|
-
}] } });
|
|
3252
|
+
}], ctorParameters: () => [], propDecorators: { projectionsLimitations: [{ type: i0.Input, args: [{ isSignal: true, alias: "projectionsLimitations", required: false }] }] } });
|
|
3276
3253
|
|
|
3277
3254
|
class AdvancedSwipeComponent {
|
|
3278
3255
|
mapState = inject(MapState);
|
|
@@ -3338,22 +3315,22 @@ class AdvancedSwipeComponent {
|
|
|
3338
3315
|
applyNewLayers(e) {
|
|
3339
3316
|
this.startSwipe(false); // l'approche KISS
|
|
3340
3317
|
this.startSwipe(true);
|
|
3341
|
-
if (e.
|
|
3342
|
-
e.
|
|
3318
|
+
if (e.selected) {
|
|
3319
|
+
e.select(false);
|
|
3343
3320
|
}
|
|
3344
3321
|
const allLayers = this.userControlledLayerList?.length;
|
|
3345
3322
|
const selectedLayers = this.form.controls.layers.value.length;
|
|
3346
3323
|
if (selectedLayers === allLayers) {
|
|
3347
|
-
e.
|
|
3324
|
+
e.select(true);
|
|
3348
3325
|
}
|
|
3349
3326
|
}
|
|
3350
3327
|
/**
|
|
3351
3328
|
* Select all list of layers and restart a tool
|
|
3352
3329
|
*/
|
|
3353
3330
|
selectAll(e) {
|
|
3354
|
-
if (e.
|
|
3331
|
+
if (e.selected) {
|
|
3355
3332
|
this.form.controls.layers.setValue(this.userControlledLayerList);
|
|
3356
|
-
e.
|
|
3333
|
+
e.select(true);
|
|
3357
3334
|
}
|
|
3358
3335
|
else {
|
|
3359
3336
|
this.form.controls.layers.setValue([]);
|
|
@@ -3379,10 +3356,10 @@ class AdvancedSwipeComponent {
|
|
|
3379
3356
|
contextEmit() {
|
|
3380
3357
|
this.toolState.toolbox.activateTool('contextManager');
|
|
3381
3358
|
}
|
|
3382
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3383
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
3359
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AdvancedSwipeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3360
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: AdvancedSwipeComponent, isStandalone: true, selector: "igo-advanced-swipe", ngImport: i0, template: "@if (userControlledLayerList?.length) {\n <div class=\"igo-swipe-select-container\">\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 />\n @for (layer of userControlledLayerList; track layer) {\n <mat-option [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{\n layer.title\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-slide-toggle\n class=\"swipe-toggle\"\n [checked]=\"swipe\"\n [labelPosition]=\"'before'\"\n (change)=\"startSwipe($event.checked)\"\n >\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate\n }}\n </mat-slide-toggle>\n </form>\n </div>\n} @else {\n <mat-list>\n <p class=\"map-empty\">\n {{ 'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate }}\n </p>\n <p class=\"map-empty\">\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 matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\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 matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\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 matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{\n 'igo.integration.advanced-map-tool.advanced-swipe.context-tool'\n | translate\n }}\n </span>\n </mat-list-item>\n </mat-list>\n}\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{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: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i4$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i7.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: i1$5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i1$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
3384
3361
|
}
|
|
3385
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AdvancedSwipeComponent, decorators: [{
|
|
3386
3363
|
type: Component,
|
|
3387
3364
|
args: [{ selector: 'igo-advanced-swipe', imports: [
|
|
3388
3365
|
FormsModule,
|
|
@@ -3418,8 +3395,8 @@ let AdvancedMapToolComponent = class AdvancedMapToolComponent {
|
|
|
3418
3395
|
}
|
|
3419
3396
|
this.mapState.map.geolocationController.followPosition = value;
|
|
3420
3397
|
}
|
|
3421
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3422
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
3398
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AdvancedMapToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3399
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", 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 />\n<mat-divider class=\"advanced-tool-line\" />\n<h4 class=\"nameOfTool\">\n {{\n 'igo.integration.advanced-map-tool.advanced-coordinates.coordinates'\n | translate\n }}\n</h4>\n<igo-advanced-coordinates />\n<mat-divider class=\"advanced-tool-line\" />\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;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: i4$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: AdvancedCoordinatesComponent, selector: "igo-advanced-coordinates", inputs: ["projectionsLimitations"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i7.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: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
3423
3400
|
};
|
|
3424
3401
|
AdvancedMapToolComponent = __decorate([
|
|
3425
3402
|
ToolComponent({
|
|
@@ -3431,7 +3408,7 @@ AdvancedMapToolComponent = __decorate([
|
|
|
3431
3408
|
* Tool to handle the advanced map tools
|
|
3432
3409
|
*/
|
|
3433
3410
|
], AdvancedMapToolComponent);
|
|
3434
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AdvancedMapToolComponent, decorators: [{
|
|
3435
3412
|
type: Component,
|
|
3436
3413
|
args: [{ selector: 'igo-advanced-map-tool', imports: [
|
|
3437
3414
|
AdvancedSwipeComponent,
|
|
@@ -3445,54 +3422,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
3445
3422
|
|
|
3446
3423
|
class WorkspaceButtonComponent {
|
|
3447
3424
|
workspaceState = inject(WorkspaceState);
|
|
3448
|
-
|
|
3449
|
-
hasWorkspace
|
|
3450
|
-
layer
|
|
3451
|
-
|
|
3452
|
-
this._layer = value;
|
|
3453
|
-
this.layer$.next(this._layer);
|
|
3454
|
-
}
|
|
3455
|
-
get layer() {
|
|
3456
|
-
return this._layer;
|
|
3457
|
-
}
|
|
3458
|
-
_layer;
|
|
3425
|
+
destroyRef = inject(DestroyRef);
|
|
3426
|
+
hasWorkspace = signal(false, ...(ngDevMode ? [{ debugName: "hasWorkspace" }] : /* istanbul ignore next */ []));
|
|
3427
|
+
layer = input(...(ngDevMode ? [undefined, { debugName: "layer" }] : /* istanbul ignore next */ []));
|
|
3428
|
+
layer$ = toObservable(this.layer);
|
|
3459
3429
|
color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
3460
3430
|
ngOnInit() {
|
|
3461
|
-
this.
|
|
3462
|
-
this.
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3431
|
+
combineLatest([this.workspaceState.workspaceEnabled$, this.layer$])
|
|
3432
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
3433
|
+
.subscribe(([enabled, layer]) => {
|
|
3434
|
+
const withWorkspace = enabled &&
|
|
3435
|
+
!!layer &&
|
|
3436
|
+
isLayerItem(layer) &&
|
|
3437
|
+
(layer.options.workspace?.enabled ?? false);
|
|
3438
|
+
this.hasWorkspace.set(withWorkspace);
|
|
3439
|
+
});
|
|
3468
3440
|
}
|
|
3469
3441
|
activateWorkspace() {
|
|
3442
|
+
const layer = this.layer();
|
|
3470
3443
|
if (this.workspaceState.workspace$.value &&
|
|
3471
|
-
|
|
3472
|
-
|
|
3444
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3445
|
+
this.workspaceState.workspace$.value.layer.id === layer?.id &&
|
|
3473
3446
|
this.workspaceState.expanded()) {
|
|
3474
3447
|
this.workspaceState.expanded.set(false);
|
|
3475
3448
|
}
|
|
3476
3449
|
else {
|
|
3477
3450
|
this.workspaceState.expanded.set(true);
|
|
3478
|
-
|
|
3451
|
+
if (layer?.id) {
|
|
3452
|
+
this.workspaceState.setActiveWorkspaceById(layer.id);
|
|
3453
|
+
}
|
|
3479
3454
|
}
|
|
3480
3455
|
}
|
|
3481
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3482
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
3456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WorkspaceButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3457
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: WorkspaceButtonComponent, isStandalone: true, selector: "igo-workspace-button", inputs: { layer: { classPropertyName: "layer", publicName: "layer", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasWorkspace()) {\n <button\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}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3483
3458
|
}
|
|
3484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: WorkspaceButtonComponent, decorators: [{
|
|
3485
3460
|
type: Component,
|
|
3486
|
-
args: [{ selector: 'igo-workspace-button', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
3487
|
-
|
|
3488
|
-
MatTooltipModule,
|
|
3489
|
-
MatIconModule,
|
|
3490
|
-
AsyncPipe,
|
|
3491
|
-
IgoLanguageModule
|
|
3492
|
-
], template: "@if (hasWorkspace$ | async) {\n <button\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}\n" }]
|
|
3493
|
-
}], propDecorators: { layer: [{
|
|
3494
|
-
type: Input
|
|
3495
|
-
}], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
3461
|
+
args: [{ selector: 'igo-workspace-button', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatButtonModule, MatTooltipModule, MatIconModule, IgoLanguageModule], template: "@if (hasWorkspace()) {\n <button\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}\n" }]
|
|
3462
|
+
}], propDecorators: { layer: [{ type: i0.Input, args: [{ isSignal: true, alias: "layer", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
3496
3463
|
|
|
3497
3464
|
let MapDetailsToolComponent = class MapDetailsToolComponent {
|
|
3498
3465
|
mapState = inject(MapState);
|
|
@@ -3502,7 +3469,7 @@ let MapDetailsToolComponent = class MapDetailsToolComponent {
|
|
|
3502
3469
|
configService = inject(ConfigService);
|
|
3503
3470
|
mediaService = inject(MediaService);
|
|
3504
3471
|
cdr = inject(ChangeDetectorRef);
|
|
3505
|
-
isDesktop;
|
|
3472
|
+
isDesktop = false;
|
|
3506
3473
|
delayedShowEmptyMapContent = false;
|
|
3507
3474
|
toggleLegendOnVisibilityChange = input(false, ...(ngDevMode ? [{ debugName: "toggleLegendOnVisibilityChange" }] : /* istanbul ignore next */ []));
|
|
3508
3475
|
expandLegendOfVisibleLayers = input(false, ...(ngDevMode ? [{ debugName: "expandLegendOfVisibleLayers" }] : /* istanbul ignore next */ []));
|
|
@@ -3601,8 +3568,8 @@ let MapDetailsToolComponent = class MapDetailsToolComponent {
|
|
|
3601
3568
|
this.cdr.detectChanges();
|
|
3602
3569
|
});
|
|
3603
3570
|
}
|
|
3604
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3605
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
3571
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapDetailsToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3572
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: MapDetailsToolComponent, isStandalone: true, selector: "igo-map-details-tool", inputs: { toggleLegendOnVisibilityChange: { classPropertyName: "toggleLegendOnVisibilityChange", publicName: "toggleLegendOnVisibilityChange", isSignal: true, isRequired: false, transformFunction: null }, expandLegendOfVisibleLayers: { classPropertyName: "expandLegendOfVisibleLayers", publicName: "expandLegendOfVisibleLayers", isSignal: true, isRequired: false, transformFunction: null }, updateLegendOnResolutionChange: { classPropertyName: "updateLegendOnResolutionChange", publicName: "updateLegendOnResolutionChange", isSignal: true, isRequired: false, transformFunction: null }, ogcButton: { classPropertyName: "ogcButton", publicName: "ogcButton", isSignal: true, isRequired: false, transformFunction: null }, timeButton: { classPropertyName: "timeButton", publicName: "timeButton", isSignal: true, isRequired: false, transformFunction: null }, layerListControls: { classPropertyName: "layerListControls", publicName: "layerListControls", isSignal: true, isRequired: false, transformFunction: null }, queryBadge: { classPropertyName: "queryBadge", publicName: "queryBadge", isSignal: true, isRequired: false, transformFunction: null }, layerAdditionAllowed: { classPropertyName: "layerAdditionAllowed", publicName: "layerAdditionAllowed", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if ((layers$ | async)?.length) {\n <igo-layer-viewer\n class=\"mapDetailsList\"\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\" />\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\" />\n <igo-ogc-filter-button [header]=\"ogcButton()\" [layer]=\"layer\" />\n <igo-time-filter-button [header]=\"timeButton()\" [layer]=\"layer\" />\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\" />\n <igo-metadata-button [layer]=\"layer\" />\n </ng-template>\n </igo-layer-viewer>\n} @else {\n @if (delayedShowEmptyMapContent) {\n <mat-list>\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\n}\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: "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", "color", "header"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"], outputs: ["trackFeatureChange"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1$5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i1$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
3606
3573
|
};
|
|
3607
3574
|
MapDetailsToolComponent = __decorate([
|
|
3608
3575
|
ToolComponent({
|
|
@@ -3612,7 +3579,7 @@ MapDetailsToolComponent = __decorate([
|
|
|
3612
3579
|
}),
|
|
3613
3580
|
__metadata("design:paramtypes", [])
|
|
3614
3581
|
], MapDetailsToolComponent);
|
|
3615
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapDetailsToolComponent, decorators: [{
|
|
3616
3583
|
type: Component,
|
|
3617
3584
|
args: [{ selector: 'igo-map-details-tool', imports: [
|
|
3618
3585
|
LayerViewerComponent,
|
|
@@ -3626,7 +3593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
3626
3593
|
MatIconModule,
|
|
3627
3594
|
AsyncPipe,
|
|
3628
3595
|
IgoLanguageModule
|
|
3629
|
-
], template: "@if ((layers$ | async)
|
|
3596
|
+
], template: "@if ((layers$ | async)?.length) {\n <igo-layer-viewer\n class=\"mapDetailsList\"\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\" />\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\" />\n <igo-ogc-filter-button [header]=\"ogcButton()\" [layer]=\"layer\" />\n <igo-time-filter-button [header]=\"timeButton()\" [layer]=\"layer\" />\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\" />\n <igo-metadata-button [layer]=\"layer\" />\n </ng-template>\n </igo-layer-viewer>\n} @else {\n @if (delayedShowEmptyMapContent) {\n <mat-list>\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\n}\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"] }]
|
|
3630
3597
|
}], ctorParameters: () => [], propDecorators: { toggleLegendOnVisibilityChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLegendOnVisibilityChange", required: false }] }], expandLegendOfVisibleLayers: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandLegendOfVisibleLayers", required: false }] }], updateLegendOnResolutionChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "updateLegendOnResolutionChange", required: false }] }], ogcButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "ogcButton", required: false }] }], timeButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeButton", required: false }] }], layerListControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "layerListControls", required: false }] }], queryBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryBadge", required: false }] }], layerAdditionAllowed: [{ type: i0.Input, args: [{ isSignal: true, alias: "layerAdditionAllowed", required: false }] }] } });
|
|
3631
3598
|
|
|
3632
3599
|
let MapLegendToolComponent = class MapLegendToolComponent {
|
|
@@ -3717,10 +3684,8 @@ let MapLegendToolComponent = class MapLegendToolComponent {
|
|
|
3717
3684
|
return true;
|
|
3718
3685
|
}
|
|
3719
3686
|
ngOnDestroy() {
|
|
3720
|
-
this.resolution
|
|
3721
|
-
|
|
3722
|
-
this.visibleOrInRangeLayers$$.unsubscribe();
|
|
3723
|
-
}
|
|
3687
|
+
this.resolution$$?.unsubscribe();
|
|
3688
|
+
this.visibleOrInRangeLayers$$?.unsubscribe();
|
|
3724
3689
|
}
|
|
3725
3690
|
searchEmit() {
|
|
3726
3691
|
this.toolState.toolbox.activateTool('searchResults');
|
|
@@ -3731,8 +3696,8 @@ let MapLegendToolComponent = class MapLegendToolComponent {
|
|
|
3731
3696
|
contextEmit() {
|
|
3732
3697
|
this.toolState.toolbox.activateTool('contextManager');
|
|
3733
3698
|
}
|
|
3734
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3735
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
3699
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapLegendToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3700
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: MapLegendToolComponent, isStandalone: true, selector: "igo-map-legend-tool", inputs: { updateLegendOnResolutionChange: { classPropertyName: "updateLegendOnResolutionChange", publicName: "updateLegendOnResolutionChange", isSignal: true, isRequired: false, transformFunction: null }, layerAdditionAllowed: { classPropertyName: "layerAdditionAllowed", publicName: "layerAdditionAllowed", isSignal: true, isRequired: false, transformFunction: null }, allowShowAllLegends: { classPropertyName: "allowShowAllLegends", publicName: "allowShowAllLegends", isSignal: true, isRequired: false, transformFunction: null }, showAllLegendsValue: { classPropertyName: "showAllLegendsValue", publicName: "showAllLegendsValue", isSignal: true, isRequired: false, transformFunction: null }, layerListControls: { classPropertyName: "layerListControls", publicName: "layerListControls", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (showAllLegend()) {\n <igo-layer-legend-list\n igoLayerLegendListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [allowShowAllLegends]=\"allowShowAllLegends()\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange()\"\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)!\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n />\n}\n@if ((layers$ | async)?.length !== 0) {\n} @else {\n @if (delayedShowEmptyMapContent) {\n <mat-list>\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\n}\n\n@if (\n !allowShowAllLegends() &&\n (layers$ | async)?.length !== 0 &&\n (visibleOrInRangeLayers$ | async)?.length === 0\n) {\n <p class=\"map-empty\">\n {{\n (visibleLayers$ | async)?.length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n}\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: "component", type: LayerLegendListComponent, selector: "igo-layer-legend-list", inputs: ["layers", "excludeBaseLayers", "updateLegendOnResolutionChange", "allowShowAllLegends", "showAllLegendsValue"], outputs: ["layersChange", "showAllLegendsValueChange", "allLegendsShown"] }, { kind: "directive", type: LayerLegendListBindingDirective, selector: "[igoLayerLegendListBinding]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1$5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i1$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
3736
3701
|
};
|
|
3737
3702
|
MapLegendToolComponent = __decorate([
|
|
3738
3703
|
ToolComponent({
|
|
@@ -3741,7 +3706,7 @@ MapLegendToolComponent = __decorate([
|
|
|
3741
3706
|
icon: 'format_list_bulleted'
|
|
3742
3707
|
})
|
|
3743
3708
|
], MapLegendToolComponent);
|
|
3744
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3709
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapLegendToolComponent, decorators: [{
|
|
3745
3710
|
type: Component,
|
|
3746
3711
|
args: [{ selector: 'igo-map-legend-tool', imports: [
|
|
3747
3712
|
LayerLegendListComponent,
|
|
@@ -3750,7 +3715,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
3750
3715
|
MatIconModule,
|
|
3751
3716
|
AsyncPipe,
|
|
3752
3717
|
IgoLanguageModule
|
|
3753
|
-
], template: "@if (showAllLegend()) {\n <igo-layer-legend-list\n igoLayerLegendListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [allowShowAllLegends]=\"allowShowAllLegends()\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange()\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async
|
|
3718
|
+
], template: "@if (showAllLegend()) {\n <igo-layer-legend-list\n igoLayerLegendListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [allowShowAllLegends]=\"allowShowAllLegends()\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange()\"\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)!\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n />\n}\n@if ((layers$ | async)?.length !== 0) {\n} @else {\n @if (delayedShowEmptyMapContent) {\n <mat-list>\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\n}\n\n@if (\n !allowShowAllLegends() &&\n (layers$ | async)?.length !== 0 &&\n (visibleOrInRangeLayers$ | async)?.length === 0\n) {\n <p class=\"map-empty\">\n {{\n (visibleLayers$ | async)?.length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n}\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"] }]
|
|
3754
3719
|
}], propDecorators: { updateLegendOnResolutionChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "updateLegendOnResolutionChange", required: false }] }], layerAdditionAllowed: [{ type: i0.Input, args: [{ isSignal: true, alias: "layerAdditionAllowed", required: false }] }], allowShowAllLegends: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowShowAllLegends", required: false }] }], showAllLegendsValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAllLegendsValue", required: false }] }], layerListControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "layerListControls", required: false }] }] } });
|
|
3755
3720
|
|
|
3756
3721
|
/**
|
|
@@ -3804,14 +3769,14 @@ class MapProximityState {
|
|
|
3804
3769
|
if (!currentPos || !currentPos.position) {
|
|
3805
3770
|
return;
|
|
3806
3771
|
}
|
|
3807
|
-
coord =
|
|
3772
|
+
coord = olproj.transform(currentPos.position, currentPos.projection, this.map.projectionCode);
|
|
3808
3773
|
this.map.mapCenter$.next(false);
|
|
3809
3774
|
}
|
|
3810
3775
|
else {
|
|
3811
3776
|
coord = this.map.viewController.getCenter();
|
|
3812
3777
|
this.map.mapCenter$.next(true);
|
|
3813
3778
|
}
|
|
3814
|
-
const coordLonLat =
|
|
3779
|
+
const coordLonLat = olproj.transform(coord, this.map.projectionCode, 'EPSG:4269');
|
|
3815
3780
|
const roundedCoordLonLat = roundCoordTo(coordLonLat, 6);
|
|
3816
3781
|
this.currentPositionCoordinate$.next(roundedCoordLonLat);
|
|
3817
3782
|
const layersToMonitor = layers.filter((layer) => isLayerItem(layer) &&
|
|
@@ -3825,7 +3790,7 @@ class MapProximityState {
|
|
|
3825
3790
|
const olFeaturesAtCoordinate = layerSource.getFeaturesAtCoordinate(coord);
|
|
3826
3791
|
if (olFeaturesAtCoordinate && olFeaturesAtCoordinate.length) {
|
|
3827
3792
|
olFeaturesAtCoordinate.map((olFeatureAtCoordinate) => {
|
|
3828
|
-
const featureAtThisPosition = featureFromOl(olFeatureAtCoordinate, this.map.
|
|
3793
|
+
const featureAtThisPosition = featureFromOl(olFeatureAtCoordinate, this.map.projectionCode);
|
|
3829
3794
|
const title = this.getQueryTitle(featureAtThisPosition, layerToMonitor);
|
|
3830
3795
|
// todo handle imported layers without querytitle? prompt title or detect first column?
|
|
3831
3796
|
this.addFeatureToStore(layerToMonitor, coord, featureAtThisPosition, title, 0);
|
|
@@ -3836,14 +3801,17 @@ class MapProximityState {
|
|
|
3836
3801
|
const closestOlFeature = layerSource.getClosestFeatureToCoordinate(coord);
|
|
3837
3802
|
if (closestOlFeature) {
|
|
3838
3803
|
const closestOlGeom = closestOlFeature.getGeometry();
|
|
3839
|
-
|
|
3804
|
+
if (!closestOlGeom)
|
|
3805
|
+
return;
|
|
3806
|
+
const closestFeature = featureFromOl(closestOlFeature, this.map.projectionCode);
|
|
3840
3807
|
const geometryClosestPoint = closestOlGeom.getClosestPoint(coord);
|
|
3841
3808
|
const linebetween = new olLineString([
|
|
3842
3809
|
coord,
|
|
3843
3810
|
geometryClosestPoint
|
|
3844
3811
|
]);
|
|
3845
3812
|
const lineLength = measureOlGeometryLength(linebetween, 'EPSG:3857');
|
|
3846
|
-
if (lineLength
|
|
3813
|
+
if (lineLength !== undefined &&
|
|
3814
|
+
lineLength <= proximityRadiusValue) {
|
|
3847
3815
|
const title = this.getQueryTitle(closestFeature, layerToMonitor);
|
|
3848
3816
|
// todo handle imported layers without querytitle? prompt title or detect first column?
|
|
3849
3817
|
this.addFeatureToStore(layerToMonitor, coord, closestFeature, title, lineLength);
|
|
@@ -3897,8 +3865,8 @@ class MapProximityState {
|
|
|
3897
3865
|
getLabelMatch(feature, labelMatch) {
|
|
3898
3866
|
let label = labelMatch;
|
|
3899
3867
|
const labelToGet = Array.from(labelMatch.matchAll(/\$\{([^\{\}]+)\}/g));
|
|
3900
|
-
labelToGet.forEach((
|
|
3901
|
-
label = label.replace(
|
|
3868
|
+
labelToGet.forEach((entry) => {
|
|
3869
|
+
label = label.replace(entry[0], feature.properties[entry[1]]);
|
|
3902
3870
|
});
|
|
3903
3871
|
// Nothing done? check feature's attribute
|
|
3904
3872
|
if (labelToGet.length === 0 && label === labelMatch) {
|
|
@@ -3906,10 +3874,10 @@ class MapProximityState {
|
|
|
3906
3874
|
}
|
|
3907
3875
|
return label;
|
|
3908
3876
|
}
|
|
3909
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
3910
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
3877
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapProximityState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3878
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapProximityState, providedIn: 'root' });
|
|
3911
3879
|
}
|
|
3912
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3880
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapProximityState, decorators: [{
|
|
3913
3881
|
type: Injectable,
|
|
3914
3882
|
args: [{
|
|
3915
3883
|
providedIn: 'root'
|
|
@@ -3933,8 +3901,8 @@ let MapProximityToolComponent = class MapProximityToolComponent {
|
|
|
3933
3901
|
get map() {
|
|
3934
3902
|
return this.mapState.map;
|
|
3935
3903
|
}
|
|
3936
|
-
userDefinedMapCenter;
|
|
3937
|
-
userDefinedFollowPosition;
|
|
3904
|
+
userDefinedMapCenter = false;
|
|
3905
|
+
userDefinedFollowPosition = false;
|
|
3938
3906
|
/**
|
|
3939
3907
|
* Table template
|
|
3940
3908
|
* @internal
|
|
@@ -3951,14 +3919,16 @@ let MapProximityToolComponent = class MapProximityToolComponent {
|
|
|
3951
3919
|
name: 'element',
|
|
3952
3920
|
title: this.languageService.translate.instant('igo.integration.map-proximity-tool.feature'),
|
|
3953
3921
|
valueAccessor: (localFeature) => {
|
|
3954
|
-
|
|
3922
|
+
const feature = localFeature;
|
|
3923
|
+
return feature.properties.element;
|
|
3955
3924
|
}
|
|
3956
3925
|
},
|
|
3957
3926
|
{
|
|
3958
3927
|
name: 'distance',
|
|
3959
3928
|
title: this.languageService.translate.instant('igo.integration.map-proximity-tool.distance'),
|
|
3960
3929
|
valueAccessor: (localFeature) => {
|
|
3961
|
-
|
|
3930
|
+
const feature = localFeature;
|
|
3931
|
+
return `${NumberUtils.roundToNDecimal(feature.properties.distance, 1)}m`;
|
|
3962
3932
|
}
|
|
3963
3933
|
}
|
|
3964
3934
|
]
|
|
@@ -3993,13 +3963,13 @@ let MapProximityToolComponent = class MapProximityToolComponent {
|
|
|
3993
3963
|
* Copy the coordinates to a clipboard
|
|
3994
3964
|
*/
|
|
3995
3965
|
copyTextToClipboard() {
|
|
3996
|
-
const successful = this.clipboard.copy(this.mapProximityState.currentPositionCoordinate$?.value
|
|
3966
|
+
const successful = this.clipboard.copy(this.mapProximityState.currentPositionCoordinate$?.value?.toString() ?? '');
|
|
3997
3967
|
if (successful) {
|
|
3998
3968
|
this.messageService.success('igo.integration.map-proximity-tool.copyMsg', 'igo.integration.map-proximity-tool.copyTitle');
|
|
3999
3969
|
}
|
|
4000
3970
|
}
|
|
4001
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4002
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
3971
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapProximityToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3972
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: MapProximityToolComponent, isStandalone: true, selector: "igo-map-proximity-tool", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, isSignal: true }], ngImport: i0, template: "<igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"$any(mapProximityState.proximityFeatureStore)\"\n [template]=\"tableTemplate\"\n/>\n<br />\n@if (mapProximityState.currentPositionCoordinate$ | async; as coord) {\n <mat-form-field class=\"coordinates\">\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}\n@if (mapProximityState.currentPositionCoordinate$ | async; as coord2) {\n <mat-form-field class=\"coordinates2\">\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\n@if ((mapProximityState.currentPositionCoordinate$ | async)?.length) {\n <button mat-icon-button (click)=\"copyTextToClipboard()\">\n <mat-icon>content_copy</mat-icon>\n </button>\n}\n<div class=\"title-container\">\n <mat-label class=\"title\">{{\n 'igo.integration.map-proximity-tool.method' | translate\n }}</mat-label>\n</div>\n<div class=\"igo-input-container\">\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: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i5.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: i1$4.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: i1$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] });
|
|
4003
3973
|
};
|
|
4004
3974
|
MapProximityToolComponent = __decorate([
|
|
4005
3975
|
ToolComponent({
|
|
@@ -4013,7 +3983,7 @@ MapProximityToolComponent = __decorate([
|
|
|
4013
3983
|
,
|
|
4014
3984
|
__metadata("design:paramtypes", [])
|
|
4015
3985
|
], MapProximityToolComponent);
|
|
4016
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
3986
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapProximityToolComponent, decorators: [{
|
|
4017
3987
|
type: Component,
|
|
4018
3988
|
args: [{ selector: 'igo-map-proximity-tool', imports: [
|
|
4019
3989
|
EntityTableComponent,
|
|
@@ -4025,7 +3995,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
4025
3995
|
FormsModule,
|
|
4026
3996
|
AsyncPipe,
|
|
4027
3997
|
IgoLanguageModule
|
|
4028
|
-
], template: "<igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"mapProximityState.proximityFeatureStore\"\n [template]=\"tableTemplate\"\n/>\n<br />\n@if (mapProximityState.currentPositionCoordinate$ | async; as coord) {\n <mat-form-field class=\"coordinates\">\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}\n@if (mapProximityState.currentPositionCoordinate$ | async; as coord2) {\n <mat-form-field class=\"coordinates2\">\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\n@if (
|
|
3998
|
+
], template: "<igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"$any(mapProximityState.proximityFeatureStore)\"\n [template]=\"tableTemplate\"\n/>\n<br />\n@if (mapProximityState.currentPositionCoordinate$ | async; as coord) {\n <mat-form-field class=\"coordinates\">\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}\n@if (mapProximityState.currentPositionCoordinate$ | async; as coord2) {\n <mat-form-field class=\"coordinates2\">\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\n@if ((mapProximityState.currentPositionCoordinate$ | async)?.length) {\n <button mat-icon-button (click)=\"copyTextToClipboard()\">\n <mat-icon>content_copy</mat-icon>\n </button>\n}\n<div class=\"title-container\">\n <mat-label class=\"title\">{{\n 'igo.integration.map-proximity-tool.method' | translate\n }}</mat-label>\n</div>\n<div class=\"igo-input-container\">\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"] }]
|
|
4029
3999
|
}], ctorParameters: () => [], propDecorators: { table: [{ type: i0.ViewChild, args: ['table', { isSignal: true }] }] } });
|
|
4030
4000
|
|
|
4031
4001
|
/**
|
|
@@ -4105,8 +4075,8 @@ let MapToolComponent = class MapToolComponent {
|
|
|
4105
4075
|
this.cdr.detectChanges();
|
|
4106
4076
|
});
|
|
4107
4077
|
}
|
|
4108
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4109
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
4078
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4079
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.24", type: MapToolComponent, isStandalone: true, selector: "igo-map-tool", inputs: { toggleLegendOnVisibilityChange: { classPropertyName: "toggleLegendOnVisibilityChange", publicName: "toggleLegendOnVisibilityChange", isSignal: true, isRequired: false, transformFunction: null }, expandLegendOfVisibleLayers: { classPropertyName: "expandLegendOfVisibleLayers", publicName: "expandLegendOfVisibleLayers", isSignal: true, isRequired: false, transformFunction: null }, updateLegendOnResolutionChange: { classPropertyName: "updateLegendOnResolutionChange", publicName: "updateLegendOnResolutionChange", isSignal: true, isRequired: false, transformFunction: null }, ogcButton: { classPropertyName: "ogcButton", publicName: "ogcButton", isSignal: true, isRequired: false, transformFunction: null }, timeButton: { classPropertyName: "timeButton", publicName: "timeButton", isSignal: true, isRequired: false, transformFunction: null }, layerListControls: { classPropertyName: "layerListControls", publicName: "layerListControls", isSignal: true, isRequired: false, transformFunction: null }, queryBadge: { classPropertyName: "queryBadge", publicName: "queryBadge", isSignal: true, isRequired: false, transformFunction: null } }, 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\" />\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\" />\n <igo-ogc-filter-button [header]=\"ogcButton()\" [layer]=\"layer\" />\n <igo-time-filter-button [header]=\"timeButton()\" [layer]=\"layer\" />\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\" />\n <igo-metadata-button [layer]=\"layer\" />\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 />\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: i1$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i1$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-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", "color", "header"] }, { kind: "component", type: TrackFeatureButtonComponent, selector: "igo-track-feature-button", inputs: ["layer", "trackFeature"], outputs: ["trackFeatureChange"] }, { 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: ["isDesktop", "contexts", "selectedContext", "map", "defaultContextId", "term"], outputs: ["selectedContextChange", "select", "unselect", "edit", "delete", "save", "clone", "create", "hide", "show", "showHiddenContexts", "favorite", "managePermissions", "manageTools", "filterPermissionsChanged"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4110
4080
|
};
|
|
4111
4081
|
MapToolComponent = __decorate([
|
|
4112
4082
|
ToolComponent({
|
|
@@ -4116,7 +4086,7 @@ MapToolComponent = __decorate([
|
|
|
4116
4086
|
}),
|
|
4117
4087
|
__metadata("design:paramtypes", [])
|
|
4118
4088
|
], MapToolComponent);
|
|
4119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4089
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapToolComponent, decorators: [{
|
|
4120
4090
|
type: Component,
|
|
4121
4091
|
args: [{ selector: 'igo-map-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
4122
4092
|
MatTabsModule,
|
|
@@ -4144,40 +4114,21 @@ let MapToolsComponent = class MapToolsComponent {
|
|
|
4144
4114
|
configService = inject(ConfigService);
|
|
4145
4115
|
mediaService = inject(MediaService);
|
|
4146
4116
|
cdr = inject(ChangeDetectorRef);
|
|
4147
|
-
isDesktop;
|
|
4117
|
+
isDesktop = false;
|
|
4148
4118
|
layers$ = new BehaviorSubject([]);
|
|
4149
4119
|
showAllLegendsValue$ = new BehaviorSubject(false);
|
|
4150
4120
|
resolution$$;
|
|
4151
4121
|
visibleOrInRangeLayers$$;
|
|
4152
|
-
delayedShowEmptyMapContent = false;
|
|
4153
4122
|
allowShowAllLegends = input(false, ...(ngDevMode ? [{ debugName: "allowShowAllLegends" }] : /* istanbul ignore next */ []));
|
|
4154
4123
|
showAllLegendsValue = input(false, ...(ngDevMode ? [{ debugName: "showAllLegendsValue" }] : /* istanbul ignore next */ []));
|
|
4155
4124
|
toggleLegendOnVisibilityChange = input(false, ...(ngDevMode ? [{ debugName: "toggleLegendOnVisibilityChange" }] : /* istanbul ignore next */ []));
|
|
4156
4125
|
expandLegendOfVisibleLayers = input(false, ...(ngDevMode ? [{ debugName: "expandLegendOfVisibleLayers" }] : /* istanbul ignore next */ []));
|
|
4157
4126
|
updateLegendOnResolutionChange = input(false, ...(ngDevMode ? [{ debugName: "updateLegendOnResolutionChange" }] : /* istanbul ignore next */ []));
|
|
4158
|
-
selectedTabAtOpening = input(
|
|
4127
|
+
selectedTabAtOpening = input(...(ngDevMode ? [undefined, { debugName: "selectedTabAtOpening" }] : /* istanbul ignore next */ []));
|
|
4159
4128
|
ogcButton = input(true, ...(ngDevMode ? [{ debugName: "ogcButton" }] : /* istanbul ignore next */ []));
|
|
4160
4129
|
timeButton = input(true, ...(ngDevMode ? [{ debugName: "timeButton" }] : /* istanbul ignore next */ []));
|
|
4161
4130
|
layerAdditionAllowed = input(true, ...(ngDevMode ? [{ debugName: "layerAdditionAllowed" }] : /* istanbul ignore next */ []));
|
|
4162
|
-
|
|
4163
|
-
return this._layerListControls;
|
|
4164
|
-
}
|
|
4165
|
-
set layerListControls(value) {
|
|
4166
|
-
const stateOptions = this.layerListToolState.getLayerListControls();
|
|
4167
|
-
const stateKeyword = stateOptions.keyword;
|
|
4168
|
-
const stateOnlyVisible = stateOptions.onlyVisible;
|
|
4169
|
-
const stateSortAlpha = stateOptions.sortAlpha;
|
|
4170
|
-
value.keyword = stateKeyword !== '' ? stateKeyword : value.keyword;
|
|
4171
|
-
value.onlyVisible =
|
|
4172
|
-
stateOnlyVisible !== undefined ? stateOnlyVisible : value.onlyVisible;
|
|
4173
|
-
value.sortAlpha =
|
|
4174
|
-
stateSortAlpha !== undefined ? stateSortAlpha : value.sortAlpha;
|
|
4175
|
-
value.onlyVisible =
|
|
4176
|
-
value.onlyVisible === undefined ? false : value.onlyVisible;
|
|
4177
|
-
value.sortAlpha = value.sortAlpha === undefined ? false : value.sortAlpha;
|
|
4178
|
-
this._layerListControls = value;
|
|
4179
|
-
}
|
|
4180
|
-
_layerListControls = {};
|
|
4131
|
+
layerListControls = input({}, { ...(ngDevMode ? { debugName: "layerListControls" } : /* istanbul ignore next */ {}), transform: (value) => this.transformLayerListControls(value) });
|
|
4181
4132
|
get map() {
|
|
4182
4133
|
return this.mapState.map;
|
|
4183
4134
|
}
|
|
@@ -4189,13 +4140,13 @@ let MapToolsComponent = class MapToolsComponent {
|
|
|
4189
4140
|
return this.layers$.pipe(map((layers) => layers.filter((layer) => layer.visible)));
|
|
4190
4141
|
}
|
|
4191
4142
|
get excludeBaseLayers() {
|
|
4192
|
-
return this.layerListControls.excludeBaseLayers || false;
|
|
4143
|
+
return this.layerListControls().excludeBaseLayers || false;
|
|
4193
4144
|
}
|
|
4194
4145
|
get layerFilterAndSortOptions() {
|
|
4195
4146
|
const filterSortOptions = Object.assign({
|
|
4196
4147
|
showToolbar: LayerListControlsEnum.default
|
|
4197
|
-
}, this.layerListControls);
|
|
4198
|
-
switch (this.layerListControls.showToolbar) {
|
|
4148
|
+
}, this.layerListControls());
|
|
4149
|
+
switch (this.layerListControls().showToolbar) {
|
|
4199
4150
|
case LayerListControlsEnum.always:
|
|
4200
4151
|
filterSortOptions.showToolbar = LayerListControlsEnum.always;
|
|
4201
4152
|
break;
|
|
@@ -4258,14 +4209,10 @@ let MapToolsComponent = class MapToolsComponent {
|
|
|
4258
4209
|
else {
|
|
4259
4210
|
this.showAllLegendsValue$.next(false);
|
|
4260
4211
|
}
|
|
4261
|
-
// prevent message to be shown too quickly. Waiting for layers
|
|
4262
|
-
setTimeout(() => (this.delayedShowEmptyMapContent = true), 250);
|
|
4263
4212
|
}
|
|
4264
4213
|
ngOnDestroy() {
|
|
4265
|
-
this.resolution
|
|
4266
|
-
|
|
4267
|
-
this.visibleOrInRangeLayers$$.unsubscribe();
|
|
4268
|
-
}
|
|
4214
|
+
this.resolution$$?.unsubscribe();
|
|
4215
|
+
this.visibleOrInRangeLayers$$?.unsubscribe();
|
|
4269
4216
|
}
|
|
4270
4217
|
onShowAllLegends(event) {
|
|
4271
4218
|
this.mapState.showAllLegendsValue = event;
|
|
@@ -4290,7 +4237,9 @@ let MapToolsComponent = class MapToolsComponent {
|
|
|
4290
4237
|
this.layers$.next(this.map.layerController.all);
|
|
4291
4238
|
}
|
|
4292
4239
|
onLayerListChange(appliedFilters) {
|
|
4293
|
-
|
|
4240
|
+
if (appliedFilters.keyword !== undefined) {
|
|
4241
|
+
this.layerListToolState.setKeyword(appliedFilters.keyword);
|
|
4242
|
+
}
|
|
4294
4243
|
this.layerListToolState.setSortAlpha(appliedFilters.sortAlpha);
|
|
4295
4244
|
this.layerListToolState.setOnlyVisible(appliedFilters.onlyVisible);
|
|
4296
4245
|
}
|
|
@@ -4338,10 +4287,16 @@ let MapToolsComponent = class MapToolsComponent {
|
|
|
4338
4287
|
this.toolState.toolbox.activateTool('contextManager');
|
|
4339
4288
|
}
|
|
4340
4289
|
isTimeFilterButton(layer) {
|
|
4290
|
+
if (!layer.dataSource)
|
|
4291
|
+
return false;
|
|
4292
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4341
4293
|
const options = layer.dataSource.options;
|
|
4342
4294
|
return this.timeButton() && options.timeFilterable && options.timeFilter;
|
|
4343
4295
|
}
|
|
4344
4296
|
isOGCFilterButton(layer) {
|
|
4297
|
+
if (!layer.dataSource)
|
|
4298
|
+
return false;
|
|
4299
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4345
4300
|
const options = layer.dataSource.options;
|
|
4346
4301
|
return (this.ogcButton() &&
|
|
4347
4302
|
options.ogcFilters &&
|
|
@@ -4364,10 +4319,8 @@ let MapToolsComponent = class MapToolsComponent {
|
|
|
4364
4319
|
return false;
|
|
4365
4320
|
}
|
|
4366
4321
|
isStyleEditButton(layer) {
|
|
4367
|
-
if (layer instanceof VectorLayer) {
|
|
4368
|
-
|
|
4369
|
-
return true;
|
|
4370
|
-
}
|
|
4322
|
+
if (layer instanceof VectorLayer || layer instanceof VectorTileLayer) {
|
|
4323
|
+
return layer.visible && isOlFlatStyleLike(layer.style);
|
|
4371
4324
|
}
|
|
4372
4325
|
return false;
|
|
4373
4326
|
}
|
|
@@ -4377,8 +4330,27 @@ let MapToolsComponent = class MapToolsComponent {
|
|
|
4377
4330
|
this.cdr.detectChanges();
|
|
4378
4331
|
});
|
|
4379
4332
|
}
|
|
4380
|
-
|
|
4381
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: MapToolsComponent, isStandalone: true, selector: "igo-map-tools", inputs: { allowShowAllLegends: { classPropertyName: "allowShowAllLegends", publicName: "allowShowAllLegends", isSignal: true, isRequired: false, transformFunction: null }, showAllLegendsValue: { classPropertyName: "showAllLegendsValue", publicName: "showAllLegendsValue", isSignal: true, isRequired: false, transformFunction: null }, toggleLegendOnVisibilityChange: { classPropertyName: "toggleLegendOnVisibilityChange", publicName: "toggleLegendOnVisibilityChange", isSignal: true, isRequired: false, transformFunction: null }, expandLegendOfVisibleLayers: { classPropertyName: "expandLegendOfVisibleLayers", publicName: "expandLegendOfVisibleLayers", isSignal: true, isRequired: false, transformFunction: null }, updateLegendOnResolutionChange: { classPropertyName: "updateLegendOnResolutionChange", publicName: "updateLegendOnResolutionChange", isSignal: true, isRequired: false, transformFunction: null }, selectedTabAtOpening: { classPropertyName: "selectedTabAtOpening", publicName: "selectedTabAtOpening", isSignal: true, isRequired: false, transformFunction: null }, ogcButton: { classPropertyName: "ogcButton", publicName: "ogcButton", isSignal: true, isRequired: false, transformFunction: null }, timeButton: { classPropertyName: "timeButton", publicName: "timeButton", isSignal: true, isRequired: false, transformFunction: null }, layerAdditionAllowed: { classPropertyName: "layerAdditionAllowed", publicName: "layerAdditionAllowed", isSignal: true, isRequired: false, transformFunction: null }, layerListControls: { classPropertyName: "layerListControls", publicName: "layerListControls", isSignal: false, isRequired: false, transformFunction: null }, queryBadge: { classPropertyName: "queryBadge", publicName: "queryBadge", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: ["tabGroup"], descendants: true, isSignal: 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 @if (isStyleEditButton(layer)) {\n <igo-style-modal-layer-button [layer]=\"layer\" />\n }\n <igo-metadata-button [layer]=\"layer\" />\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\" />\n @if (isTimeFilterButton(layer)) {\n <igo-time-filter-button\n [header]=\"timeButton()\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n />\n }\n @if (isOGCFilterButton(layer)) {\n <igo-ogc-filter-button\n [header]=\"ogcButton()\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n />\n }\n @if (isExportButton(layer)) {\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\" />\n }\n <igo-workspace-button [layer]=\"layer\" />\n </ng-template>\n\n <ng-container ngProjectAs=\"[emptyList]\">\n <ng-template [ngTemplateOutlet]=\"emptyLayers\" />\n </ng-container>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n @if (showAllLegend()) {\n <igo-layer-legend-list\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends()\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange()\"\n />\n }\n @if ((layers$ | async).length !== 0) {\n } @else {\n @if (delayedShowEmptyMapContent) {\n <mat-list>\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar ||\n catalogToolInToolbar ||\n contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span\n matListItemTitle\n class=\"catalog-tool\"\n (click)=\"catalogEmit()\"\n >\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span\n matListItemTitle\n class=\"context-tool\"\n (click)=\"contextEmit()\"\n >\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\n }\n\n @if (\n !allowShowAllLegends() &&\n (layers$ | async).length !== 0 &&\n (visibleOrInRangeLayers$ | async).length === 0\n ) {\n <p class=\"map-empty\">\n {{\n (visibleLayers$ | async).length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n }\n </mat-tab>\n\n <ng-template #emptyLayers>\n @if (delayedShowEmptyMapContent) {\n <mat-list>\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\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: i1$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i1$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { 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"], outputs: ["trackFeatureChange"] }, { 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: ["layersChange", "showAllLegendsValueChange", "allLegendsShown"] }, { kind: "directive", type: LayerLegendListBindingDirective, selector: "[igoLayerLegendListBinding]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1$5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i1$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4333
|
+
transformLayerListControls(input) {
|
|
4334
|
+
if (!input) {
|
|
4335
|
+
return {};
|
|
4336
|
+
}
|
|
4337
|
+
const value = { ...input };
|
|
4338
|
+
const stateOptions = this.layerListToolState.getLayerListControls();
|
|
4339
|
+
const stateKeyword = stateOptions.keyword;
|
|
4340
|
+
const stateOnlyVisible = stateOptions.onlyVisible;
|
|
4341
|
+
const stateSortAlpha = stateOptions.sortAlpha;
|
|
4342
|
+
value.keyword = stateKeyword !== '' ? stateKeyword : value.keyword;
|
|
4343
|
+
value.onlyVisible =
|
|
4344
|
+
stateOnlyVisible !== undefined ? stateOnlyVisible : value.onlyVisible;
|
|
4345
|
+
value.sortAlpha =
|
|
4346
|
+
stateSortAlpha !== undefined ? stateSortAlpha : value.sortAlpha;
|
|
4347
|
+
value.onlyVisible =
|
|
4348
|
+
value.onlyVisible === undefined ? false : value.onlyVisible;
|
|
4349
|
+
value.sortAlpha = value.sortAlpha === undefined ? false : value.sortAlpha;
|
|
4350
|
+
return value;
|
|
4351
|
+
}
|
|
4352
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapToolsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4353
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: MapToolsComponent, isStandalone: true, selector: "igo-map-tools", inputs: { allowShowAllLegends: { classPropertyName: "allowShowAllLegends", publicName: "allowShowAllLegends", isSignal: true, isRequired: false, transformFunction: null }, showAllLegendsValue: { classPropertyName: "showAllLegendsValue", publicName: "showAllLegendsValue", isSignal: true, isRequired: false, transformFunction: null }, toggleLegendOnVisibilityChange: { classPropertyName: "toggleLegendOnVisibilityChange", publicName: "toggleLegendOnVisibilityChange", isSignal: true, isRequired: false, transformFunction: null }, expandLegendOfVisibleLayers: { classPropertyName: "expandLegendOfVisibleLayers", publicName: "expandLegendOfVisibleLayers", isSignal: true, isRequired: false, transformFunction: null }, updateLegendOnResolutionChange: { classPropertyName: "updateLegendOnResolutionChange", publicName: "updateLegendOnResolutionChange", isSignal: true, isRequired: false, transformFunction: null }, selectedTabAtOpening: { classPropertyName: "selectedTabAtOpening", publicName: "selectedTabAtOpening", isSignal: true, isRequired: false, transformFunction: null }, ogcButton: { classPropertyName: "ogcButton", publicName: "ogcButton", isSignal: true, isRequired: false, transformFunction: null }, timeButton: { classPropertyName: "timeButton", publicName: "timeButton", isSignal: true, isRequired: false, transformFunction: null }, layerAdditionAllowed: { classPropertyName: "layerAdditionAllowed", publicName: "layerAdditionAllowed", isSignal: true, isRequired: false, transformFunction: null }, layerListControls: { classPropertyName: "layerListControls", publicName: "layerListControls", isSignal: true, isRequired: false, transformFunction: null }, queryBadge: { classPropertyName: "queryBadge", publicName: "queryBadge", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: ["tabGroup"], descendants: true, isSignal: 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 @if (isStyleEditButton(layer)) {\n <igo-style-modal-layer-button [layer]=\"layer\" />\n }\n <igo-metadata-button [layer]=\"layer\" />\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\" />\n @if (isTimeFilterButton(layer)) {\n <igo-time-filter-button\n [header]=\"timeButton()\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n />\n }\n @if (isOGCFilterButton(layer)) {\n <igo-ogc-filter-button\n [header]=\"ogcButton()\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n />\n }\n @if (isExportButton(layer)) {\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\" />\n }\n <igo-workspace-button [layer]=\"layer\" />\n </ng-template>\n\n <ng-container ngProjectAs=\"[emptyList]\">\n <ng-template [ngTemplateOutlet]=\"emptyLayers\" />\n </ng-container>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n @if (showAllLegend()) {\n <igo-layer-legend-list\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends()\"\n [showAllLegendsValue]=\"!!(showAllLegendsValue$ | async)\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange()\"\n />\n }\n @if ((layers$ | async)?.length !== 0) {\n } @else {\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\n\n @if (\n !allowShowAllLegends() &&\n (layers$ | async)?.length !== 0 &&\n (visibleOrInRangeLayers$ | async)?.length === 0\n ) {\n <p class=\"map-empty\">\n {{\n (visibleLayers$ | async)?.length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n }\n </mat-tab>\n\n <ng-template #emptyLayers>\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\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: i1$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i1$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { 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"], outputs: ["trackFeatureChange"] }, { kind: "component", type: TimeFilterButtonComponent, selector: "igo-time-filter-button", inputs: ["layer", "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: ["layersChange", "showAllLegendsValueChange", "allLegendsShown"] }, { kind: "directive", type: LayerLegendListBindingDirective, selector: "[igoLayerLegendListBinding]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1$5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i1$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4382
4354
|
};
|
|
4383
4355
|
MapToolsComponent = __decorate([
|
|
4384
4356
|
ToolComponent({
|
|
@@ -4388,7 +4360,7 @@ MapToolsComponent = __decorate([
|
|
|
4388
4360
|
}),
|
|
4389
4361
|
__metadata("design:paramtypes", [])
|
|
4390
4362
|
], MapToolsComponent);
|
|
4391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MapToolsComponent, decorators: [{
|
|
4392
4364
|
type: Component,
|
|
4393
4365
|
args: [{ selector: 'igo-map-tools', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
4394
4366
|
MatTabsModule,
|
|
@@ -4407,10 +4379,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
4407
4379
|
MatIconModule,
|
|
4408
4380
|
AsyncPipe,
|
|
4409
4381
|
IgoLanguageModule
|
|
4410
|
-
], 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 @if (isStyleEditButton(layer)) {\n <igo-style-modal-layer-button [layer]=\"layer\" />\n }\n <igo-metadata-button [layer]=\"layer\" />\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\" />\n @if (isTimeFilterButton(layer)) {\n <igo-time-filter-button\n [header]=\"timeButton()\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n />\n }\n @if (isOGCFilterButton(layer)) {\n <igo-ogc-filter-button\n [header]=\"ogcButton()\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n />\n }\n @if (isExportButton(layer)) {\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\" />\n }\n <igo-workspace-button [layer]=\"layer\" />\n </ng-template>\n\n <ng-container ngProjectAs=\"[emptyList]\">\n <ng-template [ngTemplateOutlet]=\"emptyLayers\" />\n </ng-container>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n @if (showAllLegend()) {\n <igo-layer-legend-list\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends()\"\n [showAllLegendsValue]=\"showAllLegendsValue$ | async\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange()\"\n />\n }\n @if ((layers$ | async)
|
|
4411
|
-
}], ctorParameters: () => [], propDecorators: { allowShowAllLegends: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowShowAllLegends", required: false }] }], showAllLegendsValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAllLegendsValue", required: false }] }], toggleLegendOnVisibilityChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLegendOnVisibilityChange", required: false }] }], expandLegendOfVisibleLayers: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandLegendOfVisibleLayers", required: false }] }], updateLegendOnResolutionChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "updateLegendOnResolutionChange", required: false }] }], selectedTabAtOpening: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedTabAtOpening", required: false }] }], ogcButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "ogcButton", required: false }] }], timeButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeButton", required: false }] }], layerAdditionAllowed: [{ type: i0.Input, args: [{ isSignal: true, alias: "layerAdditionAllowed", required: false }] }], layerListControls: [{
|
|
4412
|
-
type: Input
|
|
4413
|
-
}], queryBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryBadge", required: false }] }], tabGroup: [{ type: i0.ViewChild, args: ['tabGroup', { isSignal: true }] }] } });
|
|
4382
|
+
], 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 @if (isStyleEditButton(layer)) {\n <igo-style-modal-layer-button [layer]=\"layer\" />\n }\n <igo-metadata-button [layer]=\"layer\" />\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\" />\n @if (isTimeFilterButton(layer)) {\n <igo-time-filter-button\n [header]=\"timeButton()\"\n [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"\n />\n }\n @if (isOGCFilterButton(layer)) {\n <igo-ogc-filter-button\n [header]=\"ogcButton()\"\n [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"\n />\n }\n @if (isExportButton(layer)) {\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\" />\n }\n <igo-workspace-button [layer]=\"layer\" />\n </ng-template>\n\n <ng-container ngProjectAs=\"[emptyList]\">\n <ng-template [ngTemplateOutlet]=\"emptyLayers\" />\n </ng-container>\n </igo-layer-viewer>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n @if (showAllLegend()) {\n <igo-layer-legend-list\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends()\"\n [showAllLegendsValue]=\"!!(showAllLegendsValue$ | async)\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange()\"\n />\n }\n @if ((layers$ | async)?.length !== 0) {\n } @else {\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\n </mat-list>\n }\n\n @if (\n !allowShowAllLegends() &&\n (layers$ | async)?.length !== 0 &&\n (visibleOrInRangeLayers$ | async)?.length === 0\n ) {\n <p class=\"map-empty\">\n {{\n (visibleLayers$ | async)?.length\n ? ('igo.integration.mapTool.noLayersInRange' | translate)\n : ('igo.integration.mapTool.noLayersVisible' | translate)\n }}\n </p>\n }\n </mat-tab>\n\n <ng-template #emptyLayers>\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{ 'igo.integration.mapTool.empty' | translate }}\n </p>\n @if (\n layerAdditionAllowed() &&\n (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\n ) {\n <p class=\"map-empty\">\n {{ 'igo.integration.mapTool.customize' | translate }}\n </p>\n }\n\n @if (layerAdditionAllowed() && searchToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>search</mat-icon>\n <span matListItemTitle class=\"search-tool\" (click)=\"searchEmit()\">\n {{ 'igo.integration.mapTool.search-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && catalogToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>library_add</mat-icon>\n <span matListItemTitle class=\"catalog-tool\" (click)=\"catalogEmit()\">\n {{ 'igo.integration.mapTool.catalog-tool' | translate }}\n </span>\n </mat-list-item>\n }\n @if (layerAdditionAllowed() && contextToolInToolbar) {\n <mat-list-item>\n <mat-icon matListItemIcon>star</mat-icon>\n <span matListItemTitle class=\"context-tool\" (click)=\"contextEmit()\">\n {{ 'igo.integration.mapTool.context-tool' | translate }}\n </span>\n </mat-list-item>\n }\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"] }]
|
|
4383
|
+
}], ctorParameters: () => [], propDecorators: { allowShowAllLegends: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowShowAllLegends", required: false }] }], showAllLegendsValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAllLegendsValue", required: false }] }], toggleLegendOnVisibilityChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLegendOnVisibilityChange", required: false }] }], expandLegendOfVisibleLayers: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandLegendOfVisibleLayers", required: false }] }], updateLegendOnResolutionChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "updateLegendOnResolutionChange", required: false }] }], selectedTabAtOpening: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedTabAtOpening", required: false }] }], ogcButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "ogcButton", required: false }] }], timeButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeButton", required: false }] }], layerAdditionAllowed: [{ type: i0.Input, args: [{ isSignal: true, alias: "layerAdditionAllowed", required: false }] }], layerListControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "layerListControls", required: false }] }], queryBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryBadge", required: false }] }], tabGroup: [{ type: i0.ViewChild, args: ['tabGroup', { isSignal: true }] }] } });
|
|
4414
4384
|
|
|
4415
4385
|
/**
|
|
4416
4386
|
* @deprecated import the ImportExportToolComponent directly or INTEGRATION_MAP_DIRECTIVES for the set
|
|
@@ -4422,8 +4392,8 @@ class IgoAppMapModule {
|
|
|
4422
4392
|
providers: []
|
|
4423
4393
|
};
|
|
4424
4394
|
}
|
|
4425
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4426
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
4395
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4396
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMapModule, imports: [AdvancedMapToolComponent,
|
|
4427
4397
|
MapProximityToolComponent,
|
|
4428
4398
|
MapToolComponent,
|
|
4429
4399
|
MapToolsComponent,
|
|
@@ -4434,14 +4404,14 @@ class IgoAppMapModule {
|
|
|
4434
4404
|
MapToolsComponent,
|
|
4435
4405
|
MapDetailsToolComponent,
|
|
4436
4406
|
MapLegendToolComponent] });
|
|
4437
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
4407
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMapModule, imports: [AdvancedMapToolComponent,
|
|
4438
4408
|
MapProximityToolComponent,
|
|
4439
4409
|
MapToolComponent,
|
|
4440
4410
|
MapToolsComponent,
|
|
4441
4411
|
MapDetailsToolComponent,
|
|
4442
4412
|
MapLegendToolComponent] });
|
|
4443
4413
|
}
|
|
4444
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMapModule, decorators: [{
|
|
4445
4415
|
type: NgModule,
|
|
4446
4416
|
args: [{
|
|
4447
4417
|
imports: [
|
|
@@ -4488,10 +4458,10 @@ class MeasureState {
|
|
|
4488
4458
|
}
|
|
4489
4459
|
});
|
|
4490
4460
|
}
|
|
4491
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4492
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4461
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MeasureState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4462
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MeasureState, providedIn: 'root' });
|
|
4493
4463
|
}
|
|
4494
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MeasureState, decorators: [{
|
|
4495
4465
|
type: Injectable,
|
|
4496
4466
|
args: [{
|
|
4497
4467
|
providedIn: 'root'
|
|
@@ -4518,8 +4488,8 @@ let MeasurerToolComponent = class MeasurerToolComponent {
|
|
|
4518
4488
|
get map() {
|
|
4519
4489
|
return this.mapState.map;
|
|
4520
4490
|
}
|
|
4521
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4522
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
4491
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MeasurerToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4492
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: MeasurerToolComponent, isStandalone: true, selector: "igo-measurer-tool", ngImport: i0, template: "<igo-measurer [store]=\"store\" [map]=\"map\" />\n", dependencies: [{ kind: "component", type: MeasurerComponent, selector: "igo-measurer", inputs: ["map", "store", "activeMeasureType", "minSegmentLength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4523
4493
|
};
|
|
4524
4494
|
MeasurerToolComponent = __decorate([
|
|
4525
4495
|
ToolComponent({
|
|
@@ -4528,7 +4498,7 @@ MeasurerToolComponent = __decorate([
|
|
|
4528
4498
|
icon: 'square_foot'
|
|
4529
4499
|
})
|
|
4530
4500
|
], MeasurerToolComponent);
|
|
4531
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MeasurerToolComponent, decorators: [{
|
|
4532
4502
|
type: Component,
|
|
4533
4503
|
args: [{ selector: 'igo-measurer-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MeasurerComponent], template: "<igo-measurer [store]=\"store\" [map]=\"map\" />\n" }]
|
|
4534
4504
|
}] });
|
|
@@ -4537,11 +4507,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
4537
4507
|
* @deprecated import the MeasurerToolComponent directly
|
|
4538
4508
|
*/
|
|
4539
4509
|
class IgoAppMeasurerToolModule {
|
|
4540
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4541
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
4542
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
4510
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasurerToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4511
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasurerToolModule, imports: [MeasurerToolComponent], exports: [MeasurerToolComponent] });
|
|
4512
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasurerToolModule, imports: [MeasurerToolComponent] });
|
|
4543
4513
|
}
|
|
4544
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4514
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasurerToolModule, decorators: [{
|
|
4545
4515
|
type: NgModule,
|
|
4546
4516
|
args: [{
|
|
4547
4517
|
imports: [MeasurerToolComponent],
|
|
@@ -4553,11 +4523,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
4553
4523
|
* @deprecated import the MeasurerToolComponent directly
|
|
4554
4524
|
*/
|
|
4555
4525
|
class IgoAppMeasureModule {
|
|
4556
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4557
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
4558
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
4526
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4527
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasureModule, exports: [IgoAppMeasurerToolModule] });
|
|
4528
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasureModule, imports: [IgoAppMeasurerToolModule] });
|
|
4559
4529
|
}
|
|
4560
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4530
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppMeasureModule, decorators: [{
|
|
4561
4531
|
type: NgModule,
|
|
4562
4532
|
args: [{
|
|
4563
4533
|
exports: [IgoAppMeasurerToolModule]
|
|
@@ -4569,8 +4539,8 @@ let PrintToolComponent = class PrintToolComponent {
|
|
|
4569
4539
|
get map() {
|
|
4570
4540
|
return this.mapState.map;
|
|
4571
4541
|
}
|
|
4572
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4573
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
4542
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: PrintToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4543
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: PrintToolComponent, isStandalone: true, selector: "igo-print-tool", ngImport: i0, template: "<igo-print [map]=\"map\" />\n", dependencies: [{ kind: "component", type: PrintComponent, selector: "igo-print", inputs: ["map", "outputFormat", "paperFormat", "orientation", "imageFormat", "legendPosition", "resolution"] }] });
|
|
4574
4544
|
};
|
|
4575
4545
|
PrintToolComponent = __decorate([
|
|
4576
4546
|
ToolComponent({
|
|
@@ -4579,7 +4549,7 @@ PrintToolComponent = __decorate([
|
|
|
4579
4549
|
icon: 'print'
|
|
4580
4550
|
})
|
|
4581
4551
|
], PrintToolComponent);
|
|
4582
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4552
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: PrintToolComponent, decorators: [{
|
|
4583
4553
|
type: Component,
|
|
4584
4554
|
args: [{ selector: 'igo-print-tool', imports: [PrintComponent], template: "<igo-print [map]=\"map\" />\n" }]
|
|
4585
4555
|
}] });
|
|
@@ -4594,11 +4564,11 @@ class IgoAppPrintModule {
|
|
|
4594
4564
|
providers: []
|
|
4595
4565
|
};
|
|
4596
4566
|
}
|
|
4597
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4598
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
4599
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
4567
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4568
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppPrintModule, imports: [PrintToolComponent], exports: [PrintToolComponent] });
|
|
4569
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppPrintModule, imports: [PrintToolComponent] });
|
|
4600
4570
|
}
|
|
4601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppPrintModule, decorators: [{
|
|
4602
4572
|
type: NgModule,
|
|
4603
4573
|
args: [{
|
|
4604
4574
|
imports: [PrintToolComponent],
|
|
@@ -4625,9 +4595,6 @@ class SearchState {
|
|
|
4625
4595
|
configService = inject(ConfigService);
|
|
4626
4596
|
mapState = inject(MapState);
|
|
4627
4597
|
searchLayerStores = [];
|
|
4628
|
-
searchOverlayStyle = {};
|
|
4629
|
-
searchOverlayStyleSelection = {};
|
|
4630
|
-
searchOverlayStyleFocus = {};
|
|
4631
4598
|
focusedOrResolution$$;
|
|
4632
4599
|
selectedOrResolution$$;
|
|
4633
4600
|
/**
|
|
@@ -4650,6 +4617,7 @@ class SearchState {
|
|
|
4650
4617
|
* Store that holds the search results
|
|
4651
4618
|
*/
|
|
4652
4619
|
store = new EntityStore([]);
|
|
4620
|
+
searchOverlayStyle = {};
|
|
4653
4621
|
/**
|
|
4654
4622
|
* Search types currently enabled in the search source service
|
|
4655
4623
|
*/
|
|
@@ -4659,12 +4627,7 @@ class SearchState {
|
|
|
4659
4627
|
.map((source) => source.constructor.type);
|
|
4660
4628
|
}
|
|
4661
4629
|
constructor() {
|
|
4662
|
-
|
|
4663
|
-
if (searchOverlayStyle) {
|
|
4664
|
-
this.searchOverlayStyle = searchOverlayStyle.base;
|
|
4665
|
-
this.searchOverlayStyleSelection = searchOverlayStyle.selection;
|
|
4666
|
-
this.searchOverlayStyleFocus = searchOverlayStyle.focus;
|
|
4667
|
-
}
|
|
4630
|
+
this.searchOverlayStyle = this.configService.getConfig('searchOverlayStyle', {});
|
|
4668
4631
|
const searchResultsGeometryEnabled = this.storageService.get('searchResultsGeometryEnabled');
|
|
4669
4632
|
if (searchResultsGeometryEnabled) {
|
|
4670
4633
|
this.searchResultsGeometryEnabled$.next(searchResultsGeometryEnabled);
|
|
@@ -4676,7 +4639,7 @@ class SearchState {
|
|
|
4676
4639
|
if (wksSource) {
|
|
4677
4640
|
this.workspaceState.store.entities$.subscribe((e) => {
|
|
4678
4641
|
const searchableWks = e.filter((fw) => fw instanceof FeatureWorkspace &&
|
|
4679
|
-
fw.layer.options.workspace
|
|
4642
|
+
fw.layer.options.workspace?.searchIndexEnabled);
|
|
4680
4643
|
this.searchSourceService.setWorkspaces(wksSource, searchableWks);
|
|
4681
4644
|
});
|
|
4682
4645
|
}
|
|
@@ -4731,7 +4694,9 @@ class SearchState {
|
|
|
4731
4694
|
this.searchTerm$.next(searchTerm);
|
|
4732
4695
|
}
|
|
4733
4696
|
setSearchType(searchType) {
|
|
4734
|
-
|
|
4697
|
+
if (searchType) {
|
|
4698
|
+
this.searchSourceService.enableSourcesByType(searchType);
|
|
4699
|
+
}
|
|
4735
4700
|
this.searchType$.next(searchType);
|
|
4736
4701
|
}
|
|
4737
4702
|
setSearchSettingsChange() {
|
|
@@ -4740,14 +4705,17 @@ class SearchState {
|
|
|
4740
4705
|
setSelectedResult(result) {
|
|
4741
4706
|
this.selectedResult$.next(result);
|
|
4742
4707
|
}
|
|
4708
|
+
clearSelectedResult() {
|
|
4709
|
+
this.selectedResult$.next(undefined);
|
|
4710
|
+
}
|
|
4743
4711
|
setSearchResultsGeometryStatus(value) {
|
|
4744
4712
|
this.storageService.set('searchResultsGeometryEnabled', value);
|
|
4745
4713
|
this.searchResultsGeometryEnabled$.next(value);
|
|
4746
4714
|
}
|
|
4747
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4748
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
4715
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SearchState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4716
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SearchState });
|
|
4749
4717
|
}
|
|
4750
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4718
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SearchState, decorators: [{
|
|
4751
4719
|
type: Injectable
|
|
4752
4720
|
}], ctorParameters: () => [] });
|
|
4753
4721
|
|
|
@@ -4793,10 +4761,10 @@ class SearchBarBindingDirective {
|
|
|
4793
4761
|
this.searchState.setSearchType(searchType);
|
|
4794
4762
|
}
|
|
4795
4763
|
}
|
|
4796
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
4797
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
4764
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SearchBarBindingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4765
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.24", type: SearchBarBindingDirective, isStandalone: true, selector: "[igoSearchBarBinding]", host: { listeners: { "searchTermChange": "onSearchTermChange($any($event))", "searchTypeChange": "onSearchTypeChange($any($event))" } }, ngImport: i0 });
|
|
4798
4766
|
}
|
|
4799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
4767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SearchBarBindingDirective, decorators: [{
|
|
4800
4768
|
type: Directive,
|
|
4801
4769
|
args: [{
|
|
4802
4770
|
selector: '[igoSearchBarBinding]',
|
|
@@ -4816,6 +4784,7 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
4816
4784
|
elRef = inject(ElementRef);
|
|
4817
4785
|
toolState = inject(ToolState);
|
|
4818
4786
|
directionState = inject(DirectionState);
|
|
4787
|
+
overlayService = inject(OverlayService);
|
|
4819
4788
|
/**
|
|
4820
4789
|
* to show hide results icons
|
|
4821
4790
|
*/
|
|
@@ -4824,19 +4793,17 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
4824
4793
|
* Determine the top panel default state
|
|
4825
4794
|
*/
|
|
4826
4795
|
topPanelStateDefault = input('expanded', ...(ngDevMode ? [{ debugName: "topPanelStateDefault" }] : /* istanbul ignore next */ []));
|
|
4827
|
-
|
|
4796
|
+
searchResultsOverlayAll$$;
|
|
4828
4797
|
saveSearchResultInLayer = false;
|
|
4829
|
-
|
|
4798
|
+
searchResultsOverlayFocused;
|
|
4799
|
+
searchResultsOverlaySelected;
|
|
4800
|
+
searchResultsOverlayAll;
|
|
4830
4801
|
getRoute$$;
|
|
4831
|
-
shownResultsGeometries = [];
|
|
4832
|
-
shownResultsEmphasisGeometries = [];
|
|
4833
|
-
focusedResult$ = new BehaviorSubject(undefined);
|
|
4834
4802
|
isSelectedResultOutOfView$ = new BehaviorSubject(false);
|
|
4835
4803
|
isSelectedResultOutOfView$$;
|
|
4836
|
-
abstractFocusedResult;
|
|
4837
|
-
abstractSelectedResult;
|
|
4838
4804
|
destroyRef = inject(DestroyRef);
|
|
4839
4805
|
debouncedEmpty = signal(true, ...(ngDevMode ? [{ debugName: "debouncedEmpty" }] : /* istanbul ignore next */ []));
|
|
4806
|
+
searchResult = viewChild(SearchResultsComponent, ...(ngDevMode ? [{ debugName: "searchResult" }] : /* istanbul ignore next */ []));
|
|
4840
4807
|
/**
|
|
4841
4808
|
* Store holding the search results
|
|
4842
4809
|
* @internal
|
|
@@ -4857,15 +4824,9 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
4857
4824
|
feature = signal(undefined, ...(ngDevMode ? [{ debugName: "feature" }] : /* istanbul ignore next */ []));
|
|
4858
4825
|
term = '';
|
|
4859
4826
|
searchTerm$$;
|
|
4860
|
-
|
|
4861
|
-
|
|
4862
|
-
|
|
4863
|
-
set topPanelState(value) {
|
|
4864
|
-
this.topPanelState$.next(value);
|
|
4865
|
-
}
|
|
4866
|
-
get topPanelState() {
|
|
4867
|
-
return this.topPanelState$.value;
|
|
4868
|
-
}
|
|
4827
|
+
topPanelState = input(...(ngDevMode ? [undefined, { debugName: "topPanelState" }] : /* istanbul ignore next */ []));
|
|
4828
|
+
topPanelStateValue = linkedSignal({ ...(ngDevMode ? { debugName: "topPanelStateValue" } : /* istanbul ignore next */ {}), source: this.topPanelState,
|
|
4829
|
+
computation: (v, previous) => v ?? previous?.value ?? 'initial' });
|
|
4869
4830
|
get termSplitter() {
|
|
4870
4831
|
return this.searchState.searchTermSplitter$.value;
|
|
4871
4832
|
}
|
|
@@ -4875,10 +4836,29 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
4875
4836
|
}
|
|
4876
4837
|
constructor() {
|
|
4877
4838
|
const configService = inject(ConfigService);
|
|
4878
|
-
this.hasFeatureEmphasisOnSelection = configService.getConfig('hasFeatureEmphasisOnSelection');
|
|
4879
4839
|
this.saveSearchResultInLayer = configService.getConfig('saveSearchResultInLayer');
|
|
4840
|
+
this.handleShowAllResults();
|
|
4841
|
+
effect(() => {
|
|
4842
|
+
this.topPanelStateValue(); // re-run on state change
|
|
4843
|
+
const igoList = this.computeElementRef()[0];
|
|
4844
|
+
const selected = this.computeElementRef()[1];
|
|
4845
|
+
if (selected) {
|
|
4846
|
+
setTimeout(() => {
|
|
4847
|
+
// To be sure the flexible component has been displayed yet
|
|
4848
|
+
if (!this.isScrolledIntoView(igoList, selected)) {
|
|
4849
|
+
this.adjustTopPanel(igoList, selected);
|
|
4850
|
+
}
|
|
4851
|
+
}, FlexibleComponent.transitionTime + 50);
|
|
4852
|
+
}
|
|
4853
|
+
});
|
|
4880
4854
|
}
|
|
4881
4855
|
ngOnInit() {
|
|
4856
|
+
this.searchResultsOverlayFocused = this.overlayService.create(this.mapState.map, this.searchState.searchOverlayStyle?.focus ??
|
|
4857
|
+
styleVariant(this.mapState.map.viewController, 'focus'));
|
|
4858
|
+
this.searchResultsOverlaySelected = this.overlayService.create(this.mapState.map, this.searchState.searchOverlayStyle?.selection ??
|
|
4859
|
+
styleVariant(this.mapState.map.viewController, 'selection'));
|
|
4860
|
+
this.searchResultsOverlayAll = this.overlayService.create(this.mapState.map, this.searchState.searchOverlayStyle?.base ??
|
|
4861
|
+
styleVariant(this.mapState.map.viewController));
|
|
4882
4862
|
this.searchTerm$$ = this.searchState.searchTerm$.subscribe((searchTerm) => {
|
|
4883
4863
|
if (searchTerm !== undefined &&
|
|
4884
4864
|
searchTerm !== null &&
|
|
@@ -4887,75 +4867,20 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
4887
4867
|
this.debouncedEmpty.set(false);
|
|
4888
4868
|
}
|
|
4889
4869
|
else if (searchTerm === '') {
|
|
4870
|
+
this.clearResultOverlays();
|
|
4871
|
+
this.searchState.clearSelectedResult();
|
|
4890
4872
|
this.debouncedEmpty.set(true);
|
|
4891
4873
|
}
|
|
4892
4874
|
});
|
|
4893
4875
|
for (const res of this.store.stateView.all$().value) {
|
|
4894
4876
|
if (this.store.state.get(res.entity).selected === true) {
|
|
4895
|
-
this.
|
|
4877
|
+
this.topPanelStateValue.set('expanded');
|
|
4896
4878
|
}
|
|
4897
4879
|
}
|
|
4898
4880
|
this.searchState.searchSettingsChange$.subscribe(() => {
|
|
4899
|
-
this.
|
|
4900
|
-
});
|
|
4901
|
-
this.topPanelState$$ = this.topPanelState$.subscribe(() => {
|
|
4902
|
-
const igoList = this.computeElementRef()[0];
|
|
4903
|
-
const selected = this.computeElementRef()[1];
|
|
4904
|
-
if (selected) {
|
|
4905
|
-
setTimeout(() => {
|
|
4906
|
-
// To be sure the flexible component has been displayed yet
|
|
4907
|
-
if (!this.isScrolledIntoView(igoList, selected)) {
|
|
4908
|
-
this.adjustTopPanel(igoList, selected);
|
|
4909
|
-
}
|
|
4910
|
-
}, FlexibleComponent.transitionTime + 50);
|
|
4911
|
-
}
|
|
4881
|
+
this.searchResult()?.resetPage();
|
|
4912
4882
|
});
|
|
4913
|
-
if (this.hasFeatureEmphasisOnSelection) {
|
|
4914
|
-
if (!this.searchState.focusedOrResolution$$) {
|
|
4915
|
-
this.searchState.focusedOrResolution$$ = combineLatest([
|
|
4916
|
-
this.focusedResult$,
|
|
4917
|
-
this.map.viewController.resolution$
|
|
4918
|
-
]).subscribe((bunch) => this.buildResultEmphasis(bunch[0], 'focused'));
|
|
4919
|
-
}
|
|
4920
|
-
if (!this.searchState.selectedOrResolution$$) {
|
|
4921
|
-
this.searchState.selectedOrResolution$$ = combineLatest([
|
|
4922
|
-
this.searchState.selectedResult$,
|
|
4923
|
-
this.map.viewController.resolution$
|
|
4924
|
-
]).subscribe((bunch) => this.buildResultEmphasis(bunch[0], 'selected'));
|
|
4925
|
-
}
|
|
4926
|
-
}
|
|
4927
4883
|
this.monitorResultOutOfView();
|
|
4928
|
-
this.showResultsGeometries$$ = combineLatest([
|
|
4929
|
-
this.searchState.searchResultsGeometryEnabled$,
|
|
4930
|
-
this.store.stateView.all$(),
|
|
4931
|
-
this.focusedResult$,
|
|
4932
|
-
this.searchState.selectedResult$,
|
|
4933
|
-
this.searchState.searchTerm$,
|
|
4934
|
-
this.map.viewController.resolution$
|
|
4935
|
-
]).subscribe((bunch) => {
|
|
4936
|
-
const searchResultsGeometryEnabled = bunch[0];
|
|
4937
|
-
const searchResults = bunch[1];
|
|
4938
|
-
if (this.hasFeatureEmphasisOnSelection) {
|
|
4939
|
-
this.clearFeatureEmphasis('shown');
|
|
4940
|
-
}
|
|
4941
|
-
this.shownResultsGeometries.map((result) => this.map.queryResultsOverlay.removeFeature(result));
|
|
4942
|
-
const featureToHandleGeom = searchResults.filter((result) => result.entity.meta.dataType === FEATURE &&
|
|
4943
|
-
result.entity.data.geometry &&
|
|
4944
|
-
!result.state.selected &&
|
|
4945
|
-
!result.state.focused);
|
|
4946
|
-
featureToHandleGeom.map((result) => {
|
|
4947
|
-
if (searchResultsGeometryEnabled) {
|
|
4948
|
-
result.entity.data.meta.style = getCommonVectorStyle(Object.assign({}, {
|
|
4949
|
-
feature: result.entity.data
|
|
4950
|
-
}, this.searchState.searchOverlayStyle, result.entity.style?.base ? result.entity.style.base : {}));
|
|
4951
|
-
this.shownResultsGeometries.push(result.entity.data);
|
|
4952
|
-
this.map.queryResultsOverlay.addFeature(result.entity.data, FeatureMotion.None);
|
|
4953
|
-
if (this.hasFeatureEmphasisOnSelection) {
|
|
4954
|
-
this.buildResultEmphasis(result.entity, 'shown');
|
|
4955
|
-
}
|
|
4956
|
-
}
|
|
4957
|
-
});
|
|
4958
|
-
});
|
|
4959
4884
|
this.store.stateView.empty$
|
|
4960
4885
|
.pipe(debounceTime(1500), takeUntilDestroyed(this.destroyRef))
|
|
4961
4886
|
.subscribe((empty) => this.debouncedEmpty.set(empty));
|
|
@@ -4967,6 +4892,25 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
4967
4892
|
this.feature.set(feature);
|
|
4968
4893
|
});
|
|
4969
4894
|
}
|
|
4895
|
+
handleShowAllResults() {
|
|
4896
|
+
this.searchResultsOverlayAll$$ = combineLatest([
|
|
4897
|
+
this.store.entities$,
|
|
4898
|
+
this.searchState.searchResultsGeometryEnabled$
|
|
4899
|
+
]).subscribe((bunch) => {
|
|
4900
|
+
const searchResults = bunch[0];
|
|
4901
|
+
const enabled = bunch[1];
|
|
4902
|
+
const features = searchResults
|
|
4903
|
+
.filter((sr) => sr.meta.dataType === FEATURE)
|
|
4904
|
+
.map((sr) => sr.data);
|
|
4905
|
+
if (enabled && features.length) {
|
|
4906
|
+
this.searchResultsOverlayAll.setFeatures(features, FeatureMotion.None);
|
|
4907
|
+
}
|
|
4908
|
+
else {
|
|
4909
|
+
this.searchResultsOverlayFocused?.clear();
|
|
4910
|
+
this.searchResultsOverlayAll?.clear();
|
|
4911
|
+
}
|
|
4912
|
+
});
|
|
4913
|
+
}
|
|
4970
4914
|
monitorResultOutOfView() {
|
|
4971
4915
|
this.isSelectedResultOutOfView$$ = combineLatest([
|
|
4972
4916
|
this.map.viewController.state$,
|
|
@@ -4980,84 +4924,19 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
4980
4924
|
return;
|
|
4981
4925
|
}
|
|
4982
4926
|
if (selectedResult.data.geometry) {
|
|
4983
|
-
const selectedOlFeature = featureToOl(selectedResult.data, this.map.
|
|
4927
|
+
const selectedOlFeature = featureToOl(selectedResult.data, this.map.projectionCode);
|
|
4984
4928
|
const selectedOlFeatureExtent = computeOlFeaturesExtent([selectedOlFeature], this.map.viewController.getOlProjection());
|
|
4985
|
-
this.isSelectedResultOutOfView$.next(featuresAreOutOfView(this.map.getExtent(), selectedOlFeatureExtent));
|
|
4929
|
+
this.isSelectedResultOutOfView$.next(featuresAreOutOfView(this.map.viewController.getExtent(), selectedOlFeatureExtent));
|
|
4986
4930
|
}
|
|
4987
4931
|
});
|
|
4988
4932
|
}
|
|
4989
|
-
buildResultEmphasis(result, trigger) {
|
|
4990
|
-
if (trigger !== 'shown') {
|
|
4991
|
-
this.clearFeatureEmphasis(trigger);
|
|
4992
|
-
}
|
|
4993
|
-
if (!result || !result.data.geometry) {
|
|
4994
|
-
return;
|
|
4995
|
-
}
|
|
4996
|
-
const myOlFeature = featureToOl(result.data, this.map.projection);
|
|
4997
|
-
const olGeometry = myOlFeature.getGeometry();
|
|
4998
|
-
if (featuresAreTooDeepInView(this.map.viewController, olGeometry.getExtent(), 0.0025)) {
|
|
4999
|
-
const extent = olGeometry.getExtent();
|
|
5000
|
-
const x = extent[0] + (extent[2] - extent[0]) / 2;
|
|
5001
|
-
const y = extent[1] + (extent[3] - extent[1]) / 2;
|
|
5002
|
-
const feature1 = new olFeature({
|
|
5003
|
-
name: `${trigger}AbstractResult'`,
|
|
5004
|
-
geometry: new olPoint([x, y])
|
|
5005
|
-
});
|
|
5006
|
-
const abstractResult = featureFromOl(feature1, this.map.projection);
|
|
5007
|
-
let computedStyle;
|
|
5008
|
-
let zIndexOffset = 0;
|
|
5009
|
-
switch (trigger) {
|
|
5010
|
-
case 'focused':
|
|
5011
|
-
computedStyle = getCommonVectorSelectedStyle(Object.assign({}, { feature: abstractResult }, this.searchState.searchOverlayStyleFocus, result.style?.focus ? result.style.focus : {}));
|
|
5012
|
-
zIndexOffset = 2;
|
|
5013
|
-
break;
|
|
5014
|
-
case 'shown':
|
|
5015
|
-
computedStyle = getCommonVectorStyle(Object.assign({}, { feature: abstractResult }, this.searchState.searchOverlayStyle, result.style?.base ? result.style.base : {}));
|
|
5016
|
-
break;
|
|
5017
|
-
case 'selected':
|
|
5018
|
-
computedStyle = getCommonVectorSelectedStyle(Object.assign({}, { feature: abstractResult }, this.searchState.searchOverlayStyleSelection, result.style?.selection ? result.style.selection : {}));
|
|
5019
|
-
zIndexOffset = 1;
|
|
5020
|
-
break;
|
|
5021
|
-
}
|
|
5022
|
-
abstractResult.meta.style = computedStyle;
|
|
5023
|
-
abstractResult.meta.style.setZIndex(2000 + zIndexOffset);
|
|
5024
|
-
this.map.searchResultsOverlay.addFeature(abstractResult, this.searchState.featureMotion.focus);
|
|
5025
|
-
if (trigger === 'focused') {
|
|
5026
|
-
this.abstractFocusedResult = abstractResult;
|
|
5027
|
-
}
|
|
5028
|
-
if (trigger === 'selected') {
|
|
5029
|
-
this.abstractSelectedResult = abstractResult;
|
|
5030
|
-
}
|
|
5031
|
-
if (trigger === 'shown') {
|
|
5032
|
-
this.shownResultsEmphasisGeometries.push(abstractResult);
|
|
5033
|
-
}
|
|
5034
|
-
}
|
|
5035
|
-
else {
|
|
5036
|
-
this.clearFeatureEmphasis(trigger);
|
|
5037
|
-
}
|
|
5038
|
-
}
|
|
5039
|
-
clearFeatureEmphasis(trigger) {
|
|
5040
|
-
if (trigger === 'focused' && this.abstractFocusedResult) {
|
|
5041
|
-
this.map.searchResultsOverlay.removeFeature(this.abstractFocusedResult);
|
|
5042
|
-
this.abstractFocusedResult = undefined;
|
|
5043
|
-
}
|
|
5044
|
-
if (trigger === 'selected' && this.abstractSelectedResult) {
|
|
5045
|
-
this.map.searchResultsOverlay.removeFeature(this.abstractSelectedResult);
|
|
5046
|
-
this.abstractSelectedResult = undefined;
|
|
5047
|
-
}
|
|
5048
|
-
if (trigger === 'shown') {
|
|
5049
|
-
this.shownResultsEmphasisGeometries.map((shownResult) => this.map.searchResultsOverlay.removeFeature(shownResult));
|
|
5050
|
-
this.shownResultsEmphasisGeometries = [];
|
|
5051
|
-
}
|
|
5052
|
-
}
|
|
5053
4933
|
ngOnDestroy() {
|
|
5054
|
-
this.topPanelState$$.unsubscribe();
|
|
5055
4934
|
this.searchTerm$$.unsubscribe();
|
|
5056
4935
|
if (this.isSelectedResultOutOfView$$) {
|
|
5057
4936
|
this.isSelectedResultOutOfView$$.unsubscribe();
|
|
5058
4937
|
}
|
|
5059
|
-
if (this.
|
|
5060
|
-
this.
|
|
4938
|
+
if (this.searchResultsOverlayAll$$) {
|
|
4939
|
+
this.searchResultsOverlayAll$$.unsubscribe();
|
|
5061
4940
|
}
|
|
5062
4941
|
if (this.getRoute$$) {
|
|
5063
4942
|
this.getRoute$$.unsubscribe();
|
|
@@ -5069,31 +4948,17 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
5069
4948
|
* @param result A search result that could be a feature
|
|
5070
4949
|
*/
|
|
5071
4950
|
onResultFocus(result) {
|
|
5072
|
-
this.
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
feature.setStyle(result.data.meta.style);
|
|
5078
|
-
return;
|
|
5079
|
-
}
|
|
5080
|
-
this.map.searchResultsOverlay.addFeature(result.data, this.searchState.featureMotion.focus);
|
|
4951
|
+
if (this.store.state.get(result).selected) {
|
|
4952
|
+
this.searchResultsOverlayFocused.clear();
|
|
4953
|
+
}
|
|
4954
|
+
else {
|
|
4955
|
+
this.addResultToOverlay(result, this.searchResultsOverlayFocused, this.searchState.featureMotion.focus);
|
|
5081
4956
|
}
|
|
5082
4957
|
}
|
|
5083
4958
|
onResultUnfocus(result) {
|
|
5084
|
-
this.
|
|
5085
|
-
|
|
5086
|
-
return;
|
|
5087
|
-
}
|
|
5088
|
-
if (this.store.state.get(result).selected === true) {
|
|
5089
|
-
const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);
|
|
5090
|
-
if (feature) {
|
|
5091
|
-
const style = getCommonVectorSelectedStyle(Object.assign({}, { feature: result.data }, this.searchState.searchOverlayStyleFocus, result.style?.focus ? result.style.focus : {}));
|
|
5092
|
-
feature.setStyle(style);
|
|
5093
|
-
}
|
|
5094
|
-
return;
|
|
4959
|
+
if (!this.store.state.get(result).selected) {
|
|
4960
|
+
this.searchResultsOverlayFocused.clear();
|
|
5095
4961
|
}
|
|
5096
|
-
this.map.searchResultsOverlay.removeFeature(result.data);
|
|
5097
4962
|
}
|
|
5098
4963
|
/**
|
|
5099
4964
|
* Try to add a feature to the map when it's being selected
|
|
@@ -5101,18 +4966,18 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
5101
4966
|
* @param result A search result that could be a feature or some layer options
|
|
5102
4967
|
*/
|
|
5103
4968
|
onResultSelect(result) {
|
|
5104
|
-
this.
|
|
5105
|
-
this.
|
|
4969
|
+
this.clearResultOverlays();
|
|
4970
|
+
this.addResultToOverlay(result, this.searchResultsOverlaySelected, this.searchState.featureMotion.selected);
|
|
5106
4971
|
this.searchState.setSelectedResult(result);
|
|
5107
|
-
if (this.
|
|
4972
|
+
if (this.topPanelStateValue() === 'initial') {
|
|
5108
4973
|
if (this.topPanelStateDefault() !== 'collapsed') {
|
|
5109
|
-
this.
|
|
4974
|
+
this.topPanelStateValue.set('expanded');
|
|
5110
4975
|
}
|
|
5111
4976
|
else {
|
|
5112
|
-
this.
|
|
4977
|
+
this.topPanelStateValue.set('collapsed');
|
|
5113
4978
|
}
|
|
5114
4979
|
}
|
|
5115
|
-
if (this.
|
|
4980
|
+
if (this.topPanelStateValue() === 'expanded') {
|
|
5116
4981
|
const igoList = this.computeElementRef()[0];
|
|
5117
4982
|
const selected = this.computeElementRef()[1];
|
|
5118
4983
|
if (!this.isScrolledIntoView(igoList, selected)) {
|
|
@@ -5161,6 +5026,10 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
5161
5026
|
});
|
|
5162
5027
|
}, 250);
|
|
5163
5028
|
}
|
|
5029
|
+
clearResultOverlays() {
|
|
5030
|
+
this.searchResultsOverlayFocused?.clear();
|
|
5031
|
+
this.searchResultsOverlaySelected?.clear();
|
|
5032
|
+
}
|
|
5164
5033
|
computeElementRef() {
|
|
5165
5034
|
const items = document.getElementsByTagName('igo-search-results-item');
|
|
5166
5035
|
const igoList = this.elRef.nativeElement.getElementsByTagName('igo-list')[0];
|
|
@@ -5174,10 +5043,10 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
5174
5043
|
}
|
|
5175
5044
|
adjustTopPanel(elemSource, elem) {
|
|
5176
5045
|
if (!this.isScrolledIntoView(elemSource, elem)) {
|
|
5046
|
+
const firstChild = elem.children[0];
|
|
5047
|
+
const childHeight = firstChild instanceof HTMLElement ? firstChild.offsetHeight : 0;
|
|
5177
5048
|
elemSource.scrollTop =
|
|
5178
|
-
elem.offsetTop +
|
|
5179
|
-
elem.children[0].offsetHeight -
|
|
5180
|
-
elemSource.clientHeight;
|
|
5049
|
+
elem.offsetTop + childHeight - elemSource.clientHeight;
|
|
5181
5050
|
}
|
|
5182
5051
|
}
|
|
5183
5052
|
toggleTopPanel(event) {
|
|
@@ -5185,11 +5054,11 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
5185
5054
|
return;
|
|
5186
5055
|
}
|
|
5187
5056
|
else {
|
|
5188
|
-
if (this.
|
|
5189
|
-
this.
|
|
5057
|
+
if (this.topPanelStateValue() === 'expanded') {
|
|
5058
|
+
this.topPanelStateValue.set('collapsed');
|
|
5190
5059
|
}
|
|
5191
5060
|
else {
|
|
5192
|
-
this.
|
|
5061
|
+
this.topPanelStateValue.set('expanded');
|
|
5193
5062
|
}
|
|
5194
5063
|
}
|
|
5195
5064
|
}
|
|
@@ -5208,17 +5077,19 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
5208
5077
|
* @param result A search result that could be a feature
|
|
5209
5078
|
* @param motion A FeatureMotion to trigger when adding the searchresult to the map search overlay
|
|
5210
5079
|
*/
|
|
5211
|
-
|
|
5080
|
+
addResultToOverlay(result, overlay, motion = FeatureMotion.Default) {
|
|
5212
5081
|
if (result.meta.dataType !== FEATURE) {
|
|
5213
5082
|
return undefined;
|
|
5214
5083
|
}
|
|
5215
5084
|
const feature = result.data;
|
|
5216
|
-
//
|
|
5085
|
+
// Sometimes features have no geometry. It happens with some GetFeatureInfo
|
|
5217
5086
|
if (!feature.geometry) {
|
|
5218
5087
|
return;
|
|
5219
5088
|
}
|
|
5220
|
-
|
|
5221
|
-
|
|
5089
|
+
if (!feature.meta) {
|
|
5090
|
+
return;
|
|
5091
|
+
}
|
|
5092
|
+
overlay.setFeatures([feature], motion);
|
|
5222
5093
|
}
|
|
5223
5094
|
isScrolledIntoView(elemSource, elem) {
|
|
5224
5095
|
const padding = 6;
|
|
@@ -5261,26 +5132,30 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
5261
5132
|
];
|
|
5262
5133
|
}
|
|
5263
5134
|
}
|
|
5264
|
-
stop
|
|
5265
|
-
|
|
5266
|
-
|
|
5135
|
+
if (stop) {
|
|
5136
|
+
stop.text = this.featureTitle ?? '';
|
|
5137
|
+
stop.coordinates = coord;
|
|
5138
|
+
this.directionState.stopsStore.update(stop);
|
|
5139
|
+
}
|
|
5267
5140
|
if (this.map.geolocationController.position$.value) {
|
|
5268
5141
|
const currentPos = this.map.geolocationController.position$.value;
|
|
5269
5142
|
const stop = this.directionState.stopsStore
|
|
5270
5143
|
.all()
|
|
5271
5144
|
.find((e) => e.position === 0);
|
|
5272
|
-
const currentCoord =
|
|
5145
|
+
const currentCoord = olproj.transform(currentPos.position, currentPos.projection, 'EPSG:4326');
|
|
5273
5146
|
const coord = roundCoordTo([currentCoord[0], currentCoord[1]], 6);
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5147
|
+
if (stop) {
|
|
5148
|
+
stop.text = coord.join(',');
|
|
5149
|
+
stop.coordinates = coord;
|
|
5150
|
+
this.directionState.stopsStore.update(stop);
|
|
5151
|
+
}
|
|
5277
5152
|
}
|
|
5278
5153
|
}
|
|
5279
5154
|
});
|
|
5280
5155
|
}, 250);
|
|
5281
5156
|
}
|
|
5282
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5283
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
5157
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SearchResultsToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5158
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: SearchResultsToolComponent, isStandalone: true, selector: "igo-search-results-tool", inputs: { showIcons: { classPropertyName: "showIcons", publicName: "showIcons", isSignal: true, isRequired: false, transformFunction: null }, topPanelStateDefault: { classPropertyName: "topPanelStateDefault", publicName: "topPanelStateDefault", isSignal: true, isRequired: false, transformFunction: null }, topPanelState: { classPropertyName: "topPanelState", publicName: "topPanelState", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "searchResult", first: true, predicate: SearchResultsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (debouncedEmpty()) {\n @if (!store || store.stateView.empty) {\n <section class=\"search-results-tool-empty\">\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'\n | translate\n | sanitizeHtml\n \"\n ></div>\n </section>\n }\n} @else {\n @let feature = this.feature();\n <igo-flexible\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 48px)\"\n collapsedMobile=\"calc(100% - 48px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"feature ? topPanelStateValue() : 'initial'\"\n >\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons()\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\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 </ng-template>\n </igo-search-results>\n </div>\n <div igoFlexibleFill class=\"igo-content\">\n @if (feature) {\n <igo-panel\n [title]=\"featureTitle\"\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 topPanelStateValue() === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n @if (feature.geometry) {\n <button\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]=\"\n (isSelectedResultOutOfView$ | async) === false\n \"\n >zoom_in</mat-icon\n >\n </button>\n }\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n />\n </igo-panel>\n }\n </div>\n </igo-flexible>\n}\n", styles: [":host{display:flex;flex-direction:column;flex:1;height:100%}.search-results-tool-empty{padding:0 16px}\n"], dependencies: [{ 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", "termSplitter"], outputs: ["resultFocus", "resultUnfocus", "resultSelect", "moreResults", "resultMouseenter", "resultMouseleave"] }, { kind: "component", type: SearchResultAddButtonComponent, selector: "igo-search-add-button", inputs: ["layer", "store", "added", "map", "saveSearchResultInLayer", "stores"], outputs: ["addedChange"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i4$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: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5284
5159
|
};
|
|
5285
5160
|
SearchResultsToolComponent = __decorate([
|
|
5286
5161
|
ToolComponent({
|
|
@@ -5290,7 +5165,7 @@ SearchResultsToolComponent = __decorate([
|
|
|
5290
5165
|
}),
|
|
5291
5166
|
__metadata("design:paramtypes", [])
|
|
5292
5167
|
], SearchResultsToolComponent);
|
|
5293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: SearchResultsToolComponent, decorators: [{
|
|
5294
5169
|
type: Component,
|
|
5295
5170
|
args: [{ selector: 'igo-search-results-tool', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
5296
5171
|
FlexibleComponent,
|
|
@@ -5305,20 +5180,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
5305
5180
|
AsyncPipe,
|
|
5306
5181
|
IgoLanguageModule,
|
|
5307
5182
|
SanitizeHtmlPipe
|
|
5308
|
-
], template: "@if (debouncedEmpty()) {\n @if (!store || store.stateView.empty) {\n <section class=\"search-results-tool-empty\">\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'\n | translate\n | sanitizeHtml\n \"\n ></div>\n </section>\n }\n} @else {\n @let feature = this.feature();\n <igo-flexible\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 48px)\"\n collapsedMobile=\"calc(100% - 48px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"feature ?
|
|
5309
|
-
}], ctorParameters: () => [], propDecorators: { showIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcons", required: false }] }], topPanelStateDefault: [{ type: i0.Input, args: [{ isSignal: true, alias: "topPanelStateDefault", required: false }] }], topPanelState: [{
|
|
5310
|
-
type: Input
|
|
5311
|
-
}] } });
|
|
5183
|
+
], template: "@if (debouncedEmpty()) {\n @if (!store || store.stateView.empty) {\n <section class=\"search-results-tool-empty\">\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'\n | translate\n | sanitizeHtml\n \"\n ></div>\n </section>\n }\n} @else {\n @let feature = this.feature();\n <igo-flexible\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 48px)\"\n collapsedMobile=\"calc(100% - 48px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"feature ? topPanelStateValue() : 'initial'\"\n >\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons()\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\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 </ng-template>\n </igo-search-results>\n </div>\n <div igoFlexibleFill class=\"igo-content\">\n @if (feature) {\n <igo-panel\n [title]=\"featureTitle\"\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 topPanelStateValue() === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n @if (feature.geometry) {\n <button\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]=\"\n (isSelectedResultOutOfView$ | async) === false\n \"\n >zoom_in</mat-icon\n >\n </button>\n }\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n />\n </igo-panel>\n }\n </div>\n </igo-flexible>\n}\n", styles: [":host{display:flex;flex-direction:column;flex:1;height:100%}.search-results-tool-empty{padding:0 16px}\n"] }]
|
|
5184
|
+
}], ctorParameters: () => [], propDecorators: { showIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcons", required: false }] }], topPanelStateDefault: [{ type: i0.Input, args: [{ isSignal: true, alias: "topPanelStateDefault", required: false }] }], searchResult: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SearchResultsComponent), { isSignal: true }] }], topPanelState: [{ type: i0.Input, args: [{ isSignal: true, alias: "topPanelState", required: false }] }] } });
|
|
5312
5185
|
|
|
5313
5186
|
/**
|
|
5314
5187
|
* @deprecated import the components/directive directly or INTEGRATION_SEARCH_DIRECTIVES for the set
|
|
5315
5188
|
*/
|
|
5316
5189
|
class IgoAppSearchModule {
|
|
5317
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5318
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
5319
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
5190
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5191
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchModule, imports: [SearchBarBindingDirective, SearchResultsToolComponent], exports: [SearchBarBindingDirective, SearchResultsToolComponent] });
|
|
5192
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchModule, imports: [SearchResultsToolComponent] });
|
|
5320
5193
|
}
|
|
5321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchModule, decorators: [{
|
|
5322
5195
|
type: NgModule,
|
|
5323
5196
|
args: [{
|
|
5324
5197
|
imports: [SearchBarBindingDirective, SearchResultsToolComponent],
|
|
@@ -5330,11 +5203,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
5330
5203
|
* @deprecated import the WorkspaceButtonComponent directly
|
|
5331
5204
|
*/
|
|
5332
5205
|
class IgoAppWorkspaceModule {
|
|
5333
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5334
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
5335
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
5206
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppWorkspaceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5207
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppWorkspaceModule, imports: [WorkspaceButtonComponent], exports: [WorkspaceButtonComponent] });
|
|
5208
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppWorkspaceModule, imports: [WorkspaceButtonComponent] });
|
|
5336
5209
|
}
|
|
5337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppWorkspaceModule, decorators: [{
|
|
5338
5211
|
type: NgModule,
|
|
5339
5212
|
args: [{
|
|
5340
5213
|
imports: [WorkspaceButtonComponent],
|
|
@@ -5346,8 +5219,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
5346
5219
|
* @deprecated import the components directly
|
|
5347
5220
|
*/
|
|
5348
5221
|
class IgoIntegrationModule {
|
|
5349
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5350
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
5222
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoIntegrationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5223
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoIntegrationModule, exports: [IgoAppContextModule,
|
|
5351
5224
|
IgoAppCatalogModule,
|
|
5352
5225
|
IgoAppDirectionsModule,
|
|
5353
5226
|
IgoAppDrawModule,
|
|
@@ -5360,7 +5233,7 @@ class IgoIntegrationModule {
|
|
|
5360
5233
|
IgoAppFilterModule,
|
|
5361
5234
|
IgoAppAboutModule,
|
|
5362
5235
|
IgoAppGeometryFormModule] });
|
|
5363
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
5236
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoIntegrationModule, imports: [IgoAppContextModule,
|
|
5364
5237
|
IgoAppCatalogModule,
|
|
5365
5238
|
IgoAppDirectionsModule,
|
|
5366
5239
|
IgoAppDrawModule,
|
|
@@ -5374,7 +5247,7 @@ class IgoIntegrationModule {
|
|
|
5374
5247
|
IgoAppAboutModule,
|
|
5375
5248
|
IgoAppGeometryFormModule] });
|
|
5376
5249
|
}
|
|
5377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoIntegrationModule, decorators: [{
|
|
5378
5251
|
type: NgModule,
|
|
5379
5252
|
args: [{
|
|
5380
5253
|
imports: [],
|
|
@@ -5428,7 +5301,8 @@ class AnalyticsListenerService {
|
|
|
5428
5301
|
listenContext() {
|
|
5429
5302
|
this.contextState.context$.subscribe((context) => {
|
|
5430
5303
|
if (context) {
|
|
5431
|
-
|
|
5304
|
+
const eventName = context.id?.toString() ?? context.uri;
|
|
5305
|
+
this.analyticsService.trackEvent('context', 'activateContext', eventName);
|
|
5432
5306
|
}
|
|
5433
5307
|
});
|
|
5434
5308
|
}
|
|
@@ -5498,14 +5372,15 @@ class AnalyticsListenerService {
|
|
|
5498
5372
|
break;
|
|
5499
5373
|
}
|
|
5500
5374
|
}
|
|
5501
|
-
|
|
5375
|
+
const eventName = wmsParams || wmtsParams || restParams;
|
|
5376
|
+
this.analyticsService.trackLayer('layer', 'addLayer', eventName);
|
|
5502
5377
|
});
|
|
5503
5378
|
});
|
|
5504
5379
|
}
|
|
5505
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5506
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5380
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AnalyticsListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5381
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AnalyticsListenerService, providedIn: 'root' });
|
|
5507
5382
|
}
|
|
5508
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5383
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AnalyticsListenerService, decorators: [{
|
|
5509
5384
|
type: Injectable,
|
|
5510
5385
|
args: [{
|
|
5511
5386
|
providedIn: 'root'
|
|
@@ -5526,29 +5401,21 @@ const INTEGRATION_FILTER_DIRECTIVES = [
|
|
|
5526
5401
|
class QueryState {
|
|
5527
5402
|
configService = inject(ConfigService);
|
|
5528
5403
|
propertyTypeDetectorService = inject(PropertyTypeDetectorService);
|
|
5529
|
-
capabilitiesService = inject(CapabilitiesService);
|
|
5530
5404
|
mapState = inject(MapState);
|
|
5531
5405
|
/**
|
|
5532
5406
|
* Store that holds the query results
|
|
5533
5407
|
*/
|
|
5534
5408
|
store = new EntityStore([]);
|
|
5535
5409
|
queryOverlayStyle = {};
|
|
5536
|
-
queryOverlayStyleSelection = {};
|
|
5537
|
-
queryOverlayStyleFocus = {};
|
|
5538
5410
|
constructor() {
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
this.queryOverlayStyle = queryOverlayStyle.base;
|
|
5542
|
-
this.queryOverlayStyleSelection = queryOverlayStyle.selection;
|
|
5543
|
-
this.queryOverlayStyleFocus = queryOverlayStyle.focus;
|
|
5544
|
-
}
|
|
5545
|
-
const geoPropertiesStrategy = new GeoPropertiesStrategy({ map: this.mapState.map }, this.propertyTypeDetectorService, this.capabilitiesService);
|
|
5411
|
+
this.queryOverlayStyle = this.configService.getConfig('queryOverlayStyle', {});
|
|
5412
|
+
const geoPropertiesStrategy = new GeoPropertiesStrategy({ map: this.mapState.map }, this.propertyTypeDetectorService);
|
|
5546
5413
|
this.store.addStrategy(geoPropertiesStrategy, true);
|
|
5547
5414
|
}
|
|
5548
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5549
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
5415
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: QueryState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5416
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: QueryState, providedIn: 'root' });
|
|
5550
5417
|
}
|
|
5551
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5418
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: QueryState, decorators: [{
|
|
5552
5419
|
type: Injectable,
|
|
5553
5420
|
args: [{
|
|
5554
5421
|
providedIn: 'root'
|
|
@@ -5559,11 +5426,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
5559
5426
|
* @deprecated import the SearchResultsToolComponent directly
|
|
5560
5427
|
*/
|
|
5561
5428
|
class IgoAppSearchResultsToolModule {
|
|
5562
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5563
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
5564
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
5429
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchResultsToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5430
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchResultsToolModule, imports: [SearchResultsToolComponent], exports: [SearchResultsToolComponent] });
|
|
5431
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchResultsToolModule, imports: [SearchResultsToolComponent] });
|
|
5565
5432
|
}
|
|
5566
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchResultsToolModule, decorators: [{
|
|
5567
5434
|
type: NgModule,
|
|
5568
5435
|
args: [{
|
|
5569
5436
|
imports: [SearchResultsToolComponent],
|
|
@@ -5575,11 +5442,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
5575
5442
|
* @deprecated import the SearchBarBindingDirective directly
|
|
5576
5443
|
*/
|
|
5577
5444
|
class IgoAppSearchBarModule {
|
|
5578
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
5579
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
5580
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
5445
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5446
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchBarModule, imports: [SearchBarBindingDirective], exports: [SearchBarBindingDirective] });
|
|
5447
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchBarModule });
|
|
5581
5448
|
}
|
|
5582
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
5449
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoAppSearchBarModule, decorators: [{
|
|
5583
5450
|
type: NgModule,
|
|
5584
5451
|
args: [{
|
|
5585
5452
|
imports: [SearchBarBindingDirective],
|