in src/layers/base-layer.js [623:661]
updateColorRangeByColorUI(newConfig, previous, prop) {
// only update colorRange if changes in UI is made to 'reversed', 'steps' or steps
const shouldUpdate =
newConfig.colorRangeConfig &&
['reversed', 'steps'].some(
key =>
newConfig.colorRangeConfig.hasOwnProperty(key) &&
newConfig.colorRangeConfig[key] !==
(previous[prop] || DEFAULT_COLOR_UI).colorRangeConfig[key]
);
if (!shouldUpdate) return;
const {colorUI, visConfig} = this.config;
const {steps, reversed} = colorUI[prop].colorRangeConfig;
const colorRange = visConfig[prop];
// find based on step or reversed
let update;
if (newConfig.colorRangeConfig.hasOwnProperty('steps')) {
const group = getColorGroupByName(colorRange);
if (group) {
const sameGroup = COLOR_RANGES.filter(cr => getColorGroupByName(cr) === group);
update = sameGroup.find(cr => cr.colors.length === steps);
if (update && colorRange.reversed) {
update = reverseColorRange(true, update);
}
}
}
if (newConfig.colorRangeConfig.hasOwnProperty('reversed')) {
update = reverseColorRange(reversed, update || colorRange);
}
if (update) {
this.updateLayerVisConfig({[prop]: update});
}
}