@igo2/context 1.14.2 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs +9 -10
- package/esm2020/lib/context-import-export/context-import-export.module.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-export.interface.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-export.service.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-export.utils.mjs +8 -17
- package/esm2020/lib/context-import-export/shared/context-import.errors.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-import.service.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-import.utils.mjs +27 -52
- package/esm2020/lib/context-manager/context-edit/context-edit-binding.directive.mjs +5 -9
- package/esm2020/lib/context-manager/context-edit/context-edit.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-form/context-form.component.mjs +6 -10
- package/esm2020/lib/context-manager/context-item/context-item.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-list/context-list-binding.directive.mjs +6 -26
- package/esm2020/lib/context-manager/context-list/context-list.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-manager.module.mjs +1 -1
- package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +5 -22
- package/esm2020/lib/context-manager/context-permissions/context-permissions.component.mjs +2 -2
- package/esm2020/lib/context-manager/shared/context.interface.mjs +1 -1
- package/esm2020/lib/context-manager/shared/context.service.mjs +9 -6
- package/esm2020/lib/context-manager/shared/layer-context.directive.mjs +27 -11
- package/esm2020/lib/context-manager/shared/map-context.directive.mjs +1 -1
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +6 -12
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +2 -2
- package/esm2020/lib/context-map-button/context-map-button.module.mjs +1 -1
- package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +5 -15
- package/esm2020/lib/context-map-button/poi-button/poi-dialog.component.mjs +2 -2
- package/esm2020/lib/context-map-button/poi-button/shared/poi.service.mjs +1 -1
- package/esm2020/lib/context-map-button/user-button/user-button.animation.mjs +1 -1
- package/esm2020/lib/context-map-button/user-button/user-button.component.mjs +2 -2
- package/esm2020/lib/context-map-button/user-button/user-dialog.component.mjs +2 -2
- package/esm2020/lib/context.module.mjs +1 -1
- package/esm2020/lib/share-map/share-map/share-map-api.component.mjs +5 -16
- package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +2 -2
- package/esm2020/lib/share-map/share-map/share-map.component.mjs +2 -2
- package/esm2020/lib/share-map/share-map.module.mjs +1 -1
- package/esm2020/lib/share-map/shared/share-map.service.mjs +1 -1
- package/esm2020/lib/sidenav/sidenav.component.mjs +2 -2
- package/esm2020/lib/sidenav/sidenav.module.mjs +1 -1
- package/fesm2015/igo2-context.mjs +117 -205
- package/fesm2015/igo2-context.mjs.map +1 -1
- package/fesm2020/igo2-context.mjs +117 -205
- package/fesm2020/igo2-context.mjs.map +1 -1
- package/lib/context-import-export/context-import-export/context-import-export.component.d.ts +2 -3
- package/lib/context-import-export/shared/context-export.utils.d.ts +4 -4
- package/lib/context-import-export/shared/context-import.utils.d.ts +7 -7
- package/lib/context-manager/context-edit/context-edit-binding.directive.d.ts +3 -4
- package/lib/context-manager/context-form/context-form.component.d.ts +2 -3
- package/lib/context-manager/shared/layer-context.directive.d.ts +1 -0
- package/lib/context-map-button/bookmark-button/bookmark-button.component.d.ts +2 -3
- package/ngcc.config.js +3 -3
- package/package.json +16 -12
|
@@ -30,9 +30,8 @@ import * as i1$2 from '@angular/forms';
|
|
|
30
30
|
import { Validators, FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
|
|
31
31
|
import { Observable, BehaviorSubject, Subject, of, merge, ReplaySubject, EMPTY, timer, combineLatest } from 'rxjs';
|
|
32
32
|
import { skip, first, catchError, tap, map, mergeMap, debounceTime, take, filter, buffer, debounce } from 'rxjs/operators';
|
|
33
|
-
import * as olStyle from 'ol/style';
|
|
34
33
|
import * as i1$1 from '@igo2/geo';
|
|
35
|
-
import { FeatureDataSource, VectorLayer, ClusterDataSource, moveToOlFeatures, FeatureMotion, IgoFeatureModule } from '@igo2/geo';
|
|
34
|
+
import { FeatureDataSource, featureRandomStyleFunction, featureRandomStyle, VectorLayer, ClusterDataSource, moveToOlFeatures, FeatureMotion, IgoFeatureModule } from '@igo2/geo';
|
|
36
35
|
import { downloadContent, ObjectUtils, uuid, Clipboard } from '@igo2/utils';
|
|
37
36
|
import olPoint from 'ol/geom/Point';
|
|
38
37
|
import GeoJSON from 'ol/format/GeoJSON';
|
|
@@ -76,85 +75,59 @@ class ExportNothingToExportError extends ExportError {
|
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
|
|
79
|
-
function handleFileExportError(error, messageService
|
|
78
|
+
function handleFileExportError(error, messageService) {
|
|
80
79
|
if (error instanceof ExportNothingToExportError) {
|
|
81
|
-
this.handleNothingToExportError(messageService
|
|
80
|
+
this.handleNothingToExportError(messageService);
|
|
82
81
|
return;
|
|
83
82
|
}
|
|
84
|
-
|
|
85
|
-
const title = translate.instant('igo.context.contextImportExport.export.failed.title');
|
|
86
|
-
const message = translate.instant('igo.context.contextImportExport.export.failed.text');
|
|
87
|
-
messageService.error(message, title);
|
|
83
|
+
messageService.error('igo.context.contextImportExport.export.failed.text', 'igo.context.contextImportExport.export.failed.title');
|
|
88
84
|
}
|
|
89
|
-
function handleFileExportSuccess(messageService
|
|
90
|
-
|
|
91
|
-
const title = translate.instant('igo.context.contextImportExport.export.success.title');
|
|
92
|
-
const message = translate.instant('igo.context.contextImportExport.export.success.text');
|
|
93
|
-
messageService.success(message, title);
|
|
85
|
+
function handleFileExportSuccess(messageService) {
|
|
86
|
+
messageService.success('igo.context.contextImportExport.export.success.text', 'igo.context.contextImportExport.export.success.title');
|
|
94
87
|
}
|
|
95
|
-
function handleNothingToExportError(messageService
|
|
96
|
-
|
|
97
|
-
const title = translate.instant('igo.context.contextImportExport.export.nothing.title');
|
|
98
|
-
const message = translate.instant('igo.context.contextImportExport.export.nothing.text');
|
|
99
|
-
messageService.error(message, title);
|
|
88
|
+
function handleNothingToExportError(messageService) {
|
|
89
|
+
messageService.error('igo.context.contextImportExport.export.nothing.text', 'igo.context.contextImportExport.export.nothing.title');
|
|
100
90
|
}
|
|
101
91
|
|
|
102
|
-
function handleFileImportSuccess(file, context, messageService,
|
|
92
|
+
function handleFileImportSuccess(file, context, messageService, contextService) {
|
|
103
93
|
if (Object.keys(context).length <= 0) {
|
|
104
|
-
handleNothingToImportError(file, messageService
|
|
94
|
+
handleNothingToImportError(file, messageService);
|
|
105
95
|
return;
|
|
106
96
|
}
|
|
107
97
|
const contextTitle = computeLayerTitleFromFile(file);
|
|
108
98
|
addContextToContextList(context, contextTitle, contextService);
|
|
109
|
-
|
|
110
|
-
const messageTitle = translate.instant('igo.context.contextImportExport.import.success.title');
|
|
111
|
-
const message = translate.instant('igo.context.contextImportExport.import.success.text', {
|
|
99
|
+
messageService.success('igo.context.contextImportExport.import.success.text', 'igo.context.contextImportExport.import.success.title', undefined, {
|
|
112
100
|
value: contextTitle
|
|
113
101
|
});
|
|
114
|
-
messageService.success(message, messageTitle);
|
|
115
102
|
}
|
|
116
|
-
function handleFileImportError(file, error, messageService,
|
|
103
|
+
function handleFileImportError(file, error, messageService, sizeMb) {
|
|
117
104
|
sizeMb = sizeMb ? sizeMb : 30;
|
|
118
105
|
const errMapping = {
|
|
119
106
|
'Invalid file': handleInvalidFileImportError,
|
|
120
107
|
'File is too large': handleSizeFileImportError,
|
|
121
108
|
'Failed to read file': handleUnreadbleFileImportError
|
|
122
109
|
};
|
|
123
|
-
errMapping[error.message](file, error, messageService,
|
|
110
|
+
errMapping[error.message](file, error, messageService, sizeMb);
|
|
124
111
|
}
|
|
125
|
-
function handleInvalidFileImportError(file, error, messageService
|
|
126
|
-
|
|
127
|
-
const title = translate.instant('igo.context.contextImportExport.import.invalid.title');
|
|
128
|
-
const message = translate.instant('igo.context.contextImportExport.import.invalid.text', {
|
|
112
|
+
function handleInvalidFileImportError(file, error, messageService) {
|
|
113
|
+
messageService.error('igo.context.contextImportExport.import.invalid.text', 'igo.context.contextImportExport.import.invalid.title', undefined, {
|
|
129
114
|
value: file.name,
|
|
130
115
|
mimeType: file.type
|
|
131
116
|
});
|
|
132
|
-
messageService.error(message, title);
|
|
133
117
|
}
|
|
134
|
-
function handleSizeFileImportError(file, error, messageService,
|
|
135
|
-
|
|
136
|
-
const title = translate.instant('igo.context.contextImportExport.import.tooLarge.title');
|
|
137
|
-
const message = translate.instant('igo.context.contextImportExport.import.tooLarge.text', {
|
|
118
|
+
function handleSizeFileImportError(file, error, messageService, sizeMb) {
|
|
119
|
+
messageService.error('igo.context.contextImportExport.import.tooLarge.text', 'igo.context.contextImportExport.import.tooLarge.title', undefined, {
|
|
138
120
|
value: file.name,
|
|
139
121
|
size: sizeMb
|
|
140
122
|
});
|
|
141
|
-
messageService.error(message, title);
|
|
142
123
|
}
|
|
143
|
-
function handleUnreadbleFileImportError(file, error, messageService
|
|
144
|
-
|
|
145
|
-
const title = translate.instant('igo.context.contextImportExport.import.unreadable.title');
|
|
146
|
-
const message = translate.instant('igo.context.contextImportExport.import.unreadable.text', {
|
|
124
|
+
function handleUnreadbleFileImportError(file, error, messageService) {
|
|
125
|
+
messageService.error('igo.context.contextImportExport.import.unreadable.text', 'igo.context.contextImportExport.import.unreadable.title', undefined, {
|
|
147
126
|
value: file.name
|
|
148
127
|
});
|
|
149
|
-
messageService.error(message, title);
|
|
150
128
|
}
|
|
151
|
-
function handleNothingToImportError(file, messageService
|
|
152
|
-
|
|
153
|
-
const title = translate.instant('igo.context.contextImportExport.import.empty.title');
|
|
154
|
-
const message = translate.instant('igo.context.contextImportExport.import.empty.text', {
|
|
155
|
-
value: file.name
|
|
156
|
-
});
|
|
157
|
-
messageService.error(message, title);
|
|
129
|
+
function handleNothingToImportError(file, messageService) {
|
|
130
|
+
messageService.error('igo.context.contextImportExport.import.empty.text', 'igo.context.contextImportExport.import.empty.title', undefined, { value: file.name });
|
|
158
131
|
}
|
|
159
132
|
function addContextToContextList(context, contextTitle, contextService) {
|
|
160
133
|
context.title = contextTitle;
|
|
@@ -171,35 +144,28 @@ function computeLayerTitleFromFile(file) {
|
|
|
171
144
|
return file.name.substr(0, file.name.lastIndexOf('.'));
|
|
172
145
|
}
|
|
173
146
|
function addImportedFeaturesToMap(olFeatures, map, layerTitle) {
|
|
174
|
-
const r = Math.floor(Math.random() * 255);
|
|
175
|
-
const g = Math.floor(Math.random() * 255);
|
|
176
|
-
const b = Math.floor(Math.random() * 255);
|
|
177
|
-
const stroke = new olStyle.Stroke({
|
|
178
|
-
color: [r, g, b, 1],
|
|
179
|
-
width: 2
|
|
180
|
-
});
|
|
181
|
-
const fill = new olStyle.Fill({
|
|
182
|
-
color: [r, g, b, 0.4]
|
|
183
|
-
});
|
|
184
147
|
const sourceOptions = {
|
|
185
148
|
type: 'vector',
|
|
186
149
|
queryable: true
|
|
187
150
|
};
|
|
188
151
|
const source = new FeatureDataSource(sourceOptions);
|
|
189
152
|
source.ol.addFeatures(olFeatures);
|
|
153
|
+
let randomStyle;
|
|
154
|
+
let editable = false;
|
|
155
|
+
if (olFeatures[0].getKeys().includes('_style') ||
|
|
156
|
+
olFeatures[0].getKeys().includes('_mapTitle')) {
|
|
157
|
+
randomStyle = featureRandomStyleFunction();
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
randomStyle = featureRandomStyle();
|
|
161
|
+
editable = true;
|
|
162
|
+
}
|
|
190
163
|
const layer = new VectorLayer({
|
|
191
164
|
title: layerTitle,
|
|
192
165
|
isIgoInternalLayer: true,
|
|
193
166
|
source,
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
fill,
|
|
197
|
-
image: new olStyle.Circle({
|
|
198
|
-
radius: 5,
|
|
199
|
-
stroke,
|
|
200
|
-
fill
|
|
201
|
-
})
|
|
202
|
-
})
|
|
167
|
+
igoStyle: { editable },
|
|
168
|
+
style: randomStyle
|
|
203
169
|
});
|
|
204
170
|
map.addLayer(layer);
|
|
205
171
|
return layer;
|
|
@@ -796,16 +762,17 @@ class ContextService {
|
|
|
796
762
|
};
|
|
797
763
|
});
|
|
798
764
|
layers.forEach((layer) => {
|
|
765
|
+
// Do not seem to work properly. layerFound is always undefined.
|
|
799
766
|
const layerFound = currentContext.layers.find((contextLayer) => {
|
|
800
767
|
const source = contextLayer.source;
|
|
801
768
|
return source && layer.id === source.id && !contextLayer.baseLayer;
|
|
802
769
|
});
|
|
803
770
|
if (layerFound) {
|
|
804
771
|
let layerStyle = layerFound[`style`];
|
|
805
|
-
if (layerFound[`styleByAttribute`]) {
|
|
772
|
+
if (layerFound[`igoStyle`][`styleByAttribute`]) {
|
|
806
773
|
layerStyle = undefined;
|
|
807
774
|
}
|
|
808
|
-
else if (layerFound[`clusterBaseStyle`]) {
|
|
775
|
+
else if (layerFound[`igoStyle`][`clusterBaseStyle`]) {
|
|
809
776
|
layerStyle = undefined;
|
|
810
777
|
delete layerFound.sourceOptions[`source`];
|
|
811
778
|
delete layerFound.sourceOptions[`format`];
|
|
@@ -814,8 +781,10 @@ class ContextService {
|
|
|
814
781
|
baseLayer: layerFound.baseLayer,
|
|
815
782
|
title: layer.options.title,
|
|
816
783
|
zIndex: layer.zIndex,
|
|
817
|
-
|
|
818
|
-
|
|
784
|
+
igoStyle: {
|
|
785
|
+
styleByAttribute: layerFound[`igoStyle`][`styleByAttribute`],
|
|
786
|
+
clusterBaseStyle: layerFound[`igoStyle`][`clusterBaseStyle`],
|
|
787
|
+
},
|
|
819
788
|
style: layerStyle,
|
|
820
789
|
clusterParam: layerFound[`clusterParam`],
|
|
821
790
|
visible: layer.visible,
|
|
@@ -955,7 +924,7 @@ class ContextService {
|
|
|
955
924
|
error.error.title = this.languageService.translate.instant('igo.context.contextManager.errors.addPermissionTitle');
|
|
956
925
|
error.error.message = this.languageService.translate.instant('igo.context.contextManager.errors.addPermission');
|
|
957
926
|
}
|
|
958
|
-
this.messageService.error(
|
|
927
|
+
this.messageService.error('igo.context.contextManager.errors.addPermission', 'igo.context.contextManager.errors.addPermissionTitle');
|
|
959
928
|
}
|
|
960
929
|
handleContextsChange(keepCurrentContext = true) {
|
|
961
930
|
const context = this.context$.value;
|
|
@@ -1136,10 +1105,9 @@ function ContextImportExportComponent_form_9_Template(rf, ctx) {
|
|
|
1136
1105
|
}
|
|
1137
1106
|
}
|
|
1138
1107
|
class ContextImportExportComponent {
|
|
1139
|
-
constructor(contextImportService, contextExportService,
|
|
1108
|
+
constructor(contextImportService, contextExportService, messageService, formBuilder, config, contextService) {
|
|
1140
1109
|
this.contextImportService = contextImportService;
|
|
1141
1110
|
this.contextExportService = contextExportService;
|
|
1142
|
-
this.languageService = languageService;
|
|
1143
1111
|
this.messageService = messageService;
|
|
1144
1112
|
this.formBuilder = formBuilder;
|
|
1145
1113
|
this.config = config;
|
|
@@ -1182,18 +1150,18 @@ class ContextImportExportComponent {
|
|
|
1182
1150
|
});
|
|
1183
1151
|
}
|
|
1184
1152
|
onFileImportSuccess(file, context) {
|
|
1185
|
-
handleFileImportSuccess(file, context, this.messageService, this.
|
|
1153
|
+
handleFileImportSuccess(file, context, this.messageService, this.contextService);
|
|
1186
1154
|
}
|
|
1187
1155
|
onFileImportError(file, error) {
|
|
1188
1156
|
this.loading$.next(false);
|
|
1189
|
-
handleFileImportError(file, error, this.messageService, this.
|
|
1157
|
+
handleFileImportError(file, error, this.messageService, this.fileSizeMb);
|
|
1190
1158
|
}
|
|
1191
1159
|
onFileExportError(error) {
|
|
1192
1160
|
this.loading$.next(false);
|
|
1193
|
-
handleFileExportError(error, this.messageService
|
|
1161
|
+
handleFileExportError(error, this.messageService);
|
|
1194
1162
|
}
|
|
1195
1163
|
onFileExportSuccess() {
|
|
1196
|
-
handleFileExportSuccess(this.messageService
|
|
1164
|
+
handleFileExportSuccess(this.messageService);
|
|
1197
1165
|
}
|
|
1198
1166
|
selectAll(e) {
|
|
1199
1167
|
if (e._selected) {
|
|
@@ -1208,7 +1176,7 @@ class ContextImportExportComponent {
|
|
|
1208
1176
|
this.activeImportExport = event.value;
|
|
1209
1177
|
}
|
|
1210
1178
|
}
|
|
1211
|
-
ContextImportExportComponent.ɵfac = function ContextImportExportComponent_Factory(t) { return new (t || ContextImportExportComponent)(i0.ɵɵdirectiveInject(ContextImportService), i0.ɵɵdirectiveInject(ContextExportService), i0.ɵɵdirectiveInject(i3.
|
|
1179
|
+
ContextImportExportComponent.ɵfac = function ContextImportExportComponent_Factory(t) { return new (t || ContextImportExportComponent)(i0.ɵɵdirectiveInject(ContextImportService), i0.ɵɵdirectiveInject(ContextExportService), i0.ɵɵdirectiveInject(i3.MessageService), i0.ɵɵdirectiveInject(i1$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.ConfigService), i0.ɵɵdirectiveInject(ContextService)); };
|
|
1212
1180
|
ContextImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContextImportExportComponent, selectors: [["igo-context-import-export"]], inputs: { map: "map" }, decls: 10, vars: 11, consts: [[1, "import-export-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [4, "ngIf"], ["class", "igo-form", 3, "formGroup", 4, "ngIf"], [1, "igo-form"], [1, "igo-form-button-group"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "shown"], ["type", "file", 3, "click", "change"], ["fileInput", ""], [1, "mat-typography"], [1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], [1, "example-full-width"], ["formControlName", "name", "matInput", "", 3, "value"], ["formControlName", "layers", "multiple", ""], [3, "value", "click"], ["e", ""], [3, "value", 4, "ngFor", "ngForOf"]], template: function ContextImportExportComponent_Template(rf, ctx) {
|
|
1213
1181
|
if (rf & 1) {
|
|
1214
1182
|
i0.ɵɵelementStart(0, "div", 0)(1, "mat-button-toggle-group", 1);
|
|
@@ -1244,8 +1212,8 @@ ContextImportExportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
|
|
|
1244
1212
|
(function () {
|
|
1245
1213
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextImportExportComponent, [{
|
|
1246
1214
|
type: Component,
|
|
1247
|
-
args: [{ selector: 'igo-context-import-export', template: "<div class=\"import-export-toggle mat-typography\">\n <mat-button-toggle-group\n [value]=\"activeImportExport\"\n (change)=\"onImportExportChange($event)\">\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<div *ngIf=\"activeImportExport === 'import'\">\n <form class=\"igo-form\">\n <div class=\"igo-form-button-group\">\n <button mat-raised-button type=\"button\" (click)=\"fileInput.click()\" [disabled]=\"loading$ | async\">\n {{'igo.geo.importExportForm.importButton' | translate}}\n </button>\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\n <input\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = null\"\n (change)=\"importFiles($event.target.files)\">\n </div>\n </form>\n <section class=\"mat-typography\">\n <h4>{{'igo.geo.importExportForm.importClarifications' | translate}}</h4>\n <ul>\n <li>{{'igo.geo.importExportForm.importSizeMax' | translate: {size: fileSizeMb} }}</li>\n </ul>\n </section>\n</div>\n\n\n<form class=\"igo-form\" *ngIf=\"activeImportExport === 'export'\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>{{'igo.context.contextImportExport.export.exportContextName' | translate}}</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>{{'igo.context.contextImportExport.export.exportPlaceHolder' | translate}}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{'igo.context.contextImportExport.export.exportSelectAll' | translate}}\n </mat-option>\n <mat-divider></mat-divider>\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\">{{layer.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\">\n {{'igo.geo.importExportForm.exportButton' | translate}}\n </button>\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\n </div>\n</form>\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"] }]
|
|
1248
|
-
}], function () { return [{ type: ContextImportService }, { type: ContextExportService }, { type: i3.
|
|
1215
|
+
args: [{ selector: 'igo-context-import-export', template: "<div class=\"import-export-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n [value]=\"activeImportExport\"\r\n (change)=\"onImportExportChange($event)\">\r\n <mat-button-toggle [value]=\"'import'\">\r\n {{'igo.geo.importExportForm.importTabTitle' | translate}}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'export'\">\r\n {{'igo.geo.importExportForm.exportTabTitle' | translate}}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div *ngIf=\"activeImportExport === 'import'\">\r\n <form class=\"igo-form\">\r\n <div class=\"igo-form-button-group\">\r\n <button mat-raised-button type=\"button\" (click)=\"fileInput.click()\" [disabled]=\"loading$ | async\">\r\n {{'igo.geo.importExportForm.importButton' | translate}}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [style.display]=\"'none'\"\r\n (click)=\"fileInput.value = null\"\r\n (change)=\"importFiles($event.target.files)\">\r\n </div>\r\n </form>\r\n <section class=\"mat-typography\">\r\n <h4>{{'igo.geo.importExportForm.importClarifications' | translate}}</h4>\r\n <ul>\r\n <li>{{'igo.geo.importExportForm.importSizeMax' | translate: {size: fileSizeMb} }}</li>\r\n </ul>\r\n </section>\r\n</div>\r\n\r\n\r\n<form class=\"igo-form\" *ngIf=\"activeImportExport === 'export'\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{'igo.context.contextImportExport.export.exportContextName' | translate}}</mat-label>\r\n <input formControlName=\"name\" matInput [value]=\"\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.context.contextImportExport.export.exportPlaceHolder' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.context.contextImportExport.export.exportSelectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (loading$ | async)\"\r\n (click)=\"handleExportFormSubmit(form.value)\">\r\n {{'igo.geo.importExportForm.exportButton' | translate}}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n </div>\r\n</form>\r\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"] }]
|
|
1216
|
+
}], function () { return [{ type: ContextImportService }, { type: ContextExportService }, { type: i3.MessageService }, { type: i1$2.UntypedFormBuilder }, { type: i3.ConfigService }, { type: ContextService }]; }, { map: [{
|
|
1249
1217
|
type: Input
|
|
1250
1218
|
}] });
|
|
1251
1219
|
})();
|
|
@@ -1439,15 +1407,7 @@ class LayerContextDirective {
|
|
|
1439
1407
|
layersAndIndex$
|
|
1440
1408
|
.pipe(buffer(layersAndIndex$.pipe(debounceTime(500))))
|
|
1441
1409
|
.subscribe((layers) => {
|
|
1442
|
-
layers
|
|
1443
|
-
.filter((layer) => layer !== undefined)
|
|
1444
|
-
.map((layer) => {
|
|
1445
|
-
layer.visible = this.computeLayerVisibilityFromUrl(layer);
|
|
1446
|
-
layer.zIndex = layer.zIndex;
|
|
1447
|
-
return layer;
|
|
1448
|
-
});
|
|
1449
|
-
this.contextLayers.concat(layers);
|
|
1450
|
-
this.map.addLayers(layers);
|
|
1410
|
+
this.handleAddLayers(layers);
|
|
1451
1411
|
if (context.extraFeatures) {
|
|
1452
1412
|
context.extraFeatures.forEach((featureCollection) => {
|
|
1453
1413
|
const format = new GeoJSON();
|
|
@@ -1457,7 +1417,18 @@ class LayerContextDirective {
|
|
|
1457
1417
|
dataProjection: 'EPSG:4326',
|
|
1458
1418
|
featureProjection: 'EPSG:3857'
|
|
1459
1419
|
});
|
|
1460
|
-
|
|
1420
|
+
const importExportOptions = this.configService.getConfig('importExport');
|
|
1421
|
+
const importWithStyle = (importExportOptions === null || importExportOptions === void 0 ? void 0 : importExportOptions.importWithStyle) || this.configService.getConfig('importWithStyle');
|
|
1422
|
+
if (this.configService.getConfig('importWithStyle')) {
|
|
1423
|
+
console.warn(`
|
|
1424
|
+
The location of this config importWithStyle is deprecated.
|
|
1425
|
+
Please move this property within importExport configuration.
|
|
1426
|
+
Ex: importWithStyle: true/false must be transfered to importExport: { importWithStyle: true/false }
|
|
1427
|
+
Refer to environnement.ts OR config/config.json
|
|
1428
|
+
This legacy conversion will be deleted in 2024.
|
|
1429
|
+
`);
|
|
1430
|
+
}
|
|
1431
|
+
if (!importWithStyle) {
|
|
1461
1432
|
addImportedFeaturesToMap(featureCollection, this.map, title);
|
|
1462
1433
|
}
|
|
1463
1434
|
else {
|
|
@@ -1466,6 +1437,19 @@ class LayerContextDirective {
|
|
|
1466
1437
|
});
|
|
1467
1438
|
}
|
|
1468
1439
|
});
|
|
1440
|
+
this.layerService.createAsyncIdbLayers(context.uri).pipe(debounceTime(500))
|
|
1441
|
+
.subscribe((layers) => this.handleAddLayers(layers));
|
|
1442
|
+
}
|
|
1443
|
+
handleAddLayers(layers) {
|
|
1444
|
+
layers = layers
|
|
1445
|
+
.filter((layer) => layer !== undefined)
|
|
1446
|
+
.map((layer) => {
|
|
1447
|
+
layer.visible = this.computeLayerVisibilityFromUrl(layer);
|
|
1448
|
+
layer.zIndex = layer.zIndex;
|
|
1449
|
+
return layer;
|
|
1450
|
+
});
|
|
1451
|
+
this.contextLayers.concat(layers);
|
|
1452
|
+
this.map.addLayers(layers);
|
|
1469
1453
|
}
|
|
1470
1454
|
computeLayerVisibilityFromUrl(layer) {
|
|
1471
1455
|
const params = this.queryParams;
|
|
@@ -1579,7 +1563,7 @@ BookmarkDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Boo
|
|
|
1579
1563
|
(function () {
|
|
1580
1564
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BookmarkDialogComponent, [{
|
|
1581
1565
|
type: Component,
|
|
1582
|
-
args: [{ selector: 'igo-bookmark-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.bookmarkButton.dialog.title' |\u00A0translate }}</h1>\n<div mat-dialog-content class=\"mat-typography\">\n <mat-form-field>\n <input matInput required autocomplete=\"off\"\n maxlength=\"128\"\n [placeholder]=\"'igo.context.bookmarkButton.dialog.placeholder' |\u00A0translate\"\n [(ngModel)]=\"title\">\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button mat-button color=\"primary\"\n [disabled]=\"!title\"\n (click)=\"dialogRef.close(title)\">\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\n </button>\n <button mat-button\n (click)=\"dialogRef.close(false)\">\n {{'igo.common.confirmDialog.cancelBtn' |\u00A0translate}}\n </button>\n</div>\n" }]
|
|
1566
|
+
args: [{ selector: 'igo-bookmark-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.bookmarkButton.dialog.title' |\u00A0translate }}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.bookmarkButton.dialog.placeholder' |\u00A0translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' |\u00A0translate}}\r\n </button>\r\n</div>\r\n" }]
|
|
1583
1567
|
}], function () { return [{ type: i1$3.MatDialogRef }]; }, null);
|
|
1584
1568
|
})();
|
|
1585
1569
|
|
|
@@ -1826,7 +1810,7 @@ ContextItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Contex
|
|
|
1826
1810
|
(function () {
|
|
1827
1811
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextItemComponent, [{
|
|
1828
1812
|
type: Component,
|
|
1829
|
-
args: [{ selector: 'igo-context-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item\n class=\"mat-list-item\"\n [ngClass]=\"{'mat-list-item-light': hidden}\">\n <button mat-list-avatar\n *ngIf=\"auth.authenticated\"\n mat-icon-button\n igoStopPropagation\n [matTooltip]=\"auth.authenticated ? ('igo.context.contextManager.favorite' | translate) : ''\"\n matTooltipShowDelay=\"500\"\n [color]=\"default ? 'primary' : 'default'\"\n (click)=\"favoriteClick(context)\">\n <mat-icon *ngIf=\"!context.iconImage\" svgIcon=\"{{context.icon ? context.icon : context.scope === 'public' ? 'earth' : 'star'}}\"></mat-icon>\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\">\n </button>\n <button mat-list-avatar\n *ngIf=\"!auth.authenticated && showFavorite\"\n mat-icon-button\n igoStopPropagation\n [matTooltip]=\"'igo.context.contextManager.favorite' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"default ? 'primary' : 'default'\"\n (click)=\"favoriteClick(context)\">\n <mat-icon svgIcon=\"star\"></mat-icon>\n </button>\n <h4 matLine>{{context.title}}</h4>\n\n <div *ngIf=\"auth.authenticated\"\n igoStopPropagation\n class=\"igo-actions-container\">\n\n <button *ngIf=\"collapsed && selected && (context.permission === typePermission[typePermission.write] || context.imported)\"\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(context)\">\n <mat-icon svgIcon=\"content-save\"></mat-icon>\n </button>\n\n <div #actions class=\"igo-actions-expand-container\">\n\n <button *ngIf=\"canShare && !context.imported\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.managePermissions' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"color\"\n (click)=\"managePermissions.emit(context)\">\n <mat-icon svgIcon=\"account-arrow-right\"></mat-icon>\n </button>\n\n <!--button\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.manageTools' | translate\"\n [color]=\"color\"\n (click)=\"manageTools.emit(context)\">\n <mat-icon svgIcon=\"widgets\"></mat-icon>\n </button-->\n\n <button *ngIf=\"!context.imported\"\n class=\"clone-button\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"color\"\n (click)=\"clone.emit(context)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n\n <button *ngIf=\"context.permission === typePermission[typePermission.write] && !context.imported\"\n class=\"edit-button\"\n mat-icon-button\n [color]=\"color\"\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"edit.emit(context)\">\n <mat-icon svgIcon=\"pencil\"></mat-icon>\n </button>\n\n <button *ngIf=\"!context.hidden && !context.imported\"\n class=\"hide-button\"\n mat-icon-button\n [color]=\"color\"\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"hide.emit(context)\">\n <mat-icon svgIcon=\"eye\"></mat-icon>\n </button>\n\n <button *ngIf=\"context.hidden && !context.imported\"\n class=\"hide-button\"\n mat-icon-button\n [color]=\"color\"\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"show.emit(context)\">\n <mat-icon svgIcon=\"eye-off\"></mat-icon>\n </button>\n\n <button *ngIf=\"context.permission === typePermission[typePermission.write] || context.imported\"\n class=\"delete-button\"\n mat-icon-button\n color=\"warn\"\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"delete.emit(context)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n\n <button\n class=\"actions-button\"\n mat-icon-button\n igoCollapse\n [color]=\"color\"\n [target]=\"actions\"\n [collapsed]=collapsed\n (click)=\"collapsed = !collapsed\">\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\n </button>\n\n </div>\n\n</mat-list-item>\n", styles: [":host{overflow:hidden}.igo-actions-container{flex-shrink:0}.igo-actions-expand-container{display:inline-flex}mat-list-item ::ng-deep .mat-list-item-content .mat-list-text{padding:0}mat-icon.disabled{color:#00000061}mat-list-item.mat-list-item-light ::ng-deep .mat-list-item-content{color:#969696}\n"] }]
|
|
1813
|
+
args: [{ selector: 'igo-context-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item\r\n class=\"mat-list-item\"\r\n [ngClass]=\"{'mat-list-item-light': hidden}\">\r\n <button mat-list-avatar\r\n *ngIf=\"auth.authenticated\"\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"auth.authenticated ? ('igo.context.contextManager.favorite' | translate) : ''\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\">\r\n <mat-icon *ngIf=\"!context.iconImage\" svgIcon=\"{{context.icon ? context.icon : context.scope === 'public' ? 'earth' : 'star'}}\"></mat-icon>\r\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\">\r\n </button>\r\n <button mat-list-avatar\r\n *ngIf=\"!auth.authenticated && showFavorite\"\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"'igo.context.contextManager.favorite' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\">\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n <h4 matLine>{{context.title}}</h4>\r\n\r\n <div *ngIf=\"auth.authenticated\"\r\n igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"collapsed && selected && (context.permission === typePermission[typePermission.write] || context.imported)\"\r\n class=\"save-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.save' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"save.emit(context)\">\r\n <mat-icon svgIcon=\"content-save\"></mat-icon>\r\n </button>\r\n\r\n <div #actions class=\"igo-actions-expand-container\">\r\n\r\n <button *ngIf=\"canShare && !context.imported\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.managePermissions' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"managePermissions.emit(context)\">\r\n <mat-icon svgIcon=\"account-arrow-right\"></mat-icon>\r\n </button>\r\n\r\n <!--button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.manageTools' | translate\"\r\n [color]=\"color\"\r\n (click)=\"manageTools.emit(context)\">\r\n <mat-icon svgIcon=\"widgets\"></mat-icon>\r\n </button-->\r\n\r\n <button *ngIf=\"!context.imported\"\r\n class=\"clone-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"clone.emit(context)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] && !context.imported\"\r\n class=\"edit-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"edit.emit(context)\">\r\n <mat-icon svgIcon=\"pencil\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"!context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"hide.emit(context)\">\r\n <mat-icon svgIcon=\"eye\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"show.emit(context)\">\r\n <mat-icon svgIcon=\"eye-off\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] || context.imported\"\r\n class=\"delete-button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"delete.emit(context)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <button\r\n class=\"actions-button\"\r\n mat-icon-button\r\n igoCollapse\r\n [color]=\"color\"\r\n [target]=\"actions\"\r\n [collapsed]=collapsed\r\n (click)=\"collapsed = !collapsed\">\r\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n</mat-list-item>\r\n", styles: [":host{overflow:hidden}.igo-actions-container{flex-shrink:0}.igo-actions-expand-container{display:inline-flex}mat-list-item ::ng-deep .mat-list-item-content .mat-list-text{padding:0}mat-icon.disabled{color:#00000061}mat-list-item.mat-list-item-light ::ng-deep .mat-list-item-content{color:#969696}\n"] }]
|
|
1830
1814
|
}], function () { return [{ type: i2.AuthService }, { type: i3.StorageService }]; }, { showFavorite: [{
|
|
1831
1815
|
type: Input
|
|
1832
1816
|
}], context: [{
|
|
@@ -2433,7 +2417,7 @@ ContextListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Contex
|
|
|
2433
2417
|
(function () {
|
|
2434
2418
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextListComponent, [{
|
|
2435
2419
|
type: Component,
|
|
2436
|
-
args: [{ selector: 'igo-context-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"true\">\n <mat-form-field *ngIf=\"showFilter()\" [ngClass]=\"auth.authenticated && configService.getConfig('context') ? 'context-filter-min-width' : 'context-filter-max-width'\">\n <input\n matInput\n type=\"text\"\n [placeholder]=\"'igo.context.contextManager.filterPlaceHolder' | translate\"\n [(ngModel)]=\"term\">\n <button\n mat-button\n mat-icon-button\n matSuffix\n class=\"clear-button\"\n *ngIf=\"term.length\"\n aria-label=\"Clear\"\n color=\"warn\"\n (click)=\"clearFilter()\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n\n <button\n *ngIf=\"!sortedAlpha\"\n class=\"sort-alpha\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.sortAlphabetically' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort(true)\">\n <mat-icon color=\"primary\" svgIcon=\"sort-alphabetical-variant\"></mat-icon>\n </button>\n <button\n *ngIf=\"sortedAlpha\"\n class=\"sort-alpha\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.sortContextOrder' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort(false)\">\n <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\n </button>\n\n <igo-actionbar *ngIf=\"auth.authenticated && configService.getConfig('context')\"\n class=\"add-context-button\"\n [iconColor]=\"color\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n icon=\"plus\"\n [withTitle]=\"actionbarMode === 'overlay'\"\n [horizontal]=\"false\"\n [mode]=\"actionbarMode\">\n </igo-actionbar>\n\n <button *ngIf=\"auth.authenticated && configService.getConfig('context')\"\n class=\"users-filter\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"accountMenu\">\n <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\n </button>\n\n <mat-menu #accountMenu=\"matMenu\">\n <ng-container *ngFor=\"let user of users\">\n <span class=\"profilsMenu\">\n <mat-checkbox\n class=\"mat-menu-item\"\n [checked]=\"getPermission(user).checked\"\n [indeterminate]=\"getPermission(user).indeterminate\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"userSelection(user)\">\n </mat-checkbox>\n <button *ngIf=\"user.childs\"\n [matMenuTriggerFor]=\"subAccountMenu\"\n mat-menu-item>\n {{user.title}}\n </button>\n <button\n mat-menu-item\n *ngIf=\"!user.childs\">\n {{user.title}}\n </button>\n </span>\n\n <mat-menu #subAccountMenu=\"matMenu\">\n <mat-checkbox *ngFor=\"let child of user.childs\"\n class=\"mat-menu-item\"\n [checked]=\"getPermission(child).checked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"userSelection(child, user)\">\n {{child.title}}\n </mat-checkbox>\n </mat-menu>\n </ng-container>\n\n <span class=\"profilsMenu\">\n <mat-checkbox\n class=\"mat-menu-item\"\n [checked]=\"showHidden\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showHiddenContexts.emit()\">\n </mat-checkbox>\n <button mat-menu-item>\n {{ 'igo.context.contextManager.showHidden' | translate }}\n </button>\n </span>\n </mat-menu>\n\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\n\n <igo-collapsible *ngIf=\"groupContexts.value.length && auth.authenticated\" [title]=\"titleMapping[groupContexts.key] | translate\"\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\" (toggle)=\"collapsed[titleMapping[groupContexts.key]] = $event\">\n\n <ng-template ngFor let-context [ngForOf]=\"groupContexts.value\">\n <igo-context-item\n igoListItem\n color=\"accent\"\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\n [context]=\"context\"\n [default]=\"context.id && this.defaultContextId && this.defaultContextId === context.id\"\n (edit)=\"edit.emit(context)\"\n (delete)=\"delete.emit(context)\"\n (clone)=\"clone.emit(context)\"\n (save)=\"save.emit(context)\"\n (hide)=\"hideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"favorite.emit(context)\"\n (manageTools)=\"manageTools.emit(context)\"\n (managePermissions)=\"managePermissions.emit(context)\"\n (select)=\"select.emit(context)\"\n (unselect)=\"unselect.emit(context)\">\n </igo-context-item>\n </ng-template>\n\n </igo-collapsible>\n\n <ng-template *ngIf=\"groupContexts.value.length && !auth.authenticated\" ngFor let-context [ngForOf]=\"groupContexts.value\">\n <igo-context-item\n igoListItem\n color=\"accent\"\n [showFavorite]=\"configService.getConfig('favoriteContext4NonAuthenticated')\"\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\n [context]=\"context\"\n [default]=\"configService.getConfig('context') ? defaultContextId === context.id : defaultContextId === context.uri\"\n (favorite)=\"favorite.emit(context)\"\n (select)=\"select.emit(context)\"\n (unselect)=\"unselect.emit(context)\">\n </igo-context-item>\n </ng-template>\n\n </ng-template>\n</igo-list>\n", styles: [".context-filter-max-width{width:calc(100% - 100px);margin:5px;padding-left:6px}.context-filter-min-width{width:calc(100% - 135px);margin:5px;padding-left:6px}mat-form-field{height:40px}.profilsMenu{display:flex}.profilsMenu>mat-checkbox{width:8px}.add-context-button{margin:0;width:40px;display:inline-flex;overflow:hidden}\n"] }]
|
|
2420
|
+
args: [{ selector: 'igo-context-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"true\">\r\n <mat-form-field *ngIf=\"showFilter()\" [ngClass]=\"auth.authenticated && configService.getConfig('context') ? 'context-filter-min-width' : 'context-filter-max-width'\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"'igo.context.contextManager.filterPlaceHolder' | translate\"\r\n [(ngModel)]=\"term\">\r\n <button\r\n mat-button\r\n mat-icon-button\r\n matSuffix\r\n class=\"clear-button\"\r\n *ngIf=\"term.length\"\r\n aria-label=\"Clear\"\r\n color=\"warn\"\r\n (click)=\"clearFilter()\">\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n <button\r\n *ngIf=\"!sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortAlphabetically' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(true)\">\r\n <mat-icon color=\"primary\" svgIcon=\"sort-alphabetical-variant\"></mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortContextOrder' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(false)\">\r\n <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\r\n </button>\r\n\r\n <igo-actionbar *ngIf=\"auth.authenticated && configService.getConfig('context')\"\r\n class=\"add-context-button\"\r\n [iconColor]=\"color\"\r\n [store]=\"actionStore\"\r\n [withIcon]=\"true\"\r\n icon=\"plus\"\r\n [withTitle]=\"actionbarMode === 'overlay'\"\r\n [horizontal]=\"false\"\r\n [mode]=\"actionbarMode\">\r\n </igo-actionbar>\r\n\r\n <button *ngIf=\"auth.authenticated && configService.getConfig('context')\"\r\n class=\"users-filter\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [matMenuTriggerFor]=\"accountMenu\">\r\n <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #accountMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let user of users\">\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(user)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"user.childs\"\r\n [matMenuTriggerFor]=\"subAccountMenu\"\r\n mat-menu-item>\r\n {{user.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"!user.childs\">\r\n {{user.title}}\r\n </button>\r\n </span>\r\n\r\n <mat-menu #subAccountMenu=\"matMenu\">\r\n <mat-checkbox *ngFor=\"let child of user.childs\"\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(child).checked\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(child, user)\">\r\n {{child.title}}\r\n </mat-checkbox>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"showHidden\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"showHiddenContexts.emit()\">\r\n </mat-checkbox>\r\n <button mat-menu-item>\r\n {{ 'igo.context.contextManager.showHidden' | translate }}\r\n </button>\r\n </span>\r\n </mat-menu>\r\n\r\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\r\n\r\n <igo-collapsible *ngIf=\"groupContexts.value.length && auth.authenticated\" [title]=\"titleMapping[groupContexts.key] | translate\"\r\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\" (toggle)=\"collapsed[titleMapping[groupContexts.key]] = $event\">\r\n\r\n <ng-template ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"context.id && this.defaultContextId && this.defaultContextId === context.id\"\r\n (edit)=\"edit.emit(context)\"\r\n (delete)=\"delete.emit(context)\"\r\n (clone)=\"clone.emit(context)\"\r\n (save)=\"save.emit(context)\"\r\n (hide)=\"hideContext(context)\"\r\n (show)=\"showContext(context)\"\r\n (favorite)=\"favorite.emit(context)\"\r\n (manageTools)=\"manageTools.emit(context)\"\r\n (managePermissions)=\"managePermissions.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\">\r\n </igo-context-item>\r\n </ng-template>\r\n\r\n </igo-collapsible>\r\n\r\n <ng-template *ngIf=\"groupContexts.value.length && !auth.authenticated\" ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [showFavorite]=\"configService.getConfig('favoriteContext4NonAuthenticated')\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"configService.getConfig('context') ? defaultContextId === context.id : defaultContextId === context.uri\"\r\n (favorite)=\"favorite.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\">\r\n </igo-context-item>\r\n </ng-template>\r\n\r\n </ng-template>\r\n</igo-list>\r\n", styles: [".context-filter-max-width{width:calc(100% - 100px);margin:5px;padding-left:6px}.context-filter-min-width{width:calc(100% - 135px);margin:5px;padding-left:6px}mat-form-field{height:40px}.profilsMenu{display:flex}.profilsMenu>mat-checkbox{width:8px}.add-context-button{margin:0;width:40px;display:inline-flex;overflow:hidden}\n"] }]
|
|
2437
2421
|
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i3.ConfigService }, { type: i2.AuthService }, { type: i1$3.MatDialog }, { type: i3.LanguageService }, { type: i3.StorageService }]; }, { contexts: [{
|
|
2438
2422
|
type: Input
|
|
2439
2423
|
}], selectedContext: [{
|
|
@@ -2497,12 +2481,9 @@ class ContextListBindingDirective {
|
|
|
2497
2481
|
const map = this.mapService.getMap();
|
|
2498
2482
|
const contextFromMap = this.contextService.getContextFromMap(map);
|
|
2499
2483
|
const msgSuccess = () => {
|
|
2500
|
-
|
|
2501
|
-
const message = translate.instant('igo.context.contextManager.dialog.saveMsg', {
|
|
2484
|
+
this.messageService.success('igo.context.contextManager.dialog.saveMsg', 'igo.context.contextManager.dialog.saveTitle', undefined, {
|
|
2502
2485
|
value: context.title
|
|
2503
2486
|
});
|
|
2504
|
-
const title = translate.instant('igo.context.contextManager.dialog.saveTitle');
|
|
2505
|
-
this.messageService.success(message, title);
|
|
2506
2487
|
};
|
|
2507
2488
|
if (context.imported) {
|
|
2508
2489
|
contextFromMap.title = context.title;
|
|
@@ -2532,12 +2513,9 @@ class ContextListBindingDirective {
|
|
|
2532
2513
|
this.messageService.remove(this.previousMessageId);
|
|
2533
2514
|
}
|
|
2534
2515
|
this.contextService.defaultContextId$.next(context.id);
|
|
2535
|
-
const
|
|
2536
|
-
const message = translate.instant('igo.context.contextManager.dialog.favoriteMsg', {
|
|
2516
|
+
const messageObj = this.messageService.success('igo.context.contextManager.dialog.favoriteMsg', 'igo.context.contextManager.dialog.favoriteTitle', undefined, {
|
|
2537
2517
|
value: context.title
|
|
2538
2518
|
});
|
|
2539
|
-
const title = translate.instant('igo.context.contextManager.dialog.favoriteTitle');
|
|
2540
|
-
const messageObj = this.messageService.success(message, title);
|
|
2541
2519
|
this.previousMessageId = messageObj.toastId;
|
|
2542
2520
|
this.cdRef.detectChanges();
|
|
2543
2521
|
});
|
|
@@ -2557,11 +2535,7 @@ class ContextListBindingDirective {
|
|
|
2557
2535
|
this.contextService
|
|
2558
2536
|
.delete(context.id, context.imported)
|
|
2559
2537
|
.subscribe(() => {
|
|
2560
|
-
|
|
2561
|
-
value: context.title
|
|
2562
|
-
});
|
|
2563
|
-
const title = translate.instant('igo.context.contextManager.dialog.deleteTitle');
|
|
2564
|
-
this.messageService.info(message, title);
|
|
2538
|
+
this.messageService.info('igo.context.contextManager.dialog.deleteMsg', 'igo.context.contextManager.dialog.deleteTitle', undefined, { value: context.title });
|
|
2565
2539
|
});
|
|
2566
2540
|
}
|
|
2567
2541
|
});
|
|
@@ -2572,12 +2546,7 @@ class ContextListBindingDirective {
|
|
|
2572
2546
|
uri: context.uri + '-copy'
|
|
2573
2547
|
};
|
|
2574
2548
|
this.contextService.clone(context.id, properties).subscribe(() => {
|
|
2575
|
-
|
|
2576
|
-
const message = translate.instant('igo.context.contextManager.dialog.cloneMsg', {
|
|
2577
|
-
value: context.title
|
|
2578
|
-
});
|
|
2579
|
-
const title = translate.instant('igo.context.contextManager.dialog.cloneTitle');
|
|
2580
|
-
this.messageService.success(message, title);
|
|
2549
|
+
this.messageService.success('igo.context.contextManager.dialog.cloneMsg', 'igo.context.contextManager.dialog.cloneTitle', undefined, { value: context.title });
|
|
2581
2550
|
});
|
|
2582
2551
|
}
|
|
2583
2552
|
onCreate(opts) {
|
|
@@ -2585,12 +2554,7 @@ class ContextListBindingDirective {
|
|
|
2585
2554
|
const context = this.contextService.getContextFromMap(this.component.map, empty);
|
|
2586
2555
|
context.title = title;
|
|
2587
2556
|
this.contextService.create(context).subscribe(() => {
|
|
2588
|
-
|
|
2589
|
-
const titleD = translate.instant('igo.context.bookmarkButton.dialog.createTitle');
|
|
2590
|
-
const message = translate.instant('igo.context.bookmarkButton.dialog.createMsg', {
|
|
2591
|
-
value: context.title
|
|
2592
|
-
});
|
|
2593
|
-
this.messageService.success(message, titleD);
|
|
2557
|
+
this.messageService.success('igo.context.bookmarkButton.dialog.createMsg', 'igo.context.bookmarkButton.dialog.createTitle', undefined, { value: context.title });
|
|
2594
2558
|
this.contextService.loadContext(context.uri);
|
|
2595
2559
|
});
|
|
2596
2560
|
}
|
|
@@ -2745,9 +2709,8 @@ function ContextFormComponent_span_8_Template(rf, ctx) {
|
|
|
2745
2709
|
}
|
|
2746
2710
|
}
|
|
2747
2711
|
class ContextFormComponent {
|
|
2748
|
-
constructor(formBuilder,
|
|
2712
|
+
constructor(formBuilder, messageService) {
|
|
2749
2713
|
this.formBuilder = formBuilder;
|
|
2750
|
-
this.languageService = languageService;
|
|
2751
2714
|
this.messageService = messageService;
|
|
2752
2715
|
this._disabled = false;
|
|
2753
2716
|
// TODO: replace any by ContextOptions or Context
|
|
@@ -2793,10 +2756,7 @@ class ContextFormComponent {
|
|
|
2793
2756
|
const text = this.prefix + '-' + this.form.value.uri.replace(' ', '');
|
|
2794
2757
|
const successful = Clipboard.copy(text);
|
|
2795
2758
|
if (successful) {
|
|
2796
|
-
|
|
2797
|
-
const title = translate.instant('igo.context.contextManager.dialog.copyTitle');
|
|
2798
|
-
const msg = translate.instant('igo.context.contextManager.dialog.copyMsg');
|
|
2799
|
-
this.messageService.success(msg, title);
|
|
2759
|
+
this.messageService.success('igo.context.contextManager.dialog.copyMsg', 'igo.context.contextManager.dialog.copyTitle');
|
|
2800
2760
|
}
|
|
2801
2761
|
}
|
|
2802
2762
|
buildForm() {
|
|
@@ -2810,7 +2770,7 @@ class ContextFormComponent {
|
|
|
2810
2770
|
});
|
|
2811
2771
|
}
|
|
2812
2772
|
}
|
|
2813
|
-
ContextFormComponent.ɵfac = function ContextFormComponent_Factory(t) { return new (t || ContextFormComponent)(i0.ɵɵdirectiveInject(i1$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.
|
|
2773
|
+
ContextFormComponent.ɵfac = function ContextFormComponent_Factory(t) { return new (t || ContextFormComponent)(i0.ɵɵdirectiveInject(i1$2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.MessageService)); };
|
|
2814
2774
|
ContextFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContextFormComponent, selectors: [["igo-context-form"]], inputs: { btnSubmitText: "btnSubmitText", context: "context", disabled: "disabled" }, outputs: { submitForm: "submitForm", clone: "clone", delete: "delete" }, decls: 19, vars: 18, consts: [[1, "igo-form", 3, "formGroup", "ngSubmit"], [1, "full-width"], ["matInput", "", "required", "", "maxlength", "128", "formControlName", "title", 3, "placeholder"], ["id", "uriInput", 1, "full-width"], ["class", "prefix", 4, "ngIf"], [1, "fieldWrapper"], ["matInput", "", "maxlength", "64", "floatLabel", "always", "formControlName", "uri", 3, "placeholder"], ["id", "copyButton", "type", "button", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", 3, "matTooltip", "click"], ["svgIcon", "content-copy"], [1, "igo-form-button-group"], ["mat-raised-button", "", "type", "submit", 3, "disabled"], [1, "prefix"]], template: function ContextFormComponent_Template(rf, ctx) {
|
|
2815
2775
|
if (rf & 1) {
|
|
2816
2776
|
i0.ɵɵelementStart(0, "form", 0);
|
|
@@ -2859,8 +2819,8 @@ ContextFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Contex
|
|
|
2859
2819
|
(function () {
|
|
2860
2820
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextFormComponent, [{
|
|
2861
2821
|
type: Component,
|
|
2862
|
-
args: [{ selector: 'igo-context-form', template: "<form class=\"igo-form\" [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\">\n\n <mat-form-field class=\"full-width\">\n <input matInput required\n maxlength=\"128\"\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\n formControlName=\"title\">\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 <span *ngIf=\"prefix\" class=\"prefix\">{{prefix}}-</span>\n <span class=\"fieldWrapper\">\n <input matInput\n maxlength=\"64\"\n floatLabel = \"always\"\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\n formControlName=\"uri\">\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 <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid || disabled\">\n {{ 'igo.context.contextManager.form.edit' | translate }}\n </button>\n </div>\n\n</form>\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"] }]
|
|
2863
|
-
}], function () { return [{ type: i1$2.UntypedFormBuilder }, { type: i3.
|
|
2822
|
+
args: [{ selector: 'igo-context-form', template: "<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field id=\"uriInput\" class=\"full-width\">\r\n <span *ngIf=\"prefix\" class=\"prefix\">{{prefix}}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input matInput\r\n maxlength=\"64\"\r\n floatLabel = \"always\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\r\n </span>\r\n </mat-form-field>\r\n\r\n <button\r\n id=\"copyButton\"\r\n type=\"button\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid || disabled\">\r\n {{ 'igo.context.contextManager.form.edit' | translate }}\r\n </button>\r\n </div>\r\n\r\n</form>\r\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"] }]
|
|
2823
|
+
}], function () { return [{ type: i1$2.UntypedFormBuilder }, { type: i3.MessageService }]; }, { btnSubmitText: [{
|
|
2864
2824
|
type: Input
|
|
2865
2825
|
}], context: [{
|
|
2866
2826
|
type: Input
|
|
@@ -2916,7 +2876,7 @@ ContextEditComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Contex
|
|
|
2916
2876
|
(function () {
|
|
2917
2877
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextEditComponent, [{
|
|
2918
2878
|
type: Component,
|
|
2919
|
-
args: [{ selector: 'igo-context-edit', template: "<igo-context-form *ngIf=\"context\"\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\n [context]=\"context\"\n (submitForm)=\"submitForm.emit($event)\">\n</igo-context-form>\n" }]
|
|
2879
|
+
args: [{ selector: 'igo-context-edit', template: "<igo-context-form *ngIf=\"context\"\r\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\r\n [context]=\"context\"\r\n (submitForm)=\"submitForm.emit($event)\">\r\n</igo-context-form>\r\n" }]
|
|
2920
2880
|
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { context: [{
|
|
2921
2881
|
type: Input
|
|
2922
2882
|
}], submitForm: [{
|
|
@@ -2925,22 +2885,18 @@ ContextEditComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Contex
|
|
|
2925
2885
|
})();
|
|
2926
2886
|
|
|
2927
2887
|
class ContextEditBindingDirective {
|
|
2928
|
-
constructor(component, contextService, messageService
|
|
2888
|
+
constructor(component, contextService, messageService) {
|
|
2929
2889
|
this.contextService = contextService;
|
|
2930
2890
|
this.messageService = messageService;
|
|
2931
|
-
this.languageService = languageService;
|
|
2932
2891
|
this.submitSuccessed = new EventEmitter();
|
|
2933
2892
|
this.component = component;
|
|
2934
2893
|
}
|
|
2935
2894
|
onEdit(context) {
|
|
2936
2895
|
const id = this.component.context.id;
|
|
2937
2896
|
this.contextService.update(id, context).subscribe(() => {
|
|
2938
|
-
|
|
2939
|
-
const message = translate.instant('igo.context.contextManager.dialog.saveMsg', {
|
|
2897
|
+
this.messageService.success('igo.context.contextManager.dialog.saveMsg', 'igo.context.contextManager.dialog.saveTitle', undefined, {
|
|
2940
2898
|
value: context.title || this.component.context.title
|
|
2941
2899
|
});
|
|
2942
|
-
const title = translate.instant('igo.context.contextManager.dialog.saveTitle');
|
|
2943
|
-
this.messageService.success(message, title);
|
|
2944
2900
|
this.contextService.setEditedContext(undefined);
|
|
2945
2901
|
this.submitSuccessed.emit(context);
|
|
2946
2902
|
});
|
|
@@ -2955,7 +2911,7 @@ class ContextEditBindingDirective {
|
|
|
2955
2911
|
this.component.context = context;
|
|
2956
2912
|
}
|
|
2957
2913
|
}
|
|
2958
|
-
ContextEditBindingDirective.ɵfac = function ContextEditBindingDirective_Factory(t) { return new (t || ContextEditBindingDirective)(i0.ɵɵdirectiveInject(ContextEditComponent, 2), i0.ɵɵdirectiveInject(ContextService), i0.ɵɵdirectiveInject(i3.MessageService)
|
|
2914
|
+
ContextEditBindingDirective.ɵfac = function ContextEditBindingDirective_Factory(t) { return new (t || ContextEditBindingDirective)(i0.ɵɵdirectiveInject(ContextEditComponent, 2), i0.ɵɵdirectiveInject(ContextService), i0.ɵɵdirectiveInject(i3.MessageService)); };
|
|
2959
2915
|
ContextEditBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ContextEditBindingDirective, selectors: [["", "igoContextEditBinding", ""]], hostBindings: function ContextEditBindingDirective_HostBindings(rf, ctx) {
|
|
2960
2916
|
if (rf & 1) {
|
|
2961
2917
|
i0.ɵɵlistener("submitForm", function ContextEditBindingDirective_submitForm_HostBindingHandler($event) { return ctx.onEdit($event); });
|
|
@@ -2970,7 +2926,7 @@ ContextEditBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type:
|
|
|
2970
2926
|
}], function () {
|
|
2971
2927
|
return [{ type: ContextEditComponent, decorators: [{
|
|
2972
2928
|
type: Self
|
|
2973
|
-
}] }, { type: ContextService }, { type: i3.MessageService }
|
|
2929
|
+
}] }, { type: ContextService }, { type: i3.MessageService }];
|
|
2974
2930
|
}, { submitSuccessed: [{
|
|
2975
2931
|
type: Output
|
|
2976
2932
|
}], onEdit: [{
|
|
@@ -3289,7 +3245,7 @@ ContextPermissionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
3289
3245
|
(function () {
|
|
3290
3246
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextPermissionsComponent, [{
|
|
3291
3247
|
type: Component,
|
|
3292
|
-
args: [{ selector: 'igo-context-permissions', template: "<div *ngIf=\"context\">\n\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\n </div>\n\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\n <mat-radio-group [(ngModel)]=\"context.scope\"\n (change)=\"scopeChanged.emit(context)\">\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 <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\n {{ 'igo.context.permission.scope.public' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n\n <form *ngIf=\"context.scope !== 'private' && canWrite\" [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\">\n\n <mat-form-field class=\"full-width\">\n <input matInput required\n [placeholder]=\"'igo.context.permission.user' | translate\"\n [formControl]=\"formControl\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onProfilSelected($event.option.value)\"\n [displayWith]=\"displayFn\">\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\n {{profil.title}}<br>\n <small class=\"mat-typography\">{{profil.name}}</small>\n </mat-option>\n </mat-autocomplete>\n <mat-error>\n {{ 'igo.context.permission.profilRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n\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\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid\">\n {{ 'igo.context.permission.addBtn' | translate }}\n </button>\n </div>\n\n </form>\n\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\n <igo-collapsible\n *ngIf=\"groupPermissions.value.length\"\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\">\n\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\n <mat-list-item>\n <mat-icon mat-list-avatar svgIcon=\"account-outline\"></mat-icon>\n <h4 mat-line>{{permission.profilTitle}} <small class=\"mat-typography\">{{permission.profil}}</small></h4>\n\n <div igoStopPropagation\n class=\"igo-actions-container\">\n\n <button *ngIf=\"canWrite || permission.profil === authService.decodeToken().user.sourceId\"\n mat-icon-button\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\n matTooltipShowDelay=\"500\"\n color=\"warn\"\n (click)=\"removePermission.emit(permission)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n\n </mat-list-item>\n </ng-template>\n </igo-collapsible>\n </ng-template>\n </igo-list>\n\n</div>\n", styles: [":host{margin:10px}.full-width{width:100%}mat-radio-button{padding:14px 14px 14px 0}.scopeForm,form{padding:5px}mat-option ::ng-deep .mat-option-text{line-height:normal;line-height:initial}\n"] }]
|
|
3248
|
+
args: [{ selector: 'igo-context-permissions', template: "<div *ngIf=\"context\">\r\n\r\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\r\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\r\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\r\n </div>\r\n\r\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\r\n <mat-radio-group [(ngModel)]=\"context.scope\"\r\n (change)=\"scopeChanged.emit(context)\">\r\n <mat-radio-button value=\"private\">\r\n {{ 'igo.context.permission.scope.private' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"protected\">\r\n {{ 'igo.context.permission.scope.shared' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\r\n {{ 'igo.context.permission.scope.public' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <form *ngIf=\"context.scope !== 'private' && canWrite\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n [placeholder]=\"'igo.context.permission.user' | translate\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onProfilSelected($event.option.value)\"\r\n [displayWith]=\"displayFn\">\r\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\r\n {{profil.title}}<br>\r\n <small class=\"mat-typography\">{{profil.name}}</small>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error>\r\n {{ 'igo.context.permission.profilRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n <mat-radio-group formControlName=\"typePermission\">\r\n <mat-radio-button value=\"read\">\r\n {{ 'igo.context.permission.read' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"write\">\r\n {{ 'igo.context.permission.write' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\">\r\n {{ 'igo.context.permission.addBtn' | translate }}\r\n </button>\r\n </div>\r\n\r\n </form>\r\n\r\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\r\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\r\n <igo-collapsible\r\n *ngIf=\"groupPermissions.value.length\"\r\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\">\r\n\r\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\r\n <mat-list-item>\r\n <mat-icon mat-list-avatar svgIcon=\"account-outline\"></mat-icon>\r\n <h4 mat-line>{{permission.profilTitle}} <small class=\"mat-typography\">{{permission.profil}}</small></h4>\r\n\r\n <div igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"canWrite || permission.profil === authService.decodeToken().user.sourceId\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n color=\"warn\"\r\n (click)=\"removePermission.emit(permission)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n </mat-list-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n </ng-template>\r\n </igo-list>\r\n\r\n</div>\r\n", styles: [":host{margin:10px}.full-width{width:100%}mat-radio-button{padding:14px 14px 14px 0}.scopeForm,form{padding:5px}mat-option ::ng-deep .mat-option-text{line-height:normal;line-height:initial}\n"] }]
|
|
3293
3249
|
}], function () { return [{ type: i1$2.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.ConfigService }]; }, { context: [{
|
|
3294
3250
|
type: Input
|
|
3295
3251
|
}], permissions: [{
|
|
@@ -3312,11 +3268,8 @@ class ContextPermissionsBindingDirective {
|
|
|
3312
3268
|
this.component = component;
|
|
3313
3269
|
}
|
|
3314
3270
|
onAddPermission(permission) {
|
|
3315
|
-
const translate = this.languageService.translate;
|
|
3316
3271
|
if (!permission.profil) {
|
|
3317
|
-
|
|
3318
|
-
const title = translate.instant('igo.context.contextManager.errors.addPermissionTitle');
|
|
3319
|
-
this.messageService.error(message, title);
|
|
3272
|
+
this.messageService.error('igo.context.contextManager.errors.addPermissionEmpty', 'igo.context.contextManager.errors.addPermissionTitle');
|
|
3320
3273
|
return;
|
|
3321
3274
|
}
|
|
3322
3275
|
const contextId = this.component.context.id;
|
|
@@ -3327,11 +3280,7 @@ class ContextPermissionsBindingDirective {
|
|
|
3327
3280
|
this.component.permissions[permission.typePermission].push(p);
|
|
3328
3281
|
}
|
|
3329
3282
|
const profil = permission.profil;
|
|
3330
|
-
|
|
3331
|
-
value: profil
|
|
3332
|
-
});
|
|
3333
|
-
const title = translate.instant('igo.context.permission.dialog.addTitle');
|
|
3334
|
-
this.messageService.success(message, title);
|
|
3283
|
+
this.messageService.success('igo.context.permission.dialog.addMsg', 'igo.context.permission.dialog.addTitle', undefined, { value: profil });
|
|
3335
3284
|
this.cd.detectChanges();
|
|
3336
3285
|
});
|
|
3337
3286
|
}
|
|
@@ -3345,24 +3294,14 @@ class ContextPermissionsBindingDirective {
|
|
|
3345
3294
|
});
|
|
3346
3295
|
this.component.permissions[permission.typePermission].splice(index, 1);
|
|
3347
3296
|
const profil = permission.profil;
|
|
3348
|
-
|
|
3349
|
-
const message = translate.instant('igo.context.permission.dialog.deleteMsg', {
|
|
3350
|
-
value: profil
|
|
3351
|
-
});
|
|
3352
|
-
const title = translate.instant('igo.context.permission.dialog.deleteTitle');
|
|
3353
|
-
this.messageService.success(message, title);
|
|
3297
|
+
this.messageService.success('igo.context.permission.dialog.deleteMsg', 'igo.context.permission.dialog.deleteTitle', undefined, { value: profil });
|
|
3354
3298
|
this.cd.detectChanges();
|
|
3355
3299
|
});
|
|
3356
3300
|
}
|
|
3357
3301
|
onScopeChanged(context) {
|
|
3358
3302
|
const scope = context.scope;
|
|
3359
3303
|
this.contextService.update(context.id, { scope }).subscribe(() => {
|
|
3360
|
-
|
|
3361
|
-
const message = translate.instant('igo.context.permission.dialog.scopeChangedMsg', {
|
|
3362
|
-
value: translate.instant('igo.context.permission.scope.' + scope)
|
|
3363
|
-
});
|
|
3364
|
-
const title = translate.instant('igo.context.permission.dialog.scopeChangedTitle');
|
|
3365
|
-
this.messageService.success(message, title);
|
|
3304
|
+
this.messageService.success('igo.context.permission.dialog.scopeChangedMsg', 'igo.context.permission.dialog.scopeChangedTitle', undefined, { value: 'igo.context.permission.scope.' + scope });
|
|
3366
3305
|
});
|
|
3367
3306
|
}
|
|
3368
3307
|
ngOnInit() {
|
|
@@ -3421,10 +3360,9 @@ ContextPermissionsBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective(
|
|
|
3421
3360
|
})();
|
|
3422
3361
|
|
|
3423
3362
|
class BookmarkButtonComponent {
|
|
3424
|
-
constructor(dialog, contextService,
|
|
3363
|
+
constructor(dialog, contextService, messageService) {
|
|
3425
3364
|
this.dialog = dialog;
|
|
3426
3365
|
this.contextService = contextService;
|
|
3427
|
-
this.languageService = languageService;
|
|
3428
3366
|
this.messageService = messageService;
|
|
3429
3367
|
}
|
|
3430
3368
|
get map() {
|
|
@@ -3449,19 +3387,14 @@ class BookmarkButtonComponent {
|
|
|
3449
3387
|
const context = this.contextService.getContextFromMap(this.map);
|
|
3450
3388
|
context.title = title;
|
|
3451
3389
|
this.contextService.create(context).subscribe(() => {
|
|
3452
|
-
|
|
3453
|
-
const titleD = translate.instant('igo.context.bookmarkButton.dialog.createTitle');
|
|
3454
|
-
const message = translate.instant('igo.context.bookmarkButton.dialog.createMsg', {
|
|
3455
|
-
value: context.title
|
|
3456
|
-
});
|
|
3457
|
-
this.messageService.success(message, titleD);
|
|
3390
|
+
this.messageService.success('igo.context.bookmarkButton.dialog.createMsg', 'igo.context.bookmarkButton.dialog.createTitle', undefined, { value: context.title });
|
|
3458
3391
|
this.contextService.loadContext(context.uri);
|
|
3459
3392
|
});
|
|
3460
3393
|
}
|
|
3461
3394
|
});
|
|
3462
3395
|
}
|
|
3463
3396
|
}
|
|
3464
|
-
BookmarkButtonComponent.ɵfac = function BookmarkButtonComponent_Factory(t) { return new (t || BookmarkButtonComponent)(i0.ɵɵdirectiveInject(i1$3.MatDialog), i0.ɵɵdirectiveInject(ContextService), i0.ɵɵdirectiveInject(i3.
|
|
3397
|
+
BookmarkButtonComponent.ɵfac = function BookmarkButtonComponent_Factory(t) { return new (t || BookmarkButtonComponent)(i0.ɵɵdirectiveInject(i1$3.MatDialog), i0.ɵɵdirectiveInject(ContextService), i0.ɵɵdirectiveInject(i3.MessageService)); };
|
|
3465
3398
|
BookmarkButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BookmarkButtonComponent, selectors: [["igo-bookmark-button"]], inputs: { map: "map", color: "color" }, decls: 4, vars: 4, consts: [[1, "igo-bookmark-button-container"], ["mat-icon-button", "", "matTooltipPosition", "above", 3, "matTooltip", "color", "click"], ["svgIcon", "star"]], template: function BookmarkButtonComponent_Template(rf, ctx) {
|
|
3466
3399
|
if (rf & 1) {
|
|
3467
3400
|
i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
|
|
@@ -3478,8 +3411,8 @@ BookmarkButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Boo
|
|
|
3478
3411
|
(function () {
|
|
3479
3412
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BookmarkButtonComponent, [{
|
|
3480
3413
|
type: Component,
|
|
3481
|
-
args: [{ selector: 'igo-bookmark-button', 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 <mat-icon svgIcon=\"star\"></mat-icon>\n </button>\n</div>\n", styles: [".igo-bookmark-button-container{width:40px}.igo-bookmark-button-container button{background-color:#fff}.igo-bookmark-button-container button:hover{background-color:#efefef}button,:host ::ng-deep button .mat-button-ripple-round{border-radius:0}\n"] }]
|
|
3482
|
-
}], function () { return [{ type: i1$3.MatDialog }, { type: ContextService }, { type: i3.
|
|
3414
|
+
args: [{ selector: 'igo-bookmark-button', template: "<div class=\"igo-bookmark-button-container\">\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"createContext()\">\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [".igo-bookmark-button-container{width:40px}.igo-bookmark-button-container button{background-color:#fff}.igo-bookmark-button-container button:hover{background-color:#efefef}button,:host ::ng-deep button .mat-button-ripple-round{border-radius:0}\n"] }]
|
|
3415
|
+
}], function () { return [{ type: i1$3.MatDialog }, { type: ContextService }, { type: i3.MessageService }]; }, { map: [{
|
|
3483
3416
|
type: Input
|
|
3484
3417
|
}], color: [{
|
|
3485
3418
|
type: Input
|
|
@@ -3529,7 +3462,7 @@ PoiDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoiDialo
|
|
|
3529
3462
|
(function () {
|
|
3530
3463
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoiDialogComponent, [{
|
|
3531
3464
|
type: Component,
|
|
3532
|
-
args: [{ selector: 'igo-poi-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.poiButton.dialog.title' | translate }}</h1>\n<div mat-dialog-content>\n <mat-form-field>\n <input matInput required autocomplete=\"off\"\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\n [(ngModel)]=\"title\">\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button mat-button color=\"primary\"\n [disabled]=\"!title\"\n (click)=\"dialogRef.close(title)\">\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\n </button>\n <button mat-button\n (click)=\"dialogRef.close(false)\">\n {{'igo.common.confirmDialog.cancelBtn' |\u00A0translate}}\n </button>\n</div>\n" }]
|
|
3465
|
+
args: [{ selector: 'igo-poi-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.poiButton.dialog.title' | translate }}</h1>\r\n<div mat-dialog-content>\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' |\u00A0translate}}\r\n </button>\r\n</div>\r\n" }]
|
|
3533
3466
|
}], function () { return [{ type: i1$3.MatDialogRef }]; }, null);
|
|
3534
3467
|
})();
|
|
3535
3468
|
|
|
@@ -3616,17 +3549,12 @@ class PoiButtonComponent {
|
|
|
3616
3549
|
}
|
|
3617
3550
|
deletePoi(poi) {
|
|
3618
3551
|
if (poi && poi.id) {
|
|
3619
|
-
const translate = this.languageService.translate;
|
|
3620
3552
|
this.confirmDialogService
|
|
3621
|
-
.open(translate.instant('igo.context.poiButton.dialog.confirmDelete'))
|
|
3553
|
+
.open(this.languageService.translate.instant('igo.context.poiButton.dialog.confirmDelete'))
|
|
3622
3554
|
.subscribe(confirm => {
|
|
3623
3555
|
if (confirm) {
|
|
3624
3556
|
this.poiService.delete(poi.id).subscribe(() => {
|
|
3625
|
-
|
|
3626
|
-
const message = translate.instant('igo.context.poiButton.dialog.deleteMsg', {
|
|
3627
|
-
value: poi.title
|
|
3628
|
-
});
|
|
3629
|
-
this.messageService.info(message, title);
|
|
3557
|
+
this.messageService.info('igo.context.poiButton.dialog.deleteMsg', 'igo.context.poiButton.dialog.deleteTitle', undefined, { value: poi.title });
|
|
3630
3558
|
this.pois = this.pois.filter(p => p.id !== poi.id);
|
|
3631
3559
|
}, err => {
|
|
3632
3560
|
err.error.title = 'DELETE Pois';
|
|
@@ -3661,12 +3589,7 @@ class PoiButtonComponent {
|
|
|
3661
3589
|
if (title) {
|
|
3662
3590
|
poi.title = title;
|
|
3663
3591
|
this.poiService.create(poi).subscribe(newPoi => {
|
|
3664
|
-
|
|
3665
|
-
const titleD = translate.instant('igo.context.poiButton.dialog.createTitle');
|
|
3666
|
-
const message = translate.instant('igo.context.poiButton.dialog.createMsg', {
|
|
3667
|
-
value: poi.title
|
|
3668
|
-
});
|
|
3669
|
-
this.messageService.success(message, titleD);
|
|
3592
|
+
this.messageService.success('igo.context.poiButton.dialog.createMsg', 'igo.context.poiButton.dialog.createTitle', undefined, { value: poi.title });
|
|
3670
3593
|
poi.id = newPoi.id;
|
|
3671
3594
|
this.pois.push(poi);
|
|
3672
3595
|
}, err => {
|
|
@@ -3716,7 +3639,7 @@ PoiButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoiButto
|
|
|
3716
3639
|
(function () {
|
|
3717
3640
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoiButtonComponent, [{
|
|
3718
3641
|
type: Component,
|
|
3719
|
-
args: [{ selector: 'igo-poi-button', template: "<mat-select [placeholder]=\"'igo.context.poiButton.placeholder' |\u00A0translate\"\n floatPlaceholder=\"never\">\n\n <mat-option (click)=\"createPoi()\">\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' |\u00A0translate }}</div>\n <button igoStopPropagation class=\"addPoi buttonPoi\"\n mat-icon-button\n color=\"primary\"\n (click)=\"createPoi()\">\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\n </button>\n </mat-option>\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\n <div class=\"titlePoi\">{{ poi.title }}</div>\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\n mat-icon-button\n color=\"warn\"\n (click)=\"deletePoi(poi)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </mat-option>\n</mat-select>\n", styles: ["mat-select{width:150px;background-color:#fff;height:40px;padding-top:0}mat-select ::ng-deep .mat-select-trigger{height:40px}mat-select ::ng-deep .mat-select-value-text,mat-select ::ng-deep .mat-select-placeholder{padding:5px;position:relative}.mat-option{text-overflow:inherit}.titlePoi{max-width:135px;overflow:hidden;text-overflow:ellipsis;float:left}.buttonPoi{float:right;margin:4px -10px 4px 0}.buttonPoi ::ng-deep .mat-icon{margin:0 8px}\n"] }]
|
|
3642
|
+
args: [{ selector: 'igo-poi-button', template: "<mat-select [placeholder]=\"'igo.context.poiButton.placeholder' |\u00A0translate\"\r\n floatPlaceholder=\"never\">\r\n\r\n <mat-option (click)=\"createPoi()\">\r\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' |\u00A0translate }}</div>\r\n <button igoStopPropagation class=\"addPoi buttonPoi\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"createPoi()\">\r\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\r\n <div class=\"titlePoi\">{{ poi.title }}</div>\r\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"deletePoi(poi)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n</mat-select>\r\n", styles: ["mat-select{width:150px;background-color:#fff;height:40px;padding-top:0}mat-select ::ng-deep .mat-select-trigger{height:40px}mat-select ::ng-deep .mat-select-value-text,mat-select ::ng-deep .mat-select-placeholder{padding:5px;position:relative}.mat-option{text-overflow:inherit}.titlePoi{max-width:135px;overflow:hidden;text-overflow:ellipsis;float:left}.buttonPoi{float:right;margin:4px -10px 4px 0}.buttonPoi ::ng-deep .mat-icon{margin:0 8px}\n"] }]
|
|
3720
3643
|
}], function () { return [{ type: i1$3.MatDialog }, { type: i2.AuthService }, { type: PoiService }, { type: i3.MessageService }, { type: i3.LanguageService }, { type: i13.ConfirmDialogService }]; }, { map: [{
|
|
3721
3644
|
type: Input
|
|
3722
3645
|
}], color: [{
|
|
@@ -3784,7 +3707,7 @@ UserDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserDia
|
|
|
3784
3707
|
(function () {
|
|
3785
3708
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserDialogComponent, [{
|
|
3786
3709
|
type: Component,
|
|
3787
|
-
args: [{ selector: 'igo-user-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{'igo.context.userButton.infoTitle' | translate}}</h1>\n<div mat-dialog-content class=\"mat-typography\">\n <p>{{'igo.context.userButton.dialog.user' | translate}}: {{user.sourceId}}</p>\n <p>{{'igo.context.userButton.dialog.email' | translate}}: {{user.email}}</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 mat-raised-button color=\"primary\"\n (click)=\"dialogRef.close(false)\">\n OK\n </button>\n</div>\n" }]
|
|
3710
|
+
args: [{ selector: 'igo-user-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">{{'igo.context.userButton.infoTitle' | translate}}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <p>{{'igo.context.userButton.dialog.user' | translate}}: {{user.sourceId}}</p>\r\n <p>{{'igo.context.userButton.dialog.email' | translate}}: {{user.email}}</p>\r\n <p>{{'igo.context.userButton.dialog.expiration' | translate}}: {{exp}}</p>\r\n <button mat-stroked-button color=\"primary\" (click)=\"clearPreferences()\">\r\n {{'igo.context.userButton.dialog.clearPreferences' | translate}}\r\n </button>\r\n <br>\r\n</div>\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <button mat-raised-button color=\"primary\"\r\n (click)=\"dialogRef.close(false)\">\r\n OK\r\n </button>\r\n</div>\r\n" }]
|
|
3788
3711
|
}], function () { return [{ type: i1$3.MatDialogRef }, { type: i2.AuthService }, { type: i3.StorageService }]; }, null);
|
|
3789
3712
|
})();
|
|
3790
3713
|
|
|
@@ -3898,7 +3821,7 @@ UserButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserBut
|
|
|
3898
3821
|
(function () {
|
|
3899
3822
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserButtonComponent, [{
|
|
3900
3823
|
type: Component,
|
|
3901
|
-
args: [{ selector: 'igo-user-button', animations: [userButtonSlideInOut()], template: "<div *ngIf=\"visible\" class=\"igo-user-button-container\">\n <div class=\"igo-user-button-more-container\" [@userButtonState]=\"expand ? 'expand' : 'collapse'\">\n\n <igo-poi-button *ngIf=\"hasApi\" [color]=\"color\" [map]=\"map\"></igo-poi-button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"infoUser()\">\n <mat-icon svgIcon=\"information-outline\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.logout' |\u00A0translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"logout()\">\n <mat-icon svgIcon=\"power\"></mat-icon>\n </button>\n\n </div>\n\n <button\n mat-icon-button\n [color]=\"auth.authenticated ? color : 'warn'\"\n (click)=\"accountClick()\">\n <mat-icon svgIcon=\"account-box\"></mat-icon>\n </button>\n</div>\n", styles: [".igo-user-button-container button{background-color:#fff}.igo-user-button-container button:hover{background-color:#efefef}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.igo-user-button-container>button{position:absolute;bottom:0}}.igo-user-button-more-container{float:left;height:40px}.igo-user-button-more-container>*{margin-right:2px;float:left}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.igo-user-button-more-container{height:80px;width:150px;position:relative;left:24px}}button,:host ::ng-deep button .mat-button-ripple-round{border-radius:0}\n"] }]
|
|
3824
|
+
args: [{ selector: 'igo-user-button', animations: [userButtonSlideInOut()], template: "<div *ngIf=\"visible\" class=\"igo-user-button-container\">\r\n <div class=\"igo-user-button-more-container\" [@userButtonState]=\"expand ? 'expand' : 'collapse'\">\r\n\r\n <igo-poi-button *ngIf=\"hasApi\" [color]=\"color\" [map]=\"map\"></igo-poi-button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"infoUser()\">\r\n <mat-icon svgIcon=\"information-outline\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.logout' |\u00A0translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"logout()\">\r\n <mat-icon svgIcon=\"power\"></mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n <button\r\n mat-icon-button\r\n [color]=\"auth.authenticated ? color : 'warn'\"\r\n (click)=\"accountClick()\">\r\n <mat-icon svgIcon=\"account-box\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [".igo-user-button-container button{background-color:#fff}.igo-user-button-container button:hover{background-color:#efefef}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.igo-user-button-container>button{position:absolute;bottom:0}}.igo-user-button-more-container{float:left;height:40px}.igo-user-button-more-container>*{margin-right:2px;float:left}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.igo-user-button-more-container{height:80px;width:150px;position:relative;left:24px}}button,:host ::ng-deep button .mat-button-ripple-round{border-radius:0}\n"] }]
|
|
3902
3825
|
}], function () { return [{ type: i1$3.MatDialog }, { type: i3.ConfigService }, { type: i2.AuthService }]; }, { map: [{
|
|
3903
3826
|
type: Input
|
|
3904
3827
|
}], color: [{
|
|
@@ -4597,7 +4520,7 @@ ShareMapUrlComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareM
|
|
|
4597
4520
|
(function () {
|
|
4598
4521
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ShareMapUrlComponent, [{
|
|
4599
4522
|
type: Component,
|
|
4600
|
-
args: [{ selector: 'igo-share-map-url', template: "<div class=\"igo-input-container linkToShare\">\n <mat-form-field>\n <textarea #textArea matInput readonly rows=\"3\"\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\n [value]=\"url\"></textarea>\n </mat-form-field>\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n (click)=\"copyTextToClipboard(textArea)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n {{ 'igo.context.shareMap.copy' | translate }}\n </button>\n </div>\n <div>\n <br/>\n <section class=\"mat-typography\">\n <div *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)===''\">\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate)!==''\">{{'igo.context.shareMap.included' | translate}}</h4>\n <ul>\n <li *ngIf=\"('igo.context.shareMap.context' | translate)!==''\">{{'igo.context.shareMap.context' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.center' | translate)!==''\">{{'igo.context.shareMap.center' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate)!==''\">{{'igo.context.shareMap.zoom' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate)!==''\">{{'igo.context.shareMap.addedLayers' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate)!==''\">{{'igo.context.shareMap.visibleInvisible' | translate}}</li>\n </ul>\n\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate)!==''\">{{'igo.context.shareMap.excluded' | translate}}</h4>\n <ul>\n <li *ngIf=\"('igo.context.shareMap.order' | translate)!==''\">{{'igo.context.shareMap.order' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate)!==''\">{{'igo.context.shareMap.opacity' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate)!==''\">{{'igo.context.shareMap.filterOgc' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate)!==''\">{{'igo.context.shareMap.filterTime' | translate}}</li>\n </ul>\n </div>\n <igo-custom-html class=\"shareCustomPadding\" *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)!==''\" class=\"mat-typography\"\n [html]=\"('igo.context.shareMap.htmlClarifications' | translate)\">\n </igo-custom-html>\n </section>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";mat-form-field{width:100%}.linkToShare\\a0 {padding:25px 5px 5px}.linkToShare\\a0 textarea{resize:none;width:100%;line-height:1.3;height:40px;overflow-y:hidden;word-wrap:normal;word-break:break-all}.linkToShare\\a0 textarea.textAreaWithButton{width:calc(100% - 60px)}.linkToShare\\a0 mat-form-field>button{float:right;margin:-10px 0}.igo-form-button-group{text-align:center;padding-top:10px}igo-custom-html.shareCustomPadding{padding:0}\n"] }]
|
|
4523
|
+
args: [{ selector: 'igo-share-map-url', template: "<div class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea #textArea matInput readonly rows=\"3\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n (click)=\"copyTextToClipboard(textArea)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.context.shareMap.copy' | translate }}\r\n </button>\r\n </div>\r\n <div>\r\n <br/>\r\n <section class=\"mat-typography\">\r\n <div *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)===''\">\r\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate)!==''\">{{'igo.context.shareMap.included' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.context' | translate)!==''\">{{'igo.context.shareMap.context' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.center' | translate)!==''\">{{'igo.context.shareMap.center' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate)!==''\">{{'igo.context.shareMap.zoom' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate)!==''\">{{'igo.context.shareMap.addedLayers' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate)!==''\">{{'igo.context.shareMap.visibleInvisible' | translate}}</li>\r\n </ul>\r\n\r\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate)!==''\">{{'igo.context.shareMap.excluded' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.order' | translate)!==''\">{{'igo.context.shareMap.order' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate)!==''\">{{'igo.context.shareMap.opacity' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate)!==''\">{{'igo.context.shareMap.filterOgc' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate)!==''\">{{'igo.context.shareMap.filterTime' | translate}}</li>\r\n </ul>\r\n </div>\r\n <igo-custom-html class=\"shareCustomPadding\" *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)!==''\" class=\"mat-typography\"\r\n [html]=\"('igo.context.shareMap.htmlClarifications' | translate)\">\r\n </igo-custom-html>\r\n </section>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";mat-form-field{width:100%}.linkToShare\\a0 {padding:25px 5px 5px}.linkToShare\\a0 textarea{resize:none;width:100%;line-height:1.3;height:40px;overflow-y:hidden;word-wrap:normal;word-break:break-all}.linkToShare\\a0 textarea.textAreaWithButton{width:calc(100% - 60px)}.linkToShare\\a0 mat-form-field>button{float:right;margin:-10px 0}.igo-form-button-group{text-align:center;padding-top:10px}igo-custom-html.shareCustomPadding{padding:0}\n"] }]
|
|
4601
4524
|
}], function () { return [{ type: i3.MessageService }, { type: ShareMapService }, { type: i0.ChangeDetectorRef }]; }, { map: [{
|
|
4602
4525
|
type: Input
|
|
4603
4526
|
}] });
|
|
@@ -4686,11 +4609,7 @@ class ShareMapApiComponent {
|
|
|
4686
4609
|
this.url = this.shareMapService.getUrlWithApi(inputs);
|
|
4687
4610
|
this.shareMapService.createContextShared(this.map, inputs).subscribe(rep => {
|
|
4688
4611
|
this.idContextShared = rep.id;
|
|
4689
|
-
|
|
4690
|
-
const msg = this.languageService.translate.instant('igo.context.contextManager.dialog.saveMsg', {
|
|
4691
|
-
value: inputs.title
|
|
4692
|
-
});
|
|
4693
|
-
this.messageService.success(msg, title);
|
|
4612
|
+
this.messageService.success('igo.context.contextManager.dialog.saveMsg', 'igo.context.contextManager.dialog.saveTitle', undefined, { value: inputs.title });
|
|
4694
4613
|
}, err => {
|
|
4695
4614
|
err.error.title = this.languageService.translate.instant('igo.context.shareMap.errorTitle');
|
|
4696
4615
|
this.messageService.showError(err);
|
|
@@ -4700,11 +4619,7 @@ class ShareMapApiComponent {
|
|
|
4700
4619
|
const inputs = Object.assign({}, values);
|
|
4701
4620
|
inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;
|
|
4702
4621
|
this.shareMapService.updateContextShared(this.map, inputs, this.idContextShared).subscribe(rep => {
|
|
4703
|
-
|
|
4704
|
-
const msg = this.languageService.translate.instant('igo.context.contextManager.dialog.saveMsg', {
|
|
4705
|
-
value: inputs.title
|
|
4706
|
-
});
|
|
4707
|
-
this.messageService.success(msg, title);
|
|
4622
|
+
this.messageService.success('igo.context.contextManager.dialog.saveMsg', 'igo.context.contextManager.dialog.saveTitle', undefined, { value: inputs.title });
|
|
4708
4623
|
}, err => {
|
|
4709
4624
|
err.error.title = this.languageService.translate.instant('igo.context.shareMap.errorTitle');
|
|
4710
4625
|
this.messageService.showError(err);
|
|
@@ -4713,10 +4628,7 @@ class ShareMapApiComponent {
|
|
|
4713
4628
|
copyTextToClipboard(textArea) {
|
|
4714
4629
|
const successful = Clipboard.copy(textArea);
|
|
4715
4630
|
if (successful) {
|
|
4716
|
-
|
|
4717
|
-
const title = translate.instant('igo.context.shareMap.dialog.copyTitle');
|
|
4718
|
-
const msg = translate.instant('igo.context.shareMap.dialog.copyMsg');
|
|
4719
|
-
this.messageService.success(msg, title);
|
|
4631
|
+
this.messageService.success('igo.context.shareMap.dialog.copyMsg', 'igo.context.shareMap.dialog.copyTitle');
|
|
4720
4632
|
}
|
|
4721
4633
|
}
|
|
4722
4634
|
buildForm() {
|
|
@@ -4781,7 +4693,7 @@ ShareMapApiComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareM
|
|
|
4781
4693
|
(function () {
|
|
4782
4694
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ShareMapApiComponent, [{
|
|
4783
4695
|
type: Component,
|
|
4784
|
-
args: [{ selector: 'igo-share-map-api', template: "<form class=\"igo-form\" [formGroup]=\"form\"\n (ngSubmit)=\"createUrl(form.value)\">\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input matInput required\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\n formControlName=\"title\">\n <mat-error>\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\n </mat-error>\n </mat-form-field>\n </div>\n\n <div id=\"uriInput\" class=\"igo-input-container\">\n <mat-form-field>\n <span *ngIf=\"userId\" class=\"prefix\">{{userId}}-</span>\n <span class=\"fieldWrapper\">\n <input matInput required\n [readonly]=\"!userId\"\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\n formControlName=\"uri\">\n </span>\n <mat-error>\n {{ 'igo.context.contextManager.form.uriRequired' | translate }}\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"igo-form-button-group\">\n <button *ngIf=\"!url\"\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid\">\n {{ 'igo.context.shareMap.button' | translate }}\n </button>\n <button *ngIf=\"url\"\n mat-raised-button\n type=\"button\"\n (click)=\"updateContextShared(form.value)\">\n {{ 'igo.context.shareMap.refreshBtn' | translate }}\n </button>\n </div>\n</form>\n\n<div *ngIf=\"url\" class=\"igo-input-container linkToShare\">\n <mat-form-field>\n <textarea #textArea matInput readonly rows=\"3\"\n class=\"textAreaWithButton\"\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\n [value]=\"url\"></textarea>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.shareMap.copy' | translate\"\n color=\"primary\"\n (click)=\"copyTextToClipboard(textArea)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n </mat-form-field>\n<div>\n", styles: ["@charset \"UTF-8\";mat-form-field{width:100%}#uriInput .fieldWrapper{display:block;overflow:hidden}#uriInput .prefix{float:left}.linkToShare\\a0 {padding:25px 5px 5px}.linkToShare\\a0 textarea{resize:none;width:100%;line-height:1.3;height:40px;overflow-y:hidden;word-wrap:normal;word-break:break-all}.linkToShare\\a0 textarea.textAreaWithButton{width:calc(100% - 60px)}.linkToShare\\a0 mat-form-field>button{float:right;margin:-10px 0}.igo-form{padding:20px 5px 5px}.igo-form-button-group{text-align:center;padding-top:10px}\n"] }]
|
|
4696
|
+
args: [{ selector: 'igo-share-map-api', template: "<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"createUrl(form.value)\">\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input matInput required\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"uriInput\" class=\"igo-input-container\">\r\n <mat-form-field>\r\n <span *ngIf=\"userId\" class=\"prefix\">{{userId}}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input matInput required\r\n [readonly]=\"!userId\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\r\n </span>\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.uriRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button *ngIf=\"!url\"\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\">\r\n {{ 'igo.context.shareMap.button' | translate }}\r\n </button>\r\n <button *ngIf=\"url\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"updateContextShared(form.value)\">\r\n {{ 'igo.context.shareMap.refreshBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<div *ngIf=\"url\" class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea #textArea matInput readonly rows=\"3\"\r\n class=\"textAreaWithButton\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></textarea>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.shareMap.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard(textArea)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n<div>\r\n", styles: ["@charset \"UTF-8\";mat-form-field{width:100%}#uriInput .fieldWrapper{display:block;overflow:hidden}#uriInput .prefix{float:left}.linkToShare\\a0 {padding:25px 5px 5px}.linkToShare\\a0 textarea{resize:none;width:100%;line-height:1.3;height:40px;overflow-y:hidden;word-wrap:normal;word-break:break-all}.linkToShare\\a0 textarea.textAreaWithButton{width:calc(100% - 60px)}.linkToShare\\a0 mat-form-field>button{float:right;margin:-10px 0}.igo-form{padding:20px 5px 5px}.igo-form-button-group{text-align:center;padding-top:10px}\n"] }]
|
|
4785
4697
|
}], function () { return [{ type: i3.LanguageService }, { type: i3.MessageService }, { type: i2.AuthService }, { type: ShareMapService }, { type: i1$2.UntypedFormBuilder }]; }, { map: [{
|
|
4786
4698
|
type: Input
|
|
4787
4699
|
}] });
|
|
@@ -4841,7 +4753,7 @@ ShareMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareMapC
|
|
|
4841
4753
|
(function () {
|
|
4842
4754
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ShareMapComponent, [{
|
|
4843
4755
|
type: Component,
|
|
4844
|
-
args: [{ selector: 'igo-share-map', template: "<mat-tab-group *ngIf=\"hasApi\" >\n <mat-tab [label]=\"'igo.context.shareMap.shareWithApi' | translate\">\n <igo-share-map-api [map]=\"map\"></igo-share-map-api>\n </mat-tab>\n <mat-tab [label]=\"'igo.context.shareMap.shareWithUrl' | translate\">\n <igo-share-map-url [map]=\"map\"></igo-share-map-url>\n </mat-tab>\n</mat-tab-group>\n\n<igo-share-map-url *ngIf=\"!hasApi\" [map]=\"map\"></igo-share-map-url>\n" }]
|
|
4756
|
+
args: [{ selector: 'igo-share-map', template: "<mat-tab-group *ngIf=\"hasApi\" >\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithApi' | translate\">\r\n <igo-share-map-api [map]=\"map\"></igo-share-map-api>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithUrl' | translate\">\r\n <igo-share-map-url [map]=\"map\"></igo-share-map-url>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-share-map-url *ngIf=\"!hasApi\" [map]=\"map\"></igo-share-map-url>\r\n" }]
|
|
4845
4757
|
}], function () { return [{ type: i3.ConfigService }]; }, { map: [{
|
|
4846
4758
|
type: Input
|
|
4847
4759
|
}] });
|
|
@@ -5062,7 +4974,7 @@ SidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SidenavCom
|
|
|
5062
4974
|
(function () {
|
|
5063
4975
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavComponent, [{
|
|
5064
4976
|
type: Component,
|
|
5065
|
-
args: [{ selector: 'igo-sidenav', template: "<mat-sidenav\n #sidenav\n igoSidenavShim\n mode=\"side\"\n [opened]=\"opened\">\n\n <div class=\"igo-sidenav-content\">\n\n <igo-flexible\n #topPanel\n initial=\"50%\" initialMobile=\"100%\"\n expanded=\"calc(100% - 58px)\"\n [state]=\"topPanelState\">\n\n <div class=\"igo-content\">\n <igo-panel [title]=\"tool ? (tool.title | translate) : title\">\n <button\n mat-icon-button\n panelLeftButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\n *ngIf=\"tool\">\n <mat-icon svgIcon=\"arrow-back\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n panelRightButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\n *ngIf=\"tool\">\n <mat-icon svgIcon=\"menu\"></mat-icon>\n </button>\n\n </igo-panel>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature && media !== 'mobile'\">\n\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\">\n <mat-icon [svgIcon]=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0 ? 'arrow_downward' : 'arrow_upward'\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n (click)=\"zoomToFeatureExtent()\"\n *ngIf=\"feature.geometry\">\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\n </button>\n\n <igo-feature-details\n [feature]=\"feature\"\n *ngIf=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0\">\n </igo-feature-details>\n </igo-panel>\n </div>\n\n </igo-flexible>\n\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{-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"] }]
|
|
4977
|
+
args: [{ selector: 'igo-sidenav', template: "<mat-sidenav\r\n #sidenav\r\n igoSidenavShim\r\n mode=\"side\"\r\n [opened]=\"opened\">\r\n\r\n <div class=\"igo-sidenav-content\">\r\n\r\n <igo-flexible\r\n #topPanel\r\n initial=\"50%\" initialMobile=\"100%\"\r\n expanded=\"calc(100% - 58px)\"\r\n [state]=\"topPanelState\">\r\n\r\n <div class=\"igo-content\">\r\n <igo-panel [title]=\"tool ? (tool.title | translate) : title\">\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\r\n *ngIf=\"tool\">\r\n <mat-icon svgIcon=\"arrow-back\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\r\n *ngIf=\"tool\">\r\n <mat-icon svgIcon=\"menu\"></mat-icon>\r\n </button>\r\n\r\n </igo-panel>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel\r\n [title]=\"featureTitle\"\r\n *ngIf=\"feature && media !== 'mobile'\">\r\n\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\">\r\n <mat-icon [svgIcon]=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0 ? 'arrow_downward' : 'arrow_upward'\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n (click)=\"zoomToFeatureExtent()\"\r\n *ngIf=\"feature.geometry\">\r\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n [feature]=\"feature\"\r\n *ngIf=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0\">\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n </igo-flexible>\r\n\r\n </div>\r\n</mat-sidenav>\r\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{-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"] }]
|
|
5066
4978
|
}], function () { return [{ type: i1$4.Title }]; }, { map: [{
|
|
5067
4979
|
type: Input
|
|
5068
4980
|
}], opened: [{
|