@opengeoweb/core 9.35.0 → 9.35.1-spike-oltanstack.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
|
@@ -12,7 +12,7 @@ import { useDispatch, useSelector, connect, useStore, Provider } from 'react-red
|
|
|
12
12
|
import { ReactSortable } from 'react-sortablejs';
|
|
13
13
|
import Sortable from 'sortablejs';
|
|
14
14
|
import { layerTypes, layerUtils, mapSelectors, layerActions, layerSelectors, serviceSelectors, serviceActions, mapActions, mapEnums, uiSelectors, uiTypes, useSetupDialog, filterLayers, getUserAddedServices, uiActions, genericSelectors, genericActions, drawtoolSelectors, syncConstants, loadingIndicatorActions, syncGroupsSelectors, defaultLayers, mapStoreActions, getSingularDrawtoolDrawLayerId, syncGroupsSelector, syncGroupsActions, coreModuleConfig, routerUtils, routerModuleConfig } from '@opengeoweb/store';
|
|
15
|
-
import { webmapUtils,
|
|
15
|
+
import { webmapUtils, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, LayerType, getWMSServiceId, handleDateUtilsISOString, wmServiceListener, EVENT_GETCAPABILITIES_START, EVENT_GETCAPABILITIES_READY, getWMSGetFeatureInfoRequestURL, WMLayer } from '@opengeoweb/webmap';
|
|
16
16
|
import { Box as Box$1, styled as styled$1 } from '@mui/system';
|
|
17
17
|
import _, { isEqual, range } from 'lodash';
|
|
18
18
|
import { LayerSelectButtonConnect, LayerSelectConnect, layerSelectConfig } from '@opengeoweb/layer-select';
|
|
@@ -2834,10 +2834,13 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
2834
2834
|
case 0:
|
|
2835
2835
|
_context.prev = 0;
|
|
2836
2836
|
_context.next = 3;
|
|
2837
|
-
return
|
|
2837
|
+
return queryWMSLayers(serviceUrl);
|
|
2838
2838
|
case 3:
|
|
2839
2839
|
_layers = _context.sent;
|
|
2840
|
-
|
|
2840
|
+
_context.next = 6;
|
|
2841
|
+
return queryWMSServiceInfo(serviceUrl);
|
|
2842
|
+
case 6:
|
|
2843
|
+
wmService = _context.sent;
|
|
2841
2844
|
serviceSetLayers({
|
|
2842
2845
|
id: wmService.id,
|
|
2843
2846
|
name: wmService.title,
|
|
@@ -2846,17 +2849,17 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
2846
2849
|
scope: 'user',
|
|
2847
2850
|
"abstract": wmService["abstract"]
|
|
2848
2851
|
});
|
|
2849
|
-
_context.next =
|
|
2852
|
+
_context.next = 13;
|
|
2850
2853
|
break;
|
|
2851
|
-
case
|
|
2852
|
-
_context.prev =
|
|
2854
|
+
case 10:
|
|
2855
|
+
_context.prev = 10;
|
|
2853
2856
|
_context.t0 = _context["catch"](0);
|
|
2854
2857
|
console.warn(_context.t0.message);
|
|
2855
|
-
case
|
|
2858
|
+
case 13:
|
|
2856
2859
|
case "end":
|
|
2857
2860
|
return _context.stop();
|
|
2858
2861
|
}
|
|
2859
|
-
}, _callee, null, [[0,
|
|
2862
|
+
}, _callee, null, [[0, 10]]);
|
|
2860
2863
|
}));
|
|
2861
2864
|
return function addService(_x) {
|
|
2862
2865
|
return _ref2.apply(this, arguments);
|
|
@@ -3839,17 +3842,40 @@ var WMSLayerTree = function WMSLayerTree(_ref) {
|
|
|
3839
3842
|
React.useEffect(function () {
|
|
3840
3843
|
var isMounted = true;
|
|
3841
3844
|
setIsLoading(true);
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3845
|
+
var makeServiceQuery = /*#__PURE__*/function () {
|
|
3846
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
3847
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3848
|
+
while (1) switch (_context.prev = _context.next) {
|
|
3849
|
+
case 0:
|
|
3850
|
+
if (!forceReload) {
|
|
3851
|
+
_context.next = 3;
|
|
3852
|
+
break;
|
|
3853
|
+
}
|
|
3854
|
+
_context.next = 3;
|
|
3855
|
+
return invalidateWMSGetCapabilities(service.url);
|
|
3856
|
+
case 3:
|
|
3857
|
+
queryWMSLayersTree(service.url).then(function (layerTreeFromPromise) {
|
|
3858
|
+
if (isMounted) {
|
|
3859
|
+
setLayerTree(layerTreeFromPromise);
|
|
3860
|
+
setIsLoading(false);
|
|
3861
|
+
}
|
|
3862
|
+
})["catch"](function (error) {
|
|
3863
|
+
if (isMounted) {
|
|
3864
|
+
setLayerTree(error.toString());
|
|
3865
|
+
setIsLoading(false);
|
|
3866
|
+
}
|
|
3867
|
+
});
|
|
3868
|
+
case 4:
|
|
3869
|
+
case "end":
|
|
3870
|
+
return _context.stop();
|
|
3871
|
+
}
|
|
3872
|
+
}, _callee);
|
|
3873
|
+
}));
|
|
3874
|
+
return function makeServiceQuery() {
|
|
3875
|
+
return _ref2.apply(this, arguments);
|
|
3876
|
+
};
|
|
3877
|
+
}();
|
|
3878
|
+
void makeServiceQuery();
|
|
3853
3879
|
return function () {
|
|
3854
3880
|
isMounted = false;
|
|
3855
3881
|
setForceReload(false);
|
|
@@ -4295,7 +4321,7 @@ var AddLayersPopup = function AddLayersPopup(_ref) {
|
|
|
4295
4321
|
// Check if valid URL was passed
|
|
4296
4322
|
} else if (validateServiceUrl(serviceURL)) {
|
|
4297
4323
|
// Check if service is WMS server
|
|
4298
|
-
|
|
4324
|
+
queryWMSLayersTree(serviceURL).then(function (layerTreeFromPromise) {
|
|
4299
4325
|
// Shorten URL as a naming backup
|
|
4300
4326
|
var shortenedURL = serviceURL.substring(serviceURL.indexOf('//') + 2, serviceURL.indexOf('?'));
|
|
4301
4327
|
handleAddToList(layerTreeFromPromise.title || layerTreeFromPromise.name || shortenedURL);
|
|
@@ -4895,36 +4921,45 @@ var LayerManager = function LayerManager(_ref) {
|
|
|
4895
4921
|
});
|
|
4896
4922
|
};
|
|
4897
4923
|
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4903
|
-
|
|
4904
|
-
|
|
4905
|
-
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4924
|
+
var getServicesToLoad = /*#__PURE__*/function () {
|
|
4925
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(services) {
|
|
4926
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
4927
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
4928
|
+
case 0:
|
|
4929
|
+
return _context2.abrupt("return", Promise.all(services.map( /*#__PURE__*/function () {
|
|
4930
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(service) {
|
|
4931
|
+
var scope;
|
|
4932
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
4933
|
+
while (1) switch (_context.prev = _context.next) {
|
|
4934
|
+
case 0:
|
|
4935
|
+
scope = service.scope ? service.scope : 'system';
|
|
4936
|
+
return _context.abrupt("return", {
|
|
4937
|
+
id: getWMSServiceId(service.url),
|
|
4938
|
+
name: service.name,
|
|
4939
|
+
url: service.url,
|
|
4940
|
+
scope: scope,
|
|
4941
|
+
"abstract": service["abstract"]
|
|
4942
|
+
});
|
|
4943
|
+
case 2:
|
|
4944
|
+
case "end":
|
|
4945
|
+
return _context.stop();
|
|
4946
|
+
}
|
|
4947
|
+
}, _callee);
|
|
4948
|
+
}));
|
|
4949
|
+
return function (_x2) {
|
|
4950
|
+
return _ref2.apply(this, arguments);
|
|
4951
|
+
};
|
|
4952
|
+
}())));
|
|
4953
|
+
case 1:
|
|
4954
|
+
case "end":
|
|
4955
|
+
return _context2.stop();
|
|
4956
|
+
}
|
|
4957
|
+
}, _callee2);
|
|
4958
|
+
}));
|
|
4959
|
+
return function getServicesToLoad(_x) {
|
|
4960
|
+
return _ref.apply(this, arguments);
|
|
4961
|
+
};
|
|
4962
|
+
}();
|
|
4928
4963
|
var useFetchServices = function useFetchServices(dialogType, preloadedServices, shouldDisableFetch) {
|
|
4929
4964
|
if (preloadedServices === void 0) {
|
|
4930
4965
|
preloadedServices = preloadedDefaultMapServices;
|
|
@@ -4947,7 +4982,7 @@ var useFetchServices = function useFetchServices(dialogType, preloadedServices,
|
|
|
4947
4982
|
React.useEffect(function () {
|
|
4948
4983
|
if (!shouldDisableFetch && isOpenInStore && preloadedServices && preloadedServices.length > 0 && !services.length) {
|
|
4949
4984
|
var allServicesToLoad = mergePresetsAndUserAddedServices(preloadedServices, getUserAddedServices());
|
|
4950
|
-
|
|
4985
|
+
void getServicesToLoad(allServicesToLoad).then(fetchInitialServices);
|
|
4951
4986
|
}
|
|
4952
4987
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
4953
4988
|
}, [isOpenInStore, services]);
|
|
@@ -5640,6 +5675,12 @@ var MapViewConnect = function MapViewConnect(_ref) {
|
|
|
5640
5675
|
var mapPinLocation = useSelector(function (store) {
|
|
5641
5676
|
return mapSelectors.getPinLocation(store, mapId);
|
|
5642
5677
|
});
|
|
5678
|
+
var linkedPanelId = useSelector(function (store) {
|
|
5679
|
+
return genericSelectors.selectLinkedPanelId(store, mapId);
|
|
5680
|
+
});
|
|
5681
|
+
var selectedFeatureCoordinates = useSelector(function (store) {
|
|
5682
|
+
return genericSelectors.getSelectedFeature(store.syncronizationGroupStore, linkedPanelId);
|
|
5683
|
+
});
|
|
5643
5684
|
var disableMapPin = useSelector(function (store) {
|
|
5644
5685
|
return mapSelectors.getDisableMapPin(store, mapId);
|
|
5645
5686
|
});
|
|
@@ -5699,6 +5740,12 @@ var MapViewConnect = function MapViewConnect(_ref) {
|
|
|
5699
5740
|
var setSelectedFeature = React.useCallback(function (payload) {
|
|
5700
5741
|
dispatch(layerActions.setSelectedFeature(payload));
|
|
5701
5742
|
}, [dispatch]);
|
|
5743
|
+
var handleFeatureSelect = function handleFeatureSelect(mapId, featureId) {
|
|
5744
|
+
dispatch(genericActions.setFeatureSelected({
|
|
5745
|
+
mapId: mapId,
|
|
5746
|
+
featureId: featureId
|
|
5747
|
+
}));
|
|
5748
|
+
};
|
|
5702
5749
|
var updateFeature = React.useCallback(function (_ref2) {
|
|
5703
5750
|
var geojson = _ref2.geojson,
|
|
5704
5751
|
reason = _ref2.reason,
|
|
@@ -5786,7 +5833,7 @@ var MapViewConnect = function MapViewConnect(_ref) {
|
|
|
5786
5833
|
isTimeScrollingEnabled: isTimeScrollingEnabled,
|
|
5787
5834
|
srs: srs,
|
|
5788
5835
|
bbox: bbox,
|
|
5789
|
-
mapPinLocation: displayMapPin ? mapPinLocation : undefined,
|
|
5836
|
+
mapPinLocation: displayMapPin ? selectedFeatureCoordinates || mapPinLocation : undefined,
|
|
5790
5837
|
dimensions: mapDimensions,
|
|
5791
5838
|
activeLayerId: activeLayerId,
|
|
5792
5839
|
animationDelay: animationDelay,
|
|
@@ -5853,7 +5900,25 @@ var MapViewConnect = function MapViewConnect(_ref) {
|
|
|
5853
5900
|
}), linkedFeatures == null ? void 0 : linkedFeatures.map(function (feature) {
|
|
5854
5901
|
return jsx(MapViewLayer, {
|
|
5855
5902
|
id: "feature-" + (feature == null ? void 0 : feature.id),
|
|
5856
|
-
geojson: feature
|
|
5903
|
+
geojson: feature.geoJSON,
|
|
5904
|
+
onClickFeature: function onClickFeature(event) {
|
|
5905
|
+
var _event$feature;
|
|
5906
|
+
var isClickOutsideFeature = !event;
|
|
5907
|
+
if (isClickOutsideFeature && !event.isInEditMode) {
|
|
5908
|
+
return;
|
|
5909
|
+
}
|
|
5910
|
+
var clickedFeatureName = (_event$feature = event.feature) == null || (_event$feature = _event$feature.properties) == null ? void 0 : _event$feature.name;
|
|
5911
|
+
var features = linkedFeatures[0].geoJSON.features;
|
|
5912
|
+
var clickedFeatureIndex = features.findIndex(function (feature) {
|
|
5913
|
+
var _feature$properties;
|
|
5914
|
+
return ((_feature$properties = feature.properties) == null ? void 0 : _feature$properties.name) === clickedFeatureName;
|
|
5915
|
+
});
|
|
5916
|
+
if (disableMapPin === false) {
|
|
5917
|
+
var _selectedFeature$id;
|
|
5918
|
+
var selectedFeature = features[clickedFeatureIndex];
|
|
5919
|
+
handleFeatureSelect(linkedPanelId, (_selectedFeature$id = selectedFeature.id) == null ? void 0 : _selectedFeature$id.toString());
|
|
5920
|
+
}
|
|
5921
|
+
}
|
|
5857
5922
|
}, feature == null ? void 0 : feature.id);
|
|
5858
5923
|
}), featureLayers.map(function (layer) {
|
|
5859
5924
|
return jsx(MapViewLayer, Object.assign({
|
|
@@ -7901,7 +7966,7 @@ var useGetLatestReferenceTime = function useGetLatestReferenceTime(inputLayer) {
|
|
|
7901
7966
|
setLatestReferenceTime = _React$useState[1];
|
|
7902
7967
|
React.useEffect(function () {
|
|
7903
7968
|
var wmLayer = new WMLayer(Object.assign({}, inputLayer));
|
|
7904
|
-
wmLayer.
|
|
7969
|
+
wmLayer.parseLayer().then(function (layer) {
|
|
7905
7970
|
var refTimeDim = layer.getDimension('reference_time');
|
|
7906
7971
|
var lastRefTime = refTimeDim.getLastValue();
|
|
7907
7972
|
setLatestReferenceTime(lastRefTime);
|
|
@@ -8008,7 +8073,7 @@ var useGetReferenceTimes = function useGetReferenceTimes(inputLayer) {
|
|
|
8008
8073
|
React.useEffect(function () {
|
|
8009
8074
|
var referenceTimes = [];
|
|
8010
8075
|
var wmLayer = new WMLayer(Object.assign({}, inputLayer));
|
|
8011
|
-
wmLayer.
|
|
8076
|
+
wmLayer.parseLayer().then(function (layer) {
|
|
8012
8077
|
var refTimeDim = layer.getDimension('reference_time');
|
|
8013
8078
|
/* Loop through all values of the dimension.
|
|
8014
8079
|
A map cannot be used for iterating, as the dimension values are not in an array (it is an API). */
|
|
@@ -8289,6 +8354,20 @@ var SyncGroupViewer = function SyncGroupViewer(_ref) {
|
|
|
8289
8354
|
toggleTimeScroll = _ref.toggleTimeScroll;
|
|
8290
8355
|
var _useCoreTranslation = useCoreTranslation(),
|
|
8291
8356
|
t = _useCoreTranslation.t;
|
|
8357
|
+
React.useEffect(function () {
|
|
8358
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
8359
|
+
var target = event.target;
|
|
8360
|
+
if (target.tagName !== 'INPUT' && target.tagName !== 'TEXTAREA' && event.key === 's') {
|
|
8361
|
+
toggleTimeScroll({
|
|
8362
|
+
isTimeScrollingEnabled: !isTimeScrollingEnabled
|
|
8363
|
+
});
|
|
8364
|
+
}
|
|
8365
|
+
};
|
|
8366
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
8367
|
+
return function () {
|
|
8368
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
8369
|
+
};
|
|
8370
|
+
}, [isTimeScrollingEnabled, toggleTimeScroll]);
|
|
8292
8371
|
var _handleToggle = function handleToggle(groupCategory, groupId, sourceId) {
|
|
8293
8372
|
var _syncGroupViewState$g = syncGroupViewState[groupCategory].groups.find(function (groupObject) {
|
|
8294
8373
|
return groupObject.id === groupId;
|
|
@@ -8371,10 +8450,14 @@ var SyncGroupViewer = function SyncGroupViewer(_ref) {
|
|
|
8371
8450
|
},
|
|
8372
8451
|
children: t('workspace-time-scroll-off')
|
|
8373
8452
|
}), jsx(Switch, {
|
|
8453
|
+
inputProps: {
|
|
8454
|
+
'aria-label': 'workspace time scroll toggle'
|
|
8455
|
+
},
|
|
8374
8456
|
checked: isTimeScrollingEnabled,
|
|
8375
8457
|
onChange: function onChange() {
|
|
8376
8458
|
return toggleTimeScroll({
|
|
8377
|
-
isTimeScrollingEnabled: !isTimeScrollingEnabled
|
|
8459
|
+
isTimeScrollingEnabled: !isTimeScrollingEnabled,
|
|
8460
|
+
origin: 'user'
|
|
8378
8461
|
});
|
|
8379
8462
|
}
|
|
8380
8463
|
}), jsx(Typography, {
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@ export interface InitialTimeSeriesProps {
|
|
|
25
25
|
plotPreset: PlotPreset;
|
|
26
26
|
services: TimeSeriesService[];
|
|
27
27
|
}
|
|
28
|
-
export type InitialProps = InitialMapProps | InitialMultiMapProps | InitialHarmTempAndPrecipProps | ModelRunIntervalProps | mapTypes.MapPresetInitialProps | InitialSliderProps | InitialTimeSeriesProps
|
|
28
|
+
export type InitialProps = InitialMapProps | InitialMultiMapProps | InitialHarmTempAndPrecipProps | ModelRunIntervalProps | mapTypes.MapPresetInitialProps | InitialSliderProps | InitialTimeSeriesProps | Record<string, unknown>;
|
|
29
29
|
/**
|
|
30
30
|
* The lookup table is for registering your own components with the workspace.
|
|
31
31
|
* @param payload
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { serviceTypes } from '@opengeoweb/store';
|
|
2
|
-
export declare const getServicesToLoad: (services: serviceTypes.NoIdService[]) => serviceTypes.InitialService[]
|
|
2
|
+
export declare const getServicesToLoad: (services: serviceTypes.NoIdService[]) => Promise<serviceTypes.InitialService[]>;
|
|
3
3
|
export declare const useFetchServices: (dialogType: string, preloadedServices?: serviceTypes.InitialService[] | undefined, shouldDisableFetch?: boolean) => void;
|
|
4
4
|
export declare const mergePresetsAndUserAddedServices: (presets: serviceTypes.InitialService[], userAddedServices: serviceTypes.UserAddedServices) => serviceTypes.NoIdService[];
|
|
@@ -1,8 +1,24 @@
|
|
|
1
|
-
import { WMLayer } from '@opengeoweb/webmap';
|
|
1
|
+
import { LayerType, WMLayer } from '@opengeoweb/webmap';
|
|
2
2
|
import { layerTypes, serviceTypes } from '@opengeoweb/store';
|
|
3
|
-
export declare const multiDimensionLayer:
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export declare const multiDimensionLayer: {
|
|
4
|
+
service: string;
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
title: string;
|
|
8
|
+
layerType: LayerType;
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
dimensions: ({
|
|
11
|
+
name: string;
|
|
12
|
+
units: string;
|
|
13
|
+
currentValue: string;
|
|
14
|
+
values: string;
|
|
15
|
+
} | {
|
|
16
|
+
name: string;
|
|
17
|
+
units: string;
|
|
18
|
+
currentValue: string;
|
|
19
|
+
values?: undefined;
|
|
20
|
+
})[];
|
|
21
|
+
}, WmdefaultReduxLayerRadarKNMI: WMLayer, defaultReduxLayerRadarKNMI: import("@opengeoweb/webmap").LayerOptions, defaultReduxLayerRadarColor: import("@opengeoweb/webmap").LayerOptions, multiDimensionLayer3: import("@opengeoweb/webmap").LayerFoundation;
|
|
6
22
|
export declare const flDimensionLayer: layerTypes.Layer;
|
|
7
23
|
export declare const layerWithSingleDimensionValue: WMLayer;
|
|
8
24
|
export declare const WmMultiDimensionLayer: WMLayer;
|