@provoly/dashboard 0.23.11 → 0.23.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +3 -1
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +28 -1
- package/esm2022/lib/dashboard/store/wms.service.mjs +29 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +15 -4
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +14 -3
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +57 -0
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/model/widget-map-manifest.interface.d.ts +1 -0
- package/lib/dashboard/store/dashboard.actions.d.ts +20 -0
- package/lib/dashboard/store/dashboard.effects.d.ts +3 -0
- package/lib/dashboard/store/wms.service.d.ts +3 -0
- package/package.json +37 -37
|
@@ -42,6 +42,10 @@ export class WmsService {
|
|
|
42
42
|
getWmsFeatures(url) {
|
|
43
43
|
return this.httpClient.get(url).pipe(map((json) => json));
|
|
44
44
|
}
|
|
45
|
+
getWfsFeatures(wmsUrl, bbox) {
|
|
46
|
+
const url = wfsUrlBuilder(wmsUrl, bbox);
|
|
47
|
+
return this.httpClient.get(url).pipe(map((json) => json));
|
|
48
|
+
}
|
|
45
49
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WmsService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
50
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WmsService, providedIn: 'root' }); }
|
|
47
51
|
}
|
|
@@ -51,4 +55,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
51
55
|
providedIn: 'root'
|
|
52
56
|
}]
|
|
53
57
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
54
|
-
|
|
58
|
+
const wfsUrlBuilder = (wmsUrl, bbox, params) => {
|
|
59
|
+
const wfsFragments = {
|
|
60
|
+
service: 'WFS',
|
|
61
|
+
version: '2.0.0',
|
|
62
|
+
request: 'GetFeature',
|
|
63
|
+
outputFormat: 'application/json',
|
|
64
|
+
typeNames: undefined,
|
|
65
|
+
cql_filter: `BBOX(geom,${bbox.join(',')})`,
|
|
66
|
+
srsName: undefined,
|
|
67
|
+
params: params ? `&${params.join('&')}` : ''
|
|
68
|
+
};
|
|
69
|
+
const base = wmsUrl.split('?')[0].replace('wms', 'wfs');
|
|
70
|
+
const wmsUrlFragments = wmsUrl.split('&');
|
|
71
|
+
wfsFragments['typeNames'] = wmsUrlFragments.find((param) => param.includes('LAYERS'))?.split('=')[1];
|
|
72
|
+
wfsFragments['srsName'] = wmsUrlFragments.find((param) => param.toUpperCase().includes('CRS'))?.split('=')[1];
|
|
73
|
+
wfsFragments['cql_filter'] += wmsUrlFragments.find((param) => param.toUpperCase().includes('CQL_FILTER'))
|
|
74
|
+
? ' AND ' + wmsUrlFragments.find((param) => param.toUpperCase().includes('CQL_FILTER'))?.split('=')[1]
|
|
75
|
+
: '';
|
|
76
|
+
return (base +
|
|
77
|
+
'?' +
|
|
78
|
+
Object.entries(wfsFragments)
|
|
79
|
+
.map(([key, value]) => (value ? `${key}=${value}` : ''))
|
|
80
|
+
.join('&'));
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL3N0b3JlL3dtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTzVDLE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGMUMsV0FBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7SUFFb0IsQ0FBQztJQUU5QyxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDcEUsTUFBTSxtQkFBbUIsR0FDdkIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1lBQ3pHLE1BQU0sbUJBQW1CLEdBQ3ZCLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBRWpI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cnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSA9IHsgdXJsOiBzdHJpbmc7IGRvYz86IERvY3VtZW50IH07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdtc1NlcnZpY2Uge1xuICBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldENhcGFiaWxpdGllcyh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8R2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgaWYgKHVybCkge1xuICAgICAgY29uc3QgbGF5ZXJVcmxXaXRoUW1hcmsgPSB1cmwuaW5kZXhPZignPycpID09PSAtMSA/IHVybCArICc/JyA6IHVybDtcbiAgICAgIGNvbnN0IGxheWVyVXJsV2l0aFNlcnZpY2UgPVxuICAgICAgICBsYXllclVybFdpdGhRbWFyay5pbmRleE9mKCcmU0VSVklDRT0nKSA9PT0gLTEgPyBsYXllclVybFdpdGhRbWFyayArICcmU0VSVklDRT1XTVMnIDogbGF5ZXJVcmxXaXRoUW1hcms7XG4gICAgICBjb25zdCBsYXllclVybFdpdGhWZXJzaW9uID1cbiAgICAgICAgbGF5ZXJVcmxXaXRoU2VydmljZS5pbmRleE9mKCcmVkVSU0lPTj0nKSA9PT0gLTEgPyBsYXllclVybFdpdGhTZXJ2aWNlICsgJyZWRVJTSU9OPTEuMy4wJyA6IGxheWVyVXJsV2l0aFNlcnZpY2U7XG5cbiAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLmdldChgJHtsYXllclVybFdpdGhWZXJzaW9ufSZSRVFVRVNUPUdldENhcGFiaWxpdGllc2AsIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgQWNjZXB0OiAndGV4dC9odG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsICovKicsXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbiAgICAgICAgICB9KSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSB0aGlzLnBhcnNlci5wYXJzZUZyb21TdHJpbmcocmVzcG9uc2UsICdhcHBsaWNhdGlvbi94bWwnKTtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTm9kZSA9IGRvYy5xdWVyeVNlbGVjdG9yKCdwYXJzZXJlcnJvcicpO1xuICAgICAgICAgICAgaWYgKGVycm9yTm9kZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgZ2V0Q2FwYWJpbGl0aWVzIGZvciAke3VybH1gKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4geyB1cmwsIGRvYyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGdldENhcGFiaWxpdGllcyBmb3IgJHt1cmx9YCk7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG5cbiAgZ2V0V21zRmVhdHVyZXModXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgZmVhdHVyZXM6IGFueVtdIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnBpcGUobWFwKChqc29uOiBhbnkpID0+IGpzb24pKTtcbiAgfVxuXG4gIGdldFdmc0ZlYXR1cmVzKHdtc1VybDogc3RyaW5nLCBiYm94OiBudW1iZXJbXSk6IE9ic2VydmFibGU8eyBmZWF0dXJlczogYW55W10gfT4ge1xuICAgIGNvbnN0IHVybCA9IHdmc1VybEJ1aWxkZXIod21zVXJsLCBiYm94KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnBpcGUobWFwKChqc29uOiBhbnkpID0+IGpzb24pKTtcbiAgfVxufVxuXG5jb25zdCB3ZnNVcmxCdWlsZGVyID0gKHdtc1VybDogc3RyaW5nLCBiYm94OiBudW1iZXJbXSwgcGFyYW1zPzogc3RyaW5nW10pID0+IHtcbiAgY29uc3Qgd2ZzRnJhZ21lbnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9ID0ge1xuICAgIHNlcnZpY2U6ICdXRlMnLFxuICAgIHZlcnNpb246ICcyLjAuMCcsXG4gICAgcmVxdWVzdDogJ0dldEZlYXR1cmUnLFxuICAgIG91dHB1dEZvcm1hdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIHR5cGVOYW1lczogdW5kZWZpbmVkLFxuICAgIGNxbF9maWx0ZXI6IGBCQk9YKGdlb20sJHtiYm94LmpvaW4oJywnKX0pYCxcbiAgICBzcnNOYW1lOiB1bmRlZmluZWQsXG4gICAgcGFyYW1zOiBwYXJhbXMgPyBgJiR7cGFyYW1zLmpvaW4oJyYnKX1gIDogJydcbiAgfTtcbiAgY29uc3QgYmFzZSA9IHdtc1VybC5zcGxpdCgnPycpWzBdLnJlcGxhY2UoJ3dtcycsICd3ZnMnKTtcbiAgY29uc3Qgd21zVXJsRnJhZ21lbnRzID0gd21zVXJsLnNwbGl0KCcmJyk7XG4gIHdmc0ZyYWdtZW50c1sndHlwZU5hbWVzJ10gPSB3bXNVcmxGcmFnbWVudHMuZmluZCgocGFyYW0pID0+IHBhcmFtLmluY2x1ZGVzKCdMQVlFUlMnKSk/LnNwbGl0KCc9JylbMV07XG4gIHdmc0ZyYWdtZW50c1snc3JzTmFtZSddID0gd21zVXJsRnJhZ21lbnRzLmZpbmQoKHBhcmFtKSA9PiBwYXJhbS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdDUlMnKSk/LnNwbGl0KCc9JylbMV07XG4gIHdmc0ZyYWdtZW50c1snY3FsX2ZpbHRlciddICs9IHdtc1VybEZyYWdtZW50cy5maW5kKChwYXJhbSkgPT4gcGFyYW0udG9VcHBlckNhc2UoKS5pbmNsdWRlcygnQ1FMX0ZJTFRFUicpKVxuICAgID8gJyBBTkQgJyArIHdtc1VybEZyYWdtZW50cy5maW5kKChwYXJhbSkgPT4gcGFyYW0udG9VcHBlckNhc2UoKS5pbmNsdWRlcygnQ1FMX0ZJTFRFUicpKT8uc3BsaXQoJz0nKVsxXVxuICAgIDogJyc7XG5cbiAgcmV0dXJuIChcbiAgICBiYXNlICtcbiAgICAnPycgK1xuICAgIE9iamVjdC5lbnRyaWVzKHdmc0ZyYWdtZW50cylcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHZhbHVlID8gYCR7a2V5fT0ke3ZhbHVlfWAgOiAnJykpXG4gICAgICAuam9pbignJicpXG4gICk7XG59O1xuIl19
|