@opengeoweb/store 8.3.1 → 8.4.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.
Files changed (2) hide show
  1. package/index.esm.js +46 -52
  2. package/package.json +4 -4
package/index.esm.js CHANGED
@@ -9598,9 +9598,10 @@ var produceDraftStateForAllLayersForDimensionWithinMap = function produceDraftSt
9598
9598
  * @param dimensions Dimension[]
9599
9599
  */
9600
9600
  var filterNonTimeDimensions = function filterNonTimeDimensions(dimensions) {
9601
- return dimensions && dimensions.length ? dimensions.filter(function (dim) {
9601
+ var _a;
9602
+ return (_a = dimensions === null || dimensions === void 0 ? void 0 : dimensions.filter(function (dim) {
9602
9603
  return dim.name !== 'time';
9603
- }) : [];
9604
+ })) !== null && _a !== void 0 ? _a : [];
9604
9605
  };
9605
9606
 
9606
9607
  var utils$2 = /*#__PURE__*/Object.freeze({
@@ -10033,62 +10034,55 @@ var slice$9 = createSlice({
10033
10034
  var _action$payload14 = action.payload,
10034
10035
  layerStyle = _action$payload14.layerStyle,
10035
10036
  layerDimensions = _action$payload14.layerDimensions;
10036
- /* Set style */
10037
10037
  if (layerStyle && draft.byId[layerStyle.layerId]) {
10038
10038
  draft.byId[layerStyle.layerId].style = layerStyle === null || layerStyle === void 0 ? void 0 : layerStyle.style;
10039
10039
  }
10040
- /* Set layer dimensions */
10041
- if (layerDimensions) {
10042
- /* Find the corresponding layer we want to update */
10043
- var currentLayer = draft.byId[layerDimensions.layerId];
10044
- /* Find all other layers with the same name and service, and update these at once (atomic update) */
10045
- Object.values(draft.byId).filter(function (draftLayer) {
10046
- return draftLayer.name === currentLayer.name && draftLayer.service === currentLayer.service;
10047
- }).forEach(function (draftLayer) {
10048
- var layerId = draftLayer.id;
10049
- if (layerId && draft.byId[layerId]) {
10050
- if (!draft.byId[layerId].dimensions) {
10051
- draft.byId[layerId].dimensions = [];
10040
+ if (!layerDimensions) {
10041
+ return;
10042
+ }
10043
+ var layer = draft.byId[layerDimensions.layerId];
10044
+ var incomingDimensionNames = layerDimensions.dimensions.map(function (dimension) {
10045
+ return dimension.name;
10046
+ });
10047
+ /* Find all other layers with the same name and service, and update these at once (atomic update) */
10048
+ var layersToUpdate = Object.values(draft.byId).filter(function (otherLayer) {
10049
+ return otherLayer.name === layer.name && otherLayer.service === layer.service && otherLayer.id;
10050
+ });
10051
+ layersToUpdate.forEach(function (layerToUpdate) {
10052
+ var _a;
10053
+ var layerId = layerToUpdate.id;
10054
+ var reduxLayer = draft.byId[layerId];
10055
+ (_a = reduxLayer.dimensions) !== null && _a !== void 0 ? _a : reduxLayer.dimensions = [];
10056
+ // remove dimensions not in incoming list of dimensions
10057
+ reduxLayer.dimensions = reduxLayer.dimensions.filter(function (dimension) {
10058
+ return incomingDimensionNames.includes(dimension.name);
10059
+ });
10060
+ var reduxDimensions = reduxLayer.dimensions;
10061
+ /* Now update or insert the dimension for each layer */
10062
+ layerDimensions.dimensions.forEach(function (newLayerDimension) {
10063
+ /* Find the wmLayer */
10064
+ var wmLayer = webmapUtils.getWMLayerById(layerId);
10065
+ /* Find the wmDimension */
10066
+ var wmDimension = wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.getDimension(newLayerDimension.name);
10067
+ /* This will set the new range of start/stop values for this dimension, making getClosestValue work properly */
10068
+ wmDimension === null || wmDimension === void 0 ? void 0 : wmDimension.reInitializeValues(newLayerDimension.values);
10069
+ var existingDimension = reduxDimensions.find(function (d) {
10070
+ return d.name === newLayerDimension.name;
10071
+ });
10072
+ if (existingDimension) {
10073
+ /* If found update only minValue, maxValue and values */
10074
+ existingDimension.maxValue = newLayerDimension.maxValue;
10075
+ existingDimension.minValue = newLayerDimension.minValue;
10076
+ existingDimension.values = newLayerDimension.values;
10077
+ if (!existingDimension.units) {
10078
+ existingDimension.units = newLayerDimension.units;
10052
10079
  }
10053
- var draftLayerDimensions = draft.byId[layerId].dimensions;
10054
- /* Now update the dimension for each layer */
10055
- layerDimensions.dimensions.forEach(function (newLayerDimension) {
10056
- /* Find the wmLayer */
10057
- var wmLayer = webmapUtils.getWMLayerById(layerId);
10058
- /* Find the wmDimension */
10059
- var wmDimension = wmLayer && wmLayer.getDimension(newLayerDimension.name);
10060
- /* This will set the new range of start/stop values for this dimension, making getClosestValue work properly */
10061
- wmDimension && wmDimension.reInitializeValues(newLayerDimension.values);
10062
- /* Find corresponding draftLayerDimensions */
10063
- var draftLayerDimension = draftLayerDimensions === null || draftLayerDimensions === void 0 ? void 0 : draftLayerDimensions.find(function (d) {
10064
- return d.name === newLayerDimension.name;
10065
- });
10066
- if (draftLayerDimension) {
10067
- /* If found update only minValue, maxValue and values */
10068
- draftLayerDimension.maxValue = newLayerDimension.maxValue;
10069
- draftLayerDimension.minValue = newLayerDimension.minValue;
10070
- draftLayerDimension.values = newLayerDimension.values;
10071
- if (!draftLayerDimension.units) {
10072
- draftLayerDimension.units = newLayerDimension.units;
10073
- }
10074
- } else if (layerId === layerDimensions.layerId) {
10075
- /* Otherwise add a new one, but only for this layer. */
10076
- draftLayerDimensions.push({
10077
- name: newLayerDimension.name,
10078
- units: newLayerDimension.units,
10079
- currentValue: newLayerDimension.currentValue,
10080
- minValue: newLayerDimension.minValue,
10081
- maxValue: newLayerDimension.maxValue,
10082
- validSyncSelection: newLayerDimension.validSyncSelection,
10083
- values: newLayerDimension.values,
10084
- timeInterval: newLayerDimension.timeInterval,
10085
- synced: newLayerDimension.synced
10086
- });
10087
- }
10088
- });
10080
+ } else if (layerId === layerDimensions.layerId) {
10081
+ /* Otherwise add a new one, but only for this layer. */
10082
+ reduxDimensions.push(Object.assign({}, newLayerDimension));
10089
10083
  }
10090
10084
  });
10091
- }
10085
+ });
10092
10086
  },
10093
10087
  // feature layer actions
10094
10088
  setSelectedFeature: function setSelectedFeature(draft, action) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/store",
3
- "version": "8.3.1",
3
+ "version": "8.4.0",
4
4
  "description": "GeoWeb Store library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -12,9 +12,9 @@
12
12
  "main": "./index.esm.js",
13
13
  "dependencies": {},
14
14
  "peerDependencies": {
15
- "@opengeoweb/shared": "8.3.1",
16
- "@opengeoweb/webmap": "8.3.1",
17
- "@opengeoweb/webmap-react": "8.3.1",
15
+ "@opengeoweb/shared": "8.4.0",
16
+ "@opengeoweb/webmap": "8.4.0",
17
+ "@opengeoweb/webmap-react": "8.4.0",
18
18
  "@redux-eggs/core": "2.2.0",
19
19
  "@redux-eggs/redux-toolkit": "2.2.0",
20
20
  "@redux-eggs/saga-extension": "2.2.0",