@opengeoweb/cap 11.1.0 → 12.0.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.
package/index.esm.js
CHANGED
|
@@ -5,13 +5,14 @@ import { Box as Box$1 } from '@mui/system';
|
|
|
5
5
|
import { dateUtils, AlertBanner } from '@opengeoweb/shared';
|
|
6
6
|
import { useSelector, useDispatch } from 'react-redux';
|
|
7
7
|
import { createEntityAdapter, createSlice, createSelector, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
8
|
-
import React from 'react';
|
|
8
|
+
import React, { useMemo } from 'react';
|
|
9
9
|
import i18n from 'i18next';
|
|
10
10
|
import { useTranslation } from 'react-i18next';
|
|
11
11
|
import { ConfigurableMapConnect } from '@opengeoweb/core';
|
|
12
12
|
import '@opengeoweb/timeslider';
|
|
13
|
-
import { MapViewLayer, MapWarningProperties } from '@opengeoweb/webmap-react';
|
|
14
|
-
import {
|
|
13
|
+
import { isOpenLayersEnabled, OpenLayersFeatureLayer, genericOpenLayersFeatureStyle, MapViewLayer, MapWarningProperties } from '@opengeoweb/webmap-react';
|
|
14
|
+
import { GeoJSON } from 'ol/format';
|
|
15
|
+
import { mapListener, serviceListener, layersListener, syncGroupsListener, genericListener, openlayersListener, mapReducer, serviceReducer, layerReducer, syncGroupsReducer, mapSelectors } from '@opengeoweb/store';
|
|
15
16
|
import { webmapUtils } from '@opengeoweb/webmap';
|
|
16
17
|
|
|
17
18
|
var en = {
|
|
@@ -1044,7 +1045,7 @@ var capReducersMap = {
|
|
|
1044
1045
|
syncGroups: syncGroupsReducer,
|
|
1045
1046
|
cap: capReducer
|
|
1046
1047
|
};
|
|
1047
|
-
var capMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, syncGroupsListener.middleware, genericListener.middleware];
|
|
1048
|
+
var capMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, syncGroupsListener.middleware, genericListener.middleware, openlayersListener.middleware];
|
|
1048
1049
|
var capRootReducer = combineReducers(capReducersMap);
|
|
1049
1050
|
var createMockStore = function createMockStore(mockState) {
|
|
1050
1051
|
return configureStore({
|
|
@@ -1052,7 +1053,8 @@ var createMockStore = function createMockStore(mockState) {
|
|
|
1052
1053
|
preloadedState: mockState,
|
|
1053
1054
|
middleware: function middleware(getDefaultMiddleware) {
|
|
1054
1055
|
return getDefaultMiddleware().concat(capMiddlewares);
|
|
1055
|
-
}
|
|
1056
|
+
},
|
|
1057
|
+
devTools: true
|
|
1056
1058
|
});
|
|
1057
1059
|
};
|
|
1058
1060
|
|
|
@@ -1188,7 +1190,8 @@ var MapViewCapConnect = function MapViewCapConnect(_ref) {
|
|
|
1188
1190
|
bbox = _ref.bbox,
|
|
1189
1191
|
srs = _ref.srs,
|
|
1190
1192
|
capWarningPresets = _ref.capWarningPresets,
|
|
1191
|
-
layers = _ref.layers
|
|
1193
|
+
layers = _ref.layers,
|
|
1194
|
+
children = _ref.children;
|
|
1192
1195
|
var _useApiContext = useApiContext(),
|
|
1193
1196
|
api = _useApiContext.api;
|
|
1194
1197
|
var dispatch = useDispatch();
|
|
@@ -1441,24 +1444,47 @@ var MapViewCapConnect = function MapViewCapConnect(_ref) {
|
|
|
1441
1444
|
setSelectedFeatureEvent(featureResults);
|
|
1442
1445
|
setFeaturesByAlert(nextState);
|
|
1443
1446
|
};
|
|
1447
|
+
var clickOnFeature = useMemo(function () {
|
|
1448
|
+
return {
|
|
1449
|
+
onClick: function onClick(f) {
|
|
1450
|
+
var featureResults = f.length === 0 ? undefined : {
|
|
1451
|
+
feature: new GeoJSON().writeFeatureObject(f[0]),
|
|
1452
|
+
coordinateIndexInFeature: null,
|
|
1453
|
+
featureIndex: null,
|
|
1454
|
+
screenCoords: null,
|
|
1455
|
+
mouseX: null,
|
|
1456
|
+
mouseY: null,
|
|
1457
|
+
isInEditMode: null
|
|
1458
|
+
};
|
|
1459
|
+
setSelectedFeatureEvent(featureResults);
|
|
1460
|
+
setFeaturesByAlert(function (previous) {
|
|
1461
|
+
return highlightGeoJson(previous, featureResults);
|
|
1462
|
+
});
|
|
1463
|
+
}
|
|
1464
|
+
};
|
|
1465
|
+
}, []);
|
|
1444
1466
|
var selectedTime = useSelector(function (store) {
|
|
1445
1467
|
return mapSelectors.getSelectedTime(store, mapIdRef.current);
|
|
1446
1468
|
});
|
|
1447
|
-
var
|
|
1469
|
+
var alertsInEffect = useSelector(function (store) {
|
|
1448
1470
|
return getAlertsInEffect(store, dateUtils.fromUnix(selectedTime).toISOString());
|
|
1449
|
-
}).map(function (_ref13) {
|
|
1450
|
-
var identifier = _ref13.identifier;
|
|
1451
|
-
return identifier;
|
|
1452
|
-
});
|
|
1453
|
-
var featuresInEffect = Object.keys(featuresByAlert).filter(function (id) {
|
|
1454
|
-
return alertIdsInEffect.includes(id);
|
|
1455
|
-
}).flatMap(function (id) {
|
|
1456
|
-
return featuresByAlert[id];
|
|
1457
1471
|
});
|
|
1458
|
-
var geoJsonObject = {
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1472
|
+
var geoJsonObject = useMemo(function () {
|
|
1473
|
+
var alertIdsInEffect = alertsInEffect.map(function (_ref13) {
|
|
1474
|
+
var identifier = _ref13.identifier;
|
|
1475
|
+
return identifier;
|
|
1476
|
+
});
|
|
1477
|
+
var featuresInEffect = Object.keys(featuresByAlert).filter(function (id) {
|
|
1478
|
+
return alertIdsInEffect.includes(id);
|
|
1479
|
+
}).flatMap(function (id) {
|
|
1480
|
+
return featuresByAlert[id];
|
|
1481
|
+
});
|
|
1482
|
+
return {
|
|
1483
|
+
type: 'FeatureCollection',
|
|
1484
|
+
features: featuresInEffect
|
|
1485
|
+
};
|
|
1486
|
+
}, [featuresByAlert, alertsInEffect]);
|
|
1487
|
+
var useOl = isOpenLayersEnabled();
|
|
1462
1488
|
return jsx("div", {
|
|
1463
1489
|
"data-testid": "mapViewCap",
|
|
1464
1490
|
style: {
|
|
@@ -1471,9 +1497,15 @@ var MapViewCapConnect = function MapViewCapConnect(_ref) {
|
|
|
1471
1497
|
title: title,
|
|
1472
1498
|
layers: layers || [],
|
|
1473
1499
|
"data-testid": "capWarningMap",
|
|
1474
|
-
|
|
1500
|
+
initialBbox: bbox,
|
|
1475
1501
|
srs: srs,
|
|
1476
|
-
children: [jsx(
|
|
1502
|
+
children: [useOl ? jsx(OpenLayersFeatureLayer, {
|
|
1503
|
+
featureCollection: geoJsonObject,
|
|
1504
|
+
style: genericOpenLayersFeatureStyle,
|
|
1505
|
+
clickOnFeature: clickOnFeature,
|
|
1506
|
+
zIndex: 1000,
|
|
1507
|
+
testId: "MapViewCap-features"
|
|
1508
|
+
}) : jsx(MapViewLayer, {
|
|
1477
1509
|
id: layerIdRef.current,
|
|
1478
1510
|
geojson: geoJsonObject,
|
|
1479
1511
|
onClickFeature: highLightGeoJsonOnClick,
|
|
@@ -1483,7 +1515,7 @@ var MapViewCapConnect = function MapViewCapConnect(_ref) {
|
|
|
1483
1515
|
selectedFeatureProperties: selectedFeatureEvent.feature.properties.details,
|
|
1484
1516
|
languageIndex: findEventIndexInLanguage(i18n.language, selectedFeatureEvent.feature.properties.details.languages, capWarningPresets, selectedFeatureEvent.feature.properties.details.feedAddress),
|
|
1485
1517
|
parentSize: parentSize
|
|
1486
|
-
})]
|
|
1518
|
+
}), children]
|
|
1487
1519
|
})
|
|
1488
1520
|
});
|
|
1489
1521
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/cap",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"description": "GeoWeb Common Alerting Protocol (CAP) library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -8,27 +8,45 @@
|
|
|
8
8
|
"url": "git@gitlab.com:opengeoweb/opengeoweb.git"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@
|
|
12
|
-
"@
|
|
13
|
-
"
|
|
14
|
-
"@opengeoweb/shared": "*",
|
|
15
|
-
"@opengeoweb/store": "*",
|
|
16
|
-
"react-redux": "^8.1.3",
|
|
17
|
-
"@opengeoweb/webmap": "*",
|
|
18
|
-
"@opengeoweb/webmap-react": "*",
|
|
11
|
+
"@emotion/react": "11.14.0",
|
|
12
|
+
"@emotion/styled": "11.14.0",
|
|
13
|
+
"@mui/material": "^6.1.1",
|
|
19
14
|
"@mui/system": "^6.1.1",
|
|
20
|
-
"
|
|
15
|
+
"@mui/x-date-pickers": "7.27.1",
|
|
21
16
|
"@reduxjs/toolkit": "^1.9.7",
|
|
22
|
-
"@
|
|
23
|
-
"
|
|
17
|
+
"@sentry/react": "8.54.0",
|
|
18
|
+
"@storybook/core-events": "8.4.2",
|
|
19
|
+
"@storybook/preview-api": "8.4.2",
|
|
20
|
+
"@storybook/react": "8.4.2",
|
|
21
|
+
"@tanstack/query-core": "5.67.1",
|
|
22
|
+
"@tanstack/react-query": "5.67.1",
|
|
23
|
+
"@testing-library/react": "16.0.1",
|
|
24
|
+
"@testing-library/user-event": "14.5.2",
|
|
25
|
+
"@turf/turf": "7.2.0",
|
|
24
26
|
"axios": "^1.7.7",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
27
|
+
"date-fns": "4.1.0",
|
|
28
|
+
"dompurify": "3.2.4",
|
|
29
|
+
"frappe-gantt": "^0.6.1",
|
|
30
|
+
"i18next": "^23.11.5",
|
|
31
|
+
"immer": "10.1.1",
|
|
32
|
+
"jest-canvas-mock": "2.5.2",
|
|
33
|
+
"jest-date-mock": "1.0.10",
|
|
34
|
+
"lodash": "4.17.21",
|
|
35
|
+
"msw": "2.7.3",
|
|
36
|
+
"msw-storybook-addon": "2.0.4",
|
|
37
|
+
"ol": "^10.4.0",
|
|
38
|
+
"proj4": "2.15.0",
|
|
39
|
+
"re-resizable": "6.11.2",
|
|
40
|
+
"react": "18.3.1",
|
|
41
|
+
"react-draggable": "4.4.6",
|
|
42
|
+
"react-hook-form": "7.50.1",
|
|
43
|
+
"react-i18next": "^15.1.1",
|
|
44
|
+
"react-redux": "^8.1.3",
|
|
45
|
+
"react-resize-detector": "9.1.1",
|
|
46
|
+
"react-router-dom": "6.23.1",
|
|
47
|
+
"react-sortablejs": "6.1.4",
|
|
48
|
+
"react-window": "1.8.10",
|
|
49
|
+
"sortablejs": "1.15.2"
|
|
32
50
|
},
|
|
33
51
|
"module": "./index.esm.js",
|
|
34
52
|
"type": "module",
|