in packages/sanddance-explorer/src/partialInsight.ts [17:52]
export function initPrefs(prefs: Prefs, partialInsight: Partial<SandDance.specs.Insight>) {
if (partialInsight) {
const specTypePrefs = prefs[partialInsight.chart] || {};
prefs[partialInsight.chart] = specTypePrefs;
for (let _role in partialInsight.columns) {
let role = _role as SandDance.specs.InsightColumnRoles;
if (role === 'color' || role === 'x') {
let rolePrefs = specTypePrefs[role] || {};
specTypePrefs[role] = rolePrefs;
let column = partialInsight.columns[role];
let copySignalValue = (signalName: string) => {
if (partialInsight.signalValues && partialInsight.signalValues[signalName] && rolePrefs[column]) {
const signalValues = rolePrefs[column].signalValues || {};
signalValues[signalName] = partialInsight.signalValues[signalName];
rolePrefs[column].signalValues = signalValues;
}
};
switch (role) {
case 'color':
rolePrefs[column] = {
scheme: partialInsight.scheme,
colorBin: partialInsight.colorBin
};
copySignalValue(SandDance.constants.SignalNames.ColorBinCount);
break;
case 'x':
copySignalValue(SandDance.constants.SignalNames.XBins);
break;
}
}
}
}
}