@igo2/context 1.15.4 → 1.15.5
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/igo2-context.mjs +4 -4
- package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs +228 -228
- package/esm2020/lib/context-import-export/context-import-export.module.mjs +85 -85
- package/esm2020/lib/context-import-export/index.mjs +3 -3
- package/esm2020/lib/context-import-export/shared/context-export.errors.mjs +15 -15
- package/esm2020/lib/context-import-export/shared/context-export.interface.mjs +2 -2
- package/esm2020/lib/context-import-export/shared/context-export.service.mjs +38 -38
- package/esm2020/lib/context-import-export/shared/context-export.utils.mjs +15 -15
- package/esm2020/lib/context-import-export/shared/context-import.errors.mjs +33 -33
- package/esm2020/lib/context-import-export/shared/context-import.service.mjs +79 -79
- package/esm2020/lib/context-import-export/shared/context-import.utils.mjs +133 -133
- package/esm2020/lib/context-import-export/shared/index.mjs +8 -8
- package/esm2020/lib/context-manager/context-edit/context-edit-binding.directive.mjs +50 -50
- package/esm2020/lib/context-manager/context-edit/context-edit.component.mjs +46 -46
- package/esm2020/lib/context-manager/context-edit/index.mjs +3 -3
- package/esm2020/lib/context-manager/context-form/context-form.component.mjs +143 -143
- package/esm2020/lib/context-manager/context-form/index.mjs +2 -2
- package/esm2020/lib/context-manager/context-item/context-item.component.mjs +245 -245
- package/esm2020/lib/context-manager/context-item/index.mjs +2 -2
- package/esm2020/lib/context-manager/context-list/context-list-binding.directive.mjs +240 -240
- package/esm2020/lib/context-manager/context-list/context-list.component.mjs +592 -592
- package/esm2020/lib/context-manager/context-list/context-list.enum.mjs +7 -7
- package/esm2020/lib/context-manager/context-list/index.mjs +3 -3
- package/esm2020/lib/context-manager/context-manager.module.mjs +162 -162
- package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +99 -99
- package/esm2020/lib/context-manager/context-permissions/context-permissions.component.mjs +306 -306
- package/esm2020/lib/context-manager/context-permissions/index.mjs +3 -3
- package/esm2020/lib/context-manager/index.mjs +7 -7
- package/esm2020/lib/context-manager/shared/context.enum.mjs +13 -13
- package/esm2020/lib/context-manager/shared/context.interface.mjs +2 -2
- package/esm2020/lib/context-manager/shared/context.service.mjs +632 -632
- package/esm2020/lib/context-manager/shared/index.mjs +6 -6
- package/esm2020/lib/context-manager/shared/layer-context.directive.mjs +162 -162
- package/esm2020/lib/context-manager/shared/map-context.directive.mjs +70 -70
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +66 -66
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +50 -50
- package/esm2020/lib/context-map-button/bookmark-button/index.mjs +3 -3
- package/esm2020/lib/context-map-button/context-map-button.module.mjs +96 -96
- package/esm2020/lib/context-map-button/index.mjs +4 -4
- package/esm2020/lib/context-map-button/poi-button/index.mjs +4 -4
- package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +161 -161
- package/esm2020/lib/context-map-button/poi-button/poi-dialog.component.mjs +50 -50
- package/esm2020/lib/context-map-button/poi-button/shared/index.mjs +3 -3
- package/esm2020/lib/context-map-button/poi-button/shared/poi.interface.mjs +2 -2
- package/esm2020/lib/context-map-button/poi-button/shared/poi.service.mjs +33 -33
- package/esm2020/lib/context-map-button/user-button/index.mjs +3 -3
- package/esm2020/lib/context-map-button/user-button/user-button.animation.mjs +17 -17
- package/esm2020/lib/context-map-button/user-button/user-button.component.mjs +104 -104
- package/esm2020/lib/context-map-button/user-button/user-dialog.component.mjs +66 -66
- package/esm2020/lib/context.module.mjs +45 -45
- package/esm2020/lib/share-map/index.mjs +5 -5
- package/esm2020/lib/share-map/share-map/share-map-api.component.mjs +170 -170
- package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +243 -243
- package/esm2020/lib/share-map/share-map/share-map.component.mjs +57 -57
- package/esm2020/lib/share-map/share-map.module.mjs +67 -67
- package/esm2020/lib/share-map/shared/index.mjs +2 -2
- package/esm2020/lib/share-map/shared/share-map.service.mjs +210 -210
- package/esm2020/lib/sidenav/index.mjs +2 -2
- package/esm2020/lib/sidenav/sidenav.component.mjs +170 -170
- package/esm2020/lib/sidenav/sidenav.module.mjs +61 -61
- package/esm2020/public_api.mjs +15 -15
- package/fesm2015/igo2-context.mjs +4948 -4948
- package/fesm2015/igo2-context.mjs.map +1 -1
- package/fesm2020/igo2-context.mjs +4597 -4597
- package/fesm2020/igo2-context.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/context-import-export/context-import-export/context-import-export.component.d.ts +44 -44
- package/lib/context-import-export/context-import-export.module.d.ts +23 -23
- package/lib/context-import-export/index.d.ts +2 -2
- package/lib/context-import-export/shared/context-export.errors.d.ts +8 -8
- package/lib/context-import-export/shared/context-export.interface.d.ts +5 -5
- package/lib/context-import-export/shared/context-export.service.d.ts +10 -10
- package/lib/context-import-export/shared/context-export.utils.d.ts +4 -4
- package/lib/context-import-export/shared/context-import.errors.d.ts +17 -17
- package/lib/context-import-export/shared/context-import.service.d.ts +18 -18
- package/lib/context-import-export/shared/context-import.utils.d.ts +17 -17
- package/lib/context-import-export/shared/index.d.ts +7 -7
- package/lib/context-manager/context-edit/context-edit-binding.directive.d.ts +20 -20
- package/lib/context-manager/context-edit/context-edit.component.d.ts +14 -14
- package/lib/context-manager/context-edit/index.d.ts +2 -2
- package/lib/context-manager/context-form/context-form.component.d.ts +30 -30
- package/lib/context-manager/context-form/index.d.ts +1 -1
- package/lib/context-manager/context-item/context-item.component.d.ts +32 -32
- package/lib/context-manager/context-item/index.d.ts +1 -1
- package/lib/context-manager/context-list/context-list-binding.directive.d.ts +46 -46
- package/lib/context-manager/context-list/context-list.component.d.ts +93 -93
- package/lib/context-manager/context-list/context-list.enum.d.ts +5 -5
- package/lib/context-manager/context-list/index.d.ts +2 -2
- package/lib/context-manager/context-manager.module.d.ts +37 -37
- package/lib/context-manager/context-permissions/context-permissions-binding.directive.d.ts +23 -23
- package/lib/context-manager/context-permissions/context-permissions.component.d.ts +40 -40
- package/lib/context-manager/context-permissions/index.d.ts +2 -2
- package/lib/context-manager/index.d.ts +6 -6
- package/lib/context-manager/shared/context.enum.d.ts +10 -10
- package/lib/context-manager/shared/context.interface.d.ts +75 -75
- package/lib/context-manager/shared/context.service.d.ts +75 -75
- package/lib/context-manager/shared/index.d.ts +5 -5
- package/lib/context-manager/shared/layer-context.directive.d.ts +28 -28
- package/lib/context-manager/shared/map-context.directive.d.ts +19 -19
- package/lib/context-map-button/bookmark-button/bookmark-button.component.d.ts +20 -20
- package/lib/context-map-button/bookmark-button/bookmark-dialog.component.d.ts +9 -9
- package/lib/context-map-button/bookmark-button/index.d.ts +2 -2
- package/lib/context-map-button/context-map-button.module.d.ts +27 -27
- package/lib/context-map-button/index.d.ts +3 -3
- package/lib/context-map-button/poi-button/index.d.ts +3 -3
- package/lib/context-map-button/poi-button/poi-button.component.d.ts +34 -34
- package/lib/context-map-button/poi-button/poi-dialog.component.d.ts +9 -9
- package/lib/context-map-button/poi-button/shared/index.d.ts +2 -2
- package/lib/context-map-button/poi-button/shared/poi.interface.d.ts +7 -7
- package/lib/context-map-button/poi-button/shared/poi.service.d.ts +16 -16
- package/lib/context-map-button/user-button/index.d.ts +2 -2
- package/lib/context-map-button/user-button/user-button.animation.d.ts +2 -2
- package/lib/context-map-button/user-button/user-button.component.d.ts +25 -25
- package/lib/context-map-button/user-button/user-dialog.component.d.ts +15 -15
- package/lib/context.module.d.ts +16 -16
- package/lib/share-map/index.d.ts +4 -4
- package/lib/share-map/share-map/share-map-api.component.d.ts +27 -27
- package/lib/share-map/share-map/share-map-url.component.d.ts +26 -26
- package/lib/share-map/share-map/share-map.component.d.ts +11 -11
- package/lib/share-map/share-map.module.d.ts +21 -21
- package/lib/share-map/shared/index.d.ts +1 -1
- package/lib/share-map/shared/share-map.service.d.ts +17 -17
- package/lib/sidenav/index.d.ts +1 -1
- package/lib/sidenav/sidenav.component.d.ts +35 -35
- package/lib/sidenav/sidenav.module.d.ts +18 -18
- package/ngcc.config.js +3 -3
- package/package.json +6 -6
- package/public_api.d.ts +11 -11
package/esm2020/igo2-context.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvaWdvMi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs
CHANGED
|
@@ -1,228 +1,228 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { take } from 'rxjs/operators';
|
|
5
|
-
import { handleFileExportError } from '../shared/context-export.utils';
|
|
6
|
-
import { handleFileImportSuccess, handleFileImportError } from '../shared/context-import.utils';
|
|
7
|
-
import { handleFileExportSuccess } from '../shared/context-export.utils';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../shared/context-import.service";
|
|
10
|
-
import * as i2 from "../shared/context-export.service";
|
|
11
|
-
import * as i3 from "@igo2/core";
|
|
12
|
-
import * as i4 from "@angular/forms";
|
|
13
|
-
import * as i5 from "../../context-manager/shared/context.service";
|
|
14
|
-
import * as i6 from "@angular/common";
|
|
15
|
-
import * as i7 from "@angular/material/button";
|
|
16
|
-
import * as i8 from "@angular/material/button-toggle";
|
|
17
|
-
import * as i9 from "@angular/material/divider";
|
|
18
|
-
import * as i10 from "@angular/material/form-field";
|
|
19
|
-
import * as i11 from "@angular/material/select";
|
|
20
|
-
import * as i12 from "@angular/material/core";
|
|
21
|
-
import * as i13 from "@angular/material/input";
|
|
22
|
-
import * as i14 from "@igo2/common";
|
|
23
|
-
import * as i15 from "@ngx-translate/core";
|
|
24
|
-
const _c0 = function (a0) { return { size: a0 }; };
|
|
25
|
-
function ContextImportExportComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
|
27
|
-
i0.ɵɵelementStart(0, "div")(1, "form", 5)(2, "div", 6)(3, "button", 7);
|
|
28
|
-
i0.ɵɵlistener("click", function ContextImportExportComponent_div_8_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r4); const _r2 = i0.ɵɵreference(10); return i0.ɵɵresetView(_r2.click()); });
|
|
29
|
-
i0.ɵɵpipe(4, "async");
|
|
30
|
-
i0.ɵɵtext(5);
|
|
31
|
-
i0.ɵɵpipe(6, "translate");
|
|
32
|
-
i0.ɵɵelementEnd();
|
|
33
|
-
i0.ɵɵelement(7, "igo-spinner", 8);
|
|
34
|
-
i0.ɵɵpipe(8, "async");
|
|
35
|
-
i0.ɵɵelementStart(9, "input", 9, 10);
|
|
36
|
-
i0.ɵɵlistener("click", function ContextImportExportComponent_div_8_Template_input_click_9_listener() { i0.ɵɵrestoreView(_r4); const _r2 = i0.ɵɵreference(10); return i0.ɵɵresetView(_r2.value = null); })("change", function ContextImportExportComponent_div_8_Template_input_change_9_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.importFiles($event.target.files)); });
|
|
37
|
-
i0.ɵɵelementEnd()()();
|
|
38
|
-
i0.ɵɵelementStart(11, "section", 11)(12, "h4");
|
|
39
|
-
i0.ɵɵtext(13);
|
|
40
|
-
i0.ɵɵpipe(14, "translate");
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
42
|
-
i0.ɵɵelementStart(15, "ul")(16, "li");
|
|
43
|
-
i0.ɵɵtext(17);
|
|
44
|
-
i0.ɵɵpipe(18, "translate");
|
|
45
|
-
i0.ɵɵelementEnd()()()();
|
|
46
|
-
} if (rf & 2) {
|
|
47
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
48
|
-
i0.ɵɵadvance(3);
|
|
49
|
-
i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(4, 7, ctx_r0.loading$));
|
|
50
|
-
i0.ɵɵadvance(2);
|
|
51
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 9, "igo.geo.importExportForm.importButton"), " ");
|
|
52
|
-
i0.ɵɵadvance(2);
|
|
53
|
-
i0.ɵɵproperty("shown", i0.ɵɵpipeBind1(8, 11, ctx_r0.loading$));
|
|
54
|
-
i0.ɵɵadvance(2);
|
|
55
|
-
i0.ɵɵstyleProp("display", "none");
|
|
56
|
-
i0.ɵɵadvance(4);
|
|
57
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 13, "igo.geo.importExportForm.importClarifications"));
|
|
58
|
-
i0.ɵɵadvance(4);
|
|
59
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(18, 15, "igo.geo.importExportForm.importSizeMax", i0.ɵɵpureFunction1(18, _c0, ctx_r0.fileSizeMb)));
|
|
60
|
-
} }
|
|
61
|
-
function ContextImportExportComponent_form_9_mat_option_18_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
-
i0.ɵɵelementStart(0, "mat-option", 2);
|
|
63
|
-
i0.ɵɵtext(1);
|
|
64
|
-
i0.ɵɵelementEnd();
|
|
65
|
-
} if (rf & 2) {
|
|
66
|
-
const layer_r9 = ctx.$implicit;
|
|
67
|
-
i0.ɵɵproperty("value", layer_r9);
|
|
68
|
-
i0.ɵɵadvance(1);
|
|
69
|
-
i0.ɵɵtextInterpolate(layer_r9.title);
|
|
70
|
-
} }
|
|
71
|
-
function ContextImportExportComponent_form_9_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
-
const _r11 = i0.ɵɵgetCurrentView();
|
|
73
|
-
i0.ɵɵelementStart(0, "form", 12)(1, "div", 13)(2, "mat-form-field", 14)(3, "mat-label");
|
|
74
|
-
i0.ɵɵtext(4);
|
|
75
|
-
i0.ɵɵpipe(5, "translate");
|
|
76
|
-
i0.ɵɵelementEnd();
|
|
77
|
-
i0.ɵɵelement(6, "input", 15);
|
|
78
|
-
i0.ɵɵelementEnd()();
|
|
79
|
-
i0.ɵɵelementStart(7, "div", 13)(8, "mat-form-field")(9, "mat-label");
|
|
80
|
-
i0.ɵɵtext(10);
|
|
81
|
-
i0.ɵɵpipe(11, "translate");
|
|
82
|
-
i0.ɵɵelementEnd();
|
|
83
|
-
i0.ɵɵelementStart(12, "mat-select", 16)(13, "mat-option", 17, 18);
|
|
84
|
-
i0.ɵɵlistener("click", function ContextImportExportComponent_form_9_Template_mat_option_click_13_listener() { i0.ɵɵrestoreView(_r11); const _r7 = i0.ɵɵreference(14); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.selectAll(_r7)); });
|
|
85
|
-
i0.ɵɵtext(15);
|
|
86
|
-
i0.ɵɵpipe(16, "translate");
|
|
87
|
-
i0.ɵɵelementEnd();
|
|
88
|
-
i0.ɵɵelement(17, "mat-divider");
|
|
89
|
-
i0.ɵɵtemplate(18, ContextImportExportComponent_form_9_mat_option_18_Template, 2, 2, "mat-option", 19);
|
|
90
|
-
i0.ɵɵelementEnd()()();
|
|
91
|
-
i0.ɵɵelementStart(19, "div", 6)(20, "button", 7);
|
|
92
|
-
i0.ɵɵlistener("click", function ContextImportExportComponent_form_9_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.handleExportFormSubmit(ctx_r12.form.value)); });
|
|
93
|
-
i0.ɵɵpipe(21, "async");
|
|
94
|
-
i0.ɵɵtext(22);
|
|
95
|
-
i0.ɵɵpipe(23, "translate");
|
|
96
|
-
i0.ɵɵelementEnd();
|
|
97
|
-
i0.ɵɵelement(24, "igo-spinner", 8);
|
|
98
|
-
i0.ɵɵpipe(25, "async");
|
|
99
|
-
i0.ɵɵelementEnd()();
|
|
100
|
-
} if (rf & 2) {
|
|
101
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
102
|
-
i0.ɵɵproperty("formGroup", ctx_r1.form);
|
|
103
|
-
i0.ɵɵadvance(4);
|
|
104
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 9, "igo.context.contextImportExport.export.exportContextName"));
|
|
105
|
-
i0.ɵɵadvance(6);
|
|
106
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 11, "igo.context.contextImportExport.export.exportPlaceHolder"));
|
|
107
|
-
i0.ɵɵadvance(3);
|
|
108
|
-
i0.ɵɵproperty("value", 1);
|
|
109
|
-
i0.ɵɵadvance(2);
|
|
110
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(16, 13, "igo.context.contextImportExport.export.exportSelectAll"), " ");
|
|
111
|
-
i0.ɵɵadvance(3);
|
|
112
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.userControlledLayerList);
|
|
113
|
-
i0.ɵɵadvance(2);
|
|
114
|
-
i0.ɵɵproperty("disabled", !ctx_r1.form.valid || i0.ɵɵpipeBind1(21, 15, ctx_r1.loading$));
|
|
115
|
-
i0.ɵɵadvance(2);
|
|
116
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 17, "igo.geo.importExportForm.exportButton"), " ");
|
|
117
|
-
i0.ɵɵadvance(2);
|
|
118
|
-
i0.ɵɵproperty("shown", i0.ɵɵpipeBind1(25, 19, ctx_r1.loading$));
|
|
119
|
-
} }
|
|
120
|
-
export class ContextImportExportComponent {
|
|
121
|
-
constructor(contextImportService, contextExportService, messageService, formBuilder, config, contextService) {
|
|
122
|
-
this.contextImportService = contextImportService;
|
|
123
|
-
this.contextExportService = contextExportService;
|
|
124
|
-
this.messageService = messageService;
|
|
125
|
-
this.formBuilder = formBuilder;
|
|
126
|
-
this.config = config;
|
|
127
|
-
this.contextService = contextService;
|
|
128
|
-
this.inputProj = 'EPSG:4326';
|
|
129
|
-
this.loading$ = new BehaviorSubject(false);
|
|
130
|
-
this.forceNaming = false;
|
|
131
|
-
this.activeImportExport = 'import';
|
|
132
|
-
this.buildForm();
|
|
133
|
-
}
|
|
134
|
-
ngOnInit() {
|
|
135
|
-
const configFileSizeMb = this.config.getConfig('importExport.clientSideFileSizeMaxMb');
|
|
136
|
-
this.clientSideFileSizeMax =
|
|
137
|
-
(configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);
|
|
138
|
-
this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2);
|
|
139
|
-
this.layerList = this.contextService.getContextLayers(this.map);
|
|
140
|
-
this.userControlledLayerList = this.layerList.filter(layer => layer.showInLayerList);
|
|
141
|
-
}
|
|
142
|
-
importFiles(files) {
|
|
143
|
-
this.loading$.next(true);
|
|
144
|
-
for (const file of files) {
|
|
145
|
-
this.contextImportService.import(file).pipe(take(1)).subscribe((context) => this.onFileImportSuccess(file, context), (error) => this.onFileImportError(file, error), () => {
|
|
146
|
-
this.loading$.next(false);
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
handleExportFormSubmit(contextOptions) {
|
|
151
|
-
this.loading$.next(true);
|
|
152
|
-
this.res = this.contextService.getContextFromLayers(this.map, contextOptions.layers, contextOptions.name);
|
|
153
|
-
this.res.imported = true;
|
|
154
|
-
this.contextExportService.export(this.res).pipe(take(1)).subscribe(() => { }, (error) => this.onFileExportError(error), () => {
|
|
155
|
-
this.onFileExportSuccess();
|
|
156
|
-
this.loading$.next(false);
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
buildForm() {
|
|
160
|
-
this.form = this.formBuilder.group({
|
|
161
|
-
layers: ['', [Validators.required]],
|
|
162
|
-
name: ['', [Validators.required]]
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
onFileImportSuccess(file, context) {
|
|
166
|
-
handleFileImportSuccess(file, context, this.messageService, this.contextService);
|
|
167
|
-
}
|
|
168
|
-
onFileImportError(file, error) {
|
|
169
|
-
this.loading$.next(false);
|
|
170
|
-
handleFileImportError(file, error, this.messageService, this.fileSizeMb);
|
|
171
|
-
}
|
|
172
|
-
onFileExportError(error) {
|
|
173
|
-
this.loading$.next(false);
|
|
174
|
-
handleFileExportError(error, this.messageService);
|
|
175
|
-
}
|
|
176
|
-
onFileExportSuccess() {
|
|
177
|
-
handleFileExportSuccess(this.messageService);
|
|
178
|
-
}
|
|
179
|
-
selectAll(e) {
|
|
180
|
-
if (e._selected) {
|
|
181
|
-
this.form.controls.layers.setValue(this.userControlledLayerList);
|
|
182
|
-
e._selected = true;
|
|
183
|
-
}
|
|
184
|
-
if (e._selected === false) {
|
|
185
|
-
this.form.controls.layers.setValue([]);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
onImportExportChange(event) {
|
|
189
|
-
this.activeImportExport = event.value;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
ContextImportExportComponent.ɵfac = function ContextImportExportComponent_Factory(t) { return new (t || ContextImportExportComponent)(i0.ɵɵdirectiveInject(i1.ContextImportService), i0.ɵɵdirectiveInject(i2.ContextExportService), i0.ɵɵdirectiveInject(i3.MessageService), i0.ɵɵdirectiveInject(i4.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.ConfigService), i0.ɵɵdirectiveInject(i5.ContextService)); };
|
|
193
|
-
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) { if (rf & 1) {
|
|
194
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "mat-button-toggle-group", 1);
|
|
195
|
-
i0.ɵɵlistener("change", function ContextImportExportComponent_Template_mat_button_toggle_group_change_1_listener($event) { return ctx.onImportExportChange($event); });
|
|
196
|
-
i0.ɵɵelementStart(2, "mat-button-toggle", 2);
|
|
197
|
-
i0.ɵɵtext(3);
|
|
198
|
-
i0.ɵɵpipe(4, "translate");
|
|
199
|
-
i0.ɵɵelementEnd();
|
|
200
|
-
i0.ɵɵelementStart(5, "mat-button-toggle", 2);
|
|
201
|
-
i0.ɵɵtext(6);
|
|
202
|
-
i0.ɵɵpipe(7, "translate");
|
|
203
|
-
i0.ɵɵelementEnd()()();
|
|
204
|
-
i0.ɵɵtemplate(8, ContextImportExportComponent_div_8_Template, 19, 20, "div", 3);
|
|
205
|
-
i0.ɵɵtemplate(9, ContextImportExportComponent_form_9_Template, 26, 21, "form", 4);
|
|
206
|
-
} if (rf & 2) {
|
|
207
|
-
i0.ɵɵadvance(1);
|
|
208
|
-
i0.ɵɵproperty("value", ctx.activeImportExport);
|
|
209
|
-
i0.ɵɵadvance(1);
|
|
210
|
-
i0.ɵɵproperty("value", "import");
|
|
211
|
-
i0.ɵɵadvance(1);
|
|
212
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 7, "igo.geo.importExportForm.importTabTitle"), " ");
|
|
213
|
-
i0.ɵɵadvance(2);
|
|
214
|
-
i0.ɵɵproperty("value", "export");
|
|
215
|
-
i0.ɵɵadvance(1);
|
|
216
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 9, "igo.geo.importExportForm.exportTabTitle"), " ");
|
|
217
|
-
i0.ɵɵadvance(2);
|
|
218
|
-
i0.ɵɵproperty("ngIf", ctx.activeImportExport === "import");
|
|
219
|
-
i0.ɵɵadvance(1);
|
|
220
|
-
i0.ɵɵproperty("ngIf", ctx.activeImportExport === "export");
|
|
221
|
-
} }, dependencies: [i4.ɵNgNoValidate, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.NgForm, i4.FormGroupDirective, i4.FormControlName, i6.NgForOf, i6.NgIf, i7.MatButton, i8.MatButtonToggleGroup, i8.MatButtonToggle, i9.MatDivider, i10.MatFormField, i10.MatLabel, i11.MatSelect, i12.MatOption, i13.MatInput, i14.SpinnerComponent, i6.AsyncPipe, i15.TranslatePipe], styles: [".import-export-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:50%}.igo-input-container[_ngcontent-%COMP%]{padding:10px}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}h4[_ngcontent-%COMP%]{padding:0 5px}.igo-form[_ngcontent-%COMP%]{padding:15px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center;padding-top:10px}igo-spinner[_ngcontent-%COMP%]{position:absolute;padding-left:10px}"] });
|
|
222
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextImportExportComponent, [{
|
|
223
|
-
type: Component,
|
|
224
|
-
args: [{ selector: 'igo-context-import-export', template: "<div class=\"import-export-toggle mat-typography\">\
|
|
225
|
-
}], function () { return [{ type: i1.ContextImportService }, { type: i2.ContextExportService }, { type: i3.MessageService }, { type: i4.UntypedFormBuilder }, { type: i3.ConfigService }, { type: i5.ContextService }]; }, { map: [{
|
|
226
|
-
type: Input
|
|
227
|
-
}] }); })();
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LWltcG9ydC1leHBvcnQvY29udGV4dC1pbXBvcnQtZXhwb3J0L2NvbnRleHQtaW1wb3J0LWV4cG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1pbXBvcnQtZXhwb3J0L2NvbnRleHQtaW1wb3J0LWV4cG9ydC9jb250ZXh0LWltcG9ydC1leHBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU10QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0R6RSwyQkFBNkMsY0FBQSxhQUFBLGdCQUFBO0lBR08sc0tBQVMsZUFBQSxXQUFpQixDQUFBLElBQUM7O0lBQy9ELFlBQ0o7O0lBQUEsaUJBQVM7SUFDVCxpQ0FBc0Q7O0lBQ3RELG9DQUtnRDtJQUQ1QyxxS0FBUywyQkFBa0IsSUFBSSxDQUFBLElBQUMsbUtBQ3RCLGVBQUEsdUNBQWdDLENBQUEsSUFEVjtJQUpwQyxpQkFLZ0QsRUFBQSxFQUFB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QUFTLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBSztRQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN4QyxDQUFDOzt3R0FuSFUsNEJBQTRCOytFQUE1Qiw0QkFBNEI7UUN6QnpDLDhCQUFpRCxpQ0FBQTtRQUd2QyxrSUFBVSxnQ0FBNEIsSUFBQztRQUN2Qyw0Q0FBc0M7UUFDcEMsWUFDRjs7UUFBQSxpQkFBb0I7UUFDcEIsNENBQXNDO1FBQ3BDLFlBQ0Y7O1FBQUEsaUJBQW9CLEVBQUEsRUFBQTtRQUk5QiwrRUFxQk07UUFHTixpRkE2Qk87O1FBaEVHLGVBQTRCO1FBQTVCLDhDQUE0QjtRQUVULGVBQWtCO1FBQWxCLGdDQUFrQjtRQUNuQyxlQUNGO1FBREUsZ0dBQ0Y7UUFDbUIsZUFBa0I7UUFBbEIsZ0NBQWtCO1FBQ25DLGVBQ0Y7UUFERSxnR0FDRjtRQUlKLGVBQXFDO1FBQXJDLDBEQUFxQztRQXdCbkIsZUFBcUM7UUFBckMsMERBQXFDOzt1RkRaaEQsNEJBQTRCO2NBTHhDLFNBQVM7MkJBQ0UsMkJBQTJCO2lPQWlCNUIsR0FBRztrQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBMYXllciwgVmVjdG9yTGF5ZXIgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgdHlwZSB7IElnb01hcCB9IGZyb20gJ0BpZ28yL2dlbyc7XHJcblxyXG5pbXBvcnQgeyBoYW5kbGVGaWxlRXhwb3J0RXJyb3IgfSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC1leHBvcnQudXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIGhhbmRsZUZpbGVJbXBvcnRTdWNjZXNzLFxyXG4gIGhhbmRsZUZpbGVJbXBvcnRFcnJvclxyXG59IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LWltcG9ydC51dGlscyc7XHJcbmltcG9ydCB7IGhhbmRsZUZpbGVFeHBvcnRTdWNjZXNzIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQtZXhwb3J0LnV0aWxzJztcclxuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZXh0LW1hbmFnZXIvc2hhcmVkL2NvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRleHRJbXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQtaW1wb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250ZXh0RXhwb3J0U2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LWV4cG9ydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGV0YWlsZWRDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1jb250ZXh0LWltcG9ydC1leHBvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LWltcG9ydC1leHBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnRleHQtaW1wb3J0LWV4cG9ydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250ZXh0SW1wb3J0RXhwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgbGF5ZXJzOiBWZWN0b3JMYXllcltdO1xyXG4gIHB1YmxpYyBpbnB1dFByb2o6IHN0cmluZyA9ICdFUFNHOjQzMjYnO1xyXG4gIHB1YmxpYyBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHB1YmxpYyBmb3JjZU5hbWluZyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsYXllckxpc3Q6IExheWVyW107XHJcbiAgcHVibGljIHVzZXJDb250cm9sbGVkTGF5ZXJMaXN0OiBMYXllcltdO1xyXG4gIHB1YmxpYyByZXM6IERldGFpbGVkQ29udGV4dDtcclxuICBwcml2YXRlIGNsaWVudFNpZGVGaWxlU2l6ZU1heDogbnVtYmVyO1xyXG4gIHB1YmxpYyBmaWxlU2l6ZU1iOiBudW1iZXI7XHJcbiAgcHVibGljIGFjdGl2ZUltcG9ydEV4cG9ydDogc3RyaW5nID0gJ2ltcG9ydCc7XHJcblxyXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29udGV4dEltcG9ydFNlcnZpY2U6IENvbnRleHRJbXBvcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250ZXh0RXhwb3J0U2VydmljZTogQ29udGV4dEV4cG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGNvbmZpZ0ZpbGVTaXplTWIgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoXHJcbiAgICAgICdpbXBvcnRFeHBvcnQuY2xpZW50U2lkZUZpbGVTaXplTWF4TWInXHJcbiAgICApO1xyXG4gICAgdGhpcy5jbGllbnRTaWRlRmlsZVNpemVNYXggPVxyXG4gICAgICAoY29uZmlnRmlsZVNpemVNYiA/IGNvbmZpZ0ZpbGVTaXplTWIgOiAzMCkgKiBNYXRoLnBvdygxMDI0LCAyKTtcclxuICAgIHRoaXMuZmlsZVNpemVNYiA9IHRoaXMuY2xpZW50U2lkZUZpbGVTaXplTWF4IC8gTWF0aC5wb3coMTAyNCwgMik7XHJcbiAgICB0aGlzLmxheWVyTGlzdCA9IHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0Q29udGV4dExheWVycyh0aGlzLm1hcCk7XHJcbiAgICB0aGlzLnVzZXJDb250cm9sbGVkTGF5ZXJMaXN0ID0gdGhpcy5sYXllckxpc3QuZmlsdGVyKGxheWVyID0+IGxheWVyLnNob3dJbkxheWVyTGlzdCk7XHJcbiAgfVxyXG5cclxuICBpbXBvcnRGaWxlcyhmaWxlczogRmlsZVtdKSB7XHJcbiAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XHJcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcclxuICAgICAgdGhpcy5jb250ZXh0SW1wb3J0U2VydmljZS5pbXBvcnQoZmlsZSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4gdGhpcy5vbkZpbGVJbXBvcnRTdWNjZXNzKGZpbGUsIGNvbnRleHQpLFxyXG4gICAgICAgIChlcnJvcjogRXJyb3IpID0+IHRoaXMub25GaWxlSW1wb3J0RXJyb3IoZmlsZSwgZXJyb3IpLFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXhwb3J0Rm9ybVN1Ym1pdChjb250ZXh0T3B0aW9ucykge1xyXG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5yZXMgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldENvbnRleHRGcm9tTGF5ZXJzKFxyXG4gICAgICB0aGlzLm1hcCxcclxuICAgICAgY29udGV4dE9wdGlvbnMubGF5ZXJzLFxyXG4gICAgICBjb250ZXh0T3B0aW9ucy5uYW1lXHJcbiAgICApO1xyXG4gICAgdGhpcy5yZXMuaW1wb3J0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5jb250ZXh0RXhwb3J0U2VydmljZS5leHBvcnQodGhpcy5yZXMpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKFxyXG4gICAgICAoKSA9PiB7fSxcclxuICAgICAgKGVycm9yOiBFcnJvcikgPT4gdGhpcy5vbkZpbGVFeHBvcnRFcnJvcihlcnJvciksXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLm9uRmlsZUV4cG9ydFN1Y2Nlc3MoKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEZvcm0oKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbGF5ZXJzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIG5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRmlsZUltcG9ydFN1Y2Nlc3MoZmlsZTogRmlsZSwgY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XHJcbiAgICBoYW5kbGVGaWxlSW1wb3J0U3VjY2VzcyhcclxuICAgICAgZmlsZSxcclxuICAgICAgY29udGV4dCxcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSxcclxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25GaWxlSW1wb3J0RXJyb3IoZmlsZTogRmlsZSwgZXJyb3I6IEVycm9yKSB7XHJcbiAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgaGFuZGxlRmlsZUltcG9ydEVycm9yKFxyXG4gICAgICBmaWxlLFxyXG4gICAgICBlcnJvcixcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSxcclxuICAgICAgdGhpcy5maWxlU2l6ZU1iXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkZpbGVFeHBvcnRFcnJvcihlcnJvcjogRXJyb3IpIHtcclxuICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICBoYW5kbGVGaWxlRXhwb3J0RXJyb3IoZXJyb3IsIHRoaXMubWVzc2FnZVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkZpbGVFeHBvcnRTdWNjZXNzKCkge1xyXG4gICAgaGFuZGxlRmlsZUV4cG9ydFN1Y2Nlc3ModGhpcy5tZXNzYWdlU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwoZSkge1xyXG4gICAgaWYgKGUuX3NlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5sYXllcnMuc2V0VmFsdWUodGhpcy51c2VyQ29udHJvbGxlZExheWVyTGlzdCk7XHJcbiAgICAgIGUuX3NlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChlLl9zZWxlY3RlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmxheWVycy5zZXRWYWx1ZShbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkltcG9ydEV4cG9ydENoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5hY3RpdmVJbXBvcnRFeHBvcnQgPSBldmVudC52YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImltcG9ydC1leHBvcnQtdG9nZ2xlIG1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcclxuICAgICAgICAgIFt2YWx1ZV09XCJhY3RpdmVJbXBvcnRFeHBvcnRcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkltcG9ydEV4cG9ydENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cIidpbXBvcnQnXCI+XHJcbiAgICAgICAgICAgIHt7J2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5pbXBvcnRUYWJUaXRsZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiJ2V4cG9ydCdcIj5cclxuICAgICAgICAgICAge3snaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLmV4cG9ydFRhYlRpdGxlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiYWN0aXZlSW1wb3J0RXhwb3J0ID09PSAnaW1wb3J0J1wiPlxyXG4gICAgPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgW2Rpc2FibGVkXT1cImxvYWRpbmckIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgIHt7J2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5pbXBvcnRCdXR0b24nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxpZ28tc3Bpbm5lciBbc2hvd25dPVwibG9hZGluZyQgfCBhc3luY1wiPjwvaWdvLXNwaW5uZXI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgI2ZpbGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQudmFsdWUgPSBudWxsXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaW1wb3J0RmlsZXMoJGV2ZW50LnRhcmdldC5maWxlcylcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cclxuICAgICAgICA8aDQ+e3snaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLmltcG9ydENsYXJpZmljYXRpb25zJyB8IHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgPGxpPnt7J2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5pbXBvcnRTaXplTWF4JyB8IHRyYW5zbGF0ZToge3NpemU6IGZpbGVTaXplTWJ9IH19PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG5cclxuPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiICpuZ0lmPVwiYWN0aXZlSW1wb3J0RXhwb3J0ID09PSAnZXhwb3J0J1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uY29udGV4dC5jb250ZXh0SW1wb3J0RXhwb3J0LmV4cG9ydC5leHBvcnRDb250ZXh0TmFtZScgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIG1hdElucHV0IFt2YWx1ZV09XCJcIj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uY29udGV4dC5jb250ZXh0SW1wb3J0RXhwb3J0LmV4cG9ydC5leHBvcnRQbGFjZUhvbGRlcicgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJsYXllcnNcIiBtdWx0aXBsZT5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIxXCIgKGNsaWNrKT1cInNlbGVjdEFsbChlKVwiICNlPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J2lnby5jb250ZXh0LmNvbnRleHRJbXBvcnRFeHBvcnQuZXhwb3J0LmV4cG9ydFNlbGVjdEFsbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGF5ZXIgb2YgdXNlckNvbnRyb2xsZWRMYXllckxpc3RcIiBbdmFsdWVdPVwibGF5ZXJcIj57e2xheWVyLnRpdGxlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8IChsb2FkaW5nJCB8IGFzeW5jKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVFeHBvcnRGb3JtU3VibWl0KGZvcm0udmFsdWUpXCI+XHJcbiAgICAgICAgICAgIHt7J2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5leHBvcnRCdXR0b24nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8aWdvLXNwaW5uZXIgW3Nob3duXT1cImxvYWRpbmckIHwgYXN5bmNcIj48L2lnby1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { take } from 'rxjs/operators';
|
|
5
|
+
import { handleFileExportError } from '../shared/context-export.utils';
|
|
6
|
+
import { handleFileImportSuccess, handleFileImportError } from '../shared/context-import.utils';
|
|
7
|
+
import { handleFileExportSuccess } from '../shared/context-export.utils';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../shared/context-import.service";
|
|
10
|
+
import * as i2 from "../shared/context-export.service";
|
|
11
|
+
import * as i3 from "@igo2/core";
|
|
12
|
+
import * as i4 from "@angular/forms";
|
|
13
|
+
import * as i5 from "../../context-manager/shared/context.service";
|
|
14
|
+
import * as i6 from "@angular/common";
|
|
15
|
+
import * as i7 from "@angular/material/button";
|
|
16
|
+
import * as i8 from "@angular/material/button-toggle";
|
|
17
|
+
import * as i9 from "@angular/material/divider";
|
|
18
|
+
import * as i10 from "@angular/material/form-field";
|
|
19
|
+
import * as i11 from "@angular/material/select";
|
|
20
|
+
import * as i12 from "@angular/material/core";
|
|
21
|
+
import * as i13 from "@angular/material/input";
|
|
22
|
+
import * as i14 from "@igo2/common";
|
|
23
|
+
import * as i15 from "@ngx-translate/core";
|
|
24
|
+
const _c0 = function (a0) { return { size: a0 }; };
|
|
25
|
+
function ContextImportExportComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
27
|
+
i0.ɵɵelementStart(0, "div")(1, "form", 5)(2, "div", 6)(3, "button", 7);
|
|
28
|
+
i0.ɵɵlistener("click", function ContextImportExportComponent_div_8_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r4); const _r2 = i0.ɵɵreference(10); return i0.ɵɵresetView(_r2.click()); });
|
|
29
|
+
i0.ɵɵpipe(4, "async");
|
|
30
|
+
i0.ɵɵtext(5);
|
|
31
|
+
i0.ɵɵpipe(6, "translate");
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
i0.ɵɵelement(7, "igo-spinner", 8);
|
|
34
|
+
i0.ɵɵpipe(8, "async");
|
|
35
|
+
i0.ɵɵelementStart(9, "input", 9, 10);
|
|
36
|
+
i0.ɵɵlistener("click", function ContextImportExportComponent_div_8_Template_input_click_9_listener() { i0.ɵɵrestoreView(_r4); const _r2 = i0.ɵɵreference(10); return i0.ɵɵresetView(_r2.value = null); })("change", function ContextImportExportComponent_div_8_Template_input_change_9_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.importFiles($event.target.files)); });
|
|
37
|
+
i0.ɵɵelementEnd()()();
|
|
38
|
+
i0.ɵɵelementStart(11, "section", 11)(12, "h4");
|
|
39
|
+
i0.ɵɵtext(13);
|
|
40
|
+
i0.ɵɵpipe(14, "translate");
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
i0.ɵɵelementStart(15, "ul")(16, "li");
|
|
43
|
+
i0.ɵɵtext(17);
|
|
44
|
+
i0.ɵɵpipe(18, "translate");
|
|
45
|
+
i0.ɵɵelementEnd()()()();
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
48
|
+
i0.ɵɵadvance(3);
|
|
49
|
+
i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(4, 7, ctx_r0.loading$));
|
|
50
|
+
i0.ɵɵadvance(2);
|
|
51
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 9, "igo.geo.importExportForm.importButton"), " ");
|
|
52
|
+
i0.ɵɵadvance(2);
|
|
53
|
+
i0.ɵɵproperty("shown", i0.ɵɵpipeBind1(8, 11, ctx_r0.loading$));
|
|
54
|
+
i0.ɵɵadvance(2);
|
|
55
|
+
i0.ɵɵstyleProp("display", "none");
|
|
56
|
+
i0.ɵɵadvance(4);
|
|
57
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 13, "igo.geo.importExportForm.importClarifications"));
|
|
58
|
+
i0.ɵɵadvance(4);
|
|
59
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(18, 15, "igo.geo.importExportForm.importSizeMax", i0.ɵɵpureFunction1(18, _c0, ctx_r0.fileSizeMb)));
|
|
60
|
+
} }
|
|
61
|
+
function ContextImportExportComponent_form_9_mat_option_18_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
+
i0.ɵɵelementStart(0, "mat-option", 2);
|
|
63
|
+
i0.ɵɵtext(1);
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const layer_r9 = ctx.$implicit;
|
|
67
|
+
i0.ɵɵproperty("value", layer_r9);
|
|
68
|
+
i0.ɵɵadvance(1);
|
|
69
|
+
i0.ɵɵtextInterpolate(layer_r9.title);
|
|
70
|
+
} }
|
|
71
|
+
function ContextImportExportComponent_form_9_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
73
|
+
i0.ɵɵelementStart(0, "form", 12)(1, "div", 13)(2, "mat-form-field", 14)(3, "mat-label");
|
|
74
|
+
i0.ɵɵtext(4);
|
|
75
|
+
i0.ɵɵpipe(5, "translate");
|
|
76
|
+
i0.ɵɵelementEnd();
|
|
77
|
+
i0.ɵɵelement(6, "input", 15);
|
|
78
|
+
i0.ɵɵelementEnd()();
|
|
79
|
+
i0.ɵɵelementStart(7, "div", 13)(8, "mat-form-field")(9, "mat-label");
|
|
80
|
+
i0.ɵɵtext(10);
|
|
81
|
+
i0.ɵɵpipe(11, "translate");
|
|
82
|
+
i0.ɵɵelementEnd();
|
|
83
|
+
i0.ɵɵelementStart(12, "mat-select", 16)(13, "mat-option", 17, 18);
|
|
84
|
+
i0.ɵɵlistener("click", function ContextImportExportComponent_form_9_Template_mat_option_click_13_listener() { i0.ɵɵrestoreView(_r11); const _r7 = i0.ɵɵreference(14); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.selectAll(_r7)); });
|
|
85
|
+
i0.ɵɵtext(15);
|
|
86
|
+
i0.ɵɵpipe(16, "translate");
|
|
87
|
+
i0.ɵɵelementEnd();
|
|
88
|
+
i0.ɵɵelement(17, "mat-divider");
|
|
89
|
+
i0.ɵɵtemplate(18, ContextImportExportComponent_form_9_mat_option_18_Template, 2, 2, "mat-option", 19);
|
|
90
|
+
i0.ɵɵelementEnd()()();
|
|
91
|
+
i0.ɵɵelementStart(19, "div", 6)(20, "button", 7);
|
|
92
|
+
i0.ɵɵlistener("click", function ContextImportExportComponent_form_9_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.handleExportFormSubmit(ctx_r12.form.value)); });
|
|
93
|
+
i0.ɵɵpipe(21, "async");
|
|
94
|
+
i0.ɵɵtext(22);
|
|
95
|
+
i0.ɵɵpipe(23, "translate");
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
i0.ɵɵelement(24, "igo-spinner", 8);
|
|
98
|
+
i0.ɵɵpipe(25, "async");
|
|
99
|
+
i0.ɵɵelementEnd()();
|
|
100
|
+
} if (rf & 2) {
|
|
101
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
102
|
+
i0.ɵɵproperty("formGroup", ctx_r1.form);
|
|
103
|
+
i0.ɵɵadvance(4);
|
|
104
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 9, "igo.context.contextImportExport.export.exportContextName"));
|
|
105
|
+
i0.ɵɵadvance(6);
|
|
106
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 11, "igo.context.contextImportExport.export.exportPlaceHolder"));
|
|
107
|
+
i0.ɵɵadvance(3);
|
|
108
|
+
i0.ɵɵproperty("value", 1);
|
|
109
|
+
i0.ɵɵadvance(2);
|
|
110
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(16, 13, "igo.context.contextImportExport.export.exportSelectAll"), " ");
|
|
111
|
+
i0.ɵɵadvance(3);
|
|
112
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.userControlledLayerList);
|
|
113
|
+
i0.ɵɵadvance(2);
|
|
114
|
+
i0.ɵɵproperty("disabled", !ctx_r1.form.valid || i0.ɵɵpipeBind1(21, 15, ctx_r1.loading$));
|
|
115
|
+
i0.ɵɵadvance(2);
|
|
116
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 17, "igo.geo.importExportForm.exportButton"), " ");
|
|
117
|
+
i0.ɵɵadvance(2);
|
|
118
|
+
i0.ɵɵproperty("shown", i0.ɵɵpipeBind1(25, 19, ctx_r1.loading$));
|
|
119
|
+
} }
|
|
120
|
+
export class ContextImportExportComponent {
|
|
121
|
+
constructor(contextImportService, contextExportService, messageService, formBuilder, config, contextService) {
|
|
122
|
+
this.contextImportService = contextImportService;
|
|
123
|
+
this.contextExportService = contextExportService;
|
|
124
|
+
this.messageService = messageService;
|
|
125
|
+
this.formBuilder = formBuilder;
|
|
126
|
+
this.config = config;
|
|
127
|
+
this.contextService = contextService;
|
|
128
|
+
this.inputProj = 'EPSG:4326';
|
|
129
|
+
this.loading$ = new BehaviorSubject(false);
|
|
130
|
+
this.forceNaming = false;
|
|
131
|
+
this.activeImportExport = 'import';
|
|
132
|
+
this.buildForm();
|
|
133
|
+
}
|
|
134
|
+
ngOnInit() {
|
|
135
|
+
const configFileSizeMb = this.config.getConfig('importExport.clientSideFileSizeMaxMb');
|
|
136
|
+
this.clientSideFileSizeMax =
|
|
137
|
+
(configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);
|
|
138
|
+
this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2);
|
|
139
|
+
this.layerList = this.contextService.getContextLayers(this.map);
|
|
140
|
+
this.userControlledLayerList = this.layerList.filter(layer => layer.showInLayerList);
|
|
141
|
+
}
|
|
142
|
+
importFiles(files) {
|
|
143
|
+
this.loading$.next(true);
|
|
144
|
+
for (const file of files) {
|
|
145
|
+
this.contextImportService.import(file).pipe(take(1)).subscribe((context) => this.onFileImportSuccess(file, context), (error) => this.onFileImportError(file, error), () => {
|
|
146
|
+
this.loading$.next(false);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
handleExportFormSubmit(contextOptions) {
|
|
151
|
+
this.loading$.next(true);
|
|
152
|
+
this.res = this.contextService.getContextFromLayers(this.map, contextOptions.layers, contextOptions.name);
|
|
153
|
+
this.res.imported = true;
|
|
154
|
+
this.contextExportService.export(this.res).pipe(take(1)).subscribe(() => { }, (error) => this.onFileExportError(error), () => {
|
|
155
|
+
this.onFileExportSuccess();
|
|
156
|
+
this.loading$.next(false);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
buildForm() {
|
|
160
|
+
this.form = this.formBuilder.group({
|
|
161
|
+
layers: ['', [Validators.required]],
|
|
162
|
+
name: ['', [Validators.required]]
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
onFileImportSuccess(file, context) {
|
|
166
|
+
handleFileImportSuccess(file, context, this.messageService, this.contextService);
|
|
167
|
+
}
|
|
168
|
+
onFileImportError(file, error) {
|
|
169
|
+
this.loading$.next(false);
|
|
170
|
+
handleFileImportError(file, error, this.messageService, this.fileSizeMb);
|
|
171
|
+
}
|
|
172
|
+
onFileExportError(error) {
|
|
173
|
+
this.loading$.next(false);
|
|
174
|
+
handleFileExportError(error, this.messageService);
|
|
175
|
+
}
|
|
176
|
+
onFileExportSuccess() {
|
|
177
|
+
handleFileExportSuccess(this.messageService);
|
|
178
|
+
}
|
|
179
|
+
selectAll(e) {
|
|
180
|
+
if (e._selected) {
|
|
181
|
+
this.form.controls.layers.setValue(this.userControlledLayerList);
|
|
182
|
+
e._selected = true;
|
|
183
|
+
}
|
|
184
|
+
if (e._selected === false) {
|
|
185
|
+
this.form.controls.layers.setValue([]);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
onImportExportChange(event) {
|
|
189
|
+
this.activeImportExport = event.value;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
ContextImportExportComponent.ɵfac = function ContextImportExportComponent_Factory(t) { return new (t || ContextImportExportComponent)(i0.ɵɵdirectiveInject(i1.ContextImportService), i0.ɵɵdirectiveInject(i2.ContextExportService), i0.ɵɵdirectiveInject(i3.MessageService), i0.ɵɵdirectiveInject(i4.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.ConfigService), i0.ɵɵdirectiveInject(i5.ContextService)); };
|
|
193
|
+
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) { if (rf & 1) {
|
|
194
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "mat-button-toggle-group", 1);
|
|
195
|
+
i0.ɵɵlistener("change", function ContextImportExportComponent_Template_mat_button_toggle_group_change_1_listener($event) { return ctx.onImportExportChange($event); });
|
|
196
|
+
i0.ɵɵelementStart(2, "mat-button-toggle", 2);
|
|
197
|
+
i0.ɵɵtext(3);
|
|
198
|
+
i0.ɵɵpipe(4, "translate");
|
|
199
|
+
i0.ɵɵelementEnd();
|
|
200
|
+
i0.ɵɵelementStart(5, "mat-button-toggle", 2);
|
|
201
|
+
i0.ɵɵtext(6);
|
|
202
|
+
i0.ɵɵpipe(7, "translate");
|
|
203
|
+
i0.ɵɵelementEnd()()();
|
|
204
|
+
i0.ɵɵtemplate(8, ContextImportExportComponent_div_8_Template, 19, 20, "div", 3);
|
|
205
|
+
i0.ɵɵtemplate(9, ContextImportExportComponent_form_9_Template, 26, 21, "form", 4);
|
|
206
|
+
} if (rf & 2) {
|
|
207
|
+
i0.ɵɵadvance(1);
|
|
208
|
+
i0.ɵɵproperty("value", ctx.activeImportExport);
|
|
209
|
+
i0.ɵɵadvance(1);
|
|
210
|
+
i0.ɵɵproperty("value", "import");
|
|
211
|
+
i0.ɵɵadvance(1);
|
|
212
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 7, "igo.geo.importExportForm.importTabTitle"), " ");
|
|
213
|
+
i0.ɵɵadvance(2);
|
|
214
|
+
i0.ɵɵproperty("value", "export");
|
|
215
|
+
i0.ɵɵadvance(1);
|
|
216
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 9, "igo.geo.importExportForm.exportTabTitle"), " ");
|
|
217
|
+
i0.ɵɵadvance(2);
|
|
218
|
+
i0.ɵɵproperty("ngIf", ctx.activeImportExport === "import");
|
|
219
|
+
i0.ɵɵadvance(1);
|
|
220
|
+
i0.ɵɵproperty("ngIf", ctx.activeImportExport === "export");
|
|
221
|
+
} }, dependencies: [i4.ɵNgNoValidate, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.NgForm, i4.FormGroupDirective, i4.FormControlName, i6.NgForOf, i6.NgIf, i7.MatButton, i8.MatButtonToggleGroup, i8.MatButtonToggle, i9.MatDivider, i10.MatFormField, i10.MatLabel, i11.MatSelect, i12.MatOption, i13.MatInput, i14.SpinnerComponent, i6.AsyncPipe, i15.TranslatePipe], styles: [".import-export-toggle[_ngcontent-%COMP%]{padding:10px;text-align:center}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{width:100%}.import-export-toggle[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{width:50%}.igo-input-container[_ngcontent-%COMP%]{padding:10px}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}h4[_ngcontent-%COMP%]{padding:0 5px}.igo-form[_ngcontent-%COMP%]{padding:15px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center;padding-top:10px}igo-spinner[_ngcontent-%COMP%]{position:absolute;padding-left:10px}"] });
|
|
222
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextImportExportComponent, [{
|
|
223
|
+
type: Component,
|
|
224
|
+
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"] }]
|
|
225
|
+
}], function () { return [{ type: i1.ContextImportService }, { type: i2.ContextExportService }, { type: i3.MessageService }, { type: i4.UntypedFormBuilder }, { type: i3.ConfigService }, { type: i5.ContextService }]; }, { map: [{
|
|
226
|
+
type: Input
|
|
227
|
+
}] }); })();
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LWltcG9ydC1leHBvcnQvY29udGV4dC1pbXBvcnQtZXhwb3J0L2NvbnRleHQtaW1wb3J0LWV4cG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1pbXBvcnQtZXhwb3J0L2NvbnRleHQtaW1wb3J0LWV4cG9ydC9jb250ZXh0LWltcG9ydC1leHBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU10QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0R6RSwyQkFBNkMsY0FBQSxhQUFBLGdCQUFBO0lBR08sc0tBQVMsZUFBQSxXQUFpQixDQUFBLElBQUM7O0lBQy9ELFlBQ0o7O0lBQUEsaUJBQVM7SUFDVCxpQ0FBc0Q7O0lBQ3RELG9DQUtnRDtJQUQ1QyxxS0FBUywyQkFBa0IsSUFBSSxDQUFBLElBQUMsbUtBQ3RCLGVBQUEsdUNBQWdDLENBQUEsSUFEVjtJQUpwQyxpQkFLZ0QsRUFBQSxFQUFB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QUFTLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBSztRQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN4QyxDQUFDOzt3R0FuSFUsNEJBQTRCOytFQUE1Qiw0QkFBNEI7UUN6QnpDLDhCQUFpRCxpQ0FBQTtRQUd2QyxrSUFBVSxnQ0FBNEIsSUFBQztRQUN2Qyw0Q0FBc0M7UUFDcEMsWUFDRjs7UUFBQSxpQkFBb0I7UUFDcEIsNENBQXNDO1FBQ3BDLFlBQ0Y7O1FBQUEsaUJBQW9CLEVBQUEsRUFBQTtRQUk5QiwrRUFxQk07UUFHTixpRkE2Qk87O1FBaEVHLGVBQTRCO1FBQTVCLDhDQUE0QjtRQUVULGVBQWtCO1FBQWxCLGdDQUFrQjtRQUNuQyxlQUNGO1FBREUsZ0dBQ0Y7UUFDbUIsZUFBa0I7UUFBbEIsZ0NBQWtCO1FBQ25DLGVBQ0Y7UUFERSxnR0FDRjtRQUlKLGVBQXFDO1FBQXJDLDBEQUFxQztRQXdCbkIsZUFBcUM7UUFBckMsMERBQXFDOzt1RkRaaEQsNEJBQTRCO2NBTHhDLFNBQVM7MkJBQ0UsMkJBQTJCO2lPQWlCNUIsR0FBRztrQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlLCBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBMYXllciwgVmVjdG9yTGF5ZXIgfSBmcm9tICdAaWdvMi9nZW8nO1xuaW1wb3J0IHR5cGUgeyBJZ29NYXAgfSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBoYW5kbGVGaWxlRXhwb3J0RXJyb3IgfSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC1leHBvcnQudXRpbHMnO1xuaW1wb3J0IHtcbiAgaGFuZGxlRmlsZUltcG9ydFN1Y2Nlc3MsXG4gIGhhbmRsZUZpbGVJbXBvcnRFcnJvclxufSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC1pbXBvcnQudXRpbHMnO1xuaW1wb3J0IHsgaGFuZGxlRmlsZUV4cG9ydFN1Y2Nlc3MgfSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC1leHBvcnQudXRpbHMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZXh0LW1hbmFnZXIvc2hhcmVkL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZXh0SW1wb3J0U2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LWltcG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRleHRFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV0YWlsZWRDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1jb250ZXh0LWltcG9ydC1leHBvcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGV4dC1pbXBvcnQtZXhwb3J0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dEltcG9ydEV4cG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBwdWJsaWMgbGF5ZXJzOiBWZWN0b3JMYXllcltdO1xuICBwdWJsaWMgaW5wdXRQcm9qOiBzdHJpbmcgPSAnRVBTRzo0MzI2JztcbiAgcHVibGljIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBmb3JjZU5hbWluZyA9IGZhbHNlO1xuICBwdWJsaWMgbGF5ZXJMaXN0OiBMYXllcltdO1xuICBwdWJsaWMgdXNlckNvbnRyb2xsZWRMYXllckxpc3Q6IExheWVyW107XG4gIHB1YmxpYyByZXM6IERldGFpbGVkQ29udGV4dDtcbiAgcHJpdmF0ZSBjbGllbnRTaWRlRmlsZVNpemVNYXg6IG51bWJlcjtcbiAgcHVibGljIGZpbGVTaXplTWI6IG51bWJlcjtcbiAgcHVibGljIGFjdGl2ZUltcG9ydEV4cG9ydDogc3RyaW5nID0gJ2ltcG9ydCc7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZXh0SW1wb3J0U2VydmljZTogQ29udGV4dEltcG9ydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0RXhwb3J0U2VydmljZTogQ29udGV4dEV4cG9ydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBjb25maWdGaWxlU2l6ZU1iID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKFxuICAgICAgJ2ltcG9ydEV4cG9ydC5jbGllbnRTaWRlRmlsZVNpemVNYXhNYidcbiAgICApO1xuICAgIHRoaXMuY2xpZW50U2lkZUZpbGVTaXplTWF4ID1cbiAgICAgIChjb25maWdGaWxlU2l6ZU1iID8gY29uZmlnRmlsZVNpemVNYiA6IDMwKSAqIE1hdGgucG93KDEwMjQsIDIpO1xuICAgIHRoaXMuZmlsZVNpemVNYiA9IHRoaXMuY2xpZW50U2lkZUZpbGVTaXplTWF4IC8gTWF0aC5wb3coMTAyNCwgMik7XG4gICAgdGhpcy5sYXllckxpc3QgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldENvbnRleHRMYXllcnModGhpcy5tYXApO1xuICAgIHRoaXMudXNlckNvbnRyb2xsZWRMYXllckxpc3QgPSB0aGlzLmxheWVyTGlzdC5maWx0ZXIobGF5ZXIgPT4gbGF5ZXIuc2hvd0luTGF5ZXJMaXN0KTtcbiAgfVxuXG4gIGltcG9ydEZpbGVzKGZpbGVzOiBGaWxlW10pIHtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICB0aGlzLmNvbnRleHRJbXBvcnRTZXJ2aWNlLmltcG9ydChmaWxlKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShcbiAgICAgICAgKGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4gdGhpcy5vbkZpbGVJbXBvcnRTdWNjZXNzKGZpbGUsIGNvbnRleHQpLFxuICAgICAgICAoZXJyb3I6IEVycm9yKSA9PiB0aGlzLm9uRmlsZUltcG9ydEVycm9yKGZpbGUsIGVycm9yKSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRXhwb3J0Rm9ybVN1Ym1pdChjb250ZXh0T3B0aW9ucykge1xuICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICB0aGlzLnJlcyA9IHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0Q29udGV4dEZyb21MYXllcnMoXG4gICAgICB0aGlzLm1hcCxcbiAgICAgIGNvbnRleHRPcHRpb25zLmxheWVycyxcbiAgICAgIGNvbnRleHRPcHRpb25zLm5hbWVcbiAgICApO1xuICAgIHRoaXMucmVzLmltcG9ydGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNvbnRleHRFeHBvcnRTZXJ2aWNlLmV4cG9ydCh0aGlzLnJlcykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7fSxcbiAgICAgIChlcnJvcjogRXJyb3IpID0+IHRoaXMub25GaWxlRXhwb3J0RXJyb3IoZXJyb3IpLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLm9uRmlsZUV4cG9ydFN1Y2Nlc3MoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBsYXllcnM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIG5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbGVJbXBvcnRTdWNjZXNzKGZpbGU6IEZpbGUsIGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xuICAgIGhhbmRsZUZpbGVJbXBvcnRTdWNjZXNzKFxuICAgICAgZmlsZSxcbiAgICAgIGNvbnRleHQsXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUltcG9ydEVycm9yKGZpbGU6IEZpbGUsIGVycm9yOiBFcnJvcikge1xuICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgaGFuZGxlRmlsZUltcG9ydEVycm9yKFxuICAgICAgZmlsZSxcbiAgICAgIGVycm9yLFxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSxcbiAgICAgIHRoaXMuZmlsZVNpemVNYlxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUV4cG9ydEVycm9yKGVycm9yOiBFcnJvcikge1xuICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgaGFuZGxlRmlsZUV4cG9ydEVycm9yKGVycm9yLCB0aGlzLm1lc3NhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlRXhwb3J0U3VjY2VzcygpIHtcbiAgICBoYW5kbGVGaWxlRXhwb3J0U3VjY2Vzcyh0aGlzLm1lc3NhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIHNlbGVjdEFsbChlKSB7XG4gICAgaWYgKGUuX3NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubGF5ZXJzLnNldFZhbHVlKHRoaXMudXNlckNvbnRyb2xsZWRMYXllckxpc3QpO1xuICAgICAgZS5fc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoZS5fc2VsZWN0ZWQgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubGF5ZXJzLnNldFZhbHVlKFtdKTtcbiAgICB9XG4gIH1cblxuICBvbkltcG9ydEV4cG9ydENoYW5nZShldmVudCkge1xuICAgIHRoaXMuYWN0aXZlSW1wb3J0RXhwb3J0ID0gZXZlbnQudmFsdWU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbXBvcnQtZXhwb3J0LXRvZ2dsZSBtYXQtdHlwb2dyYXBoeVwiPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxuICAgICAgICAgIFt2YWx1ZV09XCJhY3RpdmVJbXBvcnRFeHBvcnRcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25JbXBvcnRFeHBvcnRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiJ2ltcG9ydCdcIj5cbiAgICAgICAgICAgIHt7J2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5pbXBvcnRUYWJUaXRsZScgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCInZXhwb3J0J1wiPlxuICAgICAgICAgICAge3snaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLmV4cG9ydFRhYlRpdGxlJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJhY3RpdmVJbXBvcnRFeHBvcnQgPT09ICdpbXBvcnQnXCI+XG4gICAgPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIHt7J2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5pbXBvcnRCdXR0b24nIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGlnby1zcGlubmVyIFtzaG93bl09XCJsb2FkaW5nJCB8IGFzeW5jXCI+PC9pZ28tc3Bpbm5lcj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNmaWxlSW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsZUlucHV0LnZhbHVlID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJpbXBvcnRGaWxlcygkZXZlbnQudGFyZ2V0LmZpbGVzKVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgICAgICA8aDQ+e3snaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLmltcG9ydENsYXJpZmljYXRpb25zJyB8IHRyYW5zbGF0ZX19PC9oND5cbiAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICA8bGk+e3snaWdvLmdlby5pbXBvcnRFeHBvcnRGb3JtLmltcG9ydFNpemVNYXgnIHwgdHJhbnNsYXRlOiB7c2l6ZTogZmlsZVNpemVNYn0gfX08L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuXG48Zm9ybSBjbGFzcz1cImlnby1mb3JtXCIgKm5nSWY9XCJhY3RpdmVJbXBvcnRFeHBvcnQgPT09ICdleHBvcnQnXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7J2lnby5jb250ZXh0LmNvbnRleHRJbXBvcnRFeHBvcnQuZXhwb3J0LmV4cG9ydENvbnRleHROYW1lJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIG1hdElucHV0IFt2YWx1ZV09XCJcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7J2lnby5jb250ZXh0LmNvbnRleHRJbXBvcnRFeHBvcnQuZXhwb3J0LmV4cG9ydFBsYWNlSG9sZGVyJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJsYXllcnNcIiBtdWx0aXBsZT5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiMVwiIChjbGljayk9XCJzZWxlY3RBbGwoZSlcIiAjZT5cbiAgICAgICAgICAgICAgICAgICAge3snaWdvLmNvbnRleHQuY29udGV4dEltcG9ydEV4cG9ydC5leHBvcnQuZXhwb3J0U2VsZWN0QWxsJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBsYXllciBvZiB1c2VyQ29udHJvbGxlZExheWVyTGlzdFwiIFt2YWx1ZV09XCJsYXllclwiPnt7bGF5ZXIudGl0bGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCAobG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUV4cG9ydEZvcm1TdWJtaXQoZm9ybS52YWx1ZSlcIj5cbiAgICAgICAgICAgIHt7J2lnby5nZW8uaW1wb3J0RXhwb3J0Rm9ybS5leHBvcnRCdXR0b24nIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxpZ28tc3Bpbm5lciBbc2hvd25dPVwibG9hZGluZyQgfCBhc3luY1wiPjwvaWdvLXNwaW5uZXI+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|