@opengeoweb/store 9.6.0 → 9.7.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
|
@@ -3,8 +3,8 @@ import { webmapUtils, LayerType, webmapTestSettings, WMLayer, handleMomentISOStr
|
|
|
3
3
|
import { createAction, createSlice, createSelector, createEntityAdapter, current as current$1 } from '@reduxjs/toolkit';
|
|
4
4
|
import { getGeoJson, moveFeature, createInterSections, defaultLayers, getFeatureCollection, emptyGeoJSON, defaultIntersectionStyleProperties } from '@opengeoweb/webmap-react';
|
|
5
5
|
export { defaultLayers } from '@opengeoweb/webmap-react';
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
6
|
+
import { differenceInMinutes, isValid, fromUnixTime } from 'date-fns';
|
|
7
|
+
import { dateUtils, withEggs } from '@opengeoweb/shared';
|
|
8
8
|
import { isEqual, compact } from 'lodash';
|
|
9
9
|
import { createStore as createStore$1 } from '@redux-eggs/redux-toolkit';
|
|
10
10
|
import { getSagaExtension } from '@redux-eggs/saga-extension';
|
|
@@ -12,7 +12,6 @@ import { takeEvery, takeLatest, put, select, call, all, delay } from 'redux-saga
|
|
|
12
12
|
import React, { useCallback, useEffect } from 'react';
|
|
13
13
|
import { Provider, useDispatch, useSelector } from 'react-redux';
|
|
14
14
|
import { ThemeWrapper, lightTheme } from '@opengeoweb/theme';
|
|
15
|
-
import { withEggs } from '@opengeoweb/shared';
|
|
16
15
|
|
|
17
16
|
function _iterableToArrayLimit(r, l) {
|
|
18
17
|
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
@@ -557,15 +556,19 @@ var constants$1 = /*#__PURE__*/Object.freeze({
|
|
|
557
556
|
IS_LEGEND_OPEN_BY_DEFAULT: IS_LEGEND_OPEN_BY_DEFAULT
|
|
558
557
|
});
|
|
559
558
|
|
|
560
|
-
var dateFormat =
|
|
559
|
+
var dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z";
|
|
561
560
|
var createMap = function createMap(_ref) {
|
|
562
561
|
var id = _ref.id,
|
|
563
562
|
_ref$isAnimating = _ref.isAnimating,
|
|
564
563
|
isAnimating = _ref$isAnimating === void 0 ? false : _ref$isAnimating,
|
|
565
564
|
_ref$animationStartTi = _ref.animationStartTime,
|
|
566
|
-
animationStartTime = _ref$animationStartTi === void 0 ?
|
|
565
|
+
animationStartTime = _ref$animationStartTi === void 0 ? dateUtils.dateToString(dateUtils.sub(dateUtils.fromUnix(dateUtils.unix(dateUtils.utc())), {
|
|
566
|
+
hours: 5
|
|
567
|
+
}), dateFormat) : _ref$animationStartTi,
|
|
567
568
|
_ref$animationEndTime = _ref.animationEndTime,
|
|
568
|
-
animationEndTime = _ref$animationEndTime === void 0 ?
|
|
569
|
+
animationEndTime = _ref$animationEndTime === void 0 ? dateUtils.dateToString(dateUtils.sub(dateUtils.fromUnix(dateUtils.unix(dateUtils.utc())), {
|
|
570
|
+
minutes: 10
|
|
571
|
+
}), dateFormat) : _ref$animationEndTime,
|
|
569
572
|
_ref$isAutoUpdating = _ref.isAutoUpdating,
|
|
570
573
|
isAutoUpdating = _ref$isAutoUpdating === void 0 ? false : _ref$isAutoUpdating,
|
|
571
574
|
_ref$isEndTimeOverrid = _ref.isEndTimeOverriding,
|
|
@@ -600,7 +603,7 @@ var createMap = function createMap(_ref) {
|
|
|
600
603
|
_ref$timeSliderWidth = _ref.timeSliderWidth,
|
|
601
604
|
timeSliderWidth = _ref$timeSliderWidth === void 0 ? 440 : _ref$timeSliderWidth,
|
|
602
605
|
_ref$timeSliderCenter = _ref.timeSliderCenterTime,
|
|
603
|
-
timeSliderCenterTime = _ref$timeSliderCenter === void 0 ?
|
|
606
|
+
timeSliderCenterTime = _ref$timeSliderCenter === void 0 ? dateUtils.unix(dateUtils.utc()) : _ref$timeSliderCenter,
|
|
604
607
|
_ref$timeSliderSecond = _ref.timeSliderSecondsPerPx,
|
|
605
608
|
timeSliderSecondsPerPx = _ref$timeSliderSecond === void 0 ? defaultSecondsPerPx : _ref$timeSliderSecond,
|
|
606
609
|
_ref$isTimestepAuto = _ref.isTimestepAuto,
|
|
@@ -4061,13 +4064,13 @@ var getMapDimension = createSelector([getMapById, function (_store, mapId) {
|
|
|
4061
4064
|
var getSelectedTime = createSelector(function (store, mapId) {
|
|
4062
4065
|
return getMapDimension(store, mapId, 'time');
|
|
4063
4066
|
}, function (timeDimension) {
|
|
4064
|
-
var now =
|
|
4067
|
+
var now = dateUtils.unix(new Date());
|
|
4065
4068
|
if (!timeDimension) {
|
|
4066
4069
|
return now;
|
|
4067
4070
|
}
|
|
4068
|
-
var timeSliderTime = parseISO(timeDimension.currentValue);
|
|
4069
|
-
if (isValid(timeSliderTime)) {
|
|
4070
|
-
return
|
|
4071
|
+
var timeSliderTime = dateUtils.parseISO(timeDimension.currentValue);
|
|
4072
|
+
if (dateUtils.isValid(timeSliderTime)) {
|
|
4073
|
+
return dateUtils.unix(timeSliderTime);
|
|
4071
4074
|
}
|
|
4072
4075
|
return now;
|
|
4073
4076
|
}, selectorMemoizationOptions);
|
|
@@ -4081,8 +4084,8 @@ var getDataLimitsFromLayers = createSelector(getMapLayers, function (layers) {
|
|
|
4081
4084
|
return dimension.name === 'time';
|
|
4082
4085
|
});
|
|
4083
4086
|
if ((dimension === null || dimension === void 0 ? void 0 : dimension.minValue) && dimension.maxValue) {
|
|
4084
|
-
var lastValue =
|
|
4085
|
-
var firstValue =
|
|
4087
|
+
var lastValue = dateUtils.unix(new Date(dimension.maxValue));
|
|
4088
|
+
var firstValue = dateUtils.unix(new Date(dimension.minValue));
|
|
4086
4089
|
var newLast = Math.max(lastValue, end);
|
|
4087
4090
|
var newFirst = Math.min(firstValue, start);
|
|
4088
4091
|
return [newFirst, newLast];
|
|
@@ -4164,7 +4167,9 @@ var linkedMapAnimationInfo = createSelector(function (store, mapId) {
|
|
|
4164
4167
|
* @returns {string} returnType: string
|
|
4165
4168
|
*/
|
|
4166
4169
|
var getAnimationStartTime = createSelector(getMapById, function (store) {
|
|
4167
|
-
return (store === null || store === void 0 ? void 0 : store.animationStartTime) ? store.animationStartTime :
|
|
4170
|
+
return (store === null || store === void 0 ? void 0 : store.animationStartTime) ? store.animationStartTime : dateUtils.dateToString(dateUtils.sub(dateUtils.utc(), {
|
|
4171
|
+
hours: 6
|
|
4172
|
+
}), dateFormat);
|
|
4168
4173
|
}, selectorMemoizationOptions);
|
|
4169
4174
|
/**
|
|
4170
4175
|
* Gets end time of animation
|
|
@@ -4175,7 +4180,9 @@ var getAnimationStartTime = createSelector(getMapById, function (store) {
|
|
|
4175
4180
|
* @returns {string} returnType: string
|
|
4176
4181
|
*/
|
|
4177
4182
|
var getAnimationEndTime$1 = createSelector(getMapById, function (store) {
|
|
4178
|
-
return (store === null || store === void 0 ? void 0 : store.animationEndTime) ? store.animationEndTime :
|
|
4183
|
+
return (store === null || store === void 0 ? void 0 : store.animationEndTime) ? store.animationEndTime : dateUtils.dateToString(dateUtils.sub(dateUtils.utc(), {
|
|
4184
|
+
minutes: 10
|
|
4185
|
+
}), dateFormat);
|
|
4179
4186
|
}, selectorMemoizationOptions);
|
|
4180
4187
|
/**
|
|
4181
4188
|
* Returns map is auto updating
|
|
@@ -4289,7 +4296,7 @@ var getMapTimeSliderWidth = createSelector(getMapById, function (store) {
|
|
|
4289
4296
|
* @returns {number} returnType: number - center time as a unix timestamp
|
|
4290
4297
|
*/
|
|
4291
4298
|
var getMapTimeSliderCenterTime = createSelector(getMapById, function (store) {
|
|
4292
|
-
return store ? store.timeSliderCenterTime :
|
|
4299
|
+
return store ? store.timeSliderCenterTime : dateUtils.unix(dateUtils.utc());
|
|
4293
4300
|
}, selectorMemoizationOptions);
|
|
4294
4301
|
/**
|
|
4295
4302
|
* Returns the unfiltered selected time of time slider
|
|
@@ -5128,16 +5135,16 @@ var storeTestSettings = /*#__PURE__*/Object.freeze({
|
|
|
5128
5135
|
var _marked$6 = /*#__PURE__*/_regeneratorRuntime().mark(updateAnimation),
|
|
5129
5136
|
_marked2$4 = /*#__PURE__*/_regeneratorRuntime().mark(handleBaseLayersSaga),
|
|
5130
5137
|
_marked3$2 = /*#__PURE__*/_regeneratorRuntime().mark(rootSaga$5);
|
|
5131
|
-
// Expects start, end time as
|
|
5138
|
+
// Expects start, end time as Date object and interval in minutes
|
|
5132
5139
|
var generateTimeList = function generateTimeList(start, end, interval) {
|
|
5133
5140
|
var timeList = [];
|
|
5134
|
-
var unixStart =
|
|
5135
|
-
var unixEnd =
|
|
5141
|
+
var unixStart = dateUtils.unix(start);
|
|
5142
|
+
var unixEnd = dateUtils.unix(end);
|
|
5136
5143
|
var intervalSeconds = interval * 60;
|
|
5137
5144
|
for (var j = unixStart; j <= unixEnd; j += intervalSeconds) {
|
|
5138
5145
|
timeList.push({
|
|
5139
5146
|
name: 'time',
|
|
5140
|
-
value:
|
|
5147
|
+
value: dateUtils.fromUnix(j).toISOString()
|
|
5141
5148
|
});
|
|
5142
5149
|
}
|
|
5143
5150
|
return timeList;
|
|
@@ -5145,14 +5152,24 @@ var generateTimeList = function generateTimeList(start, end, interval) {
|
|
|
5145
5152
|
var getAnimationEndTime = function getAnimationEndTime(animationEndTime) {
|
|
5146
5153
|
var calculateFromNow = animationEndTime.split(/[-+]/)[0] === 'NOW';
|
|
5147
5154
|
var isAddingTime = animationEndTime.indexOf('+') !== -1;
|
|
5148
|
-
var
|
|
5149
|
-
var
|
|
5150
|
-
|
|
5155
|
+
var duration = animationEndTime.substring(animationEndTime.indexOf('PT') + 2);
|
|
5156
|
+
var _duration$split = duration.split('H'),
|
|
5157
|
+
_duration$split2 = _slicedToArray(_duration$split, 2),
|
|
5158
|
+
hours = _duration$split2[0],
|
|
5159
|
+
minutes = _duration$split2[1];
|
|
5160
|
+
var timeInMinutes = parseInt(hours, 10) * 60 + parseInt(minutes, 10);
|
|
5161
|
+
var startingTime = calculateFromNow ? dateUtils.utc() : dateUtils.startOfDay(dateUtils.utc());
|
|
5162
|
+
var newAnimationEndTime = isAddingTime ? dateUtils.add(startingTime, {
|
|
5163
|
+
minutes: timeInMinutes
|
|
5164
|
+
}).toISOString() : dateUtils.sub(startingTime, {
|
|
5165
|
+
minutes: timeInMinutes
|
|
5166
|
+
}).toISOString();
|
|
5151
5167
|
return newAnimationEndTime;
|
|
5152
5168
|
};
|
|
5153
5169
|
var isAnimationEndTimeValid = function isAnimationEndTimeValid(animationEndTime) {
|
|
5154
5170
|
var hasValidPrefix = animationEndTime.split(/[-+]/)[0] === 'NOW' || animationEndTime.split(/[-+]/)[0] === 'TODAY';
|
|
5155
|
-
var
|
|
5171
|
+
var durationString = animationEndTime.substring(animationEndTime.indexOf('PT') + 2);
|
|
5172
|
+
var hasValidDate = /^(\d+H)?(\d+M)?$/.test(durationString);
|
|
5156
5173
|
return hasValidPrefix && hasValidDate;
|
|
5157
5174
|
};
|
|
5158
5175
|
var validInitialAnimationStep = function validInitialAnimationStep(initialAnimationStep, draw) {
|
|
@@ -5180,9 +5197,9 @@ function startAnimationSaga(_ref) {
|
|
|
5180
5197
|
while (1) switch (_context.prev = _context.next) {
|
|
5181
5198
|
case 0:
|
|
5182
5199
|
mapId = payload.mapId, start = payload.start, initialTime = payload.initialTime, end = payload.end, interval = payload.interval, timeList = payload.timeList;
|
|
5183
|
-
roundedStart = roundWithTimeStep(Number(start &&
|
|
5184
|
-
roundedEnd = roundWithTimeStep(Number(end &&
|
|
5185
|
-
animationList = timeList || generateTimeList(
|
|
5200
|
+
roundedStart = roundWithTimeStep(Number(start && dateUtils.unix(dateUtils.utc(start))), interval, 'ceil');
|
|
5201
|
+
roundedEnd = roundWithTimeStep(Number(end && dateUtils.unix(dateUtils.utc(end))), interval, 'floor');
|
|
5202
|
+
animationList = timeList || generateTimeList(dateUtils.fromUnix(roundedStart), dateUtils.fromUnix(roundedEnd), interval);
|
|
5186
5203
|
_context.next = 6;
|
|
5187
5204
|
return animationList;
|
|
5188
5205
|
case 6:
|
|
@@ -5251,16 +5268,16 @@ function updateAnimation(mapId, maxValue) {
|
|
|
5251
5268
|
return select(getAnimationStartTime, mapId);
|
|
5252
5269
|
case 2:
|
|
5253
5270
|
animationStart = _context4.sent;
|
|
5254
|
-
animationStartUnix =
|
|
5271
|
+
animationStartUnix = dateUtils.unix(dateUtils.utc(animationStart));
|
|
5255
5272
|
_context4.next = 6;
|
|
5256
5273
|
return select(getAnimationEndTime$1, mapId);
|
|
5257
5274
|
case 6:
|
|
5258
5275
|
animationEnd = _context4.sent;
|
|
5259
|
-
animationEndUnix =
|
|
5260
|
-
t =
|
|
5276
|
+
animationEndUnix = dateUtils.unix(dateUtils.utc(animationEnd));
|
|
5277
|
+
t = dateUtils.unix(dateUtils.utc(maxValue));
|
|
5261
5278
|
deltaT = t - animationEndUnix;
|
|
5262
|
-
start =
|
|
5263
|
-
end =
|
|
5279
|
+
start = dateUtils.dateToString(dateUtils.fromUnix(animationStartUnix + deltaT), dateFormat);
|
|
5280
|
+
end = dateUtils.dateToString(dateUtils.fromUnix(animationEndUnix + deltaT), dateFormat);
|
|
5264
5281
|
_context4.next = 14;
|
|
5265
5282
|
return put(mapActions.setAnimationEndTime({
|
|
5266
5283
|
mapId: mapId,
|
|
@@ -5708,8 +5725,9 @@ function setMapPresetSaga(_ref6) {
|
|
|
5708
5725
|
_context8.next = 58;
|
|
5709
5726
|
return put(mapActions.setAnimationStartTime({
|
|
5710
5727
|
mapId: mapId,
|
|
5711
|
-
animationStartTime:
|
|
5712
|
-
|
|
5728
|
+
animationStartTime: dateUtils.sub(dateUtils.utc(animationEnd), {
|
|
5729
|
+
minutes: 5 * 60 // set to default of 5 hours
|
|
5730
|
+
}).toISOString()
|
|
5713
5731
|
}));
|
|
5714
5732
|
case 58:
|
|
5715
5733
|
if (!animationLength) {
|
|
@@ -5723,7 +5741,9 @@ function setMapPresetSaga(_ref6) {
|
|
|
5723
5741
|
_context8.next = 64;
|
|
5724
5742
|
return put(mapActions.setAnimationStartTime({
|
|
5725
5743
|
mapId: mapId,
|
|
5726
|
-
animationStartTime:
|
|
5744
|
+
animationStartTime: dateUtils.sub(dateUtils.utc(_animationEnd), {
|
|
5745
|
+
minutes: animationLength
|
|
5746
|
+
}).toISOString()
|
|
5727
5747
|
}));
|
|
5728
5748
|
case 64:
|
|
5729
5749
|
if (!(animationPayload && animationPayload.speed)) {
|
|
@@ -5752,7 +5772,7 @@ function setMapPresetSaga(_ref6) {
|
|
|
5752
5772
|
_context8.next = 76;
|
|
5753
5773
|
break;
|
|
5754
5774
|
case 75:
|
|
5755
|
-
_context8.t0 =
|
|
5775
|
+
_context8.t0 = dateUtils.dateToString(dateUtils.utc(), dateFormat);
|
|
5756
5776
|
case 76:
|
|
5757
5777
|
_animationEnd2 = _context8.t0;
|
|
5758
5778
|
if (!(shouldEndtimeOverride && animationLength)) {
|
|
@@ -5766,7 +5786,9 @@ function setMapPresetSaga(_ref6) {
|
|
|
5766
5786
|
_context8.next = 84;
|
|
5767
5787
|
break;
|
|
5768
5788
|
case 83:
|
|
5769
|
-
_context8.t1 =
|
|
5789
|
+
_context8.t1 = dateUtils.dateToString(dateUtils.sub(dateUtils.utc(_animationEnd2), {
|
|
5790
|
+
minutes: duration
|
|
5791
|
+
}), dateFormat);
|
|
5770
5792
|
case 84:
|
|
5771
5793
|
animationStart = _context8.t1;
|
|
5772
5794
|
_context8.next = 87;
|
|
@@ -5841,7 +5863,9 @@ function setMapPresetSaga(_ref6) {
|
|
|
5841
5863
|
_context8.next = 114;
|
|
5842
5864
|
return put(mapActions.setAnimationEndTime({
|
|
5843
5865
|
mapId: mapId,
|
|
5844
|
-
animationEndTime:
|
|
5866
|
+
animationEndTime: dateUtils.add(dateUtils.utc(_animationEnd3), {
|
|
5867
|
+
minutes: 5
|
|
5868
|
+
}).toISOString()
|
|
5845
5869
|
}));
|
|
5846
5870
|
case 114:
|
|
5847
5871
|
_context8.next = 116;
|
|
@@ -5851,7 +5875,9 @@ function setMapPresetSaga(_ref6) {
|
|
|
5851
5875
|
_context8.next = 119;
|
|
5852
5876
|
return put(mapActions.setAnimationStartTime({
|
|
5853
5877
|
mapId: mapId,
|
|
5854
|
-
animationStartTime:
|
|
5878
|
+
animationStartTime: dateUtils.add(dateUtils.utc(_animationStart), {
|
|
5879
|
+
minutes: 5
|
|
5880
|
+
}).toISOString()
|
|
5855
5881
|
}));
|
|
5856
5882
|
case 119:
|
|
5857
5883
|
_context8.next = 105;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/store",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.7.0",
|
|
4
4
|
"description": "GeoWeb Store library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"immer": "^9.0.21",
|
|
19
19
|
"@redux-eggs/redux-toolkit": "^2.2.0",
|
|
20
20
|
"@redux-eggs/saga-extension": "^2.2.0",
|
|
21
|
-
"moment": "^2.29.4",
|
|
22
21
|
"date-fns": "^3.3.0",
|
|
23
22
|
"lodash": "^4.17.21",
|
|
24
23
|
"@opengeoweb/theme": "*"
|
|
@@ -3,7 +3,7 @@ import * as utils from './utils';
|
|
|
3
3
|
export declare const mapUtils: {
|
|
4
4
|
replaceLayerIdsToEnsureUniqueLayerIdsInStore: (layerIds: import("./replaceLayerIdsToEnsureUniqueLayerIdsInStore").LayersAndAutoLayerIds) => import("./replaceLayerIdsToEnsureUniqueLayerIdsInStore").LayersAndAutoLayerIds;
|
|
5
5
|
moveArrayElements<T>(array: T[], oldIndex: number, newIndex: number): T[];
|
|
6
|
-
dateFormat: "
|
|
6
|
+
dateFormat: "yyyy-MM-dd'T'HH:mm:ss'Z";
|
|
7
7
|
createMap: ({ id, isAnimating, animationStartTime, animationEndTime, isAutoUpdating, isEndTimeOverriding, bbox, srs, baseLayers, overLayers, mapLayers, featureLayers, dimensions, autoUpdateLayerId, autoTimeStepLayerId, timeSliderSpan, timeStep, animationDelay, timeSliderWidth, timeSliderCenterTime, timeSliderSecondsPerPx, isTimestepAuto, isTimeSpanAuto, isTimeSliderHoverOn, isTimeSliderVisible, displayMapPin, disableMapPin, shouldShowZoomControls, }: utils.CreateMapProps) => mapTypes.WebMap;
|
|
8
8
|
checkValidLayersPayload: (layers: import("../types").Layer[], mapId: string) => boolean;
|
|
9
9
|
getDraftMapById: (mapId: string, draft: mapTypes.WebMapState) => mapTypes.WebMap;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { SagaIterator } from 'redux-saga';
|
|
2
|
-
import { Moment } from 'moment';
|
|
3
2
|
import { AnimationStep } from '@opengeoweb/webmap';
|
|
4
3
|
import { mapActions } from '.';
|
|
5
4
|
import { layerActions } from '../layers';
|
|
6
5
|
import { Layer } from '../layers/types';
|
|
7
|
-
export declare const generateTimeList: (start:
|
|
6
|
+
export declare const generateTimeList: (start: Date, end: Date, interval: number) => {
|
|
8
7
|
name: string;
|
|
9
8
|
value: string;
|
|
10
9
|
}[];
|
|
@@ -3,7 +3,7 @@ import { Bbox, Dimension } from './types';
|
|
|
3
3
|
import { Scale } from './enums';
|
|
4
4
|
import type { WebMapState, WebMap, SpeedFactorType } from '../types';
|
|
5
5
|
import type { Layer } from '../layers/types';
|
|
6
|
-
export declare const dateFormat = "
|
|
6
|
+
export declare const dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z";
|
|
7
7
|
export interface CreateMapProps {
|
|
8
8
|
id: string;
|
|
9
9
|
isAnimating?: boolean;
|