@opengeoweb/core 20.0.1 → 20.1.0-nightly-20261018
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/dist/index.esm.js +98 -82
- package/package.json +10 -10
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { FormControl, MenuItem, Grid, InputLabel, Paper, Box, Typography, CircularProgress, List, ListSubheader, ListItemButton, ListItemText, DialogContentText, TextField, InputAdornment, Button, useTheme, Tooltip, ListItem, ListItemIcon, Checkbox, Popper, Fade, styled, LinearProgress, Autocomplete, Switch, Select } from '@mui/material';
|
|
3
3
|
import React, { useMemo, useState, useCallback, useEffect, useContext } from 'react';
|
|
4
|
-
import { safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, TooltipSelect, CustomIconButton, CustomDialog, CustomTooltip, ToggleMenu, AlertIcon,
|
|
4
|
+
import { safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, TooltipSelect, CustomIconButton, CustomDialog, CustomTooltip, ToggleMenu, AlertIcon, useScrollingInIsolation, sliderHeaderStyle, CustomSlider, SearchField, SearchHighlight, tooltipContainerStyles, renderCounter, AlertBanner, CustomAccordion, PROJECTION, calculateStartSize, useWheelStopPropagation, ToolContainerDraggable, useDebounce, dateUtils, sessionStorageProvider, usePrevious } from '@opengeoweb/shared';
|
|
5
5
|
import { webmapUtils, queryWMSLayersTree, invalidateWMSGetCapabilities, LayerType, WMJSDimension, WMDefaultStyleName, queryWMSServiceInfo, queryWMSLayers, getWMSServiceId, handleDateUtilsISOString, generateLayerId, getWMLayerById, getMapDimURL, WMLayer } from '@opengeoweb/webmap';
|
|
6
6
|
import _, { isEqual, isArray, range, zip, throttle } from 'lodash';
|
|
7
7
|
import { useDispatch, useSelector, connect, useStore, shallowEqual, Provider } from 'react-redux';
|
|
@@ -129,10 +129,6 @@ var en = {
|
|
|
129
129
|
"featureinfo-title": "Feature info",
|
|
130
130
|
"featureinfo-id": "ID",
|
|
131
131
|
"featureinfo-location": "Location",
|
|
132
|
-
"delete-dialog-title": "Delete layer",
|
|
133
|
-
"delete-dialog-description": "Are you sure you want to delete this layer? EDR layers are not yet available in the Layer Select.",
|
|
134
|
-
"delete-dialog-cancel": "Cancel",
|
|
135
|
-
"delete-dialog-confirm": "Delete",
|
|
136
132
|
"map-options-button": "Location or Measuring tool",
|
|
137
133
|
"map-measure-tool": "Measuring tool",
|
|
138
134
|
"data-outdated": "Outdated data"
|
|
@@ -410,10 +406,6 @@ var nl = {
|
|
|
410
406
|
"featureinfo-title": "niet vertaald",
|
|
411
407
|
"featureinfo-id": "niet vertaald",
|
|
412
408
|
"featureinfo-location": "niet vertaald",
|
|
413
|
-
"delete-dialog-title": "Laag verwijderen",
|
|
414
|
-
"delete-dialog-description": "Weet je zeker dat je deze laag wilt verwijderen? EDR lagen zijn nog niet beschikbaar in de Layer Select.",
|
|
415
|
-
"delete-dialog-cancel": "Annuleren",
|
|
416
|
-
"delete-dialog-confirm": "Verwijderen",
|
|
417
409
|
"map-options-button": "Locatie informatie en Meten",
|
|
418
410
|
"map-measure-tool": "Meten",
|
|
419
411
|
"data-outdated": "Data is niet actueel"
|
|
@@ -2951,14 +2943,10 @@ var DeleteLayerConnect = function DeleteLayerConnect(_ref) {
|
|
|
2951
2943
|
var _useCoreTranslation = useCoreTranslation(),
|
|
2952
2944
|
t = _useCoreTranslation.t;
|
|
2953
2945
|
var dispatch = useDispatch();
|
|
2954
|
-
var confirmationDialog = useConfirmationDialog();
|
|
2955
2946
|
var nonEmptyTooltipTitle = tooltipTitle != null ? tooltipTitle : t('layermanager-layer-delete');
|
|
2956
2947
|
var layerIndex = useSelector(function (store) {
|
|
2957
2948
|
return mapSelectors.getLayerIndexByLayerId(store, mapId, layerId);
|
|
2958
2949
|
});
|
|
2959
|
-
var layerType = useSelector(function (store) {
|
|
2960
|
-
return layerSelectors.getLayerType(store, layerId);
|
|
2961
|
-
});
|
|
2962
2950
|
var isFeatureSyncLayer = useSelector(function (store) {
|
|
2963
2951
|
return layerSelectors.getIsFeatureSyncLayer(store, layerId);
|
|
2964
2952
|
});
|
|
@@ -2978,28 +2966,13 @@ var DeleteLayerConnect = function DeleteLayerConnect(_ref) {
|
|
|
2978
2966
|
var onDelete = React.useCallback(function (_ref3) {
|
|
2979
2967
|
var mapId = _ref3.mapId,
|
|
2980
2968
|
layerId = _ref3.layerId;
|
|
2981
|
-
if (isFeatureSyncLayer) {
|
|
2982
|
-
return;
|
|
2983
|
-
}
|
|
2984
|
-
if (layerType === LayerType.edrFeatureLayer) {
|
|
2985
|
-
void confirmationDialog({
|
|
2986
|
-
title: t('delete-dialog-title'),
|
|
2987
|
-
description: t('delete-dialog-description'),
|
|
2988
|
-
confirmLabel: t('delete-dialog-confirm'),
|
|
2989
|
-
cancelLabel: t('delete-dialog-cancel')
|
|
2990
|
-
}).then(function () {
|
|
2991
|
-
layerDelete({
|
|
2992
|
-
mapId: mapId,
|
|
2993
|
-
layerId: layerId
|
|
2994
|
-
});
|
|
2995
|
-
});
|
|
2996
|
-
} else {
|
|
2969
|
+
if (!isFeatureSyncLayer) {
|
|
2997
2970
|
layerDelete({
|
|
2998
2971
|
mapId: mapId,
|
|
2999
2972
|
layerId: layerId
|
|
3000
2973
|
});
|
|
3001
2974
|
}
|
|
3002
|
-
}, [isFeatureSyncLayer,
|
|
2975
|
+
}, [isFeatureSyncLayer, layerDelete]);
|
|
3003
2976
|
return jsx(CustomIconButton, {
|
|
3004
2977
|
"data-testid": "deleteButton",
|
|
3005
2978
|
disabled: isFeatureSyncLayer,
|
|
@@ -4838,7 +4811,12 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4838
4811
|
var serviceUrl = useSelector(function (store) {
|
|
4839
4812
|
return layerSelectors.getLayerService(store, layerId);
|
|
4840
4813
|
});
|
|
4841
|
-
var resolvedServiceUrl =
|
|
4814
|
+
var resolvedServiceUrl = serviceUrl;
|
|
4815
|
+
if (isStacGeoTIFFLayer) {
|
|
4816
|
+
resolvedServiceUrl = layerUtils.getSTACServiceRootUrl(serviceUrl);
|
|
4817
|
+
} else if (isEdrLayer) {
|
|
4818
|
+
resolvedServiceUrl = layerUtils.getEDRServiceRootUrl(serviceUrl);
|
|
4819
|
+
}
|
|
4842
4820
|
var isLayerEnabled = useSelector(function (store) {
|
|
4843
4821
|
return layerSelectors.getLayerEnabled(store, layerId);
|
|
4844
4822
|
});
|
|
@@ -4846,10 +4824,14 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4846
4824
|
return layerSelectors.getLayerStyle(store, layerId);
|
|
4847
4825
|
});
|
|
4848
4826
|
var service = useSelector(function (store) {
|
|
4849
|
-
if (!isStacGeoTIFFLayer) {
|
|
4827
|
+
if (!isStacGeoTIFFLayer && !isEdrLayer) {
|
|
4850
4828
|
return serviceSelectors.getServiceByUrl(store, serviceUrl);
|
|
4851
4829
|
}
|
|
4852
|
-
|
|
4830
|
+
var rootService = serviceSelectors.getServiceByUrl(store, resolvedServiceUrl) || serviceSelectors.getServiceByUrl(store, layerUtils.getTrailingSlashVariant(resolvedServiceUrl));
|
|
4831
|
+
if (rootService) {
|
|
4832
|
+
return rootService;
|
|
4833
|
+
}
|
|
4834
|
+
return isEdrLayer ? serviceSelectors.getServiceByUrl(store, serviceUrl) : undefined;
|
|
4853
4835
|
});
|
|
4854
4836
|
var layerOptions = useSelector(function (store) {
|
|
4855
4837
|
return layerSelectors.getLayerOptions(store, layerId);
|
|
@@ -4973,6 +4955,7 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4973
4955
|
"abstract": data.description,
|
|
4974
4956
|
layers: layers,
|
|
4975
4957
|
scope: 'system',
|
|
4958
|
+
isUpdating: true,
|
|
4976
4959
|
type: 'EDR'
|
|
4977
4960
|
});
|
|
4978
4961
|
}, [data, serviceUrl, service, serviceSetLayers]);
|
|
@@ -5169,7 +5152,7 @@ var hasMatchingSTACLayerServiceUrl = function hasMatchingSTACLayerServiceUrl(lay
|
|
|
5169
5152
|
return !isSTACCollectionUrl(layerInfoServiceUrl) && hasSameSTACServiceUrl(layerServiceUrl, layerInfoServiceUrl);
|
|
5170
5153
|
};
|
|
5171
5154
|
var LayerInfoDialogConnect = function LayerInfoDialogConnect(_ref) {
|
|
5172
|
-
var _layerInfo$serviceUrl, _selectedMapLayer$ser, _currentService$layer;
|
|
5155
|
+
var _layerInfo$serviceUrl, _selectedMapLayer$ser, _currentService$layer, _selectedMapLayer$opt;
|
|
5173
5156
|
var source = _ref.source,
|
|
5174
5157
|
mapId = _ref.mapId;
|
|
5175
5158
|
var dispatch = useDispatch();
|
|
@@ -5229,6 +5212,7 @@ var LayerInfoDialogConnect = function LayerInfoDialogConnect(_ref) {
|
|
|
5229
5212
|
return null;
|
|
5230
5213
|
}
|
|
5231
5214
|
return jsx(LayerInfoDialog, {
|
|
5215
|
+
edrParameterMetadata: (selectedMapLayer == null ? void 0 : selectedMapLayer.layerType) === LayerType.edrFeatureLayer ? (_selectedMapLayer$opt = selectedMapLayer.options) == null ? void 0 : _selectedMapLayer$opt.parameterMetadata : undefined,
|
|
5232
5216
|
isOpen: isDialogOpen,
|
|
5233
5217
|
layer: layer,
|
|
5234
5218
|
onClose: onCloseDialog,
|
|
@@ -6620,22 +6604,20 @@ var AnimationLengthPanelConnect = function AnimationLengthPanelConnect(_ref) {
|
|
|
6620
6604
|
var timeStep = useSelector(function (store) {
|
|
6621
6605
|
return mapSelectors.getMapTimeStep(store, mapId);
|
|
6622
6606
|
});
|
|
6623
|
-
var
|
|
6624
|
-
return
|
|
6607
|
+
var anchorInputs = useSelector(function (store) {
|
|
6608
|
+
return mapSelectors.getAnimationAnchorInputs(store, mapId);
|
|
6625
6609
|
});
|
|
6626
|
-
var referenceTimeFromLayer = (layerRefTimeDimension == null ? void 0 : layerRefTimeDimension.currentValue) || undefined;
|
|
6627
|
-
var anchorTime = dateUtils.utc(referenceTimeFromLayer);
|
|
6628
6610
|
var commitAnimationLength = React.useCallback(function (length) {
|
|
6629
|
-
var isUsableRange = isValidAnimationLength(length) && isWithinAnimationStepLimit(length, timeStep);
|
|
6611
|
+
var isUsableRange = isValidAnimationLength(length, anchorInputs) && isWithinAnimationStepLimit(length, timeStep, anchorInputs);
|
|
6630
6612
|
var carriesOwnRange = isAnchoredMode(length.mode) || length.mode === AnimationLengthMode.Exact;
|
|
6631
|
-
var resolvedRange = carriesOwnRange && isUsableRange ? settingRange(length,
|
|
6613
|
+
var resolvedRange = carriesOwnRange && isUsableRange ? settingRange(length, anchorInputs) : undefined;
|
|
6632
6614
|
dispatch(mapActions.setAnimationLength(Object.assign({
|
|
6633
6615
|
mapId: mapId,
|
|
6634
6616
|
animationLength: length
|
|
6635
6617
|
}, resolvedRange, {
|
|
6636
6618
|
origin: mapEnums.MapActionOrigin.map
|
|
6637
6619
|
})));
|
|
6638
|
-
}, [
|
|
6620
|
+
}, [anchorInputs, dispatch, mapId, timeStep]);
|
|
6639
6621
|
React.useEffect(function () {
|
|
6640
6622
|
if (debouncedLength && isCommittableRef.current) {
|
|
6641
6623
|
commitAnimationLength(debouncedLength);
|
|
@@ -6651,11 +6633,11 @@ var AnimationLengthPanelConnect = function AnimationLengthPanelConnect(_ref) {
|
|
|
6651
6633
|
return;
|
|
6652
6634
|
}
|
|
6653
6635
|
if (isStep) {
|
|
6654
|
-
var isUsableRange = isValidAnimationLength(animationLength) && isWithinAnimationStepLimit(animationLength, timeStep);
|
|
6636
|
+
var isUsableRange = isValidAnimationLength(animationLength, anchorInputs) && isWithinAnimationStepLimit(animationLength, timeStep, anchorInputs);
|
|
6655
6637
|
if (isUsableRange) {
|
|
6656
6638
|
dispatch(mapActions.refreshAnimationRange(Object.assign({
|
|
6657
6639
|
mapId: mapId
|
|
6658
|
-
}, settingRange(animationLength,
|
|
6640
|
+
}, settingRange(animationLength, anchorInputs))));
|
|
6659
6641
|
}
|
|
6660
6642
|
}
|
|
6661
6643
|
};
|
|
@@ -6669,7 +6651,7 @@ var AnimationLengthPanelConnect = function AnimationLengthPanelConnect(_ref) {
|
|
|
6669
6651
|
isAutoDisabled: !timeStepFromLayer,
|
|
6670
6652
|
onChange: changeAnimationLength,
|
|
6671
6653
|
onInputChange: cancelPendingCommit,
|
|
6672
|
-
referenceTimeFromLayer:
|
|
6654
|
+
referenceTimeFromLayer: anchorInputs.referenceTime,
|
|
6673
6655
|
setting: (_ref2 = draftLength != null ? draftLength : storedAnimationLength) != null ? _ref2 : exactAnimationLengthFrom({
|
|
6674
6656
|
animationStartTime: animationStartTime,
|
|
6675
6657
|
animationEndTime: animationEndTime
|
|
@@ -7548,6 +7530,31 @@ var LocationSearch = function LocationSearch(_ref) {
|
|
|
7548
7530
|
document.removeEventListener('keydown', handleKeyDown);
|
|
7549
7531
|
};
|
|
7550
7532
|
}, [dropdownOpen, isOpen]);
|
|
7533
|
+
// Always pass groupBy/renderGroup, and only group when the input is empty.
|
|
7534
|
+
// MUI keeps rendering the last open options while the popup closes, so
|
|
7535
|
+
// toggling groupBy in between makes it read flat options as groups and crash.
|
|
7536
|
+
var groupProps = {
|
|
7537
|
+
groupBy: function groupBy(option) {
|
|
7538
|
+
return debouncedInputValue.trim() === '' && 'groupHeader' in option && typeof option.groupHeader === 'string' ? option.groupHeader : '';
|
|
7539
|
+
},
|
|
7540
|
+
renderGroup: function renderGroup(params) {
|
|
7541
|
+
return jsxs(React.Fragment, {
|
|
7542
|
+
children: [params.group ? jsx(ListSubheader, {
|
|
7543
|
+
disableSticky: true,
|
|
7544
|
+
sx: {
|
|
7545
|
+
color: theme.palette.primary.main,
|
|
7546
|
+
fontWeight: 400,
|
|
7547
|
+
fontSize: '16px',
|
|
7548
|
+
py: 1,
|
|
7549
|
+
my: 0,
|
|
7550
|
+
minHeight: '26px',
|
|
7551
|
+
lineHeight: 1
|
|
7552
|
+
},
|
|
7553
|
+
children: params.group
|
|
7554
|
+
}) : null, Array.isArray(params.children) ? params.children : [params.children]]
|
|
7555
|
+
}, params.key);
|
|
7556
|
+
}
|
|
7557
|
+
};
|
|
7551
7558
|
return isOpen && mapId ? jsxs(Box, {
|
|
7552
7559
|
sx: {
|
|
7553
7560
|
display: 'flex',
|
|
@@ -7611,28 +7618,7 @@ var LocationSearch = function LocationSearch(_ref) {
|
|
|
7611
7618
|
paddingTop: '20px'
|
|
7612
7619
|
}
|
|
7613
7620
|
}
|
|
7614
|
-
},
|
|
7615
|
-
groupBy: function groupBy(option) {
|
|
7616
|
-
return 'groupHeader' in option && typeof option.groupHeader === 'string' ? option.groupHeader : '';
|
|
7617
|
-
},
|
|
7618
|
-
renderGroup: function renderGroup(params) {
|
|
7619
|
-
return jsxs(React.Fragment, {
|
|
7620
|
-
children: [jsx(ListSubheader, {
|
|
7621
|
-
disableSticky: true,
|
|
7622
|
-
sx: {
|
|
7623
|
-
color: theme.palette.primary.main,
|
|
7624
|
-
fontWeight: 400,
|
|
7625
|
-
fontSize: '16px',
|
|
7626
|
-
py: 1,
|
|
7627
|
-
my: 0,
|
|
7628
|
-
minHeight: '26px',
|
|
7629
|
-
lineHeight: 1
|
|
7630
|
-
},
|
|
7631
|
-
children: params.group
|
|
7632
|
-
}), Array.isArray(params.children) ? params.children : [params.children]]
|
|
7633
|
-
}, params.key);
|
|
7634
|
-
}
|
|
7635
|
-
} : {}, {
|
|
7621
|
+
}, groupProps, {
|
|
7636
7622
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7637
7623
|
clearIcon: null,
|
|
7638
7624
|
inputValue: inputValue,
|
|
@@ -10302,14 +10288,11 @@ var TimeSliderLegendConnect = function TimeSliderLegendConnect(_ref) {
|
|
|
10302
10288
|
var animationLength = useSelector(function (store) {
|
|
10303
10289
|
return mapSelectors.getAnimationLength(store, mapId);
|
|
10304
10290
|
});
|
|
10305
|
-
var
|
|
10306
|
-
return mapSelectors.
|
|
10307
|
-
});
|
|
10308
|
-
var layerRefTimeDimension = useSelector(function (store) {
|
|
10309
|
-
return layerSelectors.getLayerDimension(store, autoTimeStepLayerId, 'reference_time');
|
|
10291
|
+
var anchorInputs = useSelector(function (store) {
|
|
10292
|
+
return mapSelectors.getAnimationAnchorInputs(store, mapId);
|
|
10310
10293
|
});
|
|
10311
10294
|
/* ReferenceTime counts its offsets from the layer, so the reducer is told where that is. */
|
|
10312
|
-
var referenceTimeFromLayer =
|
|
10295
|
+
var referenceTimeFromLayer = anchorInputs.referenceTime;
|
|
10313
10296
|
/* An anchored mode counts whole units from its anchor, so a handle may only land on those. */
|
|
10314
10297
|
var snapAnimationTime = React.useMemo(function () {
|
|
10315
10298
|
if (!animationLength || !isAnchoredMode(animationLength.mode)) {
|
|
@@ -10317,9 +10300,9 @@ var TimeSliderLegendConnect = function TimeSliderLegendConnect(_ref) {
|
|
|
10317
10300
|
}
|
|
10318
10301
|
var unit = activeEditUnit(animationLength);
|
|
10319
10302
|
return function (timeUnix) {
|
|
10320
|
-
return dateUtils.unix(snapInstantToOffsetGrid(anchorInstantFor(animationLength,
|
|
10303
|
+
return dateUtils.unix(snapInstantToOffsetGrid(anchorInstantFor(animationLength, anchorInputs), dateUtils.fromUnix(timeUnix), unit));
|
|
10321
10304
|
};
|
|
10322
|
-
}, [animationLength,
|
|
10305
|
+
}, [animationLength, anchorInputs]);
|
|
10323
10306
|
var currentTime = dateUtils.unix(Date.now());
|
|
10324
10307
|
var _useSelector2 = useSelector(function (store) {
|
|
10325
10308
|
return mapSelectors.getDataLimitsFromLayers(store, mapId);
|
|
@@ -10511,6 +10494,7 @@ var useUpdateTimeSpan = function useUpdateTimeSpan(mapId, myOnSetTimeSliderSpan)
|
|
|
10511
10494
|
var activeLayerTimeDimension = useSelector(function (store) {
|
|
10512
10495
|
return layerSelectors.getLayerTimeDimension(store, autoTimeStepLayerId);
|
|
10513
10496
|
});
|
|
10497
|
+
var hasActiveLayerTimeDimension = Boolean(activeLayerTimeDimension);
|
|
10514
10498
|
var timeSliderWidth = useSelector(function (store) {
|
|
10515
10499
|
return mapSelectors.getMapTimeSliderWidth(store, mapId);
|
|
10516
10500
|
});
|
|
@@ -10529,6 +10513,24 @@ var useUpdateTimeSpan = function useUpdateTimeSpan(mapId, myOnSetTimeSliderSpan)
|
|
|
10529
10513
|
var isAnimating = useSelector(function (store) {
|
|
10530
10514
|
return mapSelectors.isAnimating(store, mapId);
|
|
10531
10515
|
});
|
|
10516
|
+
var _React$useState = React.useState(function () {
|
|
10517
|
+
return Math.floor(Date.now() / 1000);
|
|
10518
|
+
}),
|
|
10519
|
+
now = _React$useState[0],
|
|
10520
|
+
setNow = _React$useState[1];
|
|
10521
|
+
var updateNow = React.useCallback(function () {
|
|
10522
|
+
setNow(Math.floor(Date.now() / 1000));
|
|
10523
|
+
}, []);
|
|
10524
|
+
React.useEffect(function () {
|
|
10525
|
+
if (!isTimeSpanAuto || !autoTimeStepLayerId || !hasActiveLayerTimeDimension) {
|
|
10526
|
+
return undefined;
|
|
10527
|
+
}
|
|
10528
|
+
updateNow();
|
|
10529
|
+
var intervalId = window.setInterval(updateNow, 60 * 1000);
|
|
10530
|
+
return function () {
|
|
10531
|
+
return window.clearInterval(intervalId);
|
|
10532
|
+
};
|
|
10533
|
+
}, [autoTimeStepLayerId, hasActiveLayerTimeDimension, isTimeSpanAuto, updateNow]);
|
|
10532
10534
|
var updateTimeSliderSpan = React.useCallback(function (spanInSeconds, newCenterTime) {
|
|
10533
10535
|
// Do not dispatch actions if values are the same
|
|
10534
10536
|
if (spanInSeconds !== undefined && newCenterTime !== undefined && (currentTimeSpan !== spanInSeconds || centerTime !== newCenterTime)) {
|
|
@@ -10536,14 +10538,28 @@ var useUpdateTimeSpan = function useUpdateTimeSpan(mapId, myOnSetTimeSliderSpan)
|
|
|
10536
10538
|
}
|
|
10537
10539
|
}, [centerTime, currentTimeSpan, myOnSetTimeSliderSpan]);
|
|
10538
10540
|
React.useEffect(function () {
|
|
10541
|
+
if (isTimeSpanAuto && isAnimating) {
|
|
10542
|
+
return;
|
|
10543
|
+
}
|
|
10539
10544
|
if (isTimeSpanAuto && autoTimeStepLayerId && activeLayerTimeDimension && !isAnimating) {
|
|
10540
10545
|
var _getTimeBounds = getTimeBounds([activeLayerTimeDimension]),
|
|
10541
10546
|
startTime = _getTimeBounds.startTime,
|
|
10542
10547
|
endTime = _getTimeBounds.endTime;
|
|
10543
|
-
var
|
|
10544
|
-
var slicedStartTime
|
|
10545
|
-
var
|
|
10546
|
-
|
|
10548
|
+
var oneDayInSeconds = 24 * 3600;
|
|
10549
|
+
var slicedStartTime;
|
|
10550
|
+
var slicedEndTime;
|
|
10551
|
+
if (now < startTime) {
|
|
10552
|
+
slicedStartTime = now;
|
|
10553
|
+
slicedEndTime = now + oneDayInSeconds;
|
|
10554
|
+
} else if (now > endTime) {
|
|
10555
|
+
slicedStartTime = now - oneDayInSeconds;
|
|
10556
|
+
slicedEndTime = now;
|
|
10557
|
+
} else {
|
|
10558
|
+
slicedStartTime = Math.max(startTime, now - oneDayInSeconds);
|
|
10559
|
+
slicedEndTime = now;
|
|
10560
|
+
}
|
|
10561
|
+
var spanInSeconds = slicedEndTime - slicedStartTime;
|
|
10562
|
+
var newCenterTime = (slicedStartTime + slicedEndTime) / 2;
|
|
10547
10563
|
updateTimeSliderSpan(spanInSeconds, newCenterTime);
|
|
10548
10564
|
} else {
|
|
10549
10565
|
var _spanInSeconds = currentTimeSpan || defaultTimeSpan;
|
|
@@ -10551,7 +10567,7 @@ var useUpdateTimeSpan = function useUpdateTimeSpan(mapId, myOnSetTimeSliderSpan)
|
|
|
10551
10567
|
updateTimeSliderSpan(_spanInSeconds, _newCenterTime);
|
|
10552
10568
|
}
|
|
10553
10569
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10554
|
-
}, [autoTimeStepLayerId, isTimeSpanAuto, mapId, activeLayerTimeDimension == null ? void 0 : activeLayerTimeDimension.name]);
|
|
10570
|
+
}, [autoTimeStepLayerId, isAnimating, isTimeSpanAuto, mapId, activeLayerTimeDimension == null ? void 0 : activeLayerTimeDimension.name, now]);
|
|
10555
10571
|
};
|
|
10556
10572
|
var timeToIso = function timeToIso(selectedTime) {
|
|
10557
10573
|
return handleDateUtilsISOString(dateUtils.fromUnix(selectedTime).toISOString());
|
|
@@ -10625,9 +10641,9 @@ var TimeSliderConnect = function TimeSliderConnect(_ref) {
|
|
|
10625
10641
|
useUpdateTimestep(mapId);
|
|
10626
10642
|
useUpdateTimeSpan(mapId, onSetTimeSliderSpan);
|
|
10627
10643
|
// Local state for unfiltered selected time
|
|
10628
|
-
var _React$
|
|
10629
|
-
unfilteredSelectedTime = _React$
|
|
10630
|
-
setUnfilteredSelectedTime = _React$
|
|
10644
|
+
var _React$useState2 = React.useState(selectedTime),
|
|
10645
|
+
unfilteredSelectedTime = _React$useState2[0],
|
|
10646
|
+
setUnfilteredSelectedTime = _React$useState2[1];
|
|
10631
10647
|
// Store unfilteredSelectedTime in a ref for callbacks
|
|
10632
10648
|
var unfilteredSelectedTimeRef = React.useRef(unfilteredSelectedTime);
|
|
10633
10649
|
React.useEffect(function () {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/core",
|
|
3
|
-
"version": "20.0
|
|
3
|
+
"version": "20.1.0-nightly-20261018",
|
|
4
4
|
"description": "GeoWeb Core library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -20,28 +20,28 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@opengeoweb/shared": "20.0
|
|
23
|
+
"@opengeoweb/shared": "20.1.0-nightly-20261018",
|
|
24
24
|
"react-redux": "^9.2.0",
|
|
25
|
-
"@opengeoweb/store": "20.0
|
|
26
|
-
"@opengeoweb/time-slider": "20.0
|
|
25
|
+
"@opengeoweb/store": "20.1.0-nightly-20261018",
|
|
26
|
+
"@opengeoweb/time-slider": "20.1.0-nightly-20261018",
|
|
27
27
|
"@reduxjs/toolkit": "^2.6.1",
|
|
28
|
-
"@opengeoweb/webmap-react": "20.0
|
|
29
|
-
"@opengeoweb/webmap": "20.0
|
|
30
|
-
"@opengeoweb/theme": "20.0
|
|
31
|
-
"@opengeoweb/layer-select": "20.0
|
|
28
|
+
"@opengeoweb/webmap-react": "20.1.0-nightly-20261018",
|
|
29
|
+
"@opengeoweb/webmap": "20.1.0-nightly-20261018",
|
|
30
|
+
"@opengeoweb/theme": "20.1.0-nightly-20261018",
|
|
31
|
+
"@opengeoweb/layer-select": "20.1.0-nightly-20261018",
|
|
32
32
|
"lodash": "^4.18.1",
|
|
33
33
|
"ol": "^10.4.0",
|
|
34
34
|
"react-sortablejs": "^6.1.4",
|
|
35
35
|
"sortablejs": "^1.15.1",
|
|
36
36
|
"@mui/system": "^9.0.1",
|
|
37
|
-
"@opengeoweb/snackbar": "20.0
|
|
37
|
+
"@opengeoweb/snackbar": "20.1.0-nightly-20261018",
|
|
38
38
|
"react-draggable": "^4.4.6",
|
|
39
39
|
"i18next": "^25.0.1",
|
|
40
40
|
"react-i18next": "^15.1.1",
|
|
41
41
|
"dompurify": "^3.4.13",
|
|
42
42
|
"@mui/material": "^9.0.1",
|
|
43
43
|
"@tanstack/react-query": "^5.85.5",
|
|
44
|
-
"@opengeoweb/api": "20.0
|
|
44
|
+
"@opengeoweb/api": "20.1.0-nightly-20261018",
|
|
45
45
|
"@types/geojson": "^7946.0.14",
|
|
46
46
|
"@turf/turf": "^7.2.0",
|
|
47
47
|
"proj4": "^2.15.0",
|