Skip to content
This repository has been archived by the owner on Dec 10, 2021. It is now read-only.

fix: Color consistency #1406

Merged
merged 12 commits into from
Nov 2, 2021
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export const datasourceAndVizType: ControlPanelSectionConfig = {

export const colorScheme: ControlPanelSectionConfig = {
label: t('Color Scheme'),
controlSetRows: [['color_scheme', 'label_colors']],
controlSetRows: [['color_scheme']],
};

export const annotations: ControlPanelSectionConfig = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -464,19 +464,6 @@ const color_scheme: SharedControlConfig<'ColorSchemeControl'> = {
schemes: () => categoricalSchemeRegistry.getMap(),
};

const label_colors: SharedControlConfig<'ColorMapControl'> = {
type: 'ColorMapControl',
label: t('Color Map'),
default: {},
renderTrigger: true,
mapStateToProps: ({
form_data: { color_namespace: colorNamespace, color_scheme: colorScheme },
}) => ({
colorNamespace,
colorScheme,
}),
};

const enableExploreDnd = isFeatureEnabled(FeatureFlag.ENABLE_EXPLORE_DRAG_AND_DROP);

const sharedControls = {
Expand Down Expand Up @@ -508,7 +495,6 @@ const sharedControls = {
x_axis_time_format,
adhoc_filters: enableExploreDnd ? dnd_adhoc_filters : adhoc_filters,
color_scheme,
label_colors,
series_columns: enableExploreDnd ? dndColumnsControl : columnsControl,
series_limit,
series_limit_metric: enableExploreDnd ? dnd_sort_by : sort_by,
Expand Down
1 change: 0 additions & 1 deletion packages/superset-ui-chart-controls/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ export type InternalControlType =
| 'BoundsControl'
| 'CheckboxControl'
| 'CollectionControl'
| 'ColorMapControl'
| 'ColorPickerControl'
| 'ColorSchemeControl'
| 'DatasourceControl'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,8 @@ export default class CategoricalColorNamespace {

getScale(schemeId?: string) {
const id = schemeId ?? getCategoricalSchemeRegistry().getDefaultKey() ?? '';
const scale = this.scales[id];
if (scale) {
return scale;
}
const scheme = getCategoricalSchemeRegistry().get(id);

const newScale = new CategoricalColorScale(scheme?.colors ?? [], this.forcedItems);
this.scales[id] = newScale;

return newScale;
}
Expand All @@ -44,6 +38,10 @@ export default class CategoricalColorNamespace {

return this;
}

resetColors() {
this.forcedItems = {};
}
}

const namespaces: {
Expand All @@ -67,6 +65,10 @@ export function getColor(value?: string, schemeId?: string, namespace?: string)
return getNamespace(namespace).getScale(schemeId).getColor(value);
}

/*
Returns a new scale instance within the same namespace.
Especially useful when a chart is booting for the first time
*/
export function getScale(scheme?: string, namespace?: string) {
return getNamespace(namespace).getScale(scheme);
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ class CategoricalColorScale extends ExtensibleFunction {

getColor(value?: string) {
const cleanedValue = stringifyAndTrim(value);

const parentColor = this.parentForcedColors && this.parentForcedColors[cleanedValue];
if (parentColor) {
return parentColor;
Expand All @@ -59,7 +58,6 @@ class CategoricalColorScale extends ExtensibleFunction {
*/
setColor(value: string, forcedColor: string) {
this.forcedColors[stringifyAndTrim(value)] = forcedColor;

return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,6 @@ describe('CategoricalColorNamespace', () => {
expect(scale).toBeDefined();
getCategoricalSchemeRegistry().setDefaultKey('testColors');
});
it('returns same scale if the scale with that name already exists in this namespace', () => {
geido marked this conversation as resolved.
Show resolved Hide resolved
const namespace = getNamespace('test-get-scale2');
const scale1 = namespace.getScale('testColors');
const scale2 = namespace.getScale('testColors2');
const scale3 = namespace.getScale('testColors2');
const scale4 = namespace.getScale('testColors');
expect(scale1).toBe(scale4);
expect(scale2).toBe(scale3);
geido marked this conversation as resolved.
Show resolved Hide resolved
});
});
describe('.setColor()', () => {
it('overwrites color for all CategoricalColorScales in this namespace', () => {
Expand Down Expand Up @@ -108,19 +99,15 @@ describe('CategoricalColorNamespace', () => {
const scale = getScale();
expect(scale).toBeDefined();
const scale2 = getNamespace().getScale();
expect(scale).toBe(scale2);
expect(scale2).toBeDefined();
});
it('getScale(scheme) returns a CategoricalColorScale with specified scheme in default namespace', () => {
const scale = getScale('testColors');
const scale = getNamespace().getScale('testColors');
expect(scale).toBeDefined();
const scale2 = getNamespace().getScale('testColors');
expect(scale).toBe(scale2);
});
it('getScale(scheme, namespace) returns a CategoricalColorScale with specified scheme in specified namespace', () => {
const scale = getScale('testColors', 'test-getScale');
const scale = getNamespace('test-getScale').getScale('testColors');
expect(scale).toBeDefined();
const scale2 = getNamespace('test-getScale').getScale('testColors');
expect(scale).toBe(scale2);
});
});
describe('static getColor()', () => {
Expand Down
5 changes: 1 addition & 4 deletions plugins/legacy-plugin-chart-chord/src/controlPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,7 @@ const config: ControlPanelConfig = {
{
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['y_axis_format', null],
['color_scheme', 'label_colors'],
],
controlSetRows: [['y_axis_format', null], ['color_scheme']],
},
],
controlOverrides: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'link_length',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ const config: ControlPanelConfig = {
expanded: true,
tabOverride: 'customize',
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'number_format',
Expand Down
2 changes: 1 addition & 1 deletion plugins/legacy-plugin-chart-rose/src/controlPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'number_format',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ const config: ControlPanelConfig = {
{
label: t('Chart Options'),
expanded: true,
controlSetRows: [['color_scheme', 'label_colors']],
controlSetRows: [['color_scheme']],
},
],
controlOverrides: {
Expand Down
2 changes: 1 addition & 1 deletion plugins/legacy-plugin-chart-sankey/src/controlPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ const config: ControlPanelConfig = {
{
label: t('Chart Options'),
expanded: true,
controlSetRows: [['color_scheme', 'label_colors']],
controlSetRows: [['color_scheme']],
},
],
};
Expand Down
2 changes: 1 addition & 1 deletion plugins/legacy-plugin-chart-treemap/src/controlPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ const config: ControlPanelConfig = {
expanded: true,
tabOverride: 'customize',
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'treemap_ratio',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ const config: ControlPanelConfig = {
},
},
],
['color_scheme', 'label_colors'],
['color_scheme'],
[richTooltip, showControls],
],
},
Expand Down
1 change: 0 additions & 1 deletion plugins/legacy-preset-chart-nvd3/src/Bar/controlPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ const config: ControlPanelConfig = {
expanded: true,
controlSetRows: [
['color_scheme'],
['label_colors'],
[showBrush],
[showLegend],
[showBarValue],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
tabOverride: 'customize',
controlSetRows: [
['color_scheme', 'label_colors'],
[showLegend, null],
],
controlSetRows: [['color_scheme'], [showLegend, null]],
},
{
label: t('X Axis'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const config: ControlPanelConfig = {
{
label: t('Chart Options'),
expanded: true,
controlSetRows: [['color_scheme', 'label_colors']],
controlSetRows: [['color_scheme']],
},
{
label: t('X Axis'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ const config: ControlPanelConfig = {
expanded: true,
controlSetRows: [
['color_scheme'],
['label_colors'],
[showLegend],
[showBarValue],
[barStacked],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const config: ControlPanelConfig = {
{
label: t('Chart Options'),
expanded: true,
controlSetRows: [['color_scheme', 'label_colors'], [showLegend], [xAxisFormat]],
controlSetRows: [['color_scheme'], [showLegend], [xAxisFormat]],
},
{
label: t('Y Axis 1'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ const config: ControlPanelConfig = {
expanded: true,
controlSetRows: [
['color_scheme'],
['label_colors'],
[showBrush],
[
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ const config: ControlPanelConfig = {
tabOverride: 'customize',
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'prefix_metric_with_slice_name',
Expand Down
2 changes: 1 addition & 1 deletion plugins/legacy-preset-chart-nvd3/src/Pie/controlPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ const config: ControlPanelConfig = {
},
},
],
['color_scheme', 'label_colors'],
['color_scheme'],
],
},
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
...createCustomizeSection(t('Query A'), ''),
...createCustomizeSection(t('Query B'), 'B'),
[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'seriesType',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
...showValueSection,
[
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
...showValueSection,
[
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'seriesType',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'seriesType',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ const config: ControlPanelConfig = {
},
},
],
['color_scheme', 'label_colors'],
['color_scheme'],
],
},
],
Expand Down
2 changes: 1 addition & 1 deletion plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const config: ControlPanelConfig = {
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme', 'label_colors'],
['color_scheme'],
[
{
name: 'whisker_options',
Expand Down