You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/06/15 19:52:21 UTC
(superset) branch chore/remove-unused-frontend-modules created (now daddd3beba9)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch chore/remove-unused-frontend-modules
in repository https://gitbox.apache.org/repos/asf/superset.git
at daddd3beba9 chore(frontend): remove unused modules flagged by knip
This branch includes the following new commits:
new daddd3beba9 chore(frontend): remove unused modules flagged by knip
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(superset) 01/01: chore(frontend): remove unused modules flagged by knip
Posted by ru...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch chore/remove-unused-frontend-modules
in repository https://gitbox.apache.org/repos/asf/superset.git
commit daddd3beba9e29bc11de59ca1012a77f1e71d136
Author: Superset Dev <de...@superset.apache.org>
AuthorDate: Mon Jun 15 12:52:08 2026 -0700
chore(frontend): remove unused modules flagged by knip
A knip scan (unused-files) surfaced a set of src/ modules with zero
references anywhere in the repo — no imports, no tests, no stories. Each
was verified by hand (fixed-string + path-based grep across src, packages,
plugins, cypress, storybook) before removal. None are entry points or
referenced via barrels/dynamic imports.
Removed:
- dashboard/components/nativeFilters/ConfigModal/BaseConfigModal.tsx
- dashboard/util/charts/useAllChartIds.ts
- dashboard/util/logging/getLoadStatsPerTopLevelComponent.ts
- dashboard/util/logging/findTopLevelComponentIds.ts (only used by the above)
- dashboard/util/setPeriodicRunner.ts
- features/tags/TagCard.tsx
- hooks/useMemoCompare.ts
- hooks/useOpenerRef.ts
- utils/isDashboardVirtualizationEnabled.ts
`tsc --noEmit` shows no new errors (pre-existing failures in unrelated
echarts/pivot/ace packages are untouched).
Co-Authored-By: Claude Fable 5 <no...@anthropic.com>
---
.../nativeFilters/ConfigModal/BaseConfigModal.tsx | 148 ---------------------
.../src/dashboard/util/charts/useAllChartIds.ts | 29 ----
.../util/logging/findTopLevelComponentIds.ts | 113 ----------------
.../logging/getLoadStatsPerTopLevelComponent.ts | 59 --------
.../src/dashboard/util/setPeriodicRunner.ts | 42 ------
superset-frontend/src/features/tags/TagCard.tsx | 126 ------------------
superset-frontend/src/hooks/useMemoCompare.ts | 39 ------
superset-frontend/src/hooks/useOpenerRef.ts | 32 -----
.../src/utils/isDashboardVirtualizationEnabled.ts | 30 -----
9 files changed, 618 deletions(-)
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/BaseConfigModal.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/BaseConfigModal.tsx
deleted file mode 100644
index e2b915ea1e0..00000000000
--- a/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/BaseConfigModal.tsx
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { ReactNode, useState, useCallback } from 'react';
-import type { FormInstance } from '@superset-ui/core/components';
-import { ErrorBoundary } from 'src/components/ErrorBoundary';
-import { BaseModalBody, BaseForm, BaseModalWrapper } from './SharedStyles';
-import { ModalFooter } from './ModalFooter';
-
-export interface BaseConfigModalProps {
- isOpen: boolean;
- title: string;
- expanded?: boolean;
- onCancel: () => void;
- onSave: () => void;
- leftPane: ReactNode;
- rightPane: ReactNode;
- footer?: ReactNode;
- form?: FormInstance;
- onValuesChange?: (changedValues: any, allValues: any) => void;
- canSave?: boolean;
- saveAlertVisible?: boolean;
- onDismissSaveAlert?: () => void;
- onConfirmCancel?: () => void;
- onToggleExpand?: () => void;
- testId?: string;
- maskClosable?: boolean;
- destroyOnClose?: boolean;
- centered?: boolean;
-}
-
-export const BaseConfigModal = ({
- isOpen,
- title,
- expanded = false,
- onCancel,
- onSave,
- leftPane,
- rightPane,
- footer,
- form,
- onValuesChange,
- canSave = true,
- saveAlertVisible = false,
- onDismissSaveAlert,
- onConfirmCancel,
- onToggleExpand,
- testId = 'base-config-modal',
- maskClosable = false,
- destroyOnClose = true,
- centered = true,
-}: BaseConfigModalProps) => {
- const [internalExpanded, setInternalExpanded] = useState(false);
-
- const isExpandedControlled = onToggleExpand !== undefined;
- const isExpanded = isExpandedControlled ? expanded : internalExpanded;
-
- const handleToggleExpand = useCallback(() => {
- if (isExpandedControlled && onToggleExpand) {
- onToggleExpand();
- } else {
- setInternalExpanded(!internalExpanded);
- }
- }, [isExpandedControlled, onToggleExpand, internalExpanded]);
-
- const handleCancel = useCallback(() => {
- onCancel();
- }, [onCancel]);
-
- const handleSave = useCallback(() => {
- onSave();
- }, [onSave]);
-
- const handleDismissSaveAlert = useCallback(() => {
- if (onDismissSaveAlert) {
- onDismissSaveAlert();
- }
- }, [onDismissSaveAlert]);
-
- const handleConfirmCancel = useCallback(() => {
- if (onConfirmCancel) {
- onConfirmCancel();
- } else {
- onCancel();
- }
- }, [onConfirmCancel, onCancel]);
-
- const defaultFooter = (
- <ModalFooter
- onCancel={handleCancel}
- onSave={handleSave}
- onConfirmCancel={handleConfirmCancel}
- onDismiss={handleDismissSaveAlert}
- saveAlertVisible={saveAlertVisible}
- canSave={canSave}
- expanded={isExpanded}
- onToggleExpand={handleToggleExpand}
- saveButtonTestId={`${testId}-save-button`}
- cancelButtonTestId={`${testId}-cancel-button`}
- />
- );
-
- return (
- <BaseModalWrapper
- open={isOpen}
- onCancel={handleCancel}
- onOk={handleSave}
- title={title}
- footer={footer || defaultFooter}
- centered={centered}
- destroyOnClose={destroyOnClose}
- maskClosable={maskClosable}
- data-test={testId}
- expanded={isExpanded}
- >
- <ErrorBoundary>
- <BaseModalBody expanded={isExpanded}>
- <BaseForm
- form={form}
- onValuesChange={onValuesChange}
- layout="vertical"
- css={{ width: '100%' }}
- >
- {leftPane}
- {rightPane}
- </BaseForm>
- </BaseModalBody>
- </ErrorBoundary>
- </BaseModalWrapper>
- );
-};
-
-export default BaseConfigModal;
diff --git a/superset-frontend/src/dashboard/util/charts/useAllChartIds.ts b/superset-frontend/src/dashboard/util/charts/useAllChartIds.ts
deleted file mode 100644
index dc6a48fb459..00000000000
--- a/superset-frontend/src/dashboard/util/charts/useAllChartIds.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { useSelector } from 'react-redux';
-import { useMemo } from 'react';
-import { RootState } from 'src/dashboard/types';
-import getChartIdsFromLayout from '../getChartIdsFromLayout';
-
-export const useAllChartIds = () => {
- const layout = useSelector(
- (state: RootState) => state.dashboardLayout.present,
- );
- return useMemo(() => getChartIdsFromLayout(layout), [layout]);
-};
diff --git a/superset-frontend/src/dashboard/util/logging/findTopLevelComponentIds.ts b/superset-frontend/src/dashboard/util/logging/findTopLevelComponentIds.ts
deleted file mode 100644
index d1ccb71067c..00000000000
--- a/superset-frontend/src/dashboard/util/logging/findTopLevelComponentIds.ts
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { Layout, LayoutItem } from 'src/dashboard/types';
-import { TAB_TYPE, DASHBOARD_GRID_TYPE } from '../componentTypes';
-import { DASHBOARD_ROOT_ID } from '../constants';
-import findNonTabChildChartIds from './findNonTabChildChartIds';
-
-interface TopLevelNode {
- id: string;
- type: string;
- parent_type: string | null;
- parent_id: string | null;
- index: number | null;
- depth: number;
- slice_ids: number[];
-}
-
-interface RecurseParams {
- node: LayoutItem | undefined;
- index?: number | null;
- depth: number;
- parentType?: string | null;
- parentId?: string | null;
-}
-
-// This function traverses the layout to identify top grid + tab level components
-// for which we track load times
-function findTopLevelComponentIds(layout: Layout): TopLevelNode[] {
- const topLevelNodes: TopLevelNode[] = [];
-
- function recurseFromNode({
- node,
- index = null,
- depth,
- parentType = null,
- parentId = null,
- }: RecurseParams): void {
- if (!node) return;
-
- let nextParentType = parentType;
- let nextParentId = parentId;
- let nextDepth = depth;
- if (node.type === TAB_TYPE || node.type === DASHBOARD_GRID_TYPE) {
- const chartIds = findNonTabChildChartIds({
- layout,
- id: node.id,
- });
-
- topLevelNodes.push({
- id: node.id,
- type: node.type,
- parent_type: parentType,
- parent_id: parentId,
- index,
- depth,
- slice_ids: chartIds,
- });
-
- nextParentId = node.id;
- nextParentType = node.type;
- nextDepth += 1;
- }
- if (node.children && node.children.length) {
- node.children.forEach((childId, childIndex) => {
- recurseFromNode({
- node: layout[childId],
- index: childIndex,
- parentType: nextParentType,
- parentId: nextParentId,
- depth: nextDepth,
- });
- });
- }
- }
-
- recurseFromNode({
- node: layout[DASHBOARD_ROOT_ID],
- depth: 0,
- });
-
- return topLevelNodes;
-}
-
-// This method is called frequently, so cache results
-let cachedLayout: Layout | undefined;
-let cachedTopLevelNodes: TopLevelNode[] = [];
-export default function findTopLevelComponentIdsWithCache(
- layout: Layout,
-): TopLevelNode[] {
- if (layout === cachedLayout) {
- return cachedTopLevelNodes;
- }
- cachedLayout = layout;
- cachedTopLevelNodes = findTopLevelComponentIds(layout);
-
- return cachedTopLevelNodes;
-}
diff --git a/superset-frontend/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.ts b/superset-frontend/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.ts
deleted file mode 100644
index f5bb6451067..00000000000
--- a/superset-frontend/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { ChartState } from 'src/explore/types';
-import { Layout } from 'src/dashboard/types';
-import findTopLevelComponentIds from './findTopLevelComponentIds';
-import childChartsDidLoad from './childChartsDidLoad';
-
-interface GetLoadStatsParams {
- layout: Layout;
- chartQueries: Record<string, Partial<ChartState>>;
-}
-
-interface LoadStats {
- didLoad: boolean;
- id: string;
- minQueryStartTime: number | null;
- [key: string]: unknown;
-}
-
-export default function getLoadStatsPerTopLevelComponent({
- layout,
- chartQueries,
-}: GetLoadStatsParams): Record<string, LoadStats> {
- const topLevelComponents = findTopLevelComponentIds(layout);
- const stats: Record<string, LoadStats> = {};
- topLevelComponents.forEach(topLevelComponent => {
- const { id, ...restStats } = topLevelComponent;
- const { didLoad, minQueryStartTime } = childChartsDidLoad({
- id,
- layout,
- chartQueries,
- });
-
- stats[id] = {
- didLoad,
- id,
- minQueryStartTime,
- ...restStats,
- };
- });
-
- return stats;
-}
diff --git a/superset-frontend/src/dashboard/util/setPeriodicRunner.ts b/superset-frontend/src/dashboard/util/setPeriodicRunner.ts
deleted file mode 100644
index c5177edf718..00000000000
--- a/superset-frontend/src/dashboard/util/setPeriodicRunner.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-export const stopPeriodicRender = (refreshTimer?: number) => {
- if (refreshTimer) {
- clearInterval(refreshTimer);
- }
-};
-
-interface SetPeriodicRunnerProps {
- interval?: number;
- periodicRender: TimerHandler;
- refreshTimer?: number;
-}
-
-export default function setPeriodicRunner({
- interval = 0,
- periodicRender,
- refreshTimer,
-}: SetPeriodicRunnerProps) {
- stopPeriodicRender(refreshTimer);
-
- if (interval > 0) {
- return setInterval(periodicRender, interval);
- }
- return 0;
-}
diff --git a/superset-frontend/src/features/tags/TagCard.tsx b/superset-frontend/src/features/tags/TagCard.tsx
deleted file mode 100644
index 6158acc119c..00000000000
--- a/superset-frontend/src/features/tags/TagCard.tsx
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { Link } from 'react-router-dom';
-import { t } from '@apache-superset/core/translation';
-import { isFeatureEnabled, FeatureFlag } from '@superset-ui/core';
-import { CardStyles } from 'src/views/CRUD/utils';
-import {
- Button,
- Dropdown,
- ConfirmStatusChange,
- ListViewCard,
-} from '@superset-ui/core/components';
-import { MenuItem } from '@superset-ui/core/components/Menu';
-import { Icons } from '@superset-ui/core/components/Icons';
-import { Tag } from 'src/views/CRUD/types';
-import { deleteTags } from 'src/features/tags/tags';
-import { assetUrl } from 'src/utils/assetUrl';
-
-interface TagCardProps {
- tag: Tag;
- hasPerm: (name: string) => boolean;
- bulkSelectEnabled: boolean;
- refreshData: () => void;
- loading: boolean;
- addDangerToast: (msg: string) => void;
- addSuccessToast: (msg: string) => void;
- tagFilter?: string;
- userId?: string | number;
- showThumbnails?: boolean;
-}
-
-function TagCard({
- tag,
- hasPerm,
- refreshData,
- addDangerToast,
- addSuccessToast,
- showThumbnails,
-}: TagCardProps) {
- const canDelete = hasPerm('can_write');
-
- const handleTagDelete = (tag: Tag) => {
- deleteTags([tag], addSuccessToast, addDangerToast);
- refreshData();
- };
-
- const menuItems: MenuItem[] = [];
- if (canDelete) {
- menuItems.push({
- key: 'delete-tag',
- label: (
- <ConfirmStatusChange
- title={t('Please confirm')}
- description={
- <>
- {t('Are you sure you want to delete')} <b>{tag.name}</b>?
- </>
- }
- onConfirm={() => handleTagDelete(tag)}
- >
- {confirmDelete => (
- <div
- role="button"
- tabIndex={0}
- className="action-button"
- onClick={confirmDelete}
- data-test="dashboard-card-option-delete-button"
- >
- <Icons.DeleteOutlined iconSize="l" /> {t('Delete')}
- </div>
- )}
- </ConfirmStatusChange>
- ),
- });
- }
- return (
- <CardStyles>
- <ListViewCard
- title={tag.name}
- cover={
- !isFeatureEnabled(FeatureFlag.Thumbnails) || !showThumbnails ? (
- <></>
- ) : null
- }
- url={undefined}
- linkComponent={Link}
- imgFallbackURL={assetUrl(
- '/static/assets/images/dashboard-card-fallback.svg',
- )}
- description={t('Modified %s', tag.changed_on_delta_humanized)}
- actions={
- <ListViewCard.Actions
- onClick={e => {
- e.stopPropagation();
- e.preventDefault();
- }}
- >
- <Dropdown menu={{ items: menuItems }} trigger={['click', 'hover']}>
- <Button buttonSize="xsmall" buttonStyle="link">
- <Icons.MoreOutlined iconSize="xl" />
- </Button>
- </Dropdown>
- </ListViewCard.Actions>
- }
- />
- </CardStyles>
- );
-}
-
-export default TagCard;
diff --git a/superset-frontend/src/hooks/useMemoCompare.ts b/superset-frontend/src/hooks/useMemoCompare.ts
deleted file mode 100644
index 2092c882e5c..00000000000
--- a/superset-frontend/src/hooks/useMemoCompare.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import { useEffect, useRef } from 'react';
-import { isDefined } from '@superset-ui/core';
-
-export const useMemoCompare = <T>(
- next: T,
- compare: (prev: T | undefined, next: T) => boolean,
-) => {
- const previousRef = useRef<T>();
- const previous = previousRef.current;
- const isEqual = compare(previous, next);
- useEffect(() => {
- if (!isEqual) {
- previousRef.current = next;
- }
- });
- if (!isDefined(previous)) {
- return next;
- }
- return isEqual ? previous : next;
-};
diff --git a/superset-frontend/src/hooks/useOpenerRef.ts b/superset-frontend/src/hooks/useOpenerRef.ts
deleted file mode 100644
index be4b115ede5..00000000000
--- a/superset-frontend/src/hooks/useOpenerRef.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import { useEffect, useRef } from 'react';
-
-export function useOpenerRef(active: boolean) {
- const openerRef = useRef<HTMLElement | null>(null);
-
- useEffect(() => {
- if (active) {
- openerRef.current = document.activeElement as HTMLElement;
- }
- }, [active]);
-
- return openerRef;
-}
diff --git a/superset-frontend/src/utils/isDashboardVirtualizationEnabled.ts b/superset-frontend/src/utils/isDashboardVirtualizationEnabled.ts
deleted file mode 100644
index f82f9d89e47..00000000000
--- a/superset-frontend/src/utils/isDashboardVirtualizationEnabled.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-export enum DashboardVirtualizationMode {
- None = 'NONE',
- Viewport = 'VIEWPORT',
- Paginated = 'PAGINATED',
-}
-
-export const isDashboardVirtualizationEnabled = (
- virtualizationMode: DashboardVirtualizationMode,
-) =>
- virtualizationMode === DashboardVirtualizationMode.Viewport ||
- virtualizationMode === DashboardVirtualizationMode.Paginated;