@opengeoweb/cap 11.1.0 → 12.1.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 { mapListener, serviceListener, layersListener, syncGroupsListener, genericListener, mapReducer, serviceReducer, layerReducer, syncGroupsReducer, mapSelectors } from '@opengeoweb/store';
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 alertIdsInEffect = useSelector(function (store) {
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
- type: 'FeatureCollection',
1460
- features: featuresInEffect
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
- bbox: bbox,
1500
+ initialBbox: bbox,
1475
1501
  srs: srs,
1476
- children: [jsx(MapViewLayer, {
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": "11.1.0",
3
+ "version": "12.1.0",
4
4
  "description": "GeoWeb Common Alerting Protocol (CAP) library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,22 +8,23 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/api": "*",
12
- "@opengeoweb/core": "*",
11
+ "@opengeoweb/api": "12.1.0",
12
+ "@opengeoweb/core": "12.1.0",
13
13
  "frappe-gantt": "^0.6.1",
14
- "@opengeoweb/shared": "*",
15
- "@opengeoweb/store": "*",
14
+ "@opengeoweb/shared": "12.1.0",
15
+ "@opengeoweb/store": "12.1.0",
16
16
  "react-redux": "^8.1.3",
17
- "@opengeoweb/webmap": "*",
18
- "@opengeoweb/webmap-react": "*",
17
+ "@opengeoweb/webmap": "12.1.0",
18
+ "@opengeoweb/webmap-react": "12.1.0",
19
19
  "@mui/system": "^6.1.1",
20
20
  "react-i18next": "^15.1.1",
21
21
  "@reduxjs/toolkit": "^1.9.7",
22
- "@opengeoweb/theme": "*",
22
+ "@opengeoweb/theme": "12.1.0",
23
23
  "i18next": "^23.11.5",
24
24
  "axios": "^1.7.7",
25
- "@opengeoweb/timeslider": "*",
26
- "@mui/material": "^6.1.1"
25
+ "@opengeoweb/timeslider": "12.1.0",
26
+ "@mui/material": "^6.1.1",
27
+ "ol": "^10.4.0"
27
28
  },
28
29
  "peerDependencies": {
29
30
  "react": "18",
@@ -13,5 +13,6 @@ export interface MapViewCapConnectProps {
13
13
  srs?: string;
14
14
  capWarningPresets?: CapPresets;
15
15
  layers?: InitialMapProps['mapPreset']['layers'];
16
+ children?: React.ReactNode;
16
17
  }
17
18
  export declare const MapViewCapConnect: React.FC<MapViewCapConnectProps>;