diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/package.json b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/package.json index 50e570157e..6c2221423c 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/package.json +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/package.json @@ -33,8 +33,10 @@ "prop-types": "^15.6.2" }, "peerDependencies": { + "react": "^16.13.1", "@superset-ui/chart": "^0.13.0", "@superset-ui/color": "^0.13.0", + "@superset-ui/control-utils": "^0.13.9", "@superset-ui/number-format": "^0.13.0", "@superset-ui/time-format": "^0.13.0", "@superset-ui/translation": "^0.13.0" diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/src/controlPanel.jsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/src/controlPanel.jsx new file mode 100644 index 0000000000..af7729ab38 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/src/controlPanel.jsx @@ -0,0 +1,250 @@ +/** + * 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 { + D3_TIME_FORMAT_OPTIONS, + D3_FORMAT_OPTIONS, + D3_FORMAT_DOCS, + formatSelectOptions, +} from '@superset-ui/control-utils'; + +export default { + requiresTime: true, + controlPanelSections: [ + { + label: t('Query'), + expanded: true, + controlSetRows: [ + ['metrics'], + ['adhoc_filters'], + ['groupby'], + ['limit', 'timeseries_limit_metric'], + [ + { + name: 'order_desc', + config: { + type: 'CheckboxControl', + label: t('Sort Descending'), + default: true, + description: t('Whether to sort descending or ascending'), + }, + }, + { + name: 'contribution', + config: { + type: 'CheckboxControl', + label: t('Contribution'), + default: false, + description: t('Compute the contribution to the total'), + }, + }, + ], + ['row_limit', null], + ], + }, + { + label: t('Chart Options'), + expanded: true, + controlSetRows: [ + ['color_scheme', 'label_colors'], + [ + { + name: 'number_format', + config: { + type: 'SelectControl', + freeForm: true, + label: t('Number format'), + renderTrigger: true, + default: 'SMART_NUMBER', + choices: D3_FORMAT_OPTIONS, + description: D3_FORMAT_DOCS, + }, + }, + { + name: 'date_time_format', + config: { + type: 'SelectControl', + freeForm: true, + label: t('Date Time Format'), + renderTrigger: true, + default: 'smart_date', + choices: D3_TIME_FORMAT_OPTIONS, + description: D3_FORMAT_DOCS, + }, + }, + ], + [ + { + name: 'rich_tooltip', + config: { + type: 'CheckboxControl', + label: t('Rich Tooltip'), + renderTrigger: true, + default: true, + description: t('The rich tooltip shows a list of all series for that point in time'), + }, + }, + { + name: 'rose_area_proportion', + config: { + type: 'CheckboxControl', + label: t('Use Area Proportions'), + description: t( + 'Check if the Rose Chart should use segment area instead of ' + + 'segment radius for proportioning', + ), + default: false, + renderTrigger: true, + }, + }, + ], + ], + }, + { + label: t('Advanced Analytics'), + tabOverride: 'data', + description: t( + 'This section contains options ' + + 'that allow for advanced analytical post processing ' + + 'of query results', + ), + controlSetRows: [ + // eslint-disable-next-line react/jsx-key + [

{t('Rolling Window')}

], + [ + { + name: 'rolling_type', + config: { + type: 'SelectControl', + label: t('Rolling Function'), + default: 'None', + choices: formatSelectOptions(['None', 'mean', 'sum', 'std', 'cumsum']), + description: t( + 'Defines a rolling window function to apply, works along ' + + 'with the [Periods] text box', + ), + }, + }, + { + name: 'rolling_periods', + config: { + type: 'TextControl', + label: t('Periods'), + isInt: true, + description: t( + 'Defines the size of the rolling window function, ' + + 'relative to the time granularity selected', + ), + }, + }, + { + name: 'min_periods', + config: { + type: 'TextControl', + label: t('Min Periods'), + isInt: true, + description: t( + 'The minimum number of rolling periods required to show ' + + 'a value. For instance if you do a cumulative sum on 7 days ' + + 'you may want your "Min Period" to be 7, so that all data points ' + + 'shown are the total of 7 periods. This will hide the "ramp up" ' + + 'taking place over the first 7 periods', + ), + }, + }, + ], + // eslint-disable-next-line react/jsx-key + [

{t('Time Comparison')}

], + [ + { + name: 'time_compare', + config: { + type: 'SelectControl', + multi: true, + freeForm: true, + label: t('Time Shift'), + choices: formatSelectOptions([ + '1 day', + '1 week', + '28 days', + '30 days', + '52 weeks', + '1 year', + ]), + description: t( + 'Overlay one or more timeseries from a ' + + 'relative time period. Expects relative time deltas ' + + 'in natural language (example: 24 hours, 7 days, ' + + '56 weeks, 365 days)', + ), + }, + }, + { + name: 'comparison_type', + config: { + type: 'SelectControl', + label: t('Calculation type'), + default: 'values', + choices: [ + ['values', 'Actual Values'], + ['absolute', 'Absolute difference'], + ['percentage', 'Percentage change'], + ['ratio', 'Ratio'], + ], + description: t( + 'How to display time shifts: as individual lines; as the ' + + 'absolute difference between the main time series and each time shift; ' + + 'as the percentage change; or as the ratio between series and time shifts.', + ), + }, + }, + ], + // eslint-disable-next-line react/jsx-key + [

{t('Python Functions')}

], + // eslint-disable-next-line react/jsx-key + [

pandas.resample

], + [ + { + name: 'resample_rule', + config: { + type: 'SelectControl', + freeForm: true, + label: t('Rule'), + default: null, + choices: formatSelectOptions(['1T', '1H', '1D', '7D', '1M', '1AS']), + description: t('Pandas resample rule'), + }, + }, + { + name: 'resample_method', + config: { + type: 'SelectControl', + freeForm: true, + label: t('Method'), + default: null, + choices: formatSelectOptions(['asfreq', 'bfill', 'ffill', 'median', 'mean', 'sum']), + description: t('Pandas resample method'), + }, + }, + ], + ], + }, + ], +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/src/index.js b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/src/index.js index 9fe531665a..1b6b7eb9d6 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/src/index.js +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-rose/src/index.js @@ -20,6 +20,7 @@ import { t } from '@superset-ui/translation'; import { ChartMetadata, ChartPlugin } from '@superset-ui/chart'; import transformProps from './transformProps'; import thumbnail from './images/thumbnail.png'; +import controlPanel from './controlPanel'; const metadata = new ChartMetadata({ description: '', @@ -34,6 +35,7 @@ export default class RoseChartPlugin extends ChartPlugin { loadChart: () => import('./ReactRose.js'), metadata, transformProps, + controlPanel, }); } }