@igo2/geo 1.13.3 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/draw/draw/draw-popup.component.mjs +562 -32
- package/esm2020/lib/draw/draw/draw.component.mjs +358 -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/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/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 +3 -3
- package/esm2020/lib/search/shared/sources/index.mjs +1 -3
- package/fesm2015/igo2-geo.mjs +1320 -409
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +1272 -405
- package/fesm2020/igo2-geo.mjs.map +1 -1
- package/lib/catalog/shared/catalog.abstract.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/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/shared/sources/index.d.ts +0 -2
- 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'
|
|
@@ -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);
|
|
@@ -12520,6 +12523,9 @@ class CatalogBrowserComponent {
|
|
|
12520
12523
|
if (!layer.options.sourceOptions.optionsFromApi) {
|
|
12521
12524
|
layer.options.sourceOptions.optionsFromApi = true;
|
|
12522
12525
|
}
|
|
12526
|
+
if (this.catalog.profils?.length) {
|
|
12527
|
+
layer.options.security = { profils: this.catalog.profils };
|
|
12528
|
+
}
|
|
12523
12529
|
return this.layerService.createAsyncLayer(layer.options);
|
|
12524
12530
|
});
|
|
12525
12531
|
zip(...layers$).subscribe((oLayers) => {
|
|
@@ -15450,7 +15456,20 @@ var FontType;
|
|
|
15450
15456
|
FontType["LucidaConsole"] = "Lucida Console";
|
|
15451
15457
|
FontType["BrushScriptMT"] = "Brush Script MT";
|
|
15452
15458
|
FontType["ComicSansMS"] = "Comic Sans MS";
|
|
15453
|
-
})(FontType || (FontType = {}));
|
|
15459
|
+
})(FontType || (FontType = {}));
|
|
15460
|
+
var LabelType;
|
|
15461
|
+
(function (LabelType) {
|
|
15462
|
+
LabelType["Coordinates"] = "Coordinates";
|
|
15463
|
+
LabelType["Length"] = "Length";
|
|
15464
|
+
LabelType["Area"] = "Area";
|
|
15465
|
+
LabelType["Predefined"] = "Predefined";
|
|
15466
|
+
LabelType["Custom"] = "Custom";
|
|
15467
|
+
})(LabelType || (LabelType = {}));
|
|
15468
|
+
var CoordinatesUnit;
|
|
15469
|
+
(function (CoordinatesUnit) {
|
|
15470
|
+
CoordinatesUnit["DecimalDegree"] = "DD";
|
|
15471
|
+
CoordinatesUnit["DegreesMinutesSeconds"] = "DMS";
|
|
15472
|
+
})(CoordinatesUnit || (CoordinatesUnit = {}));
|
|
15454
15473
|
|
|
15455
15474
|
class DrawIconService {
|
|
15456
15475
|
constructor(config) {
|
|
@@ -16090,6 +16109,22 @@ function createOlTooltipDrawAtPoint(olPoint) {
|
|
|
16090
16109
|
olTooltip.setPosition(olPoint.getFlatCoordinates());
|
|
16091
16110
|
olPoint.set('_tooltip', olTooltip);
|
|
16092
16111
|
return olTooltip;
|
|
16112
|
+
}
|
|
16113
|
+
function DDtoDMS(value, unit) {
|
|
16114
|
+
const conversionMapper = new Map([
|
|
16115
|
+
[CoordinatesUnit.DecimalDegree, (val) => {
|
|
16116
|
+
if (typeof val[0] === 'number') {
|
|
16117
|
+
return roundCoordToString(val, 5);
|
|
16118
|
+
}
|
|
16119
|
+
else {
|
|
16120
|
+
const numVal = [Number(val[0]), Number(val[1])];
|
|
16121
|
+
return roundCoordToString(numVal, 5);
|
|
16122
|
+
}
|
|
16123
|
+
}],
|
|
16124
|
+
[CoordinatesUnit.DegreesMinutesSeconds, (val) => convertDDToDMS(val, 2)]
|
|
16125
|
+
]);
|
|
16126
|
+
let conversion = conversionMapper.get(unit);
|
|
16127
|
+
return conversion ? conversion(value) : undefined;
|
|
16093
16128
|
}
|
|
16094
16129
|
|
|
16095
16130
|
class DrawStyleService {
|
|
@@ -16099,7 +16134,7 @@ class DrawStyleService {
|
|
|
16099
16134
|
this.strokeColor = 'rgba(143,7,7,1)';
|
|
16100
16135
|
this.strokeWidth = 1;
|
|
16101
16136
|
this.labelsAreShown = true;
|
|
16102
|
-
this.fontSize = '
|
|
16137
|
+
this.fontSize = '15';
|
|
16103
16138
|
this.fontStyle = FontType.Arial.toString();
|
|
16104
16139
|
this.offsetX = 0;
|
|
16105
16140
|
this.offsetY = 0;
|
|
@@ -16945,8 +16980,24 @@ class DrawControl {
|
|
|
16945
16980
|
* Freehand mode observable (defaults to false)
|
|
16946
16981
|
*/
|
|
16947
16982
|
this.freehand$ = new BehaviorSubject(false);
|
|
16983
|
+
/**
|
|
16984
|
+
* Observables from predefined radius (defaults to false and undefined)
|
|
16985
|
+
*/
|
|
16986
|
+
this.ispredefinedRadius$ = new BehaviorSubject(false);
|
|
16987
|
+
this.predefinedRadius$ = new BehaviorSubject(undefined);
|
|
16988
|
+
this.radiusDrawEnd$ = new BehaviorSubject(undefined);
|
|
16948
16989
|
this.olDrawingLayer = options.drawingLayer ? options.drawingLayer : this.createOlInnerOverlayLayer();
|
|
16949
16990
|
this.olGeometryType = this.options.geometryType;
|
|
16991
|
+
this.olInteractionStyle = this.options.interactionStyle;
|
|
16992
|
+
}
|
|
16993
|
+
/**
|
|
16994
|
+
* take the value of radius
|
|
16995
|
+
*/
|
|
16996
|
+
get radiusVal() {
|
|
16997
|
+
return this.predefinedRadius$.getValue();
|
|
16998
|
+
}
|
|
16999
|
+
set radiusValData(radiusCercle) {
|
|
17000
|
+
this.predefinedRadius$.next(radiusCercle);
|
|
16950
17001
|
}
|
|
16951
17002
|
/**
|
|
16952
17003
|
* Wheter the control is active
|
|
@@ -16983,6 +17034,9 @@ class DrawControl {
|
|
|
16983
17034
|
getSource() {
|
|
16984
17035
|
return this.olDrawingLayerSource;
|
|
16985
17036
|
}
|
|
17037
|
+
setOlInteractionStyle(style) {
|
|
17038
|
+
this.olInteractionStyle = style;
|
|
17039
|
+
}
|
|
16986
17040
|
/**
|
|
16987
17041
|
* Set the current geometry type
|
|
16988
17042
|
* @param geometryType the geometry type
|
|
@@ -16990,6 +17044,12 @@ class DrawControl {
|
|
|
16990
17044
|
setGeometryType(geometryType) {
|
|
16991
17045
|
this.olGeometryType = geometryType;
|
|
16992
17046
|
}
|
|
17047
|
+
/**
|
|
17048
|
+
* Get the current geometry type
|
|
17049
|
+
*/
|
|
17050
|
+
getGeometryType() {
|
|
17051
|
+
return this.olGeometryType;
|
|
17052
|
+
}
|
|
16993
17053
|
/**
|
|
16994
17054
|
* Create a drawing source if none is defined in the options
|
|
16995
17055
|
*/
|
|
@@ -17031,21 +17091,35 @@ class DrawControl {
|
|
|
17031
17091
|
// Create Draw interaction
|
|
17032
17092
|
let olDrawInteraction;
|
|
17033
17093
|
if (!this.freehand$.getValue()) {
|
|
17034
|
-
|
|
17035
|
-
|
|
17036
|
-
|
|
17037
|
-
|
|
17038
|
-
|
|
17039
|
-
|
|
17040
|
-
|
|
17041
|
-
|
|
17042
|
-
|
|
17094
|
+
if (!this.ispredefinedRadius$.getValue()) {
|
|
17095
|
+
olDrawInteraction = new OlDraw({
|
|
17096
|
+
type: this.olGeometryType,
|
|
17097
|
+
source: this.getSource(),
|
|
17098
|
+
stopClick: true,
|
|
17099
|
+
style: this.olInteractionStyle,
|
|
17100
|
+
maxPoints: this.options.maxPoints,
|
|
17101
|
+
freehand: false,
|
|
17102
|
+
freehandCondition: () => false
|
|
17103
|
+
});
|
|
17104
|
+
}
|
|
17105
|
+
else {
|
|
17106
|
+
olDrawInteraction = new OlDraw({
|
|
17107
|
+
type: 'Point',
|
|
17108
|
+
source: this.getSource(),
|
|
17109
|
+
stopClick: true,
|
|
17110
|
+
style: this.olInteractionStyle,
|
|
17111
|
+
maxPoints: this.options.maxPoints,
|
|
17112
|
+
freehand: false,
|
|
17113
|
+
freehandCondition: () => false
|
|
17114
|
+
});
|
|
17115
|
+
}
|
|
17043
17116
|
}
|
|
17044
17117
|
else {
|
|
17045
17118
|
if (this.olGeometryType === 'Point') {
|
|
17046
17119
|
olDrawInteraction = new OlDraw({
|
|
17047
17120
|
type: 'Circle',
|
|
17048
17121
|
source: this.getSource(),
|
|
17122
|
+
style: typeof this.olInteractionStyle === 'function' ? undefined : this.olInteractionStyle,
|
|
17049
17123
|
maxPoints: this.options.maxPoints,
|
|
17050
17124
|
freehand: true
|
|
17051
17125
|
});
|
|
@@ -17054,6 +17128,7 @@ class DrawControl {
|
|
|
17054
17128
|
olDrawInteraction = new OlDraw({
|
|
17055
17129
|
type: this.olGeometryType,
|
|
17056
17130
|
source: this.getSource(),
|
|
17131
|
+
style: this.olInteractionStyle,
|
|
17057
17132
|
maxPoints: this.options.maxPoints,
|
|
17058
17133
|
freehand: true
|
|
17059
17134
|
});
|
|
@@ -17116,6 +17191,9 @@ class DrawControl {
|
|
|
17116
17191
|
* @param event Draw event (drawend)
|
|
17117
17192
|
*/
|
|
17118
17193
|
onDrawEnd(event) {
|
|
17194
|
+
if (event.feature.getGeometry().getType() === 'Point') {
|
|
17195
|
+
this.radiusDrawEnd$.next(this.predefinedRadius$.getValue());
|
|
17196
|
+
}
|
|
17119
17197
|
this.unsubscribeKeyDown();
|
|
17120
17198
|
unByKey(this.onDrawKey);
|
|
17121
17199
|
const olGeometry = event.feature.getGeometry();
|
|
@@ -17173,57 +17251,570 @@ class DrawControl {
|
|
|
17173
17251
|
}
|
|
17174
17252
|
}
|
|
17175
17253
|
|
|
17254
|
+
function DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
17255
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
17256
|
+
i0.ɵɵelementStart(0, "mat-radio-button", 11);
|
|
17257
|
+
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)); });
|
|
17258
|
+
i0.ɵɵtext(1);
|
|
17259
|
+
i0.ɵɵelementEnd();
|
|
17260
|
+
} if (rf & 2) {
|
|
17261
|
+
const option_r8 = ctx.$implicit;
|
|
17262
|
+
const ctx_r7 = i0.ɵɵnextContext(3);
|
|
17263
|
+
i0.ɵɵproperty("value", option_r8.value)("disabled", ctx_r7.optionAvailable(option_r8.value))("checked", option_r8.checked);
|
|
17264
|
+
i0.ɵɵadvance(1);
|
|
17265
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r7.getProperLengthLabel(option_r8.value), " ");
|
|
17266
|
+
} }
|
|
17267
|
+
function DrawPopupComponent_div_12_mat_radio_group_5_Template(rf, ctx) { if (rf & 1) {
|
|
17268
|
+
i0.ɵɵelementStart(0, "mat-radio-group", 5);
|
|
17269
|
+
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template, 2, 4, "mat-radio-button", 10);
|
|
17270
|
+
i0.ɵɵelementEnd();
|
|
17271
|
+
} if (rf & 2) {
|
|
17272
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
17273
|
+
i0.ɵɵadvance(1);
|
|
17274
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.arrayBuiltInType);
|
|
17275
|
+
} }
|
|
17276
|
+
function DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template(rf, ctx) { if (rf & 1) {
|
|
17277
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
17278
|
+
i0.ɵɵelementStart(0, "mat-checkbox", 13);
|
|
17279
|
+
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)); });
|
|
17280
|
+
i0.ɵɵtext(1);
|
|
17281
|
+
i0.ɵɵelementEnd();
|
|
17282
|
+
} if (rf & 2) {
|
|
17283
|
+
const option_r12 = ctx.$implicit;
|
|
17284
|
+
const ctx_r11 = i0.ɵɵnextContext(3);
|
|
17285
|
+
i0.ɵɵproperty("value", option_r12.value)("disabled", ctx_r11.optionAvailable(option_r12.value))("checked", option_r12.checked);
|
|
17286
|
+
i0.ɵɵadvance(1);
|
|
17287
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r11.getProperLengthLabel(option_r12.value), " ");
|
|
17288
|
+
} }
|
|
17289
|
+
function DrawPopupComponent_div_12_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
17290
|
+
i0.ɵɵelementContainerStart(0, 5);
|
|
17291
|
+
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template, 2, 4, "mat-checkbox", 12);
|
|
17292
|
+
i0.ɵɵelementContainerEnd();
|
|
17293
|
+
} if (rf & 2) {
|
|
17294
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
17295
|
+
i0.ɵɵadvance(1);
|
|
17296
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.arrayBuiltInType);
|
|
17297
|
+
} }
|
|
17298
|
+
function DrawPopupComponent_div_12_div_7_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
17299
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
17300
|
+
i0.ɵɵtext(1);
|
|
17301
|
+
i0.ɵɵelementEnd();
|
|
17302
|
+
} if (rf & 2) {
|
|
17303
|
+
const unit_r17 = ctx.$implicit;
|
|
17304
|
+
i0.ɵɵproperty("value", unit_r17);
|
|
17305
|
+
i0.ɵɵadvance(1);
|
|
17306
|
+
i0.ɵɵtextInterpolate1(" ", unit_r17, " ");
|
|
17307
|
+
} }
|
|
17308
|
+
function DrawPopupComponent_div_12_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
17309
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
17310
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
17311
|
+
i0.ɵɵelement(2, "input", 15, 16);
|
|
17312
|
+
i0.ɵɵelementEnd();
|
|
17313
|
+
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
17314
|
+
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)); });
|
|
17315
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_7_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
17316
|
+
i0.ɵɵelementEnd()()();
|
|
17317
|
+
} if (rf & 2) {
|
|
17318
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
17319
|
+
i0.ɵɵadvance(2);
|
|
17320
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r4.currentCoordinates);
|
|
17321
|
+
i0.ɵɵadvance(3);
|
|
17322
|
+
i0.ɵɵproperty("value", ctx_r4.coordinatesMeasureUnit);
|
|
17323
|
+
i0.ɵɵadvance(1);
|
|
17324
|
+
i0.ɵɵproperty("ngForOf", ctx_r4.allCoordinatesUnits);
|
|
17325
|
+
} }
|
|
17326
|
+
function DrawPopupComponent_div_12_div_8_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
17327
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
17328
|
+
i0.ɵɵtext(1);
|
|
17329
|
+
i0.ɵɵelementEnd();
|
|
17330
|
+
} if (rf & 2) {
|
|
17331
|
+
const unit_r22 = ctx.$implicit;
|
|
17332
|
+
const ctx_r21 = i0.ɵɵnextContext(3);
|
|
17333
|
+
i0.ɵɵproperty("value", unit_r22);
|
|
17334
|
+
i0.ɵɵadvance(1);
|
|
17335
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r21.getLengthUnitEnum(unit_r22), " ");
|
|
17336
|
+
} }
|
|
17337
|
+
function DrawPopupComponent_div_12_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
17338
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
17339
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
17340
|
+
i0.ɵɵelement(2, "input", 20, 16);
|
|
17341
|
+
i0.ɵɵelementEnd();
|
|
17342
|
+
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
17343
|
+
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)); });
|
|
17344
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_8_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
17345
|
+
i0.ɵɵelementEnd()()();
|
|
17346
|
+
} if (rf & 2) {
|
|
17347
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
17348
|
+
i0.ɵɵadvance(2);
|
|
17349
|
+
i0.ɵɵpropertyInterpolate("placeholder", ctx_r5.lengthLabelT);
|
|
17350
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r5.currentLength);
|
|
17351
|
+
i0.ɵɵadvance(3);
|
|
17352
|
+
i0.ɵɵproperty("value", ctx_r5.lengthMeasureUnit);
|
|
17353
|
+
i0.ɵɵadvance(1);
|
|
17354
|
+
i0.ɵɵproperty("ngForOf", ctx_r5.allLengthUnits);
|
|
17355
|
+
} }
|
|
17356
|
+
function DrawPopupComponent_div_12_div_9_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
17357
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
17358
|
+
i0.ɵɵtext(1);
|
|
17359
|
+
i0.ɵɵelementEnd();
|
|
17360
|
+
} if (rf & 2) {
|
|
17361
|
+
const unit_r27 = ctx.$implicit;
|
|
17362
|
+
const ctx_r26 = i0.ɵɵnextContext(3);
|
|
17363
|
+
i0.ɵɵproperty("value", unit_r27);
|
|
17364
|
+
i0.ɵɵadvance(1);
|
|
17365
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r26.getAreaUnitEnum(unit_r27), " ");
|
|
17366
|
+
} }
|
|
17367
|
+
function DrawPopupComponent_div_12_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
17368
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
17369
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
17370
|
+
i0.ɵɵelement(2, "input", 20, 16);
|
|
17371
|
+
i0.ɵɵpipe(4, "translate");
|
|
17372
|
+
i0.ɵɵelementEnd();
|
|
17373
|
+
i0.ɵɵelementStart(5, "mat-form-field", 17)(6, "mat-select", 18);
|
|
17374
|
+
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)); });
|
|
17375
|
+
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_9_mat_option_7_Template, 2, 2, "mat-option", 19);
|
|
17376
|
+
i0.ɵɵelementEnd()()();
|
|
17377
|
+
} if (rf & 2) {
|
|
17378
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
17379
|
+
i0.ɵɵadvance(2);
|
|
17380
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 4, "igo.geo.draw.labelType.Area"));
|
|
17381
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r6.currentArea);
|
|
17382
|
+
i0.ɵɵadvance(4);
|
|
17383
|
+
i0.ɵɵproperty("value", ctx_r6.areaMeasureUnit);
|
|
17384
|
+
i0.ɵɵadvance(1);
|
|
17385
|
+
i0.ɵɵproperty("ngForOf", ctx_r6.allAreaUnits);
|
|
17386
|
+
} }
|
|
17387
|
+
function DrawPopupComponent_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
17388
|
+
const _r31 = i0.ɵɵgetCurrentView();
|
|
17389
|
+
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
17390
|
+
i0.ɵɵtext(3);
|
|
17391
|
+
i0.ɵɵpipe(4, "translate");
|
|
17392
|
+
i0.ɵɵelementEnd();
|
|
17393
|
+
i0.ɵɵtemplate(5, DrawPopupComponent_div_12_mat_radio_group_5_Template, 2, 1, "mat-radio-group", 6);
|
|
17394
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_ng_container_6_Template, 2, 1, "ng-container", 6);
|
|
17395
|
+
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_7_Template, 7, 3, "div", 4);
|
|
17396
|
+
i0.ɵɵtemplate(8, DrawPopupComponent_div_12_div_8_Template, 7, 4, "div", 4);
|
|
17397
|
+
i0.ɵɵtemplate(9, DrawPopupComponent_div_12_div_9_Template, 8, 6, "div", 4);
|
|
17398
|
+
i0.ɵɵelementEnd();
|
|
17399
|
+
i0.ɵɵelementStart(10, "div", 7)(11, "button", 8);
|
|
17400
|
+
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()); });
|
|
17401
|
+
i0.ɵɵtext(12);
|
|
17402
|
+
i0.ɵɵpipe(13, "translate");
|
|
17403
|
+
i0.ɵɵelementEnd();
|
|
17404
|
+
i0.ɵɵelementStart(14, "button", 9);
|
|
17405
|
+
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()); });
|
|
17406
|
+
i0.ɵɵtext(15);
|
|
17407
|
+
i0.ɵɵelementEnd()()();
|
|
17408
|
+
} if (rf & 2) {
|
|
17409
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
17410
|
+
i0.ɵɵadvance(3);
|
|
17411
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 8, "igo.geo.draw.builtInInstructions"));
|
|
17412
|
+
i0.ɵɵadvance(2);
|
|
17413
|
+
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType !== "Polygon");
|
|
17414
|
+
i0.ɵɵadvance(1);
|
|
17415
|
+
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType === "Polygon");
|
|
17416
|
+
i0.ɵɵadvance(1);
|
|
17417
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Coordinates);
|
|
17418
|
+
i0.ɵɵadvance(1);
|
|
17419
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Length || ctx_r0.polygonCheck === 2);
|
|
17420
|
+
i0.ɵɵadvance(1);
|
|
17421
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Area || ctx_r0.polygonCheck === 2);
|
|
17422
|
+
i0.ɵɵadvance(3);
|
|
17423
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 10, "igo.geo.draw.cancel"), " ");
|
|
17424
|
+
i0.ɵɵadvance(3);
|
|
17425
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.noLabelButton(), " ");
|
|
17426
|
+
} }
|
|
17427
|
+
function DrawPopupComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
17428
|
+
const _r36 = i0.ɵɵgetCurrentView();
|
|
17429
|
+
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
17430
|
+
i0.ɵɵtext(3);
|
|
17431
|
+
i0.ɵɵpipe(4, "translate");
|
|
17432
|
+
i0.ɵɵelementEnd();
|
|
17433
|
+
i0.ɵɵelementStart(5, "mat-form-field", 21)(6, "input", 22, 16);
|
|
17434
|
+
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)); });
|
|
17435
|
+
i0.ɵɵpipe(8, "translate");
|
|
17436
|
+
i0.ɵɵelementEnd()()();
|
|
17437
|
+
i0.ɵɵelementStart(9, "div", 7)(10, "button", 8);
|
|
17438
|
+
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()); });
|
|
17439
|
+
i0.ɵɵtext(11);
|
|
17440
|
+
i0.ɵɵpipe(12, "translate");
|
|
17441
|
+
i0.ɵɵelementEnd();
|
|
17442
|
+
i0.ɵɵelementStart(13, "button", 9);
|
|
17443
|
+
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)); });
|
|
17444
|
+
i0.ɵɵtext(14);
|
|
17445
|
+
i0.ɵɵelementEnd()()();
|
|
17446
|
+
} if (rf & 2) {
|
|
17447
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
17448
|
+
i0.ɵɵadvance(3);
|
|
17449
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, "igo.geo.draw.dialogInstruction"));
|
|
17450
|
+
i0.ɵɵadvance(3);
|
|
17451
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(8, 7, "igo.geo.draw.dialogTitle"));
|
|
17452
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r1.currentLabel);
|
|
17453
|
+
i0.ɵɵadvance(5);
|
|
17454
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 9, "igo.geo.draw.cancel"), " ");
|
|
17455
|
+
i0.ɵɵadvance(3);
|
|
17456
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.noLabelButton(), " ");
|
|
17457
|
+
} }
|
|
17176
17458
|
class DrawPopupComponent {
|
|
17177
|
-
constructor(dialogRef, data) {
|
|
17459
|
+
constructor(languageService, dialogRef, data) {
|
|
17460
|
+
this.languageService = languageService;
|
|
17178
17461
|
this.dialogRef = dialogRef;
|
|
17179
17462
|
this.data = data;
|
|
17180
17463
|
this.confirmFlag = false;
|
|
17181
|
-
|
|
17464
|
+
this.labelFlag = LabelType.Custom;
|
|
17465
|
+
this.geometryType = GeometryType;
|
|
17466
|
+
this.labelType = LabelType;
|
|
17467
|
+
this.arrayBuiltInType = [];
|
|
17468
|
+
this.olGeometryType = undefined;
|
|
17469
|
+
this.polygonCheck = 0; // Count for polygon label types checkboxes
|
|
17470
|
+
this.currentLabel = this.data.olGeometry.get('draw');
|
|
17471
|
+
this.labelLength = this.currentLabel ? this.currentLabel.length : 0;
|
|
17472
|
+
let olGeometry;
|
|
17473
|
+
const projection = this.data.map.ol.getView().getProjection();
|
|
17474
|
+
if (this.data.olGeometry instanceof OlFeature) {
|
|
17475
|
+
if (this.data.olGeometry.get('rad')) {
|
|
17476
|
+
const longitudeLatitude = [this.data.olGeometry.get('longitude'), this.data.olGeometry.get('latitude')];
|
|
17477
|
+
this.olGeometryType = GeometryType.Circle;
|
|
17478
|
+
olGeometry = new OlCircle(longitudeLatitude, this.data.olGeometry.get('rad'));
|
|
17479
|
+
}
|
|
17480
|
+
else {
|
|
17481
|
+
this.olGeometryType = this.data.olGeometry.getGeometry().getType();
|
|
17482
|
+
olGeometry = this.data.olGeometry.get('geometry');
|
|
17483
|
+
}
|
|
17484
|
+
}
|
|
17485
|
+
else {
|
|
17486
|
+
this.olGeometryType = this.data.olGeometry.getType();
|
|
17487
|
+
olGeometry = this.data.olGeometry;
|
|
17488
|
+
}
|
|
17489
|
+
if (this.olGeometryType === GeometryType.Point || this.olGeometryType === GeometryType.Circle) {
|
|
17490
|
+
if (this.data.olGeometry instanceof OlFeature) {
|
|
17491
|
+
let longitude = this.data.olGeometry.get('longitude');
|
|
17492
|
+
let latitude = this.data.olGeometry.get('latitude');
|
|
17493
|
+
this.longlatDD = roundCoordTo([longitude, latitude], 5);
|
|
17494
|
+
this.coordinatesInDD = '(' + latitude + ', '
|
|
17495
|
+
+ longitude + ')';
|
|
17496
|
+
}
|
|
17497
|
+
else {
|
|
17498
|
+
let point4326 = transform(this.data.olGeometry.getFlatCoordinates(), projection, 'EPSG:4326');
|
|
17499
|
+
this.longlatDD = roundCoordTo([point4326[0], point4326[1]], 5);
|
|
17500
|
+
this.coordinatesInDD =
|
|
17501
|
+
'(' + this.longlatDD[1] + ', ' + this.longlatDD[0] + ')';
|
|
17502
|
+
}
|
|
17503
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
17504
|
+
}
|
|
17505
|
+
if (this.olGeometryType === GeometryType.LineString) {
|
|
17506
|
+
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
17507
|
+
this.currentLength = this.lengthInMeters;
|
|
17508
|
+
}
|
|
17509
|
+
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
17510
|
+
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
17511
|
+
this.currentLength = this.lengthInMeters;
|
|
17512
|
+
this.areaInMetersSquare = measureOlGeometryArea(olGeometry, projection.getCode()).toFixed(2);
|
|
17513
|
+
this.currentArea = this.areaInMetersSquare;
|
|
17514
|
+
}
|
|
17515
|
+
else if (this.olGeometryType === GeometryType.Circle) {
|
|
17516
|
+
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
17517
|
+
const radius = this.getRadius(circularPolygon);
|
|
17518
|
+
this.lengthInMeters = radius.toFixed(2);
|
|
17519
|
+
this.currentLength = this.lengthInMeters;
|
|
17520
|
+
this.areaInMetersSquare = measureOlGeometryArea(circularPolygon, projection.getCode()).toFixed(2);
|
|
17521
|
+
this.currentArea = this.areaInMetersSquare;
|
|
17522
|
+
}
|
|
17523
|
+
if (data.olGeometry.get('labelType') === LabelType.Coordinates) {
|
|
17524
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17525
|
+
this.onLabelTypeChange(LabelType.Coordinates, true);
|
|
17526
|
+
this.coordinatesMeasureUnit = data.olGeometry.get('measureUnit');
|
|
17527
|
+
}
|
|
17528
|
+
else if (data.olGeometry.get('labelType') === LabelType.Length) {
|
|
17529
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17530
|
+
this.onLabelTypeChange(LabelType.Length, true);
|
|
17531
|
+
this.lengthMeasureUnit = data.olGeometry.get('measureUnit');
|
|
17532
|
+
}
|
|
17533
|
+
else if (data.olGeometry.get('labelType') === LabelType.Area) {
|
|
17534
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17535
|
+
this.onLabelTypeChange(LabelType.Area, true);
|
|
17536
|
+
this.areaMeasureUnit = data.olGeometry.get('measureUnit');
|
|
17537
|
+
}
|
|
17538
|
+
else if (data.olGeometry.get('labelType')?.length === 2) {
|
|
17539
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
17540
|
+
this.onLabelTypeChange(LabelType.Length, true);
|
|
17541
|
+
this.onLabelTypeChange(LabelType.Area, true);
|
|
17542
|
+
this.lengthMeasureUnit = data.olGeometry.get('measureUnit')[0];
|
|
17543
|
+
this.areaMeasureUnit = data.olGeometry.get('measureUnit')[1];
|
|
17544
|
+
}
|
|
17545
|
+
this.buildArrayType();
|
|
17546
|
+
}
|
|
17547
|
+
/**
|
|
17548
|
+
* HTML Interactions
|
|
17549
|
+
*/
|
|
17182
17550
|
cancelDrawing() {
|
|
17183
17551
|
this.dialogRef.close();
|
|
17184
17552
|
}
|
|
17185
|
-
confirm(
|
|
17553
|
+
confirm(input) {
|
|
17186
17554
|
this.confirmFlag = true;
|
|
17187
|
-
this.
|
|
17555
|
+
if (this.labelFlag === LabelType.Predefined) {
|
|
17556
|
+
this.dialogRef.close();
|
|
17557
|
+
}
|
|
17558
|
+
else if (this.labelFlag === LabelType.Custom) {
|
|
17559
|
+
this.dialogRef.close({
|
|
17560
|
+
label: input
|
|
17561
|
+
});
|
|
17562
|
+
}
|
|
17563
|
+
else if (this.labelFlag === LabelType.Coordinates) {
|
|
17564
|
+
this.dialogRef.close({
|
|
17565
|
+
label: this.currentCoordinates,
|
|
17566
|
+
measureUnit: this.coordinatesMeasureUnit
|
|
17567
|
+
});
|
|
17568
|
+
}
|
|
17569
|
+
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
17570
|
+
if (this.polygonCheck === 2) {
|
|
17571
|
+
this.labelFlag = [LabelType.Length, LabelType.Area];
|
|
17572
|
+
this.dialogRef.close({
|
|
17573
|
+
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[MeasureLengthUnit.Meters] + '\n'
|
|
17574
|
+
+ this.languageService.translate.instant('igo.geo.draw.labelType.A') + this.currentArea + ' ' +
|
|
17575
|
+
MeasureAreaUnitAbbreviation[MeasureAreaUnit.SquareMeters], measureUnit: [this.lengthMeasureUnit, this.areaMeasureUnit]
|
|
17576
|
+
});
|
|
17577
|
+
}
|
|
17578
|
+
else {
|
|
17579
|
+
this.labelFlag === LabelType.Length ?
|
|
17580
|
+
this.dialogRef.close({
|
|
17581
|
+
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
17582
|
+
measureUnit: this.lengthMeasureUnit
|
|
17583
|
+
}) :
|
|
17584
|
+
this.dialogRef.close({
|
|
17585
|
+
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
17586
|
+
measureUnit: this.areaMeasureUnit
|
|
17587
|
+
});
|
|
17588
|
+
}
|
|
17589
|
+
}
|
|
17590
|
+
else if (this.labelFlag === LabelType.Length) {
|
|
17591
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
17592
|
+
this.dialogRef.close({
|
|
17593
|
+
label: 'R: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
17594
|
+
measureUnit: this.lengthMeasureUnit
|
|
17595
|
+
});
|
|
17596
|
+
}
|
|
17597
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
17598
|
+
this.dialogRef.close({
|
|
17599
|
+
label: this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
17600
|
+
measureUnit: this.lengthMeasureUnit
|
|
17601
|
+
});
|
|
17602
|
+
}
|
|
17603
|
+
}
|
|
17604
|
+
else if (this.labelFlag === LabelType.Area) {
|
|
17605
|
+
this.dialogRef.close({
|
|
17606
|
+
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
17607
|
+
measureUnit: this.areaMeasureUnit
|
|
17608
|
+
});
|
|
17609
|
+
}
|
|
17610
|
+
}
|
|
17611
|
+
onLabelTypeChange(labelType, checked) {
|
|
17612
|
+
if (labelType !== LabelType.Predefined &&
|
|
17613
|
+
labelType !== LabelType.Custom &&
|
|
17614
|
+
this.olGeometryType === GeometryType.Polygon) {
|
|
17615
|
+
this.arrayBuiltInType.find(type => type.value === labelType) ?
|
|
17616
|
+
this.arrayBuiltInType.find(type => type.value === labelType).checked = checked : this.labelFlag = undefined;
|
|
17617
|
+
checked ? this.labelFlag = labelType : this.labelFlag = this.arrayBuiltInType.find(type => type.checked)?.value;
|
|
17618
|
+
}
|
|
17619
|
+
else {
|
|
17620
|
+
this.labelFlag = labelType;
|
|
17621
|
+
}
|
|
17622
|
+
if (labelType === LabelType.Predefined) {
|
|
17623
|
+
if (this.olGeometryType === GeometryType.Point) {
|
|
17624
|
+
this.labelFlag = LabelType.Coordinates;
|
|
17625
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
17626
|
+
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
17627
|
+
}
|
|
17628
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
17629
|
+
this.labelFlag = LabelType.Length;
|
|
17630
|
+
this.currentLength = this.lengthInMeters;
|
|
17631
|
+
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
17632
|
+
}
|
|
17633
|
+
}
|
|
17634
|
+
else if (labelType === LabelType.Area) {
|
|
17635
|
+
this.currentArea = this.areaInMetersSquare;
|
|
17636
|
+
this.areaMeasureUnit = MeasureAreaUnit.SquareMeters;
|
|
17637
|
+
}
|
|
17638
|
+
else if (labelType === LabelType.Length) {
|
|
17639
|
+
this.currentLength = this.lengthInMeters;
|
|
17640
|
+
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
17641
|
+
}
|
|
17642
|
+
else if (this.labelFlag === LabelType.Coordinates) {
|
|
17643
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
17644
|
+
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
17645
|
+
}
|
|
17646
|
+
const labeltypes = [this.labelType.Length, this.labelType.Area];
|
|
17647
|
+
if (this.olGeometryType === GeometryType.Polygon &&
|
|
17648
|
+
labeltypes.includes(labelType)) {
|
|
17649
|
+
checked ? this.polygonCheck += 1 : this.polygonCheck -= 1;
|
|
17650
|
+
;
|
|
17651
|
+
}
|
|
17652
|
+
else {
|
|
17653
|
+
this.polygonCheck = 0;
|
|
17654
|
+
}
|
|
17655
|
+
}
|
|
17656
|
+
onChangeLengthUnit(lengthUnit) {
|
|
17657
|
+
this.lengthMeasureUnit = lengthUnit;
|
|
17658
|
+
this.currentLength = metersToUnit(Number(this.lengthInMeters), lengthUnit).toFixed(2);
|
|
17659
|
+
}
|
|
17660
|
+
onChangeAreaUnit(areaUnit) {
|
|
17661
|
+
this.areaMeasureUnit = areaUnit;
|
|
17662
|
+
this.currentArea = squareMetersToUnit(Number(this.areaInMetersSquare), areaUnit).toFixed(2);
|
|
17663
|
+
}
|
|
17664
|
+
onChangeCoordinateUnit(coordinatesUnit) {
|
|
17665
|
+
this.coordinatesMeasureUnit = coordinatesUnit;
|
|
17666
|
+
let coordinates = DDtoDMS(this.longlatDD, coordinatesUnit);
|
|
17667
|
+
this.currentCoordinates = '(' + coordinates[1] + ', ' + coordinates[0] + ')';
|
|
17668
|
+
}
|
|
17669
|
+
buildArrayType() {
|
|
17670
|
+
for (const labelType of Object.values(LabelType)) {
|
|
17671
|
+
if (labelType !== LabelType.Custom && labelType !== LabelType.Predefined) {
|
|
17672
|
+
this.arrayBuiltInType.push({
|
|
17673
|
+
value: labelType,
|
|
17674
|
+
checked: this.selectOptions(labelType) ||
|
|
17675
|
+
this.labelFlag === labelType ||
|
|
17676
|
+
(this.polygonCheck === 2 && labelType !== LabelType.Coordinates)
|
|
17677
|
+
});
|
|
17678
|
+
}
|
|
17679
|
+
}
|
|
17680
|
+
}
|
|
17681
|
+
noLabelButton() {
|
|
17682
|
+
if (this.labelFlag === LabelType.Predefined || (this.labelFlag === LabelType.Custom && this.labelLength === 0)) {
|
|
17683
|
+
return this.languageService.translate.instant('igo.geo.draw.noLabel');
|
|
17684
|
+
}
|
|
17685
|
+
return 'OK';
|
|
17686
|
+
}
|
|
17687
|
+
get customOrPredefined() {
|
|
17688
|
+
if (this.labelFlag === LabelType.Custom) {
|
|
17689
|
+
return LabelType.Custom;
|
|
17690
|
+
}
|
|
17691
|
+
return LabelType.Predefined;
|
|
17692
|
+
}
|
|
17693
|
+
optionAvailable(currentOption) {
|
|
17694
|
+
switch (this.olGeometryType) {
|
|
17695
|
+
case GeometryType.Point:
|
|
17696
|
+
if (currentOption === LabelType.Coordinates) {
|
|
17697
|
+
return false;
|
|
17698
|
+
}
|
|
17699
|
+
return true;
|
|
17700
|
+
case GeometryType.LineString:
|
|
17701
|
+
if (currentOption === LabelType.Length) {
|
|
17702
|
+
return false;
|
|
17703
|
+
}
|
|
17704
|
+
return true;
|
|
17705
|
+
case GeometryType.Polygon:
|
|
17706
|
+
if (currentOption === LabelType.Coordinates) {
|
|
17707
|
+
return true;
|
|
17708
|
+
}
|
|
17709
|
+
return false;
|
|
17710
|
+
default:
|
|
17711
|
+
return false;
|
|
17712
|
+
}
|
|
17713
|
+
}
|
|
17714
|
+
get allLengthUnits() {
|
|
17715
|
+
return Object.values(MeasureLengthUnit);
|
|
17716
|
+
}
|
|
17717
|
+
getLengthUnitEnum(lengthUnit) {
|
|
17718
|
+
return MeasureLengthUnitAbbreviation[lengthUnit];
|
|
17719
|
+
}
|
|
17720
|
+
get allAreaUnits() {
|
|
17721
|
+
return Object.values(MeasureAreaUnit);
|
|
17722
|
+
}
|
|
17723
|
+
get allCoordinatesUnits() {
|
|
17724
|
+
return Object.values(CoordinatesUnit);
|
|
17725
|
+
}
|
|
17726
|
+
getAreaUnitEnum(areaUnit) {
|
|
17727
|
+
return MeasureAreaUnitAbbreviation[areaUnit];
|
|
17728
|
+
}
|
|
17729
|
+
getRadius(olGeometry) {
|
|
17730
|
+
const length = getLength(olGeometry);
|
|
17731
|
+
return Number(length / (2 * Math.PI));
|
|
17732
|
+
}
|
|
17733
|
+
get lengthLabelT() {
|
|
17734
|
+
if (this.olGeometryType === GeometryType.Polygon) {
|
|
17735
|
+
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
17736
|
+
}
|
|
17737
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
17738
|
+
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
17739
|
+
}
|
|
17740
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
17741
|
+
}
|
|
17742
|
+
getLabelLength(event) {
|
|
17743
|
+
this.labelLength = event.length;
|
|
17744
|
+
}
|
|
17745
|
+
selectOptions(option) {
|
|
17746
|
+
if (this.olGeometryType === GeometryType.Point) {
|
|
17747
|
+
return option === LabelType.Coordinates;
|
|
17748
|
+
}
|
|
17749
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
17750
|
+
return option === LabelType.Length;
|
|
17751
|
+
}
|
|
17752
|
+
}
|
|
17753
|
+
getProperLengthLabel(option) {
|
|
17754
|
+
if (option === LabelType.Length) {
|
|
17755
|
+
if (this.olGeometryType === GeometryType.Polygon) {
|
|
17756
|
+
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
17757
|
+
}
|
|
17758
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
17759
|
+
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
17760
|
+
}
|
|
17761
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
17762
|
+
}
|
|
17763
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.' + option);
|
|
17188
17764
|
}
|
|
17189
17765
|
}
|
|
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);
|
|
17766
|
+
DrawPopupComponent.ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i2$1.LanguageService), i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
|
|
17767
|
+
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) {
|
|
17768
|
+
i0.ɵɵelementStart(0, "div")(1, "h2", 0);
|
|
17194
17769
|
i0.ɵɵtext(2);
|
|
17195
17770
|
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
17771
|
i0.ɵɵelementEnd()();
|
|
17201
|
-
i0.ɵɵelementStart(
|
|
17202
|
-
i0.ɵɵlistener("
|
|
17772
|
+
i0.ɵɵelementStart(4, "div", 1)(5, "mat-button-toggle-group", 2);
|
|
17773
|
+
i0.ɵɵlistener("change", function DrawPopupComponent_Template_mat_button_toggle_group_change_5_listener($event) { return ctx.onLabelTypeChange($event.value); });
|
|
17774
|
+
i0.ɵɵelementStart(6, "mat-button-toggle", 3);
|
|
17775
|
+
i0.ɵɵtext(7);
|
|
17776
|
+
i0.ɵɵpipe(8, "translate");
|
|
17777
|
+
i0.ɵɵelementEnd();
|
|
17778
|
+
i0.ɵɵelementStart(9, "mat-button-toggle", 3);
|
|
17203
17779
|
i0.ɵɵtext(10);
|
|
17204
17780
|
i0.ɵɵpipe(11, "translate");
|
|
17205
|
-
i0.ɵɵelementEnd();
|
|
17206
|
-
i0.ɵɵ
|
|
17207
|
-
i0.ɵɵ
|
|
17208
|
-
i0.ɵɵtext(13, "OK ");
|
|
17209
|
-
i0.ɵɵelementEnd()();
|
|
17781
|
+
i0.ɵɵelementEnd()()();
|
|
17782
|
+
i0.ɵɵtemplate(12, DrawPopupComponent_div_12_Template, 16, 12, "div", 4);
|
|
17783
|
+
i0.ɵɵtemplate(13, DrawPopupComponent_div_13_Template, 15, 11, "div", 4);
|
|
17210
17784
|
} if (rf & 2) {
|
|
17211
17785
|
i0.ɵɵadvance(2);
|
|
17212
|
-
i0.ɵɵ
|
|
17786
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 8, "igo.geo.draw.popupTitle"), " ");
|
|
17213
17787
|
i0.ɵɵadvance(3);
|
|
17214
|
-
i0.ɵɵ
|
|
17215
|
-
i0.ɵɵ
|
|
17216
|
-
i0.ɵɵ
|
|
17217
|
-
i0.ɵɵ
|
|
17218
|
-
|
|
17788
|
+
i0.ɵɵproperty("value", ctx.customOrPredefined);
|
|
17789
|
+
i0.ɵɵadvance(1);
|
|
17790
|
+
i0.ɵɵproperty("value", ctx.labelType.Custom);
|
|
17791
|
+
i0.ɵɵadvance(1);
|
|
17792
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 10, "igo.geo.draw.labelType.custom"), " ");
|
|
17793
|
+
i0.ɵɵadvance(2);
|
|
17794
|
+
i0.ɵɵproperty("value", ctx.labelType.Predefined);
|
|
17795
|
+
i0.ɵɵadvance(1);
|
|
17796
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 12, "igo.geo.draw.labelType.predefined"), " ");
|
|
17797
|
+
i0.ɵɵadvance(2);
|
|
17798
|
+
i0.ɵɵproperty("ngIf", ctx.labelFlag !== ctx.labelType.Custom);
|
|
17799
|
+
i0.ɵɵadvance(1);
|
|
17800
|
+
i0.ɵɵproperty("ngIf", ctx.labelFlag === ctx.labelType.Custom);
|
|
17801
|
+
} }, 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
17802
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawPopupComponent, [{
|
|
17220
17803
|
type: Component,
|
|
17221
|
-
args: [{ selector: 'igo-draw-popup-component', template: "<div mat-dialog-
|
|
17222
|
-
}], function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
17804
|
+
args: [{ selector: 'igo-draw-popup-component', template: "<div>\r\n <h2 mat-dialog-title>\r\n {{ 'igo.geo.draw.popupTitle' | translate }}\r\n </h2>\r\n</div>\r\n\r\n\r\n<div class=\"geometry-type-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\" [value]=\"customOrPredefined\">\r\n <mat-button-toggle [value]=\"labelType.Custom\" >\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div *ngIf=\"labelFlag !== labelType.Custom\">\r\n <div>\r\n <p class=\"mat-typography\">{{ 'igo.geo.draw.builtInInstructions' | translate }}</p>\r\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\" class=\"mat-typography\">\r\n <mat-radio-button *ngFor=\"let option of arrayBuiltInType\" [value]=\"option.value\" [disabled]=\"optionAvailable(option.value)\" \r\n (change)=\"onLabelTypeChange($event.value)\" [checked]=\"option.checked\">\r\n {{getProperLengthLabel(option.value)}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <ng-container class=\"mat-typography\" *ngIf=\"olGeometryType === 'Polygon'\">\r\n <mat-checkbox\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n class=\"mat-typography\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\r\n [checked]=\"option.checked\">\r\n {{getProperLengthLabel(option.value)}}\r\n </mat-checkbox>\r\n </ng-container>\r\n <div *ngIf=\"labelFlag === labelType.Coordinates\">\r\n <mat-form-field class=\"readOnly-Input\">\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"(Latitude, Longitude)\"\r\n value=\"{{currentCoordinates}}\" readonly>\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select [value]=\"coordinatesMeasureUnit\" (selectionChange)=\"onChangeCoordinateUnit($event.value)\">\r\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\r\n {{unit}}\r\n </mat-option>\r\n </mat-select> \r\n </mat-form-field>\r\n </div>\r\n <div *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\">\r\n <mat-form-field class=\"readOnly-Input\">\r\n <input\r\n #input\r\n matInput\r\n placeholder={{lengthLabelT}}\r\n value=\"{{currentLength}}\" readonly>\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select [value]=\"lengthMeasureUnit\" (selectionChange)=\"onChangeLengthUnit($event.value)\">\r\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\r\n {{getLengthUnitEnum(unit)}}\r\n </mat-option>\r\n </mat-select> \r\n </mat-form-field>\r\n </div>\r\n <div *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\">\r\n <mat-form-field class=\"readOnly-Input\">\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\r\n value=\"{{currentArea}}\" readonly>\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select [value]=\"areaMeasureUnit\" (selectionChange)=\"onChangeAreaUnit($event.value)\">\r\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\r\n {{getAreaUnitEnum(unit)}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\" >\r\n {{'igo.geo.draw.cancel' | translate}}\r\n </button>\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n (click)=\"confirm()\"> \r\n {{noLabelButton()}} \r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"labelFlag === labelType.Custom\">\r\n <div>\r\n <p class=\"mat-typography\">{{ 'igo.geo.draw.dialogInstruction' | translate }}</p>\r\n <mat-form-field class=\"input\">\r\n <input\r\n #input\r\n matInput\r\n (select)=\"true\"\r\n (input)=\"getLabelLength($event.target.value)\"\r\n placeholder=\"{{'igo.geo.draw.dialogTitle' | translate}}\"\r\n value=\"{{ currentLabel }}\"\r\n cdkFocusInitial/>\r\n </mat-form-field>\r\n </div>\r\n \r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\" >\r\n {{'igo.geo.draw.cancel' | translate}}\r\n </button>\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n (click)=\"confirm(input.value)\">\r\n {{noLabelButton()}}\r\n </button>\r\n </div>\r\n</div>\r\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"] }]
|
|
17805
|
+
}], function () { return [{ type: i2$1.LanguageService }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
17223
17806
|
type: Inject,
|
|
17224
17807
|
args: [MAT_DIALOG_DATA]
|
|
17225
17808
|
}] }]; }, { confirmFlag: [{
|
|
17226
17809
|
type: Input
|
|
17810
|
+
}], labelFlag: [{
|
|
17811
|
+
type: Input
|
|
17812
|
+
}], coordinatesMeasureUnit: [{
|
|
17813
|
+
type: Input
|
|
17814
|
+
}], lengthMeasureUnit: [{
|
|
17815
|
+
type: Input
|
|
17816
|
+
}], areaMeasureUnit: [{
|
|
17817
|
+
type: Input
|
|
17227
17818
|
}] }); })();
|
|
17228
17819
|
|
|
17229
17820
|
class DrawShorcutsComponent {
|
|
@@ -17317,107 +17908,151 @@ DrawLayerPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dra
|
|
|
17317
17908
|
}] }); })();
|
|
17318
17909
|
|
|
17319
17910
|
const _c0$c = ["selectedLayer"];
|
|
17320
|
-
function
|
|
17911
|
+
function DrawComponent_mat_slide_toggle_22_Template(rf, ctx) { if (rf & 1) {
|
|
17912
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
17913
|
+
i0.ɵɵelementStart(0, "mat-slide-toggle", 5);
|
|
17914
|
+
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)); });
|
|
17915
|
+
i0.ɵɵtext(1);
|
|
17916
|
+
i0.ɵɵpipe(2, "translate");
|
|
17917
|
+
i0.ɵɵelementEnd();
|
|
17918
|
+
} if (rf & 2) {
|
|
17919
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
17920
|
+
i0.ɵɵproperty("checked", ctx_r0.freehandMode)("labelPosition", "before");
|
|
17921
|
+
i0.ɵɵadvance(1);
|
|
17922
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, "igo.geo.draw.freehandMode"), " ");
|
|
17923
|
+
} }
|
|
17924
|
+
function DrawComponent_div_23_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
17321
17925
|
i0.ɵɵelementStart(0, "mat-option", 2);
|
|
17322
17926
|
i0.ɵɵtext(1);
|
|
17927
|
+
i0.ɵɵpipe(2, "translate");
|
|
17323
17928
|
i0.ɵɵelementEnd();
|
|
17324
17929
|
} if (rf & 2) {
|
|
17325
|
-
const
|
|
17326
|
-
i0.ɵɵproperty("value",
|
|
17930
|
+
const measureUnit_r12 = ctx.$implicit;
|
|
17931
|
+
i0.ɵɵproperty("value", measureUnit_r12);
|
|
17327
17932
|
i0.ɵɵadvance(1);
|
|
17328
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
17933
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r12), " ");
|
|
17329
17934
|
} }
|
|
17330
|
-
function
|
|
17331
|
-
const
|
|
17332
|
-
i0.ɵɵelementStart(0, "
|
|
17333
|
-
i0.ɵɵ
|
|
17935
|
+
function DrawComponent_div_23_Template(rf, ctx) { if (rf & 1) {
|
|
17936
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
17937
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "form", 23)(2, "mat-form-field", 24);
|
|
17938
|
+
i0.ɵɵelement(3, "input", 25);
|
|
17939
|
+
i0.ɵɵpipe(4, "translate");
|
|
17940
|
+
i0.ɵɵelementEnd()();
|
|
17941
|
+
i0.ɵɵelementStart(5, "mat-form-field", 26)(6, "mat-select", 9);
|
|
17942
|
+
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)); });
|
|
17943
|
+
i0.ɵɵtemplate(7, DrawComponent_div_23_mat_option_7_Template, 3, 4, "mat-option", 11);
|
|
17944
|
+
i0.ɵɵelementEnd()()();
|
|
17945
|
+
} if (rf & 2) {
|
|
17946
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
17947
|
+
i0.ɵɵadvance(3);
|
|
17948
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 5, "igo.geo.spatialFilter.radius"));
|
|
17949
|
+
i0.ɵɵproperty("formControl", ctx_r1.radiusFormControl)("readonly", ctx_r1.freehandMode);
|
|
17950
|
+
i0.ɵɵadvance(3);
|
|
17951
|
+
i0.ɵɵproperty("value", ctx_r1.measureUnit);
|
|
17952
|
+
i0.ɵɵadvance(1);
|
|
17953
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.measureUnits);
|
|
17954
|
+
} }
|
|
17955
|
+
function DrawComponent_mat_option_32_Template(rf, ctx) { if (rf & 1) {
|
|
17956
|
+
i0.ɵɵelementStart(0, "mat-option", 2);
|
|
17957
|
+
i0.ɵɵtext(1);
|
|
17958
|
+
i0.ɵɵelementEnd();
|
|
17959
|
+
} if (rf & 2) {
|
|
17960
|
+
const layer_r15 = ctx.$implicit;
|
|
17961
|
+
i0.ɵɵproperty("value", layer_r15);
|
|
17962
|
+
i0.ɵɵadvance(1);
|
|
17963
|
+
i0.ɵɵtextInterpolate1(" ", layer_r15.title, " ");
|
|
17964
|
+
} }
|
|
17965
|
+
function DrawComponent_button_36_Template(rf, ctx) { if (rf & 1) {
|
|
17966
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
17967
|
+
i0.ɵɵelementStart(0, "button", 27);
|
|
17968
|
+
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
17969
|
i0.ɵɵpipe(1, "translate");
|
|
17335
17970
|
i0.ɵɵpipe(2, "translate");
|
|
17336
|
-
i0.ɵɵelement(3, "mat-icon",
|
|
17971
|
+
i0.ɵɵelement(3, "mat-icon", 28);
|
|
17337
17972
|
i0.ɵɵelementEnd();
|
|
17338
17973
|
} if (rf & 2) {
|
|
17339
|
-
const
|
|
17340
|
-
i0.ɵɵproperty("color",
|
|
17974
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
17975
|
+
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
17976
|
i0.ɵɵadvance(3);
|
|
17342
|
-
i0.ɵɵproperty("svgIcon",
|
|
17977
|
+
i0.ɵɵproperty("svgIcon", ctx_r4.activeDrawingLayer.visible ? "eye" : "eye-off");
|
|
17343
17978
|
} }
|
|
17344
|
-
function
|
|
17345
|
-
const
|
|
17346
|
-
i0.ɵɵelementStart(0, "button",
|
|
17347
|
-
i0.ɵɵlistener("click", function
|
|
17979
|
+
function DrawComponent_button_39_Template(rf, ctx) { if (rf & 1) {
|
|
17980
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
17981
|
+
i0.ɵɵelementStart(0, "button", 29);
|
|
17982
|
+
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
17983
|
i0.ɵɵpipe(1, "translate");
|
|
17349
17984
|
i0.ɵɵpipe(2, "async");
|
|
17350
|
-
i0.ɵɵelement(3, "mat-icon",
|
|
17985
|
+
i0.ɵɵelement(3, "mat-icon", 30);
|
|
17351
17986
|
i0.ɵɵelementEnd();
|
|
17352
17987
|
} if (rf & 2) {
|
|
17353
|
-
const
|
|
17354
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4,
|
|
17988
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
17989
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, "igo.geo.draw.delete"))("disabled", i0.ɵɵpipeBind1(2, 4, ctx_r5.selectedFeatures$).length === 0);
|
|
17355
17990
|
} }
|
|
17356
|
-
function
|
|
17357
|
-
i0.ɵɵelementStart(0, "div",
|
|
17358
|
-
i0.ɵɵelement(1, "img",
|
|
17991
|
+
function DrawComponent_mat_form_field_44_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
17992
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
17993
|
+
i0.ɵɵelement(1, "img", 35);
|
|
17359
17994
|
i0.ɵɵelementEnd();
|
|
17360
17995
|
} if (rf & 2) {
|
|
17361
|
-
const
|
|
17996
|
+
const ctx_r20 = i0.ɵɵnextContext(2);
|
|
17362
17997
|
i0.ɵɵadvance(1);
|
|
17363
|
-
i0.ɵɵpropertyInterpolate("src",
|
|
17998
|
+
i0.ɵɵpropertyInterpolate("src", ctx_r20.icon, i0.ɵɵsanitizeUrl);
|
|
17364
17999
|
} }
|
|
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",
|
|
18000
|
+
function DrawComponent_mat_form_field_44_mat_option_10_Template(rf, ctx) { if (rf & 1) {
|
|
18001
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
18002
|
+
i0.ɵɵelementStart(0, "mat-option", 36);
|
|
18003
|
+
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)); });
|
|
18004
|
+
i0.ɵɵelementStart(1, "div", 34);
|
|
18005
|
+
i0.ɵɵelement(2, "img", 35);
|
|
17371
18006
|
i0.ɵɵelementEnd()();
|
|
17372
18007
|
} if (rf & 2) {
|
|
17373
|
-
const
|
|
17374
|
-
i0.ɵɵproperty("value",
|
|
18008
|
+
const icon_html_r22 = ctx.$implicit;
|
|
18009
|
+
i0.ɵɵproperty("value", icon_html_r22);
|
|
17375
18010
|
i0.ɵɵadvance(2);
|
|
17376
|
-
i0.ɵɵpropertyInterpolate("src",
|
|
18011
|
+
i0.ɵɵpropertyInterpolate("src", icon_html_r22, i0.ɵɵsanitizeUrl);
|
|
17377
18012
|
} }
|
|
17378
|
-
function
|
|
17379
|
-
const
|
|
18013
|
+
function DrawComponent_mat_form_field_44_Template(rf, ctx) { if (rf & 1) {
|
|
18014
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
17380
18015
|
i0.ɵɵelementStart(0, "mat-form-field")(1, "mat-label");
|
|
17381
18016
|
i0.ɵɵtext(2);
|
|
17382
18017
|
i0.ɵɵpipe(3, "translate");
|
|
17383
18018
|
i0.ɵɵelementEnd();
|
|
17384
18019
|
i0.ɵɵelementStart(4, "mat-select")(5, "mat-select-trigger");
|
|
17385
|
-
i0.ɵɵtemplate(6,
|
|
18020
|
+
i0.ɵɵtemplate(6, DrawComponent_mat_form_field_44_div_6_Template, 2, 1, "div", 31);
|
|
17386
18021
|
i0.ɵɵelementEnd();
|
|
17387
|
-
i0.ɵɵelementStart(7, "mat-option",
|
|
17388
|
-
i0.ɵɵlistener("click", function
|
|
18022
|
+
i0.ɵɵelementStart(7, "mat-option", 32);
|
|
18023
|
+
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
18024
|
i0.ɵɵtext(8);
|
|
17390
18025
|
i0.ɵɵpipe(9, "translate");
|
|
17391
18026
|
i0.ɵɵelementEnd();
|
|
17392
|
-
i0.ɵɵtemplate(10,
|
|
18027
|
+
i0.ɵɵtemplate(10, DrawComponent_mat_form_field_44_mat_option_10_Template, 3, 2, "mat-option", 33);
|
|
17393
18028
|
i0.ɵɵelementEnd()();
|
|
17394
18029
|
} if (rf & 2) {
|
|
17395
|
-
const
|
|
18030
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
17396
18031
|
i0.ɵɵadvance(2);
|
|
17397
18032
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "igo.geo.draw.icon"));
|
|
17398
18033
|
i0.ɵɵadvance(4);
|
|
17399
|
-
i0.ɵɵproperty("ngIf",
|
|
18034
|
+
i0.ɵɵproperty("ngIf", ctx_r7.icon);
|
|
17400
18035
|
i0.ɵɵadvance(2);
|
|
17401
18036
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 6, "igo.geo.draw.noIcon"));
|
|
17402
18037
|
i0.ɵɵadvance(2);
|
|
17403
|
-
i0.ɵɵproperty("ngForOf",
|
|
18038
|
+
i0.ɵɵproperty("ngForOf", ctx_r7.icons);
|
|
17404
18039
|
} }
|
|
17405
|
-
function
|
|
17406
|
-
const
|
|
17407
|
-
i0.ɵɵelementStart(0, "button",
|
|
17408
|
-
i0.ɵɵlistener("click", function
|
|
18040
|
+
function DrawComponent_button_48_Template(rf, ctx) { if (rf & 1) {
|
|
18041
|
+
const _r28 = i0.ɵɵgetCurrentView();
|
|
18042
|
+
i0.ɵɵelementStart(0, "button", 37);
|
|
18043
|
+
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
18044
|
i0.ɵɵpipe(1, "translate");
|
|
17410
18045
|
i0.ɵɵtext(2);
|
|
17411
18046
|
i0.ɵɵpipe(3, "translate");
|
|
17412
|
-
i0.ɵɵelement(4, "mat-icon",
|
|
18047
|
+
i0.ɵɵelement(4, "mat-icon", 38);
|
|
17413
18048
|
i0.ɵɵelementEnd();
|
|
17414
18049
|
} if (rf & 2) {
|
|
17415
|
-
const
|
|
18050
|
+
const ctx_r8 = i0.ɵɵnextContext();
|
|
17416
18051
|
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.layer.style.styleModalTooltip"));
|
|
17417
18052
|
i0.ɵɵadvance(2);
|
|
17418
18053
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.layer.style.styleModal"), " ");
|
|
17419
18054
|
i0.ɵɵadvance(2);
|
|
17420
|
-
i0.ɵɵproperty("matBadge",
|
|
18055
|
+
i0.ɵɵproperty("matBadge", ctx_r8.selectedFeatures$.value.length);
|
|
17421
18056
|
} }
|
|
17422
18057
|
class DrawComponent {
|
|
17423
18058
|
constructor(languageService, formBuilder, drawStyleService, dialog, drawIconService) {
|
|
@@ -17441,10 +18076,24 @@ class DrawComponent {
|
|
|
17441
18076
|
{
|
|
17442
18077
|
name: 'Drawing',
|
|
17443
18078
|
title: this.languageService.translate.instant('igo.geo.draw.labels'),
|
|
17444
|
-
tooltip: this.languageService.translate.instant('igo.geo.draw.changeLabel'),
|
|
17445
18079
|
valueAccessor: (feature) => {
|
|
17446
18080
|
return feature.properties.draw;
|
|
17447
18081
|
}
|
|
18082
|
+
},
|
|
18083
|
+
{
|
|
18084
|
+
name: 'Edition',
|
|
18085
|
+
title: '',
|
|
18086
|
+
sort: false,
|
|
18087
|
+
valueAccessor: (feature) => {
|
|
18088
|
+
return [{
|
|
18089
|
+
editMode: false,
|
|
18090
|
+
icon: 'pencil',
|
|
18091
|
+
color: 'primary',
|
|
18092
|
+
click: () => { this.editLabelDrawing(feature); },
|
|
18093
|
+
style: 'mat-icon-button'
|
|
18094
|
+
}];
|
|
18095
|
+
},
|
|
18096
|
+
renderer: EntityTableColumnRenderer.ButtonGroup,
|
|
17448
18097
|
}
|
|
17449
18098
|
]
|
|
17450
18099
|
};
|
|
@@ -17460,8 +18109,14 @@ class DrawComponent {
|
|
|
17460
18109
|
this.selectedFeatures$ = new BehaviorSubject([]);
|
|
17461
18110
|
this.drawControlIsDisabled = true;
|
|
17462
18111
|
this.drawControlIsActive = false;
|
|
18112
|
+
this.freehandMode = false;
|
|
17463
18113
|
this.subscriptions$$ = [];
|
|
17464
18114
|
this.position = 'bottom';
|
|
18115
|
+
this.radiusFormControl = new UntypedFormControl(1000);
|
|
18116
|
+
this.measureUnit = MeasureLengthUnit.Meters;
|
|
18117
|
+
this.radiusFormControlChange$$ = new Subscription();
|
|
18118
|
+
this.predefinedRadius$ = new BehaviorSubject(undefined);
|
|
18119
|
+
this.radiusDrawEnd$ = new BehaviorSubject(undefined);
|
|
17465
18120
|
this.isCreatingNewLayer = false;
|
|
17466
18121
|
this.currGeometryType = this.geometryType.Point;
|
|
17467
18122
|
this.buildForm();
|
|
@@ -17492,6 +18147,13 @@ class DrawComponent {
|
|
|
17492
18147
|
set activeDrawingLayer(value) {
|
|
17493
18148
|
this._activeDrawingLayer = value;
|
|
17494
18149
|
}
|
|
18150
|
+
/**
|
|
18151
|
+
* Available measure units for the measure type given
|
|
18152
|
+
* @internal
|
|
18153
|
+
*/
|
|
18154
|
+
get measureUnits() {
|
|
18155
|
+
return [MeasureLengthUnit.Meters, MeasureLengthUnit.Kilometers];
|
|
18156
|
+
}
|
|
17495
18157
|
// Initialize the store that will contain the entities and create the Draw control
|
|
17496
18158
|
ngOnInit() {
|
|
17497
18159
|
if (!this.stores.length) {
|
|
@@ -17544,6 +18206,11 @@ class DrawComponent {
|
|
|
17544
18206
|
});
|
|
17545
18207
|
this.onLayerChange(this.activeDrawingLayer);
|
|
17546
18208
|
}
|
|
18209
|
+
this.radiusFormControlChange$$ = this.radiusFormControl.valueChanges.subscribe(value => {
|
|
18210
|
+
if (this.activeDrawControl.ispredefinedRadius$.getValue()) {
|
|
18211
|
+
this.changeRadius(value);
|
|
18212
|
+
}
|
|
18213
|
+
});
|
|
17547
18214
|
}
|
|
17548
18215
|
/**
|
|
17549
18216
|
* Remove the drawing layer and the interactions
|
|
@@ -17554,6 +18221,7 @@ class DrawComponent {
|
|
|
17554
18221
|
this.activeStore.state.updateAll({ selected: false });
|
|
17555
18222
|
this.deactivateDrawControl();
|
|
17556
18223
|
this.subscriptions$$.map((s) => s.unsubscribe());
|
|
18224
|
+
this.radiusFormControlChange$$.unsubscribe();
|
|
17557
18225
|
}
|
|
17558
18226
|
/**
|
|
17559
18227
|
* Create a Draw Control
|
|
@@ -17627,30 +18295,21 @@ class DrawComponent {
|
|
|
17627
18295
|
// open the dialog box used to enter label
|
|
17628
18296
|
const dialogRef = this.dialog.open(DrawPopupComponent, {
|
|
17629
18297
|
disableClose: false,
|
|
17630
|
-
data: {
|
|
18298
|
+
data: { olGeometry: olGeometry, map: this.map }
|
|
17631
18299
|
});
|
|
17632
18300
|
// when dialog box is closed, get label and set it to geometry
|
|
17633
|
-
dialogRef.afterClosed().subscribe((
|
|
18301
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
17634
18302
|
// checks if the user clicked ok
|
|
17635
18303
|
if (dialogRef.componentInstance.confirmFlag) {
|
|
17636
|
-
this.updateLabelOfOlGeometry(olGeometry, label);
|
|
17637
|
-
|
|
17638
|
-
|
|
17639
|
-
|
|
17640
|
-
|
|
18304
|
+
this.updateLabelOfOlGeometry(olGeometry, result.label);
|
|
18305
|
+
this.updateLabelType(olGeometry, dialogRef.componentInstance.labelFlag);
|
|
18306
|
+
this.updateMeasureUnit(olGeometry, result.measureUnit);
|
|
18307
|
+
if (!(olGeometry instanceof OlFeature)) {
|
|
18308
|
+
this.updateFontSizeAndStyle(olGeometry, '15', FontType.Arial);
|
|
17641
18309
|
this.updateFillAndStrokeColor(olGeometry, 'rgba(255,255,255,0.4)', 'rgba(143,7,7,1)');
|
|
18310
|
+
this.updateOffset(olGeometry, 0, (olGeometry instanceof OlPoint) ? -15 : 0);
|
|
17642
18311
|
}
|
|
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
|
-
}
|
|
18312
|
+
isDrawEnd ? this.onDrawEnd(olGeometry) : this.onSelectDraw(olGeometry, result.label, [dialogRef.componentInstance.labelFlag, result.measureUnit]);
|
|
17654
18313
|
this.updateHeightTable();
|
|
17655
18314
|
}
|
|
17656
18315
|
// deletes the feature
|
|
@@ -17682,7 +18341,55 @@ class DrawComponent {
|
|
|
17682
18341
|
const entityId = entity.properties.id;
|
|
17683
18342
|
const olGeometryId = olGeometry.ol_uid;
|
|
17684
18343
|
if (entityId === olGeometryId) {
|
|
17685
|
-
|
|
18344
|
+
if (entity.properties.labelType === LabelType.Coordinates) {
|
|
18345
|
+
let longLat = DDtoDMS([entity.properties.longitude, entity.properties.latitude], entity.properties.measureUnit);
|
|
18346
|
+
this.updateLabelOfOlGeometry(olGeometry, '(' + longLat[1] + ', ' + longLat[0] + ')');
|
|
18347
|
+
}
|
|
18348
|
+
else if (entity.properties.labelType === LabelType.Length) {
|
|
18349
|
+
if (olGeometry instanceof OlCircle) {
|
|
18350
|
+
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
18351
|
+
const radius = metersToUnit(this.getRadius(circularPolygon), entity.properties.measureUnit);
|
|
18352
|
+
const unit = MeasureLengthUnitAbbreviation[entity.properties.measureUnit];
|
|
18353
|
+
const radiusLabel = 'R: ' + radius.toFixed(2).toString() + ' ' + unit;
|
|
18354
|
+
this.updateLabelOfOlGeometry(olGeometry, radiusLabel);
|
|
18355
|
+
}
|
|
18356
|
+
else {
|
|
18357
|
+
let olGeometryLength = measureOlGeometryLength(olGeometry, this.map.ol.getView().getProjection().getCode());
|
|
18358
|
+
let measureUnit;
|
|
18359
|
+
const temp = entity.properties.measureUnit;
|
|
18360
|
+
measureUnit = MeasureLengthUnitAbbreviation[entity.properties.measureUnit];
|
|
18361
|
+
olGeometryLength = metersToUnit(olGeometryLength, temp);
|
|
18362
|
+
let lengthLabel = olGeometry instanceof OlPolygon ?
|
|
18363
|
+
'P: ' + olGeometryLength.toFixed(2).toString() + ' ' + measureUnit
|
|
18364
|
+
: olGeometryLength.toFixed(2).toString() + ' ' + measureUnit;
|
|
18365
|
+
this.updateLabelOfOlGeometry(olGeometry, lengthLabel);
|
|
18366
|
+
}
|
|
18367
|
+
}
|
|
18368
|
+
else if (entity.properties.labelType === LabelType.Area) {
|
|
18369
|
+
if (olGeometry instanceof OlCircle) {
|
|
18370
|
+
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
18371
|
+
let circleArea = measureOlGeometryArea(circularPolygon, this.map.ol.getView().getProjection().getCode());
|
|
18372
|
+
const unit = MeasureAreaUnitAbbreviation[entity.properties.measureUnit];
|
|
18373
|
+
const temp = entity.properties.measureUnit;
|
|
18374
|
+
circleArea = squareMetersToUnit(circleArea, temp);
|
|
18375
|
+
const areaLabel = circleArea.toFixed(2).toString() + ' ' + unit;
|
|
18376
|
+
this.updateLabelOfOlGeometry(olGeometry, areaLabel);
|
|
18377
|
+
}
|
|
18378
|
+
else {
|
|
18379
|
+
let olGeometryArea = measureOlGeometryArea(olGeometry, this.map.ol.getView().getProjection().getCode());
|
|
18380
|
+
let measureUnit;
|
|
18381
|
+
const temp = entity.properties.measureUnit;
|
|
18382
|
+
measureUnit = MeasureAreaUnitAbbreviation[entity.properties.measureUnit];
|
|
18383
|
+
olGeometryArea = squareMetersToUnit(olGeometryArea, temp);
|
|
18384
|
+
const lengthLabel = olGeometryArea.toFixed(2).toString() + ' ' + measureUnit;
|
|
18385
|
+
this.updateLabelOfOlGeometry(olGeometry, lengthLabel);
|
|
18386
|
+
}
|
|
18387
|
+
}
|
|
18388
|
+
else {
|
|
18389
|
+
this.updateLabelOfOlGeometry(olGeometry, entity.properties.draw);
|
|
18390
|
+
}
|
|
18391
|
+
this.updateLabelType(olGeometry, entity.properties.labelType);
|
|
18392
|
+
this.updateMeasureUnit(olGeometry, entity.properties.measureUnit);
|
|
17686
18393
|
this.updateFontSizeAndStyle(olGeometry, entity.properties.fontStyle.split(' ')[0].replace('px', ''), entity.properties.fontStyle.substring(entity.properties.fontStyle.indexOf(' ') + 1));
|
|
17687
18394
|
this.updateFillAndStrokeColor(olGeometry, entity.properties.drawingStyle.fill, entity.properties.drawingStyle.stroke);
|
|
17688
18395
|
this.updateOffset(olGeometry, entity.properties.offsetX, entity.properties.offsetY);
|
|
@@ -17690,7 +18397,7 @@ class DrawComponent {
|
|
|
17690
18397
|
}
|
|
17691
18398
|
});
|
|
17692
18399
|
}
|
|
17693
|
-
onSelectDraw(olFeature, label) {
|
|
18400
|
+
onSelectDraw(olFeature, label, labelTypeAndUnit) {
|
|
17694
18401
|
const entities = this.activeStore.all();
|
|
17695
18402
|
const olGeometry = olFeature.getGeometry();
|
|
17696
18403
|
olGeometry.ol_uid = olFeature.get('id');
|
|
@@ -17716,6 +18423,8 @@ class DrawComponent {
|
|
|
17716
18423
|
this.updateFontSizeAndStyle(olGeometry, fontSize, fontStyle);
|
|
17717
18424
|
this.updateFillAndStrokeColor(olGeometry, fillColor, strokeColor);
|
|
17718
18425
|
this.updateOffset(olGeometry, offsetX, offsetY);
|
|
18426
|
+
this.updateLabelType(olGeometry, labelTypeAndUnit[0]);
|
|
18427
|
+
this.updateMeasureUnit(olGeometry, labelTypeAndUnit[1]);
|
|
17719
18428
|
this.replaceFeatureInStore(entity, olGeometry, rad);
|
|
17720
18429
|
}
|
|
17721
18430
|
});
|
|
@@ -17755,8 +18464,12 @@ class DrawComponent {
|
|
|
17755
18464
|
lon4326 = center4326[0];
|
|
17756
18465
|
lat4326 = center4326[1];
|
|
17757
18466
|
rad = getDistance(center4326, extent4326);
|
|
18467
|
+
this.radiusFormControl.setValue(Math.round(rad));
|
|
17758
18468
|
}
|
|
17759
18469
|
}
|
|
18470
|
+
if (this.activeDrawControl.radiusDrawEnd$.getValue()) {
|
|
18471
|
+
rad = this.activeDrawControl.radiusDrawEnd$.getValue();
|
|
18472
|
+
}
|
|
17760
18473
|
if (olGeometry instanceof OlPoint) {
|
|
17761
18474
|
point4326 = transform(olGeometry.getFlatCoordinates(), projection, 'EPSG:4326');
|
|
17762
18475
|
lon4326 = point4326[0];
|
|
@@ -17778,12 +18491,16 @@ class DrawComponent {
|
|
|
17778
18491
|
stroke: olGeometry.get('strokeColor_')
|
|
17779
18492
|
},
|
|
17780
18493
|
offsetX: olGeometry.get('offsetX_'),
|
|
17781
|
-
offsetY: olGeometry.get('offsetY_')
|
|
18494
|
+
offsetY: olGeometry.get('offsetY_'),
|
|
18495
|
+
labelType: olGeometry.get('labelType_'),
|
|
18496
|
+
measureUnit: olGeometry.get('measureUnit_')
|
|
17782
18497
|
},
|
|
17783
18498
|
meta: {
|
|
17784
18499
|
id: featureId
|
|
17785
18500
|
}
|
|
17786
18501
|
});
|
|
18502
|
+
this.activeDrawControl.predefinedRadius$.next(undefined);
|
|
18503
|
+
this.activeDrawControl.radiusDrawEnd$.next(undefined);
|
|
17787
18504
|
}
|
|
17788
18505
|
buildForm() {
|
|
17789
18506
|
this.form = this.formBuilder.group({
|
|
@@ -17828,11 +18545,9 @@ class DrawComponent {
|
|
|
17828
18545
|
/**
|
|
17829
18546
|
* Called when the user double-clicks the selected drawing
|
|
17830
18547
|
*/
|
|
17831
|
-
editLabelDrawing() {
|
|
17832
|
-
|
|
17833
|
-
|
|
17834
|
-
this.openDrawDialog(olGeometry, false);
|
|
17835
|
-
}
|
|
18548
|
+
editLabelDrawing(feature) {
|
|
18549
|
+
const olGeometryFeature = featureToOl(feature, this.map.ol.getView().getProjection().getCode());
|
|
18550
|
+
this.openDrawDialog(olGeometryFeature, false);
|
|
17836
18551
|
}
|
|
17837
18552
|
openShorcutsDialog() {
|
|
17838
18553
|
this.dialog.open(DrawShorcutsComponent);
|
|
@@ -17869,6 +18584,19 @@ class DrawComponent {
|
|
|
17869
18584
|
onToggleDrawControl(toggleIsChecked) {
|
|
17870
18585
|
toggleIsChecked ? this.toggleDrawControl() : this.deactivateDrawControl();
|
|
17871
18586
|
}
|
|
18587
|
+
onToggleFreehandMode(event) {
|
|
18588
|
+
if (this.isCircle() && !event.checked) {
|
|
18589
|
+
this.activeDrawControl.ispredefinedRadius$.next(true);
|
|
18590
|
+
this.changeRadius(this.radiusFormControl.value);
|
|
18591
|
+
}
|
|
18592
|
+
else {
|
|
18593
|
+
this.activeDrawControl.setOlInteractionStyle(createInteractionStyle(this.fillColor, this.strokeColor, this.strokeWidth));
|
|
18594
|
+
this.activeDrawControl.ispredefinedRadius$.next(false);
|
|
18595
|
+
}
|
|
18596
|
+
this.freehandMode = event.checked;
|
|
18597
|
+
this.activeDrawControl.freehand$.next(event.checked);
|
|
18598
|
+
this.toggleDrawControl();
|
|
18599
|
+
}
|
|
17872
18600
|
// User changes properties of a drawing element
|
|
17873
18601
|
/**
|
|
17874
18602
|
* Display the current layer with the current store and the current layerSource
|
|
@@ -18019,16 +18747,19 @@ class DrawComponent {
|
|
|
18019
18747
|
onGeometryTypeChange(geometryType) {
|
|
18020
18748
|
this.currGeometryType = geometryType;
|
|
18021
18749
|
this.activeDrawControl.setGeometryType(geometryType);
|
|
18750
|
+
this.freehandMode ?
|
|
18751
|
+
this.onToggleFreehandMode({ checked: true }) :
|
|
18752
|
+
this.onToggleFreehandMode({ checked: false });
|
|
18022
18753
|
this.toggleDrawControl();
|
|
18023
18754
|
}
|
|
18024
18755
|
// Updates the properties of olFeature inputted
|
|
18025
18756
|
/**
|
|
18026
18757
|
* Update the label of a geometry when a label is entered in a dialog box
|
|
18027
|
-
* @param
|
|
18758
|
+
* @param OlFeature the feature
|
|
18028
18759
|
* @param label the label
|
|
18029
18760
|
*/
|
|
18030
|
-
updateLabelOfOlGeometry(
|
|
18031
|
-
|
|
18761
|
+
updateLabelOfOlGeometry(OlFeature, label) {
|
|
18762
|
+
OlFeature.setProperties({
|
|
18032
18763
|
_label: label
|
|
18033
18764
|
}, true);
|
|
18034
18765
|
}
|
|
@@ -18049,13 +18780,23 @@ class DrawComponent {
|
|
|
18049
18780
|
offsetY_: offsetY
|
|
18050
18781
|
}, true);
|
|
18051
18782
|
}
|
|
18783
|
+
updateLabelType(olFeature, typeOfLabel) {
|
|
18784
|
+
olFeature.setProperties({
|
|
18785
|
+
labelType_: typeOfLabel
|
|
18786
|
+
}, true);
|
|
18787
|
+
}
|
|
18788
|
+
updateMeasureUnit(olFeature, measureUnit) {
|
|
18789
|
+
olFeature.setProperties({
|
|
18790
|
+
measureUnit_: measureUnit
|
|
18791
|
+
}, true);
|
|
18792
|
+
}
|
|
18052
18793
|
// Updates values of the selected element on the HTML view
|
|
18053
18794
|
getFeatureFontSize() {
|
|
18054
18795
|
return this.selectedFeatures$.value.length > 0
|
|
18055
18796
|
? this.selectedFeatures$.value[0].properties.fontStyle
|
|
18056
18797
|
.split(' ')[0]
|
|
18057
18798
|
.replace('px', '')
|
|
18058
|
-
: '
|
|
18799
|
+
: '15';
|
|
18059
18800
|
}
|
|
18060
18801
|
getFeatureFontStyle() {
|
|
18061
18802
|
return this.selectedFeatures$.value.length > 0
|
|
@@ -18159,6 +18900,66 @@ class DrawComponent {
|
|
|
18159
18900
|
}
|
|
18160
18901
|
this.activeDrawControl.setOlMap(this.map.ol, true);
|
|
18161
18902
|
}
|
|
18903
|
+
/**
|
|
18904
|
+
* get the geometry of design
|
|
18905
|
+
*
|
|
18906
|
+
*/
|
|
18907
|
+
isPoint() {
|
|
18908
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.Point;
|
|
18909
|
+
}
|
|
18910
|
+
isLineString() {
|
|
18911
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.LineString;
|
|
18912
|
+
}
|
|
18913
|
+
isPolygon() {
|
|
18914
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.Polygon;
|
|
18915
|
+
}
|
|
18916
|
+
isCircle() {
|
|
18917
|
+
return this.activeDrawControl.getGeometryType() === this.geometryType.Circle;
|
|
18918
|
+
}
|
|
18919
|
+
/**
|
|
18920
|
+
* The fonction to predefine the radius of the user
|
|
18921
|
+
*
|
|
18922
|
+
*/
|
|
18923
|
+
changeRadius(radius) {
|
|
18924
|
+
let radiusMeters;
|
|
18925
|
+
if (radius) {
|
|
18926
|
+
this.measureUnit === MeasureLengthUnit.Meters ? radiusMeters = radius :
|
|
18927
|
+
radiusMeters = radius * 1000;
|
|
18928
|
+
}
|
|
18929
|
+
else {
|
|
18930
|
+
radiusMeters = undefined;
|
|
18931
|
+
}
|
|
18932
|
+
const pointStyle = (feature, resolution) => {
|
|
18933
|
+
const geom = feature.getGeometry();
|
|
18934
|
+
const coordinates = olproj.transform(geom.getCoordinates(), this.map.projection, 'EPSG:4326');
|
|
18935
|
+
const radius = radiusMeters / (Math.cos((Math.PI / 180) * coordinates[1])) / resolution;
|
|
18936
|
+
this.activeDrawControl.predefinedRadius$.next(radiusMeters);
|
|
18937
|
+
return new olstyle.Style({
|
|
18938
|
+
image: new olstyle.Circle({
|
|
18939
|
+
radius: radius,
|
|
18940
|
+
stroke: new olstyle.Stroke({
|
|
18941
|
+
width: 1,
|
|
18942
|
+
color: 'rgba(143,7,7,1)'
|
|
18943
|
+
}),
|
|
18944
|
+
fill: new olstyle.Fill({
|
|
18945
|
+
color: 'rgba(255,255,255,0.4)'
|
|
18946
|
+
})
|
|
18947
|
+
})
|
|
18948
|
+
});
|
|
18949
|
+
};
|
|
18950
|
+
this.activeDrawControl.setOlInteractionStyle(pointStyle);
|
|
18951
|
+
this.toggleDrawControl();
|
|
18952
|
+
}
|
|
18953
|
+
onMeasureUnitChange(selectedMeasureUnit) {
|
|
18954
|
+
if (selectedMeasureUnit === this.measureUnit) {
|
|
18955
|
+
return;
|
|
18956
|
+
}
|
|
18957
|
+
else {
|
|
18958
|
+
this.measureUnit = selectedMeasureUnit;
|
|
18959
|
+
this.measureUnit === MeasureLengthUnit.Meters ? this.radiusFormControl.setValue(this.radiusFormControl.value * 1000) :
|
|
18960
|
+
this.radiusFormControl.setValue(this.radiusFormControl.value / 1000);
|
|
18961
|
+
}
|
|
18962
|
+
}
|
|
18162
18963
|
/**
|
|
18163
18964
|
* Recreates the style of the feature stored
|
|
18164
18965
|
*/
|
|
@@ -18174,6 +18975,10 @@ class DrawComponent {
|
|
|
18174
18975
|
});
|
|
18175
18976
|
}
|
|
18176
18977
|
}
|
|
18978
|
+
getRadius(olGeometry) {
|
|
18979
|
+
const length = getLength(olGeometry);
|
|
18980
|
+
return Number(length / (2 * Math.PI));
|
|
18981
|
+
}
|
|
18177
18982
|
}
|
|
18178
18983
|
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
18984
|
DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent, selectors: [["igo-draw"]], viewQuery: function DrawComponent_Query(rf, ctx) { if (rf & 1) {
|
|
@@ -18181,8 +18986,8 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18181
18986
|
} if (rf & 2) {
|
|
18182
18987
|
let _t;
|
|
18183
18988
|
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
|
|
18989
|
+
} }, 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) {
|
|
18990
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
18186
18991
|
i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "mat-button-toggle-group", 1);
|
|
18187
18992
|
i0.ɵɵlistener("change", function DrawComponent_Template_mat_button_toggle_group_change_2_listener($event) { return ctx.onGeometryTypeChange($event.value); });
|
|
18188
18993
|
i0.ɵɵelementStart(3, "mat-button-toggle", 2);
|
|
@@ -18210,36 +19015,39 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18210
19015
|
i0.ɵɵlistener("change", function DrawComponent_Template_mat_slide_toggle_change_19_listener() { return ctx.onToggleLabels(); });
|
|
18211
19016
|
i0.ɵɵtext(20);
|
|
18212
19017
|
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
19018
|
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);
|
|
19019
|
+
i0.ɵɵtemplate(22, DrawComponent_mat_slide_toggle_22_Template, 3, 5, "mat-slide-toggle", 6);
|
|
19020
|
+
i0.ɵɵtemplate(23, DrawComponent_div_23_Template, 8, 7, "div", 7);
|
|
18227
19021
|
i0.ɵɵelementEnd();
|
|
18228
|
-
i0.ɵɵelement(
|
|
18229
|
-
i0.ɵɵelementStart(
|
|
18230
|
-
i0.ɵɵ
|
|
18231
|
-
i0.ɵɵ
|
|
18232
|
-
i0.ɵɵ
|
|
19022
|
+
i0.ɵɵelement(24, "mat-divider");
|
|
19023
|
+
i0.ɵɵelementStart(25, "div")(26, "mat-form-field", 8)(27, "mat-label");
|
|
19024
|
+
i0.ɵɵtext(28);
|
|
19025
|
+
i0.ɵɵpipe(29, "translate");
|
|
19026
|
+
i0.ɵɵelementEnd();
|
|
19027
|
+
i0.ɵɵelementStart(30, "mat-select", 9, 10);
|
|
19028
|
+
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)); });
|
|
19029
|
+
i0.ɵɵtemplate(32, DrawComponent_mat_option_32_Template, 2, 2, "mat-option", 11);
|
|
19030
|
+
i0.ɵɵelementStart(33, "mat-option", 12);
|
|
19031
|
+
i0.ɵɵtext(34);
|
|
19032
|
+
i0.ɵɵpipe(35, "translate");
|
|
18233
19033
|
i0.ɵɵelementEnd()()();
|
|
18234
|
-
i0.ɵɵ
|
|
18235
|
-
i0.ɵɵtemplate(42, DrawComponent_mat_form_field_42_Template, 11, 8, "mat-form-field", 16);
|
|
19034
|
+
i0.ɵɵtemplate(36, DrawComponent_button_36_Template, 4, 7, "button", 13);
|
|
18236
19035
|
i0.ɵɵelementEnd();
|
|
18237
|
-
i0.ɵɵ
|
|
18238
|
-
i0.ɵɵ
|
|
18239
|
-
i0.ɵɵ
|
|
18240
|
-
i0.ɵɵ
|
|
19036
|
+
i0.ɵɵelement(37, "mat-divider");
|
|
19037
|
+
i0.ɵɵelementStart(38, "div");
|
|
19038
|
+
i0.ɵɵtemplate(39, DrawComponent_button_39_Template, 4, 6, "button", 14);
|
|
19039
|
+
i0.ɵɵelementStart(40, "div");
|
|
19040
|
+
i0.ɵɵelement(41, "igo-entity-table", 15, 16);
|
|
19041
|
+
i0.ɵɵelementEnd()();
|
|
19042
|
+
i0.ɵɵelementStart(43, "div", 17);
|
|
19043
|
+
i0.ɵɵtemplate(44, DrawComponent_mat_form_field_44_Template, 11, 8, "mat-form-field", 18);
|
|
19044
|
+
i0.ɵɵelementEnd();
|
|
19045
|
+
i0.ɵɵelementStart(45, "button", 19);
|
|
19046
|
+
i0.ɵɵlistener("click", function DrawComponent_Template_button_click_45_listener() { return ctx.openShorcutsDialog(); });
|
|
19047
|
+
i0.ɵɵelement(46, "mat-icon", 20);
|
|
19048
|
+
i0.ɵɵpipe(47, "translate");
|
|
18241
19049
|
i0.ɵɵelementEnd();
|
|
18242
|
-
i0.ɵɵtemplate(
|
|
19050
|
+
i0.ɵɵtemplate(48, DrawComponent_button_48_Template, 5, 7, "button", 21);
|
|
18243
19051
|
i0.ɵɵelementEnd();
|
|
18244
19052
|
} if (rf & 2) {
|
|
18245
19053
|
i0.ɵɵadvance(2);
|
|
@@ -18247,35 +19055,39 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18247
19055
|
i0.ɵɵadvance(1);
|
|
18248
19056
|
i0.ɵɵproperty("value", ctx.geometryType.Point);
|
|
18249
19057
|
i0.ɵɵadvance(1);
|
|
18250
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5,
|
|
19058
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 29, "igo.geo.draw." + ctx.geometryType.Point), " ");
|
|
18251
19059
|
i0.ɵɵadvance(2);
|
|
18252
19060
|
i0.ɵɵproperty("value", ctx.geometryType.LineString);
|
|
18253
19061
|
i0.ɵɵadvance(1);
|
|
18254
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8,
|
|
19062
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 31, "igo.geo.draw." + ctx.geometryType.LineString), " ");
|
|
18255
19063
|
i0.ɵɵadvance(2);
|
|
18256
19064
|
i0.ɵɵproperty("value", ctx.geometryType.Polygon);
|
|
18257
19065
|
i0.ɵɵadvance(1);
|
|
18258
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11,
|
|
19066
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 33, "igo.geo.draw." + ctx.geometryType.Polygon), " ");
|
|
18259
19067
|
i0.ɵɵadvance(2);
|
|
18260
19068
|
i0.ɵɵproperty("value", ctx.geometryType.Circle);
|
|
18261
19069
|
i0.ɵɵadvance(1);
|
|
18262
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14,
|
|
19070
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 35, "igo.geo.draw." + ctx.geometryType.Circle), " ");
|
|
18263
19071
|
i0.ɵɵadvance(3);
|
|
18264
19072
|
i0.ɵɵproperty("disabled", ctx.drawControlIsDisabled)("checked", ctx.drawControlIsActive)("labelPosition", "before");
|
|
18265
19073
|
i0.ɵɵadvance(1);
|
|
18266
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18,
|
|
19074
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 37, "igo.geo.spatialFilter.drawControl"), " ");
|
|
18267
19075
|
i0.ɵɵadvance(2);
|
|
18268
19076
|
i0.ɵɵproperty("checked", ctx.labelsAreShown)("labelPosition", "before");
|
|
18269
19077
|
i0.ɵɵadvance(1);
|
|
18270
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21,
|
|
18271
|
-
i0.ɵɵadvance(
|
|
18272
|
-
i0.ɵɵ
|
|
19078
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 39, "igo.geo.draw.toggleMapTooltips"), " ");
|
|
19079
|
+
i0.ɵɵadvance(2);
|
|
19080
|
+
i0.ɵɵproperty("ngIf", !ctx.isPoint());
|
|
19081
|
+
i0.ɵɵadvance(1);
|
|
19082
|
+
i0.ɵɵproperty("ngIf", ctx.isCircle());
|
|
19083
|
+
i0.ɵɵadvance(5);
|
|
19084
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(29, 41, "igo.geo.draw.layer.title"));
|
|
18273
19085
|
i0.ɵɵadvance(2);
|
|
18274
19086
|
i0.ɵɵproperty("value", ctx.updateActiveLayer());
|
|
18275
19087
|
i0.ɵɵadvance(2);
|
|
18276
19088
|
i0.ɵɵproperty("ngForOf", ctx.allLayers);
|
|
18277
19089
|
i0.ɵɵadvance(2);
|
|
18278
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
19090
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(35, 43, "igo.geo.draw.layer.createNewLayer"), " ");
|
|
18279
19091
|
i0.ɵɵadvance(2);
|
|
18280
19092
|
i0.ɵɵproperty("ngIf", ctx.activeDrawingLayer);
|
|
18281
19093
|
i0.ɵɵadvance(3);
|
|
@@ -18285,10 +19097,10 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18285
19097
|
i0.ɵɵadvance(3);
|
|
18286
19098
|
i0.ɵɵproperty("ngIf", ctx.icons.length >= 1);
|
|
18287
19099
|
i0.ɵɵadvance(2);
|
|
18288
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(
|
|
19100
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(47, 45, "igo.geo.draw.shortcuts"));
|
|
18289
19101
|
i0.ɵɵadvance(2);
|
|
18290
19102
|
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: [
|
|
19103
|
+
} }, 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
19104
|
trigger('openClose', [
|
|
18293
19105
|
state('open', style({
|
|
18294
19106
|
opacity: 1
|
|
@@ -18313,7 +19125,7 @@ DrawComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawComponent
|
|
|
18313
19125
|
transition('open => closed', [animate('600ms ease')]),
|
|
18314
19126
|
transition('closed => open', [animate('800ms ease')])
|
|
18315
19127
|
])
|
|
18316
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\r\n <div class=\"geometry-type-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n (change)=\"onGeometryTypeChange($event.value)\" [value]=\"geometryType.Point\">\r\n <mat-button-toggle [value]=\"geometryType.Point\">\r\n {{'igo.geo.draw.' + geometryType.Point | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.LineString\">\r\n {{'igo.geo.draw.' + geometryType.LineString | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Polygon\">\r\n {{'igo.geo.draw.' + geometryType.Polygon | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Circle\">\r\n {{'igo.geo.draw.' + geometryType.Circle | translate}}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n\r\n <div class=\"draw-options mat-typography\">\r\n <mat-slide-toggle\r\n [disabled]=\"drawControlIsDisabled\"\r\n [checked]=\"drawControlIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleDrawControl($event.checked)\">\r\n {{'igo.geo.spatialFilter.drawControl' | translate}}\r\n </mat-slide-toggle>\r\n\r\n <mat-slide-toggle\r\n [checked]=\"labelsAreShown\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleLabels()\"\r\n >\r\n {{ 'igo.geo.draw.
|
|
19128
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\r\n <div class=\"geometry-type-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n (change)=\"onGeometryTypeChange($event.value)\" [value]=\"geometryType.Point\">\r\n <mat-button-toggle [value]=\"geometryType.Point\">\r\n {{'igo.geo.draw.' + geometryType.Point | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.LineString\">\r\n {{'igo.geo.draw.' + geometryType.LineString | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Polygon\">\r\n {{'igo.geo.draw.' + geometryType.Polygon | translate}}\r\n </mat-button-toggle>\r\n\r\n <mat-button-toggle [value]=\"geometryType.Circle\">\r\n {{'igo.geo.draw.' + geometryType.Circle | translate}}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n\r\n <div class=\"draw-options mat-typography\">\r\n <mat-slide-toggle\r\n [disabled]=\"drawControlIsDisabled\"\r\n [checked]=\"drawControlIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleDrawControl($event.checked)\">\r\n {{'igo.geo.spatialFilter.drawControl' | translate}}\r\n </mat-slide-toggle>\r\n\r\n <mat-slide-toggle\r\n [checked]=\"labelsAreShown\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleLabels()\">\r\n {{ 'igo.geo.draw.toggleMapTooltips' | translate }}\r\n </mat-slide-toggle>\r\n\r\n <mat-slide-toggle\r\n *ngIf=\"!isPoint()\"\r\n [checked]=\"freehandMode\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleFreehandMode($event)\">\r\n {{ 'igo.geo.draw.freehandMode' | translate }}\r\n </mat-slide-toggle>\r\n\r\n <div class=\"radius-unit\" *ngIf=\"isCircle()\">\r\n <form class=\"radius-form\">\r\n <mat-form-field class=\"radius\">\r\n <input\r\n matInput type=\"number\"\r\n min=\"0\"\r\n placeholder=\"{{ 'igo.geo.spatialFilter.radius' | translate }}\"\r\n [formControl]=\"radiusFormControl\"\r\n [readonly]=\"this.freehandMode\">\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"measureUnit\"\r\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let measureUnit of measureUnits\"\r\n [value]=\"measureUnit\">\r\n {{('igo.geo.measure.' + measureUnit) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <div>\r\n <mat-form-field appearance=\"outline\" class=\"layer-select\">\r\n <mat-label>{{'igo.geo.draw.layer.title' | translate}}</mat-label>\r\n <mat-select #selectedLayer (selectionChange)=\"onLayerChange(selectedLayer.value)\" [value]=\"updateActiveLayer()\">\r\n <mat-option *ngFor=\"let layer of allLayers\" [value]=\"layer\">\r\n {{ layer.title }}\r\n </mat-option>\r\n <mat-option id=\"createNewLayer\" >\r\n {{'igo.geo.draw.layer.createNewLayer' | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button\r\n *ngIf=\"activeDrawingLayer\"\r\n mat-icon-button\r\n [color]=\"activeDrawingLayer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"activeDrawingLayer.visible ?\r\n ('igo.geo.layer.hideLayer' | translate) :\r\n ('igo.geo.layer.showLayer' | translate)\"\r\n (click)=\"activeDrawingLayer.visible = !activeDrawingLayer.visible\">\r\n <mat-icon\r\n [svgIcon]=\"activeDrawingLayer.visible ? 'eye' : 'eye-off'\">\r\n </mat-icon>\r\n </button>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div>\r\n <button\r\n *ngIf=\"activeStore.count$.getValue() > 0\"\r\n class=\"deleteBtn\"\r\n mat-icon-button\r\n color=\"warn\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.delete' | translate\"\r\n [disabled]=\"(selectedFeatures$ | async).length === 0\"\r\n (click)=\"deleteDrawings()\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n\r\n <div>\r\n <igo-entity-table\r\n #table\r\n class=\"table-compact\"\r\n [store]=\"activeStore\"\r\n [template]=\"tableTemplate\">\r\n </igo-entity-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"icon-options\">\r\n <mat-form-field *ngIf=\"icons.length >= 1\">\r\n <mat-label>{{ 'igo.geo.draw.icon' | translate }}</mat-label>\r\n <mat-select>\r\n <mat-select-trigger>\r\n <div *ngIf=\"icon\" class=\"box\">\r\n <img src=\"{{ icon }}\">\r\n </div>\r\n </mat-select-trigger>\r\n <mat-option value=\"\" (click)=\"onIconChange()\">{{ 'igo.geo.draw.noIcon' | translate }}</mat-option>\r\n <mat-option\r\n *ngFor=\"let icon_html of icons\"\r\n [value]=\"icon_html\"\r\n (click)=\"onIconChange(icon_html)\">\r\n <div class=\"box\">\r\n <img src=\"{{ icon_html }}\">\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button\r\n mat-icon-button\r\n color=\"accent\"\r\n disableRipple=\"true\"\r\n (click)=\"openShorcutsDialog()\"\r\n >\r\n <mat-icon\r\n class=\"shortcuts-icon\"\r\n svgIcon=\"keyboard-outline\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.shortcuts' | translate\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"selectedFeatures$.value.length\"\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"openStyleModalDialog()\"\r\n [matTooltip]=\"'igo.geo.layer.style.styleModalTooltip' | translate\">\r\n {{'igo.geo.layer.style.styleModal' | translate}}\r\n <mat-icon\r\n class=\"style-icon\"\r\n svgIcon=\"palette\"\r\n [matBadge]=\"selectedFeatures$.value.length\"\r\n matBadgeColor=\"warn\"\r\n matBadgeSize=\"medium\">\r\n </mat-icon>\r\n </button>\r\n</div>\r\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
19129
|
}], function () { return [{ type: i2$1.LanguageService }, { type: i2$2.UntypedFormBuilder }, { type: DrawStyleService }, { type: i1.MatDialog }, { type: DrawIconService }]; }, { map: [{
|
|
18318
19130
|
type: Input
|
|
18319
19131
|
}], stores: [{
|
|
@@ -18603,7 +19415,7 @@ StyleModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StyleMo
|
|
|
18603
19415
|
i0.ɵɵproperty("value", ctx.getFeatureOffsetY());
|
|
18604
19416
|
i0.ɵɵadvance(4);
|
|
18605
19417
|
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}"] });
|
|
19418
|
+
} }, 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
19419
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StyleModalComponent, [{
|
|
18608
19420
|
type: Component,
|
|
18609
19421
|
args: [{ selector: 'igo-style-modal-component', template: "<div mat-dialog-content>\r\n <h2 mat-dialog-title class=\"mat-typography\">{{ 'igo.geo.layer.style.styleModal' | translate }}</h2>\r\n <div\r\n class=\"edition-drawing mat-typography\"\r\n [hidden]=\"data.features.length === 0\">\r\n <form\r\n class=\"igo-form\"\r\n [formGroup]=\"form\">\r\n <div class=\"fill-color-picker mat-typography\" *ngIf=\"linestringOnly !== true\">\r\n <span>\r\n <mat-icon class=\"stroke-palette-icon\" svgIcon=\"square\"></mat-icon>\r\n {{ 'igo.geo.draw.fill' | translate }}\r\n </span>\r\n\r\n <mat-form-field\r\n class=\"fill-field\"\r\n appearance=\"outline\"\r\n floatLabel=\"always\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.colorPicker' | translate\">\r\n <mat-label>{{ getFeatureFillColor() }}</mat-label>\r\n <input\r\n #fillColorInput\r\n formControlName=\"fill\"\r\n matInput\r\n type=\"text\"\r\n [style.background]=\"getFeatureFillColor()\"\r\n [readonly]=\"true\"\r\n [colorPicker]=\"getFeatureFillColor()\"\r\n [cpWidth]=\"'200px'\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpPosition]=\"'bottom'\"\r\n [cpPositionOffset]=\"'-75%'\"\r\n [cpCancelButton]=\"true\"\r\n [cpCancelButtonText]=\"'igo.geo.draw.cancel' | translate\"\r\n [cpOKButton]=\"true\"\r\n (colorPickerChange)=\"styleModalData.fillColor = $event\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"stroke-color-picker mat-typography\">\r\n <span>\r\n <mat-icon\r\n class=\"stroke-palette-icon\"\r\n svgIcon=\"square-outline\">\r\n </mat-icon>\r\n {{'igo.geo.draw.stroke' | translate}}\r\n </span>\r\n\r\n <mat-form-field\r\n class=\"stroke-field\"\r\n appearance=\"outline\"\r\n floatLabel=\"always\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.draw.colorPicker' | translate\">\r\n <mat-label>{{ getFeatureStrokeColor() }}</mat-label>\r\n <input\r\n #strokeColorInput\r\n formControlName=\"stroke\"\r\n matInput\r\n type=\"text\"\r\n [style.background]=\"getFeatureStrokeColor()\"\r\n [readonly]=\"true\"\r\n [colorPicker]=\"getFeatureStrokeColor()\"\r\n [cpWidth]=\"'200px'\"\r\n [cpPosition]=\"'bottom'\"\r\n [cpPositionOffset]=\"'-75%'\"\r\n [cpOutputFormat]=\"'rgba'\"\r\n [cpCancelButton]=\"true\"\r\n [cpCancelButtonText]=\"'igo.geo.draw.cancel' | translate\"\r\n [cpOKButton]=\"true\"\r\n (colorPickerChange)=\"styleModalData.strokeColor = $event\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\r\n <mat-label>{{ 'igo.geo.draw.fontSize' | translate }}</mat-label>\r\n <input\r\n matInput\r\n #testFontSize\r\n type=\"number\"\r\n placeholder=\"10\"\r\n min=\"10\"\r\n onkeydown=\"return event.keyCode !== 69\"\r\n [value]=\"getFeatureFontSize()\"\r\n (input)=\"styleModalData.fontSize = $event.target.value\">\r\n <span matSuffix>px</span>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\r\n <mat-label>{{ 'igo.geo.draw.fontStyle' | translate }}</mat-label>\r\n <mat-select\r\n #testFontStyle\r\n [value]=\"getFeatureFontStyle()\"\r\n (selectionChange)=\"styleModalData.fontStyle = $event.value\">\r\n <mat-option\r\n *ngFor=\"let fontSelect of allFontStyles\"\r\n [value]=\"fontSelect\">\r\n {{ fontSelect }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\r\n <mat-label>{{ 'igo.geo.draw.offsetX' | translate }}</mat-label>\r\n <input\r\n matInput\r\n #offsetXInput\r\n type=\"number\"\r\n onkeydown=\"return event.keyCode !== 69\"\r\n [value]=\"getFeatureOffsetX()\"\r\n (input)=\"styleModalData.offsetX = $event.target.value\">\r\n </mat-form-field>\r\n <mat-form-field appearance=\"outline\" class=\"igo-form-input-box\">\r\n <mat-label>{{ 'igo.geo.draw.offsetY' | translate }}</mat-label>\r\n <input\r\n matInput\r\n #offsetYInput\r\n type=\"number\"\r\n onkeydown=\"return event.keyCode !== 69\"\r\n [value]=\"getFeatureOffsetY()\"\r\n (input)=\"styleModalData.offsetY= $event.target.value\">\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button \r\n mat-raised-button \r\n (click)=\"cancelDrawing()\">{{'igo.geo.draw.cancel' | translate}}\r\n </button>\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n (click)=\"confirm()\">OK\r\n </button>\r\n</div>\r\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 +19557,9 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatInputM
|
|
|
18745
19557
|
LayerLegendListBindingDirective,
|
|
18746
19558
|
TrackFeatureButtonComponent,
|
|
18747
19559
|
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
|
|
19560
|
+
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
19561
|
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
|
|
19562
|
+
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
19563
|
LayerListToolComponent], [i1$1.AsyncPipe, i7.TranslatePipe]);
|
|
18752
19564
|
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
19565
|
|
|
@@ -20071,7 +20883,9 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
|
|
|
20071
20883
|
IgoEntityTableModule,
|
|
20072
20884
|
ColorPickerModule,
|
|
20073
20885
|
BrowserModule,
|
|
20074
|
-
BrowserAnimationsModule
|
|
20886
|
+
BrowserAnimationsModule,
|
|
20887
|
+
MatRadioModule,
|
|
20888
|
+
MatCheckboxModule] });
|
|
20075
20889
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoDrawModule, [{
|
|
20076
20890
|
type: NgModule,
|
|
20077
20891
|
args: [{
|
|
@@ -20096,7 +20910,9 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
|
|
|
20096
20910
|
IgoEntityTableModule,
|
|
20097
20911
|
ColorPickerModule,
|
|
20098
20912
|
BrowserModule,
|
|
20099
|
-
BrowserAnimationsModule
|
|
20913
|
+
BrowserAnimationsModule,
|
|
20914
|
+
MatRadioModule,
|
|
20915
|
+
MatCheckboxModule
|
|
20100
20916
|
],
|
|
20101
20917
|
declarations: [DrawComponent, DrawPopupComponent, DrawLayerPopupComponent, DrawShorcutsComponent],
|
|
20102
20918
|
exports: [DrawComponent]
|
|
@@ -20122,7 +20938,9 @@ IgoDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModul
|
|
|
20122
20938
|
IgoEntityTableModule,
|
|
20123
20939
|
ColorPickerModule,
|
|
20124
20940
|
BrowserModule,
|
|
20125
|
-
BrowserAnimationsModule
|
|
20941
|
+
BrowserAnimationsModule,
|
|
20942
|
+
MatRadioModule,
|
|
20943
|
+
MatCheckboxModule], exports: [DrawComponent] }); })();
|
|
20126
20944
|
|
|
20127
20945
|
class IgoDrawingToolModule {
|
|
20128
20946
|
}
|
|
@@ -22286,6 +23104,14 @@ class GeometryFormFieldInputComponent {
|
|
|
22286
23104
|
}
|
|
22287
23105
|
this.toggleControl();
|
|
22288
23106
|
}
|
|
23107
|
+
/**
|
|
23108
|
+
* Whether freehand draw control should be active or not
|
|
23109
|
+
*/
|
|
23110
|
+
get predefinedRadius() { return this._predefinedRadius; }
|
|
23111
|
+
set predefinedRadius(value) {
|
|
23112
|
+
this._predefinedRadius = value;
|
|
23113
|
+
this.drawControl.ispredefinedRadius$.next(value);
|
|
23114
|
+
}
|
|
22289
23115
|
/**
|
|
22290
23116
|
* Style for the draw control (applies while the geometry is being drawn)
|
|
22291
23117
|
*/
|
|
@@ -22666,7 +23492,7 @@ class GeometryFormFieldInputComponent {
|
|
|
22666
23492
|
}
|
|
22667
23493
|
}
|
|
22668
23494
|
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) {
|
|
23495
|
+
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
23496
|
i0.ɵɵtemplate(0, GeometryFormFieldInputComponent_ng_template_0_Template, 0, 0, "ng-template");
|
|
22671
23497
|
} }, encapsulation: 2, changeDetection: 0 });
|
|
22672
23498
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GeometryFormFieldInputComponent, [{
|
|
@@ -22688,6 +23514,8 @@ GeometryFormFieldInputComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
|
|
|
22688
23514
|
type: Input
|
|
22689
23515
|
}], freehandDrawIsActive: [{
|
|
22690
23516
|
type: Input
|
|
23517
|
+
}], predefinedRadius: [{
|
|
23518
|
+
type: Input
|
|
22691
23519
|
}], controlOptions: [{
|
|
22692
23520
|
type: Input
|
|
22693
23521
|
}], drawStyle: [{
|
|
@@ -23924,7 +24752,7 @@ TimeFilterListBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ ty
|
|
|
23924
24752
|
class WktService {
|
|
23925
24753
|
constructor() { }
|
|
23926
24754
|
wktToFeature(wkt, wktProj, featureProj) {
|
|
23927
|
-
return new
|
|
24755
|
+
return new olFormatWKT().readFeature(wkt, {
|
|
23928
24756
|
dataProjection: wktProj,
|
|
23929
24757
|
featureProjection: featureProj
|
|
23930
24758
|
});
|
|
@@ -27324,6 +28152,7 @@ class SpatialFilterItemComponent {
|
|
|
27324
28152
|
this.measureUnitChange = new EventEmitter();
|
|
27325
28153
|
this.radiusEvent = new EventEmitter();
|
|
27326
28154
|
this.freehandControl = new EventEmitter();
|
|
28155
|
+
this.predefinedRadius = new EventEmitter();
|
|
27327
28156
|
this.clearButtonEvent = new EventEmitter();
|
|
27328
28157
|
this.clearSearchEvent = new EventEmitter();
|
|
27329
28158
|
this.export = new EventEmitter();
|
|
@@ -27791,6 +28620,16 @@ class SpatialFilterItemComponent {
|
|
|
27791
28620
|
onfreehandControlChange() {
|
|
27792
28621
|
this.freehandDrawIsActive = !this.freehandDrawIsActive;
|
|
27793
28622
|
this.freehandControl.emit(this.freehandDrawIsActive);
|
|
28623
|
+
if (this.isPoint()) {
|
|
28624
|
+
this.predefinedRadius.emit(!this.freehandDrawIsActive);
|
|
28625
|
+
if (this.freehandDrawIsActive) {
|
|
28626
|
+
this.overlayStyle$.next(undefined);
|
|
28627
|
+
this.drawStyle$.next(undefined);
|
|
28628
|
+
}
|
|
28629
|
+
}
|
|
28630
|
+
else {
|
|
28631
|
+
this.predefinedRadius.emit(false);
|
|
28632
|
+
}
|
|
27794
28633
|
}
|
|
27795
28634
|
/**
|
|
27796
28635
|
* Launch search button
|
|
@@ -27979,7 +28818,7 @@ class SpatialFilterItemComponent {
|
|
|
27979
28818
|
}
|
|
27980
28819
|
}
|
|
27981
28820
|
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:
|
|
28821
|
+
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
28822
|
i0.ɵɵelement(0, "igo-geometry-form-field-input", 0);
|
|
27984
28823
|
i0.ɵɵpipe(1, "async");
|
|
27985
28824
|
i0.ɵɵpipe(2, "async");
|
|
@@ -28019,7 +28858,7 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28019
28858
|
i0.ɵɵtemplate(27, SpatialFilterItemComponent_button_27_Template, 3, 3, "button", 15);
|
|
28020
28859
|
i0.ɵɵtemplate(28, SpatialFilterItemComponent_div_28_Template, 3, 3, "div", 16);
|
|
28021
28860
|
} if (rf & 2) {
|
|
28022
|
-
i0.ɵɵproperty("formControl", ctx.formControl)("map", ctx.map)("geometryType", ctx.geometryType)("drawGuide", i0.ɵɵpipeBind1(1,
|
|
28861
|
+
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
28862
|
i0.ɵɵadvance(5);
|
|
28024
28863
|
i0.ɵɵproperty("ngIf", !ctx.isPredefined());
|
|
28025
28864
|
i0.ɵɵadvance(1);
|
|
@@ -28029,7 +28868,7 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28029
28868
|
i0.ɵɵadvance(1);
|
|
28030
28869
|
i0.ɵɵproperty("ngIf", ctx.isPoint());
|
|
28031
28870
|
i0.ɵɵadvance(2);
|
|
28032
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(11,
|
|
28871
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(11, 35, "igo.geo.spatialFilter.search"), " : ");
|
|
28033
28872
|
i0.ɵɵadvance(2);
|
|
28034
28873
|
i0.ɵɵproperty("value", ctx.selectedItemType);
|
|
28035
28874
|
i0.ɵɵadvance(1);
|
|
@@ -28043,15 +28882,15 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28043
28882
|
i0.ɵɵadvance(1);
|
|
28044
28883
|
i0.ɵɵproperty("disabled", ctx.disableSearchButton());
|
|
28045
28884
|
i0.ɵɵadvance(1);
|
|
28046
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20,
|
|
28885
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 37, "igo.geo.spatialFilter.goSearch"), " ");
|
|
28047
28886
|
i0.ɵɵadvance(2);
|
|
28048
28887
|
i0.ɵɵproperty("disabled", ctx.allLayers.length === 0);
|
|
28049
28888
|
i0.ɵɵadvance(1);
|
|
28050
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23,
|
|
28889
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 39, "igo.geo.spatialFilter.removeLayer"), " ");
|
|
28051
28890
|
i0.ɵɵadvance(2);
|
|
28052
28891
|
i0.ɵɵproperty("disabled", !ctx.store.entities$.getValue().length);
|
|
28053
28892
|
i0.ɵɵadvance(1);
|
|
28054
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26,
|
|
28893
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26, 41, "igo.geo.spatialFilter.exportLayer"), " ");
|
|
28055
28894
|
i0.ɵɵadvance(2);
|
|
28056
28895
|
i0.ɵɵproperty("ngIf", ctx.store.all().length && ctx.tableTemplate && !ctx.listIsVisible);
|
|
28057
28896
|
i0.ɵɵadvance(1);
|
|
@@ -28059,7 +28898,7 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28059
28898
|
} }, 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
28899
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SpatialFilterItemComponent, [{
|
|
28061
28900
|
type: Component,
|
|
28062
|
-
args: [{ selector: 'igo-spatial-filter-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-geometry-form-field-input\r\n [formControl]=\"formControl\"\r\n [map]=\"map\"\r\n [geometryType]=\"geometryType\"\r\n [drawGuide]=\"drawGuide$ | async\"\r\n [measure]=\"measure\"\r\n [drawControlIsActive]=\"drawControlIsActive\"\r\n [freehandDrawIsActive]=\"freehandDrawIsActive\"\r\n [drawStyle]=\"drawStyle$ | async\"\r\n [overlayStyle]=\"overlayStyle$ | async\"\r\n [radius]=\"radius\">\r\n</igo-geometry-form-field-input>\r\n\r\n<div class=\"header\">\r\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\r\n [checked]=\"drawControlIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onDrawControlChange()\">\r\n {{'igo.geo.spatialFilter.drawControl' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\r\n [checked]=\"freehandDrawIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onfreehandControlChange()\">\r\n {{'igo.geo.spatialFilter.freehandControl' | translate}}\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<div class=\"buffer-unit\" *ngIf=\"isPolygon()\">\r\n <form class=\"buffer-form\">\r\n <mat-form-field class=\"buffer\">\r\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.buffer' | translate}}\" [formControl]=\"bufferFormControl\"\r\n [value]=\"0\" [readonly]=\"this.formControl.value === null\">\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"measureUnit\"\r\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\r\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\r\n {{('igo.geo.measure.' + measureUnit) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n\r\n<div class=\"radius-unit\" *ngIf=\"isPoint()\">\r\n <form class=\"radius-form\">\r\n <mat-form-field class=\"radius\">\r\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.radius' | translate}}\" [formControl]=\"radiusFormControl\"\r\n [value]=\"1000\" (input)=\"getRadius()\" [readonly]=\"this.freehandDrawIsActive && this.formControl.value === null\">\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"measureUnit\"\r\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\r\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\r\n {{('igo.geo.measure.' + measureUnit) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n\r\n<mat-label class=\"title mat-typography\">{{'igo.geo.spatialFilter.search' | translate}} : </mat-label>\r\n<mat-radio-group [value]=\"selectedItemType\">\r\n <mat-radio-button *ngFor=\"let item of itemType\"\r\n [value]=\"item\"\r\n (change)=\"onItemTypeChange($event)\">\r\n {{'igo.geo.spatialFilter.' + item | translate}}\r\n </mat-radio-button>\r\n</mat-radio-group>\r\n\r\n<div class=\"thematics\" *ngIf=\"(selectedItemType==='Thematics' && !tableTemplate) || (selectedItemType==='Thematics' && tableTemplate && !listIsVisible)\">\r\n <mat-table>\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"name\">\r\n <mat-header-cell *matHeaderCellDef class=\"thematics-header\">{{'igo.geo.spatialFilter.Thematics' | translate}}</mat-header-cell>\r\n </ng-container>\r\n\r\n <!-- Select Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef class=\"checks-header\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"selectedThematics.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n </mat-table>\r\n\r\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\r\n <li class=\"mat-tree-node\">\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled></button>\r\n {{node.name}}\r\n <mat-checkbox class=\"tree-check\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onToggleChange(node) : null\"\r\n [checked]=\"selectedThematics.isSelected(node)\">\r\n </mat-checkbox>\r\n </li>\r\n </mat-tree-node>\r\n\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChild\">\r\n <div class=\"mat-tree-node\">\r\n <button mat-icon-button\r\n (click)=\"onToggleClick(node)\">\r\n <mat-icon [svgIcon]=\"treeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right'\"></mat-icon>\r\n </button>\r\n {{node.name}}\r\n <mat-checkbox class=\"tree-check-2\" (change)=\"$event ? childrensToggle(node) : null\"\r\n [checked]=\"isAllSelected(node)\"\r\n [indeterminate]=\"hasChildrenSelected(node) && !isAllSelected(node)\">\r\n </mat-checkbox>\r\n </div>\r\n <ul class=\"tree-ul\" [class.example-tree-invisible]=\"!treeControl.isExpanded(node)\">\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </ul>\r\n </mat-nested-tree-node>\r\n\r\n </mat-tree>\r\n</div>\r\n\r\n<div class=\"buttons\">\r\n\r\n <button *ngIf=\"isPredefined()\" mat-raised-button class=\"clear-search-button\" [disabled]=\"disabledClearSearch()\"\r\n (click)=\"clearSearch()\">\r\n {{'igo.geo.spatialFilter.clearSearch' | translate}}\r\n </button>\r\n\r\n <button *ngIf=\"isPolygon() || isPoint()\" mat-raised-button class=\"clear-form-button\" [disabled]=\"this.formControl.value === null\"\r\n (click)=\"clearDrawZone()\">\r\n {{'igo.geo.spatialFilter.clearForm' | translate}}\r\n </button>\r\n\r\n <button mat-raised-button class=\"search-button\" [disabled]=\"disableSearchButton()\" color=\"primary\"\r\n (click)=\"toggleSearchButton()\">\r\n {{'igo.geo.spatialFilter.goSearch' | translate}}\r\n </button>\r\n\r\n <button mat-raised-button class=\"remove-button\" [disabled]=\"allLayers.length === 0\" (click)=\"clearButton()\">\r\n {{'igo.geo.spatialFilter.removeLayer' | translate}}\r\n </button>\r\n\r\n <button mat-raised-button class=\"export-button\" [disabled]=\"!store.entities$.getValue().length\" (click)=\"export.emit()\">\r\n {{'igo.geo.spatialFilter.exportLayer' | translate}}\r\n </button>\r\n\r\n</div>\r\n\r\n<button\r\n class=\"chevron-down\"\r\n *ngIf=\"store.all().length && tableTemplate && !listIsVisible\"\r\n mat-icon-button\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.spatialFilter.showSearchResults' | translate\"\r\n (click)=\"toggleVisibleList()\">\r\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\r\n</button>\r\n\r\n<div class=\"results\" *ngIf=\"store.all().length && tableTemplate && listIsVisible\">\r\n <button\r\n *ngIf=\"listIsVisible\"\r\n mat-icon-button\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.spatialFilter.hideSearchResults' | translate\"\r\n (click)=\"toggleVisibleList()\">\r\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\r\n </button>\r\n <igo-entity-table\r\n class=\"results-list\"\r\n [template]=\"tableTemplate\"\r\n [store]=\"store\"\r\n (entitySelectChange)=\"entityChange.emit($event)\">\r\n </igo-entity-table>\r\n</div>\r\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"] }]
|
|
28901
|
+
args: [{ selector: 'igo-spatial-filter-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-geometry-form-field-input\r\n [formControl]=\"formControl\"\r\n [map]=\"map\"\r\n [geometryType]=\"geometryType\"\r\n [drawGuide]=\"drawGuide$ | async\"\r\n [measure]=\"measure\"\r\n [drawControlIsActive]=\"drawControlIsActive\"\r\n [freehandDrawIsActive]=\"freehandDrawIsActive\"\r\n [drawStyle]=\"drawStyle$ | async\"\r\n [overlayStyle]=\"overlayStyle$ | async\"\r\n [radius]=\"radius\"\r\n [predefinedRadius]=\"predefinedRadius\">\r\n</igo-geometry-form-field-input>\r\n\r\n<div class=\"header\">\r\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\r\n [checked]=\"drawControlIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onDrawControlChange()\">\r\n {{'igo.geo.spatialFilter.drawControl' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle *ngIf=\"!isPredefined()\"\r\n [checked]=\"freehandDrawIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onfreehandControlChange()\">\r\n {{'igo.geo.spatialFilter.freehandControl' | translate}}\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<div class=\"buffer-unit\" *ngIf=\"isPolygon()\">\r\n <form class=\"buffer-form\">\r\n <mat-form-field class=\"buffer\">\r\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.buffer' | translate}}\" [formControl]=\"bufferFormControl\"\r\n [value]=\"0\" [readonly]=\"this.formControl.value === null\">\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"measureUnit\"\r\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\r\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\r\n {{('igo.geo.measure.' + measureUnit) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n\r\n<div class=\"radius-unit\" *ngIf=\"isPoint()\">\r\n <form class=\"radius-form\">\r\n <mat-form-field class=\"radius\">\r\n <input type=\"number\" matInput placeholder=\"{{'igo.geo.spatialFilter.radius' | translate}}\" [formControl]=\"radiusFormControl\"\r\n [value]=\"1000\" (input)=\"getRadius()\" [readonly]=\"this.freehandDrawIsActive && this.formControl.value === null\">\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"measureUnit\"\r\n (selectionChange)=\"onMeasureUnitChange($event.value)\">\r\n <mat-option *ngFor=\"let measureUnit of measureUnits\" [value]=\"measureUnit\">\r\n {{('igo.geo.measure.' + measureUnit) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n\r\n<mat-label class=\"title mat-typography\">{{'igo.geo.spatialFilter.search' | translate}} : </mat-label>\r\n<mat-radio-group [value]=\"selectedItemType\">\r\n <mat-radio-button *ngFor=\"let item of itemType\"\r\n [value]=\"item\"\r\n (change)=\"onItemTypeChange($event)\">\r\n {{'igo.geo.spatialFilter.' + item | translate}}\r\n </mat-radio-button>\r\n</mat-radio-group>\r\n\r\n<div class=\"thematics\" *ngIf=\"(selectedItemType==='Thematics' && !tableTemplate) || (selectedItemType==='Thematics' && tableTemplate && !listIsVisible)\">\r\n <mat-table>\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"name\">\r\n <mat-header-cell *matHeaderCellDef class=\"thematics-header\">{{'igo.geo.spatialFilter.Thematics' | translate}}</mat-header-cell>\r\n </ng-container>\r\n\r\n <!-- Select Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef class=\"checks-header\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"selectedThematics.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n </mat-table>\r\n\r\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\r\n <li class=\"mat-tree-node\">\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled></button>\r\n {{node.name}}\r\n <mat-checkbox class=\"tree-check\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onToggleChange(node) : null\"\r\n [checked]=\"selectedThematics.isSelected(node)\">\r\n </mat-checkbox>\r\n </li>\r\n </mat-tree-node>\r\n\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChild\">\r\n <div class=\"mat-tree-node\">\r\n <button mat-icon-button\r\n (click)=\"onToggleClick(node)\">\r\n <mat-icon [svgIcon]=\"treeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right'\"></mat-icon>\r\n </button>\r\n {{node.name}}\r\n <mat-checkbox class=\"tree-check-2\" (change)=\"$event ? childrensToggle(node) : null\"\r\n [checked]=\"isAllSelected(node)\"\r\n [indeterminate]=\"hasChildrenSelected(node) && !isAllSelected(node)\">\r\n </mat-checkbox>\r\n </div>\r\n <ul class=\"tree-ul\" [class.example-tree-invisible]=\"!treeControl.isExpanded(node)\">\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </ul>\r\n </mat-nested-tree-node>\r\n\r\n </mat-tree>\r\n</div>\r\n\r\n<div class=\"buttons\">\r\n\r\n <button *ngIf=\"isPredefined()\" mat-raised-button class=\"clear-search-button\" [disabled]=\"disabledClearSearch()\"\r\n (click)=\"clearSearch()\">\r\n {{'igo.geo.spatialFilter.clearSearch' | translate}}\r\n </button>\r\n\r\n <button *ngIf=\"isPolygon() || isPoint()\" mat-raised-button class=\"clear-form-button\" [disabled]=\"this.formControl.value === null\"\r\n (click)=\"clearDrawZone()\">\r\n {{'igo.geo.spatialFilter.clearForm' | translate}}\r\n </button>\r\n\r\n <button mat-raised-button class=\"search-button\" [disabled]=\"disableSearchButton()\" color=\"primary\"\r\n (click)=\"toggleSearchButton()\">\r\n {{'igo.geo.spatialFilter.goSearch' | translate}}\r\n </button>\r\n\r\n <button mat-raised-button class=\"remove-button\" [disabled]=\"allLayers.length === 0\" (click)=\"clearButton()\">\r\n {{'igo.geo.spatialFilter.removeLayer' | translate}}\r\n </button>\r\n\r\n <button mat-raised-button class=\"export-button\" [disabled]=\"!store.entities$.getValue().length\" (click)=\"export.emit()\">\r\n {{'igo.geo.spatialFilter.exportLayer' | translate}}\r\n </button>\r\n\r\n</div>\r\n\r\n<button\r\n class=\"chevron-down\"\r\n *ngIf=\"store.all().length && tableTemplate && !listIsVisible\"\r\n mat-icon-button\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.spatialFilter.showSearchResults' | translate\"\r\n (click)=\"toggleVisibleList()\">\r\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\r\n</button>\r\n\r\n<div class=\"results\" *ngIf=\"store.all().length && tableTemplate && listIsVisible\">\r\n <button\r\n *ngIf=\"listIsVisible\"\r\n mat-icon-button\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.spatialFilter.hideSearchResults' | translate\"\r\n (click)=\"toggleVisibleList()\">\r\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\r\n </button>\r\n <igo-entity-table\r\n class=\"results-list\"\r\n [template]=\"tableTemplate\"\r\n [store]=\"store\"\r\n (entitySelectChange)=\"entityChange.emit($event)\">\r\n </igo-entity-table>\r\n</div>\r\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
28902
|
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: SpatialFilterService }, { type: i2$1.MessageService }, { type: i2$1.LanguageService }]; }, { map: [{
|
|
28064
28903
|
type: Input
|
|
28065
28904
|
}], type: [{
|
|
@@ -28096,6 +28935,8 @@ SpatialFilterItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
28096
28935
|
type: Output
|
|
28097
28936
|
}], freehandControl: [{
|
|
28098
28937
|
type: Output
|
|
28938
|
+
}], predefinedRadius: [{
|
|
28939
|
+
type: Output
|
|
28099
28940
|
}], clearButtonEvent: [{
|
|
28100
28941
|
type: Output
|
|
28101
28942
|
}], clearSearchEvent: [{
|
|
@@ -29343,15 +30184,15 @@ IgoFilterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TimeFi
|
|
|
29343
30184
|
i0.ɵɵsetComponentScope(TimeFilterButtonComponent, [i1$1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTooltip, i5$1.ListItemDirective, i7$1.MatBadge, TimeFilterItemComponent], [i7.TranslatePipe]);
|
|
29344
30185
|
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
30186
|
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
|
|
30187
|
+
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
30188
|
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
|
|
30189
|
+
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
30190
|
i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, OgcFilterFormComponent,
|
|
29350
30191
|
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
|
|
30192
|
+
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
30193
|
i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i1$1.NgForOf, i1$1.NgIf, i5$1.ListItemDirective, i5$1.ListComponent, OgcFilterableItemComponent], [i7.TranslatePipe, FilterableDataSourcePipe]);
|
|
29353
30194
|
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
|
|
30195
|
+
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
30196
|
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
30197
|
|
|
29357
30198
|
function ExportButtonComponent_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -29616,7 +30457,7 @@ class ExportService {
|
|
|
29616
30457
|
outputName = `${title}.csv`;
|
|
29617
30458
|
}
|
|
29618
30459
|
outputName = outputName.replace(' ', '_');
|
|
29619
|
-
outputName = outputName.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
30460
|
+
outputName = outputName.normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/’/g, "'");
|
|
29620
30461
|
outputNameField.setAttribute('type', 'hidden');
|
|
29621
30462
|
outputNameField.setAttribute('name', 'outputName');
|
|
29622
30463
|
outputNameField.setAttribute('value', outputName);
|
|
@@ -29936,21 +30777,34 @@ class ImportService {
|
|
|
29936
30777
|
constructor(http, config) {
|
|
29937
30778
|
this.http = http;
|
|
29938
30779
|
this.config = config;
|
|
29939
|
-
|
|
29940
|
-
|
|
30780
|
+
const importConfig = this.config.getConfig('importExport');
|
|
30781
|
+
this.ogreUrl = importConfig.url;
|
|
30782
|
+
const configFileSizeMb = importConfig.clientSideFileSizeMaxMb;
|
|
29941
30783
|
this.clientSideFileSizeMax = (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);
|
|
30784
|
+
if (importConfig.formats) {
|
|
30785
|
+
ImportService.allowedExtensions = importConfig.formats
|
|
30786
|
+
.map(format => ImportService.formatExtensionAssociation[format])
|
|
30787
|
+
.filter(e => e);
|
|
30788
|
+
if (ImportService.allowedExtensions.includes('geojson')) {
|
|
30789
|
+
ImportService.allowedExtensions.push('json');
|
|
30790
|
+
}
|
|
30791
|
+
}
|
|
29942
30792
|
}
|
|
29943
30793
|
import(file, projectionIn = 'EPSG:4326', projectionOut = 'EPSG:4326') {
|
|
29944
30794
|
return this.importAsync(file, projectionIn, projectionOut);
|
|
29945
30795
|
}
|
|
29946
30796
|
getFileImporter(file) {
|
|
29947
30797
|
const extension = getFileExtension(file);
|
|
30798
|
+
const allowedExtensions = ImportService.allowedExtensions;
|
|
30799
|
+
let zipMimeTypes = [];
|
|
30800
|
+
if (allowedExtensions.includes('zip')) {
|
|
30801
|
+
zipMimeTypes = ImportService.allowedZipMimeTypes;
|
|
30802
|
+
}
|
|
29948
30803
|
const mimeType = file.type;
|
|
29949
30804
|
const allowedMimeTypes = [
|
|
29950
30805
|
...ImportService.allowedMimeTypes,
|
|
29951
|
-
...
|
|
30806
|
+
...zipMimeTypes
|
|
29952
30807
|
];
|
|
29953
|
-
const allowedExtensions = ImportService.allowedExtensions;
|
|
29954
30808
|
if (allowedMimeTypes.indexOf(mimeType) < 0 &&
|
|
29955
30809
|
allowedExtensions.indexOf(extension) < 0) {
|
|
29956
30810
|
return undefined;
|
|
@@ -30096,6 +30950,13 @@ class ImportService {
|
|
|
30096
30950
|
return features;
|
|
30097
30951
|
}
|
|
30098
30952
|
}
|
|
30953
|
+
ImportService.formatExtensionAssociation = {
|
|
30954
|
+
GeoJSON: 'geojson',
|
|
30955
|
+
GML: 'gml',
|
|
30956
|
+
GPX: 'gpx',
|
|
30957
|
+
KML: 'kml',
|
|
30958
|
+
Shapefile: 'zip'
|
|
30959
|
+
};
|
|
30099
30960
|
ImportService.allowedMimeTypes = [
|
|
30100
30961
|
'application/gml+xml',
|
|
30101
30962
|
'application/vnd.google-earth.kml+xml',
|
|
@@ -30107,7 +30968,7 @@ ImportService.allowedZipMimeTypes = [
|
|
|
30107
30968
|
'application/x-zip-compressed',
|
|
30108
30969
|
'application/x-zip'
|
|
30109
30970
|
];
|
|
30110
|
-
ImportService.allowedExtensions = ['geojson', 'kml', 'gpx', 'json', 'gml'];
|
|
30971
|
+
ImportService.allowedExtensions = ['geojson', 'kml', 'gpx', 'json', 'gml', 'zip'];
|
|
30111
30972
|
ImportService.ɵfac = function ImportService_Factory(t) { return new (t || ImportService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(i2$1.ConfigService)); };
|
|
30112
30973
|
ImportService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ImportService, factory: ImportService.ɵfac, providedIn: 'root' });
|
|
30113
30974
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImportService, [{
|
|
@@ -31976,6 +32837,64 @@ IgoOverlayModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
|
|
31976
32837
|
}], null, null); })();
|
|
31977
32838
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoOverlayModule, { declarations: [OverlayDirective], exports: [OverlayDirective] }); })();
|
|
31978
32839
|
|
|
32840
|
+
/*
|
|
32841
|
+
* The MIT License (MIT)
|
|
32842
|
+
*
|
|
32843
|
+
* Copyright (c) 2016-2017 Dan "Ducky" Little
|
|
32844
|
+
*
|
|
32845
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
32846
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
32847
|
+
* in the Software without restriction, including without limitation the rights
|
|
32848
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32849
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
32850
|
+
* furnished to do so, subject to the following conditions:
|
|
32851
|
+
*
|
|
32852
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
32853
|
+
* copies or substantial portions of the Software.
|
|
32854
|
+
*
|
|
32855
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
32856
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
32857
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32858
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
32859
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32860
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32861
|
+
* SOFTWARE.
|
|
32862
|
+
*/
|
|
32863
|
+
function jsGeoPdfPlugin(jsPDFAPI) {
|
|
32864
|
+
const setGeoArea = function (pdfExt, geoExt) {
|
|
32865
|
+
const bbox = pdfExt.join(' ');
|
|
32866
|
+
// the ordering may seem odd here but PDF
|
|
32867
|
+
// flips the Y axis upside down and this accounts for that
|
|
32868
|
+
// change.
|
|
32869
|
+
const minx = geoExt[0];
|
|
32870
|
+
const maxx = geoExt[2];
|
|
32871
|
+
const maxy = geoExt[1];
|
|
32872
|
+
const miny = geoExt[3];
|
|
32873
|
+
const bounds = [miny, minx, maxy, minx, maxy, maxx, miny, maxx].join(' ');
|
|
32874
|
+
const bbox_obj = this.internal.newAdditionalObject();
|
|
32875
|
+
const bounds_obj = this.internal.newAdditionalObject();
|
|
32876
|
+
const proj_obj = this.internal.newAdditionalObject();
|
|
32877
|
+
proj_obj.content = '<< /EPSG 3857 /Type /PROJCS /WKT (PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere"' +
|
|
32878
|
+
',+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0]' +
|
|
32879
|
+
',UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0]' +
|
|
32880
|
+
',PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0]' +
|
|
32881
|
+
',PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]) >>';
|
|
32882
|
+
bounds_obj.content = '<< /Bounds [ 0 1 0 0 1 0 1 1 ] /GCS ' +
|
|
32883
|
+
proj_obj.objId + ' 0 R /GPTS [ ' + bounds + ' ] /LPTS [ 0 1 0 0 1 0 1 1 ] /Subtype /GEO /Type /Measure >>';
|
|
32884
|
+
bbox_obj.content = '<< /BBox [ ' + bbox + ' ] /Measure ' + bounds_obj.objId + ' 0 R /Name (Layer) /Type /Viewport >>';
|
|
32885
|
+
const title_obj = this.internal.newAdditionalObject();
|
|
32886
|
+
const date = new Date().toLocaleDateString('en-CA');
|
|
32887
|
+
title_obj.content = '<< /Name IGO2 /Type OCG /Date ' + date + ' >>';
|
|
32888
|
+
return bbox_obj.objId;
|
|
32889
|
+
};
|
|
32890
|
+
jsPDFAPI.setGeoArea = function (pdfExt, geoExt) {
|
|
32891
|
+
this.internal.events.subscribe('putPage', function () {
|
|
32892
|
+
const bbox_id = setGeoArea.call(this, pdfExt, geoExt);
|
|
32893
|
+
this.internal.write('/VP [ ' + bbox_id + ' 0 R ]');
|
|
32894
|
+
});
|
|
32895
|
+
};
|
|
32896
|
+
}
|
|
32897
|
+
|
|
31979
32898
|
class PrintService {
|
|
31980
32899
|
constructor(http, messageService, activityService, languageService, configService) {
|
|
31981
32900
|
this.http = http;
|
|
@@ -31983,6 +32902,15 @@ class PrintService {
|
|
|
31983
32902
|
this.activityService = activityService;
|
|
31984
32903
|
this.languageService = languageService;
|
|
31985
32904
|
this.configService = configService;
|
|
32905
|
+
this.TEXTPDFFONT = {
|
|
32906
|
+
titleFont: 'Times',
|
|
32907
|
+
titleFontStyle: 'bold',
|
|
32908
|
+
subtitleFont: 'Times',
|
|
32909
|
+
subtitleFontStyle: 'bold',
|
|
32910
|
+
commentFont: 'courier',
|
|
32911
|
+
commentFontStyle: 'normal',
|
|
32912
|
+
commentFontSize: 16
|
|
32913
|
+
};
|
|
31986
32914
|
}
|
|
31987
32915
|
print(map, options) {
|
|
31988
32916
|
const status$ = new Subject();
|
|
@@ -31991,9 +32919,11 @@ class PrintService {
|
|
|
31991
32919
|
const orientation = options.orientation;
|
|
31992
32920
|
const legendPostion = options.legendPosition;
|
|
31993
32921
|
this.activityId = this.activityService.register();
|
|
31994
|
-
|
|
32922
|
+
jsGeoPdfPlugin(jsPDF.API);
|
|
32923
|
+
const doc = new jsPDF({
|
|
31995
32924
|
orientation,
|
|
31996
|
-
format: paperFormat.toLowerCase()
|
|
32925
|
+
format: paperFormat.toLowerCase(),
|
|
32926
|
+
unit: 'mm' // default
|
|
31997
32927
|
});
|
|
31998
32928
|
const dimensions = [
|
|
31999
32929
|
doc.internal.pageSize.width,
|
|
@@ -32003,17 +32933,21 @@ class PrintService {
|
|
|
32003
32933
|
const width = dimensions[0] - margins[3] - margins[1];
|
|
32004
32934
|
const height = dimensions[1] - margins[0] - margins[2];
|
|
32005
32935
|
const size = [width, height];
|
|
32006
|
-
let
|
|
32936
|
+
let titleSizes;
|
|
32937
|
+
let subtitleSizes;
|
|
32938
|
+
// PDF title
|
|
32007
32939
|
if (options.title !== undefined) {
|
|
32008
|
-
|
|
32009
|
-
this.
|
|
32940
|
+
const fontSizeInPt = Math.round(2 * (height + 145) * 0.05) / 2; //calculate the fontSize title from the page height.
|
|
32941
|
+
titleSizes = this.getTextPdfObjectSizeAndMarg(options.title, margins, this.TEXTPDFFONT.titleFont, fontSizeInPt, this.TEXTPDFFONT.titleFontStyle, doc);
|
|
32942
|
+
this.addTextInPdfDoc(doc, options.title, this.TEXTPDFFONT.titleFont, this.TEXTPDFFONT.titleFontStyle, titleSizes.fontSize, titleSizes.marginLeft + margins[3], margins[0]);
|
|
32943
|
+
margins[0] = titleSizes.height + margins[0]; // cumulative margin top for next elem to place in pdf doc
|
|
32010
32944
|
}
|
|
32945
|
+
// PDF subtitle
|
|
32011
32946
|
if (options.subtitle !== undefined) {
|
|
32012
|
-
|
|
32013
|
-
|
|
32014
|
-
|
|
32015
|
-
|
|
32016
|
-
margins[0] = margins[0] + titleSizeResults[0] * 0.7 * (25.4 / 72);
|
|
32947
|
+
subtitleSizes = this.getTextPdfObjectSizeAndMarg(options.subtitle, margins, this.TEXTPDFFONT.subtitleFont, titleSizes.fontSize * 0.7, // 70% size of title
|
|
32948
|
+
this.TEXTPDFFONT.subtitleFontStyle, doc);
|
|
32949
|
+
this.addTextInPdfDoc(doc, options.subtitle, this.TEXTPDFFONT.subtitleFont, this.TEXTPDFFONT.subtitleFontStyle, subtitleSizes.fontSize, subtitleSizes.marginLeft + margins[3], margins[0]);
|
|
32950
|
+
margins[0] += 5; // cumulative marg top for next elem to place in pdf doc. 5 is a fix it could be adjust
|
|
32017
32951
|
}
|
|
32018
32952
|
if (options.showProjection === true || options.showScale === true) {
|
|
32019
32953
|
this.addProjScale(doc, map, resolution, options.showProjection, options.showScale);
|
|
@@ -32025,6 +32959,10 @@ class PrintService {
|
|
|
32025
32959
|
if (status === SubjectStatus.Done) {
|
|
32026
32960
|
await this.addScale(doc, map, margins);
|
|
32027
32961
|
await this.handleMeasureLayer(doc, map, margins);
|
|
32962
|
+
const width = this.imgSizeAdded[0];
|
|
32963
|
+
const height = this.imgSizeAdded[1];
|
|
32964
|
+
const res = 1;
|
|
32965
|
+
this.addGeoRef(doc, map, width, height, res, margins);
|
|
32028
32966
|
if (options.legendPosition !== 'none') {
|
|
32029
32967
|
if (['topleft', 'topright', 'bottomleft', 'bottomright'].indexOf(options.legendPosition) > -1) {
|
|
32030
32968
|
await this.addLegendSamePage(doc, map, margins, resolution, options.legendPosition);
|
|
@@ -32044,6 +32982,20 @@ class PrintService {
|
|
|
32044
32982
|
});
|
|
32045
32983
|
return status$;
|
|
32046
32984
|
}
|
|
32985
|
+
// ref GeoMoose https://github.com/geomoose/gm3/tree/main/src/gm3/components/print
|
|
32986
|
+
addGeoRef(doc, map, width, height, resolution, margins) {
|
|
32987
|
+
const unit = 'mm';
|
|
32988
|
+
const docHeight = doc.internal.pageSize.getHeight();
|
|
32989
|
+
// x,y = margin left-bottom corner for img in pdf doc
|
|
32990
|
+
const x = margins[3];
|
|
32991
|
+
const y = docHeight - margins[0] - height;
|
|
32992
|
+
let pdf_extents = [x, y, x + width, y + height];
|
|
32993
|
+
for (let i = 0; i < pdf_extents.length; i++) {
|
|
32994
|
+
pdf_extents[i] = this.pdf_units2points(pdf_extents[i], unit);
|
|
32995
|
+
}
|
|
32996
|
+
const mapExtent = map.viewController.getExtent('EPSG:3857');
|
|
32997
|
+
doc.setGeoArea(pdf_extents, mapExtent);
|
|
32998
|
+
}
|
|
32047
32999
|
/**
|
|
32048
33000
|
* Add measure overlay on the map on the document when the measure layer is present
|
|
32049
33001
|
* @param doc - Pdf document where measure tooltip will be added
|
|
@@ -32163,66 +33115,46 @@ class PrintService {
|
|
|
32163
33115
|
}
|
|
32164
33116
|
return status$;
|
|
32165
33117
|
}
|
|
32166
|
-
|
|
33118
|
+
getTextPdfObjectSizeAndMarg(text, margins, font, fontSizeInPt, fontStyle, doc) {
|
|
32167
33119
|
const pdfResolution = 96;
|
|
32168
|
-
const
|
|
32169
|
-
|
|
32170
|
-
|
|
32171
|
-
|
|
32172
|
-
|
|
32173
|
-
let
|
|
32174
|
-
let
|
|
32175
|
-
if (
|
|
32176
|
-
|
|
32177
|
-
|
|
32178
|
-
|
|
32179
|
-
|
|
32180
|
-
|
|
32181
|
-
}
|
|
33120
|
+
const docWidth = doc.internal.pageSize.getWidth();
|
|
33121
|
+
const pageWidth = docWidth - margins[1] - margins[3];
|
|
33122
|
+
// important to set it first, the textDimension change when font change!
|
|
33123
|
+
doc.setFont(font, fontStyle);
|
|
33124
|
+
doc.setFontSize(fontSizeInPt);
|
|
33125
|
+
let textDimensions = doc.getTextDimensions(text);
|
|
33126
|
+
let textMarginLeft;
|
|
33127
|
+
if (textDimensions.w > pageWidth) {
|
|
33128
|
+
// if the text is to long, reduce fontSize 70% and the overflow with be cut in print...
|
|
33129
|
+
textMarginLeft = 0;
|
|
33130
|
+
fontSizeInPt = fontSizeInPt * 0.7;
|
|
33131
|
+
doc.setFontSize(fontSizeInPt);
|
|
33132
|
+
textDimensions = doc.getTextDimensions(text);
|
|
32182
33133
|
}
|
|
32183
33134
|
else {
|
|
32184
|
-
|
|
32185
|
-
titleFontSize = titleSize;
|
|
33135
|
+
textMarginLeft = (pageWidth - textDimensions.w) / 2;
|
|
32186
33136
|
}
|
|
32187
|
-
return
|
|
32188
|
-
|
|
32189
|
-
|
|
32190
|
-
|
|
32191
|
-
|
|
32192
|
-
const subtitleWidth = doc.getStringUnitWidth(subtitle) * subtitleSize / doc.internal.scaleFactor;
|
|
32193
|
-
let subtitleMarginLeft;
|
|
32194
|
-
if (subtitleWidth >= (pageWidth)) {
|
|
32195
|
-
subtitleMarginLeft = 0;
|
|
32196
|
-
}
|
|
32197
|
-
else {
|
|
32198
|
-
subtitleMarginLeft = (pageWidth - subtitleWidth) / 2;
|
|
32199
|
-
}
|
|
32200
|
-
return subtitleMarginLeft;
|
|
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);
|
|
33137
|
+
return {
|
|
33138
|
+
'fontSize': fontSizeInPt,
|
|
33139
|
+
'marginLeft': textMarginLeft,
|
|
33140
|
+
'height': textDimensions.h
|
|
33141
|
+
};
|
|
32211
33142
|
}
|
|
32212
33143
|
/**
|
|
32213
33144
|
* Add comment to the document
|
|
32214
33145
|
* * @param doc - pdf document
|
|
32215
33146
|
* * @param comment - Comment to add in the document
|
|
32216
|
-
* * @param size - Size of the document
|
|
32217
33147
|
*/
|
|
32218
33148
|
addComment(doc, comment) {
|
|
32219
|
-
const
|
|
32220
|
-
const
|
|
32221
|
-
const
|
|
32222
|
-
|
|
32223
|
-
|
|
32224
|
-
|
|
32225
|
-
doc.
|
|
33149
|
+
const commentMarginLeft = 20; //margin left and bottom is fix
|
|
33150
|
+
const commentMarginBottom = 5;
|
|
33151
|
+
const marginTop = doc.internal.pageSize.height - commentMarginBottom;
|
|
33152
|
+
this.addTextInPdfDoc(doc, comment, this.TEXTPDFFONT.commentFont, this.TEXTPDFFONT.commentFontStyle, this.TEXTPDFFONT.commentFontSize, commentMarginLeft, marginTop);
|
|
33153
|
+
}
|
|
33154
|
+
addTextInPdfDoc(doc, textToAdd, textFont, textFontStyle, textFontSize, textMarginLeft, textMarginTop) {
|
|
33155
|
+
doc.setFont(textFont, textFontStyle);
|
|
33156
|
+
doc.setFontSize(textFontSize);
|
|
33157
|
+
doc.text(textToAdd, textMarginLeft, textMarginTop);
|
|
32226
33158
|
}
|
|
32227
33159
|
/**
|
|
32228
33160
|
* Add projection and/or scale to the document
|
|
@@ -32394,9 +33326,14 @@ class PrintService {
|
|
|
32394
33326
|
image = canvas.toDataURL('image/png');
|
|
32395
33327
|
}
|
|
32396
33328
|
if (image !== undefined) {
|
|
33329
|
+
if (image.length < 20) { // img is corrupt todo: fix addScale in mobile make a corrupt img
|
|
33330
|
+
console.log('Warning: An image cannot be print in pdf file');
|
|
33331
|
+
return;
|
|
33332
|
+
}
|
|
32397
33333
|
const imageSize = this.getImageSizeToFitPdf(doc, canvas, margins);
|
|
32398
33334
|
doc.addImage(image, 'PNG', margins[3], margins[0], imageSize[0], imageSize[1]);
|
|
32399
33335
|
doc.rect(margins[3], margins[0], imageSize[0], imageSize[1]);
|
|
33336
|
+
this.imgSizeAdded = imageSize; // keep img size for georef later
|
|
32400
33337
|
}
|
|
32401
33338
|
}
|
|
32402
33339
|
// TODO fix printing with image resolution
|
|
@@ -32630,7 +33567,7 @@ class PrintService {
|
|
|
32630
33567
|
* @param doc - Document to save
|
|
32631
33568
|
*/
|
|
32632
33569
|
async saveDoc(doc) {
|
|
32633
|
-
await doc.save('
|
|
33570
|
+
await doc.save('map_georef.pdf', { returnPromise: true });
|
|
32634
33571
|
}
|
|
32635
33572
|
/**
|
|
32636
33573
|
* Calculate the best Image size to fit in pdf
|
|
@@ -32642,8 +33579,8 @@ class PrintService {
|
|
|
32642
33579
|
// Define variable to calculate best size to fit in one page
|
|
32643
33580
|
const pageHeight = doc.internal.pageSize.getHeight() - (margins[0] + margins[2]);
|
|
32644
33581
|
const pageWidth = doc.internal.pageSize.getWidth() - (margins[1] + margins[3]);
|
|
32645
|
-
const canHeight = canvas.height;
|
|
32646
|
-
const canWidth = canvas.width;
|
|
33582
|
+
const canHeight = this.pdf_units2points(canvas.height, 'mm');
|
|
33583
|
+
const canWidth = this.pdf_units2points(canvas.width, 'mm');
|
|
32647
33584
|
const heightRatio = canHeight / pageHeight;
|
|
32648
33585
|
const widthRatio = canWidth / pageWidth;
|
|
32649
33586
|
const maxRatio = heightRatio > widthRatio ? heightRatio : widthRatio;
|
|
@@ -32759,6 +33696,41 @@ class PrintService {
|
|
|
32759
33696
|
delete that.zipFile;
|
|
32760
33697
|
});
|
|
32761
33698
|
}
|
|
33699
|
+
pdf_units2points(n, unit) {
|
|
33700
|
+
let k = 1;
|
|
33701
|
+
// this code is borrowed from jsPDF
|
|
33702
|
+
// as it does not expose a public API
|
|
33703
|
+
// for converting units to points.
|
|
33704
|
+
switch (unit) {
|
|
33705
|
+
case 'pt':
|
|
33706
|
+
k = 1;
|
|
33707
|
+
break;
|
|
33708
|
+
case 'mm':
|
|
33709
|
+
k = 72 / 25.4;
|
|
33710
|
+
break;
|
|
33711
|
+
case 'cm':
|
|
33712
|
+
k = 72 / 2.54;
|
|
33713
|
+
break;
|
|
33714
|
+
case 'in':
|
|
33715
|
+
k = 72;
|
|
33716
|
+
break;
|
|
33717
|
+
case 'px':
|
|
33718
|
+
k = 96 / 72;
|
|
33719
|
+
break;
|
|
33720
|
+
case 'pc':
|
|
33721
|
+
k = 12;
|
|
33722
|
+
break;
|
|
33723
|
+
case 'em':
|
|
33724
|
+
k = 12;
|
|
33725
|
+
break;
|
|
33726
|
+
case 'ex':
|
|
33727
|
+
k = 6;
|
|
33728
|
+
break;
|
|
33729
|
+
default:
|
|
33730
|
+
throw new Error('Invalid unit: ' + unit);
|
|
33731
|
+
}
|
|
33732
|
+
return n * k;
|
|
33733
|
+
}
|
|
32762
33734
|
}
|
|
32763
33735
|
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
33736
|
PrintService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrintService, factory: PrintService.ɵfac, providedIn: 'root' });
|
|
@@ -37110,7 +38082,7 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
|
|
|
37110
38082
|
i0.ɵɵproperty("ngForOf", ctx.getSearchSources());
|
|
37111
38083
|
i0.ɵɵadvance(1);
|
|
37112
38084
|
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
|
|
38085
|
+
} }, 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
38086
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
|
|
37115
38087
|
type: Component,
|
|
37116
38088
|
args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\r\n\r\n <button\r\n mat-icon-button\r\n class=\"igo-search-settings-button\"\r\n color=\"primary\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\r\n [matMenuTriggerFor]=\"searchSettingsMenu\">\r\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\r\n </button>\r\n <mat-menu\r\n #searchSettingsMenu=\"matMenu\"\r\n class=\"no-border-radius\">\r\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\r\n <button mat-raised-button\r\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\r\n </div>\r\n <ng-container *ngFor=\"let source of getSearchSources()\">\r\n <span class=\"igo-search-settings-search-source\">\r\n <mat-checkbox\r\n class=\"igo-search-settings-checkbox\"\r\n [checked]=\"source.enabled\"\r\n [value]=\"source\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"onCheckSearchSource($event, source)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\r\n [matMenuTriggerFor]=\"sub_menu\"\r\n mat-menu-item>{{source.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\r\n {{source.title}}\r\n </button>\r\n </span>\r\n <mat-menu #sub_menu=\"matMenu\">\r\n <ng-container *ngFor=\"let setting of source.settings\">\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"test_sub_menu\">\r\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\r\n </button>\r\n <mat-menu #test_sub_menu=\"matMenu\"\r\n [ngSwitch]=\"setting.type\"\r\n yPosition=\"above\">\r\n <span *ngSwitchCase=\"'radiobutton'\">\r\n <mat-radio-group\r\n class=\"igo-search-settings-radio-group\"\r\n [value]=\"setting\">\r\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\r\n class=\"mat-typography\"\r\n [value]=\"settingValue\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n [checked]=\"settingValue.enabled\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </span>\r\n <span *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\r\n <button mat-raised-button\r\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>\r\n </div>\r\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\r\n class=\"mat-menu-item\"\r\n [style.display]=\"displayBlock\"\r\n [checked]=\"settingValue.enabled\"\r\n [value]=\"setting\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-checkbox>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\r\n <mat-divider></mat-divider>\r\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\r\n </mat-slide-toggle>\r\n </span>\r\n </span>\r\n </mat-menu>\r\n</div>\r\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"] }]
|
|
@@ -41103,138 +42075,6 @@ function provideOsrmDirectionsSource() {
|
|
|
41103
42075
|
};
|
|
41104
42076
|
}
|
|
41105
42077
|
|
|
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
42078
|
/**
|
|
41239
42079
|
* Nominatim search source
|
|
41240
42080
|
*/
|
|
@@ -41994,7 +42834,7 @@ class ConfigFileToGeoDBService {
|
|
|
41994
42834
|
}
|
|
41995
42835
|
if (currentDate >= geoData.triggerDate) {
|
|
41996
42836
|
if (geoData.action === 'update') {
|
|
41997
|
-
const insertEvent = `${geoData.source ||
|
|
42837
|
+
const insertEvent = `${geoData.source || InsertSourceInsertDBEnum.System} (${geoData.triggerDate})`;
|
|
41998
42838
|
geoData.urls.map((url) => {
|
|
41999
42839
|
datas$.push(this.geoDBService.getByID(url).pipe(concatMap((res) => {
|
|
42000
42840
|
if (res?.insertEvent !== insertEvent) {
|
|
@@ -42003,8 +42843,31 @@ class ConfigFileToGeoDBService {
|
|
|
42003
42843
|
.info('igo.geo.indexedDb.data-download-start', undefined, { disableTimeOut: true, progressBar: false, closeButton: true, tapToDismiss: false });
|
|
42004
42844
|
firstDownload = false;
|
|
42005
42845
|
}
|
|
42006
|
-
|
|
42007
|
-
|
|
42846
|
+
let responseType = 'json';
|
|
42847
|
+
const isZip = this.isZip(url);
|
|
42848
|
+
if (isZip) {
|
|
42849
|
+
responseType = 'arraybuffer';
|
|
42850
|
+
}
|
|
42851
|
+
return this.http.get(url, { responseType }).pipe(concatMap(r => {
|
|
42852
|
+
if (isZip) {
|
|
42853
|
+
const observables$ = [this.geoDBService.update(url, url, {}, InsertSourceInsertDBEnum.System, insertEvent)];
|
|
42854
|
+
JSZip.loadAsync(r)
|
|
42855
|
+
.then((zipped) => {
|
|
42856
|
+
zipped.forEach((relativePath) => {
|
|
42857
|
+
if (relativePath.toLocaleLowerCase().endsWith('.geojson')) {
|
|
42858
|
+
zipped.file(relativePath).async("base64").then((r) => {
|
|
42859
|
+
const geojson = JSON.parse(atob(r));
|
|
42860
|
+
const subUrl = geoData.zippedBaseUrl || '';
|
|
42861
|
+
const zippedUrl = subUrl + (subUrl.endsWith('/') ? '' : '/') + relativePath;
|
|
42862
|
+
observables$.push(this.geoDBService.update(zippedUrl, url, geojson, InsertSourceInsertDBEnum.System, insertEvent));
|
|
42863
|
+
});
|
|
42864
|
+
}
|
|
42865
|
+
});
|
|
42866
|
+
});
|
|
42867
|
+
return zip(observables$);
|
|
42868
|
+
}
|
|
42869
|
+
return this.geoDBService.update(url, url, r, InsertSourceInsertDBEnum.System, insertEvent);
|
|
42870
|
+
}));
|
|
42008
42871
|
}
|
|
42009
42872
|
else {
|
|
42010
42873
|
return of(false);
|
|
@@ -42030,6 +42893,10 @@ class ConfigFileToGeoDBService {
|
|
|
42030
42893
|
}
|
|
42031
42894
|
});
|
|
42032
42895
|
}
|
|
42896
|
+
isZip(value) {
|
|
42897
|
+
const regex = /(zip)$/;
|
|
42898
|
+
return typeof value === 'string' && regex.test(value.toLowerCase());
|
|
42899
|
+
}
|
|
42033
42900
|
}
|
|
42034
42901
|
ConfigFileToGeoDBService.ɵfac = function ConfigFileToGeoDBService_Factory(t) { return new (t || ConfigFileToGeoDBService)(i0.ɵɵinject(i1$2.HttpClient), i0.ɵɵinject(GeoDBService), i0.ɵɵinject(i2$1.MessageService)); };
|
|
42035
42902
|
ConfigFileToGeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ConfigFileToGeoDBService, factory: ConfigFileToGeoDBService.ɵfac, providedIn: 'root' });
|
|
@@ -42048,5 +42915,5 @@ ConfigFileToGeoDBService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token:
|
|
|
42048
42915
|
* Generated bundle index. Do not edit.
|
|
42049
42916
|
*/
|
|
42050
42917
|
|
|
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 };
|
|
42918
|
+
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
42919
|
//# sourceMappingURL=igo2-geo.mjs.map
|