@igo2/geo 1.13.0 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/esm2020/lib/datasource/shared/capabilities.service.mjs +22 -17
  2. package/esm2020/lib/draw/draw/draw-popup.component.mjs +5 -5
  3. package/esm2020/lib/draw/draw/draw.component.mjs +384 -273
  4. package/esm2020/lib/draw/draw/draw.module.mjs +19 -15
  5. package/esm2020/lib/draw/shared/draw-style.service.mjs +35 -18
  6. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  7. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +51 -24
  8. package/esm2020/lib/feature/shared/feature.utils.mjs +4 -5
  9. package/esm2020/lib/feature/shared/store.mjs +14 -2
  10. package/esm2020/lib/filter/filter.module.mjs +2 -2
  11. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
  12. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  13. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
  14. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +44 -39
  15. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +23 -10
  16. package/esm2020/lib/import-export/import-export/import-export.component.mjs +98 -68
  17. package/esm2020/lib/import-export/import-export.module.mjs +6 -3
  18. package/esm2020/lib/import-export/shared/import.utils.mjs +3 -2
  19. package/esm2020/lib/layer/index.mjs +2 -1
  20. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +28 -22
  21. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +47 -28
  22. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
  23. package/esm2020/lib/layer/layer.module.mjs +19 -7
  24. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  25. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +4 -1
  26. package/esm2020/lib/layer/style-modal/index.mjs +2 -0
  27. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +288 -0
  28. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +21 -18
  29. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  30. package/esm2020/lib/query/shared/query.service.mjs +4 -1
  31. package/esm2020/lib/search/search-bar/search-bar.component.mjs +16 -14
  32. package/esm2020/lib/search/shared/search.utils.mjs +13 -1
  33. package/esm2020/lib/workspace/shared/edition-workspace.mjs +8 -6
  34. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +9 -4
  35. package/fesm2015/igo2-geo.mjs +3784 -3199
  36. package/fesm2015/igo2-geo.mjs.map +1 -1
  37. package/fesm2020/igo2-geo.mjs +3726 -3169
  38. package/fesm2020/igo2-geo.mjs.map +1 -1
  39. package/lib/draw/draw/draw-popup.component.d.ts +0 -3
  40. package/lib/draw/draw/draw.component.d.ts +71 -50
  41. package/lib/draw/draw/draw.module.d.ts +13 -10
  42. package/lib/draw/shared/draw-style.service.d.ts +7 -1
  43. package/lib/draw/shared/draw.interface.d.ts +4 -0
  44. package/lib/feature/feature-details/feature-details.component.d.ts +4 -0
  45. package/lib/feature/shared/store.d.ts +1 -0
  46. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  47. package/lib/import-export/import-export.module.d.ts +1 -1
  48. package/lib/layer/index.d.ts +1 -0
  49. package/lib/layer/layer-list/layer-list.component.d.ts +3 -4
  50. package/lib/layer/layer.module.d.ts +20 -18
  51. package/lib/layer/shared/layers/layer.interface.d.ts +1 -0
  52. package/lib/layer/shared/layers/vector-layer.d.ts +2 -1
  53. package/lib/layer/style-modal/index.d.ts +1 -0
  54. package/lib/layer/style-modal/style-modal.component.d.ts +42 -0
  55. package/lib/map/geolocate-button/geolocate-button.component.d.ts +3 -1
  56. package/lib/map/shared/map.interface.d.ts +2 -1
  57. package/package.json +8 -8
@@ -4,21 +4,21 @@ import { OgcFilterWriter } from '../shared/ogc-filter';
4
4
  import { BehaviorSubject } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../shared/ogc-filter.service";
7
- function OgcFilterableItemComponent_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
7
+ function OgcFilterableItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
8
8
  const _r8 = i0.ɵɵgetCurrentView();
9
- i0.ɵɵelementStart(0, "mat-icon", 8);
10
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_mat_icon_1_Template_mat_icon_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.toggleFiltersCollapsed()); });
9
+ i0.ɵɵelementStart(0, "mat-icon", 9);
10
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_mat_icon_2_Template_mat_icon_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.toggleFiltersCollapsed()); });
11
11
  i0.ɵɵelementEnd();
12
12
  } if (rf & 2) {
13
13
  const ctx_r0 = i0.ɵɵnextContext();
14
- const _r4 = i0.ɵɵreference(6);
14
+ const _r4 = i0.ɵɵreference(7);
15
15
  i0.ɵɵproperty("target", _r4)("collapsed", ctx_r0.filtersCollapsed);
16
16
  } }
17
17
  const _c0 = function (a0) { return { "cursor": a0 }; };
18
- function OgcFilterableItemComponent_h4_2_Template(rf, ctx) { if (rf & 1) {
18
+ function OgcFilterableItemComponent_h4_3_Template(rf, ctx) { if (rf & 1) {
19
19
  const _r10 = i0.ɵɵgetCurrentView();
20
- i0.ɵɵelementStart(0, "h4", 9);
21
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_h4_2_Template_h4_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.toggleLegendOnClick()); });
20
+ i0.ɵɵelementStart(0, "h4", 10);
21
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_h4_3_Template_h4_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.toggleLegendOnClick()); });
22
22
  i0.ɵɵtext(1);
23
23
  i0.ɵɵelementEnd();
24
24
  } if (rf & 2) {
@@ -27,25 +27,25 @@ function OgcFilterableItemComponent_h4_2_Template(rf, ctx) { if (rf & 1) {
27
27
  i0.ɵɵadvance(1);
28
28
  i0.ɵɵtextInterpolate(ctx_r1.layer.title);
29
29
  } }
30
- function OgcFilterableItemComponent_button_3_Template(rf, ctx) { if (rf & 1) {
30
+ function OgcFilterableItemComponent_button_4_Template(rf, ctx) { if (rf & 1) {
31
31
  const _r12 = i0.ɵɵgetCurrentView();
32
- i0.ɵɵelementStart(0, "button", 10);
33
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.addFilterToSequence()); });
32
+ i0.ɵɵelementStart(0, "button", 11);
33
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.addFilterToSequence()); });
34
34
  i0.ɵɵpipe(1, "translate");
35
- i0.ɵɵelement(2, "mat-icon", 11);
35
+ i0.ɵɵelement(2, "mat-icon", 12);
36
36
  i0.ɵɵelementEnd();
37
37
  } if (rf & 2) {
38
38
  const ctx_r2 = i0.ɵɵnextContext();
39
39
  i0.ɵɵproperty("disabled", ctx_r2.addFilterDisabled())("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.filter.addFilter"))("color", ctx_r2.color);
40
40
  } }
41
41
  const _c1 = function (a0) { return { disabled: a0 }; };
42
- function OgcFilterableItemComponent_button_4_Template(rf, ctx) { if (rf & 1) {
42
+ function OgcFilterableItemComponent_button_5_Template(rf, ctx) { if (rf & 1) {
43
43
  const _r14 = i0.ɵɵgetCurrentView();
44
- i0.ɵɵelementStart(0, "button", 12);
45
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.layer.visible = !ctx_r13.layer.visible); });
44
+ i0.ɵɵelementStart(0, "button", 13);
45
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.layer.visible = !ctx_r13.layer.visible); });
46
46
  i0.ɵɵpipe(1, "translate");
47
47
  i0.ɵɵpipe(2, "translate");
48
- i0.ɵɵelement(3, "mat-icon", 13);
48
+ i0.ɵɵelement(3, "mat-icon", 14);
49
49
  i0.ɵɵpipe(4, "async");
50
50
  i0.ɵɵelementEnd();
51
51
  } if (rf & 2) {
@@ -54,15 +54,15 @@ function OgcFilterableItemComponent_button_4_Template(rf, ctx) { if (rf & 1) {
54
54
  i0.ɵɵadvance(3);
55
55
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1, i0.ɵɵpipeBind1(4, 8, ctx_r3.inResolutionRange$) === false))("svgIcon", ctx_r3.layer.visible ? "eye" : "eye-off");
56
56
  } }
57
- function OgcFilterableItemComponent_div_7_igo_layer_legend_2_Template(rf, ctx) { if (rf & 1) {
58
- i0.ɵɵelement(0, "igo-layer-legend", 17);
57
+ function OgcFilterableItemComponent_div_8_igo_layer_legend_2_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵelement(0, "igo-layer-legend", 18);
59
59
  } if (rf & 2) {
60
60
  const ctx_r16 = i0.ɵɵnextContext(2);
61
61
  i0.ɵɵproperty("layer", ctx_r16.layer);
62
62
  } }
63
- function OgcFilterableItemComponent_div_7_Template(rf, ctx) { if (rf & 1) {
64
- i0.ɵɵelementStart(0, "div", 14, 15);
65
- i0.ɵɵtemplate(2, OgcFilterableItemComponent_div_7_igo_layer_legend_2_Template, 1, 1, "igo-layer-legend", 16);
63
+ function OgcFilterableItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {
64
+ i0.ɵɵelementStart(0, "div", 15, 16);
65
+ i0.ɵɵtemplate(2, OgcFilterableItemComponent_div_8_igo_layer_legend_2_Template, 1, 1, "igo-layer-legend", 17);
66
66
  i0.ɵɵpipe(3, "async");
67
67
  i0.ɵɵelementEnd();
68
68
  } if (rf & 2) {
@@ -70,12 +70,12 @@ function OgcFilterableItemComponent_div_7_Template(rf, ctx) { if (rf & 1) {
70
70
  i0.ɵɵadvance(2);
71
71
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 1, ctx_r5.showLegend$));
72
72
  } }
73
- function OgcFilterableItemComponent_section_9_Template(rf, ctx) { if (rf & 1) {
73
+ function OgcFilterableItemComponent_section_10_Template(rf, ctx) { if (rf & 1) {
74
74
  const _r18 = i0.ɵɵgetCurrentView();
75
- i0.ɵɵelementStart(0, "section", 18);
75
+ i0.ɵɵelementStart(0, "section", 19);
76
76
  i0.ɵɵelement(1, "mat-divider");
77
- i0.ɵɵelementStart(2, "mat-checkbox", 19);
78
- i0.ɵɵlistener("change", function OgcFilterableItemComponent_section_9_Template_mat_checkbox_change_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.changeOgcFilterType($event)); })("ngModelChange", function OgcFilterableItemComponent_section_9_Template_mat_checkbox_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.datasource.options.ogcFilters.advancedOgcFilters = $event); });
77
+ i0.ɵɵelementStart(2, "mat-checkbox", 20);
78
+ i0.ɵɵlistener("change", function OgcFilterableItemComponent_section_10_Template_mat_checkbox_change_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.changeOgcFilterType($event)); })("ngModelChange", function OgcFilterableItemComponent_section_10_Template_mat_checkbox_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.datasource.options.ogcFilters.advancedOgcFilters = $event); });
79
79
  i0.ɵɵtext(3);
80
80
  i0.ɵɵpipe(4, "translate");
81
81
  i0.ɵɵelementEnd()();
@@ -86,6 +86,7 @@ function OgcFilterableItemComponent_section_9_Template(rf, ctx) { if (rf & 1) {
86
86
  i0.ɵɵadvance(1);
87
87
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 2, "igo.geo.filter.advancedOgcFilters"), " ");
88
88
  } }
89
+ const _c2 = function (a0) { return { "separate-item": a0 }; };
89
90
  export class OgcFilterableItemComponent {
90
91
  constructor(ogcFilterService) {
91
92
  this.ogcFilterService = ogcFilterService;
@@ -107,6 +108,9 @@ export class OgcFilterableItemComponent {
107
108
  return this.layer.dataSource;
108
109
  }
109
110
  ngOnInit() {
111
+ if (this.layer.visible) {
112
+ this.filtersCollapsed = false;
113
+ }
110
114
  const ogcFilters = this.datasource.options.ogcFilters;
111
115
  if ((ogcFilters.pushButtons && ogcFilters.pushButtons.bundles.length > 0) ||
112
116
  (ogcFilters.checkboxes && ogcFilters.checkboxes.bundles.length > 0) ||
@@ -261,20 +265,21 @@ export class OgcFilterableItemComponent {
261
265
  }
262
266
  }
263
267
  OgcFilterableItemComponent.ɵfac = function OgcFilterableItemComponent_Factory(t) { return new (t || OgcFilterableItemComponent)(i0.ɵɵdirectiveInject(i1.OGCFilterService)); };
264
- OgcFilterableItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterableItemComponent, selectors: [["igo-ogc-filterable-item"]], inputs: { layer: "layer", map: "map", header: "header" }, decls: 10, vars: 9, consts: [["class", "igo-chevron", "mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 3, "target", "collapsed", "click", 4, "ngIf"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click", 4, "ngIf"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["ogcFilters", ""], ["class", "igo-layer-legend-container", 4, "ngIf"], [3, "datasource", "map", "refreshFilters"], ["class", "mat-typography advancedOgcFilters", 4, "ngIf"], ["mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 1, "igo-chevron", 3, "target", "collapsed", "click"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click"], ["svgIcon", "plus"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click"], [3, "ngClass", "svgIcon"], [1, "igo-layer-legend-container"], ["legend", ""], [3, "layer", 4, "ngIf"], [3, "layer"], [1, "mat-typography", "advancedOgcFilters"], ["labelPosition", "before", 3, "ngModel", "change", "ngModelChange"]], template: function OgcFilterableItemComponent_Template(rf, ctx) { if (rf & 1) {
265
- i0.ɵɵelementStart(0, "mat-list-item");
266
- i0.ɵɵtemplate(1, OgcFilterableItemComponent_mat_icon_1_Template, 1, 2, "mat-icon", 0);
267
- i0.ɵɵtemplate(2, OgcFilterableItemComponent_h4_2_Template, 2, 5, "h4", 1);
268
- i0.ɵɵtemplate(3, OgcFilterableItemComponent_button_3_Template, 3, 5, "button", 2);
269
- i0.ɵɵtemplate(4, OgcFilterableItemComponent_button_4_Template, 5, 12, "button", 3);
270
- i0.ɵɵelementEnd();
271
- i0.ɵɵelementStart(5, "div", null, 4);
272
- i0.ɵɵtemplate(7, OgcFilterableItemComponent_div_7_Template, 4, 3, "div", 5);
273
- i0.ɵɵelement(8, "igo-ogc-filterable-form", 6);
274
- i0.ɵɵtemplate(9, OgcFilterableItemComponent_section_9_Template, 5, 4, "section", 7);
268
+ OgcFilterableItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterableItemComponent, selectors: [["igo-ogc-filterable-item"]], inputs: { layer: "layer", map: "map", header: "header" }, decls: 11, vars: 12, consts: [[3, "ngClass"], ["class", "igo-chevron", "mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 3, "target", "collapsed", "click", 4, "ngIf"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click", 4, "ngIf"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["ogcFilters", ""], ["class", "igo-layer-legend-container", 4, "ngIf"], [3, "datasource", "map", "refreshFilters"], ["class", "mat-typography advancedOgcFilters", 4, "ngIf"], ["mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 1, "igo-chevron", 3, "target", "collapsed", "click"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click"], ["svgIcon", "plus"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click"], [3, "ngClass", "svgIcon"], [1, "igo-layer-legend-container"], ["legend", ""], [3, "layer", 4, "ngIf"], [3, "layer"], [1, "mat-typography", "advancedOgcFilters"], ["labelPosition", "before", 3, "ngModel", "change", "ngModelChange"]], template: function OgcFilterableItemComponent_Template(rf, ctx) { if (rf & 1) {
269
+ i0.ɵɵelementStart(0, "div", 0)(1, "mat-list-item");
270
+ i0.ɵɵtemplate(2, OgcFilterableItemComponent_mat_icon_2_Template, 1, 2, "mat-icon", 1);
271
+ i0.ɵɵtemplate(3, OgcFilterableItemComponent_h4_3_Template, 2, 5, "h4", 2);
272
+ i0.ɵɵtemplate(4, OgcFilterableItemComponent_button_4_Template, 3, 5, "button", 3);
273
+ i0.ɵɵtemplate(5, OgcFilterableItemComponent_button_5_Template, 5, 12, "button", 4);
275
274
  i0.ɵɵelementEnd();
275
+ i0.ɵɵelementStart(6, "div", null, 5);
276
+ i0.ɵɵtemplate(8, OgcFilterableItemComponent_div_8_Template, 4, 3, "div", 6);
277
+ i0.ɵɵelement(9, "igo-ogc-filterable-form", 7);
278
+ i0.ɵɵtemplate(10, OgcFilterableItemComponent_section_10_Template, 5, 4, "section", 8);
279
+ i0.ɵɵelementEnd()();
276
280
  } if (rf & 2) {
277
- i0.ɵɵadvance(1);
281
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2, ctx.header === true));
282
+ i0.ɵɵadvance(2);
278
283
  i0.ɵɵproperty("ngIf", ctx.header);
279
284
  i0.ɵɵadvance(1);
280
285
  i0.ɵɵproperty("ngIf", ctx.header);
@@ -288,10 +293,10 @@ OgcFilterableItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
288
293
  i0.ɵɵproperty("datasource", ctx.datasource)("map", ctx.map)("refreshFilters", ctx.refreshFunc);
289
294
  i0.ɵɵadvance(1);
290
295
  i0.ɵɵproperty("ngIf", ctx.hasSelector && ctx.filtersAreEditable);
291
- } }, styles: ["[_nghost-%COMP%]{overflow:hidden}.advancedOgcFilters[_ngcontent-%COMP%]{text-align:center;width:100%;display:inline-block}.mat-list-item[_ngcontent-%COMP%]{height:auto}.igo-layer-legend-container[_ngcontent-%COMP%]{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}"] });
296
+ } }, styles: ["[_nghost-%COMP%]{overflow:hidden}.advancedOgcFilters[_ngcontent-%COMP%]{text-align:center;width:100%;display:inline-block}.mat-list-item[_ngcontent-%COMP%]{height:auto}.igo-layer-legend-container[_ngcontent-%COMP%]{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}.separate-item[_ngcontent-%COMP%]{border-bottom:4px solid darkgrey}"] });
292
297
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterableItemComponent, [{
293
298
  type: Component,
294
- args: [{ selector: 'igo-ogc-filterable-item', template: "<mat-list-item>\n\n <mat-icon\n *ngIf=\"header\"\n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse [target]=\"ogcFilters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n svgIcon=\"chevron-up\">\n </mat-icon>\n <h4 (click)=\"toggleLegendOnClick()\" *ngIf=\"header\" [ngStyle]=\"{'cursor': filtersCollapsed ? 'default' : 'pointer'}\" matLine [matTooltip]=\"layer.title\" matTooltipShowDelay=\"500\">{{layer.title}}</h4>\n <button *ngIf=\"isAdvancedOgcFilters() && filtersAreEditable\" [disabled]=\"addFilterDisabled()\" mat-icon-button tooltip-position=\"below\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.addFilter' | translate\" [color]=\"color\" (click)=\"addFilterToSequence()\">\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n <button *ngIf=\"header\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"layer.visible ?\n ('igo.geo.layer.hideLayer' | translate) :\n ('igo.geo.layer.showLayer' | translate)\"\n (click)=\"layer.visible = !layer.visible\">\n <mat-icon\n [ngClass]=\"{disabled: (inResolutionRange$ | async)===false}\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\">\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #ogcFilters>\n <div *ngIf=\"header\" #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-ogc-filterable-form [datasource]=\"datasource\" [map]=\"map\" [refreshFilters]=\"refreshFunc\">\n </igo-ogc-filterable-form>\n\n <section *ngIf=\"hasSelector && filtersAreEditable\" class=\"mat-typography advancedOgcFilters\">\n <mat-divider></mat-divider>\n <mat-checkbox labelPosition='before' (change)=\"changeOgcFilterType($event)\"\n [(ngModel)]=\"datasource.options.ogcFilters.advancedOgcFilters\">\n {{'igo.geo.filter.advancedOgcFilters' | translate}}\n </mat-checkbox>\n </section>\n</div>", styles: [":host{overflow:hidden}.advancedOgcFilters{text-align:center;width:100%;display:inline-block}.mat-list-item{height:auto}.igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled{color:#00000061}\n"] }]
299
+ args: [{ selector: 'igo-ogc-filterable-item', template: "<div [ngClass]=\"{'separate-item' : header === true}\" >\n <mat-list-item>\n <mat-icon\n *ngIf=\"header\"\n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse [target]=\"ogcFilters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n svgIcon=\"chevron-up\">\n </mat-icon>\n <h4 (click)=\"toggleLegendOnClick()\" *ngIf=\"header\" [ngStyle]=\"{'cursor': filtersCollapsed ? 'default' : 'pointer'}\" matLine [matTooltip]=\"layer.title\" matTooltipShowDelay=\"500\">{{layer.title}}</h4>\n <button *ngIf=\"isAdvancedOgcFilters() && filtersAreEditable\" [disabled]=\"addFilterDisabled()\" mat-icon-button tooltip-position=\"below\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.addFilter' | translate\" [color]=\"color\" (click)=\"addFilterToSequence()\">\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n <button *ngIf=\"header\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"layer.visible ?\n ('igo.geo.layer.hideLayer' | translate) :\n ('igo.geo.layer.showLayer' | translate)\"\n (click)=\"layer.visible = !layer.visible\">\n <mat-icon\n [ngClass]=\"{disabled: (inResolutionRange$ | async)===false}\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\">\n </mat-icon>\n </button>\n </mat-list-item>\n\n <div #ogcFilters>\n <div *ngIf=\"header\" #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-ogc-filterable-form [datasource]=\"datasource\" [map]=\"map\" [refreshFilters]=\"refreshFunc\">\n </igo-ogc-filterable-form>\n\n <section *ngIf=\"hasSelector && filtersAreEditable\" class=\"mat-typography advancedOgcFilters\">\n <mat-divider></mat-divider>\n <mat-checkbox labelPosition='before' (change)=\"changeOgcFilterType($event)\"\n [(ngModel)]=\"datasource.options.ogcFilters.advancedOgcFilters\">\n {{'igo.geo.filter.advancedOgcFilters' | translate}}\n </mat-checkbox>\n </section>\n </div>\n</div>", styles: [":host{overflow:hidden}.advancedOgcFilters{text-align:center;width:100%;display:inline-block}.mat-list-item{height:auto}.igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled{color:#00000061}.separate-item{border-bottom:4px solid darkgrey}\n"] }]
295
300
  }], function () { return [{ type: i1.OGCFilterService }]; }, { layer: [{
296
301
  type: Input
297
302
  }], map: [{
@@ -299,4 +304,4 @@ OgcFilterableItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
299
304
  }], header: [{
300
305
  type: Input
301
306
  }] }); })();
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBU3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7SUNibkQsbUNBT3VCO0lBRHJCLDhLQUFTLGVBQUEsK0JBQXdCLENBQUEsSUFBQztJQUVwQyxpQkFBVzs7OztJQUpHLDRCQUFxQixzQ0FBQTs7Ozs7SUFLbkMsNkJBQWlMO0lBQTdLLG1LQUFTLGVBQUEsNEJBQXFCLENBQUEsSUFBQztJQUE4SSxZQUFlO0lBQUEsaUJBQUs7OztJQUFsSixxR0FBZ0Usa0NBQUE7SUFBOEQsZUFBZTtJQUFmLHdDQUFlOzs7O0lBQzlMLGtDQUN3RztJQUFoQyw0S0FBUyxlQUFBLDZCQUFxQixDQUFBLElBQUM7O0lBQ3JHLCtCQUFvQztJQUN0QyxpQkFBUzs7O0lBSG9ELHFEQUFnQyxnRUFBQSx1QkFBQTs7Ozs7SUFJN0Ysa0NBUzJDO0lBQXpDLDRLQUFTLDhEQUE4QixJQUFDOzs7SUFDeEMsK0JBR1c7O0lBQ2IsaUJBQVM7OztJQVpQLG9FQUErQyx3SUFBQTtJQVM3QyxlQUE0RDtJQUE1RCxn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QzBCO1FBRTFCLG1GQU1VO1FBQ1osaUJBQU07O1FBN0NELGVBQVk7UUFBWixpQ0FBWTtRQVFzQixlQUFZO1FBQVosaUNBQVk7UUFDdEMsZUFBa0Q7UUFBbEQsMkVBQWtEO1FBSWxELGVBQVk7UUFBWixpQ0FBWTtRQWtCZixlQUFZO1FBQVosaUNBQVk7UUFJSyxlQUF5QjtRQUF6QiwyQ0FBeUIsZ0JBQUEsbUNBQUE7UUFHeEMsZUFBdUM7UUFBdkMsZ0VBQXVDOzt1RkRuQnRDLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHlCQUF5QjttRUFpQjFCLEtBQUs7a0JBQWIsS0FBSztZQUVHLEdBQUc7a0JBQVgsS0FBSztZQUVHLE1BQU07a0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZU9wdGlvbnNQYXJhbXMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2djRmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuZW51bSc7XG5cbmltcG9ydCB7XG4gIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlLFxuICBPZ2NGaWx0ZXJzT3B0aW9ucyxcbiAgT2djSW50ZXJmYWNlRmlsdGVyT3B0aW9uc1xufSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT0dDRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwJztcbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyYWJsZS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcbiAgcHJpdmF0ZSBsYXN0UnVuT2djRmlsdGVyO1xuICBwcml2YXRlIGRlZmF1bHRMb2dpY2FsUGFyZW50ID0gT2djRmlsdGVyT3BlcmF0b3IuQW5kO1xuICBwdWJsaWMgaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IGZhbHNlO1xuICBwdWJsaWMgZmlsdGVyc0FyZUVkaXRhYmxlID0gdHJ1ZTtcbiAgcHVibGljIGZpbHRlcnNDb2xsYXBzZWQgPSB0cnVlO1xuICBwdWJsaWMgaGFzU2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0xlZ2VuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBpblJlc29sdXRpb25SYW5nZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2djRmlsdGVyV3JpdGVyO1xuXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICBASW5wdXQoKSBoZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGdldCByZWZyZXNoRnVuYygpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoRmlsdGVycy5iaW5kKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGRhdGFzb3VyY2UoKTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2U7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9nY0ZpbHRlclNlcnZpY2U6IE9HQ0ZpbHRlclNlcnZpY2UpIHtcbiAgICB0aGlzLm9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xuICAgIGlmIChcbiAgICAgIChvZ2NGaWx0ZXJzLnB1c2hCdXR0b25zICYmIG9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMuY2hlY2tib3hlcyAmJiBvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMucmFkaW9CdXR0b25zICYmIG9nY0ZpbHRlcnMucmFkaW9CdXR0b25zLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLnNlbGVjdCAmJiBvZ2NGaWx0ZXJzLnNlbGVjdC5idW5kbGVzLmxlbmd0aCA+IDApIHx8XG4gICAgICAob2djRmlsdGVycy5hdXRvY29tcGxldGUgJiYgb2djRmlsdGVycy5hdXRvY29tcGxldGUuYnVuZGxlcy5sZW5ndGggPiAwKSkge1xuICAgICAgaWYgKG9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgb2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGFzU2VsZWN0b3IgPSB0cnVlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMudHlwZSkge1xuICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dNU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dGU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9nY0ZpbHRlcnMpIHtcbiAgICAgIGlmIChvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMpIHtcbiAgICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gSlNPTi5wYXJzZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKGYgPT4gZi53a3RfZ2VvbWV0cnkpLmxlbmd0aCA+PSAxXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5maWx0ZXJzQXJlRWRpdGFibGUgPSBvZ2NGaWx0ZXJzLmVkaXRhYmxlXG4gICAgICAgID8gb2djRmlsdGVycy5lZGl0YWJsZVxuICAgICAgICA6IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdXRpb24kID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7XG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dCh0aGlzLmxheWVyLmlzSW5SZXNvbHV0aW9uc1JhbmdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBhZGRGaWx0ZXJUb1NlcXVlbmNlKCkge1xuICAgIHRoaXMuZmlsdGVyc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGludGVyZmFjZU9nY0ZpbHRlcnM6IE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnNbXSA9IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzO1xuICAgIGNvbnN0IGFyciA9IGludGVyZmFjZU9nY0ZpbHRlcnMgfHwgW107XG4gICAgY29uc3QgbGFzdExldmVsID0gYXJyLmxlbmd0aCA9PT0gMCA/IDAgOiBhcnJbYXJyLmxlbmd0aCAtIDFdLmxldmVsO1xuICAgIGxldCBmaXJzdEZpZWxkTmFtZSA9ICcnO1xuICAgIGNvbnN0IGluY2x1ZGVkRmllbGRzID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLmZpbHRlcihmID0+ICFmLmV4Y2x1ZGVGcm9tT2djRmlsdGVycyk7XG4gICAgaWYgKGluY2x1ZGVkRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZpcnN0RmllbGROYW1lID1cbiAgICAgICAgaW5jbHVkZWRGaWVsZHNbMF0ubmFtZSA9PT0gdW5kZWZpbmVkID8gJycgOiBpbmNsdWRlZEZpZWxkc1swXS5uYW1lO1xuICAgIH1cbiAgICBsZXQgZmllbGROYW1lR2VvbWV0cnk7XG4gICAgY29uc3QgZGF0YXNvdXJjZU9wdGlvbnMgPSB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5vcHRpb25zIGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zUGFyYW1zO1xuICAgIGlmIChkYXRhc291cmNlT3B0aW9ucy5maWVsZE5hbWVHZW9tZXRyeSkge1xuICAgICAgZmllbGROYW1lR2VvbWV0cnkgPSBkYXRhc291cmNlT3B0aW9ucy5maWVsZE5hbWVHZW9tZXRyeTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTICYmXG4gICAgICAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnlcbiAgICApIHtcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID0gKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTXG4gICAgICAgIC5maWVsZE5hbWVHZW9tZXRyeTtcbiAgICB9XG4gICAgY29uc3QgYWxsb3dlZE9wZXJhdG9ycyA9IHRoaXMub2djRmlsdGVyV3JpdGVyLmNvbXB1dGVBbGxvd2VkT3BlcmF0b3JzKFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLFxuICAgICAgZmlyc3RGaWVsZE5hbWUsXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFsbG93ZWRPcGVyYXRvcnNUeXBlKTtcbiAgICBjb25zdCBmaXJzdE9wZXJhdG9yTmFtZSA9IE9iamVjdC5rZXlzKGFsbG93ZWRPcGVyYXRvcnMpWzBdO1xuXG4gICAgYXJyLnB1c2goXG4gICAgICB0aGlzLm9nY0ZpbHRlcldyaXRlci5hZGRJbnRlcmZhY2VGaWx0ZXIoXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGZpcnN0RmllbGROYW1lLFxuICAgICAgICAgIG9wZXJhdG9yOiBmaXJzdE9wZXJhdG9yTmFtZSxcbiAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgaWdvU3BhdGlhbFNlbGVjdG9yOiAnZml4ZWRFeHRlbnQnLFxuICAgICAgICAgIHNyc05hbWU6IHRoaXMubWFwLnByb2plY3Rpb24sXG4gICAgICAgIH0gYXMgT2djSW50ZXJmYWNlRmlsdGVyT3B0aW9ucyxcbiAgICAgICAgZmllbGROYW1lR2VvbWV0cnksXG4gICAgICAgIGxhc3RMZXZlbCxcbiAgICAgICAgdGhpcy5kZWZhdWx0TG9naWNhbFBhcmVudFxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzID0gYXJyO1xuICB9XG5cbiAgcmVmcmVzaEZpbHRlcnMoZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKGZvcmNlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmxhc3RSdW5PZ2NGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICBjb25zdCBhY3RpdmVGaWx0ZXJzID0gb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzID9cbiAgICAgIG9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycy5maWx0ZXIoZiA9PiBmLmFjdGl2ZSA9PT0gdHJ1ZSkgOiBbXTtcbiAgICBpZiAoYWN0aXZlRmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIG9nY0ZpbHRlcnMuZmlsdGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIG9nY0ZpbHRlcnMuZmlsdGVyZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMSkge1xuICAgICAgYWN0aXZlRmlsdGVyc1swXS5wYXJlbnRMb2dpY2FsID0gYWN0aXZlRmlsdGVyc1sxXS5wYXJlbnRMb2dpY2FsO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBhY3RpdmVGaWx0ZXJzLmZpbHRlcihcbiAgICAgICAgYWYgPT4gWydDb250YWlucycsICdJbnRlcnNlY3RzJywgJ1dpdGhpbiddLmluZGV4T2YoYWYub3BlcmF0b3IpICE9PSAtMVxuICAgICAgKS5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICEoSlNPTi5zdHJpbmdpZnkodGhpcy5sYXN0UnVuT2djRmlsdGVyKSA9PT0gSlNPTi5zdHJpbmdpZnkoYWN0aXZlRmlsdGVycykpXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMudHlwZSA9PT0gJ3dmcycpIHtcbiAgICAgICAgY29uc3Qgb2djRGF0YVNvdXJjZTogYW55ID0gdGhpcy5sYXllci5kYXRhU291cmNlO1xuICAgICAgICBjb25zdCBvZ2NMYXllcjogT2djRmlsdGVyc09wdGlvbnMgPSBvZ2NEYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICAgICAgb2djTGF5ZXIuZmlsdGVycyA9IHRoaXMub2djRmlsdGVyV3JpdGVyLnJlYnVpbHRJZ29PZ2NGaWx0ZXJPYmplY3RGcm9tU2VxdWVuY2UoXG4gICAgICAgICAgYWN0aXZlRmlsdGVyc1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wucmVmcmVzaCgpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMudHlwZSA9PT0gJ3dtcycgJiZcbiAgICAgICAgb2djRmlsdGVycy5lbmFibGVkXG4gICAgICApIHtcbiAgICAgICAgbGV0IHJlYnVpbGRGaWx0ZXIgPSAnJztcbiAgICAgICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBjb25zdCBvZ2NEYXRhU291cmNlOiBhbnkgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2U7XG4gICAgICAgICAgY29uc3Qgb2djTGF5ZXI6IE9nY0ZpbHRlcnNPcHRpb25zID0gb2djRGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgICAgICAgb2djTGF5ZXIuZmlsdGVycyA9IHRoaXMub2djRmlsdGVyV3JpdGVyLnJlYnVpbHRJZ29PZ2NGaWx0ZXJPYmplY3RGcm9tU2VxdWVuY2UoXG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZWJ1aWxkRmlsdGVyID0gdGhpcy5vZ2NGaWx0ZXJXcml0ZXIuYnVpbGRGaWx0ZXIoXG4gICAgICAgICAgICBvZ2NMYXllci5maWx0ZXJzLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIGFueSkuZmllbGROYW1lR2VvbWV0cnksXG4gICAgICAgICAgICBvZ2NEYXRhU291cmNlLm9wdGlvbnNcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5maWx0ZXJCeU9nYyhcbiAgICAgICAgICB0aGlzLmRhdGFzb3VyY2UgYXMgV01TRGF0YVNvdXJjZSxcbiAgICAgICAgICByZWJ1aWxkRmlsdGVyXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZmlsdGVyZWQgPVxuICAgICAgICAgIGFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwID8gZmFsc2UgOiB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RSdW5PZ2NGaWx0ZXIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGl2ZUZpbHRlcnMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWRlbnRpY2FsIGZpbHRlci4gTm90aGluZyB0cmlnZ2VyZWRcbiAgICB9XG4gICAgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkuc2V0T2djRmlsdGVycyhvZ2NGaWx0ZXJzLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWaXNpYmxlKCkge1xuICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgaXNBZHZhbmNlZE9nY0ZpbHRlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGFkZEZpbHRlckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzIHx8XG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlT2djRmlsdGVyc0FkdmFuY2VkT2djRmlsdGVycyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gdmFsdWU7XG4gIH1cblxuICBjaGFuZ2VPZ2NGaWx0ZXJUeXBlKGlzQWR2YW5jZWRPZ2NGaWx0ZXJzKSB7XG4gICAgdGhpcy5jaGFuZ2VPZ2NGaWx0ZXJzQWR2YW5jZWRPZ2NGaWx0ZXJzKGlzQWR2YW5jZWRPZ2NGaWx0ZXJzLmNoZWNrZWQpO1xuICAgIGlmIChpc0FkdmFuY2VkT2djRmlsdGVycy5jaGVja2VkKSB7XG4gICAgICB0aGlzLnJlZnJlc2hGaWx0ZXJzKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgIHRoaXMuc2hvd0xlZ2VuZCQubmV4dCghY29sbGFwc2VkKTtcbiAgfVxuXG4gIHRvZ2dsZUxlZ2VuZE9uQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRoaXMuc2hvd0xlZ2VuZCQudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUZpbHRlcnNDb2xsYXBzZWQoKSB7XG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gIXRoaXMuZmlsdGVyc0NvbGxhcHNlZDtcbiAgfVxufVxuIiwiPG1hdC1saXN0LWl0ZW0+XG5cbiAgPG1hdC1pY29uXG4gICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxuICAgIG1hdC1saXN0LWF2YXRhclxuICAgIGlnb0NvbGxhcHNlIFt0YXJnZXRdPVwib2djRmlsdGVyc1wiXG4gICAgW2NvbGxhcHNlZF09XCJmaWx0ZXJzQ29sbGFwc2VkXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyc0NvbGxhcHNlZCgpXCJcbiAgICBzdmdJY29uPVwiY2hldnJvbi11cFwiPlxuICA8L21hdC1pY29uPlxuICA8aDQgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiICpuZ0lmPVwiaGVhZGVyXCIgW25nU3R5bGVdPVwieydjdXJzb3InOiBmaWx0ZXJzQ29sbGFwc2VkID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInfVwiIG1hdExpbmUgW21hdFRvb2x0aXBdPVwibGF5ZXIudGl0bGVcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCI+e3tsYXllci50aXRsZX19PC9oND5cbiAgICA8YnV0dG9uICpuZ0lmPVwiaXNBZHZhbmNlZE9nY0ZpbHRlcnMoKSAmJiBmaWx0ZXJzQXJlRWRpdGFibGVcIiBbZGlzYWJsZWRdPVwiYWRkRmlsdGVyRGlzYWJsZWQoKVwiIG1hdC1pY29uLWJ1dHRvbiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci5hZGRGaWx0ZXInIHwgdHJhbnNsYXRlXCIgW2NvbG9yXT1cImNvbG9yXCIgKGNsaWNrKT1cImFkZEZpbHRlclRvU2VxdWVuY2UoKVwiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJwbHVzXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgY29sbGFwc2libGVCdXR0b25cbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cImxheWVyLnZpc2libGUgP1xuICAgICAgICAgICAgICAgICAgICAoJ2lnby5nZW8ubGF5ZXIuaGlkZUxheWVyJyB8IHRyYW5zbGF0ZSkgOlxuICAgICAgICAgICAgICAgICAgICAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgKGNsaWNrKT1cImxheWVyLnZpc2libGUgPSAhbGF5ZXIudmlzaWJsZVwiPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKT09PWZhbHNlfVwiXG4gICAgICAgIFtzdmdJY29uXT1cImxheWVyLnZpc2libGUgPyAnZXllJyA6ICdleWUtb2ZmJ1wiPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvbWF0LWxpc3QtaXRlbT5cblxuPGRpdiAjb2djRmlsdGVycz5cbiAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyXCIgI2xlZ2VuZCBjbGFzcz1cImlnby1sYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gICAgICA8aWdvLWxheWVyLWxlZ2VuZCAqbmdJZj1cInNob3dMZWdlbmQkIHwgYXN5bmNcIiBbbGF5ZXJdPVwibGF5ZXJcIj5cbiAgICAgIDwvaWdvLWxheWVyLWxlZ2VuZD5cbiAgICA8L2Rpdj5cbiAgPGlnby1vZ2MtZmlsdGVyYWJsZS1mb3JtIFtkYXRhc291cmNlXT1cImRhdGFzb3VyY2VcIiBbbWFwXT1cIm1hcFwiIFtyZWZyZXNoRmlsdGVyc109XCJyZWZyZXNoRnVuY1wiPlxuICA8L2lnby1vZ2MtZmlsdGVyYWJsZS1mb3JtPlxuXG4gIDxzZWN0aW9uICpuZ0lmPVwiaGFzU2VsZWN0b3IgJiYgZmlsdGVyc0FyZUVkaXRhYmxlXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeSBhZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICA8bWF0LWNoZWNrYm94IGxhYmVsUG9zaXRpb249J2JlZm9yZScgKGNoYW5nZSk9XCJjaGFuZ2VPZ2NGaWx0ZXJUeXBlKCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJkYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICAgIHt7J2lnby5nZW8uZmlsdGVyLmFkdmFuY2VkT2djRmlsdGVycycgfCB0cmFuc2xhdGV9fVxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L3NlY3Rpb24+XG48L2Rpdj4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBU3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7SUNiakQsbUNBT3VCO0lBRHJCLDhLQUFTLGVBQUEsK0JBQXdCLENBQUEsSUFBQztJQUVwQyxpQkFBVzs7OztJQUpHLDRCQUFxQixzQ0FBQTs7Ozs7SUFLbkMsOEJBQWlMO0lBQTdLLG1LQUFTLGVBQUEsNEJBQXFCLENBQUEsSUFBQztJQUE4SSxZQUFlO0lBQUEsaUJBQUs7OztJQUFsSixxR0FBZ0Usa0NBQUE7SUFBOEQsZUFBZTtJQUFmLHdDQUFlOzs7O0lBQzlMLGtDQUN3RztJQUFoQyw0S0FBUyxlQUFBLDZCQUFxQixDQUFBLElBQUM7O0lBQ3JHLCtCQUFvQztJQUN0QyxpQkFBUzs7O0lBSG9ELHFEQUFnQyxnRUFBQSx1QkFBQTs7Ozs7SUFJN0Ysa0NBUzJDO0lBQXpDLDRLQUFTLDhEQUE4QixJQUFDOzs7SUFDeEMsK0JBR1c7O0lBQ2IsaUJBQVM7OztJQVpQLG9FQUErQyx3SUFBQTtJQVM3QyxlQUE0RDtJQUE1RCxn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QUE7UUFFbEQscUZBUVc7UUFDWCx5RUFBcU07UUFDbk0saUZBR1M7UUFDVCxrRkFjUztRQUNiLGlCQUFnQjtRQUVoQixvQ0FBaUI7UUFDYiwyRUFHTTtRQUNSLDZDQUMwQjtRQUUxQixxRkFNVTtRQUNaLGlCQUFNLEVBQUE7O1FBaERILDBFQUErQztRQUc3QyxlQUFZO1FBQVosaUNBQVk7UUFRc0IsZUFBWTtRQUFaLGlDQUFZO1FBQ3RDLGVBQWtEO1FBQWxELDJFQUFrRDtRQUlsRCxlQUFZO1FBQVosaUNBQVk7UUFrQmYsZUFBWTtRQUFaLGlDQUFZO1FBSUssZUFBeUI7UUFBekIsMkNBQXlCLGdCQUFBLG1DQUFBO1FBR3hDLGVBQXVDO1FBQXZDLGdFQUF1Qzs7dUZEbkJ4QywwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSx5QkFBeUI7bUVBaUIxQixLQUFLO2tCQUFiLEtBQUs7WUFFRyxHQUFHO2tCQUFYLEtBQUs7WUFFRyxNQUFNO2tCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xuaW1wb3J0IHsgV01TRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlJztcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zUGFyYW1zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9nY0ZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmVudW0nO1xuXG5pbXBvcnQge1xuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSxcbiAgT2djRmlsdGVyc09wdGlvbnMsXG4gIE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnNcbn0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9HQ0ZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJXcml0ZXIgfSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tb2djLWZpbHRlcmFibGUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XG4gIHByaXZhdGUgbGFzdFJ1bk9nY0ZpbHRlcjtcbiAgcHJpdmF0ZSBkZWZhdWx0TG9naWNhbFBhcmVudCA9IE9nY0ZpbHRlck9wZXJhdG9yLkFuZDtcbiAgcHVibGljIGhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSBmYWxzZTtcbiAgcHVibGljIGZpbHRlcnNBcmVFZGl0YWJsZSA9IHRydWU7XG4gIHB1YmxpYyBmaWx0ZXJzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgcHVibGljIGhhc1NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dMZWdlbmQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG9nY0ZpbHRlcldyaXRlcjtcblxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgQElucHV0KCkgaGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICBnZXQgcmVmcmVzaEZ1bmMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaEZpbHRlcnMuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGdldCBkYXRhc291cmNlKCk6IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5sYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvZ2NGaWx0ZXJTZXJ2aWNlOiBPR0NGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5sYXllci52aXNpYmxlKSB7XG4gICAgICB0aGlzLmZpbHRlcnNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBvZ2NGaWx0ZXJzID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICBpZiAoXG4gICAgICAob2djRmlsdGVycy5wdXNoQnV0dG9ucyAmJiBvZ2NGaWx0ZXJzLnB1c2hCdXR0b25zLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgJiYgb2djRmlsdGVycy5jaGVja2JveGVzLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyAmJiBvZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5idW5kbGVzLmxlbmd0aCA+IDApIHx8XG4gICAgICAob2djRmlsdGVycy5zZWxlY3QgJiYgb2djRmlsdGVycy5zZWxlY3QuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlICYmIG9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlLmJ1bmRsZXMubGVuZ3RoID4gMCkpIHtcbiAgICAgIGlmIChvZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmhhc1NlbGVjdG9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5zZXRPZ2NXTVNGaWx0ZXJzT3B0aW9ucyh0aGlzLmRhdGFzb3VyY2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dmcyc6XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5zZXRPZ2NXRlNGaWx0ZXJzT3B0aW9ucyh0aGlzLmRhdGFzb3VyY2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChvZ2NGaWx0ZXJzKSB7XG4gICAgICBpZiAob2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzKSB7XG4gICAgICAgIHRoaXMubGFzdFJ1bk9nY0ZpbHRlciA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkob2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzKVxuICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzLmZpbHRlcihmID0+IGYud2t0X2dlb21ldHJ5KS5sZW5ndGggPj0gMVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmlsdGVyc0FyZUVkaXRhYmxlID0gb2djRmlsdGVycy5lZGl0YWJsZVxuICAgICAgICA/IG9nY0ZpbHRlcnMuZWRpdGFibGVcbiAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gcmVzb2x1dGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYWRkRmlsdGVyVG9TZXF1ZW5jZSgpIHtcbiAgICB0aGlzLmZpbHRlcnNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBjb25zdCBpbnRlcmZhY2VPZ2NGaWx0ZXJzOiBPZ2NJbnRlcmZhY2VGaWx0ZXJPcHRpb25zW10gPSB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycztcbiAgICBjb25zdCBhcnIgPSBpbnRlcmZhY2VPZ2NGaWx0ZXJzIHx8IFtdO1xuICAgIGNvbnN0IGxhc3RMZXZlbCA9IGFyci5sZW5ndGggPT09IDAgPyAwIDogYXJyW2Fyci5sZW5ndGggLSAxXS5sZXZlbDtcbiAgICBsZXQgZmlyc3RGaWVsZE5hbWUgPSAnJztcbiAgICBjb25zdCBpbmNsdWRlZEZpZWxkcyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcy5maWx0ZXIoZiA9PiAhZi5leGNsdWRlRnJvbU9nY0ZpbHRlcnMpO1xuICAgIGlmIChpbmNsdWRlZEZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICBmaXJzdEZpZWxkTmFtZSA9XG4gICAgICAgIGluY2x1ZGVkRmllbGRzWzBdLm5hbWUgPT09IHVuZGVmaW5lZCA/ICcnIDogaW5jbHVkZWRGaWVsZHNbMF0ubmFtZTtcbiAgICB9XG4gICAgbGV0IGZpZWxkTmFtZUdlb21ldHJ5O1xuICAgIGNvbnN0IGRhdGFzb3VyY2VPcHRpb25zID0gdGhpcy5kYXRhc291cmNlXG4gICAgICAub3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9uc1BhcmFtcztcbiAgICBpZiAoZGF0YXNvdXJjZU9wdGlvbnMuZmllbGROYW1lR2VvbWV0cnkpIHtcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID0gZGF0YXNvdXJjZU9wdGlvbnMuZmllbGROYW1lR2VvbWV0cnk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGUyAmJlxuICAgICAgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5XG4gICAgKSB7XG4gICAgICBmaWVsZE5hbWVHZW9tZXRyeSA9ICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGU1xuICAgICAgICAuZmllbGROYW1lR2VvbWV0cnk7XG4gICAgfVxuICAgIGNvbnN0IGFsbG93ZWRPcGVyYXRvcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5jb21wdXRlQWxsb3dlZE9wZXJhdG9ycyhcbiAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyxcbiAgICAgIGZpcnN0RmllbGROYW1lLFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hbGxvd2VkT3BlcmF0b3JzVHlwZSk7XG4gICAgY29uc3QgZmlyc3RPcGVyYXRvck5hbWUgPSBPYmplY3Qua2V5cyhhbGxvd2VkT3BlcmF0b3JzKVswXTtcblxuICAgIGFyci5wdXNoKFxuICAgICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIuYWRkSW50ZXJmYWNlRmlsdGVyKFxuICAgICAgICB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBmaXJzdEZpZWxkTmFtZSxcbiAgICAgICAgICBvcGVyYXRvcjogZmlyc3RPcGVyYXRvck5hbWUsXG4gICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgIGlnb1NwYXRpYWxTZWxlY3RvcjogJ2ZpeGVkRXh0ZW50JyxcbiAgICAgICAgICBzcnNOYW1lOiB0aGlzLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgICB9IGFzIE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnMsXG4gICAgICAgIGZpZWxkTmFtZUdlb21ldHJ5LFxuICAgICAgICBsYXN0TGV2ZWwsXG4gICAgICAgIHRoaXMuZGVmYXVsdExvZ2ljYWxQYXJlbnRcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycyA9IGFycjtcbiAgfVxuXG4gIHJlZnJlc2hGaWx0ZXJzKGZvcmNlPzogYm9vbGVhbikge1xuICAgIGlmIChmb3JjZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBvZ2NGaWx0ZXJzOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgY29uc3QgYWN0aXZlRmlsdGVycyA9IG9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycyA/XG4gICAgICBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKGYgPT4gZi5hY3RpdmUgPT09IHRydWUpIDogW107XG4gICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBvZ2NGaWx0ZXJzLmZpbHRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICBvZ2NGaWx0ZXJzLmZpbHRlcmVkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGFjdGl2ZUZpbHRlcnNbMF0ucGFyZW50TG9naWNhbCA9IGFjdGl2ZUZpbHRlcnNbMV0ucGFyZW50TG9naWNhbDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgYWN0aXZlRmlsdGVycy5maWx0ZXIoXG4gICAgICAgIGFmID0+IFsnQ29udGFpbnMnLCAnSW50ZXJzZWN0cycsICdXaXRoaW4nXS5pbmRleE9mKGFmLm9wZXJhdG9yKSAhPT0gLTFcbiAgICAgICkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNBY3RpdmVTcGF0aWFsRmlsdGVyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhKEpTT04uc3RyaW5naWZ5KHRoaXMubGFzdFJ1bk9nY0ZpbHRlcikgPT09IEpTT04uc3RyaW5naWZ5KGFjdGl2ZUZpbHRlcnMpKVxuICAgICkge1xuICAgICAgaWYgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUgPT09ICd3ZnMnKSB7XG4gICAgICAgIGNvbnN0IG9nY0RhdGFTb3VyY2U6IGFueSA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZTtcbiAgICAgICAgY29uc3Qgb2djTGF5ZXI6IE9nY0ZpbHRlcnNPcHRpb25zID0gb2djRGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgICAgIG9nY0xheWVyLmZpbHRlcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxuICAgICAgICAgIGFjdGl2ZUZpbHRlcnNcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sYXllci5kYXRhU291cmNlLm9sLnJlZnJlc2goKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUgPT09ICd3bXMnICYmXG4gICAgICAgIG9nY0ZpbHRlcnMuZW5hYmxlZFxuICAgICAgKSB7XG4gICAgICAgIGxldCByZWJ1aWxkRmlsdGVyID0gJyc7XG4gICAgICAgIGlmIChhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgY29uc3Qgb2djRGF0YVNvdXJjZTogYW55ID0gdGhpcy5sYXllci5kYXRhU291cmNlO1xuICAgICAgICAgIGNvbnN0IG9nY0xheWVyOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IG9nY0RhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xuICAgICAgICAgIG9nY0xheWVyLmZpbHRlcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxuICAgICAgICAgICAgYWN0aXZlRmlsdGVyc1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmVidWlsZEZpbHRlciA9IHRoaXMub2djRmlsdGVyV3JpdGVyLmJ1aWxkRmlsdGVyKFxuICAgICAgICAgICAgb2djTGF5ZXIuZmlsdGVycyxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICh0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBhbnkpLmZpZWxkTmFtZUdlb21ldHJ5LFxuICAgICAgICAgICAgb2djRGF0YVNvdXJjZS5vcHRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9nY0ZpbHRlclNlcnZpY2UuZmlsdGVyQnlPZ2MoXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlIGFzIFdNU0RhdGFTb3VyY2UsXG4gICAgICAgICAgcmVidWlsZEZpbHRlclxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmZpbHRlcmVkID1cbiAgICAgICAgICBhY3RpdmVGaWx0ZXJzLmxlbmd0aCA9PT0gMCA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3RpdmVGaWx0ZXJzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlkZW50aWNhbCBmaWx0ZXIuIE5vdGhpbmcgdHJpZ2dlcmVkXG4gICAgfVxuICAgICh0aGlzLmxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldE9nY0ZpbHRlcnMob2djRmlsdGVycywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0VmlzaWJsZSgpIHtcbiAgICB0aGlzLmxheWVyLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGlzQWR2YW5jZWRPZ2NGaWx0ZXJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycztcbiAgfVxuXG4gIHB1YmxpYyBhZGRGaWx0ZXJEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyB8fFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLmxlbmd0aCA9PT0gMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZU9nY0ZpbHRlcnNBZHZhbmNlZE9nY0ZpbHRlcnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IHZhbHVlO1xuICB9XG5cbiAgY2hhbmdlT2djRmlsdGVyVHlwZShpc0FkdmFuY2VkT2djRmlsdGVycykge1xuICAgIHRoaXMuY2hhbmdlT2djRmlsdGVyc0FkdmFuY2VkT2djRmlsdGVycyhpc0FkdmFuY2VkT2djRmlsdGVycy5jaGVja2VkKTtcbiAgICBpZiAoaXNBZHZhbmNlZE9nY0ZpbHRlcnMuY2hlY2tlZCkge1xuICAgICAgdGhpcy5yZWZyZXNoRmlsdGVycyh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUxlZ2VuZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCA9IGNvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XG4gIH1cblxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5maWx0ZXJzQ29sbGFwc2VkKSB7XG4gICAgICB0aGlzLnRvZ2dsZUxlZ2VuZCh0aGlzLnNob3dMZWdlbmQkLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xuICAgIHRoaXMuZmlsdGVyc0NvbGxhcHNlZCA9ICF0aGlzLmZpbHRlcnNDb2xsYXBzZWQ7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwieydzZXBhcmF0ZS1pdGVtJyA6IGhlYWRlciA9PT0gdHJ1ZX1cIiA+XG4gIDxtYXQtbGlzdC1pdGVtPlxuICAgIDxtYXQtaWNvblxuICAgICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXG4gICAgICBtYXQtbGlzdC1hdmF0YXJcbiAgICAgIGlnb0NvbGxhcHNlIFt0YXJnZXRdPVwib2djRmlsdGVyc1wiXG4gICAgICBbY29sbGFwc2VkXT1cImZpbHRlcnNDb2xsYXBzZWRcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlcnNDb2xsYXBzZWQoKVwiXG4gICAgICBzdmdJY29uPVwiY2hldnJvbi11cFwiPlxuICAgIDwvbWF0LWljb24+XG4gICAgPGg0IChjbGljayk9XCJ0b2dnbGVMZWdlbmRPbkNsaWNrKClcIiAqbmdJZj1cImhlYWRlclwiIFtuZ1N0eWxlXT1cInsnY3Vyc29yJzogZmlsdGVyc0NvbGxhcHNlZCA/ICdkZWZhdWx0JyA6ICdwb2ludGVyJ31cIiBtYXRMaW5lIFttYXRUb29sdGlwXT1cImxheWVyLnRpdGxlXCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiPnt7bGF5ZXIudGl0bGV9fTwvaDQ+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiaXNBZHZhbmNlZE9nY0ZpbHRlcnMoKSAmJiBmaWx0ZXJzQXJlRWRpdGFibGVcIiBbZGlzYWJsZWRdPVwiYWRkRmlsdGVyRGlzYWJsZWQoKVwiIG1hdC1pY29uLWJ1dHRvbiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLmFkZEZpbHRlcicgfCB0cmFuc2xhdGVcIiBbY29sb3JdPVwiY29sb3JcIiAoY2xpY2spPVwiYWRkRmlsdGVyVG9TZXF1ZW5jZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwicGx1c1wiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJoZWFkZXJcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgICBjb2xsYXBzaWJsZUJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwibGF5ZXIudmlzaWJsZSA/XG4gICAgICAgICAgICAgICAgICAgICAgKCdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcicgfCB0cmFuc2xhdGUpIDpcbiAgICAgICAgICAgICAgICAgICAgICAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAoY2xpY2spPVwibGF5ZXIudmlzaWJsZSA9ICFsYXllci52aXNpYmxlXCI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKT09PWZhbHNlfVwiXG4gICAgICAgICAgW3N2Z0ljb25dPVwibGF5ZXIudmlzaWJsZSA/ICdleWUnIDogJ2V5ZS1vZmYnXCI+XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgPC9tYXQtbGlzdC1pdGVtPlxuXG4gIDxkaXYgI29nY0ZpbHRlcnM+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyXCIgI2xlZ2VuZCBjbGFzcz1cImlnby1sYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gICAgICAgIDxpZ28tbGF5ZXItbGVnZW5kICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiIFtsYXllcl09XCJsYXllclwiPlxuICAgICAgICA8L2lnby1sYXllci1sZWdlbmQ+XG4gICAgICA8L2Rpdj5cbiAgICA8aWdvLW9nYy1maWx0ZXJhYmxlLWZvcm0gW2RhdGFzb3VyY2VdPVwiZGF0YXNvdXJjZVwiIFttYXBdPVwibWFwXCIgW3JlZnJlc2hGaWx0ZXJzXT1cInJlZnJlc2hGdW5jXCI+XG4gICAgPC9pZ28tb2djLWZpbHRlcmFibGUtZm9ybT5cblxuICAgIDxzZWN0aW9uICpuZ0lmPVwiaGFzU2VsZWN0b3IgJiYgZmlsdGVyc0FyZUVkaXRhYmxlXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeSBhZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPG1hdC1jaGVja2JveCBsYWJlbFBvc2l0aW9uPSdiZWZvcmUnIChjaGFuZ2UpPVwiY2hhbmdlT2djRmlsdGVyVHlwZSgkZXZlbnQpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICAgICAge3snaWdvLmdlby5maWx0ZXIuYWR2YW5jZWRPZ2NGaWx0ZXJzJyB8IHRyYW5zbGF0ZX19XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -1,31 +1,44 @@
1
1
  import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- function OgcFilterableListComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
4
- i0.ɵɵelement(0, "igo-ogc-filterable-item", 2);
3
+ function OgcFilterableListComponent_div_1_Template(rf, ctx) { if (rf & 1) {
4
+ i0.ɵɵelementStart(0, "div", 3);
5
+ i0.ɵɵtext(1);
6
+ i0.ɵɵpipe(2, "translate");
7
+ i0.ɵɵelementEnd();
5
8
  } if (rf & 2) {
6
- const layer_r1 = ctx.$implicit;
7
- i0.ɵɵproperty("header", true)("layer", layer_r1)("map", layer_r1.map);
9
+ i0.ɵɵadvance(1);
10
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "igo.geo.filter.noFilterableLayer"));
11
+ } }
12
+ function OgcFilterableListComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵelement(0, "igo-ogc-filterable-item", 4);
14
+ } if (rf & 2) {
15
+ const layer_r2 = ctx.$implicit;
16
+ i0.ɵɵproperty("header", true)("layer", layer_r2)("map", layer_r2.map);
8
17
  } }
9
18
  export class OgcFilterableListComponent {
10
19
  constructor() { }
11
20
  }
12
21
  OgcFilterableListComponent.ɵfac = function OgcFilterableListComponent_Factory(t) { return new (t || OgcFilterableListComponent)(); };
13
- OgcFilterableListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterableListComponent, selectors: [["igo-ogc-filterable-list"]], inputs: { layers: "layers", map: "map" }, decls: 3, vars: 6, consts: [[3, "navigation", "selection"], ["ngFor", "", 3, "ngForOf"], ["igoListItem", "", 3, "header", "layer", "map"]], template: function OgcFilterableListComponent_Template(rf, ctx) { if (rf & 1) {
22
+ OgcFilterableListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterableListComponent, selectors: [["igo-ogc-filterable-list"]], inputs: { layers: "layers", map: "map" }, decls: 5, vars: 10, consts: [[3, "navigation", "selection"], ["id", "no-layer-message", 4, "ngIf"], ["ngFor", "", 3, "ngForOf"], ["id", "no-layer-message"], ["igoListItem", "", 3, "header", "layer", "map"]], template: function OgcFilterableListComponent_Template(rf, ctx) { if (rf & 1) {
14
23
  i0.ɵɵelementStart(0, "igo-list", 0);
15
- i0.ɵɵtemplate(1, OgcFilterableListComponent_ng_template_1_Template, 1, 3, "ng-template", 1);
24
+ i0.ɵɵtemplate(1, OgcFilterableListComponent_div_1_Template, 3, 3, "div", 1);
16
25
  i0.ɵɵpipe(2, "filterableDataSource");
26
+ i0.ɵɵtemplate(3, OgcFilterableListComponent_ng_template_3_Template, 1, 3, "ng-template", 2);
27
+ i0.ɵɵpipe(4, "filterableDataSource");
17
28
  i0.ɵɵelementEnd();
18
29
  } if (rf & 2) {
19
30
  i0.ɵɵproperty("navigation", false)("selection", false);
20
31
  i0.ɵɵadvance(1);
21
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(2, 3, ctx.layers, "ogc"));
22
- } }, encapsulation: 2, changeDetection: 0 });
32
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(2, 4, ctx.layers, "ogc").length === 0);
33
+ i0.ɵɵadvance(2);
34
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(4, 7, ctx.layers, "ogc"));
35
+ } }, styles: ["#no-layer-message[_ngcontent-%COMP%]{padding:7%;text-align:center;font-size:medium;font-weight:700}"], changeDetection: 0 });
23
36
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterableListComponent, [{
24
37
  type: Component,
25
- args: [{ selector: 'igo-ogc-filterable-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template ngFor let-layer [ngForOf]=\"layers | filterableDataSource: 'ogc'\">\n <igo-ogc-filterable-item igoListItem [header]=\"true\" [layer]=\"layer\" \n [map]=\"layer.map\" ></igo-ogc-filterable-item>\n </ng-template>\n</igo-list>\n" }]
38
+ args: [{ selector: 'igo-ogc-filterable-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<igo-list [navigation]=\"false\" [selection]=\"false\">\n <div id=\"no-layer-message\" *ngIf=\"(layers | filterableDataSource : 'ogc').length === 0\">{{'igo.geo.filter.noFilterableLayer' | translate}}</div>\n <ng-template ngFor let-layer [ngForOf]=\"layers | filterableDataSource: 'ogc'\">\n <igo-ogc-filterable-item igoListItem [header]=\"true\" [layer]=\"layer\" \n [map]=\"layer.map\" ></igo-ogc-filterable-item>\n </ng-template>\n</igo-list>\n", styles: ["#no-layer-message{padding:7%;text-align:center;font-size:medium;font-weight:700}\n"] }]
26
39
  }], function () { return []; }, { layers: [{
27
40
  type: Input
28
41
  }], map: [{
29
42
  type: Input
30
43
  }] }); })();
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtbGlzdC9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDOzs7SUNGbkIsNkNBQzZDOzs7SUFEUiw2QkFBZSxtQkFBQSxxQkFBQTs7QURZeEQsTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxnQkFBZSxDQUFDOztvR0FOTCwwQkFBMEI7NkVBQTFCLDBCQUEwQjtRQ2R2QyxtQ0FBbUQ7UUFDakQsMkZBR2M7O1FBQ2hCLGlCQUFXOztRQUxELGtDQUFvQixvQkFBQTtRQUNDLGVBQWdEO1FBQWhELGlFQUFnRDs7dUZEYWxFLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHlCQUF5QixtQkFFbEIsdUJBQXVCLENBQUMsTUFBTTtzQ0FJdEMsTUFBTTtrQkFBZCxLQUFLO1lBRUcsR0FBRztrQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tb2djLWZpbHRlcmFibGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGxheWVyczogTGF5ZXJbXTtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIiBbc2VsZWN0aW9uXT1cImZhbHNlXCI+XG4gIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtbGF5ZXIgW25nRm9yT2ZdPVwibGF5ZXJzIHwgZmlsdGVyYWJsZURhdGFTb3VyY2U6ICdvZ2MnXCI+XG4gICAgPGlnby1vZ2MtZmlsdGVyYWJsZS1pdGVtIGlnb0xpc3RJdGVtIFtoZWFkZXJdPVwidHJ1ZVwiIFtsYXllcl09XCJsYXllclwiIFxuICAgIFttYXBdPVwibGF5ZXIubWFwXCIgPjwvaWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lnby1saXN0PlxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtbGlzdC9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDOzs7SUNGckIsOEJBQXlGO0lBQUEsWUFBa0Q7O0lBQUEsaUJBQU07O0lBQXhELGVBQWtEO0lBQWxELDhFQUFrRDs7O0lBRXpJLDZDQUM2Qzs7O0lBRFIsNkJBQWUsbUJBQUEscUJBQUE7O0FEV3hELE1BQU0sT0FBTywwQkFBMEI7SUFNckMsZ0JBQWUsQ0FBQzs7b0dBTkwsMEJBQTBCOzZFQUExQiwwQkFBMEI7UUNkdkMsbUNBQW1EO1FBQ2pELDJFQUFpSjs7UUFDakosMkZBR2M7O1FBQ2hCLGlCQUFXOztRQU5ELGtDQUFvQixvQkFBQTtRQUNDLGVBQTBEO1FBQTFELDJFQUEwRDtRQUMxRCxlQUFnRDtRQUFoRCxpRUFBZ0Q7O3VGRFlsRSwwQkFBMEI7Y0FOdEMsU0FBUzsyQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07c0NBSXRDLE1BQU07a0JBQWQsS0FBSztZQUVHLEdBQUc7a0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLW9nYy1maWx0ZXJhYmxlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGxheWVyczogTGF5ZXJbXTtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iLCJcbjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiIFtzZWxlY3Rpb25dPVwiZmFsc2VcIj5cbiAgPGRpdiAgaWQ9XCJuby1sYXllci1tZXNzYWdlXCIgKm5nSWY9XCIobGF5ZXJzIHwgZmlsdGVyYWJsZURhdGFTb3VyY2UgOiAnb2djJykubGVuZ3RoID09PSAwXCI+e3snaWdvLmdlby5maWx0ZXIubm9GaWx0ZXJhYmxlTGF5ZXInIHwgdHJhbnNsYXRlfX08L2Rpdj5cbiAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1sYXllciBbbmdGb3JPZl09XCJsYXllcnMgfCBmaWx0ZXJhYmxlRGF0YVNvdXJjZTogJ29nYydcIj5cbiAgICA8aWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW0gaWdvTGlzdEl0ZW0gW2hlYWRlcl09XCJ0cnVlXCIgW2xheWVyXT1cImxheWVyXCIgXG4gICAgW21hcF09XCJsYXllci5tYXBcIiA+PC9pZ28tb2djLWZpbHRlcmFibGUtaXRlbT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvaWdvLWxpc3Q+XG4iXX0=