This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 333dc85  feat: tablechart plugin controls migration (#9847)
333dc85 is described below

commit 333dc8529ee271aee23641d5a02c808ad70cbb33
Author: Phillip Kelley-Dotson <pkelleydot...@yahoo.com>
AuthorDate: Thu May 21 12:15:02 2020 -0700

    feat: tablechart plugin controls migration (#9847)
    
    * delete controls
    
    * move columnoption to controls
    
    * update package and remove columnoption
    
    * fix: remove console and fix import
    
    * fix: lint
    
    * update version
    
    * fix last rebase
    
    * fix: lint:
---
 superset-frontend/package-lock.json                |  12 +-
 superset-frontend/package.json                     |   2 +-
 .../javascripts/components/ColumnOption_spec.jsx   | 104 ---------
 .../components/ColumnTypeLabel_spec.jsx            |   1 +
 .../components/FilterDefinitionOption_spec.jsx     |   2 +-
 .../components/MetricDefinitionOption_spec.jsx     |   2 +-
 .../spec/javascripts/explore/controlUtils_spec.jsx |   2 +-
 superset-frontend/src/components/ColumnOption.jsx  |  70 ------
 .../explore/components/AdhocMetricEditPopover.jsx  |   2 +-
 .../explore/components/FilterDefinitionOption.jsx  |   2 +-
 .../explore/components/MetricDefinitionOption.jsx  |   2 +-
 .../components/controls/DatasourceControl.jsx      |   3 +-
 .../src/explore/controlPanels/EventFlow.jsx        |   2 +-
 .../src/explore/controlPanels/Shared_DeckGL.jsx    |   2 +-
 .../src/explore/controlPanels/Table.jsx            | 256 ---------------------
 superset-frontend/src/explore/controls.jsx         |   2 +-
 superset-frontend/src/setup/setupPlugins.ts        |   2 -
 17 files changed, 18 insertions(+), 450 deletions(-)

diff --git a/superset-frontend/package-lock.json 
b/superset-frontend/package-lock.json
index 6db782c..fba042e 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -6898,9 +6898,9 @@
       }
     },
     "@superset-ui/legacy-plugin-chart-table": {
-      "version": "0.13.5",
-      "resolved": 
"https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-table/-/legacy-plugin-chart-table-0.13.5.tgz";,
-      "integrity": 
"sha512-8AIb0y+HuDSpFA3b1Uv2bnXu0o5Bmv+KjWJn+eZZIIWLyL7l6NE79OMacjdrGglTGxu3fIa2lYf9ljINHEiCTg==",
+      "version": "0.13.16",
+      "resolved": 
"https://registry.npmjs.org/@superset-ui/legacy-plugin-chart-table/-/legacy-plugin-chart-table-0.13.16.tgz";,
+      "integrity": 
"sha512-4j1bLmKhWEB9pXT4PEPUijLzpFmeskZU2WRBDNaidWUgw8vw0R5vSbSzlf9P5UIBnEgb2RfF/cWMT/FelDG3ug==",
       "requires": {
         "@types/datatables.net": "^1.10.18",
         "@types/react-dom": "^16.9.6",
@@ -6909,9 +6909,9 @@
       },
       "dependencies": {
         "@types/react-dom": {
-          "version": "16.9.7",
-          "resolved": 
"https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.7.tgz";,
-          "integrity": 
"sha512-GHTYhM8/OwUCf254WO5xqR/aqD3gC9kSTLpopWGpQLpnw23jk44RvMHsyUSEplvRJZdHxhJGMMLF0kCPYHPhQA==",
+          "version": "16.9.8",
+          "resolved": 
"https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz";,
+          "integrity": 
"sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==",
           "requires": {
             "@types/react": "*"
           }
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index c751873..13d4b4a 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -84,7 +84,7 @@
     "@superset-ui/legacy-plugin-chart-rose": "^0.13.10",
     "@superset-ui/legacy-plugin-chart-sankey": "^0.13.10",
     "@superset-ui/legacy-plugin-chart-sunburst": "^0.13.7",
-    "@superset-ui/legacy-plugin-chart-table": "^0.13.5",
+    "@superset-ui/legacy-plugin-chart-table": "^0.13.16",
     "@superset-ui/legacy-plugin-chart-treemap": "^0.13.10",
     "@superset-ui/legacy-plugin-chart-world-map": "^0.13.10",
     "@superset-ui/legacy-preset-chart-big-number": "^0.13.14",
diff --git 
a/superset-frontend/spec/javascripts/components/ColumnOption_spec.jsx 
b/superset-frontend/spec/javascripts/components/ColumnOption_spec.jsx
deleted file mode 100644
index 8375ba6..0000000
--- a/superset-frontend/spec/javascripts/components/ColumnOption_spec.jsx
+++ /dev/null
@@ -1,104 +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 React from 'react';
-import { shallow } from 'enzyme';
-
-import { InfoTooltipWithTrigger } from '@superset-ui/control-utils';
-import ColumnOption from 'src/components/ColumnOption';
-import ColumnTypeLabel from 'src/components/ColumnTypeLabel';
-
-describe('ColumnOption', () => {
-  const defaultProps = {
-    column: {
-      column_name: 'foo',
-      verbose_name: 'Foo',
-      expression: 'SUM(foo)',
-      description: 'Foo is the greatest column of all',
-    },
-    showType: false,
-  };
-
-  let wrapper;
-  let props;
-  const factory = o => <ColumnOption {...o} />;
-  beforeEach(() => {
-    wrapper = shallow(factory(defaultProps));
-    props = { ...defaultProps };
-  });
-  it('is a valid element', () => {
-    expect(React.isValidElement(<ColumnOption {...defaultProps} 
/>)).toBe(true);
-  });
-  it('shows a label with verbose_name', () => {
-    const lbl = wrapper.find('.option-label');
-    expect(lbl).toHaveLength(1);
-    expect(lbl.first().text()).toBe('Foo');
-  });
-  it('shows 2 InfoTooltipWithTrigger', () => {
-    expect(wrapper.find(InfoTooltipWithTrigger)).toHaveLength(2);
-  });
-  it('shows only 1 InfoTooltipWithTrigger when no descr', () => {
-    props.column.description = null;
-    wrapper = shallow(factory(props));
-    expect(wrapper.find(InfoTooltipWithTrigger)).toHaveLength(1);
-  });
-  it('shows a label with column_name when no verbose_name', () => {
-    props.column.verbose_name = null;
-    wrapper = shallow(factory(props));
-    expect(wrapper.find('.option-label').first().text()).toBe('foo');
-  });
-  it('shows a column type label when showType is true', () => {
-    wrapper = shallow(
-      factory({
-        ...props,
-        showType: true,
-        column: {
-          expression: null,
-          type: 'str',
-        },
-      }),
-    );
-    expect(wrapper.find(ColumnTypeLabel)).toHaveLength(1);
-  });
-  it('column with expression has correct column label if showType is true', () 
=> {
-    props.showType = true;
-    wrapper = shallow(factory(props));
-    expect(wrapper.find(ColumnTypeLabel)).toHaveLength(1);
-    expect(wrapper.find(ColumnTypeLabel).props().type).toBe('expression');
-  });
-  it('shows no column type label when type is null', () => {
-    wrapper = shallow(
-      factory({
-        ...props,
-        showType: true,
-        column: {
-          expression: null,
-          type: null,
-        },
-      }),
-    );
-    expect(wrapper.find(ColumnTypeLabel)).toHaveLength(0);
-  });
-  it('dttm column has correct column label if showType is true', () => {
-    props.showType = true;
-    props.column.is_dttm = true;
-    wrapper = shallow(factory(props));
-    expect(wrapper.find(ColumnTypeLabel)).toHaveLength(1);
-    expect(wrapper.find(ColumnTypeLabel).props().type).toBe('time');
-  });
-});
diff --git 
a/superset-frontend/spec/javascripts/components/ColumnTypeLabel_spec.jsx 
b/superset-frontend/spec/javascripts/components/ColumnTypeLabel_spec.jsx
index 2bf7a20..0acb7bd 100644
--- a/superset-frontend/spec/javascripts/components/ColumnTypeLabel_spec.jsx
+++ b/superset-frontend/spec/javascripts/components/ColumnTypeLabel_spec.jsx
@@ -19,6 +19,7 @@
 import React from 'react';
 import { shallow } from 'enzyme';
 
+import { ColumnOption } from '@superset-ui/control-utils';
 import ColumnTypeLabel from 'src/components/ColumnTypeLabel';
 
 describe('ColumnOption', () => {
diff --git 
a/superset-frontend/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx
 
b/superset-frontend/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx
index 9dd0892..58041eb 100644
--- 
a/superset-frontend/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx
+++ 
b/superset-frontend/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx
@@ -20,8 +20,8 @@
 import React from 'react';
 import { shallow } from 'enzyme';
 
+import { ColumnOption } from '@superset-ui/control-utils';
 import FilterDefinitionOption from 
'src/explore/components/FilterDefinitionOption';
-import ColumnOption from 'src/components/ColumnOption';
 import AdhocMetricStaticOption from 
'src/explore/components/AdhocMetricStaticOption';
 import AdhocMetric, { EXPRESSION_TYPES } from 'src/explore/AdhocMetric';
 import { AGGREGATES } from 'src/explore/constants';
diff --git 
a/superset-frontend/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx
 
b/superset-frontend/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx
index 5a3a2e6..d0271fa 100644
--- 
a/superset-frontend/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx
+++ 
b/superset-frontend/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx
@@ -20,9 +20,9 @@ import React from 'react';
 import configureStore from 'redux-mock-store';
 import { shallow } from 'enzyme';
 
+import { ColumnOption } from '@superset-ui/control-utils';
 import MetricDefinitionOption from 
'src/explore/components/MetricDefinitionOption';
 import MetricOption from 'src/components/MetricOption';
-import ColumnOption from 'src/components/ColumnOption';
 import AggregateOption from 'src/explore/components/AggregateOption';
 
 describe('MetricDefinitionOption', () => {
diff --git a/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx 
b/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
index 67f658f..be5dfcc 100644
--- a/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
+++ b/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
@@ -20,6 +20,7 @@
 import React from 'react';
 import { getChartControlPanelRegistry } from '@superset-ui/chart';
 import { t } from '@superset-ui/translation';
+import { ColumnOption } from '@superset-ui/control-utils';
 import {
   getControlConfig,
   getControlState,
@@ -27,7 +28,6 @@ import {
   applyMapStateToPropsToControl,
   getAllControlsState,
 } from 'src/explore/controlUtils';
-import ColumnOption from 'src/components/ColumnOption';
 
 describe('controlUtils', () => {
   const state = {
diff --git a/superset-frontend/src/components/ColumnOption.jsx 
b/superset-frontend/src/components/ColumnOption.jsx
deleted file mode 100644
index 06f663a..0000000
--- a/superset-frontend/src/components/ColumnOption.jsx
+++ /dev/null
@@ -1,70 +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 React from 'react';
-import PropTypes from 'prop-types';
-
-import { InfoTooltipWithTrigger } from '@superset-ui/control-utils';
-import ColumnTypeLabel from './ColumnTypeLabel';
-
-const propTypes = {
-  column: PropTypes.object.isRequired,
-  showType: PropTypes.bool,
-};
-const defaultProps = {
-  showType: false,
-};
-
-export default function ColumnOption({ column, showType }) {
-  const hasExpression =
-    column.expression && column.expression !== column.column_name;
-
-  let columnType = column.type;
-  if (column.is_dttm) {
-    columnType = 'time';
-  } else if (hasExpression) {
-    columnType = 'expression';
-  }
-
-  return (
-    <div className="column-option">
-      {showType && columnType && <ColumnTypeLabel type={columnType} />}
-      <span className="option-label column-option-label">
-        {column.verbose_name || column.column_name}
-      </span>
-      {column.description && (
-        <InfoTooltipWithTrigger
-          className="text-muted"
-          icon="info"
-          tooltip={column.description}
-          label={`descr-${column.column_name}`}
-        />
-      )}
-      {hasExpression && (
-        <InfoTooltipWithTrigger
-          className="text-muted"
-          icon="question-circle-o"
-          tooltip={column.expression}
-          label={`expr-${column.column_name}`}
-        />
-      )}
-    </div>
-  );
-}
-ColumnOption.propTypes = propTypes;
-ColumnOption.defaultProps = defaultProps;
diff --git 
a/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx 
b/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
index 3df48f5..6b6bc0e 100644
--- a/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
+++ b/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
@@ -33,12 +33,12 @@ import 'brace/mode/sql';
 import 'brace/theme/github';
 import 'brace/ext/language_tools';
 import { t } from '@superset-ui/translation';
+import { ColumnOption } from '@superset-ui/control-utils';
 
 import { AGGREGATES, AGGREGATES_OPTIONS } from '../constants';
 import AdhocMetricEditPopoverTitle from './AdhocMetricEditPopoverTitle';
 import columnType from '../propTypes/columnType';
 import AdhocMetric, { EXPRESSION_TYPES } from '../AdhocMetric';
-import ColumnOption from '../../components/ColumnOption';
 import sqlKeywords from '../../SqlLab/utils/sqlKeywords';
 
 const langTools = ace.acequire('ace/ext/language_tools');
diff --git 
a/superset-frontend/src/explore/components/FilterDefinitionOption.jsx 
b/superset-frontend/src/explore/components/FilterDefinitionOption.jsx
index cb61971..8028ade 100644
--- a/superset-frontend/src/explore/components/FilterDefinitionOption.jsx
+++ b/superset-frontend/src/explore/components/FilterDefinitionOption.jsx
@@ -18,8 +18,8 @@
  */
 import React from 'react';
 import PropTypes from 'prop-types';
+import { ColumnOption } from '@superset-ui/control-utils';
 
-import ColumnOption from '../../components/ColumnOption';
 import ColumnTypeLabel from '../../components/ColumnTypeLabel';
 import AdhocMetricStaticOption from './AdhocMetricStaticOption';
 import columnType from '../propTypes/columnType';
diff --git 
a/superset-frontend/src/explore/components/MetricDefinitionOption.jsx 
b/superset-frontend/src/explore/components/MetricDefinitionOption.jsx
index 33010e2..8481bc3 100644
--- a/superset-frontend/src/explore/components/MetricDefinitionOption.jsx
+++ b/superset-frontend/src/explore/components/MetricDefinitionOption.jsx
@@ -18,9 +18,9 @@
  */
 import React from 'react';
 import PropTypes from 'prop-types';
+import { ColumnOption } from '@superset-ui/control-utils';
 
 import MetricOption from '../../components/MetricOption';
-import ColumnOption from '../../components/ColumnOption';
 import AggregateOption from './AggregateOption';
 import columnType from '../propTypes/columnType';
 import savedMetricType from '../propTypes/savedMetricType';
diff --git 
a/superset-frontend/src/explore/components/controls/DatasourceControl.jsx 
b/superset-frontend/src/explore/components/controls/DatasourceControl.jsx
index de5d592..de652bc 100644
--- a/superset-frontend/src/explore/components/controls/DatasourceControl.jsx
+++ b/superset-frontend/src/explore/components/controls/DatasourceControl.jsx
@@ -30,9 +30,8 @@ import {
   Well,
 } from 'react-bootstrap';
 import { t } from '@superset-ui/translation';
-
+import { ColumnOption } from '@superset-ui/control-utils';
 import ControlHeader from '../ControlHeader';
-import ColumnOption from '../../../components/ColumnOption';
 import MetricOption from '../../../components/MetricOption';
 import DatasourceModal from '../../../datasource/DatasourceModal';
 import ChangeDatasourceModal from '../../../datasource/ChangeDatasourceModal';
diff --git a/superset-frontend/src/explore/controlPanels/EventFlow.jsx 
b/superset-frontend/src/explore/controlPanels/EventFlow.jsx
index 07debd1..fa32610 100644
--- a/superset-frontend/src/explore/controlPanels/EventFlow.jsx
+++ b/superset-frontend/src/explore/controlPanels/EventFlow.jsx
@@ -19,9 +19,9 @@
 import React from 'react';
 import { t } from '@superset-ui/translation';
 import { validateNonEmpty } from '@superset-ui/validator';
+import { ColumnOption } from '@superset-ui/control-utils';
 import { formatSelectOptionsForRange } from '../../modules/utils';
 import { columnChoices } from '../controls';
-import ColumnOption from '../../components/ColumnOption';
 
 export default {
   requiresTime: true,
diff --git a/superset-frontend/src/explore/controlPanels/Shared_DeckGL.jsx 
b/superset-frontend/src/explore/controlPanels/Shared_DeckGL.jsx
index b2ea162..fc1501d 100644
--- a/superset-frontend/src/explore/controlPanels/Shared_DeckGL.jsx
+++ b/superset-frontend/src/explore/controlPanels/Shared_DeckGL.jsx
@@ -22,7 +22,7 @@
 import React from 'react';
 import { t } from '@superset-ui/translation';
 import { validateNonEmpty } from '@superset-ui/validator';
-import ColumnOption from '../../components/ColumnOption';
+import { ColumnOption } from '@superset-ui/control-utils';
 import { D3_FORMAT_OPTIONS, columnChoices, PRIMARY_COLOR } from '../controls';
 import { DEFAULT_VIEWPORT } from 
'../../explore/components/controls/ViewportControl';
 
diff --git a/superset-frontend/src/explore/controlPanels/Table.jsx 
b/superset-frontend/src/explore/controlPanels/Table.jsx
deleted file mode 100644
index 09374d3..0000000
--- a/superset-frontend/src/explore/controlPanels/Table.jsx
+++ /dev/null
@@ -1,256 +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 React from 'react';
-import { t } from '@superset-ui/translation';
-import { validateNonEmpty } from '@superset-ui/validator';
-import { D3_TIME_FORMAT_OPTIONS } from '../controls';
-import { formatSelectOptions } from '../../modules/utils';
-import ColumnOption from '../../components/ColumnOption';
-
-export default {
-  controlPanelSections: [
-    {
-      label: t('GROUP BY'),
-      description: t('Use this section if you want a query that aggregates'),
-      expanded: true,
-      controlSetRows: [
-        ['groupby'],
-        ['metrics'],
-        [
-          {
-            name: 'percent_metrics',
-            config: {
-              type: 'MetricsControl',
-              multi: true,
-              mapStateToProps: state => {
-                const datasource = state.datasource;
-                return {
-                  columns: datasource ? datasource.columns : [],
-                  savedMetrics: datasource ? datasource.metrics : [],
-                  datasourceType: datasource && datasource.type,
-                };
-              },
-              default: [],
-              label: t('Percentage Metrics'),
-              validators: [],
-              description: t(
-                'Metrics for which percentage of total are to be displayed',
-              ),
-            },
-          },
-        ],
-        ['timeseries_limit_metric', 'row_limit'],
-        [
-          {
-            name: 'include_time',
-            config: {
-              type: 'CheckboxControl',
-              label: t('Include Time'),
-              description: t(
-                'Whether to include the time granularity as defined in the 
time section',
-              ),
-              default: false,
-            },
-          },
-          {
-            name: 'order_desc',
-            config: {
-              type: 'CheckboxControl',
-              label: t('Sort Descending'),
-              default: true,
-              description: t('Whether to sort descending or ascending'),
-            },
-          },
-        ],
-      ],
-    },
-    {
-      label: t('NOT GROUPED BY'),
-      description: t('Use this section if you want to query atomic rows'),
-      expanded: true,
-      controlSetRows: [
-        [
-          {
-            name: 'all_columns',
-            config: {
-              type: 'SelectControl',
-              multi: true,
-              label: t('Columns'),
-              default: [],
-              description: t('Columns to display'),
-              optionRenderer: c => <ColumnOption column={c} showType />,
-              valueRenderer: c => <ColumnOption column={c} />,
-              valueKey: 'column_name',
-              allowAll: true,
-              mapStateToProps: state => ({
-                options: state.datasource ? state.datasource.columns : [],
-              }),
-              commaChoosesOption: false,
-              freeForm: true,
-            },
-          },
-        ],
-        [
-          {
-            name: 'order_by_cols',
-            config: {
-              type: 'SelectControl',
-              multi: true,
-              label: t('Ordering'),
-              default: [],
-              description: t('One or many metrics to display'),
-              mapStateToProps: state => ({
-                choices: state.datasource
-                  ? state.datasource.order_by_choices
-                  : [],
-              }),
-            },
-          },
-        ],
-        ['row_limit', null],
-      ],
-    },
-    {
-      label: t('Query'),
-      expanded: true,
-      controlSetRows: [['adhoc_filters']],
-    },
-    {
-      label: t('Options'),
-      expanded: true,
-      controlSetRows: [
-        [
-          {
-            name: 'table_timestamp_format',
-            config: {
-              type: 'SelectControl',
-              freeForm: true,
-              label: t('Table Timestamp Format'),
-              default: '%Y-%m-%d %H:%M:%S',
-              renderTrigger: true,
-              validators: [validateNonEmpty],
-              clearable: false,
-              choices: D3_TIME_FORMAT_OPTIONS,
-              description: t('Timestamp Format'),
-            },
-          },
-        ],
-        [
-          {
-            name: 'page_length',
-            config: {
-              type: 'SelectControl',
-              freeForm: true,
-              renderTrigger: true,
-              label: t('Page Length'),
-              default: 0,
-              choices: formatSelectOptions([
-                0,
-                10,
-                25,
-                40,
-                50,
-                75,
-                100,
-                150,
-                200,
-              ]),
-              description: t('Rows per page, 0 means no pagination'),
-            },
-          },
-          null,
-        ],
-        [
-          {
-            name: 'include_search',
-            config: {
-              type: 'CheckboxControl',
-              label: t('Search Box'),
-              renderTrigger: true,
-              default: false,
-              description: t('Whether to include a client-side search box'),
-            },
-          },
-          {
-            name: 'table_filter',
-            config: {
-              type: 'CheckboxControl',
-              label: t('Emit Filter Events'),
-              renderTrigger: true,
-              default: false,
-              description: t('Whether to apply filter when items are clicked'),
-            },
-          },
-        ],
-        [
-          {
-            name: 'align_pn',
-            config: {
-              type: 'CheckboxControl',
-              label: t('Align +/-'),
-              renderTrigger: true,
-              default: false,
-              description: t(
-                'Whether to align the background chart for +/- values',
-              ),
-            },
-          },
-          {
-            name: 'color_pn',
-            config: {
-              type: 'CheckboxControl',
-              label: t('Color +/-'),
-              renderTrigger: true,
-              default: true,
-              description: t('Whether to color +/- values'),
-            },
-          },
-        ],
-        [
-          {
-            name: 'show_cell_bars',
-            config: {
-              type: 'CheckboxControl',
-              label: t('Show Cell Bars'),
-              renderTrigger: true,
-              default: true,
-              description: t(
-                'Enable to display bar chart background elements in table 
columns',
-              ),
-            },
-          },
-          null,
-        ],
-      ],
-    },
-  ],
-  controlOverrides: {
-    metrics: {
-      validators: [],
-    },
-  },
-  sectionOverrides: {
-    druidTimeSeries: {
-      controlSetRows: [['granularity', 'druid_time_origin'], ['time_range']],
-    },
-    sqlaTimeSeries: {
-      controlSetRows: [['granularity_sqla', 'time_grain_sqla'], 
['time_range']],
-    },
-  },
-};
diff --git a/superset-frontend/src/explore/controls.jsx 
b/superset-frontend/src/explore/controls.jsx
index 4710966..acdc66b 100644
--- a/superset-frontend/src/explore/controls.jsx
+++ b/superset-frontend/src/explore/controls.jsx
@@ -67,12 +67,12 @@ import {
   validateNonEmpty,
 } from '@superset-ui/validator';
 
+import { ColumnOption } from '@superset-ui/control-utils';
 import {
   formatSelectOptionsForRange,
   formatSelectOptions,
   mainMetric,
 } from '../modules/utils';
-import ColumnOption from '../components/ColumnOption';
 import { TIME_FILTER_LABELS } from './constants';
 
 const categoricalSchemeRegistry = getCategoricalSchemeRegistry();
diff --git a/superset-frontend/src/setup/setupPlugins.ts 
b/superset-frontend/src/setup/setupPlugins.ts
index 55354b0..52d73a1 100644
--- a/superset-frontend/src/setup/setupPlugins.ts
+++ b/superset-frontend/src/setup/setupPlugins.ts
@@ -35,7 +35,6 @@ import FilterBox from '../explore/controlPanels/FilterBox';
 import PairedTtest from '../explore/controlPanels/PairedTtest';
 import Para from '../explore/controlPanels/Para';
 import Separator from '../explore/controlPanels/Separator';
-import Table from '../explore/controlPanels/Table';
 import TimeTable from '../explore/controlPanels/TimeTable';
 
 export default function setupPlugins() {
@@ -49,7 +48,6 @@ export default function setupPlugins() {
     .registerValue('paired_ttest', PairedTtest)
     .registerValue('para', Para)
     .registerValue('separator', Separator)
-    .registerValue('table', Table)
     .registerValue('time_table', TimeTable)
     .registerValue('deck_arc', DeckArc)
     .registerValue('deck_geojson', DeckGeojson)

Reply via email to