@metadev/lux 0.27.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm2022/lib/autocomplete/autocomplete.component.mjs +488 -488
  4. package/esm2022/lib/autocomplete-list/autocomplete-list.component.mjs +258 -258
  5. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +77 -77
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +156 -156
  7. package/esm2022/lib/datasource.mjs +1 -1
  8. package/esm2022/lib/datetime/datetime.component.mjs +312 -312
  9. package/esm2022/lib/filter/filter.component.mjs +158 -158
  10. package/esm2022/lib/geolocation/geolocation.component.mjs +423 -423
  11. package/esm2022/lib/geolocation/geolocation.service.mjs +122 -122
  12. package/esm2022/lib/geolocation/openlayer-loader.service.mjs +61 -61
  13. package/esm2022/lib/helperFns.mjs +117 -117
  14. package/esm2022/lib/input/input.component.mjs +469 -469
  15. package/esm2022/lib/input/regexp.service.mjs +194 -194
  16. package/esm2022/lib/lang.mjs +8 -8
  17. package/esm2022/lib/lux.module.mjs +118 -118
  18. package/esm2022/lib/map/geopoint.mjs +1 -1
  19. package/esm2022/lib/map/map.component.mjs +275 -275
  20. package/esm2022/lib/modal/modal-backdrop.mjs +24 -24
  21. package/esm2022/lib/modal/modal-config.mjs +11 -11
  22. package/esm2022/lib/modal/modal-dismiss-reasons.mjs +5 -5
  23. package/esm2022/lib/modal/modal-ref.mjs +100 -100
  24. package/esm2022/lib/modal/modal-stack.mjs +181 -181
  25. package/esm2022/lib/modal/modal-window.mjs +118 -118
  26. package/esm2022/lib/modal/modal.service.mjs +27 -27
  27. package/esm2022/lib/modal/util.mjs +81 -81
  28. package/esm2022/lib/pagination/pagination.component.mjs +144 -144
  29. package/esm2022/lib/pagination/pagination.mjs +1 -1
  30. package/esm2022/lib/radiogroup/radiogroup.component.mjs +129 -129
  31. package/esm2022/lib/select/select.component.mjs +148 -148
  32. package/esm2022/lib/tooltip/placement.mjs +7 -7
  33. package/esm2022/lib/tooltip/tooltip-context.mjs +1 -1
  34. package/esm2022/lib/tooltip/tooltip.component.mjs +21 -21
  35. package/esm2022/lib/tooltip/tooltip.directive.mjs +69 -69
  36. package/esm2022/lib/tooltip/tooltip.service.mjs +136 -136
  37. package/esm2022/lib/tooltip/tooltop-content.mjs +8 -8
  38. package/esm2022/lib/voice-recognition/voice-recognition.directive.mjs +79 -79
  39. package/esm2022/lib/window/window.service.mjs +45 -45
  40. package/esm2022/metadev-lux.mjs +4 -4
  41. package/esm2022/public-api.mjs +20 -20
  42. package/fesm2022/metadev-lux.mjs +4372 -4372
  43. package/fesm2022/metadev-lux.mjs.map +1 -1
  44. package/index.d.ts +5 -5
  45. package/lib/autocomplete/autocomplete.component.d.ts +81 -81
  46. package/lib/autocomplete-list/autocomplete-list.component.d.ts +65 -65
  47. package/lib/breadcrumb/breadcrumb.component.d.ts +22 -22
  48. package/lib/checkbox/checkbox.component.d.ts +47 -47
  49. package/lib/datasource.d.ts +13 -13
  50. package/lib/datetime/datetime.component.d.ts +69 -69
  51. package/lib/filter/filter.component.d.ts +51 -51
  52. package/lib/geolocation/geolocation.component.d.ts +123 -123
  53. package/lib/geolocation/geolocation.service.d.ts +32 -32
  54. package/lib/geolocation/openlayer-loader.service.d.ts +7 -7
  55. package/lib/helperFns.d.ts +15 -15
  56. package/lib/input/input.component.d.ts +108 -108
  57. package/lib/input/regexp.service.d.ts +15 -15
  58. package/lib/lang.d.ts +2 -2
  59. package/lib/lux.module.d.ts +27 -27
  60. package/lib/map/geopoint.d.ts +7 -7
  61. package/lib/map/map.component.d.ts +39 -39
  62. package/lib/modal/modal-backdrop.d.ts +8 -8
  63. package/lib/modal/modal-config.d.ts +14 -14
  64. package/lib/modal/modal-dismiss-reasons.d.ts +4 -4
  65. package/lib/modal/modal-ref.d.ts +41 -41
  66. package/lib/modal/modal-stack.d.ts +31 -31
  67. package/lib/modal/modal-window.d.ts +28 -28
  68. package/lib/modal/modal.service.d.ts +19 -19
  69. package/lib/modal/util.d.ts +40 -40
  70. package/lib/pagination/pagination.component.d.ts +52 -52
  71. package/lib/pagination/pagination.d.ts +10 -10
  72. package/lib/radiogroup/radiogroup.component.d.ts +37 -37
  73. package/lib/select/select.component.d.ts +38 -38
  74. package/lib/tooltip/placement.d.ts +7 -7
  75. package/lib/tooltip/tooltip-context.d.ts +3 -3
  76. package/lib/tooltip/tooltip.component.d.ts +11 -11
  77. package/lib/tooltip/tooltip.directive.d.ts +27 -27
  78. package/lib/tooltip/tooltip.service.d.ts +20 -20
  79. package/lib/tooltip/tooltop-content.d.ts +6 -6
  80. package/lib/voice-recognition/voice-recognition.directive.d.ts +16 -16
  81. package/lib/window/window.service.d.ts +11 -11
  82. package/package.json +3 -4
  83. package/public-api.d.ts +18 -18
@@ -1,123 +1,123 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { of, Subject } from 'rxjs';
4
- import { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class GeolocationService {
8
- http;
9
- debouncePeriodMs = 300; // ms
10
- cacheSize = 20;
11
- lastQueriesWithResults = new Map();
12
- lastQueriesLru = [];
13
- currentSearch$;
14
- currentQuery$;
15
- constructor(http) {
16
- this.http = http;
17
- this.currentSearch$ = new Subject();
18
- const typed$ = this.currentSearch$
19
- .asObservable()
20
- .pipe(distinctUntilChanged());
21
- this.currentQuery$ = typed$.pipe(debounceTime(this.debouncePeriodMs), switchMap((currentQuery) => {
22
- const data = this.getFromCache(currentQuery);
23
- if (data !== undefined) {
24
- return of(data);
25
- }
26
- // Nominatim search documentation:
27
- // https://nominatim.org/release-docs/develop/api/Search/
28
- const url = 'https://nominatim.openstreetmap.org/search?format=json&limit=20&q=' +
29
- encodeURIComponent(currentQuery);
30
- const headers = {
31
- 'Content-Type': 'application/json'
32
- };
33
- this.addToCache(currentQuery, []);
34
- return this.http.get(url, { headers }).pipe(map((response) => {
35
- const searchResults = response;
36
- const uniqueResults = distinct(searchResults);
37
- return this.addToCache(currentQuery, uniqueResults);
38
- }));
39
- }));
40
- }
41
- searchGeolocation(query) {
42
- this.currentSearch$.next(query);
43
- return this.currentQuery$;
44
- }
45
- getLabels(instance, keys) {
46
- const searchResults = instance.lastQueriesWithResults
47
- .get(instance.getLatestQuery())
48
- .filter((searchResult) => samePosition(searchResult, keys));
49
- return of(searchResults.map((searchResult) => {
50
- const key = {
51
- type: 'Point',
52
- coordinates: [searchResult.lon, searchResult.lat]
53
- };
54
- return {
55
- key,
56
- label: searchResult.display_name
57
- };
58
- }));
59
- }
60
- getData(instance, search) {
61
- return instance.searchGeolocation(search).pipe(map((searchResults) => searchResults.map((searchResult) => {
62
- const key = {
63
- type: 'Point',
64
- coordinates: [searchResult.lon, searchResult.lat]
65
- };
66
- const label = searchResult.display_name;
67
- return { key, label };
68
- })));
69
- }
70
- // Cache implemementation ---
71
- getFromCache(query) {
72
- if (this.lastQueriesWithResults.has(query)) {
73
- return this.lastQueriesWithResults.get(query);
74
- }
75
- return undefined;
76
- }
77
- addToCache(query, data) {
78
- if (this.lastQueriesWithResults.keys.length >= this.cacheSize) {
79
- const deletedQuery = this.lastQueriesLru[0];
80
- this.revomeFromCache(deletedQuery);
81
- }
82
- this.lastQueriesWithResults.set(query, data);
83
- this.lastQueriesLru.push(query);
84
- return data;
85
- }
86
- revomeFromCache(query) {
87
- this.lastQueriesWithResults.delete(query);
88
- const index = this.lastQueriesLru.findIndex((it) => it === query);
89
- this.lastQueriesLru.splice(index, 1);
90
- }
91
- getLatestQuery() {
92
- return this.lastQueriesLru.length
93
- ? this.lastQueriesLru[this.lastQueriesLru.length - 1]
94
- : null;
95
- }
96
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
97
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationService, providedIn: 'root' });
98
- }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationService, decorators: [{
100
- type: Injectable,
101
- args: [{ providedIn: 'root' }]
102
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
103
- const samePosition = (searchResult, keys) => {
104
- let found = false;
105
- keys.forEach((item) => {
106
- if (searchResult.lon === item.coordinates[0] &&
107
- searchResult.lat === item.coordinates[1]) {
108
- found = true;
109
- }
110
- });
111
- return found;
112
- };
113
- const distinct = (data) => {
114
- const unique = {};
115
- return data.filter((r) => {
116
- if (unique[r.display_name]) {
117
- return false;
118
- }
119
- unique[r.display_name] = 1;
120
- return true;
121
- });
122
- };
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { of, Subject } from 'rxjs';
4
+ import { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ export class GeolocationService {
8
+ http;
9
+ debouncePeriodMs = 300; // ms
10
+ cacheSize = 20;
11
+ lastQueriesWithResults = new Map();
12
+ lastQueriesLru = [];
13
+ currentSearch$;
14
+ currentQuery$;
15
+ constructor(http) {
16
+ this.http = http;
17
+ this.currentSearch$ = new Subject();
18
+ const typed$ = this.currentSearch$
19
+ .asObservable()
20
+ .pipe(distinctUntilChanged());
21
+ this.currentQuery$ = typed$.pipe(debounceTime(this.debouncePeriodMs), switchMap((currentQuery) => {
22
+ const data = this.getFromCache(currentQuery);
23
+ if (data !== undefined) {
24
+ return of(data);
25
+ }
26
+ // Nominatim search documentation:
27
+ // https://nominatim.org/release-docs/develop/api/Search/
28
+ const url = 'https://nominatim.openstreetmap.org/search?format=json&limit=20&q=' +
29
+ encodeURIComponent(currentQuery);
30
+ const headers = {
31
+ 'Content-Type': 'application/json'
32
+ };
33
+ this.addToCache(currentQuery, []);
34
+ return this.http.get(url, { headers }).pipe(map((response) => {
35
+ const searchResults = response;
36
+ const uniqueResults = distinct(searchResults);
37
+ return this.addToCache(currentQuery, uniqueResults);
38
+ }));
39
+ }));
40
+ }
41
+ searchGeolocation(query) {
42
+ this.currentSearch$.next(query);
43
+ return this.currentQuery$;
44
+ }
45
+ getLabels(instance, keys) {
46
+ const searchResults = instance.lastQueriesWithResults
47
+ .get(instance.getLatestQuery())
48
+ .filter((searchResult) => samePosition(searchResult, keys));
49
+ return of(searchResults.map((searchResult) => {
50
+ const key = {
51
+ type: 'Point',
52
+ coordinates: [searchResult.lon, searchResult.lat]
53
+ };
54
+ return {
55
+ key,
56
+ label: searchResult.display_name
57
+ };
58
+ }));
59
+ }
60
+ getData(instance, search) {
61
+ return instance.searchGeolocation(search).pipe(map((searchResults) => searchResults.map((searchResult) => {
62
+ const key = {
63
+ type: 'Point',
64
+ coordinates: [searchResult.lon, searchResult.lat]
65
+ };
66
+ const label = searchResult.display_name;
67
+ return { key, label };
68
+ })));
69
+ }
70
+ // Cache implemementation ---
71
+ getFromCache(query) {
72
+ if (this.lastQueriesWithResults.has(query)) {
73
+ return this.lastQueriesWithResults.get(query);
74
+ }
75
+ return undefined;
76
+ }
77
+ addToCache(query, data) {
78
+ if (this.lastQueriesWithResults.keys.length >= this.cacheSize) {
79
+ const deletedQuery = this.lastQueriesLru[0];
80
+ this.revomeFromCache(deletedQuery);
81
+ }
82
+ this.lastQueriesWithResults.set(query, data);
83
+ this.lastQueriesLru.push(query);
84
+ return data;
85
+ }
86
+ revomeFromCache(query) {
87
+ this.lastQueriesWithResults.delete(query);
88
+ const index = this.lastQueriesLru.findIndex((it) => it === query);
89
+ this.lastQueriesLru.splice(index, 1);
90
+ }
91
+ getLatestQuery() {
92
+ return this.lastQueriesLru.length
93
+ ? this.lastQueriesLru[this.lastQueriesLru.length - 1]
94
+ : null;
95
+ }
96
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GeolocationService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
97
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GeolocationService, providedIn: 'root' });
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GeolocationService, decorators: [{
100
+ type: Injectable,
101
+ args: [{ providedIn: 'root' }]
102
+ }], ctorParameters: () => [{ type: i1.HttpClient }] });
103
+ const samePosition = (searchResult, keys) => {
104
+ let found = false;
105
+ keys.forEach((item) => {
106
+ if (searchResult.lon === item.coordinates[0] &&
107
+ searchResult.lat === item.coordinates[1]) {
108
+ found = true;
109
+ }
110
+ });
111
+ return found;
112
+ };
113
+ const distinct = (data) => {
114
+ const unique = {};
115
+ return data.filter((r) => {
116
+ if (unique[r.display_name]) {
117
+ return false;
118
+ }
119
+ unique[r.display_name] = 1;
120
+ return true;
121
+ });
122
+ };
123
123
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2x1eC9zcmMvbGliL2dlb2xvY2F0aW9uL2dlb2xvY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDOzs7QUFZeEIsTUFBTSxPQUFPLGtCQUFrQjtJQVFUO0lBUFosZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSztJQUM3QixTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2Ysc0JBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFDM0QsY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUM5QixjQUFjLENBQWtCO0lBQ2hDLGFBQWEsQ0FBNkI7SUFFbEQsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWM7YUFDL0IsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzlCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFFbkMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVks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QUFLLENBQUM7SUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3BCLElBQ0UsWUFBWSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUN4QyxZQUFZLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ3hDO1lBQ0EsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNkO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBb0IsRUFBa0IsRUFBRTtJQUN4RCxNQUFNLE1BQU0sR0FBOEIsRUFBRSxDQUFDO0lBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3ZCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwLFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR2VvUG9pbnQgfSBmcm9tICcuLi9tYXAvZ2VvcG9pbnQnO1xuXG5pbnRlcmZhY2UgU2VhcmNoUmVzdWx0IHtcbiAgcGxhY2VfaWQ6IG51bWJlcjtcbiAgbGF0OiBudW1iZXI7XG4gIGxvbjogbnVtYmVyO1xuICBkaXNwbGF5X25hbWU6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgZGVib3VuY2VQZXJpb2RNcyA9IDMwMDsgLy8gbXNcbiAgcHJpdmF0ZSBjYWNoZVNpemUgPSAyMDtcbiAgcHJpdmF0ZSBsYXN0UXVlcmllc1dpdGhSZXN1bHRzID0gbmV3IE1hcDxzdHJpbmcsIFNlYXJjaFJlc3VsdFtdPigpO1xuICBwcml2YXRlIGxhc3RRdWVyaWVzTHJ1OiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIGN1cnJlbnRTZWFyY2gkOiBTdWJqZWN0PHN0cmluZz47XG4gIHByaXZhdGUgY3VycmVudFF1ZXJ5JDogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHRbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgdGhpcy5jdXJyZW50U2VhcmNoJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IHR5cGVkJCA9IHRoaXMuY3VycmVudFNlYXJjaCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgICB0aGlzLmN1cnJlbnRRdWVyeSQgPSB0eXBlZCQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlUGVyaW9kTXMpLFxuXG4gICAgICBzd2l0Y2hNYXAoKGN1cnJlbnRRdWVyeSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGcm9tQ2FjaGUoY3VycmVudFF1ZXJ5KTtcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBvZihkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOb21pbmF0aW0gc2VhcmNoIGRvY3VtZW50YXRpb246XG4gICAgICAgIC8vIGh0dHBzOi8vbm9taW5hdGltLm9yZy9yZWxlYXNlLWRvY3MvZGV2ZWxvcC9hcGkvU2VhcmNoL1xuICAgICAgICBjb25zdCB1cmwgPVxuICAgICAgICAgICdodHRwczovL25vbWluYXRpbS5vcGVuc3RyZWV0bWFwLm9yZy9zZWFyY2g/Zm9ybWF0PWpzb24mbGltaXQ9MjAmcT0nICtcbiAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoY3VycmVudFF1ZXJ5KTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYWRkVG9DYWNoZShjdXJyZW50UXVlcnksIFtdKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgaGVhZGVycyB9KS5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSByZXNwb25zZSBhcyB1bmtub3duIGFzIFNlYXJjaFJlc3VsdFtdO1xuICAgICAgICAgICAgY29uc3QgdW5pcXVlUmVzdWx0cyA9IGRpc3RpbmN0KHNlYXJjaFJlc3VsdHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkVG9DYWNoZShjdXJyZW50UXVlcnksIHVuaXF1ZVJlc3VsdHMpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzZWFyY2hHZW9sb2NhdGlvbihxdWVyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHRbXT4ge1xuICAgIHRoaXMuY3VycmVudFNlYXJjaCQubmV4dChxdWVyeSk7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFF1ZXJ5JDtcbiAgfVxuXG4gIGdldExhYmVscyhcbiAgICBpbnN0YW5jZTogR2VvbG9jYXRpb25TZXJ2aWNlLFxuICAgIGtleXM6IEdlb1BvaW50W11cbiAgKTogT2JzZXJ2YWJsZTxEYXRhU291cmNlPEdlb1BvaW50LCBzdHJpbmc+PiB7XG4gICAgY29uc3Qgc2VhcmNoUmVzdWx0cyA9IGluc3RhbmNlLmxhc3RRdWVyaWVzV2l0aFJlc3VsdHNcbiAgICAgIC5nZXQoaW5zdGFuY2UuZ2V0TGF0ZXN0UXVlcnkoKSlcbiAgICAgIC5maWx0ZXIoKHNlYXJjaFJlc3VsdCkgPT4gc2FtZVBvc2l0aW9uKHNlYXJjaFJlc3VsdCwga2V5cykpO1xuICAgIHJldHVybiBvZihcbiAgICAgIHNlYXJjaFJlc3VsdHMubWFwKChzZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgY29uc3Qga2V5OiBHZW9Qb2ludCA9IHtcbiAgICAgICAgICB0eXBlOiAnUG9pbnQnLFxuICAgICAgICAgIGNvb3JkaW5hdGVzOiBbc2VhcmNoUmVzdWx0Lmxvbiwgc2VhcmNoUmVzdWx0LmxhdF1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgbGFiZWw6IHNlYXJjaFJlc3VsdC5kaXNwbGF5X25hbWVcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldERhdGEoXG4gICAgaW5zdGFuY2U6IEdlb2xvY2F0aW9uU2VydmljZSxcbiAgICBzZWFyY2g6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPERhdGFTb3VyY2U8R2VvUG9pbnQsIHN0cmluZz4+IHtcbiAgICByZXR1cm4gaW5zdGFuY2Uuc2VhcmNoR2VvbG9jYXRpb24oc2VhcmNoKS5waXBlKFxuICAgICAgbWFwKChzZWFyY2hSZXN1bHRzKSA9PlxuICAgICAgICBzZWFyY2hSZXN1bHRzLm1hcCgoc2VhcmNoUmVzdWx0KSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5OiBHZW9Qb2ludCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2ludCcsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW3NlYXJjaFJlc3VsdC5sb24sIHNlYXJjaFJlc3VsdC5sYXRdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHNlYXJjaFJlc3VsdC5kaXNwbGF5X25hbWU7XG4gICAgICAgICAgcmV0dXJuIHsga2V5LCBsYWJlbCB9O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvLyBDYWNoZSBpbXBsZW1lbWVudGF0aW9uIC0tLVxuICBwcml2YXRlIGdldEZyb21DYWNoZShxdWVyeTogc3RyaW5nKTogU2VhcmNoUmVzdWx0W10ge1xuICAgIGlmICh0aGlzLmxhc3RRdWVyaWVzV2l0aFJlc3VsdHMuaGFzKHF1ZXJ5KSkge1xuICAgICAgcmV0dXJuIHRoaXMubGFzdFF1ZXJpZXNXaXRoUmVzdWx0cy5nZXQocXVlcnkpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHByaXZhdGUgYWRkVG9DYWNoZShxdWVyeTogc3RyaW5nLCBkYXRhOiBTZWFyY2hSZXN1bHRbXSk6IFNlYXJjaFJlc3VsdFtdIHtcbiAgICBpZiAodGhpcy5sYXN0UXVlcmllc1dpdGhSZXN1bHRzLmtleXMubGVuZ3RoID49IHRoaXMuY2FjaGVTaXplKSB7XG4gICAgICBjb25zdCBkZWxldGVkUXVlcnkgPSB0aGlzLmxhc3RRdWVyaWVzTHJ1WzBdO1xuICAgICAgdGhpcy5yZXZvbWVGcm9tQ2FjaGUoZGVsZXRlZFF1ZXJ5KTtcbiAgICB9XG4gICAgdGhpcy5sYXN0UXVlcmllc1dpdGhSZXN1bHRzLnNldChxdWVyeSwgZGF0YSk7XG4gICAgdGhpcy5sYXN0UXVlcmllc0xydS5wdXNoKHF1ZXJ5KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBwcml2YXRlIHJldm9tZUZyb21DYWNoZShxdWVyeTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sYXN0UXVlcmllc1dpdGhSZXN1bHRzLmRlbGV0ZShxdWVyeSk7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmxhc3RRdWVyaWVzTHJ1LmZpbmRJbmRleCgoaXQpID0+IGl0ID09PSBxdWVyeSk7XG4gICAgdGhpcy5sYXN0UXVlcmllc0xydS5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG4gIHByaXZhdGUgZ2V0TGF0ZXN0UXVlcnkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubGFzdFF1ZXJpZXNMcnUubGVuZ3RoXG4gICAgICA/IHRoaXMubGFzdFF1ZXJpZXNMcnVbdGhpcy5sYXN0UXVlcmllc0xydS5sZW5ndGggLSAxXVxuICAgICAgOiBudWxsO1xuICB9XG4gIC8vIEVuZCBjYWNoZSBpbXBsZW1lbWVudGF0aW9uIC0tLVxufVxuXG5jb25zdCBzYW1lUG9zaXRpb24gPSAoXG4gIHNlYXJjaFJlc3VsdDogU2VhcmNoUmVzdWx0LFxuICBrZXlzOiBHZW9Qb2ludFtdXG4pOiBib29sZWFuID0+IHtcbiAgbGV0IGZvdW5kID0gZmFsc2U7XG4gIGtleXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdC5sb24gPT09IGl0ZW0uY29vcmRpbmF0ZXNbMF0gJiZcbiAgICAgIHNlYXJjaFJlc3VsdC5sYXQgPT09IGl0ZW0uY29vcmRpbmF0ZXNbMV1cbiAgICApIHtcbiAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZm91bmQ7XG59O1xuXG5jb25zdCBkaXN0aW5jdCA9IChkYXRhOiBTZWFyY2hSZXN1bHRbXSk6IFNlYXJjaFJlc3VsdFtdID0+IHtcbiAgY29uc3QgdW5pcXVlOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIHJldHVybiBkYXRhLmZpbHRlcigocikgPT4ge1xuICAgIGlmICh1bmlxdWVbci5kaXNwbGF5X25hbWVdKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHVuaXF1ZVtyLmRpc3BsYXlfbmFtZV0gPSAxO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn07XG4iXX0=
@@ -1,62 +1,62 @@
1
- import { Injectable } from '@angular/core';
2
- import { from, of } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- let openLayersIsInstalled = false;
5
- export class OpenLayerLoaderService {
6
- load() {
7
- if (window.ol) {
8
- return of(true);
9
- }
10
- const openLayerJsUrl = 'https://openlayers.org/en/v5.3.0/build/ol.js';
11
- const openLayerCssUrl = 'https://openlayers.org/en/v5.3.0/css/ol.css';
12
- if (!openLayersIsInstalled) {
13
- openLayersIsInstalled = true; // only try to install it once
14
- loadCss(openLayerCssUrl, () => { });
15
- return from(new Promise((resolve, _) => {
16
- loadScript(openLayerJsUrl, () => resolve(true));
17
- }));
18
- }
19
- return of(true);
20
- }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: OpenLayerLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
22
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: OpenLayerLoaderService, providedIn: 'root' });
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: OpenLayerLoaderService, decorators: [{
25
- type: Injectable,
26
- args: [{ providedIn: 'root' }]
27
- }] });
28
- /** Dynamically load a script from url and return a callback */
29
- const loadScript = (url, callback) => {
30
- const script = document.createElement('script');
31
- script.type = 'text/javascript';
32
- if (script.readyState) {
33
- // for old IE
34
- script.onreadystatechange = () => {
35
- if (script.readyState === 'loaded' || script.readyState === 'complete') {
36
- script.onreadystatechange = null;
37
- callback();
38
- }
39
- };
40
- }
41
- else {
42
- // Others browsers
43
- script.onload = () => {
44
- callback();
45
- };
46
- }
47
- script.src = url;
48
- document.getElementsByTagName('head')[0].appendChild(script);
49
- };
50
- /** Dynamically load css from url and return a callback */
51
- const loadCss = (url, callback) => {
52
- const link = document.createElement('link');
53
- link.type = 'text/css';
54
- link.rel = 'stylesheet';
55
- link.type = 'text/javascript';
56
- link.href = url;
57
- link.onload = () => {
58
- callback();
59
- };
60
- document.getElementsByTagName('head')[0].appendChild(link);
61
- };
1
+ import { Injectable } from '@angular/core';
2
+ import { from, of } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ let openLayersIsInstalled = false;
5
+ export class OpenLayerLoaderService {
6
+ load() {
7
+ if (window.ol) {
8
+ return of(true);
9
+ }
10
+ const openLayerJsUrl = 'https://openlayers.org/en/v5.3.0/build/ol.js';
11
+ const openLayerCssUrl = 'https://openlayers.org/en/v5.3.0/css/ol.css';
12
+ if (!openLayersIsInstalled) {
13
+ openLayersIsInstalled = true; // only try to install it once
14
+ loadCss(openLayerCssUrl, () => { });
15
+ return from(new Promise((resolve, _) => {
16
+ loadScript(openLayerJsUrl, () => resolve(true));
17
+ }));
18
+ }
19
+ return of(true);
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: OpenLayerLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
22
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: OpenLayerLoaderService, providedIn: 'root' });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: OpenLayerLoaderService, decorators: [{
25
+ type: Injectable,
26
+ args: [{ providedIn: 'root' }]
27
+ }] });
28
+ /** Dynamically load a script from url and return a callback */
29
+ const loadScript = (url, callback) => {
30
+ const script = document.createElement('script');
31
+ script.type = 'text/javascript';
32
+ if (script.readyState) {
33
+ // for old IE
34
+ script.onreadystatechange = () => {
35
+ if (script.readyState === 'loaded' || script.readyState === 'complete') {
36
+ script.onreadystatechange = null;
37
+ callback();
38
+ }
39
+ };
40
+ }
41
+ else {
42
+ // Others browsers
43
+ script.onload = () => {
44
+ callback();
45
+ };
46
+ }
47
+ script.src = url;
48
+ document.getElementsByTagName('head')[0].appendChild(script);
49
+ };
50
+ /** Dynamically load css from url and return a callback */
51
+ const loadCss = (url, callback) => {
52
+ const link = document.createElement('link');
53
+ link.type = 'text/css';
54
+ link.rel = 'stylesheet';
55
+ link.type = 'text/javascript';
56
+ link.href = url;
57
+ link.onload = () => {
58
+ callback();
59
+ };
60
+ document.getElementsByTagName('head')[0].appendChild(link);
61
+ };
62
62
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmxheWVyLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvZ2VvbG9jYXRpb24vb3BlbmxheWVyLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTVDLElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0FBR2xDLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSTtRQUNGLElBQUssTUFBYyxDQUFDLEVBQUUsRUFBRTtZQUN0QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUVELE1BQU0sY0FBYyxHQUFHLDhDQUE4QyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUFHLDZDQUE2QyxDQUFDO1FBRXRFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMxQixxQkFBcUIsR0FBRyxJQUFJLENBQUMsQ0FBQyw4QkFBOEI7WUFDNUQsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FDVCxJQUFJLE9BQU8sQ0FBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbEMsVUFBVSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO3VHQW5CVSxzQkFBc0I7MkdBQXRCLHNCQUFzQixjQURULE1BQU07OzJGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQXVCbEMsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLFFBQW9CLEVBQVEsRUFBRTtJQUM3RCxNQUFNLE1BQU0sR0FBUSxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFFaEMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO1FBQ3JCLGFBQWE7UUFDYixNQUFNLENBQUMsa0JBQWtCLEdBQUcsR0FBUyxFQUFFO1lBQ3JDLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7Z0JBQ3RFLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLFFBQVEsRUFBRSxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUM7S0FDSDtTQUFNO1FBQ0wsa0JBQWtCO1FBQ2xCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBUyxFQUFFO1lBQ3pCLFFBQVEsRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDO0tBQ0g7SUFDRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQztBQUVGLDBEQUEwRDtBQUMxRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBRSxRQUFvQixFQUFRLEVBQUU7SUFDMUQsTUFBTSxJQUFJLEdBQVEsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztJQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO0lBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBUyxFQUFFO1FBQ3ZCLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBQ0YsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5sZXQgb3BlbkxheWVyc0lzSW5zdGFsbGVkID0gZmFsc2U7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgT3BlbkxheWVyTG9hZGVyU2VydmljZSB7XG4gIGxvYWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgaWYgKCh3aW5kb3cgYXMgYW55KS5vbCkge1xuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cblxuICAgIGNvbnN0IG9wZW5MYXllckpzVXJsID0gJ2h0dHBzOi8vb3BlbmxheWVycy5vcmcvZW4vdjUuMy4wL2J1aWxkL29sLmpzJztcbiAgICBjb25zdCBvcGVuTGF5ZXJDc3NVcmwgPSAnaHR0cHM6Ly9vcGVubGF5ZXJzLm9yZy9lbi92NS4zLjAvY3NzL29sLmNzcyc7XG5cbiAgICBpZiAoIW9wZW5MYXllcnNJc0luc3RhbGxlZCkge1xuICAgICAgb3BlbkxheWVyc0lzSW5zdGFsbGVkID0gdHJ1ZTsgLy8gb25seSB0cnkgdG8gaW5zdGFsbCBpdCBvbmNlXG4gICAgICBsb2FkQ3NzKG9wZW5MYXllckNzc1VybCwgKCkgPT4ge30pO1xuICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlLCBfKSA9PiB7XG4gICAgICAgICAgbG9hZFNjcmlwdChvcGVuTGF5ZXJKc1VybCwgKCkgPT4gcmVzb2x2ZSh0cnVlKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cbn1cblxuLyoqIER5bmFtaWNhbGx5IGxvYWQgYSBzY3JpcHQgZnJvbSB1cmwgYW5kIHJldHVybiBhIGNhbGxiYWNrICovXG5jb25zdCBsb2FkU2NyaXB0ID0gKHVybDogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQgPT4ge1xuICBjb25zdCBzY3JpcHQ6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXG4gIGlmIChzY3JpcHQucmVhZHlTdGF0ZSkge1xuICAgIC8vIGZvciBvbGQgSUVcbiAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlID09PSAnbG9hZGVkJyB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIH1cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIE90aGVycyBicm93c2Vyc1xuICAgIHNjcmlwdC5vbmxvYWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH07XG4gIH1cbiAgc2NyaXB0LnNyYyA9IHVybDtcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpO1xufTtcblxuLyoqIER5bmFtaWNhbGx5IGxvYWQgY3NzIGZyb20gdXJsIGFuZCByZXR1cm4gYSBjYWxsYmFjayAqL1xuY29uc3QgbG9hZENzcyA9ICh1cmw6IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkID0+IHtcbiAgY29uc3QgbGluazogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICBsaW5rLnR5cGUgPSAndGV4dC9jc3MnO1xuICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgbGluay50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gIGxpbmsuaHJlZiA9IHVybDtcbiAgbGluay5vbmxvYWQgPSAoKTogdm9pZCA9PiB7XG4gICAgY2FsbGJhY2soKTtcbiAgfTtcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChsaW5rKTtcbn07XG4iXX0=