@carto/kepler.gl 0.0.32 → 0.0.33-alpha1

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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@carto/kepler.gl",
3
3
  "author": "CARTO",
4
4
  "homepage": "https://github.com/CartoDB/carto-kepler#readme",
5
- "version": "0.0.32",
5
+ "version": "0.0.33-alpha1",
6
6
  "description": "kepler.gl is a webgl based application to visualize large scale location data in the browser",
7
7
  "license": "MIT",
8
8
  "main": "dist/index.js",
@@ -891,6 +891,8 @@ class Layer {
891
891
  const layerDataset = datasets[this.config.dataId];
892
892
  const {dataContainer} = layerDataset;
893
893
 
894
+ this.updateVisualChannelFields(layerDataset);
895
+
894
896
  const getPosition = this.getPositionAccessor(dataContainer);
895
897
  const dataUpdateTriggers = this.getDataUpdateTriggers(layerDataset);
896
898
  const triggerChanged = this.getChangedTriggers(dataUpdateTriggers);
@@ -911,6 +913,22 @@ class Layer {
911
913
  return {data, triggerChanged};
912
914
  }
913
915
 
916
+ /**
917
+ * Update styled fields to match ones from new dataset.
918
+ *
919
+ * @param {Object} dataset
920
+ */
921
+ updateVisualChannelFields(dataset) {
922
+ for (const {field} of Object.values(this.visualChannels)) {
923
+ const oldField = this.config[field];
924
+ if (!oldField) {
925
+ return;
926
+ }
927
+ const newDataSetField = dataset.fields.find(fd => fd.name === oldField.name) || null;
928
+ this.updateLayerConfig({[field]: newDataSetField});
929
+ }
930
+ }
931
+
914
932
  /**
915
933
  * helper function to update one layer domain when state.data changed
916
934
  * if state.data change is due ot update filter, newFiler will be passed
@@ -1040,7 +1058,15 @@ class Layer {
1040
1058
  return defaultDomain;
1041
1059
  }
1042
1060
 
1043
- return dataset.getColumnLayerDomain(field, scaleType) || defaultDomain;
1061
+ // return dataset.getColumnLayerDomain(field, scaleType) || defaultDomain;
1062
+
1063
+ const dataSetField = dataset.fields.find(f => f.name === field.name);
1064
+ if (!dataSetField) {
1065
+ // if new dataset doesn't contain previously set field
1066
+ return defaultDomain;
1067
+ }
1068
+
1069
+ return dataset.getColumnLayerDomain(dataSetField, scaleType) || defaultDomain;
1044
1070
  }
1045
1071
 
1046
1072
  hasHoveredObject(objectInfo) {