Create the viz-core module (#80786)

This commit is contained in:
Fraser
2026-08-29 09:53:45 +12:00
committed by GitHub
parent 441cfa66ef
commit a0d5c5a0c7
628 changed files with 2503 additions and 2105 deletions

View File

@@ -16,7 +16,7 @@ skip =
frontend/src/metabase/querying/expressions/tokenizer/lezer.js,
frontend/src/metabase/query_builder/components/NativeQueryEditor/CodeMirrorEditor/language.ts,
frontend/src/metabase/static-viz/constants/char-sizes.ts,
frontend/src/metabase/visualizations/lib/mapping_codes.ts,
frontend/src/metabase/viz-core/lib/mapping_codes.ts,
frontend/*/mocks/*,
modules/drivers/mongo/src/metabase/driver/mongo/operators.clj,
src/metabase/analyze/classifiers/name.clj,

View File

@@ -73,6 +73,21 @@ jobs:
id: cypress-prep
uses: ./.github/actions/prepare-cypress
# esbuild resolves every import in the spec bundle's graph, even the ones tree shaking then drops.
# The cljs imports resolve into target/cljs_dev, so the compiled CLJS has to exist before Cypress runs.
# run-tests.yml compiles it in parallel with the uberjar build, so downloading is ~10x faster than compiling here.
- name: Download pre-built CLJS
id: prebuilt-cljs
uses: actions/download-artifact@v8
continue-on-error: true
with:
name: e2e-cljs-${{ github.event.pull_request.head.sha || github.sha }}
path: target/cljs_dev
- name: Compile CLJS
if: steps.prebuilt-cljs.outcome != 'success'
run: bun run build-pure:cljs
- name: Run Metabase
run: node e2e/runner/run_cypress_ci.js start
@@ -246,6 +261,13 @@ jobs:
id: cypress-prep
uses: ./.github/actions/prepare-cypress
# esbuild resolves every import in the spec bundle's graph, even the ones tree shaking then drops.
# The cljs imports resolve into target/cljs_dev, so the compiled CLJS has to exist before Cypress runs.
# The checked-out tree is the previous commit, which the current run's CLJS artifact was not built from,
# so compile from source instead of downloading.
- name: Compile CLJS
run: bun run build-pure:cljs
- name: Run Metabase
run: node e2e/runner/run_cypress_ci.js start

View File

@@ -419,6 +419,21 @@ jobs:
id: cypress-prep
uses: ./.github/actions/prepare-cypress
# esbuild resolves every import in the spec bundle's graph, even the ones tree shaking then drops.
# The cljs imports resolve into target/cljs_dev, so the compiled CLJS has to exist before Cypress runs.
# run-tests.yml compiles it in parallel with the uberjar build, so downloading is ~10x faster than compiling here.
- name: Download pre-built CLJS
id: prebuilt-cljs
uses: actions/download-artifact@v8
continue-on-error: true
with:
name: e2e-cljs-${{ github.event.pull_request.head.sha || github.sha }}
path: target/cljs_dev
- name: Compile CLJS
if: steps.prebuilt-cljs.outcome != 'success'
run: bun run build-pure:cljs
- name: Run Metabase
run: node e2e/runner/run_cypress_ci.js start

View File

@@ -28,8 +28,10 @@ import { EmotionCacheProvider } from "metabase/ui/components/theme/EmotionCacheP
import { Global, css, useTheme } from "@emotion/react";
import { loadVisualizationComponents } from "metabase/visualizations";
import { getSaveDomImageStyles } from "metabase/visualizations/lib/image-exports";
import {
getSaveDomImageStyles,
loadVisualizationComponents,
} from "metabase/viz-core";
import { initialize, mswLoader } from "msw-storybook-addon";

View File

@@ -1,8 +1,10 @@
import { popover } from "e2e/support/helpers/e2e-ui-elements-helpers";
import { color as getColor } from "metabase/ui/colors";
import { CHART_STYLE } from "metabase/visualizations/echarts/cartesian/constants/style.ts";
import { GOAL_LINE_DASH } from "metabase/visualizations/echarts/cartesian/option/goal-line.ts";
import { TREND_LINE_DASH } from "metabase/visualizations/echarts/cartesian/option/trend-line.ts";
import {
CHART_STYLE,
GOAL_LINE_DASH,
TREND_LINE_DASH,
} from "metabase/viz-core";
import { isFixedPositionElementVisible } from "./e2e-element-visibility-helpers";

View File

@@ -7,14 +7,14 @@ import AdminS from "metabase/css/admin.module.css";
import CS from "metabase/css/core/index.css";
import { Box, Checkbox, Icon } from "metabase/ui";
import { displayNameForColumn, formatValue } from "metabase/value-formatting";
import { registerVisualization } from "metabase/visualizations/index";
import { isColumnRightAligned } from "metabase/visualizations/lib/table";
import type {
AuditTableSorting,
ComputedVisualizationSettings,
VisualizationDefinition,
} from "metabase/visualizations/types";
import type { AuditTableSorting } from "metabase/visualizations/types";
import { TABLE_DEFINITION } from "metabase/visualizations/visualizations/Table/definition";
import {
type ComputedVisualizationSettings,
type VisualizationDefinition,
isColumnRightAligned,
registerVisualization,
} from "metabase/viz-core";
import type { ClickObject } from "metabase-lib";
import type { DatasetColumn, RowValues, Series } from "metabase-types/api";

View File

@@ -4,7 +4,7 @@ import type { ComponentProps } from "react";
import { renderWithProviders, screen } from "__support__/ui";
import { delay } from "__support__/utils";
import Visualization from "metabase/visualizations/components/Visualization";
import type { ComputedVisualizationSettings } from "metabase/visualizations/types";
import type { ComputedVisualizationSettings } from "metabase/viz-core";
import type { RowValues, Series } from "metabase-types/api";
import {
createMockColumn,

View File

@@ -1,6 +1,6 @@
import { screen, waitFor } from "__support__/ui";
import { setupForContentTranslationTest } from "metabase/content-translation/test-utils";
import type { HoveredObject } from "metabase/visualizations/types";
import type { HoveredObject } from "metabase/viz-core";
import { createMockColumn, createMockSeries } from "metabase-types/api/mocks";
import {

View File

@@ -1,4 +1,4 @@
import type { HoveredObject } from "metabase/visualizations/types";
import type { HoveredObject } from "metabase/viz-core";
import type { DatasetColumn, DictionaryArray } from "metabase-types/api";
import { createMockColumn, createMockSeries } from "metabase-types/api/mocks";

View File

@@ -5,8 +5,7 @@ import _ from "underscore";
import { useLocale } from "metabase/common/hooks";
import type { ContentTranslationFunction } from "metabase/content-translation/types";
import { isCartesianChart } from "metabase/visualizations";
import type { HoveredObject } from "metabase/visualizations/types";
import { type HoveredObject, isCartesianChart } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import type {
DictionaryArray,

View File

@@ -1,12 +1,12 @@
import type { CustomVisualization } from "custom-viz";
import type { ComponentType } from "react";
import { columnSettings } from "metabase/visualizations/lib/settings/column";
import type {
Visualization,
VisualizationPassThroughProps,
VisualizationProps,
} from "metabase/visualizations/types/visualization";
import { columnSettings } from "metabase/viz-core";
import type {
CustomVizPluginRuntime,
VisualizationDisplay,

View File

@@ -22,13 +22,13 @@ import type { DispatchFn } from "metabase/redux/hooks";
import { getSubpathSafeUrl } from "metabase/urls";
import { measureText } from "metabase/utils/measure-text";
import { retry } from "metabase/utils/retry";
import { registerVisualization, visualizations } from "metabase/visualizations";
import {
getCustomPluginIdentifier,
getPluginAssetUrl,
} from "metabase/visualizations/custom-visualizations/custom-viz-utils";
import { useBrowserRenderingContext } from "metabase/visualizations/hooks/use-browser-rendering-context";
import type { VisualizationProps } from "metabase/visualizations/types/visualization";
import { registerVisualization, visualizations } from "metabase/viz-core";
import { useListCustomVizPluginsQuery } from "metabase-enterprise/api";
import { customVizPluginApi } from "metabase-enterprise/api/custom-viz-plugin";
import type {

View File

@@ -1,6 +1,6 @@
import createVirtualEnvironment from "@locker/near-membrane-dom";
import { setChartExportIframeGrant } from "metabase/visualizations/lib/chart-export-iframe-grant";
import { setChartExportIframeGrant } from "metabase/viz-core";
import { blockHostRealmXhr } from "./allowed-hosts";
import { makeDistortionCallback } from "./distortions";

View File

@@ -2,7 +2,7 @@ import { c, msgid, ngettext, t } from "ttag";
import * as Urls from "metabase/urls";
import type { NamedUser } from "metabase/utils/user";
import { visualizations } from "metabase/visualizations";
import { visualizations } from "metabase/viz-core";
import type {
AnalysisFindingError,
AnalysisFindingErrorType,

View File

@@ -12,7 +12,7 @@ import {
isSpinnerVisible,
} from "metabase/status/components/utils/status";
import useStatusVisibility from "metabase/status/hooks/use-status-visibility";
import { visualizations } from "metabase/visualizations";
import { visualizations } from "metabase/viz-core";
import {
useGetSourceReplacementRunQuery,
useListSourceReplacementRunsQuery,

View File

@@ -13,7 +13,7 @@ import { getUserIsAdmin } from "metabase/current-user";
import { useSelector } from "metabase/redux";
import { useLocation, useParams } from "metabase/router";
import { Box, Flex, Stack, Text } from "metabase/ui";
import { extractRemappedColumns } from "metabase/visualizations";
import { extractRemappedColumns } from "metabase/viz-core";
import type { TableEditingActionScope } from "../api/types";
import { TableHeader } from "../common/TableHeader";

View File

@@ -9,6 +9,9 @@ const SIDE_EFFECT_FREE_PATHS = [
"frontend/src/metabase/querying/expressions",
"frontend/src/metabase/ui",
"frontend/src/metabase/query_builder",
// The chart compute layer: static-viz imports a few helpers from its barrel,
// so without this the GraalJS bundle would pull in every echarts model too.
"frontend/src/metabase/viz-core",
// Trailing separator: rspack prefix-matches `include`, so a bare directory path would also claim a sibling like `router-utils.ts`.
].map((dir) => path.join(REPO_ROOT, dir) + path.sep);

View File

@@ -69,6 +69,8 @@ const elements = [
name: "value-formatting",
enforcePublicApi: true,
}),
// static-viz runs this in GraalJS, so it stays free of the React and redux side of visualizations.
createElement({ type: "basic", name: "viz-core", enforcePublicApi: true }),
// shared
createElement({ type: "feature", name: "account" }),
@@ -442,6 +444,11 @@ const baseRules = [
from: ["basic/value-formatting"],
allow: ["basic/mlv1"],
},
// mlv1 for the column predicates, value-formatting for formatValue, ui for the colour utilities and theme types.
{
from: ["basic/viz-core"],
allow: ["basic/mlv1", "basic/value-formatting", "basic/ui"],
},
{
from: ["shared/*"],
allow: ["lib/*", "basic/*", "shared/*"],

View File

@@ -8,7 +8,7 @@ import { forwardRef } from "react";
import { isEmbeddingSdk } from "metabase/embedding-sdk/config";
import { useComputedColorScheme } from "metabase/ui";
import { getSaveDomImageStyles } from "metabase/visualizations/lib/image-exports";
import { getSaveDomImageStyles } from "metabase/viz-core";
import S from "./PublicComponentStylesWrapper.style.css";

View File

@@ -4,11 +4,8 @@ import { t } from "ttag";
import type { IconName } from "metabase/embedding-sdk/types/icon";
import { Combobox, Flex, Icon, Text, useCombobox } from "metabase/ui";
import { isNotNull } from "metabase/utils/types";
import {
getIconForVisualizationType,
visualizations,
} from "metabase/visualizations";
import type { Visualization } from "metabase/visualizations/types";
import { getIconForVisualizationType, visualizations } from "metabase/viz-core";
import type { CardDisplayType } from "metabase-types/api";
import { useQuestionVisualization } from "../../hooks/use-question-visualization";

View File

@@ -8,7 +8,7 @@ import {
} from "metabase/common/components/QuestionDownloadWidget";
import { useEmbeddingEntityContext } from "metabase/embedding/context";
import type { StackProps } from "metabase/ui";
import { getComputedSettingsForSeries } from "metabase/visualizations/lib/settings/visualization";
import { getComputedSettingsForSeries } from "metabase/viz-core";
import { useSdkQuestionContext } from "../../context";

View File

@@ -5,7 +5,7 @@ import {
BaseChartSettings,
useChartSettingsState,
} from "metabase/visualizations/components/ChartSettings";
import { getSettingsWidgetsForSeries } from "metabase/visualizations/lib/widgets";
import { getSettingsWidgetsForSeries } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import type { VisualizationSettings } from "metabase-types/api";

View File

@@ -2,7 +2,7 @@ import { useEffect, useMemo, useState } from "react";
import { logUnavailableCustomVizMessage } from "embedding-sdk-bundle/lib/log-unavailable-custom-viz";
import { PLUGIN_CUSTOM_VIZ } from "metabase/plugins";
import { getSensibleVisualizations } from "metabase/visualizations/lib/sensibility";
import { getSensibleVisualizations } from "metabase/viz-core";
import type { CardDisplayType } from "metabase-types/api";
import { useSdkQuestionContext } from "../context";

View File

@@ -1,4 +1,4 @@
import { getDefaultSize } from "metabase/visualizations/shared/utils/sizes";
import { getDefaultSize } from "metabase/viz-core";
import type { VisualizationDisplay } from "metabase-types/api";
/**

View File

@@ -10,7 +10,7 @@ import type {
SqlParameterValues,
} from "embedding-sdk-bundle/types/question";
import { transformSdkQuestion } from "metabase/embedding-sdk/lib/transform-question";
import { createRawSeries } from "metabase/visualizations/lib/series";
import { createRawSeries } from "metabase/viz-core";
import type { DatasetColumn, RowValues } from "metabase-types/api";
export type QueryQuestionParams = {

View File

@@ -8,7 +8,7 @@ import { loadCard } from "metabase/query_builder";
import { loadMetadataForCard } from "metabase/questions/actions";
import type { Dispatch, GetState } from "metabase/redux/store";
import { getMetadata } from "metabase/selectors/metadata";
import { getCardAfterVisualizationClick } from "metabase/visualizations/lib/utils";
import { getCardAfterVisualizationClick } from "metabase/viz-core";
import Question from "metabase-lib/v1/Question";
import type { ParameterValuesMap } from "metabase-types/api";
import type { EntityToken } from "metabase-types/api/entity";

View File

@@ -3,8 +3,7 @@ import type { SdkQuestionState } from "embedding-sdk-bundle/types/question";
import { PLUGIN_CUSTOM_VIZ } from "metabase/plugins";
import { runQuestionQuery } from "metabase/querying/run-query";
import type { Dispatch } from "metabase/redux/store";
import { visualizations } from "metabase/visualizations";
import { getSensibleDisplays } from "metabase/visualizations/lib/sensibility";
import { getSensibleDisplays, visualizations } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import type {
DatasetData,

View File

@@ -8,7 +8,7 @@ import {
import { loadMetadataForCard } from "metabase/questions/actions";
import type { Dispatch, GetState } from "metabase/redux/store";
import { getMetadata } from "metabase/selectors/metadata";
import { createRawSeries } from "metabase/visualizations/lib/series";
import { createRawSeries } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import Question from "metabase-lib/v1/Question";
import type { ParameterValuesMap } from "metabase-types/api";

View File

@@ -5,7 +5,7 @@ import {
type MetabaseColor,
type MetabaseTheme,
} from "metabase/embedding-sdk/theme";
import { getSizeInPx } from "metabase/visualizations/shared/utils/size-in-px";
import { getSizeInPx } from "metabase/viz-core";
import { useDefaultEmbeddingThemeSettings } from "../../hooks";

View File

@@ -2,7 +2,7 @@ import type { Feature, FeatureCollection } from "geojson";
import { t } from "ttag";
import { Api } from "metabase/api";
import { computeMinimalBoundsCoordinates } from "metabase/visualizations/lib/mapping";
import { computeMinimalBoundsCoordinates } from "metabase/viz-core";
import type { GeoJSONData } from "metabase-types/api";
export const geojsonApi = Api.injectEndpoints({

View File

@@ -15,7 +15,7 @@ import remarkGfm from "remark-gfm";
import type { ColorName } from "metabase/ui/colors/types";
import { color } from "metabase/ui/utils/colors";
import { DATA_IMAGE_URI_PATTERN } from "metabase/visualizations/lib/utils";
import { DATA_IMAGE_URI_PATTERN } from "metabase/viz-core";
import S from "./Markdown.module.css";

View File

@@ -19,7 +19,7 @@ import {
Text,
Title,
} from "metabase/ui";
import { canSavePng } from "metabase/visualizations";
import { canSavePng } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import type {
Dataset,

View File

@@ -17,8 +17,8 @@ import {
getPositionForNewDashCard,
} from "metabase/utils/dashboard_grid";
import { checkNotNull } from "metabase/utils/types";
import { getRegisteredDefaultSize } from "metabase/visualizations";
import { getCardIdsFromColumnValueMappings } from "metabase/visualizer/utils";
import { getRegisteredDefaultSize } from "metabase/viz-core";
import type {
Card,
CardId,

View File

@@ -3,7 +3,7 @@ import _ from "underscore";
import { getStructuredQuestionUrlWithParameters } from "metabase/dashboard/click-behavior/question-url";
import type { StoreDashboard } from "metabase/redux/store";
import * as Urls from "metabase/urls";
import { getCardAfterVisualizationClick } from "metabase/visualizations/lib/utils";
import { getCardAfterVisualizationClick } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import Question from "metabase-lib/v1/Question";
import type Metadata from "metabase-lib/v1/metadata/Metadata";

View File

@@ -3,7 +3,7 @@ import _ from "underscore";
import type { StoreDashboard, StoreDashcard } from "metabase/redux/store";
import { isActionDashCard } from "metabase/utils/dashboard";
import { getIframeDomainName } from "metabase/visualizations/lib/iframe";
import { getIframeDomainName } from "metabase/viz-core";
import type {
DashCardId,
Dashboard,

View File

@@ -12,10 +12,8 @@ import {
getDataFromClicked,
renderLinkURLForClick,
} from "metabase/value-formatting";
import type {
ClickObject,
ComputedVisualizationSettings,
} from "metabase/visualizations/types";
import type { ClickObject } from "metabase/visualizations/types";
import type { ComputedVisualizationSettings } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import Question from "metabase-lib/v1/Question";
import type { ParameterWithTarget } from "metabase-lib/v1/parameters/types";

View File

@@ -1,4 +1,4 @@
import type { ComputedVisualizationSettings } from "metabase/visualizations/types";
import type { ComputedVisualizationSettings } from "metabase/viz-core";
import Question from "metabase-lib/v1/Question";
import type { ClickBehavior } from "metabase-types/api";
import {

View File

@@ -1,9 +1,7 @@
import type { ClickBehaviorExtraData } from "metabase/dashboard/utils/click-behavior";
import type { ValueAndColumnForColumnNameDate } from "metabase/value-formatting";
import type {
ClickObject,
ComputedVisualizationSettings,
} from "metabase/visualizations/types";
import type { ClickObject } from "metabase/visualizations/types";
import type { ComputedVisualizationSettings } from "metabase/viz-core";
import type {
Card,
CardId,

View File

@@ -1,10 +1,10 @@
import { t } from "ttag";
import {
type VisualizationDefinition,
getDefaultSize,
getMinSize,
} from "metabase/visualizations/shared/utils/sizes";
import type { VisualizationDefinition } from "metabase/visualizations/types";
} from "metabase/viz-core";
import type { VisualizationSettings } from "metabase-types/api";
import { Action } from "./Action";

View File

@@ -25,14 +25,16 @@ import type { VisualizerVizDefinitionWithColumns } from "metabase/redux/store/vi
import { getMetadata } from "metabase/selectors/metadata";
import { Box } from "metabase/ui";
import { isQuestionCard, isQuestionDashCard } from "metabase/utils/dashboard";
import { getVisualizationRaw } from "metabase/visualizations";
import { extendCardWithDashcardSettings } from "metabase/visualizations/lib/settings/typed-utils";
import type { CardSlownessStatus } from "metabase/visualizations/types";
import {
getInitialStateForCardDataSource,
getInitialStateForMultipleSeries,
getInitialStateForVisualizerCard,
} from "metabase/visualizer/utils";
import {
extendCardWithDashcardSettings,
getVisualizationRaw,
} from "metabase/viz-core";
import Question from "metabase-lib/v1/Question";
import type {
Card,

View File

@@ -16,11 +16,11 @@ import {
isQuestionDashCard,
isVirtualDashCard,
} from "metabase/utils/dashboard";
import { getVisualizationRaw } from "metabase/visualizations";
import {
isDisabledForVisualizer,
isVisualizerSupportedVisualization,
} from "metabase/visualizer/utils";
import { getVisualizationRaw } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import type {
DashCardId,

View File

@@ -21,7 +21,7 @@ import type { State } from "metabase/redux/store";
import { getIsRecentlyAutoConnectedDashcard } from "metabase/redux/undo";
import { Box, Flex, Icon, Text, Transition } from "metabase/ui";
import { isQuestionDashCard } from "metabase/utils/dashboard";
import { getMobileHeight } from "metabase/visualizations/shared/utils/sizes";
import { getMobileHeight } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import { isDateParameter } from "metabase-lib/v1/parameters/utils/parameter-type";
import { isParameterVariableTarget } from "metabase-lib/v1/parameters/utils/targets";

View File

@@ -28,7 +28,6 @@ import { Flex, Group, type IconProps, Menu, Title } from "metabase/ui";
import { parseSearchQuery } from "metabase/utils/browser";
import { isVirtualDashCard } from "metabase/utils/dashboard";
import { measureTextWidth } from "metabase/utils/measure-text";
import { getVisualizationRaw, isCartesianChart } from "metabase/visualizations";
import Visualization from "metabase/visualizations/components/Visualization";
import { DashCardLoadingView } from "metabase/visualizations/components/Visualization/LoadingView/DashCardLoadingView";
import type { LoadingViewProps } from "metabase/visualizations/components/Visualization/LoadingView/LoadingView";
@@ -36,8 +35,6 @@ import {
LEGEND_LABEL_FONT_SIZE,
LEGEND_LABEL_FONT_WEIGHT,
} from "metabase/visualizations/components/legend/LegendCaption";
import { extendCardWithDashcardSettings } from "metabase/visualizations/lib/settings/typed-utils";
import { getComputedSettingsForSeries } from "metabase/visualizations/lib/settings/visualization";
import type {
CardSlownessStatus,
ClickObject,
@@ -50,6 +47,12 @@ import {
splitVisualizerSeries,
} from "metabase/visualizer/utils";
import { getVisualizationColumns } from "metabase/visualizer/utils/get-visualization-columns";
import {
extendCardWithDashcardSettings,
getComputedSettingsForSeries,
getVisualizationRaw,
isCartesianChart,
} from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import type Metadata from "metabase-lib/v1/metadata/Metadata";
import type {

View File

@@ -3,15 +3,17 @@ import _ from "underscore";
import { useDashboardContext } from "metabase/dashboard/context";
import { Divider, Flex } from "metabase/ui";
import { getVisualizationRaw } from "metabase/visualizations";
import { BaseChartSettings } from "metabase/visualizations/components/ChartSettings/BaseChartSettings";
import { ChartSettingsVisualization } from "metabase/visualizations/components/ChartSettings/ChartSettingsVisualization";
import {
useChartSettingsState,
useSettingsWidgets,
} from "metabase/visualizations/components/ChartSettings/hooks";
import { getClickBehaviorSettings } from "metabase/visualizations/lib/settings";
import { sanitizeDashcardSettings } from "metabase/visualizations/lib/settings/typed-utils";
import {
getClickBehaviorSettings,
getVisualizationRaw,
sanitizeDashcardSettings,
} from "metabase/viz-core";
import type { VisualizationSettings } from "metabase-types/api";
import type { DashboardChartSettingsProps } from "./types";

View File

@@ -7,7 +7,7 @@ import CS from "metabase/css/core/index.css";
import { useDispatch, useSelector } from "metabase/redux";
import { Flex, Group, Icon, Select, Text } from "metabase/ui";
import { isQuestionDashCard } from "metabase/utils/dashboard";
import { visualizations } from "metabase/visualizations";
import { visualizations } from "metabase/viz-core";
import type {
BaseDashboardCard,
IconName,

View File

@@ -1,6 +1,6 @@
import _ from "underscore";
import { getMobileHeight } from "metabase/visualizations/shared/utils/sizes";
import { getMobileHeight } from "metabase/viz-core";
import type { BaseDashboardCard } from "metabase-types/api";
function sumVerticalSpace(layout: DashcardLayout[]) {

View File

@@ -1,4 +1,4 @@
import { MOBILE_DEFAULT_CARD_HEIGHT } from "metabase/visualizations/shared/utils/sizes";
import { MOBILE_DEFAULT_CARD_HEIGHT } from "metabase/viz-core";
import type { VisualizationDisplay } from "metabase-types/api";
import {
createMockCard,

View File

@@ -1,7 +1,7 @@
import _ from "underscore";
import { DEFAULT_CARD_SIZE } from "metabase/utils/dashboard_grid";
import { getVisualizationRaw } from "metabase/visualizations";
import { getVisualizationRaw } from "metabase/viz-core";
import type {
BaseDashboardCard,
DashboardTabId,

View File

@@ -31,7 +31,7 @@ import { isQuestionCard, isQuestionDashCard } from "metabase/utils/dashboard";
import { getPathnameWithoutSubPath } from "metabase/utils/dom";
import { selectIsWithinIframe } from "metabase/utils/iframe";
import { isNotNull } from "metabase/utils/types";
import { extendCardWithDashcardSettings } from "metabase/visualizations/lib/settings/typed-utils";
import { extendCardWithDashcardSettings } from "metabase/viz-core";
import Question from "metabase-lib/v1/Question";
import {
getValuePopulatedParameters as _getValuePopulatedParameters,

View File

@@ -10,11 +10,11 @@ import {
} from "metabase/utils/dashboard";
import { isStaticEmbeddingEntityLoadingError } from "metabase/utils/errors/is-static-embedding-entity-loading-error";
import type { StaticEmbeddingEntityError } from "metabase/utils/errors/types";
import { hasNoResults } from "metabase/visualizations/lib/no-results";
import {
getDatasetPermissionError,
getGenericErrorMessage,
} from "metabase/visualizations/lib/errors";
import { hasNoResults } from "metabase/visualizations/lib/no-results";
} from "metabase/viz-core";
import Question from "metabase-lib/v1/Question";
import type { UiParameter } from "metabase-lib/v1/parameters/types";
import {

View File

@@ -9,10 +9,8 @@ import {
import { replaceCard } from "metabase/dashboard/actions";
import { useDispatch } from "metabase/redux";
import { Button, Flex } from "metabase/ui";
import type {
VisualizationDefinition,
VisualizationProps,
} from "metabase/visualizations/types";
import type { VisualizationProps } from "metabase/visualizations/types";
import type { VisualizationDefinition } from "metabase/viz-core";
import type { Dashboard, VirtualDashboardCard } from "metabase-types/api";
type Props = VisualizationProps & {

View File

@@ -1,10 +1,10 @@
import { t } from "ttag";
import {
type VisualizationDefinition,
getDefaultSize,
getMinSize,
} from "metabase/visualizations/shared/utils/sizes";
import type { VisualizationDefinition } from "metabase/visualizations/types";
} from "metabase/viz-core";
import { Heading } from "./Heading";

View File

@@ -14,7 +14,7 @@ import { Box, Button, Group, Icon, Stack, Text } from "metabase/ui";
import {
getAllowedIframeAttributes,
isAllowedIframeUrl,
} from "metabase/visualizations/lib/iframe";
} from "metabase/viz-core";
import type {
Dashboard,
VirtualDashboardCard,

View File

@@ -1,10 +1,10 @@
import { t } from "ttag";
import {
type VisualizationDefinition,
getDefaultSize,
getMinSize,
} from "metabase/visualizations/shared/utils/sizes";
import type { VisualizationDefinition } from "metabase/visualizations/types";
} from "metabase/viz-core";
export const settings: VisualizationDefinition = {
getUiName: () => "iframe",

View File

@@ -1,10 +1,10 @@
import { t } from "ttag";
import {
type VisualizationDefinition,
getDefaultSize,
getMinSize,
} from "metabase/visualizations/shared/utils/sizes";
import type { VisualizationDefinition } from "metabase/visualizations/types";
} from "metabase/viz-core";
export const settings: VisualizationDefinition = {
getUiName: () => "Link",

View File

@@ -16,8 +16,10 @@ import { getParameterValues } from "metabase/dashboard/selectors";
import { fillParametersInText } from "metabase/dashboard/visualizations/parameter-substitution";
import { useDispatch, useSelector } from "metabase/redux";
import { isEmpty } from "metabase/utils/validate";
import { DATA_IMAGE_URI_PATTERN } from "metabase/visualizations/lib/utils";
import type { VisualizationGridSize } from "metabase/visualizations/types";
import {
DATA_IMAGE_URI_PATTERN,
type VisualizationGridSize,
} from "metabase/viz-core";
import type {
Dashboard,
VirtualDashboardCard,

View File

@@ -1,10 +1,10 @@
import { t } from "ttag";
import {
type VisualizationDefinition,
getDefaultSize,
getMinSize,
} from "metabase/visualizations/shared/utils/sizes";
import type { VisualizationDefinition } from "metabase/visualizations/types";
} from "metabase/viz-core";
import { Text } from "./Text";

View File

@@ -1,5 +1,5 @@
import ActionViz from "metabase/dashboard/components/ActionViz";
import { registerVisualization } from "metabase/visualizations";
import { registerVisualization } from "metabase/viz-core";
import { DashCardPlaceholder } from "./DashCardPlaceholder";
import { Heading } from "./Heading";

View File

@@ -1,4 +1,4 @@
import { extractRemappedColumns } from "metabase/visualizations";
import { extractRemappedColumns } from "metabase/viz-core";
import { getQuestionIdFromVirtualTableId } from "metabase-lib/v1/metadata/utils/saved-questions";
import { findColumnIndexesForColumnSettings } from "metabase-lib/v1/queries/utils/dataset";
import type {

View File

@@ -18,7 +18,7 @@ import { useParams } from "metabase/router";
import { getIsNavbarOpen } from "metabase/selectors/app";
import { getMetadata } from "metabase/selectors/metadata";
import * as Urls from "metabase/urls";
import { extractRemappedColumns } from "metabase/visualizations";
import { extractRemappedColumns } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import { getQuestionVirtualTableId } from "metabase-lib/v1/metadata/utils/saved-questions";

View File

@@ -20,7 +20,7 @@ import { closeNavbar, setDetailView } from "metabase/redux/app";
import { useParams } from "metabase/router";
import { getIsNavbarOpen } from "metabase/selectors/app";
import { getMetadata } from "metabase/selectors/metadata";
import { extractRemappedColumns } from "metabase/visualizations";
import { extractRemappedColumns } from "metabase/viz-core";
import * as Lib from "metabase-lib";
export function TableDetailPage() {

View File

@@ -1,12 +1,12 @@
import type { ContentTranslationFunction } from "metabase/content-translation/types";
import { formatValue } from "metabase/value-formatting";
import { getComputedSettings } from "metabase/visualizations/lib/settings";
import {
getComputedSettings,
getComputedSettingsForSeries,
getGlobalSettingsForColumn,
getSettingDefinitionsForColumn,
getTitleForColumn,
} from "metabase/visualizations/lib/settings/column";
import { getComputedSettingsForSeries } from "metabase/visualizations/lib/settings/visualization";
} from "metabase/viz-core";
import * as Lib from "metabase-lib";
import type Metadata from "metabase-lib/v1/metadata/Metadata";
import {

View File

@@ -9,9 +9,9 @@ import {
} from "metabase/rich_text_editing/tiptap/EditorHost";
import type {
ClickActionsMode,
HighlightedObject,
QueryClickActionsMode,
} from "metabase/visualizations/types";
import type { HighlightedObject } from "metabase/viz-core";
import type { Series } from "metabase-types/api";
import { navigateToCardFromDocument } from "../../actions";

View File

@@ -12,9 +12,9 @@ import {
import { MetabaseReduxProvider } from "metabase/redux";
import type { State } from "metabase/redux/store";
import { createMockState } from "metabase/redux/store/mocks";
import { registerVisualization } from "metabase/visualizations";
import { LineChart } from "metabase/visualizations/visualizations/LineChart";
import { PieChart } from "metabase/visualizations/visualizations/PieChart";
import { registerVisualization } from "metabase/viz-core";
import type { DatasetData } from "metabase-types/api";
import {
createMockCard,

View File

@@ -6,7 +6,7 @@ import { useListTimelinesQuery } from "metabase/api";
import { useDispatch, useSelector } from "metabase/redux";
import { TimelineSidebar } from "metabase/timelines/questions/components/TimelineSidebar";
import { Box, Loader, Stack, Text } from "metabase/ui";
import { getTimelineEventSettings } from "metabase/visualizations/lib/settings/timelineEvents";
import { getTimelineEventSettings } from "metabase/viz-core";
import type {
CollectionId,
TimelineEvent,

View File

@@ -48,16 +48,16 @@ import {
TextInput,
} from "metabase/ui";
import * as Urls from "metabase/urls";
import {
extractRemappings,
getVisualizationTransformed,
} from "metabase/visualizations";
import Visualization from "metabase/visualizations/components/Visualization";
import { ErrorView } from "metabase/visualizations/components/Visualization/ErrorView/ErrorView";
import ChartSkeleton from "metabase/visualizations/components/skeletons/ChartSkeleton";
import { getDatasetError } from "metabase/visualizations/lib/errors";
import { isTimeseries } from "metabase/visualizations/lib/renderer_utils";
import { getComputedSettingsForSeries } from "metabase/visualizations/lib/settings/visualization";
import {
extractRemappings,
getComputedSettingsForSeries,
getDatasetError,
getVisualizationTransformed,
isTimeseries,
} from "metabase/viz-core";
import Question from "metabase-lib/v1/Question";
import type {
CardDisplayType,

View File

@@ -15,7 +15,7 @@ import { Box, Button, Flex, Loader, Modal, Stack, Text } from "metabase/ui";
import { isMac } from "metabase/utils/browser";
import Visualization from "metabase/visualizations/components/Visualization";
import NoResultsView from "metabase/visualizations/components/Visualization/NoResultsView/NoResultsView";
import { createRawSeries } from "metabase/visualizations/lib/series";
import { createRawSeries } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import Question from "metabase-lib/v1/Question";
import type NativeQuery from "metabase-lib/v1/queries/NativeQuery";

View File

@@ -3,9 +3,9 @@ import { useMemo } from "react";
import { isNotNull } from "metabase/utils/types";
import {
getIconForVisualizationType,
getSensibleVisualizations,
visualizations,
} from "metabase/visualizations";
import { getSensibleVisualizations } from "metabase/visualizations/lib/sensibility";
} from "metabase/viz-core";
import type {
Dataset,
IconName,

View File

@@ -1,6 +1,6 @@
import { useMemo, useRef } from "react";
import { getSensibleVisualizations } from "metabase/visualizations/lib/sensibility";
import { getSensibleVisualizations } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import type { CardDisplayType, Dataset } from "metabase-types/api";

View File

@@ -1,6 +1,6 @@
import { renderHook } from "@testing-library/react";
import { getSensibleVisualizations } from "metabase/visualizations/lib/sensibility";
import { getSensibleVisualizations } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import type { CardDisplayType, Dataset } from "metabase-types/api";
@@ -12,7 +12,8 @@ interface HookProps {
queryResults: Dataset[] | null;
}
jest.mock("metabase/visualizations/lib/sensibility", () => ({
jest.mock("metabase/viz-core", () => ({
...jest.requireActual("metabase/viz-core"),
getSensibleVisualizations: jest.fn(),
}));

View File

@@ -1,4 +1,4 @@
import { visualizations } from "metabase/visualizations";
import { visualizations } from "metabase/viz-core";
import type { CardDisplayType, IconName } from "metabase-types/api";
// Default visualization can be any sensible visualization, so the

View File

@@ -21,7 +21,7 @@ import type {
import { navigate } from "metabase/router";
import { Box } from "metabase/ui";
import * as Urls from "metabase/urls";
import type { HighlightedObject } from "metabase/visualizations/types";
import type { HighlightedObject } from "metabase/viz-core";
import type { ExplorationQueryId, Series } from "metabase-types/api";
import { resolveHighlightForSeries } from "../ExplorationVisualization/utils";

View File

@@ -37,7 +37,7 @@ import {
Popover,
Tooltip,
} from "metabase/ui";
import { getTimelineEventSettings } from "metabase/visualizations/lib/settings/timelineEvents";
import { getTimelineEventSettings } from "metabase/viz-core";
import type {
DocumentContent,
ExplorationId,

View File

@@ -20,14 +20,10 @@ import {
Text,
} from "metabase/ui";
import { is403Error } from "metabase/utils/errors";
import { isCartesianChart } from "metabase/visualizations";
import Visualization from "metabase/visualizations/components/Visualization";
import { LEGEND_ITEM_FONT_SIZE } from "metabase/visualizations/components/legend/LegendItem.styled";
import type {
ClickActionsMode,
HighlightedObject,
OnBrush,
} from "metabase/visualizations/types";
import type { ClickActionsMode, OnBrush } from "metabase/visualizations/types";
import { type HighlightedObject, isCartesianChart } from "metabase/viz-core";
import type {
ExplorationBlockNodeType,
ExplorationId,

View File

@@ -18,17 +18,19 @@ import {
formatDateTimeRangeWithUnit,
formatValue,
} from "metabase/value-formatting";
import { isCartesianChart } from "metabase/visualizations";
import { getSeriesVizSettingsKey } from "metabase/visualizations/echarts/cartesian/model/series";
import type {
BrushClickObject,
BrushRange,
ClickObject,
ComputedVisualizationSettings,
HighlightedObject,
} from "metabase/visualizations/types";
import { isBrushClickObject } from "metabase/visualizations/types";
import { getColorplethColorScale } from "metabase/visualizations/visualizations/Map/map-color-scale";
import {
type ComputedVisualizationSettings,
type HighlightedObject,
getSeriesVizSettingsKey,
isCartesianChart,
} from "metabase/viz-core";
import { getColumnKey } from "metabase-lib/v1/queries/utils/column-key";
import {
isCountry,

View File

@@ -8,11 +8,11 @@ import { createQuery } from "metabase/explorations/test-utils";
import type { HighlightedCommentState } from "metabase/redux/store/explorations";
import { NULL_DISPLAY_VALUE } from "metabase/utils/constants";
import { registerVisualizations } from "metabase/visualizations/register";
import type { ClickObject } from "metabase/visualizations/types";
import type {
ClickObject,
ComputedVisualizationSettings,
HighlightedObject,
} from "metabase/visualizations/types";
} from "metabase/viz-core";
import type {
Dataset,
ExplorationQuery,

View File

@@ -18,9 +18,9 @@ import type {
ClickActionPopoverProps,
ClickActionsMode,
ClickObject,
ComputedVisualizationSettings,
} from "metabase/visualizations/types";
import { isBrushClickObject } from "metabase/visualizations/types";
import type { ComputedVisualizationSettings } from "metabase/viz-core";
import type {
DocumentContent,
ExplorationBlockNodeType,

View File

@@ -4,7 +4,7 @@ import { PERSONAL_COLLECTIONS } from "metabase/common/collections/constants";
import type { IconData, ObjectWithModel } from "metabase/common/utils/icon";
import { modelIconMap } from "metabase/common/utils/icon";
import { PLUGIN_COLLECTIONS, PLUGIN_CUSTOM_VIZ } from "metabase/plugins";
import { getIconForVisualizationType } from "metabase/visualizations";
import { getIconForVisualizationType } from "metabase/viz-core";
import type { VisualizationDisplay } from "metabase-types/api";
export const useGetIconForVisualizationType = () => {

View File

@@ -33,10 +33,7 @@ import * as Urls from "metabase/urls";
import { isResourceNotFoundError } from "metabase/utils/errors";
import Visualization from "metabase/visualizations/components/Visualization";
import { ErrorView } from "metabase/visualizations/components/Visualization/ErrorView";
import {
getDatasetError,
getGenericErrorMessage,
} from "metabase/visualizations/lib/errors";
import { getDatasetError, getGenericErrorMessage } from "metabase/viz-core";
import Question from "metabase-lib/v1/Question";
import type { DashboardTabId } from "metabase-types/api";

View File

@@ -6,7 +6,7 @@ import { useMetadataToasts } from "metabase/metadata/hooks";
import type { MetadataEditEventDetail } from "metabase/metadata/pages/shared/analytics";
import { getRawTableFieldId } from "metabase/metadata/utils/field";
import { ColumnSettings } from "metabase/visualizations/components/ColumnSettings";
import { getGlobalSettingsForColumn } from "metabase/visualizations/lib/settings/column";
import { getGlobalSettingsForColumn } from "metabase/viz-core";
import { isCurrency } from "metabase-lib/v1/types/utils/isa";
import type {
Field,

View File

@@ -13,7 +13,7 @@ import { getEntityIcon, getHeaderColumns } from "metabase/detail-view/utils";
import { useSelector } from "metabase/redux";
import { getMetadataUnfiltered } from "metabase/selectors/metadata";
import { Box, Repeat, Skeleton, Stack, rem } from "metabase/ui";
import { extractRemappedColumns } from "metabase/visualizations";
import { extractRemappedColumns } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import type Metadata from "metabase-lib/v1/metadata/Metadata";
import type {

View File

@@ -1,6 +1,6 @@
import { is_coerceable } from "cljs/metabase.types.core";
import { NULL_DISPLAY_VALUE } from "metabase/utils/constants";
import { getGlobalSettingsForColumn } from "metabase/visualizations/lib/settings/column";
import { getGlobalSettingsForColumn } from "metabase/viz-core";
import { TYPE } from "metabase-lib/v1/types/constants";
import { isTypeFK, isa } from "metabase-lib/v1/types/utils/isa";
import type {

View File

@@ -2,8 +2,8 @@ import {
DIMENSION_PREDICATES,
getGeoSubtype,
} from "metabase/common/metrics/utils/dimension-types";
import { getBreakoutSeriesName } from "metabase/visualizations/echarts/cartesian/model/series";
import { getColorplethColorScale } from "metabase/visualizations/visualizations/Map/map-color-scale";
import { getBreakoutSeriesName } from "metabase/viz-core";
import type { DimensionMetadata } from "metabase-lib/metric";
import { isCountry, isState } from "metabase-lib/v1/types/utils/isa";
import type {

View File

@@ -13,10 +13,10 @@ import type {
import { getColorsForValues } from "metabase/ui/colors/charts";
import { isNotNull } from "metabase/utils/types";
import {
MAX_SERIES,
formatBreakoutValue,
getBreakoutSeriesName,
} from "metabase/visualizations/echarts/cartesian/model/series";
import { MAX_SERIES } from "metabase/visualizations/lib/utils";
} from "metabase/viz-core";
import type { DimensionMetadata, MetricDefinition } from "metabase-lib/metric";
import * as LibMetric from "metabase-lib/metric";
import type {

View File

@@ -13,11 +13,11 @@ import { MetabaseReduxProvider } from "metabase/redux";
import type { State } from "metabase/redux/store";
import { createMockState } from "metabase/redux/store/mocks";
import { Box, Center } from "metabase/ui";
import { registerVisualization } from "metabase/visualizations";
import { ComboChart } from "metabase/visualizations/visualizations/ComboChart";
import { LineChart } from "metabase/visualizations/visualizations/LineChart";
import { SmartScalar } from "metabase/visualizations/visualizations/SmartScalar";
import { Table } from "metabase/visualizations/visualizations/Table/Table";
import { registerVisualization } from "metabase/viz-core";
import { PaletteContainer } from "./Palette";
import { recents, search } from "./test_data.json";

View File

@@ -9,7 +9,7 @@ import {
isQuestionDashCard,
isVirtualDashCard,
} from "metabase/utils/dashboard";
import { getAllowedIframeAttributes } from "metabase/visualizations/lib/iframe";
import { getAllowedIframeAttributes } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import { TemplateTagDimension } from "metabase-lib/v1/Dimension";
import type { DimensionOptionsSection } from "metabase-lib/v1/DimensionOptions/types";

View File

@@ -2,7 +2,7 @@ import { useCallback } from "react";
import type { ContentTranslationFunction } from "metabase/content-translation/types";
import { PluginPlaceholder } from "metabase/plugins/components/PluginPlaceholder";
import type { HoveredObject } from "metabase/visualizations/types";
import type { HoveredObject } from "metabase/viz-core";
import type { Series } from "metabase-types/api";
import type { EntityToken } from "metabase-types/api/entity";

View File

@@ -28,11 +28,11 @@ import { FullWidthContainer } from "metabase/styled-components/layout/FullWidthC
import { Box } from "metabase/ui";
import { getDashboardType } from "metabase/utils/dashboard";
import { initializeIframeResizer, isSmallScreen } from "metabase/utils/dom";
import { SAVING_DOM_IMAGE_DISPLAY_NONE_CLASS } from "metabase/visualizations/lib/image-exports";
import {
DASHBOARD_HEADER_PARAMETERS_PDF_EXPORT_NODE_ID,
DASHBOARD_PDF_EXPORT_ROOT_ID,
} from "metabase/visualizations/lib/save-dashboard-pdf";
import { SAVING_DOM_IMAGE_DISPLAY_NONE_CLASS } from "metabase/viz-core";
import type Question from "metabase-lib/v1/Question";
import { getValuePopulatedParameters } from "metabase-lib/v1/parameters/utils/parameter-values";
import type {

View File

@@ -17,8 +17,8 @@ import {
createMockSettingsState,
createMockState,
} from "metabase/redux/store/mocks";
import { registerVisualization } from "metabase/visualizations";
import { BarChart } from "metabase/visualizations/visualizations/BarChart";
import { registerVisualization } from "metabase/viz-core";
import type { Dashboard } from "metabase-types/api";
import {
createMockCard,

View File

@@ -20,10 +20,10 @@ import {
createMockState,
} from "metabase/redux/store/mocks";
import { stableStringify } from "metabase/utils/objects";
import { registerVisualization } from "metabase/visualizations";
import { BarChart } from "metabase/visualizations/visualizations/BarChart";
import { Table } from "metabase/visualizations/visualizations/Table/Table";
import TABLE_RAW_SERIES from "metabase/visualizations/visualizations/Table/stories-data/orders-with-people.json";
import { registerVisualization } from "metabase/viz-core";
import type { Dashboard } from "metabase-types/api";
import {
createMockCard,

View File

@@ -20,8 +20,8 @@ import {
createMockState,
} from "metabase/redux/store/mocks";
import MetabaseSettings from "metabase/utils/settings";
import { registerVisualization } from "metabase/visualizations";
import { Map } from "metabase/visualizations/visualizations/Map";
import { registerVisualization } from "metabase/viz-core";
import type { Dashboard } from "metabase-types/api";
import {
createMockCard,

View File

@@ -21,11 +21,11 @@ import {
createMockState,
} from "metabase/redux/store/mocks";
import { Box, Card, Popover, Text, Tooltip } from "metabase/ui";
import { registerVisualization } from "metabase/visualizations";
import { BarChart } from "metabase/visualizations/visualizations/BarChart";
import { ObjectDetail } from "metabase/visualizations/visualizations/ObjectDetail";
import { Table } from "metabase/visualizations/visualizations/Table/Table";
import TABLE_RAW_SERIES from "metabase/visualizations/visualizations/Table/stories-data/orders-with-people.json";
import { registerVisualization } from "metabase/viz-core";
import type {
Dashboard,
DashboardCard,

View File

@@ -20,13 +20,13 @@ import {
createMockState,
} from "metabase/redux/store/mocks";
import { Box } from "metabase/ui";
import { registerVisualization } from "metabase/visualizations";
import { BarChart } from "metabase/visualizations/visualizations/BarChart";
import { PivotTable } from "metabase/visualizations/visualizations/PivotTable";
import { PIVOT_TABLE_MOCK_DATA } from "metabase/visualizations/visualizations/PivotTable/pivot-table-test-mocks";
import { SmartScalar } from "metabase/visualizations/visualizations/SmartScalar";
import { Table } from "metabase/visualizations/visualizations/Table/Table";
import * as TABLE_MOCK_DATA from "metabase/visualizations/visualizations/Table/stories-data";
import { registerVisualization } from "metabase/viz-core";
import {
createMockCard,
createMockColumn,

View File

@@ -25,9 +25,11 @@ import { getMetadata } from "metabase/selectors/metadata";
import * as Urls from "metabase/urls";
import { clone } from "metabase/utils/clone";
import { isNotNull } from "metabase/utils/types";
import { getRegisteredDefaultSize } from "metabase/visualizations";
import { shouldOpenInBlankWindow } from "metabase/visualizations/lib/open-url";
import { getCardAfterVisualizationClick } from "metabase/visualizations/lib/utils";
import {
getCardAfterVisualizationClick,
getRegisteredDefaultSize,
} from "metabase/viz-core";
import * as Lib from "metabase-lib";
import Question from "metabase-lib/v1/Question";
import { isAdHocModelOrMetricQuestion } from "metabase-lib/v1/metadata/utils/models";

View File

@@ -8,8 +8,7 @@ import { syncVizSettingsWithSeries } from "metabase/querying/viz-settings/utils/
import { createThunkAction } from "metabase/redux";
import type { Dispatch, GetState } from "metabase/redux/store";
import { getWhiteLabeledLoadingMessageFactory } from "metabase/selectors/whitelabel";
import { visualizations } from "metabase/visualizations";
import { getSensibleDisplays } from "metabase/visualizations/lib/sensibility";
import { getSensibleDisplays, visualizations } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import type Question from "metabase-lib/v1/Question";
import { isAdHocModelOrMetricQuestion } from "metabase-lib/v1/metadata/utils/models";

View File

@@ -3,7 +3,7 @@ import { t } from "ttag";
import { useDispatch, useSelector } from "metabase/redux";
import { setUIControls } from "metabase/redux/query-builder";
import { Button, Group, SegmentedControl, Stack, Text } from "metabase/ui";
import type { ComputedVisualizationSettings } from "metabase/visualizations/types";
import type { ComputedVisualizationSettings } from "metabase/viz-core";
import type { CardDisplayType } from "metabase-types/api";
import {

View File

@@ -11,8 +11,8 @@ import {
TextInput,
} from "metabase/ui";
import { ColumnItem } from "metabase/visualizations/components/settings/ColumnItem";
import type { ComputedVisualizationSettings } from "metabase/visualizations/types";
import { useListColumns } from "metabase/visualizations/visualizations/List/components/ListView";
import type { ComputedVisualizationSettings } from "metabase/viz-core";
import type { DatasetColumn } from "metabase-types/api";
import styles from "./ListViewColumnsSidebar.module.css";

View File

@@ -28,7 +28,7 @@ import {
type ColumnSettingsProps,
hasColumnSettingsWidgets,
} from "metabase/visualizations/components/ColumnSettings";
import { getGlobalSettingsForColumn } from "metabase/visualizations/lib/settings/column";
import { getGlobalSettingsForColumn } from "metabase/viz-core";
import * as Lib from "metabase-lib";
import type Question from "metabase-lib/v1/Question";
import { isCurrency, isFK } from "metabase-lib/v1/types/utils/isa";

View File

@@ -1,13 +1,13 @@
import { useCallback, useMemo } from "react";
import { useDispatch } from "metabase/redux";
import {
extractRemappings,
getVisualizationTransformed,
} from "metabase/visualizations";
import { getComputedSettingsForSeries } from "metabase/visualizations/lib/settings/visualization";
import type { ComputedVisualizationSettings } from "metabase/visualizations/types";
import { ListViewConfiguration } from "metabase/visualizations/visualizations/List/components/ListView";
import {
type ComputedVisualizationSettings,
extractRemappings,
getComputedSettingsForSeries,
getVisualizationTransformed,
} from "metabase/viz-core";
import * as Lib from "metabase-lib";
import type Question from "metabase-lib/v1/Question";
import type { IconName, RawSeries, Series } from "metabase-types/api";

View File

@@ -10,8 +10,10 @@ import {
getRowUrl,
getSingleResultsRow,
} from "metabase/visualizations/components/ObjectDetail/utils";
import { getSeriesWithDisplay } from "metabase/visualizations/lib/series";
import { getComputedSettingsForSeries } from "metabase/visualizations/lib/settings/visualization";
import {
getComputedSettingsForSeries,
getSeriesWithDisplay,
} from "metabase/viz-core";
import { getColumnKey } from "metabase-lib/v1/queries/utils/column-key";
import {

Some files were not shown because too many files have changed in this diff Show More