in src/deckgl-layers/layer-utils/cpu-aggregator.js [490:521]
getUpdateTriggers(props) {
const _updateTriggers = props.updateTriggers || {};
const updateTriggers = {};
for (const key in this.dimensionUpdaters) {
const {accessor, updateSteps} = this.dimensionUpdaters[key];
// fold dimension triggers into each accessor
updateTriggers[accessor] = {};
updateSteps.forEach(step => {
Object.values(step.triggers || []).forEach(({prop, updateTrigger}) => {
if (updateTrigger) {
// if prop is based on updateTrigger e.g. getColorValue, getColorWeight
// and updateTriggers is passed in from layer prop
// fold the updateTriggers into accessor
const fromProp = _updateTriggers[updateTrigger];
if (typeof fromProp === 'object' && !Array.isArray(fromProp)) {
// if updateTrigger is an object spread it
Object.assign(updateTriggers[accessor], fromProp);
} else if (fromProp !== undefined) {
updateTriggers[accessor][prop] = fromProp;
}
} else {
// if prop is not based on updateTrigger
updateTriggers[accessor][prop] = props[prop];
}
});
});
}
return updateTriggers;
}