export function initPrefs()

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;
                }
            }
        }
    }
}