feat: Removes the preset-chart-xy plugin (#23943)

This commit is contained in:
Michael S. Molina 2023-06-08 15:42:10 -03:00 committed by GitHub
parent bcb145df99
commit e922f0993d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
98 changed files with 8 additions and 7159 deletions

View File

@ -46,7 +46,6 @@
"@superset-ui/plugin-chart-pivot-table": "file:./plugins/plugin-chart-pivot-table",
"@superset-ui/plugin-chart-table": "file:./plugins/plugin-chart-table",
"@superset-ui/plugin-chart-word-cloud": "file:./plugins/plugin-chart-word-cloud",
"@superset-ui/preset-chart-xy": "file:./plugins/preset-chart-xy",
"@superset-ui/switchboard": "file:./packages/superset-ui-switchboard",
"@types/d3-format": "^3.0.1",
"@visx/axis": "^3.0.1",
@ -19878,10 +19877,6 @@
"resolved": "plugins/plugin-chart-word-cloud",
"link": true
},
"node_modules/@superset-ui/preset-chart-xy": {
"resolved": "plugins/preset-chart-xy",
"link": true
},
"node_modules/@superset-ui/switchboard": {
"resolved": "packages/superset-ui-switchboard",
"link": true
@ -60470,8 +60465,7 @@
"@superset-ui/legacy-preset-chart-nvd3": "*",
"@superset-ui/plugin-chart-echarts": "*",
"@superset-ui/plugin-chart-table": "*",
"@superset-ui/plugin-chart-word-cloud": "*",
"@superset-ui/preset-chart-xy": "*"
"@superset-ui/plugin-chart-word-cloud": "*"
}
},
"packages/superset-ui-demo/node_modules/@superset-ui/legacy-plugin-chart-time-table": {
@ -61822,135 +61816,6 @@
"d3-array": "2"
}
},
"plugins/preset-chart-xy": {
"name": "@superset-ui/preset-chart-xy",
"version": "0.18.25",
"license": "Apache-2.0",
"dependencies": {
"@data-ui/theme": "^0.0.84",
"@data-ui/xy-chart": "^0.0.84",
"@vx/axis": "^0.0.198",
"@vx/legend": "^0.0.198",
"@vx/scale": "^0.0.197",
"csstype": "^2.6.3",
"encodable": "^0.7.6",
"lodash": "^4.17.11",
"reselect": "^4.0.0"
},
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
"react": "^16.2"
}
},
"plugins/preset-chart-xy/node_modules/@vx/axis": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/axis/-/axis-0.0.198.tgz",
"integrity": "sha512-XqHzGOBgkJD8gR1g9F7uOhT4Sjlwpl/H3xLehtDooRmKf3J0hy8C7L5rCgh7n8ARi+vYg+3A1zUo0JBIO5k4PQ==",
"dependencies": {
"@types/classnames": "^2.2.9",
"@types/react": "*",
"@vx/group": "0.0.198",
"@vx/point": "0.0.198",
"@vx/shape": "0.0.198",
"@vx/text": "0.0.198",
"classnames": "^2.2.5",
"prop-types": "^15.6.0"
},
"peerDependencies": {
"react": "^16.3.0-0"
}
},
"plugins/preset-chart-xy/node_modules/@vx/curve": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/curve/-/curve-0.0.198.tgz",
"integrity": "sha512-ZINtD0t5eLu3bEeaOWZxGXrHK5WCbGoxDdou7yPWD6xg8kpTD4/Vq0adRFNCxS1TZUlUjCJ2KqY2PmewO+Hdcw==",
"dependencies": {
"@types/d3-shape": "^1.3.1",
"d3-shape": "^1.0.6"
}
},
"plugins/preset-chart-xy/node_modules/@vx/group": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/group/-/group-0.0.198.tgz",
"integrity": "sha512-0PivE+fWZlPkSzFO/is5m4VSSv3pg+sS1yxYAZHbNffUvn472WDWptriHvoUIPQe0lOXhTSrc73UQzew9GtW/g==",
"dependencies": {
"@types/classnames": "^2.2.9",
"@types/react": "*",
"classnames": "^2.2.5",
"prop-types": "^15.6.2"
},
"peerDependencies": {
"react": "^15.0.0-0 || ^16.0.0-0"
}
},
"plugins/preset-chart-xy/node_modules/@vx/legend": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/legend/-/legend-0.0.198.tgz",
"integrity": "sha512-3S2/yP6IvkkhUlTj6In5M1OrzY1OaT1D06hRxuiOLAbaXTerhbUGwIjGSNoovQM6JebFlbWnnA5xH1SKgw5GGA==",
"dependencies": {
"@types/classnames": "^2.2.9",
"@types/d3-scale": "^2.1.1",
"@types/react": "*",
"@vx/group": "0.0.198",
"classnames": "^2.2.5",
"prop-types": "^15.5.10"
},
"peerDependencies": {
"react": "^16.3.0-0"
}
},
"plugins/preset-chart-xy/node_modules/@vx/point": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/point/-/point-0.0.198.tgz",
"integrity": "sha512-oFlw8uBLf4JDX7OJc+7eQXcnlLszdQgEs531u0t6HNpARQY/jTeeMLVUlp8sNF0XBOC+iVHU8Qe8TJdz/ONBAA=="
},
"plugins/preset-chart-xy/node_modules/@vx/scale": {
"version": "0.0.197",
"resolved": "https://registry.npmjs.org/@vx/scale/-/scale-0.0.197.tgz",
"integrity": "sha512-FF0POm9rh66I3Om5DsuxynwWU+Q645aTF47vgP2dVDeOOq3Oet7CZzmXLDh3W6nVcxvzq1UdPwu94dto2PUfhg==",
"dependencies": {
"@types/d3-scale": "^2.1.1",
"d3-scale": "^2.2.2"
}
},
"plugins/preset-chart-xy/node_modules/@vx/shape": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/shape/-/shape-0.0.198.tgz",
"integrity": "sha512-3Ky2PlSXYmh/Wt+tT4OBmsLpTe8Vu5pZ1EwbMQ0H/NNl6d4BsNqBUzr++0WC/kLsuNs5NENDvG77N9u2ztMrYA==",
"dependencies": {
"@types/classnames": "^2.2.9",
"@types/d3-path": "^1.0.8",
"@types/d3-shape": "^1.3.1",
"@types/react": "*",
"@vx/curve": "0.0.198",
"@vx/group": "0.0.198",
"classnames": "^2.2.5",
"d3-path": "^1.0.5",
"d3-shape": "^1.2.0",
"prop-types": "^15.5.10"
},
"peerDependencies": {
"react": "^16.3.0-0"
}
},
"plugins/preset-chart-xy/node_modules/@vx/text": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/text/-/text-0.0.198.tgz",
"integrity": "sha512-MZhLeIhjbPlAeq+heUFXzrAztkjpfhAjeg+RXDg1dTJTtkbBD0w1bwadSPHuC7Rzj6yNQChzVDYl51dO/k4ExQ==",
"dependencies": {
"@types/classnames": "^2.2.9",
"@types/lodash": "^4.14.146",
"@types/react": "*",
"classnames": "^2.2.5",
"lodash": "^4.17.15",
"prop-types": "^15.7.2",
"reduce-css-calc": "^1.3.0"
},
"peerDependencies": {
"react": "^16.3.0-0"
}
},
"spec": {
"extraneous": true
},
@ -77698,115 +77563,6 @@
}
}
},
"@superset-ui/preset-chart-xy": {
"version": "file:plugins/preset-chart-xy",
"requires": {
"@data-ui/theme": "^0.0.84",
"@data-ui/xy-chart": "^0.0.84",
"@vx/axis": "^0.0.198",
"@vx/legend": "^0.0.198",
"@vx/scale": "^0.0.197",
"csstype": "^2.6.3",
"encodable": "^0.7.6",
"lodash": "^4.17.11",
"reselect": "^4.0.0"
},
"dependencies": {
"@vx/axis": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/axis/-/axis-0.0.198.tgz",
"integrity": "sha512-XqHzGOBgkJD8gR1g9F7uOhT4Sjlwpl/H3xLehtDooRmKf3J0hy8C7L5rCgh7n8ARi+vYg+3A1zUo0JBIO5k4PQ==",
"requires": {
"@types/classnames": "^2.2.9",
"@types/react": "*",
"@vx/group": "0.0.198",
"@vx/point": "0.0.198",
"@vx/shape": "0.0.198",
"@vx/text": "0.0.198",
"classnames": "^2.2.5",
"prop-types": "^15.6.0"
}
},
"@vx/curve": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/curve/-/curve-0.0.198.tgz",
"integrity": "sha512-ZINtD0t5eLu3bEeaOWZxGXrHK5WCbGoxDdou7yPWD6xg8kpTD4/Vq0adRFNCxS1TZUlUjCJ2KqY2PmewO+Hdcw==",
"requires": {
"@types/d3-shape": "^1.3.1",
"d3-shape": "^1.0.6"
}
},
"@vx/group": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/group/-/group-0.0.198.tgz",
"integrity": "sha512-0PivE+fWZlPkSzFO/is5m4VSSv3pg+sS1yxYAZHbNffUvn472WDWptriHvoUIPQe0lOXhTSrc73UQzew9GtW/g==",
"requires": {
"@types/classnames": "^2.2.9",
"@types/react": "*",
"classnames": "^2.2.5",
"prop-types": "^15.6.2"
}
},
"@vx/legend": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/legend/-/legend-0.0.198.tgz",
"integrity": "sha512-3S2/yP6IvkkhUlTj6In5M1OrzY1OaT1D06hRxuiOLAbaXTerhbUGwIjGSNoovQM6JebFlbWnnA5xH1SKgw5GGA==",
"requires": {
"@types/classnames": "^2.2.9",
"@types/d3-scale": "^2.1.1",
"@types/react": "*",
"@vx/group": "0.0.198",
"classnames": "^2.2.5",
"prop-types": "^15.5.10"
}
},
"@vx/point": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/point/-/point-0.0.198.tgz",
"integrity": "sha512-oFlw8uBLf4JDX7OJc+7eQXcnlLszdQgEs531u0t6HNpARQY/jTeeMLVUlp8sNF0XBOC+iVHU8Qe8TJdz/ONBAA=="
},
"@vx/scale": {
"version": "0.0.197",
"resolved": "https://registry.npmjs.org/@vx/scale/-/scale-0.0.197.tgz",
"integrity": "sha512-FF0POm9rh66I3Om5DsuxynwWU+Q645aTF47vgP2dVDeOOq3Oet7CZzmXLDh3W6nVcxvzq1UdPwu94dto2PUfhg==",
"requires": {
"@types/d3-scale": "^2.1.1",
"d3-scale": "^2.2.2"
}
},
"@vx/shape": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/shape/-/shape-0.0.198.tgz",
"integrity": "sha512-3Ky2PlSXYmh/Wt+tT4OBmsLpTe8Vu5pZ1EwbMQ0H/NNl6d4BsNqBUzr++0WC/kLsuNs5NENDvG77N9u2ztMrYA==",
"requires": {
"@types/classnames": "^2.2.9",
"@types/d3-path": "^1.0.8",
"@types/d3-shape": "^1.3.1",
"@types/react": "*",
"@vx/curve": "0.0.198",
"@vx/group": "0.0.198",
"classnames": "^2.2.5",
"d3-path": "^1.0.5",
"d3-shape": "^1.2.0",
"prop-types": "^15.5.10"
}
},
"@vx/text": {
"version": "0.0.198",
"resolved": "https://registry.npmjs.org/@vx/text/-/text-0.0.198.tgz",
"integrity": "sha512-MZhLeIhjbPlAeq+heUFXzrAztkjpfhAjeg+RXDg1dTJTtkbBD0w1bwadSPHuC7Rzj6yNQChzVDYl51dO/k4ExQ==",
"requires": {
"@types/classnames": "^2.2.9",
"@types/lodash": "^4.14.146",
"@types/react": "*",
"classnames": "^2.2.5",
"lodash": "^4.17.15",
"prop-types": "^15.7.2",
"reduce-css-calc": "^1.3.0"
}
}
}
},
"@superset-ui/switchboard": {
"version": "file:packages/superset-ui-switchboard"
},

View File

@ -111,7 +111,6 @@
"@superset-ui/plugin-chart-pivot-table": "file:./plugins/plugin-chart-pivot-table",
"@superset-ui/plugin-chart-table": "file:./plugins/plugin-chart-table",
"@superset-ui/plugin-chart-word-cloud": "file:./plugins/plugin-chart-word-cloud",
"@superset-ui/preset-chart-xy": "file:./plugins/preset-chart-xy",
"@superset-ui/switchboard": "file:./packages/superset-ui-switchboard",
"@types/d3-format": "^3.0.1",
"@visx/axis": "^3.0.1",

View File

@ -11,7 +11,6 @@ import {
SequentialCommon,
SequentialD3,
} from '@superset-ui/core';
import { configureEncodable } from '@superset-ui/preset-chart-xy';
import themeDecorator from './themeDecorator';
import 'bootstrap/dist/css/bootstrap.min.css';
@ -80,5 +79,3 @@ const sequentialSchemeRegistry = getSequentialSchemeRegistry();
getTimeFormatterRegistry()
.registerValue('smart_date', smartDateFormatter)
.setDefaultKey('smart_date');
configureEncodable();

View File

@ -87,7 +87,6 @@
"@superset-ui/legacy-preset-chart-nvd3": "*",
"@superset-ui/plugin-chart-echarts": "*",
"@superset-ui/plugin-chart-table": "*",
"@superset-ui/plugin-chart-word-cloud": "*",
"@superset-ui/preset-chart-xy": "*"
"@superset-ui/plugin-chart-word-cloud": "*"
}
}

View File

@ -1,36 +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 {
BoxPlotChartPlugin,
LegacyBoxPlotChartPlugin,
} from '@superset-ui/preset-chart-xy';
import { BOX_PLOT_PLUGIN_LEGACY_TYPE, BOX_PLOT_PLUGIN_TYPE } from './constants';
new LegacyBoxPlotChartPlugin()
.configure({ key: BOX_PLOT_PLUGIN_LEGACY_TYPE })
.register();
new BoxPlotChartPlugin().configure({ key: BOX_PLOT_PLUGIN_TYPE }).register();
export default {
title: 'Chart Plugins/preset-chart-xy/BoxPlot',
};
export { basic, horizontal } from './stories/Basic';
export { legacy } from './stories/Legacy';

View File

@ -1,21 +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 BOX_PLOT_PLUGIN_TYPE = 'v2-box-plot';
export const BOX_PLOT_PLUGIN_LEGACY_TYPE = 'v2-box-plot/legacy';

View File

@ -1,99 +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.
*/
/* eslint-disable sort-keys, no-magic-numbers */
export default [
{
label: 'East Asia & Pacific',
values: {
Q1: 1384725172.5,
Q2: 1717904169.0,
Q3: 2032724922.5,
whisker_high: 2240687901.0,
whisker_low: 1031863394.0,
outliers: [],
},
},
{
label: 'Europe & Central Asia',
values: {
Q1: 751386460.5,
Q2: 820716895.0,
Q3: 862814192.5,
whisker_high: 903095786.0,
whisker_low: 660881033.0,
outliers: [],
},
},
{
label: 'Latin America & Caribbean',
values: {
Q1: 313690832.5,
Q2: 421490233.0,
Q3: 529668114.5,
whisker_high: 626270167.0,
whisker_low: 220564224.0,
outliers: [],
},
},
{
label: 'Middle East & North Africa',
values: {
Q1: 152382756.5,
Q2: 232066828.0,
Q3: 318191071.5,
whisker_high: 417451428.0,
whisker_low: 105512645.0,
outliers: [],
},
},
{
label: 'North America',
values: {
Q1: 235506847.5,
Q2: 268896849.0,
Q3: 314553651.5,
whisker_high: 354462656.0,
whisker_low: 198624409.0,
outliers: [],
},
},
{
label: 'South Asia',
values: {
Q1: 772373036.5,
Q2: 1059570231.0,
Q3: 1398841234.0,
whisker_high: 1720976995.0,
whisker_low: 572036107.0,
outliers: [],
},
},
{
label: 'Sub-Saharan Africa',
values: {
Q1: 320037758.0,
Q2: 467337821.0,
Q3: 676768689.0,
whisker_high: 974315323.0,
whisker_low: 228268752.0,
outliers: [],
},
},
];

View File

@ -1,109 +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.
*/
/* eslint-disable no-magic-numbers, sort-keys */
import React from 'react';
import { SuperChart } from '@superset-ui/core';
import data from '../data';
export const basic = () => (
<SuperChart
chartType="v2-box-plot"
width={400}
height={400}
queriesData={[{ data }]}
formData={{
encoding: {
x: {
type: 'nominal',
field: 'label',
scale: {
type: 'band',
paddingInner: 0.15,
paddingOuter: 0.3,
},
axis: {
label: 'Region',
},
},
y: {
field: 'value',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
label: 'Population',
numTicks: 5,
},
},
color: {
type: 'nominal',
field: 'label',
scale: {
scheme: 'd3Category10',
},
},
},
}}
/>
);
export const horizontal = () => (
<SuperChart
chartType="v2-box-plot"
width={400}
height={400}
queriesData={[{ data }]}
formData={{
encoding: {
y: {
type: 'nominal',
field: 'label',
scale: {
type: 'band',
paddingInner: 0.15,
paddingOuter: 0.3,
},
axis: {
label: 'Region',
},
},
x: {
field: 'value',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
label: 'Population',
numTicks: 5,
},
},
color: {
type: 'nominal',
field: 'label',
scale: {
scheme: 'd3Category10',
},
},
},
}}
/>
);

View File

@ -1,40 +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 { SuperChart } from '@superset-ui/core';
import data from '../data';
import dummyDatasource from '../../../../../shared/dummyDatasource';
export const legacy = () => (
<SuperChart
chartType="v2-box-plot/legacy"
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
colorScheme: 'd3Category10',
groupby: ['region'],
metrics: ['sum__SP_POP_TOTL'],
vizType: 'box_plot',
whiskerOptions: 'Min/max (no outliers)',
}}
/>
);

View File

@ -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.
*/
import {
LineChartPlugin,
LegacyLineChartPlugin,
} from '@superset-ui/preset-chart-xy';
import { withKnobs } from '@storybook/addon-knobs';
import { LINE_PLUGIN_TYPE, LINE_PLUGIN_LEGACY_TYPE } from './constants';
new LegacyLineChartPlugin()
.configure({ key: LINE_PLUGIN_LEGACY_TYPE })
.register();
new LineChartPlugin().configure({ key: LINE_PLUGIN_TYPE }).register();
export default {
title: 'Chart Plugins/preset-chart-xy/Line',
decorators: [withKnobs],
};
export { default as basic } from './stories/basic';
export { default as withLabelFlush } from './stories/flush';
export { default as withMissingData } from './stories/missing';
export { default as legacyShim } from './stories/legacy';
export { default as withTimeShift } from './stories/timeShift';
export { default as query } from './stories/query';

View File

@ -1,21 +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 LINE_PLUGIN_TYPE = 'v2-line';
export const LINE_PLUGIN_LEGACY_TYPE = 'v2-line/legacy';

View File

@ -1,242 +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.
*/
/* eslint-disable sort-keys, no-magic-numbers */
export default [
{ x: -157766400000, y: 24703, name: 'Christopher' },
{ x: -126230400000, y: 27861, name: 'Christopher' },
{ x: -94694400000, y: 29436, name: 'Christopher' },
{ x: -63158400000, y: 31463, name: 'Christopher' },
{ x: -31536000000, y: 35718, name: 'Christopher' },
{ x: 0, y: 41758, name: 'Christopher' },
{ x: 31536000000, y: 48172, name: 'Christopher' },
{ x: 63072000000, y: 52092, name: 'Christopher' },
{ x: 94694400000, y: 48217, name: 'Christopher' },
{ x: 126230400000, y: 48476, name: 'Christopher' },
{ x: 157766400000, y: 46438, name: 'Christopher' },
{ x: 189302400000, y: 45086, name: 'Christopher' },
{ x: 220924800000, y: 46610, name: 'Christopher' },
{ x: 252460800000, y: 47107, name: 'Christopher' },
{ x: 283996800000, y: 50514, name: 'Christopher' },
{ x: 315532800000, y: 48969, name: 'Christopher' },
{ x: 347155200000, y: 50108, name: 'Christopher' },
{ x: 378691200000, y: 59055, name: 'Christopher' },
{ x: 410227200000, y: 59188, name: 'Christopher' },
{ x: 441763200000, y: 59859, name: 'Christopher' },
{ x: 473385600000, y: 59516, name: 'Christopher' },
{ x: 504921600000, y: 56633, name: 'Christopher' },
{ x: 536457600000, y: 54466, name: 'Christopher' },
{ x: 567993600000, y: 52996, name: 'Christopher' },
{ x: 599616000000, y: 53205, name: 'Christopher' },
{ x: 631152000000, y: 52322, name: 'Christopher' },
{ x: 662688000000, y: 47109, name: 'Christopher' },
{ x: 694224000000, y: 42470, name: 'Christopher' },
{ x: 725846400000, y: 38257, name: 'Christopher' },
{ x: 757382400000, y: 34823, name: 'Christopher' },
{ x: 788918400000, y: 32728, name: 'Christopher' },
{ x: 820454400000, y: 30988, name: 'Christopher' },
{ x: 852076800000, y: 29179, name: 'Christopher' },
{ x: 883612800000, y: 27083, name: 'Christopher' },
{ x: 915148800000, y: 25700, name: 'Christopher' },
{ x: 946684800000, y: 24959, name: 'Christopher' },
{ x: 978307200000, y: 23180, name: 'Christopher' },
{ x: 1009843200000, y: 21731, name: 'Christopher' },
{ x: 1041379200000, y: 20793, name: 'Christopher' },
{ x: 1072915200000, y: 19739, name: 'Christopher' },
{ x: 1104537600000, y: 19190, name: 'Christopher' },
{ x: 1136073600000, y: 19674, name: 'Christopher' },
{ x: 1167609600000, y: 19986, name: 'Christopher' },
{ x: 1199145600000, y: 17771, name: 'Christopher' },
{ x: -157766400000, y: 67646, name: 'David' },
{ x: -126230400000, y: 66207, name: 'David' },
{ x: -94694400000, y: 66581, name: 'David' },
{ x: -63158400000, y: 63531, name: 'David' },
{ x: -31536000000, y: 63502, name: 'David' },
{ x: 0, y: 61570, name: 'David' },
{ x: 31536000000, y: 52948, name: 'David' },
{ x: 63072000000, y: 46218, name: 'David' },
{ x: 94694400000, y: 40968, name: 'David' },
{ x: 126230400000, y: 41654, name: 'David' },
{ x: 157766400000, y: 39019, name: 'David' },
{ x: 189302400000, y: 39165, name: 'David' },
{ x: 220924800000, y: 40407, name: 'David' },
{ x: 252460800000, y: 40533, name: 'David' },
{ x: 283996800000, y: 41898, name: 'David' },
{ x: 315532800000, y: 41743, name: 'David' },
{ x: 347155200000, y: 40486, name: 'David' },
{ x: 378691200000, y: 40283, name: 'David' },
{ x: 410227200000, y: 39048, name: 'David' },
{ x: 441763200000, y: 38346, name: 'David' },
{ x: 473385600000, y: 38395, name: 'David' },
{ x: 504921600000, y: 37021, name: 'David' },
{ x: 536457600000, y: 36672, name: 'David' },
{ x: 567993600000, y: 35214, name: 'David' },
{ x: 599616000000, y: 35139, name: 'David' },
{ x: 631152000000, y: 33661, name: 'David' },
{ x: 662688000000, y: 30347, name: 'David' },
{ x: 694224000000, y: 28344, name: 'David' },
{ x: 725846400000, y: 26947, name: 'David' },
{ x: 757382400000, y: 24784, name: 'David' },
{ x: 788918400000, y: 22967, name: 'David' },
{ x: 820454400000, y: 22941, name: 'David' },
{ x: 852076800000, y: 21824, name: 'David' },
{ x: 883612800000, y: 20816, name: 'David' },
{ x: 915148800000, y: 20267, name: 'David' },
{ x: 946684800000, y: 19695, name: 'David' },
{ x: 978307200000, y: 19281, name: 'David' },
{ x: 1009843200000, y: 18600, name: 'David' },
{ x: 1041379200000, y: 18557, name: 'David' },
{ x: 1072915200000, y: 18315, name: 'David' },
{ x: 1104537600000, y: 18017, name: 'David' },
{ x: 1136073600000, y: 17510, name: 'David' },
{ x: 1167609600000, y: 17400, name: 'David' },
{ x: 1199145600000, y: 16049, name: 'David' },
{ x: -157766400000, y: 67506, name: 'James' },
{ x: -126230400000, y: 65036, name: 'James' },
{ x: -94694400000, y: 61554, name: 'James' },
{ x: -63158400000, y: 60584, name: 'James' },
{ x: -31536000000, y: 59824, name: 'James' },
{ x: 0, y: 61597, name: 'James' },
{ x: 31536000000, y: 54463, name: 'James' },
{ x: 63072000000, y: 46960, name: 'James' },
{ x: 94694400000, y: 42782, name: 'James' },
{ x: 126230400000, y: 41258, name: 'James' },
{ x: 157766400000, y: 39471, name: 'James' },
{ x: 189302400000, y: 38203, name: 'James' },
{ x: 220924800000, y: 39916, name: 'James' },
{ x: 252460800000, y: 39783, name: 'James' },
{ x: 283996800000, y: 39237, name: 'James' },
{ x: 315532800000, y: 39185, name: 'James' },
{ x: 347155200000, y: 38176, name: 'James' },
{ x: 378691200000, y: 38750, name: 'James' },
{ x: 410227200000, y: 36228, name: 'James' },
{ x: 441763200000, y: 35728, name: 'James' },
{ x: 473385600000, y: 35750, name: 'James' },
{ x: 504921600000, y: 33955, name: 'James' },
{ x: 536457600000, y: 32552, name: 'James' },
{ x: 567993600000, y: 32418, name: 'James' },
{ x: 599616000000, y: 32658, name: 'James' },
{ x: 631152000000, y: 32288, name: 'James' },
{ x: 662688000000, y: 30460, name: 'James' },
{ x: 694224000000, y: 28450, name: 'James' },
{ x: 725846400000, y: 26193, name: 'James' },
{ x: 757382400000, y: 24706, name: 'James' },
{ x: 788918400000, y: 22691, name: 'James' },
{ x: 820454400000, y: 21122, name: 'James' },
{ x: 852076800000, y: 20368, name: 'James' },
{ x: 883612800000, y: 19651, name: 'James' },
{ x: 915148800000, y: 18508, name: 'James' },
{ x: 946684800000, y: 17939, name: 'James' },
{ x: 978307200000, y: 17023, name: 'James' },
{ x: 1009843200000, y: 16905, name: 'James' },
{ x: 1041379200000, y: 16832, name: 'James' },
{ x: 1072915200000, y: 16459, name: 'James' },
{ x: 1104537600000, y: 16046, name: 'James' },
{ x: 1136073600000, y: 16139, name: 'James' },
{ x: 1167609600000, y: 15821, name: 'James' },
{ x: 1199145600000, y: 14920, name: 'James' },
{ x: -157766400000, y: 71390, name: 'John' },
{ x: -126230400000, y: 64858, name: 'John' },
{ x: -94694400000, y: 61480, name: 'John' },
{ x: -63158400000, y: 60754, name: 'John' },
{ x: -31536000000, y: 58644, name: 'John' },
{ x: 0, y: 58348, name: 'John' },
{ x: 31536000000, y: 51382, name: 'John' },
{ x: 63072000000, y: 43028, name: 'John' },
{ x: 94694400000, y: 39061, name: 'John' },
{ x: 126230400000, y: 37553, name: 'John' },
{ x: 157766400000, y: 34970, name: 'John' },
{ x: 189302400000, y: 33876, name: 'John' },
{ x: 220924800000, y: 34103, name: 'John' },
{ x: 252460800000, y: 33895, name: 'John' },
{ x: 283996800000, y: 35305, name: 'John' },
{ x: 315532800000, y: 35131, name: 'John' },
{ x: 347155200000, y: 34761, name: 'John' },
{ x: 378691200000, y: 34560, name: 'John' },
{ x: 410227200000, y: 33047, name: 'John' },
{ x: 441763200000, y: 32484, name: 'John' },
{ x: 473385600000, y: 31397, name: 'John' },
{ x: 504921600000, y: 30103, name: 'John' },
{ x: 536457600000, y: 29462, name: 'John' },
{ x: 567993600000, y: 29301, name: 'John' },
{ x: 599616000000, y: 29751, name: 'John' },
{ x: 631152000000, y: 29011, name: 'John' },
{ x: 662688000000, y: 27727, name: 'John' },
{ x: 694224000000, y: 26156, name: 'John' },
{ x: 725846400000, y: 24918, name: 'John' },
{ x: 757382400000, y: 24119, name: 'John' },
{ x: 788918400000, y: 23174, name: 'John' },
{ x: 820454400000, y: 22104, name: 'John' },
{ x: 852076800000, y: 21330, name: 'John' },
{ x: 883612800000, y: 20556, name: 'John' },
{ x: 915148800000, y: 20280, name: 'John' },
{ x: 946684800000, y: 20032, name: 'John' },
{ x: 978307200000, y: 18839, name: 'John' },
{ x: 1009843200000, y: 17400, name: 'John' },
{ x: 1041379200000, y: 17170, name: 'John' },
{ x: 1072915200000, y: 16381, name: 'John' },
{ x: 1104537600000, y: 15692, name: 'John' },
{ x: 1136073600000, y: 15083, name: 'John' },
{ x: 1167609600000, y: 14348, name: 'John' },
{ x: 1199145600000, y: 13110, name: 'John' },
{ x: -157766400000, y: 80812, name: 'Michael' },
{ x: -126230400000, y: 79709, name: 'Michael' },
{ x: -94694400000, y: 82204, name: 'Michael' },
{ x: -63158400000, y: 81785, name: 'Michael' },
{ x: -31536000000, y: 84893, name: 'Michael' },
{ x: 0, y: 85015, name: 'Michael' },
{ x: 31536000000, y: 77321, name: 'Michael' },
{ x: 63072000000, y: 71197, name: 'Michael' },
{ x: 94694400000, y: 67598, name: 'Michael' },
{ x: 126230400000, y: 67304, name: 'Michael' },
{ x: 157766400000, y: 68149, name: 'Michael' },
{ x: 189302400000, y: 66686, name: 'Michael' },
{ x: 220924800000, y: 67344, name: 'Michael' },
{ x: 252460800000, y: 66875, name: 'Michael' },
{ x: 283996800000, y: 67473, name: 'Michael' },
{ x: 315532800000, y: 68375, name: 'Michael' },
{ x: 347155200000, y: 68467, name: 'Michael' },
{ x: 378691200000, y: 67904, name: 'Michael' },
{ x: 410227200000, y: 67708, name: 'Michael' },
{ x: 441763200000, y: 67457, name: 'Michael' },
{ x: 473385600000, y: 64667, name: 'Michael' },
{ x: 504921600000, y: 63959, name: 'Michael' },
{ x: 536457600000, y: 63442, name: 'Michael' },
{ x: 567993600000, y: 63924, name: 'Michael' },
{ x: 599616000000, y: 65233, name: 'Michael' },
{ x: 631152000000, y: 65138, name: 'Michael' },
{ x: 662688000000, y: 60646, name: 'Michael' },
{ x: 694224000000, y: 54216, name: 'Michael' },
{ x: 725846400000, y: 49443, name: 'Michael' },
{ x: 757382400000, y: 44361, name: 'Michael' },
{ x: 788918400000, y: 41311, name: 'Michael' },
{ x: 820454400000, y: 38284, name: 'Michael' },
{ x: 852076800000, y: 37459, name: 'Michael' },
{ x: 883612800000, y: 36525, name: 'Michael' },
{ x: 915148800000, y: 33820, name: 'Michael' },
{ x: 946684800000, y: 31956, name: 'Michael' },
{ x: 978307200000, y: 29612, name: 'Michael' },
{ x: 1009843200000, y: 28156, name: 'Michael' },
{ x: 1041379200000, y: 27031, name: 'Michael' },
{ x: 1072915200000, y: 25418, name: 'Michael' },
{ x: 1104537600000, y: 23678, name: 'Michael' },
{ x: 1136073600000, y: 22498, name: 'Michael' },
{ x: 1167609600000, y: 21805, name: 'Michael' },
{ x: 1199145600000, y: 20271, name: 'Michael' },
];

View File

@ -1,110 +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.
*/
/* eslint-disable sort-keys, no-magic-numbers */
export default [
{ x: -157766400000, y: 24703, snapshot: 'Last year' },
{ x: -126230400000, y: 27861, snapshot: 'Last year' },
{ x: -94694400000, y: 29436, snapshot: 'Last year' },
{ x: -63158400000, y: 31463, snapshot: 'Last year' },
{ x: -31536000000, y: 35718, snapshot: 'Last year' },
{ x: 0, y: 41758, snapshot: 'Last year' },
{ x: 31536000000, y: 48172, snapshot: 'Last year' },
{ x: 63072000000, y: 52092, snapshot: 'Last year' },
{ x: 94694400000, y: 48217, snapshot: 'Last year' },
{ x: 126230400000, y: 48476, snapshot: 'Last year' },
{ x: 157766400000, y: 46438, snapshot: 'Last year' },
{ x: 189302400000, y: 45086, snapshot: 'Last year' },
{ x: 220924800000, y: 46610, snapshot: 'Last year' },
{ x: 252460800000, y: 47107, snapshot: 'Last year' },
{ x: 283996800000, y: 50514, snapshot: 'Last year' },
{ x: 315532800000, y: 48969, snapshot: 'Last year' },
{ x: 347155200000, y: 50108, snapshot: 'Last year' },
{ x: 378691200000, y: 59055, snapshot: 'Last year' },
{ x: 410227200000, y: 59188, snapshot: 'Last year' },
{ x: 441763200000, y: 59859, snapshot: 'Last year' },
{ x: 473385600000, y: 59516, snapshot: 'Last year' },
{ x: 504921600000, y: 56633, snapshot: 'Last year' },
{ x: 536457600000, y: 54466, snapshot: 'Last year' },
{ x: 567993600000, y: 52996, snapshot: 'Last year' },
{ x: 599616000000, y: 53205, snapshot: 'Last year' },
{ x: 631152000000, y: 52322, snapshot: 'Last year' },
{ x: 662688000000, y: 47109, snapshot: 'Last year' },
{ x: 694224000000, y: 42470, snapshot: 'Last year' },
{ x: 725846400000, y: 38257, snapshot: 'Last year' },
{ x: 757382400000, y: 34823, snapshot: 'Last year' },
{ x: 788918400000, y: 32728, snapshot: 'Last year' },
{ x: 820454400000, y: 30988, snapshot: 'Last year' },
{ x: 852076800000, y: 29179, snapshot: 'Last year' },
{ x: 883612800000, y: 27083, snapshot: 'Last year' },
{ x: 915148800000, y: 25700, snapshot: 'Last year' },
{ x: 946684800000, y: 24959, snapshot: 'Last year' },
{ x: 978307200000, y: 23180, snapshot: 'Last year' },
{ x: 1009843200000, y: 21731, snapshot: 'Last year' },
{ x: 1041379200000, y: 20793, snapshot: 'Last year' },
{ x: 1072915200000, y: 19739, snapshot: 'Last year' },
{ x: 1104537600000, y: 19190, snapshot: 'Last year' },
{ x: 1136073600000, y: 19674, snapshot: 'Last year' },
{ x: 1167609600000, y: 19986, snapshot: 'Last year' },
{ x: 1199145600000, y: 17771, snapshot: 'Last year' },
{ x: -157766400000, y: 80812, snapshot: 'Current' },
{ x: -126230400000, y: 79709, snapshot: 'Current' },
{ x: -94694400000, y: 82204, snapshot: 'Current' },
{ x: -63158400000, y: 81785, snapshot: 'Current' },
{ x: -31536000000, y: 84893, snapshot: 'Current' },
{ x: 0, y: 85015, snapshot: 'Current' },
{ x: 31536000000, y: 77321, snapshot: 'Current' },
{ x: 63072000000, y: 71197, snapshot: 'Current' },
{ x: 94694400000, y: 67598, snapshot: 'Current' },
{ x: 126230400000, y: 67304, snapshot: 'Current' },
{ x: 157766400000, y: 68149, snapshot: 'Current' },
{ x: 189302400000, y: 66686, snapshot: 'Current' },
{ x: 220924800000, y: 67344, snapshot: 'Current' },
{ x: 252460800000, y: 66875, snapshot: 'Current' },
{ x: 283996800000, y: 67473, snapshot: 'Current' },
{ x: 315532800000, y: 68375, snapshot: 'Current' },
{ x: 347155200000, y: 68467, snapshot: 'Current' },
{ x: 378691200000, y: 67904, snapshot: 'Current' },
{ x: 410227200000, y: 67708, snapshot: 'Current' },
{ x: 441763200000, y: 67457, snapshot: 'Current' },
{ x: 473385600000, y: 64667, snapshot: 'Current' },
{ x: 504921600000, y: 63959, snapshot: 'Current' },
{ x: 536457600000, y: 63442, snapshot: 'Current' },
{ x: 567993600000, y: 63924, snapshot: 'Current' },
{ x: 599616000000, y: 65233, snapshot: 'Current' },
{ x: 631152000000, y: 65138, snapshot: 'Current' },
{ x: 662688000000, y: 60646, snapshot: 'Current' },
{ x: 694224000000, y: 54216, snapshot: 'Current' },
{ x: 725846400000, y: 49443, snapshot: 'Current' },
{ x: 757382400000, y: 44361, snapshot: 'Current' },
{ x: 788918400000, y: 41311, snapshot: 'Current' },
{ x: 820454400000, y: 38284, snapshot: 'Current' },
{ x: 852076800000, y: 37459, snapshot: 'Current' },
{ x: 883612800000, y: 36525, snapshot: 'Current' },
{ x: 915148800000, y: 33820, snapshot: 'Current' },
{ x: 946684800000, y: 31956, snapshot: 'Current' },
{ x: 978307200000, y: 29612, snapshot: 'Current' },
{ x: 1009843200000, y: 28156, snapshot: 'Current' },
{ x: 1041379200000, y: 27031, snapshot: 'Current' },
{ x: 1072915200000, y: 25418, snapshot: 'Current' },
{ x: 1104537600000, y: 23678, snapshot: 'Current' },
{ x: 1136073600000, y: 22498, snapshot: 'Current' },
{ x: 1167609600000, y: 21805, snapshot: 'Current' },
{ x: 1199145600000, y: 20271, snapshot: 'Current' },
];

View File

@ -1,927 +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.
*/
/* eslint-disable sort-keys, no-magic-numbers */
export default [
{
key: ['Christopher'],
values: [
{
x: -157766400000.0,
y: 24703,
},
{
x: -126230400000.0,
y: 27861,
},
{
x: -94694400000.0,
y: 29436,
},
{
x: -63158400000.0,
y: 31463,
},
{
x: -31536000000.0,
y: 35718,
},
{
x: 0.0,
y: 41758,
},
{
x: 31536000000.0,
y: 48172,
},
{
x: 63072000000.0,
y: 52092,
},
{
x: 94694400000.0,
y: 48217,
},
{
x: 126230400000.0,
y: 48476,
},
{
x: 157766400000.0,
y: 46438,
},
{
x: 189302400000.0,
y: 45086,
},
{
x: 220924800000.0,
y: 46610,
},
{
x: 252460800000.0,
y: 47107,
},
{
x: 283996800000.0,
y: 50514,
},
{
x: 315532800000.0,
y: 48969,
},
{
x: 347155200000.0,
y: 50108,
},
{
x: 378691200000.0,
y: 59055,
},
{
x: 410227200000.0,
y: 59188,
},
{
x: 441763200000.0,
y: 59859,
},
{
x: 473385600000.0,
y: 59516,
},
{
x: 504921600000.0,
y: 56633,
},
{
x: 536457600000.0,
y: 54466,
},
{
x: 567993600000.0,
y: 52996,
},
{
x: 599616000000.0,
y: 53205,
},
{
x: 631152000000.0,
y: 52322,
},
{
x: 662688000000.0,
y: 47109,
},
{
x: 694224000000.0,
y: 42470,
},
{
x: 725846400000.0,
y: 38257,
},
{
x: 757382400000.0,
y: 34823,
},
{
x: 788918400000.0,
y: 32728,
},
{
x: 820454400000.0,
y: 30988,
},
{
x: 852076800000.0,
y: 29179,
},
{
x: 883612800000.0,
y: 27083,
},
{
x: 915148800000.0,
y: 25700,
},
{
x: 946684800000.0,
y: 24959,
},
{
x: 978307200000.0,
y: 23180,
},
{
x: 1009843200000.0,
y: 21731,
},
{
x: 1041379200000.0,
y: 20793,
},
{
x: 1072915200000.0,
y: 19739,
},
{
x: 1104537600000.0,
y: 19190,
},
{
x: 1136073600000.0,
y: 19674,
},
{
x: 1167609600000.0,
y: 19986,
},
{
x: 1199145600000.0,
y: 17771,
},
],
},
{
key: ['David'],
values: [
{
x: -157766400000.0,
y: 67646,
},
{
x: -126230400000.0,
y: 66207,
},
{
x: -94694400000.0,
y: 66581,
},
{
x: -63158400000.0,
y: 63531,
},
{
x: -31536000000.0,
y: 63502,
},
{
x: 0.0,
y: 61570,
},
{
x: 31536000000.0,
y: 52948,
},
{
x: 63072000000.0,
y: 46218,
},
{
x: 94694400000.0,
y: 40968,
},
{
x: 126230400000.0,
y: 41654,
},
{
x: 157766400000.0,
y: 39019,
},
{
x: 189302400000.0,
y: 39165,
},
{
x: 220924800000.0,
y: 40407,
},
{
x: 252460800000.0,
y: 40533,
},
{
x: 283996800000.0,
y: 41898,
},
{
x: 315532800000.0,
y: 41743,
},
{
x: 347155200000.0,
y: 40486,
},
{
x: 378691200000.0,
y: 40283,
},
{
x: 410227200000.0,
y: 39048,
},
{
x: 441763200000.0,
y: 38346,
},
{
x: 473385600000.0,
y: 38395,
},
{
x: 504921600000.0,
y: 37021,
},
{
x: 536457600000.0,
y: 36672,
},
{
x: 567993600000.0,
y: 35214,
},
{
x: 599616000000.0,
y: 35139,
},
{
x: 631152000000.0,
y: 33661,
},
{
x: 662688000000.0,
y: 30347,
},
{
x: 694224000000.0,
y: 28344,
},
{
x: 725846400000.0,
y: 26947,
},
{
x: 757382400000.0,
y: 24784,
},
{
x: 788918400000.0,
y: 22967,
},
{
x: 820454400000.0,
y: 22941,
},
{
x: 852076800000.0,
y: 21824,
},
{
x: 883612800000.0,
y: 20816,
},
{
x: 915148800000.0,
y: 20267,
},
{
x: 946684800000.0,
y: 19695,
},
{
x: 978307200000.0,
y: 19281,
},
{
x: 1009843200000.0,
y: 18600,
},
{
x: 1041379200000.0,
y: 18557,
},
{
x: 1072915200000.0,
y: 18315,
},
{
x: 1104537600000.0,
y: 18017,
},
{
x: 1136073600000.0,
y: 17510,
},
{
x: 1167609600000.0,
y: 17400,
},
{
x: 1199145600000.0,
y: 16049,
},
],
},
{
key: ['James'],
values: [
{
x: -157766400000.0,
y: 67506,
},
{
x: -126230400000.0,
y: 65036,
},
{
x: -94694400000.0,
y: 61554,
},
{
x: -63158400000.0,
y: 60584,
},
{
x: -31536000000.0,
y: 59824,
},
{
x: 0.0,
y: 61597,
},
{
x: 31536000000.0,
y: 54463,
},
{
x: 63072000000.0,
y: 46960,
},
{
x: 94694400000.0,
y: 42782,
},
{
x: 126230400000.0,
y: 41258,
},
{
x: 157766400000.0,
y: 39471,
},
{
x: 189302400000.0,
y: 38203,
},
{
x: 220924800000.0,
y: 39916,
},
{
x: 252460800000.0,
y: 39783,
},
{
x: 283996800000.0,
y: 39237,
},
{
x: 315532800000.0,
y: 39185,
},
{
x: 347155200000.0,
y: 38176,
},
{
x: 378691200000.0,
y: 38750,
},
{
x: 410227200000.0,
y: 36228,
},
{
x: 441763200000.0,
y: 35728,
},
{
x: 473385600000.0,
y: 35750,
},
{
x: 504921600000.0,
y: 33955,
},
{
x: 536457600000.0,
y: 32552,
},
{
x: 567993600000.0,
y: 32418,
},
{
x: 599616000000.0,
y: 32658,
},
{
x: 631152000000.0,
y: 32288,
},
{
x: 662688000000.0,
y: 30460,
},
{
x: 694224000000.0,
y: 28450,
},
{
x: 725846400000.0,
y: 26193,
},
{
x: 757382400000.0,
y: 24706,
},
{
x: 788918400000.0,
y: 22691,
},
{
x: 820454400000.0,
y: 21122,
},
{
x: 852076800000.0,
y: 20368,
},
{
x: 883612800000.0,
y: 19651,
},
{
x: 915148800000.0,
y: 18508,
},
{
x: 946684800000.0,
y: 17939,
},
{
x: 978307200000.0,
y: 17023,
},
{
x: 1009843200000.0,
y: 16905,
},
{
x: 1041379200000.0,
y: 16832,
},
{
x: 1072915200000.0,
y: 16459,
},
{
x: 1104537600000.0,
y: 16046,
},
{
x: 1136073600000.0,
y: 16139,
},
{
x: 1167609600000.0,
y: 15821,
},
{
x: 1199145600000.0,
y: 14920,
},
],
},
{
key: ['John'],
values: [
{
x: -157766400000.0,
y: 71390,
},
{
x: -126230400000.0,
y: 64858,
},
{
x: -94694400000.0,
y: 61480,
},
{
x: -63158400000.0,
y: 60754,
},
{
x: -31536000000.0,
y: 58644,
},
{
x: 0.0,
y: 58348,
},
{
x: 31536000000.0,
y: 51382,
},
{
x: 63072000000.0,
y: 43028,
},
{
x: 94694400000.0,
y: 39061,
},
{
x: 126230400000.0,
y: 37553,
},
{
x: 157766400000.0,
y: 34970,
},
{
x: 189302400000.0,
y: 33876,
},
{
x: 220924800000.0,
y: 34103,
},
{
x: 252460800000.0,
y: 33895,
},
{
x: 283996800000.0,
y: 35305,
},
{
x: 315532800000.0,
y: 35131,
},
{
x: 347155200000.0,
y: 34761,
},
{
x: 378691200000.0,
y: 34560,
},
{
x: 410227200000.0,
y: 33047,
},
{
x: 441763200000.0,
y: 32484,
},
{
x: 473385600000.0,
y: 31397,
},
{
x: 504921600000.0,
y: 30103,
},
{
x: 536457600000.0,
y: 29462,
},
{
x: 567993600000.0,
y: 29301,
},
{
x: 599616000000.0,
y: 29751,
},
{
x: 631152000000.0,
y: 29011,
},
{
x: 662688000000.0,
y: 27727,
},
{
x: 694224000000.0,
y: 26156,
},
{
x: 725846400000.0,
y: 24918,
},
{
x: 757382400000.0,
y: 24119,
},
{
x: 788918400000.0,
y: 23174,
},
{
x: 820454400000.0,
y: 22104,
},
{
x: 852076800000.0,
y: 21330,
},
{
x: 883612800000.0,
y: 20556,
},
{
x: 915148800000.0,
y: 20280,
},
{
x: 946684800000.0,
y: 20032,
},
{
x: 978307200000.0,
y: 18839,
},
{
x: 1009843200000.0,
y: 17400,
},
{
x: 1041379200000.0,
y: 17170,
},
{
x: 1072915200000.0,
y: 16381,
},
{
x: 1104537600000.0,
y: 15692,
},
{
x: 1136073600000.0,
y: 15083,
},
{
x: 1167609600000.0,
y: 14348,
},
{
x: 1199145600000.0,
y: 13110,
},
],
},
{
key: ['Michael'],
values: [
{
x: -157766400000.0,
y: 80812,
},
{
x: -126230400000.0,
y: 79709,
},
{
x: -94694400000.0,
y: 82204,
},
{
x: -63158400000.0,
y: 81785,
},
{
x: -31536000000.0,
y: 84893,
},
{
x: 0.0,
y: 85015,
},
{
x: 31536000000.0,
y: 77321,
},
{
x: 63072000000.0,
y: 71197,
},
{
x: 94694400000.0,
y: 67598,
},
{
x: 126230400000.0,
y: 67304,
},
{
x: 157766400000.0,
y: 68149,
},
{
x: 189302400000.0,
y: 66686,
},
{
x: 220924800000.0,
y: 67344,
},
{
x: 252460800000.0,
y: 66875,
},
{
x: 283996800000.0,
y: 67473,
},
{
x: 315532800000.0,
y: 68375,
},
{
x: 347155200000.0,
y: 68467,
},
{
x: 378691200000.0,
y: 67904,
},
{
x: 410227200000.0,
y: 67708,
},
{
x: 441763200000.0,
y: 67457,
},
{
x: 473385600000.0,
y: 64667,
},
{
x: 504921600000.0,
y: 63959,
},
{
x: 536457600000.0,
y: 63442,
},
{
x: 567993600000.0,
y: 63924,
},
{
x: 599616000000.0,
y: 65233,
},
{
x: 631152000000.0,
y: 65138,
},
{
x: 662688000000.0,
y: 60646,
},
{
x: 694224000000.0,
y: 54216,
},
{
x: 725846400000.0,
y: 49443,
},
{
x: 757382400000.0,
y: 44361,
},
{
x: 788918400000.0,
y: 41311,
},
{
x: 820454400000.0,
y: 38284,
},
{
x: 852076800000.0,
y: 37459,
},
{
x: 883612800000.0,
y: 36525,
},
{
x: 915148800000.0,
y: 33820,
},
{
x: 946684800000.0,
y: 31956,
},
{
x: 978307200000.0,
y: 29612,
},
{
x: 1009843200000.0,
y: 28156,
},
{
x: 1041379200000.0,
y: 27031,
},
{
x: 1072915200000.0,
y: 25418,
},
{
x: 1104537600000.0,
y: 23678,
},
{
x: 1136073600000.0,
y: 22498,
},
{
x: 1167609600000.0,
y: 21805,
},
{
x: 1199145600000.0,
y: 20271,
},
],
},
];

View File

@ -1,84 +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 { SuperChart } from '@superset-ui/core';
import { radios } from '@storybook/addon-knobs';
import data from '../data/data';
import { LINE_PLUGIN_TYPE } from '../constants';
import dummyDatasource from '../../../../../shared/dummyDatasource';
export default () => (
<SuperChart
key="line1"
chartType={LINE_PLUGIN_TYPE}
datasource={dummyDatasource}
formData={{
encoding: {
x: {
field: 'x',
type: 'temporal',
format: '%Y-%m',
scale: {
type: 'time',
},
axis: {
orient: radios(
'x.axis.orient',
{ top: 'top', bottom: 'bottom' },
'bottom',
),
title: radios(
'x.axis.title',
{ enable: 'Time', disable: '', '': undefined },
'Time',
),
},
},
y: {
field: 'y',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
orient: radios(
'y.axis.orient',
{ left: 'left', right: 'right', '': undefined },
'left',
),
title: radios(
'y.axis.title',
{ enable: 'Score', disable: '', '': undefined },
'Score',
),
},
},
stroke: {
field: 'name',
type: 'nominal',
legend: true,
},
},
}}
height={400}
queriesData={[{ data }]}
width={400}
/>
);

View File

@ -1,152 +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 { SuperChart } from '@superset-ui/core';
import { radios } from '@storybook/addon-knobs';
import rawData from '../data/data';
import { LINE_PLUGIN_TYPE } from '../constants';
import dummyDatasource from '../../../../../shared/dummyDatasource';
const MIN_TIME = new Date(Date.UTC(1980, 0, 1)).getTime();
const MAX_TIME = new Date(Date.UTC(2000, 1, 1)).getTime();
const data = rawData.filter(({ x }) => x >= MIN_TIME && x <= MAX_TIME);
export default () => (
<>
<SuperChart
key="line1"
chartType={LINE_PLUGIN_TYPE}
width={400}
height={200}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
encoding: {
x: {
field: 'x',
type: 'temporal',
format: '%Y',
scale: {
type: 'utc',
},
axis: {
tickCount: 6,
orient: radios(
'x.axis.orient',
{ top: 'top', bottom: 'bottom' },
'bottom',
),
title: radios(
'x.axis.title',
{ enable: 'Time', disable: '', '': undefined },
'Time',
),
},
},
y: {
field: 'y',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
tickCount: 3,
orient: radios(
'y.axis.orient',
{ left: 'left', right: 'right', '': undefined },
'left',
),
title: radios(
'y.axis.title',
{ enable: 'Score', disable: '', '': undefined },
'Score',
),
},
},
stroke: {
field: 'name',
type: 'nominal',
legend: true,
},
},
}}
/>
,
<SuperChart
key="line2"
chartType={LINE_PLUGIN_TYPE}
width={400}
height={200}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
encoding: {
x: {
field: 'x',
type: 'temporal',
format: '%Y',
scale: {
type: 'utc',
},
axis: {
labelFlush: 5,
tickCount: 6,
orient: radios(
'x.axis.orient',
{ top: 'top', bottom: 'bottom' },
'bottom',
),
title: radios(
'x.axis.title',
{ enable: 'Time', disable: '', '': undefined },
'Time',
),
},
},
y: {
field: 'y',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
tickCount: 3,
orient: radios(
'y.axis.orient',
{ left: 'left', right: 'right', '': undefined },
'left',
),
title: radios(
'y.axis.title',
{ enable: 'Score', disable: '', '': undefined },
'Score',
),
},
},
stroke: {
field: 'name',
type: 'nominal',
legend: true,
},
},
}}
/>
</>
);

View File

@ -1,86 +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 { SuperChart } from '@superset-ui/core';
import data from '../data/legacyData';
import { LINE_PLUGIN_LEGACY_TYPE } from '../constants';
import dummyDatasource from '../../../../../shared/dummyDatasource';
export default () => (
<>
<SuperChart
key="line1"
chartType={LINE_PLUGIN_LEGACY_TYPE}
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
bottomMargin: 'auto',
colorScheme: 'd3Category10',
leftMargin: 'auto',
lineInterpolation: 'linear',
richTooltip: true,
showBrush: 'auto',
showLegend: true,
showMarkers: false,
vizType: 'line',
xAxisFormat: '%Y',
xAxisLabel: '',
xAxisShowminmax: false,
xTicksLayout: 'auto',
yAxisBounds: [null, null],
yAxisFormat: '',
yAxisLabel: '',
yAxisShowminmax: false,
yLogScale: false,
}}
/>
,
<SuperChart
key="line2"
chartType={LINE_PLUGIN_LEGACY_TYPE}
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
bottomMargin: 'auto',
colorScheme: 'd3Category10',
leftMargin: 'auto',
lineInterpolation: 'linear',
richTooltip: true,
showBrush: 'auto',
showLegend: true,
showMarkers: false,
vizType: 'line',
xAxisFormat: '%Y-%m',
xAxisLabel: '',
xAxisShowminmax: false,
xTicksLayout: 'auto',
yAxisBounds: [null, null],
yAxisFormat: '',
yAxisLabel: '',
yAxisShowminmax: false,
yLogScale: false,
}}
/>
</>
);

View File

@ -1,75 +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 { SuperChart, seedRandom } from '@superset-ui/core';
import data from '../data/data';
import { LINE_PLUGIN_TYPE } from '../constants';
import dummyDatasource from '../../../../../shared/dummyDatasource';
const missingData = data.map(({ y, ...rest }) => ({
...rest,
y: seedRandom() < 0.25 ? null : y,
}));
const missing = () => (
<SuperChart
key="line1"
chartType={LINE_PLUGIN_TYPE}
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data: missingData }]}
formData={{
encoding: {
x: {
field: 'x',
type: 'temporal',
format: '%Y',
scale: {
type: 'time',
},
axis: {
orient: 'bottom',
title: 'Time',
},
},
y: {
field: 'y',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
orient: 'left',
title: 'Score',
},
},
stroke: {
field: 'name',
type: 'nominal',
scale: {},
legend: true,
},
},
}}
/>
);
export default missing;

View File

@ -1,83 +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 { LINE_PLUGIN_TYPE, LINE_PLUGIN_LEGACY_TYPE } from '../constants';
import createQueryStory from '../../../../../shared/components/createQueryStory';
export default createQueryStory({
choices: {
'Line Chart - Legacy API': {
chartType: LINE_PLUGIN_LEGACY_TYPE,
formData: {
datasource: '3__table',
viz_type: 'line',
url_params: {},
granularity_sqla: 'ds',
time_grain_sqla: 'P1D',
time_range: '100 years ago : now',
metrics: ['sum__num'],
adhoc_filters: [],
groupby: [],
limit: 25,
row_limit: 50000,
},
},
'Line Chart - /api/v1/query': {
chartType: LINE_PLUGIN_TYPE,
formData: {
viz_type: LINE_PLUGIN_TYPE,
datasource: '3__table',
granularity_sqla: 'ds',
time_grain_sqla: 'P1D',
time_range: '100 years ago : now',
metrics: ['sum__num'],
limit: 25,
row_limit: 50000,
encoding: {
x: {
field: '__timestamp',
type: 'temporal',
format: '%Y',
scale: {
type: 'time',
},
axis: {
title: 'Time',
},
},
y: {
field: 'sum__num',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
title: 'Number of Babies',
},
},
stroke: {
field: 'gender',
type: 'nominal',
legend: true,
},
},
},
},
},
});

View File

@ -1,100 +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 { SuperChart, useTheme } from '@superset-ui/core';
import data from '../data/data2';
import { LINE_PLUGIN_TYPE } from '../constants';
import dummyDatasource from '../../../../../shared/dummyDatasource';
export default () => {
const theme = useTheme();
return (
<SuperChart
key="line1"
chartType={LINE_PLUGIN_TYPE}
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
encoding: {
x: {
field: 'x',
type: 'temporal',
format: '%Y',
scale: {
type: 'time',
},
axis: {
orient: 'bottom',
title: 'Time',
},
},
y: {
field: 'y',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
orient: 'left',
title: 'Score',
},
},
stroke: {
value: theme.colors.success.base,
type: 'nominal',
scale: false,
},
fill: {
field: 'snapshot',
type: 'nominal',
scale: {
type: 'ordinal',
domain: ['Current', 'Last year'],
range: [true, false],
},
legend: false,
},
strokeDasharray: {
field: 'snapshot',
type: 'nominal',
scale: {
type: 'ordinal',
domain: ['Current', 'Last year'],
range: [null, '4 4'],
},
legend: false,
},
strokeWidth: {
field: 'snapshot',
type: 'nominal',
scale: {
type: 'ordinal',
domain: ['Current', 'Last year'],
range: [3, 1.5],
},
legend: false,
},
},
}}
/>
);
};

View File

@ -1,44 +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 {
ScatterPlotChartPlugin,
LegacyScatterPlotChartPlugin,
} from '@superset-ui/preset-chart-xy';
import { withKnobs } from '@storybook/addon-knobs';
import {
SCATTER_PLOT_PLUGIN_TYPE,
SCATTER_PLOT_PLUGIN_LEGACY_TYPE,
} from './constants';
new LegacyScatterPlotChartPlugin()
.configure({ key: SCATTER_PLOT_PLUGIN_LEGACY_TYPE })
.register();
new ScatterPlotChartPlugin()
.configure({ key: SCATTER_PLOT_PLUGIN_TYPE })
.register();
export default {
title: 'Chart Plugins/preset-chart-xy/ScatterPlot',
decorators: [withKnobs],
};
export { default as basic } from './stories/basic';
export { default as bubble } from './stories/bubble';
export { default as legacy } from './stories/legacy';

View File

@ -1,21 +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 SCATTER_PLOT_PLUGIN_TYPE = 'v2-scatter-plot';
export const SCATTER_PLOT_PLUGIN_LEGACY_TYPE = 'v2-scatter-plot/legacy';

View File

@ -1,197 +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.
*/
/* eslint-disable sort-keys, no-magic-numbers */
export default [
{
country_name: 'China',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 1344130000,
sum__SP_RUR_TOTL_ZS: 49.427,
sum__SP_DYN_LE00_IN: 75.042,
},
{
country_name: 'Indonesia',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 244808254,
sum__SP_RUR_TOTL_ZS: 49.288,
sum__SP_DYN_LE00_IN: 70.3915609756,
},
{
country_name: 'Japan',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 127817277,
sum__SP_RUR_TOTL_ZS: 8.752,
sum__SP_DYN_LE00_IN: 82.5912195122,
},
{
country_name: 'Philippines',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 94501233,
sum__SP_RUR_TOTL_ZS: 54.983,
sum__SP_DYN_LE00_IN: 68.3914878049,
},
{
country_name: 'Vietnam',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 87840000,
sum__SP_RUR_TOTL_ZS: 68.971,
sum__SP_DYN_LE00_IN: 75.457902439,
},
{
country_name: 'Thailand',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 66902958,
sum__SP_RUR_TOTL_ZS: 54.606,
sum__SP_DYN_LE00_IN: 74.008902439,
},
{
country_name: 'Myanmar',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 52125411,
sum__SP_RUR_TOTL_ZS: 68.065,
sum__SP_DYN_LE00_IN: 64.7612439024,
},
{
country_name: 'India',
region: 'South Asia',
sum__SP_POP_TOTL: 1247446011,
sum__SP_RUR_TOTL_ZS: 68.724,
sum__SP_DYN_LE00_IN: 65.9584878049,
},
{
country_name: 'Pakistan',
region: 'South Asia',
sum__SP_POP_TOTL: 173669648,
sum__SP_RUR_TOTL_ZS: 62.993,
sum__SP_DYN_LE00_IN: 66.2838780488,
},
{
country_name: 'Bangladesh',
region: 'South Asia',
sum__SP_POP_TOTL: 153405612,
sum__SP_RUR_TOTL_ZS: 68.775,
sum__SP_DYN_LE00_IN: 69.891804878,
},
{
country_name: 'United States',
region: 'North America',
sum__SP_POP_TOTL: 311721632,
sum__SP_RUR_TOTL_ZS: 19.06,
sum__SP_DYN_LE00_IN: 78.6414634146,
},
{
country_name: 'Brazil',
region: 'Latin America & Caribbean',
sum__SP_POP_TOTL: 200517584,
sum__SP_RUR_TOTL_ZS: 15.377,
sum__SP_DYN_LE00_IN: 73.3473658537,
},
{
country_name: 'Mexico',
region: 'Latin America & Caribbean',
sum__SP_POP_TOTL: 120365271,
sum__SP_RUR_TOTL_ZS: 21.882,
sum__SP_DYN_LE00_IN: 76.9141707317,
},
{
country_name: 'Nigeria',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 163770669,
sum__SP_RUR_TOTL_ZS: 55.638,
sum__SP_DYN_LE00_IN: 51.7102439024,
},
{
country_name: 'Ethiopia',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 89858696,
sum__SP_RUR_TOTL_ZS: 82.265,
sum__SP_DYN_LE00_IN: 62.2528536585,
},
{
country_name: 'Congo, Dem. Rep.',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 68087376,
sum__SP_RUR_TOTL_ZS: 59.558,
sum__SP_DYN_LE00_IN: 49.3007073171,
},
{
country_name: 'South Africa',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 51553479,
sum__SP_RUR_TOTL_ZS: 37.254,
sum__SP_DYN_LE00_IN: 55.2956585366,
},
{
country_name: 'Russian Federation',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 142960868,
sum__SP_RUR_TOTL_ZS: 26.268,
sum__SP_DYN_LE00_IN: 69.6585365854,
},
{
country_name: 'Germany',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 81797673,
sum__SP_RUR_TOTL_ZS: 25.512,
sum__SP_DYN_LE00_IN: 80.7414634146,
},
{
country_name: 'Turkey',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 73199372,
sum__SP_RUR_TOTL_ZS: 28.718,
sum__SP_DYN_LE00_IN: 74.5404878049,
},
{
country_name: 'France',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 65342776,
sum__SP_RUR_TOTL_ZS: 21.416,
sum__SP_DYN_LE00_IN: 82.1146341463,
},
{
country_name: 'United Kingdom',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 63258918,
sum__SP_RUR_TOTL_ZS: 18.43,
sum__SP_DYN_LE00_IN: 80.9512195122,
},
{
country_name: 'Italy',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 59379449,
sum__SP_RUR_TOTL_ZS: 31.556,
sum__SP_DYN_LE00_IN: 82.187804878,
},
{
country_name: 'Egypt, Arab Rep.',
region: 'Middle East & North Africa',
sum__SP_POP_TOTL: 83787634,
sum__SP_RUR_TOTL_ZS: 57,
sum__SP_DYN_LE00_IN: 70.6785609756,
},
{
country_name: 'Iran, Islamic Rep.',
region: 'Middle East & North Africa',
sum__SP_POP_TOTL: 75184322,
sum__SP_RUR_TOTL_ZS: 28.8,
sum__SP_DYN_LE00_IN: 73.4493170732,
},
];

View File

@ -1,357 +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.
*/
/* eslint-disable sort-keys, no-magic-numbers */
export default [
{
key: 'East Asia & Pacific',
values: [
{
country_name: 'China',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 1344130000.0,
sum__SP_RUR_TOTL_ZS: 49.427,
sum__SP_DYN_LE00_IN: 75.042,
x: 49.427,
y: 75.042,
size: 1344130000.0,
shape: 'circle',
group: 'East Asia & Pacific',
},
{
country_name: 'Indonesia',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 244808254.0,
sum__SP_RUR_TOTL_ZS: 49.288,
sum__SP_DYN_LE00_IN: 70.3915609756,
x: 49.288,
y: 70.3915609756,
size: 244808254.0,
shape: 'circle',
group: 'East Asia & Pacific',
},
{
country_name: 'Japan',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 127817277.0,
sum__SP_RUR_TOTL_ZS: 8.752,
sum__SP_DYN_LE00_IN: 82.5912195122,
x: 8.752,
y: 82.5912195122,
size: 127817277.0,
shape: 'circle',
group: 'East Asia & Pacific',
},
{
country_name: 'Philippines',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 94501233.0,
sum__SP_RUR_TOTL_ZS: 54.983,
sum__SP_DYN_LE00_IN: 68.3914878049,
x: 54.983,
y: 68.3914878049,
size: 94501233.0,
shape: 'circle',
group: 'East Asia & Pacific',
},
{
country_name: 'Vietnam',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 87840000.0,
sum__SP_RUR_TOTL_ZS: 68.971,
sum__SP_DYN_LE00_IN: 75.457902439,
x: 68.971,
y: 75.457902439,
size: 87840000.0,
shape: 'circle',
group: 'East Asia & Pacific',
},
{
country_name: 'Thailand',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 66902958.0,
sum__SP_RUR_TOTL_ZS: 54.606,
sum__SP_DYN_LE00_IN: 74.008902439,
x: 54.606,
y: 74.008902439,
size: 66902958.0,
shape: 'circle',
group: 'East Asia & Pacific',
},
{
country_name: 'Myanmar',
region: 'East Asia & Pacific',
sum__SP_POP_TOTL: 52125411.0,
sum__SP_RUR_TOTL_ZS: 68.065,
sum__SP_DYN_LE00_IN: 64.7612439024,
x: 68.065,
y: 64.7612439024,
size: 52125411.0,
shape: 'circle',
group: 'East Asia & Pacific',
},
],
},
{
key: 'South Asia',
values: [
{
country_name: 'India',
region: 'South Asia',
sum__SP_POP_TOTL: 1247446011.0,
sum__SP_RUR_TOTL_ZS: 68.724,
sum__SP_DYN_LE00_IN: 65.9584878049,
x: 68.724,
y: 65.9584878049,
size: 1247446011.0,
shape: 'circle',
group: 'South Asia',
},
{
country_name: 'Pakistan',
region: 'South Asia',
sum__SP_POP_TOTL: 173669648.0,
sum__SP_RUR_TOTL_ZS: 62.993,
sum__SP_DYN_LE00_IN: 66.2838780488,
x: 62.993,
y: 66.2838780488,
size: 173669648.0,
shape: 'circle',
group: 'South Asia',
},
{
country_name: 'Bangladesh',
region: 'South Asia',
sum__SP_POP_TOTL: 153405612.0,
sum__SP_RUR_TOTL_ZS: 68.775,
sum__SP_DYN_LE00_IN: 69.891804878,
x: 68.775,
y: 69.891804878,
size: 153405612.0,
shape: 'circle',
group: 'South Asia',
},
],
},
{
key: 'North America',
values: [
{
country_name: 'United States',
region: 'North America',
sum__SP_POP_TOTL: 311721632.0,
sum__SP_RUR_TOTL_ZS: 19.06,
sum__SP_DYN_LE00_IN: 78.6414634146,
x: 19.06,
y: 78.6414634146,
size: 311721632.0,
shape: 'circle',
group: 'North America',
},
],
},
{
key: 'Latin America & Caribbean',
values: [
{
country_name: 'Brazil',
region: 'Latin America & Caribbean',
sum__SP_POP_TOTL: 200517584.0,
sum__SP_RUR_TOTL_ZS: 15.377,
sum__SP_DYN_LE00_IN: 73.3473658537,
x: 15.377,
y: 73.3473658537,
size: 200517584.0,
shape: 'circle',
group: 'Latin America & Caribbean',
},
{
country_name: 'Mexico',
region: 'Latin America & Caribbean',
sum__SP_POP_TOTL: 120365271.0,
sum__SP_RUR_TOTL_ZS: 21.882,
sum__SP_DYN_LE00_IN: 76.9141707317,
x: 21.882,
y: 76.9141707317,
size: 120365271.0,
shape: 'circle',
group: 'Latin America & Caribbean',
},
],
},
{
key: 'Sub-Saharan Africa',
values: [
{
country_name: 'Nigeria',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 163770669.0,
sum__SP_RUR_TOTL_ZS: 55.638,
sum__SP_DYN_LE00_IN: 51.7102439024,
x: 55.638,
y: 51.7102439024,
size: 163770669.0,
shape: 'circle',
group: 'Sub-Saharan Africa',
},
{
country_name: 'Ethiopia',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 89858696.0,
sum__SP_RUR_TOTL_ZS: 82.265,
sum__SP_DYN_LE00_IN: 62.2528536585,
x: 82.265,
y: 62.2528536585,
size: 89858696.0,
shape: 'circle',
group: 'Sub-Saharan Africa',
},
{
country_name: 'Congo, Dem. Rep.',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 68087376.0,
sum__SP_RUR_TOTL_ZS: 59.558,
sum__SP_DYN_LE00_IN: 49.3007073171,
x: 59.558,
y: 49.3007073171,
size: 68087376.0,
shape: 'circle',
group: 'Sub-Saharan Africa',
},
{
country_name: 'South Africa',
region: 'Sub-Saharan Africa',
sum__SP_POP_TOTL: 51553479.0,
sum__SP_RUR_TOTL_ZS: 37.254,
sum__SP_DYN_LE00_IN: 55.2956585366,
x: 37.254,
y: 55.2956585366,
size: 51553479.0,
shape: 'circle',
group: 'Sub-Saharan Africa',
},
],
},
{
key: 'Europe & Central Asia',
values: [
{
country_name: 'Russian Federation',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 142960868.0,
sum__SP_RUR_TOTL_ZS: 26.268,
sum__SP_DYN_LE00_IN: 69.6585365854,
x: 26.268,
y: 69.6585365854,
size: 142960868.0,
shape: 'circle',
group: 'Europe & Central Asia',
},
{
country_name: 'Germany',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 81797673.0,
sum__SP_RUR_TOTL_ZS: 25.512,
sum__SP_DYN_LE00_IN: 80.7414634146,
x: 25.512,
y: 80.7414634146,
size: 81797673.0,
shape: 'circle',
group: 'Europe & Central Asia',
},
{
country_name: 'Turkey',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 73199372.0,
sum__SP_RUR_TOTL_ZS: 28.718,
sum__SP_DYN_LE00_IN: 74.5404878049,
x: 28.718,
y: 74.5404878049,
size: 73199372.0,
shape: 'circle',
group: 'Europe & Central Asia',
},
{
country_name: 'France',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 65342776.0,
sum__SP_RUR_TOTL_ZS: 21.416,
sum__SP_DYN_LE00_IN: 82.1146341463,
x: 21.416,
y: 82.1146341463,
size: 65342776.0,
shape: 'circle',
group: 'Europe & Central Asia',
},
{
country_name: 'United Kingdom',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 63258918.0,
sum__SP_RUR_TOTL_ZS: 18.43,
sum__SP_DYN_LE00_IN: 80.9512195122,
x: 18.43,
y: 80.9512195122,
size: 63258918.0,
shape: 'circle',
group: 'Europe & Central Asia',
},
{
country_name: 'Italy',
region: 'Europe & Central Asia',
sum__SP_POP_TOTL: 59379449.0,
sum__SP_RUR_TOTL_ZS: 31.556,
sum__SP_DYN_LE00_IN: 82.187804878,
x: 31.556,
y: 82.187804878,
size: 59379449.0,
shape: 'circle',
group: 'Europe & Central Asia',
},
],
},
{
key: 'Middle East & North Africa',
values: [
{
country_name: 'Egypt, Arab Rep.',
region: 'Middle East & North Africa',
sum__SP_POP_TOTL: 83787634.0,
sum__SP_RUR_TOTL_ZS: 57.0,
sum__SP_DYN_LE00_IN: 70.6785609756,
x: 57.0,
y: 70.6785609756,
size: 83787634.0,
shape: 'circle',
group: 'Middle East & North Africa',
},
{
country_name: 'Iran, Islamic Rep.',
region: 'Middle East & North Africa',
sum__SP_POP_TOTL: 75184322.0,
sum__SP_RUR_TOTL_ZS: 28.8,
sum__SP_DYN_LE00_IN: 73.4493170732,
x: 28.8,
y: 73.4493170732,
size: 75184322.0,
shape: 'circle',
group: 'Middle East & North Africa',
},
],
},
];

View File

@ -1,75 +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.
*/
/* eslint-disable no-magic-numbers, sort-keys */
import * as React from 'react';
import { SuperChart } from '@superset-ui/core';
import { radios } from '@storybook/addon-knobs';
import data from '../data/data';
import { SCATTER_PLOT_PLUGIN_TYPE } from '../constants';
import dummyDatasource from '../../../../../shared/dummyDatasource';
export default () => (
<SuperChart
key="scatter-plot1"
chartType={SCATTER_PLOT_PLUGIN_TYPE}
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
encoding: {
x: {
field: 'sum__SP_RUR_TOTL_ZS',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
orient: radios(
'x.axis.orient',
{ top: 'top', bottom: 'bottom' },
'bottom',
),
},
},
y: {
field: 'sum__SP_DYN_LE00_IN',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
orient: radios(
'y.axis.orient',
{ left: 'left', right: 'right' },
'left',
),
},
},
fill: {
field: 'region',
type: 'nominal',
legend: true,
},
group: [{ field: 'country_name', title: 'Country' }],
},
}}
/>
);

View File

@ -1,83 +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.
*/
/* eslint-disable no-magic-numbers, sort-keys */
import * as React from 'react';
import { SuperChart } from '@superset-ui/core';
import { radios } from '@storybook/addon-knobs';
import dummyDatasource from '../../../../../shared/dummyDatasource';
import data from '../data/data';
import { SCATTER_PLOT_PLUGIN_TYPE } from '../constants';
export default () => (
<SuperChart
key="scatter-plot1"
chartType={SCATTER_PLOT_PLUGIN_TYPE}
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
encoding: {
x: {
field: 'sum__SP_RUR_TOTL_ZS',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
orient: radios(
'x.axis.orient',
{ top: 'top', bottom: 'bottom' },
'bottom',
),
},
},
y: {
field: 'sum__SP_DYN_LE00_IN',
type: 'quantitative',
scale: {
type: 'linear',
},
axis: {
orient: radios(
'y.axis.orient',
{ left: 'left', right: 'right' },
'left',
),
},
},
size: {
field: 'sum__SP_POP_TOTL',
type: 'quantitative',
scale: {
type: 'linear',
range: [0, 30],
},
},
fill: {
field: 'region',
type: 'nominal',
legend: true,
},
group: [{ field: 'country_name', title: 'Country' }],
},
}}
/>
);

View File

@ -1,58 +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 * as React from 'react';
import { SuperChart } from '@superset-ui/core';
import data from '../data/legacyData';
import { SCATTER_PLOT_PLUGIN_LEGACY_TYPE } from '../constants';
import dummyDatasource from '../../../../../shared/dummyDatasource';
export default () => (
<SuperChart
key="scatter-plot1"
chartType={SCATTER_PLOT_PLUGIN_LEGACY_TYPE}
width={400}
height={400}
datasource={dummyDatasource}
queriesData={[{ data }]}
formData={{
annotationData: {},
bottomMargin: 'auto',
colorScheme: 'd3Category10',
entity: 'country_name',
leftMargin: 'auto',
maxBubbleSize: '50',
series: 'region',
showLegend: true,
size: 'sum__SP_POP_TOTL',
vizType: 'bubble',
x: 'sum__SP_RUR_TOTL_ZS',
xAxisFormat: '.3s',
xAxisLabel: 'x-axis label test',
xAxisShowminmax: false,
xLogScale: false,
xTicksLayout: 'auto',
y: 'sum__SP_DYN_LE00_IN',
yAxisFormat: '.3s',
yAxisLabel: '',
yAxisShowminmax: false,
yLogScale: false,
}}
/>
);

View File

@ -1,27 +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.
-->
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [0.18.0](https://github.com/apache-superset/superset-ui/compare/v0.17.87...v0.18.0) (2021-08-30)
**Note:** Version bump only for package @superset-ui/preset-chart-xy

View File

@ -1,54 +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.
-->
## @superset-ui/preset-chart-xy
[![Version](https://img.shields.io/npm/v/@superset-ui/preset-chart-xy.svg?style=flat-square)](https://www.npmjs.com/package/@superset-ui/preset-chart-xy)
[![David (path)](https://img.shields.io/david/apache-superset/superset-ui-plugins.svg?path=packages%2Fsuperset-ui-preset-chart-xy&style=flat-square)](https://david-dm.org/apache-superset/superset-ui-plugins?path=packages/superset-ui-preset-chart-xy)
This plugin provides basic charts on cartesian coordinates (Line, Box Plot) for Superset.
> DISCLAIMER: It is still under heavy development and the APIs are subject to changes.
### Usage
Configure `key`, which can be any `string`, and register the plugin. This `key` will be used to
lookup this chart throughout the app.
```js
import { BoxPlotChartPlugin } from '@superset-ui/preset-chart-xy';
new BoxPlotChartPlugin().configure({ key: 'box-plot' }).register();
```
Then use it via `SuperChart`. See
[storybook](https://apache-superset.github.io/superset-ui-plugins/?selectedKind=plugin-chart-box-plot)
for more details.
```js
<SuperChart
chartType="box-plot"
width={600}
height={600}
formData={...}
queriesData={[{
data: {...},
}]}
/>
```

View File

@ -1,48 +0,0 @@
{
"name": "@superset-ui/preset-chart-xy",
"version": "0.18.25",
"description": "Superset Chart - XY",
"sideEffects": [
"*.css"
],
"main": "lib/index.js",
"module": "esm/index.js",
"files": [
"esm",
"lib",
"types"
],
"repository": {
"type": "git",
"url": "https://github.com/apache/superset.git",
"directory": "superset-frontend/packages/preset-chart-xy"
},
"keywords": [
"superset"
],
"author": "Superset",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/apache/superset/issues"
},
"homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/preset-chart-xy#readme",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@data-ui/theme": "^0.0.84",
"@data-ui/xy-chart": "^0.0.84",
"@vx/axis": "^0.0.198",
"@vx/legend": "^0.0.198",
"@vx/scale": "^0.0.197",
"csstype": "^2.6.3",
"encodable": "^0.7.6",
"lodash": "^4.17.11",
"reselect": "^4.0.0"
},
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
"react": "^16.2"
}
}

View File

@ -1,77 +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 { t } from '@superset-ui/core';
import { ControlPanelConfig, sections } from '@superset-ui/chart-controls';
const config: ControlPanelConfig = {
controlPanelSections: [
sections.legacyRegularTime,
{
label: t('Query'),
expanded: true,
controlSetRows: [['metrics'], ['adhoc_filters'], ['groupby'], ['limit']],
},
{
label: t('Chart Options'),
expanded: true,
controlSetRows: [
['color_scheme'],
[
{
name: 'whisker_options',
config: {
type: 'SelectControl',
freeForm: true,
label: t('Whisker/outlier options'),
default: 'Tukey',
description: t(
'Determines how whiskers and outliers are calculated.',
),
choices: [
['Tukey', t('Tukey')],
['Min/max (no outliers)', t('Min/max (no outliers)')],
['2/98 percentiles', t('2/98 percentiles')],
['9/91 percentiles', t('9/91 percentiles')],
],
},
},
{
name: 'x_ticks_layout',
config: {
type: 'SelectControl',
label: t('X Tick Layout'),
choices: [
['auto', t('auto')],
['flat', t('flat')],
['45°', '45°'],
['staggered', t('staggered')],
],
default: 'auto',
clearable: false,
renderTrigger: true,
description: t('The way the ticks are laid out on the X-axis'),
},
},
],
],
},
],
};
export default config;

View File

@ -1,31 +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 { t, ChartMetadata } from '@superset-ui/core';
import thumbnail from './images/thumbnail.png';
export default function createMetadata(useLegacyApi = false) {
return new ChartMetadata({
category: t('Distribution'),
description: '',
name: t('Box Plot'),
thumbnail,
useLegacyApi,
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,36 +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 { ChartPlugin } from '@superset-ui/core';
import createMetadata from './createMetadata';
import transformProps from './transformProps';
import controlPanel from './controlPanel';
import configureEncodable from '../configureEncodable';
configureEncodable();
export default class BoxPlotChartPlugin extends ChartPlugin {
constructor() {
super({
loadChart: () => import('../components/BoxPlot/BoxPlot'),
metadata: createMetadata(),
transformProps,
controlPanel,
});
}
}

View File

@ -1,36 +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 { ChartPlugin, QueryFormData } from '@superset-ui/core';
import createMetadata from '../createMetadata';
import transformProps, { LegacyBoxPlotChartProps } from './transformProps';
import controlPanel from '../controlPanel';
export default class BoxPlotChartPlugin extends ChartPlugin<
QueryFormData,
LegacyBoxPlotChartProps
> {
constructor() {
super({
loadChart: () => import('../../components/BoxPlot/BoxPlot'),
metadata: createMetadata(true),
transformProps,
controlPanel,
});
}
}

View File

@ -1,122 +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 {
ChartProps,
LegacyQueryData,
QueryFormData,
QueryFormMetric,
} from '@superset-ui/core';
import {
RawBoxPlotDataRow,
BoxPlotDataRow,
} from '../../components/BoxPlot/types';
export type LegacyBoxPlotFormData = {
groupby?: QueryFormData['groupby'];
metrics?: QueryFormData['metrics'];
colorScheme?: string;
};
export type LegacyBoxPlotChartProps = ChartProps & {
formData: LegacyBoxPlotFormData;
queriesData: (LegacyQueryData & {
data?: RawBoxPlotDataRow[];
})[];
};
export default function transformProps(chartProps: LegacyBoxPlotChartProps) {
const { width, height, datasource, formData, queriesData } = chartProps;
const { verboseMap = {} } = datasource;
const { colorScheme, groupby = [], metrics = [] } = formData;
const data = (queriesData[0].data || []).map(({ label, values }) => ({
label,
min: values.whisker_low,
max: values.whisker_high,
firstQuartile: values.Q1,
median: values.Q2,
thirdQuartile: values.Q3,
outliers: values.outliers,
}));
const xAxisLabel = groupby.join('/');
let metric: QueryFormMetric = '';
if (Array.isArray(metrics)) {
metric = metrics.length > 0 ? metrics[0] : '';
} else {
metric = metrics;
}
const yAxisLabel =
typeof metric === 'string' ? verboseMap[metric] || metric : metric.label;
const boxPlotValues = data.reduce((r: number[], e: BoxPlotDataRow) => {
r.push(e.min, e.max, ...e.outliers);
return r;
}, []);
const minBoxPlotValue = Math.min(...boxPlotValues);
const maxBoxPlotValue = Math.max(...boxPlotValues);
const valueDomain = [
minBoxPlotValue - 0.1 * Math.abs(minBoxPlotValue),
maxBoxPlotValue + 0.1 * Math.abs(maxBoxPlotValue),
];
return {
data,
width,
height,
encoding: {
x: {
field: 'label',
type: 'nominal',
scale: {
type: 'band',
paddingInner: 0.15,
paddingOuter: 0.3,
},
axis: {
title: xAxisLabel,
},
},
y: {
field: 'value',
type: 'quantitative',
scale: {
type: 'linear',
domain: valueDomain,
},
axis: {
title: yAxisLabel,
numTicks: 5,
format: 'SMART_NUMBER',
},
},
color: {
field: 'label',
type: 'nominal',
scale: {
scheme: colorScheme,
},
legend: false,
},
},
};
}

View File

@ -1,90 +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 { pick } from 'lodash';
import { ChartProps } from '@superset-ui/core';
import { BoxPlotDataRow, RawBoxPlotDataRow } from '../components/BoxPlot/types';
import { HookProps } from '../components/BoxPlot/BoxPlot';
import { BoxPlotEncoding } from '../components/BoxPlot/Encoder';
export default function transformProps(chartProps: ChartProps) {
const { width, height, formData, queriesData } = chartProps;
const { margin, theme } = formData;
const encoding = formData.encoding as BoxPlotEncoding;
const data = (queriesData[0].data as RawBoxPlotDataRow[]).map(
({ label, values }) => ({
label,
min: values.whisker_low,
max: values.whisker_high,
firstQuartile: values.Q1,
median: values.Q2,
thirdQuartile: values.Q3,
outliers: values.outliers,
}),
);
const isHorizontal = encoding.y.type === 'nominal';
const boxPlotValues = data.reduce((r: number[], e: BoxPlotDataRow) => {
r.push(e.min, e.max, ...e.outliers);
return r;
}, []);
const minBoxPlotValue = Math.min(...boxPlotValues);
const maxBoxPlotValue = Math.max(...boxPlotValues);
const valueDomain = [
minBoxPlotValue - 0.1 * Math.abs(minBoxPlotValue),
maxBoxPlotValue + 0.1 * Math.abs(maxBoxPlotValue),
];
if (isHorizontal) {
if (encoding.x.scale) {
encoding.x.scale.domain = valueDomain;
} else {
encoding.x.scale = { domain: valueDomain };
}
} else if (encoding.y.scale) {
encoding.y.scale.domain = valueDomain;
} else {
encoding.y.scale = { domain: valueDomain };
}
const hooks = chartProps.hooks as HookProps;
const fieldsFromHooks: (keyof HookProps)[] = [
'TooltipRenderer',
'LegendRenderer',
'LegendGroupRenderer',
'LegendItemRenderer',
'LegendItemMarkRenderer',
'LegendItemLabelRenderer',
];
return {
data,
width,
height,
margin,
theme,
encoding,
...pick(hooks, fieldsFromHooks),
};
}

View File

@ -1,26 +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 { QueryFormData } from '@superset-ui/core';
import { FormDataProps } from '../components/Line/Line';
type CombinedFormData = QueryFormData & FormDataProps;
// eslint-disable-next-line no-undef
export default CombinedFormData;

View File

@ -1,37 +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 { buildQueryContext } from '@superset-ui/core';
import ChartFormData from './ChartFormData';
import { lineEncoderFactory } from '../components/Line/Encoder';
export default function buildQuery(formData: ChartFormData) {
const queryContext = buildQueryContext(formData);
const { encoding } = formData;
const encoder = lineEncoderFactory.create(encoding);
queryContext.queries.forEach(query => {
const q = query;
q.groupby = encoder.getGroupBys();
// Enforce time-series mode
q.is_timeseries = true;
});
return queryContext;
}

View File

@ -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.
*/
import { t, ChartMetadata } from '@superset-ui/core';
import thumbnail from './images/thumbnail.png';
export default function createMetadata(useLegacyApi = false) {
return new ChartMetadata({
description: '',
name: t('Line Chart'),
thumbnail,
useLegacyApi,
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -1,35 +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 { ChartPlugin } from '@superset-ui/core';
import transformProps from './transformProps';
import createMetadata from './createMetadata';
import buildQuery from './buildQuery';
import ChartFormData from './ChartFormData';
export default class LineChartPlugin extends ChartPlugin<ChartFormData> {
constructor() {
super({
buildQuery,
loadChart: () => import('../components/Line/Line'),
metadata: createMetadata(),
transformProps,
});
}
}

View File

@ -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 { ChartPlugin } from '@superset-ui/core';
import transformProps from './transformProps';
import createMetadata from '../createMetadata';
export default class LineChartPlugin extends ChartPlugin {
constructor() {
super({
loadChart: () => import('../../components/Line/Line'),
metadata: createMetadata(true),
transformProps,
});
}
}

View File

@ -1,83 +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 { ChartProps } from '@superset-ui/core';
import { flatMap } from 'lodash';
interface DataRow {
key: string[];
values: {
x: number;
y: number;
}[];
}
export default function transformProps(chartProps: ChartProps) {
const { width, height, formData, queriesData } = chartProps;
const { colorScheme, xAxisLabel, xAxisFormat, yAxisLabel, yAxisFormat } =
formData;
const data = queriesData[0].data as DataRow[];
return {
data: flatMap(
data.map((row: DataRow) =>
row.values.map(v => ({
...v,
name: row.key[0],
})),
),
),
width,
height,
encoding: {
x: {
field: 'x',
type: 'temporal',
format: xAxisFormat,
scale: {
type: 'time',
},
axis: {
orient: 'bottom',
title: xAxisLabel,
},
},
y: {
field: 'y',
type: 'quantitative',
format: yAxisFormat,
scale: {
type: 'linear',
},
axis: {
orient: 'left',
title: yAxisLabel,
},
},
stroke: {
field: 'name',
type: 'nominal',
scale: {
scheme: colorScheme,
},
legend: true,
},
},
};
}

View File

@ -1,56 +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 { pick } from 'lodash';
import { ChartProps } from '@superset-ui/core';
import { HookProps, FormDataProps } from '../components/Line/Line';
export default function transformProps(chartProps: ChartProps) {
const { width, height, queriesData } = chartProps;
const { data } = queriesData[0];
const formData = chartProps.formData as FormDataProps;
const hooks = chartProps.hooks as HookProps;
/**
* Use type-check to make sure the field names are expected ones
* and only pick these fields to pass to the chart.
*/
const fieldsFromFormData: (keyof FormDataProps)[] = [
'encoding',
'margin',
'theme',
];
const fieldsFromHooks: (keyof HookProps)[] = [
'TooltipRenderer',
'LegendRenderer',
'LegendGroupRenderer',
'LegendItemRenderer',
'LegendItemMarkRenderer',
'LegendItemLabelRenderer',
];
return {
data,
width,
height,
...pick(formData, fieldsFromFormData),
...pick(hooks, fieldsFromHooks),
};
}

View File

@ -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.
*/
import { t, ChartMetadata } from '@superset-ui/core';
import thumbnail from './images/thumbnail.png';
export default function createMetadata(useLegacyApi = false) {
return new ChartMetadata({
description: '',
name: t('Scatter Plot'),
thumbnail,
useLegacyApi,
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -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 { ChartPlugin } from '@superset-ui/core';
import createMetadata from './createMetadata';
import transformProps from './transformProps';
export default class LineChartPlugin extends ChartPlugin {
constructor() {
super({
loadChart: () => import('../components/ScatterPlot/ScatterPlot'),
metadata: createMetadata(),
transformProps,
});
}
}

View File

@ -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 { ChartPlugin } from '@superset-ui/core';
import createMetadata from '../createMetadata';
import transformProps from './transformProps';
export default class LineChartPlugin extends ChartPlugin {
constructor() {
super({
loadChart: () => import('../../components/ScatterPlot/ScatterPlot'),
metadata: createMetadata(true),
transformProps,
});
}
}

View File

@ -1,116 +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 { ChartProps } from '@superset-ui/core';
import { flatMap } from 'lodash';
interface Value {
[key: string]: unknown;
}
type Key = keyof Value;
interface DataRow {
key: string[];
values: Value[];
}
export default function transformProps(chartProps: ChartProps) {
const { width, height, formData, queriesData } = chartProps;
const {
colorScheme,
maxBubbleSize,
showLegend,
xAxisFormat,
xAxisLabel,
// TODO: These fields are not supported yet
// xAxisShowminmax,
// xLogScale,
yAxisLabel,
yAxisFormat,
// TODO: These fields are not supported yet
// yAxisShowminmax,
// yLogScale,
} = formData;
const x = formData.x as Key;
const y = formData.y as Key;
const series = formData.series as Key;
const size = formData.size as Key;
const entity = formData.entity as Key;
const data = queriesData[0].data as DataRow[];
return {
data: flatMap(
data.map((row: DataRow) =>
row.values.map(v => ({
[x]: v[x],
[y]: v[y],
[series]: v[series],
[size]: v[size],
[entity]: v[entity],
})),
),
),
width,
height,
encoding: {
x: {
field: x,
type: 'quantitive',
format: xAxisFormat,
scale: {
type: 'linear',
},
axis: {
orient: 'bottom',
title: xAxisLabel,
},
},
y: {
field: y,
type: 'quantitative',
format: yAxisFormat,
scale: {
type: 'linear',
},
axis: {
orient: 'left',
title: yAxisLabel,
},
},
size: {
field: size,
type: 'quantitative',
scale: {
type: 'linear',
range: [0, maxBubbleSize],
},
},
fill: {
field: series,
type: 'nominal',
scale: {
scheme: colorScheme,
},
legend: showLegend,
},
group: [{ field: entity }],
},
};
}

View File

@ -1,48 +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 { pick } from 'lodash';
import { ChartProps } from '@superset-ui/core';
import { HookProps } from '../components/ScatterPlot/ScatterPlot';
export default function transformProps(chartProps: ChartProps) {
const { width, height, formData, queriesData } = chartProps;
const { encoding, margin, theme } = formData;
const { data } = queriesData[0];
const hooks = chartProps.hooks as HookProps;
const fieldsFromHooks: (keyof HookProps)[] = [
'TooltipRenderer',
'LegendRenderer',
'LegendGroupRenderer',
'LegendItemRenderer',
'LegendItemMarkRenderer',
'LegendItemLabelRenderer',
];
return {
data,
width,
height,
encoding,
margin,
theme,
...pick(hooks, fieldsFromHooks),
};
}

View File

@ -1,169 +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 { BoxPlotSeries, XYChart } from '@data-ui/xy-chart';
import { chartTheme, ChartTheme } from '@data-ui/theme';
import { WithLegend, Margin, Dimension } from '@superset-ui/core';
import { Dataset, PlainObject, isFieldDef } from 'encodable';
import DefaultTooltipRenderer from './DefaultTooltipRenderer';
import {
BoxPlotEncodingConfig,
BoxPlotEncoding,
BoxPlotEncoder,
boxPlotEncoderFactory,
} from './Encoder';
import createMarginSelector, {
DEFAULT_MARGIN,
} from '../../utils/createMarginSelector';
import { BoxPlotDataRow } from './types';
import convertScaleToDataUIScale from '../../utils/convertScaleToDataUIScaleShape';
import createXYChartLayoutWithTheme from '../../utils/createXYChartLayoutWithTheme';
import createRenderLegend from '../legend/createRenderLegend';
import { LegendHooks } from '../legend/types';
export interface TooltipProps {
datum: BoxPlotDataRow;
color: string;
encoder: BoxPlotEncoder;
}
const defaultProps = {
className: '',
margin: DEFAULT_MARGIN,
encoding: {},
theme: chartTheme,
TooltipRenderer: DefaultTooltipRenderer,
} as const;
export type HookProps = {
TooltipRenderer?: React.ComponentType<TooltipProps>;
} & LegendHooks<BoxPlotEncodingConfig>;
type Props = {
className?: string;
width: string | number;
height: string | number;
margin?: Margin;
encoding?: Partial<BoxPlotEncoding>;
data: Dataset;
theme?: ChartTheme;
} & HookProps &
Readonly<typeof defaultProps>;
export default class BoxPlot extends React.PureComponent<Props> {
private createEncoder = boxPlotEncoderFactory(
this.props.theme?.colors.darkGray,
).createSelector();
private createMargin = createMarginSelector();
static defaultProps = defaultProps;
renderChart = (dim: Dimension) => {
const { width, height } = dim;
const { data, margin, theme, TooltipRenderer, encoding } = this.props;
const encoder = this.createEncoder(encoding);
const { channels } = encoder;
const isHorizontal =
isFieldDef(channels.y.definition) &&
channels.y.definition.type === 'nominal';
encoder.setDomainFromDataset(data);
const layout = createXYChartLayoutWithTheme({
width,
height,
margin: this.createMargin(margin),
theme,
xEncoder: channels.x,
yEncoder: channels.y,
});
return layout.renderChartWithFrame((chartDim: Dimension) => (
<XYChart
showYGrid
width={chartDim.width}
height={chartDim.height}
ariaLabel="BoxPlot"
margin={layout.margin}
renderTooltip={({
datum,
color,
}: {
datum: BoxPlotDataRow;
color: string;
}) => <TooltipRenderer datum={datum} color={color} encoder={encoder} />}
theme={theme}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
xScale={convertScaleToDataUIScale(channels.x.definition.scale as any)}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
yScale={convertScaleToDataUIScale(channels.y.definition.scale as any)}
>
{layout.renderXAxis()}
{layout.renderYAxis()}
<BoxPlotSeries
key={
isFieldDef(channels.x.definition) ? channels.x.definition.field : ''
}
animated
data={
isHorizontal
? data.map(row => ({
...row,
y: channels.y.getValueFromDatum(row),
}))
: data.map(row => ({
...row,
x: channels.x.getValueFromDatum(row),
}))
}
fill={(datum: PlainObject) =>
channels.color.encodeDatum(datum, '#55acee')
}
fillOpacity={0.4}
stroke={(datum: PlainObject) => channels.color.encodeDatum(datum)}
strokeWidth={1}
widthRatio={0.6}
horizontal={isHorizontal}
/>
</XYChart>
));
};
render() {
const { className, data, encoding, width, height } = this.props;
return (
<WithLegend
className={`superset-chart-box-plot ${className}`}
width={width}
height={height}
position="top"
renderLegend={createRenderLegend(
this.createEncoder(encoding),
data,
this.props,
)}
renderChart={this.renderChart}
/>
);
}
}

View File

@ -1,69 +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 { isDefined, TooltipFrame, TooltipTable } from '@superset-ui/core';
import { BoxPlotEncoder } from './Encoder';
import { BoxPlotDataRow } from './types';
export default function DefaultTooltipRenderer({
datum,
color,
encoder,
}: {
datum: BoxPlotDataRow;
color: string;
encoder: BoxPlotEncoder;
}) {
const { label, min, max, median, firstQuartile, thirdQuartile, outliers } =
datum;
const { channels } = encoder;
const { formatValue } = channels.y;
const data: { key: string; valueColumn: number | string }[] = [];
if (isDefined(min)) {
data.push({ key: 'Min', valueColumn: formatValue(min) });
}
if (isDefined(max)) {
data.push({ key: 'Max', valueColumn: formatValue(max) });
}
if (isDefined(median)) {
data.push({ key: 'Median', valueColumn: formatValue(median) });
}
if (isDefined(firstQuartile)) {
data.push({ key: '1st Quartile', valueColumn: formatValue(firstQuartile) });
}
if (isDefined(thirdQuartile)) {
data.push({ key: '3rd Quartile', valueColumn: formatValue(thirdQuartile) });
}
if (isDefined(outliers) && outliers.length > 0) {
data.push({ key: '# Outliers', valueColumn: outliers.length });
}
return (
<TooltipFrame>
<div>
<strong style={{ color }}>{label}</strong>
</div>
{data.length > 0 && <br />}
<TooltipTable data={data} />
</TooltipFrame>
);
}

View File

@ -1,44 +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 { createEncoderFactory, Encoder, DeriveEncoding } from 'encodable';
export type BoxPlotEncodingConfig = {
x: ['XBand', number];
y: ['YBand', number];
color: ['Color', string];
};
export const boxPlotEncoderFactory = (darkGray: string) =>
createEncoderFactory<BoxPlotEncodingConfig>({
channelTypes: {
x: 'XBand',
y: 'YBand',
color: 'Color',
},
defaultEncoding: {
x: { field: 'x', type: 'nominal' },
y: { field: 'y', type: 'quantitative' },
color: { value: darkGray },
},
});
export type BoxPlotEncoding = DeriveEncoding<BoxPlotEncodingConfig>;
export type BoxPlotEncoder = Encoder<BoxPlotEncodingConfig>;

View File

@ -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 interface RawBoxPlotDataRow {
label: string;
values: {
Q1: number;
Q2: number;
Q3: number;
outliers: number[];
// eslint-disable-next-line camelcase
whisker_high: number;
// eslint-disable-next-line camelcase
whisker_low: number;
};
}
export interface BoxPlotDataRow {
label: string;
min: number;
max: number;
firstQuartile: number;
median: number;
thirdQuartile: number;
outliers: number[];
}

View File

@ -1,45 +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, { CSSProperties } from 'react';
import { LegendItemMarkRendererProps } from '../legend/types';
import { LineEncodingConfig } from './Encoder';
const MARK_WIDTH = 12;
const MARK_HEIGHT = 8;
const MARK_STYLE: CSSProperties = { display: 'inline-block' };
export default function DefaultLegendItemMarkRenderer({
item,
}: LegendItemMarkRendererProps<LineEncodingConfig>) {
return (
<svg width={MARK_WIDTH} height={MARK_HEIGHT} style={MARK_STYLE}>
<line
stroke={item.output.stroke ?? 'none'}
strokeWidth={item.output.strokeWidth ?? 2}
strokeDasharray={item.output.strokeDasharray ?? 'none'}
x1={0}
x2={MARK_WIDTH}
y1={MARK_HEIGHT / 2}
y2={MARK_HEIGHT / 2}
/>
</svg>
);
}

View File

@ -1,71 +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 { TooltipFrame, TooltipTable } from '@superset-ui/core';
import { chartTheme } from '@data-ui/theme';
import { TooltipProps } from './Line';
const MARK_STYLE = { marginRight: 4 };
export default function DefaultTooltipRenderer({
allSeries,
datum,
encoder,
series = {},
theme = chartTheme,
}: TooltipProps) {
return (
<TooltipFrame>
<>
<div style={{ fontFamily: theme.labelStyles.fontFamily }}>
<strong>{encoder.channels.x.formatValue(datum.x)}</strong>
</div>
<br />
{series && (
<TooltipTable
data={allSeries
.filter(({ key }) => series[key])
.concat()
.sort((a, b) => series[b.key].y - series[a.key].y)
.map(({ key, stroke, strokeDasharray, strokeWidth }) => ({
key,
keyColumn: (
<>
<svg width="12" height="8" style={MARK_STYLE}>
<line
x2="12"
y1="3"
y2="3"
stroke={stroke}
strokeWidth={strokeWidth}
strokeDasharray={strokeDasharray}
/>
</svg>
{series[key] === datum ? <b>{key}</b> : key}
</>
),
valueColumn: encoder.channels.y.formatValue(series[key].y),
}))}
/>
)}
</>
</TooltipFrame>
);
}

View File

@ -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 Encoder from 'encodable/lib/encoders/Encoder';
import createEncoderFactory from 'encodable/lib/encoders/createEncoderFactory';
import {
DeriveEncoding,
DeriveChannelOutputs,
} from 'encodable/lib/types/Encoding';
export type LineEncodingConfig = {
x: ['X', number];
y: ['Y', number];
fill: ['Category', boolean];
stroke: ['Color', string];
strokeDasharray: ['Category', string];
strokeWidth: ['Numeric', number];
};
export const lineEncoderFactory = createEncoderFactory<LineEncodingConfig>({
channelTypes: {
x: 'X',
y: 'Y',
fill: 'Category',
stroke: 'Color',
strokeDasharray: 'Category',
strokeWidth: 'Numeric',
},
defaultEncoding: {
x: { field: 'x', type: 'quantitative' },
y: { field: 'y', type: 'quantitative' },
fill: { value: false, legend: false },
stroke: { value: '#222' }, // eslint-disable-line theme-colors/no-literal-colors
strokeDasharray: { value: '' },
strokeWidth: { value: 1 },
},
});
export type LineEncoding = DeriveEncoding<LineEncodingConfig>;
export type LineEncoder = Encoder<LineEncodingConfig>;
export type LineChannelOutputs = DeriveChannelOutputs<LineEncodingConfig>;

View File

@ -1,325 +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, { PureComponent } from 'react';
import { kebabCase, groupBy, flatMap, uniqueId, values } from 'lodash';
import {
AreaSeries,
LinearGradient,
LineSeries,
XYChart,
CrossHair,
WithTooltip,
} from '@data-ui/xy-chart';
import { chartTheme } from '@data-ui/theme';
import { WithLegend, Margin, Dimension } from '@superset-ui/core';
import { createSelector } from 'reselect';
import { Dataset, PlainObject } from 'encodable';
import DefaultTooltipRenderer from './DefaultTooltipRenderer';
import createMarginSelector, {
DEFAULT_MARGIN,
} from '../../utils/createMarginSelector';
import convertScaleToDataUIScale from '../../utils/convertScaleToDataUIScaleShape';
import createXYChartLayoutWithTheme from '../../utils/createXYChartLayoutWithTheme';
import createRenderLegend from '../legend/createRenderLegend';
import { LegendHooks } from '../legend/types';
import {
lineEncoderFactory,
LineEncoder,
LineEncoding,
LineEncodingConfig,
LineChannelOutputs,
} from './Encoder';
import DefaultLegendItemMarkRenderer from './DefaultLegendItemMarkRenderer';
export interface TooltipProps {
encoder: LineEncoder;
allSeries: Series[];
datum: SeriesValue;
series: {
[key: string]: SeriesValue;
};
theme: typeof chartTheme;
}
const defaultProps = {
className: '',
encoding: {},
LegendItemMarkRenderer: DefaultLegendItemMarkRenderer,
margin: DEFAULT_MARGIN,
theme: chartTheme,
TooltipRenderer: DefaultTooltipRenderer,
};
/** Part of formData that is needed for rendering logic in this file */
export type FormDataProps = {
margin?: Margin;
theme?: typeof chartTheme;
encoding?: Partial<LineEncoding>;
};
export type HookProps = {
TooltipRenderer?: React.ComponentType<TooltipProps>;
} & LegendHooks<LineEncodingConfig>;
type Props = {
className?: string;
width: string | number;
height: string | number;
data: Dataset;
} & HookProps &
FormDataProps &
Readonly<typeof defaultProps>;
export interface Series {
key: string;
fill: LineChannelOutputs['fill'];
stroke: LineChannelOutputs['stroke'];
strokeDasharray: LineChannelOutputs['strokeDasharray'];
strokeWidth: LineChannelOutputs['strokeWidth'];
values: SeriesValue[];
}
export interface SeriesValue {
x: number | Date;
y: number;
data: PlainObject;
parent: Series;
}
const CIRCLE_STYLE = { strokeWidth: 1.5 };
export default class LineChart extends PureComponent<Props> {
private createEncoder = lineEncoderFactory.createSelector() as (
encoding: Partial<LineEncoding>,
) => LineEncoder;
private createAllSeries = createSelector(
[
(input: { encoder: LineEncoder; data: Dataset }) => input.encoder,
input => input.data,
],
(encoder, data) => {
const { channels } = encoder;
const fieldNames = encoder.getGroupBys();
const groups = groupBy(data, row =>
fieldNames.map(f => `${f}=${row[f]}`).join(','),
);
const allSeries = values(groups).map(seriesData => {
const firstDatum = seriesData[0];
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
const key = fieldNames.map(f => firstDatum[f]).join(',');
const series: Series = {
key: key.length === 0 ? channels.y.getTitle() : key,
fill: channels.fill.encodeDatum(firstDatum, false),
stroke: channels.stroke.encodeDatum(firstDatum, '#222'),
strokeDasharray: channels.strokeDasharray.encodeDatum(firstDatum, ''),
strokeWidth: channels.strokeWidth.encodeDatum(firstDatum, 1),
values: [],
};
series.values = seriesData
.map(v => ({
x: channels.x.getValueFromDatum<Date | number>(v),
y: channels.y.getValueFromDatum<number>(v),
data: v,
parent: series,
}))
.sort((a: SeriesValue, b: SeriesValue) => {
const aTime = a.x instanceof Date ? a.x.getTime() : a.x;
const bTime = b.x instanceof Date ? b.x.getTime() : b.x;
return aTime - bTime;
});
return series;
});
return allSeries;
},
);
private createMargin = createMarginSelector();
static defaultProps = defaultProps;
// eslint-disable-next-line class-methods-use-this
renderSeries(allSeries: Series[]) {
const filledSeries = flatMap(
allSeries
.filter(({ fill }) => fill)
.map(series => {
const gradientId = uniqueId(kebabCase(`gradient-${series.key}`));
return [
<LinearGradient
key={`${series.key}-gradient`}
id={gradientId}
from={series.stroke}
to="#fff"
/>,
<AreaSeries
key={`${series.key}-fill`}
seriesKey={series.key}
data={series.values}
interpolation="linear"
fill={`url(#${gradientId})`}
stroke={series.stroke}
strokeWidth={series.strokeWidth}
/>,
];
}),
);
const unfilledSeries = allSeries
.filter(({ fill }) => !fill)
.map(series => (
<LineSeries
key={series.key}
seriesKey={series.key}
interpolation="linear"
data={series.values}
stroke={series.stroke}
strokeDasharray={series.strokeDasharray}
strokeWidth={series.strokeWidth}
/>
));
return filledSeries.concat(unfilledSeries);
}
renderChart = (dim: Dimension) => {
const { width, height } = dim;
const { data, margin, theme, TooltipRenderer, encoding } = this.props;
const encoder = this.createEncoder(encoding);
const { channels } = encoder;
encoder.setDomainFromDataset(data);
const allSeries = this.createAllSeries({ encoder, data });
const layout = createXYChartLayoutWithTheme({
width,
height,
margin: this.createMargin(margin),
theme,
xEncoder: channels.x,
yEncoder: channels.y,
});
return layout.renderChartWithFrame((chartDim: Dimension) => (
<WithTooltip
renderTooltip={({
datum,
series,
}: {
datum: SeriesValue;
series: {
[key: string]: SeriesValue;
};
}) => (
<TooltipRenderer
encoder={encoder}
allSeries={allSeries}
datum={datum}
series={series}
theme={theme}
/>
)}
>
{({
onMouseLeave,
onMouseMove,
tooltipData,
}: {
onMouseLeave: (...args: unknown[]) => void;
onMouseMove: (...args: unknown[]) => void;
tooltipData: { datum: { y?: number } };
}) => (
<XYChart
showYGrid
snapTooltipToDataX
width={chartDim.width}
height={chartDim.height}
ariaLabel="LineChart"
eventTrigger="container"
margin={layout.margin}
renderTooltip={null}
theme={theme}
tooltipData={tooltipData}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
xScale={convertScaleToDataUIScale(
channels.x.definition.scale as any,
)}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
yScale={convertScaleToDataUIScale(
channels.y.definition.scale as any,
)}
onMouseMove={onMouseMove}
onMouseLeave={onMouseLeave}
>
{layout.renderXAxis()}
{layout.renderYAxis()}
{this.renderSeries(allSeries)}
<CrossHair
fullHeight
showCircle
showMultipleCircles
strokeDasharray=""
showHorizontalLine={false}
circleFill={(d: SeriesValue) =>
d.y === tooltipData.datum.y ? d.parent.stroke : '#fff'
}
circleSize={(d: SeriesValue) =>
d.y === tooltipData.datum.y ? 6 : 4
}
circleStroke={(d: SeriesValue) =>
d.y === tooltipData.datum.y ? '#fff' : d.parent.stroke
}
circleStyles={CIRCLE_STYLE}
stroke="#ccc"
/>
</XYChart>
)}
</WithTooltip>
));
};
render() {
const { className, data, width, height, encoding } = this.props;
return (
<WithLegend
className={`superset-chart-line ${className}`}
width={width}
height={height}
position="top"
renderLegend={createRenderLegend(
this.createEncoder(encoding),
data,
this.props,
)}
renderChart={this.renderChart}
/>
);
}
}

View File

@ -1,78 +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 { TooltipFrame, TooltipTable } from '@superset-ui/core';
import { isFieldDef } from 'encodable';
import { TooltipProps } from './ScatterPlot';
export default function DefaultTooltipRenderer({
datum,
encoder,
}: TooltipProps) {
const { channels } = encoder;
const { x, y, size, fill, stroke } = channels;
const tooltipRows = [
{ key: 'x', keyColumn: x.getTitle(), valueColumn: x.formatDatum(datum) },
{ key: 'y', keyColumn: y.getTitle(), valueColumn: y.formatDatum(datum) },
];
if (isFieldDef(fill.definition)) {
tooltipRows.push({
key: 'fill',
keyColumn: fill.getTitle(),
valueColumn: fill.formatDatum(datum),
});
}
if (isFieldDef(stroke.definition)) {
tooltipRows.push({
key: 'stroke',
keyColumn: stroke.getTitle(),
valueColumn: stroke.formatDatum(datum),
});
}
if (isFieldDef(size.definition)) {
tooltipRows.push({
key: 'size',
keyColumn: size.getTitle(),
valueColumn: size.formatDatum(datum),
});
}
channels.group.forEach(g => {
tooltipRows.push({
key: `${g.name}`,
keyColumn: g.getTitle(),
valueColumn: g.formatDatum(datum),
});
});
channels.tooltip.forEach(g => {
tooltipRows.push({
key: `${g.name}`,
keyColumn: g.getTitle(),
valueColumn: g.formatDatum(datum),
});
});
return (
<TooltipFrame>
<TooltipTable data={tooltipRows} />
</TooltipFrame>
);
}

View File

@ -1,64 +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 {
createEncoderFactory,
Encoder,
DeriveEncoding,
DeriveChannelOutputs,
} from 'encodable';
export type ScatterPlotEncodingConfig = {
x: ['X', number];
y: ['Y', number];
fill: ['Color', string];
group: ['Category', string, 'multiple'];
size: ['Numeric', number];
stroke: ['Color', string];
tooltip: ['Text', string, 'multiple'];
};
export const scatterPlotEncoderFactory = (darkGray: string) =>
createEncoderFactory<ScatterPlotEncodingConfig>({
channelTypes: {
x: 'X',
y: 'Y',
fill: 'Color',
group: 'Category',
size: 'Numeric',
stroke: 'Color',
tooltip: 'Text',
},
defaultEncoding: {
x: { field: 'x', type: 'quantitative' },
y: { field: 'y', type: 'quantitative' },
fill: { value: darkGray },
group: [],
size: { value: 5 },
stroke: { value: 'none' },
tooltip: [],
},
});
export type ScatterPlotEncoding = DeriveEncoding<ScatterPlotEncodingConfig>;
export type ScatterPlotEncoder = Encoder<ScatterPlotEncodingConfig>;
export type ScatterPlotChannelOutputs =
DeriveChannelOutputs<ScatterPlotEncodingConfig>;

View File

@ -1,151 +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, { PureComponent } from 'react';
import { XYChart, PointSeries } from '@data-ui/xy-chart';
import { chartTheme, ChartTheme } from '@data-ui/theme';
import { WithLegend, Margin, Dimension } from '@superset-ui/core';
import { isFieldDef, Dataset, PlainObject } from 'encodable';
import {
scatterPlotEncoderFactory,
ScatterPlotEncoder,
ScatterPlotEncodingConfig,
ScatterPlotEncoding,
} from './Encoder';
import createMarginSelector, {
DEFAULT_MARGIN,
} from '../../utils/createMarginSelector';
import DefaultTooltipRenderer from './DefaultTooltipRenderer';
import convertScaleToDataUIScale from '../../utils/convertScaleToDataUIScaleShape';
import createXYChartLayoutWithTheme from '../../utils/createXYChartLayoutWithTheme';
import createRenderLegend from '../legend/createRenderLegend';
import { LegendHooks } from '../legend/types';
export interface TooltipProps {
datum: PlainObject;
encoder: ScatterPlotEncoder;
}
const defaultProps = {
className: '',
margin: DEFAULT_MARGIN,
encoding: {},
theme: chartTheme,
TooltipRenderer: DefaultTooltipRenderer,
} as const;
export type HookProps = {
TooltipRenderer?: React.ComponentType<TooltipProps>;
} & LegendHooks<ScatterPlotEncodingConfig>;
type Props = {
className?: string;
width: string | number;
height: string | number;
margin?: Margin;
data: Dataset;
encoding?: Partial<ScatterPlotEncoding>;
theme?: ChartTheme;
} & HookProps &
Readonly<typeof defaultProps>;
export default class ScatterPlot extends PureComponent<Props> {
private createEncoder = scatterPlotEncoderFactory(
this.props.theme?.colors.darkGray,
).createSelector();
private createMargin = createMarginSelector();
static defaultProps = defaultProps;
renderChart = (dim: Dimension) => {
const { width, height } = dim;
const { data, margin, theme, TooltipRenderer, encoding } = this.props;
const encoder = this.createEncoder(encoding);
const { channels } = encoder;
encoder.setDomainFromDataset(data);
const encodedData = data.map(d => ({
x: channels.x.getValueFromDatum(d),
y: channels.y.getValueFromDatum(d),
...d,
}));
const layout = createXYChartLayoutWithTheme({
width,
height,
margin: this.createMargin(margin),
theme,
xEncoder: channels.x,
yEncoder: channels.y,
});
return layout.renderChartWithFrame((chartDim: Dimension) => (
<XYChart
showYGrid
width={chartDim.width}
height={chartDim.height}
ariaLabel="ScatterPlot"
margin={layout.margin}
renderTooltip={({ datum }: { datum: PlainObject }) => (
<TooltipRenderer datum={datum} encoder={encoder} />
)}
theme={theme}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
xScale={convertScaleToDataUIScale(channels.x.definition.scale as any)}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
yScale={convertScaleToDataUIScale(channels.y.definition.scale as any)}
>
{layout.renderXAxis()}
{layout.renderYAxis()}
<PointSeries
key={
isFieldDef(channels.x.definition) ? channels.x.definition.field : ''
}
data={encodedData}
fill={(d: PlainObject) => channels.fill.encodeDatum(d)}
fillOpacity={0.5}
stroke={(d: PlainObject) => channels.stroke.encodeDatum(d)}
size={(d: PlainObject) => channels.size.encodeDatum(d)}
/>
</XYChart>
));
};
render() {
const { className, data, width, height, encoding } = this.props;
return (
<WithLegend
className={`superset-chart-scatter-plot ${className}`}
width={width}
height={height}
position="top"
renderLegend={createRenderLegend(
this.createEncoder(encoding),
data,
this.props,
)}
renderChart={this.renderChart}
/>
);
}
}

View File

@ -1,71 +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, { CSSProperties, PureComponent } from 'react';
import { EncodingConfig } from 'encodable';
import { LegendRendererProps } from './types';
import DefaultLegendGroup from './DefaultLegendGroup';
const LEGEND_CONTAINER_STYLE: CSSProperties = {
display: 'flex',
flexBasis: 'auto',
flexGrow: 1,
flexShrink: 1,
maxHeight: 100,
overflowY: 'auto',
position: 'relative',
};
export type Props<Config extends EncodingConfig> = LegendRendererProps<Config>;
export default class DefaultLegend<
Config extends EncodingConfig,
> extends PureComponent<Props<Config>> {
render() {
const {
groups,
LegendGroupRenderer = DefaultLegendGroup,
LegendItemRenderer,
LegendItemMarkRenderer,
LegendItemLabelRenderer,
style,
} = this.props;
const combinedStyle =
typeof style === 'undefined'
? LEGEND_CONTAINER_STYLE
: { ...LEGEND_CONTAINER_STYLE, ...style };
return (
<div style={combinedStyle}>
{groups
.filter(group => 'items' in group && group.items.length > 0)
.map(group => (
<LegendGroupRenderer
key={group.field}
group={group}
ItemRenderer={LegendItemRenderer}
ItemMarkRenderer={LegendItemMarkRenderer}
ItemLabelRenderer={LegendItemLabelRenderer}
/>
))}
</div>
);
}
}

View File

@ -1,65 +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, { CSSProperties } from 'react';
import { EncodingConfig } from 'encodable';
import { LegendGroupRendererProps } from './types';
import DefaultLegendItem from './DefaultLegendItem';
const LEGEND_GROUP_STYLE: CSSProperties = {
display: 'flex',
flexBasis: 'auto',
flexDirection: 'row',
flexGrow: 1,
flexShrink: 1,
flexWrap: 'wrap',
fontSize: '0.8em',
justifyContent: 'flex-end',
padding: 8,
};
export default function DefaultLegendGroupRenderer<
Config extends EncodingConfig,
>({
group,
ItemRenderer = DefaultLegendItem,
ItemMarkRenderer,
ItemLabelRenderer,
style,
}: LegendGroupRendererProps<Config>) {
const combinedStyle =
typeof style === 'undefined'
? LEGEND_GROUP_STYLE
: { ...LEGEND_GROUP_STYLE, ...style };
return (
<div style={combinedStyle}>
{'items' in group &&
group.items.map(item => (
<ItemRenderer
key={`legend-item-${group.field}-${item.input}`}
group={group}
item={item}
MarkRenderer={ItemMarkRenderer}
LabelRenderer={ItemLabelRenderer}
/>
))}
</div>
);
}

View File

@ -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, { CSSProperties } from 'react';
import { LegendItem, LegendLabel } from '@vx/legend';
import { EncodingConfig } from 'encodable';
import { LegendItemRendererProps } from './types';
const MARK_SIZE = 8;
const MARK_STYLE: CSSProperties = { display: 'inline-block' };
export default function DefaultLegendItem<Config extends EncodingConfig>({
group,
item,
MarkRenderer,
LabelRenderer,
}: LegendItemRendererProps<Config>) {
return (
<LegendItem key={`legend-item-${group.field}-${item.input}`} margin="0 5px">
{typeof MarkRenderer === 'undefined' ? (
<svg width={MARK_SIZE} height={MARK_SIZE} style={MARK_STYLE}>
<circle
fill={
// @ts-ignore
(item.output.color ??
// @ts-ignore
item.output.fill ??
// @ts-ignore
item.output.stroke ??
'#ccc') as string
}
stroke={
// @ts-ignore
(item.output.stroke ?? 'none') as string
}
r={MARK_SIZE / 2}
cx={MARK_SIZE / 2}
cy={MARK_SIZE / 2}
/>
</svg>
) : (
<MarkRenderer group={group} item={item} />
)}
{typeof LabelRenderer === 'undefined' ? (
<LegendLabel align="left" margin="0 0 0 4px">
{item.input}
</LegendLabel>
) : (
<LabelRenderer group={group} item={item} />
)}
</LegendItem>
);
}

View File

@ -1,51 +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 { Encoder, EncodingConfig, Dataset } from 'encodable';
import { LegendHooks } from './types';
import DefaultLegend from './DefaultLegend';
export default function createRenderLegend<Config extends EncodingConfig>(
encoder: Encoder<Config>,
data: Dataset,
props: LegendHooks<Config>,
) {
if (encoder.hasLegend()) {
const {
LegendRenderer = DefaultLegend,
LegendGroupRenderer,
LegendItemRenderer,
LegendItemLabelRenderer,
LegendItemMarkRenderer,
} = props;
return () => (
<LegendRenderer
groups={encoder.getLegendInformation(data)}
LegendGroupRenderer={LegendGroupRenderer}
LegendItemRenderer={LegendItemRenderer}
LegendItemMarkRenderer={LegendItemMarkRenderer}
LegendItemLabelRenderer={LegendItemLabelRenderer}
/>
);
}
return undefined;
}

View File

@ -1,80 +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 { CSSProperties } from 'react';
import {
EncodingConfig,
LegendGroupInformation,
LegendItemInformation,
} from 'encodable';
export type LegendItemMarkRendererProps<Config extends EncodingConfig> = {
group: LegendGroupInformation<Config>;
item: LegendItemInformation<Config>;
};
export type LegendItemMarkRendererType<Config extends EncodingConfig> =
React.ComponentType<LegendItemMarkRendererProps<Config>>;
export type LegendItemLabelRendererProps<Config extends EncodingConfig> =
LegendItemMarkRendererProps<Config>;
export type LegendItemLabelRendererType<Config extends EncodingConfig> =
React.ComponentType<LegendItemLabelRendererProps<Config>>;
export type LegendItemRendererProps<Config extends EncodingConfig> = {
group: LegendGroupInformation<Config>;
item: LegendItemInformation<Config>;
MarkRenderer?: LegendItemMarkRendererType<Config>;
LabelRenderer?: LegendItemLabelRendererType<Config>;
};
export type LegendItemRendererType<Config extends EncodingConfig> =
React.ComponentType<LegendItemRendererProps<Config>>;
export type LegendGroupRendererProps<Config extends EncodingConfig> = {
group: LegendGroupInformation<Config>;
ItemRenderer?: LegendItemRendererType<Config>;
ItemMarkRenderer?: LegendItemMarkRendererType<Config>;
ItemLabelRenderer?: LegendItemLabelRendererType<Config>;
style?: CSSProperties;
};
export type LegendGroupRendererType<Config extends EncodingConfig> =
React.ComponentType<LegendGroupRendererProps<Config>>;
export type LegendRendererProps<Config extends EncodingConfig> = {
groups: LegendGroupInformation<Config>[];
LegendGroupRenderer?: LegendGroupRendererType<Config>;
LegendItemRenderer?: LegendItemRendererType<Config>;
LegendItemMarkRenderer?: LegendItemMarkRendererType<Config>;
LegendItemLabelRenderer?: LegendItemLabelRendererType<Config>;
style?: CSSProperties;
};
export type LegendRendererType<Config extends EncodingConfig> =
React.ComponentType<LegendRendererProps<Config>>;
export type LegendHooks<Config extends EncodingConfig> = {
LegendRenderer?: LegendRendererType<Config>;
LegendGroupRenderer?: LegendGroupRendererType<Config>;
LegendItemRenderer?: LegendItemRendererType<Config>;
LegendItemMarkRenderer?: LegendItemMarkRendererType<Config>;
LegendItemLabelRenderer?: LegendItemLabelRendererType<Config>;
};

View File

@ -1,83 +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 {
Encodable,
ColorSchemeResolver,
TimeFormatResolver,
CategoricalColorScaleResolver,
defaultColorSchemeResolver,
addPrefix,
} from 'encodable';
import {
CategoricalColorNamespace,
getCategoricalSchemeRegistry,
getSequentialSchemeRegistry,
getNumberFormatter,
getTimeFormatter,
LOCAL_PREFIX,
getTimeFormatterRegistry,
} from '@superset-ui/core';
const timeFormat: TimeFormatResolver = ({
format,
formatInLocalTime = false,
} = {}) => {
const formatString = formatInLocalTime
? addPrefix(
LOCAL_PREFIX,
format ?? getTimeFormatterRegistry().getDefaultKey()!,
)
: format;
return getTimeFormatter(formatString);
};
const colorSchemeResolver: ColorSchemeResolver = ({
name,
type = 'categorical',
} = {}) => {
if (type === 'sequential') {
const scheme = getSequentialSchemeRegistry().get(name);
return typeof scheme === 'undefined'
? scheme
: { type: 'sequential', ...scheme };
}
if (type === 'categorical') {
const scheme = getCategoricalSchemeRegistry().get(name);
return typeof scheme === 'undefined'
? scheme
: { type: 'categorical', ...scheme };
}
return defaultColorSchemeResolver({ name, type });
};
const colorScaleResolver: CategoricalColorScaleResolver = ({
name,
namespace,
} = {}) => CategoricalColorNamespace.getScale(name, namespace);
export default function configureEncodable() {
Encodable.setNumberFormatResolver(getNumberFormatter)
.setTimeFormatResolver(timeFormat)
.setColorSchemeResolver(colorSchemeResolver)
.setCategoricalColorScaleResolver(colorScaleResolver);
}

View File

@ -1,26 +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 { default as BoxPlotChartPlugin } from './BoxPlot';
export { default as LegacyBoxPlotChartPlugin } from './BoxPlot/legacy';
export { default as ScatterPlotChartPlugin } from './ScatterPlot';
export { default as LegacyScatterPlotChartPlugin } from './ScatterPlot/legacy';
export { default as LineChartPlugin } from './Line';
export { default as LegacyLineChartPlugin } from './Line/legacy';
export { default as configureEncodable } from './configureEncodable';

View File

@ -1,200 +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, { ReactNode, CSSProperties } from 'react';
import { XAxis, YAxis } from '@data-ui/xy-chart';
import { ChartFrame, Margin, mergeMargin, Dimension } from '@superset-ui/core';
import {
ChannelEncoder,
PlainObject,
Value,
XFieldDef,
YFieldDef,
} from 'encodable';
import createTickComponent from './createTickComponent';
import computeAxisLayout, { AxisLayout } from './computeAxisLayout';
export const DEFAULT_LABEL_ANGLE = 40;
// Additional margin to avoid content hidden behind scroll bar
const OVERFLOW_MARGIN = 8;
export interface XYChartLayoutConfig<
XOutput extends Value,
YOutput extends Value,
> {
width: number;
height: number;
minContentWidth?: number;
minContentHeight?: number;
margin: Margin;
xEncoder: ChannelEncoder<XFieldDef<XOutput>, XOutput>;
xTickSize?: number;
xTickTextStyle?: CSSProperties;
autoAdjustXMargin?: boolean;
yEncoder: ChannelEncoder<YFieldDef<YOutput>, YOutput>;
yTickSize?: number;
yTickTextStyle?: CSSProperties;
autoAdjustYMargin?: boolean;
}
export default class XYChartLayout<
XOutput extends Value,
YOutput extends Value,
> {
chartWidth: number;
chartHeight: number;
containerWidth: number;
containerHeight: number;
margin: Margin;
xEncoder: ChannelEncoder<XFieldDef<XOutput>, XOutput>;
xLayout?: AxisLayout;
yEncoder: ChannelEncoder<YFieldDef<YOutput>, YOutput>;
yLayout?: AxisLayout;
constructor(config: XYChartLayoutConfig<XOutput, YOutput>) {
const {
width,
height,
minContentWidth = 0,
minContentHeight = 0,
margin,
xEncoder,
xTickSize,
xTickTextStyle,
autoAdjustXMargin = true,
yEncoder,
yTickSize,
yTickTextStyle,
autoAdjustYMargin = true,
} = config;
this.xEncoder = xEncoder;
this.yEncoder = yEncoder;
if (typeof yEncoder.axis !== 'undefined') {
this.yLayout = computeAxisLayout(yEncoder.axis, {
axisWidth: Math.max(height - margin.top - margin.bottom),
defaultTickSize: yTickSize,
tickTextStyle: yTickTextStyle,
});
}
const secondMargin =
this.yLayout && autoAdjustYMargin
? mergeMargin(margin, this.yLayout.minMargin)
: margin;
const innerWidth = Math.max(
width - secondMargin.left - secondMargin.right,
minContentWidth,
);
if (typeof xEncoder.axis !== 'undefined') {
this.xLayout = computeAxisLayout(xEncoder.axis, {
axisWidth: innerWidth,
defaultTickSize: xTickSize,
tickTextStyle: xTickTextStyle,
});
}
const finalMargin =
this.xLayout && autoAdjustXMargin
? mergeMargin(secondMargin, this.xLayout.minMargin)
: secondMargin;
const innerHeight = Math.max(
height - finalMargin.top - finalMargin.bottom,
minContentHeight,
);
const chartWidth = Math.round(
innerWidth + finalMargin.left + finalMargin.right,
);
const chartHeight = Math.round(
innerHeight + finalMargin.top + finalMargin.bottom,
);
const isOverFlowX = chartWidth > width;
const isOverFlowY = chartHeight > height;
if (isOverFlowX) {
finalMargin.bottom += OVERFLOW_MARGIN;
}
if (isOverFlowY) {
finalMargin.right += OVERFLOW_MARGIN;
}
this.chartWidth = isOverFlowX ? chartWidth + OVERFLOW_MARGIN : chartWidth;
this.chartHeight = isOverFlowY
? chartHeight + OVERFLOW_MARGIN
: chartHeight;
this.containerWidth = width;
this.containerHeight = height;
this.margin = finalMargin;
}
renderChartWithFrame(renderChart: (input: Dimension) => ReactNode) {
return (
<ChartFrame
width={this.containerWidth}
height={this.containerHeight}
contentWidth={this.chartWidth}
contentHeight={this.chartHeight}
renderContent={renderChart}
/>
);
}
renderXAxis(props?: PlainObject) {
const { axis } = this.xEncoder;
return axis && this.xLayout ? (
<XAxis
label={axis.getTitle()}
labelOffset={this.xLayout.labelOffset}
numTicks={axis.config.tickCount}
orientation={axis.config.orient}
tickComponent={createTickComponent(this.xLayout)}
tickFormat={axis.formatValue}
{...props}
/>
) : null;
}
renderYAxis(props?: PlainObject) {
const { axis } = this.yEncoder;
return axis && this.yLayout ? (
<YAxis
label={axis.getTitle()}
labelOffset={this.yLayout.labelOffset}
numTicks={axis.config.tickCount}
orientation={axis.config.orient}
tickFormat={axis.formatValue}
{...props}
/>
) : null;
}
}

View File

@ -1,137 +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 { CSSProperties } from 'react';
import { getTextDimension, Margin, Dimension } from '@superset-ui/core';
import { AxisOrient, ChannelDef, Value } from 'encodable';
import ChannelEncoderAxis from 'encodable/lib/encoders/ChannelEncoderAxis';
export interface AxisLayout {
axisWidth: number;
labelAngle: number;
labelFlush: number | boolean;
labelOffset: number;
labelOverlap: 'flat' | 'rotate';
minMargin: Partial<Margin>;
orient: AxisOrient;
tickLabelDimensions: Dimension[];
tickLabels: string[];
tickTextAnchor?: string;
}
export default function computeAxisLayout<
Def extends ChannelDef<Output>,
Output extends Value,
>(
axis: ChannelEncoderAxis<Def, Output>,
{
axisTitleHeight = 20,
axisWidth,
gapBetweenAxisLabelAndBorder = 4,
gapBetweenTickAndTickLabel = 4,
defaultTickSize = 8,
tickTextStyle = {},
}: {
axisTitleHeight?: number;
axisWidth: number;
gapBetweenAxisLabelAndBorder?: number;
gapBetweenTickAndTickLabel?: number;
defaultTickSize?: number;
tickTextStyle?: CSSProperties;
},
): AxisLayout {
const tickLabels = axis.getTickLabels();
const tickLabelDimensions = tickLabels.map((text: string) =>
getTextDimension({
style: tickTextStyle,
text,
}),
);
const {
labelAngle,
labelFlush,
labelOverlap,
labelPadding,
orient,
tickSize = defaultTickSize,
} = axis.config;
const maxWidth = Math.max(...tickLabelDimensions.map(d => d.width), 0);
// cheap heuristic, can improve
const widthPerTick = axisWidth / tickLabels.length;
const isLabelOverlap = maxWidth > widthPerTick;
const labelAngleIfOverlap =
labelOverlap.strategy === 'rotate' ? labelOverlap.labelAngle : 0;
const labelAngleAfterOverlapCheck = isLabelOverlap ? labelAngleIfOverlap : 0;
const finalLabelAngle =
labelAngle === 0 ? labelAngleAfterOverlapCheck : labelAngle;
const spaceForAxisTitle = axis.hasTitle()
? labelPadding + axisTitleHeight
: 0;
let tickTextAnchor = 'middle';
let labelOffset = 0;
let requiredMargin =
tickSize +
gapBetweenTickAndTickLabel +
spaceForAxisTitle +
gapBetweenAxisLabelAndBorder;
if (axis.channelEncoder.isX()) {
if (finalLabelAngle === 0) {
const labelHeight =
tickLabelDimensions.length > 0 ? tickLabelDimensions[0].height : 0;
labelOffset = labelHeight + labelPadding;
requiredMargin += labelHeight;
} else {
const labelHeight = Math.ceil(
Math.abs(maxWidth * Math.sin((finalLabelAngle * Math.PI) / 180)),
);
labelOffset = labelHeight + labelPadding;
requiredMargin += labelHeight;
tickTextAnchor =
(orient === 'top' && finalLabelAngle > 0) ||
(orient === 'bottom' && finalLabelAngle < 0)
? 'end'
: 'start';
}
requiredMargin += 8;
} else {
labelOffset = maxWidth + spaceForAxisTitle;
requiredMargin += maxWidth;
}
return {
axisWidth,
labelAngle: finalLabelAngle,
labelFlush,
labelOffset,
labelOverlap: isLabelOverlap ? labelOverlap.strategy : 'flat',
minMargin: {
[orient]: Math.ceil(requiredMargin),
},
orient,
tickLabelDimensions,
tickLabels,
tickTextAnchor,
};
}

View File

@ -1,82 +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 { Value, ScaleConfig } from 'encodable';
type DataUIScaleType = 'time' | 'timeUtc' | 'linear' | 'band';
interface DataUIScale {
type: DataUIScaleType;
domain?: number[] | string[];
includeZero?: boolean;
nice?: boolean;
paddingInner?: number;
paddingOuter?: number;
range?: number[] | string[];
rangeRound?: number[] | string[];
}
function isCompatibleDomainOrRange(
array: ScaleConfig['domain'] | ScaleConfig['range'],
): array is number[] | string[] {
return (
typeof array !== 'undefined' &&
array.length > 0 &&
(typeof array[0] === 'string' || typeof array[0] === 'number')
);
}
/**
* Convert encodable scale object into @data-ui's scale config
* @param scale
*/
export default function convertScaleToDataUIScale<Output extends Value>(
scale: ScaleConfig<Output>,
) {
const { type, domain, range } = scale;
let outputType: DataUIScaleType;
if (type === 'linear' || type === 'time' || type === 'band') {
outputType = type;
} else if (type === 'utc') {
outputType = 'timeUtc';
} else {
throw new Error(`Unsupported scale type: ${type}`);
}
const output: DataUIScale = { type: outputType };
if (isCompatibleDomainOrRange(domain)) {
output.domain = domain;
}
if (isCompatibleDomainOrRange(range)) {
output.range = range;
}
if ('nice' in scale && typeof scale.nice === 'boolean') {
output.nice = scale.nice;
}
if ('paddingInner' in scale && typeof scale.paddingInner !== 'undefined') {
output.paddingInner = scale.paddingInner;
}
if ('paddingOuter' in scale && typeof scale.paddingOuter !== 'undefined') {
output.paddingOuter = scale.paddingOuter;
}
return output;
}

View File

@ -1,47 +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 { createSelector } from 'reselect';
import { Margin } from '@superset-ui/core';
export const DEFAULT_MARGIN = { bottom: 16, left: 16, right: 16, top: 16 };
export default function createMarginSelector(
defaultMargin: Margin = DEFAULT_MARGIN,
) {
return createSelector(
[
(margin: Partial<Margin>) => margin.bottom,
margin => margin.left,
margin => margin.right,
margin => margin.top,
],
(
bottom = defaultMargin.bottom,
left = defaultMargin.left,
right = defaultMargin.right,
top = defaultMargin.top,
) => ({
bottom,
left,
right,
top,
}),
);
}

View File

@ -1,110 +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, { CSSProperties } from 'react';
import { Dimension } from '@superset-ui/core';
import { AxisLayout } from './computeAxisLayout';
export default function createTickComponent({
axisWidth,
labelAngle,
labelFlush,
labelOverlap,
orient,
tickLabels,
tickLabelDimensions,
tickTextAnchor = 'middle',
}: AxisLayout) {
if (labelOverlap === 'rotate' && labelAngle !== 0) {
let xOffset = labelAngle > 0 ? -6 : 6;
if (orient === 'top') {
xOffset = 0;
}
const yOffset = orient === 'top' ? -3 : 0;
return ({
x,
y,
formattedValue = '',
...textStyle
}: {
x: number;
y: number;
dy?: number;
formattedValue: string;
textStyle: CSSProperties;
}) => (
<g transform={`translate(${x + xOffset}, ${y + yOffset})`}>
<text
transform={`rotate(${labelAngle})`}
{...textStyle}
textAnchor={tickTextAnchor}
>
{formattedValue}
</text>
</g>
);
}
if (labelFlush === true || typeof labelFlush === 'number') {
const labelToDimensionMap = new Map<string, Dimension>();
tickLabels.forEach((label, i) => {
labelToDimensionMap.set(label, tickLabelDimensions[i]);
});
return ({
x,
y,
formattedValue = '',
...textStyle
}: {
x: number;
y: number;
dy?: number;
formattedValue: string;
textStyle: CSSProperties;
}) => {
const dimension = labelToDimensionMap.get(formattedValue);
const labelWidth = typeof dimension === 'undefined' ? 0 : dimension.width;
let textAnchor = tickTextAnchor;
let xOffset = 0;
if (x - labelWidth / 2 < 0) {
textAnchor = 'start';
if (typeof labelFlush === 'number') {
xOffset -= labelFlush;
}
} else if (x + labelWidth / 2 > axisWidth) {
textAnchor = 'end';
if (typeof labelFlush === 'number') {
xOffset += labelFlush;
}
}
return (
<text x={x + xOffset} y={y} {...textStyle} textAnchor={textAnchor}>
{formattedValue}
</text>
);
};
}
// This will render the tick as horizontal string.
return null;
}

View File

@ -1,47 +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 default function createTickLabelProps({
// labelAngle,
// labelOverlap,
// orient,
// tickTextAnchor = 'start',
// }: {
// labelAngle: number;
// labelOverlap: string;
// orient: string;
// tickTextAnchor?: string;
// }) {
// let dx = 0;
// let dy = 0;
// if (labelOverlap === 'rotate' && labelAngle !== 0) {
// dx = labelAngle > 0 ? -6 : 6;
// if (orient === 'top') {
// dx = 0;
// }
// dy = orient === 'top' ? -3 : 0;
// }
// return {
// angle: labelAngle,
// dx,
// dy,
// textAnchor: tickTextAnchor,
// };
// }

View File

@ -1,45 +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 { ChartTheme } from '@data-ui/theme';
import { Value } from 'encodable';
import XYChartLayout, { XYChartLayoutConfig } from './XYChartLayout';
export default function createXYChartLayoutWithTheme<
XOutput extends Value,
YOutput extends Value,
>(
config: XYChartLayoutConfig<XOutput, YOutput> & {
theme: ChartTheme;
},
) {
const { theme, ...rest } = config;
return new XYChartLayout<XOutput, YOutput>({
...rest,
// @ts-ignore
xTickSize: theme.xTickStyles.length || theme.xTickStyles.tickLength,
xTickTextStyle:
theme.xTickStyles.label.bottom || theme.xTickStyles.label.top,
// @ts-ignore
yTickSize: theme.yTickStyles.length || theme.yTickStyles.tickLength,
yTickTextStyle:
theme.yTickStyles.label.left || theme.yTickStyles.label.right,
});
}

View File

@ -1,48 +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 {
LegacyScatterPlotChartPlugin,
ScatterPlotChartPlugin,
LegacyLineChartPlugin,
LineChartPlugin,
LegacyBoxPlotChartPlugin,
BoxPlotChartPlugin,
} from '../src';
describe('index', () => {
it('exports ScatterPlot', () => {
expect(ScatterPlotChartPlugin).toBeDefined();
});
it('exports Line', () => {
expect(LineChartPlugin).toBeDefined();
});
it('exports BoxPlot', () => {
expect(BoxPlotChartPlugin).toBeDefined();
});
it('exports legacy ScatterPlot', () => {
expect(LegacyScatterPlotChartPlugin).toBeDefined();
});
it('exports legacy Line', () => {
expect(LegacyLineChartPlugin).toBeDefined();
});
it('exports legacy BoxPlot', () => {
expect(LegacyBoxPlotChartPlugin).toBeDefined();
});
});

View File

@ -1,19 +0,0 @@
{
"compilerOptions": {
"composite": false,
"emitDeclarationOnly": false,
"noEmit": true,
"rootDir": "."
},
"extends": "../../../tsconfig.json",
"include": [
"**/*",
"../types/**/*",
"../../../types/**/*"
],
"references": [
{
"path": ".."
}
]
}

View File

@ -1,25 +0,0 @@
{
"compilerOptions": {
"declarationDir": "lib",
"outDir": "lib",
"rootDir": "src"
},
"exclude": [
"lib",
"test"
],
"extends": "../../tsconfig.json",
"include": [
"src/**/*",
"types/**/*",
"../../types/**/*"
],
"references": [
{
"path": "../../packages/superset-ui-chart-controls"
},
{
"path": "../../packages/superset-ui-core"
}
]
}

View File

@ -1,128 +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.
*/
declare module '@data-ui/theme' {
type SvgLabelTextStyle = {
fontFamily: string;
fontSize: number;
fontWeight: number;
letterSpacing: number;
fill: string;
stroke: string;
textAnchor?:
| '-moz-initial'
| 'inherit'
| 'initial'
| 'revert'
| 'unset'
| 'end'
| 'start'
| 'middle';
pointerEvents?:
| '-moz-initial'
| 'inherit'
| 'initial'
| 'revert'
| 'unset'
| 'auto'
| 'none'
| 'visible'
| 'all'
| 'fill'
| 'stroke'
| 'painted'
| 'visibleFill'
| 'visiblePainted'
| 'visibleStroke';
};
export interface ChartTheme {
colors: {
default: string;
dark: string;
light: string;
disabled: string;
lightDisabled: string;
text: string;
black: string;
darkGray: string;
lightGray: string;
grid: string;
gridDark: string;
label: string;
tickLabel: string;
grays: string[];
categories: string[];
};
labelStyles: SvgLabelTextStyle & {
color: string;
lineHeight: string;
paddingBottom: number;
paddingTop: number;
};
gridStyles: {
stroke: string;
strokeWidth: number;
};
xAxisStyles: {
stroke: string;
strokeWidth: number;
label: {
bottom: SvgLabelTextStyle;
top: SvgLabelTextStyle;
};
};
xTickStyles: {
stroke: string;
length: number;
label: {
bottom: SvgLabelTextStyle & {
dy: string;
};
top: SvgLabelTextStyle & {
dy: string;
};
};
};
yAxisStyles: {
stroke: string;
strokeWidth: number;
label: {
left: SvgLabelTextStyle;
right: SvgLabelTextStyle;
};
};
yTickStyles: {
stroke: string;
length: number;
label: {
left: SvgLabelTextStyle & {
dx: string;
dy: string;
};
right: SvgLabelTextStyle & {
dx: string;
dy: string;
};
};
};
}
export const chartTheme: ChartTheme;
}

View File

@ -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.
*/
declare module '@data-ui/xy-chart' {
import React from 'react';
type Props = {
[key: string]: any;
};
interface XYChartProps {
width: number;
height: number;
ariaLabel: string;
eventTrigger?: any;
margin?: {
top?: number;
right?: number;
bottom?: number;
left?: number;
};
onMouseMove?: (...args: any[]) => void;
onMouseLeave?: (...args: any[]) => void;
renderTooltip: any;
showYGrid?: boolean;
snapTooltipToDataX?: boolean;
theme?: any;
tooltipData?: any;
xScale: any;
yScale: any;
}
export class AreaSeries extends React.PureComponent<Props, {}> {}
export class BoxPlotSeries extends React.PureComponent<Props, {}> {}
export class CrossHair extends React.PureComponent<Props, {}> {}
export class LinearGradient extends React.PureComponent<Props, {}> {}
export class LineSeries extends React.PureComponent<Props, {}> {}
export class PointSeries extends React.PureComponent<Props, {}> {}
export class WithTooltip extends React.PureComponent<Props, {}> {}
export class XYChart extends React.PureComponent<XYChartProps, {}> {}
export class XAxis extends React.PureComponent<Props, {}> {}
export class YAxis extends React.PureComponent<Props, {}> {}
}

View File

@ -1,23 +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.
*/
declare module '*.png' {
const value: any;
export default value;
}

View File

@ -39,7 +39,6 @@ import {
EchartsTimeseriesLineChartPlugin,
} from '@superset-ui/plugin-chart-echarts';
import TableChartPlugin from '@superset-ui/plugin-chart-table';
import { LineChartPlugin } from '@superset-ui/preset-chart-xy';
import TimeTableChartPlugin from 'src/visualizations/TimeTable';
import VizTypeControl, { VIZ_TYPE_CONTROL_TEST_ID } from './index';
@ -50,7 +49,6 @@ class MainPreset extends Preset {
super({
name: 'Legacy charts',
plugins: [
new LineChartPlugin().configure({ key: 'line' }),
new TableChartPlugin().configure({ key: 'table' }),
new BigNumberTotalChartPlugin().configure({ key: 'big_number_total' }),
new EchartsTimeseriesLineChartPlugin().configure({
@ -121,7 +119,6 @@ describe('VizTypeControl', () => {
isModalOpenInit: false,
};
await waitForRenderWrapper(props);
expect(screen.getByLabelText('line-chart-tile')).toBeVisible();
expect(screen.getByLabelText('table-chart-tile')).toBeVisible();
expect(screen.getByLabelText('big-number-chart-tile')).toBeVisible();
expect(screen.getByLabelText('pie-chart-tile')).toBeVisible();
@ -154,9 +151,6 @@ describe('VizTypeControl', () => {
'Time-series Area Chart',
),
).toBeInTheDocument();
expect(
within(screen.getByTestId('fast-viz-switcher')).queryByText('Line Chart'),
).not.toBeInTheDocument();
});
it('Render viz tiles when non-featured chart is selected', async () => {
@ -169,7 +163,9 @@ describe('VizTypeControl', () => {
expect(screen.getByLabelText('monitor')).toBeVisible();
expect(
within(screen.getByTestId('fast-viz-switcher')).getByText('Line Chart'),
within(screen.getByTestId('fast-viz-switcher')).getByText(
'Time-series Line Chart',
),
).toBeVisible();
});
@ -196,7 +192,9 @@ describe('VizTypeControl', () => {
await waitForRenderWrapper(props, state);
expect(screen.getByLabelText('check-square')).toBeVisible();
expect(
within(screen.getByTestId('fast-viz-switcher')).getByText('Line Chart'),
within(screen.getByTestId('fast-viz-switcher')).getByText(
'Time-series Line Chart',
),
).toBeVisible();
});
@ -260,9 +258,6 @@ describe('VizTypeControl', () => {
expect(
within(visualizations).getByText('Time-series Bar Chart'),
).toBeVisible();
expect(
within(visualizations).queryByText('Line Chart'),
).not.toBeInTheDocument();
expect(within(visualizations).queryByText('Table')).not.toBeInTheDocument();
expect(
within(visualizations).queryByText('Big Number'),

View File

@ -621,7 +621,6 @@ msgid "2 years ago"
msgstr "vor 2 Jahren"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr "2/98 Perzentile"
@ -764,7 +763,6 @@ msgid "7D"
msgstr "wöchentlich (7D)"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr "9/91 Perzentile"
@ -2866,7 +2864,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr "Boxplot"
@ -3498,7 +3495,6 @@ msgstr "Diagramm-ID"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -6018,7 +6014,6 @@ msgid "Details of the certification"
msgstr "Details zur Zertifizierung"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr "Bestimmt, wie „Whisker“ und Ausreißer berechnet werden."
@ -6163,7 +6158,6 @@ msgstr "Verteilen über"
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr "Verteilung"
@ -9152,7 +9146,6 @@ msgid "Line"
msgstr "Linie"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr "Liniendiagramm"
@ -9798,7 +9791,6 @@ msgid "Min periods"
msgstr "Mindestzeiträume"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr "Min/Max (keine Ausreißer)"
@ -13323,7 +13315,6 @@ msgid "Scatter"
msgstr "Streudiagramm"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr "Streudiagramm"
@ -16200,7 +16191,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr "Die Art und Weise, wie die Ticks auf der X-Achse angeordnet sind"
@ -17438,7 +17428,6 @@ msgid "Tuesday"
msgstr "Dienstag"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
msgid "Tukey"
msgstr "Turkey"
@ -18917,7 +18906,6 @@ msgid "Which relatives to highlight on hover"
msgstr "Welche Verwandten beim Überfahren mit der Maus hervorgehoben werden sollen"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr "Whisker/Ausreißer-Optionen"
@ -19029,7 +19017,6 @@ msgstr "X-Log-Skala"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr "X Tick Layout"
@ -19700,7 +19687,6 @@ msgstr "bei"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
msgid "auto"
msgstr "automatisch"
@ -20122,7 +20108,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr "flach"
@ -20566,7 +20551,6 @@ msgstr "Stack"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
msgid "staggered"
msgstr "gestaffelt"

View File

@ -557,7 +557,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -700,7 +699,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2640,7 +2638,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr ""
@ -3245,7 +3242,6 @@ msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5602,7 +5598,6 @@ msgid "Details of the certification"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -5736,7 +5731,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr ""
@ -8553,7 +8547,6 @@ msgid "Line"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr ""
@ -9172,7 +9165,6 @@ msgid "Min periods"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -12519,7 +12511,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15096,7 +15087,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -16199,7 +16189,6 @@ msgid "Tuesday"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
msgid "Tukey"
msgstr ""
@ -17482,7 +17471,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -17594,7 +17582,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -18198,7 +18185,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
msgid "auto"
msgstr ""
@ -18616,7 +18602,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -19050,7 +19035,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
msgid "staggered"
msgstr ""

View File

@ -577,7 +577,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -732,7 +731,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2825,7 +2823,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr "Diagrama de Caja"
@ -3456,7 +3453,6 @@ msgstr "ID de gráfico"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5974,7 +5970,6 @@ msgid "Details of the certification"
msgstr "Detalles de la certificación"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -6118,7 +6113,6 @@ msgstr "Estimar costo"
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
#, fuzzy
msgid "Distribution"
msgstr "Contribución"
@ -9135,7 +9129,6 @@ msgid "Line"
msgstr "Desconectado"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
#, fuzzy
msgid "Line Chart"
msgstr "Minimizar"
@ -9794,7 +9787,6 @@ msgid "Min periods"
msgstr "Periodos Mínimos"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -13387,7 +13379,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -16198,7 +16189,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -17410,7 +17400,6 @@ msgid "Tuesday"
msgstr "Martes"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "consulta"
@ -18760,7 +18749,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -18877,7 +18865,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -19522,7 +19509,6 @@ msgstr "en"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "en"
@ -19971,7 +19957,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
#, fuzzy
msgid "flat"
msgstr "en"
@ -20447,7 +20432,6 @@ msgstr "Backend"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
#, fuzzy
msgid "staggered"
msgstr "Nada disparado"

View File

@ -616,7 +616,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -767,7 +766,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2887,7 +2885,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
#, fuzzy
msgid "Box Plot"
msgstr "boulon"
@ -3542,7 +3539,6 @@ msgstr "ID Graphique"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -6076,7 +6072,6 @@ msgid "Details of the certification"
msgstr "Détails de la certification"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -6223,7 +6218,6 @@ msgstr "Estimer le coût"
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
#, fuzzy
msgid "Distribution"
msgstr "Contribution"
@ -9315,7 +9309,6 @@ msgid "Line"
msgstr "Personnel"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
#, fuzzy
msgid "Line Chart"
msgstr "Graphique minimisé"
@ -9980,7 +9973,6 @@ msgid "Min periods"
msgstr "Périodes min"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -13621,7 +13613,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
#, fuzzy
msgid "Scatter Plot"
msgstr "Deck.gl - Nuage de points"
@ -16492,7 +16483,6 @@ msgstr "Le nom d'utilisateur fourni à une base de données est invalide."
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -17720,7 +17710,6 @@ msgid "Tuesday"
msgstr "Mardi"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "requête"
@ -19108,7 +19097,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -19226,7 +19214,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -19885,7 +19872,6 @@ msgstr "à"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "à"
@ -20341,7 +20327,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
#, fuzzy
msgid "flat"
msgstr "à"
@ -20820,7 +20805,6 @@ msgstr "Backend"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
#, fuzzy
msgid "staggered"
msgstr "Rien déclenché"

View File

@ -566,7 +566,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -717,7 +716,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2751,7 +2749,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr "Box Plot"
@ -3367,7 +3364,6 @@ msgstr "Grafici"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5829,7 +5825,6 @@ msgid "Details of the certification"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -5969,7 +5964,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
#, fuzzy
msgid "Distribution"
msgstr "descrizione"
@ -8899,7 +8893,6 @@ msgid "Line"
msgstr "Min"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
#, fuzzy
msgid "Line Chart"
msgstr "Grafico a torta"
@ -9541,7 +9534,6 @@ msgid "Min periods"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -13046,7 +13038,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15748,7 +15739,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -16902,7 +16892,6 @@ msgid "Tuesday"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "condividi query"
@ -18217,7 +18206,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -18332,7 +18320,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -18958,7 +18945,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "Descrizione"
@ -19400,7 +19386,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -19858,7 +19843,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
msgid "staggered"
msgstr ""

View File

@ -567,7 +567,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -720,7 +719,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2744,7 +2742,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr ""
@ -3365,7 +3362,6 @@ msgstr "チャートID"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5825,7 +5821,6 @@ msgid "Details of the certification"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -5966,7 +5961,6 @@ msgstr "見積コスト"
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
#, fuzzy
msgid "Distribution"
msgstr "棒グラフ"
@ -8902,7 +8896,6 @@ msgid "Line"
msgstr "個人用"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
#, fuzzy
msgid "Line Chart"
msgstr "チャートを最小化"
@ -9548,7 +9541,6 @@ msgid "Min periods"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -13052,7 +13044,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15763,7 +15754,6 @@ msgstr "Issue 1012 - データベース接続時に指定されたユーザー
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -16921,7 +16911,6 @@ msgid "Tuesday"
msgstr "火曜日"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "クエリ"
@ -18239,7 +18228,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -18354,7 +18342,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -18981,7 +18968,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "期限"
@ -19423,7 +19409,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -19891,7 +19876,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
#, fuzzy
msgid "staggered"
msgstr "変更"

View File

@ -563,7 +563,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -715,7 +714,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2731,7 +2729,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr ""
@ -3347,7 +3344,6 @@ msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5788,7 +5784,6 @@ msgid "Details of the certification"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -5926,7 +5921,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
#, fuzzy
msgid "Distribution"
msgstr "설명"
@ -8832,7 +8826,6 @@ msgid "Line"
msgstr "분"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
#, fuzzy
msgid "Line Chart"
msgstr "차트 이동"
@ -9468,7 +9461,6 @@ msgid "Min periods"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -12927,7 +12919,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15609,7 +15600,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -16748,7 +16738,6 @@ msgid "Tuesday"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "Query 공유"
@ -18053,7 +18042,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -18167,7 +18155,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -18777,7 +18764,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "생성자"
@ -19218,7 +19204,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -19676,7 +19661,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
msgid "staggered"
msgstr ""

View File

@ -563,7 +563,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -706,7 +705,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2645,7 +2643,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr ""
@ -3250,7 +3247,6 @@ msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5606,7 +5602,6 @@ msgid "Details of the certification"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -5740,7 +5735,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr ""
@ -8552,7 +8546,6 @@ msgid "Line"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr ""
@ -9171,7 +9164,6 @@ msgid "Min periods"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -12516,7 +12508,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15091,7 +15082,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -16193,7 +16183,6 @@ msgid "Tuesday"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
msgid "Tukey"
msgstr ""
@ -17476,7 +17465,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -17588,7 +17576,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -18192,7 +18179,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
msgid "auto"
msgstr ""
@ -18610,7 +18596,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -19044,7 +19029,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
msgid "staggered"
msgstr ""

View File

@ -593,7 +593,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -743,7 +742,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2786,7 +2784,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr ""
@ -3407,7 +3404,6 @@ msgstr "Grafiek ID"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5823,7 +5819,6 @@ msgid "Details of the certification"
msgstr "Details van de certificering"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -5962,7 +5957,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr ""
@ -8858,7 +8852,6 @@ msgid "Line"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr ""
@ -9491,7 +9484,6 @@ msgid "Min periods"
msgstr "Min periodes"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -12935,7 +12927,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15590,7 +15581,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -16732,7 +16722,6 @@ msgid "Tuesday"
msgstr "Dinsdag"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "query"
@ -18045,7 +18034,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -18158,7 +18146,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -18786,7 +18773,6 @@ msgstr "op"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "op"
@ -19221,7 +19207,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
#, fuzzy
msgid "flat"
msgstr "op"
@ -19681,7 +19666,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
#, fuzzy
msgid "staggered"
msgstr "Gewijzigd"

View File

@ -571,7 +571,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -725,7 +724,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2777,7 +2775,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr "Box Plot"
@ -3402,7 +3399,6 @@ msgstr "Tipo de gráfico"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5898,7 +5894,6 @@ msgid "Details of the certification"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -6040,7 +6035,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
#, fuzzy
msgid "Distribution"
msgstr "Contribuição"
@ -9008,7 +9002,6 @@ msgid "Line"
msgstr "Mín"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
#, fuzzy
msgid "Line Chart"
msgstr "Mover gráfico"
@ -9655,7 +9648,6 @@ msgid "Min periods"
msgstr "Período Mínimo"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -13186,7 +13178,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15929,7 +15920,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -17104,7 +17094,6 @@ msgid "Tuesday"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "Query"
@ -18427,7 +18416,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -18542,7 +18530,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -19167,7 +19154,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
msgid "auto"
msgstr ""
@ -19604,7 +19590,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -20065,7 +20050,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
msgid "staggered"
msgstr ""

View File

@ -613,7 +613,6 @@ msgid "2 years ago"
msgstr "2 года назад"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr "2/98 перцентели"
@ -756,7 +755,6 @@ msgid "7D"
msgstr "7Д"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr "9/91 перцентели"
@ -2800,7 +2798,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr "Ящик с усами"
@ -3429,7 +3426,6 @@ msgstr "ID графика"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5905,7 +5901,6 @@ msgid "Details of the certification"
msgstr "Детали утверждения"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr "Определяет формулу расчета \"усов\" и выбросов."
@ -6045,7 +6040,6 @@ msgstr "Выполнить выбранный запрос"
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr "Распределение"
@ -9000,7 +8994,6 @@ msgid "Line"
msgstr "Линейный"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr "Линейный график"
@ -9651,7 +9644,6 @@ msgid "Min periods"
msgstr "Минимальный период"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr "Мин/макс (без выбросов)"
@ -13138,7 +13130,6 @@ msgid "Scatter"
msgstr "Точечный"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr "Точечная диаграмма"
@ -15901,7 +15892,6 @@ msgstr "Имя пользователя, указанное при подклю
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr "Способ расположения делений по оси X"
@ -17076,7 +17066,6 @@ msgid "Tuesday"
msgstr "Вторник"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "запрос"
@ -18457,7 +18446,6 @@ msgid "Which relatives to highlight on hover"
msgstr "Подсвечивается при наведении"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr "Настройки усов/выбросов"
@ -18569,7 +18557,6 @@ msgstr "Логарифмическая ось X"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr "Расположение делений оси X"
@ -19215,7 +19202,6 @@ msgstr "в"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
msgid "auto"
msgstr "Автоматически"
@ -19648,7 +19634,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -20098,7 +20083,6 @@ msgstr "С наполнением"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
#, fuzzy
msgid "staggered"
msgstr "Запущен"

View File

@ -561,7 +561,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -704,7 +703,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2659,7 +2657,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr ""
@ -3265,7 +3262,6 @@ msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5641,7 +5637,6 @@ msgid "Details of the certification"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr ""
@ -5775,7 +5770,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr ""
@ -8597,7 +8591,6 @@ msgid "Line"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr ""
@ -9216,7 +9209,6 @@ msgid "Min periods"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -12577,7 +12569,6 @@ msgid "Scatter"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr ""
@ -15161,7 +15152,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr ""
@ -16266,7 +16256,6 @@ msgid "Tuesday"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
msgid "Tukey"
msgstr ""
@ -17557,7 +17546,6 @@ msgid "Which relatives to highlight on hover"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr ""
@ -17669,7 +17657,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr ""
@ -18273,7 +18260,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
msgid "auto"
msgstr ""
@ -18697,7 +18683,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
msgid "flat"
msgstr ""
@ -19135,7 +19120,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
msgid "staggered"
msgstr ""

View File

@ -631,7 +631,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -781,7 +780,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2863,7 +2861,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr "Box Plot"
@ -3497,7 +3494,6 @@ msgstr "ID grafikona"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -6008,7 +6004,6 @@ msgid "Details of the certification"
msgstr "Podrobnosti certifikacije"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr "Določa kako so izračunani kvantili in izstopajoče vrednosti."
@ -6153,7 +6148,6 @@ msgstr "Porazdeli glede na"
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr "Porazdelitev"
@ -9160,7 +9154,6 @@ msgid "Line"
msgstr "Črta"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr "Črtni grafikon"
@ -9816,7 +9809,6 @@ msgid "Min periods"
msgstr "Min. št. period"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -13357,7 +13349,6 @@ msgid "Scatter"
msgstr "Raztreseni"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr "Raztreseni grafikon"
@ -16188,7 +16179,6 @@ msgstr "Uporabniško ime za povezavo s podatkovno bazo je neveljavno."
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr "Način razporeditve oznak na X-osi"
@ -17391,7 +17381,6 @@ msgid "Tuesday"
msgstr "Torek"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "poizvedba"
@ -18806,7 +18795,6 @@ msgid "Which relatives to highlight on hover"
msgstr "Kateri element se poudari na prehodu z miško"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr "Možnosti grafikona kvantilov"
@ -18922,7 +18910,6 @@ msgstr "Logaritemska X-os"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr "Postavitev oznak na X-osi"
@ -19575,7 +19562,6 @@ msgstr "ob"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "ob"
@ -20011,7 +19997,6 @@ msgstr ""
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
#, fuzzy
msgid "flat"
msgstr "ob"
@ -20479,7 +20464,6 @@ msgstr "Naloži"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
#, fuzzy
msgid "staggered"
msgstr "Ni sproženo"

View File

@ -581,7 +581,6 @@ msgid "2 years ago"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:97
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:49
msgid "2/98 percentiles"
msgstr ""
@ -731,7 +730,6 @@ msgid "7D"
msgstr ""
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:98
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:50
msgid "9/91 percentiles"
msgstr ""
@ -2740,7 +2738,6 @@ msgstr "Y轴的边界。当空时边界是根据数据的最小/最大值动
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:58
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:27
msgid "Box Plot"
msgstr "箱线图"
@ -3368,7 +3365,6 @@ msgstr "图表 ID"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx:61
#: superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx:61
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:31
#: superset-frontend/src/explore/fixtures.tsx:34
#: superset-frontend/src/explore/fixtures.tsx:77
#: superset-frontend/src/explore/fixtures.tsx:86
@ -5797,7 +5793,6 @@ msgid "Details of the certification"
msgstr "认证详情"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:91
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:43
msgid "Determines how whiskers and outliers are calculated."
msgstr "确定如何计算箱须和离群值。"
@ -5936,7 +5931,6 @@ msgstr "基于某列进行分布"
#: superset-frontend/plugins/legacy-plugin-chart-histogram/src/index.js:28
#: superset-frontend/plugins/legacy-plugin-chart-horizon/src/index.js:26
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/index.ts:52
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts:25
msgid "Distribution"
msgstr "分布"
@ -8881,7 +8875,6 @@ msgid "Line"
msgstr "行"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts:80
#: superset-frontend/plugins/preset-chart-xy/src/Line/createMetadata.ts:26
msgid "Line Chart"
msgstr "多线图"
@ -9522,7 +9515,6 @@ msgid "Min periods"
msgstr "最小周期"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:96
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:48
msgid "Min/max (no outliers)"
msgstr ""
@ -13003,7 +12995,6 @@ msgid "Scatter"
msgstr "散点"
#: superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts:79
#: superset-frontend/plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts:26
msgid "Scatter Plot"
msgstr "散点图"
@ -15692,7 +15683,6 @@ msgstr "连接到数据库时提供的用户名无效。"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:226
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:127
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:68
msgid "The way the ticks are laid out on the X-axis"
msgstr "X轴记号的排列显示方式"
@ -16824,7 +16814,6 @@ msgid "Tuesday"
msgstr "星期二"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:95
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:47
#, fuzzy
msgid "Tukey"
msgstr "查询"
@ -18146,7 +18135,6 @@ msgid "Which relatives to highlight on hover"
msgstr "在悬停时突出显示哪些关系"
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:89
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:41
msgid "Whisker/outlier options"
msgstr "箱须/离群值选项"
@ -18259,7 +18247,6 @@ msgstr "X经度标度"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:216
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:116
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:58
msgid "X Tick Layout"
msgstr "X轴记号图层"
@ -18887,7 +18874,6 @@ msgstr "在"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:218
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:118
#: superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx:54
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:60
#, fuzzy
msgid "auto"
msgstr "在"
@ -19334,7 +19320,6 @@ msgstr "'filter_box将在Superset的未来版本中弃用。"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
#: superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controlPanel.ts:87
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:61
#, fuzzy
msgid "flat"
msgstr "在"
@ -19797,7 +19782,6 @@ msgstr "堆叠"
#: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:221
#: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:122
#: superset-frontend/plugins/preset-chart-xy/src/BoxPlot/controlPanel.ts:63
#, fuzzy
msgid "staggered"
msgstr "没有触发"