in src/layers/base-layer.js [542:572]
updateLayerColorUI(prop, newConfig) {
const {colorUI: previous, visConfig} = this.config;
if (!isPlainObject(newConfig) || typeof prop !== 'string') {
return this;
}
const colorUIProp = Object.entries(newConfig).reduce((accu, [key, value]) => {
return {
...accu,
[key]: isPlainObject(accu[key]) && isPlainObject(value) ? {...accu[key], ...value} : value
};
}, previous[prop] || DEFAULT_COLOR_UI);
const colorUI = {
...previous,
[prop]: colorUIProp
};
this.updateLayerConfig({colorUI});
// if colorUI[prop] is colorRange
const isColorRange = visConfig[prop] && visConfig[prop].colors;
if (isColorRange) {
this.updateColorUIByColorRange(newConfig, prop);
this.updateColorRangeByColorUI(newConfig, previous, prop);
this.updateCustomPalette(newConfig, previous, prop);
}
return this;
}