geonetwork-ui 2.8.0-dev.749c3ea3b → 2.8.0-dev.82b7031fa

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 (83) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +6 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +6 -4
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -1
  4. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  5. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  6. package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
  7. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  8. package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +4 -4
  9. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +1 -1
  10. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -3
  11. package/esm2022/libs/feature/record/src/lib/stac-view/stac-view.component.mjs +140 -48
  12. package/esm2022/libs/feature/record/src/lib/stac-view/utils.mjs +26 -0
  13. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +2 -2
  14. package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -1
  15. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +36 -22
  16. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +2 -1
  17. package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +3 -3
  18. package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +3 -3
  19. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +86 -32
  20. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +1 -1
  21. package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +3 -3
  22. package/esm2022/translations/de.json +2 -0
  23. package/esm2022/translations/en.json +2 -0
  24. package/esm2022/translations/es.json +2 -0
  25. package/esm2022/translations/fr.json +2 -0
  26. package/esm2022/translations/it.json +2 -0
  27. package/esm2022/translations/nl.json +2 -0
  28. package/esm2022/translations/pt.json +2 -0
  29. package/esm2022/translations/sk.json +2 -0
  30. package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs → geonetwork-ui-date-locales-DhlIiWpT.mjs} +2 -2
  31. package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs.map → geonetwork-ui-date-locales-DhlIiWpT.mjs.map} +1 -1
  32. package/fesm2022/geonetwork-ui.mjs +345 -137
  33. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  34. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +3 -0
  35. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  36. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  37. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  38. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  39. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  40. package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts +12 -5
  41. package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
  42. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts +3 -1
  43. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  44. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +5 -1
  45. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  46. package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts +25 -7
  47. package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts.map +1 -1
  48. package/libs/feature/record/src/lib/stac-view/utils.d.ts +7 -0
  49. package/libs/feature/record/src/lib/stac-view/utils.d.ts.map +1 -0
  50. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  51. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  52. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  53. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +24 -14
  54. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
  55. package/package.json +5 -5
  56. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +11 -0
  57. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +11 -3
  58. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -0
  59. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +1 -0
  60. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +5 -1
  61. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +10 -8
  62. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +1 -1
  63. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -2
  64. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -2
  65. package/src/libs/feature/record/src/lib/stac-view/stac-view.component.css +5 -0
  66. package/src/libs/feature/record/src/lib/stac-view/stac-view.component.html +27 -8
  67. package/src/libs/feature/record/src/lib/stac-view/stac-view.component.ts +201 -52
  68. package/src/libs/feature/record/src/lib/stac-view/utils.ts +57 -0
  69. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +1 -1
  70. package/src/libs/feature/search/src/lib/constants.ts +1 -0
  71. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +1 -0
  72. package/src/libs/feature/search/src/lib/utils/service/fields.ts +37 -33
  73. package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.html +3 -3
  74. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.html +16 -14
  75. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +144 -65
  76. package/translations/de.json +2 -0
  77. package/translations/en.json +2 -0
  78. package/translations/es.json +2 -0
  79. package/translations/fr.json +2 -0
  80. package/translations/it.json +2 -0
  81. package/translations/nl.json +2 -0
  82. package/translations/pt.json +2 -0
  83. package/translations/sk.json +2 -0
@@ -1,13 +1,15 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, Output, ViewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, EventEmitter, Inject, inject, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { fromEvent, merge, of, timer } from 'rxjs';
3
3
  import { delay, map, startWith, switchMap } from 'rxjs/operators';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
5
  import { CommonModule } from '@angular/common';
5
6
  import { TranslateDirective } from '@ngx-translate/core';
6
- import { computeMapContextDiff, FeaturesClickEventType, FeaturesHoverEventType, MapClickEventType, SourceLoadErrorType, } from '@geospatial-sdk/core';
7
+ import { computeMapContextDiff, FeaturesClickEventType, FeaturesHoverEventType, MapClickEventType, MapExtentChangeEventType, SourceLoadErrorType, } from '@geospatial-sdk/core';
7
8
  import { applyContextDiffToMap, createMapFromContext, listen, } from '@geospatial-sdk/openlayers';
8
9
  import { BASEMAP_LAYERS, DO_NOT_USE_DEFAULT_BASEMAP, MAP_VIEW_CONSTRAINTS, } from './map-settings.token';
9
10
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
10
11
  import { matSwipeOutline } from '@ng-icons/material-icons/outline';
12
+ import { transformExtent } from 'ol/proj';
11
13
  import * as i0 from "@angular/core";
12
14
  import * as i1 from "@angular/common";
13
15
  const DEFAULT_BASEMAP_LAYER = {
@@ -22,8 +24,8 @@ const DEFAULT_VIEW = {
22
24
  export class MapContainerComponent {
23
25
  get featuresClick() {
24
26
  if (!this._featuresClick) {
25
- this.openlayersMap.then((olMap) => {
26
- listen(olMap, FeaturesClickEventType, ({ features }) => this._featuresClick.emit(features));
27
+ this.setupEventListener(FeaturesClickEventType, (event) => {
28
+ this._featuresClick.emit(event.features);
27
29
  });
28
30
  this._featuresClick = new EventEmitter();
29
31
  }
@@ -31,8 +33,8 @@ export class MapContainerComponent {
31
33
  }
32
34
  get featuresHover() {
33
35
  if (!this._featuresHover) {
34
- this.openlayersMap.then((olMap) => {
35
- listen(olMap, FeaturesHoverEventType, ({ features }) => this._featuresHover.emit(features));
36
+ this.setupEventListener(FeaturesHoverEventType, (event) => {
37
+ this._featuresHover.emit(event.features);
36
38
  });
37
39
  this._featuresHover = new EventEmitter();
38
40
  }
@@ -40,22 +42,37 @@ export class MapContainerComponent {
40
42
  }
41
43
  get mapClick() {
42
44
  if (!this._mapClick) {
43
- this.openlayersMap.then((olMap) => {
44
- listen(olMap, MapClickEventType, ({ coordinate }) => this._mapClick.emit(coordinate));
45
+ this.setupEventListener(MapClickEventType, (event) => {
46
+ this._mapClick.emit(event.coordinate);
45
47
  });
46
48
  this._mapClick = new EventEmitter();
47
49
  }
48
50
  return this._mapClick;
49
51
  }
52
+ get extentChange() {
53
+ if (!this._extentChange) {
54
+ this.setupEventListener(MapExtentChangeEventType, (event) => {
55
+ this._extentChange.emit(event.extent);
56
+ });
57
+ this._extentChange = new EventEmitter();
58
+ }
59
+ return this._extentChange;
60
+ }
50
61
  get sourceLoadError() {
51
62
  if (!this._sourceLoadError) {
52
- this.openlayersMap.then((olMap) => {
53
- listen(olMap, SourceLoadErrorType, (error) => this._sourceLoadError.emit(error));
63
+ this.setupEventListener(SourceLoadErrorType, (event) => {
64
+ this._sourceLoadError.emit(event);
54
65
  });
55
66
  this._sourceLoadError = new EventEmitter();
56
67
  }
57
68
  return this._sourceLoadError;
58
69
  }
70
+ get resolvedExtentChange() {
71
+ if (!this._resolvedExtentChange) {
72
+ this._resolvedExtentChange = new EventEmitter();
73
+ }
74
+ return this._resolvedExtentChange;
75
+ }
59
76
  constructor(doNotUseDefaultBasemap, basemapLayers, mapViewConstraints) {
60
77
  this.doNotUseDefaultBasemap = doNotUseDefaultBasemap;
61
78
  this.basemapLayers = basemapLayers;
@@ -63,31 +80,59 @@ export class MapContainerComponent {
63
80
  this.openlayersMap = new Promise((resolve) => {
64
81
  this.olMapResolver = resolve;
65
82
  });
83
+ // These events only get registered on the map if they are used
84
+ this._featuresClick = null;
85
+ this._featuresHover = null;
86
+ this._mapClick = null;
87
+ this._extentChange = null;
88
+ this._sourceLoadError = null;
89
+ this._resolvedExtentChange = null;
90
+ this.destroyRef = inject(DestroyRef);
91
+ }
92
+ calculateCurrentMapExtent() {
93
+ const extent = this.olMap.getView().calculateExtent(this.olMap.getSize());
94
+ const reprojectedExtent = transformExtent(extent, this.olMap.getView().getProjection(), 'EPSG:4326');
95
+ return reprojectedExtent;
66
96
  }
67
97
  async ngAfterViewInit() {
68
98
  this.olMap = await createMapFromContext(this.processContext(this.context), this.container.nativeElement);
69
- this.displayMessage$ = merge(fromEvent(this.olMap, 'mapmuted').pipe(map(() => true)), fromEvent(this.olMap, 'movestart').pipe(map(() => false)), fromEvent(this.olMap, 'singleclick').pipe(map(() => false))).pipe(switchMap((muted) => muted
70
- ? timer(2000).pipe(map(() => false), startWith(true), delay(400))
71
- : of(false)));
99
+ if (this._resolvedExtentChange) {
100
+ this._resolvedExtentChange.emit(this.calculateCurrentMapExtent());
101
+ }
102
+ this.setupDisplayMessageObservable();
72
103
  this.olMapResolver(this.olMap);
73
104
  }
74
105
  async ngOnChanges(changes) {
75
106
  if ('context' in changes && !changes['context'].isFirstChange()) {
76
107
  const diff = computeMapContextDiff(this.processContext(changes['context'].currentValue), this.processContext(changes['context'].previousValue));
77
108
  await applyContextDiffToMap(this.olMap, diff);
109
+ if (this._resolvedExtentChange && diff.viewChanges) {
110
+ this._resolvedExtentChange.emit(this.calculateCurrentMapExtent());
111
+ }
78
112
  }
79
113
  }
80
- // This will apply basemap layers & view constraints
114
+ setupEventListener(eventType, handler) {
115
+ this.openlayersMap.then((olMap) => {
116
+ listen(olMap, eventType, handler);
117
+ });
118
+ }
119
+ setupDisplayMessageObservable() {
120
+ this.displayMessage$ = merge(fromEvent(this.olMap, 'mapmuted').pipe(map(() => true)), fromEvent(this.olMap, 'movestart').pipe(map(() => false)), fromEvent(this.olMap, 'singleclick').pipe(map(() => false))).pipe(switchMap((muted) => muted
121
+ ? timer(2000).pipe(map(() => false), startWith(true), delay(400))
122
+ : of(false)), takeUntilDestroyed(this.destroyRef));
123
+ }
81
124
  processContext(context) {
82
125
  const processed = context
83
126
  ? { ...context, view: context.view ?? DEFAULT_VIEW }
84
127
  : { layers: [], view: DEFAULT_VIEW };
128
+ // Prepend with default basemap and basemap layers
85
129
  if (this.basemapLayers.length) {
86
130
  processed.layers = [...this.basemapLayers, ...processed.layers];
87
131
  }
88
132
  if (!this.doNotUseDefaultBasemap) {
89
133
  processed.layers = [DEFAULT_BASEMAP_LAYER, ...processed.layers];
90
134
  }
135
+ // Apply view constraints
91
136
  if (this.mapViewConstraints.maxZoom) {
92
137
  processed.view = {
93
138
  maxZoom: this.mapViewConstraints.maxZoom,
@@ -101,27 +146,32 @@ export class MapContainerComponent {
101
146
  };
102
147
  }
103
148
  if (processed.view &&
104
- !('zoom' in processed.view) &&
105
- !('center' in processed.view)) {
106
- if (this.mapViewConstraints.maxExtent) {
107
- processed.view = {
108
- extent: this.mapViewConstraints.maxExtent,
109
- ...processed.view,
110
- };
111
- }
112
- else {
113
- processed.view = { ...DEFAULT_VIEW, ...processed.view };
114
- }
149
+ 'zoom' in processed.view &&
150
+ 'center' in processed.view) {
151
+ return processed;
152
+ }
153
+ if (processed.view && 'extent' in processed.view) {
154
+ return processed;
155
+ }
156
+ // Ensure valid view
157
+ if (this.mapViewConstraints.maxExtent) {
158
+ processed.view = {
159
+ extent: this.mapViewConstraints.maxExtent,
160
+ ...processed.view,
161
+ };
162
+ }
163
+ else {
164
+ processed.view = { ...DEFAULT_VIEW, ...processed.view };
115
165
  }
116
166
  return processed;
117
167
  }
118
168
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapContainerComponent, deps: [{ token: DO_NOT_USE_DEFAULT_BASEMAP }, { token: BASEMAP_LAYERS }, { token: MAP_VIEW_CONSTRAINTS }], target: i0.ɵɵFactoryTarget.Component }); }
119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapContainerComponent, isStandalone: true, selector: "gn-ui-map-container", inputs: { context: "context" }, outputs: { featuresClick: "featuresClick", featuresHover: "featuresHover", mapClick: "mapClick", sourceLoadError: "sourceLoadError" }, providers: [
169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapContainerComponent, isStandalone: true, selector: "gn-ui-map-container", inputs: { context: "context" }, outputs: { featuresClick: "featuresClick", featuresHover: "featuresHover", mapClick: "mapClick", extentChange: "extentChange", sourceLoadError: "sourceLoadError", resolvedExtentChange: "resolvedExtentChange" }, providers: [
120
170
  provideIcons({ matSwipeOutline }),
121
171
  provideNgIconsConfig({
122
172
  size: '1.5em',
123
173
  }),
124
- ], viewQueries: [{ propertyName: "container", first: true, predicate: ["map"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"h-full w-full\" #map></div>\n<div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n>\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <ng-icon\n class=\"!w-16 !h-16 text-[64px] mb-4\"\n name=\"matSwipeOutline\"\n ></ng-icon>\n <p translate>map.navigation.message</p>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
+ ], viewQueries: [{ propertyName: "container", first: true, predicate: ["map"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"relative h-full w-full\" #map>\n <ng-content></ng-content>\n <div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n >\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <ng-icon\n class=\"!w-16 !h-16 text-[64px] mb-4\"\n name=\"matSwipeOutline\"\n ></ng-icon>\n <p translate>map.navigation.message</p>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
125
175
  }
126
176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapContainerComponent, decorators: [{
127
177
  type: Component,
@@ -130,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
130
180
  provideNgIconsConfig({
131
181
  size: '1.5em',
132
182
  }),
133
- ], template: "<div class=\"h-full w-full\" #map></div>\n<div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n>\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <ng-icon\n class=\"!w-16 !h-16 text-[64px] mb-4\"\n name=\"matSwipeOutline\"\n ></ng-icon>\n <p translate>map.navigation.message</p>\n</div>\n" }]
183
+ ], template: "<div class=\"relative h-full w-full\" #map>\n <ng-content></ng-content>\n <div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n >\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <ng-icon\n class=\"!w-16 !h-16 text-[64px] mb-4\"\n name=\"matSwipeOutline\"\n ></ng-icon>\n <p translate>map.navigation.message</p>\n </div>\n</div>\n" }]
134
184
  }], ctorParameters: () => [{ type: undefined, decorators: [{
135
185
  type: Inject,
136
186
  args: [DO_NOT_USE_DEFAULT_BASEMAP]
@@ -142,16 +192,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
142
192
  args: [MAP_VIEW_CONSTRAINTS]
143
193
  }] }], propDecorators: { context: [{
144
194
  type: Input
195
+ }], container: [{
196
+ type: ViewChild,
197
+ args: ['map']
145
198
  }], featuresClick: [{
146
199
  type: Output
147
200
  }], featuresHover: [{
148
201
  type: Output
149
202
  }], mapClick: [{
150
203
  type: Output
204
+ }], extentChange: [{
205
+ type: Output
151
206
  }], sourceLoadError: [{
152
207
  type: Output
153
- }], container: [{
154
- type: ViewChild,
155
- args: ['map']
208
+ }], resolvedExtentChange: [{
209
+ type: Output
156
210
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvbGliL2NvbXBvbmVudHMvbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3hELE9BQU8sRUFDTCxxQkFBcUIsRUFHckIsc0JBQXNCLEVBRXRCLHNCQUFzQixFQUV0QixpQkFBaUIsRUFNakIsbUJBQW1CLEdBQ3BCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsTUFBTSxHQUNQLE1BQU0sNEJBQTRCLENBQUE7QUFHbkMsT0FBTyxFQUNMLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsb0JBQW9CLEdBQ3JCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNM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QUFJLEVBQUUsT0FBTzthQUNkLENBQUM7U0FDSCxpSkMzRUgsMGpCQWdCQSx5RERxRFksWUFBWSxrTEFBRSxrQkFBa0Isa0hBQUUsZUFBZTs7NEZBUWhELHFCQUFxQjtrQkFkakMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLGFBQ2pEO3dCQUNULFlBQVksQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDO3dCQUNqQyxvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLE9BQU87eUJBQ2QsQ0FBQztxQkFDSDs7MEJBa0VFLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxvQkFBb0I7eUNBakVyQixPQUFPO3NCQUFmLEtBQUs7Z0JBSVEsYUFBYTtzQkFBMUIsTUFBTTtnQkFlTyxhQUFhO3NCQUExQixNQUFNO2dCQWVPLFFBQVE7c0JBQXJCLE1BQU07Z0JBWU8sZUFBZTtzQkFBNUIsTUFBTTtnQkFZVyxTQUFTO3NCQUExQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgdGltZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBjb21wdXRlTWFwQ29udGV4dERpZmYsXG4gIEV4dGVudCxcbiAgRmVhdHVyZXNDbGlja0V2ZW50LFxuICBGZWF0dXJlc0NsaWNrRXZlbnRUeXBlLFxuICBGZWF0dXJlc0hvdmVyRXZlbnQsXG4gIEZlYXR1cmVzSG92ZXJFdmVudFR5cGUsXG4gIE1hcENsaWNrRXZlbnQsXG4gIE1hcENsaWNrRXZlbnRUeXBlLFxuICBNYXBDb250ZXh0LFxuICBNYXBDb250ZXh0TGF5ZXIsXG4gIE1hcENvbnRleHRMYXllclh5eixcbiAgTWFwQ29udGV4dFZpZXcsXG4gIFNvdXJjZUxvYWRFcnJvckV2ZW50LFxuICBTb3VyY2VMb2FkRXJyb3JUeXBlLFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7XG4gIGFwcGx5Q29udGV4dERpZmZUb01hcCxcbiAgY3JlYXRlTWFwRnJvbUNvbnRleHQsXG4gIGxpc3Rlbixcbn0gZnJvbSAnQGdlb3NwYXRpYWwtc2RrL29wZW5sYXllcnMnXG5pbXBvcnQgdHlwZSBPbE1hcCBmcm9tICdvbC9NYXAnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmUgfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHtcbiAgQkFTRU1BUF9MQVlFUlMsXG4gIERPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQLFxuICBNQVBfVklFV19DT05TVFJBSU5UUyxcbn0gZnJvbSAnLi9tYXAtc2V0dGluZ3MudG9rZW4nXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0U3dpcGVPdXRsaW5lIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5cbmNvbnN0IERFRkFVTFRfQkFTRU1BUF9MQVlFUjogTWFwQ29udGV4dExheWVyWHl6ID0ge1xuICB0eXBlOiAneHl6JyxcbiAgdXJsOiBgaHR0cHM6Ly97YS1jfS5iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vcmFzdGVydGlsZXMvdm95YWdlci97en0ve3h9L3t5fS5wbmdgLFxuICBhdHRyaWJ1dGlvbnM6IGA8c3Bhbj7CqSA8YSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMsIMKpIDxhIGhyZWY9XCJodHRwczovL2NhcnRvLmNvbS9cIj5DYXJ0bzwvYT48L3NwYW4+YCxcbn1cblxuY29uc3QgREVGQVVMVF9WSUVXOiBNYXBDb250ZXh0VmlldyA9IHtcbiAgY2VudGVyOiBbMCwgMTVdLFxuICB6b29tOiAyLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tYXAtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtY29udGFpbmVyLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZURpcmVjdGl2ZSwgTmdJY29uQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgbWF0U3dpcGVPdXRsaW5lIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbnRleHQ6IE1hcENvbnRleHQgfCBudWxsXG5cbiAgLy8gdGhlc2UgZXZlbnRzIG9ubHkgZ2V0IHJlZ2lzdGVyZWQgb24gdGhlIG1hcCBpZiB0aGV5IGFyZSB1c2VkXG4gIF9mZWF0dXJlc0NsaWNrOiBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPlxuICBAT3V0cHV0KCkgZ2V0IGZlYXR1cmVzQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLl9mZWF0dXJlc0NsaWNrKSB7XG4gICAgICB0aGlzLm9wZW5sYXllcnNNYXAudGhlbigob2xNYXApID0+IHtcbiAgICAgICAgbGlzdGVuKFxuICAgICAgICAgIG9sTWFwLFxuICAgICAgICAgIEZlYXR1cmVzQ2xpY2tFdmVudFR5cGUsXG4gICAgICAgICAgKHsgZmVhdHVyZXMgfTogRmVhdHVyZXNDbGlja0V2ZW50KSA9PlxuICAgICAgICAgICAgdGhpcy5fZmVhdHVyZXNDbGljay5lbWl0KGZlYXR1cmVzKVxuICAgICAgICApXG4gICAgICB9KVxuICAgICAgdGhpcy5fZmVhdHVyZXNDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mZWF0dXJlc0NsaWNrXG4gIH1cbiAgX2ZlYXR1cmVzSG92ZXI6IEV2ZW50RW1pdHRlcjxGZWF0dXJlW10+XG4gIEBPdXRwdXQoKSBnZXQgZmVhdHVyZXNIb3ZlcigpIHtcbiAgICBpZiAoIXRoaXMuX2ZlYXR1cmVzSG92ZXIpIHtcbiAgICAgIHRoaXMub3BlbmxheWVyc01hcC50aGVuKChvbE1hcCkgPT4ge1xuICAgICAgICBsaXN0ZW4oXG4gICAgICAgICAgb2xNYXAsXG4gICAgICAgICAgRmVhdHVyZXNIb3ZlckV2ZW50VHlwZSxcbiAgICAgICAgICAoeyBmZWF0dXJlcyB9OiBGZWF0dXJlc0hvdmVyRXZlbnQpID0+XG4gICAgICAgICAgICB0aGlzLl9mZWF0dXJlc0hvdmVyLmVtaXQoZmVhdHVyZXMpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgICB0aGlzLl9mZWF0dXJlc0hvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxGZWF0dXJlW10+KClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ZlYXR1cmVzSG92ZXJcbiAgfVxuICBfbWFwQ2xpY2s6IEV2ZW50RW1pdHRlcjxbbnVtYmVyLCBudW1iZXJdPlxuICBAT3V0cHV0KCkgZ2V0IG1hcENsaWNrKCkge1xuICAgIGlmICghdGhpcy5fbWFwQ2xpY2spIHtcbiAgICAgIHRoaXMub3BlbmxheWVyc01hcC50aGVuKChvbE1hcCkgPT4ge1xuICAgICAgICBsaXN0ZW4ob2xNYXAsIE1hcENsaWNrRXZlbnRUeXBlLCAoeyBjb29yZGluYXRlIH06IE1hcENsaWNrRXZlbnQpID0+XG4gICAgICAgICAgdGhpcy5fbWFwQ2xpY2suZW1pdChjb29yZGluYXRlKVxuICAgICAgICApXG4gICAgICB9KVxuICAgICAgdGhpcy5fbWFwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFtudW1iZXIsIG51bWJlcl0+KClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX21hcENsaWNrXG4gIH1cbiAgX3NvdXJjZUxvYWRFcnJvcjogRXZlbnRFbWl0dGVyPFNvdXJjZUxvYWRFcnJvckV2ZW50PlxuICBAT3V0cHV0KCkgZ2V0IHNvdXJjZUxvYWRFcnJvcigpIHtcbiAgICBpZiAoIXRoaXMuX3NvdXJjZUxvYWRFcnJvcikge1xuICAgICAgdGhpcy5vcGVubGF5ZXJzTWFwLnRoZW4oKG9sTWFwKSA9PiB7XG4gICAgICAgIGxpc3RlbihvbE1hcCwgU291cmNlTG9hZEVycm9yVHlwZSwgKGVycm9yOiBTb3VyY2VMb2FkRXJyb3JFdmVudCkgPT5cbiAgICAgICAgICB0aGlzLl9zb3VyY2VMb2FkRXJyb3IuZW1pdChlcnJvcilcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX3NvdXJjZUxvYWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8U291cmNlTG9hZEVycm9yRXZlbnQ+KClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZUxvYWRFcnJvclxuICB9XG5cbiAgQFZpZXdDaGlsZCgnbWFwJykgY29udGFpbmVyOiBFbGVtZW50UmVmXG4gIGRpc3BsYXlNZXNzYWdlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBvbE1hcDogT2xNYXBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQKSBwcml2YXRlIGRvTm90VXNlRGVmYXVsdEJhc2VtYXA6IGJvb2xlYW4sXG4gICAgQEluamVjdChCQVNFTUFQX0xBWUVSUykgcHJpdmF0ZSBiYXNlbWFwTGF5ZXJzOiBNYXBDb250ZXh0TGF5ZXJbXSxcbiAgICBASW5qZWN0KE1BUF9WSUVXX0NPTlNUUkFJTlRTKVxuICAgIHByaXZhdGUgbWFwVmlld0NvbnN0cmFpbnRzOiB7XG4gICAgICBtYXhab29tPzogbnVtYmVyXG4gICAgICBtYXhFeHRlbnQ/OiBFeHRlbnRcbiAgICB9XG4gICkge31cblxuICBwcml2YXRlIG9sTWFwUmVzb2x2ZXJcbiAgb3BlbmxheWVyc01hcCA9IG5ldyBQcm9taXNlPE9sTWFwPigocmVzb2x2ZSkgPT4ge1xuICAgIHRoaXMub2xNYXBSZXNvbHZlciA9IHJlc29sdmVcbiAgfSlcblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5vbE1hcCA9IGF3YWl0IGNyZWF0ZU1hcEZyb21Db250ZXh0KFxuICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dCh0aGlzLmNvbnRleHQpLFxuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgIClcbiAgICB0aGlzLmRpc3BsYXlNZXNzYWdlJCA9IG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHRoaXMub2xNYXAsICdtYXBtdXRlZCcpLnBpcGUobWFwKCgpID0+IHRydWUpKSxcbiAgICAgIGZyb21FdmVudCh0aGlzLm9sTWFwLCAnbW92ZXN0YXJ0JykucGlwZShtYXAoKCkgPT4gZmFsc2UpKSxcbiAgICAgIGZyb21FdmVudCh0aGlzLm9sTWFwLCAnc2luZ2xlY2xpY2snKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpXG4gICAgKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChtdXRlZCkgPT5cbiAgICAgICAgbXV0ZWRcbiAgICAgICAgICA/IHRpbWVyKDIwMDApLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiBmYWxzZSksXG4gICAgICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICAgICAgZGVsYXkoNDAwKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogb2YoZmFsc2UpXG4gICAgICApXG4gICAgKVxuICAgIHRoaXMub2xNYXBSZXNvbHZlcih0aGlzLm9sTWFwKVxuICB9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY29udGV4dCcgaW4gY2hhbmdlcyAmJiAhY2hhbmdlc1snY29udGV4dCddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgY29uc3QgZGlmZiA9IGNvbXB1dGVNYXBDb250ZXh0RGlmZihcbiAgICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dChjaGFuZ2VzWydjb250ZXh0J10uY3VycmVudFZhbHVlKSxcbiAgICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dChjaGFuZ2VzWydjb250ZXh0J10ucHJldmlvdXNWYWx1ZSlcbiAgICAgIClcbiAgICAgIGF3YWl0IGFwcGx5Q29udGV4dERpZmZUb01hcCh0aGlzLm9sTWFwLCBkaWZmKVxuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgd2lsbCBhcHBseSBiYXNlbWFwIGxheWVycyAmIHZpZXcgY29uc3RyYWludHNcbiAgcHJvY2Vzc0NvbnRleHQoY29udGV4dDogTWFwQ29udGV4dCk6IE1hcENvbnRleHQge1xuICAgIGNvbnN0IHByb2Nlc3NlZCA9IGNvbnRleHRcbiAgICAgID8geyAuLi5jb250ZXh0LCB2aWV3OiBjb250ZXh0LnZpZXcgPz8gREVGQVVMVF9WSUVXIH1cbiAgICAgIDogeyBsYXllcnM6IFtdLCB2aWV3OiBERUZBVUxUX1ZJRVcgfVxuICAgIGlmICh0aGlzLmJhc2VtYXBMYXllcnMubGVuZ3RoKSB7XG4gICAgICBwcm9jZXNzZWQubGF5ZXJzID0gWy4uLnRoaXMuYmFzZW1hcExheWVycywgLi4ucHJvY2Vzc2VkLmxheWVyc11cbiAgICB9XG4gICAgaWYgKCF0aGlzLmRvTm90VXNlRGVmYXVsdEJhc2VtYXApIHtcbiAgICAgIHByb2Nlc3NlZC5sYXllcnMgPSBbREVGQVVMVF9CQVNFTUFQX0xBWUVSLCAuLi5wcm9jZXNzZWQubGF5ZXJzXVxuICAgIH1cbiAgICBpZiAodGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4Wm9vbSkge1xuICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgIG1heFpvb206IHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heFpvb20sXG4gICAgICAgIC4uLnByb2Nlc3NlZC52aWV3LFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4RXh0ZW50KSB7XG4gICAgICBwcm9jZXNzZWQudmlldyA9IHtcbiAgICAgICAgbWF4RXh0ZW50OiB0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhFeHRlbnQsXG4gICAgICAgIC4uLnByb2Nlc3NlZC52aWV3LFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzZWQudmlldyAmJlxuICAgICAgISgnem9vbScgaW4gcHJvY2Vzc2VkLnZpZXcpICYmXG4gICAgICAhKCdjZW50ZXInIGluIHByb2Nlc3NlZC52aWV3KVxuICAgICkge1xuICAgICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCkge1xuICAgICAgICBwcm9jZXNzZWQudmlldyA9IHtcbiAgICAgICAgICBleHRlbnQ6IHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCxcbiAgICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7IC4uLkRFRkFVTFRfVklFVywgLi4ucHJvY2Vzc2VkLnZpZXcgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc2VkXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsXCIgI21hcD48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIHAtMiByb3VuZGVkIHotNDAgdHJhbnNpdGlvbi1hbGwgZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgdGV4dC1wcmltYXJ5IGZvbnQtc2FucyBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgW25nQ2xhc3NdPVwiXG4gICAgKGRpc3BsYXlNZXNzYWdlJCB8IGFzeW5jKSA/ICd2aXNpYmxlIG9wYWNpdHktMTAwJyA6ICdpbnZpc2libGUgb3BhY2l0eS0wJ1xuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhYnNvbHV0ZSB6LVstMV0gaW5zZXQtMCBiZy1ncmFkaWVudC10by1iIGZyb20td2hpdGUgdG8tcHJpbWFyeS1saWdodGVzdCBvcGFjaXR5LTYwXCJcbiAgPjwvZGl2PlxuICA8bmctaWNvblxuICAgIGNsYXNzPVwiIXctMTYgIWgtMTYgdGV4dC1bNjRweF0gbWItNFwiXG4gICAgbmFtZT1cIm1hdFN3aXBlT3V0bGluZVwiXG4gID48L25nLWljb24+XG4gIDxwIHRyYW5zbGF0ZT5tYXAubmF2aWdhdGlvbi5tZXNzYWdlPC9wPlxuPC9kaXY+XG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvbGliL2NvbXBvbmVudHMvbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDeEQsT0FBTyxFQUNMLHFCQUFxQixFQUdyQixzQkFBc0IsRUFFdEIsc0JBQXNCLEVBRXRCLGlCQUFpQixFQUVqQix3QkFBd0IsRUFPeEIsbUJBQW1CLEdBQ3BCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsTUFBTSxHQUNQLE1BQU0sNEJBQTRCLENBQUE7QUFHbkMs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QTBCOzswQkFDakMsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxvQkFBb0I7eUNBN0ZyQixPQUFPO3NCQUFmLEtBQUs7Z0JBRVksU0FBUztzQkFBMUIsU0FBUzt1QkFBQyxLQUFLO2dCQW1CRixhQUFhO3NCQUExQixNQUFNO2dCQWFPLGFBQWE7c0JBQTFCLE1BQU07Z0JBYU8sUUFBUTtzQkFBckIsTUFBTTtnQkFVTyxZQUFZO3NCQUF6QixNQUFNO2dCQWFPLGVBQWU7c0JBQTVCLE1BQU07Z0JBYU8sb0JBQW9CO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgdGltZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIGNvbXB1dGVNYXBDb250ZXh0RGlmZixcbiAgRXh0ZW50LFxuICBGZWF0dXJlc0NsaWNrRXZlbnQsXG4gIEZlYXR1cmVzQ2xpY2tFdmVudFR5cGUsXG4gIEZlYXR1cmVzSG92ZXJFdmVudCxcbiAgRmVhdHVyZXNIb3ZlckV2ZW50VHlwZSxcbiAgTWFwQ2xpY2tFdmVudCxcbiAgTWFwQ2xpY2tFdmVudFR5cGUsXG4gIE1hcEV4dGVudENoYW5nZUV2ZW50LFxuICBNYXBFeHRlbnRDaGFuZ2VFdmVudFR5cGUsXG4gIE1hcENvbnRleHQsXG4gIE1hcENvbnRleHRMYXllcixcbiAgTWFwQ29udGV4dExheWVyWHl6LFxuICBNYXBDb250ZXh0VmlldyxcbiAgTWFwRXZlbnRzQnlUeXBlLFxuICBTb3VyY2VMb2FkRXJyb3JFdmVudCxcbiAgU291cmNlTG9hZEVycm9yVHlwZSxcbn0gZnJvbSAnQGdlb3NwYXRpYWwtc2RrL2NvcmUnXG5pbXBvcnQge1xuICBhcHBseUNvbnRleHREaWZmVG9NYXAsXG4gIGNyZWF0ZU1hcEZyb21Db250ZXh0LFxuICBsaXN0ZW4sXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9vcGVubGF5ZXJzJ1xuaW1wb3J0IHR5cGUgT2xNYXAgZnJvbSAnb2wvTWFwJ1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7XG4gIEJBU0VNQVBfTEFZRVJTLFxuICBET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUCxcbiAgTUFQX1ZJRVdfQ09OU1RSQUlOVFMsXG59IGZyb20gJy4vbWFwLXNldHRpbmdzLnRva2VuJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdFN3aXBlT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRXh0ZW50IH0gZnJvbSAnb2wvcHJvaidcblxuY29uc3QgREVGQVVMVF9CQVNFTUFQX0xBWUVSOiBNYXBDb250ZXh0TGF5ZXJYeXogPSB7XG4gIHR5cGU6ICd4eXonLFxuICB1cmw6IGBodHRwczovL3thLWN9LmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9yYXN0ZXJ0aWxlcy92b3lhZ2VyL3t6fS97eH0ve3l9LnBuZ2AsXG4gIGF0dHJpYnV0aW9uczogYDxzcGFuPsKpIDxhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycywgwqkgPGEgaHJlZj1cImh0dHBzOi8vY2FydG8uY29tL1wiPkNhcnRvPC9hPjwvc3Bhbj5gLFxufVxuXG5jb25zdCBERUZBVUxUX1ZJRVc6IE1hcENvbnRleHRWaWV3ID0ge1xuICBjZW50ZXI6IFswLCAxNV0sXG4gIHpvb206IDIsXG59XG5cbmludGVyZmFjZSBNYXBWaWV3Q29uc3RyYWludHMge1xuICBtYXhab29tPzogbnVtYmVyXG4gIG1heEV4dGVudD86IEV4dGVudFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tYXAtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtY29udGFpbmVyLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZURpcmVjdGl2ZSwgTmdJY29uQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgbWF0U3dpcGVPdXRsaW5lIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbnRleHQ6IE1hcENvbnRleHQgfCBudWxsXG5cbiAgQFZpZXdDaGlsZCgnbWFwJykgY29udGFpbmVyOiBFbGVtZW50UmVmXG5cbiAgcHJpdmF0ZSBvbE1hcDogT2xNYXBcbiAgcHJpdmF0ZSBvbE1hcFJlc29sdmVyOiAodmFsdWU6IE9sTWFwKSA9PiB2b2lkXG4gIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuXG4gIGRpc3BsYXlNZXNzYWdlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBvcGVubGF5ZXJzTWFwID0gbmV3IFByb21pc2U8T2xNYXA+KChyZXNvbHZlKSA9PiB7XG4gICAgdGhpcy5vbE1hcFJlc29sdmVyID0gcmVzb2x2ZVxuICB9KVxuXG4gIC8vIFRoZXNlIGV2ZW50cyBvbmx5IGdldCByZWdpc3RlcmVkIG9uIHRoZSBtYXAgaWYgdGhleSBhcmUgdXNlZFxuICBfZmVhdHVyZXNDbGljazogRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT4gPSBudWxsXG4gIF9mZWF0dXJlc0hvdmVyOiBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPiA9IG51bGxcbiAgX21hcENsaWNrOiBFdmVudEVtaXR0ZXI8W251bWJlciwgbnVtYmVyXT4gPSBudWxsXG4gIF9leHRlbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxFeHRlbnQ+ID0gbnVsbFxuICBfc291cmNlTG9hZEVycm9yOiBFdmVudEVtaXR0ZXI8U291cmNlTG9hZEVycm9yRXZlbnQ+ID0gbnVsbFxuICBfcmVzb2x2ZWRFeHRlbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxFeHRlbnQ+ID0gbnVsbFxuXG4gIEBPdXRwdXQoKSBnZXQgZmVhdHVyZXNDbGljaygpIHtcbiAgICBpZiAoIXRoaXMuX2ZlYXR1cmVzQ2xpY2spIHtcbiAgICAgIHRoaXMuc2V0dXBFdmVudExpc3RlbmVyKFxuICAgICAgICBGZWF0dXJlc0NsaWNrRXZlbnRUeXBlLFxuICAgICAgICAoZXZlbnQ6IEZlYXR1cmVzQ2xpY2tFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2ZlYXR1cmVzQ2xpY2suZW1pdChldmVudC5mZWF0dXJlcylcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgdGhpcy5fZmVhdHVyZXNDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mZWF0dXJlc0NsaWNrXG4gIH1cblxuICBAT3V0cHV0KCkgZ2V0IGZlYXR1cmVzSG92ZXIoKSB7XG4gICAgaWYgKCF0aGlzLl9mZWF0dXJlc0hvdmVyKSB7XG4gICAgICB0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgRmVhdHVyZXNIb3ZlckV2ZW50VHlwZSxcbiAgICAgICAgKGV2ZW50OiBGZWF0dXJlc0hvdmVyRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl9mZWF0dXJlc0hvdmVyLmVtaXQoZXZlbnQuZmVhdHVyZXMpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIHRoaXMuX2ZlYXR1cmVzSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT4oKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZmVhdHVyZXNIb3ZlclxuICB9XG5cbiAgQE91dHB1dCgpIGdldCBtYXBDbGljaygpIHtcbiAgICBpZiAoIXRoaXMuX21hcENsaWNrKSB7XG4gICAgICB0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcihNYXBDbGlja0V2ZW50VHlwZSwgKGV2ZW50OiBNYXBDbGlja0V2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX21hcENsaWNrLmVtaXQoZXZlbnQuY29vcmRpbmF0ZSlcbiAgICAgIH0pXG4gICAgICB0aGlzLl9tYXBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8W251bWJlciwgbnVtYmVyXT4oKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbWFwQ2xpY2tcbiAgfVxuXG4gIEBPdXRwdXQoKSBnZXQgZXh0ZW50Q2hhbmdlKCkge1xuICAgIGlmICghdGhpcy5fZXh0ZW50Q2hhbmdlKSB7XG4gICAgICB0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgTWFwRXh0ZW50Q2hhbmdlRXZlbnRUeXBlLFxuICAgICAgICAoZXZlbnQ6IE1hcEV4dGVudENoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fZXh0ZW50Q2hhbmdlLmVtaXQoZXZlbnQuZXh0ZW50IGFzIEV4dGVudClcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgdGhpcy5fZXh0ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFeHRlbnQ+KClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2V4dGVudENoYW5nZVxuICB9XG5cbiAgQE91dHB1dCgpIGdldCBzb3VyY2VMb2FkRXJyb3IoKSB7XG4gICAgaWYgKCF0aGlzLl9zb3VyY2VMb2FkRXJyb3IpIHtcbiAgICAgIHRoaXMuc2V0dXBFdmVudExpc3RlbmVyKFxuICAgICAgICBTb3VyY2VMb2FkRXJyb3JUeXBlLFxuICAgICAgICAoZXZlbnQ6IFNvdXJjZUxvYWRFcnJvckV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fc291cmNlTG9hZEVycm9yLmVtaXQoZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIHRoaXMuX3NvdXJjZUxvYWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8U291cmNlTG9hZEVycm9yRXZlbnQ+KClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZUxvYWRFcnJvclxuICB9XG5cbiAgQE91dHB1dCgpIGdldCByZXNvbHZlZEV4dGVudENoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMuX3Jlc29sdmVkRXh0ZW50Q2hhbmdlKSB7XG4gICAgICB0aGlzLl9yZXNvbHZlZEV4dGVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXh0ZW50PigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZXNvbHZlZEV4dGVudENoYW5nZVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUCkgcHJpdmF0ZSBkb05vdFVzZURlZmF1bHRCYXNlbWFwOiBib29sZWFuLFxuICAgIEBJbmplY3QoQkFTRU1BUF9MQVlFUlMpIHByaXZhdGUgYmFzZW1hcExheWVyczogTWFwQ29udGV4dExheWVyW10sXG4gICAgQEluamVjdChNQVBfVklFV19DT05TVFJBSU5UUylcbiAgICBwcml2YXRlIG1hcFZpZXdDb25zdHJhaW50czogTWFwVmlld0NvbnN0cmFpbnRzXG4gICkge1xuICAgIHRoaXMuZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuICB9XG5cbiAgY2FsY3VsYXRlQ3VycmVudE1hcEV4dGVudCgpOiBFeHRlbnQge1xuICAgIGNvbnN0IGV4dGVudCA9IHRoaXMub2xNYXAuZ2V0VmlldygpLmNhbGN1bGF0ZUV4dGVudCh0aGlzLm9sTWFwLmdldFNpemUoKSlcbiAgICBjb25zdCByZXByb2plY3RlZEV4dGVudCA9IHRyYW5zZm9ybUV4dGVudChcbiAgICAgIGV4dGVudCxcbiAgICAgIHRoaXMub2xNYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKVxuXG4gICAgcmV0dXJuIHJlcHJvamVjdGVkRXh0ZW50IGFzIEV4dGVudFxuICB9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub2xNYXAgPSBhd2FpdCBjcmVhdGVNYXBGcm9tQ29udGV4dChcbiAgICAgIHRoaXMucHJvY2Vzc0NvbnRleHQodGhpcy5jb250ZXh0KSxcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnRcbiAgICApXG4gICAgaWYgKHRoaXMuX3Jlc29sdmVkRXh0ZW50Q2hhbmdlKSB7XG4gICAgICB0aGlzLl9yZXNvbHZlZEV4dGVudENoYW5nZS5lbWl0KHRoaXMuY2FsY3VsYXRlQ3VycmVudE1hcEV4dGVudCgpKVxuICAgIH1cblxuICAgIHRoaXMuc2V0dXBEaXNwbGF5TWVzc2FnZU9ic2VydmFibGUoKVxuICAgIHRoaXMub2xNYXBSZXNvbHZlcih0aGlzLm9sTWFwKVxuICB9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY29udGV4dCcgaW4gY2hhbmdlcyAmJiAhY2hhbmdlc1snY29udGV4dCddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgY29uc3QgZGlmZiA9IGNvbXB1dGVNYXBDb250ZXh0RGlmZihcbiAgICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dChjaGFuZ2VzWydjb250ZXh0J10uY3VycmVudFZhbHVlKSxcbiAgICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dChjaGFuZ2VzWydjb250ZXh0J10ucHJldmlvdXNWYWx1ZSlcbiAgICAgIClcbiAgICAgIGF3YWl0IGFwcGx5Q29udGV4dERpZmZUb01hcCh0aGlzLm9sTWFwLCBkaWZmKVxuXG4gICAgICBpZiAodGhpcy5fcmVzb2x2ZWRFeHRlbnRDaGFuZ2UgJiYgZGlmZi52aWV3Q2hhbmdlcykge1xuICAgICAgICB0aGlzLl9yZXNvbHZlZEV4dGVudENoYW5nZS5lbWl0KHRoaXMuY2FsY3VsYXRlQ3VycmVudE1hcEV4dGVudCgpKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBFdmVudExpc3RlbmVyKFxuICAgIGV2ZW50VHlwZToga2V5b2YgTWFwRXZlbnRzQnlUeXBlLFxuICAgIGhhbmRsZXI6IChldmVudDogTWFwRXZlbnRzQnlUeXBlW3R5cGVvZiBldmVudFR5cGVdKSA9PiB2b2lkXG4gICkge1xuICAgIHRoaXMub3BlbmxheWVyc01hcC50aGVuKChvbE1hcDogT2xNYXApID0+IHtcbiAgICAgIGxpc3RlbihvbE1hcCwgZXZlbnRUeXBlLCBoYW5kbGVyKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHNldHVwRGlzcGxheU1lc3NhZ2VPYnNlcnZhYmxlKCkge1xuICAgIHRoaXMuZGlzcGxheU1lc3NhZ2UkID0gbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQodGhpcy5vbE1hcCwgJ21hcG11dGVkJykucGlwZShtYXAoKCkgPT4gdHJ1ZSkpLFxuICAgICAgZnJvbUV2ZW50KHRoaXMub2xNYXAsICdtb3Zlc3RhcnQnKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpLFxuICAgICAgZnJvbUV2ZW50KHRoaXMub2xNYXAsICdzaW5nbGVjbGljaycpLnBpcGUobWFwKCgpID0+IGZhbHNlKSlcbiAgICApLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKG11dGVkKSA9PlxuICAgICAgICBtdXRlZFxuICAgICAgICAgID8gdGltZXIoMjAwMCkucGlwZShcbiAgICAgICAgICAgICAgbWFwKCgpID0+IGZhbHNlKSxcbiAgICAgICAgICAgICAgc3RhcnRXaXRoKHRydWUpLFxuICAgICAgICAgICAgICBkZWxheSg0MDApXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZihmYWxzZSlcbiAgICAgICksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0NvbnRleHQoY29udGV4dDogTWFwQ29udGV4dCk6IE1hcENvbnRleHQge1xuICAgIGNvbnN0IHByb2Nlc3NlZCA9IGNvbnRleHRcbiAgICAgID8geyAuLi5jb250ZXh0LCB2aWV3OiBjb250ZXh0LnZpZXcgPz8gREVGQVVMVF9WSUVXIH1cbiAgICAgIDogeyBsYXllcnM6IFtdLCB2aWV3OiBERUZBVUxUX1ZJRVcgfVxuXG4gICAgLy8gUHJlcGVuZCB3aXRoIGRlZmF1bHQgYmFzZW1hcCBhbmQgYmFzZW1hcCBsYXllcnNcbiAgICBpZiAodGhpcy5iYXNlbWFwTGF5ZXJzLmxlbmd0aCkge1xuICAgICAgcHJvY2Vzc2VkLmxheWVycyA9IFsuLi50aGlzLmJhc2VtYXBMYXllcnMsIC4uLnByb2Nlc3NlZC5sYXllcnNdXG4gICAgfVxuICAgIGlmICghdGhpcy5kb05vdFVzZURlZmF1bHRCYXNlbWFwKSB7XG4gICAgICBwcm9jZXNzZWQubGF5ZXJzID0gW0RFRkFVTFRfQkFTRU1BUF9MQVlFUiwgLi4ucHJvY2Vzc2VkLmxheWVyc11cbiAgICB9XG5cbiAgICAvLyBBcHBseSB2aWV3IGNvbnN0cmFpbnRzXG4gICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heFpvb20pIHtcbiAgICAgIHByb2Nlc3NlZC52aWV3ID0ge1xuICAgICAgICBtYXhab29tOiB0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhab29tLFxuICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCkge1xuICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgIG1heEV4dGVudDogdGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4RXh0ZW50LFxuICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzZWQudmlldyAmJlxuICAgICAgJ3pvb20nIGluIHByb2Nlc3NlZC52aWV3ICYmXG4gICAgICAnY2VudGVyJyBpbiBwcm9jZXNzZWQudmlld1xuICAgICkge1xuICAgICAgcmV0dXJuIHByb2Nlc3NlZFxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzZWQudmlldyAmJiAnZXh0ZW50JyBpbiBwcm9jZXNzZWQudmlldykge1xuICAgICAgcmV0dXJuIHByb2Nlc3NlZFxuICAgIH1cblxuICAgIC8vIEVuc3VyZSB2YWxpZCB2aWV3XG4gICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCkge1xuICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgIGV4dGVudDogdGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4RXh0ZW50LFxuICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7IC4uLkRFRkFVTFRfVklFVywgLi4ucHJvY2Vzc2VkLnZpZXcgfVxuICAgIH1cblxuICAgIHJldHVybiBwcm9jZXNzZWRcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtZnVsbCB3LWZ1bGxcIiAjbWFwPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgcC0yIHJvdW5kZWQgei00MCB0cmFuc2l0aW9uLWFsbCBmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciB0ZXh0LXByaW1hcnkgZm9udC1zYW5zIHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgKGRpc3BsYXlNZXNzYWdlJCB8IGFzeW5jKSA/ICd2aXNpYmxlIG9wYWNpdHktMTAwJyA6ICdpbnZpc2libGUgb3BhY2l0eS0wJ1xuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImFic29sdXRlIHotWy0xXSBpbnNldC0wIGJnLWdyYWRpZW50LXRvLWIgZnJvbS13aGl0ZSB0by1wcmltYXJ5LWxpZ2h0ZXN0IG9wYWNpdHktNjBcIlxuICAgID48L2Rpdj5cbiAgICA8bmctaWNvblxuICAgICAgY2xhc3M9XCIhdy0xNiAhaC0xNiB0ZXh0LVs2NHB4XSBtYi00XCJcbiAgICAgIG5hbWU9XCJtYXRTd2lwZU91dGxpbmVcIlxuICAgID48L25nLWljb24+XG4gICAgPHAgdHJhbnNsYXRlPm1hcC5uYXZpZ2F0aW9uLm1lc3NhZ2U8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -69,7 +69,7 @@ export class SpatialExtentComponent {
69
69
  return new GeoJSON().writeGeometryObject(geometry);
70
70
  }
71
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialExtentComponent, isStandalone: true, selector: "gn-ui-spatial-extent", inputs: { spatialExtents: "spatialExtents" }, ngImport: i0, template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }] }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialExtentComponent, isStandalone: true, selector: "gn-ui-spatial-extent", inputs: { spatialExtents: "spatialExtents" }, ngImport: i0, template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }] }); }
73
73
  }
74
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, decorators: [{
75
75
  type: Component,
@@ -4,12 +4,12 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/material/progress-spinner";
5
5
  export class LoadingMaskComponent {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoadingMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoadingMaskComponent, isStandalone: true, selector: "gn-ui-loading-mask", inputs: { message: "message" }, ngImport: i0, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.background{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoadingMaskComponent, isStandalone: true, selector: "gn-ui-loading-mask", inputs: { message: "message" }, ngImport: i0, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent;backdrop-filter:blur(4px)}}.background{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoadingMaskComponent, decorators: [{
10
10
  type: Component,
11
- args: [{ selector: 'gn-ui-loading-mask', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatProgressSpinnerModule], standalone: true, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.background{opacity:.7}\n"] }]
11
+ args: [{ selector: 'gn-ui-loading-mask', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatProgressSpinnerModule], standalone: true, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent;backdrop-filter:blur(4px)}}.background{opacity:.7}\n"] }]
12
12
  }], propDecorators: { message: [{
13
13
  type: Input
14
14
  }] } });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1tYXNrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMvbGliL2xvYWRpbmctbWFzay9sb2FkaW5nLW1hc2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYy9saWIvbG9hZGluZy1tYXNrL2xvYWRpbmctbWFzay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTs7O0FBVTdFLE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjttR0FBcEIsb0JBQW9CLDhHQ1hqQyw0U0FLQSxzV0RHWSx3QkFBd0I7OzRGQUd2QixvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyx3QkFBd0IsQ0FBQyxjQUN2QixJQUFJOzhCQUdQLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWxvYWRpbmctbWFzaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkaW5nLW1hc2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLW1hc2suY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdNYXNrQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nXG59XG4iLCI8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHJlbGF0aXZlIGJhY2tkcm9wXCI+XG4gIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBiYWNrZ3JvdW5kIGJnLXdoaXRlIGluc2V0LTBcIj48L2Rpdj5cbiAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIyOFwiIGNsYXNzPVwicmVsYXRpdmVcIj48L21hdC1zcGlubmVyPlxuICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMCBtdC0zIHJlbGF0aXZlXCI+e3sgbWVzc2FnZSB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1tYXNrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMvbGliL2xvYWRpbmctbWFzay9sb2FkaW5nLW1hc2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYy9saWIvbG9hZGluZy1tYXNrL2xvYWRpbmctbWFzay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTs7O0FBVTdFLE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjttR0FBcEIsb0JBQW9CLDhHQ1hqQyw0U0FLQSxvVURHWSx3QkFBd0I7OzRGQUd2QixvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyx3QkFBd0IsQ0FBQyxjQUN2QixJQUFJOzhCQUdQLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWxvYWRpbmctbWFzaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkaW5nLW1hc2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLW1hc2suY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdNYXNrQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nXG59XG4iLCI8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHJlbGF0aXZlIGJhY2tkcm9wXCI+XG4gIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBiYWNrZ3JvdW5kIGJnLXdoaXRlIGluc2V0LTBcIj48L2Rpdj5cbiAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIyOFwiIGNsYXNzPVwicmVsYXRpdmVcIj48L21hdC1zcGlubmVyPlxuICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMCBtdC0zIHJlbGF0aXZlXCI+e3sgbWVzc2FnZSB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "",
602
602
  "search.filters.publicationYear": "Veröffentlichungsjahr",
603
603
  "search.filters.publisherOrg": "",
604
+ "search.filters.recordKind": "Type",
604
605
  "search.filters.recordKind.all": "Alle",
605
606
  "search.filters.recordKind.dataset": "Datensätze",
606
607
  "search.filters.recordKind.reuse": "Wiederverwendungen",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "",
640
641
  "share.tab.permalink": "Teilen",
641
642
  "share.tab.webComponent": "Integrieren",
643
+ "stac.filter.enable": "",
642
644
  "stac.filter.reset": "",
643
645
  "stac.results.noResults": "Ihre Suchfilter lieferten keine Ergebnisse",
644
646
  "table.loading.data": "Daten werden geladen...",
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "Producer",
602
602
  "search.filters.publicationYear": "Publication year",
603
603
  "search.filters.publisherOrg": "Publisher",
604
+ "search.filters.recordKind": "Type",
604
605
  "search.filters.recordKind.all": "All",
605
606
  "search.filters.recordKind.dataset": "Datasets",
606
607
  "search.filters.recordKind.reuse": "Reuses",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "Spatial extent",
640
641
  "share.tab.permalink": "Share",
641
642
  "share.tab.webComponent": "Integrate",
643
+ "stac.filter.enable": "Enable dynamic filter on spatial extent",
642
644
  "stac.filter.reset": "Reset filters",
643
645
  "stac.results.noResults": "Your search filters did not match any items",
644
646
  "table.loading.data": "Loading data...",
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "",
602
602
  "search.filters.publicationYear": "",
603
603
  "search.filters.publisherOrg": "",
604
+ "search.filters.recordKind": "Typo",
604
605
  "search.filters.recordKind.all": "Todos",
605
606
  "search.filters.recordKind.dataset": "",
606
607
  "search.filters.recordKind.reuse": "",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "",
640
641
  "share.tab.permalink": "",
641
642
  "share.tab.webComponent": "",
643
+ "stac.filter.enable": "",
642
644
  "stac.filter.reset": "",
643
645
  "stac.results.noResults": "",
644
646
  "table.loading.data": "",
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "Producteur",
602
602
  "search.filters.publicationYear": "Année de publication",
603
603
  "search.filters.publisherOrg": "Distributeur",
604
+ "search.filters.recordKind": "Type",
604
605
  "search.filters.recordKind.all": "Tous",
605
606
  "search.filters.recordKind.dataset": "Jeux de données",
606
607
  "search.filters.recordKind.reuse": "Réutilisations",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "Etendue spatiale",
640
641
  "share.tab.permalink": "Partager",
641
642
  "share.tab.webComponent": "Intégrer",
643
+ "stac.filter.enable": "Activer le filtre dynamique sur l’emprise spatiale",
642
644
  "stac.filter.reset": "Réinitialiser les filtres",
643
645
  "stac.results.noResults": "Vos filtres ne permettent pas d’afficher de résultats",
644
646
  "table.loading.data": "Chargement des données...",
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "Produttore",
602
602
  "search.filters.publicationYear": "Anno di pubblicazione",
603
603
  "search.filters.publisherOrg": "Distributore",
604
+ "search.filters.recordKind": "",
604
605
  "search.filters.recordKind.all": "Tutti",
605
606
  "search.filters.recordKind.dataset": "Dataset",
606
607
  "search.filters.recordKind.reuse": "Riutilizzi",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "Estensione spaziale",
640
641
  "share.tab.permalink": "Condividere",
641
642
  "share.tab.webComponent": "Incorporare",
643
+ "stac.filter.enable": "",
642
644
  "stac.filter.reset": "",
643
645
  "stac.results.noResults": "",
644
646
  "table.loading.data": "Caricamento dei dati...",
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "",
602
602
  "search.filters.publicationYear": "",
603
603
  "search.filters.publisherOrg": "",
604
+ "search.filters.recordKind": "",
604
605
  "search.filters.recordKind.all": "Alles",
605
606
  "search.filters.recordKind.dataset": "",
606
607
  "search.filters.recordKind.reuse": "",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "",
640
641
  "share.tab.permalink": "",
641
642
  "share.tab.webComponent": "",
643
+ "stac.filter.enable": "",
642
644
  "stac.filter.reset": "",
643
645
  "stac.results.noResults": "",
644
646
  "table.loading.data": "",
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "",
602
602
  "search.filters.publicationYear": "",
603
603
  "search.filters.publisherOrg": "",
604
+ "search.filters.recordKind": "",
604
605
  "search.filters.recordKind.all": "Todos",
605
606
  "search.filters.recordKind.dataset": "",
606
607
  "search.filters.recordKind.reuse": "",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "",
640
641
  "share.tab.permalink": "",
641
642
  "share.tab.webComponent": "",
643
+ "stac.filter.enable": "",
642
644
  "stac.filter.reset": "",
643
645
  "stac.results.noResults": "",
644
646
  "table.loading.data": "",
@@ -601,6 +601,7 @@
601
601
  "search.filters.producerOrg": "",
602
602
  "search.filters.publicationYear": "Rok zverejnenia",
603
603
  "search.filters.publisherOrg": "",
604
+ "search.filters.recordKind": "",
604
605
  "search.filters.recordKind.all": "Všetky",
605
606
  "search.filters.recordKind.dataset": "",
606
607
  "search.filters.recordKind.reuse": "",
@@ -639,6 +640,7 @@
639
640
  "service.metadata.spatialExtent": "",
640
641
  "share.tab.permalink": "Zdieľať",
641
642
  "share.tab.webComponent": "Integrovať",
643
+ "stac.filter.enable": "",
642
644
  "stac.filter.reset": "",
643
645
  "stac.results.noResults": "",
644
646
  "table.loading.data": "Načítanie údajov...",
@@ -1,4 +1,4 @@
1
- import { enUS, nl, fr, de, ko, es, cs, ca, fi, is, it, pt, ru, zhCN, sk, ar, da, nn, pl, sv, tr, hy, az, ka, uk, cy } from 'date-fns/locale';
1
+ import { enUS, cy, uk, ka, az, hy, tr, sv, pl, nn, da, ar, sk, zhCN, ru, pt, it, is, fi, ca, cs, es, ko, de, fr, nl } from 'date-fns/locale';
2
2
 
3
3
  // all 2-char language codes should be listed here
4
4
  const locales = {
@@ -32,4 +32,4 @@ const locales = {
32
32
  };
33
33
 
34
34
  export { locales as default };
35
- //# sourceMappingURL=geonetwork-ui-date-locales-MYnkDJ5h.mjs.map
35
+ //# sourceMappingURL=geonetwork-ui-date-locales-DhlIiWpT.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"geonetwork-ui-date-locales-MYnkDJ5h.mjs","sources":["../../libs/util/i18n/src/lib/date-locales.ts"],"sourcesContent":["import { LanguageCode2 } from './language-codes'\nimport {\n ar,\n az,\n ca,\n cs,\n cy,\n da,\n de,\n enUS,\n es,\n fi,\n fr,\n hy,\n is,\n it,\n ka,\n ko,\n Locale,\n nl,\n nn,\n pl,\n pt,\n ru,\n sk,\n sv,\n tr,\n uk,\n zhCN,\n} from 'date-fns/locale'\n\n// all 2-char language codes should be listed here\nconst locales: Record<LanguageCode2, Locale> = {\n en: enUS,\n nl: nl,\n fr: fr,\n de: de,\n ko: ko,\n es: es,\n cs: cs,\n ca: ca,\n fi: fi,\n is: is,\n it: it,\n pt: pt,\n ru: ru,\n zh: zhCN,\n sk: sk,\n ar: ar,\n da: da,\n no: nn,\n pl: pl,\n sv: sv,\n tr: tr,\n hy: hy,\n az: az,\n ka: ka,\n uk: uk,\n cy: cy,\n rm: enUS, // locale is unavailable\n}\n\nexport default locales\n"],"names":[],"mappings":";;AA+BA;AACA,MAAM,OAAO,GAAkC;AAC7C,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,IAAI;;;;;"}
1
+ {"version":3,"file":"geonetwork-ui-date-locales-DhlIiWpT.mjs","sources":["../../libs/util/i18n/src/lib/date-locales.ts"],"sourcesContent":["import { LanguageCode2 } from './language-codes'\nimport {\n ar,\n az,\n ca,\n cs,\n cy,\n da,\n de,\n enUS,\n es,\n fi,\n fr,\n hy,\n is,\n it,\n ka,\n ko,\n Locale,\n nl,\n nn,\n pl,\n pt,\n ru,\n sk,\n sv,\n tr,\n uk,\n zhCN,\n} from 'date-fns/locale'\n\n// all 2-char language codes should be listed here\nconst locales: Record<LanguageCode2, Locale> = {\n en: enUS,\n nl: nl,\n fr: fr,\n de: de,\n ko: ko,\n es: es,\n cs: cs,\n ca: ca,\n fi: fi,\n is: is,\n it: it,\n pt: pt,\n ru: ru,\n zh: zhCN,\n sk: sk,\n ar: ar,\n da: da,\n no: nn,\n pl: pl,\n sv: sv,\n tr: tr,\n hy: hy,\n az: az,\n ka: ka,\n uk: uk,\n cy: cy,\n rm: enUS, // locale is unavailable\n}\n\nexport default locales\n"],"names":[],"mappings":";;AA+BA;AACA,MAAM,OAAO,GAAkC;AAC7C,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,IAAI;;;;;"}