@igo2/context 20.2.0 → 21.0.0-next.10
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/fesm2022/igo2-context.mjs +356 -490
- package/fesm2022/igo2-context.mjs.map +1 -1
- package/package.json +16 -15
- package/{index.d.ts → types/igo2-context.d.ts} +164 -184
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable, input, Component, NgModule, output, computed, Directive, ChangeDetectionStrategy, viewChild, model, Input, DestroyRef, signal, ChangeDetectorRef } from '@angular/core';
|
|
3
|
-
import { DOCUMENT, AsyncPipe,
|
|
3
|
+
import { DOCUMENT, AsyncPipe, KeyValuePipe } from '@angular/common';
|
|
4
4
|
import * as i1$1 from '@angular/forms';
|
|
5
5
|
import { UntypedFormBuilder, Validators, FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
|
|
6
6
|
import * as i4 from '@angular/material/button';
|
|
@@ -25,7 +25,7 @@ import { HttpParams, HttpClient } from '@angular/common/http';
|
|
|
25
25
|
import { AuthService } from '@igo2/auth';
|
|
26
26
|
import { RouteService } from '@igo2/core/route';
|
|
27
27
|
import { StorageService } from '@igo2/core/storage';
|
|
28
|
-
import { QueryFormat, isLayerGroupOptions, ID_GROUP_PREFIX, isLayerGroup, isLayerItem, getLayerOptionIdentifier, findParentId, generateIdFromSourceOptions, ExportService, FeatureDataSource,
|
|
28
|
+
import { QueryFormat, isLayerGroupOptions, ID_GROUP_PREFIX, isLayerGroup, isLayerItem, getLayerOptionIdentifier, findParentId, generateIdFromSourceOptions, ExportService, FeatureDataSource, VectorLayer, randomOlFlatStyle, MapBrowserComponent, LayerService, sortLayersByZindex, mergeLayersOptions, MapService, isLayerItemOptions, moveToOlFeatures, FeatureMotion, FeatureDetailsComponent } from '@igo2/geo';
|
|
29
29
|
import { ObjectUtils, uuid, downloadContent } from '@igo2/utils';
|
|
30
30
|
import GeoJSON from 'ol/format/GeoJSON';
|
|
31
31
|
import olPoint from 'ol/geom/Point';
|
|
@@ -256,13 +256,13 @@ function stringifyType(value) {
|
|
|
256
256
|
function parseLayerType(params, key) {
|
|
257
257
|
const param = extractParam(params, key);
|
|
258
258
|
if (!param) {
|
|
259
|
-
return;
|
|
259
|
+
return undefined;
|
|
260
260
|
}
|
|
261
261
|
const type = Number(param);
|
|
262
262
|
return ServiceTypeEnum[type];
|
|
263
263
|
}
|
|
264
|
-
function stringifyCenter(
|
|
265
|
-
return
|
|
264
|
+
function stringifyCenter(value) {
|
|
265
|
+
return value.map(formatNumber).join(',');
|
|
266
266
|
}
|
|
267
267
|
function parseCenter(params) {
|
|
268
268
|
if (!params?.startsWith('@')) {
|
|
@@ -278,7 +278,7 @@ function parseCenter(params) {
|
|
|
278
278
|
function parseRotation(params, key) {
|
|
279
279
|
const param = extractParam(params, key);
|
|
280
280
|
if (!param) {
|
|
281
|
-
return;
|
|
281
|
+
return undefined;
|
|
282
282
|
}
|
|
283
283
|
const degree = parseInteger(param);
|
|
284
284
|
return (degree * Math.PI) / 180;
|
|
@@ -286,21 +286,21 @@ function parseRotation(params, key) {
|
|
|
286
286
|
function parseIntergerParam(params, key) {
|
|
287
287
|
const param = extractParam(params, key);
|
|
288
288
|
if (!param) {
|
|
289
|
-
return;
|
|
289
|
+
return undefined;
|
|
290
290
|
}
|
|
291
291
|
return parseInteger(param);
|
|
292
292
|
}
|
|
293
293
|
function parseBooleanParam(params, key) {
|
|
294
294
|
const param = extractParam(params, key);
|
|
295
295
|
if (!param) {
|
|
296
|
-
return;
|
|
296
|
+
return undefined;
|
|
297
297
|
}
|
|
298
298
|
return parseBoolean(param);
|
|
299
299
|
}
|
|
300
300
|
function parseFloatParam(params, key) {
|
|
301
301
|
const param = extractParam(params, key);
|
|
302
302
|
if (!param) {
|
|
303
|
-
return;
|
|
303
|
+
return undefined;
|
|
304
304
|
}
|
|
305
305
|
return parseFloat(param);
|
|
306
306
|
}
|
|
@@ -343,7 +343,9 @@ function buildDataSourceOptions(type, url, layers, version) {
|
|
|
343
343
|
const arcgisClause = type === 'arcgisrest' ||
|
|
344
344
|
type === 'imagearcgisrest' ||
|
|
345
345
|
type === 'tilearcgisrest';
|
|
346
|
-
const params = type === 'wms'
|
|
346
|
+
const params = type === 'wms'
|
|
347
|
+
? { LAYERS: layers.join(','), ...(version ? { VERSION: version } : {}) }
|
|
348
|
+
: undefined;
|
|
347
349
|
const layer = isLayerType ? layers.join(',') : undefined;
|
|
348
350
|
const baseParams = {
|
|
349
351
|
type: type,
|
|
@@ -418,7 +420,7 @@ class ShareMapEncoder {
|
|
|
418
420
|
const layers = [
|
|
419
421
|
map.layerController.baseLayer,
|
|
420
422
|
...map.layerController.layersFlattened
|
|
421
|
-
].filter(
|
|
423
|
+
].filter((l) => !!l);
|
|
422
424
|
const urlParams = this.getBaseUrlConfig(map.viewController);
|
|
423
425
|
this.buildQueryUrl(layers, urlParams);
|
|
424
426
|
const [baseUrl] = this.document.location.href.split('?');
|
|
@@ -431,7 +433,7 @@ class ShareMapEncoder {
|
|
|
431
433
|
*/
|
|
432
434
|
replaceGroupLocalIds(layers) {
|
|
433
435
|
const idMap = new Map();
|
|
434
|
-
const existingIds = new Set(layers.map((layer) => layer.id).filter(
|
|
436
|
+
const existingIds = new Set(layers.map((layer) => layer.id).filter((id) => id != null));
|
|
435
437
|
// eslint-disable-next-line prefer-const
|
|
436
438
|
let counter = 1;
|
|
437
439
|
layers.forEach((layer) => {
|
|
@@ -451,11 +453,11 @@ class ShareMapEncoder {
|
|
|
451
453
|
}
|
|
452
454
|
getCurrentContext() {
|
|
453
455
|
return ObjectUtils.removeUndefined({
|
|
454
|
-
layers: this.context?.layers,
|
|
455
|
-
center: this.context?.map
|
|
456
|
-
projection: this.context?.map
|
|
457
|
-
zoom: this.context?.map
|
|
458
|
-
rotation: this.context?.map
|
|
456
|
+
layers: this.context?.layers ?? [],
|
|
457
|
+
center: this.context?.map?.view.center,
|
|
458
|
+
projection: this.context?.map?.view.projection,
|
|
459
|
+
zoom: this.context?.map?.view.zoom,
|
|
460
|
+
rotation: this.context?.map?.view.rotation
|
|
459
461
|
});
|
|
460
462
|
}
|
|
461
463
|
/**
|
|
@@ -502,10 +504,12 @@ class ShareMapEncoder {
|
|
|
502
504
|
getContextLayersMap() {
|
|
503
505
|
const ctxLayers = this.getCurrentContext()?.layers || [];
|
|
504
506
|
const ctxFlattened = getFlattenOptions(ctxLayers);
|
|
505
|
-
return new Map(ctxFlattened
|
|
507
|
+
return new Map(ctxFlattened
|
|
508
|
+
.map((lctx) => {
|
|
506
509
|
const identifier = getLayerOptionIdentifier(lctx);
|
|
507
|
-
return [identifier, lctx];
|
|
508
|
-
})
|
|
510
|
+
return [identifier ?? '', lctx];
|
|
511
|
+
})
|
|
512
|
+
.filter(([key]) => key !== ''));
|
|
509
513
|
}
|
|
510
514
|
/**
|
|
511
515
|
* Filters layers and context layers based on visibility, opacity, and expanded state.
|
|
@@ -522,7 +526,7 @@ class ShareMapEncoder {
|
|
|
522
526
|
const visibilityChange = layer.visible !== (ctxLayer.visible ?? true);
|
|
523
527
|
const opacityChange = layer.opacity !== (ctxLayer.opacity ?? 1);
|
|
524
528
|
const layerParentId = this.getIdsNestedParent(layer)?.join('.');
|
|
525
|
-
const ctxParentId = ctxLayer.parentId ?? findParentId(this.context
|
|
529
|
+
const ctxParentId = ctxLayer.parentId ?? findParentId(this.context?.layers ?? [], ctxLayer);
|
|
526
530
|
const parentIdChange = ctxParentId !== layerParentId;
|
|
527
531
|
let expandedChange = false;
|
|
528
532
|
let titleChange = false;
|
|
@@ -595,7 +599,9 @@ class ShareMapEncoder {
|
|
|
595
599
|
.params;
|
|
596
600
|
return params.LAYERS;
|
|
597
601
|
}
|
|
598
|
-
return 'layer' in dataSourceOptions
|
|
602
|
+
return 'layer' in dataSourceOptions
|
|
603
|
+
? (dataSourceOptions.layer ?? '')
|
|
604
|
+
: '';
|
|
599
605
|
}
|
|
600
606
|
getWmsVersion(dataSourceOptions) {
|
|
601
607
|
const params = dataSourceOptions?.params;
|
|
@@ -604,7 +610,7 @@ class ShareMapEncoder {
|
|
|
604
610
|
: undefined;
|
|
605
611
|
}
|
|
606
612
|
concatUrlWithVersion(dataSourceOptions) {
|
|
607
|
-
const url = dataSourceOptions.url;
|
|
613
|
+
const url = dataSourceOptions.url ?? '';
|
|
608
614
|
if (dataSourceOptions.type.toLowerCase() === 'wms') {
|
|
609
615
|
const version = this.getWmsVersion(dataSourceOptions);
|
|
610
616
|
if (version) {
|
|
@@ -613,7 +619,7 @@ class ShareMapEncoder {
|
|
|
613
619
|
return `${url}${operator}${versionDef.key}=${version}`;
|
|
614
620
|
}
|
|
615
621
|
}
|
|
616
|
-
return
|
|
622
|
+
return url;
|
|
617
623
|
}
|
|
618
624
|
getLayerParams(layer) {
|
|
619
625
|
const dataSourceOptions = layer.dataSource.options;
|
|
@@ -621,7 +627,7 @@ class ShareMapEncoder {
|
|
|
621
627
|
? this.hasLayerId(this.context.layers, layer.id)
|
|
622
628
|
: false;
|
|
623
629
|
return {
|
|
624
|
-
index:
|
|
630
|
+
index: 0,
|
|
625
631
|
...(isExisting
|
|
626
632
|
? { id: layer.id }
|
|
627
633
|
: {
|
|
@@ -750,8 +756,11 @@ class ShareMapEncoder {
|
|
|
750
756
|
const definitions = this.SHARE_MAP_DEFS.pos.params;
|
|
751
757
|
const { center, ...restPosition } = position;
|
|
752
758
|
const stringifiedParams = this.stringifyDefinitions(restPosition, definitions);
|
|
759
|
+
const centerDef = definitions.center;
|
|
753
760
|
const result = [
|
|
754
|
-
|
|
761
|
+
centerDef && center
|
|
762
|
+
? `${centerDef.key}${centerDef.stringify(center)}`
|
|
763
|
+
: undefined,
|
|
755
764
|
stringifiedParams
|
|
756
765
|
].filter(Boolean);
|
|
757
766
|
return result.join(',');
|
|
@@ -759,10 +768,14 @@ class ShareMapEncoder {
|
|
|
759
768
|
stringifyDefinitions(values, definitions) {
|
|
760
769
|
const result = Object.keys(ObjectUtils.removeUndefined(values))
|
|
761
770
|
.map((key) => {
|
|
762
|
-
const
|
|
771
|
+
const def = definitions[key];
|
|
772
|
+
if (!def)
|
|
773
|
+
return undefined;
|
|
774
|
+
const { key: defKey, stringify } = def;
|
|
763
775
|
const value = stringify ? stringify(values[key]) : values[key];
|
|
764
776
|
return `${value}${defKey}`;
|
|
765
777
|
})
|
|
778
|
+
.filter(Boolean)
|
|
766
779
|
.join(',');
|
|
767
780
|
return result === '' ? undefined : result;
|
|
768
781
|
}
|
|
@@ -798,7 +811,7 @@ class ShareMapLegacyParser {
|
|
|
798
811
|
this.options = options;
|
|
799
812
|
}
|
|
800
813
|
parseUrl(params) {
|
|
801
|
-
const layerOptions = ServiceType.flatMap((type) => this.readLayersQueryParamsByType(params, type)).filter(
|
|
814
|
+
const layerOptions = ServiceType.flatMap((type) => this.readLayersQueryParamsByType(params, type)).filter((l) => !!l);
|
|
802
815
|
return layerOptions;
|
|
803
816
|
}
|
|
804
817
|
parsePosition(params) {
|
|
@@ -836,7 +849,8 @@ class ShareMapLegacyParser {
|
|
|
836
849
|
const { layersKey, wmsUrlKey, wmsLayersKey, wmtsUrlKey, wmtsLayersKey, arcgisUrlKey, arcgisLayersKey, iarcgisUrlKey, iarcgisLayersKey, tarcgisUrlKey, tarcgisLayersKey } = this.options;
|
|
837
850
|
switch (type) {
|
|
838
851
|
case 'wms':
|
|
839
|
-
if ((params[layersKey] || params[wmsLayersKey]) &&
|
|
852
|
+
if ((params[layersKey] || params[wmsLayersKey]) &&
|
|
853
|
+
params[wmsUrlKey]) {
|
|
840
854
|
urlsKey = wmsUrlKey;
|
|
841
855
|
nameParamLayersKey = params[wmsLayersKey] ? wmsLayersKey : layersKey;
|
|
842
856
|
}
|
|
@@ -872,7 +886,7 @@ class ShareMapLegacyParser {
|
|
|
872
886
|
return [nameParamLayersKey, urlsKey];
|
|
873
887
|
}
|
|
874
888
|
sanitizeUrl(url) {
|
|
875
|
-
const version = this.getQueryParam('version', url.toLocaleLowerCase())
|
|
889
|
+
const version = this.getQueryParam('version', url.toLocaleLowerCase()) ?? undefined;
|
|
876
890
|
if (version) {
|
|
877
891
|
const versionRegex = new RegExp(`[?&]version=${version}`, 'i');
|
|
878
892
|
url = url.replace(versionRegex, '').replace(/[?&]$/, '');
|
|
@@ -888,14 +902,14 @@ class ShareMapLegacyParser {
|
|
|
888
902
|
const httpParams = new HttpParams({ fromString: url.split('?')[1] });
|
|
889
903
|
paramValue = httpParams.get(name);
|
|
890
904
|
}
|
|
891
|
-
return paramValue;
|
|
905
|
+
return paramValue ?? undefined;
|
|
892
906
|
}
|
|
893
907
|
extractLayersByService(layersByService) {
|
|
894
908
|
if (!layersByService.includes(':igoz')) {
|
|
895
909
|
return [
|
|
896
910
|
{
|
|
897
911
|
layers: layersByService.split(','),
|
|
898
|
-
zIndex:
|
|
912
|
+
zIndex: undefined
|
|
899
913
|
}
|
|
900
914
|
];
|
|
901
915
|
}
|
|
@@ -938,8 +952,6 @@ class ShareMapLegacyParser {
|
|
|
938
952
|
}
|
|
939
953
|
let visibleOnLayersParams = '';
|
|
940
954
|
let visibleOffLayersParams = '';
|
|
941
|
-
let visiblelayers = [];
|
|
942
|
-
let invisiblelayers = [];
|
|
943
955
|
if (queryParams['visiblelayers']) {
|
|
944
956
|
visibleOnLayersParams = queryParams['visiblelayers'];
|
|
945
957
|
}
|
|
@@ -955,8 +967,8 @@ class ShareMapLegacyParser {
|
|
|
955
967
|
visible = false;
|
|
956
968
|
}
|
|
957
969
|
// After, managing named layer by id (context.json OR id from datasource)
|
|
958
|
-
visiblelayers = visibleOnLayersParams.split(',');
|
|
959
|
-
invisiblelayers = visibleOffLayersParams.split(',');
|
|
970
|
+
const visiblelayers = visibleOnLayersParams.split(',');
|
|
971
|
+
const invisiblelayers = visibleOffLayersParams.split(',');
|
|
960
972
|
if (visiblelayers.indexOf(currentLayerid) > -1 ||
|
|
961
973
|
visiblelayers.indexOf(currentLayerid.toString()) > -1) {
|
|
962
974
|
visible = true;
|
|
@@ -990,7 +1002,7 @@ class ShareMapParser {
|
|
|
990
1002
|
const groupsOptions = groupsArray.map((layer) => this.parseGroup(layer));
|
|
991
1003
|
const layersOptions = layersArray
|
|
992
1004
|
.map((layer) => this.parseLayer(layer, urlsArray))
|
|
993
|
-
.filter(
|
|
1005
|
+
.filter((l) => !!l);
|
|
994
1006
|
return [...groupsOptions, ...layersOptions];
|
|
995
1007
|
}
|
|
996
1008
|
splitParam(value, delimiter) {
|
|
@@ -1003,10 +1015,16 @@ class ShareMapParser {
|
|
|
1003
1015
|
}
|
|
1004
1016
|
const { center, zoom, rotation, projection } = this.keysDefinitions.pos.params;
|
|
1005
1017
|
return ObjectUtils.removeUndefined({
|
|
1006
|
-
center: center
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1018
|
+
center: center?.parse
|
|
1019
|
+
? center.parse(position)
|
|
1020
|
+
: undefined,
|
|
1021
|
+
zoom: zoom?.parse ? zoom.parse(position) : undefined,
|
|
1022
|
+
rotation: rotation?.parse
|
|
1023
|
+
? rotation.parse(position)
|
|
1024
|
+
: undefined,
|
|
1025
|
+
projection: projection?.parse
|
|
1026
|
+
? projection.parse(position)
|
|
1027
|
+
: undefined
|
|
1010
1028
|
});
|
|
1011
1029
|
}
|
|
1012
1030
|
parseLayer(layer, urls) {
|
|
@@ -1055,10 +1073,12 @@ class ShareMapParser {
|
|
|
1055
1073
|
}
|
|
1056
1074
|
extractVersionFromUrl(url) {
|
|
1057
1075
|
const versionDef = this.keysDefinitions.layers.params.version;
|
|
1058
|
-
return versionDef.parse(url);
|
|
1076
|
+
return versionDef?.parse ? versionDef.parse(url) : undefined;
|
|
1059
1077
|
}
|
|
1060
1078
|
extractLayerId(layer) {
|
|
1061
|
-
const
|
|
1079
|
+
const id = this.keysDefinitions.layers.params.id;
|
|
1080
|
+
if (!id)
|
|
1081
|
+
return undefined;
|
|
1062
1082
|
const regex = new RegExp(`([a-zA-Z0-9_]+)${id.key}\\b`);
|
|
1063
1083
|
const match = layer.match(regex);
|
|
1064
1084
|
return match ? match[1] : undefined;
|
|
@@ -1070,7 +1090,9 @@ class ShareMapParser {
|
|
|
1070
1090
|
return match ? parseInt(match[1], 10) : undefined;
|
|
1071
1091
|
}
|
|
1072
1092
|
extractLayerNames(layer) {
|
|
1073
|
-
const
|
|
1093
|
+
const names = this.keysDefinitions.layers.params.names;
|
|
1094
|
+
if (!names)
|
|
1095
|
+
return undefined;
|
|
1074
1096
|
const pattern = new RegExp(`\\[.*?\\]${names.key}`, 'g');
|
|
1075
1097
|
const matches = layer.match(pattern);
|
|
1076
1098
|
if (!matches)
|
|
@@ -1142,10 +1164,12 @@ class ShareMapService {
|
|
|
1142
1164
|
return queryString !== '' ? `${base}?${queryString}&` : `${base}?`;
|
|
1143
1165
|
}
|
|
1144
1166
|
getContext(params) {
|
|
1145
|
-
|
|
1167
|
+
const legacyKey = this.optionsLegacy.contextKey;
|
|
1168
|
+
return (params[this.options.context] ??
|
|
1169
|
+
(legacyKey ? params[legacyKey] : undefined));
|
|
1146
1170
|
}
|
|
1147
1171
|
getZoom(params) {
|
|
1148
|
-
return this.parsePosition(params)
|
|
1172
|
+
return this.parsePosition(params)?.zoom;
|
|
1149
1173
|
}
|
|
1150
1174
|
getUrlWithApi(formValues) {
|
|
1151
1175
|
const loc = this.document.location;
|
|
@@ -1163,15 +1187,15 @@ class ShareMapService {
|
|
|
1163
1187
|
const { projectionKey, rotationKey, zoomKey, centerKey } = this.optionsLegacy;
|
|
1164
1188
|
const { pos } = this.keysDefinitions;
|
|
1165
1189
|
return Boolean(params[pos.key] ||
|
|
1166
|
-
params[projectionKey] ||
|
|
1167
|
-
params[rotationKey] ||
|
|
1168
|
-
params[zoomKey] ||
|
|
1169
|
-
params[centerKey]);
|
|
1190
|
+
(projectionKey && params[projectionKey]) ||
|
|
1191
|
+
(rotationKey && params[rotationKey]) ||
|
|
1192
|
+
(zoomKey && params[zoomKey]) ||
|
|
1193
|
+
(centerKey && params[centerKey]));
|
|
1170
1194
|
}
|
|
1171
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1172
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ShareMapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1196
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ShareMapService, providedIn: 'root' });
|
|
1173
1197
|
}
|
|
1174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ShareMapService, decorators: [{
|
|
1175
1199
|
type: Injectable,
|
|
1176
1200
|
args: [{
|
|
1177
1201
|
providedIn: 'root'
|
|
@@ -1309,7 +1333,8 @@ class ContextService {
|
|
|
1309
1333
|
}
|
|
1310
1334
|
delete(id, imported = false) {
|
|
1311
1335
|
const contexts = { ours: [] };
|
|
1312
|
-
Object.keys(this.contexts$.value).forEach((key) => (contexts[key] =
|
|
1336
|
+
Object.keys(this.contexts$.value).forEach((key) => (contexts[key] =
|
|
1337
|
+
this.contexts$.value[key]?.filter((c) => c.id !== id) ?? []));
|
|
1313
1338
|
if (imported) {
|
|
1314
1339
|
this.importedContext = this.importedContext.filter((c) => c.id !== id);
|
|
1315
1340
|
return of(this.contexts$.next(contexts));
|
|
@@ -1618,9 +1643,7 @@ class ContextService {
|
|
|
1618
1643
|
if (this.baseUrl) {
|
|
1619
1644
|
let contextToLoad;
|
|
1620
1645
|
for (const key of Object.keys(this.contexts$.value)) {
|
|
1621
|
-
contextToLoad = this.contexts$.value[key]
|
|
1622
|
-
return c.uri === uri;
|
|
1623
|
-
});
|
|
1646
|
+
contextToLoad = this.contexts$.value[key]?.find((c) => c.uri === uri);
|
|
1624
1647
|
if (contextToLoad) {
|
|
1625
1648
|
break;
|
|
1626
1649
|
}
|
|
@@ -1681,7 +1704,9 @@ class ContextService {
|
|
|
1681
1704
|
this.getDefault().subscribe();
|
|
1682
1705
|
}
|
|
1683
1706
|
}
|
|
1684
|
-
const editedFound =
|
|
1707
|
+
const editedFound = editedContext
|
|
1708
|
+
? this.findContext(editedContext)
|
|
1709
|
+
: undefined;
|
|
1685
1710
|
if (!editedFound || editedFound.permission !== 'write') {
|
|
1686
1711
|
this.setEditedContext(undefined);
|
|
1687
1712
|
}
|
|
@@ -1709,8 +1734,7 @@ class ContextService {
|
|
|
1709
1734
|
const contexts = this.contexts$.value;
|
|
1710
1735
|
let found;
|
|
1711
1736
|
for (const key of Object.keys(contexts)) {
|
|
1712
|
-
|
|
1713
|
-
found = value.find((c) => (context.id && c.id === context.id) ||
|
|
1737
|
+
found = contexts[key]?.find((c) => (context.id && c.id === context.id) ||
|
|
1714
1738
|
(context.uri && c.uri === context.uri));
|
|
1715
1739
|
if (found) {
|
|
1716
1740
|
break;
|
|
@@ -1718,10 +1742,10 @@ class ContextService {
|
|
|
1718
1742
|
}
|
|
1719
1743
|
return found;
|
|
1720
1744
|
}
|
|
1721
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1722
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1745
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1746
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextService, providedIn: 'root' });
|
|
1723
1747
|
}
|
|
1724
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1748
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextService, decorators: [{
|
|
1725
1749
|
type: Injectable,
|
|
1726
1750
|
args: [{
|
|
1727
1751
|
providedIn: 'root'
|
|
@@ -1766,10 +1790,10 @@ class ContextExportService {
|
|
|
1766
1790
|
}
|
|
1767
1791
|
return false;
|
|
1768
1792
|
}
|
|
1769
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1770
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1793
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1794
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextExportService, providedIn: 'root' });
|
|
1771
1795
|
}
|
|
1772
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1796
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextExportService, decorators: [{
|
|
1773
1797
|
type: Injectable,
|
|
1774
1798
|
args: [{
|
|
1775
1799
|
providedIn: 'root'
|
|
@@ -1778,7 +1802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
1778
1802
|
|
|
1779
1803
|
function handleFileExportError(error, messageService) {
|
|
1780
1804
|
if (error instanceof ExportNothingToExportError) {
|
|
1781
|
-
|
|
1805
|
+
handleNothingToExportError(messageService);
|
|
1782
1806
|
return;
|
|
1783
1807
|
}
|
|
1784
1808
|
messageService.error('igo.context.contextImportExport.export.failed.text', 'igo.context.contextImportExport.export.failed.title');
|
|
@@ -1841,7 +1865,10 @@ function handleFileImportError(file, error, messageService, sizeMb) {
|
|
|
1841
1865
|
'File is too large': handleSizeFileImportError,
|
|
1842
1866
|
'Failed to read file': handleUnreadbleFileImportError
|
|
1843
1867
|
};
|
|
1844
|
-
errMapping[error.message]
|
|
1868
|
+
const handler = errMapping[error.message];
|
|
1869
|
+
if (handler) {
|
|
1870
|
+
handler(file, error, messageService, sizeMb);
|
|
1871
|
+
}
|
|
1845
1872
|
}
|
|
1846
1873
|
function handleInvalidFileImportError(file, error, messageService) {
|
|
1847
1874
|
messageService.error('igo.context.contextImportExport.import.invalid.text', 'igo.context.contextImportExport.import.invalid.title', undefined, {
|
|
@@ -1872,7 +1899,7 @@ function addContextToContextList(context, contextTitle, contextService) {
|
|
|
1872
1899
|
contextService.loadContext(context.uri);
|
|
1873
1900
|
}
|
|
1874
1901
|
function getFileExtension(file) {
|
|
1875
|
-
return file.name.split('.').pop()
|
|
1902
|
+
return file.name.split('.').pop()?.toLowerCase() ?? '';
|
|
1876
1903
|
}
|
|
1877
1904
|
function computeLayerTitleFromFile(file) {
|
|
1878
1905
|
return file.name.substr(0, file.name.lastIndexOf('.'));
|
|
@@ -1885,81 +1912,17 @@ function addImportedFeaturesToMap(extraFeatures, map) {
|
|
|
1885
1912
|
const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);
|
|
1886
1913
|
const source = new FeatureDataSource(sourceOptions);
|
|
1887
1914
|
source.ol.addFeatures(olFeatures);
|
|
1888
|
-
let randomStyle;
|
|
1889
|
-
let editable = false;
|
|
1890
|
-
const featureKeys = olFeatures[0]?.getKeys() ?? [];
|
|
1891
|
-
if (featureKeys.includes('_style') || featureKeys.includes('_mapTitle')) {
|
|
1892
|
-
randomStyle = featureRandomStyleFunction();
|
|
1893
|
-
}
|
|
1894
|
-
else {
|
|
1895
|
-
randomStyle = featureRandomStyle();
|
|
1896
|
-
editable = true;
|
|
1897
|
-
}
|
|
1898
1915
|
const layer = new VectorLayer({
|
|
1899
1916
|
title: extraFeatures.name,
|
|
1900
1917
|
isIgoInternalLayer: true,
|
|
1901
1918
|
source,
|
|
1902
|
-
|
|
1903
|
-
style: randomStyle,
|
|
1919
|
+
style: randomOlFlatStyle(),
|
|
1904
1920
|
visible: extraFeatures.visible,
|
|
1905
1921
|
opacity: extraFeatures.opacity
|
|
1906
1922
|
});
|
|
1907
1923
|
map.layerController.add(layer);
|
|
1908
1924
|
return layer;
|
|
1909
1925
|
}
|
|
1910
|
-
function addImportedFeaturesStyledToMap(extraFeatures, map, styleListService, styleService) {
|
|
1911
|
-
let style;
|
|
1912
|
-
let distance;
|
|
1913
|
-
if (styleListService.getStyleList(extraFeatures.name + '.styleByAttribute')) {
|
|
1914
|
-
const styleByAttribute = styleListService.getStyleList(extraFeatures.name + '.styleByAttribute');
|
|
1915
|
-
style = (feature, resolution) => {
|
|
1916
|
-
return styleService.createStyleByAttribute(feature, styleByAttribute, resolution);
|
|
1917
|
-
};
|
|
1918
|
-
}
|
|
1919
|
-
else if (styleListService.getStyleList(extraFeatures.name + '.clusterStyle')) {
|
|
1920
|
-
const clusterParam = styleListService.getStyleList(extraFeatures.name + '.clusterParam');
|
|
1921
|
-
distance = styleListService.getStyleList(extraFeatures.name + '.distance');
|
|
1922
|
-
style = (feature, resolution) => {
|
|
1923
|
-
const baseStyle = styleService.createStyle(styleListService.getStyleList(extraFeatures.name + '.clusterStyle'), feature, resolution);
|
|
1924
|
-
return styleService.createClusterStyle(feature, resolution, clusterParam, baseStyle);
|
|
1925
|
-
};
|
|
1926
|
-
}
|
|
1927
|
-
else if (styleListService.getStyleList(extraFeatures.name + '.style')) {
|
|
1928
|
-
style = (feature, resolution) => styleService.createStyle(styleListService.getStyleList(extraFeatures.name + '.style'), feature, resolution);
|
|
1929
|
-
}
|
|
1930
|
-
else {
|
|
1931
|
-
style = (feature, resolution) => styleService.createStyle(styleListService.getStyleList('default.style'), feature, resolution);
|
|
1932
|
-
}
|
|
1933
|
-
let source;
|
|
1934
|
-
const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);
|
|
1935
|
-
if (styleListService.getStyleList(extraFeatures.name + '.clusterStyle')) {
|
|
1936
|
-
const sourceOptions = {
|
|
1937
|
-
distance,
|
|
1938
|
-
type: 'cluster',
|
|
1939
|
-
queryable: true
|
|
1940
|
-
};
|
|
1941
|
-
source = new ClusterDataSource(sourceOptions);
|
|
1942
|
-
source.ol.source.addFeatures(olFeatures);
|
|
1943
|
-
}
|
|
1944
|
-
else {
|
|
1945
|
-
const sourceOptions = {
|
|
1946
|
-
type: 'vector',
|
|
1947
|
-
queryable: true
|
|
1948
|
-
};
|
|
1949
|
-
source = new FeatureDataSource(sourceOptions);
|
|
1950
|
-
source.ol.addFeatures(olFeatures);
|
|
1951
|
-
}
|
|
1952
|
-
const layer = new VectorLayer({
|
|
1953
|
-
title: extraFeatures.name,
|
|
1954
|
-
isIgoInternalLayer: true,
|
|
1955
|
-
source,
|
|
1956
|
-
style,
|
|
1957
|
-
opacity: extraFeatures.opacity,
|
|
1958
|
-
visible: extraFeatures.visible
|
|
1959
|
-
});
|
|
1960
|
-
map.layerController.add(layer);
|
|
1961
|
-
return layer;
|
|
1962
|
-
}
|
|
1963
1926
|
function collectFeaturesFromExtraFeatures(featureCollection) {
|
|
1964
1927
|
const format = new GeoJSON();
|
|
1965
1928
|
const features = format.readFeatures(featureCollection, {
|
|
@@ -2033,10 +1996,10 @@ class ContextImportService {
|
|
|
2033
1996
|
const context = JSON.parse(data);
|
|
2034
1997
|
return context;
|
|
2035
1998
|
}
|
|
2036
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2037
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1999
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextImportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2000
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextImportService, providedIn: 'root' });
|
|
2038
2001
|
}
|
|
2039
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextImportService, decorators: [{
|
|
2040
2003
|
type: Injectable,
|
|
2041
2004
|
args: [{
|
|
2042
2005
|
providedIn: 'root'
|
|
@@ -2061,7 +2024,7 @@ class ContextImportExportComponent {
|
|
|
2061
2024
|
clientSideFileSizeMax;
|
|
2062
2025
|
fileSizeMb;
|
|
2063
2026
|
activeImportExport = 'import';
|
|
2064
|
-
map = input(
|
|
2027
|
+
map = input.required(...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
|
|
2065
2028
|
constructor() {
|
|
2066
2029
|
this.buildForm();
|
|
2067
2030
|
}
|
|
@@ -2120,21 +2083,20 @@ class ContextImportExportComponent {
|
|
|
2120
2083
|
handleFileExportSuccess(this.messageService);
|
|
2121
2084
|
}
|
|
2122
2085
|
selectAll(e) {
|
|
2123
|
-
if (e.
|
|
2086
|
+
if (e.selected) {
|
|
2124
2087
|
this.form.controls.layers.setValue(this.userControlledLayerList);
|
|
2125
|
-
e._selected = true;
|
|
2126
2088
|
}
|
|
2127
|
-
|
|
2089
|
+
else {
|
|
2128
2090
|
this.form.controls.layers.setValue([]);
|
|
2129
2091
|
}
|
|
2130
2092
|
}
|
|
2131
2093
|
onImportExportChange(event) {
|
|
2132
2094
|
this.activeImportExport = event.value;
|
|
2133
2095
|
}
|
|
2134
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2135
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2096
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextImportExportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2097
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ContextImportExportComponent, isStandalone: true, selector: "igo-context-import-export", inputs: { map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"import-export-toggle\">\n <mat-button-toggle-group\n [value]=\"activeImportExport\"\n (change)=\"onImportExportChange($event)\"\n >\n <mat-button-toggle [value]=\"'import'\">\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n@if (activeImportExport === 'import') {\n <div>\n <form class=\"igo-form\">\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n (click)=\"fileInput.click()\"\n [disabled]=\"loading$ | async\"\n >\n {{ 'igo.geo.importExportForm.importButton' | translate }}\n </button>\n <igo-spinner [shown]=\"(loading$ | async) ?? false\" />\n <input\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = ''\"\n (change)=\"importFiles($any($event.target).files)\"\n />\n </div>\n </form>\n <section>\n <h4>{{ 'igo.geo.importExportForm.importClarifications' | translate }}</h4>\n <ul>\n <li>\n {{\n 'igo.geo.importExportForm.importSizeMax'\n | translate: { size: fileSizeMb }\n }}\n </li>\n </ul>\n </section>\n </div>\n}\n\n@if (activeImportExport === 'export') {\n <form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>{{\n 'igo.context.contextImportExport.export.exportContextName' | translate\n }}</mat-label>\n <input formControlName=\"name\" matInput [value]=\"\" />\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.context.contextImportExport.export.exportPlaceHolder' | translate\n }}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{\n 'igo.context.contextImportExport.export.exportSelectAll'\n | translate\n }}\n </mat-option>\n <mat-divider />\n @for (layer of userControlledLayerList; track layer) {\n <mat-option [value]=\"layer\">{{ layer.title }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\"\n >\n {{ 'igo.geo.importExportForm.exportButton' | translate }}\n </button>\n <igo-spinner [shown]=\"(loading$ | async) ?? false\" />\n </div>\n </form>\n}\n", styles: [".import-export-toggle{padding:10px;text-align:center}.import-export-toggle mat-button-toggle-group{width:100%}.import-export-toggle mat-button-toggle-group mat-button-toggle{width:50%}.igo-input-container{padding:10px}.igo-input-container mat-form-field{width:100%}h4{padding:0 5px}.igo-form{padding:15px 5px}.igo-form-button-group{text-align:center;padding-top:10px}igo-spinner{position:absolute;padding-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: SpinnerComponent, selector: "igo-spinner", inputs: ["shown"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
2136
2098
|
}
|
|
2137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2099
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextImportExportComponent, decorators: [{
|
|
2138
2100
|
type: Component,
|
|
2139
2101
|
args: [{ selector: 'igo-context-import-export', imports: [
|
|
2140
2102
|
MatButtonToggleModule,
|
|
@@ -2149,8 +2111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
2149
2111
|
MatDividerModule,
|
|
2150
2112
|
AsyncPipe,
|
|
2151
2113
|
IgoLanguageModule
|
|
2152
|
-
], template: "<div class=\"import-export-toggle\">\n <mat-button-toggle-group\n [value]=\"activeImportExport\"\n (change)=\"onImportExportChange($event)\"\n >\n <mat-button-toggle [value]=\"'import'\">\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n@if (activeImportExport === 'import') {\n <div>\n <form class=\"igo-form\">\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n (click)=\"fileInput.click()\"\n [disabled]=\"loading$ | async\"\n >\n {{ 'igo.geo.importExportForm.importButton' | translate }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n <input\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value =
|
|
2153
|
-
}], ctorParameters: () => [], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required:
|
|
2114
|
+
], template: "<div class=\"import-export-toggle\">\n <mat-button-toggle-group\n [value]=\"activeImportExport\"\n (change)=\"onImportExportChange($event)\"\n >\n <mat-button-toggle [value]=\"'import'\">\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n@if (activeImportExport === 'import') {\n <div>\n <form class=\"igo-form\">\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n (click)=\"fileInput.click()\"\n [disabled]=\"loading$ | async\"\n >\n {{ 'igo.geo.importExportForm.importButton' | translate }}\n </button>\n <igo-spinner [shown]=\"(loading$ | async) ?? false\" />\n <input\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = ''\"\n (change)=\"importFiles($any($event.target).files)\"\n />\n </div>\n </form>\n <section>\n <h4>{{ 'igo.geo.importExportForm.importClarifications' | translate }}</h4>\n <ul>\n <li>\n {{\n 'igo.geo.importExportForm.importSizeMax'\n | translate: { size: fileSizeMb }\n }}\n </li>\n </ul>\n </section>\n </div>\n}\n\n@if (activeImportExport === 'export') {\n <form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>{{\n 'igo.context.contextImportExport.export.exportContextName' | translate\n }}</mat-label>\n <input formControlName=\"name\" matInput [value]=\"\" />\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.context.contextImportExport.export.exportPlaceHolder' | translate\n }}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{\n 'igo.context.contextImportExport.export.exportSelectAll'\n | translate\n }}\n </mat-option>\n <mat-divider />\n @for (layer of userControlledLayerList; track layer) {\n <mat-option [value]=\"layer\">{{ layer.title }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\"\n >\n {{ 'igo.geo.importExportForm.exportButton' | translate }}\n </button>\n <igo-spinner [shown]=\"(loading$ | async) ?? false\" />\n </div>\n </form>\n}\n", styles: [".import-export-toggle{padding:10px;text-align:center}.import-export-toggle mat-button-toggle-group{width:100%}.import-export-toggle mat-button-toggle-group mat-button-toggle{width:50%}.igo-input-container{padding:10px}.igo-input-container mat-form-field{width:100%}h4{padding:0 5px}.igo-form{padding:15px 5px}.igo-form-button-group{text-align:center;padding-top:10px}igo-spinner{position:absolute;padding-left:10px}\n"] }]
|
|
2115
|
+
}], ctorParameters: () => [], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: true }] }] } });
|
|
2154
2116
|
|
|
2155
2117
|
/**
|
|
2156
2118
|
* @deprecated import the ContextImportExportComponent directly
|
|
@@ -2161,11 +2123,11 @@ class IgoContextImportExportModule {
|
|
|
2161
2123
|
ngModule: IgoContextImportExportModule
|
|
2162
2124
|
};
|
|
2163
2125
|
}
|
|
2164
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2165
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2166
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextImportExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2127
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: IgoContextImportExportModule, imports: [ContextImportExportComponent], exports: [ContextImportExportComponent] });
|
|
2128
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextImportExportModule, imports: [ContextImportExportComponent] });
|
|
2167
2129
|
}
|
|
2168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextImportExportModule, decorators: [{
|
|
2169
2131
|
type: NgModule,
|
|
2170
2132
|
args: [{
|
|
2171
2133
|
imports: [ContextImportExportComponent],
|
|
@@ -2177,10 +2139,10 @@ class ContextFormComponent {
|
|
|
2177
2139
|
clipboard = inject(Clipboard);
|
|
2178
2140
|
formBuilder = inject(UntypedFormBuilder);
|
|
2179
2141
|
messageService = inject(MessageService);
|
|
2180
|
-
prefix;
|
|
2181
|
-
btnSubmitText = input(...(ngDevMode ? [undefined, { debugName: "btnSubmitText" }] : []));
|
|
2182
|
-
context = input(...(ngDevMode ? [
|
|
2183
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
2142
|
+
prefix = '';
|
|
2143
|
+
btnSubmitText = input(...(ngDevMode ? [undefined, { debugName: "btnSubmitText" }] : /* istanbul ignore next */ []));
|
|
2144
|
+
context = input.required(...(ngDevMode ? [{ debugName: "context" }] : /* istanbul ignore next */ []));
|
|
2145
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
2184
2146
|
submitForm = output();
|
|
2185
2147
|
clone = output();
|
|
2186
2148
|
delete = output();
|
|
@@ -2190,7 +2152,7 @@ class ContextFormComponent {
|
|
|
2190
2152
|
if (context) {
|
|
2191
2153
|
return this.buildForm(context);
|
|
2192
2154
|
}
|
|
2193
|
-
}, ...(ngDevMode ? [{ debugName: "form" }] : []));
|
|
2155
|
+
}, ...(ngDevMode ? [{ debugName: "form" }] : /* istanbul ignore next */ []));
|
|
2194
2156
|
handleFormSubmit(value) {
|
|
2195
2157
|
let inputs = Object.assign({}, value);
|
|
2196
2158
|
inputs = ObjectUtils.removeNull(inputs);
|
|
@@ -2212,17 +2174,17 @@ class ContextFormComponent {
|
|
|
2212
2174
|
}
|
|
2213
2175
|
buildForm(context) {
|
|
2214
2176
|
const uriSplit = context.uri.split('-');
|
|
2215
|
-
this.prefix = uriSplit.shift();
|
|
2177
|
+
this.prefix = uriSplit.shift() ?? '';
|
|
2216
2178
|
const uri = uriSplit.join('-');
|
|
2217
2179
|
return this.formBuilder.group({
|
|
2218
2180
|
title: [context.title],
|
|
2219
2181
|
uri: [uri || ' ']
|
|
2220
2182
|
});
|
|
2221
2183
|
}
|
|
2222
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2223
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2184
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2185
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ContextFormComponent, isStandalone: true, selector: "igo-context-form", inputs: { btnSubmitText: { classPropertyName: "btnSubmitText", publicName: "btnSubmitText", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { submitForm: "submitForm", clone: "clone", delete: "delete" }, ngImport: i0, template: "@let form = this.form();\n@if (form) {\n <form\n class=\"igo-form\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\"\n >\n <mat-form-field class=\"full-width\">\n <input\n matInput\n required\n maxlength=\"128\"\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\n formControlName=\"title\"\n />\n <mat-error>\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field id=\"uriInput\" class=\"full-width\">\n @if (prefix) {\n <span class=\"prefix\">{{ prefix }}-</span>\n }\n <span class=\"fieldWrapper\">\n <input\n matInput\n maxlength=\"64\"\n floatLabel=\"always\"\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\n formControlName=\"uri\"\n />\n </span>\n </mat-form-field>\n\n <button\n id=\"copyButton\"\n type=\"button\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\n color=\"primary\"\n (click)=\"copyTextToClipboard()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"submit\"\n [disabled]=\"form.invalid || disabled()\"\n >\n {{ 'igo.context.contextManager.form.edit' | translate }}\n </button>\n </div>\n </form>\n}\n", styles: ["form{margin:10px}.full-width{width:100%}#uriInput .fieldWrapper{display:block;overflow:hidden}#uriInput .prefix{float:left}#copyButton{width:24px;float:right;position:relative;top:-58px;left:5px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
2224
2186
|
}
|
|
2225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextFormComponent, decorators: [{
|
|
2226
2188
|
type: Component,
|
|
2227
2189
|
args: [{ selector: 'igo-context-form', imports: [
|
|
2228
2190
|
FormsModule,
|
|
@@ -2233,8 +2195,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
2233
2195
|
MatTooltipModule,
|
|
2234
2196
|
MatIconModule,
|
|
2235
2197
|
IgoLanguageModule
|
|
2236
|
-
], template: "@let form = this.form();\n<form\n
|
|
2237
|
-
}], propDecorators: { btnSubmitText: [{ type: i0.Input, args: [{ isSignal: true, alias: "btnSubmitText", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required:
|
|
2198
|
+
], template: "@let form = this.form();\n@if (form) {\n <form\n class=\"igo-form\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\"\n >\n <mat-form-field class=\"full-width\">\n <input\n matInput\n required\n maxlength=\"128\"\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\n formControlName=\"title\"\n />\n <mat-error>\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field id=\"uriInput\" class=\"full-width\">\n @if (prefix) {\n <span class=\"prefix\">{{ prefix }}-</span>\n }\n <span class=\"fieldWrapper\">\n <input\n matInput\n maxlength=\"64\"\n floatLabel=\"always\"\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\n formControlName=\"uri\"\n />\n </span>\n </mat-form-field>\n\n <button\n id=\"copyButton\"\n type=\"button\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\n color=\"primary\"\n (click)=\"copyTextToClipboard()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"submit\"\n [disabled]=\"form.invalid || disabled()\"\n >\n {{ 'igo.context.contextManager.form.edit' | translate }}\n </button>\n </div>\n </form>\n}\n", styles: ["form{margin:10px}.full-width{width:100%}#uriInput .fieldWrapper{display:block;overflow:hidden}#uriInput .prefix{float:left}#copyButton{width:24px;float:right;position:relative;top:-58px;left:5px}\n"] }]
|
|
2199
|
+
}], propDecorators: { btnSubmitText: [{ type: i0.Input, args: [{ isSignal: true, alias: "btnSubmitText", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], submitForm: [{ type: i0.Output, args: ["submitForm"] }], clone: [{ type: i0.Output, args: ["clone"] }], delete: [{ type: i0.Output, args: ["delete"] }] } });
|
|
2238
2200
|
|
|
2239
2201
|
const TypePermission = ['read', 'write'];
|
|
2240
2202
|
var Scope;
|
|
@@ -2249,13 +2211,11 @@ class LayerContextDirective {
|
|
|
2249
2211
|
contextService = inject(ContextService);
|
|
2250
2212
|
layerService = inject(LayerService);
|
|
2251
2213
|
configService = inject(ConfigService);
|
|
2252
|
-
styleListService = inject(StyleListService);
|
|
2253
|
-
styleService = inject(StyleService);
|
|
2254
2214
|
shareMapService = inject(ShareMapService);
|
|
2255
2215
|
context$$;
|
|
2256
2216
|
queryParams;
|
|
2257
2217
|
contextLayers = [];
|
|
2258
|
-
removeLayersOnContextChange = input(true, ...(ngDevMode ? [{ debugName: "removeLayersOnContextChange" }] : []));
|
|
2218
|
+
removeLayersOnContextChange = input(true, ...(ngDevMode ? [{ debugName: "removeLayersOnContextChange" }] : /* istanbul ignore next */ []));
|
|
2259
2219
|
contextLayersLoaded = output();
|
|
2260
2220
|
get map() {
|
|
2261
2221
|
return this.component.map();
|
|
@@ -2269,7 +2229,7 @@ class LayerContextDirective {
|
|
|
2269
2229
|
.subscribe((context) => this.handleContextChange(context));
|
|
2270
2230
|
}
|
|
2271
2231
|
ngOnDestroy() {
|
|
2272
|
-
this.context
|
|
2232
|
+
this.context$$?.unsubscribe();
|
|
2273
2233
|
}
|
|
2274
2234
|
handleContextChange(context) {
|
|
2275
2235
|
if (context.layers === undefined) {
|
|
@@ -2291,19 +2251,13 @@ class LayerContextDirective {
|
|
|
2291
2251
|
}
|
|
2292
2252
|
this.contextLayers = [];
|
|
2293
2253
|
this.layerService.unavailableLayers = [];
|
|
2294
|
-
const importExportOptions = this.configService.getConfig('importExport');
|
|
2295
2254
|
this.layerService
|
|
2296
2255
|
.createLayers(contextLayers, context.uri)
|
|
2297
2256
|
.subscribe((layers) => {
|
|
2298
2257
|
this.handleAddLayers(layers);
|
|
2299
2258
|
if (context.extraFeatures) {
|
|
2300
2259
|
context.extraFeatures.forEach((featureCollection) => {
|
|
2301
|
-
|
|
2302
|
-
addImportedFeaturesToMap(featureCollection, this.map);
|
|
2303
|
-
}
|
|
2304
|
-
else {
|
|
2305
|
-
addImportedFeaturesStyledToMap(featureCollection, this.map, this.styleListService, this.styleService);
|
|
2306
|
-
}
|
|
2260
|
+
addImportedFeaturesToMap(featureCollection, this.map);
|
|
2307
2261
|
});
|
|
2308
2262
|
}
|
|
2309
2263
|
this.contextLayersLoaded.emit(true);
|
|
@@ -2317,7 +2271,7 @@ class LayerContextDirective {
|
|
|
2317
2271
|
}
|
|
2318
2272
|
handleAddLayers(layers) {
|
|
2319
2273
|
const layersFiltrered = layers
|
|
2320
|
-
.filter((layer) => layer)
|
|
2274
|
+
.filter((layer) => !!layer)
|
|
2321
2275
|
.map((layer) => {
|
|
2322
2276
|
layer.visible = this.computeLayerVisibilityFromUrl(layer);
|
|
2323
2277
|
return layer;
|
|
@@ -2328,7 +2282,7 @@ class LayerContextDirective {
|
|
|
2328
2282
|
}
|
|
2329
2283
|
computeLayerVisibilityFromUrl(layer) {
|
|
2330
2284
|
const params = this.queryParams;
|
|
2331
|
-
const currentContext = this.contextService.context$.value
|
|
2285
|
+
const currentContext = this.contextService.context$.value?.uri;
|
|
2332
2286
|
const currentLayerid = layer.id;
|
|
2333
2287
|
let visible = layer.visible;
|
|
2334
2288
|
if (!params || !currentLayerid) {
|
|
@@ -2338,8 +2292,6 @@ class LayerContextDirective {
|
|
|
2338
2292
|
if (contextParams === currentContext || !contextParams) {
|
|
2339
2293
|
let visibleOnLayersParams = '';
|
|
2340
2294
|
let visibleOffLayersParams = '';
|
|
2341
|
-
let visiblelayers = [];
|
|
2342
|
-
let invisiblelayers = [];
|
|
2343
2295
|
const visibleOnLayers = params[this.shareMapService.routeService.options.visibleOnLayersKey];
|
|
2344
2296
|
const visibleOffLayers = params[this.shareMapService.routeService.options.visibleOffLayersKey];
|
|
2345
2297
|
if (visibleOnLayers) {
|
|
@@ -2357,8 +2309,8 @@ class LayerContextDirective {
|
|
|
2357
2309
|
visible = false;
|
|
2358
2310
|
}
|
|
2359
2311
|
// After, managing named layer by id (context.json OR id from datasource)
|
|
2360
|
-
visiblelayers = visibleOnLayersParams.split(',');
|
|
2361
|
-
invisiblelayers = visibleOffLayersParams.split(',');
|
|
2312
|
+
const visiblelayers = visibleOnLayersParams.split(',');
|
|
2313
|
+
const invisiblelayers = visibleOffLayersParams.split(',');
|
|
2362
2314
|
if (visiblelayers.indexOf(currentLayerid) > -1 ||
|
|
2363
2315
|
visiblelayers.indexOf(currentLayerid.toString()) > -1) {
|
|
2364
2316
|
visible = true;
|
|
@@ -2372,22 +2324,22 @@ class LayerContextDirective {
|
|
|
2372
2324
|
}
|
|
2373
2325
|
handleContextWithSharedUrl(context) {
|
|
2374
2326
|
if (!this.queryParams) {
|
|
2375
|
-
return context.layers;
|
|
2327
|
+
return context.layers ?? [];
|
|
2376
2328
|
}
|
|
2377
2329
|
const { layers, uri } = context;
|
|
2378
2330
|
const contextValue = this.shareMapService.getContext(this.queryParams);
|
|
2379
2331
|
if (!contextValue || contextValue === uri) {
|
|
2380
2332
|
const layersOptions = this.shareMapService.parseLayers(this.queryParams);
|
|
2381
|
-
if (layersOptions.length) {
|
|
2382
|
-
return mergeLayersOptions([...layers], layersOptions);
|
|
2333
|
+
if (layersOptions && layersOptions.length) {
|
|
2334
|
+
return mergeLayersOptions([...(layers ?? [])], layersOptions);
|
|
2383
2335
|
}
|
|
2384
2336
|
}
|
|
2385
|
-
return layers;
|
|
2337
|
+
return layers ?? [];
|
|
2386
2338
|
}
|
|
2387
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2388
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
2339
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LayerContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2340
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.14", type: LayerContextDirective, isStandalone: true, selector: "[igoLayerContext]", inputs: { removeLayersOnContextChange: { classPropertyName: "removeLayersOnContextChange", publicName: "removeLayersOnContextChange", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contextLayersLoaded: "contextLayersLoaded" }, ngImport: i0 });
|
|
2389
2341
|
}
|
|
2390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LayerContextDirective, decorators: [{
|
|
2391
2343
|
type: Directive,
|
|
2392
2344
|
args: [{
|
|
2393
2345
|
selector: '[igoLayerContext]'
|
|
@@ -2455,7 +2407,7 @@ class MapContextDirective {
|
|
|
2455
2407
|
if (this.mediaService.isMobile()) {
|
|
2456
2408
|
if (typeof controlsContext.scaleLine !== 'boolean') {
|
|
2457
2409
|
const scaleLineOption = controlsContext.scaleLine;
|
|
2458
|
-
if (
|
|
2410
|
+
if (scaleLineOption && scaleLineOption.minWidth != null) {
|
|
2459
2411
|
scaleLineOption.minWidth = Math.min(64, scaleLineOption.minWidth);
|
|
2460
2412
|
controlsContext.scaleLine = scaleLineOption;
|
|
2461
2413
|
}
|
|
@@ -2464,10 +2416,10 @@ class MapContextDirective {
|
|
|
2464
2416
|
this.component.controls = controlsContext;
|
|
2465
2417
|
}
|
|
2466
2418
|
}
|
|
2467
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2468
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2419
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MapContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2420
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: MapContextDirective, isStandalone: true, selector: "[igoMapContext]", ngImport: i0 });
|
|
2469
2421
|
}
|
|
2470
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2422
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: MapContextDirective, decorators: [{
|
|
2471
2423
|
type: Directive,
|
|
2472
2424
|
args: [{
|
|
2473
2425
|
selector: '[igoMapContext]'
|
|
@@ -2480,10 +2432,13 @@ class ContextEditComponent {
|
|
|
2480
2432
|
context = toSignal(this.contextService.editedContext$);
|
|
2481
2433
|
submitSuccessed = output();
|
|
2482
2434
|
onEdit(context) {
|
|
2483
|
-
const id = this.context()
|
|
2435
|
+
const id = this.context()?.id;
|
|
2436
|
+
if (!id) {
|
|
2437
|
+
throw new Error('Context id is required to update context');
|
|
2438
|
+
}
|
|
2484
2439
|
this.contextService.update(id, context).subscribe(() => {
|
|
2485
2440
|
this.messageService.success('igo.context.contextManager.dialog.saveMsg', 'igo.context.contextManager.dialog.saveTitle', undefined, {
|
|
2486
|
-
value: context.title || this.context()
|
|
2441
|
+
value: context.title || this.context()?.title
|
|
2487
2442
|
});
|
|
2488
2443
|
const currentContext = this.contextService.context$.value;
|
|
2489
2444
|
if (currentContext && currentContext.id === id) {
|
|
@@ -2494,12 +2449,12 @@ class ContextEditComponent {
|
|
|
2494
2449
|
this.submitSuccessed.emit(context);
|
|
2495
2450
|
});
|
|
2496
2451
|
}
|
|
2497
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2498
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2452
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2453
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ContextEditComponent, isStandalone: true, selector: "igo-context-edit", outputs: { submitSuccessed: "submitSuccessed" }, ngImport: i0, template: "@if (context()) {\n <igo-context-form\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\n [context]=\"context()\"\n (submitForm)=\"onEdit($any($event))\"\n />\n}\n", dependencies: [{ kind: "component", type: ContextFormComponent, selector: "igo-context-form", inputs: ["btnSubmitText", "context", "disabled"], outputs: ["submitForm", "clone", "delete"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2499
2454
|
}
|
|
2500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextEditComponent, decorators: [{
|
|
2501
2456
|
type: Component,
|
|
2502
|
-
args: [{ selector: 'igo-context-edit', imports: [ContextFormComponent, IgoLanguageModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (context()) {\n <igo-context-form\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\n [context]=\"context()\"\n (submitForm)=\"onEdit($event)\"\n />\n}\n" }]
|
|
2457
|
+
args: [{ selector: 'igo-context-edit', imports: [ContextFormComponent, IgoLanguageModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (context()) {\n <igo-context-form\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\n [context]=\"context()\"\n (submitForm)=\"onEdit($any($event))\"\n />\n}\n" }]
|
|
2503
2458
|
}], propDecorators: { submitSuccessed: [{ type: i0.Output, args: ["submitSuccessed"] }] } });
|
|
2504
2459
|
|
|
2505
2460
|
class ContextItemComponent {
|
|
@@ -2508,11 +2463,11 @@ class ContextItemComponent {
|
|
|
2508
2463
|
typePermission = TypePermission;
|
|
2509
2464
|
color = 'primary';
|
|
2510
2465
|
collapsed = true;
|
|
2511
|
-
showFavorite = input(true, ...(ngDevMode ? [{ debugName: "showFavorite" }] : []));
|
|
2512
|
-
context = input(
|
|
2513
|
-
default = input(
|
|
2514
|
-
selected = input(
|
|
2515
|
-
isDesktop = input(
|
|
2466
|
+
showFavorite = input(true, ...(ngDevMode ? [{ debugName: "showFavorite" }] : /* istanbul ignore next */ []));
|
|
2467
|
+
context = input.required(...(ngDevMode ? [{ debugName: "context" }] : /* istanbul ignore next */ []));
|
|
2468
|
+
default = input(...(ngDevMode ? [undefined, { debugName: "default" }] : /* istanbul ignore next */ []));
|
|
2469
|
+
selected = input(...(ngDevMode ? [undefined, { debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
2470
|
+
isDesktop = input(...(ngDevMode ? [undefined, { debugName: "isDesktop" }] : /* istanbul ignore next */ []));
|
|
2516
2471
|
edit = output();
|
|
2517
2472
|
delete = output();
|
|
2518
2473
|
save = output();
|
|
@@ -2524,7 +2479,7 @@ class ContextItemComponent {
|
|
|
2524
2479
|
manageTools = output();
|
|
2525
2480
|
share = output();
|
|
2526
2481
|
get hidden() {
|
|
2527
|
-
return this.context()
|
|
2482
|
+
return this.context()?.hidden ?? false;
|
|
2528
2483
|
}
|
|
2529
2484
|
get canShare() {
|
|
2530
2485
|
return this.storageService.get('canShare') === true;
|
|
@@ -2532,18 +2487,17 @@ class ContextItemComponent {
|
|
|
2532
2487
|
get isMenuOpen() {
|
|
2533
2488
|
return this.itemActionsMenuTrigger()?.menuOpen ?? false;
|
|
2534
2489
|
}
|
|
2535
|
-
itemActionsMenuTrigger = viewChild(MatMenuTrigger, ...(ngDevMode ? [{ debugName: "itemActionsMenuTrigger" }] : []));
|
|
2490
|
+
itemActionsMenuTrigger = viewChild(MatMenuTrigger, ...(ngDevMode ? [{ debugName: "itemActionsMenuTrigger" }] : /* istanbul ignore next */ []));
|
|
2536
2491
|
favoriteClick(context) {
|
|
2537
2492
|
this.favorite.emit(context);
|
|
2538
2493
|
}
|
|
2539
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2540
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2494
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2495
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ContextItemComponent, isStandalone: true, selector: "igo-context-item", inputs: { showFavorite: { classPropertyName: "showFavorite", publicName: "showFavorite", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: true, transformFunction: null }, default: { classPropertyName: "default", publicName: "default", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, isDesktop: { classPropertyName: "isDesktop", publicName: "isDesktop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { edit: "edit", delete: "delete", save: "save", clone: "clone", hide: "hide", show: "show", favorite: "favorite", managePermissions: "managePermissions", manageTools: "manageTools", share: "share" }, host: { properties: { "class.igo-list-item-focused": "this.isMenuOpen" } }, viewQueries: [{ propertyName: "itemActionsMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true, isSignal: true }], ngImport: i0, template: "@let ctx = context()!;\n<mat-list-item class=\"mat-list-item\" [class.mat-list-item-light]=\"hidden\">\n @if (auth.authenticated) {\n <button\n matListItemAvatar\n mat-icon-button\n igoStopPropagation\n [matTooltip]=\"\n auth.authenticated\n ? ('igo.context.contextManager.favorite' | translate)\n : ''\n \"\n matTooltipShowDelay=\"500\"\n [color]=\"default() ? 'primary' : 'default'\"\n (click)=\"favoriteClick(ctx)\"\n >\n @if (!ctx.iconImage) {\n <mat-icon>{{\n ctx.icon ? ctx.icon : ctx.scope === 'public' ? 'public' : 'star'\n }}</mat-icon>\n } @else {\n <img [src]=\"ctx.iconImage\" alt=\"Ic\u00F4ne pour le favori de contexte\" />\n }\n </button>\n } @else if (showFavorite()) {\n <button\n matListItemAvatar\n mat-icon-button\n igoStopPropagation\n [matTooltip]=\"'igo.context.contextManager.favorite' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"default() ? 'primary' : 'default'\"\n (click)=\"favoriteClick(ctx)\"\n >\n <mat-icon>star</mat-icon>\n </button>\n }\n\n <span matListItemTitle>{{ ctx.title }}</span>\n\n @if (auth.authenticated) {\n <div\n matListItemMeta\n igoStopPropagation\n class=\"igo-actions-container\"\n [class.--not-desktop]=\"!isDesktop()\"\n [class.--selected]=\"selected()\"\n >\n @if (\n collapsed && selected() && (ctx.permission === 'write' || ctx.imported)\n ) {\n <button\n class=\"save-button\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.save' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"color\"\n (click)=\"save.emit(ctx)\"\n >\n <mat-icon>save</mat-icon>\n </button>\n }\n\n <button\n class=\"actions-button\"\n mat-icon-button\n [color]=\"color\"\n [matMenuTriggerFor]=\"itemActionsMenu\"\n #itemActionsMenuTrigger=\"matMenuTrigger\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #itemActionsMenu=\"matMenu\">\n @if (!ctx.imported) {\n @if (canShare) {\n <button\n mat-menu-item\n [matTooltip]=\"\n 'igo.context.contextManager.managePermissions' | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"managePermissions.emit(ctx)\"\n >\n <mat-icon>manage_accounts</mat-icon\n ><span>{{\n 'igo.context.contextManager.managePermissions' | translate\n }}</span>\n </button>\n }\n\n <button\n class=\"clone-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"clone.emit(ctx)\"\n >\n <mat-icon>content_copy</mat-icon>\n <span>{{ 'igo.context.contextManager.clone' | translate }}</span>\n </button>\n\n @if (ctx.permission === 'write') {\n <button\n class=\"edit-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"edit.emit(ctx)\"\n >\n <mat-icon>edit</mat-icon>\n <span>{{ 'igo.context.contextManager.edit' | translate }}</span>\n </button>\n }\n\n @if (!ctx.hidden) {\n <button\n class=\"hide-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"hide.emit(ctx)\"\n >\n <mat-icon>visibility</mat-icon>\n <span>{{ 'igo.context.contextManager.hide' | translate }}</span>\n </button>\n }\n\n @if (ctx.hidden) {\n <button\n class=\"hide-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"show.emit(ctx)\"\n >\n <mat-icon>visibility_off</mat-icon>\n <span>{{ 'igo.context.contextManager.show' | translate }}</span>\n </button>\n }\n\n <button\n mat-menu-item\n class=\"share-button\"\n [matTooltip]=\"'igo.context.contextManager.share' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"share.emit(ctx)\"\n >\n <mat-icon>share</mat-icon>\n <span>{{ 'igo.context.contextManager.share' | translate }}</span>\n </button>\n }\n\n @if (ctx.permission === 'write' || ctx.imported) {\n <button\n class=\"delete-button\"\n mat-menu-item\n color=\"warn\"\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"delete.emit(ctx)\"\n >\n <mat-icon>delete</mat-icon>\n <span>{{ 'igo.context.contextManager.delete' | translate }}</span>\n </button>\n }\n </mat-menu>\n </div>\n }\n</mat-list-item>\n", styles: [":host{overflow:hidden}:host:hover .igo-actions-container button,:host.igo-list-item-focused .igo-actions-container button,:host .--not-desktop button,:host .--selected button{visibility:visible!important}.igo-actions-container{flex-shrink:0}.igo-actions-container button{visibility:hidden}.igo-actions-container button.disabled{visibility:visible}.igo-actions-expand-container{display:inline-flex}mat-icon.disabled{color:#00000061}button[matlistitemavatar]{margin-right:8px}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "directive", type: i3.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i3.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: StopPropagationDirective, selector: "[igoStopPropagation]" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2541
2496
|
}
|
|
2542
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2497
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextItemComponent, decorators: [{
|
|
2543
2498
|
type: Component,
|
|
2544
2499
|
args: [{ selector: 'igo-context-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2545
2500
|
MatListModule,
|
|
2546
|
-
NgClass,
|
|
2547
2501
|
MatButtonModule,
|
|
2548
2502
|
StopPropagationDirective,
|
|
2549
2503
|
MatTooltipModule,
|
|
@@ -2552,16 +2506,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
2552
2506
|
IgoLanguageModule
|
|
2553
2507
|
], host: {
|
|
2554
2508
|
'[class.igo-list-item-focused]': 'this.isMenuOpen'
|
|
2555
|
-
}, template: "<mat-list-item
|
|
2556
|
-
}], propDecorators: { showFavorite: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFavorite", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required:
|
|
2509
|
+
}, template: "@let ctx = context()!;\n<mat-list-item class=\"mat-list-item\" [class.mat-list-item-light]=\"hidden\">\n @if (auth.authenticated) {\n <button\n matListItemAvatar\n mat-icon-button\n igoStopPropagation\n [matTooltip]=\"\n auth.authenticated\n ? ('igo.context.contextManager.favorite' | translate)\n : ''\n \"\n matTooltipShowDelay=\"500\"\n [color]=\"default() ? 'primary' : 'default'\"\n (click)=\"favoriteClick(ctx)\"\n >\n @if (!ctx.iconImage) {\n <mat-icon>{{\n ctx.icon ? ctx.icon : ctx.scope === 'public' ? 'public' : 'star'\n }}</mat-icon>\n } @else {\n <img [src]=\"ctx.iconImage\" alt=\"Ic\u00F4ne pour le favori de contexte\" />\n }\n </button>\n } @else if (showFavorite()) {\n <button\n matListItemAvatar\n mat-icon-button\n igoStopPropagation\n [matTooltip]=\"'igo.context.contextManager.favorite' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"default() ? 'primary' : 'default'\"\n (click)=\"favoriteClick(ctx)\"\n >\n <mat-icon>star</mat-icon>\n </button>\n }\n\n <span matListItemTitle>{{ ctx.title }}</span>\n\n @if (auth.authenticated) {\n <div\n matListItemMeta\n igoStopPropagation\n class=\"igo-actions-container\"\n [class.--not-desktop]=\"!isDesktop()\"\n [class.--selected]=\"selected()\"\n >\n @if (\n collapsed && selected() && (ctx.permission === 'write' || ctx.imported)\n ) {\n <button\n class=\"save-button\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.save' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"color\"\n (click)=\"save.emit(ctx)\"\n >\n <mat-icon>save</mat-icon>\n </button>\n }\n\n <button\n class=\"actions-button\"\n mat-icon-button\n [color]=\"color\"\n [matMenuTriggerFor]=\"itemActionsMenu\"\n #itemActionsMenuTrigger=\"matMenuTrigger\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #itemActionsMenu=\"matMenu\">\n @if (!ctx.imported) {\n @if (canShare) {\n <button\n mat-menu-item\n [matTooltip]=\"\n 'igo.context.contextManager.managePermissions' | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"managePermissions.emit(ctx)\"\n >\n <mat-icon>manage_accounts</mat-icon\n ><span>{{\n 'igo.context.contextManager.managePermissions' | translate\n }}</span>\n </button>\n }\n\n <button\n class=\"clone-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"clone.emit(ctx)\"\n >\n <mat-icon>content_copy</mat-icon>\n <span>{{ 'igo.context.contextManager.clone' | translate }}</span>\n </button>\n\n @if (ctx.permission === 'write') {\n <button\n class=\"edit-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"edit.emit(ctx)\"\n >\n <mat-icon>edit</mat-icon>\n <span>{{ 'igo.context.contextManager.edit' | translate }}</span>\n </button>\n }\n\n @if (!ctx.hidden) {\n <button\n class=\"hide-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"hide.emit(ctx)\"\n >\n <mat-icon>visibility</mat-icon>\n <span>{{ 'igo.context.contextManager.hide' | translate }}</span>\n </button>\n }\n\n @if (ctx.hidden) {\n <button\n class=\"hide-button\"\n mat-menu-item\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"show.emit(ctx)\"\n >\n <mat-icon>visibility_off</mat-icon>\n <span>{{ 'igo.context.contextManager.show' | translate }}</span>\n </button>\n }\n\n <button\n mat-menu-item\n class=\"share-button\"\n [matTooltip]=\"'igo.context.contextManager.share' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"share.emit(ctx)\"\n >\n <mat-icon>share</mat-icon>\n <span>{{ 'igo.context.contextManager.share' | translate }}</span>\n </button>\n }\n\n @if (ctx.permission === 'write' || ctx.imported) {\n <button\n class=\"delete-button\"\n mat-menu-item\n color=\"warn\"\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"delete.emit(ctx)\"\n >\n <mat-icon>delete</mat-icon>\n <span>{{ 'igo.context.contextManager.delete' | translate }}</span>\n </button>\n }\n </mat-menu>\n </div>\n }\n</mat-list-item>\n", styles: [":host{overflow:hidden}:host:hover .igo-actions-container button,:host.igo-list-item-focused .igo-actions-container button,:host .--not-desktop button,:host .--selected button{visibility:visible!important}.igo-actions-container{flex-shrink:0}.igo-actions-container button{visibility:hidden}.igo-actions-container button.disabled{visibility:visible}.igo-actions-expand-container{display:inline-flex}mat-icon.disabled{color:#00000061}button[matlistitemavatar]{margin-right:8px}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{background-color:transparent}\n"] }]
|
|
2510
|
+
}], propDecorators: { showFavorite: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFavorite", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: true }] }], default: [{ type: i0.Input, args: [{ isSignal: true, alias: "default", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], isDesktop: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDesktop", required: false }] }], edit: [{ type: i0.Output, args: ["edit"] }], delete: [{ type: i0.Output, args: ["delete"] }], save: [{ type: i0.Output, args: ["save"] }], clone: [{ type: i0.Output, args: ["clone"] }], hide: [{ type: i0.Output, args: ["hide"] }], show: [{ type: i0.Output, args: ["show"] }], favorite: [{ type: i0.Output, args: ["favorite"] }], managePermissions: [{ type: i0.Output, args: ["managePermissions"] }], manageTools: [{ type: i0.Output, args: ["manageTools"] }], share: [{ type: i0.Output, args: ["share"] }], itemActionsMenuTrigger: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatMenuTrigger), { isSignal: true }] }] } });
|
|
2557
2511
|
|
|
2558
2512
|
class BookmarkDialogComponent {
|
|
2559
2513
|
dialogRef = inject(MatDialogRef);
|
|
2560
|
-
title;
|
|
2561
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2562
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2514
|
+
title = '';
|
|
2515
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BookmarkDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2516
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: BookmarkDialogComponent, isStandalone: true, selector: "igo-bookmark-dialog", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ 'igo.context.bookmarkButton.dialog.title' | translate }}\n</h1>\n<div mat-dialog-content>\n <mat-form-field>\n <input\n matInput\n required\n autocomplete=\"off\"\n maxlength=\"128\"\n [placeholder]=\"\n 'igo.context.bookmarkButton.dialog.placeholder' | translate\n \"\n [(ngModel)]=\"title\"\n />\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n [disabled]=\"!title\"\n (click)=\"dialogRef.close(title)\"\n >\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\n </button>\n <button mat-button (click)=\"dialogRef.close(false)\">\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
2563
2517
|
}
|
|
2564
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BookmarkDialogComponent, decorators: [{
|
|
2565
2519
|
type: Component,
|
|
2566
2520
|
args: [{ selector: 'igo-bookmark-dialog', imports: [
|
|
2567
2521
|
MatDialogTitle,
|
|
@@ -2602,7 +2556,7 @@ class ContextListComponent {
|
|
|
2602
2556
|
previousMessageId;
|
|
2603
2557
|
sortAlphaOnIcon = SORT_ALPHA_ON_ICON;
|
|
2604
2558
|
sortAlphaOffIcon = SORT_ALPHA_OFF_ICON;
|
|
2605
|
-
isDesktop;
|
|
2559
|
+
isDesktop = input(...(ngDevMode ? [undefined, { debugName: "isDesktop" }] : /* istanbul ignore next */ []));
|
|
2606
2560
|
get contexts() {
|
|
2607
2561
|
return this._contexts;
|
|
2608
2562
|
}
|
|
@@ -2611,8 +2565,8 @@ class ContextListComponent {
|
|
|
2611
2565
|
this.next();
|
|
2612
2566
|
}
|
|
2613
2567
|
_contexts = { ours: [] };
|
|
2614
|
-
selectedContext = model(
|
|
2615
|
-
map = input(
|
|
2568
|
+
selectedContext = model(...(ngDevMode ? [undefined, { debugName: "selectedContext" }] : /* istanbul ignore next */ []));
|
|
2569
|
+
map = input(...(ngDevMode ? [undefined, { debugName: "map" }] : /* istanbul ignore next */ []));
|
|
2616
2570
|
get defaultContextId() {
|
|
2617
2571
|
return this.contextConfigs
|
|
2618
2572
|
? this._defaultContextId
|
|
@@ -2643,7 +2597,7 @@ class ContextListComponent {
|
|
|
2643
2597
|
shared: 'igo.context.contextManager.sharedContexts',
|
|
2644
2598
|
public: 'igo.context.contextManager.publicContexts'
|
|
2645
2599
|
};
|
|
2646
|
-
users;
|
|
2600
|
+
users = [];
|
|
2647
2601
|
permissions = [];
|
|
2648
2602
|
actionStore = new ActionStore([]);
|
|
2649
2603
|
actionbarMode = ActionbarMode.Overlay;
|
|
@@ -2661,13 +2615,13 @@ class ContextListComponent {
|
|
|
2661
2615
|
}
|
|
2662
2616
|
_term = '';
|
|
2663
2617
|
get sortedAlpha() {
|
|
2664
|
-
return this._sortedAlpha;
|
|
2618
|
+
return this._sortedAlpha ?? false;
|
|
2665
2619
|
}
|
|
2666
2620
|
set sortedAlpha(value) {
|
|
2667
2621
|
this._sortedAlpha = value;
|
|
2668
2622
|
this.next();
|
|
2669
2623
|
}
|
|
2670
|
-
_sortedAlpha
|
|
2624
|
+
_sortedAlpha;
|
|
2671
2625
|
showContextFilter = ContextListControlsEnum.always;
|
|
2672
2626
|
thresholdToFilter = 5;
|
|
2673
2627
|
get isEmpty() {
|
|
@@ -2712,7 +2666,8 @@ class ContextListComponent {
|
|
|
2712
2666
|
this.showHidden = this.storageService.get('contexts.showHidden');
|
|
2713
2667
|
this.contexts$$ = this.contextService.contexts$.subscribe((contexts) => (this.contexts = contexts));
|
|
2714
2668
|
this.defaultContextId$$ = this.contextService.defaultContextId$.subscribe((id) => {
|
|
2715
|
-
|
|
2669
|
+
if (id != null)
|
|
2670
|
+
this.defaultContextId = id;
|
|
2716
2671
|
});
|
|
2717
2672
|
const storedContextUri = this.storageService.get('favorite.context.uri');
|
|
2718
2673
|
if (storedContextUri && !this.auth.authenticated) {
|
|
@@ -2722,7 +2677,8 @@ class ContextListComponent {
|
|
|
2722
2677
|
this.selectedContext$$ = this.contextService.context$
|
|
2723
2678
|
.pipe(debounceTime(100))
|
|
2724
2679
|
.subscribe((context) => {
|
|
2725
|
-
|
|
2680
|
+
if (context)
|
|
2681
|
+
this.setSelected(context);
|
|
2726
2682
|
});
|
|
2727
2683
|
this.auth.authenticate$.subscribe((authenticate) => {
|
|
2728
2684
|
if (authenticate) {
|
|
@@ -2786,9 +2742,11 @@ class ContextListComponent {
|
|
|
2786
2742
|
.normalize('NFD')
|
|
2787
2743
|
.replace(/[\u0300-\u036f]/g, '');
|
|
2788
2744
|
const contextTitleNormalized = context.title
|
|
2789
|
-
.
|
|
2790
|
-
|
|
2791
|
-
|
|
2745
|
+
? context.title
|
|
2746
|
+
.toLowerCase()
|
|
2747
|
+
.normalize('NFD')
|
|
2748
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
2749
|
+
: '';
|
|
2792
2750
|
return contextTitleNormalized.includes(filterNormalized);
|
|
2793
2751
|
});
|
|
2794
2752
|
let updateContexts = {
|
|
@@ -2801,9 +2759,11 @@ class ContextListComponent {
|
|
|
2801
2759
|
.normalize('NFD')
|
|
2802
2760
|
.replace(/[\u0300-\u036f]/g, '');
|
|
2803
2761
|
const contextTitleNormalized = context.title
|
|
2804
|
-
.
|
|
2805
|
-
|
|
2806
|
-
|
|
2762
|
+
? context.title
|
|
2763
|
+
.toLowerCase()
|
|
2764
|
+
.normalize('NFD')
|
|
2765
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
2766
|
+
: '';
|
|
2807
2767
|
return contextTitleNormalized.includes(filterNormalized);
|
|
2808
2768
|
});
|
|
2809
2769
|
updateContexts.public = publics;
|
|
@@ -2815,9 +2775,11 @@ class ContextListComponent {
|
|
|
2815
2775
|
.normalize('NFD')
|
|
2816
2776
|
.replace(/[\u0300-\u036f]/g, '');
|
|
2817
2777
|
const contextTitleNormalized = context.title
|
|
2818
|
-
.
|
|
2819
|
-
|
|
2820
|
-
|
|
2778
|
+
? context.title
|
|
2779
|
+
.toLowerCase()
|
|
2780
|
+
.normalize('NFD')
|
|
2781
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
2782
|
+
: '';
|
|
2821
2783
|
return contextTitleNormalized.includes(filterNormalized);
|
|
2822
2784
|
});
|
|
2823
2785
|
updateContexts.shared = shared;
|
|
@@ -2850,41 +2812,39 @@ class ContextListComponent {
|
|
|
2850
2812
|
}
|
|
2851
2813
|
}
|
|
2852
2814
|
sortContextsList(contexts) {
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2815
|
+
const contextsList = JSON.parse(JSON.stringify(contexts));
|
|
2816
|
+
contextsList.ours.sort((a, b) => {
|
|
2817
|
+
if (this.normalize(a.title ?? '') < this.normalize(b.title ?? '')) {
|
|
2818
|
+
return -1;
|
|
2819
|
+
}
|
|
2820
|
+
if (this.normalize(a.title ?? '') > this.normalize(b.title ?? '')) {
|
|
2821
|
+
return 1;
|
|
2822
|
+
}
|
|
2823
|
+
return 0;
|
|
2824
|
+
});
|
|
2825
|
+
if (contextsList.shared) {
|
|
2826
|
+
contextsList.shared.sort((a, b) => {
|
|
2827
|
+
if (this.normalize(a.title ?? '') < this.normalize(b.title ?? '')) {
|
|
2857
2828
|
return -1;
|
|
2858
2829
|
}
|
|
2859
|
-
if (this.normalize(a.title) > this.normalize(b.title)) {
|
|
2830
|
+
if (this.normalize(a.title ?? '') > this.normalize(b.title ?? '')) {
|
|
2831
|
+
return 1;
|
|
2832
|
+
}
|
|
2833
|
+
return 0;
|
|
2834
|
+
});
|
|
2835
|
+
}
|
|
2836
|
+
else if (contextsList.public) {
|
|
2837
|
+
contextsList.public.sort((a, b) => {
|
|
2838
|
+
if (this.normalize(a.title ?? '') < this.normalize(b.title ?? '')) {
|
|
2839
|
+
return -1;
|
|
2840
|
+
}
|
|
2841
|
+
if (this.normalize(a.title ?? '') > this.normalize(b.title ?? '')) {
|
|
2860
2842
|
return 1;
|
|
2861
2843
|
}
|
|
2862
2844
|
return 0;
|
|
2863
2845
|
});
|
|
2864
|
-
if (contextsList.shared) {
|
|
2865
|
-
contextsList.shared.sort((a, b) => {
|
|
2866
|
-
if (this.normalize(a.title) < this.normalize(b.title)) {
|
|
2867
|
-
return -1;
|
|
2868
|
-
}
|
|
2869
|
-
if (this.normalize(a.title) > this.normalize(b.title)) {
|
|
2870
|
-
return 1;
|
|
2871
|
-
}
|
|
2872
|
-
return 0;
|
|
2873
|
-
});
|
|
2874
|
-
}
|
|
2875
|
-
else if (contextsList.public) {
|
|
2876
|
-
contextsList.public.sort((a, b) => {
|
|
2877
|
-
if (this.normalize(a.title) < this.normalize(b.title)) {
|
|
2878
|
-
return -1;
|
|
2879
|
-
}
|
|
2880
|
-
if (this.normalize(a.title) > this.normalize(b.title)) {
|
|
2881
|
-
return 1;
|
|
2882
|
-
}
|
|
2883
|
-
return 0;
|
|
2884
|
-
});
|
|
2885
|
-
}
|
|
2886
|
-
return contextsList;
|
|
2887
2846
|
}
|
|
2847
|
+
return contextsList;
|
|
2888
2848
|
}
|
|
2889
2849
|
normalize(str) {
|
|
2890
2850
|
return str
|
|
@@ -2905,14 +2865,13 @@ class ContextListComponent {
|
|
|
2905
2865
|
.pipe(take(1))
|
|
2906
2866
|
.subscribe((title) => {
|
|
2907
2867
|
if (title) {
|
|
2908
|
-
this.onCreate({ title, empty });
|
|
2868
|
+
this.onCreate({ title, empty: empty ?? false });
|
|
2909
2869
|
}
|
|
2910
2870
|
});
|
|
2911
2871
|
}
|
|
2912
2872
|
getPermission(user) {
|
|
2913
2873
|
if (user) {
|
|
2914
|
-
|
|
2915
|
-
return permission;
|
|
2874
|
+
return this.permissions.find((p) => p.name === user.name);
|
|
2916
2875
|
}
|
|
2917
2876
|
}
|
|
2918
2877
|
handleToggleCategory(user, parent) {
|
|
@@ -2924,17 +2883,17 @@ class ContextListComponent {
|
|
|
2924
2883
|
}
|
|
2925
2884
|
if (parent) {
|
|
2926
2885
|
let indeterminate = false;
|
|
2927
|
-
for (const c of parent.childs) {
|
|
2886
|
+
for (const c of parent.childs ?? []) {
|
|
2928
2887
|
const cPermission = this.getPermission(c);
|
|
2929
|
-
if (cPermission.checked !== permission
|
|
2888
|
+
if (cPermission && cPermission.checked !== permission?.checked) {
|
|
2930
2889
|
indeterminate = true;
|
|
2931
2890
|
break;
|
|
2932
2891
|
}
|
|
2933
2892
|
}
|
|
2934
2893
|
const parentPermission = this.getPermission(parent);
|
|
2935
2894
|
if (parentPermission) {
|
|
2936
|
-
parentPermission.checked = permission
|
|
2937
|
-
this.storageService.set('contexts.permissions.' + parentPermission.name, permission
|
|
2895
|
+
parentPermission.checked = permission?.checked ?? false;
|
|
2896
|
+
this.storageService.set('contexts.permissions.' + parentPermission.name, permission?.checked ?? false);
|
|
2938
2897
|
parentPermission.indeterminate = indeterminate;
|
|
2939
2898
|
}
|
|
2940
2899
|
}
|
|
@@ -2942,9 +2901,9 @@ class ContextListComponent {
|
|
|
2942
2901
|
for (const c of user.childs) {
|
|
2943
2902
|
const childrenPermission = this.getPermission(c);
|
|
2944
2903
|
if (childrenPermission &&
|
|
2945
|
-
childrenPermission.checked !== permission
|
|
2946
|
-
childrenPermission.checked = permission
|
|
2947
|
-
this.storageService.set('contexts.permissions.' + childrenPermission.name, permission
|
|
2904
|
+
childrenPermission.checked !== permission?.checked) {
|
|
2905
|
+
childrenPermission.checked = permission?.checked ?? false;
|
|
2906
|
+
this.storageService.set('contexts.permissions.' + childrenPermission.name, permission?.checked ?? false);
|
|
2948
2907
|
}
|
|
2949
2908
|
}
|
|
2950
2909
|
}
|
|
@@ -2972,7 +2931,7 @@ class ContextListComponent {
|
|
|
2972
2931
|
const { toolKey, sidenavKey, languageKey } = this.shareMapService.routeService.options;
|
|
2973
2932
|
const { context: contextKey } = this.shareMapService.options;
|
|
2974
2933
|
const baseOrigin = this.shareMapService.sanitizeBaseUrl(this.shareMapService.document.location.href);
|
|
2975
|
-
const url = context.uri === currentContext
|
|
2934
|
+
const url = context.uri === currentContext?.uri
|
|
2976
2935
|
? this.shareMapService.generateUrl(this.map(), this.contextService.context$.value)
|
|
2977
2936
|
: `${baseOrigin}${contextKey}=${context.uri}`;
|
|
2978
2937
|
const params = [];
|
|
@@ -3022,7 +2981,9 @@ class ContextListComponent {
|
|
|
3022
2981
|
this.handleContextChanges(changes);
|
|
3023
2982
|
msgSuccess();
|
|
3024
2983
|
}), switchMap(() => this.contextService.getDetails(context.id)), tap((fullContext) => {
|
|
3025
|
-
this.contextService.context$.value
|
|
2984
|
+
const currentCtx = this.contextService.context$.value;
|
|
2985
|
+
if (currentCtx)
|
|
2986
|
+
currentCtx.layers = fullContext.layers;
|
|
3026
2987
|
}), take(1))
|
|
3027
2988
|
.subscribe();
|
|
3028
2989
|
this.save.emit(context);
|
|
@@ -3031,8 +2992,8 @@ class ContextListComponent {
|
|
|
3031
2992
|
const map = this.mapService.getMap();
|
|
3032
2993
|
changes.layers.created.forEach((layerCreated) => {
|
|
3033
2994
|
const layer = isLayerItemOptions(layerCreated)
|
|
3034
|
-
? map
|
|
3035
|
-
: map
|
|
2995
|
+
? map?.layerController.getBySourceId(layerCreated.sourceOptions.id)
|
|
2996
|
+
: map?.layerController.getByTitle(layerCreated.title);
|
|
3036
2997
|
if (layer) {
|
|
3037
2998
|
layer.id = layerCreated.id;
|
|
3038
2999
|
}
|
|
@@ -3128,10 +3089,10 @@ class ContextListComponent {
|
|
|
3128
3089
|
}
|
|
3129
3090
|
this.hide.emit(context);
|
|
3130
3091
|
}
|
|
3131
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3132
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: ContextListComponent, isStandalone: true, selector: "igo-context-list", inputs: { isDesktop: { classPropertyName: "isDesktop", publicName: "isDesktop", isSignal: false, isRequired: false, transformFunction: null }, contexts: { classPropertyName: "contexts", publicName: "contexts", isSignal: false, isRequired: false, transformFunction: null }, selectedContext: { classPropertyName: "selectedContext", publicName: "selectedContext", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, defaultContextId: { classPropertyName: "defaultContextId", publicName: "defaultContextId", isSignal: false, isRequired: false, transformFunction: null }, term: { classPropertyName: "term", publicName: "term", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { selectedContext: "selectedContextChange", select: "select", unselect: "unselect", edit: "edit", delete: "delete", save: "save", clone: "clone", create: "create", hide: "hide", show: "show", showHiddenContexts: "showHiddenContexts", favorite: "favorite", managePermissions: "managePermissions", manageTools: "manageTools", filterPermissionsChanged: "filterPermissionsChanged" }, ngImport: i0, template: "<igo-list [navigation]=\"true\">\n <div class=\"context-filter-container\">\n @if (showFilter()) {\n <mat-form-field>\n <mat-label>{{\n 'igo.context.contextManager.filterPlaceHolder' | translate\n }}</mat-label>\n <input\n matInput\n type=\"text\"\n [placeholder]=\"\n 'igo.context.contextManager.filterPlaceHolder' | translate\n \"\n [(ngModel)]=\"term\"\n />\n @if (term.length) {\n <button\n mat-icon-button\n matSuffix\n class=\"clear-button\"\n aria-label=\"Clear\"\n color=\"warn\"\n (click)=\"clearFilter()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n\n <div class=\"actions-container\">\n <button\n mat-icon-button\n [matTooltip]=\"\n sortedAlpha\n ? ('igo.context.contextManager.sortDefault' | translate)\n : ('igo.context.contextManager.sortAlphabetically' | translate)\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort()\"\n >\n <igo-icon\n color=\"primary\"\n [icon]=\"sortedAlpha ? sortAlphaOnIcon : sortAlphaOffIcon\"\n />\n </button>\n\n @if (auth.authenticated && contextConfigs) {\n <igo-actionbar\n class=\"add-context-button\"\n [iconColor]=\"color\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n icon=\"add\"\n [withTitle]=\"actionbarMode === 'overlay'\"\n [horizontal]=\"false\"\n [mode]=\"actionbarMode\"\n />\n\n <button\n class=\"users-filter\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"accountMenu\"\n >\n <mat-icon color=\"primary\">filter_alt</mat-icon>\n </button>\n }\n <mat-menu #accountMenu=\"matMenu\">\n @for (user of users; track user.name) {\n @if (!user.childs) {\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"getPermission(user).checked\"\n [indeterminate]=\"getPermission(user).indeterminate\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(user)\"\n />\n <span>{{ user.title }}</span>\n </button>\n } @else {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"subAccountMenu\"\n class=\"profil-menu\"\n >\n <mat-checkbox\n [checked]=\"getPermission(user).checked\"\n [indeterminate]=\"getPermission(user).indeterminate\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(user)\"\n />\n <span>{{ user.title }}</span>\n </button>\n <mat-menu #subAccountMenu=\"matMenu\">\n @for (child of user.childs; track child.name) {\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"getPermission(child).checked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(child, user)\"\n >\n {{ child.title }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n }\n }\n\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"showHidden\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onShowHiddenContexts()\"\n />\n <span>\n {{ 'igo.context.contextManager.showHidden' | translate }}\n </span>\n </button>\n </mat-menu>\n </div>\n </div>\n\n @for (\n groupContexts of $any(contexts$ | async) | keyvalue: sortByKeyPriority;\n track groupContexts\n ) {\n @if ($any(groupContexts).value.length) {\n @if (auth.authenticated) {\n <igo-collapsible\n [title]=\"titleMapping[$any(groupContexts).key] | translate\"\n [collapsed]=\"$any(collapsed[titleMapping[$any(groupContexts).key]])\"\n (toggle)=\"\n collapsed[titleMapping[$any(groupContexts).key]] = $any($event)\n \"\n >\n @for (\n context of $any(groupContexts).value;\n track context.id ?? context.uri\n ) {\n <igo-context-item\n igoListItem\n color=\"accent\"\n [selected]=\"\n selectedContext() && selectedContext().uri === context.uri\n \"\n [context]=\"context\"\n [default]=\"\n context.id &&\n this.defaultContextId &&\n this.defaultContextId === context.id\n \"\n [isDesktop]=\"isDesktop\"\n (edit)=\"onEdit(context)\"\n (delete)=\"onDelete(context)\"\n (clone)=\"onClone(context)\"\n (save)=\"onSave(context)\"\n (hide)=\"onHideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"onFavorite(context)\"\n (manageTools)=\"onManageTools(context)\"\n (managePermissions)=\"onManagePermissions(context)\"\n (select)=\"onSelect(context)\"\n (unselect)=\"unselect.emit(context)\"\n (share)=\"onShareContext(context)\"\n />\n }\n </igo-collapsible>\n } @else {\n @for (\n context of $any(groupContexts).value;\n track context.id ?? context.uri\n ) {\n <igo-context-item\n igoListItem\n color=\"accent\"\n [showFavorite]=\"\n configService.getConfig('favoriteContext4NonAuthenticated')\n \"\n [selected]=\"isContextSelected(context)\"\n [context]=\"context\"\n [default]=\"\n contextConfigs\n ? defaultContextId === context.id\n : defaultContextId === context.uri\n \"\n [isDesktop]=\"isDesktop\"\n (edit)=\"onEdit(context)\"\n (delete)=\"onDelete(context)\"\n (clone)=\"onClone(context)\"\n (save)=\"onSave(context)\"\n (hide)=\"onHideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"onFavorite(context)\"\n (select)=\"onSelect(context)\"\n (unselect)=\"unselect.emit(context)\"\n />\n }\n }\n }\n }\n\n @if (isEmpty) {\n <div class=\"no-result\">\n {{ 'igo.context.contextManager.noResult' | translate }}\n </div>\n }\n</igo-list>\n", styles: [":host{--mat-list-list-item-one-line-container-height: 40px;--mat-form-field-container-height: 48px;--mat-form-field-container-vertical-padding: 12px;--mat-icon-button-state-layer-size: 40px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.context-filter-container{display:flex;align-items:center;padding:8px 4px}.context-filter-container mat-form-field{flex:1}.context-filter-min-width{width:calc(100% - 135px);margin:5px;padding-left:6px}.profil-menu{padding-left:8px}.profil-menu mat-checkbox{margin-right:8px}.add-context-button{margin:0;width:40px;display:inline-flex;overflow:hidden}.actions-container{margin-left:4px}.no-result{padding:16px}\n"], dependencies: [{ kind: "component", type: ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: ActionbarComponent, selector: "igo-actionbar", inputs: ["store", "mode", "withToggleButton", "horizontal", "color", "iconColor", "withTitle", "withTooltip", "scrollActive", "withIcon", "icon", "xPosition", "yPosition", "overlayClass"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: CollapsibleComponent, selector: "igo-collapsible", inputs: ["title", "collapsed"], outputs: ["collapsedChange", "toggle"] }, { kind: "component", type: ContextItemComponent, selector: "igo-context-item", inputs: ["showFavorite", "context", "default", "selected", "isDesktop"], outputs: ["edit", "delete", "save", "clone", "hide", "show", "favorite", "managePermissions", "manageTools", "share"] }, { kind: "directive", type: ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "component", type: IgoIconComponent, selector: "igo-icon", inputs: ["color", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3092
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3093
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ContextListComponent, isStandalone: true, selector: "igo-context-list", inputs: { isDesktop: { classPropertyName: "isDesktop", publicName: "isDesktop", isSignal: true, isRequired: false, transformFunction: null }, contexts: { classPropertyName: "contexts", publicName: "contexts", isSignal: false, isRequired: false, transformFunction: null }, selectedContext: { classPropertyName: "selectedContext", publicName: "selectedContext", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, defaultContextId: { classPropertyName: "defaultContextId", publicName: "defaultContextId", isSignal: false, isRequired: false, transformFunction: null }, term: { classPropertyName: "term", publicName: "term", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { selectedContext: "selectedContextChange", select: "select", unselect: "unselect", edit: "edit", delete: "delete", save: "save", clone: "clone", create: "create", hide: "hide", show: "show", showHiddenContexts: "showHiddenContexts", favorite: "favorite", managePermissions: "managePermissions", manageTools: "manageTools", filterPermissionsChanged: "filterPermissionsChanged" }, ngImport: i0, template: "<igo-list [navigation]=\"true\">\n <div class=\"context-filter-container\">\n @if (showFilter()) {\n <mat-form-field>\n <mat-label>{{\n 'igo.context.contextManager.filterPlaceHolder' | translate\n }}</mat-label>\n <input\n matInput\n type=\"text\"\n [placeholder]=\"\n 'igo.context.contextManager.filterPlaceHolder' | translate\n \"\n [(ngModel)]=\"term\"\n />\n @if (term.length) {\n <button\n mat-icon-button\n matSuffix\n class=\"clear-button\"\n aria-label=\"Clear\"\n color=\"warn\"\n (click)=\"clearFilter()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n\n <div class=\"actions-container\">\n <button\n mat-icon-button\n [matTooltip]=\"\n sortedAlpha\n ? ('igo.context.contextManager.sortDefault' | translate)\n : ('igo.context.contextManager.sortAlphabetically' | translate)\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort()\"\n >\n <igo-icon\n color=\"primary\"\n [icon]=\"sortedAlpha ? sortAlphaOnIcon : sortAlphaOffIcon\"\n />\n </button>\n\n @if (auth.authenticated && contextConfigs) {\n <igo-actionbar\n class=\"add-context-button\"\n [iconColor]=\"color\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n icon=\"add\"\n [withTitle]=\"actionbarMode === 'overlay'\"\n [horizontal]=\"false\"\n [mode]=\"actionbarMode\"\n />\n\n <button\n class=\"users-filter\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"accountMenu\"\n >\n <mat-icon color=\"primary\">filter_alt</mat-icon>\n </button>\n }\n <mat-menu #accountMenu=\"matMenu\">\n @for (user of users; track user.name) {\n @if (!user.childs) {\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"getPermission(user)?.checked ?? false\"\n [indeterminate]=\"getPermission(user)?.indeterminate ?? false\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(user)\"\n />\n <span>{{ user.title }}</span>\n </button>\n } @else {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"subAccountMenu\"\n class=\"profil-menu\"\n >\n <mat-checkbox\n [checked]=\"getPermission(user)?.checked ?? false\"\n [indeterminate]=\"getPermission(user)?.indeterminate ?? false\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(user)\"\n />\n <span>{{ user.title }}</span>\n </button>\n <mat-menu #subAccountMenu=\"matMenu\">\n @for (child of user.childs; track child.name) {\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"getPermission(child)?.checked ?? false\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(child, user)\"\n >\n {{ child.title }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n }\n }\n\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"showHidden\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onShowHiddenContexts()\"\n />\n <span>\n {{ 'igo.context.contextManager.showHidden' | translate }}\n </span>\n </button>\n </mat-menu>\n </div>\n </div>\n\n @for (\n groupContexts of $any(contexts$ | async) | keyvalue: sortByKeyPriority;\n track groupContexts\n ) {\n @if ($any(groupContexts).value.length) {\n @if (auth.authenticated) {\n <igo-collapsible\n [title]=\"$any(titleMapping)[$any(groupContexts).key] | translate\"\n [collapsed]=\"\n $any(collapsed[$any(titleMapping)[$any(groupContexts).key]])\n \"\n (toggle)=\"\n collapsed[$any(titleMapping)[$any(groupContexts).key]] =\n $any($event)\n \"\n >\n @for (\n context of $any(groupContexts).value;\n track context.id ?? context.uri\n ) {\n <igo-context-item\n igoListItem\n color=\"accent\"\n [selected]=\"selectedContext()?.uri === context.uri\"\n [context]=\"context\"\n [default]=\"\n context.id &&\n this.defaultContextId &&\n this.defaultContextId === context.id\n \"\n [isDesktop]=\"isDesktop()\"\n (edit)=\"onEdit(context)\"\n (delete)=\"onDelete(context)\"\n (clone)=\"onClone(context)\"\n (save)=\"onSave(context)\"\n (hide)=\"onHideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"onFavorite(context)\"\n (manageTools)=\"onManageTools(context)\"\n (managePermissions)=\"onManagePermissions(context)\"\n (select)=\"onSelect(context)\"\n (unselect)=\"unselect.emit(context)\"\n (share)=\"onShareContext(context)\"\n />\n }\n </igo-collapsible>\n } @else {\n @for (\n context of $any(groupContexts).value;\n track context.id ?? context.uri\n ) {\n <igo-context-item\n igoListItem\n color=\"accent\"\n [showFavorite]=\"\n configService.getConfig('favoriteContext4NonAuthenticated')\n \"\n [selected]=\"isContextSelected(context)\"\n [context]=\"context\"\n [default]=\"\n contextConfigs\n ? defaultContextId === context.id\n : defaultContextId === context.uri\n \"\n [isDesktop]=\"isDesktop()\"\n (edit)=\"onEdit(context)\"\n (delete)=\"onDelete(context)\"\n (clone)=\"onClone(context)\"\n (save)=\"onSave(context)\"\n (hide)=\"onHideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"onFavorite(context)\"\n (select)=\"onSelect(context)\"\n (unselect)=\"unselect.emit(context)\"\n />\n }\n }\n }\n }\n\n @if (isEmpty) {\n <div class=\"no-result\">\n {{ 'igo.context.contextManager.noResult' | translate }}\n </div>\n }\n</igo-list>\n", styles: [":host{--mat-list-list-item-one-line-container-height: 40px;--mat-form-field-container-height: 48px;--mat-form-field-container-vertical-padding: 12px;--mat-icon-button-state-layer-size: 40px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.context-filter-container{display:flex;align-items:center;padding:8px 4px}.context-filter-container mat-form-field{flex:1}.context-filter-min-width{width:calc(100% - 135px);margin:5px;padding-left:6px}.profil-menu{padding-left:8px}.profil-menu mat-checkbox{margin-right:8px}.add-context-button{margin:0;width:40px;display:inline-flex;overflow:hidden}.actions-container{margin-left:4px}.no-result{padding:16px}\n"], dependencies: [{ kind: "component", type: ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: ActionbarComponent, selector: "igo-actionbar", inputs: ["store", "mode", "withToggleButton", "horizontal", "color", "iconColor", "withTitle", "withTooltip", "scrollActive", "withIcon", "icon", "xPosition", "yPosition", "overlayClass"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: CollapsibleComponent, selector: "igo-collapsible", inputs: ["title", "collapsed"], outputs: ["collapsedChange", "toggle"] }, { kind: "component", type: ContextItemComponent, selector: "igo-context-item", inputs: ["showFavorite", "context", "default", "selected", "isDesktop"], outputs: ["edit", "delete", "save", "clone", "hide", "show", "favorite", "managePermissions", "manageTools", "share"] }, { kind: "directive", type: ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "component", type: IgoIconComponent, selector: "igo-icon", inputs: ["color", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3133
3094
|
}
|
|
3134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3095
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextListComponent, decorators: [{
|
|
3135
3096
|
type: Component,
|
|
3136
3097
|
args: [{ selector: 'igo-context-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
3137
3098
|
ListComponent,
|
|
@@ -3151,10 +3112,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3151
3112
|
KeyValuePipe,
|
|
3152
3113
|
IgoLanguageModule,
|
|
3153
3114
|
IgoIconComponent
|
|
3154
|
-
], template: "<igo-list [navigation]=\"true\">\n <div class=\"context-filter-container\">\n @if (showFilter()) {\n <mat-form-field>\n <mat-label>{{\n 'igo.context.contextManager.filterPlaceHolder' | translate\n }}</mat-label>\n <input\n matInput\n type=\"text\"\n [placeholder]=\"\n 'igo.context.contextManager.filterPlaceHolder' | translate\n \"\n [(ngModel)]=\"term\"\n />\n @if (term.length) {\n <button\n mat-icon-button\n matSuffix\n class=\"clear-button\"\n aria-label=\"Clear\"\n color=\"warn\"\n (click)=\"clearFilter()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n\n <div class=\"actions-container\">\n <button\n mat-icon-button\n [matTooltip]=\"\n sortedAlpha\n ? ('igo.context.contextManager.sortDefault' | translate)\n : ('igo.context.contextManager.sortAlphabetically' | translate)\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort()\"\n >\n <igo-icon\n color=\"primary\"\n [icon]=\"sortedAlpha ? sortAlphaOnIcon : sortAlphaOffIcon\"\n />\n </button>\n\n @if (auth.authenticated && contextConfigs) {\n <igo-actionbar\n class=\"add-context-button\"\n [iconColor]=\"color\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n icon=\"add\"\n [withTitle]=\"actionbarMode === 'overlay'\"\n [horizontal]=\"false\"\n [mode]=\"actionbarMode\"\n />\n\n <button\n class=\"users-filter\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"accountMenu\"\n >\n <mat-icon color=\"primary\">filter_alt</mat-icon>\n </button>\n }\n <mat-menu #accountMenu=\"matMenu\">\n @for (user of users; track user.name) {\n @if (!user.childs) {\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"getPermission(user)
|
|
3155
|
-
}], ctorParameters: () => [], propDecorators: { isDesktop: [{
|
|
3156
|
-
type: Input
|
|
3157
|
-
}], contexts: [{
|
|
3115
|
+
], template: "<igo-list [navigation]=\"true\">\n <div class=\"context-filter-container\">\n @if (showFilter()) {\n <mat-form-field>\n <mat-label>{{\n 'igo.context.contextManager.filterPlaceHolder' | translate\n }}</mat-label>\n <input\n matInput\n type=\"text\"\n [placeholder]=\"\n 'igo.context.contextManager.filterPlaceHolder' | translate\n \"\n [(ngModel)]=\"term\"\n />\n @if (term.length) {\n <button\n mat-icon-button\n matSuffix\n class=\"clear-button\"\n aria-label=\"Clear\"\n color=\"warn\"\n (click)=\"clearFilter()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n\n <div class=\"actions-container\">\n <button\n mat-icon-button\n [matTooltip]=\"\n sortedAlpha\n ? ('igo.context.contextManager.sortDefault' | translate)\n : ('igo.context.contextManager.sortAlphabetically' | translate)\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort()\"\n >\n <igo-icon\n color=\"primary\"\n [icon]=\"sortedAlpha ? sortAlphaOnIcon : sortAlphaOffIcon\"\n />\n </button>\n\n @if (auth.authenticated && contextConfigs) {\n <igo-actionbar\n class=\"add-context-button\"\n [iconColor]=\"color\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n icon=\"add\"\n [withTitle]=\"actionbarMode === 'overlay'\"\n [horizontal]=\"false\"\n [mode]=\"actionbarMode\"\n />\n\n <button\n class=\"users-filter\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"accountMenu\"\n >\n <mat-icon color=\"primary\">filter_alt</mat-icon>\n </button>\n }\n <mat-menu #accountMenu=\"matMenu\">\n @for (user of users; track user.name) {\n @if (!user.childs) {\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"getPermission(user)?.checked ?? false\"\n [indeterminate]=\"getPermission(user)?.indeterminate ?? false\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(user)\"\n />\n <span>{{ user.title }}</span>\n </button>\n } @else {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"subAccountMenu\"\n class=\"profil-menu\"\n >\n <mat-checkbox\n [checked]=\"getPermission(user)?.checked ?? false\"\n [indeterminate]=\"getPermission(user)?.indeterminate ?? false\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(user)\"\n />\n <span>{{ user.title }}</span>\n </button>\n <mat-menu #subAccountMenu=\"matMenu\">\n @for (child of user.childs; track child.name) {\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"getPermission(child)?.checked ?? false\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"handleToggleCategory(child, user)\"\n >\n {{ child.title }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n }\n }\n\n <button mat-menu-item class=\"profil-menu\">\n <mat-checkbox\n [checked]=\"showHidden\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onShowHiddenContexts()\"\n />\n <span>\n {{ 'igo.context.contextManager.showHidden' | translate }}\n </span>\n </button>\n </mat-menu>\n </div>\n </div>\n\n @for (\n groupContexts of $any(contexts$ | async) | keyvalue: sortByKeyPriority;\n track groupContexts\n ) {\n @if ($any(groupContexts).value.length) {\n @if (auth.authenticated) {\n <igo-collapsible\n [title]=\"$any(titleMapping)[$any(groupContexts).key] | translate\"\n [collapsed]=\"\n $any(collapsed[$any(titleMapping)[$any(groupContexts).key]])\n \"\n (toggle)=\"\n collapsed[$any(titleMapping)[$any(groupContexts).key]] =\n $any($event)\n \"\n >\n @for (\n context of $any(groupContexts).value;\n track context.id ?? context.uri\n ) {\n <igo-context-item\n igoListItem\n color=\"accent\"\n [selected]=\"selectedContext()?.uri === context.uri\"\n [context]=\"context\"\n [default]=\"\n context.id &&\n this.defaultContextId &&\n this.defaultContextId === context.id\n \"\n [isDesktop]=\"isDesktop()\"\n (edit)=\"onEdit(context)\"\n (delete)=\"onDelete(context)\"\n (clone)=\"onClone(context)\"\n (save)=\"onSave(context)\"\n (hide)=\"onHideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"onFavorite(context)\"\n (manageTools)=\"onManageTools(context)\"\n (managePermissions)=\"onManagePermissions(context)\"\n (select)=\"onSelect(context)\"\n (unselect)=\"unselect.emit(context)\"\n (share)=\"onShareContext(context)\"\n />\n }\n </igo-collapsible>\n } @else {\n @for (\n context of $any(groupContexts).value;\n track context.id ?? context.uri\n ) {\n <igo-context-item\n igoListItem\n color=\"accent\"\n [showFavorite]=\"\n configService.getConfig('favoriteContext4NonAuthenticated')\n \"\n [selected]=\"isContextSelected(context)\"\n [context]=\"context\"\n [default]=\"\n contextConfigs\n ? defaultContextId === context.id\n : defaultContextId === context.uri\n \"\n [isDesktop]=\"isDesktop()\"\n (edit)=\"onEdit(context)\"\n (delete)=\"onDelete(context)\"\n (clone)=\"onClone(context)\"\n (save)=\"onSave(context)\"\n (hide)=\"onHideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"onFavorite(context)\"\n (select)=\"onSelect(context)\"\n (unselect)=\"unselect.emit(context)\"\n />\n }\n }\n }\n }\n\n @if (isEmpty) {\n <div class=\"no-result\">\n {{ 'igo.context.contextManager.noResult' | translate }}\n </div>\n }\n</igo-list>\n", styles: [":host{--mat-list-list-item-one-line-container-height: 40px;--mat-form-field-container-height: 48px;--mat-form-field-container-vertical-padding: 12px;--mat-icon-button-state-layer-size: 40px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.context-filter-container{display:flex;align-items:center;padding:8px 4px}.context-filter-container mat-form-field{flex:1}.context-filter-min-width{width:calc(100% - 135px);margin:5px;padding-left:6px}.profil-menu{padding-left:8px}.profil-menu mat-checkbox{margin-right:8px}.add-context-button{margin:0;width:40px;display:inline-flex;overflow:hidden}.actions-container{margin-left:4px}.no-result{padding:16px}\n"] }]
|
|
3116
|
+
}], ctorParameters: () => [], propDecorators: { isDesktop: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDesktop", required: false }] }], contexts: [{
|
|
3158
3117
|
type: Input
|
|
3159
3118
|
}], selectedContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedContext", required: false }] }, { type: i0.Output, args: ["selectedContextChange"] }], map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: false }] }], defaultContextId: [{
|
|
3160
3119
|
type: Input
|
|
@@ -3163,9 +3122,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3163
3122
|
}] } });
|
|
3164
3123
|
|
|
3165
3124
|
class ContextPermissionItemComponent {
|
|
3166
|
-
permission = input.required(...(ngDevMode ? [{ debugName: "permission" }] : []));
|
|
3167
|
-
canWrite = input.required(...(ngDevMode ? [{ debugName: "canWrite" }] : []));
|
|
3168
|
-
user = input(...(ngDevMode ? [undefined, { debugName: "user" }] : []));
|
|
3125
|
+
permission = input.required(...(ngDevMode ? [{ debugName: "permission" }] : /* istanbul ignore next */ []));
|
|
3126
|
+
canWrite = input.required(...(ngDevMode ? [{ debugName: "canWrite" }] : /* istanbul ignore next */ []));
|
|
3127
|
+
user = input(...(ngDevMode ? [undefined, { debugName: "user" }] : /* istanbul ignore next */ []));
|
|
3169
3128
|
type = computed(() => {
|
|
3170
3129
|
const permission = this.permission();
|
|
3171
3130
|
return isContextPermissionUser(permission)
|
|
@@ -3173,7 +3132,7 @@ class ContextPermissionItemComponent {
|
|
|
3173
3132
|
? 'Extranet'
|
|
3174
3133
|
: 'Intranet'
|
|
3175
3134
|
: 'Profil';
|
|
3176
|
-
}, ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
3135
|
+
}, ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
3177
3136
|
icon = computed(() => {
|
|
3178
3137
|
const permission = this.permission();
|
|
3179
3138
|
return permission.profilType === 'user'
|
|
@@ -3181,13 +3140,13 @@ class ContextPermissionItemComponent {
|
|
|
3181
3140
|
? 'person'
|
|
3182
3141
|
: 'person_shield'
|
|
3183
3142
|
: 'badge';
|
|
3184
|
-
}, ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
3143
|
+
}, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
3185
3144
|
canDelete = computed(() => {
|
|
3186
3145
|
const permission = this.permission();
|
|
3187
3146
|
return (this.canWrite() ||
|
|
3188
3147
|
(isContextPermissionUser(permission) &&
|
|
3189
|
-
permission.user.externalId === this.user()
|
|
3190
|
-
}, ...(ngDevMode ? [{ debugName: "canDelete" }] : []));
|
|
3148
|
+
permission.user.externalId === this.user()?.id));
|
|
3149
|
+
}, ...(ngDevMode ? [{ debugName: "canDelete" }] : /* istanbul ignore next */ []));
|
|
3191
3150
|
delete = output();
|
|
3192
3151
|
isContextPermissionUser = isContextPermissionUser;
|
|
3193
3152
|
isUserExtranet(permission) {
|
|
@@ -3197,10 +3156,10 @@ class ContextPermissionItemComponent {
|
|
|
3197
3156
|
onDelete() {
|
|
3198
3157
|
this.delete.emit(this.permission());
|
|
3199
3158
|
}
|
|
3200
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3201
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3159
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextPermissionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3160
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ContextPermissionItemComponent, isStandalone: true, selector: "igo-context-permission-item", inputs: { permission: { classPropertyName: "permission", publicName: "permission", isSignal: true, isRequired: true, transformFunction: null }, canWrite: { classPropertyName: "canWrite", publicName: "canWrite", isSignal: true, isRequired: true, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: "delete" }, ngImport: i0, template: "@let permission = this.permission();\n\n<mat-list-item>\n <mat-icon matListItemIcon [matTooltip]=\"type()\">\n {{ icon() }}\n </mat-icon>\n\n <span matListItemTitle [matTooltip]=\"permission.title\">\n {{ permission.title }}\n </span>\n\n <span matListItemLine>{{ type() }}</span>\n <div matListItemMeta class=\"igo-actions-container\">\n @if (canDelete()) {\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\n matTooltipShowDelay=\"500\"\n color=\"warn\"\n (click)=\"onDelete()\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n</mat-list-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i3.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i3.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i3.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3202
3161
|
}
|
|
3203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextPermissionItemComponent, decorators: [{
|
|
3204
3163
|
type: Component,
|
|
3205
3164
|
args: [{ selector: 'igo-context-permission-item', imports: [
|
|
3206
3165
|
MatButtonModule,
|
|
@@ -3247,10 +3206,10 @@ class ContextPermissionService {
|
|
|
3247
3206
|
}
|
|
3248
3207
|
this.messageService.error('igo.context.contextManager.errors.addPermission', 'igo.context.contextManager.errors.addPermissionTitle');
|
|
3249
3208
|
}
|
|
3250
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3251
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3209
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextPermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3210
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextPermissionService, providedIn: 'root' });
|
|
3252
3211
|
}
|
|
3253
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextPermissionService, decorators: [{
|
|
3254
3213
|
type: Injectable,
|
|
3255
3214
|
args: [{
|
|
3256
3215
|
providedIn: 'root'
|
|
@@ -3267,12 +3226,12 @@ class ContextPermissionsComponent {
|
|
|
3267
3226
|
messageService = inject(MessageService);
|
|
3268
3227
|
destroyRef = inject(DestroyRef); // Modern way to handle cleanup
|
|
3269
3228
|
form;
|
|
3270
|
-
context = model(...(ngDevMode ? [undefined, { debugName: "context" }] : []));
|
|
3271
|
-
permissions = model(...(ngDevMode ? [undefined, { debugName: "permissions" }] : []));
|
|
3272
|
-
permissionsRead = computed(() => this.permissions()
|
|
3273
|
-
permissionsWrite = computed(() => this.permissions()
|
|
3274
|
-
profils = signal([], ...(ngDevMode ? [{ debugName: "profils" }] : []));
|
|
3275
|
-
canWrite = computed(() => this.context()
|
|
3229
|
+
context = model(...(ngDevMode ? [undefined, { debugName: "context" }] : /* istanbul ignore next */ []));
|
|
3230
|
+
permissions = model(...(ngDevMode ? [undefined, { debugName: "permissions" }] : /* istanbul ignore next */ []));
|
|
3231
|
+
permissionsRead = computed(() => this.permissions()?.filter((permission) => permission.typePermission === 'read'), ...(ngDevMode ? [{ debugName: "permissionsRead" }] : /* istanbul ignore next */ []));
|
|
3232
|
+
permissionsWrite = computed(() => this.permissions()?.filter((permission) => permission.typePermission === 'write'), ...(ngDevMode ? [{ debugName: "permissionsWrite" }] : /* istanbul ignore next */ []));
|
|
3233
|
+
profils = signal([], ...(ngDevMode ? [{ debugName: "profils" }] : /* istanbul ignore next */ []));
|
|
3234
|
+
canWrite = computed(() => this.context()?.permission === 'write', ...(ngDevMode ? [{ debugName: "canWrite" }] : /* istanbul ignore next */ []));
|
|
3276
3235
|
baseUrlProfils;
|
|
3277
3236
|
formControl = new UntypedFormControl();
|
|
3278
3237
|
formValueChanges$$;
|
|
@@ -3291,10 +3250,10 @@ class ContextPermissionsComponent {
|
|
|
3291
3250
|
this.handleEditedContextChange();
|
|
3292
3251
|
}
|
|
3293
3252
|
displayFn(profil) {
|
|
3294
|
-
return profil ? profil.title :
|
|
3253
|
+
return profil ? profil.title : '';
|
|
3295
3254
|
}
|
|
3296
3255
|
handleFormSubmit(value) {
|
|
3297
|
-
const contextId = this.context()
|
|
3256
|
+
const contextId = this.context()?.id;
|
|
3298
3257
|
this.contextPermissionService
|
|
3299
3258
|
.add(contextId, value)
|
|
3300
3259
|
.subscribe((permission) => {
|
|
@@ -3322,7 +3281,7 @@ class ContextPermissionsComponent {
|
|
|
3322
3281
|
});
|
|
3323
3282
|
}
|
|
3324
3283
|
onRemovePermission(permission) {
|
|
3325
|
-
const contextId = this.context()
|
|
3284
|
+
const contextId = this.context()?.id;
|
|
3326
3285
|
this.contextPermissionService
|
|
3327
3286
|
.delete(contextId, permission.id)
|
|
3328
3287
|
.subscribe(() => {
|
|
@@ -3367,10 +3326,10 @@ class ContextPermissionsComponent {
|
|
|
3367
3326
|
return profils.filter((p) => normalizeStr(p.name + p.title).includes(search));
|
|
3368
3327
|
}));
|
|
3369
3328
|
}
|
|
3370
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3371
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3329
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextPermissionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3330
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ContextPermissionsComponent, isStandalone: true, selector: "igo-context-permissions", inputs: { context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null }, permissions: { classPropertyName: "permissions", publicName: "permissions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { context: "contextChange", permissions: "permissionsChange" }, ngImport: i0, template: "@let user = authService.user;\n@let context = this.context();\n@let permissions = this.permissions();\n@if (context) {\n <div>\n @if (!canWrite()) {\n <div class=\"scopeForm\">\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\n </div>\n } @else {\n <div class=\"scopeForm\">\n <mat-radio-group\n [(ngModel)]=\"context.scope!\"\n (change)=\"onScopeChanged(context)\"\n >\n <mat-radio-button value=\"private\">\n {{ 'igo.context.permission.scope.private' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"protected\">\n {{ 'igo.context.permission.scope.shared' | translate }}\n </mat-radio-button>\n @if (authService.isAdmin) {\n <mat-radio-button value=\"public\">\n {{ 'igo.context.permission.scope.public' | translate }}\n </mat-radio-button>\n }\n </mat-radio-group>\n </div>\n }\n @if (context.scope !== 'private') {\n @if (canWrite()) {\n <form [formGroup]=\"form\" (ngSubmit)=\"handleFormSubmit(form.value)\">\n <mat-form-field class=\"full-width\">\n <input\n matInput\n required\n [placeholder]=\"'igo.context.permission.user' | translate\"\n [formControl]=\"formControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"onProfilSelected($event.option.value)\"\n [displayWith]=\"displayFn\"\n >\n @for (profil of this.profils(); track profil) {\n <mat-option [value]=\"profil\">\n {{ profil.title }}<br />\n <small>{{ profil.name }}</small>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-error>\n {{ 'igo.context.permission.profilRequired' | translate }}\n </mat-error>\n </mat-form-field>\n <mat-radio-group formControlName=\"typePermission\">\n <mat-radio-button value=\"read\">\n {{ 'igo.context.permission.read' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"write\">\n {{ 'igo.context.permission.write' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n <div class=\"igo-form-button-group\">\n <button matButton=\"elevated\" type=\"submit\" [disabled]=\"!form.valid\">\n {{ 'igo.context.permission.addBtn' | translate }}\n </button>\n </div>\n </form>\n }\n @if (permissions) {\n <igo-list>\n @if (permissionsRead()?.length) {\n <igo-collapsible\n [title]=\"'igo.context.permission.' + 'read' | translate\"\n >\n @for (permission of permissionsRead(); track permission) {\n <igo-context-permission-item\n [permission]=\"permission\"\n [canWrite]=\"canWrite()\"\n [user]=\"user ?? undefined\"\n (delete)=\"onRemovePermission($event)\"\n />\n }\n </igo-collapsible>\n }\n @if (permissionsWrite()?.length) {\n <igo-collapsible\n [title]=\"'igo.context.permission.' + 'write' | translate\"\n >\n @for (permission of permissionsWrite(); track permission) {\n <igo-context-permission-item\n [permission]=\"permission\"\n [canWrite]=\"canWrite()\"\n [user]=\"user ?? undefined\"\n (delete)=\"onRemovePermission($event)\"\n />\n }\n </igo-collapsible>\n }\n </igo-list>\n }\n }\n </div>\n}\n", styles: [".full-width{width:100%}mat-radio-button{padding:14px 14px 14px 0}.scopeForm,form{padding:5px}\n"], dependencies: [{ kind: "component", type: CollapsibleComponent, selector: "igo-collapsible", inputs: ["title", "collapsed"], outputs: ["collapsedChange", "toggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "component", type: ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatListModule }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i6$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i6$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ContextPermissionItemComponent, selector: "igo-context-permission-item", inputs: ["permission", "canWrite", "user"], outputs: ["delete"] }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3372
3331
|
}
|
|
3373
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3332
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ContextPermissionsComponent, decorators: [{
|
|
3374
3333
|
type: Component,
|
|
3375
3334
|
args: [{ selector: 'igo-context-permissions', imports: [
|
|
3376
3335
|
CollapsibleComponent,
|
|
@@ -3388,7 +3347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3388
3347
|
MatTooltipModule,
|
|
3389
3348
|
ReactiveFormsModule,
|
|
3390
3349
|
ContextPermissionItemComponent
|
|
3391
|
-
], template: "@let user = authService.user;\n
|
|
3350
|
+
], template: "@let user = authService.user;\n@let context = this.context();\n@let permissions = this.permissions();\n@if (context) {\n <div>\n @if (!canWrite()) {\n <div class=\"scopeForm\">\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\n </div>\n } @else {\n <div class=\"scopeForm\">\n <mat-radio-group\n [(ngModel)]=\"context.scope!\"\n (change)=\"onScopeChanged(context)\"\n >\n <mat-radio-button value=\"private\">\n {{ 'igo.context.permission.scope.private' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"protected\">\n {{ 'igo.context.permission.scope.shared' | translate }}\n </mat-radio-button>\n @if (authService.isAdmin) {\n <mat-radio-button value=\"public\">\n {{ 'igo.context.permission.scope.public' | translate }}\n </mat-radio-button>\n }\n </mat-radio-group>\n </div>\n }\n @if (context.scope !== 'private') {\n @if (canWrite()) {\n <form [formGroup]=\"form\" (ngSubmit)=\"handleFormSubmit(form.value)\">\n <mat-form-field class=\"full-width\">\n <input\n matInput\n required\n [placeholder]=\"'igo.context.permission.user' | translate\"\n [formControl]=\"formControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"onProfilSelected($event.option.value)\"\n [displayWith]=\"displayFn\"\n >\n @for (profil of this.profils(); track profil) {\n <mat-option [value]=\"profil\">\n {{ profil.title }}<br />\n <small>{{ profil.name }}</small>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-error>\n {{ 'igo.context.permission.profilRequired' | translate }}\n </mat-error>\n </mat-form-field>\n <mat-radio-group formControlName=\"typePermission\">\n <mat-radio-button value=\"read\">\n {{ 'igo.context.permission.read' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"write\">\n {{ 'igo.context.permission.write' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n <div class=\"igo-form-button-group\">\n <button matButton=\"elevated\" type=\"submit\" [disabled]=\"!form.valid\">\n {{ 'igo.context.permission.addBtn' | translate }}\n </button>\n </div>\n </form>\n }\n @if (permissions) {\n <igo-list>\n @if (permissionsRead()?.length) {\n <igo-collapsible\n [title]=\"'igo.context.permission.' + 'read' | translate\"\n >\n @for (permission of permissionsRead(); track permission) {\n <igo-context-permission-item\n [permission]=\"permission\"\n [canWrite]=\"canWrite()\"\n [user]=\"user ?? undefined\"\n (delete)=\"onRemovePermission($event)\"\n />\n }\n </igo-collapsible>\n }\n @if (permissionsWrite()?.length) {\n <igo-collapsible\n [title]=\"'igo.context.permission.' + 'write' | translate\"\n >\n @for (permission of permissionsWrite(); track permission) {\n <igo-context-permission-item\n [permission]=\"permission\"\n [canWrite]=\"canWrite()\"\n [user]=\"user ?? undefined\"\n (delete)=\"onRemovePermission($event)\"\n />\n }\n </igo-collapsible>\n }\n </igo-list>\n }\n }\n </div>\n}\n", styles: [".full-width{width:100%}mat-radio-button{padding:14px 14px 14px 0}.scopeForm,form{padding:5px}\n"] }]
|
|
3392
3351
|
}], propDecorators: { context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: false }] }, { type: i0.Output, args: ["contextChange"] }], permissions: [{ type: i0.Input, args: [{ isSignal: true, alias: "permissions", required: false }] }, { type: i0.Output, args: ["permissionsChange"] }] } });
|
|
3393
3352
|
const normalizeStr = (str) => str
|
|
3394
3353
|
.toLowerCase()
|
|
@@ -3404,8 +3363,8 @@ class IgoContextManagerModule {
|
|
|
3404
3363
|
ngModule: IgoContextManagerModule
|
|
3405
3364
|
};
|
|
3406
3365
|
}
|
|
3407
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3408
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3366
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3367
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: IgoContextManagerModule, imports: [ContextListComponent,
|
|
3409
3368
|
ContextItemComponent,
|
|
3410
3369
|
ContextFormComponent,
|
|
3411
3370
|
ContextEditComponent,
|
|
@@ -3418,13 +3377,13 @@ class IgoContextManagerModule {
|
|
|
3418
3377
|
ContextPermissionsComponent,
|
|
3419
3378
|
LayerContextDirective,
|
|
3420
3379
|
MapContextDirective] });
|
|
3421
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3380
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextManagerModule, imports: [ContextListComponent,
|
|
3422
3381
|
ContextItemComponent,
|
|
3423
3382
|
ContextFormComponent,
|
|
3424
3383
|
ContextEditComponent,
|
|
3425
3384
|
ContextPermissionsComponent] });
|
|
3426
3385
|
}
|
|
3427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextManagerModule, decorators: [{
|
|
3428
3387
|
type: NgModule,
|
|
3429
3388
|
args: [{
|
|
3430
3389
|
imports: [
|
|
@@ -3452,20 +3411,8 @@ class BookmarkButtonComponent {
|
|
|
3452
3411
|
dialog = inject(MatDialog);
|
|
3453
3412
|
contextService = inject(ContextService);
|
|
3454
3413
|
messageService = inject(MessageService);
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
}
|
|
3458
|
-
set map(value) {
|
|
3459
|
-
this._map = value;
|
|
3460
|
-
}
|
|
3461
|
-
_map;
|
|
3462
|
-
get color() {
|
|
3463
|
-
return this._color;
|
|
3464
|
-
}
|
|
3465
|
-
set color(value) {
|
|
3466
|
-
this._color = value;
|
|
3467
|
-
}
|
|
3468
|
-
_color;
|
|
3414
|
+
map = input.required(...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
|
|
3415
|
+
color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
|
|
3469
3416
|
createContext() {
|
|
3470
3417
|
this.dialog
|
|
3471
3418
|
.open(BookmarkDialogComponent, { disableClose: false })
|
|
@@ -3473,7 +3420,7 @@ class BookmarkButtonComponent {
|
|
|
3473
3420
|
.pipe(take(1))
|
|
3474
3421
|
.subscribe((title) => {
|
|
3475
3422
|
if (title) {
|
|
3476
|
-
const context = this.contextService.getContextFromMap(this.map);
|
|
3423
|
+
const context = this.contextService.getContextFromMap(this.map());
|
|
3477
3424
|
context.title = title;
|
|
3478
3425
|
this.contextService.create(context).subscribe(() => {
|
|
3479
3426
|
this.messageService.success('igo.context.bookmarkButton.dialog.createMsg', 'igo.context.bookmarkButton.dialog.createTitle', undefined, { value: context.title });
|
|
@@ -3482,25 +3429,21 @@ class BookmarkButtonComponent {
|
|
|
3482
3429
|
}
|
|
3483
3430
|
});
|
|
3484
3431
|
}
|
|
3485
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3486
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3432
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BookmarkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3433
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.14", type: BookmarkButtonComponent, isStandalone: true, selector: "igo-bookmark-button", inputs: { map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"igo-bookmark-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color()\"\n (click)=\"createContext()\"\n >\n <mat-icon>star</mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important;background-color:var(--mat-sys-surface-bright)}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3487
3434
|
}
|
|
3488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BookmarkButtonComponent, decorators: [{
|
|
3489
3436
|
type: Component,
|
|
3490
|
-
args: [{ selector: 'igo-bookmark-button', imports: [MatButtonModule, MatTooltipModule, MatIconModule, IgoLanguageModule], template: "<div class=\"igo-bookmark-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"createContext()\"\n >\n <mat-icon>star</mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important;background-color:var(--mat-sys-surface-bright)}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}\n"] }]
|
|
3491
|
-
}], propDecorators: { map: [{
|
|
3492
|
-
type: Input
|
|
3493
|
-
}], color: [{
|
|
3494
|
-
type: Input
|
|
3495
|
-
}] } });
|
|
3437
|
+
args: [{ selector: 'igo-bookmark-button', imports: [MatButtonModule, MatTooltipModule, MatIconModule, IgoLanguageModule], template: "<div class=\"igo-bookmark-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color()\"\n (click)=\"createContext()\"\n >\n <mat-icon>star</mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important;background-color:var(--mat-sys-surface-bright)}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}\n"] }]
|
|
3438
|
+
}], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
3496
3439
|
|
|
3497
3440
|
class PoiDialogComponent {
|
|
3498
3441
|
dialogRef = inject(MatDialogRef);
|
|
3499
|
-
title;
|
|
3500
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3501
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3442
|
+
title = '';
|
|
3443
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PoiDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3444
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: PoiDialogComponent, isStandalone: true, selector: "igo-poi-dialog", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ 'igo.context.poiButton.dialog.title' | translate }}\n</h1>\n<div mat-dialog-content>\n <mat-form-field>\n <input\n matInput\n required\n autocomplete=\"off\"\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\n [(ngModel)]=\"title\"\n />\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n [disabled]=\"!title\"\n (click)=\"dialogRef.close(title)\"\n >\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\n </button>\n <button matButton (click)=\"dialogRef.close(false)\">\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3502
3445
|
}
|
|
3503
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PoiDialogComponent, decorators: [{
|
|
3504
3447
|
type: Component,
|
|
3505
3448
|
args: [{ selector: 'igo-poi-dialog', imports: [
|
|
3506
3449
|
MatDialogTitle,
|
|
@@ -3536,10 +3479,10 @@ class PoiService {
|
|
|
3536
3479
|
const url = this.baseUrl + '/pois';
|
|
3537
3480
|
return this.http.post(url, context);
|
|
3538
3481
|
}
|
|
3539
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3540
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3482
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PoiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3483
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PoiService });
|
|
3541
3484
|
}
|
|
3542
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3485
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PoiService, decorators: [{
|
|
3543
3486
|
type: Injectable
|
|
3544
3487
|
}], ctorParameters: () => [] });
|
|
3545
3488
|
|
|
@@ -3551,20 +3494,8 @@ class PoiButtonComponent {
|
|
|
3551
3494
|
languageService = inject(LanguageService);
|
|
3552
3495
|
confirmDialogService = inject(ConfirmDialogService);
|
|
3553
3496
|
selected;
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
}
|
|
3557
|
-
set map(value) {
|
|
3558
|
-
this._map = value;
|
|
3559
|
-
}
|
|
3560
|
-
_map;
|
|
3561
|
-
get color() {
|
|
3562
|
-
return this._color;
|
|
3563
|
-
}
|
|
3564
|
-
set color(value) {
|
|
3565
|
-
this._color = value;
|
|
3566
|
-
}
|
|
3567
|
-
_color;
|
|
3497
|
+
map = input.required(...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
|
|
3498
|
+
color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
|
|
3568
3499
|
pois;
|
|
3569
3500
|
authenticate$$;
|
|
3570
3501
|
ngOnInit() {
|
|
@@ -3606,7 +3537,7 @@ class PoiButtonComponent {
|
|
|
3606
3537
|
});
|
|
3607
3538
|
}
|
|
3608
3539
|
createPoi() {
|
|
3609
|
-
const view = this.map.ol.getView();
|
|
3540
|
+
const view = this.map().ol.getView();
|
|
3610
3541
|
const proj = view.getProjection().getCode();
|
|
3611
3542
|
const center = new olPoint(view.getCenter()).transform(proj, 'EPSG:4326');
|
|
3612
3543
|
const poi = {
|
|
@@ -3634,18 +3565,20 @@ class PoiButtonComponent {
|
|
|
3634
3565
|
}
|
|
3635
3566
|
zoomOnPoi(id) {
|
|
3636
3567
|
const poi = this.pois.find((p) => p.id === id);
|
|
3637
|
-
|
|
3638
|
-
|
|
3568
|
+
if (!poi)
|
|
3569
|
+
return;
|
|
3570
|
+
const center = olproj.fromLonLat([Number(poi.x), Number(poi.y)], this.map().projectionCode);
|
|
3571
|
+
this.map().ol.getView().animate({
|
|
3639
3572
|
center,
|
|
3640
3573
|
zoom: poi.zoom,
|
|
3641
3574
|
duration: 500,
|
|
3642
3575
|
easing: oleasing.easeOut
|
|
3643
3576
|
});
|
|
3644
3577
|
}
|
|
3645
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3646
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3578
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PoiButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3579
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PoiButtonComponent, isStandalone: true, selector: "igo-poi-button", inputs: { map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, providers: [PoiService], ngImport: i0, template: "<mat-select\n panelClass=\"poi-select-panel\"\n class=\"poi-select\"\n [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\n floatPlaceholder=\"never\"\n [(value)]=\"selected\"\n>\n <mat-select-trigger>\n {{ selected.title || '' }}\n </mat-select-trigger>\n <mat-option (click)=\"createPoi()\" class=\"poi-option\">\n <div\n class=\"poi-option-row\"\n [matTooltip]=\"'igo.context.poiButton.create' | translate\"\n matTooltipPosition=\"above\"\n >\n <div class=\"poi-option-text\">\n {{ 'igo.context.poiButton.create' | translate }}\n </div>\n <div class=\"poi-option-button\">\n <button\n igoStopPropagation\n mat-icon-button\n color=\"primary\"\n (click)=\"createPoi()\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </div>\n </div>\n </mat-option>\n <mat-divider />\n @for (poi of pois; track poi) {\n <mat-option class=\"poi-option\" [value]=\"poi\" (click)=\"zoomOnPoi(poi.id!)\">\n <div class=\"poi-option-row\">\n <div\n class=\"poi-option-text\"\n [matTooltip]=\"poi.title\"\n matTooltipPosition=\"above\"\n >\n {{ poi.title }}\n </div>\n <div class=\"poi-option-button\">\n <button\n mat-icon-button\n igoStopPropagation\n color=\"warn\"\n (click)=\"deletePoi(poi)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </mat-option>\n }\n</mat-select>\n", styles: [":host{padding:0 8px;height:100%;display:flex;align-items:center;background-color:var(--mat-sys-surface-bright)}.poi-select{width:175px;height:100%}.poi-option{padding-right:6px;padding-left:6px}.poi-option .poi-option-row{display:flex;align-items:center;width:100%}.poi-option .poi-option-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poi-option .poi-option-button{width:35px;display:flex;align-items:center;justify-content:flex-start}.poi-option ::ng-deep .mat-pseudo-checkbox{display:none}::ng-deep .poi-select .mat-mdc-select-trigger{height:100%;display:flex;align-items:center}::ng-deep .poi-select-panel .mdc-list-item__primary-text{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: IgoLanguageModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i5.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: StopPropagationDirective, selector: "[igoStopPropagation]" }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3647
3580
|
}
|
|
3648
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3581
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PoiButtonComponent, decorators: [{
|
|
3649
3582
|
type: Component,
|
|
3650
3583
|
args: [{ selector: 'igo-poi-button', imports: [
|
|
3651
3584
|
IgoLanguageModule,
|
|
@@ -3656,12 +3589,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3656
3589
|
MatSelectModule,
|
|
3657
3590
|
MatTooltipModule,
|
|
3658
3591
|
StopPropagationDirective
|
|
3659
|
-
], providers: [PoiService], template: "<mat-select\n panelClass=\"poi-select-panel\"\n class=\"poi-select\"\n [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\n floatPlaceholder=\"never\"\n [(value)]=\"selected\"\n>\n <mat-select-trigger>\n {{ selected
|
|
3660
|
-
}], propDecorators: { map: [{
|
|
3661
|
-
type: Input
|
|
3662
|
-
}], color: [{
|
|
3663
|
-
type: Input
|
|
3664
|
-
}] } });
|
|
3592
|
+
], providers: [PoiService], template: "<mat-select\n panelClass=\"poi-select-panel\"\n class=\"poi-select\"\n [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\n floatPlaceholder=\"never\"\n [(value)]=\"selected\"\n>\n <mat-select-trigger>\n {{ selected.title || '' }}\n </mat-select-trigger>\n <mat-option (click)=\"createPoi()\" class=\"poi-option\">\n <div\n class=\"poi-option-row\"\n [matTooltip]=\"'igo.context.poiButton.create' | translate\"\n matTooltipPosition=\"above\"\n >\n <div class=\"poi-option-text\">\n {{ 'igo.context.poiButton.create' | translate }}\n </div>\n <div class=\"poi-option-button\">\n <button\n igoStopPropagation\n mat-icon-button\n color=\"primary\"\n (click)=\"createPoi()\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </div>\n </div>\n </mat-option>\n <mat-divider />\n @for (poi of pois; track poi) {\n <mat-option class=\"poi-option\" [value]=\"poi\" (click)=\"zoomOnPoi(poi.id!)\">\n <div class=\"poi-option-row\">\n <div\n class=\"poi-option-text\"\n [matTooltip]=\"poi.title\"\n matTooltipPosition=\"above\"\n >\n {{ poi.title }}\n </div>\n <div class=\"poi-option-button\">\n <button\n mat-icon-button\n igoStopPropagation\n color=\"warn\"\n (click)=\"deletePoi(poi)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </mat-option>\n }\n</mat-select>\n", styles: [":host{padding:0 8px;height:100%;display:flex;align-items:center;background-color:var(--mat-sys-surface-bright)}.poi-select{width:175px;height:100%}.poi-option{padding-right:6px;padding-left:6px}.poi-option .poi-option-row{display:flex;align-items:center;width:100%}.poi-option .poi-option-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poi-option .poi-option-button{width:35px;display:flex;align-items:center;justify-content:flex-start}.poi-option ::ng-deep .mat-pseudo-checkbox{display:none}::ng-deep .poi-select .mat-mdc-select-trigger{height:100%;display:flex;align-items:center}::ng-deep .poi-select-panel .mdc-list-item__primary-text{width:100%}\n"] }]
|
|
3593
|
+
}], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
3665
3594
|
|
|
3666
3595
|
function userButtonSlideInOut() {
|
|
3667
3596
|
return trigger('userButtonState', [
|
|
@@ -3686,15 +3615,17 @@ class UserDialogComponent {
|
|
|
3686
3615
|
constructor() {
|
|
3687
3616
|
const decodeToken = this.auth.decodeToken();
|
|
3688
3617
|
this.user = decodeToken?.user;
|
|
3689
|
-
this.exp =
|
|
3618
|
+
this.exp = decodeToken?.exp
|
|
3619
|
+
? new Date(decodeToken.exp * 1000).toLocaleString()
|
|
3620
|
+
: undefined;
|
|
3690
3621
|
}
|
|
3691
3622
|
clearPreferences() {
|
|
3692
3623
|
this.storageService.clear();
|
|
3693
3624
|
}
|
|
3694
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3695
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3625
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: UserDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3626
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: UserDialogComponent, isStandalone: true, selector: "igo-user-dialog", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ 'igo.context.userButton.infoTitle' | translate }}\n</h1>\n<div mat-dialog-content>\n <p>\n {{ 'igo.context.userButton.dialog.user' | translate }}: {{ user?.sourceId }}\n </p>\n <p>\n {{ 'igo.context.userButton.dialog.email' | translate }}: {{ user?.email }}\n </p>\n <p>{{ 'igo.context.userButton.dialog.expiration' | translate }}: {{ exp }}</p>\n <button mat-stroked-button color=\"primary\" (click)=\"clearPreferences()\">\n {{ 'igo.context.userButton.dialog.clearPreferences' | translate }}\n </button>\n <br />\n</div>\n<div mat-dialog-actions style=\"justify-content: center\">\n <button matButton=\"elevated\" color=\"primary\" (click)=\"dialogRef.close(false)\">\n OK\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3696
3627
|
}
|
|
3697
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3628
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: UserDialogComponent, decorators: [{
|
|
3698
3629
|
type: Component,
|
|
3699
3630
|
args: [{ selector: 'igo-user-dialog', imports: [
|
|
3700
3631
|
MatDialogTitle,
|
|
@@ -3702,27 +3633,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3702
3633
|
MatButtonModule,
|
|
3703
3634
|
MatDialogActions,
|
|
3704
3635
|
IgoLanguageModule
|
|
3705
|
-
], template: "<h1 mat-dialog-title>\n {{ 'igo.context.userButton.infoTitle' | translate }}\n</h1>\n<div mat-dialog-content>\n <p>\n {{ 'igo.context.userButton.dialog.user' | translate }}: {{ user
|
|
3636
|
+
], template: "<h1 mat-dialog-title>\n {{ 'igo.context.userButton.infoTitle' | translate }}\n</h1>\n<div mat-dialog-content>\n <p>\n {{ 'igo.context.userButton.dialog.user' | translate }}: {{ user?.sourceId }}\n </p>\n <p>\n {{ 'igo.context.userButton.dialog.email' | translate }}: {{ user?.email }}\n </p>\n <p>{{ 'igo.context.userButton.dialog.expiration' | translate }}: {{ exp }}</p>\n <button mat-stroked-button color=\"primary\" (click)=\"clearPreferences()\">\n {{ 'igo.context.userButton.dialog.clearPreferences' | translate }}\n </button>\n <br />\n</div>\n<div mat-dialog-actions style=\"justify-content: center\">\n <button matButton=\"elevated\" color=\"primary\" (click)=\"dialogRef.close(false)\">\n OK\n </button>\n</div>\n" }]
|
|
3706
3637
|
}], ctorParameters: () => [] });
|
|
3707
3638
|
|
|
3708
3639
|
class UserButtonComponent {
|
|
3709
3640
|
dialog = inject(MatDialog);
|
|
3710
3641
|
config = inject(ConfigService);
|
|
3711
3642
|
auth = inject(AuthService);
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
}
|
|
3715
|
-
set map(value) {
|
|
3716
|
-
this._map = value;
|
|
3717
|
-
}
|
|
3718
|
-
_map;
|
|
3719
|
-
get color() {
|
|
3720
|
-
return this._color;
|
|
3721
|
-
}
|
|
3722
|
-
set color(value) {
|
|
3723
|
-
this._color = value;
|
|
3724
|
-
}
|
|
3725
|
-
_color;
|
|
3643
|
+
map = input.required(...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
|
|
3644
|
+
color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
|
|
3726
3645
|
expand = false;
|
|
3727
3646
|
visible = false;
|
|
3728
3647
|
hasApi = false;
|
|
@@ -3745,10 +3664,10 @@ class UserButtonComponent {
|
|
|
3745
3664
|
infoUser() {
|
|
3746
3665
|
this.dialog.open(UserDialogComponent, { disableClose: false });
|
|
3747
3666
|
}
|
|
3748
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3749
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3667
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: UserButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3668
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: UserButtonComponent, isStandalone: true, selector: "igo-user-button", inputs: { map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (visible) {\n <div class=\"igo-user-button-container\">\n <div\n class=\"igo-user-button-more-container\"\n [@userButtonState]=\"expand ? 'expand' : 'collapse'\"\n >\n @if (hasApi) {\n <igo-poi-button [color]=\"color()\" [map]=\"map()\" />\n }\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color()\"\n (click)=\"infoUser()\"\n >\n <mat-icon>info</mat-icon>\n </button>\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.logout' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color()\"\n (click)=\"logout()\"\n >\n <mat-icon>power_settings_new</mat-icon>\n </button>\n </div>\n <button\n mat-icon-button\n [color]=\"auth.authenticated ? color() : 'warn'\"\n (click)=\"accountClick()\"\n >\n <mat-icon>account_box</mat-icon>\n </button>\n </div>\n}\n", styles: [":host button{border-radius:0!important;background-color:var(--mat-sys-surface-bright)}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.igo-user-button-container,.igo-user-button-more-container{display:flex;gap:4px}\n"], dependencies: [{ kind: "component", type: PoiButtonComponent, selector: "igo-poi-button", inputs: ["map", "color"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }], animations: [userButtonSlideInOut()] });
|
|
3750
3669
|
}
|
|
3751
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3670
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: UserButtonComponent, decorators: [{
|
|
3752
3671
|
type: Component,
|
|
3753
3672
|
args: [{ selector: 'igo-user-button', animations: [userButtonSlideInOut()], imports: [
|
|
3754
3673
|
PoiButtonComponent,
|
|
@@ -3756,12 +3675,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3756
3675
|
MatTooltipModule,
|
|
3757
3676
|
MatIconModule,
|
|
3758
3677
|
IgoLanguageModule
|
|
3759
|
-
], template: "@if (visible) {\n <div class=\"igo-user-button-container\">\n <div\n class=\"igo-user-button-more-container\"\n [@userButtonState]=\"expand ? 'expand' : 'collapse'\"\n >\n @if (hasApi) {\n <igo-poi-button [color]=\"color\" [map]=\"map\" />\n }\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"infoUser()\"\n >\n <mat-icon>info</mat-icon>\n </button>\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.logout' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"logout()\"\n >\n <mat-icon>power_settings_new</mat-icon>\n </button>\n </div>\n <button\n mat-icon-button\n [color]=\"auth.authenticated ? color : 'warn'\"\n (click)=\"accountClick()\"\n >\n <mat-icon>account_box</mat-icon>\n </button>\n </div>\n}\n", styles: [":host button{border-radius:0!important;background-color:var(--mat-sys-surface-bright)}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.igo-user-button-container,.igo-user-button-more-container{display:flex;gap:4px}\n"] }]
|
|
3760
|
-
}], ctorParameters: () => [], propDecorators: { map: [{
|
|
3761
|
-
type: Input
|
|
3762
|
-
}], color: [{
|
|
3763
|
-
type: Input
|
|
3764
|
-
}] } });
|
|
3678
|
+
], template: "@if (visible) {\n <div class=\"igo-user-button-container\">\n <div\n class=\"igo-user-button-more-container\"\n [@userButtonState]=\"expand ? 'expand' : 'collapse'\"\n >\n @if (hasApi) {\n <igo-poi-button [color]=\"color()\" [map]=\"map()\" />\n }\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color()\"\n (click)=\"infoUser()\"\n >\n <mat-icon>info</mat-icon>\n </button>\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.logout' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color()\"\n (click)=\"logout()\"\n >\n <mat-icon>power_settings_new</mat-icon>\n </button>\n </div>\n <button\n mat-icon-button\n [color]=\"auth.authenticated ? color() : 'warn'\"\n (click)=\"accountClick()\"\n >\n <mat-icon>account_box</mat-icon>\n </button>\n </div>\n}\n", styles: [":host button{border-radius:0!important;background-color:var(--mat-sys-surface-bright)}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.igo-user-button-container,.igo-user-button-more-container{display:flex;gap:4px}\n"] }]
|
|
3679
|
+
}], ctorParameters: () => [], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
3765
3680
|
|
|
3766
3681
|
/**
|
|
3767
3682
|
* @deprecated import the components/directives directly or CONTEXT_MAP_BUTTON_DIRECTIVES for the set
|
|
@@ -3772,20 +3687,20 @@ class IgoContextMapButtonModule {
|
|
|
3772
3687
|
ngModule: IgoContextMapButtonModule
|
|
3773
3688
|
};
|
|
3774
3689
|
}
|
|
3775
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3776
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3690
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextMapButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3691
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: IgoContextMapButtonModule, imports: [BookmarkButtonComponent,
|
|
3777
3692
|
BookmarkDialogComponent,
|
|
3778
3693
|
PoiButtonComponent,
|
|
3779
3694
|
UserButtonComponent], exports: [BookmarkButtonComponent,
|
|
3780
3695
|
PoiButtonComponent,
|
|
3781
3696
|
UserButtonComponent,
|
|
3782
3697
|
BookmarkDialogComponent] });
|
|
3783
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3698
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextMapButtonModule, providers: [PoiService], imports: [BookmarkButtonComponent,
|
|
3784
3699
|
BookmarkDialogComponent,
|
|
3785
3700
|
PoiButtonComponent,
|
|
3786
3701
|
UserButtonComponent] });
|
|
3787
3702
|
}
|
|
3788
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3703
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextMapButtonModule, decorators: [{
|
|
3789
3704
|
type: NgModule,
|
|
3790
3705
|
args: [{
|
|
3791
3706
|
imports: [
|
|
@@ -3811,7 +3726,7 @@ class ShareMapUrlComponent {
|
|
|
3811
3726
|
contextService = inject(ContextService);
|
|
3812
3727
|
cdRef = inject(ChangeDetectorRef);
|
|
3813
3728
|
mapState$$;
|
|
3814
|
-
map = input(
|
|
3729
|
+
map = input.required(...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
|
|
3815
3730
|
url;
|
|
3816
3731
|
ngOnInit() {
|
|
3817
3732
|
this.generateUrl();
|
|
@@ -3835,10 +3750,10 @@ class ShareMapUrlComponent {
|
|
|
3835
3750
|
this.messageService.success('igo.context.shareMap.dialog.copyMsg', 'igo.context.shareMap.dialog.copyTitle');
|
|
3836
3751
|
}
|
|
3837
3752
|
}
|
|
3838
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3839
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3753
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ShareMapUrlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3754
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ShareMapUrlComponent, isStandalone: true, selector: "igo-share-map-url", inputs: { map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"igo-input-container\">\n <mat-form-field>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"3\"\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\n [value]=\"url\"\n ></textarea>\n </mat-form-field>\n\n <div class=\"igo-share-map-url-content\">\n <div class=\"igo-form-button-group\">\n <button matButton=\"elevated\" (click)=\"copyTextToClipboard(textArea)\">\n <mat-icon>content_copy</mat-icon>\n {{ 'igo.context.shareMap.copy' | translate }}\n </button>\n </div>\n\n <div>\n <br />\n <section>\n @if (('igo.context.shareMap.htmlClarifications' | translate) === '') {\n <div>\n @if (('igo.context.shareMap.included' | translate) !== '') {\n <h4>\n {{ 'igo.context.shareMap.included' | translate }}\n </h4>\n }\n <ul>\n @if (('igo.context.shareMap.context' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.context' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.center' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.center' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.zoom' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.zoom' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.addedLayers' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.addedLayers' | translate }}\n </li>\n }\n @if (\n ('igo.context.shareMap.visibleInvisible' | translate) !== ''\n ) {\n <li>\n {{ 'igo.context.shareMap.visibleInvisible' | translate }}\n </li>\n }\n </ul>\n @if (('igo.context.shareMap.excluded' | translate) !== '') {\n <h4>\n {{ 'igo.context.shareMap.excluded' | translate }}\n </h4>\n }\n <ul>\n @if (('igo.context.shareMap.order' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.order' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.opacity' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.opacity' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.filterOgc' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.filterOgc' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.filterTime' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.filterTime' | translate }}\n </li>\n }\n </ul>\n </div>\n }\n @if (('igo.context.shareMap.htmlClarifications' | translate) !== '') {\n <igo-custom-html\n class=\"shareCustomPadding\"\n [html]=\"'igo.context.shareMap.htmlClarifications' | translate\"\n />\n }\n </section>\n </div>\n </div>\n</div>\n", styles: ["mat-form-field{width:100%}.igo-share-map-url-content{padding:16px}.igo-form-button-group{text-align:center}igo-custom-html.shareCustomPadding{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "component", type: CustomHtmlComponent, selector: "igo-custom-html", inputs: ["html"] }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3840
3755
|
}
|
|
3841
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3756
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ShareMapUrlComponent, decorators: [{
|
|
3842
3757
|
type: Component,
|
|
3843
3758
|
args: [{ selector: 'igo-share-map-url', imports: [
|
|
3844
3759
|
MatFormFieldModule,
|
|
@@ -3848,17 +3763,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3848
3763
|
IgoLanguageModule,
|
|
3849
3764
|
CustomHtmlComponent
|
|
3850
3765
|
], template: "<div class=\"igo-input-container\">\n <mat-form-field>\n <textarea\n #textArea\n matInput\n readonly\n rows=\"3\"\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\n [value]=\"url\"\n ></textarea>\n </mat-form-field>\n\n <div class=\"igo-share-map-url-content\">\n <div class=\"igo-form-button-group\">\n <button matButton=\"elevated\" (click)=\"copyTextToClipboard(textArea)\">\n <mat-icon>content_copy</mat-icon>\n {{ 'igo.context.shareMap.copy' | translate }}\n </button>\n </div>\n\n <div>\n <br />\n <section>\n @if (('igo.context.shareMap.htmlClarifications' | translate) === '') {\n <div>\n @if (('igo.context.shareMap.included' | translate) !== '') {\n <h4>\n {{ 'igo.context.shareMap.included' | translate }}\n </h4>\n }\n <ul>\n @if (('igo.context.shareMap.context' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.context' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.center' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.center' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.zoom' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.zoom' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.addedLayers' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.addedLayers' | translate }}\n </li>\n }\n @if (\n ('igo.context.shareMap.visibleInvisible' | translate) !== ''\n ) {\n <li>\n {{ 'igo.context.shareMap.visibleInvisible' | translate }}\n </li>\n }\n </ul>\n @if (('igo.context.shareMap.excluded' | translate) !== '') {\n <h4>\n {{ 'igo.context.shareMap.excluded' | translate }}\n </h4>\n }\n <ul>\n @if (('igo.context.shareMap.order' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.order' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.opacity' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.opacity' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.filterOgc' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.filterOgc' | translate }}\n </li>\n }\n @if (('igo.context.shareMap.filterTime' | translate) !== '') {\n <li>\n {{ 'igo.context.shareMap.filterTime' | translate }}\n </li>\n }\n </ul>\n </div>\n }\n @if (('igo.context.shareMap.htmlClarifications' | translate) !== '') {\n <igo-custom-html\n class=\"shareCustomPadding\"\n [html]=\"'igo.context.shareMap.htmlClarifications' | translate\"\n />\n }\n </section>\n </div>\n </div>\n</div>\n", styles: ["mat-form-field{width:100%}.igo-share-map-url-content{padding:16px}.igo-form-button-group{text-align:center}igo-custom-html.shareCustomPadding{padding:0}\n"] }]
|
|
3851
|
-
}], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required:
|
|
3766
|
+
}], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: true }] }] } });
|
|
3852
3767
|
|
|
3853
3768
|
class ShareMapComponent {
|
|
3854
|
-
map = input(
|
|
3855
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3856
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
3769
|
+
map = input.required(...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
|
|
3770
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ShareMapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3771
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.14", type: ShareMapComponent, isStandalone: true, selector: "igo-share-map", inputs: { map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<igo-share-map-url [map]=\"map()\" />\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: ShareMapUrlComponent, selector: "igo-share-map-url", inputs: ["map"] }] });
|
|
3857
3772
|
}
|
|
3858
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ShareMapComponent, decorators: [{
|
|
3859
3774
|
type: Component,
|
|
3860
3775
|
args: [{ selector: 'igo-share-map', imports: [MatTabsModule, ShareMapUrlComponent], template: "<igo-share-map-url [map]=\"map()\" />\n" }]
|
|
3861
|
-
}], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required:
|
|
3776
|
+
}], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: true }] }] } });
|
|
3862
3777
|
|
|
3863
3778
|
const SHARE_MAP_DIRECTIVES = [
|
|
3864
3779
|
ShareMapComponent,
|
|
@@ -3873,11 +3788,11 @@ class IgoShareMapModule {
|
|
|
3873
3788
|
ngModule: IgoShareMapModule
|
|
3874
3789
|
};
|
|
3875
3790
|
}
|
|
3876
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3877
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3878
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3791
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoShareMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3792
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: IgoShareMapModule, imports: [ShareMapComponent, ShareMapUrlComponent], exports: [ShareMapComponent, ShareMapUrlComponent] });
|
|
3793
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoShareMapModule, imports: [ShareMapComponent, ShareMapUrlComponent] });
|
|
3879
3794
|
}
|
|
3880
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3795
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoShareMapModule, decorators: [{
|
|
3881
3796
|
type: NgModule,
|
|
3882
3797
|
args: [{
|
|
3883
3798
|
imports: [ShareMapComponent, ShareMapUrlComponent],
|
|
@@ -3888,64 +3803,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3888
3803
|
class SidenavComponent {
|
|
3889
3804
|
titleService = inject(Title);
|
|
3890
3805
|
format = new GeoJSON();
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
}
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
}
|
|
3897
|
-
_map;
|
|
3898
|
-
get opened() {
|
|
3899
|
-
return this._opened;
|
|
3900
|
-
}
|
|
3901
|
-
set opened(value) {
|
|
3902
|
-
this._opened = value;
|
|
3903
|
-
}
|
|
3904
|
-
_opened;
|
|
3905
|
-
get feature() {
|
|
3906
|
-
return this._feature;
|
|
3907
|
-
}
|
|
3908
|
-
set feature(value) {
|
|
3909
|
-
this._feature = value;
|
|
3910
|
-
}
|
|
3911
|
-
_feature;
|
|
3912
|
-
get tool() {
|
|
3913
|
-
return this._tool;
|
|
3914
|
-
}
|
|
3915
|
-
set tool(value) {
|
|
3916
|
-
this._tool = value;
|
|
3917
|
-
}
|
|
3918
|
-
_tool;
|
|
3919
|
-
get media() {
|
|
3920
|
-
return this._media;
|
|
3921
|
-
}
|
|
3922
|
-
set media(value) {
|
|
3923
|
-
this._media = value;
|
|
3924
|
-
}
|
|
3925
|
-
_media;
|
|
3926
|
-
get title() {
|
|
3927
|
-
return this._title;
|
|
3928
|
-
}
|
|
3929
|
-
set title(value) {
|
|
3930
|
-
if (value) {
|
|
3931
|
-
this._title = value;
|
|
3932
|
-
}
|
|
3933
|
-
}
|
|
3934
|
-
_title;
|
|
3806
|
+
map = input.required(...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
|
|
3807
|
+
opened = input(false, ...(ngDevMode ? [{ debugName: "opened" }] : /* istanbul ignore next */ []));
|
|
3808
|
+
feature = input.required(...(ngDevMode ? [{ debugName: "feature" }] : /* istanbul ignore next */ []));
|
|
3809
|
+
tool = input(...(ngDevMode ? [undefined, { debugName: "tool" }] : /* istanbul ignore next */ []));
|
|
3810
|
+
media = input(...(ngDevMode ? [undefined, { debugName: "media" }] : /* istanbul ignore next */ []));
|
|
3811
|
+
title = input('', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
3935
3812
|
topPanelState = 'initial';
|
|
3813
|
+
_defaultTitle = this.titleService.getTitle();
|
|
3814
|
+
displayTitle = computed(() => this.title() || this._defaultTitle, ...(ngDevMode ? [{ debugName: "displayTitle" }] : /* istanbul ignore next */ []));
|
|
3936
3815
|
get featureTitle() {
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
constructor() {
|
|
3940
|
-
this._title = this.titleService.getTitle();
|
|
3816
|
+
const feature = this.feature();
|
|
3817
|
+
return feature ? getEntityTitle(feature) : undefined;
|
|
3941
3818
|
}
|
|
3942
3819
|
zoomToFeatureExtent() {
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3820
|
+
const feature = this.feature();
|
|
3821
|
+
if (feature?.geometry) {
|
|
3822
|
+
const olFeature = this.format.readFeature(feature, {
|
|
3823
|
+
dataProjection: feature.projection,
|
|
3824
|
+
featureProjection: this.map().viewProjection
|
|
3947
3825
|
});
|
|
3948
|
-
moveToOlFeatures(this.map.viewController, olFeature, FeatureMotion.Zoom);
|
|
3826
|
+
moveToOlFeatures(this.map().viewController, olFeature, FeatureMotion.Zoom);
|
|
3949
3827
|
}
|
|
3950
3828
|
}
|
|
3951
3829
|
toggleTopPanel() {
|
|
@@ -3956,10 +3834,10 @@ class SidenavComponent {
|
|
|
3956
3834
|
this.topPanelState = 'initial';
|
|
3957
3835
|
}
|
|
3958
3836
|
}
|
|
3959
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3960
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
3837
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: SidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3838
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: SidenavComponent, isStandalone: true, selector: "igo-sidenav", inputs: { map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: true, transformFunction: null }, opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null }, feature: { classPropertyName: "feature", publicName: "feature", isSignal: true, isRequired: true, transformFunction: null }, tool: { classPropertyName: "tool", publicName: "tool", isSignal: true, isRequired: false, transformFunction: null }, media: { classPropertyName: "media", publicName: "media", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-sidenav #sidenav igoSidenavShim mode=\"side\" [opened]=\"opened()\">\n <div class=\"igo-sidenav-content\">\n <igo-flexible\n #topPanel\n initial=\"50%\"\n initialMobile=\"100%\"\n expanded=\"calc(100% - 58px)\"\n [state]=\"topPanelState\"\n >\n <div class=\"igo-content\">\n <igo-panel\n [title]=\"tool() ? (tool()!.title | translate) : displayTitle()\"\n >\n @if (tool()) {\n <button\n mat-icon-button\n panelLeftButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\n >\n <mat-icon>arrow_back</mat-icon>\n </button>\n }\n\n @if (tool()) {\n <button\n mat-icon-button\n panelRightButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n }\n </igo-panel>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n @if (feature() && media() !== 'mobile') {\n <igo-panel [title]=\"featureTitle\">\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n ['collapsed', 'initial'].indexOf(topPanel.state) >= 0\n ? 'arrow_downward'\n : 'arrow_upward'\n }}</mat-icon>\n </button>\n @if (feature().geometry) {\n <button\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon>zoom_in</mat-icon>\n </button>\n }\n @if (['collapsed', 'initial'].indexOf(topPanel.state) >= 0) {\n <igo-feature-details [feature]=\"feature()!\" />\n }\n </igo-panel>\n }\n </div>\n </igo-flexible>\n </div>\n</mat-sidenav>\n", styles: [":host ::ng-deep .igo-flexible-fill .igo-container,.igo-sidenav-content .igo-flexible-fill .igo-container{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}:host ::ng-deep .igo-flexible-fill .igo-container,.igo-sidenav-content .igo-flexible-fill .igo-container{border-top-width:1px;border-top-style:solid;border-top-color:#0003}mat-sidenav{-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}:host{background-color:#fff}:host ::ng-deep mat-sidenav{z-index:3!important}mat-sidenav{width:400px}@media only screen and (orientation:portrait)and (max-width:599px),only screen and (orientation:landscape)and (max-width:959px){mat-sidenav{width:calc(100% - 45px)}}.igo-sidenav-content{margin-top:50px;height:calc(100% - 50px)}igo-feature-details ::ng-deep table{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i1$3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] });
|
|
3961
3839
|
}
|
|
3962
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: SidenavComponent, decorators: [{
|
|
3963
3841
|
type: Component,
|
|
3964
3842
|
args: [{ selector: 'igo-sidenav', imports: [
|
|
3965
3843
|
MatSidenavModule,
|
|
@@ -3970,20 +3848,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
3970
3848
|
MatIconModule,
|
|
3971
3849
|
FeatureDetailsComponent,
|
|
3972
3850
|
IgoLanguageModule
|
|
3973
|
-
], template: "<mat-sidenav #sidenav igoSidenavShim mode=\"side\" [opened]=\"opened\">\n <div class=\"igo-sidenav-content\">\n <igo-flexible\n #topPanel\n initial=\"50%\"\n initialMobile=\"100%\"\n expanded=\"calc(100% - 58px)\"\n [state]=\"topPanelState\"\n >\n <div class=\"igo-content\">\n <igo-panel
|
|
3974
|
-
}],
|
|
3975
|
-
type: Input
|
|
3976
|
-
}], opened: [{
|
|
3977
|
-
type: Input
|
|
3978
|
-
}], feature: [{
|
|
3979
|
-
type: Input
|
|
3980
|
-
}], tool: [{
|
|
3981
|
-
type: Input
|
|
3982
|
-
}], media: [{
|
|
3983
|
-
type: Input
|
|
3984
|
-
}], title: [{
|
|
3985
|
-
type: Input
|
|
3986
|
-
}] } });
|
|
3851
|
+
], template: "<mat-sidenav #sidenav igoSidenavShim mode=\"side\" [opened]=\"opened()\">\n <div class=\"igo-sidenav-content\">\n <igo-flexible\n #topPanel\n initial=\"50%\"\n initialMobile=\"100%\"\n expanded=\"calc(100% - 58px)\"\n [state]=\"topPanelState\"\n >\n <div class=\"igo-content\">\n <igo-panel\n [title]=\"tool() ? (tool()!.title | translate) : displayTitle()\"\n >\n @if (tool()) {\n <button\n mat-icon-button\n panelLeftButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\n >\n <mat-icon>arrow_back</mat-icon>\n </button>\n }\n\n @if (tool()) {\n <button\n mat-icon-button\n panelRightButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n }\n </igo-panel>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n @if (feature() && media() !== 'mobile') {\n <igo-panel [title]=\"featureTitle\">\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n ['collapsed', 'initial'].indexOf(topPanel.state) >= 0\n ? 'arrow_downward'\n : 'arrow_upward'\n }}</mat-icon>\n </button>\n @if (feature().geometry) {\n <button\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon>zoom_in</mat-icon>\n </button>\n }\n @if (['collapsed', 'initial'].indexOf(topPanel.state) >= 0) {\n <igo-feature-details [feature]=\"feature()!\" />\n }\n </igo-panel>\n }\n </div>\n </igo-flexible>\n </div>\n</mat-sidenav>\n", styles: [":host ::ng-deep .igo-flexible-fill .igo-container,.igo-sidenav-content .igo-flexible-fill .igo-container{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}:host ::ng-deep .igo-flexible-fill .igo-container,.igo-sidenav-content .igo-flexible-fill .igo-container{border-top-width:1px;border-top-style:solid;border-top-color:#0003}mat-sidenav{-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}:host{background-color:#fff}:host ::ng-deep mat-sidenav{z-index:3!important}mat-sidenav{width:400px}@media only screen and (orientation:portrait)and (max-width:599px),only screen and (orientation:landscape)and (max-width:959px){mat-sidenav{width:calc(100% - 45px)}}.igo-sidenav-content{margin-top:50px;height:calc(100% - 50px)}igo-feature-details ::ng-deep table{width:100%}\n"] }]
|
|
3852
|
+
}], propDecorators: { map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: true }] }], opened: [{ type: i0.Input, args: [{ isSignal: true, alias: "opened", required: false }] }], feature: [{ type: i0.Input, args: [{ isSignal: true, alias: "feature", required: true }] }], tool: [{ type: i0.Input, args: [{ isSignal: true, alias: "tool", required: false }] }], media: [{ type: i0.Input, args: [{ isSignal: true, alias: "media", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }] } });
|
|
3987
3853
|
|
|
3988
3854
|
/**
|
|
3989
3855
|
* @deprecated import the SidenavComponent directly
|
|
@@ -3994,11 +3860,11 @@ class IgoSidenavModule {
|
|
|
3994
3860
|
ngModule: IgoSidenavModule
|
|
3995
3861
|
};
|
|
3996
3862
|
}
|
|
3997
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3998
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3999
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3863
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoSidenavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3864
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: IgoSidenavModule, imports: [SidenavComponent], exports: [SidenavComponent] });
|
|
3865
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoSidenavModule, imports: [SidenavComponent] });
|
|
4000
3866
|
}
|
|
4001
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3867
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoSidenavModule, decorators: [{
|
|
4002
3868
|
type: NgModule,
|
|
4003
3869
|
args: [{
|
|
4004
3870
|
imports: [SidenavComponent],
|
|
@@ -4015,19 +3881,19 @@ class IgoContextModule {
|
|
|
4015
3881
|
ngModule: IgoContextModule
|
|
4016
3882
|
};
|
|
4017
3883
|
}
|
|
4018
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4019
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3884
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3885
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: IgoContextModule, exports: [IgoContextImportExportModule,
|
|
4020
3886
|
IgoContextManagerModule,
|
|
4021
3887
|
IgoContextMapButtonModule,
|
|
4022
3888
|
IgoShareMapModule,
|
|
4023
3889
|
IgoSidenavModule] });
|
|
4024
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3890
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextModule, imports: [IgoContextImportExportModule,
|
|
4025
3891
|
IgoContextManagerModule,
|
|
4026
3892
|
IgoContextMapButtonModule,
|
|
4027
3893
|
IgoShareMapModule,
|
|
4028
3894
|
IgoSidenavModule] });
|
|
4029
3895
|
}
|
|
4030
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3896
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: IgoContextModule, decorators: [{
|
|
4031
3897
|
type: NgModule,
|
|
4032
3898
|
args: [{
|
|
4033
3899
|
declarations: [],
|
|
@@ -4066,5 +3932,5 @@ const CONTEXT_MAP_BUTTON_DIRECTIVES = [
|
|
|
4066
3932
|
* Generated bundle index. Do not edit.
|
|
4067
3933
|
*/
|
|
4068
3934
|
|
|
4069
|
-
export { BookmarkButtonComponent, BookmarkDialogComponent, CONTEXT_MANAGER_DIRECTIVES, CONTEXT_MAP_BUTTON_DIRECTIVES, ContextEditComponent, ContextExportService, ContextFormComponent, ContextImportExportComponent, ContextImportService, ContextItemComponent, ContextListComponent, ContextPermissionsComponent, ContextService, ExportError, ExportInvalidFileError, ExportNothingToExportError, GroupParamsKeys, IgoContextImportExportModule, IgoContextManagerModule, IgoContextMapButtonModule, IgoContextModule, IgoShareMapModule, IgoSidenavModule, ImportError, ImportInvalidFileError, ImportNothingToImportError, ImportSRSError, ImportSizeError, ImportUnreadableFileError, LayerContextDirective, LayerParamsKeys, MapContextDirective, PoiButtonComponent, PoiDialogComponent, PoiService, SHARE_MAP_DIRECTIVES, SHARE_MAP_KEYS_DEFAULT_OPTIONS, Scope, ServiceType, ServiceTypeEnum, ShareMapComponent, ShareMapLegacyParser, ShareMapService, ShareMapUrlComponent, SidenavComponent, TypePermission, UserButtonComponent, UserDialogComponent, addContextToContextList,
|
|
3935
|
+
export { BookmarkButtonComponent, BookmarkDialogComponent, CONTEXT_MANAGER_DIRECTIVES, CONTEXT_MAP_BUTTON_DIRECTIVES, ContextEditComponent, ContextExportService, ContextFormComponent, ContextImportExportComponent, ContextImportService, ContextItemComponent, ContextListComponent, ContextPermissionsComponent, ContextService, ExportError, ExportInvalidFileError, ExportNothingToExportError, GroupParamsKeys, IgoContextImportExportModule, IgoContextManagerModule, IgoContextMapButtonModule, IgoContextModule, IgoShareMapModule, IgoSidenavModule, ImportError, ImportInvalidFileError, ImportNothingToImportError, ImportSRSError, ImportSizeError, ImportUnreadableFileError, LayerContextDirective, LayerParamsKeys, MapContextDirective, PoiButtonComponent, PoiDialogComponent, PoiService, SHARE_MAP_DIRECTIVES, SHARE_MAP_KEYS_DEFAULT_OPTIONS, Scope, ServiceType, ServiceTypeEnum, ShareMapComponent, ShareMapLegacyParser, ShareMapService, ShareMapUrlComponent, SidenavComponent, TypePermission, UserButtonComponent, UserDialogComponent, addContextToContextList, addImportedFeaturesToMap, buildDataSourceOptions, computeLayerTitleFromFile, getFileExtension, getFlattenOptions, getParamValue, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleNothingToExportError, handleNothingToImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hasLegacyParams, hasModernShareParams };
|
|
4070
3936
|
//# sourceMappingURL=igo2-context.mjs.map
|