diff --git a/frontend/src/metabase/visualizations/lib/series.ts b/frontend/src/metabase/visualizations/lib/series.ts index 0742bddee8f406a743c41786cc80f2aaf9710450..59a60c7304c5c8c0adcd8bcf5ca1f77d805f9d9e 100644 --- a/frontend/src/metabase/visualizations/lib/series.ts +++ b/frontend/src/metabase/visualizations/lib/series.ts @@ -1,11 +1,7 @@ import { assocIn } from "icepick"; -import { isNotNull } from "metabase/lib/types"; import { SERIES_SETTING_KEY } from "metabase/visualizations/shared/settings/series"; import type { VisualizationSettings, Card } from "metabase-types/api/card"; -import type { Series, TransformedSeries } from "metabase-types/api/dataset"; - -import { keyForSingleSeries } from "./settings/series"; export const updateSeriesColor = ( settings: VisualizationSettings, @@ -15,41 +11,6 @@ export const updateSeriesColor = ( return assocIn(settings, [SERIES_SETTING_KEY, seriesKey, "color"], color); }; -export const findSeriesByKey = (series: Series, key: string) => { - return series.find(singleSeries => keyForSingleSeries(singleSeries) === key); -}; - -export const getOrderedSeries = ( - series: Series, - settings: VisualizationSettings, - isReversed?: boolean, -) => { - if ( - (settings["graph.dimensions"] && - settings["graph.dimensions"].length <= 1) || - !settings["graph.series_order"] - ) { - return series; - } - - const orderedSeries = settings["graph.series_order"] - ?.filter(orderedItem => orderedItem.enabled) - .map(orderedItem => findSeriesByKey(series, orderedItem.key)) - .filter(isNotNull); - - if (isReversed) { - orderedSeries.reverse(); - } - - if ("_raw" in series) { - const transformedOrderedSeries = [...orderedSeries] as TransformedSeries; - transformedOrderedSeries._raw = series._raw; - return transformedOrderedSeries; - } - - return orderedSeries; -}; - export const getNameForCard = (card: Card) => { return card?.name || ""; }; diff --git a/frontend/src/metabase/visualizations/lib/series.unit.spec.ts b/frontend/src/metabase/visualizations/lib/series.unit.spec.ts deleted file mode 100644 index 61813f2edf37a8854f811018d283c739fd526e46..0000000000000000000000000000000000000000 --- a/frontend/src/metabase/visualizations/lib/series.unit.spec.ts +++ /dev/null @@ -1,81 +0,0 @@ -import _ from "underscore"; - -import type { TransformedSeries } from "metabase-types/api"; -import { - createMockSeriesOrderSetting, - createMockVisualizationSettings, -} from "metabase-types/api/mocks/card"; -import { createMockSeries } from "metabase-types/api/mocks/series"; - -import { getOrderedSeries } from "./series"; - -type setupSeriesOpts = { name: string; enabled?: boolean }[]; - -const setupSeries = (opts: setupSeriesOpts) => ({ - series: createMockSeries(opts), - settings: createMockVisualizationSettings({ - "graph.dimensions": ["one", "two"], - "graph.series_order": opts.map(opt => createMockSeriesOrderSetting(opt)), - }), -}); - -describe("series utils", () => { - describe("getOrderedSeries", () => { - it("should reorder the series", () => { - const { series, settings } = setupSeries([ - { name: "foo" }, - { name: "bar" }, - ]); - - const sortedSettings = { - ...settings, - "graph.series_order": - settings["graph.series_order"] && - _.sortBy(settings["graph.series_order"], "name"), - }; - - const orderedSeries = getOrderedSeries(series, sortedSettings); - expect(orderedSeries).toHaveLength(2); - - expect(orderedSeries[0].card.name).toBe("bar"); - expect(orderedSeries[1].card.name).toBe("foo"); - }); - - it("should filter hidden series", () => { - const { series, settings } = setupSeries([ - { name: "foo" }, - { name: "bar", enabled: false }, - ]); - - const orderedSeries = getOrderedSeries(series, settings); - expect(orderedSeries).toHaveLength(1); - }); - - it("should preserve _raw prop if present", () => { - const { series, settings } = setupSeries([ - { name: "foo" }, - { name: "bar", enabled: false }, - ]); - - const transformedSeries = [...series] as TransformedSeries; - transformedSeries._raw = createMockSeries([{ name: "foobar" }]); - - const orderedSeries = getOrderedSeries(transformedSeries, settings); - expect(orderedSeries).toHaveProperty("_raw"); - }); - - it("should reverse the order of a series when `isReversed` is `true`", () => { - const { series, settings } = setupSeries([ - { name: "foo" }, - { name: "bar" }, - { name: "baz" }, - ]); - - const stackedOrderedSeries = getOrderedSeries(series, settings, true); - expect(stackedOrderedSeries).toHaveLength(3); - expect(stackedOrderedSeries[0].card.name).toBe("baz"); - expect(stackedOrderedSeries[1].card.name).toBe("bar"); - expect(stackedOrderedSeries[2].card.name).toBe("foo"); - }); - }); -});