@igo2/geo 1.9.4 → 1.11.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 (142) hide show
  1. package/bundles/igo2-geo.umd.js +3306 -1072
  2. package/bundles/igo2-geo.umd.js.map +1 -1
  3. package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +2 -2
  4. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +6 -6
  5. package/esm2015/lib/catalog/shared/catalog.service.js +5 -2
  6. package/esm2015/lib/datasource/shared/capabilities.service.js +26 -12
  7. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js +84 -14
  8. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +1 -1
  9. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js +7 -10
  10. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +2 -2
  11. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js +7 -9
  12. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +3 -1
  13. package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +7 -1
  14. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +5 -2
  15. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +10 -4
  16. package/esm2015/lib/directions/directions.component.js +6 -4
  17. package/esm2015/lib/directions/shared/directions.utils.js +4 -1
  18. package/esm2015/lib/draw/draw/draw.component.js +2 -1
  19. package/esm2015/lib/feature/shared/feature.utils.js +2 -1
  20. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +17 -4
  21. package/esm2015/lib/filter/filter.module.js +7 -4
  22. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +15 -1
  23. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +31 -13
  24. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +296 -161
  25. package/esm2015/lib/filter/shared/ogc-filter.interface.js +1 -1
  26. package/esm2015/lib/filter/shared/ogc-filter.js +8 -1
  27. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +185 -95
  28. package/esm2015/lib/geometry/shared/controls/draw.js +7 -2
  29. package/esm2015/lib/geometry/shared/controls/modify.js +1 -1
  30. package/esm2015/lib/geometry/shared/controls/slice.js +1 -1
  31. package/esm2015/lib/import-export/import-export/import-export.component.js +226 -66
  32. package/esm2015/lib/import-export/shared/export.interface.js +1 -1
  33. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +32 -31
  34. package/esm2015/lib/layer/layer-list/layer-list.component.js +1 -1
  35. package/esm2015/lib/layer/layer.module.js +8 -5
  36. package/esm2015/lib/layer/shared/layer.service.js +19 -16
  37. package/esm2015/lib/layer/shared/layers/layer.interface.js +1 -1
  38. package/esm2015/lib/layer/shared/layers/layer.js +23 -5
  39. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +1 -1
  40. package/esm2015/lib/layer/shared/layers/vector-layer.js +13 -5
  41. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +1 -1
  42. package/esm2015/lib/layer/shared/style.service.js +21 -16
  43. package/esm2015/lib/layer/shared/vector-style.interface.js +1 -1
  44. package/esm2015/lib/layer/utils/index.js +2 -1
  45. package/esm2015/lib/layer/utils/layer.utils.js +11 -0
  46. package/esm2015/lib/layer/utils/layerSync-watcher.js +3 -3
  47. package/esm2015/lib/map/home-extent-button/home-extent-button.component.js +69 -0
  48. package/esm2015/lib/map/home-extent-button/index.js +2 -0
  49. package/esm2015/lib/map/index.js +3 -1
  50. package/esm2015/lib/map/info-section/index.js +2 -0
  51. package/esm2015/lib/map/info-section/info-section.component.js +36 -0
  52. package/esm2015/lib/map/map-browser/map-browser.component.js +1 -1
  53. package/esm2015/lib/map/map-center/map-center.component.js +1 -1
  54. package/esm2015/lib/map/map.module.js +11 -1
  55. package/esm2015/lib/map/shared/hover-feature.directive.js +229 -78
  56. package/esm2015/lib/map/shared/mapOffline.directive.js +17 -6
  57. package/esm2015/lib/measure/measurer/measurer.component.js +7 -1
  58. package/esm2015/lib/query/shared/query.directive.js +4 -1
  59. package/esm2015/lib/query/shared/query.interfaces.js +1 -1
  60. package/esm2015/lib/query/shared/query.service.js +35 -13
  61. package/esm2015/lib/query/shared/query.utils.js +2 -2
  62. package/esm2015/lib/search/search-bar/search-bar.component.js +4 -2
  63. package/esm2015/lib/search/search-results/search-results-add-button.component.js +7 -7
  64. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +16 -5
  65. package/esm2015/lib/search/shared/search.interfaces.js +1 -1
  66. package/esm2015/lib/search/shared/sources/icherche.js +3 -2
  67. package/esm2015/lib/search/shared/sources/source.js +2 -2
  68. package/esm2015/lib/search/shared/sources/storedqueries.js +2 -2
  69. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js +56 -0
  70. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +38 -0
  71. package/esm2015/lib/workspace/confirmation-popup/index.js +3 -0
  72. package/esm2015/lib/workspace/index.js +2 -1
  73. package/esm2015/lib/workspace/shared/edition-workspace.js +271 -0
  74. package/esm2015/lib/workspace/shared/edition-workspace.service.js +619 -0
  75. package/esm2015/lib/workspace/shared/feature-workspace.js +18 -1
  76. package/esm2015/lib/workspace/shared/feature-workspace.service.js +27 -6
  77. package/esm2015/lib/workspace/shared/index.js +3 -1
  78. package/esm2015/lib/workspace/shared/wfs-workspace.js +18 -1
  79. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +27 -5
  80. package/esm2015/lib/workspace/shared/wms-workspace.service.js +59 -15
  81. package/esm2015/lib/workspace/shared/workspace.utils.js +1 -1
  82. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +40 -10
  83. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +22 -8
  84. package/esm2015/lib/workspace/workspace.module.js +19 -7
  85. package/fesm2015/igo2-geo.js +2690 -677
  86. package/fesm2015/igo2-geo.js.map +1 -1
  87. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -0
  88. package/lib/datasource/shared/datasources/datasource.interface.d.ts +45 -0
  89. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +1 -0
  90. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +1 -1
  91. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +2 -1
  92. package/lib/directions/directions.component.d.ts +2 -1
  93. package/lib/filter/filter.module.d.ts +1 -1
  94. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -0
  95. package/lib/filter/shared/ogc-filter.interface.d.ts +1 -0
  96. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +7 -2
  97. package/lib/geometry/shared/controls/draw.d.ts +8 -4
  98. package/lib/geometry/shared/controls/modify.d.ts +3 -4
  99. package/lib/geometry/shared/controls/slice.d.ts +3 -4
  100. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  101. package/lib/import-export/shared/export.interface.d.ts +2 -1
  102. package/lib/layer/layer-legend/layer-legend.component.d.ts +0 -4
  103. package/lib/layer/layer.module.d.ts +1 -1
  104. package/lib/layer/shared/layer.service.d.ts +1 -1
  105. package/lib/layer/shared/layers/layer.d.ts +7 -0
  106. package/lib/layer/shared/layers/layer.interface.d.ts +8 -0
  107. package/lib/layer/shared/layers/vector-layer.d.ts +2 -1
  108. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -0
  109. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +1 -0
  110. package/lib/layer/shared/style.service.d.ts +4 -1
  111. package/lib/layer/shared/vector-style.interface.d.ts +9 -5
  112. package/lib/layer/utils/index.d.ts +1 -0
  113. package/lib/layer/utils/layer.utils.d.ts +2 -0
  114. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -0
  115. package/lib/map/home-extent-button/index.d.ts +1 -0
  116. package/lib/map/index.d.ts +2 -0
  117. package/lib/map/info-section/index.d.ts +1 -0
  118. package/lib/map/info-section/info-section.component.d.ts +7 -0
  119. package/lib/map/map.module.d.ts +19 -17
  120. package/lib/map/shared/hover-feature.directive.d.ts +14 -5
  121. package/lib/map/shared/mapOffline.directive.d.ts +1 -0
  122. package/lib/query/shared/query.interfaces.d.ts +2 -1
  123. package/lib/search/shared/search-pointer-summary.directive.d.ts +6 -0
  124. package/lib/search/shared/search.interfaces.d.ts +1 -0
  125. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -0
  126. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -0
  127. package/lib/workspace/confirmation-popup/index.d.ts +2 -0
  128. package/lib/workspace/index.d.ts +1 -0
  129. package/lib/workspace/shared/edition-workspace.d.ts +81 -0
  130. package/lib/workspace/shared/edition-workspace.service.d.ts +45 -0
  131. package/lib/workspace/shared/feature-workspace.d.ts +3 -0
  132. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -0
  133. package/lib/workspace/shared/index.d.ts +2 -0
  134. package/lib/workspace/shared/wfs-workspace.d.ts +3 -0
  135. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -0
  136. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -0
  137. package/lib/workspace/shared/workspace.utils.d.ts +3 -2
  138. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +10 -3
  139. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +3 -1
  140. package/lib/workspace/workspace.module.d.ts +8 -5
  141. package/package.json +4 -4
  142. package/style/geo.theming.scss +1 -0
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ltcG9ydC1leHBvcnQvc2hhcmVkL2V4cG9ydC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9ydEZvcm1hdCwgRW5jb2RpbmdGb3JtYXQgfSBmcm9tICcuL2V4cG9ydC50eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRPcHRpb25zIHtcbiAgZm9ybWF0PzogRXhwb3J0Rm9ybWF0O1xuICBlbmNvZGluZz86IEVuY29kaW5nRm9ybWF0O1xuICBsYXllcnM6IHN0cmluZ1tdO1xuICBsYXllcnNXaXRoU2VsZWN0aW9uPzogc3RyaW5nW107XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZlYXR1cmVJbk1hcEV4dGVudD86IGJvb2xlYW47XG4gIGNpcmNsZXNUb1BvbHlnb25zPzogYm9vbGVhbjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ltcG9ydC1leHBvcnQvc2hhcmVkL2V4cG9ydC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9ydEZvcm1hdCwgRW5jb2RpbmdGb3JtYXQgfSBmcm9tICcuL2V4cG9ydC50eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRPcHRpb25zIHtcbiAgZm9ybWF0PzogRXhwb3J0Rm9ybWF0O1xuICBlbmNvZGluZz86IEVuY29kaW5nRm9ybWF0O1xuICBsYXllcnM6IHN0cmluZ1tdO1xuICBsYXllcnNXaXRoU2VsZWN0aW9uPzogc3RyaW5nW107XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGNvbWJpbmVMYXllcnM/OiBib29sZWFuO1xuICBzZXBhcmF0b3I/OiBib29sZWFuO1xuICBmZWF0dXJlSW5NYXBFeHRlbnQ/OiBib29sZWFuO1xufVxuIl19
@@ -76,6 +76,7 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
76
76
  i0.ɵɵadvance(1);
77
77
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.layer.legend.noLegendScale"), " ");
78
78
  } }
79
+ const _c1 = function (a0) { return [a0]; };
79
80
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
80
81
  const _r28 = i0.ɵɵgetCurrentView();
81
82
  i0.ɵɵelementStart(0, "div");
@@ -90,21 +91,22 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
90
91
  const ctx_r22 = i0.ɵɵnextContext(3);
91
92
  i0.ɵɵadvance(1);
92
93
  i0.ɵɵpropertyInterpolate("id", item_r6.title);
93
- i0.ɵɵpropertyInterpolate("src", ctx_r22.legendGraphic[item_r6.title], i0.ɵɵsanitizeUrl);
94
+ i0.ɵɵpropertyInterpolate("src", i0.ɵɵpureFunction1(6, _c1, item_r6.imgGraphValue), i0.ɵɵsanitizeUrl);
94
95
  i0.ɵɵpropertyInterpolate("alt", i0.ɵɵpipeBind1(3, 4, "igo.geo.layer.legend.loadingLegendText"));
95
96
  i0.ɵɵadvance(3);
96
97
  i0.ɵɵproperty("ngIf", ctx_r22.imagesHeight[item_r6.title] < 16);
97
98
  } }
98
99
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template(rf, ctx) { if (rf & 1) {
99
100
  i0.ɵɵelement(0, "div", 15);
101
+ i0.ɵɵpipe(1, "sanitizeHtml");
100
102
  } if (rf & 2) {
101
103
  const item_r6 = i0.ɵɵnextContext(3).$implicit;
102
- i0.ɵɵproperty("ngStyle", item_r6.style)("innerHTML", item_r6.html, i0.ɵɵsanitizeHtml);
104
+ i0.ɵɵproperty("ngStyle", item_r6.style)("innerHTML", i0.ɵɵpipeBind1(1, 2, item_r6.html), i0.ɵɵsanitizeHtml);
103
105
  } }
104
106
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_Template(rf, ctx) { if (rf & 1) {
105
107
  i0.ɵɵelementStart(0, "div");
106
- i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template, 5, 6, "div", 0);
107
- i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template, 1, 2, "div", 12);
108
+ i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template, 5, 8, "div", 0);
109
+ i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template, 2, 4, "div", 12);
108
110
  i0.ɵɵelementEnd();
109
111
  } if (rf & 2) {
110
112
  const item_r6 = i0.ɵɵnextContext(2).$implicit;
@@ -113,7 +115,7 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
113
115
  i0.ɵɵadvance(1);
114
116
  i0.ɵɵproperty("ngIf", item_r6.html);
115
117
  } }
116
- const _c1 = function (a0) { return { "with-title": a0 }; };
118
+ const _c2 = function (a0) { return { "with-title": a0 }; };
117
119
  function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
118
120
  i0.ɵɵelementStart(0, "div");
119
121
  i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template, 5, 5, "mat-list-item", 0);
@@ -128,7 +130,7 @@ function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2
128
130
  i0.ɵɵadvance(1);
129
131
  i0.ɵɵproperty("ngIf", item_r6.title);
130
132
  i0.ɵɵadvance(1);
131
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c1, item_r6.title));
133
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c2, item_r6.title));
132
134
  i0.ɵɵadvance(2);
133
135
  i0.ɵɵproperty("ngIf", ctx_r8.currentStyle !== undefined);
134
136
  i0.ɵɵadvance(1);
@@ -175,6 +177,9 @@ function LayerLegendComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
175
177
  i0.ɵɵproperty("ngIf", items_r1.length)("ngIfElse", _r3);
176
178
  } }
177
179
  export class LayerLegendComponent {
180
+ /**
181
+ * activeLegend
182
+ */
178
183
  constructor(capabilitiesService, languageService, http, cdRef) {
179
184
  this.capabilitiesService = capabilitiesService;
180
185
  this.languageService = languageService;
@@ -201,10 +206,6 @@ export class LayerLegendComponent {
201
206
  * if getLegendGraphic is authorized
202
207
  */
203
208
  this.getLegend = true;
204
- /**
205
- * activeLegend
206
- */
207
- this.legendGraphic = {};
208
209
  }
209
210
  /**
210
211
  * On init, subscribe to the map's resolution and update the legend accordingly
@@ -213,13 +214,11 @@ export class LayerLegendComponent {
213
214
  let lastlLegend = this.layer.legend;
214
215
  this.styles = this.listStyles();
215
216
  const sourceOptions = this.layer.options.source.options;
216
- if (sourceOptions &&
217
- sourceOptions.params &&
218
- sourceOptions.params.STYLES) {
217
+ if (sourceOptions && sourceOptions.params && sourceOptions.params.STYLES) {
219
218
  // if a styles is provided into the layers wms params
220
219
  this.currentStyle = this.styles.find(style => style.name === sourceOptions.params.STYLES).name;
221
220
  }
222
- else if (!this.layer.legend) {
221
+ else if (!lastlLegend) {
223
222
  // if no legend is manually provided
224
223
  if (this.styles && this.styles.length > 1) {
225
224
  this.currentStyle = this.styles[0].name;
@@ -234,10 +233,9 @@ export class LayerLegendComponent {
234
233
  else {
235
234
  lastlLegend = this.layer.dataSource.getLegend(this.currentStyle, this.view);
236
235
  }
237
- if (this.updateLegendOnResolutionChange === true || sourceOptions.contentDependentLegend) {
236
+ if (this.updateLegendOnResolutionChange || sourceOptions.contentDependentLegend) {
238
237
  const state$ = this.layer.map.viewController.state$;
239
- this.state$$ = state$
240
- .subscribe(() => this.onViewControllerStateChange());
238
+ this.state$$ = state$.subscribe(() => this.onViewControllerStateChange());
241
239
  }
242
240
  else if (lastlLegend && lastlLegend.length !== 0) {
243
241
  this.legendItems$.next(lastlLegend);
@@ -255,19 +253,22 @@ export class LayerLegendComponent {
255
253
  }
256
254
  }
257
255
  getLegendGraphic(item) {
258
- const secureIMG = new SecureImagePipe(this.http);
259
- this.currentItemTitle = item.title;
260
- secureIMG.transform(item.url).pipe(catchError((err) => {
261
- if (err.error) {
262
- err.error.caught = true;
263
- this.getLegend = false;
256
+ if (item.url) {
257
+ const secureIMG = new SecureImagePipe(this.http);
258
+ secureIMG.transform(item.url).pipe(catchError((err) => {
259
+ if (err.error) {
260
+ err.error.caught = true;
261
+ this.getLegend = false;
262
+ this.cdRef.detectChanges();
263
+ return err;
264
+ }
265
+ })).subscribe(obsLegGraph => {
266
+ const idx = this.legendItems$.value.findIndex(leg => leg.title === item.title);
267
+ const legendGraph = obsLegGraph;
268
+ this.legendItems$.value[idx].imgGraphValue = legendGraph;
264
269
  this.cdRef.detectChanges();
265
- return err;
266
- }
267
- })).subscribe((legend) => {
268
- this.legendGraphic[this.currentItemTitle] = legend;
269
- this.cdRef.detectChanges();
270
- });
270
+ });
271
+ }
271
272
  }
272
273
  toggleLegendItem(collapsed, item) {
273
274
  item.collapsed = collapsed;
@@ -373,7 +374,7 @@ LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerL
373
374
  i0.ɵɵpipe(1, "async");
374
375
  } if (rf & 2) {
375
376
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.legendItems$));
376
- } }, directives: [i4.NgIf, i4.NgForOf, i4.NgClass, i5.MatListItem, i6.MatIcon, i5.MatListAvatarCssMatStyler, i7.CollapseDirective, i8.MatLine, i9.MatFormField, i10.MatSelect, i11.MatTooltip, i12.NgControlStatus, i12.NgModel, i8.MatOption, i4.NgStyle], pipes: [i4.AsyncPipe, i13.TranslatePipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
377
+ } }, directives: [i4.NgIf, i4.NgForOf, i4.NgClass, i5.MatListItem, i6.MatIcon, i5.MatListAvatarCssMatStyler, i7.CollapseDirective, i8.MatLine, i9.MatFormField, i10.MatSelect, i11.MatTooltip, i12.NgControlStatus, i12.NgModel, i8.MatOption, i4.NgStyle], pipes: [i4.AsyncPipe, i13.TranslatePipe, i7.SanitizeHtmlPipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
377
378
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerLegendComponent, [{
378
379
  type: Component,
379
380
  args: [{
@@ -390,4 +391,4 @@ LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerL
390
391
  }], layer: [{
391
392
  type: Input
392
393
  }] }); })();
393
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItbGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsdUJBQXVCLEVBQUUsWUFBWSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUcxSSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1R2QyxxQ0FBa0M7SUFDaEMsbUNBUXVCO0lBRHJCLHVVQUF5QztJQUUzQyxpQkFBVztJQUNYLDZCQUFZO0lBQUEsWUFBbUM7O0lBQUEsaUJBQUs7SUFDdEQsaUJBQWdCOzs7Ozs7SUFOWixlQUFpQjtJQUFqQiw2QkFBaUIsZ0NBQUE7SUFLUCxlQUFtQztJQUFuQyxzRkFBbUM7OztJQVF2QyxzQ0FBOEQ7SUFBQSxZQUFlO0lBQUEsaUJBQWE7OztJQUFqRCxzQ0FBb0I7SUFBQyxlQUFlO0lBQWYscUNBQWU7Ozs7SUFMckYsMkJBQXdDO0lBQ3BDLHNDQUFnQjtJQUNkLHFDQUVzQztJQUQwQixrUkFBMEIsNlBBQUE7O0lBRXhGLDZJQUEwRjtJQUM1RixpQkFBYTtJQUNqQixpQkFBaUI7SUFDbkIsaUJBQU07OztJQUxF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QUFFO1lBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxhQUFpQyxDQUFDO1NBQ3hFO2FBQU07WUFDTCxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxhQUFpQyxDQUFDO1NBQ2pJO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3pDLENBQUM7O3dGQXhPVSxvQkFBb0I7dUVBQXBCLG9CQUFvQjs7Ozs7O1FDckJqQyx1RkFxRGU7OztRQXJEQSw2REFBMkI7O3VGRHFCN0Isb0JBQW9CO2NBTmhDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixXQUFXLEVBQUUsK0JBQStCO2dCQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztnQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7NkpBR1UsOEJBQThCO2tCQUF0QyxLQUFLO1lBa0MwQixlQUFlO2tCQUE5QyxZQUFZO21CQUFDLGdCQUFnQjtZQVVyQixLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIEJlaGF2aW9yU3ViamVjdCwgb2YsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGF5ZXIsIEl0ZW1TdHlsZU9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzJztcbmltcG9ydCB7IExlZ2VuZE1hcFZpZXdPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgV01TRGF0YVNvdXJjZSwgV01TRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlJztcbmltcG9ydCB7IFNlY3VyZUltYWdlUGlwZSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1sYXllci1sZWdlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXItbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXItbGVnZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExheWVyTGVnZW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBsZWdlbmQgaXRlbXNcbiAgICovXG4gIGxlZ2VuZEl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PExlZ2VuZFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIG1hcCdzIHJlc29sdXRpb25cbiAgICovXG4gIHByaXZhdGUgc3RhdGUkJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYXZhaWxhYmxlIHN0eWxlc1xuICAgKi9cbiAgcHVibGljIHN0eWxlcztcblxuICAvKipcbiAgICogVGhlIHN0eWxlIHVzZWQgdG8gbWFrZSB0aGUgbGVnZW5kXG4gICAqL1xuICBwdWJsaWMgY3VycmVudFN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NhbGUgdXNlZCB0byBtYWtlIHRoZSBsZWdlbmRcbiAgICovXG4gIHByaXZhdGUgc2NhbGU6IG51bWJlciA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGV4dGVudCB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxuICAgKi9cbiAgcHJpdmF0ZSB2aWV3OiBMZWdlbmRNYXBWaWV3T3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGltYWdlcyBkaXNwbGF5XG4gICAqL1xuICBAVmlld0NoaWxkcmVuKCdyZW5kZXJlZExlZ2VuZCcpIHJlbmRlcmVkTGVnZW5kczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHNpemUgb2YgaW1hZ2VzIGRpc3BsYXllZFxuICAgKi9cbiAgcHVibGljIGltYWdlc0hlaWdodDogeyBbc3JjS2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBMYXllclxuICAgKi9cbiAgQElucHV0KCkgbGF5ZXI6IExheWVyO1xuXG4gIC8qKlxuICAgKiBpZiBnZXRMZWdlbmRHcmFwaGljIGlzIGF1dGhvcml6ZWRcbiAgICovXG4gIHB1YmxpYyBnZXRMZWdlbmQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBhY3RpdmVMZWdlbmRcbiAgICovXG4gIHB1YmxpYyBsZWdlbmRHcmFwaGljOiB7IFtzcmNLZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgcHVibGljIGN1cnJlbnRJdGVtVGl0bGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgLyoqXG4gICAqIE9uIGluaXQsIHN1YnNjcmliZSB0byB0aGUgbWFwJ3MgcmVzb2x1dGlvbiBhbmQgdXBkYXRlIHRoZSBsZWdlbmQgYWNjb3JkaW5nbHlcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIGxldCBsYXN0bExlZ2VuZCA9IHRoaXMubGF5ZXIubGVnZW5kO1xuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5saXN0U3R5bGVzKCk7XG4gICAgY29uc3Qgc291cmNlT3B0aW9ucyA9IHRoaXMubGF5ZXIub3B0aW9ucy5zb3VyY2Uub3B0aW9ucyBhcyBhbnk7XG4gICAgaWYgKFxuICAgICAgc291cmNlT3B0aW9ucyAmJlxuICAgICAgc291cmNlT3B0aW9ucy5wYXJhbXMgJiZcbiAgICAgIHNvdXJjZU9wdGlvbnMucGFyYW1zLlNUWUxFUykge1xuICAgICAgLy8gaWYgYSBzdHlsZXMgaXMgcHJvdmlkZWQgaW50byB0aGUgbGF5ZXJzIHdtcyBwYXJhbXNcbiAgICAgIHRoaXMuY3VycmVudFN0eWxlID0gdGhpcy5zdHlsZXMuZmluZChzdHlsZSA9PiBzdHlsZS5uYW1lID09PSBzb3VyY2VPcHRpb25zLnBhcmFtcy5TVFlMRVMpLm5hbWU7XG4gICAgfSBlbHNlIGlmICghdGhpcy5sYXllci5sZWdlbmQpIHtcbiAgICAgIC8vIGlmIG5vIGxlZ2VuZCBpcyBtYW51YWxseSBwcm92aWRlZFxuICAgICAgaWYgKHRoaXMuc3R5bGVzICYmIHRoaXMuc3R5bGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3R5bGUgPSB0aGlzLnN0eWxlc1swXS5uYW1lO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5zdHlsZXMgJiYgdGhpcy5zdHlsZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5jdXJyZW50U3R5bGUgPSBsYXN0bExlZ2VuZFswXS5jdXJyZW50U3R5bGU7XG4gICAgfVxuICAgIGlmICggdHlwZW9mIHRoaXMubGF5ZXIub3B0aW9ucy5sZWdlbmRPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmxheWVyLm9wdGlvbnMubGVnZW5kT3B0aW9ucy5kaXNwbGF5ID09PSBmYWxzZSkge1xuICAgICAgbGFzdGxMZWdlbmQgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdGxMZWdlbmQgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2UuZ2V0TGVnZW5kKHRoaXMuY3VycmVudFN0eWxlLCB0aGlzLnZpZXcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZSA9PT0gdHJ1ZSB8fCAoc291cmNlT3B0aW9ucyBhcyBXTVNEYXRhU291cmNlT3B0aW9ucykuY29udGVudERlcGVuZGVudExlZ2VuZCkge1xuICAgICAgY29uc3Qgc3RhdGUkID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuc3RhdGUkO1xuICAgICAgdGhpcy5zdGF0ZSQkID0gc3RhdGUkXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25WaWV3Q29udHJvbGxlclN0YXRlQ2hhbmdlKCkpO1xuICAgIH0gZWxzZSBpZiAobGFzdGxMZWdlbmQgJiYgbGFzdGxMZWdlbmQubGVuZ3RoICE9PSAwKSB7XG4gICAgICB0aGlzLmxlZ2VuZEl0ZW1zJC5uZXh0KGxhc3RsTGVnZW5kKTtcbiAgICAgIGZvciAoY29uc3QgbGVnZW5kIG9mIGxhc3RsTGVnZW5kKSB7XG4gICAgICAgIHRoaXMuZ2V0TGVnZW5kR3JhcGhpYyhsZWdlbmQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBkZXN0cm95LCB1bnN1YnNjcmliZSB0byB0aGUgbWFwJ3MgdmlldyBzdGF0ZVxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUkJCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXRlJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRMZWdlbmRHcmFwaGljKGl0ZW06IExlZ2VuZCkge1xuICAgIGNvbnN0IHNlY3VyZUlNRyA9IG5ldyBTZWN1cmVJbWFnZVBpcGUodGhpcy5odHRwKTtcbiAgICB0aGlzLmN1cnJlbnRJdGVtVGl0bGUgPSBpdGVtLnRpdGxlO1xuICAgIHNlY3VyZUlNRy50cmFuc2Zvcm0oaXRlbS51cmwpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgaWYgKGVyci5lcnJvcikge1xuICAgICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZ2V0TGVnZW5kID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgcmV0dXJuIGVycjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgobGVnZW5kOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMubGVnZW5kR3JhcGhpY1t0aGlzLmN1cnJlbnRJdGVtVGl0bGVdID0gbGVnZW5kO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGVMZWdlbmRJdGVtKGNvbGxhcHNlZDogYm9vbGVhbiwgaXRlbTogTGVnZW5kKSB7XG4gICAgaXRlbS5jb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZmVydFRvZ2dsZUxlZ2VuZEl0ZW0obmV3TGVnZW5kczogTGVnZW5kW10pOiBMZWdlbmRbXSB7XG4gICAgY29uc3Qgb3V0TGVnZW5kczogTGVnZW5kW10gPSBuZXdMZWdlbmRzO1xuICAgIGNvbnN0IGxhc3RMZWdlbmRzID0gdGhpcy5sYXllci5sZWdlbmQ7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYXN0TGVnZW5kcy5sZW5ndGg7IGkrKykge1xuICAgICAgb3V0TGVnZW5kc1tpXS5jb2xsYXBzZWQgPSBsYXN0TGVnZW5kc1tpXS5jb2xsYXBzZWQ7XG4gICB9XG4gICAgcmV0dXJuIG91dExlZ2VuZHM7XG4gIH1cblxuICBjb21wdXRlSXRlbVRpdGxlKGxheWVyTGVnZW5kKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBhbnk7XG4gICAgaWYgKGxheWVyT3B0aW9ucy50eXBlICE9PSAnd21zJykge1xuICAgICAgcmV0dXJuIG9mKGxheWVyTGVnZW5kLnRpdGxlKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllcnMgPSBsYXllck9wdGlvbnMucGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpO1xuICAgIGNvbnN0IGxvY2FsTGF5ZXJPcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsYXllck9wdGlvbnMpKTsgLy8gdG8gYXZvaWQgdG8gYWx0ZXIgdGhlIG9yaWdpbmFsIG9wdGlvbnMuXG4gICAgbG9jYWxMYXllck9wdGlvbnMucGFyYW1zLkxBWUVSUyA9IGxheWVycy5maW5kKGxheWVyID0+IGxheWVyID09PSBsYXllckxlZ2VuZC50aXRsZSk7XG4gICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZVxuICAgICAgLmdldFdNU09wdGlvbnMobG9jYWxMYXllck9wdGlvbnMpXG4gICAgICAucGlwZShtYXAod21zRGF0YVNvdXJjZU9wdGlvbnMgPT4ge1xuICAgICAgICByZXR1cm4gd21zRGF0YVNvdXJjZU9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UudGl0bGU7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogT24gcmVzb2x1dGlvbiBjaGFuZ2UsIGNvbXB1dGUgdGhlIGVmZmVjdGl2ZSBzY2FsZSBsZXZlbCBhbmQgdXBkYXRlIHRoZVxuICAgKiBsZWdlbmQgYWNjb3JkaW5nbHkuXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIE1hcCByZXNvbHV0aW9uXG4gICAqL1xuICBwcml2YXRlIG9uVmlld0NvbnRyb2xsZXJTdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLnZpZXcgPSB7XG4gICAgICByZXNvbHV0aW9uOiB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRSZXNvbHV0aW9uKCksXG4gICAgICBleHRlbnQ6IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldEV4dGVudCgpLFxuICAgICAgcHJvamVjdGlvbjogdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0T2xQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLFxuICAgICAgc2NhbGU6IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldFNjYWxlKCksXG4gICAgICBzaXplOiB0aGlzLmxheWVyLm1hcC5vbC5nZXRTaXplKClcbiAgICB9IGFzIExlZ2VuZE1hcFZpZXdPcHRpb25zO1xuICAgIHRoaXMudXBkYXRlTGVnZW5kKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBsZWdlbmQgd2l0aCBzY2FsZSBsZXZlbCBhbmQgc3R5bGUgZGVmaW5lXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUxlZ2VuZCgpIHtcbiAgICBsZXQgbGVnZW5kSXRlbXMgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2UuZ2V0TGVnZW5kKHRoaXMuY3VycmVudFN0eWxlLCB0aGlzLnZpZXcpO1xuICAgIGlmICh0aGlzLmxheWVyLmxlZ2VuZCAmJiB0aGlzLmxheWVyLmxlZ2VuZC5sZW5ndGggPiAxKSB7IGxlZ2VuZEl0ZW1zID0gdGhpcy50cmFuc2ZlcnRUb2dnbGVMZWdlbmRJdGVtKGxlZ2VuZEl0ZW1zKTsgfVxuICAgIHRoaXMubGF5ZXIubGVnZW5kID0gbGVnZW5kSXRlbXM7XG5cbiAgICBpZiAobGVnZW5kSXRlbXMubGVuZ3RoID09PSAwICYmIHRoaXMubGVnZW5kSXRlbXMkLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxlZ2VuZEl0ZW1zJC5uZXh0KGxlZ2VuZEl0ZW1zKTtcbiAgICBmb3IgKGNvbnN0IGxlZ2VuZCBvZiB0aGlzLmxlZ2VuZEl0ZW1zJC52YWx1ZSkge1xuICAgICAgdGhpcy5nZXRMZWdlbmRHcmFwaGljKGxlZ2VuZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsaXN0U3R5bGVzKCkge1xuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMubGF5ZXIub3B0aW9ucztcbiAgICBpZiAobGF5ZXJPcHRpb25zICYmIGxheWVyT3B0aW9ucy5sZWdlbmRPcHRpb25zKSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGU7XG4gICAgICBjb25zdCB0aXRsZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmxheWVyLmxlZ2VuZC5kZWZhdWx0Jyk7XG4gICAgICBsZXQgc3R5bGVzQXZhaWxhYmxlID0gW3sgbmFtZTogJycsIHRpdGxlIH0gYXMgSXRlbVN0eWxlT3B0aW9uc107XG4gICAgICBpZiAobGF5ZXJPcHRpb25zLmxlZ2VuZE9wdGlvbnMuc3R5bGVzQXZhaWxhYmxlKSB7XG4gICAgICAgIHN0eWxlc0F2YWlsYWJsZSA9IHN0eWxlc0F2YWlsYWJsZS5jb25jYXQobGF5ZXJPcHRpb25zLmxlZ2VuZE9wdGlvbnMuc3R5bGVzQXZhaWxhYmxlLmZpbHRlcihzQSA9PiAoXG4gICAgICAgICAgc0EubmFtZS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2dpLCAnJykgIT09ICdkZWZhdWx0JyAmJlxuICAgICAgICAgIHNBLm5hbWUubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9naSwgJycpICE9PSAnZGVmYXV0JykpKTtcbiAgICAgIH1cbiAgICAgIHN0eWxlc0F2YWlsYWJsZS5maWx0ZXIoc2EgPT4gIXNhLnRpdGxlKS5tYXAoKHNhKSA9PiBzYS50aXRsZSA9IHNhLm5hbWUpO1xuICAgICAgc3R5bGVzQXZhaWxhYmxlLm1hcChzID0+IHMudGl0bGUgPSBzLnRpdGxlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcy50aXRsZS5zbGljZSgxKS5yZXBsYWNlKC9fL2csICcgJykpO1xuICAgICAgcmV0dXJuIHN0eWxlc0F2YWlsYWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIDtcbiAgfVxuXG4gIG9uQ2hhbmdlU3R5bGUoKSB7XG4gICAgdGhpcy51cGRhdGVMZWdlbmQoKTtcbiAgICBsZXQgU1RZTEVTID0gJyc7XG4gICAgaWYgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIFdNU0RhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vbC5nZXRQYXJhbXMoKS5MQVlFUlMuc3BsaXQoJywnKS5tYXAobGF5ZXIgPT5cbiAgICAgICAgU1RZTEVTICs9IHRoaXMuY3VycmVudFN0eWxlICsgJywnXG4gICAgICApO1xuICAgICAgU1RZTEVTID0gU1RZTEVTLnNsaWNlKDAsIC0xKTtcbiAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vbC51cGRhdGVQYXJhbXMoeyBTVFlMRVMgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Mb2FkSW1hZ2UoaWQ6IHN0cmluZykge1xuICAgIGxldCBlbGVtUmVmOiBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIGlmICh0aGlzLnJlbmRlcmVkTGVnZW5kcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGVsZW1SZWYgPSB0aGlzLnJlbmRlcmVkTGVnZW5kcy5maXJzdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1SZWYgPSB0aGlzLnJlbmRlcmVkTGVnZW5kcy5maW5kKHJlbmRlcmVkTGVnZW5kID0+IHJlbmRlcmVkTGVnZW5kLm5hdGl2ZUVsZW1lbnQuaWQgPT09IGlkKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgfVxuICAgIHRoaXMuaW1hZ2VzSGVpZ2h0W2lkXSA9IGVsZW1SZWYuaGVpZ2h0O1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGVnZW5kSXRlbXMkIHwgYXN5bmMgYXMgaXRlbXNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zLmxlbmd0aDsgZWxzZSBub0l0ZW1zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcy5zbGljZSgpLnJldmVyc2UoKVwiICNyZW5kZXJlZExlZ2VuZHM+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZ2V0TGVnZW5kOyBlbHNlIG5vSXRlbXNcIj5cbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gKm5nSWY9XCJpdGVtLnRpdGxlXCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBpZD1cImxlZ2VuZC10b2dnbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXG4gICAgICAgICAgICBtYXQtbGlzdC1hdmF0YXJcbiAgICAgICAgICAgIGlnb0NvbGxhcHNlXG4gICAgICAgICAgICBbdGFyZ2V0XT1cImxlZ2VuZFwiXG4gICAgICAgICAgICBbY29sbGFwc2VkXT1cIihpdGVtLmNvbGxhcHNlZClcIlxuICAgICAgICAgICAgKHRvZ2dsZSk9XCJ0b2dnbGVMZWdlbmRJdGVtKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgc3ZnSWNvbj1cImNoZXZyb24tdXBcIj5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDxoNCBtYXRMaW5lPnt7Y29tcHV0ZUl0ZW1UaXRsZShpdGVtKSB8IGFzeW5jfX0gPC9oND5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICA8ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kXCIgW25nQ2xhc3NdPVwieyd3aXRoLXRpdGxlJzogaXRlbS50aXRsZX1cIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFN0eWxlICE9PSB1bmRlZmluZWRcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8ubGF5ZXIubGVnZW5kLnNlbGVjdFN0eWxlJyB8IHRyYW5zbGF0ZVwiIFsobmdNb2RlbCldPVwiY3VycmVudFN0eWxlXCJcbiAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VTdHlsZSgpXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc3R5bGUgb2Ygc3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlLm5hbWVcIj57e3N0eWxlLnRpdGxlfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIShpdGVtLmNvbGxhcHNlZClcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnVybFwiPlxuICAgICAgICAgICAgICA8aW1nICNyZW5kZXJlZExlZ2VuZCBpZD1cInt7aXRlbS50aXRsZX19XCIgKGxvYWQpPVwib25Mb2FkSW1hZ2UoaXRlbS50aXRsZSlcIlxuICAgICAgICAgICAgICAgIHNyYz1cInt7bGVnZW5kR3JhcGhpY1tpdGVtLnRpdGxlXX19XCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJ7eydpZ28uZ2VvLmxheWVyLmxlZ2VuZC5sb2FkaW5nTGVnZW5kVGV4dCcgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJpbWFnZXNIZWlnaHRbaXRlbS50aXRsZV08MTZcIj5cbiAgICAgICAgICAgICAgICAgIHt7J2lnby5nZW8ubGF5ZXIubGVnZW5kLm5vTGVnZW5kU2NhbGUnIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJpdGVtLnN0eWxlXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmh0bWxcIlxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaHRtbFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9JdGVtcz5cbiAgICA8c21hbGw+XG4gICAgICB7eydpZ28uZ2VvLmxheWVyLmxlZ2VuZC5ub0xlZ2VuZFRleHQnIHwgdHJhbnNsYXRlfX1cbiAgICA8L3NtYWxsPlxuICA8L25nLXRlbXBsYXRlPlxuXG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItbGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsdUJBQXVCLEVBQUUsWUFBWSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUcxSSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1R2QyxxQ0FBa0M7SUFDaEMsbUNBUXVCO0lBRHJCLHVVQUF5QztJQUUzQyxpQkFBVztJQUNYLDZCQUFZO0lBQUEsWUFBbUM7O0lBQUEsaUJBQUs7SUFDdEQsaUJBQWdCOzs7Ozs7SUFOWixlQUFpQjtJQUFqQiw2QkFBaUIsZ0NBQUE7SUFLUCxlQUFtQztJQUFuQyxzRkFBbUM7OztJQVF2QyxzQ0FBOEQ7SUFBQSxZQUFlO0lBQUEsaUJBQWE7OztJQUFqRCxzQ0FBb0I7SUFBQyxlQUFlO0lBQWYscUNBQWU7Ozs7SUFMckYsMkJBQXdDO0lBQ3BDLHNDQUFnQjtJQUNkLHFDQUVzQztJQUQwQixrUkFBMEIsNlBBQUE7O0lBRXhGLDZJQUEwRjtJQUM1RixpQkFBYTtJQUNqQixpQkFBaUI7SUFDbkIsaUJBQU07OztJQUxF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Q0FBQztJQUVELFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLElBQUksT0FBeUIsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsYUFBaUMsQ0FBQztTQUN4RTthQUFNO1lBQ0wsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsYUFBaUMsQ0FBQztTQUNqSTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxDQUFDOzt3RkFyT1Usb0JBQW9CO3VFQUFwQixvQkFBb0I7Ozs7OztRQ3JCakMsdUZBcURlOzs7UUFyREEsNkRBQTJCOzt1RkRxQjdCLG9CQUFvQjtjQU5oQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBQzVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzZKQUdVLDhCQUE4QjtrQkFBdEMsS0FBSztZQWtDMEIsZUFBZTtrQkFBOUMsWUFBWTttQkFBQyxnQkFBZ0I7WUFVckIsS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkcmVuLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBCZWhhdmlvclN1YmplY3QsIG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IExheWVyLCBJdGVtU3R5bGVPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycyc7XG5pbXBvcnQgeyBMZWdlbmRNYXBWaWV3T3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UsIFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBTZWN1cmVJbWFnZVBpcGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tbGF5ZXItbGVnZW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXllckxlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSB1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgbGVnZW5kIGl0ZW1zXG4gICAqL1xuICBsZWdlbmRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxMZWdlbmRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBtYXAncyByZXNvbHV0aW9uXG4gICAqL1xuICBwcml2YXRlIHN0YXRlJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJsZSBzdHlsZXNcbiAgICovXG4gIHB1YmxpYyBzdHlsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBzdHlsZSB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxuICAgKi9cbiAgcHVibGljIGN1cnJlbnRTdHlsZTtcblxuICAvKipcbiAgICogVGhlIHNjYWxlIHVzZWQgdG8gbWFrZSB0aGUgbGVnZW5kXG4gICAqL1xuICBwcml2YXRlIHNjYWxlOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBleHRlbnQgdXNlZCB0byBtYWtlIHRoZSBsZWdlbmRcbiAgICovXG4gIHByaXZhdGUgdmlldzogTGVnZW5kTWFwVmlld09wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBpbWFnZXMgZGlzcGxheVxuICAgKi9cbiAgQFZpZXdDaGlsZHJlbigncmVuZGVyZWRMZWdlbmQnKSByZW5kZXJlZExlZ2VuZHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAvKipcbiAgICogTGlzdCBvZiBzaXplIG9mIGltYWdlcyBkaXNwbGF5ZWRcbiAgICovXG4gIHB1YmxpYyBpbWFnZXNIZWlnaHQ6IHsgW3NyY0tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuICAvKipcbiAgICogTGF5ZXJcbiAgICovXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICAvKipcbiAgICogaWYgZ2V0TGVnZW5kR3JhcGhpYyBpcyBhdXRob3JpemVkXG4gICAqL1xuICBwdWJsaWMgZ2V0TGVnZW5kID0gdHJ1ZTtcblxuICAvKipcbiAgICogYWN0aXZlTGVnZW5kXG4gICAqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAvKipcbiAgICogT24gaW5pdCwgc3Vic2NyaWJlIHRvIHRoZSBtYXAncyByZXNvbHV0aW9uIGFuZCB1cGRhdGUgdGhlIGxlZ2VuZCBhY2NvcmRpbmdseVxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgbGV0IGxhc3RsTGVnZW5kID0gdGhpcy5sYXllci5sZWdlbmQ7XG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmxpc3RTdHlsZXMoKTtcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zID0gdGhpcy5sYXllci5vcHRpb25zLnNvdXJjZS5vcHRpb25zIGFzIGFueTtcbiAgICBpZiAoc291cmNlT3B0aW9ucyAmJiBzb3VyY2VPcHRpb25zLnBhcmFtcyAmJiBzb3VyY2VPcHRpb25zLnBhcmFtcy5TVFlMRVMpIHtcbiAgICAgIC8vIGlmIGEgc3R5bGVzIGlzIHByb3ZpZGVkIGludG8gdGhlIGxheWVycyB3bXMgcGFyYW1zXG4gICAgICB0aGlzLmN1cnJlbnRTdHlsZSA9IHRoaXMuc3R5bGVzLmZpbmQoc3R5bGUgPT4gc3R5bGUubmFtZSA9PT0gc291cmNlT3B0aW9ucy5wYXJhbXMuU1RZTEVTKS5uYW1lO1xuICAgIH0gZWxzZSBpZiAoIWxhc3RsTGVnZW5kKSB7XG4gICAgICAvLyBpZiBubyBsZWdlbmQgaXMgbWFudWFsbHkgcHJvdmlkZWRcbiAgICAgIGlmICh0aGlzLnN0eWxlcyAmJiB0aGlzLnN0eWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFN0eWxlID0gdGhpcy5zdHlsZXNbMF0ubmFtZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuc3R5bGVzICYmIHRoaXMuc3R5bGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudFN0eWxlID0gbGFzdGxMZWdlbmRbMF0uY3VycmVudFN0eWxlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMubGF5ZXIub3B0aW9ucy5sZWdlbmRPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmxheWVyLm9wdGlvbnMubGVnZW5kT3B0aW9ucy5kaXNwbGF5ID09PSBmYWxzZSkge1xuICAgICAgbGFzdGxMZWdlbmQgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdGxMZWdlbmQgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2UuZ2V0TGVnZW5kKHRoaXMuY3VycmVudFN0eWxlLCB0aGlzLnZpZXcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZSB8fCAoc291cmNlT3B0aW9ucyBhcyBXTVNEYXRhU291cmNlT3B0aW9ucykuY29udGVudERlcGVuZGVudExlZ2VuZCkge1xuICAgICAgY29uc3Qgc3RhdGUkID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuc3RhdGUkO1xuICAgICAgdGhpcy5zdGF0ZSQkID0gc3RhdGUkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uVmlld0NvbnRyb2xsZXJTdGF0ZUNoYW5nZSgpKTtcbiAgICB9IGVsc2UgaWYgKGxhc3RsTGVnZW5kICYmIGxhc3RsTGVnZW5kLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5sZWdlbmRJdGVtcyQubmV4dChsYXN0bExlZ2VuZCk7XG4gICAgICBmb3IgKGNvbnN0IGxlZ2VuZCBvZiBsYXN0bExlZ2VuZCkge1xuICAgICAgICB0aGlzLmdldExlZ2VuZEdyYXBoaWMobGVnZW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT24gZGVzdHJveSwgdW5zdWJzY3JpYmUgdG8gdGhlIG1hcCdzIHZpZXcgc3RhdGVcbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN0YXRlJCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdGF0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TGVnZW5kR3JhcGhpYyhpdGVtOiBMZWdlbmQpIHtcbiAgICBpZiAoaXRlbS51cmwpIHtcbiAgICAgIGNvbnN0IHNlY3VyZUlNRyA9IG5ldyBTZWN1cmVJbWFnZVBpcGUodGhpcy5odHRwKTtcbiAgICAgIHNlY3VyZUlNRy50cmFuc2Zvcm0oaXRlbS51cmwpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGlmIChlcnIuZXJyb3IpIHtcbiAgICAgICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5nZXRMZWdlbmQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgcmV0dXJuIGVycjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKG9ic0xlZ0dyYXBoID0+IHtcbiAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLmxlZ2VuZEl0ZW1zJC52YWx1ZS5maW5kSW5kZXgobGVnID0+IGxlZy50aXRsZSA9PT0gaXRlbS50aXRsZSk7XG4gICAgICAgICAgY29uc3QgbGVnZW5kR3JhcGggPSBvYnNMZWdHcmFwaCBhcyBzdHJpbmc7XG4gICAgICAgICAgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWVbaWR4XS5pbWdHcmFwaFZhbHVlID0gbGVnZW5kR3JhcGg7XG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlTGVnZW5kSXRlbShjb2xsYXBzZWQ6IGJvb2xlYW4sIGl0ZW06IExlZ2VuZCkge1xuICAgIGl0ZW0uY29sbGFwc2VkID0gY29sbGFwc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2ZlcnRUb2dnbGVMZWdlbmRJdGVtKG5ld0xlZ2VuZHM6IExlZ2VuZFtdKTogTGVnZW5kW10ge1xuICAgIGNvbnN0IG91dExlZ2VuZHM6IExlZ2VuZFtdID0gbmV3TGVnZW5kcztcbiAgICBjb25zdCBsYXN0TGVnZW5kcyA9IHRoaXMubGF5ZXIubGVnZW5kO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGFzdExlZ2VuZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG91dExlZ2VuZHNbaV0uY29sbGFwc2VkID0gbGFzdExlZ2VuZHNbaV0uY29sbGFwc2VkO1xuICAgfVxuICAgIHJldHVybiBvdXRMZWdlbmRzO1xuICB9XG5cbiAgY29tcHV0ZUl0ZW1UaXRsZShsYXllckxlZ2VuZCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgbGF5ZXJPcHRpb25zID0gdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55O1xuICAgIGlmIChsYXllck9wdGlvbnMudHlwZSAhPT0gJ3dtcycpIHtcbiAgICAgIHJldHVybiBvZihsYXllckxlZ2VuZC50aXRsZSk7XG4gICAgfVxuXG4gICAgY29uc3QgbGF5ZXJzID0gbGF5ZXJPcHRpb25zLnBhcmFtcy5MQVlFUlMuc3BsaXQoJywnKTtcbiAgICBjb25zdCBsb2NhbExheWVyT3B0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobGF5ZXJPcHRpb25zKSk7IC8vIHRvIGF2b2lkIHRvIGFsdGVyIHRoZSBvcmlnaW5hbCBvcHRpb25zLlxuICAgIGxvY2FsTGF5ZXJPcHRpb25zLnBhcmFtcy5MQVlFUlMgPSBsYXllcnMuZmluZChsYXllciA9PiBsYXllciA9PT0gbGF5ZXJMZWdlbmQudGl0bGUpO1xuICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2VcbiAgICAgIC5nZXRXTVNPcHRpb25zKGxvY2FsTGF5ZXJPcHRpb25zKVxuICAgICAgLnBpcGUobWFwKHdtc0RhdGFTb3VyY2VPcHRpb25zID0+IHtcbiAgICAgICAgcmV0dXJuIHdtc0RhdGFTb3VyY2VPcHRpb25zLl9sYXllck9wdGlvbnNGcm9tU291cmNlLnRpdGxlO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIHJlc29sdXRpb24gY2hhbmdlLCBjb21wdXRlIHRoZSBlZmZlY3RpdmUgc2NhbGUgbGV2ZWwgYW5kIHVwZGF0ZSB0aGVcbiAgICogbGVnZW5kIGFjY29yZGluZ2x5LlxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiBNYXAgcmVzb2x1dGlvblxuICAgKi9cbiAgcHJpdmF0ZSBvblZpZXdDb250cm9sbGVyU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy52aWV3ID0ge1xuICAgICAgcmVzb2x1dGlvbjogdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpLFxuICAgICAgZXh0ZW50OiB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRFeHRlbnQoKSxcbiAgICAgIHByb2plY3Rpb246IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpLmdldENvZGUoKSxcbiAgICAgIHNjYWxlOiB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRTY2FsZSgpLFxuICAgICAgc2l6ZTogdGhpcy5sYXllci5tYXAub2wuZ2V0U2l6ZSgpXG4gICAgfSBhcyBMZWdlbmRNYXBWaWV3T3B0aW9ucztcbiAgICB0aGlzLnVwZGF0ZUxlZ2VuZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbGVnZW5kIHdpdGggc2NhbGUgbGV2ZWwgYW5kIHN0eWxlIGRlZmluZVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVMZWdlbmQoKSB7XG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gdGhpcy5sYXllci5kYXRhU291cmNlLmdldExlZ2VuZCh0aGlzLmN1cnJlbnRTdHlsZSwgdGhpcy52aWV3KTtcbiAgICBpZiAodGhpcy5sYXllci5sZWdlbmQgJiYgdGhpcy5sYXllci5sZWdlbmQubGVuZ3RoID4gMSkgeyBsZWdlbmRJdGVtcyA9IHRoaXMudHJhbnNmZXJ0VG9nZ2xlTGVnZW5kSXRlbShsZWdlbmRJdGVtcyk7IH1cbiAgICB0aGlzLmxheWVyLmxlZ2VuZCA9IGxlZ2VuZEl0ZW1zO1xuXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmxlZ2VuZEl0ZW1zJC52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sZWdlbmRJdGVtcyQubmV4dChsZWdlbmRJdGVtcyk7XG4gICAgZm9yIChjb25zdCBsZWdlbmQgb2YgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUpIHtcbiAgICAgIHRoaXMuZ2V0TGVnZW5kR3JhcGhpYyhsZWdlbmQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdFN0eWxlcygpIHtcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSB0aGlzLmxheWVyLm9wdGlvbnM7XG4gICAgaWYgKGxheWVyT3B0aW9ucyAmJiBsYXllck9wdGlvbnMubGVnZW5kT3B0aW9ucykge1xuICAgICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xuICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5sYXllci5sZWdlbmQuZGVmYXVsdCcpO1xuICAgICAgbGV0IHN0eWxlc0F2YWlsYWJsZSA9IFt7IG5hbWU6ICcnLCB0aXRsZSB9IGFzIEl0ZW1TdHlsZU9wdGlvbnNdO1xuICAgICAgaWYgKGxheWVyT3B0aW9ucy5sZWdlbmRPcHRpb25zLnN0eWxlc0F2YWlsYWJsZSkge1xuICAgICAgICBzdHlsZXNBdmFpbGFibGUgPSBzdHlsZXNBdmFpbGFibGUuY29uY2F0KGxheWVyT3B0aW9ucy5sZWdlbmRPcHRpb25zLnN0eWxlc0F2YWlsYWJsZS5maWx0ZXIoc0EgPT4gKFxuICAgICAgICAgIHNBLm5hbWUubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9naSwgJycpICE9PSAnZGVmYXVsdCcgJiZcbiAgICAgICAgICBzQS5uYW1lLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZ2ksICcnKSAhPT0gJ2RlZmF1dCcpKSk7XG4gICAgICB9XG4gICAgICBzdHlsZXNBdmFpbGFibGUuZmlsdGVyKHNhID0+ICFzYS50aXRsZSkubWFwKChzYSkgPT4gc2EudGl0bGUgPSBzYS5uYW1lKTtcbiAgICAgIHN0eWxlc0F2YWlsYWJsZS5tYXAocyA9PiBzLnRpdGxlID0gcy50aXRsZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHMudGl0bGUuc2xpY2UoMSkucmVwbGFjZSgvXy9nLCAnICcpKTtcbiAgICAgIHJldHVybiBzdHlsZXNBdmFpbGFibGU7XG4gICAgfVxuICAgIHJldHVybiA7XG4gIH1cblxuICBvbkNoYW5nZVN0eWxlKCkge1xuICAgIHRoaXMudXBkYXRlTGVnZW5kKCk7XG4gICAgbGV0IFNUWUxFUyA9ICcnO1xuICAgIGlmICh0aGlzLmxheWVyLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBXTVNEYXRhU291cmNlKSB7XG4gICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wuZ2V0UGFyYW1zKCkuTEFZRVJTLnNwbGl0KCcsJykubWFwKGxheWVyID0+XG4gICAgICAgIFNUWUxFUyArPSB0aGlzLmN1cnJlbnRTdHlsZSArICcsJ1xuICAgICAgKTtcbiAgICAgIFNUWUxFUyA9IFNUWUxFUy5zbGljZSgwLCAtMSk7XG4gICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wudXBkYXRlUGFyYW1zKHsgU1RZTEVTIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uTG9hZEltYWdlKGlkOiBzdHJpbmcpIHtcbiAgICBsZXQgZWxlbVJlZjogSFRNTEltYWdlRWxlbWVudDtcbiAgICBpZiAodGhpcy5yZW5kZXJlZExlZ2VuZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBlbGVtUmVmID0gdGhpcy5yZW5kZXJlZExlZ2VuZHMuZmlyc3QubmF0aXZlRWxlbWVudCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtUmVmID0gdGhpcy5yZW5kZXJlZExlZ2VuZHMuZmluZChyZW5kZXJlZExlZ2VuZCA9PiByZW5kZXJlZExlZ2VuZC5uYXRpdmVFbGVtZW50LmlkID09PSBpZCkubmF0aXZlRWxlbWVudCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIH1cbiAgICB0aGlzLmltYWdlc0hlaWdodFtpZF0gPSBlbGVtUmVmLmhlaWdodDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2VuZEl0ZW1zJCB8IGFzeW5jIGFzIGl0ZW1zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcy5sZW5ndGg7IGVsc2Ugbm9JdGVtc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMuc2xpY2UoKS5yZXZlcnNlKClcIiAjcmVuZGVyZWRMZWdlbmRzPlxuICAgICAgPGRpdiAqbmdJZj1cImdldExlZ2VuZDsgZWxzZSBub0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0lmPVwiaXRlbS50aXRsZVwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgaWQ9XCJsZWdlbmQtdG9nZ2xlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxuICAgICAgICAgICAgbWF0LWxpc3QtYXZhdGFyXG4gICAgICAgICAgICBpZ29Db2xsYXBzZVxuICAgICAgICAgICAgW3RhcmdldF09XCJsZWdlbmRcIlxuICAgICAgICAgICAgW2NvbGxhcHNlZF09XCIoaXRlbS5jb2xsYXBzZWQpXCJcbiAgICAgICAgICAgICh0b2dnbGUpPVwidG9nZ2xlTGVnZW5kSXRlbSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIHN2Z0ljb249XCJjaGV2cm9uLXVwXCI+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8aDQgbWF0TGluZT57e2NvbXB1dGVJdGVtVGl0bGUoaXRlbSkgfCBhc3luY319IDwvaDQ+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgPGRpdiAjbGVnZW5kIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZFwiIFtuZ0NsYXNzXT1cInsnd2l0aC10aXRsZSc6IGl0ZW0udGl0bGV9XCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRTdHlsZSAhPT0gdW5kZWZpbmVkXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLmxlZ2VuZC5zZWxlY3RTdHlsZScgfCB0cmFuc2xhdGVcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRTdHlsZVwiXG4gICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlU3R5bGUoKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHN0eWxlIG9mIHN0eWxlc1wiIFt2YWx1ZV09XCJzdHlsZS5uYW1lXCI+e3tzdHlsZS50aXRsZX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiEoaXRlbS5jb2xsYXBzZWQpXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS51cmxcIj5cbiAgICAgICAgICAgICAgPGltZyAjcmVuZGVyZWRMZWdlbmQgaWQ9XCJ7e2l0ZW0udGl0bGV9fVwiIChsb2FkKT1cIm9uTG9hZEltYWdlKGl0ZW0udGl0bGUpXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJ7e1tpdGVtLmltZ0dyYXBoVmFsdWVdfX1cIlxuICAgICAgICAgICAgICAgIGFsdD1cInt7J2lnby5nZW8ubGF5ZXIubGVnZW5kLmxvYWRpbmdMZWdlbmRUZXh0JyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImltYWdlc0hlaWdodFtpdGVtLnRpdGxlXTwxNlwiPlxuICAgICAgICAgICAgICAgICAge3snaWdvLmdlby5sYXllci5sZWdlbmQubm9MZWdlbmRTY2FsZScgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0uaHRtbCB8IHNhbml0aXplSHRtbFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5odG1sXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNub0l0ZW1zPlxuICAgIDxzbWFsbD5cbiAgICAgIHt7J2lnby5nZW8ubGF5ZXIubGVnZW5kLm5vTGVnZW5kVGV4dCcgfCB0cmFuc2xhdGV9fVxuICAgIDwvc21hbGw+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1001,7 +1001,7 @@ LayerListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerLis
1001
1001
  i0.ɵɵproperty("ngIf", !ctx.selection && ctx.layerTool && ctx.activeLayer);
1002
1002
  i0.ɵɵadvance(1);
1003
1003
  i0.ɵɵproperty("ngIf", ctx.selection && ctx.layers.length > 0);
1004
- } }, styles: ["[_nghost-%COMP%] .igo-list-no-tools[_ngcontent-%COMP%]{height:calc(100% - 57px);padding-top:8px}[_nghost-%COMP%] .igo-list-tools-single[_ngcontent-%COMP%]{height:calc(100% - 153px);padding-top:8px}[_nghost-%COMP%] .igo-list-tools-multi[_ngcontent-%COMP%]{height:calc(100% - 191px);padding-top:8px}mat-form-field.inputFilter[_ngcontent-%COMP%]{width:calc(100% - 100px);max-width:200px}.igo-layer-actions-container[_ngcontent-%COMP%]{width:calc(100% - 5px);padding-left:4px}.igo-layer-actions-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{text-align:center}mat-list-item[_ngcontent-%COMP%] .mat-list-item-content{margin-bottom:10px}mat-checkbox[_ngcontent-%COMP%] .mat-checkbox-inner-container{margin-left:8px;margin-right:16px}#opacity-slider[_ngcontent-%COMP%]{float:left;min-width:unset;width:110px;left:10px;top:10px}.igo-layer-button-group[_ngcontent-%COMP%], .actions-buttons-multi[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:row-reverse;overflow-x:auto}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar{height:4px}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar-track, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#f1f1f1}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#888}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#555}.igo-layer-button-group[_ngcontent-%COMP%]{padding-top:5px}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%]{height:unset}#opacity-menu[_ngcontent-%COMP%]{max-width:unset;width:132px;height:50px}#opacity-menu[_ngcontent-%COMP%] .mat-menu-content[_ngcontent-%COMP%]:not(:empty){padding-top:20px}.select-all[_ngcontent-%COMP%] .mat-list-item-content{margin:0}"], changeDetection: 0 });
1004
+ } }, styles: ["[_nghost-%COMP%] .igo-list-no-tools[_ngcontent-%COMP%]{height:calc(100% - 57px);padding-top:8px}[_nghost-%COMP%] .igo-list-tools-single[_ngcontent-%COMP%]{height:calc(100% - 153px);padding-top:8px}[_nghost-%COMP%] .igo-list-tools-multi[_ngcontent-%COMP%]{height:calc(100% - 191px);padding-top:8px}mat-form-field.inputFilter[_ngcontent-%COMP%]{width:calc(100% - 100px);max-width:200px}.igo-layer-actions-container[_ngcontent-%COMP%]{width:calc(100% - 5px);padding-left:4px}.igo-layer-actions-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{text-align:center}mat-list-item[_ngcontent-%COMP%] .mat-list-item-content{margin-bottom:10px}mat-checkbox[_ngcontent-%COMP%] .mat-checkbox-inner-container{margin-left:8px;margin-right:16px}#opacity-slider[_ngcontent-%COMP%]{float:left;min-width:unset;width:110px;left:10px;top:10px}.igo-layer-button-group[_ngcontent-%COMP%], .actions-buttons-multi[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:row-reverse;overflow-x:auto;overflow-y:hidden}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar{height:4px}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar-track, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#f1f1f1}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#888}.igo-layer-button-group[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover, .actions-buttons-multi[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#555}.igo-layer-button-group[_ngcontent-%COMP%]{padding-top:5px}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%]{height:unset}#opacity-menu[_ngcontent-%COMP%]{max-width:unset;width:132px;height:50px}#opacity-menu[_ngcontent-%COMP%] .mat-menu-content[_ngcontent-%COMP%]:not(:empty){padding-top:20px}.select-all[_ngcontent-%COMP%] .mat-list-item-content{margin:0}"], changeDetection: 0 });
1005
1005
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerListComponent, [{
1006
1006
  type: Component,
1007
1007
  args: [{
@@ -15,7 +15,7 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
15
15
  import { MatSliderModule } from '@angular/material/slider';
16
16
  import { MatTooltipModule } from '@angular/material/tooltip';
17
17
  import { IgoLanguageModule } from '@igo2/core';
18
- import { IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule } from '@igo2/common';
18
+ import { IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoCustomHtmlModule } from '@igo2/common';
19
19
  import { LayerService } from './shared/layer.service';
20
20
  import { StyleService } from './shared/style.service';
21
21
  import { LayerListToolService } from './layer-list-tool/layer-list-tool.service';
@@ -75,7 +75,8 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
75
75
  IgoCollapsibleModule,
76
76
  IgoImageModule,
77
77
  IgoPanelModule,
78
- IgoMatBadgeIconModule
78
+ IgoMatBadgeIconModule,
79
+ IgoCustomHtmlModule
79
80
  ]] });
80
81
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoLayerModule, [{
81
82
  type: NgModule,
@@ -101,7 +102,8 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
101
102
  IgoCollapsibleModule,
102
103
  IgoImageModule,
103
104
  IgoPanelModule,
104
- IgoMatBadgeIconModule
105
+ IgoMatBadgeIconModule,
106
+ IgoCustomHtmlModule
105
107
  ],
106
108
  exports: [
107
109
  LayerItemComponent,
@@ -155,7 +157,8 @@ IgoLayerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
155
157
  IgoCollapsibleModule,
156
158
  IgoImageModule,
157
159
  IgoPanelModule,
158
- IgoMatBadgeIconModule], exports: [LayerItemComponent,
160
+ IgoMatBadgeIconModule,
161
+ IgoCustomHtmlModule], exports: [LayerItemComponent,
159
162
  LayerLegendItemComponent,
160
163
  LayerLegendComponent,
161
164
  LayerListComponent,
@@ -168,4 +171,4 @@ i0.ɵɵsetComponentScope(LayerItemComponent, [i1.MatListItem, i2.NgIf, i3.MatChe
168
171
  i0.ɵɵsetComponentScope(LayerLegendItemComponent, [i1.MatListItem, i4.MatLine, i5.MatTooltip, LayerLegendComponent], []);
169
172
  i0.ɵɵsetComponentScope(LayerListComponent, [i1.MatList, i2.NgIf, LayerListToolComponent, i1.MatListItem, i3.MatCheckbox, i10.MatDivider, i11.ListComponent, i2.NgClass, i2.NgForOf, LayerItemComponent, i11.ListItemDirective, i11.PanelComponent, i6.MatButton, i5.MatTooltip, i7.MatIcon, i8.MatBadge, i12.MatMenuTrigger, i12.MatMenu, i13.MatSlider, i2.NgTemplateOutlet, i14.NgControlStatus, i14.NgModel], [i2.AsyncPipe, i9.TranslatePipe]);
170
173
  i0.ɵɵsetComponentScope(LayerLegendListComponent, [i2.NgIf, i15.MatSlideToggle, i5.MatTooltip, i10.MatDivider, i11.ListComponent, i2.NgForOf, LayerLegendItemComponent, i11.ListItemDirective], [i9.TranslatePipe, i2.AsyncPipe]);
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxF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QUFrQjtRQUNsQixZQUFZO1FBQ1osV0FBVztRQUNYLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2IsYUFBYTtRQUNiLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2IsZUFBZTtRQUNmLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsY0FBYztRQUNkLGNBQWM7UUFDZCxxQkFBcUIsYUFHckIsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0Qix3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLCtCQUErQjtRQUMvQiwyQkFBMkI7dUJBRzNCLGtCQUFrQixzSkFFbEIsb0JBQW9CO3VCQURwQix3QkFBd0IsOENBQ3hCLG9CQUFvQjt1QkFDcEIsa0JBQWtCLHdCQUNsQixzQkFBc0IsNkZBSnRCLGtCQUFrQjt1QkFLbEIsd0JBQXdCLDhGQUp4Qix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQge1xuICBJZ29MaXN0TW9kdWxlLFxuICBJZ29Db2xsYXBzaWJsZU1vZHVsZSxcbiAgSWdvSW1hZ2VNb2R1bGUsXG4gIElnb1BhbmVsTW9kdWxlLFxuICBJZ29NYXRCYWRnZUljb25Nb2R1bGVcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcblxuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvbGF5ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zdHlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IExheWVyTGlzdFRvb2xTZXJ2aWNlIH0gZnJvbSAnLi9sYXllci1saXN0LXRvb2wvbGF5ZXItbGlzdC10b29sLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5ZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1sZWdlbmQvbGF5ZXItbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXllckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2xheWVyLWxpc3QvbGF5ZXItbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJMaXN0VG9vbENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGlzdC10b29sL2xheWVyLWxpc3QtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJMaXN0QmluZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vbGF5ZXItbGlzdC9sYXllci1saXN0LWJpbmRpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IExheWVyTGVnZW5kTGlzdEJpbmRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2xheWVyLWxlZ2VuZC1saXN0L2xheWVyLWxlZ2VuZC1saXN0LWJpbmRpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRyYWNrRmVhdHVyZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdHJhY2stZmVhdHVyZS1idXR0b24vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyTGVnZW5kTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGVnZW5kLWxpc3QvbGF5ZXItbGVnZW5kLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyTGVnZW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGVnZW5kLWl0ZW0vbGF5ZXItbGVnZW5kLWl0ZW0uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlLFxuICAgIElnb0xpc3RNb2R1bGUsXG4gICAgSWdvQ29sbGFwc2libGVNb2R1bGUsXG4gICAgSWdvSW1hZ2VNb2R1bGUsXG4gICAgSWdvUGFuZWxNb2R1bGUsXG4gICAgSWdvTWF0QmFkZ2VJY29uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBMYXllckl0ZW1Db21wb25lbnQsXG4gICAgTGF5ZXJMZWdlbmRJdGVtQ29tcG9uZW50LFxuICAgIExheWVyTGVnZW5kQ29tcG9uZW50LFxuICAgIExheWVyTGlzdENvbXBvbmVudCxcbiAgICBMYXllckxpc3RUb29sQ29tcG9uZW50LFxuICAgIExheWVyTGVnZW5kTGlzdENvbXBvbmVudCxcbiAgICBMYXllckxpc3RCaW5kaW5nRGlyZWN0aXZlLFxuICAgIExheWVyTGVnZW5kTGlzdEJpbmRpbmdEaXJlY3RpdmUsXG4gICAgVHJhY2tGZWF0dXJlQnV0dG9uQ29tcG9uZW50XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIExheWVySXRlbUNvbXBvbmVudCxcbiAgICBMYXllckxlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTGF5ZXJMZWdlbmRDb21wb25lbnQsXG4gICAgTGF5ZXJMaXN0Q29tcG9uZW50LFxuICAgIExheWVyTGlzdFRvb2xDb21wb25lbnQsXG4gICAgTGF5ZXJMZWdlbmRMaXN0Q29tcG9uZW50LFxuICAgIExheWVyTGlzdEJpbmRpbmdEaXJlY3RpdmUsXG4gICAgTGF5ZXJMZWdlbmRMaXN0QmluZGluZ0RpcmVjdGl2ZSxcbiAgICBUcmFja0ZlYXR1cmVCdXR0b25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJZ29MYXllck1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvTGF5ZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb0xheWVyTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbTGF5ZXJTZXJ2aWNlLCBTdHlsZVNlcnZpY2UsIExheWVyTGlzdFRvb2xTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxF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LCtCQUErQjtRQUMvQiwyQkFBMkIsYUEzQzNCLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsWUFBWTtRQUNaLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGFBQWE7UUFDYixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2Isb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxjQUFjO1FBQ2QscUJBQXFCO1FBQ3JCLG1CQUFtQixhQUduQixrQkFBa0I7UUFDbEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsc0JBQXNCO1FBQ3RCLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIsK0JBQStCO1FBQy9CLDJCQUEyQjt1QkFHM0Isa0JBQWtCLHNKQUVsQixvQkFBb0I7dUJBRHBCLHdCQUF3Qiw4Q0FDeEIsb0JBQW9CO3VCQUNwQixrQkFBa0Isd0JBQ2xCLHNCQUFzQiw2RkFKdEIsa0JBQWtCO3VCQUtsQix3QkFBd0IsOEZBSnhCLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7XG4gIElnb0xpc3RNb2R1bGUsXG4gIElnb0NvbGxhcHNpYmxlTW9kdWxlLFxuICBJZ29JbWFnZU1vZHVsZSxcbiAgSWdvUGFuZWxNb2R1bGUsXG4gIElnb01hdEJhZGdlSWNvbk1vZHVsZSxcbiAgSWdvQ3VzdG9tSHRtbE1vZHVsZVxufSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3N0eWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5ZXJMaXN0VG9vbFNlcnZpY2UgfSBmcm9tICcuL2xheWVyLWxpc3QtdG9vbC9sYXllci1saXN0LXRvb2wuc2VydmljZSc7XG5pbXBvcnQgeyBMYXllckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2xheWVyLWl0ZW0vbGF5ZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGlzdC9sYXllci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXllckxpc3RUb29sQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1saXN0LXRvb2wvbGF5ZXItbGlzdC10b29sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXllckxpc3RCaW5kaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9sYXllci1saXN0L2xheWVyLWxpc3QtYmluZGluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGF5ZXJMZWdlbmRMaXN0QmluZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vbGF5ZXItbGVnZW5kLWxpc3QvbGF5ZXItbGVnZW5kLWxpc3QtYmluZGluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVHJhY2tGZWF0dXJlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi90cmFjay1mZWF0dXJlLWJ1dHRvbi90cmFjay1mZWF0dXJlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJMZWdlbmRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1sZWdlbmQtbGlzdC9sYXllci1sZWdlbmQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJMZWdlbmRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1sZWdlbmQtaXRlbS9sYXllci1sZWdlbmQtaXRlbS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRTbGlkZXJNb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGUsXG4gICAgSWdvTGlzdE1vZHVsZSxcbiAgICBJZ29Db2xsYXBzaWJsZU1vZHVsZSxcbiAgICBJZ29JbWFnZU1vZHVsZSxcbiAgICBJZ29QYW5lbE1vZHVsZSxcbiAgICBJZ29NYXRCYWRnZUljb25Nb2R1bGUsXG4gICAgSWdvQ3VzdG9tSHRtbE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTGF5ZXJJdGVtQ29tcG9uZW50LFxuICAgIExheWVyTGVnZW5kSXRlbUNvbXBvbmVudCxcbiAgICBMYXllckxlZ2VuZENvbXBvbmVudCxcbiAgICBMYXllckxpc3RDb21wb25lbnQsXG4gICAgTGF5ZXJMaXN0VG9vbENvbXBvbmVudCxcbiAgICBMYXllckxlZ2VuZExpc3RDb21wb25lbnQsXG4gICAgTGF5ZXJMaXN0QmluZGluZ0RpcmVjdGl2ZSxcbiAgICBMYXllckxlZ2VuZExpc3RCaW5kaW5nRGlyZWN0aXZlLFxuICAgIFRyYWNrRmVhdHVyZUJ1dHRvbkNvbXBvbmVudFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBMYXllckl0ZW1Db21wb25lbnQsXG4gICAgTGF5ZXJMZWdlbmRJdGVtQ29tcG9uZW50LFxuICAgIExheWVyTGVnZW5kQ29tcG9uZW50LFxuICAgIExheWVyTGlzdENvbXBvbmVudCxcbiAgICBMYXllckxpc3RUb29sQ29tcG9uZW50LFxuICAgIExheWVyTGVnZW5kTGlzdENvbXBvbmVudCxcbiAgICBMYXllckxpc3RCaW5kaW5nRGlyZWN0aXZlLFxuICAgIExheWVyTGVnZW5kTGlzdEJpbmRpbmdEaXJlY3RpdmUsXG4gICAgVHJhY2tGZWF0dXJlQnV0dG9uQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWdvTGF5ZXJNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0xheWVyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBJZ29MYXllck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW0xheWVyU2VydmljZSwgU3R5bGVTZXJ2aWNlLCBMYXllckxpc3RUb29sU2VydmljZV1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -5,6 +5,7 @@ import stylefunction from 'ol-mapbox-style/dist/stylefunction';
5
5
  import { ObjectUtils } from '@igo2/utils';
6
6
  import { OSMDataSource, FeatureDataSource, XYZDataSource, TileDebugDataSource, WFSDataSource, WMTSDataSource, WMSDataSource, CartoDataSource, ImageArcGISRestDataSource, ArcGISRestDataSource, TileArcGISRestDataSource, WebSocketDataSource, MVTDataSource, ClusterDataSource } from '../../datasource';
7
7
  import { ImageLayer, TileLayer, VectorLayer, VectorTileLayer } from './layers';
8
+ import { computeMVTOptionsOnHover } from '../utils/layer.utils';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/common/http";
10
11
  import * as i2 from "./style.service";
@@ -50,14 +51,16 @@ export class LayerService {
50
51
  layer = this.createImageLayer(layerOptions);
51
52
  break;
52
53
  case MVTDataSource:
53
- layer = this.createVectorTileLayer(layerOptions);
54
+ const _layerOptions = computeMVTOptionsOnHover(layerOptions);
55
+ layer = this.createVectorTileLayer(_layerOptions);
54
56
  break;
55
57
  default:
56
58
  break;
57
59
  }
58
60
  return layer;
59
61
  }
60
- createAsyncLayer(layerOptions, detailedContextUri) {
62
+ createAsyncLayer(_layerOptions, detailedContextUri) {
63
+ const layerOptions = computeMVTOptionsOnHover(_layerOptions);
61
64
  if (layerOptions.source) {
62
65
  return new Observable(d => d.next(this.createLayer(layerOptions)));
63
66
  }
@@ -78,7 +81,7 @@ export class LayerService {
78
81
  }
79
82
  createVectorLayer(layerOptions) {
80
83
  let style;
81
- let olLayer;
84
+ let igoLayer;
82
85
  if (layerOptions.style !== undefined) {
83
86
  style = this.styleService.createStyle(layerOptions.style);
84
87
  }
@@ -91,7 +94,7 @@ export class LayerService {
91
94
  layerOptions.style = feature => {
92
95
  return serviceStyle.createStyleByAttribute(feature, layerOptions.styleByAttribute);
93
96
  };
94
- olLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
97
+ igoLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
95
98
  }
96
99
  if (layerOptions.source instanceof ClusterDataSource) {
97
100
  const serviceStyle = this.styleService;
@@ -99,20 +102,20 @@ export class LayerService {
99
102
  layerOptions.style = feature => {
100
103
  return serviceStyle.createClusterStyle(feature, layerOptions.clusterParam, baseStyle);
101
104
  };
102
- olLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
105
+ igoLayer = new VectorLayer(layerOptions, this.messageService, this.authInterceptor);
103
106
  }
104
107
  const layerOptionsOl = Object.assign({}, layerOptions, {
105
108
  style
106
109
  });
107
- if (!olLayer) {
108
- olLayer = new VectorLayer(layerOptionsOl, this.messageService, this.authInterceptor);
110
+ if (!igoLayer) {
111
+ igoLayer = new VectorLayer(layerOptionsOl, this.messageService, this.authInterceptor);
109
112
  }
110
- this.applyMapboxStyle(olLayer, layerOptionsOl);
111
- return olLayer;
113
+ this.applyMapboxStyle(igoLayer, layerOptionsOl);
114
+ return igoLayer;
112
115
  }
113
116
  createVectorTileLayer(layerOptions) {
114
117
  let style;
115
- let olLayer;
118
+ let igoLayer;
116
119
  if (layerOptions.style !== undefined) {
117
120
  style = this.styleService.createStyle(layerOptions.style);
118
121
  }
@@ -121,16 +124,16 @@ export class LayerService {
121
124
  layerOptions.style = feature => {
122
125
  return serviceStyle.createStyleByAttribute(feature, layerOptions.styleByAttribute);
123
126
  };
124
- olLayer = new VectorTileLayer(layerOptions, this.messageService, this.authInterceptor);
127
+ igoLayer = new VectorTileLayer(layerOptions, this.messageService, this.authInterceptor);
125
128
  }
126
129
  const layerOptionsOl = Object.assign({}, layerOptions, {
127
130
  style
128
131
  });
129
- if (!olLayer) {
130
- olLayer = new VectorTileLayer(layerOptionsOl, this.messageService, this.authInterceptor);
132
+ if (!igoLayer) {
133
+ igoLayer = new VectorTileLayer(layerOptionsOl, this.messageService, this.authInterceptor);
131
134
  }
132
- this.applyMapboxStyle(olLayer, layerOptionsOl);
133
- return olLayer;
135
+ this.applyMapboxStyle(igoLayer, layerOptionsOl);
136
+ return igoLayer;
134
137
  }
135
138
  applyMapboxStyle(layer, layerOptions) {
136
139
  if (layerOptions.mapboxStyle) {
@@ -156,4 +159,4 @@ LayerService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LayerServic
156
159
  }], function () { return [{ type: i1.HttpClient }, { type: i2.StyleService }, { type: i3.DataSourceService }, { type: i4.MessageService }, { type: i4.LanguageService }, { type: i5.AuthInterceptor, decorators: [{
157
160
  type: Optional
158
161
  }] }]; }, null); })();
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxhQUFhLE1BQU0sb0NBQW9DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixjQUFjLEVBQ2QsYUFBYSxFQUNiLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGlCQUFpQixFQUNsQixNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE9BQU8sRUFFTCxVQUFVLEVBRVYsU0FBUyxFQUVULFdBQVcsRUFHWCxlQUFlLEVBRWhCLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBUWxCLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1UsSUFBZ0IsRUFDaEIsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3BDLGNBQThCLEVBQzlCLGVBQWdDLEVBQ3BCLGVBQWdDO1FBTDVDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWlC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Y0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMxRjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDL0MsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQVksRUFBRSxZQUFvQztRQUN6RSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEdBQVc7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQ3RCLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7d0VBbkxVLFlBQVk7a0VBQVosWUFBWSxXQUFaLFlBQVksbUJBRlgsTUFBTTt1RkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBUUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBzdHlsZWZ1bmN0aW9uIGZyb20gJ29sLW1hcGJveC1zdHlsZS9kaXN0L3N0eWxlZnVuY3Rpb24nO1xuaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgT1NNRGF0YVNvdXJjZSxcbiAgRmVhdHVyZURhdGFTb3VyY2UsXG4gIFhZWkRhdGFTb3VyY2UsXG4gIFRpbGVEZWJ1Z0RhdGFTb3VyY2UsXG4gIFdGU0RhdGFTb3VyY2UsXG4gIFdNVFNEYXRhU291cmNlLFxuICBXTVNEYXRhU291cmNlLFxuICBDYXJ0b0RhdGFTb3VyY2UsXG4gIEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIEFyY0dJU1Jlc3REYXRhU291cmNlLFxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIFdlYlNvY2tldERhdGFTb3VyY2UsXG4gIE1WVERhdGFTb3VyY2UsXG4gIENsdXN0ZXJEYXRhU291cmNlXG59IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2Uuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIExheWVyLFxuICBJbWFnZUxheWVyLFxuICBJbWFnZUxheWVyT3B0aW9ucyxcbiAgVGlsZUxheWVyLFxuICBUaWxlTGF5ZXJPcHRpb25zLFxuICBWZWN0b3JMYXllcixcbiAgVmVjdG9yTGF5ZXJPcHRpb25zLFxuICBBbnlMYXllck9wdGlvbnMsXG4gIFZlY3RvclRpbGVMYXllcixcbiAgVmVjdG9yVGlsZUxheWVyT3B0aW9uc1xufSBmcm9tICcuL2xheWVycyc7XG5cbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4vc3R5bGUuc2VydmljZSc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExheWVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhdXRoSW50ZXJjZXB0b3I6IEF1dGhJbnRlcmNlcHRvclxuICApIHt9XG5cbiAgY3JlYXRlTGF5ZXIobGF5ZXJPcHRpb25zOiBBbnlMYXllck9wdGlvbnMpOiBMYXllciB7XG4gICAgaWYgKCFsYXllck9wdGlvbnMuc291cmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbGF5ZXJPcHRpb25zLnNvdXJjZS5vcHRpb25zICYmXG4gICAgICBsYXllck9wdGlvbnMuc291cmNlLm9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2VcbiAgICApIHtcbiAgICAgIGxheWVyT3B0aW9ucyA9IE9iamVjdFV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgbGF5ZXJPcHRpb25zLnNvdXJjZS5vcHRpb25zLl9sYXllck9wdGlvbnNGcm9tU291cmNlLFxuICAgICAgICBsYXllck9wdGlvbnMgfHwge31cbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGxheWVyO1xuICAgIHN3aXRjaCAobGF5ZXJPcHRpb25zLnNvdXJjZS5jb25zdHJ1Y3Rvcikge1xuICAgICAgY2FzZSBPU01EYXRhU291cmNlOlxuICAgICAgY2FzZSBXTVRTRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgWFlaRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgVGlsZURlYnVnRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgQ2FydG9EYXRhU291cmNlOlxuICAgICAgY2FzZSBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2U6XG4gICAgICAgIGxheWVyID0gdGhpcy5jcmVhdGVUaWxlTGF5ZXIobGF5ZXJPcHRpb25zIGFzIFRpbGVMYXllck9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmVhdHVyZURhdGFTb3VyY2U6XG4gICAgICBjYXNlIFdGU0RhdGFTb3VyY2U6XG4gICAgICBjYXNlIEFyY0dJU1Jlc3REYXRhU291cmNlOlxuICAgICAgY2FzZSBXZWJTb2NrZXREYXRhU291cmNlOlxuICAgICAgY2FzZSBDbHVzdGVyRGF0YVNvdXJjZTpcbiAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVZlY3RvckxheWVyKGxheWVyT3B0aW9ucyBhcyBWZWN0b3JMYXllck9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgV01TRGF0YVNvdXJjZTpcbiAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZUltYWdlTGF5ZXIobGF5ZXJPcHRpb25zIGFzIEltYWdlTGF5ZXJPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE1WVERhdGFTb3VyY2U6XG4gICAgICAgIGxheWVyID0gdGhpcy5jcmVhdGVWZWN0b3JUaWxlTGF5ZXIoXG4gICAgICAgICAgbGF5ZXJPcHRpb25zIGFzIFZlY3RvclRpbGVMYXllck9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gbGF5ZXI7XG4gIH1cblxuICBjcmVhdGVBc3luY0xheWVyKGxheWVyT3B0aW9uczogQW55TGF5ZXJPcHRpb25zLCBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPExheWVyPiB7XG4gICAgaWYgKGxheWVyT3B0aW9ucy5zb3VyY2UpIHtcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+IGQubmV4dCh0aGlzLmNyZWF0ZUxheWVyKGxheWVyT3B0aW9ucykpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlU2VydmljZVxuICAgICAgLmNyZWF0ZUFzeW5jRGF0YVNvdXJjZShsYXllck9wdGlvbnMuc291cmNlT3B0aW9ucywgZGV0YWlsZWRDb250ZXh0VXJpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChzb3VyY2UgPT4ge1xuICAgICAgICAgIGlmIChzb3VyY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTGF5ZXIoT2JqZWN0LmFzc2lnbihsYXllck9wdGlvbnMsIHsgc291cmNlIH0pKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUltYWdlTGF5ZXIobGF5ZXJPcHRpb25zOiBJbWFnZUxheWVyT3B0aW9ucyk6IEltYWdlTGF5ZXIge1xuICAgIHJldHVybiBuZXcgSW1hZ2VMYXllcihsYXllck9wdGlvbnMsIHRoaXMubWVzc2FnZVNlcnZpY2UsIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLCB0aGlzLmF1dGhJbnRlcmNlcHRvcik7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpbGVMYXllcihsYXllck9wdGlvbnM6IFRpbGVMYXllck9wdGlvbnMpOiBUaWxlTGF5ZXIge1xuICAgIHJldHVybiBuZXcgVGlsZUxheWVyKGxheWVyT3B0aW9ucywgdGhpcy5tZXNzYWdlU2VydmljZSwgdGhpcy5hdXRoSW50ZXJjZXB0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVWZWN0b3JMYXllcihsYXllck9wdGlvbnM6IFZlY3RvckxheWVyT3B0aW9ucyk6IFZlY3RvckxheWVyIHtcbiAgICBsZXQgc3R5bGU7XG4gICAgbGV0IG9sTGF5ZXI7XG4gICAgaWYgKGxheWVyT3B0aW9ucy5zdHlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdHlsZSA9IHRoaXMuc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKGxheWVyT3B0aW9ucy5zdHlsZSk7XG4gICAgfVxuXG4gICAgaWYgKGxheWVyT3B0aW9ucy5zb3VyY2UgaW5zdGFuY2VvZiBBcmNHSVNSZXN0RGF0YVNvdXJjZSkge1xuICAgICAgY29uc3Qgc291cmNlID0gbGF5ZXJPcHRpb25zLnNvdXJjZSBhcyBBcmNHSVNSZXN0RGF0YVNvdXJjZTtcbiAgICAgIHN0eWxlID0gc291cmNlLm9wdGlvbnMucGFyYW1zLnN0eWxlO1xuICAgIH0gZWxzZSBpZiAobGF5ZXJPcHRpb25zLnN0eWxlQnlBdHRyaWJ1dGUpIHtcbiAgICAgIGNvbnN0IHNlcnZpY2VTdHlsZSA9IHRoaXMuc3R5bGVTZXJ2aWNlO1xuICAgICAgbGF5ZXJPcHRpb25zLnN0eWxlID0gZmVhdHVyZSA9PiB7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlU3R5bGUuY3JlYXRlU3R5bGVCeUF0dHJpYnV0ZShcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIGxheWVyT3B0aW9ucy5zdHlsZUJ5QXR0cmlidXRlXG4gICAgICAgICk7XG4gICAgICB9O1xuICAgICAgb2xMYXllciA9IG5ldyBWZWN0b3JMYXllcihsYXllck9wdGlvbnMsIHRoaXMubWVzc2FnZVNlcnZpY2UsIHRoaXMuYXV0aEludGVyY2VwdG9yKTtcbiAgICB9XG5cbiAgICBpZiAobGF5ZXJPcHRpb25zLnNvdXJjZSBpbnN0YW5jZW9mIENsdXN0ZXJEYXRhU291cmNlKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlU3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZTtcbiAgICAgIGNvbnN0IGJhc2VTdHlsZSA9IGxheWVyT3B0aW9ucy5jbHVzdGVyQmFzZVN0eWxlO1xuICAgICAgbGF5ZXJPcHRpb25zLnN0eWxlID0gZmVhdHVyZSA9PiB7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlU3R5bGUuY3JlYXRlQ2x1c3RlclN0eWxlKFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgbGF5ZXJPcHRpb25zLmNsdXN0ZXJQYXJhbSxcbiAgICAgICAgICBiYXNlU3R5bGVcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBvbExheWVyID0gbmV3IFZlY3RvckxheWVyKGxheWVyT3B0aW9ucywgdGhpcy5tZXNzYWdlU2VydmljZSwgdGhpcy5hdXRoSW50ZXJjZXB0b3IpO1xuICAgIH1cblxuICAgIGNvbnN0IGxheWVyT3B0aW9uc09sID0gT2JqZWN0LmFzc2lnbih7fSwgbGF5ZXJPcHRpb25zLCB7XG4gICAgICBzdHlsZVxuICAgIH0pO1xuXG4gICAgaWYgKCFvbExheWVyKSB7XG4gICAgICBvbExheWVyID0gbmV3IFZlY3RvckxheWVyKGxheWVyT3B0aW9uc09sLCB0aGlzLm1lc3NhZ2VTZXJ2aWNlLCB0aGlzLmF1dGhJbnRlcmNlcHRvcik7XG4gICAgfVxuXG4gICAgdGhpcy5hcHBseU1hcGJveFN0eWxlKG9sTGF5ZXIsIGxheWVyT3B0aW9uc09sIGFzIGFueSk7XG5cbiAgICByZXR1cm4gb2xMYXllcjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVmVjdG9yVGlsZUxheWVyKFxuICAgIGxheWVyT3B0aW9uczogVmVjdG9yVGlsZUxheWVyT3B0aW9uc1xuICApOiBWZWN0b3JUaWxlTGF5ZXIge1xuICAgIGxldCBzdHlsZTtcbiAgICBsZXQgb2xMYXllcjtcblxuICAgIGlmIChsYXllck9wdGlvbnMuc3R5bGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShsYXllck9wdGlvbnMuc3R5bGUpO1xuICAgIH1cblxuICAgIGlmIChsYXllck9wdGlvbnMuc3R5bGVCeUF0dHJpYnV0ZSkge1xuICAgICAgY29uc3Qgc2VydmljZVN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2U7XG4gICAgICBsYXllck9wdGlvbnMuc3R5bGUgPSBmZWF0dXJlID0+IHtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2VTdHlsZS5jcmVhdGVTdHlsZUJ5QXR0cmlidXRlKFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgbGF5ZXJPcHRpb25zLnN0eWxlQnlBdHRyaWJ1dGVcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBvbExheWVyID0gbmV3IFZlY3RvclRpbGVMYXllcihsYXllck9wdGlvbnMsIHRoaXMubWVzc2FnZVNlcnZpY2UsIHRoaXMuYXV0aEludGVyY2VwdG9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllck9wdGlvbnNPbCA9IE9iamVjdC5hc3NpZ24oe30sIGxheWVyT3B0aW9ucywge1xuICAgICAgc3R5bGVcbiAgICB9KTtcblxuICAgIGlmICghb2xMYXllcikge1xuICAgICAgb2xMYXllciA9IG5ldyBWZWN0b3JUaWxlTGF5ZXIobGF5ZXJPcHRpb25zT2wsIHRoaXMubWVzc2FnZVNlcnZpY2UsIHRoaXMuYXV0aEludGVyY2VwdG9yKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGx5TWFwYm94U3R5bGUob2xMYXllciwgbGF5ZXJPcHRpb25zT2wpO1xuICAgIHJldHVybiBvbExheWVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU1hcGJveFN0eWxlKGxheWVyOiBMYXllciwgbGF5ZXJPcHRpb25zOiBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zKSB7XG4gICAgaWYgKGxheWVyT3B0aW9ucy5tYXBib3hTdHlsZSkge1xuICAgICAgdGhpcy5nZXRNYXBib3hHbFN0eWxlKGxheWVyT3B0aW9ucy5tYXBib3hTdHlsZS51cmwpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBzdHlsZWZ1bmN0aW9uKGxheWVyLm9sLCByZXMsIGxheWVyT3B0aW9ucy5tYXBib3hTdHlsZS5zb3VyY2UpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE1hcGJveEdsU3R5bGUodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnTm8gc3R5bGUgd2FzIGZvdW5kJyk7XG4gICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxhQUFhLE1BQU0sb0NBQW9DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkxQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixjQUFjLEVBQ2QsYUFBYSxFQUNiLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGlCQUFpQixFQUNsQixNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE9BQU8sRUFFTCxVQUFVLEVBRVYsU0FBUyxFQUVULFdBQVcsRUFHWCxlQUFlLEVBRWhCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1UsSUFBZ0IsRUFDaEIsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3BDLGNBQThCLEVBQzlCLGVBQWdDLEVBQ3BCLGVBQWdDO1FBTDVDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxtQkFB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VUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgc3R5bGVmdW5jdGlvbiBmcm9tICdvbC1tYXBib3gtc3R5bGUvZGlzdC9zdHlsZWZ1bmN0aW9uJztcbmltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJ0BpZ28yL2F1dGgnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IFN0eWxlIH0gZnJvbSAnb2wvc3R5bGUnO1xuXG5pbXBvcnQge1xuICBPU01EYXRhU291cmNlLFxuICBGZWF0dXJlRGF0YVNvdXJjZSxcbiAgWFlaRGF0YVNvdXJjZSxcbiAgVGlsZURlYnVnRGF0YVNvdXJjZSxcbiAgV0ZTRGF0YVNvdXJjZSxcbiAgV01UU0RhdGFTb3VyY2UsXG4gIFdNU0RhdGFTb3VyY2UsXG4gIENhcnRvRGF0YVNvdXJjZSxcbiAgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZSxcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZSxcbiAgV2ViU29ja2V0RGF0YVNvdXJjZSxcbiAgTVZURGF0YVNvdXJjZSxcbiAgQ2x1c3RlckRhdGFTb3VyY2Vcbn0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZSc7XG5cbmltcG9ydCB7IERhdGFTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgTGF5ZXIsXG4gIEltYWdlTGF5ZXIsXG4gIEltYWdlTGF5ZXJPcHRpb25zLFxuICBUaWxlTGF5ZXIsXG4gIFRpbGVMYXllck9wdGlvbnMsXG4gIFZlY3RvckxheWVyLFxuICBWZWN0b3JMYXllck9wdGlvbnMsXG4gIEFueUxheWVyT3B0aW9ucyxcbiAgVmVjdG9yVGlsZUxheWVyLFxuICBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zXG59IGZyb20gJy4vbGF5ZXJzJztcblxuaW1wb3J0IHsgY29tcHV0ZU1WVE9wdGlvbnNPbkhvdmVyIH0gZnJvbSAnLi4vdXRpbHMvbGF5ZXIudXRpbHMnO1xuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi9zdHlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGF5ZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU291cmNlU2VydmljZTogRGF0YVNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGF1dGhJbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yXG4gICkge31cblxuICBjcmVhdGVMYXllcihsYXllck9wdGlvbnM6IEFueUxheWVyT3B0aW9ucyk6IExheWVyIHtcbiAgICBpZiAoIWxheWVyT3B0aW9ucy5zb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsYXllck9wdGlvbnMuc291cmNlLm9wdGlvbnMgJiZcbiAgICAgIGxheWVyT3B0aW9ucy5zb3VyY2Uub3B0aW9ucy5fbGF5ZXJPcHRpb25zRnJvbVNvdXJjZVxuICAgICkge1xuICAgICAgbGF5ZXJPcHRpb25zID0gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKFxuICAgICAgICBsYXllck9wdGlvbnMuc291cmNlLm9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UsXG4gICAgICAgIGxheWVyT3B0aW9ucyB8fCB7fVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbGF5ZXI7XG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMuc291cmNlLmNvbnN0cnVjdG9yKSB7XG4gICAgICBjYXNlIE9TTURhdGFTb3VyY2U6XG4gICAgICBjYXNlIFdNVFNEYXRhU291cmNlOlxuICAgICAgY2FzZSBYWVpEYXRhU291cmNlOlxuICAgICAgY2FzZSBUaWxlRGVidWdEYXRhU291cmNlOlxuICAgICAgY2FzZSBDYXJ0b0RhdGFTb3VyY2U6XG4gICAgICBjYXNlIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZTpcbiAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVRpbGVMYXllcihsYXllck9wdGlvbnMgYXMgVGlsZUxheWVyT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGZWF0dXJlRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgV0ZTRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgQXJjR0lTUmVzdERhdGFTb3VyY2U6XG4gICAgICBjYXNlIFdlYlNvY2tldERhdGFTb3VyY2U6XG4gICAgICBjYXNlIENsdXN0ZXJEYXRhU291cmNlOlxuICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlVmVjdG9yTGF5ZXIobGF5ZXJPcHRpb25zIGFzIFZlY3RvckxheWVyT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlOlxuICAgICAgY2FzZSBXTVNEYXRhU291cmNlOlxuICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlSW1hZ2VMYXllcihsYXllck9wdGlvbnMgYXMgSW1hZ2VMYXllck9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTVZURGF0YVNvdXJjZTpcbiAgICAgICAgY29uc3QgX2xheWVyT3B0aW9ucyA9IGNvbXB1dGVNVlRPcHRpb25zT25Ib3ZlcihsYXllck9wdGlvbnMpO1xuICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlVmVjdG9yVGlsZUxheWVyKFxuICAgICAgICAgIF9sYXllck9wdGlvbnMgYXMgVmVjdG9yVGlsZUxheWVyT3B0aW9uc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBsYXllcjtcbiAgfVxuXG4gIGNyZWF0ZUFzeW5jTGF5ZXIoX2xheWVyT3B0aW9uczogQW55TGF5ZXJPcHRpb25zLCBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPExheWVyPiB7XG4gICAgY29uc3QgbGF5ZXJPcHRpb25zID0gY29tcHV0ZU1WVE9wdGlvbnNPbkhvdmVyKF9sYXllck9wdGlvbnMpO1xuICAgIGlmIChsYXllck9wdGlvbnMuc291cmNlKSB7XG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZCA9PiBkLm5leHQodGhpcy5jcmVhdGVMYXllcihsYXllck9wdGlvbnMpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2VcbiAgICAgIC5jcmVhdGVBc3luY0RhdGFTb3VyY2UobGF5ZXJPcHRpb25zLnNvdXJjZU9wdGlvbnMsIGRldGFpbGVkQ29udGV4dFVyaSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoc291cmNlID0+IHtcbiAgICAgICAgICBpZiAoc291cmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxheWVyKE9iamVjdC5hc3NpZ24obGF5ZXJPcHRpb25zLCB7IHNvdXJjZSB9KSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbWFnZUxheWVyKGxheWVyT3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnMpOiBJbWFnZUxheWVyIHtcbiAgICByZXR1cm4gbmV3IEltYWdlTGF5ZXIobGF5ZXJPcHRpb25zLCB0aGlzLm1lc3NhZ2VTZXJ2aWNlLCB0aGlzLmxhbmd1YWdlU2VydmljZSwgdGhpcy5hdXRoSW50ZXJjZXB0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUaWxlTGF5ZXIobGF5ZXJPcHRpb25zOiBUaWxlTGF5ZXJPcHRpb25zKTogVGlsZUxheWVyIHtcbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcihsYXllck9wdGlvbnMsIHRoaXMubWVzc2FnZVNlcnZpY2UsIHRoaXMuYXV0aEludGVyY2VwdG9yKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVmVjdG9yTGF5ZXIobGF5ZXJPcHRpb25zOiBWZWN0b3JMYXllck9wdGlvbnMpOiBWZWN0b3JMYXllciB7XG4gICAgbGV0IHN0eWxlOiBTdHlsZTtcbiAgICBsZXQgaWdvTGF5ZXI6IFZlY3RvckxheWVyO1xuICAgIGlmIChsYXllck9wdGlvbnMuc3R5bGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShsYXllck9wdGlvbnMuc3R5bGUpO1xuICAgIH1cblxuICAgIGlmIChsYXllck9wdGlvbnMuc291cmNlIGluc3RhbmNlb2YgQXJjR0lTUmVzdERhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGxheWVyT3B0aW9ucy5zb3VyY2UgYXMgQXJjR0lTUmVzdERhdGFTb3VyY2U7XG4gICAgICBzdHlsZSA9IHNvdXJjZS5vcHRpb25zLnBhcmFtcy5zdHlsZTtcbiAgICB9IGVsc2UgaWYgKGxheWVyT3B0aW9ucy5zdHlsZUJ5QXR0cmlidXRlKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlU3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZTtcbiAgICAgIGxheWVyT3B0aW9ucy5zdHlsZSA9IGZlYXR1cmUgPT4ge1xuICAgICAgICByZXR1cm4gc2VydmljZVN0eWxlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgICBsYXllck9wdGlvbnMuc3R5bGVCeUF0dHJpYnV0ZVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvckxheWVyKGxheWVyT3B0aW9ucywgdGhpcy5tZXNzYWdlU2VydmljZSwgdGhpcy5hdXRoSW50ZXJjZXB0b3IpO1xuICAgIH1cblxuICAgIGlmIChsYXllck9wdGlvbnMuc291cmNlIGluc3RhbmNlb2YgQ2x1c3RlckRhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNlcnZpY2VTdHlsZSA9IHRoaXMuc3R5bGVTZXJ2aWNlO1xuICAgICAgY29uc3QgYmFzZVN0eWxlID0gbGF5ZXJPcHRpb25zLmNsdXN0ZXJCYXNlU3R5bGU7XG4gICAgICBsYXllck9wdGlvbnMuc3R5bGUgPSBmZWF0dXJlID0+IHtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2VTdHlsZS5jcmVhdGVDbHVzdGVyU3R5bGUoXG4gICAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgICBsYXllck9wdGlvbnMuY2x1c3RlclBhcmFtLFxuICAgICAgICAgIGJhc2VTdHlsZVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvckxheWVyKGxheWVyT3B0aW9ucywgdGhpcy5tZXNzYWdlU2VydmljZSwgdGhpcy5hdXRoSW50ZXJjZXB0b3IpO1xuICAgIH1cblxuICAgIGNvbnN0IGxheWVyT3B0aW9uc09sID0gT2JqZWN0LmFzc2lnbih7fSwgbGF5ZXJPcHRpb25zLCB7XG4gICAgICBzdHlsZVxuICAgIH0pO1xuXG4gICAgaWYgKCFpZ29MYXllcikge1xuICAgICAgaWdvTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIobGF5ZXJPcHRpb25zT2wsIHRoaXMubWVzc2FnZVNlcnZpY2UsIHRoaXMuYXV0aEludGVyY2VwdG9yKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGx5TWFwYm94U3R5bGUoaWdvTGF5ZXIsIGxheWVyT3B0aW9uc09sIGFzIGFueSk7XG5cbiAgICByZXR1cm4gaWdvTGF5ZXI7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZlY3RvclRpbGVMYXllcihcbiAgICBsYXllck9wdGlvbnM6IFZlY3RvclRpbGVMYXllck9wdGlvbnNcbiAgKTogVmVjdG9yVGlsZUxheWVyIHtcbiAgICBsZXQgc3R5bGU6IFN0eWxlO1xuICAgIGxldCBpZ29MYXllcjogVmVjdG9yVGlsZUxheWVyO1xuXG4gICAgaWYgKGxheWVyT3B0aW9ucy5zdHlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdHlsZSA9IHRoaXMuc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKGxheWVyT3B0aW9ucy5zdHlsZSk7XG4gICAgfVxuXG4gICAgaWYgKGxheWVyT3B0aW9ucy5zdHlsZUJ5QXR0cmlidXRlKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlU3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZTtcbiAgICAgIGxheWVyT3B0aW9ucy5zdHlsZSA9IGZlYXR1cmUgPT4ge1xuICAgICAgICByZXR1cm4gc2VydmljZVN0eWxlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgICBsYXllck9wdGlvbnMuc3R5bGVCeUF0dHJpYnV0ZVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvclRpbGVMYXllcihsYXllck9wdGlvbnMsIHRoaXMubWVzc2FnZVNlcnZpY2UsIHRoaXMuYXV0aEludGVyY2VwdG9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllck9wdGlvbnNPbCA9IE9iamVjdC5hc3NpZ24oe30sIGxheWVyT3B0aW9ucywge1xuICAgICAgc3R5bGVcbiAgICB9KTtcblxuICAgIGlmICghaWdvTGF5ZXIpIHtcbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvclRpbGVMYXllcihsYXllck9wdGlvbnNPbCwgdGhpcy5tZXNzYWdlU2VydmljZSwgdGhpcy5hdXRoSW50ZXJjZXB0b3IpO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbHlNYXBib3hTdHlsZShpZ29MYXllciwgbGF5ZXJPcHRpb25zT2wpO1xuICAgIHJldHVybiBpZ29MYXllcjtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlNYXBib3hTdHlsZShsYXllcjogTGF5ZXIsIGxheWVyT3B0aW9uczogVmVjdG9yVGlsZUxheWVyT3B0aW9ucykge1xuICAgIGlmIChsYXllck9wdGlvbnMubWFwYm94U3R5bGUpIHtcbiAgICAgIHRoaXMuZ2V0TWFwYm94R2xTdHlsZShsYXllck9wdGlvbnMubWFwYm94U3R5bGUudXJsKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgc3R5bGVmdW5jdGlvbihsYXllci5vbCwgcmVzLCBsYXllck9wdGlvbnMubWFwYm94U3R5bGUuc291cmNlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRNYXBib3hHbFN0eWxlKHVybDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vIHN0eWxlIHdhcyBmb3VuZCcpO1xuICAgICAgICByZXR1cm4gb2YoZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -14,4 +14,4 @@ export var TooltipType;
14
14
  TooltipType["ABSTRACT"] = "abstract";
15
15
  TooltipType["CUSTOM"] = "custom";
16
16
  })(TooltipType || (TooltipType = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdURBLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFDbkIsdUNBQW1CLENBQUE7SUFDbkIsNkNBQXlCLENBQUE7SUFDekIsbURBQStCLENBQUE7SUFDL0IsbURBQStCLENBQUE7SUFDL0IscUNBQWlCLENBQUE7SUFDakIsNkNBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFRM0I7QUFZRCxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixvQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xMYXllciBmcm9tICdvbC9sYXllci9MYXllcic7XG5pbXBvcnQgb2xTb3VyY2UgZnJvbSAnb2wvc291cmNlL1NvdXJjZSc7XG5pbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9kYXRhc291cmNlJztcbmltcG9ydCB7IEFueURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1hcEV4dGVudCwgTWFwVmlld09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExheWVyT3B0aW9ucyB7XG4gIHNvdXJjZT86IERhdGFTb3VyY2U7XG4gIHNvdXJjZU9wdGlvbnM/OiBBbnlEYXRhU291cmNlT3B0aW9ucztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBhbGlhcz86IHN0cmluZztcbiAgYmFzZUxheWVyPzogYm9vbGVhbjtcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIGV4dGVudD86IE1hcEV4dGVudDtcbiAgekluZGV4PzogbnVtYmVyO1xuICBtZXNzYWdlcz86IE1lc3NhZ2VbXTtcbiAgbWluUmVzb2x1dGlvbj86IG51bWJlcjtcbiAgbWF4UmVzb2x1dGlvbj86IG51bWJlcjtcbiAgbWluU2NhbGVEZW5vbT86IG51bWJlcjtcbiAgbWF4U2NhbGVEZW5vbT86IG51bWJlcjtcbiAgc2hvd0luTGF5ZXJMaXN0PzogYm9vbGVhbjtcbiAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcbiAgd29ya3NwYWNlPzogR2VvV29ya3NwYWNlT3B0aW9ucztcbiAgbGVnZW5kT3B0aW9ucz86IExlZ2VuZE9wdGlvbnM7XG4gIG9sPzogb2xMYXllcjxvbFNvdXJjZT47XG4gIHRvb2x0aXA/OiBUb29sdGlwQ29udGVudDtcbiAgX2ludGVybmFsPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgY2hlY2s/OiBib29sZWFuO1xuICBsaW5rZWRMYXllcnM/OiBMYXllcnNMaW5rO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb1dvcmtzcGFjZU9wdGlvbnMge1xuICBzcmNJZD86IHN0cmluZztcbiAgd29ya3NwYWNlSWQ/OiBzdHJpbmc7XG4gIG1pblJlc29sdXRpb24/OiBudW1iZXI7XG4gIG1heFJlc29sdXRpb24/OiBudW1iZXI7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExheWVyc0xpbmsge1xuICBsaW5rSWQ6IHN0cmluZztcbiAgbGlua3M/OiBMYXllcnNMaW5rUHJvcGVydGllc1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBMYXllcnNMaW5rUHJvcGVydGllcyB7XG4gIGJpZGlyZWN0aW9ubmFsPzogYm9vbGVhbjtcbiAgbGlua2VkSWRzOiBzdHJpbmdbXTtcbiAgc3luY2VkRGVsZXRlOiBib29sZWFuO1xuICBwcm9wZXJ0aWVzOiBMaW5rZWRQcm9wZXJ0aWVzW107XG59XG5cbmV4cG9ydCBlbnVtIExpbmtlZFByb3BlcnRpZXMge1xuICBPUEFDSVRZID0gJ29wYWNpdHknLFxuICBWSVNJQkxFID0gJ3Zpc2libGUnLFxuICBPR0NGSUxURVJTID0gJ29nY0ZpbHRlcnMnLFxuICBNSU5SRVNPTFVUSU9OID0gJ21pblJlc29sdXRpb24nLFxuICBNQVhSRVNPTFVUSU9OID0gJ21heFJlc29sdXRpb24nLFxuICBaSU5ERVggPSAnekluZGV4JyxcbiAgVElNRUZJTFRFUiA9ICd0aW1lRmlsdGVyJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwTGF5ZXJzIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgbGF5ZXJzPzogTGF5ZXJPcHRpb25zO1xuICBjb2xsYXBzZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2x0aXBDb250ZW50IHtcbiAgdHlwZT86IFRvb2x0aXBUeXBlO1xuICB0ZXh0Pzogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gVG9vbHRpcFR5cGUge1xuICBUSVRMRSA9ICd0aXRsZScsXG4gIEFCU1RSQUNUID0gJ2Fic3RyYWN0JyxcbiAgQ1VTVE9NID0gJ2N1c3RvbSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWdlbmRPcHRpb25zIHtcbiAgY29sbGFwc2VkPzogYm9vbGVhbjtcbiAgZGlzcGxheT86IGJvb2xlYW47XG4gIHVybD86IHN0cmluZztcbiAgaHRtbD86IHN0cmluZztcbiAgc3R5bGVzQXZhaWxhYmxlPzogSXRlbVN0eWxlT3B0aW9uc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlZ2VuZE1hcFZpZXdPcHRpb25zIGV4dGVuZHMgTWFwVmlld09wdGlvbnN7XG4gIHNjYWxlPzogbnVtYmVyO1xuICBzaXplPzogW251bWJlciwgbnVtYmVyXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU3R5bGVPcHRpb25zIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRMYXllckxlZ2VuZCB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0VBLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFDbkIsdUNBQW1CLENBQUE7SUFDbkIsNkNBQXlCLENBQUE7SUFDekIsbURBQStCLENBQUE7SUFDL0IsbURBQStCLENBQUE7SUFDL0IscUNBQWlCLENBQUE7SUFDakIsNkNBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFRM0I7QUFZRCxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixvQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xMYXllciBmcm9tICdvbC9sYXllci9MYXllcic7XG5pbXBvcnQgb2xTb3VyY2UgZnJvbSAnb2wvc291cmNlL1NvdXJjZSc7XG5pbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9kYXRhc291cmNlJztcbmltcG9ydCB7IEFueURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1hcEV4dGVudCwgTWFwVmlld09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExheWVyT3B0aW9ucyB7XG4gIGlzSWdvSW50ZXJuYWxMYXllcj86IGJvb2xlYW47IC8vIHVzZWZ1bCB3aGVuIG1hcE9mZmxpbmUgZGlyZWN0aXZlIHNldCB0aGUgcmVzb2x1dGlvbiBvZiB0aGUgbGF5ZXJzLlxuICBzb3VyY2U/OiBEYXRhU291cmNlO1xuICBzb3VyY2VPcHRpb25zPzogQW55RGF0YVNvdXJjZU9wdGlvbnM7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgYWxpYXM/OiBzdHJpbmc7XG4gIGJhc2VMYXllcj86IGJvb2xlYW47XG4gIG9wYWNpdHk/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICBleHRlbnQ/OiBNYXBFeHRlbnQ7XG4gIHpJbmRleD86IG51bWJlcjtcbiAgbWVzc2FnZXM/OiBNZXNzYWdlW107XG4gIG1pblJlc29sdXRpb24/OiBudW1iZXI7XG4gIG1heFJlc29sdXRpb24/OiBudW1iZXI7XG4gIG1pblNjYWxlRGVub20/OiBudW1iZXI7XG4gIG1heFNjYWxlRGVub20/OiBudW1iZXI7XG4gIHNob3dJbkxheWVyTGlzdD86IGJvb2xlYW47XG4gIHJlbW92YWJsZT86IGJvb2xlYW47XG4gIHdvcmtzcGFjZT86IEdlb1dvcmtzcGFjZU9wdGlvbnM7XG4gIGxlZ2VuZE9wdGlvbnM/OiBMZWdlbmRPcHRpb25zO1xuICBvbD86IG9sTGF5ZXI8b2xTb3VyY2U+O1xuICB0b29sdGlwPzogVG9vbHRpcENvbnRlbnQ7XG4gIF9pbnRlcm5hbD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIGNoZWNrPzogYm9vbGVhbjtcbiAgbGlua2VkTGF5ZXJzPzogTGF5ZXJzTGluaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9Xb3Jrc3BhY2VPcHRpb25zIHtcbiAgc3JjSWQ/OiBzdHJpbmc7XG4gIHdvcmtzcGFjZUlkPzogc3RyaW5nO1xuICBtaW5SZXNvbHV0aW9uPzogbnVtYmVyO1xuICBtYXhSZXNvbHV0aW9uPzogbnVtYmVyO1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgcXVlcnlPcHRpb25zPzogR2VvV29ya3NwYWNlUXVlcnlPcHRpb25zO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvV29ya3NwYWNlUXVlcnlPcHRpb25zIHtcbiAgbWFwUXVlcnlPbk9wZW5UYWI/OiBib29sZWFuO1xuICB0YWJRdWVyeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJzTGluayB7XG4gIGxpbmtJZDogc3RyaW5nO1xuICBsaW5rcz86IExheWVyc0xpbmtQcm9wZXJ0aWVzW107XG59XG5leHBvcnQgaW50ZXJmYWNlIExheWVyc0xpbmtQcm9wZXJ0aWVzIHtcbiAgYmlkaXJlY3Rpb25uYWw/OiBib29sZWFuO1xuICBsaW5rZWRJZHM6IHN0cmluZ1tdO1xuICBzeW5jZWREZWxldGU6IGJvb2xlYW47XG4gIHByb3BlcnRpZXM6IExpbmtlZFByb3BlcnRpZXNbXTtcbn1cblxuZXhwb3J0IGVudW0gTGlua2VkUHJvcGVydGllcyB7XG4gIE9QQUNJVFkgPSAnb3BhY2l0eScsXG4gIFZJU0lCTEUgPSAndmlzaWJsZScsXG4gIE9HQ0ZJTFRFUlMgPSAnb2djRmlsdGVycycsXG4gIE1JTlJFU09MVVRJT04gPSAnbWluUmVzb2x1dGlvbicsXG4gIE1BWFJFU09MVVRJT04gPSAnbWF4UmVzb2x1dGlvbicsXG4gIFpJTkRFWCA9ICd6SW5kZXgnLFxuICBUSU1FRklMVEVSID0gJ3RpbWVGaWx0ZXInXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBMYXllcnMge1xuICB0aXRsZTogc3RyaW5nO1xuICBsYXllcnM/OiBMYXllck9wdGlvbnM7XG4gIGNvbGxhcHNlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbHRpcENvbnRlbnQge1xuICB0eXBlPzogVG9vbHRpcFR5cGU7XG4gIHRleHQ/OiBzdHJpbmc7XG59XG5leHBvcnQgZW51bSBUb29sdGlwVHlwZSB7XG4gIFRJVExFID0gJ3RpdGxlJyxcbiAgQUJTVFJBQ1QgPSAnYWJzdHJhY3QnLFxuICBDVVNUT00gPSAnY3VzdG9tJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlZ2VuZE9wdGlvbnMge1xuICBjb2xsYXBzZWQ/OiBib29sZWFuO1xuICBkaXNwbGF5PzogYm9vbGVhbjtcbiAgdXJsPzogc3RyaW5nO1xuICBodG1sPzogc3RyaW5nO1xuICBzdHlsZXNBdmFpbGFibGU/OiBJdGVtU3R5bGVPcHRpb25zW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVnZW5kTWFwVmlld09wdGlvbnMgZXh0ZW5kcyBNYXBWaWV3T3B0aW9uc3tcbiAgc2NhbGU/OiBudW1iZXI7XG4gIHNpemU/OiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1TdHlsZU9wdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dExheWVyTGVnZW5kIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG59XG4iXX0=