From 3108ae06553b2de5d3924d46ccb643d55f90b50d Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Mon, 7 Feb 2022 10:49:33 +0200 Subject: [PATCH] move types and interfaces to core --- .../superset-ui-core/src/dashboard/index.ts} | 11 +---- .../src/dashboard/types/Base.ts} | 41 ++++++++++++++++++- .../packages/superset-ui-core/src/index.ts | 26 ++++++------ .../spec/fixtures/mockNativeFilters.ts | 10 +++-- .../src/dashboard/actions/nativeFilters.ts | 16 ++++---- .../CrossFilterScopingForm/index.tsx | 2 +- .../CrossFilterScopingModal/types.ts | 2 +- .../DashboardBuilder/DashboardContainer.tsx | 3 +- .../components/DashboardBuilder/state.ts | 2 +- .../components/FiltersBadge/index.tsx | 3 +- .../components/FiltersBadge/selectors.ts | 8 ++-- .../gridComponents/DynamicComponent.tsx | 9 +--- .../CascadeFilterControl/index.tsx | 9 ++-- .../CascadeFilters/CascadePopover/index.tsx | 12 ++++-- .../FilterBar/CascadeFilters/types.ts | 3 +- .../FilterConfigurationLink/index.tsx | 3 +- .../FilterControls/FilterControls.tsx | 14 ++++--- .../FilterBar/FilterControls/state.ts | 8 ++-- .../FilterBar/FilterControls/types.ts | 4 +- .../FilterBar/FilterControls/utils.ts | 2 +- .../FilterBar/FilterSets/EditSection.tsx | 3 +- .../FilterBar/FilterSets/FilterSetUnit.tsx | 11 +++-- .../FilterBar/FilterSets/FiltersHeader.tsx | 12 ++++-- .../FilterBar/FilterSets/index.tsx | 15 +++++-- .../utils/findExistingFilterSet.test.ts | 2 +- .../FilterBar/FilterSets/utils/index.ts | 4 +- .../nativeFilters/FilterBar/Header/index.tsx | 11 +++-- .../nativeFilters/FilterBar/index.tsx | 16 +++++--- .../nativeFilters/FilterBar/state.ts | 10 ++--- .../nativeFilters/FilterBar/utils.ts | 9 ++-- .../FiltersConfigModal/DividerConfigForm.tsx | 3 +- .../FilterConfigurePane.tsx | 3 +- .../FiltersConfigModal/FilterTitlePane.tsx | 3 +- .../FilterScope/FilterScope.tsx | 3 +- .../FilterScope/ScopingTree.tsx | 2 +- .../FiltersConfigForm/FilterScope/utils.ts | 3 +- .../FiltersConfigForm/FiltersConfigForm.tsx | 6 +-- .../getControlItemsMap.test.tsx | 5 +-- .../FiltersConfigForm/getControlItemsMap.tsx | 8 +++- .../FiltersConfigForm/state.ts | 3 +- .../FiltersConfigModal/FiltersConfigModal.tsx | 16 ++++---- .../nativeFilters/FiltersConfigModal/state.ts | 2 +- .../nativeFilters/FiltersConfigModal/types.ts | 8 +++- .../nativeFilters/FiltersConfigModal/utils.ts | 16 ++++---- .../components/nativeFilters/state.ts | 2 +- .../components/nativeFilters/utils.ts | 12 +++--- .../dashboard/fixtures/mockNativeFilters.ts | 8 ++-- .../src/dashboard/reducers/nativeFilters.ts | 7 +++- .../src/dashboard/reducers/types.ts | 25 +---------- superset-frontend/src/dashboard/types.ts | 4 +- .../util/activeAllDashboardFilters.ts | 11 +++-- .../charts/getFormDataWithExtraFilters.ts | 10 +++-- .../util/filterboxMigrationHelper.ts | 6 +-- .../util/getFormDataWithExtraFilters.test.ts | 2 +- superset-frontend/src/dataMask/actions.ts | 4 +- superset-frontend/src/dataMask/reducer.ts | 16 ++++---- .../ExampleComponent/ExampleComponent.tsx | 12 ++++-- 57 files changed, 264 insertions(+), 217 deletions(-) rename superset-frontend/{src/dataMask/types.ts => packages/superset-ui-core/src/dashboard/index.ts} (70%) rename superset-frontend/{src/dashboard/components/nativeFilters/types.ts => packages/superset-ui-core/src/dashboard/types/Base.ts} (73%) diff --git a/superset-frontend/src/dataMask/types.ts b/superset-frontend/packages/superset-ui-core/src/dashboard/index.ts similarity index 70% rename from superset-frontend/src/dataMask/types.ts rename to superset-frontend/packages/superset-ui-core/src/dashboard/index.ts index 95d2073a07d0..10b785cba877 100644 --- a/superset-frontend/src/dataMask/types.ts +++ b/superset-frontend/packages/superset-ui-core/src/dashboard/index.ts @@ -16,14 +16,5 @@ * specific language governing permissions and limitations * under the License. */ -import { DataMask } from '@superset-ui/core'; -export enum DataMaskType { - NativeFilters = 'nativeFilters', - CrossFilters = 'crossFilters', -} - -export type DataMaskState = { [id: string]: DataMask }; - -export type DataMaskWithId = { id: string } & DataMask; -export type DataMaskStateWithId = { [filterId: string]: DataMaskWithId }; +export * from './types/Base'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/types.ts b/superset-frontend/packages/superset-ui-core/src/dashboard/types/Base.ts similarity index 73% rename from superset-frontend/src/dashboard/components/nativeFilters/types.ts rename to superset-frontend/packages/superset-ui-core/src/dashboard/types/Base.ts index 85f1941e0da0..a3927af78e9e 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/types.ts +++ b/superset-frontend/packages/superset-ui-core/src/dashboard/types/Base.ts @@ -19,7 +19,7 @@ import { AdhocFilter, DataMask } from '@superset-ui/core'; -export interface Column { +export interface NativeFilterColumn { name: string; displayName?: string; } @@ -32,7 +32,7 @@ export interface Scope { /** The target of a filter is the datasource/column being filtered */ export interface Target { datasetId: number; - column: Column; + column: NativeFilterColumn; // maybe someday support this? // show values from these columns in the filter options selector @@ -44,6 +44,27 @@ export enum NativeFilterType { DIVIDER = 'DIVIDER', } +export enum DataMaskType { + NativeFilters = 'nativeFilters', + CrossFilters = 'crossFilters', +} + +export type DataMaskState = { [id: string]: DataMask }; + +export type DataMaskWithId = { id: string } & DataMask; +export type DataMaskStateWithId = { [filterId: string]: DataMaskWithId }; + +export type FilterSet = { + id: number; + name: string; + nativeFilters: Filters; + dataMask: DataMaskStateWithId; +}; + +export type FilterSets = { + [filtersSetId: string]: FilterSet; +}; + export interface Filter { cascadeParentIds: string[]; defaultDataMask: DataMask; @@ -70,6 +91,7 @@ export interface Filter { type: typeof NativeFilterType.NATIVE_FILTER; description: string; } + export interface Divider { id: string; title: string; @@ -78,3 +100,18 @@ export interface Divider { } export type FilterConfiguration = Array; + +export type Filters = { + [filterId: string]: Filter; +}; + +export type NativeFiltersState = { + filters: Filters; + filterSets: FilterSets; + focusedFilterId?: string; +}; + +export type DashboardComponentMetadata = { + nativeFilters: NativeFiltersState; + dataMask: DataMaskStateWithId; +}; diff --git a/superset-frontend/packages/superset-ui-core/src/index.ts b/superset-frontend/packages/superset-ui-core/src/index.ts index 7ea8f2aaa247..fbfab4a56c1e 100644 --- a/superset-frontend/packages/superset-ui-core/src/index.ts +++ b/superset-frontend/packages/superset-ui-core/src/index.ts @@ -16,20 +16,22 @@ * specific language governing permissions and limitations * under the License. */ -export * from './models'; -export * from './utils'; -export * from './types'; -export * from './translation'; + +export * from './chart'; +export * from './chart-composition'; +export * from './color'; +export * from './components'; export * from './connection'; +export * from './dashboard'; +export * from './dimension'; export * from './dynamic-plugins'; -export * from './query'; +export * from './math-expression'; +export * from './models'; export * from './number-format'; -export * from './time-format'; -export * from './dimension'; -export * from './color'; +export * from './query'; export * from './style'; +export * from './time-format'; +export * from './translation'; +export * from './types'; +export * from './utils'; export * from './validator'; -export * from './chart'; -export * from './chart-composition'; -export * from './components'; -export * from './math-expression'; diff --git a/superset-frontend/spec/fixtures/mockNativeFilters.ts b/superset-frontend/spec/fixtures/mockNativeFilters.ts index 1381ff4322e0..516a2c5aa3b1 100644 --- a/superset-frontend/spec/fixtures/mockNativeFilters.ts +++ b/superset-frontend/spec/fixtures/mockNativeFilters.ts @@ -16,10 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -import { ExtraFormData } from '@superset-ui/core'; -import { NativeFilterType } from 'src/dashboard/components/nativeFilters/types'; -import { NativeFiltersState } from 'src/dashboard/reducers/types'; -import { DataMaskStateWithId } from '../../src/dataMask/types'; +import { + DataMaskStateWithId, + ExtraFormData, + NativeFiltersState, + NativeFilterType, +} from '@superset-ui/core'; export const nativeFilters: NativeFiltersState = { filterSets: {}, diff --git a/superset-frontend/src/dashboard/actions/nativeFilters.ts b/superset-frontend/src/dashboard/actions/nativeFilters.ts index 337d3044a541..71cc01d99681 100644 --- a/superset-frontend/src/dashboard/actions/nativeFilters.ts +++ b/superset-frontend/src/dashboard/actions/nativeFilters.ts @@ -17,21 +17,21 @@ * under the License. */ -import { makeApi } from '@superset-ui/core'; +import { + FilterConfiguration, + Filters, + FilterSet, + FilterSets, + makeApi, +} from '@superset-ui/core'; import { Dispatch } from 'redux'; -import { FilterConfiguration } from 'src/dashboard/components/nativeFilters/types'; import { SET_DATA_MASK_FOR_FILTER_CONFIG_FAIL, setDataMaskForFilterConfigComplete, } from 'src/dataMask/actions'; import { HYDRATE_DASHBOARD } from './hydrate'; import { dashboardInfoChanged } from './dashboardInfo'; -import { - Filters, - FilterSet, - FilterSetFullData, - FilterSets, -} from '../reducers/types'; +import { FilterSetFullData } from '../reducers/types'; import { DashboardInfo, RootState } from '../types'; export const SET_FILTER_CONFIG_BEGIN = 'SET_FILTER_CONFIG_BEGIN'; diff --git a/superset-frontend/src/dashboard/components/CrossFilterScopingModal/CrossFilterScopingForm/index.tsx b/superset-frontend/src/dashboard/components/CrossFilterScopingModal/CrossFilterScopingForm/index.tsx index d1364f372988..7d7d510d83be 100644 --- a/superset-frontend/src/dashboard/components/CrossFilterScopingModal/CrossFilterScopingForm/index.tsx +++ b/superset-frontend/src/dashboard/components/CrossFilterScopingModal/CrossFilterScopingForm/index.tsx @@ -18,9 +18,9 @@ */ import React, { FC } from 'react'; import { FormInstance } from 'antd/lib/form'; +import { Scope } from '@superset-ui/core'; import FilterScope from 'src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope'; import { setCrossFilterFieldValues } from 'src/dashboard/components/CrossFilterScopingModal/utils'; -import { Scope } from 'src/dashboard/components/nativeFilters/types'; import { useForceUpdate } from 'src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils'; import { CrossFilterScopingFormType } from 'src/dashboard/components/CrossFilterScopingModal/types'; diff --git a/superset-frontend/src/dashboard/components/CrossFilterScopingModal/types.ts b/superset-frontend/src/dashboard/components/CrossFilterScopingModal/types.ts index b56ffc0eea5e..6dadba9f8cd3 100644 --- a/superset-frontend/src/dashboard/components/CrossFilterScopingModal/types.ts +++ b/superset-frontend/src/dashboard/components/CrossFilterScopingModal/types.ts @@ -17,7 +17,7 @@ * under the License. */ -import { Scope } from '../nativeFilters/types'; +import { Scope } from '@superset-ui/core'; export type CrossFilterScopingFormType = { scope: Scope; diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx index cce9bf7a0471..aebb2a14071f 100644 --- a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx +++ b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx @@ -20,7 +20,7 @@ // when its container size changes, due to e.g., builder side panel opening import React, { FC, useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { FeatureFlag, isFeatureEnabled } from '@superset-ui/core'; +import { FeatureFlag, Filters, isFeatureEnabled } from '@superset-ui/core'; import { ParentSize } from '@vx/responsive'; import Tabs from 'src/components/Tabs'; import DashboardGrid from 'src/dashboard/containers/DashboardGrid'; @@ -31,7 +31,6 @@ import { DASHBOARD_ROOT_DEPTH, } from 'src/dashboard/util/constants'; import { getRootLevelTabIndex, getRootLevelTabsComponent } from './utils'; -import { Filters } from '../../reducers/types'; import { getChartIdsInFilterScope } from '../../util/activeDashboardFilters'; import findTabIndexByComponentId from '../../util/findTabIndexByComponentId'; import { findTabsWithChartsInScope } from '../nativeFilters/utils'; diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/state.ts b/superset-frontend/src/dashboard/components/DashboardBuilder/state.ts index 31cf5ae0feb1..51d255db1044 100644 --- a/superset-frontend/src/dashboard/components/DashboardBuilder/state.ts +++ b/superset-frontend/src/dashboard/components/DashboardBuilder/state.ts @@ -17,6 +17,7 @@ * under the License. */ import { useSelector } from 'react-redux'; +import { Filter } from '@superset-ui/core'; import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags'; import { useCallback, useEffect, useState, useContext } from 'react'; import { URL_PARAMS } from 'src/constants'; @@ -27,7 +28,6 @@ import { useFilters, useNativeFiltersDataMask, } from '../nativeFilters/FilterBar/state'; -import { Filter } from '../nativeFilters/types'; // eslint-disable-next-line import/prefer-default-export export const useNativeFilters = () => { diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx index 921d8db557bd..316534823772 100644 --- a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx +++ b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx @@ -20,9 +20,9 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { uniqWith } from 'lodash'; import cx from 'classnames'; +import { DataMaskStateWithId, Filters } from '@superset-ui/core'; import Icons from 'src/components/Icons'; import { usePrevious } from 'src/hooks/usePrevious'; -import { DataMaskStateWithId } from 'src/dataMask/types'; import DetailsPanelPopover from './DetailsPanel'; import { Pill } from './Styles'; import { @@ -38,7 +38,6 @@ import { DashboardLayout, RootState, } from '../../types'; -import { Filters } from '../../reducers/types'; export interface FiltersBadgeProps { chartId: number; diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/selectors.ts b/superset-frontend/src/dashboard/components/FiltersBadge/selectors.ts index 695e2f94bc79..3eafe248a15b 100644 --- a/superset-frontend/src/dashboard/components/FiltersBadge/selectors.ts +++ b/superset-frontend/src/dashboard/components/FiltersBadge/selectors.ts @@ -17,19 +17,21 @@ * under the License. */ import { + DataMaskStateWithId, + DataMaskType, ensureIsArray, FeatureFlag, + Filters, FilterState, isFeatureEnabled, + NativeFilterType, } from '@superset-ui/core'; import { NO_TIME_RANGE, TIME_FILTER_MAP } from 'src/explore/constants'; import { getChartIdsInFilterScope } from 'src/dashboard/util/activeDashboardFilters'; -import { ChartConfiguration, Filters } from 'src/dashboard/reducers/types'; -import { DataMaskStateWithId, DataMaskType } from 'src/dataMask/types'; +import { ChartConfiguration } from 'src/dashboard/reducers/types'; import { areObjectsEqual } from 'src/reduxUtils'; import { Layout } from '../../types'; import { getTreeCheckedItems } from '../nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/utils'; -import { NativeFilterType } from '../nativeFilters/types'; export enum IndicatorStatus { Unset = 'UNSET', diff --git a/superset-frontend/src/dashboard/components/gridComponents/DynamicComponent.tsx b/superset-frontend/src/dashboard/components/gridComponents/DynamicComponent.tsx index 93f605f1cd8b..707597d8c0ca 100644 --- a/superset-frontend/src/dashboard/components/gridComponents/DynamicComponent.tsx +++ b/superset-frontend/src/dashboard/components/gridComponents/DynamicComponent.tsx @@ -17,7 +17,7 @@ * under the License. */ import React, { FC, Suspense } from 'react'; -import { JsonObject, t } from '@superset-ui/core'; +import { DashboardComponentMetadata, JsonObject, t } from '@superset-ui/core'; import backgroundStyleOptions from 'src/dashboard/util/backgroundStyleOptions'; import cx from 'classnames'; import { useSelector } from 'react-redux'; @@ -35,13 +35,6 @@ import DeleteComponentButton from '../DeleteComponentButton'; import BackgroundStyleDropdown from '../menu/BackgroundStyleDropdown'; import dashboardComponents from '../../../visualizations/presets/dashboardComponents'; import { RootState } from '../../types'; -import { NativeFiltersState } from '../../reducers/types'; -import { DataMaskStateWithId } from '../../../dataMask/types'; - -type DashboardComponentMetadata = { - nativeFilters: NativeFiltersState; - dataMask: DataMaskStateWithId; -}; type FilterSummaryType = { component: JsonObject; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadeFilterControl/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadeFilterControl/index.tsx index 5b3085625de8..f19b6b01ac89 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadeFilterControl/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadeFilterControl/index.tsx @@ -17,11 +17,14 @@ * under the License. */ import React, { RefObject } from 'react'; -import { styled, DataMask } from '@superset-ui/core'; +import { + DataMaskStateWithId, + Filter, + styled, + DataMask, +} from '@superset-ui/core'; import FilterControl from 'src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl'; import { CascadeFilter } from 'src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/types'; -import { Filter } from 'src/dashboard/components/nativeFilters/types'; -import { DataMaskStateWithId } from 'src/dataMask/types'; export interface CascadeFilterControlProps { dataMaskSelected?: DataMaskStateWithId; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadePopover/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadePopover/index.tsx index b164e5a7341b..0bb177b9b9c1 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadePopover/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadePopover/index.tsx @@ -23,15 +23,21 @@ import React, { useState, useRef, } from 'react'; -import { styled, t, DataMask, css, SupersetTheme } from '@superset-ui/core'; +import { + css, + DataMask, + DataMaskStateWithId, + Filter, + styled, + SupersetTheme, + t, +} from '@superset-ui/core'; import Popover from 'src/components/Popover'; import Icons from 'src/components/Icons'; import { Pill } from 'src/dashboard/components/FiltersBadge/Styles'; -import { DataMaskStateWithId } from 'src/dataMask/types'; import FilterControl from 'src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl'; import CascadeFilterControl from 'src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadeFilterControl'; import { CascadeFilter } from 'src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/types'; -import { Filter } from 'src/dashboard/components/nativeFilters/types'; interface CascadePopoverProps { dataMaskSelected: DataMaskStateWithId; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/types.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/types.ts index c5a9d1388c78..6d319f6d2945 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/types.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/types.ts @@ -17,8 +17,7 @@ * under the License. */ -import { DataMask } from '@superset-ui/core'; -import { Filter } from '../../types'; +import { DataMask, Filter } from '@superset-ui/core'; export type CascadeFilter = Filter & { dataMask?: DataMask } & { cascadeChildren: CascadeFilter[]; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterConfigurationLink/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterConfigurationLink/index.tsx index 106388d5e553..bb3c1517104e 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterConfigurationLink/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterConfigurationLink/index.tsx @@ -20,8 +20,7 @@ import React, { useState } from 'react'; import { useDispatch } from 'react-redux'; import { setFilterConfiguration } from 'src/dashboard/actions/nativeFilters'; import Button from 'src/components/Button'; -import { styled } from '@superset-ui/core'; -import { FilterConfiguration } from 'src/dashboard/components/nativeFilters/types'; +import { FilterConfiguration, styled } from '@superset-ui/core'; import { FiltersConfigModal } from 'src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal'; import { getFilterBarTestId } from '..'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx index f0c0a564a08e..fb83fc96ea3d 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx @@ -18,22 +18,24 @@ */ import React, { FC, useCallback, useMemo, useState } from 'react'; import { css } from '@emotion/react'; -import { DataMask, styled, t } from '@superset-ui/core'; +import { + DataMask, + DataMaskStateWithId, + Filter, + NativeFilterType, + styled, + t, +} from '@superset-ui/core'; import { createHtmlPortalNode, InPortal, OutPortal, } from 'react-reverse-portal'; import { Collapse } from 'src/common/components'; -import { DataMaskStateWithId } from 'src/dataMask/types'; import { useDashboardHasTabs, useSelectFiltersInScope, } from 'src/dashboard/components/nativeFilters/state'; -import { - Filter, - NativeFilterType, -} from 'src/dashboard/components/nativeFilters/types'; import CascadePopover from '../CascadeFilters/CascadePopover'; import { useFilters } from '../state'; import { buildCascadeFiltersTree } from './utils'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/state.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/state.ts index 810ef5d8b488..80ce41b5aef4 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/state.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/state.ts @@ -18,9 +18,11 @@ */ import { useMemo } from 'react'; import { useSelector } from 'react-redux'; -import { NativeFiltersState } from 'src/dashboard/reducers/types'; -import { DataMaskStateWithId } from 'src/dataMask/types'; -import { ExtraFormData } from '@superset-ui/core'; +import { + DataMaskStateWithId, + ExtraFormData, + NativeFiltersState, +} from '@superset-ui/core'; import { mergeExtraFormData } from '../../utils'; // eslint-disable-next-line import/prefer-default-export diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/types.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/types.ts index 52550c542f1d..60a7b2d526f2 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/types.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/types.ts @@ -17,9 +17,7 @@ * under the License. */ import React, { RefObject } from 'react'; -import { DataMask } from '@superset-ui/core'; -import { DataMaskStateWithId } from 'src/dataMask/types'; -import { Filter } from '../../types'; +import { DataMask, DataMaskStateWithId, Filter } from '@superset-ui/core'; export interface FilterProps { dataMaskSelected?: DataMaskStateWithId; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts index 12ca897a3072..87f11a76f9ad 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts @@ -18,11 +18,11 @@ */ import { debounce } from 'lodash'; import { Dispatch } from 'react'; +import { Filter, NativeFilterType, Divider } from '@superset-ui/core'; import { setFocusedNativeFilter, unsetFocusedNativeFilter, } from 'src/dashboard/actions/nativeFilters'; -import { Filter, NativeFilterType, Divider } from '../../types'; import { CascadeFilter } from '../CascadeFilters/types'; import { mapParentFiltersToChildren } from '../utils'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/EditSection.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/EditSection.tsx index 5e78091f83c8..8658bcd783a7 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/EditSection.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/EditSection.tsx @@ -17,12 +17,11 @@ * under the License. */ import React, { FC, useMemo, useState } from 'react'; -import { HandlerFunction, styled, t } from '@superset-ui/core'; +import { DataMaskState, HandlerFunction, styled, t } from '@superset-ui/core'; import { Typography, Tooltip } from 'src/common/components'; import { useDispatch } from 'react-redux'; import Button from 'src/components/Button'; import { updateFilterSet } from 'src/dashboard/actions/nativeFilters'; -import { DataMaskState } from 'src/dataMask/types'; import { WarningOutlined } from '@ant-design/icons'; import { ActionButtons } from './Footer'; import { useNativeFiltersDataMask, useFilters, useFilterSets } from '../state'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FilterSetUnit.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FilterSetUnit.tsx index e667b27f5e75..00b3c9a9f32c 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FilterSetUnit.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FilterSetUnit.tsx @@ -18,10 +18,15 @@ */ import { Typography, Dropdown, Menu } from 'src/common/components'; import React, { FC } from 'react'; -import { FilterSet } from 'src/dashboard/reducers/types'; -import { DataMaskState } from 'src/dataMask/types'; +import { + DataMaskState, + FilterSet, + HandlerFunction, + styled, + supersetTheme, + t, +} from '@superset-ui/core'; import { CheckOutlined, EllipsisOutlined } from '@ant-design/icons'; -import { HandlerFunction, styled, supersetTheme, t } from '@superset-ui/core'; import Button from 'src/components/Button'; import { Tooltip } from 'src/components/Tooltip'; import FiltersHeader from './FiltersHeader'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FiltersHeader.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FiltersHeader.tsx index c263da6a69f0..8f5f4a1a93c2 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FiltersHeader.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FiltersHeader.tsx @@ -17,16 +17,20 @@ * under the License. */ import React, { FC } from 'react'; -import { styled, t, useTheme } from '@superset-ui/core'; +import { + DataMaskState, + FilterSet, + NativeFilterType, + styled, + t, + useTheme, +} from '@superset-ui/core'; import { Collapse, Typography, Tooltip } from 'src/common/components'; -import { DataMaskState } from 'src/dataMask/types'; import Icons from 'src/components/Icons'; import { areObjectsEqual } from 'src/reduxUtils'; -import { FilterSet } from 'src/dashboard/reducers/types'; import { getFilterValueForDisplay } from './utils'; import { useFilters } from '../state'; import { getFilterBarTestId } from '../index'; -import { NativeFilterType } from '../../types'; const FilterHeader = styled.div` display: flex; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/index.tsx index 09a6304225f2..18f5a5688be3 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/index.tsx @@ -18,18 +18,25 @@ */ import React, { useEffect, useState } from 'react'; -import { DataMask, HandlerFunction, styled, t } from '@superset-ui/core'; +import { + DataMask, + DataMaskState, + DataMaskWithId, + Filter, + Filters, + FilterSet, + HandlerFunction, + styled, + t, +} from '@superset-ui/core'; import { useDispatch } from 'react-redux'; -import { DataMaskState, DataMaskWithId } from 'src/dataMask/types'; import { createFilterSet, deleteFilterSet, updateFilterSet, } from 'src/dashboard/actions/nativeFilters'; -import { Filters, FilterSet } from 'src/dashboard/reducers/types'; import { areObjectsEqual } from 'src/reduxUtils'; import { findExistingFilterSet } from './utils'; -import { Filter } from '../../types'; import { useFilters, useNativeFiltersDataMask, useFilterSets } from '../state'; import Footer from './Footer'; import FilterSetUnit from './FilterSetUnit'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/findExistingFilterSet.test.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/findExistingFilterSet.test.ts index 4c17ac86ad4a..06821ff6b70b 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/findExistingFilterSet.test.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/findExistingFilterSet.test.ts @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { FilterSet } from 'src/dashboard/reducers/types'; +import { FilterSet } from '@superset-ui/core'; import { findExistingFilterSet } from '.'; const createDataMaskSelected = () => ({ diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/index.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/index.ts index 368fbbbb2bdf..187739ff9979 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/index.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/index.ts @@ -18,10 +18,8 @@ */ import shortid from 'shortid'; -import { t } from '@superset-ui/core'; +import { DataMaskState, FilterSet, t } from '@superset-ui/core'; import { areObjectsEqual } from 'src/reduxUtils'; -import { DataMaskState } from 'src/dataMask/types'; -import { FilterSet } from 'src/dashboard/reducers/types'; export const generateFiltersSetId = () => `FILTERS_SET-${shortid.generate()}`; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx index 9b35b18078f5..2aac16e5e86b 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx @@ -17,15 +17,20 @@ * under the License. */ /* eslint-disable no-param-reassign */ -import { styled, t, useTheme } from '@superset-ui/core'; +import { + DataMaskState, + DataMaskStateWithId, + Filter, + styled, + t, + useTheme, +} from '@superset-ui/core'; import React, { FC } from 'react'; import Icons from 'src/components/Icons'; import Button from 'src/components/Button'; import { useSelector } from 'react-redux'; -import { DataMaskState, DataMaskStateWithId } from 'src/dataMask/types'; import FilterConfigurationLink from 'src/dashboard/components/nativeFilters/FilterBar/FilterConfigurationLink'; import { useFilters } from 'src/dashboard/components/nativeFilters/FilterBar/state'; -import { Filter } from 'src/dashboard/components/nativeFilters/types'; import { getFilterBarTestId } from '..'; import { RootState } from '../../../../types'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx index 02156b22bc62..6b07c2c7234a 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx @@ -18,7 +18,16 @@ */ /* eslint-disable no-param-reassign */ -import { DataMask, HandlerFunction, styled, t } from '@superset-ui/core'; +import { + DataMaskStateWithId, + DataMaskWithId, + Filter, + NativeFilterType, + DataMask, + HandlerFunction, + styled, + t, +} from '@superset-ui/core'; import React, { useEffect, useState, useCallback, useMemo } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import cx from 'classnames'; @@ -28,14 +37,9 @@ import { useHistory } from 'react-router-dom'; import { usePrevious } from 'src/hooks/usePrevious'; import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags'; import { updateDataMask, clearDataMask } from 'src/dataMask/actions'; -import { DataMaskStateWithId, DataMaskWithId } from 'src/dataMask/types'; import { useImmer } from 'use-immer'; import { isEmpty, isEqual } from 'lodash'; import { testWithId } from 'src/utils/testUtils'; -import { - Filter, - NativeFilterType, -} from 'src/dashboard/components/nativeFilters/types'; import Loading from 'src/components/Loading'; import { getInitialDataMask } from 'src/dataMask/reducer'; import { URL_PARAMS } from 'src/constants'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/state.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/state.ts index 8e7022f070b0..054f440a74f4 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/state.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/state.ts @@ -19,20 +19,18 @@ /* eslint-disable no-param-reassign */ import { useSelector } from 'react-redux'; import { filter, keyBy } from 'lodash'; -import { - Filters, - FilterSets as FilterSetsType, -} from 'src/dashboard/reducers/types'; import { DataMaskState, DataMaskStateWithId, DataMaskWithId, -} from 'src/dataMask/types'; + Filter, + Filters, + FilterSets as FilterSetsType, +} from '@superset-ui/core'; import { useContext, useEffect, useMemo, useState } from 'react'; import { ChartsState, RootState } from 'src/dashboard/types'; import { MigrationContext } from 'src/dashboard/containers/DashboardPage'; import { FILTER_BOX_MIGRATION_STATES } from 'src/explore/constants'; -import { Filter } from 'src/dashboard/components/nativeFilters/types'; import { NATIVE_FILTER_PREFIX } from '../FiltersConfigModal/utils'; export const useFilterSets = () => diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts index a2bc7caa0479..926abbf06956 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts @@ -17,10 +17,13 @@ * under the License. */ -import { DataMaskStateWithId } from 'src/dataMask/types'; import { areObjectsEqual } from 'src/reduxUtils'; -import { FilterState } from '@superset-ui/core'; -import { Filter, Divider } from '../types'; +import { + DataMaskStateWithId, + Filter, + FilterState, + Divider, +} from '@superset-ui/core'; export enum TabIds { AllFilters = 'allFilters', diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx index 7ab2b100206f..afef49684fdf 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx @@ -19,8 +19,7 @@ import React from 'react'; import { FormItem } from 'src/components/Form'; import { Input, TextArea } from 'src/common/components'; -import { styled, t } from '@superset-ui/core'; -import { NativeFilterType } from '../types'; +import { NativeFilterType, styled, t } from '@superset-ui/core'; interface Props { componentId: string; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx index e77a29bad46b..744bcf8fe4a8 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx @@ -16,9 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -import { styled } from '@superset-ui/core'; +import { NativeFilterType, styled } from '@superset-ui/core'; import React from 'react'; -import { NativeFilterType } from '../types'; import FilterTitlePane from './FilterTitlePane'; import { FilterRemoval } from './types'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx index a90f8dc1d2a0..07aaf1b3c144 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx @@ -16,10 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -import { styled, t, useTheme } from '@superset-ui/core'; +import { NativeFilterType, styled, t, useTheme } from '@superset-ui/core'; import React from 'react'; import { Dropdown, MainNav as Menu } from 'src/common/components'; -import { NativeFilterType } from '../types'; import FilterTitleContainer from './FilterTitleContainer'; import { FilterRemoval } from './types'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx index 65ee3f01548c..bf69a920639d 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx @@ -18,11 +18,10 @@ */ import React, { FC, useCallback, useState } from 'react'; -import { t, styled } from '@superset-ui/core'; +import { Scope, styled, t } from '@superset-ui/core'; import { Radio } from 'src/components/Radio'; import { Form, Typography } from 'src/common/components'; import { useComponentDidUpdate } from 'src/hooks/useComponentDidUpdate/useComponentDidUpdate'; -import { Scope } from '../../../types'; import { ScopingType } from './types'; import ScopingTree from './ScopingTree'; import { getDefaultScopeValue, isScopingAll } from './utils'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx index af140f862c86..e4ff0e53ddcf 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx @@ -18,13 +18,13 @@ */ import React, { FC, useMemo, useState } from 'react'; +import { Scope } from '@superset-ui/core'; import { Tree } from 'src/common/components'; import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants'; import { Tooltip } from 'src/components/Tooltip'; import Icons from 'src/components/Icons'; import { useFilterScopeTree } from './state'; import { findFilterScope, getTreeCheckedItems } from './utils'; -import { Scope } from '../../../types'; type ScopingTreeProps = { forceUpdate: Function; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/utils.ts index 555b87ff7779..193f31efec67 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/utils.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/utils.ts @@ -23,9 +23,8 @@ import { TAB_TYPE, } from 'src/dashboard/util/componentTypes'; import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants'; -import { t } from '@superset-ui/core'; +import { Scope, t } from '@superset-ui/core'; import { BuildTreeLeafTitle, TreeItem } from './types'; -import { Scope } from '../../../types'; export const isShowTypeInTree = ({ type, meta }: LayoutItem, charts?: Charts) => (type === TAB_TYPE || type === CHART_TYPE || type === DASHBOARD_ROOT_TYPE) && diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx index 37ae2ca8788b..ec26cd009577 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx @@ -27,9 +27,11 @@ import { Behavior, ChartDataResponseResult, Column, + Filter, GenericDataType, getChartMetadataRegistry, JsonResponse, + NativeFilterType, styled, SupersetApiError, SupersetClient, @@ -70,10 +72,6 @@ import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags'; import { waitForAsyncData } from 'src/middleware/asyncEvent'; import { cacheWrapper } from 'src/utils/cacheWrapper'; import { ClientErrorObject } from 'src/utils/getClientErrorObject'; -import { - Filter, - NativeFilterType, -} from 'src/dashboard/components/nativeFilters/types'; import { SingleValueType } from 'src/filters/components/Range/SingleValueType'; import { getFormData } from 'src/dashboard/components/nativeFilters/utils'; import { diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.test.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.test.tsx index 25ed9ea3b793..87cf5366e5cd 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.test.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.test.tsx @@ -18,12 +18,9 @@ */ import userEvent from '@testing-library/user-event'; import React from 'react'; +import { Filter, NativeFilterType } from '@superset-ui/core'; import { render, screen } from 'spec/helpers/testing-library'; import { FormInstance } from 'src/common/components'; -import { - Filter, - NativeFilterType, -} from 'src/dashboard/components/nativeFilters/types'; import getControlItemsMap, { ControlItemsProps } from './getControlItemsMap'; import { getControlItems, setNativeFilterFieldValues } from './utils'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx index d202552f3903..3fcf9f23e2e3 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx @@ -23,7 +23,12 @@ import { import React from 'react'; import { Checkbox } from 'src/common/components'; import { FormInstance } from 'antd/lib/form'; -import { getChartControlPanelRegistry, styled, t } from '@superset-ui/core'; +import { + Filter, + getChartControlPanelRegistry, + styled, + t, +} from '@superset-ui/core'; import { Tooltip } from 'src/components/Tooltip'; import { FormItem } from 'src/components/Form'; import { @@ -37,7 +42,6 @@ import { StyledLabel, StyledRowFormItem, } from './FiltersConfigForm'; -import { Filter } from '../../types'; import { ColumnSelect } from './ColumnSelect'; export interface ControlItemsProps { diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/state.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/state.ts index 6580ade3f984..2fbe1a6b18e7 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/state.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/state.ts @@ -18,10 +18,9 @@ */ import { useEffect, useState } from 'react'; import { FormInstance } from 'antd/lib/form'; -import { t } from '@superset-ui/core'; +import { Filter, t } from '@superset-ui/core'; import { NativeFiltersForm, NativeFiltersFormItem } from '../types'; import { setNativeFilterFieldValues, useForceUpdate } from './utils'; -import { Filter } from '../../types'; // When some fields in form changed we need re-fetch data for Filter defaultValue // eslint-disable-next-line import/prefer-default-export diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx index 04e78cb81be3..21bd3526ffba 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx @@ -24,18 +24,20 @@ import React, { useRef, } from 'react'; import { uniq, isEqual, sortBy, debounce } from 'lodash'; -import { t, styled, SLOW_DEBOUNCE } from '@superset-ui/core'; -import { Form } from 'src/common/components'; -import ErrorBoundary from 'src/components/ErrorBoundary'; -import { StyledModal } from 'src/components/Modal'; -import { testWithId } from 'src/utils/testUtils'; -import { useFilterConfigMap, useFilterConfiguration } from '../state'; import { Filter, FilterConfiguration, NativeFilterType, Divider, -} from '../types'; + styled, + SLOW_DEBOUNCE, + t, +} from '@superset-ui/core'; +import { Form } from 'src/common/components'; +import ErrorBoundary from 'src/components/ErrorBoundary'; +import { StyledModal } from 'src/components/Modal'; +import { testWithId } from 'src/utils/testUtils'; +import { useFilterConfigMap, useFilterConfiguration } from '../state'; import FiltureConfigurePane from './FilterConfigurePane'; import FiltersConfigForm, { FilterPanels, diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/state.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/state.ts index 2ab54d980605..285c30e5c03b 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/state.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/state.ts @@ -1,7 +1,7 @@ import { useEffect } from 'react'; import { usePrevious } from 'src/hooks/usePrevious'; +import { NativeFilterType } from '@superset-ui/core'; import { FilterRemoval } from './types'; -import { NativeFilterType } from '../types'; /** * Licensed to the Apache Software Foundation (ASF) under one diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/types.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/types.ts index c5165fc0f3e2..13351ce4af77 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/types.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/types.ts @@ -16,8 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -import { AdhocFilter, DataMask } from '@superset-ui/core'; -import { NativeFilterType, Scope } from '../types'; +import { + AdhocFilter, + DataMask, + NativeFilterType, + Scope, +} from '@superset-ui/core'; export interface NativeFiltersFormItem { scope: Scope; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/utils.ts index 539a882e074c..007dfe1bc2cc 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/utils.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/utils.ts @@ -20,7 +20,14 @@ import { FormInstance } from 'antd/lib/form'; import shortid from 'shortid'; import { getInitialDataMask } from 'src/dataMask/reducer'; -import { t } from '@superset-ui/core'; +import { + Filter, + FilterConfiguration, + NativeFilterType, + Divider, + t, + Target, +} from '@superset-ui/core'; import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants'; import { FilterRemoval, @@ -28,13 +35,6 @@ import { FilterHierarchy, FilterHierarchyNode, } from './types'; -import { - Filter, - FilterConfiguration, - NativeFilterType, - Divider, - Target, -} from '../types'; export const REMOVAL_DELAY_SECS = 5; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/state.ts b/superset-frontend/src/dashboard/components/nativeFilters/state.ts index da295a17849c..be2089c6be08 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/state.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/state.ts @@ -23,7 +23,7 @@ import { FilterConfiguration, NativeFilterType, Divider, -} from './types'; +} from '@superset-ui/core'; import { ActiveTabs, DashboardLayout, RootState } from '../../types'; import { TAB_TYPE } from '../../util/componentTypes'; import { CascadeFilter } from './FilterBar/CascadeFilters/types'; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/utils.ts index 60925c79bac8..1ebba4619e35 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/utils.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/utils.ts @@ -17,21 +17,21 @@ * under the License. */ import { - ExtraFormData, - QueryFormData, - getChartMetadataRegistry, + AdhocFilter, Behavior, + DataMaskStateWithId, EXTRA_FORM_DATA_APPEND_KEYS, EXTRA_FORM_DATA_OVERRIDE_KEYS, - AdhocFilter, + ExtraFormData, FeatureFlag, + Filter, + getChartMetadataRegistry, + QueryFormData, } from '@superset-ui/core'; import { Charts, DashboardLayout } from 'src/dashboard/types'; import { RefObject } from 'react'; -import { DataMaskStateWithId } from 'src/dataMask/types'; import extractUrlParams from 'src/dashboard/util/extractUrlParams'; import { isFeatureEnabled } from 'src/featureFlags'; -import { Filter } from './types'; import { CHART_TYPE, TAB_TYPE } from '../../util/componentTypes'; import { DASHBOARD_GRID_ID, DASHBOARD_ROOT_ID } from '../../util/constants'; diff --git a/superset-frontend/src/dashboard/fixtures/mockNativeFilters.ts b/superset-frontend/src/dashboard/fixtures/mockNativeFilters.ts index f6766cfb70ba..9ace211b9b3e 100644 --- a/superset-frontend/src/dashboard/fixtures/mockNativeFilters.ts +++ b/superset-frontend/src/dashboard/fixtures/mockNativeFilters.ts @@ -16,9 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -import { NativeFilterType } from 'src/dashboard/components/nativeFilters/types'; -import { NativeFiltersState } from 'src/dashboard/reducers/types'; -import { DataMaskStateWithId } from 'src/dataMask/types'; +import { + DataMaskStateWithId, + NativeFiltersState, + NativeFilterType, +} from '@superset-ui/core'; export const mockDataMaskInfo: DataMaskStateWithId = { DefaultsID: { diff --git a/superset-frontend/src/dashboard/reducers/nativeFilters.ts b/superset-frontend/src/dashboard/reducers/nativeFilters.ts index 1521ec10c512..b3900af31cf5 100644 --- a/superset-frontend/src/dashboard/reducers/nativeFilters.ts +++ b/superset-frontend/src/dashboard/reducers/nativeFilters.ts @@ -24,8 +24,11 @@ import { SET_FOCUSED_NATIVE_FILTER, UNSET_FOCUSED_NATIVE_FILTER, } from 'src/dashboard/actions/nativeFilters'; -import { FilterSet, NativeFiltersState } from './types'; -import { FilterConfiguration } from '../components/nativeFilters/types'; +import { + FilterSet, + FilterConfiguration, + NativeFiltersState, +} from '@superset-ui/core'; import { HYDRATE_DASHBOARD } from '../actions/hydrate'; export function getInitialState({ diff --git a/superset-frontend/src/dashboard/reducers/types.ts b/superset-frontend/src/dashboard/reducers/types.ts index 5cef1a1fa742..8044600b9658 100644 --- a/superset-frontend/src/dashboard/reducers/types.ts +++ b/superset-frontend/src/dashboard/reducers/types.ts @@ -18,9 +18,7 @@ */ import componentTypes from 'src/dashboard/util/componentTypes'; -import { DataMaskStateWithId } from 'src/dataMask/types'; -import { JsonObject } from '@superset-ui/core'; -import { Filter, Scope } from '../components/nativeFilters/types'; +import { Scope, JsonObject } from '@superset-ui/core'; export enum Scoping { All = 'All', @@ -82,13 +80,6 @@ export type LayoutItem = { }; }; -export type FilterSet = { - id: number; - name: string; - nativeFilters: Filters; - dataMask: DataMaskStateWithId; -}; - export type FilterSetFullData = { changed_by_fk: string | null; changed_on: string | null; @@ -101,17 +92,3 @@ export type FilterSetFullData = { owner_type: string; params: JsonObject; }; - -export type FilterSets = { - [filtersSetId: string]: FilterSet; -}; - -export type Filters = { - [filterId: string]: Filter; -}; - -export type NativeFiltersState = { - filters: Filters; - filterSets: FilterSets; - focusedFilterId?: string; -}; diff --git a/superset-frontend/src/dashboard/types.ts b/superset-frontend/src/dashboard/types.ts index 1496b988943f..24b7a5b0bd8e 100644 --- a/superset-frontend/src/dashboard/types.ts +++ b/superset-frontend/src/dashboard/types.ts @@ -18,17 +18,17 @@ */ import { ChartProps, + DataMaskStateWithId, ExtraFormData, GenericDataType, JsonObject, + NativeFiltersState, } from '@superset-ui/core'; import { DatasourceMeta } from '@superset-ui/chart-controls'; import { chart } from 'src/chart/chartReducer'; import componentTypes from 'src/dashboard/util/componentTypes'; import { User } from 'src/types/bootstrapTypes'; -import { DataMaskStateWithId } from '../dataMask/types'; -import { NativeFiltersState } from './reducers/types'; import { ChartState } from '../explore/types'; export { Dashboard } from 'src/types/Dashboard'; diff --git a/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts b/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts index 7b9dc10a4a0e..7d037f154fbf 100644 --- a/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts +++ b/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts @@ -16,12 +16,15 @@ * specific language governing permissions and limitations * under the License. */ -import { DataMaskStateWithId } from 'src/dataMask/types'; -import { JsonObject } from '@superset-ui/core'; +import { + DataMaskStateWithId, + Filters, + JsonObject, + Scope, +} from '@superset-ui/core'; import { CHART_TYPE } from './componentTypes'; -import { Scope } from '../components/nativeFilters/types'; import { ActiveFilters, Layout, LayoutItem } from '../types'; -import { ChartConfiguration, Filters } from '../reducers/types'; +import { ChartConfiguration } from '../reducers/types'; import { DASHBOARD_ROOT_ID } from './constants'; // Looking for affected chart scopes and values diff --git a/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts b/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts index 24aa2e821a29..90022a9dce39 100644 --- a/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts +++ b/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts @@ -16,13 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -import { DataRecordFilters, JsonObject } from '@superset-ui/core'; +import { + DataMaskStateWithId, + DataRecordFilters, + JsonObject, + NativeFiltersState, +} from '@superset-ui/core'; import { ChartQueryPayload, Charts, LayoutItem } from 'src/dashboard/types'; import { getExtraFormData } from 'src/dashboard/components/nativeFilters/utils'; -import { DataMaskStateWithId } from 'src/dataMask/types'; import { areObjectsEqual } from 'src/reduxUtils'; import getEffectiveExtraFilters from './getEffectiveExtraFilters'; -import { ChartConfiguration, NativeFiltersState } from '../../reducers/types'; +import { ChartConfiguration } from '../../reducers/types'; import { getAllActiveFilters } from '../activeAllDashboardFilters'; // We cache formData objects so that our connected container components don't always trigger diff --git a/superset-frontend/src/dashboard/util/filterboxMigrationHelper.ts b/superset-frontend/src/dashboard/util/filterboxMigrationHelper.ts index 87b3ab5e52b6..523577520ee7 100644 --- a/superset-frontend/src/dashboard/util/filterboxMigrationHelper.ts +++ b/superset-frontend/src/dashboard/util/filterboxMigrationHelper.ts @@ -19,17 +19,13 @@ import shortid from 'shortid'; import { find, isEmpty } from 'lodash'; -import { - Filter, - NativeFilterType, -} from 'src/dashboard/components/nativeFilters/types'; import { FILTER_CONFIG_ATTRIBUTES, TIME_FILTER_LABELS, TIME_FILTER_MAP, } from 'src/explore/constants'; import { DASHBOARD_FILTER_SCOPE_GLOBAL } from 'src/dashboard/reducers/dashboardFilters'; -import { TimeGranularity } from '@superset-ui/core'; +import { Filter, NativeFilterType, TimeGranularity } from '@superset-ui/core'; import { getChartIdsInFilterScope } from './activeDashboardFilters'; import getFilterConfigsFromFormdata from './getFilterConfigsFromFormdata'; diff --git a/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts b/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts index d60efaa185b4..0756ef03b3fc 100644 --- a/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts +++ b/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts @@ -16,11 +16,11 @@ * specific language governing permissions and limitations * under the License. */ +import { Filter } from '@superset-ui/core'; import getFormDataWithExtraFilters, { GetFormDataWithExtraFiltersArguments, } from 'src/dashboard/util/charts/getFormDataWithExtraFilters'; import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants'; -import { Filter } from 'src/dashboard/components/nativeFilters/types'; import { LayoutItem } from 'src/dashboard/types'; import { dashboardLayout } from 'spec/fixtures/mockDashboardLayout'; import { sliceId as chartId } from 'spec/fixtures/mockChartQueries'; diff --git a/superset-frontend/src/dataMask/actions.ts b/superset-frontend/src/dataMask/actions.ts index b98f36ebd5f2..a26b49f80729 100644 --- a/superset-frontend/src/dataMask/actions.ts +++ b/superset-frontend/src/dataMask/actions.ts @@ -16,10 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -import { DataMask } from '@superset-ui/core'; -import { FilterConfiguration } from '../dashboard/components/nativeFilters/types'; +import { DataMask, FilterConfiguration, Filters } from '@superset-ui/core'; import { FeatureFlag, isFeatureEnabled } from '../featureFlags'; -import { Filters } from '../dashboard/reducers/types'; import { getInitialDataMask } from './reducer'; export const CLEAR_DATA_MASK_STATE = 'CLEAR_DATA_MASK_STATE'; diff --git a/superset-frontend/src/dataMask/reducer.ts b/superset-frontend/src/dataMask/reducer.ts index 60d09f0df347..ae30d1be7852 100644 --- a/superset-frontend/src/dataMask/reducer.ts +++ b/superset-frontend/src/dataMask/reducer.ts @@ -20,23 +20,25 @@ /* eslint-disable no-param-reassign */ // <- When we work with Immer, we need reassign, so disabling lint import produce from 'immer'; -import { DataMask, FeatureFlag } from '@superset-ui/core'; +import { + DataMask, + DataMaskStateWithId, + DataMaskWithId, + FeatureFlag, + Filter, + FilterConfiguration, + Filters, +} from '@superset-ui/core'; import { NATIVE_FILTER_PREFIX } from 'src/dashboard/components/nativeFilters/FiltersConfigModal/utils'; import { HYDRATE_DASHBOARD } from 'src/dashboard/actions/hydrate'; import { isFeatureEnabled } from 'src/featureFlags'; -import { DataMaskStateWithId, DataMaskWithId } from './types'; import { AnyDataMaskAction, CLEAR_DATA_MASK_STATE, SET_DATA_MASK_FOR_FILTER_CONFIG_COMPLETE, UPDATE_DATA_MASK, } from './actions'; -import { - Filter, - FilterConfiguration, -} from '../dashboard/components/nativeFilters/types'; import { areObjectsEqual } from '../reduxUtils'; -import { Filters } from '../dashboard/reducers/types'; export function getInitialDataMask( id?: string | number, diff --git a/superset-frontend/src/visualizations/dashboardComponents/ExampleComponent/ExampleComponent.tsx b/superset-frontend/src/visualizations/dashboardComponents/ExampleComponent/ExampleComponent.tsx index 9237cd7fbd21..22c135363d76 100644 --- a/superset-frontend/src/visualizations/dashboardComponents/ExampleComponent/ExampleComponent.tsx +++ b/superset-frontend/src/visualizations/dashboardComponents/ExampleComponent/ExampleComponent.tsx @@ -17,11 +17,17 @@ * under the License. */ import React from 'react'; -import { JsonObject } from '@superset-ui/core'; +import { DashboardComponentMetadata, t } from '@superset-ui/core'; // TODO: POC only component can be removed after PR approved -const ExampleComponent = ({ dashboardData }: JsonObject) => ( -
We have the following keys: {Object.keys(dashboardData).join(', ')}
+const ExampleComponent = ({ + metadata, +}: { + metadata: DashboardComponentMetadata; +}) => ( +
+ {t('We have the following keys: %s', Object.keys(metadata).join(', '))} +
); export default ExampleComponent;