From 18c05701ddc366bc51424674e09f478230cef01e Mon Sep 17 00:00:00 2001 From: Yaozong Liu <750188453@qq.com> Date: Mon, 23 Aug 2021 15:49:56 +0800 Subject: [PATCH] fix(plugin-chart-echarts): [scatter-plot] remove contribution mode (#1325) --- .../Regular/Scatter/controlPanel.tsx | 260 ++++++++++++++++++ .../src/Timeseries/Regular/Scatter/index.ts | 2 +- 2 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx new file mode 100644 index 000000000000..292f6451509f --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx @@ -0,0 +1,260 @@ +/** + * 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/core'; +import { + ControlPanelConfig, + ControlPanelsContainerProps, + D3_TIME_FORMAT_DOCS, + emitFilterControl, + sections, + sharedControls, +} from '@superset-ui/chart-controls'; + +import { DEFAULT_FORM_DATA } from '../../types'; +import { legendSection, showValueSection } from '../../../controls'; + +const { + logAxis, + markerEnabled, + markerSize, + minorSplitLine, + rowLimit, + tooltipTimeFormat, + truncateYAxis, + yAxisBounds, + zoomable, + xAxisLabelRotation, +} = DEFAULT_FORM_DATA; +const config: ControlPanelConfig = { + controlPanelSections: [ + sections.legacyTimeseriesTime, + { + label: t('Query'), + expanded: true, + controlSetRows: [ + ['metrics'], + ['groupby'], + ['adhoc_filters'], + emitFilterControl, + ['limit'], + ['timeseries_limit_metric'], + [ + { + name: 'order_desc', + config: { + type: 'CheckboxControl', + label: t('Sort Descending'), + default: true, + description: t('Whether to sort descending or ascending'), + }, + }, + ], + ['row_limit'], + ], + }, + sections.advancedAnalyticsControls, + sections.annotationsAndLayersControls, + sections.forecastIntervalControls, + { + label: t('Chart Options'), + expanded: true, + controlSetRows: [ + ['color_scheme', 'label_colors'], + ...showValueSection, + [ + { + name: 'markerEnabled', + config: { + type: 'CheckboxControl', + label: t('Marker'), + renderTrigger: true, + default: markerEnabled, + description: t('Draw a marker on data points. Only applicable for line types.'), + }, + }, + ], + [ + { + name: 'markerSize', + config: { + type: 'SliderControl', + label: t('Marker Size'), + renderTrigger: true, + min: 0, + max: 100, + default: markerSize, + description: t('Size of marker. Also applies to forecast observations.'), + visibility: ({ controls }: ControlPanelsContainerProps) => + Boolean(controls?.markerEnabled?.value), + }, + }, + ], + [ + { + name: 'zoomable', + config: { + type: 'CheckboxControl', + label: t('Data Zoom'), + default: zoomable, + renderTrigger: true, + description: t('Enable data zooming controls'), + }, + }, + ], + ...legendSection, + [

{t('X Axis')}

], + [ + { + name: 'x_axis_time_format', + config: { + ...sharedControls.x_axis_time_format, + default: 'smart_date', + description: `${D3_TIME_FORMAT_DOCS}. ${t( + 'When using other than adaptive formatting, labels may overlap.', + )}`, + }, + }, + ], + [ + { + name: 'xAxisLabelRotation', + config: { + type: 'SelectControl', + freeForm: true, + clearable: false, + label: t('Rotate x axis label'), + choices: [ + [0, '0°'], + [45, '45°'], + ], + default: xAxisLabelRotation, + renderTrigger: true, + description: t('Input field supports custom rotation. e.g. 30 for 30°'), + }, + }, + ], + // eslint-disable-next-line react/jsx-key + [

{t('Tooltip')}

], + [ + { + name: 'rich_tooltip', + config: { + type: 'CheckboxControl', + label: t('Rich tooltip'), + renderTrigger: true, + default: true, + description: t('Shows a list of all series available at that point in time'), + }, + }, + ], + [ + { + name: 'tooltipTimeFormat', + config: { + ...sharedControls.x_axis_time_format, + label: t('Tooltip time format'), + default: tooltipTimeFormat, + clearable: false, + }, + }, + ], + // eslint-disable-next-line react/jsx-key + [

{t('Y Axis')}

], + ['y_axis_format'], + [ + { + name: 'logAxis', + config: { + type: 'CheckboxControl', + label: t('Logarithmic y-axis'), + renderTrigger: true, + default: logAxis, + description: t('Logarithmic y-axis'), + }, + }, + ], + [ + { + name: 'minorSplitLine', + config: { + type: 'CheckboxControl', + label: t('Minor Split Line'), + renderTrigger: true, + default: minorSplitLine, + description: t('Draw split lines for minor y-axis ticks'), + }, + }, + ], + [ + { + name: 'yAxisTitle', + config: { + type: 'TextControl', + label: t('Primary y-axis title'), + renderTrigger: true, + default: '', + description: t('Title for y-axis'), + }, + }, + ], + [ + { + name: 'truncateYAxis', + config: { + type: 'CheckboxControl', + label: t('Truncate Y Axis'), + default: truncateYAxis, + renderTrigger: true, + description: t( + 'Truncate Y Axis. Can be overridden by specifying a min or max bound.', + ), + }, + }, + ], + [ + { + name: 'y_axis_bounds', + config: { + type: 'BoundsControl', + label: t('Y Axis Bounds'), + renderTrigger: true, + default: yAxisBounds, + description: t( + 'Bounds for the Y-axis. When left empty, the bounds are ' + + 'dynamically defined based on the min/max of the data. Note that ' + + "this feature will only expand the axis range. It won't " + + "narrow the data's extent.", + ), + visibility: ({ controls }: ControlPanelsContainerProps) => + Boolean(controls?.truncateYAxis?.value), + }, + }, + ], + ], + }, + ], + controlOverrides: { + row_limit: { + default: rowLimit, + }, + }, +}; + +export default config; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts index 789ca035e45f..2dc298f818df 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts @@ -18,7 +18,7 @@ */ import { t, ChartMetadata, ChartPlugin, AnnotationType, Behavior } from '@superset-ui/core'; import buildQuery from '../../buildQuery'; -import controlPanel from '../controlPanel'; +import controlPanel from './controlPanel'; import transformProps from '../../transformProps'; import thumbnail from './images/thumbnail.png'; import {