@igo2/geo 1.13.4 → 1.14.1
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.
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -1
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +562 -32
- package/esm2020/lib/draw/draw/draw.component.mjs +360 -130
- package/esm2020/lib/draw/draw/draw.module.mjs +12 -4
- package/esm2020/lib/draw/shared/draw-style.service.mjs +2 -2
- package/esm2020/lib/draw/shared/draw.enum.mjs +14 -1
- package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2020/lib/draw/shared/draw.utils.mjs +19 -1
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +43 -16
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +21 -8
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +12 -2
- package/esm2020/lib/geometry/shared/controls/draw.mjs +53 -10
- package/esm2020/lib/import-export/shared/export.service.mjs +2 -2
- package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.service.mjs +26 -6
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +2 -2
- package/esm2020/lib/map/shared/map.utils.mjs +4 -1
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +7 -7
- package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +33 -4
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +12 -12
- package/esm2020/lib/print/shared/geopdf.mjs +58 -0
- package/esm2020/lib/print/shared/index.mjs +2 -1
- package/esm2020/lib/print/shared/print.interface.mjs +1 -1
- package/esm2020/lib/print/shared/print.service.mjs +118 -64
- package/esm2020/lib/query/shared/query.service.mjs +7 -4
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +30 -28
- package/esm2020/lib/search/search-results/search-results.component.mjs +22 -13
- package/esm2020/lib/search/shared/search.utils.mjs +2 -1
- package/esm2020/lib/search/shared/sources/icherche.mjs +70 -58
- package/esm2020/lib/search/shared/sources/index.mjs +1 -3
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +20 -9
- package/fesm2015/igo2-geo.mjs +1505 -529
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +1456 -525
- package/fesm2020/igo2-geo.mjs.map +1 -1
- package/lib/catalog/shared/catalog.abstract.d.ts +1 -0
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +1 -0
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +1 -0
- package/lib/draw/draw/draw-popup.component.d.ts +52 -5
- package/lib/draw/draw/draw.component.d.ts +34 -4
- package/lib/draw/draw/draw.module.d.ts +3 -1
- package/lib/draw/shared/draw.enum.d.ts +11 -0
- package/lib/draw/shared/draw.interface.d.ts +4 -0
- package/lib/draw/shared/draw.utils.d.ts +2 -0
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +3 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +2 -1
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +7 -1
- package/lib/geometry/shared/controls/draw.d.ts +18 -0
- package/lib/import-export/shared/import.interface.d.ts +2 -1
- package/lib/import-export/shared/import.service.d.ts +7 -0
- package/lib/layer/shared/layers/layer.interface.d.ts +4 -0
- package/lib/map/shared/map.utils.d.ts +1 -0
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -0
- package/lib/offline/geoDB/geoDB.interface.d.ts +1 -0
- package/lib/offline/geoDB/geoDB.service.d.ts +3 -3
- package/lib/print/shared/geopdf.d.ts +1 -0
- package/lib/print/shared/index.d.ts +1 -0
- package/lib/print/shared/print.interface.d.ts +5 -0
- package/lib/print/shared/print.service.d.ts +17 -8
- package/lib/search/search-bar/search-bar.component.d.ts +8 -8
- package/lib/search/search-results/search-results.component.d.ts +4 -1
- package/lib/search/shared/sources/index.d.ts +0 -2
- package/lib/workspace/shared/edition-workspace.service.d.ts +4 -0
- package/package.json +4 -4
- package/esm2020/lib/search/shared/sources/cadastre.mjs +0 -126
- package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +0 -23
- package/lib/search/shared/sources/cadastre.d.ts +0 -33
- package/lib/search/shared/sources/cadastre.providers.d.ts +0 -18
package/fesm2020/igo2-geo.mjs
CHANGED
|
@@ -11,7 +11,7 @@ import { MatListModule } from '@angular/material/list';
|
|
|
11
11
|
import * as i4 from '@angular/material/tooltip';
|
|
12
12
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
13
13
|
import * as i5$1 from '@igo2/common';
|
|
14
|
-
import { getEntityId, getEntityTitle, getEntityProperty, getEntityRevision, getEntityIcon, EntityStore, EntityStoreStrategy, EntityStoreWatcher, SecureImagePipe, IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoCustomHtmlModule, IgoEntityTableModule, IgoKeyValueModule, IgoFormModule, IgoFormFieldComponent, DOMService, EntityStoreFilterSelectionStrategy,
|
|
14
|
+
import { getEntityId, getEntityTitle, getEntityProperty, getEntityRevision, getEntityIcon, EntityStore, EntityStoreStrategy, EntityStoreWatcher, SecureImagePipe, EntityTableColumnRenderer, IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoCustomHtmlModule, IgoEntityTableModule, IgoKeyValueModule, IgoFormModule, IgoFormFieldComponent, DOMService, EntityStoreFilterSelectionStrategy, IgoEntityModule, IgoDOMModule, DragAndDropDirective, IgoSpinnerModule, IgoDrapDropModule, IgoConfirmDialogModule, getEntityTitleHtml, EntityStoreFilterCustomFuncStrategy, IgoStopPropagationModule, IgoFlexibleModule, WidgetService, Workspace, ActionStore, IgoWidgetModule } from '@igo2/common';
|
|
15
15
|
import * as i3 from '@angular/material/button';
|
|
16
16
|
import { MatButtonModule } from '@angular/material/button';
|
|
17
17
|
import * as i2$1 from '@igo2/core';
|
|
@@ -19,7 +19,7 @@ import { IgoLanguageModule, ConfigService, Media, StorageScope, IgoMessageModule
|
|
|
19
19
|
import * as i1 from '@angular/material/dialog';
|
|
20
20
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
21
21
|
import * as i7 from '@ngx-translate/core';
|
|
22
|
-
import { BehaviorSubject, combineLatest, of, Observable, forkJoin, Subject, interval, skipWhile as skipWhile$1, zip, EMPTY, ReplaySubject, timer, fromEvent, throwError } from 'rxjs';
|
|
22
|
+
import { BehaviorSubject, combineLatest, of, Observable, forkJoin, Subject, interval, skipWhile as skipWhile$1, zip, EMPTY, ReplaySubject, timer, fromEvent, Subscription, throwError } from 'rxjs';
|
|
23
23
|
import { map, concatMap, first, catchError, skipWhile, debounceTime, skip, distinctUntilChanged, switchMap, take, mergeMap, debounce, takeUntil } from 'rxjs/operators';
|
|
24
24
|
import { Watcher, uuid, SubjectStatus, NumberUtils, ObjectUtils, userAgent, Clipboard, downloadContent, strEnum, ChangeUtils } from '@igo2/utils';
|
|
25
25
|
import olMap from 'ol/Map';
|
|
@@ -54,7 +54,7 @@ import { WMSCapabilities, WMTSCapabilities, EsriJSON } from 'ol/format';
|
|
|
54
54
|
import { Md5 } from 'ts-md5';
|
|
55
55
|
import { MAC } from 'ol/has';
|
|
56
56
|
import * as olfilter from 'ol/format/filter';
|
|
57
|
-
import
|
|
57
|
+
import olFormatWKT from 'ol/format/WKT';
|
|
58
58
|
import olFormatWFS from 'ol/format/WFS';
|
|
59
59
|
import moment from 'moment';
|
|
60
60
|
import olFormatGML2 from 'ol/format/GML2';
|
|
@@ -105,10 +105,10 @@ import { MAT_DATE_LOCALE, MatOptionModule, MatNativeDateModule } from '@angular/
|
|
|
105
105
|
import * as i13 from '@angular/material/form-field';
|
|
106
106
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
107
107
|
import * as i2$2 from '@angular/forms';
|
|
108
|
-
import { ReactiveFormsModule, FormsModule, Validators
|
|
108
|
+
import { UntypedFormControl, ReactiveFormsModule, FormsModule, Validators } from '@angular/forms';
|
|
109
109
|
import * as i15 from '@angular/material/select';
|
|
110
110
|
import { MatSelectModule } from '@angular/material/select';
|
|
111
|
-
import * as i12
|
|
111
|
+
import * as i12 from '@angular/material/checkbox';
|
|
112
112
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
113
113
|
import * as i11 from '@angular/material/divider';
|
|
114
114
|
import { MatDividerModule } from '@angular/material/divider';
|
|
@@ -120,7 +120,7 @@ import * as i23 from '@angular/material/slide-toggle';
|
|
|
120
120
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
121
121
|
import * as i13$1 from '@angular/material/slider';
|
|
122
122
|
import { MatSliderModule, MatSlider } from '@angular/material/slider';
|
|
123
|
-
import * as i12 from 'ngx-color-picker';
|
|
123
|
+
import * as i12$1 from 'ngx-color-picker';
|
|
124
124
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
125
125
|
import scrollIntoView from 'scroll-into-view-if-needed';
|
|
126
126
|
import OlOverlay from 'ol/Overlay';
|
|
@@ -135,13 +135,13 @@ import { doubleClick } from 'ol/events/condition';
|
|
|
135
135
|
import lineIntersect from '@turf/line-intersect';
|
|
136
136
|
import * as i18 from '@angular/material/button-toggle';
|
|
137
137
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
138
|
+
import * as i17 from '@angular/material/radio';
|
|
139
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
138
140
|
import * as i11$1 from '@angular/material/autocomplete';
|
|
139
141
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
140
142
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
141
143
|
import * as i25 from '@angular/material/datepicker';
|
|
142
144
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
143
|
-
import * as i17 from '@angular/material/radio';
|
|
144
|
-
import { MatRadioModule } from '@angular/material/radio';
|
|
145
145
|
import * as i21 from '@angular/material/table';
|
|
146
146
|
import { MatTableModule } from '@angular/material/table';
|
|
147
147
|
import * as i20 from '@angular/material/tabs';
|
|
@@ -157,7 +157,7 @@ import { SelectionModel } from '@angular/cdk/collections';
|
|
|
157
157
|
import { NestedTreeControl } from '@angular/cdk/tree';
|
|
158
158
|
import { encode } from 'windows-1252';
|
|
159
159
|
import { saveAs } from 'file-saver';
|
|
160
|
-
import
|
|
160
|
+
import jsPDF from 'jspdf';
|
|
161
161
|
import html2canvas from 'html2canvas';
|
|
162
162
|
import JSZip from 'jszip';
|
|
163
163
|
import * as i3$1 from '@angular/cdk/drag-drop';
|
|
@@ -1095,6 +1095,9 @@ function roundCoordTo(coord, decimal = 3) {
|
|
|
1095
1095
|
NumberUtils.roundToNDecimal(coord[1], decimal)
|
|
1096
1096
|
];
|
|
1097
1097
|
}
|
|
1098
|
+
function roundCoordToString(coord, decimal = 3) {
|
|
1099
|
+
return roundCoordTo(coord, decimal).map(r => r.toString());
|
|
1100
|
+
}
|
|
1098
1101
|
/**
|
|
1099
1102
|
* Returns an array of converted coordinates.
|
|
1100
1103
|
* Conversion is done for every configured projections
|
|
@@ -1554,7 +1557,7 @@ class OgcFilterWriter {
|
|
|
1554
1557
|
const wfsExpression = filterOptions.expression;
|
|
1555
1558
|
let geometry;
|
|
1556
1559
|
if (wfsWktGeometry) {
|
|
1557
|
-
const wkt = new
|
|
1560
|
+
const wkt = new olFormatWKT();
|
|
1558
1561
|
geometry = wkt.readGeometry(wfsWktGeometry, {
|
|
1559
1562
|
dataProjection: wfsSrsName,
|
|
1560
1563
|
featureProjection: wfsSrsName || 'EPSG:3857'
|
|
@@ -8444,12 +8447,12 @@ class MapOfflineDirective {
|
|
|
8444
8447
|
else {
|
|
8445
8448
|
if (this.networkState.connection === false ||
|
|
8446
8449
|
this.offlineButtonState.connection === false) {
|
|
8447
|
-
layer.
|
|
8450
|
+
layer.maxResolution = 0;
|
|
8448
8451
|
return;
|
|
8449
8452
|
}
|
|
8450
8453
|
else if (this.networkState.connection === true ||
|
|
8451
8454
|
this.offlineButtonState.connection === true) {
|
|
8452
|
-
layer.
|
|
8455
|
+
layer.maxResolution = layer.options.maxResolution || Infinity;
|
|
8453
8456
|
return;
|
|
8454
8457
|
}
|
|
8455
8458
|
}
|
|
@@ -8477,22 +8480,22 @@ class MapOfflineDirective {
|
|
|
8477
8480
|
else {
|
|
8478
8481
|
if (this.networkState.connection === false ||
|
|
8479
8482
|
this.offlineButtonState.connection === false) {
|
|
8480
|
-
layer.
|
|
8483
|
+
layer.maxResolution = 0;
|
|
8481
8484
|
}
|
|
8482
8485
|
else if (this.networkState.connection === true ||
|
|
8483
8486
|
this.offlineButtonState.connection === true) {
|
|
8484
|
-
layer.
|
|
8487
|
+
layer.maxResolution = layer.options.maxResolution || Infinity;
|
|
8485
8488
|
}
|
|
8486
8489
|
}
|
|
8487
8490
|
}
|
|
8488
8491
|
else {
|
|
8489
8492
|
if (this.networkState.connection === false ||
|
|
8490
8493
|
this.offlineButtonState.connection === false) {
|
|
8491
|
-
layer.
|
|
8494
|
+
layer.maxResolution = 0;
|
|
8492
8495
|
}
|
|
8493
8496
|
else if (this.networkState.connection === true ||
|
|
8494
8497
|
this.offlineButtonState.connection === true) {
|
|
8495
|
-
layer.
|
|
8498
|
+
layer.maxResolution = layer.options.maxResolution || Infinity;
|
|
8496
8499
|
}
|
|
8497
8500
|
}
|
|
8498
8501
|
});
|
|
@@ -8687,7 +8690,7 @@ class HoverFeatureDirective {
|
|
|
8687
8690
|
zIndex: 901,
|
|
8688
8691
|
renderMode: "vector",
|
|
8689
8692
|
declutter: true,
|
|
8690
|
-
source: new olSourceVectorTile({}),
|
|
8693
|
+
source: new olSourceVectorTile({ projection: this.map.projection }),
|
|
8691
8694
|
style: (feature, resolution) => {
|
|
8692
8695
|
if (this.mvtStyleOptions && feature.getId() in this.selectionMVT) {
|
|
8693
8696
|
return this.createHoverStyle(feature, this.mvtStyleOptions, resolution);
|
|
@@ -9656,7 +9659,7 @@ class GeoDBService {
|
|
|
9656
9659
|
this.compression = compression;
|
|
9657
9660
|
this.dbName = 'geoData';
|
|
9658
9661
|
this.collisionsMap = new Map();
|
|
9659
|
-
this.
|
|
9662
|
+
this._newData = 0;
|
|
9660
9663
|
}
|
|
9661
9664
|
/**
|
|
9662
9665
|
* Only blob can be will be compressed
|
|
@@ -9691,7 +9694,7 @@ class GeoDBService {
|
|
|
9691
9694
|
return this.ngxIndexedDBService.getByID(this.dbName, url);
|
|
9692
9695
|
}), concatMap((dbObject) => {
|
|
9693
9696
|
if (!dbObject) {
|
|
9694
|
-
this.
|
|
9697
|
+
this._newData++;
|
|
9695
9698
|
return this.ngxIndexedDBService.add(this.dbName, geoDBData);
|
|
9696
9699
|
}
|
|
9697
9700
|
else {
|
|
@@ -9743,11 +9746,11 @@ class GeoDBService {
|
|
|
9743
9746
|
deleteByKey(url) {
|
|
9744
9747
|
return this.ngxIndexedDBService.deleteByKey(this.dbName, url);
|
|
9745
9748
|
}
|
|
9746
|
-
|
|
9749
|
+
getRegionCountByID(id) {
|
|
9747
9750
|
const subject = new Subject();
|
|
9748
9751
|
const dbRequest = this.getRegionByID(id)
|
|
9749
|
-
.subscribe((
|
|
9750
|
-
subject.next(
|
|
9752
|
+
.subscribe((datas) => {
|
|
9753
|
+
subject.next(datas.length);
|
|
9751
9754
|
subject.complete();
|
|
9752
9755
|
});
|
|
9753
9756
|
return subject;
|
|
@@ -9766,9 +9769,9 @@ class GeoDBService {
|
|
|
9766
9769
|
}
|
|
9767
9770
|
const IDBKey = IDBKeyRange.only(id);
|
|
9768
9771
|
const dbRequest = this.ngxIndexedDBService.getAllByIndex(this.dbName, 'regionID', IDBKey);
|
|
9769
|
-
dbRequest.subscribe((
|
|
9770
|
-
|
|
9771
|
-
this.ngxIndexedDBService.deleteByKey(this.dbName,
|
|
9772
|
+
dbRequest.subscribe((datas) => {
|
|
9773
|
+
datas.forEach((data) => {
|
|
9774
|
+
this.ngxIndexedDBService.deleteByKey(this.dbName, data.url);
|
|
9772
9775
|
});
|
|
9773
9776
|
});
|
|
9774
9777
|
return dbRequest;
|
|
@@ -9779,7 +9782,7 @@ class GeoDBService {
|
|
|
9779
9782
|
}
|
|
9780
9783
|
resetCounters() {
|
|
9781
9784
|
this.resetCollisionsMap();
|
|
9782
|
-
this.
|
|
9785
|
+
this._newData = 0;
|
|
9783
9786
|
}
|
|
9784
9787
|
resetCollisionsMap() {
|
|
9785
9788
|
this.collisionsMap = new Map();
|
|
@@ -9797,8 +9800,8 @@ class GeoDBService {
|
|
|
9797
9800
|
}
|
|
9798
9801
|
}
|
|
9799
9802
|
}
|
|
9800
|
-
get
|
|
9801
|
-
return this.
|
|
9803
|
+
get newData() {
|
|
9804
|
+
return this._newData;
|
|
9802
9805
|
}
|
|
9803
9806
|
}
|
|
9804
9807
|
GeoDBService.ɵfac = function GeoDBService_Factory(t) { return new (t || GeoDBService)(i0.ɵɵinject(i1$3.NgxIndexedDBService), i0.ɵɵinject(i2$1.CompressionService)); };
|
|
@@ -10819,7 +10822,7 @@ class QueryService {
|
|
|
10819
10822
|
features = this.extractGML2Data(res, layer, allowedFieldsAndAlias);
|
|
10820
10823
|
break;
|
|
10821
10824
|
}
|
|
10822
|
-
if (features.length > 0 && features[0].geometry === null) {
|
|
10825
|
+
if (features.length > 0 && (features[0].geometry === null || !features[0].geometry)) {
|
|
10823
10826
|
const geomToAdd = this.createGeometryFromUrlClick(url);
|
|
10824
10827
|
for (const feature of features) {
|
|
10825
10828
|
feature.geometry = geomToAdd;
|
|
@@ -10830,7 +10833,7 @@ class QueryService {
|
|
|
10830
10833
|
new RegExp('FEATURE_COUNT=' + this.featureCount) :
|
|
10831
10834
|
new RegExp('FEATURE_COUNT=' + this.defaultFeatureCount);
|
|
10832
10835
|
if (featureCount.test(url) &&
|
|
10833
|
-
((wmsDatasource.params?.FEATURE_COUNT && features.length === this.featureCount) ||
|
|
10836
|
+
((wmsDatasource.params?.FEATURE_COUNT && this.featureCount > 1 && features.length === this.featureCount) ||
|
|
10834
10837
|
(!wmsDatasource.params?.FEATURE_COUNT && features.length === this.defaultFeatureCount))) {
|
|
10835
10838
|
this.languageService.translate.get('igo.geo.query.featureCountMax', { value: layer.title }).subscribe(message => {
|
|
10836
10839
|
const messageObj = this.messageService.info(message);
|
|
@@ -11029,6 +11032,7 @@ class QueryService {
|
|
|
11029
11032
|
delete properties.SHAPE_P;
|
|
11030
11033
|
delete properties.the_geom;
|
|
11031
11034
|
delete properties.geom;
|
|
11035
|
+
delete properties.geom32198;
|
|
11032
11036
|
let geometry;
|
|
11033
11037
|
if (featureGeometry) {
|
|
11034
11038
|
geometry = {
|
|
@@ -11186,7 +11190,9 @@ class QueryService {
|
|
|
11186
11190
|
*
|
|
11187
11191
|
*/
|
|
11188
11192
|
getCustomQueryUrl(datasource, options, mapExtent) {
|
|
11189
|
-
|
|
11193
|
+
const extent = olextent.getForViewAndSize(options.coordinates, options.resolution, 0, [101, 101]);
|
|
11194
|
+
let url = datasource.options.queryUrl.replace(/\{bbox\}/g, extent.join(','))
|
|
11195
|
+
.replace(/\{xmin\}/g, mapExtent[0].toString())
|
|
11190
11196
|
.replace(/\{ymin\}/g, mapExtent[1].toString())
|
|
11191
11197
|
.replace(/\{xmax\}/g, mapExtent[2].toString())
|
|
11192
11198
|
.replace(/\{ymax\}/g, mapExtent[3].toString())
|
|
@@ -12520,6 +12526,9 @@ class CatalogBrowserComponent {
|
|
|
12520
12526
|
if (!layer.options.sourceOptions.optionsFromApi) {
|
|
12521
12527
|
layer.options.sourceOptions.optionsFromApi = true;
|
|
12522
12528
|
}
|
|
12529
|
+
if (this.catalog.profils?.length) {
|
|
12530
|
+
layer.options.security = { profils: this.catalog.profils };
|
|
12531
|
+
}
|
|
12523
12532
|
return this.layerService.createAsyncLayer(layer.options);
|
|
12524
12533
|
});
|
|
12525
12534
|
zip(...layers$).subscribe((oLayers) => {
|
|
@@ -15450,7 +15459,20 @@ var FontType;
|
|
|
15450
15459
|
FontType["LucidaConsole"] = "Lucida Console";
|
|
15451
15460
|
FontType["BrushScriptMT"] = "Brush Script MT";
|
|
15452
15461
|
FontType["ComicSansMS"] = "Comic Sans MS";
|
|
15453
|
-
})(FontType || (FontType = {}));
|
|
15462
|
+
})(FontType || (FontType = {}));
|
|
15463
|
+
var LabelType;
|
|
15464
|
+
(function (LabelType) {
|
|
15465
|
+
LabelType["Coordinates"] = "Coordinates";
|
|
15466
|
+
LabelType["Length"] = "Length";
|
|
15467
|
+
LabelType["Area"] = "Area";
|
|
15468
|
+
LabelType["Predefined"] = "Predefined";
|
|
15469
|
+
LabelType["Custom"] = "Custom";
|
|
15470
|
+
})(LabelType || (LabelType = {}));
|
|
15471
|
+
var CoordinatesUnit;
|
|
15472
|
+
(function (CoordinatesUnit) {
|
|
15473
|
+
CoordinatesUnit["DecimalDegree"] = "DD";
|
|
15474
|
+
CoordinatesUnit["DegreesMinutesSeconds"] = "DMS";
|
|
15475
|
+
})(CoordinatesUnit || (CoordinatesUnit = {}));
|
|
15454
15476
|
|
|
15455
15477
|
class DrawIconService {
|
|
15456
15478
|
constructor(config) {
|
|
@@ -16090,6 +16112,22 @@ function createOlTooltipDrawAtPoint(olPoint) {
|
|
|
16090
16112
|
olTooltip.setPosition(olPoint.getFlatCoordinates());
|
|
16091
16113
|
olPoint.set('_tooltip', olTooltip);
|
|
16092
16114
|
return olTooltip;
|
|
16115
|
+
}
|
|
16116
|
+
function DDtoDMS(value, unit) {
|
|
16117
|
+
const conversionMapper = new Map([
|
|
16118
|
+
[CoordinatesUnit.DecimalDegree, (val) => {
|
|
16119
|
+
if (typeof val[0] === 'number') {
|
|
16120
|
+
return roundCoordToString(val, 5);
|
|
16121
|
+
}
|
|
16122
|
+
else {
|
|
16123
|
+
const numVal = [Number(val[0]), Number(val[1])];
|
|
16124
|
+
return roundCoordToString(numVal, 5);
|
|
16125
|
+
}
|
|
16126
|
+
}],
|
|
16127
|
+
[CoordinatesUnit.DegreesMinutesSeconds, (val) => convertDDToDMS(val, 2)]
|
|
16128
|
+
]);
|
|
16129
|
+
let conversion = conversionMapper.get(unit);
|
|
16130
|
+
return conversion ? conversion(value) : undefined;
|
|
16093
16131
|
}
|
|
16094
16132
|
|
|
16095
16133
|
class DrawStyleService {
|
|
@@ -16099,7 +16137,7 @@ class DrawStyleService {
|
|
|
16099
16137
|
this.strokeColor = 'rgba(143,7,7,1)';
|
|
16100
16138
|
this.strokeWidth = 1;
|
|
16101
16139
|
this.labelsAreShown = true;
|
|
16102
|
-
this.fontSize = '
|
|
16140
|
+
this.fontSize = '15';
|
|
16103
16141
|
this.fontStyle = FontType.Arial.toString();
|
|
16104
16142
|
this.offsetX = 0;
|
|
16105
16143
|
this.offsetY = 0;
|
|
@@ -16945,8 +16983,24 @@ class DrawControl {
|
|
|
16945
16983
|
* Freehand mode observable (defaults to false)
|
|
16946
16984
|
*/
|
|
16947
16985
|
this.freehand$ = new BehaviorSubject(false);
|
|
16986
|
+
/**
|
|
16987
|
+
* Observables from predefined radius (defaults to false and undefined)
|
|
16988
|
+
*/
|
|
16989
|
+
this.ispredefinedRadius$ = new BehaviorSubject(false);
|
|
16990
|
+
this.predefinedRadius$ = new BehaviorSubject(undefined);
|
|
16991
|
+
this.radiusDrawEnd$ = new BehaviorSubject(undefined);
|
|
16948
16992
|
this.olDrawingLayer = options.drawingLayer ? options.drawingLayer : this.createOlInnerOverlayLayer();
|
|
16949
16993
|
this.olGeometryType = this.options.geometryType;
|
|
16994
|
+
this.olInteractionStyle = this.options.interactionStyle;
|
|
16995
|
+
}
|
|
16996
|
+
/**
|
|
16997
|
+
* take the value of radius
|
|
16998
|
+
*/
|
|
16999
|
+
get radiusVal() {
|
|
17000
|
+
return this.predefinedRadius$.getValue();
|
|
17001
|
+
}
|
|
17002
|
+
set radiusValData(radiusCercle) {
|
|
17003
|
+
this.predefinedRadius$.next(radiusCercle);
|
|
16950
17004
|
}
|
|
16951
17005
|
/**
|
|
16952
17006
|
* Wheter the control is active
|
|
@@ -16983,6 +17037,9 @@ class DrawControl {
|
|
|
16983
17037
|
getSource() {
|
|
16984
17038
|
return this.olDrawingLayerSource;
|
|
16985
17039
|
}
|
|
17040
|
+
setOlInteractionStyle(style) {
|
|
17041
|
+
this.olInteractionStyle = style;
|
|
17042
|
+
}
|
|
16986
17043
|
/**
|
|
16987
17044
|
* Set the current geometry type
|
|
16988
17045
|
* @param geometryType the geometry type
|
|
@@ -16990,6 +17047,12 @@ class DrawControl {
|
|
|
16990
17047
|
setGeometryType(geometryType) {
|
|
16991
17048
|
this.olGeometryType = geometryType;
|
|
16992
17049
|
}
|
|
17050
|
+
/**
|
|
17051
|
+
* Get the current geometry type
|
|
17052
|
+
*/
|
|
17053
|
+
getGeometryType() {
|
|
17054
|
+
return this.olGeometryType;
|
|
17055
|
+
}
|
|
16993
17056
|
/**
|
|
16994
17057
|
* Create a drawing source if none is defined in the options
|
|
16995
17058
|
*/
|
|
@@ -17031,21 +17094,35 @@ class DrawControl {
|
|
|
17031
17094
|
// Create Draw interaction
|
|
17032
17095
|
let olDrawInteraction;
|
|
17033
17096
|
if (!this.freehand$.getValue()) {
|
|
17034
|
-
|
|
17035
|
-
|
|
17036
|
-
|
|
17037
|
-
|
|
17038
|
-
|
|
17039
|
-
|
|
17040
|
-
|
|
17041
|
-
|
|
17042
|
-
|
|
17097
|
+
if (!this.ispredefinedRadius$.getValue()) {
|
|
17098
|
+
olDrawInteraction = new OlDraw({
|
|
17099
|
+
type: this.olGeometryType,
|
|
17100
|
+
source: this.getSource(),
|
|
17101
|
+
stopClick: true,
|
|
17102
|
+
style: this.olInteractionStyle,
|
|
17103
|
+
maxPoints: this.options.maxPoints,
|
|
17104
|
+
freehand: false,
|
|
17105
|
+
freehandCondition: () => false
|
|
17106
|
+
});
|
|
17107
|
+
}
|
|
17108
|
+
else {
|
|
17109
|
+
olDrawInteraction = new OlDraw({
|
|
17110
|
+
type: 'Point',
|
|
17111
|
+
source: this.getSource(),
|
|
17112
|
+
stopClick: true,
|
|
17113
|
+
style: this.olInteractionStyle,
|
|
17114
|
+
maxPoints: this.options.maxPoints,
|
|
17115
|
+
freehand: false,
|
|
17116
|
+
freehandCondition: () => false
|
|
17117
|
+
});
|
|
17118
|
+
}
|
|
17043
17119
|
}
|
|
17044
17120
|
else {
|
|
17045
17121
|
if (this.olGeometryType === 'Point') {
|
|
17046
17122
|
olDrawInteraction = new OlDraw({
|
|
17047
17123
|
type: 'Circle',
|
|
17048
17124
|
source: this.getSource(),
|
|
17125
|
+
style: typeof this.olInteractionStyle === 'function' ? undefined : this.olInteractionStyle,
|
|
17049
17126
|
maxPoints: this.options.maxPoints,
|
|
17050
17127
|
freehand: true
|
|
17051
17128
|
});
|
|
@@ -17054,6 +17131,7 @@ class DrawControl {
|
|
|
17054
17131
|
olDrawInteraction = new OlDraw({
|
|
17055
17132
|
type: this.olGeometryType,
|
|
17056
17133
|
source: this.getSource(),
|
|
17134
|
+
style: this.olInteractionStyle,
|
|
17057
17135
|
maxPoints: this.options.maxPoints,
|
|
17058
17136
|
freehand: true
|
|
17059
17137
|
});
|
|
@@ -17116,6 +17194,9 @@ class DrawControl {
|
|
|
17116
17194
|
* @param event Draw event (drawend)
|
|
17117
17195
|
*/
|
|
17118
17196
|
onDrawEnd(event) {
|
|
17197
|
+
if (event.feature.getGeometry().getType() === 'Point') {
|
|
17198
|
+
this.radiusDrawEnd$.next(this.predefinedRadius$.getValue());
|
|
17199
|
+
}
|
|
17119
17200
|
this.unsubscribeKeyDown();
|
|
17120
17201
|
unByKey(this.onDrawKey);
|
|
17121
17202
|
const olGeometry = event.feature.getGeometry();
|
|
@@ -17173,57 +17254,570 @@ class DrawControl {
|
|
|
17173
17254
|
}
|
|
17174
17255
|
}
|
|
17175
17256
|
|
|
17257
|
+
function DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
17258
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
17259
|
+
i0.ɵɵelementStart(0, "mat-radio-button", 11);
|
|
17260
|
+
i0.ɵɵlistener("change", function DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template_mat_radio_button_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r9.onLabelTypeChange($event.value)); });
|
|
17261
|
+
i0.ɵɵtext(1);
|
|
17262
|
+
i0.ɵɵelementEnd();
|
|
17263
|
+
} if (rf & 2) {
|
|
17264
|
+
const option_r8 = ctx.$implicit;
|
|
17265
|
+
const ctx_r7 = i0.ɵɵnextContext(3);
|
|
17266
|
+
i0.ɵɵproperty("value", option_r8.value)("disabled", ctx_r7.optionAvailable(option_r8.value))("checked", option_r8.checked);
|
|
17267
|
+
i0.ɵɵadvance(1);
|
|
17268
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r7.getProperLengthLabel(option_r8.value), " ");
|
|
17269
|
+
} }
|
|
17270
|
+
function DrawPopupComponent_div_12_mat_radio_group_5_Template(rf, ctx) { if (rf & 1) {
|
|
17271
|
+
i0.ɵɵelementStart(0, "mat-radio-group", 5);
|
|
17272
|
+
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template, 2, 4, "mat-radio-button", 10);
|
|
17273
|
+
i0.ɵɵelementEnd();
|
|
17274
|
+
} if (rf & 2) {
|
|
17275
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
17276
|
+
i0.ɵɵadvance(1);
|
|
17277
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.arrayBuiltInType);
|
|
17278
|
+
} }
|
|
17279
|
+
function DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template(rf, ctx) { if (rf & 1) {
|
|
17280
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
17281
|
+
i0.ɵɵelementStart(0, "mat-checkbox", 13);
|
|
17282
|
+
i0.ɵɵlistener("change", function DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template_mat_checkbox_change_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r13.onLabelTypeChange($event.source.value, $event.checked)); });
|
|
17283
|
+
i0.ɵɵtext(1);
|
|
17284
|
+
i0.ɵɵelementEnd();
|
|
17285
|
+
} if (rf & 2) {
|
|
17286
|
+
const option_r12 = ctx.$implicit;
|
|
17287
|
+
const ctx_r11 = i0.ɵɵnextContext(3);
|
|
17288
|
+
i0.ɵɵproperty("value", option_r12.value)("disabled", ctx_r11.optionAvailable(option_r12.value))("checked", option_r12.checked);
|
|
17289
|
+
i0.ɵɵadvance(1);
|
|
17290
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r11.getProperLengthLabel(option_r12.value), " ");
|
|
17291
|
+
} }
|
|
17292
|
+
function DrawPopupComponent_div_12_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
17293
|
+
i0.ɵɵelementContainerStart(0, 5);
|
|
17294
|
+
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template, 2, 4, "mat-checkbox", 12);
|
|
17295
|
+
i0.ɵɵelementContainerEnd();
|
|
17296
|
+
} if (rf & 2) {
|
|
17297
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
17298
|
+
i0.ɵɵadvance(1);
|
|
17299
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.arrayBuiltInType);
|
|
17300
|
+
} }
|
|
17301
|
+
function DrawPopupComponent_div_12_div_7_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
17302
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
17303
|
+
i0.ɵɵtext(1);
|
|
17304
|
+
i0.ɵɵelementEnd();
|
|
17305
|
+
} if (rf & 2) {
|
|
17306
|
+
const unit_r17 = ctx.$implicit;
|
|
17307
|
+
i0.ɵɵproperty("value", unit_r17);
|
|
17308
|
+
i0.ɵɵadvance(1);
|
|
17309
|
+
i0.ɵɵtextInterpolate1(" ", unit_r17, " ");
|
|
17310
|
+
} }
|
|
17311
|
+
function DrawPopupComponent_div_12_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
17312
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
17313
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
17314
|
+
i0.ɵɵelement(2, "input", 15, 16);
|
|
17315
|
+
i0.ɵɵelementEnd();
|
|
17316
|
+
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
17317
|
+
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_7_Template_mat_select_selectionChange_5_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.onChangeCoordinateUnit($event.value)); });
|
|
17318
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_7_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
17319
|
+
i0.ɵɵelementEnd()()();
|
|
17320
|
+
} if (rf & 2) {
|
|
17321
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
17322
|
+
i0.ɵɵadvance(2);
|
|
17323
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r4.currentCoordinates);
|
|
17324
|
+
i0.ɵɵadvance(3);
|
|
17325
|
+
i0.ɵɵproperty("value", ctx_r4.coordinatesMeasureUnit);
|
|
17326
|
+
i0.ɵɵadvance(1);
|
|
17327
|
+
i0.ɵɵproperty("ngForOf", ctx_r4.allCoordinatesUnits);
|
|
17328
|
+
} }
|
|
17329
|
+
function DrawPopupComponent_div_12_div_8_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
17330
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
17331
|
+
i0.ɵɵtext(1);
|
|
17332
|
+
i0.ɵɵelementEnd();
|
|
17333
|
+
} if (rf & 2) {
|
|
17334
|
+
const unit_r22 = ctx.$implicit;
|
|
17335
|
+
const ctx_r21 = i0.ɵɵnextContext(3);
|
|
17336
|
+
i0.ɵɵproperty("value", unit_r22);
|
|
17337
|
+
i0.ɵɵadvance(1);
|
|
17338
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r21.getLengthUnitEnum(unit_r22), " ");
|
|
17339
|
+
} }
|
|
17340
|
+
function DrawPopupComponent_div_12_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
17341
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
17342
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
17343
|
+
i0.ɵɵelement(2, "input", 20, 16);
|
|
17344
|
+
i0.ɵɵelementEnd();
|
|
17345
|
+
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
17346
|
+
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_8_Template_mat_select_selectionChange_5_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.onChangeLengthUnit($event.value)); });
|
|
17347
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_8_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
17348
|
+
i0.ɵɵelementEnd()()();
|
|
17349
|
+
} if (rf & 2) {
|
|
17350
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
17351
|
+
i0.ɵɵadvance(2);
|
|
17352
|
+
i0.ɵɵpropertyInterpolate("placeholder", ctx_r5.lengthLabelT);
|
|
17353
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r5.currentLength);
|
|
17354
|
+
i0.ɵɵadvance(3);
|
|
17355
|
+
i0.ɵɵproperty("value", ctx_r5.lengthMeasureUnit);
|
|
17356
|
+
i0.ɵɵadvance(1);
|
|
17357
|
+
i0.ɵɵproperty("ngForOf", ctx_r5.allLengthUnits);
|
|
17358
|
+
} }
|
|
17359
|
+
function DrawPopupComponent_div_12_div_9_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
17360
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
17361
|
+
i0.ɵɵtext(1);
|
|
17362
|
+
i0.ɵɵelementEnd();
|
|
17363
|
+
} if (rf & 2) {
|
|
17364
|
+
const unit_r27 = ctx.$implicit;
|
|
17365
|
+
const ctx_r26 = i0.ɵɵnextContext(3);
|
|
17366
|
+
i0.ɵɵproperty("value", unit_r27);
|
|
17367
|
+
i0.ɵɵadvance(1);
|
|
17368
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r26.getAreaUnitEnum(unit_r27), " ");
|
|
17369
|
+
} }
|
|
17370
|
+
function DrawPopupComponent_div_12_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
17371
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
17372
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
17373
|
+
i0.ɵɵelement(2, "input", 20, 16);
|
|
17374
|
+
i0.ɵɵpipe(4, "translate");
|
|
17375
|
+
i0.ɵɵelementEnd();
|
|
17376
|
+
i0.ɵɵelementStart(5, "mat-form-field", 17)(6, "mat-select", 18);
|
|
17377
|
+
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_9_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.onChangeAreaUnit($event.value)); });
|
|
17378
|
+
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_9_mat_option_7_Template, 2, 2, "mat-option", 19);
|
|
17379
|
+
i0.ɵɵelementEnd()()();
|
|
17380
|
+
} if (rf & 2) {
|
|
17381
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
17382
|
+
i0.ɵɵadvance(2);
|
|
17383
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 4, "igo.geo.draw.labelType.Area"));
|
|
17384
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r6.currentArea);
|
|
17385
|
+
i0.ɵɵadvance(4);
|
|
17386
|
+
i0.ɵɵproperty("value", ctx_r6.areaMeasureUnit);
|
|
17387
|
+
i0.ɵɵadvance(1);
|
|
17388
|
+
i0.ɵɵproperty("ngForOf", ctx_r6.allAreaUnits);
|
|
17389
|
+
} }
|
|
17390
|
+
function DrawPopupComponent_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
17391
|
+
const _r31 = i0.ɵɵgetCurrentView();
|
|
17392
|
+
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
17393
|
+
i0.ɵɵtext(3);
|
|
17394
|
+
i0.ɵɵpipe(4, "translate");
|
|
17395
|
+
i0.ɵɵelementEnd();
|
|
17396
|
+
i0.ɵɵtemplate(5, DrawPopupComponent_div_12_mat_radio_group_5_Template, 2, 1, "mat-radio-group", 6);
|
|
17397
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_ng_container_6_Template, 2, 1, "ng-container", 6);
|
|
17398
|
+
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_7_Template, 7, 3, "div", 4);
|
|
17399
|
+
i0.ɵɵtemplate(8, DrawPopupComponent_div_12_div_8_Template, 7, 4, "div", 4);
|
|
17400
|
+
i0.ɵɵtemplate(9, DrawPopupComponent_div_12_div_9_Template, 8, 6, "div", 4);
|
|
17401
|
+
i0.ɵɵelementEnd();
|
|
17402
|
+
i0.ɵɵelementStart(10, "div", 7)(11, "button", 8);
|
|
17403
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_12_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.cancelDrawing()); });
|
|
17404
|
+
i0.ɵɵtext(12);
|
|
17405
|
+
i0.ɵɵpipe(13, "translate");
|
|
17406
|
+
i0.ɵɵelementEnd();
|
|
17407
|
+
i0.ɵɵelementStart(14, "button", 9);
|
|
17408
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_12_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r31); const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.confirm()); });
|
|
17409
|
+
i0.ɵɵtext(15);
|
|
17410
|
+
i0.ɵɵelementEnd()()();
|
|
17411
|
+
} if (rf & 2) {
|
|
17412
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
17413
|
+
i0.ɵɵadvance(3);
|
|
17414
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 8, "igo.geo.draw.builtInInstructions"));
|
|
17415
|
+
i0.ɵɵadvance(2);
|
|
17416
|
+
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType !== "Polygon");
|
|
17417
|
+
i0.ɵɵadvance(1);
|
|
17418
|
+
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType === "Polygon");
|
|
17419
|
+
i0.ɵɵadvance(1);
|
|
17420
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Coordinates);
|
|
17421
|
+
i0.ɵɵadvance(1);
|
|
17422
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Length || ctx_r0.polygonCheck === 2);
|
|
17423
|
+
i0.ɵɵadvance(1);
|
|
17424
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Area || ctx_r0.polygonCheck === 2);
|
|
17425
|
+
i0.ɵɵadvance(3);
|
|
17426
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 10, "igo.geo.draw.cancel"), " ");
|
|
17427
|
+
i0.ɵɵadvance(3);
|
|
17428
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.noLabelButton(), " ");
|
|
17429
|
+
} }
|
|
17430
|
+
function DrawPopupComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
17431
|
+
const _r36 = i0.ɵɵgetCurrentView();
|
|
17432
|
+
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
17433
|
+
i0.ɵɵtext(3);
|
|
17434
|
+
i0.ɵɵpipe(4, "translate");
|
|
17435
|
+
i0.ɵɵelementEnd();
|
|
17436
|
+
i0.ɵɵelementStart(5, "mat-form-field", 21)(6, "input", 22, 16);
|
|
17437
|
+
i0.ɵɵlistener("select", function DrawPopupComponent_div_13_Template_input_select_6_listener() { return true; })("input", function DrawPopupComponent_div_13_Template_input_input_6_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.getLabelLength($event.target.value)); });
|
|
17438
|
+
i0.ɵɵpipe(8, "translate");
|
|
17439
|
+
i0.ɵɵelementEnd()()();
|
|
17440
|
+
i0.ɵɵelementStart(9, "div", 7)(10, "button", 8);
|
|
17441
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_13_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r36); const ctx_r37 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r37.cancelDrawing()); });
|
|
17442
|
+
i0.ɵɵtext(11);
|
|
17443
|
+
i0.ɵɵpipe(12, "translate");
|
|
17444
|
+
i0.ɵɵelementEnd();
|
|
17445
|
+
i0.ɵɵelementStart(13, "button", 9);
|
|
17446
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_13_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r36); const _r33 = i0.ɵɵreference(7); const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.confirm(_r33.value)); });
|
|
17447
|
+
i0.ɵɵtext(14);
|
|
17448
|
+
i0.ɵɵelementEnd()()();
|
|
17449
|
+
} if (rf & 2) {
|
|
17450
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
17451
|
+
i0.ɵɵadvance(3);
|
|
17452
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, "igo.geo.draw.dialogInstruction"));
|
|
17453
|
+
i0.ɵɵadvance(3);
|
|
17454
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(8, 7, "igo.geo.draw.dialogTitle"));
|
|
17455
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r1.currentLabel);
|
|
17456
|
+
i0.ɵɵadvance(5);
|
|
17457
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 9, "igo.geo.draw.cancel"), " ");
|
|
17458
|
+
i0.ɵɵadvance(3);
|
|
17459
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.noLabelButton(), " ");
|
|
17460
|
+
} }
|
|
17176
17461
|
class DrawPopupComponent {
|
|
17177
|
-
constructor(dialogRef, data) {
|
|
17462
|
+
constructor(languageService, dialogRef, data) {
|
|
17463
|
+
this.languageService = languageService;
|
|
17178
17464
|
this.dialogRef = dialogRef;
|
|
17179
17465
|
this.data = data;
|
|
17180
17466
|
this.confirmFlag = false;
|
|
17181
|
-
|
|
17467
|
+
this.labelFlag = LabelType.Custom;
|
|
17468
|
+
this.geometryType = GeometryType;
|
|
17469
|
+
this.labelType = LabelType;
|
|
17470
|
+
this.arrayBuiltInType = [];
|
|
17471
|
+
this.olGeometryType = undefined;
|
|
17472
|
+
this.polygonCheck = 0; // Count for polygon label types checkboxes
|
|
17473
|
+
this.currentLabel = this.data.olGeometry.get('draw');
|
|
17474
|
+
this.labelLength = this.currentLabel ? this.currentLabel.length : 0;
|
|
17475
|
+
let olGeometry;
|
|
17476
|
+
const projection = this.data.map.ol.getView().getProjection();
|
|
17477
|
+
if (this.data.olGeometry instanceof OlFeature) {
|
|
17478
|
+
if (this.data.olGeometry.get('rad')) {
|
|
17479
|
+
const longitudeLatitude = [this.data.olGeometry.get('longitude'), this.data.olGeometry.get('latitude')];
|
|
17480
|
+
this.olGeometryType = GeometryType.Circle;
|
|
17481
|
+
olGeometry = new OlCircle(longitudeLatitude, this.data.olGeometry.get('rad'));
|
|
17482
|
+
}
|
|
17483
|
+
else {
|
|
17484
|
+
this.olGeometryType = this.data.olGeometry.getGeometry().getType();
|
|
17485
|
+
olGeometry = this.data.olGeometry.get('geometry');
|
|
17486
|
+
}
|
|
17487
|
+
}
|
|
17488
|
+
else {
|
|
17489
|
+
this.olGeometryType = this.data.olGeometry.getType();
|
|
17490
|
+
olGeometry = this.data.olGeometry;
|
|
17491
|
+
}
|
|
17492
|
+
if (this.olGeometryType === GeometryType.Point || this.olGeometryType === GeometryType.Circle) {
|
|
17493
|
+
if (this.data.olGeometry instanceof OlFeature) {
|
|
17494
|
+
let longitude = this.data.olGeometry.get('longitude');
|
|
17495
|
+
let latitude = this.data.olGeometry.get('latitude');
|
|
17496
|
+
this.longlatDD = roundCoordTo([longitude, latitude], 5);
|
|
17497
|
+
this.coordinatesInDD = '(' + latitude + ', '
|
|
17498
|
+
+ longitude + ')';
|
|
17499
|
+
}
|
|
17500
|
+
else {
|
|
17501
|
+
let point4326 = transform(this.data.olGeometry.getFlatCoordinates(), projection, 'EPSG:4326');
|
|
17502
|
+
this.longlatDD = roundCoordTo([point4326[0], point4326[1]], 5);
|
|
17503
|
+
this.coordinatesInDD =
|
|
17504
|
+
'(' + this.longlatDD[1] + ', ' + this.longlatDD[0] + ')';
|
|
17505
|
+
}
|
|
17506
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
17507
|
+
}
|
|
17508
|
+
if (this.olGeometryType === GeometryType.LineString) {
|
|
17509
|
+
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
17510
|
+
this.currentLength = this.lengthInMeters;
|
|
17511
|
+
}
|
|
17512
|
+
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
17513
|
+
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
17514
|
+
this.currentLength = this.lengthInMeters;
|
|
17515
|
+
this.areaInMetersSquare = measureOlGeometryArea(olGeometry, projection.getCode()).toFixed(2);
|
|
17516
|
+
this.currentArea = this.areaInMetersSquare;
|
|
17517
|
+
}
|
|
17518
|
+
else if (this.olGeometryType === GeometryType.Circle) {
|
|
17519
|
+
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
17520
|
+
const radius = this.getRadius(circularPolygon);
|
|
17521
|
+
this.lengthInMeters = radius.toFixed(2);
|
|
17522
|
+
this.currentLength = this.lengthInMeters;
|
|
17523
|
+
this.areaInMetersSquare = measureOlGeometryArea(circularPolygon, projection.getCode()).toFixed(2);
|
|
17524
|
+
this.currentArea = this.areaInMetersSquare;
|
|
17525
|
+
}
|
|
17526
|
+
if (data.olGeometry.get('labelType') === LabelType.Coordinates) {
|
|
17527
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17528
|
+
this.onLabelTypeChange(LabelType.Coordinates, true);
|
|
17529
|
+
this.coordinatesMeasureUnit = data.olGeometry.get('measureUnit');
|
|
17530
|
+
}
|
|
17531
|
+
else if (data.olGeometry.get('labelType') === LabelType.Length) {
|
|
17532
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17533
|
+
this.onLabelTypeChange(LabelType.Length, true);
|
|
17534
|
+
this.lengthMeasureUnit = data.olGeometry.get('measureUnit');
|
|
17535
|
+
}
|
|
17536
|
+
else if (data.olGeometry.get('labelType') === LabelType.Area) {
|
|
17537
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17538
|
+
this.onLabelTypeChange(LabelType.Area, true);
|
|
17539
|
+
this.areaMeasureUnit = data.olGeometry.get('measureUnit');
|
|
17540
|
+
}
|
|
17541
|
+
else if (data.olGeometry.get('labelType')?.length === 2) {
|
|
17542
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17543
|
+
this.onLabelTypeChange(LabelType.Length, true);
|
|
17544
|
+
this.onLabelTypeChange(LabelType.Area, true);
|
|
17545
|
+
this.lengthMeasureUnit = data.olGeometry.get('measureUnit')[0];
|
|
17546
|
+
this.areaMeasureUnit = data.olGeometry.get('measureUnit')[1];
|
|
17547
|
+
}
|
|
17548
|
+
this.buildArrayType();
|
|
17549
|
+
}
|
|
17550
|
+
/**
|
|
17551
|
+
* HTML Interactions
|
|
17552
|
+
*/
|
|
17182
17553
|
cancelDrawing() {
|
|
17183
17554
|
this.dialogRef.close();
|
|
17184
17555
|
}
|
|
17185
|
-
confirm(
|
|
17556
|
+
confirm(input) {
|
|
17186
17557
|
this.confirmFlag = true;
|
|
17187
|
-
this.
|
|
17558
|
+
if (this.labelFlag === LabelType.Predefined) {
|
|
17559
|
+
this.dialogRef.close();
|
|
17560
|
+
}
|
|
17561
|
+
else if (this.labelFlag === LabelType.Custom) {
|
|
17562
|
+
this.dialogRef.close({
|
|
17563
|
+
label: input
|
|
17564
|
+
});
|
|
17565
|
+
}
|
|
17566
|
+
else if (this.labelFlag === LabelType.Coordinates) {
|
|
17567
|
+
this.dialogRef.close({
|
|
17568
|
+
label: this.currentCoordinates,
|
|
17569
|
+
measureUnit: this.coordinatesMeasureUnit
|
|
17570
|
+
});
|
|
17571
|
+
}
|
|
17572
|
+
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
17573
|
+
if (this.polygonCheck === 2) {
|
|
17574
|
+
this.labelFlag = [LabelType.Length, LabelType.Area];
|
|
17575
|
+
this.dialogRef.close({
|
|
17576
|
+
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[MeasureLengthUnit.Meters] + '\n'
|
|
17577
|
+
+ this.languageService.translate.instant('igo.geo.draw.labelType.A') + this.currentArea + ' ' +
|
|
17578
|
+
MeasureAreaUnitAbbreviation[MeasureAreaUnit.SquareMeters], measureUnit: [this.lengthMeasureUnit, this.areaMeasureUnit]
|
|
17579
|
+
});
|
|
17580
|
+
}
|
|
17581
|
+
else {
|
|
17582
|
+
this.labelFlag === LabelType.Length ?
|
|
17583
|
+
this.dialogRef.close({
|
|
17584
|
+
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
17585
|
+
measureUnit: this.lengthMeasureUnit
|
|
17586
|
+
}) :
|
|
17587
|
+
this.dialogRef.close({
|
|
17588
|
+
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
17589
|
+
measureUnit: this.areaMeasureUnit
|
|
17590
|
+
});
|
|
17591
|
+
}
|
|
17592
|
+
}
|
|
17593
|
+
else if (this.labelFlag === LabelType.Length) {
|
|
17594
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
17595
|
+
this.dialogRef.close({
|
|
17596
|
+
label: 'R: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
17597
|
+
measureUnit: this.lengthMeasureUnit
|
|
17598
|
+
});
|
|
17599
|
+
}
|
|
17600
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
17601
|
+
this.dialogRef.close({
|
|
17602
|
+
label: this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
17603
|
+
measureUnit: this.lengthMeasureUnit
|
|
17604
|
+
});
|
|
17605
|
+
}
|
|
17606
|
+
}
|
|
17607
|
+
else if (this.labelFlag === LabelType.Area) {
|
|
17608
|
+
this.dialogRef.close({
|
|
17609
|
+
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
17610
|
+
measureUnit: this.areaMeasureUnit
|
|
17611
|
+
});
|
|
17612
|
+
}
|
|
17613
|
+
}
|
|
17614
|
+
onLabelTypeChange(labelType, checked) {
|
|
17615
|
+
if (labelType !== LabelType.Predefined &&
|
|
17616
|
+
labelType !== LabelType.Custom &&
|
|
17617
|
+
this.olGeometryType === GeometryType.Polygon) {
|
|
17618
|
+
this.arrayBuiltInType.find(type => type.value === labelType) ?
|
|
17619
|
+
this.arrayBuiltInType.find(type => type.value === labelType).checked = checked : this.labelFlag = undefined;
|
|
17620
|
+
checked ? this.labelFlag = labelType : this.labelFlag = this.arrayBuiltInType.find(type => type.checked)?.value;
|
|
17621
|
+
}
|
|
17622
|
+
else {
|
|
17623
|
+
this.labelFlag = labelType;
|
|
17624
|
+
}
|
|
17625
|
+
if (labelType === LabelType.Predefined) {
|
|
17626
|
+
if (this.olGeometryType === GeometryType.Point) {
|
|
17627
|
+
this.labelFlag = LabelType.Coordinates;
|
|
17628
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
17629
|
+
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
17630
|
+
}
|
|
17631
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
17632
|
+
this.labelFlag = LabelType.Length;
|
|
17633
|
+
this.currentLength = this.lengthInMeters;
|
|
17634
|
+
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
17635
|
+
}
|
|
17636
|
+
}
|
|
17637
|
+
else if (labelType === LabelType.Area) {
|
|
17638
|
+
this.currentArea = this.areaInMetersSquare;
|
|
17639
|
+
this.areaMeasureUnit = MeasureAreaUnit.SquareMeters;
|
|
17640
|
+
}
|
|
17641
|
+
else if (labelType === LabelType.Length) {
|
|
17642
|
+
this.currentLength = this.lengthInMeters;
|
|
17643
|
+
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
17644
|
+
}
|
|
17645
|
+
else if (this.labelFlag === LabelType.Coordinates) {
|
|
17646
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
17647
|
+
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
17648
|
+
}
|
|
17649
|
+
const labeltypes = [this.labelType.Length, this.labelType.Area];
|
|
17650
|
+
if (this.olGeometryType === GeometryType.Polygon &&
|
|
17651
|
+
labeltypes.includes(labelType)) {
|
|
17652
|
+
checked ? this.polygonCheck += 1 : this.polygonCheck -= 1;
|
|
17653
|
+
;
|
|
17654
|
+
}
|
|
17655
|
+
else {
|
|
17656
|
+
this.polygonCheck = 0;
|
|
17657
|
+
}
|
|
17658
|
+
}
|
|
17659
|
+
onChangeLengthUnit(lengthUnit) {
|
|
17660
|
+
this.lengthMeasureUnit = lengthUnit;
|
|
17661
|
+
this.currentLength = metersToUnit(Number(this.lengthInMeters), lengthUnit).toFixed(2);
|
|
17662
|
+
}
|
|
17663
|
+
onChangeAreaUnit(areaUnit) {
|
|
17664
|
+
this.areaMeasureUnit = areaUnit;
|
|
17665
|
+
this.currentArea = squareMetersToUnit(Number(this.areaInMetersSquare), areaUnit).toFixed(2);
|
|
17666
|
+
}
|
|
17667
|
+
onChangeCoordinateUnit(coordinatesUnit) {
|
|
17668
|
+
this.coordinatesMeasureUnit = coordinatesUnit;
|
|
17669
|
+
let coordinates = DDtoDMS(this.longlatDD, coordinatesUnit);
|
|
17670
|
+
this.currentCoordinates = '(' + coordinates[1] + ', ' + coordinates[0] + ')';
|
|
17671
|
+
}
|
|
17672
|
+
buildArrayType() {
|
|
17673
|
+
for (const labelType of Object.values(LabelType)) {
|
|
17674
|
+
if (labelType !== LabelType.Custom && labelType !== LabelType.Predefined) {
|
|
17675
|
+
this.arrayBuiltInType.push({
|
|
17676
|
+
value: labelType,
|
|
17677
|
+
checked: this.selectOptions(labelType) ||
|
|
17678
|
+
this.labelFlag === labelType ||
|
|
17679
|
+
(this.polygonCheck === 2 && labelType !== LabelType.Coordinates)
|
|
17680
|
+
});
|
|
17681
|
+
}
|
|
17682
|
+
}
|
|
17683
|
+
}
|
|
17684
|
+
noLabelButton() {
|
|
17685
|
+
if (this.labelFlag === LabelType.Predefined || (this.labelFlag === LabelType.Custom && this.labelLength === 0)) {
|
|
17686
|
+
return this.languageService.translate.instant('igo.geo.draw.noLabel');
|
|
17687
|
+
}
|
|
17688
|
+
return 'OK';
|
|
17689
|
+
}
|
|
17690
|
+
get customOrPredefined() {
|
|
17691
|
+
if (this.labelFlag === LabelType.Custom) {
|
|
17692
|
+
return LabelType.Custom;
|
|
17693
|
+
}
|
|
17694
|
+
return LabelType.Predefined;
|
|
17695
|
+
}
|
|
17696
|
+
optionAvailable(currentOption) {
|
|
17697
|
+
switch (this.olGeometryType) {
|
|
17698
|
+
case GeometryType.Point:
|
|
17699
|
+
if (currentOption === LabelType.Coordinates) {
|
|
17700
|
+
return false;
|
|
17701
|
+
}
|
|
17702
|
+
return true;
|
|
17703
|
+
case GeometryType.LineString:
|
|
17704
|
+
if (currentOption === LabelType.Length) {
|
|
17705
|
+
return false;
|
|
17706
|
+
}
|
|
17707
|
+
return true;
|
|
17708
|
+
case GeometryType.Polygon:
|
|
17709
|
+
if (currentOption === LabelType.Coordinates) {
|
|
17710
|
+
return true;
|
|
17711
|
+
}
|
|
17712
|
+
return false;
|
|
17713
|
+
default:
|
|
17714
|
+
return false;
|
|
17715
|
+
}
|
|
17716
|
+
}
|
|
17717
|
+
get allLengthUnits() {
|
|
17718
|
+
return Object.values(MeasureLengthUnit);
|
|
17719
|
+
}
|
|
17720
|
+
getLengthUnitEnum(lengthUnit) {
|
|
17721
|
+
return MeasureLengthUnitAbbreviation[lengthUnit];
|
|
17722
|
+
}
|
|
17723
|
+
get allAreaUnits() {
|
|
17724
|
+
return Object.values(MeasureAreaUnit);
|
|
17725
|
+
}
|
|
17726
|
+
get allCoordinatesUnits() {
|
|
17727
|
+
return Object.values(CoordinatesUnit);
|
|
17728
|
+
}
|
|
17729
|
+
getAreaUnitEnum(areaUnit) {
|
|
17730
|
+
return MeasureAreaUnitAbbreviation[areaUnit];
|
|
17731
|
+
}
|
|
17732
|
+
getRadius(olGeometry) {
|
|
17733
|
+
const length = getLength(olGeometry);
|
|
17734
|
+
return Number(length / (2 * Math.PI));
|
|
17735
|
+
}
|
|
17736
|
+
get lengthLabelT() {
|
|
17737
|
+
if (this.olGeometryType === GeometryType.Polygon) {
|
|
17738
|
+
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
17739
|
+
}
|
|
17740
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
17741
|
+
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
17742
|
+
}
|
|
17743
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
17744
|
+
}
|
|
17745
|
+
getLabelLength(event) {
|
|
17746
|
+
this.labelLength = event.length;
|
|
17747
|
+
}
|
|
17748
|
+
selectOptions(option) {
|
|
17749
|
+
if (this.olGeometryType === GeometryType.Point) {
|
|
17750
|
+
return option === LabelType.Coordinates;
|
|
17751
|
+
}
|
|
17752
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
17753
|
+
return option === LabelType.Length;
|
|
17754
|
+
}
|
|
17755
|
+
}
|
|
17756
|
+
getProperLengthLabel(option) {
|
|
17757
|
+
if (option === LabelType.Length) {
|
|
17758
|
+
if (this.olGeometryType === GeometryType.Polygon) {
|
|
17759
|
+
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
17760
|
+
}
|
|
17761
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
17762
|
+
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
17763
|
+
}
|
|
17764
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
17765
|
+
}
|
|
17766
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.' + option);
|
|
17188
17767
|
}
|
|
17189
17768
|
}
|
|
17190
|
-
DrawPopupComponent.ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
|
|
17191
|
-
DrawPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawPopupComponent, selectors: [["igo-draw-popup-component"]], inputs: { confirmFlag: "confirmFlag" }, decls: 14, vars:
|
|
17192
|
-
|
|
17193
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
|
|
17769
|
+
DrawPopupComponent.ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
|
|
17770
|
+
DrawPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawPopupComponent, selectors: [["igo-draw-popup-component"]], inputs: { confirmFlag: "confirmFlag", labelFlag: "labelFlag", coordinatesMeasureUnit: "coordinatesMeasureUnit", lengthMeasureUnit: "lengthMeasureUnit", areaMeasureUnit: "areaMeasureUnit" }, decls: 14, vars: 14, consts: [["mat-dialog-title", ""], [1, "geometry-type-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [4, "ngIf"], [1, "mat-typography"], ["class", "mat-typography", 4, "ngIf"], ["mat-dialog-actions", ""], ["mat-raised-button", "", 3, "click"], ["mat-raised-button", "", "color", "primary", 3, "click"], [3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [3, "value", "disabled", "checked", "change"], ["class", "mat-typography", 3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "disabled", "checked", "change"], [1, "readOnly-Input"], ["matInput", "", "placeholder", "(Latitude, Longitude)", "readonly", "", 3, "value"], ["input", ""], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], ["matInput", "", "readonly", "", 3, "placeholder", "value"], [1, "input"], ["matInput", "", "cdkFocusInitial", "", 3, "placeholder", "value", "select", "input"]], template: function DrawPopupComponent_Template(rf, ctx) { if (rf & 1) {
|
|
17771
|
+
i0.ɵɵelementStart(0, "div")(1, "h2", 0);
|
|
17194
17772
|
i0.ɵɵtext(2);
|
|
17195
17773
|
i0.ɵɵpipe(3, "translate");
|
|
17196
|
-
i0.ɵɵelementEnd();
|
|
17197
|
-
i0.ɵɵelementStart(4, "mat-form-field", 2);
|
|
17198
|
-
i0.ɵɵelement(5, "input", 3, 4);
|
|
17199
|
-
i0.ɵɵpipe(7, "translate");
|
|
17200
17774
|
i0.ɵɵelementEnd()();
|
|
17201
|
-
i0.ɵɵelementStart(
|
|
17202
|
-
i0.ɵɵlistener("
|
|
17775
|
+
i0.ɵɵelementStart(4, "div", 1)(5, "mat-button-toggle-group", 2);
|
|
17776
|
+
i0.ɵɵlistener("change", function DrawPopupComponent_Template_mat_button_toggle_group_change_5_listener($event) { return ctx.onLabelTypeChange($event.value); });
|
|
17777
|
+
i0.ɵɵelementStart(6, "mat-button-toggle", 3);
|
|
17778
|
+
i0.ɵɵtext(7);
|
|
17779
|
+
i0.ɵɵpipe(8, "translate");
|
|
17780
|
+
i0.ɵɵelementEnd();
|
|
17781
|
+
i0.ɵɵelementStart(9, "mat-button-toggle", 3);
|
|
17203
17782
|
i0.ɵɵtext(10);
|
|
17204
17783
|
i0.ɵɵpipe(11, "translate");
|
|
17205
|
-
i0.ɵɵelementEnd();
|
|
17206
|
-
i0.ɵɵ
|
|
17207
|
-
i0.ɵɵ
|
|
17208
|
-
i0.ɵɵtext(13, "OK ");
|
|
17209
|
-
i0.ɵɵelementEnd()();
|
|
17784
|
+
i0.ɵɵelementEnd()()();
|
|
17785
|
+
i0.ɵɵtemplate(12, DrawPopupComponent_div_12_Template, 16, 12, "div", 4);
|
|
17786
|
+
i0.ɵɵtemplate(13, DrawPopupComponent_div_13_Template, 15, 11, "div", 4);
|
|
17210
17787
|
} if (rf & 2) {
|
|
17211
17788
|
i0.ɵɵadvance(2);
|
|
17212
|
-
i0.ɵɵ
|
|
17789
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 8, "igo.geo.draw.popupTitle"), " ");
|
|
17213
17790
|
i0.ɵɵadvance(3);
|
|
17214
|
-
i0.ɵɵ
|
|
17215
|
-
i0.ɵɵ
|
|
17216
|
-
i0.ɵɵ
|
|
17217
|
-
i0.ɵɵ
|
|
17218
|
-
|
|
17791
|
+
i0.ɵɵproperty("value", ctx.customOrPredefined);
|
|
17792
|
+
i0.ɵɵadvance(1);
|
|
17793
|
+
i0.ɵɵproperty("value", ctx.labelType.Custom);
|
|
17794
|
+
i0.ɵɵadvance(1);
|
|
17795
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 10, "igo.geo.draw.labelType.custom"), " ");
|
|
17796
|
+
i0.ɵɵadvance(2);
|
|
17797
|
+
i0.ɵɵproperty("value", ctx.labelType.Predefined);
|
|
17798
|
+
i0.ɵɵadvance(1);
|
|
17799
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 12, "igo.geo.draw.labelType.predefined"), " ");
|
|
17800
|
+
i0.ɵɵadvance(2);
|
|
17801
|
+
i0.ɵɵproperty("ngIf", ctx.labelFlag !== ctx.labelType.Custom);
|
|
17802
|
+
i0.ɵɵadvance(1);
|
|
17803
|
+
i0.ɵɵproperty("ngIf", ctx.labelFlag === ctx.labelType.Custom);
|
|
17804
|
+
} }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i14.MatInput, i15.MatSelect, i9.MatOption, i1.MatDialogTitle, i1.MatDialogActions, i17.MatRadioGroup, i17.MatRadioButton, i12.MatCheckbox, i7.TranslatePipe], styles: [".mat-radio-button[_ngcontent-%COMP%] ~ .mat-radio-button[_ngcontent-%COMP%]{margin-left:16px}.readOnly-Input[_ngcontent-%COMP%]{width:200px!important}.unit-field[_ngcontent-%COMP%]{width:50px;margin-left:10px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView[_ngcontent-%COMP%]{top:5em!important} .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle[_ngcontent-%COMP%], .mat-dialog-actions[_ngcontent-%COMP%]{display:flex!important;justify-content:center}.input[_ngcontent-%COMP%]{width:auto!important}.mat-button-toggle-group[_ngcontent-%COMP%], .mat-button-toggle[_ngcontent-%COMP%]{width:100%}mat-checkbox[_ngcontent-%COMP%]{margin-right:10px}"] });
|
|
17219
17805
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawPopupComponent, [{
|
|
17220
17806
|
type: Component,
|
|
17221
|
-
args: [{ selector: 'igo-draw-popup-component', template: "<div mat-dialog-
|
|
17222
|
-
}], function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
17807
|
+
args: [{ selector: 'igo-draw-popup-component', template: "<div>\n <h2 mat-dialog-title>\n {{ 'igo.geo.draw.popupTitle' | translate }}\n </h2>\n</div>\n\n\n<div class=\"geometry-type-toggle mat-typography\">\n <mat-button-toggle-group\n (change)=\"onLabelTypeChange($event.value)\" [value]=\"customOrPredefined\">\n <mat-button-toggle [value]=\"labelType.Custom\" >\n {{ 'igo.geo.draw.labelType.custom' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"labelType.Predefined\">\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n<div *ngIf=\"labelFlag !== labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.builtInInstructions' | translate }}</p>\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\" class=\"mat-typography\">\n <mat-radio-button *ngFor=\"let option of arrayBuiltInType\" [value]=\"option.value\" [disabled]=\"optionAvailable(option.value)\" \n (change)=\"onLabelTypeChange($event.value)\" [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-radio-button>\n </mat-radio-group>\n <ng-container class=\"mat-typography\" *ngIf=\"olGeometryType === 'Polygon'\">\n <mat-checkbox\n *ngFor=\"let option of arrayBuiltInType\"\n class=\"mat-typography\"\n [value]=\"option.value\"\n [disabled]=\"optionAvailable(option.value)\"\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\n [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"labelFlag === labelType.Coordinates\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"(Latitude, Longitude)\"\n value=\"{{currentCoordinates}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"coordinatesMeasureUnit\" (selectionChange)=\"onChangeCoordinateUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\n {{unit}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder={{lengthLabelT}}\n value=\"{{currentLength}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"lengthMeasureUnit\" (selectionChange)=\"onChangeLengthUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\n {{getLengthUnitEnum(unit)}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\n value=\"{{currentArea}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"areaMeasureUnit\" (selectionChange)=\"onChangeAreaUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\n {{getAreaUnitEnum(unit)}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n\n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm()\"> \n {{noLabelButton()}} \n </button>\n </div>\n</div>\n\n<div *ngIf=\"labelFlag === labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.dialogInstruction' | translate }}</p>\n <mat-form-field class=\"input\">\n <input\n #input\n matInput\n (select)=\"true\"\n (input)=\"getLabelLength($event.target.value)\"\n placeholder=\"{{'igo.geo.draw.dialogTitle' | translate}}\"\n value=\"{{ currentLabel }}\"\n cdkFocusInitial/>\n </mat-form-field>\n </div>\n \n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm(input.value)\">\n {{noLabelButton()}}\n </button>\n </div>\n</div>\n", styles: [".mat-radio-button~.mat-radio-button{margin-left:16px}.readOnly-Input{width:200px!important}.unit-field{width:50px;margin-left:10px;margin-top:10px}.mat-form-field{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView{top:5em!important}::ng-deep .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle,.mat-dialog-actions{display:flex!important;justify-content:center}.input{width:auto!important}.mat-button-toggle-group,.mat-button-toggle{width:100%}mat-checkbox{margin-right:10px}\n"] }]
|
|
17808
|
+
}], function () { return [{ type: i2$1.LanguageService }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
17223
17809
|
type: Inject,
|
|
17224
17810
|
args: [MAT_DIALOG_DATA]
|
|
17225
17811
|
}] }]; }, { confirmFlag: [{
|
|
17226
17812
|
type: Input
|
|
17813
|
+
}], labelFlag: [{
|
|
17814
|
+
type: Input
|
|
17815
|
+
}], coordinatesMeasureUnit: [{
|
|
17816
|
+
type: Input
|
|
17817
|
+
}], lengthMeasureUnit: [{
|
|
17818
|
+
type: Input
|
|
17819
|
+
}], areaMeasureUnit: [{
|
|
17820
|
+
type: Input
|
|
17227
17821
|
}] }); })();
|
|
17228
17822
|
|
|
17229
17823
|
class DrawShorcutsComponent {
|
|
@@ -17317,107 +17911,151 @@ DrawLayerPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dra
|
|
|
17317
17911
|
}] }); })();
|
|
17318
17912
|
|
|
17319
17913
|
const _c0$c = ["selectedLayer"];
|
|
17320
|
-
function
|
|
17914
|
+
function DrawComponent_mat_slide_toggle_22_Template(rf, ctx) { if (rf & 1) {
|
|
17915
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
17916
|
+
i0.ɵɵelementStart(0, "mat-slide-toggle", 5);
|
|
17917
|
+
i0.ɵɵlistener("change", function DrawComponent_mat_slide_toggle_22_Template_mat_slide_toggle_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onToggleFreehandMode($event)); });
|
|
17918
|
+
i0.ɵɵtext(1);
|
|
17919
|
+
i0.ɵɵpipe(2, "translate");
|
|
17920
|
+
i0.ɵɵelementEnd();
|
|
17921
|
+
} if (rf & 2) {
|
|
17922
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
17923
|
+
i0.ɵɵproperty("checked", ctx_r0.freehandMode)("labelPosition", "before");
|
|
17924
|
+
i0.ɵɵadvance(1);
|
|
17925
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, "igo.geo.draw.freehandMode"), " ");
|
|
17926
|
+
} }
|
|
17927
|
+
function DrawComponent_div_23_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
17321
17928
|
i0.ɵɵelementStart(0, "mat-option", 2);
|
|
17322
17929
|
i0.ɵɵtext(1);
|
|
17930
|
+
i0.ɵɵpipe(2, "translate");
|
|
17323
17931
|
i0.ɵɵelementEnd();
|
|
17324
17932
|
} if (rf & 2) {
|
|
17325
|
-
const
|
|
17326
|
-
i0.ɵɵproperty("value",
|
|
17933
|
+
const measureUnit_r12 = ctx.$implicit;
|
|
17934
|
+
i0.ɵɵproperty("value", measureUnit_r12);
|
|
17327
17935
|
i0.ɵɵadvance(1);
|
|
17328
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
17936
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r12), " ");
|
|
17329
17937
|
} }
|
|
17330
|
-
function
|
|
17331
|
-
const
|
|
17332
|
-
i0.ɵɵelementStart(0, "
|
|
17333
|
-
i0.ɵɵ
|
|
17938
|
+
function DrawComponent_div_23_Template(rf, ctx) { if (rf & 1) {
|
|
17939
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
17940
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "form", 23)(2, "mat-form-field", 24);
|
|
17941
|
+
i0.ɵɵelement(3, "input", 25);
|
|
17942
|
+
i0.ɵɵpipe(4, "translate");
|
|
17943
|
+
i0.ɵɵelementEnd()();
|
|
17944
|
+
i0.ɵɵelementStart(5, "mat-form-field", 26)(6, "mat-select", 9);
|
|
17945
|
+
i0.ɵɵlistener("selectionChange", function DrawComponent_div_23_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onMeasureUnitChange($event.value)); });
|
|
17946
|
+
i0.ɵɵtemplate(7, DrawComponent_div_23_mat_option_7_Template, 3, 4, "mat-option", 11);
|
|
17947
|
+
i0.ɵɵelementEnd()()();
|
|
17948
|
+
} if (rf & 2) {
|
|
17949
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
17950
|
+
i0.ɵɵadvance(3);
|
|
17951
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 5, "igo.geo.spatialFilter.radius"));
|
|
17952
|
+
i0.ɵɵproperty("formControl", ctx_r1.radiusFormControl)("readonly", ctx_r1.freehandMode);
|
|
17953
|
+
i0.ɵɵadvance(3);
|
|
17954
|
+
i0.ɵɵproperty("value", ctx_r1.measureUnit);
|
|
17955
|
+
i0.ɵɵadvance(1);
|
|
17956
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.measureUnits);
|
|
17957
|
+
} }
|
|
17958
|
+
function DrawComponent_mat_option_32_Template(rf, ctx) { if (rf & 1) {
|
|
17959
|
+
i0.ɵɵelementStart(0, "mat-option", 2);
|
|
17960
|
+
i0.ɵɵtext(1);
|
|
17961
|
+
i0.ɵɵelementEnd();
|
|
17962
|
+
} if (rf & 2) {
|
|
17963
|
+
const layer_r15 = ctx.$implicit;
|
|
17964
|
+
i0.ɵɵproperty("value", layer_r15);
|
|
17965
|
+
i0.ɵɵadvance(1);
|
|
17966
|
+
i0.ɵɵtextInterpolate1(" ", layer_r15.title, " ");
|
|
17967
|
+
} }
|
|
17968
|
+
function DrawComponent_button_36_Template(rf, ctx) { if (rf & 1) {
|
|
17969
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
17970
|
+
i0.ɵɵelementStart(0, "button", 27);
|
|
17971
|
+
i0.ɵɵlistener("click", function DrawComponent_button_36_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.activeDrawingLayer.visible = !ctx_r16.activeDrawingLayer.visible); });
|
|
17334
17972
|
i0.ɵɵpipe(1, "translate");
|
|
17335
17973
|
i0.ɵɵpipe(2, "translate");
|
|
17336
|
-
i0.ɵɵelement(3, "mat-icon",
|
|
17974
|
+
i0.ɵɵelement(3, "mat-icon", 28);
|
|
17337
17975
|
i0.ɵɵelementEnd();
|
|
17338
17976
|
} if (rf & 2) {
|
|
17339
|
-
const
|
|
17340
|
-
i0.ɵɵproperty("color",
|
|
17977
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
17978
|
+
i0.ɵɵproperty("color", ctx_r4.activeDrawingLayer.visible ? "primary" : "default")("matTooltip", ctx_r4.activeDrawingLayer.visible ? i0.ɵɵpipeBind1(1, 3, "igo.geo.layer.hideLayer") : i0.ɵɵpipeBind1(2, 5, "igo.geo.layer.showLayer"));
|
|
17341
17979
|
i0.ɵɵadvance(3);
|
|
17342
|
-
i0.ɵɵproperty("svgIcon",
|
|
17980
|
+
i0.ɵɵproperty("svgIcon", ctx_r4.activeDrawingLayer.visible ? "eye" : "eye-off");
|
|
17343
17981
|
} }
|
|
17344
|
-
function
|
|
17345
|
-
const
|
|
17346
|
-
i0.ɵɵelementStart(0, "button",
|
|
17347
|
-
i0.ɵɵlistener("click", function
|
|
17982
|
+
function DrawComponent_button_39_Template(rf, ctx) { if (rf & 1) {
|
|
17983
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
17984
|
+
i0.ɵɵelementStart(0, "button", 29);
|
|
17985
|
+
i0.ɵɵlistener("click", function DrawComponent_button_39_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.deleteDrawings()); });
|
|
17348
17986
|
i0.ɵɵpipe(1, "translate");
|
|
17349
17987
|
i0.ɵɵpipe(2, "async");
|
|
17350
|
-
i0.ɵɵelement(3, "mat-icon",
|
|
17988
|
+
i0.ɵɵelement(3, "mat-icon", 30);
|
|
17351
17989
|
i0.ɵɵelementEnd();
|
|
17352
17990
|
} if (rf & 2) {
|
|
17353
|
-
const
|
|
17354
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4,
|
|
17991
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
17992
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4, ctx_r5.selectedFeatures$).length === 0);
|
|
17355
17993
|
} }
|
|
17356
|
-
function
|
|
17357
|
-
i0.ɵɵelementStart(0, "div",
|
|
17358
|
-
i0.ɵɵelement(1, "img",
|
|
17994
|
+
function DrawComponent_mat_form_field_44_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
17995
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
17996
|
+
i0.ɵɵelement(1, "img", 35);
|
|
17359
17997
|
i0.ɵɵelementEnd();
|
|
17360
17998
|
} if (rf & 2) {
|
|
17361
|
-
const
|
|
17999
|
+
const ctx_r20 = i0.ɵɵnextContext(2);
|
|
17362
18000
|
i0.ɵɵadvance(1);
|
|
17363
|
-
i0.ɵɵpropertyInterpolate("src",
|
|
18001
|
+
i0.ɵɵpropertyInterpolate("src", ctx_r20.icon, i0.ɵɵsanitizeUrl);
|
|
17364
18002
|
} }
|
|
17365
|
-
function
|
|
17366
|
-
const
|
|
17367
|
-
i0.ɵɵelementStart(0, "mat-option",
|
|
17368
|
-
i0.ɵɵlistener("click", function
|
|
17369
|
-
i0.ɵɵelementStart(1, "div",
|
|
17370
|
-
i0.ɵɵelement(2, "img",
|
|
18003
|
+
function DrawComponent_mat_form_field_44_mat_option_10_Template(rf, ctx) { if (rf & 1) {
|
|
18004
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
18005
|
+
i0.ɵɵelementStart(0, "mat-option", 36);
|
|
18006
|
+
i0.ɵɵlistener("click", function DrawComponent_mat_form_field_44_mat_option_10_Template_mat_option_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r24); const icon_html_r22 = restoredCtx.$implicit; const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.onIconChange(icon_html_r22)); });
|
|
18007
|
+
i0.ɵɵelementStart(1, "div", 34);
|
|
18008
|
+
i0.ɵɵelement(2, "img", 35);
|
|
17371
18009
|
i0.ɵɵelementEnd()();
|
|
17372
18010
|
} if (rf & 2) {
|
|
17373
|
-
const
|
|
17374
|
-
i0.ɵɵproperty("value",
|
|
18011
|
+
const icon_html_r22 = ctx.$implicit;
|
|
18012
|
+
i0.ɵɵproperty("value", icon_html_r22);
|
|
17375
18013
|
i0.ɵɵadvance(2);
|
|
17376
|
-
i0.ɵɵpropertyInterpolate("src",
|
|
18014
|
+
i0.ɵɵpropertyInterpolate("src", icon_html_r22, i0.ɵɵsanitizeUrl);
|
|
17377
18015
|
} }
|
|
17378
|
-
function
|
|
17379
|
-
const
|
|
18016
|
+
function DrawComponent_mat_form_field_44_Template(rf, ctx) { if (rf & 1) {
|
|
18017
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
17380
18018
|
i0.ɵɵelementStart(0, "mat-form-field")(1, "mat-label");
|
|
17381
18019
|
i0.ɵɵtext(2);
|
|
17382
18020
|
i0.ɵɵpipe(3, "translate");
|
|
17383
18021
|
i0.ɵɵelementEnd();
|
|
17384
18022
|
i0.ɵɵelementStart(4, "mat-select")(5, "mat-select-trigger");
|
|
17385
|
-
i0.ɵɵtemplate(6,
|
|
18023
|
+
i0.ɵɵtemplate(6, DrawComponent_mat_form_field_44_div_6_Template, 2, 1, "div", 31);
|
|
17386
18024
|
i0.ɵɵelementEnd();
|
|
17387
|
-
i0.ɵɵelementStart(7, "mat-option",
|
|
17388
|
-
i0.ɵɵlistener("click", function
|
|
18025
|
+
i0.ɵɵelementStart(7, "mat-option", 32);
|
|
18026
|
+
i0.ɵɵlistener("click", function DrawComponent_mat_form_field_44_Template_mat_option_click_7_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r25.onIconChange()); });
|
|
17389
18027
|
i0.ɵɵtext(8);
|
|
17390
18028
|
i0.ɵɵpipe(9, "translate");
|
|
17391
18029
|
i0.ɵɵelementEnd();
|
|
17392
|
-
i0.ɵɵtemplate(10,
|
|
18030
|
+
i0.ɵɵtemplate(10, DrawComponent_mat_form_field_44_mat_option_10_Template, 3, 2, "mat-option", 33);
|
|
17393
18031
|
i0.ɵɵelementEnd()();
|
|
17394
18032
|
} if (rf & 2) {
|
|
17395
|
-
const
|
|
18033
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
17396
18034
|
i0.ɵɵadvance(2);
|
|
17397
18035
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "igo.geo.draw.icon"));
|
|
17398
18036
|
i0.ɵɵadvance(4);
|
|
17399
|
-
i0.ɵɵproperty("ngIf",
|
|
18037
|
+
i0.ɵɵproperty("ngIf", ctx_r7.icon);
|
|
17400
18038
|
i0.ɵɵadvance(2);
|
|
17401
18039
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 6, "igo.geo.draw.noIcon"));
|
|
17402
18040
|
i0.ɵɵadvance(2);
|
|
17403
|
-
i0.ɵɵproperty("ngForOf",
|
|
18041
|
+
i0.ɵɵproperty("ngForOf", ctx_r7.icons);
|
|
17404
18042
|
} }
|
|
17405
|
-
function
|
|
17406
|
-
const
|
|
17407
|
-
i0.ɵɵelementStart(0, "button",
|
|
17408
|
-
i0.ɵɵlistener("click", function
|
|
18043
|
+
function DrawComponent_button_48_Template(rf, ctx) { if (rf & 1) {
|
|
18044
|
+
const _r28 = i0.ɵɵgetCurrentView();
|
|
18045
|
+
i0.ɵɵelementStart(0, "button", 37);
|
|
18046
|
+
i0.ɵɵlistener("click", function DrawComponent_button_48_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r28); const ctx_r27 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r27.openStyleModalDialog()); });
|
|
17409
18047
|
i0.ɵɵpipe(1, "translate");
|
|
17410
18048
|
i0.ɵɵtext(2);
|
|
17411
18049
|
i0.ɵɵpipe(3, "translate");
|
|
17412
|
-
i0.ɵɵelement(4, "mat-icon",
|
|
18050
|
+
i0.ɵɵelement(4, "mat-icon", 38);
|
|
17413
18051
|
i0.ɵɵelementEnd();
|
|
17414
18052
|
} if (rf & 2) {
|
|
17415
|
-
const
|
|
18053
|
+
const ctx_r8 = i0.ɵɵnextContext();
|
|
17416
18054
|
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.layer.style.styleModalTooltip"));
|
|
17417
18055
|
i0.ɵɵadvance(2);
|
|
17418
18056
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.layer.style.styleModal"), " ");
|
|
17419
18057
|
i0.ɵɵadvance(2);
|
|
17420
|
-
i0.ɵɵproperty("matBadge",
|
|
18058
|
+
i0.ɵɵproperty("matBadge", ctx_r8.selectedFeatures$.value.length);
|
|
17421
18059
|
} }
|
|
17422
18060
|
class DrawComponent {
|
|
17423
18061
|
constructor(languageService, formBuilder, drawStyleService, dialog, drawIconService) {
|
|
@@ -17441,10 +18079,24 @@ class DrawComponent {
|
|
|
17441
18079
|
{
|
|
17442
18080
|
name: 'Drawing',
|
|
17443
18081
|
title: this.languageService.translate.instant('igo.geo.draw.labels'),
|
|
17444
|
-
tooltip: this.languageService.translate.instant('igo.geo.draw.changeLabel'),
|
|
17445
18082
|
valueAccessor: (feature) => {
|
|
17446
18083
|
return feature.properties.draw;
|
|
17447
18084
|
}
|
|
18085
|
+
},
|
|
18086
|
+
{
|
|
18087
|
+
name: 'Edition',
|
|
18088
|
+
title: '',
|
|
18089
|
+
sort: false,
|
|
18090
|
+
valueAccessor: (feature) => {
|
|
18091
|
+
return [{
|
|
18092
|
+
editMode: false,
|
|
18093
|
+
icon: 'pencil',
|
|
18094
|
+
color: 'primary',
|
|
18095
|
+
click: () => { this.editLabelDrawing(feature); },
|
|
18096
|
+
style: 'mat-icon-button'
|
|
18097
|
+
}];
|
|
18098
|
+
},
|
|
18099
|
+
renderer: EntityTableColumnRenderer.ButtonGroup,
|
|
17448
18100
|
}
|
|
17449
18101
|
]
|
|
17450
18102
|
};
|
|
@@ -17460,8 +18112,14 @@ class DrawComponent {
|
|
|
17460
18112
|
this.selectedFeatures$ = new BehaviorSubject([]);
|
|
17461
18113
|
this.drawControlIsDisabled = true;
|
|
17462
18114
|
this.drawControlIsActive = false;
|
|
18115
|
+
this.freehandMode = false;
|
|
17463
18116
|
this.subscriptions$$ = [];
|
|
17464
18117
|
this.position = 'bottom';
|
|
18118
|
+
this.radiusFormControl = new UntypedFormControl(1000);
|
|
18119
|
+
this.measureUnit = MeasureLengthUnit.Meters;
|
|
18120
|
+
this.radiusFormControlChange$$ = new Subscription();
|
|
18121
|
+
this.predefinedRadius$ = new BehaviorSubject(undefined);
|
|
18122
|
+
this.radiusDrawEnd$ = new BehaviorSubject(undefined);
|
|
17465
18123
|
this.isCreatingNewLayer = false;
|
|
17466
18124
|
this.currGeometryType = this.geometryType.Point;
|
|
17467
18125
|
this.buildForm();
|
|
@@ -17492,6 +18150,13 @@ class DrawComponent {
|
|
|
17492
18150
|
set activeDrawingLayer(value) {
|
|
17493
18151
|
this._activeDrawingLayer = value;
|
|
17494
18152
|
}
|
|
18153
|
+
/**
|
|
18154
|
+
* Available measure units for the measure type given
|
|
18155
|
+
* @internal
|
|
18156
|
+
*/
|
|
18157
|
+
get measureUnits() {
|
|
18158
|
+
return [MeasureLengthUnit.Meters, MeasureLengthUnit.Kilometers];
|
|
18159
|
+
}
|
|
17495
18160
|
// Initialize the store that will contain the entities and create the Draw control
|
|
17496
18161
|
ngOnInit() {
|
|
17497
18162
|
if (!this.stores.length) {
|
|
@@ -17544,6 +18209,11 @@ class DrawComponent {
|
|
|
17544
18209
|
});
|
|
17545
18210
|
this.onLayerChange(this.activeDrawingLayer);
|
|
17546
18211
|
}
|
|
18212
|
+
this.radiusFormControlChange$$ = this.radiusFormControl.valueChanges.subscribe(value => {
|
|
18213
|
+
if (this.activeDrawControl.ispredefinedRadius$.getValue()) {
|
|
18214
|
+
this.changeRadius(value);
|
|
18215
|
+
}
|
|
18216
|
+
});
|
|
17547
18217
|
}
|
|
17548
18218
|
/**
|
|
17549
18219
|
* Remove the drawing layer and the interactions
|
|
@@ -17554,6 +18224,7 @@ class DrawComponent {
|
|
|
17554
18224
|
this.activeStore.state.updateAll({ selected: false });
|
|
17555
18225
|
this.deactivateDrawControl();
|
|
17556
18226
|
this.subscriptions$$.map((s) => s.unsubscribe());
|
|
18227
|
+
this.radiusFormControlChange$$.unsubscribe();
|
|
17557
18228
|
}
|
|
17558
18229
|
/**
|
|
17559
18230
|
* Create a Draw Control
|
|
@@ -17627,30 +18298,21 @@ class DrawComponent {
|
|
|
17627
18298
|
// open the dialog box used to enter label
|
|
17628
18299
|
const dialogRef = this.dialog.open(DrawPopupComponent, {
|
|
17629
18300
|
disableClose: false,
|
|
17630
|
-
data: {
|
|
18301
|
+
data: { olGeometry: olGeometry, map: this.map }
|
|
17631
18302
|
});
|
|
17632
18303
|
// when dialog box is closed, get label and set it to geometry
|
|
17633
|
-
dialogRef.afterClosed().subscribe((
|
|
18304
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
17634
18305
|
// checks if the user clicked ok
|
|
17635
18306
|
if (dialogRef.componentInstance.confirmFlag) {
|
|
17636
|
-
this.updateLabelOfOlGeometry(olGeometry, label);
|
|
17637
|
-
|
|
17638
|
-
|
|
17639
|
-
|
|
17640
|
-
|
|
18307
|
+
this.updateLabelOfOlGeometry(olGeometry, result.label);
|
|
18308
|
+
this.updateLabelType(olGeometry, dialogRef.componentInstance.labelFlag);
|
|
18309
|
+
this.updateMeasureUnit(olGeometry, result.measureUnit);
|
|
18310
|
+
if (!(olGeometry instanceof OlFeature)) {
|
|
18311
|
+
this.updateFontSizeAndStyle(olGeometry, '15', FontType.Arial);
|
|
17641
18312
|
this.updateFillAndStrokeColor(olGeometry, 'rgba(255,255,255,0.4)', 'rgba(143,7,7,1)');
|
|
18313
|
+
this.updateOffset(olGeometry, 0, (olGeometry instanceof OlPoint) ? -15 : 0);
|
|
17642
18314
|
}
|
|
17643
|
-
|
|
17644
|
-
this.updateOffset(olGeometry, 0, olGeometry instanceof OlPoint ? -15 : 0);
|
|
17645
|
-
}
|
|
17646
|
-
// if event was fired at draw end
|
|
17647
|
-
if (isDrawEnd) {
|
|
17648
|
-
this.onDrawEnd(olGeometry);
|
|
17649
|
-
// if event was fired at select
|
|
17650
|
-
}
|
|
17651
|
-
else {
|
|
17652
|
-
this.onSelectDraw(olGeometry, label);
|
|
17653
|
-
}
|
|
18315
|
+
isDrawEnd ? this.onDrawEnd(olGeometry) : this.onSelectDraw(olGeometry, result.label, [dialogRef.componentInstance.labelFlag, result.measureUnit]);
|
|
17654
18316
|
this.updateHeightTable();
|
|
17655
18317
|
}
|
|
17656
18318
|
// deletes the feature
|
|
@@ -17682,7 +18344,55 @@ class DrawComponent {
|
|
|
17682
18344
|
const entityId = entity.properties.id;
|
|
17683
18345
|
const olGeometryId = olGeometry.ol_uid;
|
|
17684
18346
|
if (entityId === olGeometryId) {
|
|
17685
|
-
|
|
18347
|
+
if (entity.properties.labelType === LabelType.Coordinates) {
|
|
18348
|
+
let longLat = DDtoDMS([entity.properties.longitude, entity.properties.latitude], entity.properties.measureUnit);
|
|
18349
|
+
this.updateLabelOfOlGeometry(olGeometry, '(' + longLat[1] + ', ' + longLat[0] + ')');
|
|
18350
|
+
}
|
|
18351
|
+
else if (entity.properties.labelType === LabelType.Length) {
|
|
18352
|
+
if (olGeometry instanceof OlCircle) {
|
|
18353
|
+
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
18354
|
+
const radius = metersToUnit(this.getRadius(circularPolygon), entity.properties.measureUnit);
|
|
18355
|
+
const unit = MeasureLengthUnitAbbreviation[entity.properties.measureUnit];
|
|
18356
|
+
const radiusLabel = 'R: ' + radius.toFixed(2).toString() + ' ' + unit;
|
|
18357
|
+
this.updateLabelOfOlGeometry(olGeometry, radiusLabel);
|
|
18358
|
+
}
|
|
18359
|
+
else {
|
|
18360
|
+
let olGeometryLength = measureOlGeometryLength(olGeometry, this.map.ol.getView().getProjection().getCode());
|
|
18361
|
+
let measureUnit;
|
|
18362
|
+
const temp = entity.properties.measureUnit;
|
|
18363
|
+
measureUnit = MeasureLengthUnitAbbreviation[entity.properties.measureUnit];
|
|
18364
|
+
olGeometryLength = metersToUnit(olGeometryLength, temp);
|
|
18365
|
+
let lengthLabel = olGeometry instanceof OlPolygon ?
|
|
18366
|
+
'P: ' + olGeometryLength.toFixed(2).toString() + ' ' + measureUnit
|
|
18367
|
+
: olGeometryLength.toFixed(2).toString() + ' ' + measureUnit;
|
|
18368
|
+
this.updateLabelOfOlGeometry(olGeometry, lengthLabel);
|
|
18369
|
+
}
|
|
18370
|
+
}
|
|
18371
|
+
else if (entity.properties.labelType === LabelType.Area) {
|
|
18372
|
+
if (olGeometry instanceof OlCircle) {
|
|
18373
|
+
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
18374
|
+
let circleArea = measureOlGeometryArea(circularPolygon, this.map.ol.getView().getProjection().getCode());
|
|
18375
|
+
const unit = MeasureAreaUnitAbbreviation[entity.properties.measureUnit];
|
|
18376
|
+
const temp = entity.properties.measureUnit;
|
|
18377
|
+
circleArea = squareMetersToUnit(circleArea, temp);
|
|
18378
|
+
const areaLabel = circleArea.toFixed(2).toString() + ' ' + unit;
|
|
18379
|
+
this.updateLabelOfOlGeometry(olGeometry, areaLabel);
|
|
18380
|
+
}
|
|
18381
|
+
else {
|
|
18382
|
+
let olGeometryArea = measureOlGeometryArea(olGeometry, this.map.ol.getView().getProjection().getCode());
|
|
18383
|
+
let measureUnit;
|
|
18384
|
+
const temp = entity.properties.measureUnit;
|
|
18385
|
+
measureUnit = MeasureAreaUnitAbbreviation[entity.properties.measureUnit];
|
|
18386
|
+
olGeometryArea = squareMetersToUnit(olGeometryArea, temp);
|
|
18387
|
+
const lengthLabel = olGeometryArea.toFixed(2).toString() + ' ' + measureUnit;
|
|
18388
|
+
this.updateLabelOfOlGeometry(olGeometry, lengthLabel);
|
|
18389
|
+
}
|
|
18390
|
+
}
|
|
18391
|
+
else {
|
|
18392
|
+
this.updateLabelOfOlGeometry(olGeometry, entity.properties.draw);
|
|
18393
|
+
}
|
|
18394
|
+
this.updateLabelType(olGeometry, entity.properties.labelType);
|
|
18395
|
+
this.updateMeasureUnit(olGeometry, entity.properties.measureUnit);
|
|
17686
18396
|
this.updateFontSizeAndStyle(olGeometry, entity.properties.fontStyle.split(' ')[0].replace('px', ''), entity.properties.fontStyle.substring(entity.properties.fontStyle.indexOf(' ') + 1));
|
|
17687
18397
|
this.updateFillAndStrokeColor(olGeometry, entity.properties.drawingStyle.fill, entity.properties.drawingStyle.stroke);
|
|
17688
18398
|
this.updateOffset(olGeometry, entity.properties.offsetX, entity.properties.offsetY);
|
|
@@ -17690,7 +18400,7 @@ class DrawComponent {
|
|
|
17690
18400
|
}
|
|
17691
18401
|
});
|
|
17692
18402
|
}
|
|
17693
|
-
onSelectDraw(olFeature, label) {
|
|
18403
|
+
onSelectDraw(olFeature, label, labelTypeAndUnit) {
|
|
17694
18404
|
const entities = this.activeStore.all();
|
|
17695
18405
|
const olGeometry = olFeature.getGeometry();
|
|
17696
18406
|
olGeometry.ol_uid = olFeature.get('id');
|
|
@@ -17716,6 +18426,8 @@ class DrawComponent {
|
|
|
17716
18426
|
this.updateFontSizeAndStyle(olGeometry, fontSize, fontStyle);
|
|
17717
18427
|
this.updateFillAndStrokeColor(olGeometry, fillColor, strokeColor);
|
|
17718
18428
|
this.updateOffset(olGeometry, offsetX, offsetY);
|
|
18429
|
+
this.updateLabelType(olGeometry, labelTypeAndUnit[0]);
|
|
18430
|
+
this.updateMeasureUnit(olGeometry, labelTypeAndUnit[1]);
|
|
17719
18431
|
this.replaceFeatureInStore(entity, olGeometry, rad);
|
|
17720
18432
|
}
|
|
17721
18433
|
});
|
|
@@ -17755,8 +18467,12 @@ class DrawComponent {
|
|
|
17755
18467
|
lon4326 = center4326[0];
|
|
17756
18468
|
lat4326 = center4326[1];
|
|
17757
18469
|
rad = getDistance(center4326, extent4326);
|
|
18470
|
+
this.radiusFormControl.setValue(Math.round(rad));
|
|
17758
18471
|
}
|
|
17759
18472
|
}
|
|
18473
|
+
if (this.activeDrawControl.radiusDrawEnd$.getValue()) {
|
|
18474
|
+
rad = this.activeDrawControl.radiusDrawEnd$.getValue();
|
|
18475
|
+
}
|
|
17760
18476
|
if (olGeometry instanceof OlPoint) {
|
|
17761
18477
|
point4326 = transform(olGeometry.getFlatCoordinates(), projection, 'EPSG:4326');
|
|
17762
18478
|
lon4326 = point4326[0];
|
|
@@ -17778,12 +18494,17 @@ class DrawComponent {
|
|
|
17778
18494
|
stroke: olGeometry.get('strokeColor_')
|
|
17779
18495
|
},
|
|
17780
18496
|
offsetX: olGeometry.get('offsetX_'),
|
|
17781
|
-
offsetY: olGeometry.get('offsetY_')
|
|
18497
|
+
offsetY: olGeometry.get('offsetY_'),
|
|
18498
|
+
labelType: olGeometry.get('labelType_'),
|
|
18499
|
+
measureUnit: olGeometry.get('measureUnit_')
|
|
17782
18500
|
},
|
|
17783
18501
|
meta: {
|
|
17784
18502
|
id: featureId
|
|
17785
18503
|
}
|
|
17786
18504
|
});
|
|
18505
|
+
this.activeStore.setLayerExtent();
|
|
18506
|
+
this.activeDrawControl.predefinedRadius$.next(undefined);
|
|
18507
|
+
this.activeDrawControl.radiusDrawEnd$.next(undefined);
|
|
17787
18508
|
}
|
|
17788
18509
|
buildForm() {
|
|
17789
18510
|
this.form = this.formBuilder.group({
|
|
@@ -17828,11 +18549,9 @@ class DrawComponent {
|
|
|
17828
18549
|
/**
|
|
17829
18550
|
* Called when the user double-clicks the selected drawing
|
|
17830
18551
|
*/
|
|
17831
|
-
editLabelDrawing() {
|
|
17832
|
-
|
|
17833
|
-
|
|
17834
|
-
this.openDrawDialog(olGeometry, false);
|
|
17835
|
-
}
|
|
18552
|
+
editLabelDrawing(feature) {
|
|
18553
|
+
const olGeometryFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
|
|
18554
|
+
this.openDrawDialog(olGeometryFeature, false);
|
|
17836
18555
|
}
|
|
17837
18556
|
openShorcutsDialog() {
|
|
17838
18557
|
this.dialog.open(DrawShorcutsComponent);
|
|
@@ -17850,6 +18569,7 @@ class DrawComponent {
|
|
|
17850
18569
|
});
|
|
17851
18570
|
});
|
|
17852
18571
|
this.updateHeightTable();
|
|
18572
|
+
this.activeStore.setLayerExtent();
|
|
17853
18573
|
}
|
|
17854
18574
|
/**
|
|
17855
18575
|
* Called when the user toggles the labels toggle
|
|
@@ -17869,6 +18589,19 @@ class DrawComponent {
|
|
|
17869
18589
|
onToggleDrawControl(toggleIsChecked) {
|
|
17870
18590
|
toggleIsChecked ? this.toggleDrawControl() : this.deactivateDrawControl();
|
|
17871
18591
|
}
|
|
18592
|
+
onToggleFreehandMode(event) {
|
|
18593
|
+
if (this.isCircle() && !event.checked) {
|
|
18594
|
+
this.activeDrawControl.ispredefinedRadius$.next(true);
|
|
18595
|
+
this.changeRadius(this.radiusFormControl.value);
|
|
18596
|
+
}
|
|
18597
|
+
else {
|
|
18598
|
+
this.activeDrawControl.setOlInteractionStyle(createInteractionStyle(this.fillColor, this.strokeColor, this.strokeWidth));
|
|
18599
|
+
this.activeDrawControl.ispredefinedRadius$.next(false);
|
|
18600
|
+
}
|
|
18601
|
+
this.freehandMode = event.checked;
|
|
18602
|
+
this.activeDrawControl.freehand$.next(event.checked);
|
|
18603
|
+
this.toggleDrawControl();
|
|
18604
|
+
}
|
|
17872
18605
|
// User changes properties of a drawing element
|
|
17873
18606
|
/**
|
|
17874
18607
|
* Display the current layer with the current store and the current layerSource
|
|
@@ -18019,16 +18752,19 @@ class DrawComponent {
|
|
|
18019
18752
|
onGeometryTypeChange(geometryType) {
|
|
18020
18753
|
this.currGeometryType = geometryType;
|
|
18021
18754
|
this.activeDrawControl.setGeometryType(geometryType);
|
|
18755
|
+
this.freehandMode ?
|
|
18756
|
+
this.onToggleFreehandMode({ checked: true }) :
|
|
18757
|
+
this.onToggleFreehandMode({ checked: false });
|
|
18022
18758
|
this.toggleDrawControl();
|
|
18023
18759
|
}
|
|
18024
18760
|
// Updates the properties of olFeature inputted
|
|
18025
18761
|
/**
|
|
18026
18762
|
* Update the label of a geometry when a label is entered in a dialog box
|
|
18027
|
-
* @param
|
|
18763
|
+
* @param OlFeature the feature
|
|
18028
18764
|
* @param label the label
|
|
18029
18765
|
*/
|
|
18030
|
-
updateLabelOfOlGeometry(
|
|
18031
|
-
|
|
18766
|
+
updateLabelOfOlGeometry(OlFeature, label) {
|
|
18767
|
+
OlFeature.setProperties({
|
|
18032
18768
|
_label: label
|
|
18033
18769
|
}, true);
|
|
18034
18770
|
}
|
|
@@ -18049,13 +18785,23 @@ class DrawComponent {
|
|
|
18049
18785
|
offsetY_: offsetY
|
|
18050
18786
|
}, true);
|
|
18051
18787
|
}
|
|
18788
|
+
updateLabelType(olFeature, typeOfLabel) {
|
|
18789
|
+
olFeature.setProperties({
|
|
18790
|
+
labelType_: typeOfLabel
|
|
18791
|
+
}, true);
|
|
18792
|
+
}
|
|
18793
|
+
updateMeasureUnit(olFeature, measureUnit) {
|
|
18794
|
+
olFeature.setProperties({
|
|
18795
|
+
measureUnit_: measureUnit
|
|
18796
|
+
}, true);
|
|
18797
|
+
}
|
|
18052
18798
|
// Updates values of the selected element on the HTML view
|
|
18053
18799
|
getFeatureFontSize() {
|
|
18054
18800
|
return this.selectedFeatures$.value.length > 0
|
|
18055
18801
|
? this.selectedFeatures$.value[0].properties.fontStyle
|
|
18056
18802
|
.split(' ')[0]
|
|
18057
18803
|
.replace('px', '')
|
|
18058
|
-
: '
|
|
18804
|
+
: '15';
|
|
18059
18805
|
}
|
|
18060
18806
|
getFeatureFontStyle() {
|
|
18061
18807
|
return this.selectedFeatures$.value.length > 0
|
|
@@ -18159,6 +18905,66 @@ class DrawComponent {
|
|
|
18159
18905
|
}
|
|
18160
18906
|
this.activeDrawControl.setOlMap(this.map.ol, true);
|
|
18161
18907
|
}
|
|
18908
|
+
/**
|
|
18909
|
+
* get the geometry of design
|
|
18910
|
+
*
|
|
18911
|
+
*/
|
|
18912
|
+
isPoint() {
|
|
18913
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.Point;
|
|
18914
|
+
}
|
|
18915
|
+
isLineString() {
|
|
18916
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.LineString;
|
|
18917
|
+
}
|
|
18918
|
+
isPolygon() {
|
|
18919
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.Polygon;
|
|
18920
|
+
}
|
|
18921
|
+
isCircle() {
|
|
18922
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.Circle;
|
|
18923
|
+
}
|
|
18924
|
+
/**
|
|
18925
|
+
* The fonction to predefine the radius of the user
|
|
18926
|
+
*
|
|
18927
|
+
*/
|
|
18928
|
+
changeRadius(radius) {
|
|
18929
|
+
let radiusMeters;
|
|
18930
|
+
if (radius) {
|
|
18931
|
+
this.measureUnit === MeasureLengthUnit.Meters ? radiusMeters = radius :
|
|
18932
|
+
radiusMeters = radius * 1000;
|
|
18933
|
+
}
|
|
18934
|
+
else {
|
|
18935
|
+
radiusMeters = undefined;
|
|
18936
|
+
}
|
|
18937
|
+
const pointStyle = (feature, resolution) => {
|
|
18938
|
+
const geom = feature.getGeometry();
|
|
18939
|
+
const coordinates = olproj.transform(geom.getCoordinates(), this.map.projection, 'EPSG:4326');
|
|
18940
|
+
const radius = radiusMeters / (Math.cos((Math.PI / 180) * coordinates[1])) / resolution;
|
|
18941
|
+
this.activeDrawControl.predefinedRadius$.next(radiusMeters);
|
|
18942
|
+
return new olstyle.Style({
|
|
18943
|
+
image: new olstyle.Circle({
|
|
18944
|
+
radius: radius,
|
|
18945
|
+
stroke: new olstyle.Stroke({
|
|
18946
|
+
width: 1,
|
|
18947
|
+
color: 'rgba(143,7,7,1)'
|
|
18948
|
+
}),
|
|
18949
|
+
fill: new olstyle.Fill({
|
|
18950
|
+
color: 'rgba(255,255,255,0.4)'
|
|
18951
|
+
})
|
|
18952
|
+
})
|
|
18953
|
+
});
|
|
18954
|
+
};
|
|
18955
|
+
this.activeDrawControl.setOlInteractionStyle(pointStyle);
|
|
18956
|
+
this.toggleDrawControl();
|
|
18957
|
+
}
|
|
18958
|
+
onMeasureUnitChange(selectedMeasureUnit) {
|
|
18959
|
+
if (selectedMeasureUnit === this.measureUnit) {
|
|
18960
|
+
return;
|
|
18961
|
+
}
|
|
18962
|
+
else {
|
|
18963
|
+
this.measureUnit = selectedMeasureUnit;
|
|
18964
|
+
this.measureUnit === MeasureLengthUnit.Meters ? this.radiusFormControl.setValue(this.radiusFormControl.value * 1000) :
|
|
18965
|
+
this.radiusFormControl.setValue(this.radiusFormControl.value / 1000);
|
|
18966
|
+
}
|
|
18967
|
+
}
|
|
18162
18968
|
/**
|
|
18163
18969
|
* Recreates the style of the feature stored
|
|
18164
18970
|
*/
|
|
@@ -18174,6 +18980,10 @@ class DrawComponent {
|
|
|
18174
18980
|
});
|
|
18175
18981
|
}
|
|
18176
18982
|
}
|
|
18983
|
+
getRadius(olGeometry) {
|
|
18984
|
+
const length = getLength(olGeometry);
|
|
18985
|
+
return Number(length / (2 * Math.PI));
|
|
18986
|
+
}
|
|
18177
18987
|
}
|
|
18178
18988
|
DrawComponent.ɵfac = function DrawComponent_Factory(t) { return new (t || DrawComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i2$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(DrawStyleService), i0.ɵɵdirectiveInject(i1.MatDialog), i0.ɵɵdirectiveInject(DrawIconService)); };
|
|
18179
18989
|
DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent, selectors: [["igo-draw"]], viewQuery: function DrawComponent_Query(rf, ctx) { if (rf & 1) {
|
|
@@ -18181,8 +18991,8 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18181
18991
|
} if (rf & 2) {
|
|
18182
18992
|
let _t;
|
|
18183
18993
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.select = _t.first);
|
|
18184
|
-
} }, inputs: { map: "map", stores: "stores", drawControls: "drawControls", activeDrawingLayer: "activeDrawingLayer" }, outputs: { activeLayerChange: "activeLayerChange", drawControlsEvent: "drawControlsEvent", layersIDEvent: "layersIDEvent", fillColor: "fillColor", strokeColor: "strokeColor", strokeWidth: "strokeWidth", fontSize: "fontSize", fontStyle: "fontStyle" }, decls:
|
|
18185
|
-
const
|
|
18994
|
+
} }, inputs: { map: "map", stores: "stores", drawControls: "drawControls", activeDrawingLayer: "activeDrawingLayer" }, outputs: { activeLayerChange: "activeLayerChange", drawControlsEvent: "drawControlsEvent", layersIDEvent: "layersIDEvent", fillColor: "fillColor", strokeColor: "strokeColor", strokeWidth: "strokeWidth", fontSize: "fontSize", fontStyle: "fontStyle" }, decls: 49, vars: 47, consts: [[1, "geometry-type-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [1, "draw-options", "mat-typography"], [3, "disabled", "checked", "labelPosition", "change"], [3, "checked", "labelPosition", "change"], [3, "checked", "labelPosition", "change", 4, "ngIf"], ["class", "radius-unit", 4, "ngIf"], ["appearance", "outline", 1, "layer-select"], [3, "value", "selectionChange"], ["selectedLayer", ""], [3, "value", 4, "ngFor", "ngForOf"], ["id", "createNewLayer"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["class", "deleteBtn", "mat-icon-button", "", "color", "warn", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "disabled", "click", 4, "ngIf"], [1, "table-compact", 3, "store", "template"], ["table", ""], [1, "icon-options"], [4, "ngIf"], ["mat-icon-button", "", "color", "accent", "disableRipple", "true", 3, "click"], ["svgIcon", "keyboard-outline", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "shortcuts-icon", 3, "matTooltip"], ["mat-raised-button", "", "color", "primary", 3, "matTooltip", "click", 4, "ngIf"], [1, "radius-unit"], [1, "radius-form"], [1, "radius"], ["matInput", "", "type", "number", "min", "0", 3, "placeholder", "formControl", "readonly"], [1, "unit-field"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click"], [3, "svgIcon"], ["mat-icon-button", "", "color", "warn", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "deleteBtn", 3, "matTooltip", "disabled", "click"], ["svgIcon", "delete"], ["class", "box", 4, "ngIf"], ["value", "", 3, "click"], [3, "value", "click", 4, "ngFor", "ngForOf"], [1, "box"], [3, "src"], [3, "value", "click"], ["mat-raised-button", "", "color", "primary", 3, "matTooltip", "click"], ["svgIcon", "palette", "matBadgeColor", "warn", "matBadgeSize", "medium", 1, "style-icon", 3, "matBadge"]], template: function DrawComponent_Template(rf, ctx) { if (rf & 1) {
|
|
18995
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
18186
18996
|
i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "mat-button-toggle-group", 1);
|
|
18187
18997
|
i0.ɵɵlistener("change", function DrawComponent_Template_mat_button_toggle_group_change_2_listener($event) { return ctx.onGeometryTypeChange($event.value); });
|
|
18188
18998
|
i0.ɵɵelementStart(3, "mat-button-toggle", 2);
|
|
@@ -18210,36 +19020,39 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18210
19020
|
i0.ɵɵlistener("change", function DrawComponent_Template_mat_slide_toggle_change_19_listener() { return ctx.onToggleLabels(); });
|
|
18211
19021
|
i0.ɵɵtext(20);
|
|
18212
19022
|
i0.ɵɵpipe(21, "translate");
|
|
18213
|
-
i0.ɵɵelementEnd()();
|
|
18214
|
-
i0.ɵɵelement(22, "mat-divider");
|
|
18215
|
-
i0.ɵɵelementStart(23, "div")(24, "mat-form-field", 6)(25, "mat-label");
|
|
18216
|
-
i0.ɵɵtext(26);
|
|
18217
|
-
i0.ɵɵpipe(27, "translate");
|
|
18218
19023
|
i0.ɵɵelementEnd();
|
|
18219
|
-
i0.ɵɵ
|
|
18220
|
-
i0.ɵɵ
|
|
18221
|
-
i0.ɵɵtemplate(30, DrawComponent_mat_option_30_Template, 2, 2, "mat-option", 9);
|
|
18222
|
-
i0.ɵɵelementStart(31, "mat-option", 10);
|
|
18223
|
-
i0.ɵɵtext(32);
|
|
18224
|
-
i0.ɵɵpipe(33, "translate");
|
|
18225
|
-
i0.ɵɵelementEnd()()();
|
|
18226
|
-
i0.ɵɵtemplate(34, DrawComponent_button_34_Template, 4, 7, "button", 11);
|
|
19024
|
+
i0.ɵɵtemplate(22, DrawComponent_mat_slide_toggle_22_Template, 3, 5, "mat-slide-toggle", 6);
|
|
19025
|
+
i0.ɵɵtemplate(23, DrawComponent_div_23_Template, 8, 7, "div", 7);
|
|
18227
19026
|
i0.ɵɵelementEnd();
|
|
18228
|
-
i0.ɵɵelement(
|
|
18229
|
-
i0.ɵɵelementStart(
|
|
18230
|
-
i0.ɵɵ
|
|
18231
|
-
i0.ɵɵ
|
|
18232
|
-
i0.ɵɵ
|
|
19027
|
+
i0.ɵɵelement(24, "mat-divider");
|
|
19028
|
+
i0.ɵɵelementStart(25, "div")(26, "mat-form-field", 8)(27, "mat-label");
|
|
19029
|
+
i0.ɵɵtext(28);
|
|
19030
|
+
i0.ɵɵpipe(29, "translate");
|
|
19031
|
+
i0.ɵɵelementEnd();
|
|
19032
|
+
i0.ɵɵelementStart(30, "mat-select", 9, 10);
|
|
19033
|
+
i0.ɵɵlistener("selectionChange", function DrawComponent_Template_mat_select_selectionChange_30_listener() { i0.ɵɵrestoreView(_r29); const _r2 = i0.ɵɵreference(31); return i0.ɵɵresetView(ctx.onLayerChange(_r2.value)); });
|
|
19034
|
+
i0.ɵɵtemplate(32, DrawComponent_mat_option_32_Template, 2, 2, "mat-option", 11);
|
|
19035
|
+
i0.ɵɵelementStart(33, "mat-option", 12);
|
|
19036
|
+
i0.ɵɵtext(34);
|
|
19037
|
+
i0.ɵɵpipe(35, "translate");
|
|
18233
19038
|
i0.ɵɵelementEnd()()();
|
|
18234
|
-
i0.ɵɵ
|
|
18235
|
-
i0.ɵɵtemplate(42, DrawComponent_mat_form_field_42_Template, 11, 8, "mat-form-field", 16);
|
|
19039
|
+
i0.ɵɵtemplate(36, DrawComponent_button_36_Template, 4, 7, "button", 13);
|
|
18236
19040
|
i0.ɵɵelementEnd();
|
|
18237
|
-
i0.ɵɵ
|
|
18238
|
-
i0.ɵɵ
|
|
18239
|
-
i0.ɵɵ
|
|
18240
|
-
i0.ɵɵ
|
|
19041
|
+
i0.ɵɵelement(37, "mat-divider");
|
|
19042
|
+
i0.ɵɵelementStart(38, "div");
|
|
19043
|
+
i0.ɵɵtemplate(39, DrawComponent_button_39_Template, 4, 6, "button", 14);
|
|
19044
|
+
i0.ɵɵelementStart(40, "div");
|
|
19045
|
+
i0.ɵɵelement(41, "igo-entity-table", 15, 16);
|
|
19046
|
+
i0.ɵɵelementEnd()();
|
|
19047
|
+
i0.ɵɵelementStart(43, "div", 17);
|
|
19048
|
+
i0.ɵɵtemplate(44, DrawComponent_mat_form_field_44_Template, 11, 8, "mat-form-field", 18);
|
|
19049
|
+
i0.ɵɵelementEnd();
|
|
19050
|
+
i0.ɵɵelementStart(45, "button", 19);
|
|
19051
|
+
i0.ɵɵlistener("click", function DrawComponent_Template_button_click_45_listener() { return ctx.openShorcutsDialog(); });
|
|
19052
|
+
i0.ɵɵelement(46, "mat-icon", 20);
|
|
19053
|
+
i0.ɵɵpipe(47, "translate");
|
|
18241
19054
|
i0.ɵɵelementEnd();
|
|
18242
|
-
i0.ɵɵtemplate(
|
|
19055
|
+
i0.ɵɵtemplate(48, DrawComponent_button_48_Template, 5, 7, "button", 21);
|
|
18243
19056
|
i0.ɵɵelementEnd();
|
|
18244
19057
|
} if (rf & 2) {
|
|
18245
19058
|
i0.ɵɵadvance(2);
|
|
@@ -18247,35 +19060,39 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18247
19060
|
i0.ɵɵadvance(1);
|
|
18248
19061
|
i0.ɵɵproperty("value", ctx.geometryType.Point);
|
|
18249
19062
|
i0.ɵɵadvance(1);
|
|
18250
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5,
|
|
19063
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 29, "igo.geo.draw." + ctx.geometryType.Point), " ");
|
|
18251
19064
|
i0.ɵɵadvance(2);
|
|
18252
19065
|
i0.ɵɵproperty("value", ctx.geometryType.LineString);
|
|
18253
19066
|
i0.ɵɵadvance(1);
|
|
18254
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8,
|
|
19067
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 31, "igo.geo.draw." + ctx.geometryType.LineString), " ");
|
|
18255
19068
|
i0.ɵɵadvance(2);
|
|
18256
19069
|
i0.ɵɵproperty("value", ctx.geometryType.Polygon);
|
|
18257
19070
|
i0.ɵɵadvance(1);
|
|
18258
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11,
|
|
19071
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 33, "igo.geo.draw." + ctx.geometryType.Polygon), " ");
|
|
18259
19072
|
i0.ɵɵadvance(2);
|
|
18260
19073
|
i0.ɵɵproperty("value", ctx.geometryType.Circle);
|
|
18261
19074
|
i0.ɵɵadvance(1);
|
|
18262
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14,
|
|
19075
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 35, "igo.geo.draw." + ctx.geometryType.Circle), " ");
|
|
18263
19076
|
i0.ɵɵadvance(3);
|
|
18264
19077
|
i0.ɵɵproperty("disabled", ctx.drawControlIsDisabled)("checked", ctx.drawControlIsActive)("labelPosition", "before");
|
|
18265
19078
|
i0.ɵɵadvance(1);
|
|
18266
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18,
|
|
19079
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 37, "igo.geo.spatialFilter.drawControl"), " ");
|
|
18267
19080
|
i0.ɵɵadvance(2);
|
|
18268
19081
|
i0.ɵɵproperty("checked", ctx.labelsAreShown)("labelPosition", "before");
|
|
18269
19082
|
i0.ɵɵadvance(1);
|
|
18270
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21,
|
|
18271
|
-
i0.ɵɵadvance(
|
|
18272
|
-
i0.ɵɵ
|
|
19083
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 39, "igo.geo.draw.toggleMapTooltips"), " ");
|
|
19084
|
+
i0.ɵɵadvance(2);
|
|
19085
|
+
i0.ɵɵproperty("ngIf", !ctx.isPoint());
|
|
19086
|
+
i0.ɵɵadvance(1);
|
|
19087
|
+
i0.ɵɵproperty("ngIf", ctx.isCircle());
|
|
19088
|
+
i0.ɵɵadvance(5);
|
|
19089
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(29, 41, "igo.geo.draw.layer.title"));
|
|
18273
19090
|
i0.ɵɵadvance(2);
|
|
18274
19091
|
i0.ɵɵproperty("value", ctx.updateActiveLayer());
|
|
18275
19092
|
i0.ɵɵadvance(2);
|
|
18276
19093
|
i0.ɵɵproperty("ngForOf", ctx.allLayers);
|
|
18277
19094
|
i0.ɵɵadvance(2);
|
|
18278
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
19095
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(35, 43, "igo.geo.draw.layer.createNewLayer"), " ");
|
|
18279
19096
|
i0.ɵɵadvance(2);
|
|
18280
19097
|
i0.ɵɵproperty("ngIf", ctx.activeDrawingLayer);
|
|
18281
19098
|
i0.ɵɵadvance(3);
|
|
@@ -18285,10 +19102,10 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18285
19102
|
i0.ɵɵadvance(3);
|
|
18286
19103
|
i0.ɵɵproperty("ngIf", ctx.icons.length >= 1);
|
|
18287
19104
|
i0.ɵɵadvance(2);
|
|
18288
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(
|
|
19105
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(47, 45, "igo.geo.draw.shortcuts"));
|
|
18289
19106
|
i0.ɵɵadvance(2);
|
|
18290
19107
|
i0.ɵɵproperty("ngIf", ctx.selectedFeatures$.value.length);
|
|
18291
|
-
} }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i11.MatDivider, i13.MatFormField, i13.MatLabel, i2.MatIcon, i7$1.MatBadge, i4.MatTooltip, i15.MatSelect, i15.MatSelectTrigger, i9.MatOption, i23.MatSlideToggle, i5$1.EntityTableComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".geometry-type-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:25%}.draw-options[_ngcontent-%COMP%]{overflow-x:hidden}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.icon-options[_ngcontent-%COMP%]{margin:5px 5px 0}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}img[_ngcontent-%COMP%]{width:100%;height:100%}.deleteBtn[_ngcontent-%COMP%]{margin-left:12px}.storeTable[_ngcontent-%COMP%]{height:auto!important}.layer-select[_ngcontent-%COMP%]{width:85%;padding:10px 10px 0%}.input-button-container[_ngcontent-%COMP%]{padding:10px}.input-button-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:25%}.input-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:8px;bottom:10px}"], data: { animation: [
|
|
19108
|
+
} }, dependencies: [i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.MinValidator, i2$2.NgForm, i2$2.FormControlDirective, i1$1.NgForOf, i1$1.NgIf, i3.MatButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i11.MatDivider, i13.MatFormField, i13.MatLabel, i2.MatIcon, i7$1.MatBadge, i4.MatTooltip, i14.MatInput, i15.MatSelect, i15.MatSelectTrigger, i9.MatOption, i23.MatSlideToggle, i5$1.EntityTableComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: [".geometry-type-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.geometry-type-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:25%}.draw-options[_ngcontent-%COMP%]{overflow-x:hidden}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.draw-options[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.icon-options[_ngcontent-%COMP%]{margin:5px 5px 0}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}img[_ngcontent-%COMP%]{width:100%;height:100%}.deleteBtn[_ngcontent-%COMP%]{margin-left:12px}.storeTable[_ngcontent-%COMP%]{height:auto!important}.layer-select[_ngcontent-%COMP%]{width:85%;padding:10px 10px 0%}.input-button-container[_ngcontent-%COMP%]{padding:10px}.input-button-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:25%}.input-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:8px;bottom:10px}.radius[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}.radius-unit[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px} igo-entity-table td:last-child{text-align:right!important} igo-entity-table td:last-child button{margin:0%!important}"], data: { animation: [
|
|
18292
19109
|
trigger('openClose', [
|
|
18293
19110
|
state('open', style({
|
|
18294
19111
|
opacity: 1
|
|
@@ -18313,7 +19130,7 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18313
19130
|
transition('open => closed', [animate('600ms ease')]),
|
|
18314
19131
|
transition('closed => open', [animate('800ms ease')])
|
|
18315
19132
|
])
|
|
18316
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <div class=\"geometry-type-toggle mat-typography\">\n <mat-button-toggle-group\n (change)=\"onGeometryTypeChange($event.value)\" [value]=\"geometryType.Point\">\n <mat-button-toggle [value]=\"geometryType.Point\">\n {{'igo.geo.draw.' + geometryType.Point | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.LineString\">\n {{'igo.geo.draw.' + geometryType.LineString | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.Polygon\">\n {{'igo.geo.draw.' + geometryType.Polygon | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.Circle\">\n {{'igo.geo.draw.' + geometryType.Circle | translate}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <div class=\"draw-options mat-typography\">\n <mat-slide-toggle\n [disabled]=\"drawControlIsDisabled\"\n [checked]=\"drawControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDrawControl($event.checked)\">\n {{'igo.geo.spatialFilter.drawControl' | translate}}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n [checked]=\"labelsAreShown\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleLabels()\"\n >\n {{ 'igo.geo.draw.
|
|
19133
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <div class=\"geometry-type-toggle mat-typography\">\n <mat-button-toggle-group\n (change)=\"onGeometryTypeChange($event.value)\" [value]=\"geometryType.Point\">\n <mat-button-toggle [value]=\"geometryType.Point\">\n {{'igo.geo.draw.' + geometryType.Point | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.LineString\">\n {{'igo.geo.draw.' + geometryType.LineString | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.Polygon\">\n {{'igo.geo.draw.' + geometryType.Polygon | translate}}\n </mat-button-toggle>\n\n <mat-button-toggle [value]=\"geometryType.Circle\">\n {{'igo.geo.draw.' + geometryType.Circle | translate}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <div class=\"draw-options mat-typography\">\n <mat-slide-toggle\n [disabled]=\"drawControlIsDisabled\"\n [checked]=\"drawControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDrawControl($event.checked)\">\n {{'igo.geo.spatialFilter.drawControl' | translate}}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n [checked]=\"labelsAreShown\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleLabels()\">\n {{ 'igo.geo.draw.toggleMapTooltips' | translate }}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n *ngIf=\"!isPoint()\"\n [checked]=\"freehandMode\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleFreehandMode($event)\">\n {{ 'igo.geo.draw.freehandMode' | translate }}\n </mat-slide-toggle>\n\n <div class=\"radius-unit\" *ngIf=\"isCircle()\">\n <form class=\"radius-form\">\n <mat-form-field class=\"radius\">\n <input\n matInput type=\"number\"\n min=\"0\"\n placeholder=\"{{ 'igo.geo.spatialFilter.radius' | translate }}\"\n [formControl]=\"radiusFormControl\"\n [readonly]=\"this.freehandMode\">\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\n <mat-option\n *ngFor=\"let measureUnit of measureUnits\"\n [value]=\"measureUnit\">\n {{('igo.geo.measure.' + measureUnit) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <mat-divider></mat-divider>\n\n <div>\n <mat-form-field appearance=\"outline\" class=\"layer-select\">\n <mat-label>{{'igo.geo.draw.layer.title' | translate}}</mat-label>\n <mat-select #selectedLayer (selectionChange)=\"onLayerChange(selectedLayer.value)\" [value]=\"updateActiveLayer()\">\n <mat-option *ngFor=\"let layer of allLayers\" [value]=\"layer\">\n {{ layer.title }}\n </mat-option>\n <mat-option id=\"createNewLayer\" >\n {{'igo.geo.draw.layer.createNewLayer' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <button\n *ngIf=\"activeDrawingLayer\"\n mat-icon-button\n [color]=\"activeDrawingLayer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"activeDrawingLayer.visible ?\n ('igo.geo.layer.hideLayer' | translate) :\n ('igo.geo.layer.showLayer' | translate)\"\n (click)=\"activeDrawingLayer.visible = !activeDrawingLayer.visible\">\n <mat-icon\n [svgIcon]=\"activeDrawingLayer.visible ? 'eye' : 'eye-off'\">\n </mat-icon>\n </button>\n </div>\n <mat-divider></mat-divider>\n <div>\n <button\n *ngIf=\"activeStore.count$.getValue() > 0\"\n class=\"deleteBtn\"\n mat-icon-button\n color=\"warn\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.delete' | translate\"\n [disabled]=\"(selectedFeatures$ | async).length === 0\"\n (click)=\"deleteDrawings()\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n\n <div>\n <igo-entity-table\n #table\n class=\"table-compact\"\n [store]=\"activeStore\"\n [template]=\"tableTemplate\">\n </igo-entity-table>\n </div>\n </div>\n\n <div class=\"icon-options\">\n <mat-form-field *ngIf=\"icons.length >= 1\">\n <mat-label>{{ 'igo.geo.draw.icon' | translate }}</mat-label>\n <mat-select>\n <mat-select-trigger>\n <div *ngIf=\"icon\" class=\"box\">\n <img src=\"{{ icon }}\">\n </div>\n </mat-select-trigger>\n <mat-option value=\"\" (click)=\"onIconChange()\">{{ 'igo.geo.draw.noIcon' | translate }}</mat-option>\n <mat-option\n *ngFor=\"let icon_html of icons\"\n [value]=\"icon_html\"\n (click)=\"onIconChange(icon_html)\">\n <div class=\"box\">\n <img src=\"{{ icon_html }}\">\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <button\n mat-icon-button\n color=\"accent\"\n disableRipple=\"true\"\n (click)=\"openShorcutsDialog()\"\n >\n <mat-icon\n class=\"shortcuts-icon\"\n svgIcon=\"keyboard-outline\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.shortcuts' | translate\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"selectedFeatures$.value.length\"\n mat-raised-button\n color=\"primary\"\n (click)=\"openStyleModalDialog()\"\n [matTooltip]=\"'igo.geo.layer.style.styleModalTooltip' | translate\">\n {{'igo.geo.layer.style.styleModal' | translate}}\n <mat-icon\n class=\"style-icon\"\n svgIcon=\"palette\"\n [matBadge]=\"selectedFeatures$.value.length\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\">\n </mat-icon>\n </button>\n</div>\n", styles: [".geometry-type-toggle{padding:10px;text-align:center}.geometry-type-toggle mat-button-toggle-group{width:100%}.geometry-type-toggle mat-button-toggle-group mat-button-toggle{width:25%}.draw-options{overflow-x:hidden}.draw-options mat-slide-toggle{width:100%;margin:10px}.draw-options mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.icon-options{margin:5px 5px 0}.edition-drawing{padding:10px 0}img{width:100%;height:100%}.deleteBtn{margin-left:12px}.storeTable{height:auto!important}.layer-select{width:85%;padding:10px 10px 0%}.input-button-container{padding:10px}.input-button-container mat-form-field{width:25%}.input-button-container button{left:8px;bottom:10px}.radius{display:flex;flex-flow:column nowrap;width:110%}.unit-field{width:110px;margin-left:30px}.radius-unit{display:flex;width:100%;margin-left:2px;padding:5px}::ng-deep igo-entity-table td:last-child{text-align:right!important}::ng-deep igo-entity-table td:last-child button{margin:0%!important}\n"] }]
|
|
18317
19134
|
}], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i1.MatDialog }, { type: DrawIconService }]; }, { map: [{
|
|
18318
19135
|
type: Input
|
|
18319
19136
|
}], stores: [{
|
|
@@ -18603,7 +19420,7 @@ StyleModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StyleMo
|
|
|
18603
19420
|
i0.ɵɵproperty("value", ctx.getFeatureOffsetY());
|
|
18604
19421
|
i0.ɵɵadvance(4);
|
|
18605
19422
|
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(51, 44, "igo.geo.draw.cancel"), " ");
|
|
18606
|
-
} }, dependencies: [i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i1$1.NgForOf, i1$1.NgIf, i2.MatIcon, i3.MatButton, i15.MatSelect, i9.MatOption, i4.MatTooltip, i12.ColorPickerDirective, i7.TranslatePipe], styles: ["h2[_ngcontent-%COMP%]{font-weight:700;font-size:large}.igo-form[_ngcontent-%COMP%]{padding:10px}.fill-field[_ngcontent-%COMP%], .stroke-field[_ngcontent-%COMP%]{width:130px}.fill-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.fill-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:8px}.stroke-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.stroke-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:35px}.box[_ngcontent-%COMP%]{width:25px;height:25px}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}.igo-input-container[_ngcontent-%COMP%] .mat-form-field[_ngcontent-%COMP%] + .mat-form-field[_ngcontent-%COMP%]{margin-left:8px}.igo-form-input-box[_ngcontent-%COMP%]{width:150px}button[_ngcontent-%COMP%]{margin-right:5px}"] });
|
|
19423
|
+
} }, dependencies: [i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.FormGroupDirective, i2$2.FormControlName, i1$1.NgForOf, i1$1.NgIf, i2.MatIcon, i3.MatButton, i15.MatSelect, i9.MatOption, i4.MatTooltip, i12$1.ColorPickerDirective, i7.TranslatePipe], styles: ["h2[_ngcontent-%COMP%]{font-weight:700;font-size:large}.igo-form[_ngcontent-%COMP%]{padding:10px}.fill-field[_ngcontent-%COMP%], .stroke-field[_ngcontent-%COMP%]{width:130px}.fill-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.fill-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:8px}.stroke-color-picker[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}.stroke-color-picker[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{left:35px}.box[_ngcontent-%COMP%]{width:25px;height:25px}.edition-drawing[_ngcontent-%COMP%]{padding:10px 0}.igo-input-container[_ngcontent-%COMP%] .mat-form-field[_ngcontent-%COMP%] + .mat-form-field[_ngcontent-%COMP%]{margin-left:8px}.igo-form-input-box[_ngcontent-%COMP%]{width:150px}button[_ngcontent-%COMP%]{margin-right:5px}"] });
|
|
18607
19424
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StyleModalComponent, [{
|
|
18608
19425
|
type: Component,
|
|
18609
19426
|
args: [{ selector: 'igo-style-modal-component', template: "<div mat-dialog-content>\n <h2 mat-dialog-title class=\"mat-typography\">{{ 'igo.geo.layer.style.styleModal' | translate }}</h2>\n <div\n class=\"edition-drawing mat-typography\"\n [hidden]=\"data.features.length === 0\">\n <form\n class=\"igo-form\"\n [formGroup]=\"form\">\n <div class=\"fill-color-picker mat-typography\" *ngIf=\"linestringOnly !== true\">\n <span>\n <mat-icon class=\"stroke-palette-icon\" svgIcon=\"square\"></mat-icon>\n {{ 'igo.geo.draw.fill' | translate }}\n </span>\n\n <mat-form-field\n class=\"fill-field\"\n appearance=\"outline\"\n floatLabel=\"always\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.colorPicker' | translate\">\n <mat-label>{{ getFeatureFillColor() }}</mat-label>\n <input\n #fillColorInput\n formControlName=\"fill\"\n matInput\n type=\"text\"\n [style.background]=\"getFeatureFillColor()\"\n [readonly]=\"true\"\n [colorPicker]=\"getFeatureFillColor()\"\n [cpWidth]=\"'200px'\"\n [cpOutputFormat]=\"'rgba'\"\n [cpPosition]=\"'bottom'\"\n [cpPositionOffset]=\"'-75%'\"\n [cpCancelButton]=\"true\"\n [cpCancelButtonText]=\"'igo.geo.draw.cancel' | translate\"\n [cpOKButton]=\"true\"\n (colorPickerChange)=\"styleModalData.fillColor = $event\">\n </mat-form-field>\n </div>\n\n <div class=\"stroke-color-picker mat-typography\">\n <span>\n <mat-icon\n class=\"stroke-palette-icon\"\n svgIcon=\"square-outline\">\n </mat-icon>\n {{'igo.geo.draw.stroke' | translate}}\n </span>\n\n <mat-form-field\n class=\"stroke-field\"\n appearance=\"outline\"\n floatLabel=\"always\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.draw.colorPicker' | translate\">\n <mat-label>{{ getFeatureStrokeColor() }}</mat-label>\n <input\n #strokeColorInput\n formControlName=\"stroke\"\n matInput\n type=\"text\"\n [style.background]=\"getFeatureStrokeColor()\"\n [readonly]=\"true\"\n [colorPicker]=\"getFeatureStrokeColor()\"\n [cpWidth]=\"'200px'\"\n [cpPosition]=\"'bottom'\"\n [cpPositionOffset]=\"'-75%'\"\n [cpOutputFormat]=\"'rgba'\"\n [cpCancelButton]=\"true\"\n [cpCancelButtonText]=\"'igo.geo.draw.cancel' | translate\"\n [cpOKButton]=\"true\"\n (colorPickerChange)=\"styleModalData.strokeColor = $event\">\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.fontSize' | translate }}</mat-label>\n <input\n matInput\n #testFontSize\n type=\"number\"\n placeholder=\"10\"\n min=\"10\"\n onkeydown=\"return event.keyCode !== 69\"\n [value]=\"getFeatureFontSize()\"\n (input)=\"styleModalData.fontSize = $event.target.value\">\n <span matSuffix>px</span>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.fontStyle' | translate }}</mat-label>\n <mat-select\n #testFontStyle\n [value]=\"getFeatureFontStyle()\"\n (selectionChange)=\"styleModalData.fontStyle = $event.value\">\n <mat-option\n *ngFor=\"let fontSelect of allFontStyles\"\n [value]=\"fontSelect\">\n {{ fontSelect }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.offsetX' | translate }}</mat-label>\n <input\n matInput\n #offsetXInput\n type=\"number\"\n onkeydown=\"return event.keyCode !== 69\"\n [value]=\"getFeatureOffsetX()\"\n (input)=\"styleModalData.offsetX = $event.target.value\">\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\n <mat-label>{{ 'igo.geo.draw.offsetY' | translate }}</mat-label>\n <input\n matInput\n #offsetYInput\n type=\"number\"\n onkeydown=\"return event.keyCode !== 69\"\n [value]=\"getFeatureOffsetY()\"\n (input)=\"styleModalData.offsetY= $event.target.value\">\n </mat-form-field>\n </div>\n </form>\n </div>\n</div>\n<div mat-dialog-actions>\n <button \n mat-raised-button \n (click)=\"cancelDrawing()\">{{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm()\">OK\n </button>\n</div>\n", styles: ["h2{font-weight:700;font-size:large}.igo-form{padding:10px}.fill-field,.stroke-field{width:130px}.fill-color-picker mat-icon{position:relative;top:7px}.fill-color-picker mat-form-field{left:8px}.stroke-color-picker mat-icon{position:relative;top:7px}.stroke-color-picker mat-form-field{left:35px}.box{width:25px;height:25px}.edition-drawing{padding:10px 0}.igo-input-container .mat-form-field+.mat-form-field{margin-left:8px}.igo-form-input-box{width:150px}button{margin-right:5px}\n"] }]
|
|
@@ -18745,9 +19562,9 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatInputM
|
|
|
18745
19562
|
LayerLegendListBindingDirective,
|
|
18746
19563
|
TrackFeatureButtonComponent,
|
|
18747
19564
|
StyleModalComponent] }); })();
|
|
18748
|
-
i0.ɵɵsetComponentScope(LayerItemComponent, [i1$1.NgClass, i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5.MatListItem, i9.MatLine, i5.MatListIconCssMatStyler, i7$1.MatBadge, i12
|
|
19565
|
+
i0.ɵɵsetComponentScope(LayerItemComponent, [i1$1.NgClass, i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5.MatListItem, i9.MatLine, i5.MatListIconCssMatStyler, i7$1.MatBadge, i12.MatCheckbox, LayerLegendComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
18749
19566
|
i0.ɵɵsetComponentScope(LayerLegendItemComponent, [i4.MatTooltip, i5.MatListItem, i9.MatLine, LayerLegendComponent], []);
|
|
18750
|
-
i0.ɵɵsetComponentScope(LayerListComponent, [i2$2.NgControlStatus, i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i1$1.NgTemplateOutlet, i2$2.NgModel, i11.MatDivider, i7$2.MatMenu, i7$2.MatMenuTrigger, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5.MatList, i5.MatListItem, i13$1.MatSlider, i7$1.MatBadge, i12
|
|
19567
|
+
i0.ɵɵsetComponentScope(LayerListComponent, [i2$2.NgControlStatus, i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i1$1.NgTemplateOutlet, i2$2.NgModel, i11.MatDivider, i7$2.MatMenu, i7$2.MatMenuTrigger, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5.MatList, i5.MatListItem, i13$1.MatSlider, i7$1.MatBadge, i12.MatCheckbox, i5$1.ListItemDirective, i5$1.ListComponent, i5$1.PanelComponent, LayerItemComponent,
|
|
18751
19568
|
LayerListToolComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
18752
19569
|
i0.ɵɵsetComponentScope(LayerLegendListComponent, [i1$1.NgForOf, i1$1.NgIf, i11.MatDivider, i23.MatSlideToggle, i4.MatTooltip, i5$1.ListItemDirective, i5$1.ListComponent, LayerLegendItemComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
18753
19570
|
|
|
@@ -20071,7 +20888,9 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
|
|
|
20071
20888
|
IgoEntityTableModule,
|
|
20072
20889
|
ColorPickerModule,
|
|
20073
20890
|
BrowserModule,
|
|
20074
|
-
BrowserAnimationsModule
|
|
20891
|
+
BrowserAnimationsModule,
|
|
20892
|
+
MatRadioModule,
|
|
20893
|
+
MatCheckboxModule] });
|
|
20075
20894
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoDrawModule, [{
|
|
20076
20895
|
type: NgModule,
|
|
20077
20896
|
args: [{
|
|
@@ -20096,7 +20915,9 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
|
|
|
20096
20915
|
IgoEntityTableModule,
|
|
20097
20916
|
ColorPickerModule,
|
|
20098
20917
|
BrowserModule,
|
|
20099
|
-
BrowserAnimationsModule
|
|
20918
|
+
BrowserAnimationsModule,
|
|
20919
|
+
MatRadioModule,
|
|
20920
|
+
MatCheckboxModule
|
|
20100
20921
|
],
|
|
20101
20922
|
declarations: [DrawComponent, DrawPopupComponent, DrawLayerPopupComponent, DrawShorcutsComponent],
|
|
20102
20923
|
exports: [DrawComponent]
|
|
@@ -20122,7 +20943,9 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
|
|
|
20122
20943
|
IgoEntityTableModule,
|
|
20123
20944
|
ColorPickerModule,
|
|
20124
20945
|
BrowserModule,
|
|
20125
|
-
BrowserAnimationsModule
|
|
20946
|
+
BrowserAnimationsModule,
|
|
20947
|
+
MatRadioModule,
|
|
20948
|
+
MatCheckboxModule], exports: [DrawComponent] }); })();
|
|
20126
20949
|
|
|
20127
20950
|
class IgoDrawingToolModule {
|
|
20128
20951
|
}
|
|
@@ -22286,6 +23109,14 @@ class GeometryFormFieldInputComponent {
|
|
|
22286
23109
|
}
|
|
22287
23110
|
this.toggleControl();
|
|
22288
23111
|
}
|
|
23112
|
+
/**
|
|
23113
|
+
* Whether freehand draw control should be active or not
|
|
23114
|
+
*/
|
|
23115
|
+
get predefinedRadius() { return this._predefinedRadius; }
|
|
23116
|
+
set predefinedRadius(value) {
|
|
23117
|
+
this._predefinedRadius = value;
|
|
23118
|
+
this.drawControl.ispredefinedRadius$.next(value);
|
|
23119
|
+
}
|
|
22289
23120
|
/**
|
|
22290
23121
|
* Style for the draw control (applies while the geometry is being drawn)
|
|
22291
23122
|
*/
|
|
@@ -22666,7 +23497,7 @@ class GeometryFormFieldInputComponent {
|
|
|
22666
23497
|
}
|
|
22667
23498
|
}
|
|
22668
23499
|
GeometryFormFieldInputComponent.ɵfac = function GeometryFormFieldInputComponent_Factory(t) { return new (t || GeometryFormFieldInputComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2$2.NgControl, 10)); };
|
|
22669
|
-
GeometryFormFieldInputComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GeometryFormFieldInputComponent, selectors: [["igo-geometry-form-field-input"]], inputs: { map: "map", geometryType: "geometryType", drawGuide: "drawGuide", measure: "measure", drawControlIsActive: "drawControlIsActive", freehandDrawIsActive: "freehandDrawIsActive", controlOptions: "controlOptions", drawStyle: "drawStyle", overlayStyle: "overlayStyle", value: "value", radius: "radius" }, decls: 1, vars: 0, template: function GeometryFormFieldInputComponent_Template(rf, ctx) { if (rf & 1) {
|
|
23500
|
+
GeometryFormFieldInputComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GeometryFormFieldInputComponent, selectors: [["igo-geometry-form-field-input"]], inputs: { map: "map", geometryType: "geometryType", drawGuide: "drawGuide", measure: "measure", drawControlIsActive: "drawControlIsActive", freehandDrawIsActive: "freehandDrawIsActive", predefinedRadius: "predefinedRadius", controlOptions: "controlOptions", drawStyle: "drawStyle", overlayStyle: "overlayStyle", value: "value", radius: "radius" }, decls: 1, vars: 0, template: function GeometryFormFieldInputComponent_Template(rf, ctx) { if (rf & 1) {
|
|
22670
23501
|
i0.ɵɵtemplate(0, GeometryFormFieldInputComponent_ng_template_0_Template, 0, 0, "ng-template");
|
|
22671
23502
|
} }, encapsulation: 2, changeDetection: 0 });
|
|
22672
23503
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GeometryFormFieldInputComponent, [{
|
|
@@ -22688,6 +23519,8 @@ GeometryFormFieldInputComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
|
|
|
22688
23519
|
type: Input
|
|
22689
23520
|
}], freehandDrawIsActive: [{
|
|
22690
23521
|
type: Input
|
|
23522
|
+
}], predefinedRadius: [{
|
|
23523
|
+
type: Input
|
|
22691
23524
|
}], controlOptions: [{
|
|
22692
23525
|
type: Input
|
|
22693
23526
|
}], drawStyle: [{
|
|
@@ -23924,7 +24757,7 @@ TimeFilterListBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ ty
|
|
|
23924
24757
|
class WktService {
|
|
23925
24758
|
constructor() { }
|
|
23926
24759
|
wktToFeature(wkt, wktProj, featureProj) {
|
|
23927
|
-
return new
|
|
24760
|
+
return new olFormatWKT().readFeature(wkt, {
|
|
23928
24761
|
dataProjection: wktProj,
|
|
23929
24762
|
featureProjection: featureProj
|
|
23930
24763
|
});
|
|
@@ -27324,6 +28157,7 @@ class SpatialFilterItemComponent {
|
|
|
27324
28157
|
this.measureUnitChange = new EventEmitter();
|
|
27325
28158
|
this.radiusEvent = new EventEmitter();
|
|
27326
28159
|
this.freehandControl = new EventEmitter();
|
|
28160
|
+
this.predefinedRadius = new EventEmitter();
|
|
27327
28161
|
this.clearButtonEvent = new EventEmitter();
|
|
27328
28162
|
this.clearSearchEvent = new EventEmitter();
|
|
27329
28163
|
this.export = new EventEmitter();
|
|
@@ -27791,6 +28625,16 @@ class SpatialFilterItemComponent {
|
|
|
27791
28625
|
onfreehandControlChange() {
|
|
27792
28626
|
this.freehandDrawIsActive = !this.freehandDrawIsActive;
|
|
27793
28627
|
this.freehandControl.emit(this.freehandDrawIsActive);
|
|
28628
|
+
if (this.isPoint()) {
|
|
28629
|
+
this.predefinedRadius.emit(!this.freehandDrawIsActive);
|
|
28630
|
+
if (this.freehandDrawIsActive) {
|
|
28631
|
+
this.overlayStyle$.next(undefined);
|
|
28632
|
+
this.drawStyle$.next(undefined);
|
|
28633
|
+
}
|
|
28634
|
+
}
|
|
28635
|
+
else {
|
|
28636
|
+
this.predefinedRadius.emit(false);
|
|
28637
|
+
}
|
|
27794
28638
|
}
|
|
27795
28639
|
/**
|
|
27796
28640
|
* Launch search button
|
|
@@ -27979,7 +28823,7 @@ class SpatialFilterItemComponent {
|
|
|
27979
28823
|
}
|
|
27980
28824
|
}
|
|
27981
28825
|
SpatialFilterItemComponent.ɵfac = function SpatialFilterItemComponent_Factory(t) { return new (t || SpatialFilterItemComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(SpatialFilterService), i0.ɵɵdirectiveInject(i2$1.MessageService), i0.ɵɵdirectiveInject(i2$1.LanguageService)); };
|
|
27982
|
-
SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SpatialFilterItemComponent, selectors: [["igo-spatial-filter-item"]], inputs: { map: "map", type: "type", queryType: "queryType", zone: "zone", loading: "loading", store: "store", layers: "layers", allLayers: "allLayers", thematicLength: "thematicLength" }, outputs: { toggleSearch: "toggleSearch", itemTypeChange: "itemTypeChange", thematicChange: "thematicChange", drawZoneEvent: "drawZoneEvent", bufferEvent: "bufferEvent", zoneWithBufferChange: "zoneWithBufferChange", measureUnitChange: "measureUnitChange", radiusEvent: "radiusEvent", freehandControl: "freehandControl", clearButtonEvent: "clearButtonEvent", clearSearchEvent: "clearSearchEvent", export: "export", openWorkspace: "openWorkspace", entityChange: "entityChange" }, decls: 29, vars:
|
|
28826
|
+
SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SpatialFilterItemComponent, selectors: [["igo-spatial-filter-item"]], inputs: { map: "map", type: "type", queryType: "queryType", zone: "zone", loading: "loading", store: "store", layers: "layers", allLayers: "allLayers", thematicLength: "thematicLength" }, outputs: { toggleSearch: "toggleSearch", itemTypeChange: "itemTypeChange", thematicChange: "thematicChange", drawZoneEvent: "drawZoneEvent", bufferEvent: "bufferEvent", zoneWithBufferChange: "zoneWithBufferChange", measureUnitChange: "measureUnitChange", radiusEvent: "radiusEvent", freehandControl: "freehandControl", predefinedRadius: "predefinedRadius", clearButtonEvent: "clearButtonEvent", clearSearchEvent: "clearSearchEvent", export: "export", openWorkspace: "openWorkspace", entityChange: "entityChange" }, decls: 29, vars: 43, consts: [[3, "formControl", "map", "geometryType", "drawGuide", "measure", "drawControlIsActive", "freehandDrawIsActive", "drawStyle", "overlayStyle", "radius", "predefinedRadius"], [1, "header"], [3, "checked", "labelPosition", "change", 4, "ngIf"], ["class", "buffer-unit", 4, "ngIf"], ["class", "radius-unit", 4, "ngIf"], [1, "title", "mat-typography"], [3, "value"], [3, "value", "change", 4, "ngFor", "ngForOf"], ["class", "thematics", 4, "ngIf"], [1, "buttons"], ["mat-raised-button", "", "class", "clear-search-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "class", "clear-form-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "color", "primary", 1, "search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "remove-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "export-button", 3, "disabled", "click"], ["class", "chevron-down", "mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], ["class", "results", 4, "ngIf"], [3, "checked", "labelPosition", "change"], [1, "buffer-unit"], [1, "buffer-form"], [1, "buffer"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly"], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [1, "radius-unit"], [1, "radius-form"], [1, "radius"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly", "input"], [3, "value", "change"], [1, "thematics"], ["matColumnDef", "name"], ["class", "thematics-header", 4, "matHeaderCellDef"], ["matColumnDef", "select"], ["class", "checks-header", 4, "matHeaderCellDef"], [4, "matHeaderRowDef"], [4, "matRowDef", "matRowDefColumns"], [3, "dataSource", "treeControl"], ["matTreeNodeToggle", "", 4, "matTreeNodeDef"], [4, "matTreeNodeDef", "matTreeNodeDefWhen"], [1, "thematics-header"], [1, "checks-header"], [3, "checked", "indeterminate", "change"], ["matTreeNodeToggle", ""], [1, "mat-tree-node"], ["mat-icon-button", "", "disabled", ""], [1, "tree-check", 3, "checked", "click", "change"], ["mat-icon-button", "", 3, "click"], [3, "svgIcon"], [1, "tree-check-2", 3, "checked", "indeterminate", "change"], [1, "tree-ul"], ["matTreeNodeOutlet", ""], ["mat-raised-button", "", 1, "clear-search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "clear-form-button", 3, "disabled", "click"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 1, "chevron-down", 3, "matTooltip", "click"], ["svgIcon", "chevron-down"], [1, "results"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], [1, "results-list", 3, "template", "store", "entitySelectChange"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["svgIcon", "chevron-up"]], template: function SpatialFilterItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
27983
28827
|
i0.ɵɵelement(0, "igo-geometry-form-field-input", 0);
|
|
27984
28828
|
i0.ɵɵpipe(1, "async");
|
|
27985
28829
|
i0.ɵɵpipe(2, "async");
|
|
@@ -28019,7 +28863,7 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28019
28863
|
i0.ɵɵtemplate(27, SpatialFilterItemComponent_button_27_Template, 3, 3, "button", 15);
|
|
28020
28864
|
i0.ɵɵtemplate(28, SpatialFilterItemComponent_div_28_Template, 3, 3, "div", 16);
|
|
28021
28865
|
} if (rf & 2) {
|
|
28022
|
-
i0.ɵɵproperty("formControl", ctx.formControl)("map", ctx.map)("geometryType", ctx.geometryType)("drawGuide", i0.ɵɵpipeBind1(1,
|
|
28866
|
+
i0.ɵɵproperty("formControl", ctx.formControl)("map", ctx.map)("geometryType", ctx.geometryType)("drawGuide", i0.ɵɵpipeBind1(1, 29, ctx.drawGuide$))("measure", ctx.measure)("drawControlIsActive", ctx.drawControlIsActive)("freehandDrawIsActive", ctx.freehandDrawIsActive)("drawStyle", i0.ɵɵpipeBind1(2, 31, ctx.drawStyle$))("overlayStyle", i0.ɵɵpipeBind1(3, 33, ctx.overlayStyle$))("radius", ctx.radius)("predefinedRadius", ctx.predefinedRadius);
|
|
28023
28867
|
i0.ɵɵadvance(5);
|
|
28024
28868
|
i0.ɵɵproperty("ngIf", !ctx.isPredefined());
|
|
28025
28869
|
i0.ɵɵadvance(1);
|
|
@@ -28029,7 +28873,7 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28029
28873
|
i0.ɵɵadvance(1);
|
|
28030
28874
|
i0.ɵɵproperty("ngIf", ctx.isPoint());
|
|
28031
28875
|
i0.ɵɵadvance(2);
|
|
28032
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(11,
|
|
28876
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(11, 35, "igo.geo.spatialFilter.search"), " : ");
|
|
28033
28877
|
i0.ɵɵadvance(2);
|
|
28034
28878
|
i0.ɵɵproperty("value", ctx.selectedItemType);
|
|
28035
28879
|
i0.ɵɵadvance(1);
|
|
@@ -28043,15 +28887,15 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28043
28887
|
i0.ɵɵadvance(1);
|
|
28044
28888
|
i0.ɵɵproperty("disabled", ctx.disableSearchButton());
|
|
28045
28889
|
i0.ɵɵadvance(1);
|
|
28046
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20,
|
|
28890
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 37, "igo.geo.spatialFilter.goSearch"), " ");
|
|
28047
28891
|
i0.ɵɵadvance(2);
|
|
28048
28892
|
i0.ɵɵproperty("disabled", ctx.allLayers.length === 0);
|
|
28049
28893
|
i0.ɵɵadvance(1);
|
|
28050
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23,
|
|
28894
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 39, "igo.geo.spatialFilter.removeLayer"), " ");
|
|
28051
28895
|
i0.ɵɵadvance(2);
|
|
28052
28896
|
i0.ɵɵproperty("disabled", !ctx.store.entities$.getValue().length);
|
|
28053
28897
|
i0.ɵɵadvance(1);
|
|
28054
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26,
|
|
28898
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26, 41, "igo.geo.spatialFilter.exportLayer"), " ");
|
|
28055
28899
|
i0.ɵɵadvance(2);
|
|
28056
28900
|
i0.ɵɵproperty("ngIf", ctx.store.all().length && ctx.tableTemplate && !ctx.listIsVisible);
|
|
28057
28901
|
i0.ɵɵadvance(1);
|
|
@@ -28059,7 +28903,7 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28059
28903
|
} }, styles: [".header[_ngcontent-%COMP%]{margin-top:5px;width:100%}.mat-slide-toggle[_ngcontent-%COMP%]{padding:5px;margin-bottom:15px;width:98%}.mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 20px)}.title[_ngcontent-%COMP%]{margin-left:5px;font-size:medium;font-size:initial}.mat-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-top:10px}.mat-radio-button[_ngcontent-%COMP%]{display:inline-flex;position:relative;margin-left:16px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{margin-top:5px}.mat-column-select[_ngcontent-%COMP%]{overflow:auto}.buttons[_ngcontent-%COMP%]{margin-top:15px}.search-button[_ngcontent-%COMP%]{left:15px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.search-button[_ngcontent-%COMP%]{left:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.export-button[_ngcontent-%COMP%]{left:15px;width:46%;margin-bottom:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.export-button[_ngcontent-%COMP%]{left:10px;margin-top:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.remove-button[_ngcontent-%COMP%]{margin-top:12px;left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.remove-button[_ngcontent-%COMP%]{margin:0;width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-form-button[_ngcontent-%COMP%]{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-form-button[_ngcontent-%COMP%]{width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-search-button[_ngcontent-%COMP%]{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-search-button[_ngcontent-%COMP%]{width:45%;min-height:35px;white-space:normal;line-height:normal}}.thematics[_ngcontent-%COMP%]{max-height:35%;overflow:auto;margin-top:5px;width:98%}.results[_ngcontent-%COMP%]{overflow:auto;max-height:250px;width:98%}.mat-column-typeResults[_ngcontent-%COMP%]{max-width:100px;margin-right:5px}.buffer-unit[_ngcontent-%COMP%], .radius-unit[_ngcontent-%COMP%]{display:flex;width:100%;margin-left:2px;padding:5px}.radius[_ngcontent-%COMP%], .buffer[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}.unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}.example-tree-invisible[_ngcontent-%COMP%]{display:none}.tree-ul[_ngcontent-%COMP%]{margin:0;padding:0 0 0 20px;list-style-type:none}.tree-check[_ngcontent-%COMP%], .tree-check-2[_ngcontent-%COMP%]{position:relative;margin-left:auto;margin-right:5px}.thematics-header[_ngcontent-%COMP%]{max-width:250px}.checks-header[_ngcontent-%COMP%]{padding:none;max-width:calc(100% - 316px);overflow:hidden}.mat-checkbox[_ngcontent-%COMP%]{padding:5px}.mat-tree-node[_ngcontent-%COMP%]{position:relative;min-height:42px;width:280px}.mat-header-cell[_ngcontent-%COMP%]{height:56px}.results[_ngcontent-%COMP%]{max-height:45%;width:98%}.results[_ngcontent-%COMP%] igo-entity-table[_ngcontent-%COMP%] div.table-container{overflow:visible;overflow:initial}"], changeDetection: 0 });
|
|
28060
28904
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SpatialFilterItemComponent, [{
|
|
28061
28905
|
type: Component,
|
|
28062
|
-
args: [{ selector: 'igo-spatial-filter-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-geometry-form-field-input\n [formControl]=\"formControl\"\n [map]=\"map\"\n [geometryType]=\"geometryType\"\n [drawGuide]=\"drawGuide$ | async\"\n [measure]=\"measure\"\n [drawControlIsActive]=\"drawControlIsActive\"\n [freehandDrawIsActive]=\"freehandDrawIsActive\"\n [drawStyle]=\"drawStyle$ | async\"\n [overlayStyle]=\"overlayStyle$ | async\"\n [radius]=\"radius\">\n</igo-geometry-form-field-input>\n\n<div class=\"header\">\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\n [checked]=\"drawControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onDrawControlChange()\">\n {{'igo.geo.spatialFilter.drawControl' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\n [checked]=\"freehandDrawIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onfreehandControlChange()\">\n {{'igo.geo.spatialFilter.freehandControl' | translate}}\n </mat-slide-toggle>\n</div>\n\n<div class=\"buffer-unit\" *ngIf=\"isPolygon()\">\n <form class=\"buffer-form\">\n <mat-form-field class=\"buffer\">\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.buffer' | translate}}\" [formControl]=\"bufferFormControl\"\n [value]=\"0\" [readonly]=\"this.formControl.value === null\">\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\n {{('igo.geo.measure.' + measureUnit) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n\n<div class=\"radius-unit\" *ngIf=\"isPoint()\">\n <form class=\"radius-form\">\n <mat-form-field class=\"radius\">\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.radius' | translate}}\" [formControl]=\"radiusFormControl\"\n [value]=\"1000\" (input)=\"getRadius()\" [readonly]=\"this.freehandDrawIsActive && this.formControl.value === null\">\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\n {{('igo.geo.measure.' + measureUnit) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n\n<mat-label class=\"title mat-typography\">{{'igo.geo.spatialFilter.search' | translate}} : </mat-label>\n<mat-radio-group [value]=\"selectedItemType\">\n <mat-radio-button *ngFor=\"let item of itemType\"\n [value]=\"item\"\n (change)=\"onItemTypeChange($event)\">\n {{'igo.geo.spatialFilter.' + item | translate}}\n </mat-radio-button>\n</mat-radio-group>\n\n<div class=\"thematics\" *ngIf=\"(selectedItemType==='Thematics' && !tableTemplate) || (selectedItemType==='Thematics' && tableTemplate && !listIsVisible)\">\n <mat-table>\n <!-- Name Column -->\n <ng-container matColumnDef=\"name\">\n <mat-header-cell *matHeaderCellDef class=\"thematics-header\">{{'igo.geo.spatialFilter.Thematics' | translate}}</mat-header-cell>\n </ng-container>\n\n <!-- Select Column -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef class=\"checks-header\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"selectedThematics.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </mat-header-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\n\n </mat-table>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\n <li class=\"mat-tree-node\">\n <!-- use a disabled button to provide padding for tree leaf -->\n <button mat-icon-button disabled></button>\n {{node.name}}\n <mat-checkbox class=\"tree-check\" (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? onToggleChange(node) : null\"\n [checked]=\"selectedThematics.isSelected(node)\">\n </mat-checkbox>\n </li>\n </mat-tree-node>\n\n <!-- This is the tree node template for expandable nodes -->\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChild\">\n <div class=\"mat-tree-node\">\n <button mat-icon-button\n (click)=\"onToggleClick(node)\">\n <mat-icon [svgIcon]=\"treeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right'\"></mat-icon>\n </button>\n {{node.name}}\n <mat-checkbox class=\"tree-check-2\" (change)=\"$event ? childrensToggle(node) : null\"\n [checked]=\"isAllSelected(node)\"\n [indeterminate]=\"hasChildrenSelected(node) && !isAllSelected(node)\">\n </mat-checkbox>\n </div>\n <ul class=\"tree-ul\" [class.example-tree-invisible]=\"!treeControl.isExpanded(node)\">\n <ng-container matTreeNodeOutlet></ng-container>\n </ul>\n </mat-nested-tree-node>\n\n </mat-tree>\n</div>\n\n<div class=\"buttons\">\n\n <button *ngIf=\"isPredefined()\" mat-raised-button class=\"clear-search-button\" [disabled]=\"disabledClearSearch()\"\n (click)=\"clearSearch()\">\n {{'igo.geo.spatialFilter.clearSearch' | translate}}\n </button>\n\n <button *ngIf=\"isPolygon() || isPoint()\" mat-raised-button class=\"clear-form-button\" [disabled]=\"this.formControl.value === null\"\n (click)=\"clearDrawZone()\">\n {{'igo.geo.spatialFilter.clearForm' | translate}}\n </button>\n\n <button mat-raised-button class=\"search-button\" [disabled]=\"disableSearchButton()\" color=\"primary\"\n (click)=\"toggleSearchButton()\">\n {{'igo.geo.spatialFilter.goSearch' | translate}}\n </button>\n\n <button mat-raised-button class=\"remove-button\" [disabled]=\"allLayers.length === 0\" (click)=\"clearButton()\">\n {{'igo.geo.spatialFilter.removeLayer' | translate}}\n </button>\n\n <button mat-raised-button class=\"export-button\" [disabled]=\"!store.entities$.getValue().length\" (click)=\"export.emit()\">\n {{'igo.geo.spatialFilter.exportLayer' | translate}}\n </button>\n\n</div>\n\n<button\n class=\"chevron-down\"\n *ngIf=\"store.all().length && tableTemplate && !listIsVisible\"\n mat-icon-button\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialFilter.showSearchResults' | translate\"\n (click)=\"toggleVisibleList()\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n</button>\n\n<div class=\"results\" *ngIf=\"store.all().length && tableTemplate && listIsVisible\">\n <button\n *ngIf=\"listIsVisible\"\n mat-icon-button\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialFilter.hideSearchResults' | translate\"\n (click)=\"toggleVisibleList()\">\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n <igo-entity-table\n class=\"results-list\"\n [template]=\"tableTemplate\"\n [store]=\"store\"\n (entitySelectChange)=\"entityChange.emit($event)\">\n </igo-entity-table>\n</div>\n", styles: [".header{margin-top:5px;width:100%}.mat-slide-toggle{padding:5px;margin-bottom:15px;width:98%}.mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 20px)}.title{margin-left:5px;font-size:medium;font-size:initial}.mat-radio-group{display:flex;flex-direction:column;padding-top:10px}.mat-radio-button{display:inline-flex;position:relative;margin-left:16px;margin-top:10px}.mat-form-field{margin-top:5px}.mat-column-select{overflow:auto}.buttons{margin-top:15px}.search-button{left:15px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.search-button{left:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.export-button{left:15px;width:46%;margin-bottom:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.export-button{left:10px;margin-top:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.remove-button{margin-top:12px;left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.remove-button{margin:0;width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-form-button{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-form-button{width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-search-button{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-search-button{width:45%;min-height:35px;white-space:normal;line-height:normal}}.thematics{max-height:35%;overflow:auto;margin-top:5px;width:98%}.results{overflow:auto;max-height:250px;width:98%}.mat-column-typeResults{max-width:100px;margin-right:5px}.buffer-unit,.radius-unit{display:flex;width:100%;margin-left:2px;padding:5px}.radius,.buffer{display:flex;flex-flow:column nowrap;width:110%}.unit-field{width:110px;margin-left:30px}.example-tree-invisible{display:none}.tree-ul{margin:0;padding:0 0 0 20px;list-style-type:none}.tree-check,.tree-check-2{position:relative;margin-left:auto;margin-right:5px}.thematics-header{max-width:250px}.checks-header{padding:none;max-width:calc(100% - 316px);overflow:hidden}.mat-checkbox{padding:5px}.mat-tree-node{position:relative;min-height:42px;width:280px}.mat-header-cell{height:56px}.results{max-height:45%;width:98%}.results igo-entity-table ::ng-deep div.table-container{overflow:visible;overflow:initial}\n"] }]
|
|
28906
|
+
args: [{ selector: 'igo-spatial-filter-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-geometry-form-field-input\n [formControl]=\"formControl\"\n [map]=\"map\"\n [geometryType]=\"geometryType\"\n [drawGuide]=\"drawGuide$ | async\"\n [measure]=\"measure\"\n [drawControlIsActive]=\"drawControlIsActive\"\n [freehandDrawIsActive]=\"freehandDrawIsActive\"\n [drawStyle]=\"drawStyle$ | async\"\n [overlayStyle]=\"overlayStyle$ | async\"\n [radius]=\"radius\"\n [predefinedRadius]=\"predefinedRadius\">\n</igo-geometry-form-field-input>\n\n<div class=\"header\">\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\n [checked]=\"drawControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onDrawControlChange()\">\n {{'igo.geo.spatialFilter.drawControl' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\n [checked]=\"freehandDrawIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onfreehandControlChange()\">\n {{'igo.geo.spatialFilter.freehandControl' | translate}}\n </mat-slide-toggle>\n</div>\n\n<div class=\"buffer-unit\" *ngIf=\"isPolygon()\">\n <form class=\"buffer-form\">\n <mat-form-field class=\"buffer\">\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.buffer' | translate}}\" [formControl]=\"bufferFormControl\"\n [value]=\"0\" [readonly]=\"this.formControl.value === null\">\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\n {{('igo.geo.measure.' + measureUnit) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n\n<div class=\"radius-unit\" *ngIf=\"isPoint()\">\n <form class=\"radius-form\">\n <mat-form-field class=\"radius\">\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.radius' | translate}}\" [formControl]=\"radiusFormControl\"\n [value]=\"1000\" (input)=\"getRadius()\" [readonly]=\"this.freehandDrawIsActive && this.formControl.value === null\">\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\n {{('igo.geo.measure.' + measureUnit) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n\n<mat-label class=\"title mat-typography\">{{'igo.geo.spatialFilter.search' | translate}} : </mat-label>\n<mat-radio-group [value]=\"selectedItemType\">\n <mat-radio-button *ngFor=\"let item of itemType\"\n [value]=\"item\"\n (change)=\"onItemTypeChange($event)\">\n {{'igo.geo.spatialFilter.' + item | translate}}\n </mat-radio-button>\n</mat-radio-group>\n\n<div class=\"thematics\" *ngIf=\"(selectedItemType==='Thematics' && !tableTemplate) || (selectedItemType==='Thematics' && tableTemplate && !listIsVisible)\">\n <mat-table>\n <!-- Name Column -->\n <ng-container matColumnDef=\"name\">\n <mat-header-cell *matHeaderCellDef class=\"thematics-header\">{{'igo.geo.spatialFilter.Thematics' | translate}}</mat-header-cell>\n </ng-container>\n\n <!-- Select Column -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef class=\"checks-header\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"selectedThematics.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </mat-header-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\n\n </mat-table>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\n <li class=\"mat-tree-node\">\n <!-- use a disabled button to provide padding for tree leaf -->\n <button mat-icon-button disabled></button>\n {{node.name}}\n <mat-checkbox class=\"tree-check\" (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? onToggleChange(node) : null\"\n [checked]=\"selectedThematics.isSelected(node)\">\n </mat-checkbox>\n </li>\n </mat-tree-node>\n\n <!-- This is the tree node template for expandable nodes -->\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChild\">\n <div class=\"mat-tree-node\">\n <button mat-icon-button\n (click)=\"onToggleClick(node)\">\n <mat-icon [svgIcon]=\"treeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right'\"></mat-icon>\n </button>\n {{node.name}}\n <mat-checkbox class=\"tree-check-2\" (change)=\"$event ? childrensToggle(node) : null\"\n [checked]=\"isAllSelected(node)\"\n [indeterminate]=\"hasChildrenSelected(node) && !isAllSelected(node)\">\n </mat-checkbox>\n </div>\n <ul class=\"tree-ul\" [class.example-tree-invisible]=\"!treeControl.isExpanded(node)\">\n <ng-container matTreeNodeOutlet></ng-container>\n </ul>\n </mat-nested-tree-node>\n\n </mat-tree>\n</div>\n\n<div class=\"buttons\">\n\n <button *ngIf=\"isPredefined()\" mat-raised-button class=\"clear-search-button\" [disabled]=\"disabledClearSearch()\"\n (click)=\"clearSearch()\">\n {{'igo.geo.spatialFilter.clearSearch' | translate}}\n </button>\n\n <button *ngIf=\"isPolygon() || isPoint()\" mat-raised-button class=\"clear-form-button\" [disabled]=\"this.formControl.value === null\"\n (click)=\"clearDrawZone()\">\n {{'igo.geo.spatialFilter.clearForm' | translate}}\n </button>\n\n <button mat-raised-button class=\"search-button\" [disabled]=\"disableSearchButton()\" color=\"primary\"\n (click)=\"toggleSearchButton()\">\n {{'igo.geo.spatialFilter.goSearch' | translate}}\n </button>\n\n <button mat-raised-button class=\"remove-button\" [disabled]=\"allLayers.length === 0\" (click)=\"clearButton()\">\n {{'igo.geo.spatialFilter.removeLayer' | translate}}\n </button>\n\n <button mat-raised-button class=\"export-button\" [disabled]=\"!store.entities$.getValue().length\" (click)=\"export.emit()\">\n {{'igo.geo.spatialFilter.exportLayer' | translate}}\n </button>\n\n</div>\n\n<button\n class=\"chevron-down\"\n *ngIf=\"store.all().length && tableTemplate && !listIsVisible\"\n mat-icon-button\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialFilter.showSearchResults' | translate\"\n (click)=\"toggleVisibleList()\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n</button>\n\n<div class=\"results\" *ngIf=\"store.all().length && tableTemplate && listIsVisible\">\n <button\n *ngIf=\"listIsVisible\"\n mat-icon-button\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialFilter.hideSearchResults' | translate\"\n (click)=\"toggleVisibleList()\">\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n <igo-entity-table\n class=\"results-list\"\n [template]=\"tableTemplate\"\n [store]=\"store\"\n (entitySelectChange)=\"entityChange.emit($event)\">\n </igo-entity-table>\n</div>\n", styles: [".header{margin-top:5px;width:100%}.mat-slide-toggle{padding:5px;margin-bottom:15px;width:98%}.mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 20px)}.title{margin-left:5px;font-size:medium;font-size:initial}.mat-radio-group{display:flex;flex-direction:column;padding-top:10px}.mat-radio-button{display:inline-flex;position:relative;margin-left:16px;margin-top:10px}.mat-form-field{margin-top:5px}.mat-column-select{overflow:auto}.buttons{margin-top:15px}.search-button{left:15px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.search-button{left:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.export-button{left:15px;width:46%;margin-bottom:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.export-button{left:10px;margin-top:10px;width:45%;min-height:35px;white-space:normal;line-height:normal}}.remove-button{margin-top:12px;left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.remove-button{margin:0;width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-form-button{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-form-button{width:45%;min-height:35px;white-space:normal;line-height:normal}}.clear-search-button{left:5px;width:46%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.clear-search-button{width:45%;min-height:35px;white-space:normal;line-height:normal}}.thematics{max-height:35%;overflow:auto;margin-top:5px;width:98%}.results{overflow:auto;max-height:250px;width:98%}.mat-column-typeResults{max-width:100px;margin-right:5px}.buffer-unit,.radius-unit{display:flex;width:100%;margin-left:2px;padding:5px}.radius,.buffer{display:flex;flex-flow:column nowrap;width:110%}.unit-field{width:110px;margin-left:30px}.example-tree-invisible{display:none}.tree-ul{margin:0;padding:0 0 0 20px;list-style-type:none}.tree-check,.tree-check-2{position:relative;margin-left:auto;margin-right:5px}.thematics-header{max-width:250px}.checks-header{padding:none;max-width:calc(100% - 316px);overflow:hidden}.mat-checkbox{padding:5px}.mat-tree-node{position:relative;min-height:42px;width:280px}.mat-header-cell{height:56px}.results{max-height:45%;width:98%}.results igo-entity-table ::ng-deep div.table-container{overflow:visible;overflow:initial}\n"] }]
|
|
28063
28907
|
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: SpatialFilterService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }]; }, { map: [{
|
|
28064
28908
|
type: Input
|
|
28065
28909
|
}], type: [{
|
|
@@ -28096,6 +28940,8 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28096
28940
|
type: Output
|
|
28097
28941
|
}], freehandControl: [{
|
|
28098
28942
|
type: Output
|
|
28943
|
+
}], predefinedRadius: [{
|
|
28944
|
+
type: Output
|
|
28099
28945
|
}], clearButtonEvent: [{
|
|
28100
28946
|
type: Output
|
|
28101
28947
|
}], clearSearchEvent: [{
|
|
@@ -28347,7 +29193,7 @@ function OgcFilterTimeComponent_div_3_div_2_div_13_Template(rf, ctx) { if (rf &
|
|
|
28347
29193
|
i0.ɵɵadvance(2);
|
|
28348
29194
|
i0.ɵɵproperty("for", _r35)("disabled", ctx_r25.filterStateDisable);
|
|
28349
29195
|
i0.ɵɵadvance(1);
|
|
28350
|
-
i0.ɵɵproperty("matDatepicker", _r35)("placeholder", i0.ɵɵpipeBind1(5, 14, "igo.geo.timeFilter.endDate"))("matDatepickerFilter", ctx_r25.
|
|
29196
|
+
i0.ɵɵproperty("matDatepicker", _r35)("placeholder", i0.ɵɵpipeBind1(5, 14, "igo.geo.timeFilter.endDate"))("matDatepickerFilter", ctx_r25.filterEndFunction)("value", ctx_r25.endValue ? ctx_r25.endValue : ctx_r25.handleDate(ctx_r25.datasource.options.maxDate))("min", ctx_r25.beginValue ? ctx_r25.beginValue : ctx_r25.handleDate(ctx_r25.datasource.options.minDate))("max", ctx_r25.handleDate(ctx_r25.datasource.options.maxDate))("disabled", ctx_r25.filterStateDisable);
|
|
28351
29197
|
i0.ɵɵattribute("disabled", !ctx_r25.currentFilter.active);
|
|
28352
29198
|
i0.ɵɵadvance(4);
|
|
28353
29199
|
i0.ɵɵproperty("startView", ctx_r25.calendarView())("startAt", ctx_r25.endValue);
|
|
@@ -28388,7 +29234,7 @@ function OgcFilterTimeComponent_div_3_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
28388
29234
|
i0.ɵɵadvance(3);
|
|
28389
29235
|
i0.ɵɵproperty("for", _r22)("disabled", ctx_r9.filterStateDisable);
|
|
28390
29236
|
i0.ɵɵadvance(1);
|
|
28391
|
-
i0.ɵɵproperty("matDatepicker", _r22)("placeholder", i0.ɵɵpipeBind1(6, 20, "igo.geo.timeFilter.startDate"))("matDatepickerFilter", ctx_r9.
|
|
29237
|
+
i0.ɵɵproperty("matDatepicker", _r22)("placeholder", i0.ɵɵpipeBind1(6, 20, "igo.geo.timeFilter.startDate"))("matDatepickerFilter", ctx_r9.filterBeginFunction)("value", ctx_r9.beginValue ? ctx_r9.beginValue : ctx_r9.handleDate(ctx_r9.datasource.options.minDate))("min", ctx_r9.handleDate(ctx_r9.datasource.options.minDate))("max", ctx_r9.endValue && !ctx_r9.restrictedToStep() ? ctx_r9.endValue : ctx_r9.handleDate(ctx_r9.datasource.options.maxDate))("disabled", ctx_r9.filterStateDisable);
|
|
28392
29238
|
i0.ɵɵattribute("disabled", !ctx_r9.currentFilter.active);
|
|
28393
29239
|
i0.ɵɵadvance(4);
|
|
28394
29240
|
i0.ɵɵproperty("startView", ctx_r9.calendarView())("startAt", ctx_r9.beginValue);
|
|
@@ -28481,6 +29327,8 @@ class OgcFilterTimeComponent {
|
|
|
28481
29327
|
this.updateHoursMinutesArray();
|
|
28482
29328
|
// update value for now value
|
|
28483
29329
|
this.updateValues();
|
|
29330
|
+
this.dateFilter(this.filterBeginFunction, 'begin');
|
|
29331
|
+
this.dateFilter(this.filterEndFunction, 'end');
|
|
28484
29332
|
}
|
|
28485
29333
|
parseFilter(filter) {
|
|
28486
29334
|
if (!filter) {
|
|
@@ -28641,10 +29489,12 @@ class OgcFilterTimeComponent {
|
|
|
28641
29489
|
if (type === 'end') {
|
|
28642
29490
|
const dateValuePlus1 = moment(dateValue).add(1, 'd');
|
|
28643
29491
|
const monthDiffPlus1 = moment(dateValuePlus1).diff(moment(this.handleMin()), 'years', true);
|
|
28644
|
-
|
|
29492
|
+
this.filterEndFunction = (monthDiffPlus1 % moment.duration(this.step).asYears()) === 0;
|
|
29493
|
+
return;
|
|
28645
29494
|
}
|
|
28646
29495
|
else if (type === 'begin') {
|
|
28647
|
-
|
|
29496
|
+
this.filterBeginFunction = (monthDiff % moment.duration(this.step).asYears()) === 0;
|
|
29497
|
+
return;
|
|
28648
29498
|
}
|
|
28649
29499
|
}
|
|
28650
29500
|
else if (this.ogcFilterTimeService.stepIsMonthDuration(this.step)) {
|
|
@@ -28652,10 +29502,12 @@ class OgcFilterTimeComponent {
|
|
|
28652
29502
|
if (type === 'end') {
|
|
28653
29503
|
const dateValuePlus1 = moment(dateValue).add(1, 'd');
|
|
28654
29504
|
const monthDiffPlus1 = moment(dateValuePlus1).diff(moment(this.handleMin()), 'months', true);
|
|
28655
|
-
|
|
29505
|
+
this.filterEndFunction = (monthDiffPlus1 % moment.duration(this.step).asMonths()) === 0;
|
|
29506
|
+
return;
|
|
28656
29507
|
}
|
|
28657
29508
|
else if (type === 'begin') {
|
|
28658
|
-
|
|
29509
|
+
this.filterBeginFunction = (monthDiff % moment.duration(this.step).asMonths()) === 0;
|
|
29510
|
+
return;
|
|
28659
29511
|
}
|
|
28660
29512
|
}
|
|
28661
29513
|
else if (this.ogcFilterTimeService.stepIsWeekDuration(this.step)) {
|
|
@@ -28663,10 +29515,12 @@ class OgcFilterTimeComponent {
|
|
|
28663
29515
|
if (type === 'end') {
|
|
28664
29516
|
const dateValuePlus1 = moment(dateValue).add(1, 'd');
|
|
28665
29517
|
const weekDiffPlus1 = moment(dateValuePlus1).diff(moment(this.handleMin()), 'weeks', true);
|
|
28666
|
-
|
|
29518
|
+
this.filterEndFunction = (weekDiffPlus1 % moment.duration(this.step).asWeeks()) === 0;
|
|
29519
|
+
return;
|
|
28667
29520
|
}
|
|
28668
29521
|
else if (type === 'begin') {
|
|
28669
|
-
|
|
29522
|
+
this.filterBeginFunction = (weekDiff % moment.duration(this.step).asWeeks()) === 0;
|
|
29523
|
+
return;
|
|
28670
29524
|
}
|
|
28671
29525
|
}
|
|
28672
29526
|
else if (this.ogcFilterTimeService.stepIsDayDuration(this.step)) {
|
|
@@ -28675,21 +29529,40 @@ class OgcFilterTimeComponent {
|
|
|
28675
29529
|
const dateValuePlus1 = moment(dateValue).add(1, 'd');
|
|
28676
29530
|
const dayDiffPlus1 = moment(dateValuePlus1).diff(moment(this.handleMin()), 'days', true);
|
|
28677
29531
|
const _mod = (dayDiffPlus1 % moment.duration(this.step).asDays());
|
|
28678
|
-
|
|
29532
|
+
this.filterEndFunction = (_mod < 0.0000001 && _mod > -0.0000001) || _mod === 0; // 1 millisecond = 1.1574074074074076e-8
|
|
29533
|
+
return;
|
|
28679
29534
|
}
|
|
28680
29535
|
else if (type === 'begin') {
|
|
28681
29536
|
const _mod = ((dayDiff % moment.duration(this.step).asDays()) + 1);
|
|
28682
|
-
|
|
29537
|
+
this.filterBeginFunction = (_mod < 0.0000001 && _mod > -0.0000001 && _mod !== 0) || _mod === 1; // 1 millisecond = 1.1574074074074076e-8
|
|
29538
|
+
return;
|
|
28683
29539
|
}
|
|
28684
29540
|
}
|
|
28685
29541
|
else if (this.ogcFilterTimeService.stepIsHourDuration(this.step)) {
|
|
28686
|
-
|
|
28687
|
-
|
|
29542
|
+
if (type === 'end') {
|
|
29543
|
+
const hourDiff = moment(dateValue).diff(moment(this.handleMin()), 'hours', true);
|
|
29544
|
+
this.filterEndFunction = (hourDiff % moment.duration(this.step).asHours()) === 0;
|
|
29545
|
+
return;
|
|
29546
|
+
}
|
|
29547
|
+
else if (type === 'begin') {
|
|
29548
|
+
const hourDiff = moment(dateValue).diff(moment(this.handleMin()), 'hours', true);
|
|
29549
|
+
this.filterBeginFunction = (hourDiff % moment.duration(this.step).asHours()) === 0;
|
|
29550
|
+
return;
|
|
29551
|
+
}
|
|
28688
29552
|
}
|
|
28689
29553
|
else if (this.ogcFilterTimeService.stepIsMinuteDuration(this.step)) {
|
|
28690
|
-
|
|
29554
|
+
if (type === 'end') {
|
|
29555
|
+
this.filterEndFunction = true;
|
|
29556
|
+
return;
|
|
29557
|
+
}
|
|
29558
|
+
else if (type === 'begin') {
|
|
29559
|
+
this.filterBeginFunction = true;
|
|
29560
|
+
return;
|
|
29561
|
+
}
|
|
28691
29562
|
}
|
|
28692
|
-
|
|
29563
|
+
this.filterEndFunction = diff % this.stepMilliseconds === 0;
|
|
29564
|
+
this.filterBeginFunction = diff % this.stepMilliseconds === 0;
|
|
29565
|
+
return;
|
|
28693
29566
|
}
|
|
28694
29567
|
getDateTime(date, pos) {
|
|
28695
29568
|
const valuetmp = new Date(date);
|
|
@@ -28952,7 +29825,7 @@ OgcFilterTimeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcF
|
|
|
28952
29825
|
} }, styles: ["input{text-align:center!important;margin:auto 5px!important}.slider-container[_ngcontent-%COMP%]{text-align:center}.datetime-input[_ngcontent-%COMP%]{display:inline-block;width:100px;margin:10px 0 5px 10px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.datetime-input[_ngcontent-%COMP%]{width:36%;margin:0}}.date-input[_ngcontent-%COMP%]{width:100px;margin-right:25px}.time-input[_ngcontent-%COMP%]{margin-right:25px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.time-input[_ngcontent-%COMP%]{margin-right:5px}}.hour-input[_ngcontent-%COMP%], .minute-input[_ngcontent-%COMP%]{width:35px;margin-left:7px}.year-input[_ngcontent-%COMP%]{width:98px;margin:10px 14px 5px 4px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.year-input[_ngcontent-%COMP%]{width:32%;margin:0 0 0 10px}}.year-input-hide[_ngcontent-%COMP%]{width:120px;margin-right:25px;display:none}.year-input-only-year[_ngcontent-%COMP%]{width:120px;margin-right:25px}.reset-button[_ngcontent-%COMP%]{width:25px;padding-left:8px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.reset-button[_ngcontent-%COMP%]{padding-left:8px}}.toggle-filter-state[_ngcontent-%COMP%]{padding-left:20px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.toggle-filter-state[_ngcontent-%COMP%]{padding-left:12px}} .datepicker-year .mat-calendar-arrow{display:none} .datepicker-year .mat-calendar-period-button{pointer-events:none} .datepicker-year .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover{background-color:#0000001f;border-radius:999px}"] });
|
|
28953
29826
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterTimeComponent, [{
|
|
28954
29827
|
type: Component,
|
|
28955
|
-
args: [{ selector: 'igo-ogc-filter-time', template: "<div class=\"datetime-container\">\n <mat-slide-toggle \n *ngIf=\"this.currentFilter.sliderOptions?.enabled\"\n [(ngModel)]=\"sliderMode\"\n (change)=\"modeChange($event)\">\n {{'igo.geo.filter.sliderModeTitle' | translate}}\n </mat-slide-toggle>\n\n <div class=\"slider-container\" *ngIf=\"sliderMode\">\n <igo-ogc-filter-time-slider\n [begin]=\"beginValue\"\n [max]=\"this.restrictedToStep() ? this.maxDate : this.endValue\"\n [currentFilter]=\"currentFilter\" \n [datasource]=\"datasource\"\n (changeProperty)=\"changePropertyByPass($event)\"\n >\n </igo-ogc-filter-time-slider>\n \n </div>\n\n <div *ngIf=\"!sliderMode\">\n\n <div class=\"year-input-container\" *ngIf=\"calendarTypeYear\">\n <!-- to emulate a year-picker, 2 input: first input to show user just year and second input hiden and bind \n with the datepicker -->\n <mat-form-field class=\"year-input\">\n <mat-label>{{'igo.geo.timeFilter.startYear'| translate}}</mat-label>\n <input\n matInput\n class=\"year-input-only-year\"\n value=\"{{onlyYearBegin}}\"\n (change)= \"yearOnlyInputChange($event, beginDatepicker, 'begin')\"\n [disabled]= \"filterStateDisable\"\n >\n <mat-datepicker-toggle matSuffix [for]=\"beginDatepicker\" [disabled]=\"filterStateDisable\"></mat-datepicker-toggle>\n \n <mat-datepicker\n panelClass=\"datepicker-year\"\n #beginDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"beginValue\"\n (yearSelected)=\"yearSelected($event, beginDatepicker, 'begin')\"\n >\n </mat-datepicker>\n\n <input #beginYear\n class= \"year-input-hide\"\n matInput\n [matDatepicker]=\"beginDatepicker\"\n enabled= false\n readonly= true\n [value]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [min]=\"handleDate(datasource.options.minDate)\"\n [max]=\"(endValue && (!restrictedToStep()))?endValue:handleDate(datasource.options.maxDate)\"\n >\n </mat-form-field>\n\n <mat-form-field class=\"year-input\">\n <mat-label>{{'igo.geo.timeFilter.endYear'| translate}}</mat-label>\n <input\n matInput\n class=\"year-input-only-year\"\n value=\"{{onlyYearEnd}}\"\n (change)= \"yearOnlyInputChange($event, endDatepicker, 'end')\"\n [disabled] = \"filterStateDisable\">\n <mat-datepicker-toggle matSuffix [for]=\"endDatepicker\" [disabled]=\"filterStateDisable\"></mat-datepicker-toggle>\n <mat-datepicker\n panelClass=\"datepicker-year\"\n #endDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"endValue\"\n (yearSelected)=\"yearSelected($event, endDatepicker, 'end')\"\n >\n </mat-datepicker>\n\n <input #endYear\n class= \"year-input-hide\"\n matInput\n [matDatepicker]=\"endDatepicker\"\n enabled= false\n readonly= true\n [value]=\"endValue?endValue:handleDate(datasource.options.maxDate)\"\n [min]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [max]=\"handleDate(datasource.options.maxDate)\"\n >\n </mat-form-field>\n <button class=\"reset-button\" \n mat-icon-button\n color=\"primary\" \n (click)=\"resetFilter()\" \n [matTooltip]=\"'igo.geo.filter.resetFilters' | translate\" \n [disabled]= \"filterStateDisable\">\n <mat-icon svgIcon=\"{{resetIcon}}\"></mat-icon>\n </button>\n <mat-slide-toggle \n class='toggle-filter-state' \n (change)=\"toggleFilterState()\" \n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\" \n tooltip-position=\"below\" \n matTooltipShowDelay=\"500\"\n [checked]=\"!filterStateDisable\">\n </mat-slide-toggle>\n\n </div>\n\n <div class=\"datetime-input-container\" *ngIf=\"calendarType()!=='year'\">\n <div class=\"datetime-input\">\n <mat-form-field class=\"date-input\">\n <mat-datepicker-toggle matSuffix [for]=\"beginDatepicker\" [disabled]= \"filterStateDisable\"></mat-datepicker-toggle>\n <input #begin\n matInput\n [matDatepicker]=\"beginDatepicker\"\n [placeholder]=\"'igo.geo.timeFilter.startDate' | translate\"\n [attr.disabled]=\"!currentFilter.active\"\n (dateChange)=\"changeTemporalProperty(begin.value, 1)\"\n [matDatepickerFilter]=\"dateFilter.bind(this, 'begin')\"\n [value]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [min]=\"handleDate(datasource.options.minDate)\"\n [max]=\"(endValue && (!restrictedToStep()))?endValue:handleDate(datasource.options.maxDate)\" \n [disabled]= \"filterStateDisable\">\n <span class=\"filler\"></span>\n <mat-datepicker\n #beginDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"beginValue\"\n (yearSelected)=\"yearSelected($event, beginDatepicker, 'begin')\"\n (monthSelected)=\"monthSelected($event, beginDatepicker, 'begin')\">\n </mat-datepicker>\n </mat-form-field>\n\n <div class=\"time-input\">\n <mat-form-field class=\"hour-input\" *ngIf=\"calendarType()==='datetime'\">\n <mat-label>{{'igo.geo.timeFilter.hour' | translate}}</mat-label>\n <mat-select\n [formControl]=\"beginHourFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(begin.value, 1)\">\n <mat-option *ngFor=\"let hour of beginHours\" [value]=\"hour\">{{hour}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"minute-input\" *ngIf=\"calendarType()==='datetime'\">\n <mat-label>{{'igo.geo.timeFilter.minute' | translate}}</mat-label>\n <mat-select\n [formControl]=\"beginMinuteFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(begin.value, 1)\">\n <mat-option *ngFor=\"let minute of beginMinutes\" [value]=\"minute\">{{minute}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"datetime-input\" *ngIf=\"!restrictedToStep()\">\n <mat-form-field class=\"date-input\">\n <mat-datepicker-toggle matSuffix [for]=\"endDatepicker\" [disabled]= \"filterStateDisable\"></mat-datepicker-toggle>\n <input #end\n matInput\n [matDatepicker]=\"endDatepicker\"\n [placeholder]=\"'igo.geo.timeFilter.endDate' | translate\"\n [attr.disabled]=\"!currentFilter.active\"\n (dateChange)=\"changeTemporalProperty(end.value, 2)\"\n [matDatepickerFilter]=\"dateFilter.bind(this, 'end')\"\n [value]=\"endValue?endValue:handleDate(datasource.options.maxDate)\"\n [min]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [max]=\"handleDate(datasource.options.maxDate)\" \n [disabled]= \"filterStateDisable\">\n <span class=\"filler\"></span>\n <mat-datepicker #endDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"endValue\"\n (yearSelected)=\"yearSelected($event, endDatepicker, 'end')\"\n (monthSelected)=\"monthSelected($event, endDatepicker, 'end')\">\n </mat-datepicker>\n </mat-form-field>\n\n <div class=\"time-input\">\n <mat-form-field class=\"hour-input\" *ngIf=\"calendarType()==='datetime'\" >\n <mat-label>{{'igo.geo.timeFilter.hour' | translate}}</mat-label>\n <mat-select\n [formControl]=\"endHourFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(end.value, 2)\">\n <mat-option *ngFor=\"let hour of endHours\" [value]=\"hour\">{{hour}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"minute-input\" *ngIf=\"calendarType()==='datetime'\">\n <mat-label>{{'igo.geo.timeFilter.minute' | translate}}</mat-label>\n <mat-select\n [formControl]=\"endMinuteFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(end.value, 2)\">\n <mat-option *ngFor=\"let minute of endMinutes\" [value]=\"minute\">{{minute}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <button class=\"reset-button\" \n mat-icon-button color=\"primary\"\n (click)=\"resetFilter()\" \n [matTooltip]=\"'igo.geo.filter.resetFilters' | translate\" \n [disabled]= \"filterStateDisable\">\n <mat-icon svgIcon=\"{{resetIcon}}\"></mat-icon>\n </button>\n <mat-slide-toggle \n class=\"toggle-filter-state\" \n (change)=\"toggleFilterState()\" \n tooltip-position=\"below\" \n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\" \n [checked]= \"!filterStateDisable\">\n </mat-slide-toggle>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep input{text-align:center!important;margin:auto 5px!important}.slider-container{text-align:center}.datetime-input{display:inline-block;width:100px;margin:10px 0 5px 10px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.datetime-input{width:36%;margin:0}}.date-input{width:100px;margin-right:25px}.time-input{margin-right:25px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.time-input{margin-right:5px}}.hour-input,.minute-input{width:35px;margin-left:7px}.year-input{width:98px;margin:10px 14px 5px 4px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.year-input{width:32%;margin:0 0 0 10px}}.year-input-hide{width:120px;margin-right:25px;display:none}.year-input-only-year{width:120px;margin-right:25px}.reset-button{width:25px;padding-left:8px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.reset-button{padding-left:8px}}.toggle-filter-state{padding-left:20px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.toggle-filter-state{padding-left:12px}}::ng-deep .datepicker-year ::ng-deep .mat-calendar-arrow{display:none}::ng-deep .datepicker-year ::ng-deep .mat-calendar-period-button{pointer-events:none}::ng-deep .datepicker-year ::ng-deep .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover{background-color:#0000001f;border-radius:999px}\n"] }]
|
|
29828
|
+
args: [{ selector: 'igo-ogc-filter-time', template: "<div class=\"datetime-container\">\n <mat-slide-toggle \n *ngIf=\"this.currentFilter.sliderOptions?.enabled\"\n [(ngModel)]=\"sliderMode\"\n (change)=\"modeChange($event)\">\n {{'igo.geo.filter.sliderModeTitle' | translate}}\n </mat-slide-toggle>\n\n <div class=\"slider-container\" *ngIf=\"sliderMode\">\n <igo-ogc-filter-time-slider\n [begin]=\"beginValue\"\n [max]=\"this.restrictedToStep() ? this.maxDate : this.endValue\"\n [currentFilter]=\"currentFilter\" \n [datasource]=\"datasource\"\n (changeProperty)=\"changePropertyByPass($event)\"\n >\n </igo-ogc-filter-time-slider>\n \n </div>\n\n <div *ngIf=\"!sliderMode\">\n\n <div class=\"year-input-container\" *ngIf=\"calendarTypeYear\">\n <!-- to emulate a year-picker, 2 input: first input to show user just year and second input hiden and bind \n with the datepicker -->\n <mat-form-field class=\"year-input\">\n <mat-label>{{'igo.geo.timeFilter.startYear'| translate}}</mat-label>\n <input\n matInput\n class=\"year-input-only-year\"\n value=\"{{onlyYearBegin}}\"\n (change)= \"yearOnlyInputChange($event, beginDatepicker, 'begin')\"\n [disabled]= \"filterStateDisable\"\n >\n <mat-datepicker-toggle matSuffix [for]=\"beginDatepicker\" [disabled]=\"filterStateDisable\"></mat-datepicker-toggle>\n \n <mat-datepicker\n panelClass=\"datepicker-year\"\n #beginDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"beginValue\"\n (yearSelected)=\"yearSelected($event, beginDatepicker, 'begin')\"\n >\n </mat-datepicker>\n\n <input #beginYear\n class= \"year-input-hide\"\n matInput\n [matDatepicker]=\"beginDatepicker\"\n enabled= false\n readonly= true\n [value]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [min]=\"handleDate(datasource.options.minDate)\"\n [max]=\"(endValue && (!restrictedToStep()))?endValue:handleDate(datasource.options.maxDate)\"\n >\n </mat-form-field>\n\n <mat-form-field class=\"year-input\">\n <mat-label>{{'igo.geo.timeFilter.endYear'| translate}}</mat-label>\n <input\n matInput\n class=\"year-input-only-year\"\n value=\"{{onlyYearEnd}}\"\n (change)= \"yearOnlyInputChange($event, endDatepicker, 'end')\"\n [disabled] = \"filterStateDisable\">\n <mat-datepicker-toggle matSuffix [for]=\"endDatepicker\" [disabled]=\"filterStateDisable\"></mat-datepicker-toggle>\n <mat-datepicker\n panelClass=\"datepicker-year\"\n #endDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"endValue\"\n (yearSelected)=\"yearSelected($event, endDatepicker, 'end')\"\n >\n </mat-datepicker>\n\n <input #endYear\n class= \"year-input-hide\"\n matInput\n [matDatepicker]=\"endDatepicker\"\n enabled= false\n readonly= true\n [value]=\"endValue?endValue:handleDate(datasource.options.maxDate)\"\n [min]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [max]=\"handleDate(datasource.options.maxDate)\"\n >\n </mat-form-field>\n <button class=\"reset-button\" \n mat-icon-button\n color=\"primary\" \n (click)=\"resetFilter()\" \n [matTooltip]=\"'igo.geo.filter.resetFilters' | translate\" \n [disabled]= \"filterStateDisable\">\n <mat-icon svgIcon=\"{{resetIcon}}\"></mat-icon>\n </button>\n <mat-slide-toggle \n class='toggle-filter-state' \n (change)=\"toggleFilterState()\" \n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\" \n tooltip-position=\"below\" \n matTooltipShowDelay=\"500\"\n [checked]=\"!filterStateDisable\">\n </mat-slide-toggle>\n\n </div>\n\n <div class=\"datetime-input-container\" *ngIf=\"calendarType()!=='year'\">\n <div class=\"datetime-input\">\n <mat-form-field class=\"date-input\">\n <mat-datepicker-toggle matSuffix [for]=\"beginDatepicker\" [disabled]= \"filterStateDisable\"></mat-datepicker-toggle>\n <input #begin\n matInput\n [matDatepicker]=\"beginDatepicker\"\n [placeholder]=\"'igo.geo.timeFilter.startDate' | translate\"\n [attr.disabled]=\"!currentFilter.active\"\n (dateChange)=\"changeTemporalProperty(begin.value, 1)\"\n [matDatepickerFilter]=\"filterBeginFunction\"\n [value]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [min]=\"handleDate(datasource.options.minDate)\"\n [max]=\"(endValue && (!restrictedToStep()))?endValue:handleDate(datasource.options.maxDate)\" \n [disabled]= \"filterStateDisable\">\n <span class=\"filler\"></span>\n <mat-datepicker\n #beginDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"beginValue\"\n (yearSelected)=\"yearSelected($event, beginDatepicker, 'begin')\"\n (monthSelected)=\"monthSelected($event, beginDatepicker, 'begin')\">\n </mat-datepicker>\n </mat-form-field>\n\n <div class=\"time-input\">\n <mat-form-field class=\"hour-input\" *ngIf=\"calendarType()==='datetime'\">\n <mat-label>{{'igo.geo.timeFilter.hour' | translate}}</mat-label>\n <mat-select\n [formControl]=\"beginHourFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(begin.value, 1)\">\n <mat-option *ngFor=\"let hour of beginHours\" [value]=\"hour\">{{hour}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"minute-input\" *ngIf=\"calendarType()==='datetime'\">\n <mat-label>{{'igo.geo.timeFilter.minute' | translate}}</mat-label>\n <mat-select\n [formControl]=\"beginMinuteFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(begin.value, 1)\">\n <mat-option *ngFor=\"let minute of beginMinutes\" [value]=\"minute\">{{minute}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"datetime-input\" *ngIf=\"!restrictedToStep()\">\n <mat-form-field class=\"date-input\">\n <mat-datepicker-toggle matSuffix [for]=\"endDatepicker\" [disabled]= \"filterStateDisable\"></mat-datepicker-toggle>\n <input #end\n matInput\n [matDatepicker]=\"endDatepicker\"\n [placeholder]=\"'igo.geo.timeFilter.endDate' | translate\"\n [attr.disabled]=\"!currentFilter.active\"\n (dateChange)=\"changeTemporalProperty(end.value, 2)\"\n [matDatepickerFilter]=\"filterEndFunction\"\n [value]=\"endValue?endValue:handleDate(datasource.options.maxDate)\"\n [min]=\"beginValue?beginValue:handleDate(datasource.options.minDate)\"\n [max]=\"handleDate(datasource.options.maxDate)\" \n [disabled]= \"filterStateDisable\">\n <span class=\"filler\"></span>\n <mat-datepicker #endDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"endValue\"\n (yearSelected)=\"yearSelected($event, endDatepicker, 'end')\"\n (monthSelected)=\"monthSelected($event, endDatepicker, 'end')\">\n </mat-datepicker>\n </mat-form-field>\n\n <div class=\"time-input\">\n <mat-form-field class=\"hour-input\" *ngIf=\"calendarType()==='datetime'\" >\n <mat-label>{{'igo.geo.timeFilter.hour' | translate}}</mat-label>\n <mat-select\n [formControl]=\"endHourFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(end.value, 2)\">\n <mat-option *ngFor=\"let hour of endHours\" [value]=\"hour\">{{hour}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"minute-input\" *ngIf=\"calendarType()==='datetime'\">\n <mat-label>{{'igo.geo.timeFilter.minute' | translate}}</mat-label>\n <mat-select\n [formControl]=\"endMinuteFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(end.value, 2)\">\n <mat-option *ngFor=\"let minute of endMinutes\" [value]=\"minute\">{{minute}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <button class=\"reset-button\" \n mat-icon-button color=\"primary\"\n (click)=\"resetFilter()\" \n [matTooltip]=\"'igo.geo.filter.resetFilters' | translate\" \n [disabled]= \"filterStateDisable\">\n <mat-icon svgIcon=\"{{resetIcon}}\"></mat-icon>\n </button>\n <mat-slide-toggle \n class=\"toggle-filter-state\" \n (change)=\"toggleFilterState()\" \n tooltip-position=\"below\" \n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\" \n [checked]= \"!filterStateDisable\">\n </mat-slide-toggle>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep input{text-align:center!important;margin:auto 5px!important}.slider-container{text-align:center}.datetime-input{display:inline-block;width:100px;margin:10px 0 5px 10px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.datetime-input{width:36%;margin:0}}.date-input{width:100px;margin-right:25px}.time-input{margin-right:25px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.time-input{margin-right:5px}}.hour-input,.minute-input{width:35px;margin-left:7px}.year-input{width:98px;margin:10px 14px 5px 4px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.year-input{width:32%;margin:0 0 0 10px}}.year-input-hide{width:120px;margin-right:25px;display:none}.year-input-only-year{width:120px;margin-right:25px}.reset-button{width:25px;padding-left:8px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.reset-button{padding-left:8px}}.toggle-filter-state{padding-left:20px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.toggle-filter-state{padding-left:12px}}::ng-deep .datepicker-year ::ng-deep .mat-calendar-arrow{display:none}::ng-deep .datepicker-year ::ng-deep .mat-calendar-period-button{pointer-events:none}::ng-deep .datepicker-year ::ng-deep .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover{background-color:#0000001f;border-radius:999px}\n"] }]
|
|
28956
29829
|
}], function () { return [{ type: OGCFilterTimeService }]; }, { datasource: [{
|
|
28957
29830
|
type: Input
|
|
28958
29831
|
}], currentFilter: [{
|
|
@@ -29343,15 +30216,15 @@ IgoFilterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TimeFi
|
|
|
29343
30216
|
i0.ɵɵsetComponentScope(TimeFilterButtonComponent, [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5$1.ListItemDirective, i7$1.MatBadge, TimeFilterItemComponent], [i7.TranslatePipe]);
|
|
29344
30217
|
i0.ɵɵsetComponentScope(TimeFilterItemComponent, [i1$1.NgClass, i1$1.NgIf, i1$1.NgStyle, i2.MatIcon, i3.MatButton, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i4.MatTooltip, LayerLegendComponent, i5$1.CollapseDirective, TimeFilterFormComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
29345
30218
|
i0.ɵɵsetComponentScope(TimeFilterListComponent, [i1$1.NgForOf, i5$1.ListItemDirective, i5$1.ListComponent, TimeFilterItemComponent], [FilterableDataSourcePipe]);
|
|
29346
|
-
i0.ɵɵsetComponentScope(OgcFilterFormComponent, [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i3.MatButton, i12
|
|
30219
|
+
i0.ɵɵsetComponentScope(OgcFilterFormComponent, [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i3.MatButton, i12.MatCheckbox, i13.MatFormField, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, OgcFilterTimeComponent], [i1$1.AsyncPipe, i7.TranslatePipe, i5$1.KeyValuePipe]);
|
|
29347
30220
|
i0.ɵɵsetComponentScope(OgcFilterButtonComponent, [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5$1.ListItemDirective, i7$1.MatBadge, OgcFilterableItemComponent], [i7.TranslatePipe]);
|
|
29348
|
-
i0.ɵɵsetComponentScope(OgcFilterSelectionComponent, [i1$1.NgForOf, i1$1.NgIf, i1$1.NgStyle, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgModel, i2$2.FormGroupDirective, i2$2.FormControlName, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i17.MatRadioGroup, i17.MatRadioButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i12
|
|
30221
|
+
i0.ɵɵsetComponentScope(OgcFilterSelectionComponent, [i1$1.NgForOf, i1$1.NgIf, i1$1.NgStyle, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgModel, i2$2.FormGroupDirective, i2$2.FormControlName, i11$1.MatAutocomplete, i11$1.MatAutocompleteTrigger, i9.MatOption, i2.MatIcon, i17.MatRadioGroup, i17.MatRadioButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i12.MatCheckbox, i13.MatFormField, i14.MatInput, i15.MatSelect, i11.MatDivider, i4.MatTooltip, OgcFilterTimeComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
29349
30222
|
i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, OgcFilterFormComponent,
|
|
29350
30223
|
OgcFilterSelectionComponent], []);
|
|
29351
|
-
i0.ɵɵsetComponentScope(OgcFilterableItemComponent, [i1$1.NgClass, i1$1.NgIf, i1$1.NgStyle, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3.MatButton, i12
|
|
30224
|
+
i0.ɵɵsetComponentScope(OgcFilterableItemComponent, [i1$1.NgClass, i1$1.NgIf, i1$1.NgStyle, i2$2.NgControlStatus, i2$2.NgModel, i2.MatIcon, i3.MatButton, i12.MatCheckbox, i5.MatListItem, i5.MatListAvatarCssMatStyler, i9.MatLine, i11.MatDivider, i4.MatTooltip, LayerLegendComponent, i5$1.CollapseDirective, OgcFilterableFormComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
29352
30225
|
i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, OgcFilterableItemComponent], [i7.TranslatePipe, FilterableDataSourcePipe]);
|
|
29353
30226
|
i0.ɵɵsetComponentScope(SpatialFilterTypeComponent, [i1$1.NgForOf, i9.MatOption, i2.MatIcon, i20.MatTabGroup, i20.MatTab, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i13.MatLabel, i15.MatSelect, i4.MatTooltip, SpatialFilterListComponent], [i7.TranslatePipe]);
|
|
29354
|
-
i0.ɵɵsetComponentScope(SpatialFilterItemComponent, [i1$1.NgForOf, i1$1.NgIf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgForm, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3.MatButton, i17.MatRadioGroup, i17.MatRadioButton, i21.MatTable, i21.MatHeaderCellDef, i21.MatHeaderRowDef, i21.MatColumnDef, i21.MatRowDef, i21.MatHeaderCell, i21.MatHeaderRow, i21.MatRow, i22.MatNestedTreeNode, i22.MatTreeNodeDef, i22.MatTreeNodeToggle, i22.MatTree, i22.MatTreeNode, i22.MatTreeNodeOutlet, i12
|
|
30227
|
+
i0.ɵɵsetComponentScope(SpatialFilterItemComponent, [i1$1.NgForOf, i1$1.NgIf, i2$2.ɵNgNoValidate, i2$2.DefaultValueAccessor, i2$2.NumberValueAccessor, i2$2.NgControlStatus, i2$2.NgControlStatusGroup, i2$2.NgForm, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3.MatButton, i17.MatRadioGroup, i17.MatRadioButton, i21.MatTable, i21.MatHeaderCellDef, i21.MatHeaderRowDef, i21.MatColumnDef, i21.MatRowDef, i21.MatHeaderCell, i21.MatHeaderRow, i21.MatRow, i22.MatNestedTreeNode, i22.MatTreeNodeDef, i22.MatTreeNodeToggle, i22.MatTree, i22.MatTreeNode, i22.MatTreeNodeOutlet, i12.MatCheckbox, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i4.MatTooltip, i5$1.EntityTableComponent, GeometryFormFieldInputComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
29355
30228
|
i0.ɵɵsetComponentScope(OgcFilterTimeComponent, [i1$1.NgForOf, i1$1.NgIf, i2$2.NgControlStatus, i2$2.NgModel, i2$2.FormControlDirective, i9.MatOption, i2.MatIcon, i3.MatButton, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, i25.MatDatepicker, i25.MatDatepickerInput, i25.MatDatepickerToggle, OgcFilterTimeSliderComponent], [i7.TranslatePipe]);
|
|
29356
30229
|
|
|
29357
30230
|
function ExportButtonComponent_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -29616,7 +30489,7 @@ class ExportService {
|
|
|
29616
30489
|
outputName = `${title}.csv`;
|
|
29617
30490
|
}
|
|
29618
30491
|
outputName = outputName.replace(' ', '_');
|
|
29619
|
-
outputName = outputName.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
30492
|
+
outputName = outputName.normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/’/g, "'");
|
|
29620
30493
|
outputNameField.setAttribute('type', 'hidden');
|
|
29621
30494
|
outputNameField.setAttribute('name', 'outputName');
|
|
29622
30495
|
outputNameField.setAttribute('value', outputName);
|
|
@@ -29936,21 +30809,34 @@ class ImportService {
|
|
|
29936
30809
|
constructor(http, config) {
|
|
29937
30810
|
this.http = http;
|
|
29938
30811
|
this.config = config;
|
|
29939
|
-
|
|
29940
|
-
|
|
30812
|
+
const importConfig = this.config.getConfig('importExport');
|
|
30813
|
+
this.ogreUrl = importConfig.url;
|
|
30814
|
+
const configFileSizeMb = importConfig.clientSideFileSizeMaxMb;
|
|
29941
30815
|
this.clientSideFileSizeMax = (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);
|
|
30816
|
+
if (importConfig.formats) {
|
|
30817
|
+
ImportService.allowedExtensions = importConfig.formats
|
|
30818
|
+
.map(format => ImportService.formatExtensionAssociation[format])
|
|
30819
|
+
.filter(e => e);
|
|
30820
|
+
if (ImportService.allowedExtensions.includes('geojson')) {
|
|
30821
|
+
ImportService.allowedExtensions.push('json');
|
|
30822
|
+
}
|
|
30823
|
+
}
|
|
29942
30824
|
}
|
|
29943
30825
|
import(file, projectionIn = 'EPSG:4326', projectionOut = 'EPSG:4326') {
|
|
29944
30826
|
return this.importAsync(file, projectionIn, projectionOut);
|
|
29945
30827
|
}
|
|
29946
30828
|
getFileImporter(file) {
|
|
29947
30829
|
const extension = getFileExtension(file);
|
|
30830
|
+
const allowedExtensions = ImportService.allowedExtensions;
|
|
30831
|
+
let zipMimeTypes = [];
|
|
30832
|
+
if (allowedExtensions.includes('zip')) {
|
|
30833
|
+
zipMimeTypes = ImportService.allowedZipMimeTypes;
|
|
30834
|
+
}
|
|
29948
30835
|
const mimeType = file.type;
|
|
29949
30836
|
const allowedMimeTypes = [
|
|
29950
30837
|
...ImportService.allowedMimeTypes,
|
|
29951
|
-
...
|
|
30838
|
+
...zipMimeTypes
|
|
29952
30839
|
];
|
|
29953
|
-
const allowedExtensions = ImportService.allowedExtensions;
|
|
29954
30840
|
if (allowedMimeTypes.indexOf(mimeType) < 0 &&
|
|
29955
30841
|
allowedExtensions.indexOf(extension) < 0) {
|
|
29956
30842
|
return undefined;
|
|
@@ -30096,6 +30982,13 @@ class ImportService {
|
|
|
30096
30982
|
return features;
|
|
30097
30983
|
}
|
|
30098
30984
|
}
|
|
30985
|
+
ImportService.formatExtensionAssociation = {
|
|
30986
|
+
GeoJSON: 'geojson',
|
|
30987
|
+
GML: 'gml',
|
|
30988
|
+
GPX: 'gpx',
|
|
30989
|
+
KML: 'kml',
|
|
30990
|
+
Shapefile: 'zip'
|
|
30991
|
+
};
|
|
30099
30992
|
ImportService.allowedMimeTypes = [
|
|
30100
30993
|
'application/gml+xml',
|
|
30101
30994
|
'application/vnd.google-earth.kml+xml',
|
|
@@ -30107,7 +31000,7 @@ ImportService.allowedZipMimeTypes = [
|
|
|
30107
31000
|
'application/x-zip-compressed',
|
|
30108
31001
|
'application/x-zip'
|
|
30109
31002
|
];
|
|
30110
|
-
ImportService.allowedExtensions = ['geojson', 'kml', 'gpx', 'json', 'gml'];
|
|
31003
|
+
ImportService.allowedExtensions = ['geojson', 'kml', 'gpx', 'json', 'gml', 'zip'];
|
|
30111
31004
|
ImportService.ɵfac = function ImportService_Factory(t) { return new (t || ImportService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.ConfigService)); };
|
|
30112
31005
|
ImportService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ImportService, factory: ImportService.ɵfac, providedIn: 'root' });
|
|
30113
31006
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImportService, [{
|
|
@@ -31976,6 +32869,64 @@ IgoOverlayModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
|
|
31976
32869
|
}], null, null); })();
|
|
31977
32870
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoOverlayModule, { declarations: [OverlayDirective], exports: [OverlayDirective] }); })();
|
|
31978
32871
|
|
|
32872
|
+
/*
|
|
32873
|
+
* The MIT License (MIT)
|
|
32874
|
+
*
|
|
32875
|
+
* Copyright (c) 2016-2017 Dan "Ducky" Little
|
|
32876
|
+
*
|
|
32877
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
32878
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
32879
|
+
* in the Software without restriction, including without limitation the rights
|
|
32880
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32881
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
32882
|
+
* furnished to do so, subject to the following conditions:
|
|
32883
|
+
*
|
|
32884
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
32885
|
+
* copies or substantial portions of the Software.
|
|
32886
|
+
*
|
|
32887
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
32888
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
32889
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32890
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
32891
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32892
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32893
|
+
* SOFTWARE.
|
|
32894
|
+
*/
|
|
32895
|
+
function jsGeoPdfPlugin(jsPDFAPI) {
|
|
32896
|
+
const setGeoArea = function (pdfExt, geoExt) {
|
|
32897
|
+
const bbox = pdfExt.join(' ');
|
|
32898
|
+
// the ordering may seem odd here but PDF
|
|
32899
|
+
// flips the Y axis upside down and this accounts for that
|
|
32900
|
+
// change.
|
|
32901
|
+
const minx = geoExt[0];
|
|
32902
|
+
const maxx = geoExt[2];
|
|
32903
|
+
const maxy = geoExt[1];
|
|
32904
|
+
const miny = geoExt[3];
|
|
32905
|
+
const bounds = [miny, minx, maxy, minx, maxy, maxx, miny, maxx].join(' ');
|
|
32906
|
+
const bbox_obj = this.internal.newAdditionalObject();
|
|
32907
|
+
const bounds_obj = this.internal.newAdditionalObject();
|
|
32908
|
+
const proj_obj = this.internal.newAdditionalObject();
|
|
32909
|
+
proj_obj.content = '<< /EPSG 3857 /Type /PROJCS /WKT (PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere"' +
|
|
32910
|
+
',GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0]' +
|
|
32911
|
+
',UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0]' +
|
|
32912
|
+
',PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0]' +
|
|
32913
|
+
',PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]) >>';
|
|
32914
|
+
bounds_obj.content = '<< /Bounds [ 0 1 0 0 1 0 1 1 ] /GCS ' +
|
|
32915
|
+
proj_obj.objId + ' 0 R /GPTS [ ' + bounds + ' ] /LPTS [ 0 1 0 0 1 0 1 1 ] /Subtype /GEO /Type /Measure >>';
|
|
32916
|
+
bbox_obj.content = '<< /BBox [ ' + bbox + ' ] /Measure ' + bounds_obj.objId + ' 0 R /Name (Layer) /Type /Viewport >>';
|
|
32917
|
+
const title_obj = this.internal.newAdditionalObject();
|
|
32918
|
+
const date = new Date().toLocaleDateString('en-CA');
|
|
32919
|
+
title_obj.content = '<< /Name IGO2 /Type /OCG /Date ' + date + ' >>';
|
|
32920
|
+
return bbox_obj.objId;
|
|
32921
|
+
};
|
|
32922
|
+
jsPDFAPI.setGeoArea = function (pdfExt, geoExt) {
|
|
32923
|
+
this.internal.events.subscribe('putPage', function () {
|
|
32924
|
+
const bbox_id = setGeoArea.call(this, pdfExt, geoExt);
|
|
32925
|
+
this.internal.write('/VP [ ' + bbox_id + ' 0 R ]');
|
|
32926
|
+
});
|
|
32927
|
+
};
|
|
32928
|
+
}
|
|
32929
|
+
|
|
31979
32930
|
class PrintService {
|
|
31980
32931
|
constructor(http, messageService, activityService, languageService, configService) {
|
|
31981
32932
|
this.http = http;
|
|
@@ -31983,6 +32934,15 @@ class PrintService {
|
|
|
31983
32934
|
this.activityService = activityService;
|
|
31984
32935
|
this.languageService = languageService;
|
|
31985
32936
|
this.configService = configService;
|
|
32937
|
+
this.TEXTPDFFONT = {
|
|
32938
|
+
titleFont: 'Times',
|
|
32939
|
+
titleFontStyle: 'bold',
|
|
32940
|
+
subtitleFont: 'Times',
|
|
32941
|
+
subtitleFontStyle: 'bold',
|
|
32942
|
+
commentFont: 'courier',
|
|
32943
|
+
commentFontStyle: 'normal',
|
|
32944
|
+
commentFontSize: 16
|
|
32945
|
+
};
|
|
31986
32946
|
}
|
|
31987
32947
|
print(map, options) {
|
|
31988
32948
|
const status$ = new Subject();
|
|
@@ -31991,9 +32951,11 @@ class PrintService {
|
|
|
31991
32951
|
const orientation = options.orientation;
|
|
31992
32952
|
const legendPostion = options.legendPosition;
|
|
31993
32953
|
this.activityId = this.activityService.register();
|
|
31994
|
-
|
|
32954
|
+
jsGeoPdfPlugin(jsPDF.API);
|
|
32955
|
+
const doc = new jsPDF({
|
|
31995
32956
|
orientation,
|
|
31996
|
-
format: paperFormat.toLowerCase()
|
|
32957
|
+
format: paperFormat.toLowerCase(),
|
|
32958
|
+
unit: 'mm' // default
|
|
31997
32959
|
});
|
|
31998
32960
|
const dimensions = [
|
|
31999
32961
|
doc.internal.pageSize.width,
|
|
@@ -32003,17 +32965,21 @@ class PrintService {
|
|
|
32003
32965
|
const width = dimensions[0] - margins[3] - margins[1];
|
|
32004
32966
|
const height = dimensions[1] - margins[0] - margins[2];
|
|
32005
32967
|
const size = [width, height];
|
|
32006
|
-
let
|
|
32968
|
+
let titleSizes;
|
|
32969
|
+
let subtitleSizes;
|
|
32970
|
+
// PDF title
|
|
32007
32971
|
if (options.title !== undefined) {
|
|
32008
|
-
|
|
32009
|
-
this.
|
|
32972
|
+
const fontSizeInPt = Math.round(2 * (height + 145) * 0.05) / 2; //calculate the fontSize title from the page height.
|
|
32973
|
+
titleSizes = this.getTextPdfObjectSizeAndMarg(options.title, margins, this.TEXTPDFFONT.titleFont, fontSizeInPt, this.TEXTPDFFONT.titleFontStyle, doc);
|
|
32974
|
+
this.addTextInPdfDoc(doc, options.title, this.TEXTPDFFONT.titleFont, this.TEXTPDFFONT.titleFontStyle, titleSizes.fontSize, titleSizes.marginLeft + margins[3], margins[0]);
|
|
32975
|
+
margins[0] = titleSizes.height + margins[0]; // cumulative margin top for next elem to place in pdf doc
|
|
32010
32976
|
}
|
|
32977
|
+
// PDF subtitle
|
|
32011
32978
|
if (options.subtitle !== undefined) {
|
|
32012
|
-
|
|
32013
|
-
|
|
32014
|
-
|
|
32015
|
-
|
|
32016
|
-
margins[0] = margins[0] + titleSizeResults[0] * 0.7 * (25.4 / 72);
|
|
32979
|
+
subtitleSizes = this.getTextPdfObjectSizeAndMarg(options.subtitle, margins, this.TEXTPDFFONT.subtitleFont, titleSizes.fontSize * 0.7, // 70% size of title
|
|
32980
|
+
this.TEXTPDFFONT.subtitleFontStyle, doc);
|
|
32981
|
+
this.addTextInPdfDoc(doc, options.subtitle, this.TEXTPDFFONT.subtitleFont, this.TEXTPDFFONT.subtitleFontStyle, subtitleSizes.fontSize, subtitleSizes.marginLeft + margins[3], margins[0]);
|
|
32982
|
+
margins[0] += 5; // cumulative marg top for next elem to place in pdf doc. 5 is a fix it could be adjust
|
|
32017
32983
|
}
|
|
32018
32984
|
if (options.showProjection === true || options.showScale === true) {
|
|
32019
32985
|
this.addProjScale(doc, map, resolution, options.showProjection, options.showScale);
|
|
@@ -32025,6 +32991,10 @@ class PrintService {
|
|
|
32025
32991
|
if (status === SubjectStatus.Done) {
|
|
32026
32992
|
await this.addScale(doc, map, margins);
|
|
32027
32993
|
await this.handleMeasureLayer(doc, map, margins);
|
|
32994
|
+
const width = this.imgSizeAdded[0];
|
|
32995
|
+
const height = this.imgSizeAdded[1];
|
|
32996
|
+
const res = 1;
|
|
32997
|
+
this.addGeoRef(doc, map, width, height, res, margins);
|
|
32028
32998
|
if (options.legendPosition !== 'none') {
|
|
32029
32999
|
if (['topleft', 'topright', 'bottomleft', 'bottomright'].indexOf(options.legendPosition) > -1) {
|
|
32030
33000
|
await this.addLegendSamePage(doc, map, margins, resolution, options.legendPosition);
|
|
@@ -32044,6 +33014,20 @@ class PrintService {
|
|
|
32044
33014
|
});
|
|
32045
33015
|
return status$;
|
|
32046
33016
|
}
|
|
33017
|
+
// ref GeoMoose https://github.com/geomoose/gm3/tree/main/src/gm3/components/print
|
|
33018
|
+
addGeoRef(doc, map, width, height, resolution, margins) {
|
|
33019
|
+
const unit = 'mm';
|
|
33020
|
+
const docHeight = doc.internal.pageSize.getHeight();
|
|
33021
|
+
// x,y = margin left-bottom corner for img in pdf doc
|
|
33022
|
+
const x = margins[3];
|
|
33023
|
+
const y = docHeight - margins[0] - height;
|
|
33024
|
+
let pdf_extents = [x, y, x + width, y + height];
|
|
33025
|
+
for (let i = 0; i < pdf_extents.length; i++) {
|
|
33026
|
+
pdf_extents[i] = this.pdf_units2points(pdf_extents[i], unit);
|
|
33027
|
+
}
|
|
33028
|
+
const mapExtent = map.viewController.getExtent('EPSG:3857');
|
|
33029
|
+
doc.setGeoArea(pdf_extents, mapExtent);
|
|
33030
|
+
}
|
|
32047
33031
|
/**
|
|
32048
33032
|
* Add measure overlay on the map on the document when the measure layer is present
|
|
32049
33033
|
* @param doc - Pdf document where measure tooltip will be added
|
|
@@ -32163,66 +33147,46 @@ class PrintService {
|
|
|
32163
33147
|
}
|
|
32164
33148
|
return status$;
|
|
32165
33149
|
}
|
|
32166
|
-
|
|
33150
|
+
getTextPdfObjectSizeAndMarg(text, margins, font, fontSizeInPt, fontStyle, doc) {
|
|
32167
33151
|
const pdfResolution = 96;
|
|
32168
|
-
const
|
|
32169
|
-
|
|
32170
|
-
|
|
32171
|
-
|
|
32172
|
-
|
|
32173
|
-
let
|
|
32174
|
-
let
|
|
32175
|
-
if (
|
|
32176
|
-
|
|
32177
|
-
|
|
32178
|
-
|
|
32179
|
-
|
|
32180
|
-
|
|
32181
|
-
}
|
|
33152
|
+
const docWidth = doc.internal.pageSize.getWidth();
|
|
33153
|
+
const pageWidth = docWidth - margins[1] - margins[3];
|
|
33154
|
+
// important to set it first, the textDimension change when font change!
|
|
33155
|
+
doc.setFont(font, fontStyle);
|
|
33156
|
+
doc.setFontSize(fontSizeInPt);
|
|
33157
|
+
let textDimensions = doc.getTextDimensions(text);
|
|
33158
|
+
let textMarginLeft;
|
|
33159
|
+
if (textDimensions.w > pageWidth) {
|
|
33160
|
+
// if the text is to long, reduce fontSize 70% and the overflow with be cut in print...
|
|
33161
|
+
textMarginLeft = 0;
|
|
33162
|
+
fontSizeInPt = fontSizeInPt * 0.7;
|
|
33163
|
+
doc.setFontSize(fontSizeInPt);
|
|
33164
|
+
textDimensions = doc.getTextDimensions(text);
|
|
32182
33165
|
}
|
|
32183
33166
|
else {
|
|
32184
|
-
|
|
32185
|
-
titleFontSize = titleSize;
|
|
32186
|
-
}
|
|
32187
|
-
return [titleFontSize, titleMarginLeft];
|
|
32188
|
-
}
|
|
32189
|
-
getSubTitleSize(subtitle, pageWidth, pageHeight, doc) {
|
|
32190
|
-
const subtitleSize = 0.7 * Math.round(2 * (pageHeight + 145) * 0.05) / 2; // 70% of the title's font size
|
|
32191
|
-
doc.setFont('Times', 'bold');
|
|
32192
|
-
const subtitleWidth = doc.getStringUnitWidth(subtitle) * subtitleSize / doc.internal.scaleFactor;
|
|
32193
|
-
let subtitleMarginLeft;
|
|
32194
|
-
if (subtitleWidth >= (pageWidth)) {
|
|
32195
|
-
subtitleMarginLeft = 0;
|
|
33167
|
+
textMarginLeft = (pageWidth - textDimensions.w) / 2;
|
|
32196
33168
|
}
|
|
32197
|
-
|
|
32198
|
-
|
|
32199
|
-
|
|
32200
|
-
|
|
32201
|
-
|
|
32202
|
-
addTitle(doc, title, titleFontSize, titleMarginLeft, titleMarginTop) {
|
|
32203
|
-
doc.setFont('Times', 'bold');
|
|
32204
|
-
doc.setFontSize(titleFontSize);
|
|
32205
|
-
doc.text(title, titleMarginLeft, titleMarginTop);
|
|
32206
|
-
}
|
|
32207
|
-
addSubTitle(doc, subtitle, subtitleFontSize, subtitleMarginLeft, subtitleMarginTop) {
|
|
32208
|
-
doc.setFont('Times', 'bold');
|
|
32209
|
-
doc.setFontSize(subtitleFontSize);
|
|
32210
|
-
doc.text(subtitle, subtitleMarginLeft, subtitleMarginTop);
|
|
33169
|
+
return {
|
|
33170
|
+
'fontSize': fontSizeInPt,
|
|
33171
|
+
'marginLeft': textMarginLeft,
|
|
33172
|
+
'height': textDimensions.h
|
|
33173
|
+
};
|
|
32211
33174
|
}
|
|
32212
33175
|
/**
|
|
32213
33176
|
* Add comment to the document
|
|
32214
33177
|
* * @param doc - pdf document
|
|
32215
33178
|
* * @param comment - Comment to add in the document
|
|
32216
|
-
* * @param size - Size of the document
|
|
32217
33179
|
*/
|
|
32218
33180
|
addComment(doc, comment) {
|
|
32219
|
-
const
|
|
32220
|
-
const
|
|
32221
|
-
const
|
|
32222
|
-
|
|
32223
|
-
|
|
32224
|
-
|
|
32225
|
-
doc.
|
|
33181
|
+
const commentMarginLeft = 20; //margin left and bottom is fix
|
|
33182
|
+
const commentMarginBottom = 5;
|
|
33183
|
+
const marginTop = doc.internal.pageSize.height - commentMarginBottom;
|
|
33184
|
+
this.addTextInPdfDoc(doc, comment, this.TEXTPDFFONT.commentFont, this.TEXTPDFFONT.commentFontStyle, this.TEXTPDFFONT.commentFontSize, commentMarginLeft, marginTop);
|
|
33185
|
+
}
|
|
33186
|
+
addTextInPdfDoc(doc, textToAdd, textFont, textFontStyle, textFontSize, textMarginLeft, textMarginTop) {
|
|
33187
|
+
doc.setFont(textFont, textFontStyle);
|
|
33188
|
+
doc.setFontSize(textFontSize);
|
|
33189
|
+
doc.text(textToAdd, textMarginLeft, textMarginTop);
|
|
32226
33190
|
}
|
|
32227
33191
|
/**
|
|
32228
33192
|
* Add projection and/or scale to the document
|
|
@@ -32394,9 +33358,14 @@ class PrintService {
|
|
|
32394
33358
|
image = canvas.toDataURL('image/png');
|
|
32395
33359
|
}
|
|
32396
33360
|
if (image !== undefined) {
|
|
33361
|
+
if (image.length < 20) { // img is corrupt todo: fix addScale in mobile make a corrupt img
|
|
33362
|
+
console.log('Warning: An image cannot be print in pdf file');
|
|
33363
|
+
return;
|
|
33364
|
+
}
|
|
32397
33365
|
const imageSize = this.getImageSizeToFitPdf(doc, canvas, margins);
|
|
32398
33366
|
doc.addImage(image, 'PNG', margins[3], margins[0], imageSize[0], imageSize[1]);
|
|
32399
33367
|
doc.rect(margins[3], margins[0], imageSize[0], imageSize[1]);
|
|
33368
|
+
this.imgSizeAdded = imageSize; // keep img size for georef later
|
|
32400
33369
|
}
|
|
32401
33370
|
}
|
|
32402
33371
|
// TODO fix printing with image resolution
|
|
@@ -32630,7 +33599,7 @@ class PrintService {
|
|
|
32630
33599
|
* @param doc - Document to save
|
|
32631
33600
|
*/
|
|
32632
33601
|
async saveDoc(doc) {
|
|
32633
|
-
await doc.save('
|
|
33602
|
+
await doc.save('map_georef.pdf', { returnPromise: true });
|
|
32634
33603
|
}
|
|
32635
33604
|
/**
|
|
32636
33605
|
* Calculate the best Image size to fit in pdf
|
|
@@ -32642,8 +33611,8 @@ class PrintService {
|
|
|
32642
33611
|
// Define variable to calculate best size to fit in one page
|
|
32643
33612
|
const pageHeight = doc.internal.pageSize.getHeight() - (margins[0] + margins[2]);
|
|
32644
33613
|
const pageWidth = doc.internal.pageSize.getWidth() - (margins[1] + margins[3]);
|
|
32645
|
-
const canHeight = canvas.height;
|
|
32646
|
-
const canWidth = canvas.width;
|
|
33614
|
+
const canHeight = this.pdf_units2points(canvas.height, 'mm');
|
|
33615
|
+
const canWidth = this.pdf_units2points(canvas.width, 'mm');
|
|
32647
33616
|
const heightRatio = canHeight / pageHeight;
|
|
32648
33617
|
const widthRatio = canWidth / pageWidth;
|
|
32649
33618
|
const maxRatio = heightRatio > widthRatio ? heightRatio : widthRatio;
|
|
@@ -32759,6 +33728,41 @@ class PrintService {
|
|
|
32759
33728
|
delete that.zipFile;
|
|
32760
33729
|
});
|
|
32761
33730
|
}
|
|
33731
|
+
pdf_units2points(n, unit) {
|
|
33732
|
+
let k = 1;
|
|
33733
|
+
// this code is borrowed from jsPDF
|
|
33734
|
+
// as it does not expose a public API
|
|
33735
|
+
// for converting units to points.
|
|
33736
|
+
switch (unit) {
|
|
33737
|
+
case 'pt':
|
|
33738
|
+
k = 1;
|
|
33739
|
+
break;
|
|
33740
|
+
case 'mm':
|
|
33741
|
+
k = 72 / 25.4;
|
|
33742
|
+
break;
|
|
33743
|
+
case 'cm':
|
|
33744
|
+
k = 72 / 2.54;
|
|
33745
|
+
break;
|
|
33746
|
+
case 'in':
|
|
33747
|
+
k = 72;
|
|
33748
|
+
break;
|
|
33749
|
+
case 'px':
|
|
33750
|
+
k = 96 / 72;
|
|
33751
|
+
break;
|
|
33752
|
+
case 'pc':
|
|
33753
|
+
k = 12;
|
|
33754
|
+
break;
|
|
33755
|
+
case 'em':
|
|
33756
|
+
k = 12;
|
|
33757
|
+
break;
|
|
33758
|
+
case 'ex':
|
|
33759
|
+
k = 6;
|
|
33760
|
+
break;
|
|
33761
|
+
default:
|
|
33762
|
+
throw new Error('Invalid unit: ' + unit);
|
|
33763
|
+
}
|
|
33764
|
+
return n * k;
|
|
33765
|
+
}
|
|
32762
33766
|
}
|
|
32763
33767
|
PrintService.ɵfac = function PrintService_Factory(t) { return new (t || PrintService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.MessageService), i0.ɵɵinject(i2$1.ActivityService), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.ConfigService)); };
|
|
32764
33768
|
PrintService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrintService, factory: PrintService.ɵfac, providedIn: 'root' });
|
|
@@ -34277,6 +35281,7 @@ function featureToSearchResult(feature, source) {
|
|
|
34277
35281
|
delete feature.properties.SHAPE_P;
|
|
34278
35282
|
delete feature.properties.the_geom;
|
|
34279
35283
|
delete feature.properties.geom;
|
|
35284
|
+
delete feature.properties.geom32198;
|
|
34280
35285
|
}
|
|
34281
35286
|
feature.sourceId = source.getId();
|
|
34282
35287
|
return {
|
|
@@ -35365,6 +36370,30 @@ class IChercheSearchSource extends SearchSource {
|
|
|
35365
36370
|
enabled: types.indexOf('anciennes-adresses') !== -1,
|
|
35366
36371
|
hashtags: ['anciennes-adresses']
|
|
35367
36372
|
},
|
|
36373
|
+
{
|
|
36374
|
+
title: 'igo.geo.search.icherche.type.oldCity',
|
|
36375
|
+
value: 'anciennes-municipalites',
|
|
36376
|
+
enabled: types.indexOf('anciennes-municipalites') !== -1,
|
|
36377
|
+
hashtags: ['anciennes-municipalites']
|
|
36378
|
+
},
|
|
36379
|
+
{
|
|
36380
|
+
title: 'igo.geo.search.icherche.type.cn',
|
|
36381
|
+
value: 'bornes-cn',
|
|
36382
|
+
enabled: types.indexOf('bornes-cn') !== -1,
|
|
36383
|
+
hashtags: ['borne', 'bornes', 'cn']
|
|
36384
|
+
},
|
|
36385
|
+
{
|
|
36386
|
+
title: 'igo.geo.search.icherche.type.sumi',
|
|
36387
|
+
value: 'bornes-sumi',
|
|
36388
|
+
enabled: types.indexOf('bornes-sumi') !== -1,
|
|
36389
|
+
hashtags: ['borne', 'bornes', 'sumi']
|
|
36390
|
+
},
|
|
36391
|
+
{
|
|
36392
|
+
title: 'igo.geo.search.icherche.type.cadastre',
|
|
36393
|
+
value: 'cadastre',
|
|
36394
|
+
enabled: types.indexOf('cadastre') !== -1,
|
|
36395
|
+
hashtags: ['cadastre']
|
|
36396
|
+
},
|
|
35368
36397
|
{
|
|
35369
36398
|
title: 'igo.geo.search.icherche.type.postalCode',
|
|
35370
36399
|
value: 'codes-postaux',
|
|
@@ -35372,10 +36401,29 @@ class IChercheSearchSource extends SearchSource {
|
|
|
35372
36401
|
hashtags: ['code-postal']
|
|
35373
36402
|
},
|
|
35374
36403
|
{
|
|
35375
|
-
title: 'igo.geo.search.icherche.type.
|
|
35376
|
-
value: '
|
|
35377
|
-
enabled: types.indexOf('
|
|
35378
|
-
|
|
36404
|
+
title: 'igo.geo.search.icherche.type.entreprise',
|
|
36405
|
+
value: 'entreprises',
|
|
36406
|
+
enabled: types.indexOf('entreprises') !== -1,
|
|
36407
|
+
available: false,
|
|
36408
|
+
hashtags: ['entreprise']
|
|
36409
|
+
},
|
|
36410
|
+
{
|
|
36411
|
+
title: 'igo.geo.search.icherche.type.cycleStop',
|
|
36412
|
+
value: 'haltes_cyclables',
|
|
36413
|
+
enabled: types.indexOf('haltes_cyclables') !== -1,
|
|
36414
|
+
hashtags: ['haltevelo', 'haltes_cyclables']
|
|
36415
|
+
},
|
|
36416
|
+
{
|
|
36417
|
+
title: 'igo.geo.search.icherche.type.restArea',
|
|
36418
|
+
value: 'haltes_routieres',
|
|
36419
|
+
enabled: types.indexOf('haltes_routieres') !== -1,
|
|
36420
|
+
hashtags: ['halteroute', 'haltes_routieres']
|
|
36421
|
+
},
|
|
36422
|
+
{
|
|
36423
|
+
title: 'igo.geo.search.icherche.type.hq',
|
|
36424
|
+
value: 'hq',
|
|
36425
|
+
enabled: types.indexOf('hq') !== -1,
|
|
36426
|
+
hashtags: ['hq']
|
|
35379
36427
|
},
|
|
35380
36428
|
{
|
|
35381
36429
|
title: 'igo.geo.search.icherche.type.intersection',
|
|
@@ -35384,16 +36432,10 @@ class IChercheSearchSource extends SearchSource {
|
|
|
35384
36432
|
hashtags: ['intersection', '+']
|
|
35385
36433
|
},
|
|
35386
36434
|
{
|
|
35387
|
-
title: 'igo.geo.search.icherche.type.
|
|
35388
|
-
value: '
|
|
35389
|
-
enabled: types.indexOf('
|
|
35390
|
-
hashtags: ['
|
|
35391
|
-
},
|
|
35392
|
-
{
|
|
35393
|
-
title: 'igo.geo.search.icherche.type.oldCity',
|
|
35394
|
-
value: 'anciennes-municipalites',
|
|
35395
|
-
enabled: types.indexOf('anciennes-municipalites') !== -1,
|
|
35396
|
-
hashtags: ['anciennes-municipalites']
|
|
36435
|
+
title: 'igo.geo.search.icherche.type.place',
|
|
36436
|
+
value: 'lieux',
|
|
36437
|
+
enabled: types.indexOf('lieux') !== -1,
|
|
36438
|
+
hashtags: ['lieu']
|
|
35397
36439
|
},
|
|
35398
36440
|
{
|
|
35399
36441
|
title: 'igo.geo.search.icherche.type.mrc',
|
|
@@ -35401,37 +36443,18 @@ class IChercheSearchSource extends SearchSource {
|
|
|
35401
36443
|
enabled: types.indexOf('mrc') !== -1,
|
|
35402
36444
|
hashtags: ['mrc']
|
|
35403
36445
|
},
|
|
36446
|
+
{
|
|
36447
|
+
title: 'igo.geo.search.icherche.type.city',
|
|
36448
|
+
value: 'municipalites',
|
|
36449
|
+
enabled: types.indexOf('municipalites') !== -1,
|
|
36450
|
+
hashtags: ['municipalité', 'mun']
|
|
36451
|
+
},
|
|
35404
36452
|
{
|
|
35405
36453
|
title: 'igo.geo.search.icherche.type.regadmin',
|
|
35406
36454
|
value: 'regadmin',
|
|
35407
36455
|
enabled: types.indexOf('regadmin') !== -1,
|
|
35408
36456
|
hashtags: ['région-administrative', 'regadmin']
|
|
35409
36457
|
},
|
|
35410
|
-
{
|
|
35411
|
-
title: 'igo.geo.search.icherche.type.entreprise',
|
|
35412
|
-
value: 'entreprises',
|
|
35413
|
-
enabled: types.indexOf('entreprises') !== -1,
|
|
35414
|
-
available: false,
|
|
35415
|
-
hashtags: ['entreprise']
|
|
35416
|
-
},
|
|
35417
|
-
{
|
|
35418
|
-
title: 'igo.geo.search.icherche.type.place',
|
|
35419
|
-
value: 'lieux',
|
|
35420
|
-
enabled: types.indexOf('lieux') !== -1,
|
|
35421
|
-
hashtags: ['lieu']
|
|
35422
|
-
},
|
|
35423
|
-
{
|
|
35424
|
-
title: 'igo.geo.search.icherche.type.exit',
|
|
35425
|
-
value: 'sorties-autoroute',
|
|
35426
|
-
enabled: types.indexOf('sorties-autoroute') !== -1,
|
|
35427
|
-
hashtags: ['sortie', 'sorties', 'exit']
|
|
35428
|
-
},
|
|
35429
|
-
{
|
|
35430
|
-
title: 'igo.geo.search.icherche.type.km',
|
|
35431
|
-
value: 'bornes-km',
|
|
35432
|
-
enabled: types.indexOf('bornes-km') !== -1,
|
|
35433
|
-
hashtags: ['borne', 'bornes', 'repère', 'km']
|
|
35434
|
-
},
|
|
35435
36458
|
{
|
|
35436
36459
|
title: 'igo.geo.search.icherche.type.gcc',
|
|
35437
36460
|
value: 'bornes-gcc',
|
|
@@ -35439,28 +36462,22 @@ class IChercheSearchSource extends SearchSource {
|
|
|
35439
36462
|
hashtags: ['borne', 'bornes', 'repère', 'gcc', 'ccg']
|
|
35440
36463
|
},
|
|
35441
36464
|
{
|
|
35442
|
-
title: 'igo.geo.search.icherche.type.
|
|
35443
|
-
value: 'bornes-
|
|
35444
|
-
enabled: types.indexOf('bornes-
|
|
35445
|
-
hashtags: ['borne', 'bornes', '
|
|
35446
|
-
},
|
|
35447
|
-
{
|
|
35448
|
-
title: 'igo.geo.search.icherche.type.sumi',
|
|
35449
|
-
value: 'bornes-sumi',
|
|
35450
|
-
enabled: types.indexOf('bornes-sumi') !== -1,
|
|
35451
|
-
hashtags: ['borne', 'bornes', 'sumi']
|
|
36465
|
+
title: 'igo.geo.search.icherche.type.km',
|
|
36466
|
+
value: 'bornes-km',
|
|
36467
|
+
enabled: types.indexOf('bornes-km') !== -1,
|
|
36468
|
+
hashtags: ['borne', 'bornes', 'repère', 'km']
|
|
35452
36469
|
},
|
|
35453
36470
|
{
|
|
35454
|
-
title: 'igo.geo.search.icherche.type.
|
|
35455
|
-
value: '
|
|
35456
|
-
enabled: types.indexOf('
|
|
35457
|
-
hashtags: ['
|
|
36471
|
+
title: 'igo.geo.search.icherche.type.road',
|
|
36472
|
+
value: 'routes',
|
|
36473
|
+
enabled: types.indexOf('routes') !== -1,
|
|
36474
|
+
hashtags: ['route']
|
|
35458
36475
|
},
|
|
35459
36476
|
{
|
|
35460
|
-
title: 'igo.geo.search.icherche.type.
|
|
35461
|
-
value: '
|
|
35462
|
-
enabled: types.indexOf('
|
|
35463
|
-
hashtags: ['
|
|
36477
|
+
title: 'igo.geo.search.icherche.type.exit',
|
|
36478
|
+
value: 'sorties-autoroute',
|
|
36479
|
+
enabled: types.indexOf('sorties-autoroute') !== -1,
|
|
36480
|
+
hashtags: ['sortie', 'sorties', 'exit']
|
|
35464
36481
|
}
|
|
35465
36482
|
]
|
|
35466
36483
|
},
|
|
@@ -37110,7 +38127,7 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
|
|
|
37110
38127
|
i0.ɵɵproperty("ngForOf", ctx.getSearchSources());
|
|
37111
38128
|
i0.ɵɵadvance(1);
|
|
37112
38129
|
i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
|
|
37113
|
-
} }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i1$1.NgSwitch, i1$1.NgSwitchCase, i4.MatTooltip, i2.MatIcon, i3.MatButton, i7$2.MatMenu, i7$2.MatMenuItem, i7$2.MatMenuTrigger, i17.MatRadioGroup, i17.MatRadioButton, i12
|
|
38130
|
+
} }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i1$1.NgSwitch, i1$1.NgSwitchCase, i4.MatTooltip, i2.MatIcon, i3.MatButton, i7$2.MatMenu, i7$2.MatMenuItem, i7$2.MatMenuTrigger, i17.MatRadioGroup, i17.MatRadioButton, i12.MatCheckbox, i11.MatDivider, i23.MatSlideToggle, i7.TranslatePipe], styles: [".checkAllButton[_ngcontent-%COMP%]{text-align:center;padding:0 5px}.igo-search-settings-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.igo-search-settings-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}.igo-search-settings-checkbox[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{display:flex}.igo-search-settings-search-source[_ngcontent-%COMP%]{display:flex;width:100%}.igo-search-settings-search-source[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:flex;margin-left:5px;margin-right:5px}.pointer-summary-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{margin:10px}"], changeDetection: 0 });
|
|
37114
38131
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
|
|
37115
38132
|
type: Component,
|
|
37116
38133
|
args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\n\n <button\n mat-icon-button\n class=\"igo-search-settings-button\"\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\n [matMenuTriggerFor]=\"searchSettingsMenu\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n <mat-menu\n #searchSettingsMenu=\"matMenu\"\n class=\"no-border-radius\">\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\n <button mat-raised-button\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\n </div>\n <ng-container *ngFor=\"let source of getSearchSources()\">\n <span class=\"igo-search-settings-search-source\">\n <mat-checkbox\n class=\"igo-search-settings-checkbox\"\n [checked]=\"source.enabled\"\n [value]=\"source\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onCheckSearchSource($event, source)\">\n </mat-checkbox>\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\n [matMenuTriggerFor]=\"sub_menu\"\n mat-menu-item>{{source.title}}\n </button>\n <button\n mat-menu-item\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\n {{source.title}}\n </button>\n </span>\n <mat-menu #sub_menu=\"matMenu\">\n <ng-container *ngFor=\"let setting of source.settings\">\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"test_sub_menu\">\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\n </button>\n <mat-menu #test_sub_menu=\"matMenu\"\n [ngSwitch]=\"setting.type\"\n yPosition=\"above\">\n <span *ngSwitchCase=\"'radiobutton'\">\n <mat-radio-group\n class=\"igo-search-settings-radio-group\"\n [value]=\"setting\">\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\n class=\"mat-typography\"\n [value]=\"settingValue\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n [checked]=\"settingValue.enabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-radio-button>\n </mat-radio-group>\n </span>\n <span *ngSwitchCase=\"'checkbox'\">\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\n <button mat-raised-button\n (click)=\"checkUncheckAll($event, source, setting)\">{{setting.allEnabled || setting.allEnabled === undefined ? ('igo.geo.search.searchSources.settings.unselectAll' | translate): ('igo.geo.search.searchSources.settings.selectAll' | translate)}}</button>\n </div>\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\n class=\"mat-menu-item\"\n [style.display]=\"displayBlock\"\n [checked]=\"settingValue.enabled\"\n [value]=\"setting\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-checkbox>\n </span>\n </mat-menu>\n </ng-container>\n </mat-menu>\n </ng-container>\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\n <mat-divider></mat-divider>\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\n </mat-slide-toggle>\n </span>\n </span>\n </mat-menu>\n</div>\n", styles: [".checkAllButton{text-align:center;padding:0 5px}.igo-search-settings-button ::ng-deep div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group{display:flex;flex-direction:column}.igo-search-settings-radio-group mat-radio-button{margin:5px}.igo-search-settings-checkbox mat-radio-button{display:flex}.igo-search-settings-search-source{display:flex;width:100%}.igo-search-settings-search-source mat-checkbox{display:flex;margin-left:5px;margin-right:5px}.pointer-summary-option{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container{overflow-x:hidden}.pointer-summary-slide-toggle-container mat-slide-toggle{margin:10px}\n"] }]
|
|
@@ -37187,25 +38204,23 @@ function SearchBarComponent_mat_label_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
37187
38204
|
i0.ɵɵtextInterpolate(ctx_r0.label);
|
|
37188
38205
|
} }
|
|
37189
38206
|
function SearchBarComponent_button_11_Template(rf, ctx) { if (rf & 1) {
|
|
38207
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
37190
38208
|
i0.ɵɵelementStart(0, "button", 10);
|
|
37191
|
-
i0.ɵɵ
|
|
38209
|
+
i0.ɵɵlistener("click", function SearchBarComponent_button_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.onClearButtonClick()); });
|
|
38210
|
+
i0.ɵɵpipe(1, "translate");
|
|
38211
|
+
i0.ɵɵelement(2, "mat-icon", 11);
|
|
37192
38212
|
i0.ɵɵelementEnd();
|
|
37193
38213
|
} if (rf & 2) {
|
|
37194
38214
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
37195
|
-
i0.ɵɵproperty("color", ctx_r2.color);
|
|
37196
|
-
i0.ɵɵadvance(1);
|
|
37197
|
-
i0.ɵɵpropertyInterpolate("svgIcon", ctx_r2.searchIcon);
|
|
38215
|
+
i0.ɵɵproperty("color", ctx_r2.color)("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.search.clearSearch"));
|
|
37198
38216
|
} }
|
|
37199
|
-
function
|
|
37200
|
-
const _r7 = i0.ɵɵgetCurrentView();
|
|
38217
|
+
function SearchBarComponent_button_13_Template(rf, ctx) { if (rf & 1) {
|
|
37201
38218
|
i0.ɵɵelementStart(0, "button", 12);
|
|
37202
|
-
i0.ɵɵ
|
|
37203
|
-
i0.ɵɵpipe(1, "translate");
|
|
37204
|
-
i0.ɵɵelement(2, "mat-icon", 13);
|
|
38219
|
+
i0.ɵɵelement(1, "mat-icon", 13);
|
|
37205
38220
|
i0.ɵɵelementEnd();
|
|
37206
38221
|
} if (rf & 2) {
|
|
37207
38222
|
const ctx_r3 = i0.ɵɵnextContext();
|
|
37208
|
-
i0.ɵɵproperty("color", ctx_r3.color)
|
|
38223
|
+
i0.ɵɵproperty("color", ctx_r3.color);
|
|
37209
38224
|
} }
|
|
37210
38225
|
function SearchBarComponent_igo_search_selector_14_Template(rf, ctx) { if (rf & 1) {
|
|
37211
38226
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
@@ -37234,8 +38249,8 @@ const _c2$1 = function (a0) { return { "hasSearchIcon": a0 }; };
|
|
|
37234
38249
|
* into that store. An event is always emitted when a research is completed.
|
|
37235
38250
|
*/
|
|
37236
38251
|
class SearchBarComponent {
|
|
37237
|
-
constructor(
|
|
37238
|
-
this.
|
|
38252
|
+
constructor(configService, searchService, searchSourceService) {
|
|
38253
|
+
this.configService = configService;
|
|
37239
38254
|
this.searchService = searchService;
|
|
37240
38255
|
this.searchSourceService = searchSourceService;
|
|
37241
38256
|
this.placeholder$ = new BehaviorSubject('igo.geo.search.placeholder');
|
|
@@ -37244,6 +38259,10 @@ class SearchBarComponent {
|
|
|
37244
38259
|
* Search term stream
|
|
37245
38260
|
*/
|
|
37246
38261
|
this.stream$ = new BehaviorSubject('');
|
|
38262
|
+
/**
|
|
38263
|
+
* whether to show search button or not
|
|
38264
|
+
*/
|
|
38265
|
+
this.showSearchButton = false;
|
|
37247
38266
|
/**
|
|
37248
38267
|
* List of available search types
|
|
37249
38268
|
*/
|
|
@@ -37355,12 +38374,14 @@ class SearchBarComponent {
|
|
|
37355
38374
|
this.empty$.next(term === undefined || term.length === 0);
|
|
37356
38375
|
});
|
|
37357
38376
|
this.stream$$ = this.stream$
|
|
37358
|
-
.pipe(debounce((
|
|
38377
|
+
.pipe(debounce(() => timer(this.debounce)))
|
|
37359
38378
|
.subscribe((term) => this.onSetTerm(term));
|
|
37360
38379
|
this.handlePlaceholder();
|
|
37361
38380
|
this.searchType$$ = this.searchType$
|
|
37362
38381
|
.pipe(distinctUntilChanged())
|
|
37363
38382
|
.subscribe((searchType) => this.onSetSearchType(searchType));
|
|
38383
|
+
const configValue = this.configService.getConfig("searchBar.showSearchButton");
|
|
38384
|
+
this.showSearchButton = configValue !== undefined ? configValue : false;
|
|
37364
38385
|
}
|
|
37365
38386
|
/**
|
|
37366
38387
|
* Unsubscribe to the search term stream
|
|
@@ -37548,13 +38569,13 @@ SearchBarComponent.invalidKeys = [
|
|
|
37548
38569
|
'ArrowRight',
|
|
37549
38570
|
'ArrowLeft'
|
|
37550
38571
|
];
|
|
37551
|
-
SearchBarComponent.ɵfac = function SearchBarComponent_Factory(t) { return new (t || SearchBarComponent)(i0.ɵɵdirectiveInject(i2$1.
|
|
38572
|
+
SearchBarComponent.ɵfac = function SearchBarComponent_Factory(t) { return new (t || SearchBarComponent)(i0.ɵɵdirectiveInject(i2$1.ConfigService), i0.ɵɵdirectiveInject(SearchService), i0.ɵɵdirectiveInject(SearchSourceService)); };
|
|
37552
38573
|
SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBarComponent, selectors: [["igo-search-bar"]], viewQuery: function SearchBarComponent_Query(rf, ctx) { if (rf & 1) {
|
|
37553
38574
|
i0.ɵɵviewQuery(_c0$3, 7);
|
|
37554
38575
|
} if (rf & 2) {
|
|
37555
38576
|
let _t;
|
|
37556
38577
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
|
|
37557
|
-
} }, inputs: { searchTypes: "searchTypes", searchType: "searchType", term: "term", disabled: "disabled", pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", floatLabel: "floatLabel", appearance: "appearance", placeholder: "placeholder", label: "label", color: "color", termSplitter: "termSplitter", debounce: "debounce", minLength: "minLength",
|
|
38578
|
+
} }, inputs: { searchTypes: "searchTypes", searchType: "searchType", term: "term", disabled: "disabled", pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", floatLabel: "floatLabel", appearance: "appearance", placeholder: "placeholder", label: "label", color: "color", termSplitter: "termSplitter", debounce: "debounce", minLength: "minLength", searchSelector: "searchSelector", searchSettings: "searchSettings", forceNA: "forceNA", store: "store" }, outputs: { pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus", searchTermChange: "searchTermChange", search: "search", searchTypeChange: "searchTypeChange", clearFeature: "clearFeature", searchSettingsChange: "searchSettingsChange" }, decls: 16, vars: 28, consts: [[1, "igo-search-bar-container", 3, "ngClass"], [3, "floatLabel", "appearance"], [4, "ngIf"], ["matInput", "", "autocomplete", "off", 3, "ngClass", "disabled", "placeholder", "value", "keyup", "touchend"], ["input", ""], [1, "search-bar-buttons"], ["mat-icon-button", "", 3, "color", "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", 3, "color", 4, "ngIf"], [3, "searchTypes", "searchType", "searchTypeChange", 4, "ngIf"], [3, "pointerSummaryEnabled", "searchResultsGeometryEnabled", "pointerSummaryStatus", "searchResultsGeometryStatus", "searchSourceChange", 4, "ngIf"], ["mat-icon-button", "", 3, "color", "matTooltip", "click"], ["svgIcon", "close"], ["mat-icon-button", "", 3, "color"], ["svgIcon", "magnify"], [3, "searchTypes", "searchType", "searchTypeChange"], [3, "pointerSummaryEnabled", "searchResultsGeometryEnabled", "pointerSummaryStatus", "searchResultsGeometryStatus", "searchSourceChange"]], template: function SearchBarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
37558
38579
|
i0.ɵɵelementStart(0, "div", 0);
|
|
37559
38580
|
i0.ɵɵpipe(1, "async");
|
|
37560
38581
|
i0.ɵɵelementStart(2, "mat-form-field", 1);
|
|
@@ -37567,9 +38588,9 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
|
|
|
37567
38588
|
i0.ɵɵpipe(9, "async");
|
|
37568
38589
|
i0.ɵɵelementEnd()();
|
|
37569
38590
|
i0.ɵɵelementStart(10, "div", 5);
|
|
37570
|
-
i0.ɵɵtemplate(11, SearchBarComponent_button_11_Template,
|
|
37571
|
-
i0.ɵɵ
|
|
37572
|
-
i0.ɵɵ
|
|
38591
|
+
i0.ɵɵtemplate(11, SearchBarComponent_button_11_Template, 3, 4, "button", 6);
|
|
38592
|
+
i0.ɵɵpipe(12, "async");
|
|
38593
|
+
i0.ɵɵtemplate(13, SearchBarComponent_button_13_Template, 2, 1, "button", 7);
|
|
37573
38594
|
i0.ɵɵtemplate(14, SearchBarComponent_igo_search_selector_14_Template, 2, 4, "igo-search-selector", 8);
|
|
37574
38595
|
i0.ɵɵtemplate(15, SearchBarComponent_igo_search_settings_15_Template, 1, 2, "igo-search-settings", 9);
|
|
37575
38596
|
i0.ɵɵelementEnd()();
|
|
@@ -37580,20 +38601,20 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
|
|
|
37580
38601
|
i0.ɵɵadvance(1);
|
|
37581
38602
|
i0.ɵɵproperty("ngIf", ctx.label);
|
|
37582
38603
|
i0.ɵɵadvance(1);
|
|
37583
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(26, _c2$1, ctx.
|
|
38604
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(26, _c2$1, ctx.showSearchButton))("disabled", i0.ɵɵpipeBind1(6, 14, ctx.disabled$))("placeholder", ctx.placeholder ? ctx.placeholder : i0.ɵɵpipeBind1(7, 16, ctx.placeholder$) ? i0.ɵɵpipeBind1(8, 18, ctx.placeholder$.value) : undefined)("value", i0.ɵɵpipeBind1(9, 20, ctx.term$));
|
|
37584
38605
|
i0.ɵɵadvance(7);
|
|
37585
|
-
i0.ɵɵproperty("ngIf", ctx.
|
|
37586
|
-
i0.ɵɵadvance(1);
|
|
37587
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(13, 22, ctx.empty$) === false);
|
|
38606
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(12, 22, ctx.empty$) === false);
|
|
37588
38607
|
i0.ɵɵadvance(2);
|
|
38608
|
+
i0.ɵɵproperty("ngIf", ctx.showSearchButton);
|
|
38609
|
+
i0.ɵɵadvance(1);
|
|
37589
38610
|
i0.ɵɵproperty("ngIf", ctx.searchSelector);
|
|
37590
38611
|
i0.ɵɵadvance(1);
|
|
37591
38612
|
i0.ɵɵproperty("ngIf", ctx.searchSettings);
|
|
37592
38613
|
} }, dependencies: [i1$1.NgClass, i1$1.NgIf, i4.MatTooltip, i2.MatIcon, i3.MatButton, i13.MatFormField, i13.MatLabel, i14.MatInput, SearchSelectorComponent, SearchSettingsComponent, i1$1.AsyncPipe, i7.TranslatePipe], styles: ["[_nghost-%COMP%] .mat-form-field{padding:0 5px}[_nghost-%COMP%] .mat-form-field-wrapper{margin-bottom:-1.5em}[_nghost-%COMP%] span.mat-form-field-label-wrapper{top:-20px}[_nghost-%COMP%] div.mat-form-field-infix{left:5px;right:5px;padding:0 0 12px!important}[_nghost-%COMP%] div.mat-form-field-underline{display:none}.igo-search-bar-container[_ngcontent-%COMP%]{position:relative;width:100%;display:inline-flex;overflow:hidden}.igo-search-bar-container[_ngcontent-%COMP%] > mat-form-field[_ngcontent-%COMP%]{width:calc(100% - 80px)}.igo-search-bar-container.empty[_ngcontent-%COMP%] > mat-form-field[_ngcontent-%COMP%]{width:calc(100% - 40px)}.search-bar-buttons[_ngcontent-%COMP%]{position:relative;right:0px;display:inline-flex;top:0}.search-bar-buttons[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:nth-child(2):before{content:\"\";left:0px;top:5px;border-right:1px solid #ddd;height:28px}igo-search-selector[_ngcontent-%COMP%]{background-color:#fff;top:0;border-radius:0}igo-search-settings[_ngcontent-%COMP%]{background-color:#fff;top:0;border-radius:0}"], changeDetection: 0 });
|
|
37593
38614
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchBarComponent, [{
|
|
37594
38615
|
type: Component,
|
|
37595
|
-
args: [{ selector: 'igo-search-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-bar-container\" [ngClass]=\"{empty: empty$ | async}\">\n <mat-form-field [floatLabel]=\"floatLabel\" [appearance]=\"appearance\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input\n #input\n matInput\n autocomplete=\"off\"\n [ngClass]=\"{'hasSearchIcon':
|
|
37596
|
-
}], function () { return [{ type: i2$1.
|
|
38616
|
+
args: [{ selector: 'igo-search-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-bar-container\" [ngClass]=\"{empty: empty$ | async}\">\n <mat-form-field [floatLabel]=\"floatLabel\" [appearance]=\"appearance\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input\n #input\n matInput\n autocomplete=\"off\"\n [ngClass]=\"{'hasSearchIcon': showSearchButton}\"\n [disabled]=\"disabled$ | async\"\n [placeholder]=\"placeholder ? placeholder : (placeholder$ | async) ? (placeholder$.value | translate) : undefined\"\n [value]=\"term$ | async\"\n (keyup)=\"onKeyup($event)\"\n (touchend)=\"onKeyup($event)\">\n </mat-form-field>\n\n <div class=\"search-bar-buttons\">\n <button *ngIf=\"(empty$ | async)===false\"\n mat-icon-button\n [color]=\"color\"\n (click)=\"onClearButtonClick()\"\n [matTooltip]=\"'igo.geo.search.clearSearch' | translate\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n \n <button *ngIf=\"showSearchButton\"\n mat-icon-button\n [color]=\"color\">\n <mat-icon svgIcon=\"magnify\"></mat-icon>\n </button>\n\n <igo-search-selector\n *ngIf=\"searchSelector\"\n [searchTypes]=\"searchTypes\"\n [searchType]=\"searchType$ | async\"\n (searchTypeChange)=\"onSearchTypeChange($event)\">\n </igo-search-selector>\n\n <igo-search-settings\n *ngIf=\"searchSettings\"\n [pointerSummaryEnabled]=\"pointerSummaryEnabled\"\n (pointerSummaryStatus)=\"pointerSummaryStatus.emit($event)\"\n [searchResultsGeometryEnabled]=\"searchResultsGeometryEnabled\"\n (searchResultsGeometryStatus)=\"searchResultsGeometryStatus.emit($event)\"\n (searchSourceChange)=\"onSearchSettingsChange()\">\n </igo-search-settings>\n </div>\n</div>\n", styles: [":host ::ng-deep .mat-form-field{padding:0 5px}:host ::ng-deep .mat-form-field-wrapper{margin-bottom:-1.5em}:host ::ng-deep span.mat-form-field-label-wrapper{top:-20px}:host ::ng-deep div.mat-form-field-infix{left:5px;right:5px;padding:0 0 12px!important}:host ::ng-deep div.mat-form-field-underline{display:none}.igo-search-bar-container{position:relative;width:100%;display:inline-flex;overflow:hidden}.igo-search-bar-container>mat-form-field{width:calc(100% - 80px)}.igo-search-bar-container.empty>mat-form-field{width:calc(100% - 40px)}.search-bar-buttons{position:relative;right:0px;display:inline-flex;top:0}.search-bar-buttons>button:nth-child(2):before{content:\"\";left:0px;top:5px;border-right:1px solid #ddd;height:28px}igo-search-selector{background-color:#fff;top:0;border-radius:0}igo-search-settings{background-color:#fff;top:0;border-radius:0}\n"] }]
|
|
38617
|
+
}], function () { return [{ type: i2$1.ConfigService }, { type: SearchService }, { type: SearchSourceService }]; }, { searchTypes: [{
|
|
37597
38618
|
type: Input
|
|
37598
38619
|
}], searchType: [{
|
|
37599
38620
|
type: Input
|
|
@@ -37625,8 +38646,6 @@ SearchBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBa
|
|
|
37625
38646
|
type: Input
|
|
37626
38647
|
}], minLength: [{
|
|
37627
38648
|
type: Input
|
|
37628
|
-
}], searchIcon: [{
|
|
37629
|
-
type: Input
|
|
37630
38649
|
}], searchSelector: [{
|
|
37631
38650
|
type: Input
|
|
37632
38651
|
}], searchSettings: [{
|
|
@@ -37938,9 +38957,11 @@ var SearchResultMode;
|
|
|
37938
38957
|
* This component is dumb and only emits events.
|
|
37939
38958
|
*/
|
|
37940
38959
|
class SearchResultsComponent {
|
|
37941
|
-
constructor(cdRef, searchService) {
|
|
38960
|
+
constructor(cdRef, searchService, configService) {
|
|
37942
38961
|
this.cdRef = cdRef;
|
|
37943
38962
|
this.searchService = searchService;
|
|
38963
|
+
this.configService = configService;
|
|
38964
|
+
this.showResultsCount = true;
|
|
37944
38965
|
/**
|
|
37945
38966
|
* Reference to the SearchResultMode enum
|
|
37946
38967
|
* @internal
|
|
@@ -38005,6 +39026,9 @@ class SearchResultsComponent {
|
|
|
38005
39026
|
this.settingsChange$$ = this.settingsChange$.subscribe(() => {
|
|
38006
39027
|
this.pageIterator = [];
|
|
38007
39028
|
});
|
|
39029
|
+
if (this.configService.getConfig('searchSources.showResultsCount') === false) {
|
|
39030
|
+
this.showResultsCount = false;
|
|
39031
|
+
}
|
|
38008
39032
|
}
|
|
38009
39033
|
/**
|
|
38010
39034
|
* Unbind the search results store from the watcher
|
|
@@ -38023,7 +39047,7 @@ class SearchResultsComponent {
|
|
|
38023
39047
|
computeGroupTitle(group) {
|
|
38024
39048
|
const parts = [group.source.title];
|
|
38025
39049
|
const count = group.results.length;
|
|
38026
|
-
if (count > 1) {
|
|
39050
|
+
if (count > 1 && this.showResultsCount) {
|
|
38027
39051
|
parts.push(`(${count})`);
|
|
38028
39052
|
}
|
|
38029
39053
|
return parts.join(' ');
|
|
@@ -38087,11 +39111,14 @@ class SearchResultsComponent {
|
|
|
38087
39111
|
});
|
|
38088
39112
|
}
|
|
38089
39113
|
isMoreResults(group) {
|
|
38090
|
-
// getStrategyOfType is to avoid display more result based on a filtered state
|
|
38091
39114
|
const stategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
|
|
38092
39115
|
const active = stategy?.active || false;
|
|
38093
|
-
|
|
38094
|
-
group.results[group.results.length - 1].meta.nextPage === true;
|
|
39116
|
+
if (!active) {
|
|
39117
|
+
return group.results && group.results[group.results.length - 1].meta.nextPage === true;
|
|
39118
|
+
}
|
|
39119
|
+
else {
|
|
39120
|
+
return group.results?.length % +group.source.params.limit === 0 && +group.source.params.page < 30;
|
|
39121
|
+
}
|
|
38095
39122
|
}
|
|
38096
39123
|
displayMoreResults(group) {
|
|
38097
39124
|
const options = {
|
|
@@ -38121,7 +39148,7 @@ class SearchResultsComponent {
|
|
|
38121
39148
|
return;
|
|
38122
39149
|
}
|
|
38123
39150
|
}
|
|
38124
|
-
SearchResultsComponent.ɵfac = function SearchResultsComponent_Factory(t) { return new (t || SearchResultsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(SearchService)); };
|
|
39151
|
+
SearchResultsComponent.ɵfac = function SearchResultsComponent_Factory(t) { return new (t || SearchResultsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(SearchService), i0.ɵɵdirectiveInject(i2$1.ConfigService)); };
|
|
38125
39152
|
SearchResultsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultsComponent, selectors: [["igo-search-results"]], contentQueries: function SearchResultsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
38126
39153
|
i0.ɵɵcontentQuery(dirIndex, _c0$1, 5);
|
|
38127
39154
|
} if (rf & 2) {
|
|
@@ -38140,7 +39167,7 @@ SearchResultsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sear
|
|
|
38140
39167
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultsComponent, [{
|
|
38141
39168
|
type: Component,
|
|
38142
39169
|
args: [{ selector: 'igo-search-results', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"true\">\n <ng-template\n #groupTemplate\n ngFor let-group\n [ngForOf]=\"results$ | async\">\n\n <igo-collapsible [class]=\"group.source.getId()\"\n *ngIf=\"mode === searchResultMode.Grouped; else flatTemplate\"\n [title]=\"computeGroupTitle(group)\"\n [collapsed]=\"collapsed[group.source.title]\"\n (toggle)=\"collapsed[group.source.title] = $event\">\n <ng-container *ngTemplateOutlet=\"storeItemTemplate; context: {results: group.results}\"></ng-container>\n </igo-collapsible>\n\n <ng-template #flatTemplate>\n <ng-container *ngTemplateOutlet=\"storeItemTemplate; context: {results: group.results}\"></ng-container>\n </ng-template>\n\n <ng-template #storeItemTemplate let-results=\"results\">\n <ng-template ngFor let-result [ngForOf]=\"results\">\n <igo-search-results-item\n igoListItem\n color=\"accent\"\n [map]=\"map\"\n [result]=\"result\"\n [showIcons]=\"showIcons\"\n [withZoomButton]=\"withZoomButton\"\n [focused]=\"store.state.get(result).focused\"\n [selected]=\"store.state.get(result).selected\"\n (focus)=\"resultFocus.emit(result)\"\n (unfocus)=\"resultUnfocus.emit(result)\"\n (select)=\"onResultSelect(result)\"\n (mouseenter)=\"resultFocus.emit(result)\"\n (mouseleave)=\"resultUnfocus.emit(result)\">\n\n <ng-container igoSearchItemToolbar\n [ngTemplateOutlet]=\"templateSearchToolbar\"\n [ngTemplateOutletContext]=\"{result: result}\">\n </ng-container>\n\n </igo-search-results-item>\n </ng-template>\n <span class=\"moreResults mat-typography\" *ngIf=\"isMoreResults(group)\" (click)=\"displayMoreResults(group)\">\n <u>{{ 'igo.geo.search.displayMoreResults' | translate }}</u>\n </span>\n </ng-template>\n\n </ng-template>\n\n</igo-list>\n", styles: [".moreResults{cursor:pointer;color:#00f;float:right;margin-right:10px;margin-top:5px}igo-list ::ng-deep mat-list{height:100%}\n"] }]
|
|
38143
|
-
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: SearchService }]; }, { map: [{
|
|
39170
|
+
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: SearchService }, { type: i2$1.ConfigService }]; }, { map: [{
|
|
38144
39171
|
type: Input
|
|
38145
39172
|
}], store: [{
|
|
38146
39173
|
type: Input
|
|
@@ -39741,6 +40768,8 @@ class EditionWorkspaceService {
|
|
|
39741
40768
|
this.relationLayers$ = new BehaviorSubject(undefined);
|
|
39742
40769
|
this.rowsInMapExtentCheckCondition$ = new BehaviorSubject(true);
|
|
39743
40770
|
this.loading = false;
|
|
40771
|
+
this.wktFormat = new olFormatWKT();
|
|
40772
|
+
this.geoJsonFormat = new OlGeoJSON();
|
|
39744
40773
|
}
|
|
39745
40774
|
get zoomAuto() {
|
|
39746
40775
|
return this.storageService.get('zoomAuto');
|
|
@@ -40065,11 +41094,10 @@ class EditionWorkspaceService {
|
|
|
40065
41094
|
}
|
|
40066
41095
|
}
|
|
40067
41096
|
addFeature(feature, workspace, url, headers) {
|
|
40068
|
-
// TODO: adapt to any kind of geometry
|
|
40069
41097
|
if (workspace.layer.dataSource.options.edition.hasGeometry) {
|
|
40070
|
-
|
|
40071
|
-
feature.properties[
|
|
40072
|
-
|
|
41098
|
+
const projDest = workspace.layer.options.sourceOptions.edition.geomDatabaseProj;
|
|
41099
|
+
feature.properties[workspace.layer.dataSource.options.params.fieldNameGeometry] =
|
|
41100
|
+
'SRID=' + projDest.replace("EPSG:", "") + ';' + this.wktFormat.writeGeometry(this.geoJsonFormat.readFeature(feature.geometry).getGeometry().transform('EPSG:4326', projDest), { dataProjection: projDest });
|
|
40073
41101
|
}
|
|
40074
41102
|
for (const property in feature.properties) {
|
|
40075
41103
|
for (const sf of workspace.layer.dataSource.options.sourceFields) {
|
|
@@ -40150,11 +41178,12 @@ class EditionWorkspaceService {
|
|
|
40150
41178
|
});
|
|
40151
41179
|
}
|
|
40152
41180
|
modifyFeature(feature, workspace, url, headers, protocole = 'patch') {
|
|
40153
|
-
//TODO: adapt to any kind of geometry
|
|
40154
41181
|
if (workspace.layer.dataSource.options.edition.hasGeometry) {
|
|
40155
|
-
|
|
40156
|
-
|
|
40157
|
-
feature.
|
|
41182
|
+
const projDest = workspace.layer.options.sourceOptions.edition.geomDatabaseProj;
|
|
41183
|
+
// Remove 3e dimension
|
|
41184
|
+
feature.geometry.coordinates = removeZ(feature.geometry.coordinates);
|
|
41185
|
+
feature.properties[workspace.layer.dataSource.options.params.fieldNameGeometry] =
|
|
41186
|
+
'SRID=' + projDest.replace("EPSG:", "") + ';' + this.wktFormat.writeGeometry(this.geoJsonFormat.readFeature(feature.geometry).getGeometry().transform('EPSG:4326', projDest), { dataProjection: projDest });
|
|
40158
41187
|
}
|
|
40159
41188
|
for (const property in feature.properties) {
|
|
40160
41189
|
for (const sf of workspace.layer.dataSource.options.sourceFields) {
|
|
@@ -40353,6 +41382,13 @@ function getColumnKeyWithoutPropertiesTag(column) {
|
|
|
40353
41382
|
return column.split('.')[1];
|
|
40354
41383
|
}
|
|
40355
41384
|
return column;
|
|
41385
|
+
}
|
|
41386
|
+
function removeZ(coords) {
|
|
41387
|
+
if (coords.length === 0)
|
|
41388
|
+
return coords;
|
|
41389
|
+
if (typeof coords[0] === 'number')
|
|
41390
|
+
return coords.slice(0, 2);
|
|
41391
|
+
return coords.map(removeZ);
|
|
40356
41392
|
}
|
|
40357
41393
|
|
|
40358
41394
|
class FeatureWorkspace extends Workspace {
|
|
@@ -41103,138 +42139,6 @@ function provideOsrmDirectionsSource() {
|
|
|
41103
42139
|
};
|
|
41104
42140
|
}
|
|
41105
42141
|
|
|
41106
|
-
/**
|
|
41107
|
-
* Cadastre search source
|
|
41108
|
-
*/
|
|
41109
|
-
class CadastreSearchSource extends SearchSource {
|
|
41110
|
-
constructor(http, languageService, storageService, options) {
|
|
41111
|
-
super(options, storageService);
|
|
41112
|
-
this.http = http;
|
|
41113
|
-
this.languageService = languageService;
|
|
41114
|
-
}
|
|
41115
|
-
getId() {
|
|
41116
|
-
return CadastreSearchSource.id;
|
|
41117
|
-
}
|
|
41118
|
-
getType() {
|
|
41119
|
-
return CadastreSearchSource.type;
|
|
41120
|
-
}
|
|
41121
|
-
/*
|
|
41122
|
-
* Source : https://wiki.openstreetmap.org/wiki/Key:amenity
|
|
41123
|
-
*/
|
|
41124
|
-
getDefaultOptions() {
|
|
41125
|
-
return {
|
|
41126
|
-
title: 'Cadastre (Québec)',
|
|
41127
|
-
searchUrl: 'https://carto.cptaq.gouv.qc.ca/php/find_lot_v1.php?'
|
|
41128
|
-
};
|
|
41129
|
-
}
|
|
41130
|
-
/**
|
|
41131
|
-
* Search a place by name
|
|
41132
|
-
* @param term Place name
|
|
41133
|
-
* @returns Observable of <SearchResult<Feature>[]
|
|
41134
|
-
*/
|
|
41135
|
-
search(term, options) {
|
|
41136
|
-
term = term.endsWith(',') ? term.slice(0, -1) : term;
|
|
41137
|
-
term = term.startsWith(',') ? term.substr(1) : term;
|
|
41138
|
-
term = term.replace(/ /g, '');
|
|
41139
|
-
const params = this.computeSearchRequestParams(term, options || {});
|
|
41140
|
-
if (!params.get('numero') || !params.get('numero').match(/^[0-9,]+$/g)) {
|
|
41141
|
-
return of([]);
|
|
41142
|
-
}
|
|
41143
|
-
return this.http
|
|
41144
|
-
.get(this.searchUrl, { params, responseType: 'text' })
|
|
41145
|
-
.pipe(map((response) => this.extractResults(response, term)));
|
|
41146
|
-
}
|
|
41147
|
-
computeSearchRequestParams(term, options) {
|
|
41148
|
-
return new HttpParams({
|
|
41149
|
-
fromObject: Object.assign({
|
|
41150
|
-
numero: term,
|
|
41151
|
-
epsg: '4326'
|
|
41152
|
-
}, this.params, options.params || {})
|
|
41153
|
-
});
|
|
41154
|
-
}
|
|
41155
|
-
extractResults(response, term) {
|
|
41156
|
-
return response
|
|
41157
|
-
.split('<br />')
|
|
41158
|
-
.filter((lot) => lot.length > 0)
|
|
41159
|
-
.map((lot) => this.dataToResult(lot, term));
|
|
41160
|
-
}
|
|
41161
|
-
dataToResult(data, term) {
|
|
41162
|
-
const lot = data.split(';');
|
|
41163
|
-
const numero = lot[0];
|
|
41164
|
-
const wkt = lot[7];
|
|
41165
|
-
const geometry = this.computeGeometry(wkt);
|
|
41166
|
-
const properties = {
|
|
41167
|
-
NoLot: numero,
|
|
41168
|
-
Route: '<span class="routing"> <u>' + this.languageService.translate.instant('igo.geo.seeRouting') + '</u> </span>'
|
|
41169
|
-
};
|
|
41170
|
-
const id = [this.getId(), 'cadastre', numero].join('.');
|
|
41171
|
-
return {
|
|
41172
|
-
source: this,
|
|
41173
|
-
meta: {
|
|
41174
|
-
dataType: FEATURE,
|
|
41175
|
-
id,
|
|
41176
|
-
title: numero,
|
|
41177
|
-
score: computeTermSimilarity(term.trim(), numero),
|
|
41178
|
-
icon: 'map-marker'
|
|
41179
|
-
},
|
|
41180
|
-
data: {
|
|
41181
|
-
type: FEATURE,
|
|
41182
|
-
projection: 'EPSG:4326',
|
|
41183
|
-
geometry,
|
|
41184
|
-
properties,
|
|
41185
|
-
meta: {
|
|
41186
|
-
id,
|
|
41187
|
-
title: numero
|
|
41188
|
-
}
|
|
41189
|
-
}
|
|
41190
|
-
};
|
|
41191
|
-
}
|
|
41192
|
-
computeGeometry(wkt) {
|
|
41193
|
-
const feature = new olWKT().readFeature(wkt, {
|
|
41194
|
-
dataProjection: 'EPSG:4326',
|
|
41195
|
-
featureProjection: 'EPSG:4326'
|
|
41196
|
-
});
|
|
41197
|
-
return {
|
|
41198
|
-
type: feature.getGeometry().getType(),
|
|
41199
|
-
coordinates: feature.getGeometry().getCoordinates()
|
|
41200
|
-
};
|
|
41201
|
-
}
|
|
41202
|
-
}
|
|
41203
|
-
CadastreSearchSource.id = 'cadastre';
|
|
41204
|
-
CadastreSearchSource.type = FEATURE;
|
|
41205
|
-
CadastreSearchSource.ɵfac = function CadastreSearchSource_Factory(t) { return new (t || CadastreSearchSource)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.LanguageService), i0.ɵɵinject(i2$1.StorageService), i0.ɵɵinject('options')); };
|
|
41206
|
-
CadastreSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CadastreSearchSource, factory: CadastreSearchSource.ɵfac });
|
|
41207
|
-
__decorate([
|
|
41208
|
-
Cacheable({
|
|
41209
|
-
maxCacheCount: 20
|
|
41210
|
-
})
|
|
41211
|
-
], CadastreSearchSource.prototype, "search", null);
|
|
41212
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CadastreSearchSource, [{
|
|
41213
|
-
type: Injectable
|
|
41214
|
-
}], function () { return [{ type: i1$2.HttpClient }, { type: i2$1.LanguageService }, { type: i2$1.StorageService }, { type: undefined, decorators: [{
|
|
41215
|
-
type: Inject,
|
|
41216
|
-
args: ['options']
|
|
41217
|
-
}] }]; }, { search: [] }); })();
|
|
41218
|
-
|
|
41219
|
-
/**
|
|
41220
|
-
* Cadastre search source factory
|
|
41221
|
-
* @ignore
|
|
41222
|
-
*/
|
|
41223
|
-
function cadastreSearchSourceFactory(http, languageService, storageService, config) {
|
|
41224
|
-
return new CadastreSearchSource(http, languageService, storageService, config.getConfig(`searchSources.${CadastreSearchSource.id}`));
|
|
41225
|
-
}
|
|
41226
|
-
/**
|
|
41227
|
-
* Function that returns a provider for the Cadastre search source
|
|
41228
|
-
*/
|
|
41229
|
-
function provideCadastreSearchSource() {
|
|
41230
|
-
return {
|
|
41231
|
-
provide: SearchSource,
|
|
41232
|
-
useFactory: cadastreSearchSourceFactory,
|
|
41233
|
-
multi: true,
|
|
41234
|
-
deps: [HttpClient, LanguageService, StorageService, ConfigService]
|
|
41235
|
-
};
|
|
41236
|
-
}
|
|
41237
|
-
|
|
41238
42142
|
/**
|
|
41239
42143
|
* Nominatim search source
|
|
41240
42144
|
*/
|
|
@@ -41994,7 +42898,7 @@ class ConfigFileToGeoDBService {
|
|
|
41994
42898
|
}
|
|
41995
42899
|
if (currentDate >= geoData.triggerDate) {
|
|
41996
42900
|
if (geoData.action === 'update') {
|
|
41997
|
-
const insertEvent = `${geoData.source ||
|
|
42901
|
+
const insertEvent = `${geoData.source || InsertSourceInsertDBEnum.System} (${geoData.triggerDate})`;
|
|
41998
42902
|
geoData.urls.map((url) => {
|
|
41999
42903
|
datas$.push(this.geoDBService.getByID(url).pipe(concatMap((res) => {
|
|
42000
42904
|
if (res?.insertEvent !== insertEvent) {
|
|
@@ -42003,8 +42907,31 @@ class ConfigFileToGeoDBService {
|
|
|
42003
42907
|
.info('igo.geo.indexedDb.data-download-start', undefined, { disableTimeOut: true, progressBar: false, closeButton: true, tapToDismiss: false });
|
|
42004
42908
|
firstDownload = false;
|
|
42005
42909
|
}
|
|
42006
|
-
|
|
42007
|
-
|
|
42910
|
+
let responseType = 'json';
|
|
42911
|
+
const isZip = this.isZip(url);
|
|
42912
|
+
if (isZip) {
|
|
42913
|
+
responseType = 'arraybuffer';
|
|
42914
|
+
}
|
|
42915
|
+
return this.http.get(url, { responseType }).pipe(concatMap(r => {
|
|
42916
|
+
if (isZip) {
|
|
42917
|
+
const observables$ = [this.geoDBService.update(url, url, {}, InsertSourceInsertDBEnum.System, insertEvent)];
|
|
42918
|
+
JSZip.loadAsync(r)
|
|
42919
|
+
.then((zipped) => {
|
|
42920
|
+
zipped.forEach((relativePath) => {
|
|
42921
|
+
if (relativePath.toLocaleLowerCase().endsWith('.geojson')) {
|
|
42922
|
+
zipped.file(relativePath).async("base64").then((r) => {
|
|
42923
|
+
const geojson = JSON.parse(atob(r));
|
|
42924
|
+
const subUrl = geoData.zippedBaseUrl || '';
|
|
42925
|
+
const zippedUrl = subUrl + (subUrl.endsWith('/') ? '' : '/') + relativePath;
|
|
42926
|
+
observables$.push(this.geoDBService.update(zippedUrl, url, geojson, InsertSourceInsertDBEnum.System, insertEvent));
|
|
42927
|
+
});
|
|
42928
|
+
}
|
|
42929
|
+
});
|
|
42930
|
+
});
|
|
42931
|
+
return zip(observables$);
|
|
42932
|
+
}
|
|
42933
|
+
return this.geoDBService.update(url, url, r, InsertSourceInsertDBEnum.System, insertEvent);
|
|
42934
|
+
}));
|
|
42008
42935
|
}
|
|
42009
42936
|
else {
|
|
42010
42937
|
return of(false);
|
|
@@ -42030,6 +42957,10 @@ class ConfigFileToGeoDBService {
|
|
|
42030
42957
|
}
|
|
42031
42958
|
});
|
|
42032
42959
|
}
|
|
42960
|
+
isZip(value) {
|
|
42961
|
+
const regex = /(zip)$/;
|
|
42962
|
+
return typeof value === 'string' && regex.test(value.toLowerCase());
|
|
42963
|
+
}
|
|
42033
42964
|
}
|
|
42034
42965
|
ConfigFileToGeoDBService.ɵfac = function ConfigFileToGeoDBService_Factory(t) { return new (t || ConfigFileToGeoDBService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(GeoDBService), i0.ɵɵinject(i2$1.MessageService)); };
|
|
42035
42966
|
ConfigFileToGeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ConfigFileToGeoDBService, factory: ConfigFileToGeoDBService.ɵfac, providedIn: 'root' });
|
|
@@ -42048,5 +42979,5 @@ ConfigFileToGeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token:
|
|
|
42048
42979
|
* Generated bundle index. Do not edit.
|
|
42049
42980
|
*/
|
|
42050
42981
|
|
|
42051
|
-
export { AddCatalogDialogComponent, ArcGISRestDataSource, BaseLayersSwitcherComponent, CadastreSearchSource, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogFactory, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, CompositeCatalog, ConfigFileToGeoDBService, ConfirmationPopupComponent, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionType, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EditionWorkspace, EditionWorkspaceService, EncodingFormat, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, FontType, GeoDBService, GeoNetworkService, GeolocateButtonComponent, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HomeExtentButtonComponent, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoConfirmationPopupModule, IgoDataSourceModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoOverlayModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, InfoSectionComponent, InsertSourceInsertDBEnum, LAYER, Layer, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListBindingDirective, LayerListComponent, LayerListControlsEnum, LayerListDisplacement, LayerListSelectVisibleEnum, LayerListToolComponent, LayerListToolControlsEnum, LayerListToolService, LayerService, LinkedProperties, MEASURE_UNIT_AUTO, MVTDataSource, MapBrowserComponent, MapCenterComponent, MapController, MapGeolocationController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, OverlayDirective, OverlayService, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, ResponseType, RotationButtonComponent, RoutesFeatureStore, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchResultsItemComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleModalComponent, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WakeLockButtonComponent, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addDirectionToRoutesFeatureStore, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addStopToStopsFeatureStore, addStopToStore, buildUrl, cadastreSearchSourceFactory, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeMVTOptionsOnHover, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayMarkerStyle, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, formatDistance, formatDuration, formatInstruction, formatMeasure, formatScale, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getAllChildLayersByDeletion, getAllChildLayersByProperty, getCommonVectorSelectedStyle, getCommonVectorStyle, getDirectChildLayersByDeletion, getDirectChildLayersByProperty, getDirectParentLayerByDeletion, getDirectParentLayerByProperty, getFileExtension, getFormatFromOptions, getIgoLayerByLinkId, getLayersLegends, getLinkedLayersOptions, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRootParentByDeletion, getRootParentByProperty, getRowsInMapExtent, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleLayerPropertyChange, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarker, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initLayerSyncFromRootParentLayers, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, jsonRegex, layerFeatureIsQueryable, layerHasLinkDeletion, layerHasLinkWithProperty, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarker, provideCadastreSearchSource, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, removeStopFromStore, renderFeatureFromOl, roundCoordTo, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlLineString, sliceOlPolygon, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, styleListFactory, translateBearing, translateModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, zoneMtm, zoneUtm };
|
|
42982
|
+
export { AddCatalogDialogComponent, ArcGISRestDataSource, BaseLayersSwitcherComponent, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogFactory, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, CompositeCatalog, ConfigFileToGeoDBService, ConfirmationPopupComponent, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, CoordinatesUnit, DDtoDMS, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionType, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EditionWorkspace, EditionWorkspaceService, EncodingFormat, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, FontType, GeoDBService, GeoNetworkService, GeolocateButtonComponent, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HomeExtentButtonComponent, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoConfirmationPopupModule, IgoDataSourceModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoOverlayModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, InfoSectionComponent, InsertSourceInsertDBEnum, LAYER, LabelType, Layer, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListBindingDirective, LayerListComponent, LayerListControlsEnum, LayerListDisplacement, LayerListSelectVisibleEnum, LayerListToolComponent, LayerListToolControlsEnum, LayerListToolService, LayerService, LinkedProperties, MEASURE_UNIT_AUTO, MVTDataSource, MapBrowserComponent, MapCenterComponent, MapController, MapGeolocationController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, OverlayDirective, OverlayService, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, ResponseType, RotationButtonComponent, RoutesFeatureStore, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchResultsItemComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleModalComponent, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WakeLockButtonComponent, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addDirectionToRoutesFeatureStore, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addStopToStopsFeatureStore, addStopToStore, buildUrl, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeMVTOptionsOnHover, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayMarkerStyle, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, formatDistance, formatDuration, formatInstruction, formatMeasure, formatScale, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getAllChildLayersByDeletion, getAllChildLayersByProperty, getCommonVectorSelectedStyle, getCommonVectorStyle, getDirectChildLayersByDeletion, getDirectChildLayersByProperty, getDirectParentLayerByDeletion, getDirectParentLayerByProperty, getFileExtension, getFormatFromOptions, getIgoLayerByLinkId, getLayersLegends, getLinkedLayersOptions, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRootParentByDeletion, getRootParentByProperty, getRowsInMapExtent, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleLayerPropertyChange, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarker, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initLayerSyncFromRootParentLayers, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, jsonRegex, layerFeatureIsQueryable, layerHasLinkDeletion, layerHasLinkWithProperty, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarker, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, removeStopFromStore, renderFeatureFromOl, roundCoordTo, roundCoordToString, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlLineString, sliceOlPolygon, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, styleListFactory, translateBearing, translateModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, zoneMtm, zoneUtm };
|
|
42052
42983
|
//# sourceMappingURL=igo2-geo.mjs.map
|