sea-chart 2.0.37 → 2.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.js +20 -69
- package/dist/assets/css/sea-chart-d3-tooltip.css +0 -1
- package/dist/components/cell-factory/FormatterConfig.js +55 -62
- package/dist/components/cell-factory/SimpleCellFormatter.js +5 -12
- package/dist/components/cell-factory/SingleSelectOption.js +11 -18
- package/dist/components/cell-factory/cell-editor-factory.js +5 -12
- package/dist/components/cell-factory/cell-formatter-factory.js +4 -11
- package/dist/components/cell-factory/link-content.js +30 -38
- package/dist/components/chart-color-selector/color-selector.js +11 -18
- package/dist/components/collaborator/index.js +7 -14
- package/dist/components/color-picker/index.js +12 -19
- package/dist/components/color-popover/color-rules/color-rule.js +26 -34
- package/dist/components/color-popover/color-rules/index.js +7 -15
- package/dist/components/color-popover/color-rules/rule-filters/filter.js +27 -34
- package/dist/components/color-popover/color-rules/rule-filters/index.js +17 -25
- package/dist/components/color-popover/color-rules/rule-filters/number-input.js +9 -17
- package/dist/components/color-popover/color-rules-popover.js +31 -37
- package/dist/components/color-popover/color-selector-popover.js +12 -20
- package/dist/components/color-setting/color-group-selector.js +13 -21
- package/dist/components/common-add-tool/index.js +8 -15
- package/dist/components/data-process-setter/data-setting-header.js +7 -14
- package/dist/components/data-process-setter/hide-column-setter.js +13 -20
- package/dist/components/data-process-setter/index.js +4 -27
- package/dist/components/data-process-setter/sort-setter.js +18 -26
- package/dist/components/draggable/Draggable.js +7 -13
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +41 -48
- package/dist/components/drill-down-settings/drill-down-fields-settings/index.js +10 -18
- package/dist/components/drill-down-settings/index.js +11 -18
- package/dist/components/dtable-popover/index.js +13 -20
- package/dist/components/dtable-search-input/index.js +13 -21
- package/dist/components/font-settings/index.js +14 -22
- package/dist/components/goal-line-setting/goal-setting-item.js +6 -14
- package/dist/components/goal-line-setting/index.js +12 -19
- package/dist/components/highlighter/highlighter.js +7 -14
- package/dist/components/icon/index.js +12 -23
- package/dist/components/index.js +7 -48
- package/dist/components/loading/index.js +6 -13
- package/dist/components/number-input/index.js +11 -24
- package/dist/components/pixel-editor/index.js +15 -23
- package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +13 -16
- package/dist/components/popover/hide-column-popover/hide-column-popover.css +5 -1
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +28 -38
- package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +9 -18
- package/dist/components/popover/sort-popover/sort-popover.js +58 -69
- package/dist/components/resize-handle/ResizeHandle.js +6 -13
- package/dist/components/row-card/row-card-header-cell.js +17 -24
- package/dist/components/row-card/row-card-header.js +15 -22
- package/dist/components/row-card/row-card-item.js +35 -43
- package/dist/components/row-card/row-card.js +17 -25
- package/dist/components/statistic-record-dialog/index.js +61 -68
- package/dist/components/tooltip/index.js +39 -28
- package/dist/components/types-dialog/index.js +62 -70
- package/dist/components/types-dialog/use-force-update.js +4 -10
- package/dist/constants/color-rules.js +8 -14
- package/dist/constants/common-constants.js +8 -14
- package/dist/constants/error.js +2 -8
- package/dist/constants/geolocation.js +9 -15
- package/dist/constants/index.js +142 -271
- package/dist/constants/key-codes.js +0 -2
- package/dist/constants/model.js +3 -9
- package/dist/constants/regions.js +3 -8
- package/dist/constants/style.js +6 -12
- package/dist/constants/table.js +1 -7
- package/dist/constants/type-image.js +33 -39
- package/dist/constants/type.js +3 -9
- package/dist/context.js +13 -20
- package/dist/editor/index.js +13 -16
- package/dist/index.js +13 -104
- package/dist/intl.js +10 -17
- package/dist/locale/index.js +16 -23
- package/dist/locale/lang/de.js +2 -7
- package/dist/locale/lang/en.js +2 -7
- package/dist/locale/lang/es.js +2 -7
- package/dist/locale/lang/fr.js +2 -7
- package/dist/locale/lang/pt.js +2 -7
- package/dist/locale/lang/ru.js +2 -7
- package/dist/locale/lang/zh_CN.js +2 -7
- package/dist/model/area-group.js +12 -19
- package/dist/model/area.js +12 -19
- package/dist/model/bar-custom.js +11 -18
- package/dist/model/bar-group.js +12 -19
- package/dist/model/bar-stack.js +10 -17
- package/dist/model/bar.js +11 -18
- package/dist/model/base-model.js +4 -11
- package/dist/model/basic-number-card.js +13 -20
- package/dist/model/chart.js +7 -13
- package/dist/model/combination.js +15 -22
- package/dist/model/compare-bar.js +14 -21
- package/dist/model/completeness-group.js +11 -18
- package/dist/model/completeness.js +10 -17
- package/dist/model/dashboard.js +7 -14
- package/dist/model/funnel.js +14 -21
- package/dist/model/generic-model.js +135 -143
- package/dist/model/heat-map.js +9 -16
- package/dist/model/horizontal-bar.js +11 -18
- package/dist/model/horizontal-group-bar.js +10 -17
- package/dist/model/index.js +69 -93
- package/dist/model/line-group.js +13 -20
- package/dist/model/line.js +12 -19
- package/dist/model/map-bubble.js +14 -17
- package/dist/model/map.js +12 -19
- package/dist/model/mirror.js +13 -20
- package/dist/model/pie.js +12 -19
- package/dist/model/ring.js +12 -19
- package/dist/model/scatter.js +10 -17
- package/dist/model/stacked-horizontal-bar.js +11 -18
- package/dist/model/table-element.js +5 -12
- package/dist/model/table.js +7 -14
- package/dist/model/tree-map.js +7 -14
- package/dist/model/trend.js +11 -18
- package/dist/model/user.js +1 -7
- package/dist/model/world-map-bubble.js +12 -19
- package/dist/model/world-map.js +12 -19
- package/dist/services/map-json.js +14 -17
- package/dist/settings/advance-bar-settings/data-settings.js +36 -44
- package/dist/settings/advance-bar-settings/index.js +3 -20
- package/dist/settings/advance-bar-settings/style-settings.js +66 -73
- package/dist/settings/bar-settings/data-settings.js +39 -47
- package/dist/settings/bar-settings/index.js +3 -20
- package/dist/settings/bar-settings/style-settings.js +51 -59
- package/dist/settings/basic-number-card/data-settings.js +50 -57
- package/dist/settings/basic-number-card/index.js +3 -20
- package/dist/settings/basic-number-card/style-settings.js +19 -27
- package/dist/settings/combination-settings/data-settings.js +55 -64
- package/dist/settings/combination-settings/index.js +3 -20
- package/dist/settings/combination-settings/style-settings.js +67 -75
- package/dist/settings/completeness-settings/callbacks/callbacks.js +16 -27
- package/dist/settings/completeness-settings/data-settings/completion-settings.js +21 -28
- package/dist/settings/completeness-settings/data-settings/data-settings.js +25 -32
- package/dist/settings/completeness-settings/index.js +3 -20
- package/dist/settings/completeness-settings/style-settings.js +19 -26
- package/dist/settings/dashboard-settings/data-settings.js +44 -51
- package/dist/settings/dashboard-settings/index.js +2 -13
- package/dist/settings/data-settings.js +72 -79
- package/dist/settings/funnel-settings/components/dnd-item/dnd-item.js +12 -19
- package/dist/settings/funnel-settings/components/dnd-list.js +15 -23
- package/dist/settings/funnel-settings/components/funnel-label-setting.js +32 -40
- package/dist/settings/funnel-settings/components/funnel-layer-setting.js +22 -30
- package/dist/settings/funnel-settings/data-settings.js +23 -31
- package/dist/settings/funnel-settings/index.js +3 -20
- package/dist/settings/funnel-settings/style-settings.js +11 -19
- package/dist/settings/heat-map-settings/data-settings.js +18 -26
- package/dist/settings/heat-map-settings/index.js +3 -20
- package/dist/settings/heat-map-settings/style-settings.js +18 -26
- package/dist/settings/horizontal-bar-settings/data-settings.js +12 -19
- package/dist/settings/horizontal-bar-settings/index.js +3 -20
- package/dist/settings/horizontal-bar-settings/style-settings.js +12 -19
- package/dist/settings/index.js +57 -70
- package/dist/settings/map-settings/components/location-field-selector.js +10 -17
- package/dist/settings/map-settings/components/map-level-selector.js +11 -18
- package/dist/settings/map-settings/components/map-province-city-selector.js +19 -26
- package/dist/settings/map-settings/index.js +3 -20
- package/dist/settings/map-settings/map-data-settings.js +23 -30
- package/dist/settings/map-settings/map-style-settings.js +27 -35
- package/dist/settings/mirror-settings/data-settings.js +26 -34
- package/dist/settings/mirror-settings/index.js +2 -13
- package/dist/settings/pie-settings/data-settings.js +33 -41
- package/dist/settings/pie-settings/index.js +3 -20
- package/dist/settings/pie-settings/style-settings.js +47 -55
- package/dist/settings/scatter/data-settings.js +27 -34
- package/dist/settings/scatter/index.js +3 -12
- package/dist/settings/stacks-settings/index.js +19 -27
- package/dist/settings/stacks-settings/stack-item-settings.js +19 -27
- package/dist/settings/style-settings.js +65 -73
- package/dist/settings/table-element-settings/components/data-filter.js +49 -58
- package/dist/settings/table-element-settings/data-settings.js +21 -29
- package/dist/settings/table-element-settings/index.css +1 -31
- package/dist/settings/table-element-settings/index.js +2 -13
- package/dist/settings/table-settings/data-settings.js +113 -120
- package/dist/settings/table-settings/index.js +2 -13
- package/dist/settings/time-comparison-settings/data-settings.js +43 -51
- package/dist/settings/time-comparison-settings/index.js +3 -20
- package/dist/settings/time-comparison-settings/style-settings.js +44 -52
- package/dist/settings/trend-settings/data-settings.js +24 -32
- package/dist/settings/trend-settings/index.js +3 -20
- package/dist/settings/trend-settings/style-setting.js +19 -27
- package/dist/settings/widgets/basic-summary/index.js +59 -66
- package/dist/settings/widgets/chart-type/index.js +18 -26
- package/dist/settings/widgets/color-settings/index.js +72 -80
- package/dist/settings/widgets/common-data-settings.js +27 -34
- package/dist/settings/widgets/data-filter/index.js +59 -59
- package/dist/settings/widgets/data-sort.js +16 -24
- package/dist/settings/widgets/date-summary-item.js +26 -34
- package/dist/settings/widgets/display-values-settings/index.js +14 -22
- package/dist/settings/widgets/divider/index.js +8 -16
- package/dist/settings/widgets/font-settings/font-color-settings.js +11 -19
- package/dist/settings/widgets/font-settings/font-size-settings.js +14 -22
- package/dist/settings/widgets/font-settings/font-weight-settings.js +17 -25
- package/dist/settings/widgets/font-settings/index.js +4 -27
- package/dist/settings/widgets/group-by.js +52 -59
- package/dist/settings/widgets/min-max-setting.js +10 -18
- package/dist/settings/widgets/mininum-slice-percent.js +10 -18
- package/dist/settings/widgets/numeric-summary-item.js +25 -33
- package/dist/settings/widgets/select-line-type/index.js +10 -17
- package/dist/settings/widgets/select-table/index.js +9 -16
- package/dist/settings/widgets/select-view/index.js +20 -28
- package/dist/settings/widgets/stack.js +14 -22
- package/dist/settings/widgets/summary-method-setting.js +17 -25
- package/dist/settings/widgets/summary-settings.js +75 -82
- package/dist/settings/widgets/switch/index.js +9 -16
- package/dist/settings/widgets/text-horizontal-settings.js +15 -23
- package/dist/settings/widgets/time-picker.js +29 -37
- package/dist/settings/widgets/title-settings/index.js +29 -37
- package/dist/settings/widgets/title-settings/title-text.js +5 -12
- package/dist/settings/widgets/x-axios.js +0 -1
- package/dist/settings/widgets/y-axis-group-settings.js +65 -72
- package/dist/utils/cell-format-utils.js +25 -33
- package/dist/utils/cell-value-utils.js +4 -11
- package/dist/utils/chart-utils/base-utils.js +467 -367
- package/dist/utils/chart-utils/index.js +29 -40
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +78 -85
- package/dist/utils/chart-utils/original-data-utils/card-calculator.js +20 -21
- package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +45 -52
- package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +21 -28
- package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +33 -40
- package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +28 -26
- package/dist/utils/chart-utils/original-data-utils/index.js +50 -57
- package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +19 -26
- package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +94 -97
- package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +19 -25
- package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +50 -36
- package/dist/utils/chart-utils/sql-statistics-utils.js +385 -388
- package/dist/utils/chart.js +9 -17
- package/dist/utils/collaborator-manager.js +3 -9
- package/dist/utils/collaborator-utils.js +19 -31
- package/dist/utils/collaborator.js +6 -15
- package/dist/utils/color-utils.js +18 -29
- package/dist/utils/column-utils.js +88 -102
- package/dist/utils/common-utils.js +28 -53
- package/dist/utils/concurrency-manager.js +1 -7
- package/dist/utils/contexts.js +7 -11
- package/dist/utils/date-translate.js +12 -20
- package/dist/utils/digital-sign-utils.js +7 -14
- package/dist/utils/event-bus.js +1 -7
- package/dist/utils/hotkey.js +5 -11
- package/dist/utils/index.js +73 -219
- package/dist/utils/key-generator.js +2 -9
- package/dist/utils/map.js +22 -31
- package/dist/utils/object-utils.js +2 -8
- package/dist/utils/options-utils.js +10 -18
- package/dist/utils/row-record-utils.js +251 -183
- package/dist/utils/row-utils.js +27 -38
- package/dist/utils/search.js +24 -32
- package/dist/utils/sql/chart-data-sql.js +106 -112
- package/dist/utils/sql/column-2-sql-column.js +162 -172
- package/dist/utils/sql/index.js +3 -27
- package/dist/utils/trend-utils.js +50 -45
- package/dist/view/index.css +2 -8
- package/dist/view/index.js +102 -103
- package/dist/view/title/index.js +16 -24
- package/dist/view/wrapper/area-group.js +57 -57
- package/dist/view/wrapper/area.js +43 -51
- package/dist/view/wrapper/bar-compare.js +56 -48
- package/dist/view/wrapper/bar-custom-stack.js +73 -55
- package/dist/view/wrapper/bar-group.js +94 -73
- package/dist/view/wrapper/bar-stack.js +49 -57
- package/dist/view/wrapper/bar.js +40 -48
- package/dist/view/wrapper/basic-number-card.js +50 -34
- package/dist/view/wrapper/chart-component.js +164 -569
- package/dist/view/wrapper/combination.js +55 -63
- package/dist/view/wrapper/completeness-group.js +140 -93
- package/dist/view/wrapper/completeness.js +36 -44
- package/dist/view/wrapper/dashboard.js +104 -59
- package/dist/view/wrapper/funnel.js +40 -43
- package/dist/view/wrapper/heat-map.js +62 -70
- package/dist/view/wrapper/horizontal-bar-group.js +70 -58
- package/dist/view/wrapper/horizontal-bar-stack.js +48 -56
- package/dist/view/wrapper/horizontal-bar.js +41 -49
- package/dist/view/wrapper/index.js +107 -115
- package/dist/view/wrapper/line-group.js +49 -52
- package/dist/view/wrapper/line.js +42 -50
- package/dist/view/wrapper/map-bubble.js +40 -48
- package/dist/view/wrapper/map-world-bubble.js +40 -47
- package/dist/view/wrapper/map-world.js +42 -49
- package/dist/view/wrapper/map.js +42 -50
- package/dist/view/wrapper/mirror.js +41 -49
- package/dist/view/wrapper/pie.js +45 -53
- package/dist/view/wrapper/ring.js +50 -58
- package/dist/view/wrapper/scatter.js +50 -56
- package/dist/view/wrapper/table/index.js +14 -22
- package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +49 -57
- package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +53 -61
- package/dist/view/wrapper/table/pivot-table-display-name.js +82 -90
- package/dist/view/wrapper/table/two-dimension-table.js +85 -92
- package/dist/view/wrapper/table-element/components/dataset-utils.js +23 -36
- package/dist/view/wrapper/table-element/components/formatter.js +90 -99
- package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +23 -32
- package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +9 -16
- package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +90 -97
- package/dist/view/wrapper/table-element/components/formula-formatter.js +9 -16
- package/dist/view/wrapper/table-element/components/link-formatter.js +90 -97
- package/dist/view/wrapper/table-element/components/record.js +13 -20
- package/dist/view/wrapper/table-element/components/records-body.js +9 -17
- package/dist/view/wrapper/table-element/components/records-header/index.js +7 -16
- package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +8 -16
- package/dist/view/wrapper/table-element/components/records.js +25 -33
- package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +8 -13
- package/dist/view/wrapper/table-element/components/utils.js +6 -16
- package/dist/view/wrapper/table-element/components/value-display-utils.js +4 -11
- package/dist/view/wrapper/table-element/components/vertical-scrollbar/index.js +6 -13
- package/dist/view/wrapper/table-element/index.js +30 -43
- package/dist/view/wrapper/treemap.js +38 -46
- package/dist/view/wrapper/trend.js +80 -65
- package/package.json +15 -12
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var d3 = _interopRequireWildcard(require("d3"));
|
|
13
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
|
-
var _constants = require("../../constants");
|
|
15
|
-
var _utils = require("../../utils");
|
|
16
|
-
var _intl = _interopRequireDefault(require("../../intl"));
|
|
17
|
-
var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
|
|
18
|
-
var _chartComponent = _interopRequireDefault(require("./chart-component"));
|
|
19
|
-
class Completeness extends _chartComponent.default {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { debounce, cloneDeep } from 'lodash-es';
|
|
4
|
+
import * as d3 from 'd3';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import { CHART_THEME_COLOR } from '../../constants';
|
|
7
|
+
import { BaseUtils } from '../../utils';
|
|
8
|
+
import intl from '../../intl';
|
|
9
|
+
import ToolTip from '../../components/tooltip';
|
|
10
|
+
import ChartComponent from './chart-component';
|
|
11
|
+
class Completeness extends ChartComponent {
|
|
20
12
|
constructor(props) {
|
|
21
13
|
super(props);
|
|
22
14
|
this.handleResize = () => {
|
|
@@ -39,10 +31,11 @@ class Completeness extends _chartComponent.default {
|
|
|
39
31
|
this.initChart(this.container, chart === null || chart === void 0 ? void 0 : chart.id, initConfig);
|
|
40
32
|
};
|
|
41
33
|
this.drawChart = () => {
|
|
34
|
+
var _this$props$chart, _this$props$chart$con;
|
|
42
35
|
let {
|
|
43
36
|
result: data
|
|
44
37
|
} = this.props;
|
|
45
|
-
data =
|
|
38
|
+
data = BaseUtils.formatEmptyName(data, (_this$props$chart = this.props.chart) === null || _this$props$chart === void 0 ? void 0 : (_this$props$chart$con = _this$props$chart.config) === null || _this$props$chart$con === void 0 ? void 0 : _this$props$chart$con.column_groupby_column_key, intl.get('Empty'));
|
|
46
39
|
if (!Array.isArray(data)) return;
|
|
47
40
|
this.draw(data);
|
|
48
41
|
};
|
|
@@ -53,7 +46,7 @@ class Completeness extends _chartComponent.default {
|
|
|
53
46
|
chartColorTheme,
|
|
54
47
|
columnGroupbyColumn
|
|
55
48
|
} = this.props;
|
|
56
|
-
const theme =
|
|
49
|
+
const theme = CHART_THEME_COLOR[globalTheme];
|
|
57
50
|
const {
|
|
58
51
|
y_axis_auto_range,
|
|
59
52
|
y_axis_min,
|
|
@@ -69,13 +62,21 @@ class Completeness extends _chartComponent.default {
|
|
|
69
62
|
marginRight
|
|
70
63
|
} = this.chartBoundingClientRect;
|
|
71
64
|
this.markLastForCompleteness(data);
|
|
72
|
-
const colors =
|
|
65
|
+
const colors = BaseUtils.getCurrentTheme(chartColorTheme).colors;
|
|
66
|
+
// Normalize groupby to string before setColorMap to ensure consistent keys
|
|
67
|
+
data.forEach(item => {
|
|
68
|
+
if (Array.isArray(item.groupby)) {
|
|
69
|
+
item.groupby = item.groupby.join(', ');
|
|
70
|
+
}
|
|
71
|
+
});
|
|
73
72
|
this.setColorMap(data, chartColorTheme, 'groupby', columnGroupbyColumn, chart);
|
|
74
73
|
const newSeries = this.getGroupSeries(data, columnGroupbyColumn, chart);
|
|
75
74
|
|
|
76
75
|
// Y axis
|
|
77
76
|
const fy = d3.scaleBand().domain(newSeries.map(item => item[0])).range([chartHeight - insertPadding, insertPadding]).paddingInner(0.5).paddingOuter(0.1);
|
|
78
|
-
|
|
77
|
+
|
|
78
|
+
// y scale will be created per main group (local) to avoid overlap
|
|
79
|
+
|
|
79
80
|
const yAxis = this.chart.append('g').attr('class', 'y-axis-wrapper').call(d3.axisLeft(fy).tickSizeOuter(0).tickPadding(0).tickSizeInner(5)).call(g => {
|
|
80
81
|
g.selectAll('.domain').attr('stroke', theme.XAxisColor);
|
|
81
82
|
g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
|
|
@@ -85,7 +86,7 @@ class Completeness extends _chartComponent.default {
|
|
|
85
86
|
const {
|
|
86
87
|
width: axisWidth
|
|
87
88
|
} = g.node().getBoundingClientRect();
|
|
88
|
-
g.attr('transform',
|
|
89
|
+
g.attr('transform', `translate(${axisWidth}, 0)`).attr('data-axisWidth', axisWidth);
|
|
89
90
|
this.checkTickOverlap(g, 'yAxis');
|
|
90
91
|
});
|
|
91
92
|
|
|
@@ -93,7 +94,7 @@ class Completeness extends _chartComponent.default {
|
|
|
93
94
|
const allSeries = this.getAllSeries(newSeries);
|
|
94
95
|
const niceEnd = d3.nice(0, d3.max(allSeries, d => d.sumValue), 5)[1];
|
|
95
96
|
const x = d3.scaleLinear().domain(y_axis_auto_range ? [0, niceEnd] : [y_axis_min || 0, y_axis_max || niceEnd]).range([Number(yAxis.node().getAttribute('data-axisWidth')), chartWidth - insertPadding - marginRight]);
|
|
96
|
-
this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform',
|
|
97
|
+
this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', `translate(0, ${chartHeight - insertPadding})`).call(d3.axisBottom(x).tickSizeInner(0).ticks(5)).call(g => {
|
|
97
98
|
g.selectAll('.domain').remove();
|
|
98
99
|
g.selectAll('.tick line').node() && g.selectAll('.tick line').node().remove(); // delete the first line
|
|
99
100
|
g.selectAll('.tick line').attr('y2', -(chartHeight - insertPadding * 2)).attr('stroke', theme.gridColor).attr('stroke-dasharray', '8,3');
|
|
@@ -102,39 +103,65 @@ class Completeness extends _chartComponent.default {
|
|
|
102
103
|
});
|
|
103
104
|
|
|
104
105
|
// Rect group
|
|
105
|
-
const contentWrapper = this.chart.append('g').attr('class', 'content-wrapper').attr('transform',
|
|
106
|
-
contentWrapper.selectAll().data(newSeries).join('g').attr('transform', _ref => {
|
|
107
|
-
let [name
|
|
108
|
-
|
|
109
|
-
return "translate(0, ".concat(fy(name) + offset, ")");
|
|
106
|
+
const contentWrapper = this.chart.append('g').attr('class', 'content-wrapper').attr('transform', `translate(${Number(yAxis.node().getAttribute('data-axisWidth'))}, 0)`);
|
|
107
|
+
const mainGroups = contentWrapper.selectAll().data(newSeries).join('g').attr('transform', _ref => {
|
|
108
|
+
let [name] = _ref;
|
|
109
|
+
return `translate(0, ${fy(name)})`;
|
|
110
110
|
}).attr('data-transform', _ref2 => {
|
|
111
|
-
let [name
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
let [_,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
111
|
+
let [name] = _ref2;
|
|
112
|
+
return `${fy(name)}`;
|
|
113
|
+
});
|
|
114
|
+
const colorMap = this.colorMap;
|
|
115
|
+
const self = this;
|
|
116
|
+
|
|
117
|
+
// Calculate max sub group count across all main groups for uniform bar height
|
|
118
|
+
const maxSubGroupCount = Math.max(...newSeries.map(_ref3 => {
|
|
119
|
+
let [_, subGroups] = _ref3;
|
|
120
|
+
return subGroups.length;
|
|
121
|
+
}));
|
|
122
|
+
const uniformBandwidth = fy.bandwidth() / maxSubGroupCount;
|
|
123
|
+
mainGroups.each(function (_ref4) {
|
|
124
|
+
let [mainGroupName, subGroups] = _ref4;
|
|
125
|
+
const mainGroupNode = d3.select(this);
|
|
126
|
+
|
|
127
|
+
// Create local y scale for this main group, using uniform bandwidth
|
|
128
|
+
const localY = d3.scaleBand().domain(subGroups.map(sg => sg[0])).range([0, uniformBandwidth * subGroups.length]).paddingInner(0).paddingOuter(0);
|
|
129
|
+
mainGroupNode.selectAll().data(subGroups).join('g').attr('data-completedRate', _ref5 => {
|
|
130
|
+
var _restItem$rawData, _completedItem$rawDat;
|
|
131
|
+
let [_, d] = _ref5;
|
|
132
|
+
const restItem = d.find(item => item.key === 'rest');
|
|
133
|
+
const completedItem = d.find(item => item.key === 'completed');
|
|
134
|
+
const restValue = restItem ? Number(((_restItem$rawData = restItem.rawData) === null || _restItem$rawData === void 0 ? void 0 : _restItem$rawData.value) || 0) : 0;
|
|
135
|
+
const completedValue = completedItem ? Number(((_completedItem$rawDat = completedItem.rawData) === null || _completedItem$rawDat === void 0 ? void 0 : _completedItem$rawDat.value) || 0) : 0;
|
|
136
|
+
const targetValue = restValue + completedValue;
|
|
137
|
+
if (!targetValue) return '';
|
|
138
|
+
return `${Math.round(completedValue / targetValue * 100)}%`;
|
|
139
|
+
}).selectAll().data(_ref6 => {
|
|
140
|
+
let [_, d] = _ref6;
|
|
141
|
+
return d;
|
|
142
|
+
}).join('rect').attr('class', 'rect').attr('opacity', 1).attr('x', d => x(d[0]) - Number(yAxis.node().getAttribute('data-axisWidth'))).attr('y', d => localY(d.groupby)).attr('data-y', d => localY(d.groupby)).attr('width', d => x(d[1]) - x(d[0])).attr('height', localY.bandwidth()).attr('fill', d => {
|
|
143
|
+
const key = d.key;
|
|
144
|
+
const groupby = d.groupby;
|
|
145
|
+
if (key === 'rest') {
|
|
146
|
+
return '#bdbdbd';
|
|
147
|
+
}
|
|
148
|
+
if (column_groupby_column_key) {
|
|
149
|
+
return colorMap[groupby];
|
|
150
|
+
}
|
|
151
|
+
return colors[0];
|
|
152
|
+
}).attr('data-value', d => d.rawData.value).attr('data-groupName', d => d.rawData.slugId).attr('data-tooltipTitle', d => d.rawData.name).attr('data-tooltipName', d => d.key).attr('data-groupBy', d => d.groupby).on('click', (event, data) => {
|
|
153
|
+
self.props.toggleRecords(data);
|
|
154
|
+
}).on('mouseover', event => {
|
|
155
|
+
self.showTooltip(event);
|
|
156
|
+
self.handleAcitveAndInActiveState('inActive', event);
|
|
157
|
+
}).on('mousemove', event => {
|
|
158
|
+
self.moveTooltip(event);
|
|
159
|
+
}).on('mouseleave', event => {
|
|
160
|
+
self.hiddenTooltip();
|
|
161
|
+
self.handleAcitveAndInActiveState('active', event);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
mainGroups.call(g => {
|
|
138
165
|
// add rect borderRadius
|
|
139
166
|
const allGroup = this.getAllGroup(contentWrapper);
|
|
140
167
|
allGroup.forEach(group => {
|
|
@@ -163,16 +190,6 @@ class Completeness extends _chartComponent.default {
|
|
|
163
190
|
});
|
|
164
191
|
});
|
|
165
192
|
}
|
|
166
|
-
}).on('click', (event, data) => {
|
|
167
|
-
this.props.toggleRecords(data);
|
|
168
|
-
}).on('mouseover', event => {
|
|
169
|
-
this.showTooltip(event);
|
|
170
|
-
this.handleAcitveAndInActiveState('inActive', event);
|
|
171
|
-
}).on('mousemove', event => {
|
|
172
|
-
this.moveTooltip(event);
|
|
173
|
-
}).on('mouseleave', (event, data) => {
|
|
174
|
-
this.hiddenTooltip();
|
|
175
|
-
this.handleAcitveAndInActiveState('active', event);
|
|
176
193
|
});
|
|
177
194
|
this.setLegend({
|
|
178
195
|
legendName: 'groupby',
|
|
@@ -216,7 +233,7 @@ class Completeness extends _chartComponent.default {
|
|
|
216
233
|
title: event.currentTarget.getAttribute('data-tooltipTitle'),
|
|
217
234
|
items: [{
|
|
218
235
|
color: event.currentTarget.getAttribute('data-tooltipName') === 'rest' ? '#bdbdbd' : this.colorMap[groupby],
|
|
219
|
-
name:
|
|
236
|
+
name: intl.get(event.currentTarget.getAttribute('data-tooltipName')),
|
|
220
237
|
value: event.currentTarget.getAttribute('data-value')
|
|
221
238
|
}]
|
|
222
239
|
};
|
|
@@ -254,35 +271,65 @@ class Completeness extends _chartComponent.default {
|
|
|
254
271
|
});
|
|
255
272
|
};
|
|
256
273
|
this.getGroupSeries = (data, columnGroupbyColumn, chart) => {
|
|
257
|
-
const sortedData =
|
|
274
|
+
const sortedData = BaseUtils.sortDataByGroupName(cloneDeep(data), 'groupby', columnGroupbyColumn, chart);
|
|
275
|
+
sortedData.forEach(item => {
|
|
276
|
+
if (Array.isArray(item.groupby)) {
|
|
277
|
+
item.groupby = item.groupby.join(', ');
|
|
278
|
+
}
|
|
279
|
+
});
|
|
258
280
|
const groups = d3.groups(sortedData, d => d.name);
|
|
281
|
+
// Sort main groups by name for stable order
|
|
282
|
+
groups.sort((a, b) => String(a[0]).localeCompare(String(b[0])));
|
|
259
283
|
groups.forEach((item, index) => {
|
|
260
|
-
const itemData =
|
|
284
|
+
const itemData = cloneDeep(item[1]);
|
|
285
|
+
const valueMap = d3.rollup(itemData, v => d3.sum(v, d => d.value), d => d.groupby, d => d.group_name);
|
|
286
|
+
const rawDataMap = d3.rollup(itemData, v => v[0], d => d.groupby, d => d.group_name);
|
|
261
287
|
|
|
262
288
|
// get series
|
|
263
|
-
const series = d3.stack().keys(d3.union(itemData.map(d => d.group_name))).value((
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
})(d3.index(itemData, d => d.groupby, d => d.group_name));
|
|
289
|
+
const series = d3.stack().keys(d3.union(itemData.map(d => d.group_name))).value((_ref7, key) => {
|
|
290
|
+
let [_, group] = _ref7;
|
|
291
|
+
return group.get(key) || 0;
|
|
292
|
+
})(valueMap);
|
|
268
293
|
item[1] = d3.groups(itemData, d => d.groupby);
|
|
294
|
+
// Sort sub groups by groupby for stable order
|
|
295
|
+
item[1].sort((a, b) => String(a[0]).localeCompare(String(b[0])));
|
|
269
296
|
item[1].forEach((group, index) => {
|
|
297
|
+
var _completedItem$rawDat2, _restItem$rawData2;
|
|
270
298
|
const groupKey = group[0];
|
|
271
299
|
group[1] = [];
|
|
272
300
|
series.forEach(serie => {
|
|
273
301
|
const serieKey = serie.key;
|
|
274
302
|
serie.forEach(item => {
|
|
275
303
|
if (item.data[0] === groupKey) {
|
|
304
|
+
var _valueMap$get, _rawDataMap$get;
|
|
305
|
+
const aggregatedValue = ((_valueMap$get = valueMap.get(groupKey)) === null || _valueMap$get === void 0 ? void 0 : _valueMap$get.get(serieKey)) || 0;
|
|
306
|
+
const rawData = (_rawDataMap$get = rawDataMap.get(groupKey)) === null || _rawDataMap$get === void 0 ? void 0 : _rawDataMap$get.get(serieKey);
|
|
276
307
|
const newItem = {
|
|
277
308
|
...item,
|
|
278
309
|
key: serieKey,
|
|
279
310
|
serieIndex: index,
|
|
280
|
-
|
|
311
|
+
groupby: groupKey,
|
|
312
|
+
rawData: {
|
|
313
|
+
...(rawData || {}),
|
|
314
|
+
value: aggregatedValue,
|
|
315
|
+
groupby: groupKey,
|
|
316
|
+
group_name: serieKey
|
|
317
|
+
}
|
|
281
318
|
};
|
|
282
319
|
group[1].push(newItem);
|
|
283
320
|
}
|
|
284
321
|
});
|
|
285
322
|
});
|
|
323
|
+
const completedItem = group[1].find(d => d.key === 'completed');
|
|
324
|
+
const restItem = group[1].find(d => d.key === 'rest');
|
|
325
|
+
const completedValue = completedItem ? Number(((_completedItem$rawDat2 = completedItem.rawData) === null || _completedItem$rawDat2 === void 0 ? void 0 : _completedItem$rawDat2.value) || 0) : 0;
|
|
326
|
+
const restValue = restItem ? Number(((_restItem$rawData2 = restItem.rawData) === null || _restItem$rawData2 === void 0 ? void 0 : _restItem$rawData2.value) || 0) : 0;
|
|
327
|
+
const targetValue = completedValue + restValue;
|
|
328
|
+
if (!targetValue) {
|
|
329
|
+
restItem && (restItem.rawData.completedRate = 'empty');
|
|
330
|
+
} else {
|
|
331
|
+
restItem && (restItem.rawData.completedRate = Math.round(completedValue / targetValue * 100));
|
|
332
|
+
}
|
|
286
333
|
let sumValue = 0;
|
|
287
334
|
group[1].forEach(g => {
|
|
288
335
|
sumValue = sumValue + g[1];
|
|
@@ -336,7 +383,7 @@ class Completeness extends _chartComponent.default {
|
|
|
336
383
|
}).on('mouseleave', event => {
|
|
337
384
|
this.hiddenTooltip();
|
|
338
385
|
this.handleAcitveAndInActiveState('active', event);
|
|
339
|
-
}).append('xhtml:div').attr('style',
|
|
386
|
+
}).append('xhtml:div').attr('style', `width: 100%; height: 100%; background-color: ${rect.getAttribute('fill')}; border-radius: 0px ${xWidth * borderRadius}px ${xWidth * borderRadius}px 0px`);
|
|
340
387
|
|
|
341
388
|
// Remove old rect
|
|
342
389
|
d3.select(rect).remove();
|
|
@@ -351,12 +398,12 @@ class Completeness extends _chartComponent.default {
|
|
|
351
398
|
super.componentDidMount();
|
|
352
399
|
this.createChart();
|
|
353
400
|
this.drawChart();
|
|
354
|
-
this.debouncedHandleResize =
|
|
401
|
+
this.debouncedHandleResize = debounce(this.handleResize, 300);
|
|
355
402
|
window.addEventListener('resize', this.debouncedHandleResize);
|
|
356
403
|
}
|
|
357
404
|
componentDidUpdate(prevProps) {
|
|
358
405
|
super.componentDidUpdate(prevProps);
|
|
359
|
-
if (
|
|
406
|
+
if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
|
|
360
407
|
this.destroyChart();
|
|
361
408
|
this.createChart();
|
|
362
409
|
this.drawChart();
|
|
@@ -375,13 +422,13 @@ class Completeness extends _chartComponent.default {
|
|
|
375
422
|
tooltipData,
|
|
376
423
|
toolTipPosition
|
|
377
424
|
} = this.state;
|
|
378
|
-
return /*#__PURE__*/
|
|
425
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
379
426
|
ref: ref => this.container = ref,
|
|
380
|
-
className: (
|
|
427
|
+
className: classNames('sea-chart-container', {
|
|
381
428
|
'show-x-axis-label': this.isShowHorizontalAxisLabel(chart),
|
|
382
429
|
'show-y-axis-label': this.isShowVerticalAxisLabel(chart)
|
|
383
430
|
})
|
|
384
|
-
}, /*#__PURE__*/
|
|
431
|
+
}, /*#__PURE__*/React.createElement(ToolTip, {
|
|
385
432
|
tooltipData: tooltipData,
|
|
386
433
|
toolTipPosition: toolTipPosition,
|
|
387
434
|
chart: this.chart
|
|
@@ -389,15 +436,15 @@ class Completeness extends _chartComponent.default {
|
|
|
389
436
|
}
|
|
390
437
|
}
|
|
391
438
|
Completeness.propTypes = {
|
|
392
|
-
canvasStyle:
|
|
393
|
-
chart:
|
|
394
|
-
groupbyColumn:
|
|
395
|
-
columnGroupbyColumn:
|
|
396
|
-
summaryColumn:
|
|
397
|
-
result:
|
|
398
|
-
tables:
|
|
399
|
-
globalTheme:
|
|
400
|
-
chartColorTheme:
|
|
401
|
-
toggleRecords:
|
|
439
|
+
canvasStyle: PropTypes.object,
|
|
440
|
+
chart: PropTypes.object,
|
|
441
|
+
groupbyColumn: PropTypes.object,
|
|
442
|
+
columnGroupbyColumn: PropTypes.object,
|
|
443
|
+
summaryColumn: PropTypes.object,
|
|
444
|
+
result: PropTypes.array,
|
|
445
|
+
tables: PropTypes.array,
|
|
446
|
+
globalTheme: PropTypes.string,
|
|
447
|
+
chartColorTheme: PropTypes.string,
|
|
448
|
+
toggleRecords: PropTypes.func
|
|
402
449
|
};
|
|
403
|
-
|
|
450
|
+
export default Completeness;
|
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var d3 = _interopRequireWildcard(require("d3"));
|
|
13
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
|
-
var _constants = require("../../constants");
|
|
15
|
-
var _utils = require("../../utils");
|
|
16
|
-
var _intl = _interopRequireDefault(require("../../intl"));
|
|
17
|
-
var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
|
|
18
|
-
var _chartComponent = _interopRequireDefault(require("./chart-component"));
|
|
19
|
-
class Completeness extends _chartComponent.default {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { debounce } from 'lodash-es';
|
|
4
|
+
import * as d3 from 'd3';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import { CHART_THEME_COLOR } from '../../constants';
|
|
7
|
+
import { BaseUtils } from '../../utils';
|
|
8
|
+
import intl from '../../intl';
|
|
9
|
+
import ToolTip from '../../components/tooltip';
|
|
10
|
+
import ChartComponent from './chart-component';
|
|
11
|
+
class Completeness extends ChartComponent {
|
|
20
12
|
constructor(props) {
|
|
21
13
|
super(props);
|
|
22
14
|
this.handleResize = () => {
|
|
@@ -42,7 +34,7 @@ class Completeness extends _chartComponent.default {
|
|
|
42
34
|
let {
|
|
43
35
|
result: data
|
|
44
36
|
} = this.props;
|
|
45
|
-
data =
|
|
37
|
+
data = BaseUtils.formatEmptyName(data, '', intl.get('Empty'));
|
|
46
38
|
if (!Array.isArray(data)) return;
|
|
47
39
|
this.draw(data);
|
|
48
40
|
};
|
|
@@ -52,7 +44,7 @@ class Completeness extends _chartComponent.default {
|
|
|
52
44
|
globalTheme,
|
|
53
45
|
chartColorTheme
|
|
54
46
|
} = this.props;
|
|
55
|
-
const theme =
|
|
47
|
+
const theme = CHART_THEME_COLOR[globalTheme];
|
|
56
48
|
const {
|
|
57
49
|
y_axis_auto_range,
|
|
58
50
|
y_axis_min,
|
|
@@ -66,7 +58,7 @@ class Completeness extends _chartComponent.default {
|
|
|
66
58
|
insertPadding,
|
|
67
59
|
marginRight
|
|
68
60
|
} = this.chartBoundingClientRect;
|
|
69
|
-
const colors =
|
|
61
|
+
const colors = BaseUtils.getCurrentTheme(chartColorTheme).colors;
|
|
70
62
|
this.markFirstOrLast(data, 'last');
|
|
71
63
|
const series = d3.stack().keys(d3.union(data.map(d => d.group_name))).value((_ref, key) => {
|
|
72
64
|
var _group$get;
|
|
@@ -86,14 +78,14 @@ class Completeness extends _chartComponent.default {
|
|
|
86
78
|
const {
|
|
87
79
|
width: axisWidth
|
|
88
80
|
} = g.node().getBoundingClientRect();
|
|
89
|
-
g.attr('transform',
|
|
81
|
+
g.attr('transform', `translate(${axisWidth}, 0)`).attr('data-axisWidth', axisWidth);
|
|
90
82
|
this.checkTickOverlap(g, 'yAxis');
|
|
91
83
|
});
|
|
92
84
|
|
|
93
85
|
// X axis
|
|
94
86
|
const niceEnd = d3.nice(0, d3.max(newSeries, d => d[1].sumValue), 5)[1];
|
|
95
87
|
const x = d3.scaleLinear().domain(y_axis_auto_range ? [0, niceEnd] : [y_axis_min || 0, y_axis_max || niceEnd]).range([Number(yAxis.node().getAttribute('data-axisWidth')), chartWidth - insertPadding - marginRight]);
|
|
96
|
-
this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform',
|
|
88
|
+
this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', `translate(0, ${chartHeight - insertPadding})`).call(d3.axisBottom(x).tickSizeInner(0).ticks(5)).call(g => {
|
|
97
89
|
g.selectAll('.domain').remove();
|
|
98
90
|
g.selectAll('.tick line').node() && g.selectAll('.tick line').node().remove(); // delete the first line
|
|
99
91
|
g.selectAll('.tick line').attr('y2', -(chartHeight - insertPadding * 2)).attr('stroke', theme.gridColor).attr('stroke-dasharray', '8,3');
|
|
@@ -102,7 +94,7 @@ class Completeness extends _chartComponent.default {
|
|
|
102
94
|
});
|
|
103
95
|
|
|
104
96
|
// Rect group
|
|
105
|
-
const contentWrapper = this.chart.append('g').attr('class', 'content-wrapper').attr('transform',
|
|
97
|
+
const contentWrapper = this.chart.append('g').attr('class', 'content-wrapper').attr('transform', `translate(${Number(yAxis.node().getAttribute('data-axisWidth'))}, 0)`);
|
|
106
98
|
contentWrapper.selectAll().data(newSeries).join('g').attr('data-completedRate', d => {
|
|
107
99
|
const restData = d[1].find(item => item.key === 'rest');
|
|
108
100
|
const completedRate = restData.data.completedRate;
|
|
@@ -179,12 +171,12 @@ class Completeness extends _chartComponent.default {
|
|
|
179
171
|
const {
|
|
180
172
|
chartColorTheme
|
|
181
173
|
} = this.props;
|
|
182
|
-
const colors =
|
|
174
|
+
const colors = BaseUtils.getCurrentTheme(chartColorTheme).colors;
|
|
183
175
|
const newTooltipData = {
|
|
184
176
|
title: event.currentTarget.getAttribute('data-tooltipTitle'),
|
|
185
177
|
items: [{
|
|
186
178
|
color: event.currentTarget.getAttribute('data-tooltipTitle') === 'rest' ? '#bdbdbd' : colors[0],
|
|
187
|
-
name:
|
|
179
|
+
name: intl.get(event.currentTarget.getAttribute('data-tooltipName')),
|
|
188
180
|
value: event.currentTarget.getAttribute('data-value')
|
|
189
181
|
}]
|
|
190
182
|
};
|
|
@@ -279,7 +271,7 @@ class Completeness extends _chartComponent.default {
|
|
|
279
271
|
}).on('mouseleave', event => {
|
|
280
272
|
this.hiddenTooltip();
|
|
281
273
|
this.handleAcitveAndInActiveState('active', event);
|
|
282
|
-
}).append('xhtml:div').attr('style',
|
|
274
|
+
}).append('xhtml:div').attr('style', `width: 100%; height: 100%; background-color: ${rect.getAttribute('fill')}; border-radius: 0px ${xWidth * borderRadius}px ${xWidth * borderRadius}px 0px`);
|
|
283
275
|
|
|
284
276
|
// Remove old rect
|
|
285
277
|
d3.select(rect).remove();
|
|
@@ -294,12 +286,12 @@ class Completeness extends _chartComponent.default {
|
|
|
294
286
|
super.componentDidMount();
|
|
295
287
|
this.createChart();
|
|
296
288
|
this.drawChart();
|
|
297
|
-
this.debouncedHandleResize =
|
|
289
|
+
this.debouncedHandleResize = debounce(this.handleResize, 300);
|
|
298
290
|
window.addEventListener('resize', this.debouncedHandleResize);
|
|
299
291
|
}
|
|
300
292
|
componentDidUpdate(prevProps) {
|
|
301
293
|
super.componentDidUpdate(prevProps);
|
|
302
|
-
if (
|
|
294
|
+
if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
|
|
303
295
|
this.destroyChart();
|
|
304
296
|
this.createChart();
|
|
305
297
|
this.drawChart();
|
|
@@ -318,13 +310,13 @@ class Completeness extends _chartComponent.default {
|
|
|
318
310
|
tooltipData,
|
|
319
311
|
toolTipPosition
|
|
320
312
|
} = this.state;
|
|
321
|
-
return /*#__PURE__*/
|
|
313
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
322
314
|
ref: ref => this.container = ref,
|
|
323
|
-
className: (
|
|
315
|
+
className: classNames('sea-chart-container', {
|
|
324
316
|
'show-x-axis-label': this.isShowHorizontalAxisLabel(chart),
|
|
325
317
|
'show-y-axis-label': this.isShowVerticalAxisLabel(chart)
|
|
326
318
|
})
|
|
327
|
-
}, /*#__PURE__*/
|
|
319
|
+
}, /*#__PURE__*/React.createElement(ToolTip, {
|
|
328
320
|
tooltipData: tooltipData,
|
|
329
321
|
toolTipPosition: toolTipPosition,
|
|
330
322
|
chart: this.chart
|
|
@@ -332,15 +324,15 @@ class Completeness extends _chartComponent.default {
|
|
|
332
324
|
}
|
|
333
325
|
}
|
|
334
326
|
Completeness.propTypes = {
|
|
335
|
-
canvasStyle:
|
|
336
|
-
chart:
|
|
337
|
-
groupbyColumn:
|
|
338
|
-
columnGroupbyColumn:
|
|
339
|
-
summaryColumn:
|
|
340
|
-
result:
|
|
341
|
-
tables:
|
|
342
|
-
globalTheme:
|
|
343
|
-
chartColorTheme:
|
|
344
|
-
toggleRecords:
|
|
327
|
+
canvasStyle: PropTypes.object,
|
|
328
|
+
chart: PropTypes.object,
|
|
329
|
+
groupbyColumn: PropTypes.object,
|
|
330
|
+
columnGroupbyColumn: PropTypes.object,
|
|
331
|
+
summaryColumn: PropTypes.object,
|
|
332
|
+
result: PropTypes.array,
|
|
333
|
+
tables: PropTypes.array,
|
|
334
|
+
globalTheme: PropTypes.string,
|
|
335
|
+
chartColorTheme: PropTypes.string,
|
|
336
|
+
toggleRecords: PropTypes.func
|
|
345
337
|
};
|
|
346
|
-
|
|
338
|
+
export default Completeness;
|