@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 moment from 'moment';
7
- import { differenceInMinutes, getUnixTime, parseISO, isValid, fromUnixTime } from 'date-fns';
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 = 'YYYY-MM-DDTHH:mm:ss[Z]';
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 ? moment.utc(moment().unix() * 1000).subtract(5, 'h').format(dateFormat) : _ref$animationStartTi,
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 ? moment.utc(moment().unix() * 1000).subtract(10, 'm').format(dateFormat) : _ref$animationEndTime,
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 ? moment.utc().unix() : _ref$timeSliderCenter,
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 = getUnixTime(new Date());
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 getUnixTime(timeSliderTime);
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 = getUnixTime(new Date(dimension.maxValue));
4085
- var firstValue = getUnixTime(new Date(dimension.minValue));
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 : moment.utc().subtract(6, 'h').format(dateFormat);
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 : moment.utc().subtract(10, 'm').format(dateFormat);
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 : moment().unix();
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 moment object and interval in minutes
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 = moment(start).utc().unix();
5135
- var unixEnd = moment(end).utc().unix();
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: moment.unix(j).toISOString()
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 timeInMinutes = moment.duration(animationEndTime.split(/[-+]/)[1]).asMinutes();
5149
- var startingTime = calculateFromNow ? moment().utc() : moment().utc().startOf('day');
5150
- var newAnimationEndTime = isAddingTime ? moment(startingTime).add(timeInMinutes, 'minutes').toISOString() : moment(startingTime).subtract(timeInMinutes, 'minutes').toISOString();
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 hasValidDate = moment.isDuration(moment.duration(animationEndTime.split(/[-+]/)[1]));
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 && moment.utc(start).unix()), interval, 'ceil');
5184
- roundedEnd = roundWithTimeStep(Number(end && moment.utc(end).unix()), interval, 'floor');
5185
- animationList = timeList || generateTimeList(moment.utc(roundedStart * 1000), moment.utc(roundedEnd * 1000), interval);
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 = moment.utc(animationStart).unix();
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 = moment.utc(animationEnd).unix();
5260
- t = moment.utc(maxValue).unix();
5276
+ animationEndUnix = dateUtils.unix(dateUtils.utc(animationEnd));
5277
+ t = dateUtils.unix(dateUtils.utc(maxValue));
5261
5278
  deltaT = t - animationEndUnix;
5262
- start = moment.unix(animationStartUnix + deltaT).utc().format(dateFormat);
5263
- end = moment.unix(animationEndUnix + deltaT).utc().format(dateFormat);
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: moment(animationEnd).subtract(5 * 60, 'minutes') // set to default of 5 hours
5712
- .toISOString()
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: moment(_animationEnd).subtract(animationLength, 'minutes').toISOString()
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 = moment.utc().format(dateFormat);
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 = moment.utc().subtract(duration, 'minutes').format(dateFormat);
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: moment(_animationEnd3).add(5, 'minutes').toISOString()
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: moment(_animationStart).add(5, 'minutes').toISOString()
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.6.0",
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: "YYYY-MM-DDTHH:mm:ss[Z]";
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: Moment, end: Moment, interval: number) => {
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 = "YYYY-MM-DDTHH:mm:ss[Z]";
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;