diff --git a/frontend/src/metabase/lib/colors.js b/frontend/src/metabase/lib/colors.js index 99b1be83f2eb4faf8f6c8733e9a28a9b64da98b3..7011a3c7bed5cb3e8dd0483dfcbd8df8817b7aa4 100644 --- a/frontend/src/metabase/lib/colors.js +++ b/frontend/src/metabase/lib/colors.js @@ -168,17 +168,23 @@ const PREFERRED_COLORS = { const PREFERRED_COLORS_MAP = new Map(); for (const [color, keys] of Object.entries(PREFERRED_COLORS)) { + // $FlowFixMe for (const key of keys) { PREFERRED_COLORS_MAP.set(key, color); } } -function getPreferredColor(key) { +type Key = string; + +function getPreferredColor(key: Key) { return PREFERRED_COLORS_MAP.get(key.toLowerCase()); } // returns a mapping of deterministically assigned colors to keys, optionally with a fixed value mapping -export function getColorsForValues(keys, existingAssignments = {}) { +export function getColorsForValues( + keys: string[], + existingAssignments: ?{ [key: Key]: ColorString } = {}, +) { const all = Object.values(harmony); const primaryTier = all.slice(0, 8); const secondaryTier = all.slice(8); @@ -192,6 +198,6 @@ export function getColorsForValues(keys, existingAssignments = {}) { } // conviennce for a single color (only use for visualizations with a single color) -export function getColorForValue(key) { +export function getColorForValue(key: Key) { return getColorsForValues([key])[key]; } diff --git a/frontend/src/metabase/qb/lib/actions.js b/frontend/src/metabase/qb/lib/actions.js index 3dd68dff57209d52ddbaef561b707f77ae7203a8..749efce15d494f6e211efecf21bc3f1e3195ddfa 100644 --- a/frontend/src/metabase/qb/lib/actions.js +++ b/frontend/src/metabase/qb/lib/actions.js @@ -400,7 +400,7 @@ const getLineAreaBarDisplay = (defaultDisplay, existingDisplay) => const guessVisualization = ( card: CardObject, tableMetadata: Table, - existingDisplay: string = null, + existingDisplay: ?string = null, ) => { const query = Card.getQuery(card); if (!query) { diff --git a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js index 1318fd366c2f9aa9fd2760a2a45862a6471cad92..32da2b8502234cce999761149630fa58b3fb53ff 100644 --- a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js +++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js @@ -687,7 +687,7 @@ export default function lineAreaBar( element: Element, props: LineAreaBarProps, ): DeregisterFunction { - const { onRender, chartType, isScalarSeries, settings, series } = props; + const { onRender, isScalarSeries, settings, series } = props; const warnings = {}; const warn = id => { diff --git a/frontend/src/metabase/visualizations/lib/settings/graph.js b/frontend/src/metabase/visualizations/lib/settings/graph.js index 3b0e84ba85c7b4fe512866c54062a27403a5baa8..63d1c76ee61d1b625e95cef7847539ae90aabbaf 100644 --- a/frontend/src/metabase/visualizations/lib/settings/graph.js +++ b/frontend/src/metabase/visualizations/lib/settings/graph.js @@ -1,4 +1,3 @@ -import { capitalize } from "metabase/lib/formatting"; import { isDimension, isMetric, @@ -9,7 +8,6 @@ import { import { t } from "c-3po"; import { columnsAreValid, - getCardColors, getFriendlyName, getChartTypeFromData, getColumnCardinality, diff --git a/frontend/src/metabase/visualizations/lib/utils.js b/frontend/src/metabase/visualizations/lib/utils.js index 7bf45b0a989ae299fdcaf2d706defd065b5bd50d..705498dab0388c448d58a9442b2d0c66540d110c 100644 --- a/frontend/src/metabase/visualizations/lib/utils.js +++ b/frontend/src/metabase/visualizations/lib/utils.js @@ -5,8 +5,6 @@ import d3 from "d3"; import { t } from "c-3po"; import crossfilter from "crossfilter"; -import { harmony } from "metabase/lib/colors"; - const SPLIT_AXIS_UNSPLIT_COST = -100; const SPLIT_AXIS_COST_FACTOR = 2; @@ -176,23 +174,6 @@ export function getFriendlyName(column) { } } -export function getCardColors(card) { - let settings = card.visualization_settings; - let chartColor, chartColorList; - if (card.display === "bar" && settings.bar) { - chartColor = settings.bar.color; - chartColorList = settings.bar.colors; - } else if (card.display !== "bar" && settings.line) { - chartColor = settings.line.lineColor; - chartColorList = settings.line.colors; - } - return _.uniq( - [chartColor || Object.values(harmony)[0]].concat( - chartColorList || Object.values(harmony), - ), - ); -} - export function isSameSeries(seriesA, seriesB) { return ( (seriesA && seriesA.length) === (seriesB && seriesB.length) && diff --git a/frontend/src/metabase/visualizations/visualizations/PieChart.jsx b/frontend/src/metabase/visualizations/visualizations/PieChart.jsx index ac95446f51bd525e358d879aeecd2fdedb010ebc..37eadf3244284daf89e4237229b88317b68b4abe 100644 --- a/frontend/src/metabase/visualizations/visualizations/PieChart.jsx +++ b/frontend/src/metabase/visualizations/visualizations/PieChart.jsx @@ -164,7 +164,6 @@ export default class PieChart extends Component { !PERCENT_REGEX.test(cols[metricIndex].name) && !PERCENT_REGEX.test(cols[metricIndex].display_name); - // $FlowFixMe let total: number = rows.reduce((sum, row) => sum + row[metricIndex], 0); let sliceThreshold = diff --git a/frontend/test/visualizations/components/LineAreaBarRenderer-bar.unit.spec.js b/frontend/test/visualizations/components/LineAreaBarRenderer-bar.unit.spec.js index 9f6d63747b3b856988baa0eab251e3d3faaa4743..d435450fd29819a94bed1331370ed9acf9585842 100644 --- a/frontend/test/visualizations/components/LineAreaBarRenderer-bar.unit.spec.js +++ b/frontend/test/visualizations/components/LineAreaBarRenderer-bar.unit.spec.js @@ -13,6 +13,7 @@ const DEFAULT_SETTINGS = { "graph.x_axis.axis_enabled": true, "graph.y_axis.axis_enabled": true, "graph.colors": ["#00FF00", "#FF0000"], + series: () => ({ display: "bar" }), }; describe("LineAreaBarRenderer-bar", () => { diff --git a/frontend/test/visualizations/components/LineAreaBarRenderer-scatter.unit.spec.js b/frontend/test/visualizations/components/LineAreaBarRenderer-scatter.unit.spec.js index 19960030a278cc012145ae15755866f5cffceb7d..a2b25cfa983c85ab7a3cda81e0bd4739b0b775b3 100644 --- a/frontend/test/visualizations/components/LineAreaBarRenderer-scatter.unit.spec.js +++ b/frontend/test/visualizations/components/LineAreaBarRenderer-scatter.unit.spec.js @@ -10,6 +10,7 @@ const DEFAULT_SETTINGS = { "graph.x_axis.axis_enabled": true, "graph.y_axis.axis_enabled": true, "graph.colors": ["#000000"], + series: () => ({ display: "scatter" }), }; describe("LineAreaBarRenderer-scatter", () => { @@ -35,6 +36,7 @@ describe("LineAreaBarRenderer-scatter", () => { chartType: "scatter", series: [ { + card: {}, data: { cols: [ NumberColumn({ display_name: "A", source: "breakout" }), @@ -64,6 +66,7 @@ describe("LineAreaBarRenderer-scatter", () => { chartType: "scatter", series: [ { + card: {}, data: { cols: [ NumberColumn({ display_name: "A", source: "breakout" }), diff --git a/frontend/test/visualizations/components/LineAreaBarRenderer.unit.spec.js b/frontend/test/visualizations/components/LineAreaBarRenderer.unit.spec.js index 0fa682ab7f8be475ea50c7e23db555da9229ffb1..929e165fb92b385c1754a6bcb11573f07898869b 100644 --- a/frontend/test/visualizations/components/LineAreaBarRenderer.unit.spec.js +++ b/frontend/test/visualizations/components/LineAreaBarRenderer.unit.spec.js @@ -226,6 +226,7 @@ describe("LineAreaBarRenderer", () => { settings: { "graph.show_goal": true, "graph.goal_value": 30, + "graph.goal_label": "Goal", }, }); @@ -243,6 +244,7 @@ describe("LineAreaBarRenderer", () => { settings: { "graph.show_goal": true, "graph.goal_value": goalValue, + "graph.goal_label": "Goal", }, onHoverChange: hover => { expect(hover.data[0].value).toEqual(goalValue); @@ -279,6 +281,7 @@ describe("LineAreaBarRenderer", () => { "graph.x_axis.scale": "timeseries", "graph.x_axis.axis_enabled": true, "graph.colors": ["#000000"], + series: () => ({ display: "line" }), ...settings, }, onHoverChange, @@ -302,6 +305,7 @@ describe("LineAreaBarRenderer", () => { "graph.x_axis.axis_enabled": true, "graph.x_axis.scale": "ordinal", "graph.x_axis._is_numeric": false, + series: () => ({ display: "bar" }), }, onHoverChange, });